From 42ff9c53a3db88eb0b311767d45452be27a5d544 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期二, 23 九月 2025 14:32:42 +0800 Subject: [PATCH] feat: 结算 --- src/views/ServiceChargeManage/ServiceChargeManage.vue | 87 +++++++++++++++++++++++++++++++------------ 1 files changed, 63 insertions(+), 24 deletions(-) diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue index e72ac87..3b2dee5 100644 --- a/src/views/ServiceChargeManage/ServiceChargeManage.vue +++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue @@ -3,10 +3,10 @@ <AppContainer> <ProTableQueryFilterBar @on-reset="reset"> <template #query> - <QueryFilterItem tip-content="缁撶畻鍗曠姸鎬�"> + <QueryFilterItem tip-content="楠屾敹鐘舵��"> <FieldRadio - v-model="extraParamState.settlementOrderStatus" - :value-enum="EnumTaskSettlementOrderStatusText" + v-model="extraParamState.checkReceiveStatus" + :value-enum="EnumTaskCheckReceiveStatusTextForFilter" buttonStyle showAllBtn @change="getList()" @@ -21,7 +21,7 @@ @change="getList()" /> </QueryFilterItem> - <!-- <QueryFilterItem> + <QueryFilterItem> <FieldDatePicker v-model="extraParamState.time" type="daterange" @@ -30,23 +30,23 @@ end-placeholder="鎴鏃ユ湡" clearable @change="getList()" - tooltipContent="鍒涘缓鏃堕棿" + tooltipContent="缁撶畻鏃堕棿" ></FieldDatePicker> - </QueryFilterItem> --> + </QueryFilterItem> <QueryFilterItem> <SearchInput v-model="extraParamState.keywords" style="width: 250px" placeholder="浠诲姟鍚嶇О" - @on-click-search="getList" + @on-click-search="getList()" @keyup.enter="getList()" > </SearchInput> </QueryFilterItem> </template> <template #btn> - <el-button type="primary" link @click="handleDownloadTemplate()">缁撶畻鍗曟ā鏉�</el-button> - <el-button type="primary" @click="handleAdd()">涓婁紶缁撶畻鍗�</el-button> + <!-- <el-button type="primary" link @click="handleDownloadTemplate()">缁撶畻鍗曟ā鏉�</el-button> --> + <!-- <el-button type="primary" @click="handleAdd()">涓婁紶缁撶畻鍗�</el-button> --> <!-- <el-button type="primary" @click="handleDownloadTemplate()">瀵煎嚭</el-button> --> </template> </ProTableQueryFilterBar> @@ -89,6 +89,7 @@ </AppContainer> <UploadStatementDialog v-bind="dialogProps" /> <SettleDetailDialog v-bind="dialogSettleProps" /> + <RechargeEnterpriseWalletDialog v-bind="dialogRechargeProps" /> </LoadingLayout> </template> @@ -114,12 +115,16 @@ EnumTaskSettlementOrderStatusText, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, + EnumTaskCheckReceiveStatusText, + EnumTaskCheckReceiveStatusTextForFilter, + EnumTaskCheckReceiveStatus, } from '@/constants'; -import { downloadFileByUrl, setOssFileName } from '@/utils'; +import { downloadFileByUrl, format, setOssFileName } from '@/utils'; import * as taskServices from '@/services/api/task'; import { ModelValueType } from 'element-plus'; import UploadStatementDialog from './components/UploadStatementDialog.vue'; import SettleDetailDialog from './components/SettleDetailDialog.vue'; +import RechargeEnterpriseWalletDialog from './components/RechargeEnterpriseWalletDialog.vue'; import { Message } from '@bole-core/core'; defineOptions({ @@ -161,8 +166,8 @@ extraProps: { hide: (role: API.GetSettlementTasksQueryResultItem) => !( - role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Completed && - role.settlementStatus === EnumTaskSettlementStatus.Wait + role.settlementStatus === EnumTaskSettlementStatus.Wait && + role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed ), }, }, @@ -176,7 +181,10 @@ }, extraProps: { hide: (role: API.GetSettlementTasksQueryResultItem) => - role.settlementStatus !== EnumTaskSettlementStatus.InProcess, + !( + role.settlementStatus === EnumTaskSettlementStatus.InProcess && + role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed + ), }, }, { @@ -187,10 +195,10 @@ emits: { onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role), }, - extraProps: { - hide: (role: API.GetSettlementTasksQueryResultItem) => - role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait, - }, + // extraProps: { + // hide: (role: API.GetSettlementTasksQueryResultItem) => + // role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait, + // }, }, { data: { @@ -207,6 +215,8 @@ ]); const router = useRouter(); + +const { userDetail } = useUser(); const eventContext = useGlobalEventContext(); @@ -241,8 +251,10 @@ orderInput: extraParamState.orderInput, }, keywords: extraParamState.keywords, - settlementOrderStatus: extraParamState.settlementOrderStatus, + checkReceiveStatus: extraParamState.checkReceiveStatus, settlementStatus: extraParamState.settlementStatus, + settlementTimeBegin: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + settlementTimeEnd: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), }; let res = await taskServices.getSettlementTasks(params, { @@ -257,6 +269,7 @@ defaultExtraParams: { keywords: '', settlementOrderStatus: '' as any as EnumTaskSettlementOrderStatus, + checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus, settlementStatus: '' as any as EnumTaskSettlementStatus, time: [] as unknown as ModelValueType, orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], @@ -265,9 +278,11 @@ columnsRenderProps: { settlementOrderStatus: { type: 'enum', valueEnum: EnumTaskSettlementOrderStatusText }, settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText }, + checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText }, actualSettlementAmount: { type: 'money' }, settlementAmount: { type: 'money' }, settlementTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, settlementOrderTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, settlementOrderName: { formatter: (row: API.GetSettlementTasksQueryResultItem) => @@ -288,7 +303,16 @@ }); async function handleAddOrEdit() { - goSettlementDetail(editForm.id, editForm.settlementUrl[0]?.path); + try { + let params: API.ImportTaskSettlementOrderRostersCommand = { + id: editForm.id, + url: editForm.settlementUrl[0]?.path, + }; + let res = await taskServices.importTaskSettlementOrderRosters(params); + if (res) { + goSettlementDetail(editForm.id, editForm.settlementUrl[0]?.path); + } + } catch (error) {} } const { @@ -311,13 +335,31 @@ let params: API.SureTaskSettlementCommand = { taskInfoId: settleEditForm.id, }; - let res = await taskServices.sureTaskSettlement(params); + let res = await taskServices.sureTaskSettlement(params, { + skipErrorHandler: true, + }); if (res) { Message.successMessage('鎿嶄綔鎴愬姛'); getList(paginationState.pageIndex); } - } catch (error) {} + } catch (error) { + if (error?.info?.errorCode == 's510') { + handleRechargeAdd(); + } + } } + +const { + dialogProps: dialogRechargeProps, + handleAdd: handleRechargeAdd, + editForm: rechargeEditForm, +} = useFormDialog({ + defaultFormParams: { + access: EnumEnterpriseWalletAccess.Alipay, + amount: null as number, + remark: '', + }, +}); function openSettleDialog(row: API.GetSettlementTasksQueryResultItem) { handleSettleEdit({ @@ -357,9 +399,6 @@ name: 'ServiceChargeDetail', params: { id: id, - }, - query: { - url: url ? url : '', }, }); editForm.settlementUrl = [] as UploadUserFile[]; -- Gitblit v1.9.1