From 94f20f13dbb3b6392a7813a36953be038fea1916 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 05 九月 2025 14:47:12 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdminBClient
---
src/views/ServiceChargeManage/ServiceChargeDetail.vue | 186 ++++++++++++++++++++++++++++++++-------------
1 files changed, 131 insertions(+), 55 deletions(-)
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 97cf434..f10c238 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -1,12 +1,7 @@
<template>
<LoadingLayout :loading="isLoading">
- <AppScrollContainer>
+ <AppContainer>
<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">
+ <ProFormText v-model="form.settlementAmount"> </ProFormText>
</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">
+ <ProFormText v-model="form.actualSettlementAmount"> </ProFormText>
</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,15 +66,15 @@
</el-step>
</el-steps>
</div>
- </ChunkCell>
- <ChunkCell title="缁撶畻鍚嶅崟">
+ </ChunkCell> -->
+ <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1">
<ProTableQueryFilterBar @on-reset="reset">
<template #query>
<QueryFilterItem>
<SearchInput
- v-model="extraParamState.searchWord"
+ v-model="extraParamState.keywords"
style="width: 300px"
- placeholder="浜哄憳濮撳悕/韬唤璇佸彿/鎵嬫満鍙�"
+ placeholder="濮撳悕/鎵嬫満/韬唤璇佸彿/瀹㈡埛"
@on-click-search="getList"
>
</SearchInput>
@@ -97,7 +84,7 @@
<ProTableV2
v-bind="proTableProps"
:columns="SettlementListColumns"
- :operationBtns="operationBtns"
+ :show-operation-column="false"
:auto-height="false"
ref="proTable"
:tableProps="{
@@ -105,13 +92,25 @@
}"
>
</ProTableV2>
+ <div class="chuck-add-or-edit-actions">
+ <el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
+ <el-button
+ v-if="!isDetail"
+ class="chuck-add-or-edit-actions"
+ type="primary"
+ @click="handleSubmit"
+ >纭</el-button
+ >
+ </div>
</ChunkCell>
- </AppScrollContainer>
+ </AppContainer>
+ <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
</LoadingLayout>
</template>
<script setup lang="ts">
import {
LoadingLayout,
+ AppContainer,
AppScrollContainer,
ChunkCell,
ProForm,
@@ -121,54 +120,74 @@
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';
+import { paginateList, setOssFileName, toThousand } from '@/utils';
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 url = (route.query.url as string) ?? '';
+
+const isDetail = computed(() => !url);
const form = reactive({
name: '',
- money: 0,
- status: 1,
+ settlementAmount: '',
+ actualSettlementAmount: '',
+ code: '',
+ settlementOrderName: '',
+ settlementOrderTime: '',
});
const { isLoading } = useQuery({
- queryKey: ['flexTaskServices/getFlexTaskDetail', id],
+ queryKey: ['taskServices/getSettlementTask', id],
queryFn: async () => {
- return await flexTaskServices.getFlexTaskDetail(
+ return await taskServices.getSettlementTask(
{ id: id },
{
showLoading: false,
}
);
},
- placeholderData: () => ({} as API.GetFlexTaskDetailForBackOutput),
- onSuccess(data) {},
+ 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 ?? '';
+ },
enabled: !!id,
});
@@ -181,33 +200,90 @@
} = useTable(
async ({ pageIndex, pageSize }, extraParamState) => {
try {
- let params: API.GetFlexEnterpriseInput = {
+ let params: API.APIgetSettlementTaskUsersParams = {
+ taskInfoId: id,
+ settlementOrderUrl: url,
+ };
+ let res = await taskUserServices.getSettlementTaskUsers(params);
+ if (extraParamState.keywords) {
+ res.data = res.data?.filter((item) => {
+ return (
+ item.name.includes(extraParamState.keywords) ||
+ item.contactPhoneNumber.includes(extraParamState.keywords) ||
+ item.identity.includes(extraParamState.keywords)
+ );
+ });
+ }
+ return Promise.resolve({
pageModel: {
rows: pageSize,
page: pageIndex,
- orderInput: extraParamState.orderInput,
+ totalCount: res.data.length,
},
- searchWord: extraParamState.searchWord,
- };
-
- let res = await flexEnterpriseServices.getFlexEnterpriseList(params);
- return res;
+ data: paginateList(res.data, pageIndex, pageSize),
+ });
} catch (error) {
console.log('error: ', error);
}
},
{
defaultExtraParams: {
- searchWord: '',
+ keywords: '',
orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
},
- queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
- columnsRenderProps: {},
+ queryKey: ['taskUserServices/getSettlementTaskUsers'],
+ columnsRenderProps: {
+ settlementTime: { type: 'date' },
+ settlementAmount: { type: 'money' },
+ actualSettlementAmount: { type: 'money' },
+ },
}
);
-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:
+ proTableProps.value.tableData?.length > 0
+ ? proTableProps.value.tableData.map(
+ (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser)
+ )
+ : [],
+ };
+ 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