From 10089efc8a1417e20f741259d839883abf30d1c2 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 12 十一月 2025 13:34:50 +0800
Subject: [PATCH] feat: 1.3.0.2
---
src/views/ServiceChargeManage/ServiceChargeDetail.vue | 158 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 123 insertions(+), 35 deletions(-)
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 21a8b34..65b0c3f 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -61,7 +61,7 @@
</QueryFilterItem>
</template>
<template #btn v-if="isSettlement">
- <BlFileUpload
+ <!-- <BlFileUpload
v-model:file-url="form.settlementUrl"
ref="uploadRef"
:showTip="false"
@@ -73,13 +73,19 @@
accept="xlsx,xls"
>
<el-button text type="primary" class="pro-table-operation-btn">瀵煎叆</el-button>
- </BlFileUpload>
- <el-button type="primary" link @click="handleExport()">瀵煎嚭</el-button>
+ </BlFileUpload> -->
+ <el-button
+ v-if="checkSubModuleItemShow('pageButton', 'exportBtn')"
+ type="primary"
+ link
+ @click="handleExport()"
+ >瀵煎嚭</el-button
+ >
</template>
</ProTableQueryFilterBar>
<ProTableV2
v-bind="proTableProps"
- :columns="SettlementListColumns"
+ :columns="column"
:operationBtns="operationBtns"
:auto-height="false"
ref="proTable"
@@ -90,7 +96,7 @@
</ProTableV2>
<div class="chuck-add-or-edit-actions">
<el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
- <el-button
+ <!-- <el-button
v-if="
isSettlement &&
(!form.auditStatus || form.auditStatus !== EnumTaskSettlementAuditStatus.Pass)
@@ -99,9 +105,9 @@
type="primary"
@click="handleSubmit()"
>缁撶畻鐢宠</el-button
- >
+ > -->
<el-button
- v-if="isSettlement && form.auditStatus === EnumTaskSettlementAuditStatus.Pass"
+ v-if="isSettlement"
class="chuck-add-or-edit-actions"
type="primary"
@click="handleSubmit()"
@@ -112,6 +118,7 @@
</AppScrollContainer>
<EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
<SettleDetailDialog v-bind="dialogSettleProps" />
+ <ResettleEditDialog v-bind="dialogResettleProps" />
</LoadingLayout>
</template>
<script setup lang="ts">
@@ -138,12 +145,12 @@
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';
import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
import SettleDetailDialog from './components/SettleDetailDialog.vue';
+import ResettleEditDialog from './components/ResettleEditDialog.vue';
import { Message } from '@bole-core/core';
import { SettlementReceiveStatusText, EnumTaskSettlementAuditStatus } from '@/constants';
import {
@@ -162,20 +169,31 @@
const { closeViewPush } = useRouteView();
const eventContext = useGlobalEventContext();
-const operationBtns = defineOperationBtns([
- {
- data: {
- enCode: 'editBtn',
- name: '缂栬緫',
- },
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+ editBtn: {
emits: {
onClick: (role) => openDialog(role),
},
extraProps: {
- hide: () => !isSettlement.value,
+ hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+ row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
},
},
-]);
+ reSettleBtn: {
+ emits: {
+ onClick: (role) => againSureTaskSettlementOrderRoster(role),
+ },
+ extraProps: {
+ hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+ row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
+ },
+ },
+};
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+ operationBtnMap,
+});
+
const route = useRoute();
const id = (route.params.id as string) ?? '';
const settlement = (route.query.settlement as string) ?? '';
@@ -199,6 +217,8 @@
auditStatus: '' as any as EnumTaskSettlementAuditStatus,
timeoutServiceFee: 0,
+
+ settlementStatus: '' as any as EnumTaskSettlementStatus,
});
const BaseState = {
@@ -234,6 +254,7 @@
form.settlementAccess = res?.detail?.settlementAccess;
form.auditStatus = res?.detail?.auditStatus;
form.timeoutServiceFee = res?.detail?.timeoutServiceFee ?? 0;
+ form.settlementStatus = res?.detail?.settlementStatus;
// form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
// form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
}
@@ -337,22 +358,33 @@
function openDialog(row?: API.GetSettlementTaskUsersQueryResultItem) {
if (row) {
- handleEdit({
- id: row?.id,
- settlementAmount: row?.settlementAmount ?? null,
- actualSettlementAmount: row?.actualSettlementAmount ?? null,
- receiveAccount: row?.receiveAccount ?? '',
- bank: row?.bank ?? '',
- // 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 ?? '',
- });
+ if (isSettlement) {
+ handleEdit({
+ id: row?.id,
+ settlementAmount: row?.settlementAmount ?? null,
+ actualSettlementAmount: row?.actualSettlementAmount ?? null,
+ receiveAccount: row?.receiveAccount ?? '',
+ bank: row?.bank ?? '',
+ // 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 ?? '',
+ });
+ } else {
+ handleResettleEdit({
+ id: row?.id,
+ name: row?.name ?? '',
+ bank: row?.bank ?? '',
+ bankBranch: row?.bankBranch ?? '',
+ receiveAccount: row?.receiveAccount ?? '',
+ remark: row?.remark ?? '',
+ });
+ }
}
}
@@ -430,13 +462,19 @@
}
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,
- settlementAmount: form.settlementAmount,
+ settlementUserCount: actualList.length,
+ actualSettlementAmount: actualSettlementAmount,
+ settlementAmount: settlementAmount,
settlementAccess: form.settlementAccess,
});
}
@@ -496,6 +534,56 @@
{ leading: true, trailing: false }
);
+const {
+ dialogProps: dialogResettleProps,
+ handleEdit: handleResettleEdit,
+ editForm: resettleEditForm,
+} = useFormDialog({
+ onConfirm: handleResettle,
+ defaultFormParams: {
+ id: '',
+ name: '',
+ bank: '',
+ bankBranch: '',
+ receiveAccount: '',
+ remark: '',
+ },
+});
+
+async function handleResettle() {
+ try {
+ let params: API.EditTaskSettlementOrderRosterCommand = {
+ id: id,
+ bank: resettleEditForm.bank,
+ bankBranch: resettleEditForm.bankBranch,
+ receiveAccount: resettleEditForm.receiveAccount,
+ remark: resettleEditForm.remark,
+ settlementAmount: 0,
+ actualSettlementAmount: 0,
+ };
+ let res = await taskServices.editTaskSettlementOrderRoster(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ refetch();
+ getList(paginationState.pageIndex);
+ }
+ } catch (error) {}
+}
+
+async function againSureTaskSettlementOrderRoster(row: API.GetSettlementTaskUsersQueryResultItem) {
+ try {
+ let params: API.AgainSureTaskSettlementOrderRosterCommand = {
+ id: row.id,
+ };
+ let res = await taskServices.againSureTaskSettlementOrderRoster(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ refetch();
+ getList(paginationState.pageIndex);
+ }
+ } catch (error) {}
+}
+
function handleBack() {
closeViewPush(route, {
name: 'ServiceChargeManageList',
--
Gitblit v1.9.1