Pārlūkot izejas kodu

管理端,补助详情

skyblued 2 gadi atpakaļ
vecāks
revīzija
3cbdf83857

+ 23 - 7
src/school/approval-manage/agency/index.tsx

@@ -8,6 +8,7 @@ import request from '@/helpers/request'
 import { state } from '@/state'
 import OFullRefresh from '@/components/o-full-refresh'
 import OEmpty from '@/components/o-empty'
+import { useRouter } from 'vue-router'
 
 interface ISalaryRecord {
   /**学校补助确认记录ID */
@@ -35,6 +36,7 @@ interface ISalaryRecord {
 export default defineComponent({
   name: 'approval-manage-agency',
   setup() {
+    const router = useRouter()
     const loading = ref(true)
     const data = reactive({
       salaryRecordList: [] as ISalaryRecord[],
@@ -68,17 +70,23 @@ export default defineComponent({
       try {
         const res: any = await request.post(`${state.platformApi}/schoolWeekSalaryRecord/manage`)
         if (Array.isArray(res?.data?.salaryRecordList)){
-          data.salaryRecordList = res.data.salaryRecordList
+          data.salaryRecordList = res.data.salaryRecordList.map((n: any) => {
+            return {
+              ...n,
+              startDate: n?.startDate?.split(' ')[0] || '',
+              endDate: n?.endDate?.split(' ')[0] || '',
+            }
+          })
         }
         data.schoolWeekPhoto = res?.data?.schoolWeekPhoto || {}
         data.schoolWeekNews = res?.data?.schoolWeekNews || {}
         if (data.schoolWeekPhoto){
-          data.schoolWeekPhoto.startDate = data.schoolWeekPhoto?.startDate?.split(' ')[0]
-          data.schoolWeekPhoto.endDate = data.schoolWeekPhoto?.endDate?.split(' ')[0]
+          data.schoolWeekPhoto.startDate = data.schoolWeekPhoto?.startDate?.split(' ')[0] || ''
+          data.schoolWeekPhoto.endDate = data.schoolWeekPhoto?.endDate?.split(' ')[0] || ''
         }
         if (data.schoolWeekNews){
-          data.schoolWeekNews.startDate = data.schoolWeekNews?.startDate?.split(' ')[0]
-          data.schoolWeekNews.endDate = data.schoolWeekNews?.endDate?.split(' ')[0]
+          data.schoolWeekNews.startDate = data.schoolWeekNews?.startDate?.split(' ')[0] || ''
+          data.schoolWeekNews.endDate = data.schoolWeekNews?.endDate?.split(' ')[0] || ''
         }
       } catch (error) {}
       loading.value = false
@@ -157,7 +165,11 @@ export default defineComponent({
           )}
 
           {!data.schoolWeekPhoto.expectPhotoNum ? null : (
-            <div class={styles.item}>
+            <div class={styles.item} onClick={() => {
+              router.push({
+                path: '/my-orchestra'
+              })
+            }}>
               <Cell
                 style={{ '--van-cell-value-color': '#333' }}
                 center
@@ -177,7 +189,11 @@ export default defineComponent({
             </div>
           )}
           {!data.schoolWeekNews.expectNewsNum ? null : (
-            <div class={styles.item}>
+            <div class={styles.item} onClick={() => {
+              router.push({
+                path: '/orchestra-information'
+              })
+            }}>
               <Cell
                 style={{ '--van-cell-value-color': '#333' }}
                 center

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

@@ -90,6 +90,8 @@
     width: 44px;
     height: 44px;
     margin-right: 8px;
+    border-radius: 50%;
+    overflow: hidden;
   }
   :global(.van-cell__value) {
     display: flex;

+ 6 - 4
src/school/approval-manage/index.tsx

@@ -6,12 +6,12 @@ import MyApproval from './MyApproval'
 import Agency from './agency'
 import OSticky from '@/components/o-sticky'
 import OHeader from '@/components/o-header'
+import { state } from '@/state'
 const activeName = ref('wait')
 export default defineComponent({
   name: 'approval-manage',
   setup() {
     const router = useRouter()
-    const state = reactive({})
     const headerHeight = ref(0)
     return () => (
       <div>
@@ -31,9 +31,11 @@ export default defineComponent({
           offsetTop={headerHeight.value}
           swipeable
         >
-          <Tab name="wait" title="处理事项">
-            <Agency />
-          </Tab>
+          {state.user?.data?.manageAdmin && (
+            <Tab name="wait" title="处理事项">
+              <Agency />
+            </Tab>
+          )}
           <Tab name="end" title="我的审批">
             <MyApproval />
           </Tab>

+ 1 - 1
src/school/approval-manage/subsidy/grant-detail.tsx

@@ -70,7 +70,7 @@ export default defineComponent({
             <div class={styles.item}>
               <Cell
                 center
-                value={`${data.manageSalary.photoNum}/${data.manageSalary.expectPhotoNum}`}
+                value={`${data.manageSalary.photoNum || 0}/${data.manageSalary.expectPhotoNum || 0}`}
               >
                 {{
                   title: () => (

+ 163 - 126
src/school/approval-manage/subsidy/index.tsx

@@ -8,6 +8,7 @@ import { useRoute, useRouter } from 'vue-router'
 import OFullRefresh from '@/components/o-full-refresh'
 import OHeader from '@/components/o-header'
 import OSticky from '@/components/o-sticky'
+import iconTeacher from '@/common/images/icon_teacher.png'
 
 export default defineComponent({
   name: 'approval-manage-subsidy',
@@ -34,6 +35,26 @@ export default defineComponent({
         const res: any = await request.post(
           `${state.platformApi}/schoolWeekSalaryRecord/manageConfirm/${route.query.salaryId}`
         )
+        if (res?.data) {
+          const {
+            courseSalaryInfo,
+            manageSalaryInfo,
+            practiceSalaryInfo,
+            startDate = '',
+            endDate = '',
+            manageSalary,
+            courseSalary,
+            practiceSalary
+          } = res.data
+          data.courseSalaryInfo = courseSalaryInfo
+          data.manageSalaryInfo = manageSalaryInfo
+          data.practiceSalaryInfo = practiceSalaryInfo
+          data.startDate = startDate?.split(' ')[0] || ''
+          data.endDate = endDate?.split(' ')[0] || ''
+          data.manageSalary = manageSalary
+          data.courseSalary = courseSalary
+          data.practiceSalary = practiceSalary
+        }
       } catch (error) {}
       refreshing.value = false
     }
@@ -69,140 +90,152 @@ export default defineComponent({
           style="min-height: calc(100vh - var(--header-height))"
         >
           <div class={styles.wrap}>
-            <div class={styles.item}>
-              <Cell center>
-                {{
-                  title: () => (
-                    <div class={styles.itemTitle}>
-                      <span>
-                        {data.startDate} 至 {data.endDate}
-                      </span>
-                      <span class={styles.itemTag}>补助周期</span>
+            {!!data.courseSalaryInfo && (
+              <div class={styles.item}>
+                <Cell center>
+                  {{
+                    title: () => (
+                      <div class={styles.itemTitle}>
+                        <span>
+                          {data.startDate} 至 {data.endDate}
+                        </span>
+                        <span class={styles.itemTag}>补助周期</span>
+                      </div>
+                    )
+                  }}
+                </Cell>
+                <Grid class={styles.grid} columnNum={3} border={false}>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum}>{data.manageSalary || 0}</span>元
+                      </div>
+                      <div>管理补助</div>
                     </div>
-                  )
-                }}
-              </Cell>
-              <Grid class={styles.grid} columnNum={3} border={false}>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>{data.manageSalary || 0}</span>元
+                  </GridItem>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum}>{data.courseSalary || 0}</span>元
+                      </div>
+                      <div>训练补助</div>
                     </div>
-                    <div>管理补助</div>
-                  </div>
-                </GridItem>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>{data.courseSalary || 0}</span>元
+                  </GridItem>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum}>{data.practiceSalary || 0}</span>元
+                      </div>
+                      <div>练习奖励</div>
                     </div>
-                    <div>训练补助</div>
-                  </div>
-                </GridItem>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>{data.practiceSalary || 0}</span>元
-                    </div>
-                    <div>练习奖励</div>
-                  </div>
-                </GridItem>
-              </Grid>
-            </div>
+                  </GridItem>
+                </Grid>
+              </div>
+            )}
 
-            <div class={styles.item}>
-              <Cell
-                style={{ '--van-cell-value-color': '#F44541' }}
-                center
-                value={`${data.manageSalaryInfo.expectPhotoNum}/${data.manageSalaryInfo.photoNum}`}
-                isLink
-                to={'/subsidy-grant-detail?id=' + (data.manageSalaryInfo.id || '')}
-              >
-                {{
-                  title: () => (
-                    <div class={styles.itemTitle}>
-                      <div class={styles.titleLine}></div>
-                      <span>管理补助</span>
+            {!!data.manageSalaryInfo && (
+              <div class={styles.item}>
+                <Cell
+                  style={{ '--van-cell-value-color': '#F44541' }}
+                  center
+                  value={`${data.manageSalaryInfo.expectPhotoNum || 0}/${
+                    data.manageSalaryInfo.photoNum || 0
+                  }`}
+                  isLink
+                  to={'/subsidy-grant-detail?id=' + (data.manageSalaryInfo.id || '')}
+                >
+                  {{
+                    title: () => (
+                      <div class={styles.itemTitle}>
+                        <div class={styles.titleLine}></div>
+                        <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} style={{ color: '#333' }}>
+                          {data.manageSalaryInfo.standardSalary || 0}
+                        </span>
+                        元/周
+                      </div>
+                      <div>补助标准</div>
                     </div>
-                  )
-                }}
-              </Cell>
-              <Grid class={styles.grid} columnNum={3} border={false}>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum} style={{ color: '#333' }}>
-                        {data.manageSalaryInfo.standardSalary || 0}
-                      </span>
-                      元/周
+                  </GridItem>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum} style={{ color: '#333' }}>
+                          {data.manageSalaryInfo.standardSalary || 0}
+                        </span>
+                        课时
+                      </div>
+                      <div>本周课时数</div>
                     </div>
-                    <div>补助标准</div>
-                  </div>
-                </GridItem>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum} style={{ color: '#333' }}>
-                        {data.manageSalaryInfo.standardSalary || 0}
-                      </span>
-                      课时
+                  </GridItem>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum}>{data.manageSalaryInfo.actualSalary || 0}</span>
+                        元
+                      </div>
+                      <div>实际补助</div>
                     </div>
-                    <div>本周课时数</div>
-                  </div>
-                </GridItem>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>{data.manageSalaryInfo.actualSalary || 0}</span>元
-                    </div>
-                    <div>实际补助</div>
-                  </div>
-                </GridItem>
-              </Grid>
-            </div>
+                  </GridItem>
+                </Grid>
+              </div>
+            )}
 
-            <div class={styles.item}>
-              <Cell center isLink to={'/subsidy-reward-detail'}>
-                {{
-                  title: () => (
-                    <div class={styles.itemTitle}>
-                      <div class={styles.titleLine}></div>
-                      <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}>
-                        {data.practiceSalaryInfo.standardSalary || 0}
-                      </span>
-                      元/人
+            {!!data.practiceSalaryInfo && (
+              <div class={styles.item}>
+                <Cell center isLink to={'/subsidy-reward-detail'}>
+                  {{
+                    title: () => (
+                      <div class={styles.itemTitle}>
+                        <div class={styles.titleLine}></div>
+                        <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}>
+                          {data.practiceSalaryInfo.standardSalary || 0}
+                        </span>
+                        元/人
+                      </div>
+                      <div>补助标准</div>
                     </div>
-                    <div>补助标准</div>
-                  </div>
-                </GridItem>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>{data.practiceSalaryInfo.targetNum || 0}</span>人
+                  </GridItem>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum}>{data.practiceSalaryInfo.targetNum || 0}</span>
+                        人
+                      </div>
+                      <div>练习达标人数</div>
                     </div>
-                    <div>练习达标人数</div>
-                  </div>
-                </GridItem>
-                <GridItem>
-                  <div class={styles.gridItem}>
-                    <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>{data.practiceSalaryInfo.actualSalary || 0}</span>
-                      元
+                  </GridItem>
+                  <GridItem>
+                    <div class={styles.gridItem}>
+                      <div class={styles.gridItemTop}>
+                        <span class={styles.topNum}>
+                          {data.practiceSalaryInfo.actualSalary || 0}
+                        </span>
+                        元
+                      </div>
+                      <div>实际奖励</div>
                     </div>
-                    <div>实际奖励</div>
-                  </div>
-                </GridItem>
-              </Grid>
-            </div>
+                  </GridItem>
+                </Grid>
+              </div>
+            )}
 
             <div class={styles.item}>
               <Cell center>
@@ -260,7 +293,9 @@ export default defineComponent({
                       to={'/subsidy-exercise-detail?id=' + teacher.id}
                     >
                       {{
-                        icon: () => <img class={styles.itemPicture} src={teacher.avatar} />,
+                        icon: () => (
+                          <img class={styles.itemPicture} src={teacher.avatar || iconTeacher} />
+                        ),
                         value: () => (
                           <div class={styles.gridItem}>
                             <div class={styles.gridItemTop}>
@@ -304,9 +339,11 @@ export default defineComponent({
               <br />
               2、每周一24点前完成补助确认,则该补助将会在当周周五发放
               <br />
-              3、超过周一24点确认,则延后到下周周五发放 4、如遇法定节假日,则统一延后到下一周五发放
+              3、超过周一24点确认,则延后到下周周五发放
+              <br />
+              4、如遇法定节假日,则统一延后到下一周五发放
               <br />
-              5、未绑定银行卡造成无法发放时,在绑定银行卡后的下一周五一次性将已确认且未发放的金额一次性发放
+              5、未绑定银行卡导致无法发放时,将在绑定银行卡后的下一周五,一次性将已确认且未发放的补助金额发放
             </div>
           </div>
         </Dialog>