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 | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 222 insertions(+), 0 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
new file mode 100644
index 0000000..51959e7
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
@@ -0,0 +1,222 @@
+<template>
+ <LoadingLayout>
+ <ContentView>
+ <div class="payroll-manage-detail-top">
+ <div class="payroll-manage-detail-top-title">浠诲姟淇℃伅</div>
+ <div class="payroll-manage-detail-top-content">
+ <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="浜哄憳鍒楄〃" />
+ </ContentView>
+ <InfiniteLoading
+ scrollViewClassName="common-infinite-scroll-list"
+ v-bind="infiniteLoadingProps"
+ >
+ <template #renderItem="{ item }">
+ <PayrollManageDetailCard
+ :avatar="setOSSLink(item.avatar)"
+ :name="item.name"
+ :gender="item.gender"
+ :isReal="item.isReal"
+ :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 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 { Message, paginateList, setOSSLink, toThousand } from '@12333/utils';
+import { useQuery } from '@tanstack/vue-query';
+import dayjs from 'dayjs';
+import { goBack } from '@/utils';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const router = Taro.useRouter();
+const id = router.params?.id ?? '';
+const operatorToken = router.params?.operatorToken ?? '';
+
+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,
+ },
+ };
+
+ return Promise.resolve({
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ totalCount: detail.value?.data.length,
+ },
+ data: paginateList(detail.value?.data, pageParam, 20),
+ });
+ },
+ {
+ 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