From 3ae270ee2e6518522dce3153f483b8c5b3d3428d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 28 十一月 2025 16:42:05 +0800
Subject: [PATCH] fix: bug
---
src/views/ServiceChargeManage/ServiceChargeDetail.vue | 138 +++++++++++++++++++++++++++++++++++----------
1 files changed, 106 insertions(+), 32 deletions(-)
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 745a64d..6748247 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -1,6 +1,6 @@
<template>
<LoadingLayout :loading="isLoading">
- <AppContainer>
+ <AppScrollContainer>
<ChunkCell title="缁撶畻鍗曡鎯�">
<ProForm :model="form" ref="formRef" label-width="120px" :is-read="true">
<ProFormCol>
@@ -61,7 +61,7 @@
</QueryFilterItem>
</template>
<template #btn v-if="isSettlement">
- <BlFileUpload
+ <!-- <BlFileUpload
v-model:file-url="form.settlementUrl"
ref="uploadRef"
:showTip="false"
@@ -73,47 +73,43 @@
accept="xlsx,xls"
>
<el-button text type="primary" class="pro-table-operation-btn">瀵煎叆</el-button>
- </BlFileUpload>
+ </BlFileUpload> -->
<el-button type="primary" link @click="handleExport()">瀵煎嚭</el-button>
</template>
</ProTableQueryFilterBar>
<ProTableV2
v-bind="proTableProps"
- :columns="SettlementListColumns"
+ :columns="column"
:operationBtns="operationBtns"
:auto-height="false"
ref="proTable"
:tableProps="{
- maxHeight: '250px',
+ maxHeight: '400px',
}"
>
</ProTableV2>
<div class="chuck-add-or-edit-actions">
<el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
- <el-button
- v-if="form.auditStatus === EnumTaskSettlementAuditStatus.Wait"
+ <!-- <el-button
+ v-if="
+ isSettlement &&
+ (!form.auditStatus || form.auditStatus !== EnumTaskSettlementAuditStatus.Pass)
+ "
class="chuck-add-or-edit-actions"
type="primary"
@click="handleSubmit()"
>缁撶畻鐢宠</el-button
- >
- <el-button
- v-if="form.auditStatus === EnumTaskSettlementAuditStatus.Pass"
- class="chuck-add-or-edit-actions"
- type="primary"
- @click="handleSubmit()"
- >鎻愪氦缁撶畻</el-button
- >
+ > -->
<el-button
v-if="isSettlement"
class="chuck-add-or-edit-actions"
type="primary"
@click="handleSubmit()"
- >缁撶畻</el-button
+ >缁撶畻纭</el-button
>
</div>
</ChunkCell>
- </AppContainer>
+ </AppScrollContainer>
<EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
<SettleDetailDialog v-bind="dialogSettleProps" />
</LoadingLayout>
@@ -122,6 +118,7 @@
import {
LoadingLayout,
AppContainer,
+ AppScrollContainer,
ChunkCell,
ProForm,
ProFormItemV2,
@@ -141,7 +138,6 @@
BlFileUpload,
UploadUserFile,
} from '@bole-core/components';
-import { SettlementListColumns } from './constants';
import { useQuery } from '@tanstack/vue-query';
import * as taskServices from '@/services/api/task';
import * as taskUserServices from '@/services/api/taskUser';
@@ -152,6 +148,7 @@
import {
downloadFile,
downloadFileByUrl,
+ hiddenIDNumberForEnd4,
paginateList,
setOssFileName,
setOSSLink,
@@ -165,12 +162,8 @@
const { closeViewPush } = useRouteView();
const eventContext = useGlobalEventContext();
-const operationBtns = defineOperationBtns([
- {
- data: {
- enCode: 'editBtn',
- name: '缂栬緫',
- },
+const operationBtnMap: Record<string, OperationBtnType> = {
+ editBtn: {
emits: {
onClick: (role) => openDialog(role),
},
@@ -178,7 +171,10 @@
hide: () => !isSettlement.value,
},
},
-]);
+};
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+ operationBtnMap,
+});
const route = useRoute();
const id = (route.params.id as string) ?? '';
const settlement = (route.query.settlement as string) ?? '';
@@ -200,6 +196,10 @@
isSettlement: isSettlement.value,
auditStatus: '' as any as EnumTaskSettlementAuditStatus,
+
+ timeoutServiceFee: 0,
+
+ supplierEnterpriseId: '',
});
const BaseState = {
@@ -234,6 +234,8 @@
form.code = res?.detail?.code;
form.settlementAccess = res?.detail?.settlementAccess;
form.auditStatus = res?.detail?.auditStatus;
+ form.timeoutServiceFee = res?.detail?.timeoutServiceFee ?? 0;
+ form.supplierEnterpriseId = res?.detail?.supplierEnterpriseId;
// form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
// form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
}
@@ -304,6 +306,18 @@
settlementAmount: { type: 'money' },
actualSettlementAmount: { type: 'money' },
settlementReceiveStatus: { type: 'enum', valueEnum: SettlementReceiveStatusText },
+ serviceFee: { type: 'money' },
+ timeoutHours: {
+ formatter: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+ row.timeoutHours ? `${row.timeoutHours}灏忔椂` : '',
+ },
+ timeoutFee: { type: 'money' },
+ otherFee: { type: 'money' },
+ identity: {
+ formatter: (row: API.GetSettlementTaskUsersQueryResultItem) => {
+ return hiddenIDNumberForEnd4(row.identity);
+ },
+ },
},
}
);
@@ -316,9 +330,15 @@
actualSettlementAmount: null as number,
receiveAccount: '',
bank: '',
- totalWorkHours: null as number,
+ // totalWorkHours: null as number,
settlementAccess: form.settlementAccess,
// bankBranch: '',
+ timeoutServiceFee: 0,
+ serviceFee: null as number,
+ timeoutHours: null as number,
+ timeoutFee: null as number,
+ otherFee: null as number,
+ remark: '',
},
});
@@ -330,23 +350,36 @@
actualSettlementAmount: row?.actualSettlementAmount ?? null,
receiveAccount: row?.receiveAccount ?? '',
bank: row?.bank ?? '',
- totalWorkHours: null as number,
+ // totalWorkHours: row?.totalWorkHours ?? null,
settlementAccess: form.settlementAccess,
// bankBranch: row?.bankBranch ?? '',
+ timeoutServiceFee: form.timeoutServiceFee,
+ serviceFee: row?.serviceFee ?? 0,
+ timeoutHours: row?.timeoutHours ?? null,
+ timeoutFee: row?.timeoutFee ?? null,
+ otherFee: row?.otherFee ?? null,
+ remark: row?.remark ?? '',
});
}
}
async function handleAddOrEdit() {
try {
+ const settlementAmount =
+ (editForm.timeoutFee ?? 0) + (editForm.serviceFee ?? 0) + (editForm.otherFee ?? 0);
let params: API.EditTaskSettlementOrderRosterCommand = {
id: editForm.id,
- settlementAmount: editForm.settlementAmount,
+ settlementAmount: settlementAmount,
actualSettlementAmount: editForm.actualSettlementAmount,
receiveAccount: editForm.receiveAccount,
bank: editForm.bank,
- totalWorkHours: editForm.totalWorkHours,
+ // totalWorkHours: editForm.totalWorkHours,
// bankBranch: editForm.bankBranch,
+ serviceFee: editForm.serviceFee,
+ timeoutHours: editForm.timeoutHours,
+ timeoutFee: editForm.timeoutFee,
+ otherFee: editForm.otherFee,
+ remark: editForm.remark,
};
let res = await taskServices.editTaskSettlementOrderRoster(params);
if (res) {
@@ -388,6 +421,7 @@
bank: '鎵�灞為摱琛�',
bankBranch: '鎵�灞炴敮琛�',
receiveAccount: '鏀舵璐︽埛',
+ totalWorkHours: '绱宸ユ椂锛堝皬鏃讹級',
settlementAmount: '缁撶畻閲戦',
actualSettlementAmount: '瀹炲彂閲戦',
errorMessage: '閿欒淇℃伅',
@@ -403,12 +437,21 @@
}
function handleSubmit() {
+ let actualList = form.settlementTaskUsers.filter((x) => x.actualSettlementAmount > 0);
+ const actualSettlementAmount = actualList.reduce(
+ (pre, cur) => pre + cur.actualSettlementAmount,
+ 0
+ );
+ const settlementAmount = actualList.reduce((pre, cur) => pre + cur.settlementAmount, 0);
handleSettleEdit({
id: id,
name: form.name,
code: form.code,
- settlementUserCount: form.settlementTaskUsers.length,
- actualSettlementAmount: form.actualSettlementAmount,
+ settlementUserCount: actualList.length,
+ actualSettlementAmount: actualSettlementAmount,
+ settlementAmount: settlementAmount,
+ settlementAccess: form.settlementAccess,
+ supplierEnterpriseId: form.supplierEnterpriseId,
});
}
@@ -423,12 +466,39 @@
name: '',
code: '',
settlementUserCount: 0,
+ settlementAmount: 0,
actualSettlementAmount: 0,
+ settlementAccess: '' as any as EnumEnterpriseWalletAccess,
+ supplierEnterpriseId: '',
},
});
async function handleSettle() {
- sureTaskSettlementOrder();
+ auditTaskSettlement();
+}
+
+async function auditTaskSettlement() {
+ try {
+ let params: API.AuditTaskSettlementCommand = {
+ id: id,
+ auditStatus: EnumTaskSettlementAuditStatus.Pass,
+ 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,
+ })),
+ };
+ let res = await taskServices.auditTaskSettlement(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ eventContext.emit('sureTaskSettlementOrder');
+ handleBack();
+ }
+ } catch (error) {}
}
async function sureTaskSettlementOrder() {
@@ -487,6 +557,10 @@
}
}
}
+
+.chuck-add-or-edit-actions {
+ margin-bottom: 20px;
+}
</style>
<style lang="scss">
.text-over-tooltip-content {
--
Gitblit v1.9.1