| | |
| | | const selectedStartDepts = ref<SystemDeptApi.Dept[]>([]); // 选中的发起部门 |
| | | |
| | | const selectedManagerUsers = ref<SystemUserApi.User[]>([]); // 选中的流程管理员 |
| | | const currentSelectType = ref<'manager' | 'start'>('start'); |
| | | const selectedUsers = ref<number[]>(); // 选中的用户 |
| | | const rules: Record<string, Rule[]> = { |
| | | name: [{ required: true, message: '流程名称不能为空', trigger: 'blur' }], |
| | |
| | | |
| | | /** 打开发起人选择 */ |
| | | function openStartUserSelect() { |
| | | currentSelectType.value = 'start'; |
| | | selectedUsers.value = selectedStartUsers.value.map( |
| | | (user) => user.id, |
| | | ) as number[]; |
| | |
| | | }; |
| | | } |
| | | |
| | | /** 打开管理员选择 */ |
| | | function openManagerUserSelect() { |
| | | currentSelectType.value = 'manager'; |
| | | selectedUsers.value = selectedManagerUsers.value.map( |
| | | (user) => user.id, |
| | | ) as number[]; |
| | | userSelectModalApi.setData({ userIds: selectedUsers.value }).open(); |
| | | } |
| | | |
| | | /** 处理用户选择确认 */ |
| | | /** 处理用户选择确认(发起人) */ |
| | | function handleUserSelectConfirm(userList: SystemUserApi.User[]) { |
| | | modelData.value = |
| | | currentSelectType.value === 'start' |
| | | ? { |
| | | modelData.value = { |
| | | ...modelData.value, |
| | | startUserIds: userList.map((u) => u.id), |
| | | } |
| | | : { |
| | | ...modelData.value, |
| | | managerUserIds: userList.map((u) => u.id), |
| | | }; |
| | | } |
| | | |
| | |
| | | ...modelData.value, |
| | | startDeptIds: modelData.value.startDeptIds.filter( |
| | | (id: number) => id !== dept.id, |
| | | ), |
| | | }; |
| | | } |
| | | |
| | | /** 移除管理员 */ |
| | | function handleRemoveManagerUser(user: SystemUserApi.User) { |
| | | modelData.value = { |
| | | ...modelData.value, |
| | | managerUserIds: modelData.value.managerUserIds.filter( |
| | | (id: number) => id !== user.id, |
| | | ), |
| | | }; |
| | | } |
| | |
| | | <span class="text-gray-700 dark:text-gray-200"> |
| | | {{ user.nickname }} |
| | | </span> |
| | | <IconifyIcon |
| | | icon="lucide:x" |
| | | class="ml-2 size-4 cursor-pointer text-gray-400 hover:text-red-500" |
| | | @click="handleRemoveManagerUser(user)" |
| | | /> |
| | | </div> |
| | | <Button |
| | | type="link" |
| | | @click="openManagerUserSelect" |
| | | class="flex items-center" |
| | | > |
| | | <template #icon> |
| | | <IconifyIcon icon="lucide:user-plus" class="size-4" /> |
| | | </template> |
| | | 选择人员 |
| | | </Button> |
| | | </div> |
| | | </Form.Item> |
| | | </Form> |