From f8fd104213f6687ae5fcc479526f5ee9347ece6f Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期二, 09 九月 2025 17:00:47 +0800 Subject: [PATCH] fix: bug --- src/views/ServiceChargeManage/ServiceChargeDetail.vue | 135 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 102 insertions(+), 33 deletions(-) diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue index c808dc8..de7d1ff 100644 --- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue +++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue @@ -34,12 +34,14 @@ <ProFormCol> <ProFormColItem :span="8"> <ProFormItemV2 label="缁撶畻閲戦:" prop="settlementAmount"> - <ProFormText v-model="form.settlementAmount"> </ProFormText> + <ProFormInputNumber v-model="form.settlementAmount" format-value="money"> + </ProFormInputNumber> </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="8"> <ProFormItemV2 label="瀹炲彂閲戦:" prop="actualSettlementAmount"> - <ProFormText v-model="form.actualSettlementAmount"> </ProFormText> + <ProFormInputNumber v-model="form.actualSettlementAmount" format-value="money"> + </ProFormInputNumber> </ProFormItemV2> </ProFormColItem> </ProFormCol> @@ -67,7 +69,7 @@ </el-steps> </div> </ChunkCell> --> - <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1"> + <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1" class="settlement-user-list-chunk"> <ProTableQueryFilterBar @on-reset="reset"> <template #query> <QueryFilterItem> @@ -88,13 +90,17 @@ :auto-height="false" ref="proTable" :tableProps="{ - maxHeight: '400px', + maxHeight: '250px', }" > </ProTableV2> <div class="chuck-add-or-edit-actions"> <el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button> - <el-button class="chuck-add-or-edit-actions" type="primary" @click="handleSubmit" + <el-button + v-if="!isDetail" + class="chuck-add-or-edit-actions" + type="primary" + @click="handleSubmit" >纭</el-button > </div> @@ -123,6 +129,7 @@ QueryFilterItem, ProTableQueryFilterBar, useFormDialog, + XLSXUtils, } from '@bole-core/components'; import { SettlementListColumns } from './constants'; import { useQuery } from '@tanstack/vue-query'; @@ -154,33 +161,91 @@ const id = (route.params.id as string) ?? ''; const url = (route.query.url as string) ?? ''; +const isDetail = computed(() => !url); + const form = reactive({ name: '', - settlementAmount: '', - actualSettlementAmount: '', + settlementAmount: 0, + actualSettlementAmount: 0, code: '', settlementOrderName: '', settlementOrderTime: '', + settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[], }); +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +// onMounted(async () => { +// await getList(); +// state.loading = false; +// }); + +// const { isLoading } = useQuery({ +// queryKey: ['taskServices/getSettlementTask', id], +// queryFn: async () => { +// return await taskServices.getSettlementTask( +// { id: id }, +// { +// showLoading: false, +// } +// ); +// }, +// placeholderData: () => ({} as API.GetSettlementTaskQueryResult), +// onSuccess(data) { +// form.name = data.name; +// form.settlementAmount = data.settlementAmount ?? 0; +// form.actualSettlementAmount = data.actualSettlementAmount ?? 0; +// form.code = data.code; +// form.settlementOrderName = setOssFileName(data.settlementOrderName); +// form.settlementOrderTime = data.settlementOrderTime ?? ''; +// }, +// enabled: !!id, +// }); const { isLoading } = useQuery({ - queryKey: ['taskServices/getSettlementTask', id], + queryKey: ['taskUserServices/getSettlementTaskUsers', id, url], queryFn: async () => { - return await taskServices.getSettlementTask( - { id: id }, + return await taskUserServices.getSettlementTaskUsers( + { taskInfoId: id, settlementOrderUrl: url }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.GetSettlementTaskQueryResult), - onSuccess(data) { - form.name = data.name; - form.settlementAmount = toThousand(data.settlementAmount); - form.actualSettlementAmount = toThousand(data.actualSettlementAmount); - form.code = data.code; - form.settlementOrderName = setOssFileName(data.settlementOrderName); - form.settlementOrderTime = data.settlementOrderTime; + placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult), + onSuccess(res) { + form.settlementTaskUsers = res?.data ?? []; + if (res?.detail) { + form.name = res?.detail?.name; + form.settlementAmount = res?.detail?.settlementAmount ?? 0; + form.actualSettlementAmount = res?.detail?.actualSettlementAmount ?? 0; + form.code = res?.detail?.code; + form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName); + form.settlementOrderTime = res?.detail?.settlementOrderTime ?? ''; + } + if (res?.errors?.length > 0) { + Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => { + XLSXUtils.exportToXLSX({ + workbookDataList: res.errors, + fileName: '缁撶畻瀵煎叆-閿欒鏁版嵁', + workbookHeaderMap: { + name: '濮撳悕', + identity: '韬唤璇佸彿', + taskName: '浠诲姟鍚嶇О', + settlementAmount: '缁撶畻閲戦', + actualSettlementAmount: '瀹炲彂閲戦', + receiveAccount: '鏀舵璐︽埛', + bank: '鎵�灞為摱琛�', + bankBranch: '寮�鎴锋敮琛屽悕绉�', + errorMessage: '閿欒淇℃伅', + }, + }); + }); + } + getList(); }, enabled: !!id, }); @@ -194,13 +259,9 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.APIgetSettlementTaskUsersParams = { - taskInfoId: id, - settlementOrderUrl: url, - }; - let res = await taskUserServices.getSettlementTaskUsers(params); + let list = [...form.settlementTaskUsers]; if (extraParamState.keywords) { - res.data = res.data?.filter((item) => { + list = list?.filter((item) => { return ( item.name.includes(extraParamState.keywords) || item.contactPhoneNumber.includes(extraParamState.keywords) || @@ -208,13 +269,14 @@ ); }); } + return Promise.resolve({ pageModel: { rows: pageSize, page: pageIndex, - totalCount: res.data.length, + totalCount: list.length, }, - data: paginateList(res.data, pageIndex, pageSize), + data: paginateList(list, pageIndex, pageSize), }); } catch (error) { console.log('error: ', error); @@ -258,9 +320,12 @@ let params: API.SureTaskSettlementOrderCommand = { taskInfoId: id, settlementOrderUrl: url, - taskInfoUsers: proTableProps.value.tableData.map( - (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser) - ), + taskInfoUsers: + proTableProps.value.tableData?.length > 0 + ? proTableProps.value.tableData.map( + (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser) + ) + : [], }; let res = await taskServices.sureTaskSettlementOrder(params); if (res) { @@ -276,10 +341,6 @@ name: 'ServiceChargeManageList', }); } - -onMounted(() => { - getList(); -}); </script> <style lang="scss" scoped> @@ -289,6 +350,14 @@ margin: 0 auto; padding: 24px 0; } + +.settlement-user-list-chunk { + :deep() { + .no-data img { + width: 280px; + } + } +} </style> <style lang="scss"> .text-over-tooltip-content { -- Gitblit v1.9.1