From b51e2aad88af70617e9a06336879a7088f2fad8d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 24 十月 2025 17:27:18 +0800
Subject: [PATCH] fix: bug
---
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue | 252 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 234 insertions(+), 18 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
index bdc50ab..3031f38 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,46 @@
:name="item.name"
:gender="item.gender"
:isReal="item.isReal"
- :contactPhoneNumber="item.contactPhoneNumber"
- :checkReceiveStatus="item.checkReceiveStatus"
- />
+ :totalWorkHours="item.timeoutHours"
+ :settlementAmount="item.settlementAmount"
+ >
+ <template #actions v-if="form.auditStatus === EnumTaskSettlementAuditStatus.Wait">
+ <div class="payroll-manage-detail-card-actions">
+ <nut-button type="primary" plain @click="goPayrollChange(item)">淇敼</nut-button>
+ </div>
+ </template>
+ </PayrollManageDetailCard>
</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 +105,180 @@
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,
+
+ settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[],
+});
+
+const state = reactive({
+ isLoaded: false,
+});
+
+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),
+ onSuccess(res) {
+ if (!state.isLoaded) {
+ form.settlementTaskUsers = res?.data ?? [];
+ state.isLoaded = true;
+ }
+ },
+});
+
+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: form.settlementTaskUsers.length,
+ },
+ data: paginateList(form.settlementTaskUsers, pageParam, 20),
});
},
{
- queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'],
+ enabled: computed(() => form.settlementTaskUsers?.length > 0),
}
);
+
+async function auditTaskSettlement(auditStatus: EnumTaskSettlementAuditStatus) {
+ try {
+ let params: API.AuditTaskSettlementCommand = {
+ id: id,
+ operatorToken: operatorToken,
+ auditStatus: auditStatus,
+ rosters: form.settlementTaskUsers.map((item) => ({
+ id: item.id,
+ serviceFee: item.serviceFee,
+ timeoutHours: item.timeoutHours,
+ timeoutFee: item.timeoutFee,
+ otherFee: item.otherFee,
+ remark: item.remark,
+ settlementAmount: item.settlementAmount,
+ })),
+ };
+ // if(auditStatus===EnumTaskSettlementAuditStatus.Pass){
+ // params.rosters
+ // }
+ let res = await taskServices.auditTaskSettlement(params);
+ if (res) {
+ Message.success('鎿嶄綔鎴愬姛', {
+ onClosed() {
+ goBack();
+ },
+ });
+ }
+ } catch (error) {}
+}
+
+function goPayrollChange(item: API.GetSettlementTaskUsersQueryResultItem) {
+ Taro.navigateTo({
+ url: `${RouterPath.payrollChange}?orderRosterId=${item.id}&settleId=${id}&operatorToken=${operatorToken}`,
+ events: {
+ update: function (params: API.EditTaskSettlementOrderRosterCommand) {
+ // refetch();
+ form.settlementTaskUsers = form.settlementTaskUsers.map((item) => {
+ if (item.id == params.id) {
+ item.settlementAmount = params.settlementAmount;
+ item.actualSettlementAmount = params.actualSettlementAmount;
+ item.receiveAccount = params.receiveAccount;
+ item.bank = params.bank;
+ item.serviceFee = params.serviceFee;
+ item.timeoutHours = params.timeoutHours;
+ item.timeoutFee = params.timeoutFee;
+ item.otherFee = params.otherFee;
+ item.remark = params.remark;
+ return item;
+ }
+ return item;
+ });
+ },
+ },
+ });
+}
</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');
+ }
+ }
+ }
+ }
+
+ .payroll-manage-detail-card-actions {
+ --nut-button-default-height: 24px;
+
+ text-align: right;
+ }
+}
+</style>
--
Gitblit v1.9.1