From fb243f3345c6f3ed7e7c8c2d98c39b5afc782b9a Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 10:24:40 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue | 188 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 171 insertions(+), 17 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
index bdc50ab..51959e7 100644
--- a/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
@@ -2,9 +2,48 @@
<LoadingLayout>
<ContentView>
<div class="payroll-manage-detail-top">
- <div class="payroll-manage-detail-top-title"></div>
+ <div class="payroll-manage-detail-top-title">浠诲姟淇℃伅</div>
<div class="payroll-manage-detail-top-content">
- <div class="payroll-manage-detail-top-content-item"></div>
+ <div class="payroll-manage-detail-top-content-item">
+ <div class="payroll-manage-detail-top-content-item-label">浠诲姟鍚嶇О锛�</div>
+ <div class="payroll-manage-detail-top-content-item-text">{{ form.name }}</div>
+ </div>
+ <div class="payroll-manage-detail-top-content-item">
+ <div class="payroll-manage-detail-top-content-item-label">鏈嶅姟璐归噾棰濓細</div>
+ <div class="payroll-manage-detail-top-content-item-text">
+ {{ `${form.serviceFee ?? 0}${EnumBillingMethodText[form.billingMethod]}` }}
+ </div>
+ </div>
+ <div class="payroll-manage-detail-top-content-item">
+ <div class="payroll-manage-detail-top-content-item-label">缁撶畻浜烘暟锛�</div>
+ <div class="payroll-manage-detail-top-content-item-text">
+ {{ `${form.settlementCount ?? 0}浜篳 }}
+ </div>
+ </div>
+ <div class="payroll-manage-detail-top-content-item">
+ <div class="payroll-manage-detail-top-content-item-label">缁撶畻閲戦锛�</div>
+ <div class="payroll-manage-detail-top-content-item-text">
+ {{ `${toThousand(form.settlementAmount ?? 0)}鍏僠 }}
+ </div>
+ </div>
+ <div
+ class="payroll-manage-detail-top-content-item"
+ v-if="form.auditStatus !== EnumTaskSettlementAuditStatus.Wait"
+ >
+ <div class="payroll-manage-detail-top-content-item-label">瀹℃牳鏃堕棿锛�</div>
+ <div class="payroll-manage-detail-top-content-item-text">
+ {{ dayjs(form.auditTime).format('YYYY-MM-DD') }}
+ </div>
+ </div>
+ <div
+ class="payroll-manage-detail-top-content-item"
+ v-if="form.settlementStatus === EnumTaskSettlementStatus.Completed"
+ >
+ <div class="payroll-manage-detail-top-content-item-label">缁撶畻鏃堕棿锛�</div>
+ <div class="payroll-manage-detail-top-content-item-text">
+ {{ dayjs(form.settlementTime).format('YYYY-MM-DD') }}
+ </div>
+ </div>
</div>
</div>
<ChunkTitle title="浜哄憳鍒楄〃" />
@@ -19,22 +58,40 @@
:name="item.name"
:gender="item.gender"
:isReal="item.isReal"
- :contactPhoneNumber="item.contactPhoneNumber"
- :checkReceiveStatus="item.checkReceiveStatus"
+ :totalWorkHours="item.totalWorkHours"
+ :settlementAmount="item.settlementAmount"
/>
</template>
</InfiniteLoading>
+ <PageFooter v-if="form.auditStatus === EnumTaskSettlementAuditStatus.Wait">
+ <PageFooterBtn type="primary" @click="auditTaskSettlement(EnumTaskSettlementAuditStatus.Pass)"
+ >瀹℃牳閫氳繃</PageFooterBtn
+ >
+ <PageFooterBtn
+ type="primary"
+ plain
+ @click="auditTaskSettlement(EnumTaskSettlementAuditStatus.Fail)"
+ >椹冲洖</PageFooterBtn
+ >
+ </PageFooter>
</LoadingLayout>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
-import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
-import { useCheckReceiveTaskUserSubmits, useInfiniteLoading } from '@12333/hooks';
+import * as taskUserServices from '@12333/services/apiV2/taskUser';
+import * as taskServices from '@12333/services/apiV2/task';
+import { useInfiniteLoading } from '@12333/hooks';
+import {
+ EnumBillingMethodText,
+ EnumTaskSettlementAuditStatus,
+ EnumTaskSettlementStatus,
+} from '@12333/constants';
import PayrollManageDetailCard from '../components/PayrollManageDetailCard.vue';
-import { EnumTaskCheckReceiveStatus } from '@12333/constants';
-import { setOSSLink } from '@12333/utils';
+import { Message, paginateList, setOSSLink, toThousand } from '@12333/utils';
+import { useQuery } from '@tanstack/vue-query';
import dayjs from 'dayjs';
+import { goBack } from '@/utils';
defineOptions({
name: 'InnerPage',
@@ -42,27 +99,124 @@
const router = Taro.useRouter();
const id = router.params?.id ?? '';
-const date = router.params?.date ?? '';
-const checkReceiveStatus = Number(router.params?.checkReceiveStatus);
+const operatorToken = router.params?.operatorToken ?? '';
-const { infiniteLoadingProps } = useInfiniteLoading(
+const form = reactive({
+ name: '',
+ serviceFee: 0,
+ settlementCount: 0,
+ settlementAmount: 0,
+ settlementTime: '',
+ auditTime: '',
+ auditStatus: 0,
+ billingMethod: 0,
+ settlementStatus: 0,
+});
+
+const {
+ isLoading,
+ isError,
+ data: detail,
+ refetch,
+} = useQuery({
+ queryKey: ['taskUserServices/getSettlementTaskUsers', id, operatorToken],
+ queryFn: async () => {
+ let res = await taskUserServices.getSettlementTaskUsers(
+ { id: id, operatorToken: operatorToken },
+ {
+ showLoading: false,
+ }
+ );
+ if (res) {
+ form.name = res.detail?.name;
+ form.serviceFee = res.detail?.serviceFee;
+ form.settlementCount = res.data?.length;
+ form.settlementAmount = res.detail?.settlementAmount;
+ form.settlementTime = res.detail?.settlementTime;
+ form.auditTime = res.detail?.auditTime;
+ form.auditStatus = res.detail?.auditStatus;
+ form.settlementStatus = res.detail?.settlementStatus;
+ form.billingMethod = res.detail?.billingMethod;
+ }
+ return res;
+ },
+ placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
+});
+
+const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
({ pageParam }) => {
let params: API.GetCheckReceiveTaskQuery = {
pageModel: {
rows: 20,
page: pageParam,
},
- taskInfoId: id,
- date: dayjs(date).format('YYYY-MM-DD'),
- checkReceiveStatus: 30,
};
- return taskCheckReceiveServices.getCheckReceiveTask(params, {
- showLoading: false,
+ return Promise.resolve({
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ totalCount: detail.value?.data.length,
+ },
+ data: paginateList(detail.value?.data, pageParam, 20),
});
},
{
- queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'],
+ enabled: computed(() => !!detail.value?.data),
}
);
+
+async function auditTaskSettlement(auditStatus: EnumTaskSettlementAuditStatus) {
+ try {
+ let params: API.AuditTaskSettlementCommand = {
+ id: id,
+ operatorToken: operatorToken,
+ auditStatus: auditStatus,
+ };
+ let res = await taskServices.auditTaskSettlement(params);
+ if (res) {
+ Message.success('鎿嶄綔鎴愬姛', {
+ onClosed() {
+ goBack();
+ },
+ });
+ }
+ } catch (error) {}
+}
</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.payrollManageDetail-page-wrapper {
+ .payroll-manage-detail-top {
+ padding: 24px 32px;
+ margin-bottom: 24px;
+ background-color: #fff;
+ border-radius: 12px;
+
+ .payroll-manage-detail-top-title {
+ font-size: 32px;
+ font-weight: bold;
+ margin-bottom: 14px;
+ }
+
+ .payroll-manage-detail-top-content {
+ .payroll-manage-detail-top-content-item {
+ font-size: 24px;
+ line-height: 40px;
+
+ .payroll-manage-detail-top-content-item-label {
+ display: inline-flex;
+ color: boleGetCssVar('text-color', 'primary');
+ }
+
+ .payroll-manage-detail-top-content-item-text {
+ display: inline-flex;
+ color: boleGetCssVar('text-color', 'regular');
+ }
+ }
+ }
+ }
+}
+</style>
--
Gitblit v1.9.1