Procházet zdrojové kódy

Merge branch 'master' into jenkins

skyblued před 2 roky
rodič
revize
e90a06962c

+ 132 - 118
src/school/approval-manage/agency/index.tsx

@@ -1,5 +1,5 @@
 import { Cell, Grid, GridItem } from 'vant'
-import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { defineComponent, onMounted, reactive, ref, Transition, TransitionGroup } from 'vue'
 import styles from '../index.module.less'
 import iconSubsidy from '../images/icon-subsidy.png'
 import iconNews from '../images/icon-news.png'
@@ -50,7 +50,7 @@ export default defineComponent({
         startDate: '',
         /**训练照片数 */
         photoNum: 0
-      },
+      } as any,
       /**乐团资讯 */
       schoolWeekNews: {
         //
@@ -62,29 +62,37 @@ export default defineComponent({
         startDate: '',
         /**预计的乐团资讯数 */
         expectNewsNum: 0
-      }
+      } as any
     })
     const refreshing = ref(false)
     const getData = async () => {
       loading.value = true
+      /** 下拉刷新,重置数据 */
+      if (refreshing.value) {
+        data.salaryRecordList = []
+        data.schoolWeekPhoto = {}
+        data.schoolWeekNews = {}
+      }
       try {
-        const res: any = await request.post(`${state.platformApi}/schoolWeekSalaryRecord/manage`)
-        if (Array.isArray(res?.data?.salaryRecordList)){
+        const res: any = await request.post(`${state.platformApi}/schoolWeekSalaryRecord/manage`, {
+          hideLoading: refreshing.value
+        })
+        if (Array.isArray(res?.data?.salaryRecordList)) {
           data.salaryRecordList = res.data.salaryRecordList.map((n: any) => {
             return {
               ...n,
               startDate: n?.startDate?.split(' ')[0] || '',
-              endDate: n?.endDate?.split(' ')[0] || '',
+              endDate: n?.endDate?.split(' ')[0] || ''
             }
           })
         }
         data.schoolWeekPhoto = res?.data?.schoolWeekPhoto || {}
         data.schoolWeekNews = res?.data?.schoolWeekNews || {}
-        if (data.schoolWeekPhoto){
+        if (data.schoolWeekPhoto) {
           data.schoolWeekPhoto.startDate = data.schoolWeekPhoto?.startDate?.split(' ')[0] || ''
           data.schoolWeekPhoto.endDate = data.schoolWeekPhoto?.endDate?.split(' ')[0] || ''
         }
-        if (data.schoolWeekNews){
+        if (data.schoolWeekNews) {
           data.schoolWeekNews.startDate = data.schoolWeekNews?.startDate?.split(' ')[0] || ''
           data.schoolWeekNews.endDate = data.schoolWeekNews?.endDate?.split(' ')[0] || ''
         }
@@ -97,127 +105,133 @@ export default defineComponent({
     })
     return () => (
       <OFullRefresh
-        v-model:modelValue={refreshing.value}
-        onRefresh={getData}
-        style="min-height: calc(100vh - var(--van-nav-bar-height) - var(--header-height))"
+        modelValue={refreshing.value}
+        onRefresh={() => {
+          refreshing.value = true
+          getData()
+        }}
       >
         <div
-          class={[
-            styles.wrap,
-            !loading.value &&
-              !data.salaryRecordList.length &&
-              !data.schoolWeekPhoto.expectPhotoNum &&
-              !data.schoolWeekNews.expectNewsNum &&
-              'emptyRootContainer'
-          ]}
-          style="min-height: inherit"
+          class={styles.wrap}
+          style="min-height: calc(100vh - var(--van-nav-bar-height) - var(--header-height))"
         >
-          {!data.salaryRecordList.length ? null : (
-            <>
-              {data.salaryRecordList.map((item: ISalaryRecord) => {
-                return (
-                  <div class={styles.item} style={{ marginTop: 0 }}>
-                    <Cell
-                      center
-                      label={`${item.startDate} 至 ${item.endDate}`}
-                      isLink
-                      to={'/approval-manage-subsidy?salaryId=' + (item.id || '')}
-                    >
-                      {{
-                        title: () => (
-                          <div class={styles.itemTitle}>
-                            <img class={styles.titleIcon} src={iconSubsidy} />
-                            <span>补助确认</span>
-                          </div>
-                        )
-                      }}
-                    </Cell>
-                    <Grid class={styles.grid} columnNum={3} border={false}>
-                      <GridItem>
-                        <div class={styles.gridItem}>
-                          <div class={styles.gridItemTop}>
-                            <span class={styles.topNum}>{item.manageSalary}</span>元
+          <TransitionGroup name="van-fade">
+            {!!data.salaryRecordList.length && (
+              <div key="salaryRecordList">
+                {data.salaryRecordList.map((item: ISalaryRecord) => {
+                  return (
+                    <div class={styles.item} style={{ marginTop: 0 }}>
+                      <Cell
+                        center
+                        label={`${item.startDate} 至 ${item.endDate}`}
+                        isLink
+                        to={'/approval-manage-subsidy?salaryId=' + (item.id || '')}
+                      >
+                        {{
+                          title: () => (
+                            <div class={styles.itemTitle}>
+                              <img class={styles.titleIcon} src={iconSubsidy} />
+                              <span>补助确认</span>
+                            </div>
+                          )
+                        }}
+                      </Cell>
+                      <Grid class={styles.grid} columnNum={3} border={false}>
+                        <GridItem>
+                          <div class={styles.gridItem}>
+                            <div class={styles.gridItemTop}>
+                              <span class={styles.topNum}>{item.manageSalary}</span>元
+                            </div>
+                            <div>管理补助</div>
                           </div>
-                          <div>管理补助</div>
-                        </div>
-                      </GridItem>
-                      <GridItem>
-                        <div class={styles.gridItem}>
-                          <div class={styles.gridItemTop}>
-                            <span class={styles.topNum}>{item.courseSalary}</span>元
+                        </GridItem>
+                        <GridItem>
+                          <div class={styles.gridItem}>
+                            <div class={styles.gridItemTop}>
+                              <span class={styles.topNum}>{item.courseSalary}</span>元
+                            </div>
+                            <div>训练补助</div>
                           </div>
-                          <div>训练补助</div>
-                        </div>
-                      </GridItem>
-                      <GridItem>
-                        <div class={styles.gridItem}>
-                          <div class={styles.gridItemTop}>
-                            <span class={styles.topNum}>{item.trainingSalary}</span>元
+                        </GridItem>
+                        <GridItem>
+                          <div class={styles.gridItem}>
+                            <div class={styles.gridItemTop}>
+                              <span class={styles.topNum}>{item.trainingSalary}</span>元
+                            </div>
+                            <div>练习奖励</div>
                           </div>
-                          <div>练习奖励</div>
-                        </div>
-                      </GridItem>
-                    </Grid>
-                  </div>
-                )
-              })}
-            </>
-          )}
-
-          {!data.schoolWeekPhoto.expectPhotoNum ? null : (
-            <div class={styles.item} onClick={() => {
-              router.push({
-                path: '/my-orchestra'
-              })
-            }}>
-              <Cell
-                style={{ '--van-cell-value-color': '#333' }}
-                center
-                label={`${data.schoolWeekPhoto.startDate} 至 ${data.schoolWeekPhoto.endDate}`}
-                value={data.schoolWeekPhoto.photoNum + '/' + data.schoolWeekPhoto.expectPhotoNum}
-                isLink
-              >
-                {{
-                  title: () => (
-                    <div class={styles.itemTitle}>
-                      <img class={styles.titleIcon} src={iconNews} />
-                      <span>训练照片</span>
+                        </GridItem>
+                      </Grid>
                     </div>
                   )
+                })}
+              </div>
+            )}
+
+            {!data.schoolWeekPhoto.expectPhotoNum ? null : (
+              <div
+                key="schoolWeekPhoto"
+                class={styles.item}
+                onClick={() => {
+                  router.push({
+                    path: '/my-orchestra'
+                  })
                 }}
-              </Cell>
-            </div>
-          )}
-          {!data.schoolWeekNews.expectNewsNum ? null : (
-            <div class={styles.item} onClick={() => {
-              router.push({
-                path: '/orchestra-information'
-              })
-            }}>
-              <Cell
-                style={{ '--van-cell-value-color': '#333' }}
-                center
-                label={`${data.schoolWeekNews.startDate} 至 ${data.schoolWeekNews.endDate}`}
-                value={data.schoolWeekNews.newsNum + '/' + data.schoolWeekNews.expectNewsNum}
-                isLink
               >
-                {{
-                  title: () => (
-                    <div class={styles.itemTitle}>
-                      <img class={styles.titleIcon} src={iconPhoto} />
-                      <span>乐团资讯</span>
-                    </div>
-                  )
+                <Cell
+                  style={{ '--van-cell-value-color': '#333' }}
+                  center
+                  label={`${data.schoolWeekPhoto.startDate} 至 ${data.schoolWeekPhoto.endDate}`}
+                  value={data.schoolWeekPhoto.photoNum + '/' + data.schoolWeekPhoto.expectPhotoNum}
+                  isLink
+                >
+                  {{
+                    title: () => (
+                      <div class={styles.itemTitle}>
+                        <img class={styles.titleIcon} src={iconNews} />
+                        <span>训练照片</span>
+                      </div>
+                    )
+                  }}
+                </Cell>
+              </div>
+            )}
+            {!data.schoolWeekNews.expectNewsNum ? null : (
+              <div
+                key="schoolWeekNews"
+                class={styles.item}
+                onClick={() => {
+                  router.push({
+                    path: '/orchestra-information'
+                  })
                 }}
-              </Cell>
-            </div>
-          )}
-          {!loading.value &&
-          !data.salaryRecordList.length &&
-          !data.schoolWeekPhoto.expectPhotoNum &&
-          !data.schoolWeekNews.expectNewsNum ? (
-            <OEmpty />
-          ) : null}
+              >
+                <Cell
+                  style={{ '--van-cell-value-color': '#333' }}
+                  center
+                  label={`${data.schoolWeekNews.startDate} 至 ${data.schoolWeekNews.endDate}`}
+                  value={data.schoolWeekNews.newsNum + '/' + data.schoolWeekNews.expectNewsNum}
+                  isLink
+                >
+                  {{
+                    title: () => (
+                      <div class={styles.itemTitle}>
+                        <img class={styles.titleIcon} src={iconPhoto} />
+                        <span>乐团资讯</span>
+                      </div>
+                    )
+                  }}
+                </Cell>
+              </div>
+            )}
+
+            {!loading.value &&
+            !data.salaryRecordList.length &&
+            !data.schoolWeekPhoto.expectPhotoNum &&
+            !data.schoolWeekNews.expectNewsNum ? (
+              <OEmpty key="OEmpty" class="emptyFixedHeightContainer" tips="暂无处理事项" />
+            ) : null}
+          </TransitionGroup>
         </div>
       </OFullRefresh>
     )

+ 38 - 54
src/school/approval-manage/components/end-approval.tsx

@@ -2,7 +2,7 @@ import OEmpty from '@/components/o-empty'
 import OFullRefresh from '@/components/o-full-refresh'
 import dayjs from 'dayjs'
 import { List, PullRefresh, showToast } from 'vant'
-import { defineComponent, reactive, ref, onMounted } from 'vue'
+import { defineComponent, reactive, ref, onMounted, TransitionGroup } from 'vue'
 import { useRouter } from 'vue-router'
 import styles from './wait-approval.module.less'
 import request from '@/helpers/request'
@@ -19,46 +19,35 @@ export default defineComponent({
     const refreshing = ref(false)
     const loading = ref(false)
     const finished = ref(false)
-    const showContact = ref(false)
     const list = ref([])
 
     const getList = async () => {
-      console.log('getList')
-
+      if (loading.value) return
       loading.value = true
       try {
         if (refreshing.value) {
-          forms.page = 1
           list.value = []
-          refreshing.value = false
+          forms.page = 1
+          finished.value = false
         }
 
         const res = await request.post('/api-school/userApproveRecord/page', {
-          data: { ...forms, hasHandle: true }
+          data: { ...forms, hasHandle: true },
+          hideLoading: refreshing.value
         })
 
-        if (list.value.length > 0 && res.data.pages === 1) {
-          return
+        if (Array.isArray(res?.data?.rows)) {
+          list.value = list.value.concat(res.data.rows || [])
+          forms.page = res.data.current + 1
+          finished.value = !res.data.next
+        } else {
+          finished.value = true
         }
-        forms.page = res.data.current + 1
-        list.value = list.value.concat(res.data.rows || [])
-        showContact.value = list.value.length > 0
-        loading.value = false
-        finished.value = res.data.current >= res.data.pages
       } catch (e: any) {
-        // console.log(e, 'e')
-        const message = e.message
-        showToast(message)
-        showContact.value = false
         finished.value = true
       }
-    }
-    const onRefresh = () => {
-      finished.value = false
-      // 重新加载数据
-      // 将 loading 设置为 true,表示处于加载状态
-      loading.value = true
-      getList()
+      loading.value = false
+      refreshing.value = false
     }
     onMounted(() => {
       getList()
@@ -68,36 +57,31 @@ export default defineComponent({
       router.push({ path: '/student-leave', query: { id: row.id, type: 'end' } })
     }
     return () => (
-      <>
-        <div
-          class={[styles.approvalWrap, !showContact.value && 'emptyRootContainer']}
-          style="min-height: calc(100vh - var(--van-tabs-line-height) - var(--header-height) - 1.33333rem);"
+      <OFullRefresh
+        modelValue={refreshing.value}
+        onRefresh={() => {
+          refreshing.value = true
+          getList()
+        }}
+        style="min-height: calc(100vh - var(--van-tabs-line-height) - var(--header-height) - 1.33333rem);"
+      >
+        <List
+          loading={loading.value}
+          loading-text=" "
+          finished={finished.value}
+          finished-text="没有更多了"
+          onLoad={getList}
         >
-          {showContact.value ? (
-            <OFullRefresh
-              v-model:modelValue={refreshing.value}
-              onRefresh={onRefresh}
-              style="min-height: calc(100vh - var(--van-tabs-line-height) - var(--header-height) - 1.33333rem);"
-            >
-              <List
-                loading-text=" "
-                // v-model:loading={loading.value}
-                finished={finished.value}
-                finished-text="没有更多了"
-                onLoad={getList}
-              >
-                {list.value.map((item: any) => (
-                  <div onClick={() => gotoDetail(item)}>
-                    <ApprovalItem item={item} type="end"></ApprovalItem>
-                  </div>
-                ))}
-              </List>
-            </OFullRefresh>
-          ) : (
-            <OEmpty />
-          )}
-        </div>
-      </>
+          <TransitionGroup name="van-fade">
+            {list.value.map((item: any, itemIndex: number) => (
+              <div key={`index-${itemIndex}`} onClick={() => gotoDetail(item)}>
+                <ApprovalItem item={item} type="end"></ApprovalItem>
+              </div>
+            ))}
+          </TransitionGroup>
+        </List>
+        {!loading.value && !list.value.length && <OEmpty tips="暂无审批" />}
+      </OFullRefresh>
     )
   }
 })

+ 48 - 63
src/school/approval-manage/components/wait-approval.tsx

@@ -2,7 +2,7 @@ import OEmpty from '@/components/o-empty'
 import dayjs from 'dayjs'
 import { List, PullRefresh, showToast } from 'vant'
 import OFullRefresh from '@/components/o-full-refresh'
-import { defineComponent, reactive, ref, onMounted } from 'vue'
+import { defineComponent, reactive, ref, onMounted, TransitionGroup } from 'vue'
 import { useRouter } from 'vue-router'
 import styles from './wait-approval.module.less'
 import request from '@/helpers/request'
@@ -19,46 +19,34 @@ export default defineComponent({
     const refreshing = ref(false)
     const loading = ref(false)
     const finished = ref(false)
-    const showContact = ref(false)
     const list = ref([])
 
     const getList = async () => {
-      console.log('getList')
+      if (loading.value) return
       loading.value = true
+      if (refreshing.value) {
+        finished.value = false
+        forms.page = 1
+        list.value = []
+      }
       try {
-        if (refreshing.value) {
-          forms.page = 1
-          list.value = []
-          refreshing.value = false
-        }
-
         const res = await request.post('/api-school/userApproveRecord/page', {
-          data: { ...forms, hasHandle: false }
+          data: { ...forms, hasHandle: false },
+          hideLoading: refreshing.value
         })
 
-        if (list.value.length > 0 && res.data.pages === 1) {
-          return
+        if (Array.isArray(res?.data?.rows)) {
+          forms.page = res.data.current + 1
+          list.value = list.value.concat(res.data.rows || [])
+          finished.value = !res.data.next
+        } else {
+          finished.value = false
         }
-
-        forms.page = res.data.current + 1
-        list.value = list.value.concat(res.data.rows || [])
-        showContact.value = list.value.length > 0
-        loading.value = false
-        finished.value = res.data.current >= res.data.pages
       } catch (e: any) {
-        // console.log(e, 'e')
-        const message = e.message
-        showToast(message)
-        showContact.value = false
         finished.value = true
       }
-    }
-    const onRefresh = () => {
-      finished.value = false
-      // 重新加载数据
-      // 将 loading 设置为 true,表示处于加载状态
-      loading.value = true
-      getList()
+      loading.value = false
+      refreshing.value = false
     }
 
     const gotoDetail = (row: any) => {
@@ -69,43 +57,40 @@ export default defineComponent({
       getList()
     })
     return () => (
-      <>
-        <div class={styles.approvalWrap}>
-          <OFullRefresh
-            v-model:modelValue={refreshing.value}
-            onRefresh={onRefresh}
-            style="min-height: calc(100vh - var(--van-tabs-line-height) - var(--header-height) - 1.33333rem);"
-          >
-            {showContact.value ? (
-              <List
-                // v-model:loading={loading.value}
-                finished={finished.value}
-                finished-text="没有更多了"
-                loading-text=" "
-                onLoad={getList}
-              >
-                {list.value.map((item: any) => (
-                  <div
-                    onClick={() => {
-                      gotoDetail(item)
-                    }}
-                  >
-                    {' '}
-                    <ApprovalItem item={item} type="wait"></ApprovalItem>
-                  </div>
-                ))}
-              </List>
-            ) : (
+      <OFullRefresh
+        modelValue={refreshing.value}
+        onRefresh={() => {
+          refreshing.value = true
+          getList()
+        }}
+        style="min-height: calc(100vh - var(--van-tabs-line-height) - var(--header-height) - 1.33333rem);"
+      >
+        <List
+          loading={loading.value}
+          finished={finished.value}
+          finished-text="没有更多了"
+          loading-text=" "
+          onLoad={getList}
+        >
+          <TransitionGroup name="van-fade">
+            {list.value.map((item: any, itemIndex: number) => (
               <div
-                style="min-height: calc(100vh - var(--van-tabs-line-height) - var(--header-height) - 1.33333rem);"
-                class={[!showContact.value && 'emptyRootContainer']}
+                key={`index-${itemIndex}`}
+                onClick={() => {
+                  gotoDetail(item)
+                }}
               >
-                <OEmpty />
+                <ApprovalItem item={item} type="wait"></ApprovalItem>
               </div>
-            )}
-          </OFullRefresh>
-        </div>
-      </>
+            ))}
+          </TransitionGroup>
+        </List>
+        {!loading.value && !list.value.length && (
+          <div class="emptyFixedHeightContainer">
+            <OEmpty tips="暂无审批" />
+          </div>
+        )}
+      </OFullRefresh>
     )
   }
 })

+ 1 - 0
src/school/approval-manage/index.module.less

@@ -38,6 +38,7 @@
 }
 .wrap{
   padding: 12px 0;
+  box-sizing: border-box;
 }
 .item {
   border-radius: 10px;

+ 4 - 1
src/school/approval-manage/subsidy/index.tsx

@@ -33,7 +33,10 @@ export default defineComponent({
     const getData = async () => {
       try {
         const res: any = await request.post(
-          `${state.platformApi}/schoolWeekSalaryRecord/manageConfirm/${route.query.salaryId}`
+          `${state.platformApi}/schoolWeekSalaryRecord/manageConfirm/${route.query.salaryId}`,
+          {
+            hideLoading: refreshing.value
+          }
         )
         if (res?.data) {
           const {

+ 4 - 0
src/school/orchestra-story/index.module.less

@@ -68,6 +68,10 @@
       height: 200px;
       border-radius: 10px;
       overflow: hidden;
+      background-color: #eaeaea;
+      background-repeat: no-repeat;
+      background-position: center;
+      background-image: url('../orchestra/images/icon-photo-default.png');
     }
   }
 

+ 11 - 1
src/school/orchestra-story/index.tsx

@@ -219,7 +219,17 @@ export default defineComponent({
                       item.attachments.map((child: any) => (
                         <SwipeItem>
                           {item.type === 'IMAGE' && (
-                            <Image src={child.url} class={styles.swipeImg} fit="cover" />
+                            <div
+                              class={styles.swipeImg}
+                              style={
+                                child.url
+                                  ? {
+                                      backgroundImage: `url(${child.url})`,
+                                      backgroundSize: 'cover'
+                                    }
+                                  : ''
+                              }
+                            ></div>
                           )}
                           {item.type === 'VIDEO' && (
                             <OVideo

+ 9 - 8
src/school/orchestra/compontent/photo-create.tsx

@@ -56,7 +56,7 @@ export default defineComponent({
       selectItem: {} as any,
       selectType: 'add',
       fileList: [] as any,
-      bucket: 'gyt',
+      bucket: 'gyt'
     })
 
     const onAddPhoto = async () => {
@@ -354,13 +354,14 @@ export default defineComponent({
                       }}
                     ></i>
 
-                    {item.coverUrl ? (
-                      <Image class={styles.img} src={item.coverUrl} fit="cover" />
-                    ) : (
-                      <div class={[styles.img, styles.default]}>
-                        <Image src={iconPhoneDefaut} class={styles.defaultImg} />
-                      </div>
-                    )}
+                    <div
+                      class={styles.img}
+                      style={
+                        item.coverUrl
+                          ? { backgroundImage: `url(${item.coverUrl})`, backgroundSize: 'cover' }
+                          : ''
+                      }
+                    ></div>
 
                     <p class={[styles.name, 'van-ellipsis']}>{item.name}</p>
                     <p class={styles.num}>{item.photoCount}张</p>

+ 7 - 0
src/school/orchestra/compontent/photo-detail.module.less

@@ -25,11 +25,18 @@
       margin-top: 12px;
       position: relative;
       .img {
+        display: flex;
+        align-items: center;
+        justify-content: center;
         width: 170px;
         height: 170px;
         border-radius: 10px;
         overflow: hidden;
         position: relative;
+        background-color: #eaeaea;
+        background-repeat: no-repeat;
+        background-position: center;
+        background-image: url('../images/icon-photo-default.png');
       }
     }
 

+ 9 - 2
src/school/orchestra/compontent/photo-detail.tsx

@@ -334,13 +334,20 @@ export default defineComponent({
                       )
                     }}
                   />
-                  <Image class={styles.img} src={item.fileUrl} fit="cover" />
+                  <div
+                    class={styles.img}
+                    style={
+                      item.fileUrl
+                        ? { backgroundImage: `url(${item.fileUrl})`, backgroundSize: 'cover' }
+                        : ''
+                    }
+                  ></div>
                 </div>
               ))}
             </CheckboxGroup>
           </List>
         ) : (
-          <OEmpty btnStatus={false} tips="暂无相片" />
+          <OEmpty btnStatus={false} tips="暂无片" />
         )}
 
         {state.isEdit && (

+ 15 - 16
src/school/orchestra/compontent/photo.module.less

@@ -8,10 +8,10 @@
   border-radius: 10px;
   font-size: 16px;
 }
-.btnGroup{
+.btnGroup {
   display: flex;
   padding: 12px;
-  .addPhone{
+  .addPhone {
     margin: 0 8px;
   }
 }
@@ -35,19 +35,18 @@
       z-index: 9;
     }
     .img {
-      width: 170px;
-      height: 170px;
-      border-radius: 10px;
-      overflow: hidden;
-    }
-    .default {
       display: flex;
       align-items: center;
       justify-content: center;
       background: #eaeaea;
-      .defaultImg {
-        width: 45px;
-      }
+      width: 170px;
+      height: 170px;
+      border-radius: 10px;
+      overflow: hidden;
+      background-color: #eaeaea;
+      background-repeat: no-repeat;
+      background-position: center;
+      background-image: url('../images/icon-photo-default.png');
     }
     .name {
       padding: 6px 0 4px;
@@ -91,11 +90,11 @@
 .photos {
   padding: 0 16px 16px;
 }
-:global{
-  .van-image-preview{
+:global {
+  .van-image-preview {
     .van-image-preview__close-icon,
-    .van-image-preview__index{
-      top: 50px
+    .van-image-preview__index {
+      top: 50px;
     }
   }
-}
+}

+ 8 - 7
src/school/orchestra/compontent/photo.tsx

@@ -228,13 +228,14 @@ export default defineComponent({
                     }}
                   ></i>
 
-                  {item.coverUrl ? (
-                    <Image class={styles.img} src={item.coverUrl} fit="cover" />
-                  ) : (
-                    <div class={[styles.img, styles.default]}>
-                      <Image src={iconPhoneDefaut} class={styles.defaultImg} />
-                    </div>
-                  )}
+                  <div
+                    class={styles.img}
+                    style={
+                      item.coverUrl
+                        ? { backgroundImage: `url(${item.coverUrl})`, backgroundSize: 'cover' }
+                        : ''
+                    }
+                  ></div>
 
                   <p class={[styles.name, 'van-ellipsis']}>{item.name}</p>
                   <p class={styles.num}>{item.photoCount}张</p>

+ 5 - 5
src/student/music-group/pre-apply/order-detail.tsx

@@ -179,11 +179,11 @@ export default defineComponent({
             // 默认关闭支付二维码弹窗
             state.showQrcode = false
             clearInterval(orderTimer)
-            window.location.replace(
-              window.location.origin +
-                '/orchestra-student/#/payment-result?orderNo=' +
-                state.orderNo
-            )
+            setTimeout(() => {
+              window.location.replace(
+                window.location.origin + '/#/payment-result?orderNo=' + state.orderNo
+              )
+            }, 100)
           }
         } catch {
           //

+ 14 - 0
src/styles/index.less

@@ -263,3 +263,17 @@ body {
 input {
   caret-color: #ff8057;
 }
+.emptyFixedHeightContainer{
+  position: absolute;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  top: 0;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 0;
+  .van-empty{
+    transform: translateY(-15%);
+  }
+}