From 1d922e2cd32532fc149fac86cd63e318431d22a4 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期五, 05 九月 2025 14:39:33 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdminBClient --- src/views/ServiceChargeManage/ServiceChargeManage.vue | 209 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 145 insertions(+), 64 deletions(-) diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue index bd7fa87..8c76c8c 100644 --- a/src/views/ServiceChargeManage/ServiceChargeManage.vue +++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue @@ -5,11 +5,8 @@ <template #query> <QueryFilterItem tip-content="缁撶畻鍗曠姸鎬�"> <FieldRadio - v-model="extraParamState.status" - :value-enum="[ - { label: '宸插畨鎺�', value: 1 }, - { label: '寰呭畨鎺�', value: 0 }, - ]" + v-model="extraParamState.settlementOrderStatus" + :value-enum="EnumTaskSettlementOrderStatusText" buttonStyle showAllBtn @change="getList()" @@ -17,17 +14,14 @@ </QueryFilterItem> <QueryFilterItem tip-content="缁撶畻鐘舵��"> <FieldRadio - v-model="extraParamState.status" - :value-enum="[ - { label: '宸插畨鎺�', value: 1 }, - { label: '寰呭畨鎺�', value: 0 }, - ]" + v-model="extraParamState.settlementStatus" + :value-enum="EnumTaskSettlementStatusText" buttonStyle showAllBtn @change="getList()" /> </QueryFilterItem> - <QueryFilterItem> + <!-- <QueryFilterItem> <FieldDatePicker v-model="extraParamState.time" type="daterange" @@ -38,10 +32,10 @@ @change="getList()" tooltipContent="鍒涘缓鏃堕棿" ></FieldDatePicker> - </QueryFilterItem> + </QueryFilterItem> --> <QueryFilterItem> <SearchInput - v-model="extraParamState.searchWord" + v-model="extraParamState.keywords" style="width: 250px" placeholder="浠诲姟鍚嶇О" @on-click-search="getList" @@ -52,9 +46,8 @@ </template> <template #btn> <el-button type="primary" link @click="handleDownloadTemplate()">缁撶畻鍗曟ā鏉�</el-button> - - <el-button type="primary" @click="openDialog()">涓婁紶缁撶畻鍗�</el-button> - <el-button type="primary" @click="handleDownloadTemplate()">瀵煎嚭</el-button> + <el-button type="primary" @click="handleAdd()">涓婁紶缁撶畻鍗�</el-button> + <!-- <el-button type="primary" @click="handleDownloadTemplate()">瀵煎嚭</el-button> --> </template> </ProTableQueryFilterBar> <ProTableV2 @@ -62,6 +55,36 @@ :columns="ServiceChargeManageColumns" :operationBtns="operationBtns" > + <template #operationBtn-uploadBtn="{ row }"> + <BlFileUpload + v-model:file-url="editForm.settlementUrl" + ref="uploadRef" + :showTip="false" + :show-file-list="false" + class="pro-table-operation-btn upload-style-btn" + :on-success="(event) => handleUploadSuccess(event, row)" + :limitFileSize="null" + :limit="1" + accept="xlsx,xls" + > + <el-button text type="primary" class="pro-table-operation-btn">涓婁紶</el-button> + </BlFileUpload> + </template> + <template #operationBtn-reUploadBtn="{ data, row }"> + <BlFileUpload + v-model:file-url="editForm.settlementUrl" + ref="uploadRef" + :showTip="false" + :show-file-list="false" + class="pro-table-operation-btn upload-style-btn" + :on-success="(event) => handleUploadSuccess(event, row)" + :limitFileSize="null" + :limit="1" + accept="xlsx,xls" + > + <el-button text type="primary" class="pro-table-operation-btn">閲嶆柊涓婁紶</el-button> + </BlFileUpload> + </template> </ProTableV2> </AppContainer> <UploadStatementDialog v-bind="dialogProps" /> @@ -83,13 +106,21 @@ defineOperationBtns, useFormDialog, UploadUserFile, + BlFileUpload, } from '@bole-core/components'; import { ServiceChargeManageColumns } from './constants'; -import { downloadFileByUrl } from '@/utils'; +import { + EnumTaskSettlementStatusText, + EnumTaskSettlementOrderStatusText, + EnumTaskSettlementOrderStatus, + EnumTaskSettlementStatus, +} from '@/constants'; +import { downloadFileByUrl, 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 { Message } from '@bole-core/core'; defineOptions({ name: 'ServiceChargeManageList', @@ -101,11 +132,9 @@ enCode: 'uploadBtn', name: '涓婁紶', }, - emits: { - onClick: (role) => openDialog(role), - }, extraProps: { - hide: () => false, + hide: (row: API.GetSettlementTasksQueryResultItem) => + row.settlementOrderStatus !== EnumTaskSettlementOrderStatus.Wait, }, }, { @@ -113,11 +142,12 @@ enCode: 'reUploadBtn', name: '閲嶆柊涓婁紶', }, - emits: { - onClick: (role) => openDialog(role), - }, extraProps: { - hide: () => false, + hide: (row: API.GetSettlementTasksQueryResultItem) => + !( + row.settlementOrderStatus === EnumTaskSettlementOrderStatus.Completed && + row.settlementStatus === EnumTaskSettlementStatus.Wait + ), }, }, { @@ -126,10 +156,14 @@ name: '缁撶畻', }, emits: { - onClick: (role) => openSettleDialog(role), + onClick: (role: API.GetSettlementTasksQueryResultItem) => openSettleDialog(role), }, extraProps: { - hide: () => false, + hide: (role: API.GetSettlementTasksQueryResultItem) => + !( + role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Completed && + role.settlementStatus === EnumTaskSettlementStatus.Wait + ), }, }, { @@ -141,7 +175,8 @@ onClick: (role) => handleRecall(role), }, extraProps: { - hide: () => false, + hide: (role: API.GetSettlementTasksQueryResultItem) => + role.settlementStatus !== EnumTaskSettlementStatus.InProcess, }, }, { @@ -150,7 +185,11 @@ name: '璇︽儏', }, emits: { - onClick: (role) => goDetail(role), + onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id), + }, + extraProps: { + hide: (role: API.GetSettlementTasksQueryResultItem) => + role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait, }, }, { @@ -171,7 +210,7 @@ const eventContext = useGlobalEventContext(); -eventContext.addEvent('serviceChargeSettle', () => { +eventContext.addEvent('sureTaskSettlementOrder', () => { getList(paginationState.pageIndex); }); @@ -195,15 +234,18 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetTaskInfosQuery = { + let params: API.GetSettlementTasksQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, + keywords: extraParamState.keywords, + settlementOrderStatus: extraParamState.settlementOrderStatus, + settlementStatus: extraParamState.settlementStatus, }; - let res = await taskServices.getTaskInfos(params, { + let res = await taskServices.getSettlementTasks(params, { showLoading: !state.loading, }); return res; @@ -213,76 +255,112 @@ }, { defaultExtraParams: { - searchWord: '', - status: 0, + keywords: '', + settlementOrderStatus: '' as any as EnumTaskSettlementOrderStatus, + settlementStatus: '' as any as EnumTaskSettlementStatus, time: [] as unknown as ModelValueType, orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, - queryKey: ['taskServices/getTaskInfos'], - columnsRenderProps: {}, + queryKey: ['taskServices/getSettlementTasks'], + columnsRenderProps: { + settlementOrderStatus: { type: 'enum', valueEnum: EnumTaskSettlementOrderStatusText }, + settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText }, + actualSettlementAmount: { type: 'money' }, + settlementAmount: { type: 'money' }, + settlementTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + settlementOrderTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, + settlementOrderName: { + formatter: (row: API.GetSettlementTasksQueryResultItem) => + row.settlementOrderName && setOssFileName(row.settlementOrderName), + }, + }, } ); -const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({ +const { dialogProps, handleAdd, editForm } = useFormDialog({ onConfirm: handleAddOrEdit, defaultFormParams: { + code: '', id: '', name: '', settlementUrl: [] as UploadUserFile[], }, }); -function openDialog(row?) { - if (row) { - handleEdit({ - id: row?.id, - name: row?.name, - settlementUrl: [] as UploadUserFile[], - }); - } else { - handleAdd(); - } +async function handleAddOrEdit() { + console.log('editForm: ', editForm); + goDetail(editForm.id, editForm.settlementUrl[0]?.path); } - -async function handleAddOrEdit() {} const { dialogProps: dialogSettleProps, handleEdit: handleSettleEdit, editForm: settleEditForm, } = useFormDialog({ - onConfirm: goSettle, + onConfirm: handleSettle, defaultFormParams: { id: '', name: '', - count: 0, + code: '', + settlementUserCount: 0, + settlementAmount: 0, }, }); -function openSettleDialog(row?) { +async function handleSettle() { + try { + let params: API.SureTaskSettlementCommand = { + taskInfoId: settleEditForm.id, + }; + let res = await taskServices.sureTaskSettlement(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } + } catch (error) {} +} + +function openSettleDialog(row: API.GetSettlementTasksQueryResultItem) { handleSettleEdit({ id: row.id, name: row.name, - count: row.count, + code: row.code, + settlementUserCount: row.settlementUserCount ?? 0, + settlementAmount: row.settlementAmount ?? 0, }); } -async function goSettle() { - router.push({ - name: 'ServiceChargeSettle', - params: { - id: settleEditForm.id, - }, - }); +async function handleRecall(row: API.GetSettlementTasksQueryResultItem) { + try { + Message.tipMessage('纭瑕佹挙鍥炲悧锛�'); + let params: API.RevokeTaskSettlementOrderCommand = { + taskInfoId: row.id, + }; + let res = await taskServices.revokeTaskSettlementOrder(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } + } catch (error) {} } -function handleRecall(row) {} +function handleUploadSuccess( + response: UploadUserFile & { file: File & { uid: number } }, + row: API.GetSettlementTasksQueryResultItem +) { + if (response.path) { + goDetail(row.id, response.path); + } +} -function goDetail(row) { +function goDetail(id: string, url?: string) { router.push({ name: 'ServiceChargeDetail', params: { - id: row.id, + id: id, + }, + query: { + url: url ? url : '', }, }); } @@ -292,6 +370,9 @@ } function handleDownloadTemplate() { - downloadFileByUrl('', '缁撶畻鍗曟ā鏉�'); + downloadFileByUrl( + 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E7%BB%93%E7%AE%97%E5%8D%95%E6%A8%A1%E6%9D%BF.xlsx', + '缁撶畻鍗曟ā鏉�' + ); } </script> -- Gitblit v1.9.1