From 21eeb2e067359789759904868438c70b18d4b066 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 26 十二月 2025 17:31:01 +0800
Subject: [PATCH] feat: init
---
src/views/EmploymentManage/TaskArrangeDetail.vue | 138 ++++++++++++++++++++++++++++-----------------
1 files changed, 85 insertions(+), 53 deletions(-)
diff --git a/src/views/EmploymentManage/TaskArrangeDetail.vue b/src/views/EmploymentManage/TaskArrangeDetail.vue
index b6bf954..5b211a4 100644
--- a/src/views/EmploymentManage/TaskArrangeDetail.vue
+++ b/src/views/EmploymentManage/TaskArrangeDetail.vue
@@ -11,12 +11,7 @@
</ProFormColItem>
<ProFormColItem :span="12">
<ProFormItemV2 label="鏈嶅姟鍗忚锛�" prop="contractUrl">
- <ProFormUpload
- v-model:file-url="form.contractUrl"
- :limit="1"
- :limitFileSize="10"
- accept="jpg/jpeg,png,pdf"
- ></ProFormUpload>
+ <ProFormUpload v-model:file-url="form.contractUrl"></ProFormUpload>
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
@@ -63,13 +58,13 @@
</ProForm>
</ChunkCell>
<ChunkCell title="浠诲姟瀹夋帓">
- <ProTableQueryFilterBar>
+ <ProTableQueryFilterBar :show-reset-btn="false">
<template #btn>
<el-button
v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
type="primary"
link
- @click="handleAdd()"
+ @click="openDialog()"
>鏂板浠诲姟</el-button
>
</template>
@@ -117,30 +112,36 @@
import * as taskUserServices from '@/services/api/taskUser';
import AddTaskDialog from './components/AddTaskDialog.vue';
import { EnumUserGenderTextForPerson } from '@/constants';
-import { paginateList } from '@/utils';
+import { paginateList, convertApi2FormUrlOnlyOne } from '@/utils';
+import { useGetWaitArrangeTasks } from '@/hooks';
+import { Message } from '@bole-core/core';
defineOptions({
name: 'TaskArrangeDetail',
});
+type GetWaitArrangeTasksQueryResultItemWithChoose = API.GetWaitArrangeTasksQueryResultItem & {
+ choose: boolean;
+};
+
const { closeViewPush } = useRouteView();
const eventContext = useGlobalEventContext();
const operationBtnMap: Record<string, OperationBtnType> = {
arrangeBtn: {
emits: {
- onClick: (role) => openDialog(role),
+ onClick: (role) => setTaskUserArrange(role),
},
extraProps: {
- hide: (row: API.GetSettlementTaskUsersQueryResultItem) => false,
+ hide: (row) => row.choose,
},
},
cancelArrangeBtn: {
emits: {
- onClick: (role) => openDialog(role),
+ onClick: (role) => setTaskUserArrange(role),
},
extraProps: {
- hide: (row: API.GetSettlementTaskUsersQueryResultItem) => false,
+ hide: (row) => !row.choose,
},
},
};
@@ -156,10 +157,12 @@
contractUrl: [] as UploadUserFile[],
contractTime: [],
contactPhoneNumber: '',
- gender: '',
+ gender: '' as any as EnumUserGender,
age: 0,
identity: '',
- settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[],
+ taskInfos: [] as GetWaitArrangeTasksQueryResultItemWithChoose[],
+
+ arrangeList: [] as API.GetWaitArrangeTasksQueryResultItem[],
});
const BaseState = {
@@ -168,22 +171,34 @@
const state = reactive({ ...BaseState });
+const { proTableProps: waitArrangeTasksProTableProps } = useGetWaitArrangeTasks({
+ id: id,
+});
+
const { isLoading, refetch } = useQuery({
- queryKey: ['taskUserServices/getSettlementTaskUsers', id],
+ queryKey: ['taskUserServices/getArrangeTaskEnterpriseEmployee', id],
queryFn: async () => {
let params: API.APIgetSettlementTaskUsersParams = {
id: id,
};
- return await taskUserServices.getSettlementTaskUsers(params, {
+ return await taskUserServices.getArrangeTaskEnterpriseEmployee(params, {
showLoading: false,
});
},
- placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
+ placeholderData: () => ({} as API.GetArrangeTaskEnterpriseEmployeeQueryResult),
onSuccess(res) {
- form.settlementTaskUsers = res?.data ?? [];
- if (res?.detail) {
- form.name = res?.detail?.name;
- }
+ form.name = res?.name;
+ form.contractUrl = convertApi2FormUrlOnlyOne(res?.contractUrl);
+ form.contractTime = [res.contractBegin, res.contractEnd];
+ form.contactPhoneNumber = res?.contactPhoneNumber;
+ form.gender = res?.gender;
+ form.age = res?.age ?? 0;
+ form.identity = res?.identity ?? '';
+ form.taskInfos = res?.taskInfos.map((x) => ({
+ ...x,
+ choose: true,
+ }));
+
getList();
},
enabled: !!id,
@@ -198,17 +213,8 @@
} = useTable(
async ({ pageIndex, pageSize }, extraParamState) => {
try {
- let list = [...form.settlementTaskUsers];
- if (extraParamState.keywords) {
- list = list?.filter((item) => {
- return (
- item.name.includes(extraParamState.keywords) ||
- item.contactPhoneNumber.includes(extraParamState.keywords) ||
- item.identity.includes(extraParamState.keywords)
- );
- });
- }
-
+ let list = [...form.taskInfos];
+ console.log('form.taskInfos: ', form.taskInfos);
return Promise.resolve({
pageModel: {
rows: pageSize,
@@ -223,49 +229,75 @@
},
{
defaultExtraParams: {
- keywords: '',
orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
},
- queryKey: ['taskUserServices/getSettlementTaskUsers'],
columnsRenderProps: {
- settlementTime: { type: 'date' },
+ beginTime: { type: 'date' },
+ endTime: { type: 'date' },
},
}
);
-const { dialogProps, handleAdd, handleEdit, editForm } = useFormDialog({
+async function setTaskUserArrange(row: GetWaitArrangeTasksQueryResultItemWithChoose) {
+ try {
+ await Message.tipMessage(`纭瑕�${row.choose ? '鍙栨秷瀹夋帓' : '瀹夋帓'}鍚楋紵`);
+ let params: API.SetTaskUserArrangeCommand = {
+ enterpriseEmployeeId: id,
+ taskInfoId: row.id,
+ arrangeStatus: row.choose
+ ? EnumTaskUserArrangeStatus.Wait
+ : EnumTaskUserArrangeStatus.Complete,
+ };
+ let res = await taskUserServices.setTaskUserArrange(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ form.taskInfos = form.taskInfos.map((x) => {
+ if (x.id == row.id) {
+ x.choose = !x.choose;
+ }
+ return x;
+ });
+ getList();
+ }
+ } catch (error) {}
+}
+
+const { dialogProps, handleEdit, editForm } = useFormDialog({
onConfirm: handleAddOrEdit,
defaultFormParams: {
id: '',
+ selectedIds: [] as string[],
},
});
-function openDialog(row?: API.GetSettlementTaskUsersQueryResultItem) {
- if (row) {
- handleEdit({
- id: row?.id,
- });
- }
+function openDialog() {
+ handleEdit({
+ id: id,
+ selectedIds: [] as string[],
+ });
}
async function handleAddOrEdit() {
try {
- // let params: API.EditTaskSettlementOrderRosterCommand = {
- // id: editForm.id,
- // };
- // let res = await taskServices.editTaskSettlementOrderRoster(params);
- // if (res) {
- // Message.successMessage('鎿嶄綔鎴愬姛');
- // refetch();
- // getList(paginationState.pageIndex);
- // }
+ let params: API.BatchSetTaskUserArrangeCommand = {
+ enterpriseEmployeeId: id,
+ taskInfoIds: editForm.selectedIds,
+ arrangeStatus: EnumTaskUserArrangeStatus.Complete,
+ };
+ let res = await taskUserServices.batchSetTaskUserArrange(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ refetch();
+ getList();
+ }
} catch (error) {}
}
function handleBack() {
closeViewPush(route, {
- name: 'ServiceChargeManageList',
+ name: 'TaskArrange',
});
+ eventContext.emit('taskArrange:arrange');
}
</script>
--
Gitblit v1.10.0