diff --git a/apps/web-ele/src/views/bpm/model/form/modules/basic-info.vue b/apps/web-ele/src/views/bpm/model/form/modules/basic-info.vue index 0c82d5b14..d38cd7c08 100644 --- a/apps/web-ele/src/views/bpm/model/form/modules/basic-info.vue +++ b/apps/web-ele/src/views/bpm/model/form/modules/basic-info.vue @@ -9,6 +9,7 @@ import type { SystemUserApi } from '#/api/system/user'; import { ref, watch } from 'vue'; +import { useVbenModal } from '@vben/common-ui'; import { DICT_TYPE } from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; import { IconifyIcon } from '@vben/icons'; @@ -26,8 +27,9 @@ import { ElTooltip, } from 'element-plus'; -// import { DeptSelectModal, UserSelectModal } from '#/components/select-modal'; import { ImageUpload } from '#/components/upload'; +import { DeptSelectModal } from '#/views/system/dept/components'; +import { UserSelectModal } from '#/views/system/user/components'; const props = defineProps({ categoryList: { @@ -44,15 +46,15 @@ const props = defineProps({ }, }); -// const [UserSelectModalComp, userSelectModalApi] = useVbenModal({ -// connectedComponent: UserSelectModal, -// destroyOnClose: true, -// }); +const [UserSelectModalComp, userSelectModalApi] = useVbenModal({ + connectedComponent: UserSelectModal, + destroyOnClose: true, +}); -// const [DeptSelectModalComp, deptSelectModalApi] = useVbenModal({ -// connectedComponent: DeptSelectModal, -// destroyOnClose: true, -// }); +const [DeptSelectModalComp, deptSelectModalApi] = useVbenModal({ + connectedComponent: DeptSelectModal, + destroyOnClose: true, +}); const formRef = ref(); // 表单引用 const modelData = defineModel(); // 创建本地数据副本 @@ -125,21 +127,22 @@ function openStartUserSelect() { selectedUsers.value = selectedStartUsers.value.map( (user) => user.id, ) as number[]; - // userSelectModalApi.setData({ userIds: selectedUsers.value }).open(); + userSelectModalApi.setData({ userIds: selectedUsers.value }).open(); } /** 打开部门选择 */ function openStartDeptSelect() { - // deptSelectModalApi.setData({ selectedList: selectedStartDepts.value }).open(); + deptSelectModalApi.setData({ selectedList: selectedStartDepts.value }).open(); } -// /** 处理部门选择确认 */ -// function handleDeptSelectConfirm(depts: SystemDeptApi.Dept[]) { -// modelData.value = { -// ...modelData.value, -// startDeptIds: depts.map((d) => d.id), -// }; -// } +/** 处理部门选择确认 */ +function handleDeptSelectConfirm(depts: SystemDeptApi.Dept[]) { + selectedStartDepts.value = depts; + modelData.value = { + ...modelData.value, + startDeptIds: depts.map((d) => d.id), + }; +} /** 打开管理员选择 */ function openManagerUserSelect() { @@ -147,32 +150,32 @@ function openManagerUserSelect() { selectedUsers.value = selectedManagerUsers.value.map( (user) => user.id, ) as number[]; - // userSelectModalApi.setData({ userIds: selectedUsers.value }).open(); + userSelectModalApi.setData({ userIds: selectedUsers.value }).open(); } -// /** 处理用户选择确认 */ -// function handleUserSelectConfirm(userList: SystemUserApi.User[]) { -// modelData.value = -// currentSelectType.value === 'start' -// ? { -// ...modelData.value, -// startUserIds: userList.map((u) => u.id), -// } -// : { -// ...modelData.value, -// managerUserIds: userList.map((u) => u.id), -// }; -// } +/** 处理用户选择确认 */ +function handleUserSelectConfirm(userList: SystemUserApi.User[]) { + modelData.value = + currentSelectType.value === 'start' + ? { + ...modelData.value, + startUserIds: userList.map((u) => u.id), + } + : { + ...modelData.value, + managerUserIds: userList.map((u) => u.id), + }; +} -// /** 用户选择弹窗关闭 */ -// function handleUserSelectClosed() { -// selectedUsers.value = []; -// } +/** 用户选择弹窗关闭 */ +function handleUserSelectClosed() { + selectedUsers.value = []; +} -// /** 用户选择弹窗取消 */ -// function handleUserSelectCancel() { -// selectedUsers.value = []; -// } +/** 用户选择弹窗取消 */ +function handleUserSelectCancel() { + selectedUsers.value = []; +} /** 处理发起人类型变化 */ function handleStartUserTypeChange(value: number) { @@ -285,7 +288,12 @@ defineExpose({ validate }); - + @@ -424,19 +432,19 @@ defineExpose({ validate }); - + /> - + /> diff --git a/apps/web-ele/src/views/system/dept/components/dept-select-modal.vue b/apps/web-ele/src/views/system/dept/components/dept-select-modal.vue new file mode 100644 index 000000000..be14cf6ed --- /dev/null +++ b/apps/web-ele/src/views/system/dept/components/dept-select-modal.vue @@ -0,0 +1,141 @@ +// TODO @芋艿:是否有更好的组织形式?! + + diff --git a/apps/web-ele/src/views/system/dept/components/index.ts b/apps/web-ele/src/views/system/dept/components/index.ts new file mode 100644 index 000000000..d41597e97 --- /dev/null +++ b/apps/web-ele/src/views/system/dept/components/index.ts @@ -0,0 +1,2 @@ +// TODO @xingyu:【待讨论】是不是把 user select 放到 user 目录的 components 下,dept select 放到 dept 目录的 components 下 +export { default as DeptSelectModal } from './dept-select-modal.vue'; diff --git a/apps/web-ele/src/views/system/user/components/index.ts b/apps/web-ele/src/views/system/user/components/index.ts new file mode 100644 index 000000000..9cb1c93fd --- /dev/null +++ b/apps/web-ele/src/views/system/user/components/index.ts @@ -0,0 +1 @@ +export { default as UserSelectModal } from './user-select-modal.vue'; diff --git a/apps/web-ele/src/views/system/user/components/user-select-modal.vue b/apps/web-ele/src/views/system/user/components/user-select-modal.vue new file mode 100644 index 000000000..a9c2b1b16 --- /dev/null +++ b/apps/web-ele/src/views/system/user/components/user-select-modal.vue @@ -0,0 +1,518 @@ + + + + +