Jelajahi Sumber

确认补助

skyblued 2 tahun lalu
induk
melakukan
e2f3e25f6b

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

@@ -67,7 +67,7 @@ export default defineComponent({
     /**确认补助 */
     const sendConfirm = () => {
       request
-        .post(`${state.platformApi}/choolWeekSalaryRecord/manageConfirmed/${route.query.salaryId}`)
+        .post(`${state.platformApi}/schoolWeekSalaryRecord/manageConfirmed/${route.query.salaryId}`)
         .then((res: any) => {
           if (res?.code == 200) {
             router.back()

+ 14 - 7
src/views/mine-orchestra/my-photo/index.module.less

@@ -1,31 +1,38 @@
-.photoWrap{
+.photoWrap {
   display: flex;
   flex-wrap: wrap;
   padding: 12px;
   box-sizing: border-box;
   justify-content: space-between;
-  div{
+  div {
     box-sizing: border-box;
   }
 }
-.photoItem{
+.photoItem {
   position: relative;
   width: 49%;
   margin-bottom: 12px;
-  .gridImg{
+  .gridImg {
     display: flex;
     justify-content: center;
     align-items: center;
     height: calc(100vw / 2);
     width: 100%;
+    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');
   }
-  .iconImage{
+  .iconImage {
     display: flex;
     justify-content: center;
   }
-  .gridName{
+  .gridName {
     font-size: 16px;
-    color:#333;
+    color: #333;
     padding: 6px 0 4px 0;
   }
   .gridDes {

+ 16 - 13
src/views/mine-orchestra/my-photo/index.tsx

@@ -50,12 +50,15 @@ export default defineComponent({
       }
       data.loading = false
     }
-    watch(() => props.orchestraId, () => {
-      data.pages.page = 1
-      data.list = []
-      data.finished = false
-      getList()
-    })
+    watch(
+      () => props.orchestraId,
+      () => {
+        data.pages.page = 1
+        data.list = []
+        data.finished = false
+        getList()
+      }
+    )
 
     // 预览图片
     const onShowImage = (index: number) => {
@@ -101,14 +104,14 @@ export default defineComponent({
                     })
                   }}
                 >
-                  <Image
+                  <div
                     class={styles.gridImg}
-                    src={item.coverUrl || 'none'}
-                    fit="cover"
-                    errorIcon={iconImage}
-                  >
-                    {{ loading: () => <Loading type="spinner" /> }}
-                  </Image>
+                    style={
+                      item.coverUrl
+                        ? { backgroundImage: `url(${item.coverUrl})`, backgroundSize: 'cover' }
+                        : ''
+                    }
+                  ></div>
 
                   <div class={styles.gridName}>{item.name}</div>
                   <div class={styles.gridDes}>{item.photoCount}张</div>

+ 53 - 37
src/views/mine-orchestra/photo-list/detail.tsx

@@ -8,6 +8,7 @@ import { useRoute } from 'vue-router'
 import styles from './index.module.less'
 import iconImage from '../images/icon-photo-default.png'
 import OSticky from '@/components/o-sticky'
+import OFullRefresh from '@/components/o-full-refresh'
 export default defineComponent({
   name: 'photo-detail',
   props: {
@@ -20,6 +21,7 @@ export default defineComponent({
     const route = useRoute()
     console.log('🚀 ~ route', route)
     const data = reactive({
+      refreshing: false,
       loading: false,
       finished: false,
       pages: {
@@ -30,7 +32,12 @@ export default defineComponent({
     })
 
     const getList = async () => {
+      if (data.loading) return
       data.loading = true
+      if (data.refreshing){
+        data.list = []
+        data.pages.page = 1
+      }
       try {
         const res = await request.post(`${state.platformApi}/orchestraPhoto/page`, {
           data: {
@@ -39,13 +46,15 @@ export default defineComponent({
           }
         })
         if (Array.isArray(res?.data?.rows)) {
-          data.list = data.list.concat(res.data.rows)
-          data.pages.page += 1
-          if (!res.data.rows.length) {
-            data.finished = true
-          }
+          data.list = new Array(10).fill(res.data.rows[0]) // data.list.concat(res.data.rows)
+          data.pages.page = res.data.current + 1
+          data.finished = !res.data.next
+        } else {
+          data.finished = true
         }
-      } catch {}
+      } catch {
+        data.finished = true
+      }
       data.loading = false
     }
 
@@ -69,39 +78,46 @@ export default defineComponent({
 
     return () => (
       <div>
-        <OSticky>
+        <OSticky
+          onGetHeight={(height: number) => {
+            document.documentElement.style.setProperty('--header-height', height + 'px')
+          }}
+        >
           <OHeader />
         </OSticky>
-        <div class={styles.phoneDetail}>
-          {!!data.list.length && (
-            <List
-              // v-model:loading={data.loading}
-              finished={data.finished}
-              finishedText="没有更多数据"
-              onLoad={getList}
-              immediateCheck={false}
-            >
-              <Grid class={styles.detailGrid} columnNum={3} border={false} gutter={3}>
-                {data.list.map((item: any, index: number) => (
-                  <GridItem onClick={() => onShowImage(index)}>
-                    <Image
-                      class={styles.gridImg}
-                      style={{ width: '100%', height: 'calc(100vw / 3)' }}
-                      src={item.fileUrl}
-                      errorIcon={iconImage}
-                      fit="cover"
-                    >
-                      {{
-                        loading: () => <Loading type="spinner" />
-                      }}
-                    </Image>
-                  </GridItem>
-                ))}
-              </Grid>
-            </List>
-          )}
-          {!data.loading && !data.list.length && <OEmpty btnStatus={false} tips="暂无相片" />}
-        </div>
+        <OFullRefresh modelValue={data.refreshing} onRefresh={() => {
+          data.refreshing = true
+          getList()
+        }}>
+          <div class={styles.phoneDetail}>
+            {!!data.list.length && (
+              <List
+                loading={data.loading}
+                loadingText=" "
+                finished={data.finished}
+                finishedText="没有更多数据"
+                onLoad={getList}
+                immediateCheck={false}
+              >
+                <Grid class={styles.detailGrid} columnNum={3} border={false} gutter={3}>
+                  {data.list.map((item: any, index: number) => (
+                    <GridItem onClick={() => onShowImage(index)}>
+                      <div
+                        class={styles.gridImg}
+                        style={{
+                          backgroundImage: item.fileUrl ? `url(${item.fileUrl})` : '',
+                          backgroundSize: item.fileUrl ? 'cover' : '',
+                          height: 'calc(100vw / 3)'
+                        }}
+                      ></div>
+                    </GridItem>
+                  ))}
+                </Grid>
+              </List>
+            )}
+            {!data.loading && !data.list.length && <OEmpty btnStatus={false} tips="暂无照片" />}
+          </div>
+        </OFullRefresh>
       </div>
     )
   }

+ 25 - 12
src/views/mine-orchestra/photo-list/index.module.less

@@ -8,17 +8,25 @@
     box-sizing: border-box;
   }
 }
+.gridImg {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 100%;
+  height: calc(100vw / 2);
+  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');
+}
 .photoItem {
   position: relative;
   width: 49%;
   margin-bottom: 12px;
-  .gridImg {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    width: 100%;
-    height: calc(100vw / 2);
-  }
+
   .iconImage {
     display: flex;
     justify-content: center;
@@ -34,18 +42,23 @@
   }
 }
 
+.phoneDetail{
+  
+}
+
 .detailGrid {
   :global {
     .van-grid-item__content {
       padding: 0;
+      background-color: transparent;
     }
   }
 }
-: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;
     }
   }
-}
+}

+ 17 - 8
src/views/mine-orchestra/photo-list/index.tsx

@@ -31,6 +31,7 @@ export default defineComponent({
     })
 
     const getList = async () => {
+      if (data.loading) return
       data.loading = true
       try {
         const res = await request.post(`${state.platformApi}/orchestraPhotoAlbum/page`, {
@@ -43,11 +44,13 @@ export default defineComponent({
         if (Array.isArray(res?.data?.rows)) {
           data.list = data.list.concat(res.data.rows)
           data.pages.page += 1
-          if (!res.data.rows.length) {
-            data.finished = true
-          }
+          data.finished = !res.data.next
+        } else {
+          data.finished = true
         }
-      } catch {}
+      } catch {
+        data.finished = true
+      }
       data.loading = false
     }
 
@@ -77,7 +80,8 @@ export default defineComponent({
         <div class={styles.phoneDetail}>
           {!data.loading && !!data.list.length && (
             <List
-              // v-model:loading={data.loading}
+              loading={data.loading}
+              loadingText=" "
               finished={data.finished}
               finishedText="没有更多数据"
               onLoad={getList}
@@ -96,9 +100,14 @@ export default defineComponent({
                       })
                     }}
                   >
-                    <Image class={styles.gridImg} src={item.coverUrl} fit="cover">
-                      {{ loading: () => <Loading type="spinner" /> }}
-                    </Image>
+                    <div
+                      class={styles.gridImg}
+                      style={
+                        item.coverUrl
+                          ? { backgroundImage: `url(${item.coverUrl})`, backgroundSize: 'cover' }
+                          : ''
+                      }
+                    ></div>
 
                     <div class={styles.gridName}>{item.name || ''}</div>
                     <div class={styles.gridDes}>{item.photoCount || 0}张</div>