From 258b6ce3a359bceb354ca3ea55c73bfb0cad0dc1 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 04 九月 2025 17:47:14 +0800 Subject: [PATCH] feat: 页面 --- src/views/ServiceChargeManage/ServiceChargeDetail.vue | 133 ++++++++++++++++++++++++++++++-------------- 1 files changed, 90 insertions(+), 43 deletions(-) diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue index f73a96f..756a31a 100644 --- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue +++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue @@ -2,11 +2,6 @@ <LoadingLayout :loading="isLoading"> <AppScrollContainer> <ChunkCell title="缁撶畻鍗曡鎯�"> - <template #titleRight> - <el-button type="primary" icon="Download" @click="handleDownloadTemplate()" - >鐢靛瓙鍥炲崟涓嬭浇</el-button - > - </template> <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true"> <ProFormCol> <ProFormColItem :span="8"> @@ -15,50 +10,42 @@ </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="8"> - <ProFormItemV2 label="浠诲姟缂栧彿:" prop="name"> - <ProFormText v-model="form.name"> </ProFormText> + <ProFormItemV2 label="浠诲姟缂栧彿:" prop="code"> + <ProFormText v-model="form.code"> </ProFormText> </ProFormItemV2> </ProFormColItem> - <ProFormColItem :span="8"></ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="8"> - <ProFormItemV2 label="缁撶畻鍗曞悕绉�:" prop="name"> - <ProFormText v-model="form.name"> </ProFormText> + <ProFormItemV2 label="缁撶畻鍗曞悕绉�:" prop="settlementOrderName"> + <ProFormText v-model="form.settlementOrderName"> </ProFormText> </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="8"> - <ProFormItemV2 label="涓婁紶鏃堕棿:" prop="name"> + <ProFormItemV2 label="涓婁紶鏃堕棿:" prop="settlementOrderTime"> <ProFormDatePicker - v-model="form.name" + v-model="form.settlementOrderTime" type="date" format="YYYY-MM-DD HH:mm" ></ProFormDatePicker> </ProFormItemV2> </ProFormColItem> - <ProFormColItem :span="8"></ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="8"> - <ProFormItemV2 label="缁撶畻閲戦:" prop="money"> - <ProFormInputNumber v-model="form.money"> </ProFormInputNumber> + <ProFormItemV2 label="缁撶畻閲戦:" prop="settlementAmount"> + <ProFormInputNumber v-model="form.settlementAmount"> </ProFormInputNumber> </ProFormItemV2> </ProFormColItem> <ProFormColItem :span="8"> - <ProFormItemV2 label="瀹炲彂閲戦:" prop="money"> - <ProFormInputNumber v-model="form.money"> </ProFormInputNumber> - </ProFormItemV2> - </ProFormColItem> - <ProFormColItem :span="8"> - <ProFormItemV2 label="鐘舵��:" prop="status"> - <ProFormRadio v-model="form.status" :value-enum="[{ label: '鏄�', value: 1 }]"> - </ProFormRadio> + <ProFormItemV2 label="瀹炲彂閲戦:" prop="actualSettlementAmount"> + <ProFormInputNumber v-model="form.actualSettlementAmount"> </ProFormInputNumber> </ProFormItemV2> </ProFormColItem> </ProFormCol> </ProForm> </ChunkCell> - <ChunkCell title="缁撶畻娴佺▼"> + <!-- <ChunkCell title="缁撶畻娴佺▼"> <div class="step-wrapper"> <el-steps :active="1" align-center finish-status="process"> <el-step title="缁撶畻鍗曚笂浼�" :icon="Edit"> @@ -79,7 +66,7 @@ </el-step> </el-steps> </div> - </ChunkCell> + </ChunkCell> --> <ChunkCell title="缁撶畻鍚嶅崟"> <ProTableQueryFilterBar @on-reset="reset"> <template #query> @@ -87,7 +74,7 @@ <SearchInput v-model="extraParamState.keywords" style="width: 300px" - placeholder="浜哄憳濮撳悕/韬唤璇佸彿/鎵嬫満鍙�" + placeholder="濮撳悕/鎵嬫満/韬唤璇佸彿/瀹㈡埛" @on-click-search="getList" > </SearchInput> @@ -105,8 +92,15 @@ }" > </ProTableV2> + <div class="chuck-add-or-edit-actions"> + <el-button @click="handleBack">鍙栨秷</el-button> + <el-button class="chuck-add-or-edit-actions" type="primary" @click="handleSubmit" + >纭</el-button + > + </div> </ChunkCell> </AppScrollContainer> + <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog> </LoadingLayout> </template> <script setup lang="ts"> @@ -121,56 +115,70 @@ ProFormColItem, ProFormDatePicker, ProFormInputNumber, - ProFormRadio, useTable, ProTableV2, defineOperationBtns, SearchInput, QueryFilterItem, ProTableQueryFilterBar, - TextOverTooltip, + useFormDialog, } from '@bole-core/components'; -import { Edit, Upload } from '@element-plus/icons-vue'; import { SettlementListColumns } from './constants'; import { useQuery } from '@tanstack/vue-query'; -import { downloadFileByUrl } from '@bole-core/core'; import * as taskServices from '@/services/api/task'; +import * as taskUserServices from '@/services/api/taskUser'; +import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue'; +import { Message } from '@bole-core/core'; defineOptions({ name: 'ServiceChargeDetail', }); +const { closeViewPush } = useRouteView(); +const eventContext = useGlobalEventContext(); const operationBtns = defineOperationBtns([ { data: { - enCode: 'downloadBtn', - name: '涓嬭浇鍥炲崟', + enCode: 'editBtn', + name: '缂栬緫', + }, + emits: { + onClick: (role) => openDialog(role), }, }, ]); const route = useRoute(); -const id = (route.params.id as string) ?? ''; +const id = (route.query.id as string) ?? ''; +const url = (route.query.url as string) ?? ''; const form = reactive({ name: '', - money: 0, - status: 1, + settlementAmount: 0, + actualSettlementAmount: 0, + code: '', + settlementOrderName: '', + settlementOrderTime: '', }); const { isLoading } = useQuery({ - queryKey: ['taskServices/getTaskInfo', id], + queryKey: ['taskServices/getSettlementTask', id], queryFn: async () => { - return await taskServices.getTaskInfo( + return await taskServices.getSettlementTask( { id: id }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.GetTaskInfoQueryResult), + placeholderData: () => ({} as API.GetSettlementTaskQueryResult), onSuccess(data) { form.name = data.name; + form.settlementAmount = data.settlementAmount; + form.actualSettlementAmount = data.actualSettlementAmount; + form.code = data.code; + form.settlementOrderName = data.settlementOrderName; + form.settlementOrderTime = data.settlementOrderTime; }, enabled: !!id, }); @@ -184,16 +192,18 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetOpenTaskInfosQuery = { + let params: API.GetSettlementTaskUsersQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, + taskInfoId: id, + // settlementOrderUrl:form. keywords: extraParamState.keywords, }; - let res = await taskServices.getOpenTaskInfos(params); + let res = await taskUserServices.getSettlementTaskUsers(params); return res; } catch (error) { console.log('error: ', error); @@ -204,13 +214,50 @@ keywords: '', orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, - queryKey: ['taskServices/getOpenTaskInfos'], + queryKey: ['taskUserServices/getOpenTaskInfos'], columnsRenderProps: {}, } ); -function handleDownloadTemplate() { - downloadFileByUrl('', '鐢靛瓙鍥炲崟'); +const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({ + onConfirm: handleAddOrEdit, + defaultFormParams: { + id: '', + name: '', + }, +}); + +function openDialog(row?) { + if (row) { + handleEdit({ + id: row?.id, + name: row?.name, + }); + } +} + +async function handleAddOrEdit() {} + +async function handleSubmit() { + try { + let params: API.SureTaskSettlementOrderCommand = { + taskInfoId: id, + settlementOrderUrl: url, + taskInfoUsers: [], + }; + let res = await taskServices.sureTaskSettlementOrder(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + eventContext.emit('sureTaskSettlementOrder'); + handleBack(); + } + } catch (error) {} +} + +function handleBack() { + closeViewPush(route, { + name: 'ServiceChargeManageList', + }); } onMounted(() => { -- Gitblit v1.9.1