Эх сурвалжийг харах

【代码优化】BPM:流程模型->基本信息->谁可以发起,支持指定多个部门

YunaiV 4 сар өмнө
parent
commit
286628d101

+ 5 - 3
src/components/DeptSelectForm/index.vue

@@ -59,7 +59,7 @@ const props = defineProps({
 
 const treeRef = ref()
 const deptTree = ref<Tree[]>([]) // 部门树形结构
-const selectedDeptIds = ref<number[]>([]) // 选中的部门ID列表
+const selectedDeptIds = ref<number[]>([]) // 选中的部门 ID 列表
 const dialogVisible = ref(false) // 弹窗的是否展示
 const formLoading = ref(false) // 表单的加载中
 
@@ -78,7 +78,9 @@ const open = async (selectedList?: DeptApi.DeptVO[]) => {
   // 设置已选择的部门
   if (selectedList?.length) {
     await nextTick()
-    const selectedIds = selectedList.map(dept => dept.id).filter((id): id is number => id !== undefined)
+    const selectedIds = selectedList
+      .map((dept) => dept.id)
+      .filter((id): id is number => id !== undefined)
     selectedDeptIds.value = selectedIds
     treeRef.value?.setCheckedKeys(selectedIds)
   }
@@ -117,4 +119,4 @@ const resetForm = () => {
 }
 
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
-</script>
+</script>

+ 13 - 5
src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue

@@ -25,7 +25,14 @@
     </template>
     <el-tabs type="border-card" v-model="activeTabName">
       <el-tab-pane label="权限" name="user">
-        <el-text v-if="(!startUserIds || startUserIds.length === 0) && (!startDeptIds || startDeptIds.length === 0)"> 全部成员可以发起流程 </el-text>
+        <el-text
+          v-if="
+            (!startUserIds || startUserIds.length === 0) &&
+            (!startDeptIds || startDeptIds.length === 0)
+          "
+        >
+          全部成员可以发起流程
+        </el-text>
         <div v-else-if="startUserIds && startUserIds.length > 0">
           <el-text v-if="startUserIds.length == 1">
             {{ getUserNicknames(startUserIds) }} 可发起流程
@@ -37,7 +44,8 @@
               placement="top"
               :content="getUserNicknames(startUserIds)"
             >
-              {{ getUserNicknames(startUserIds.slice(0,2)) }} 等 {{ startUserIds.length }} 人可发起流程
+              {{ getUserNicknames(startUserIds.slice(0, 2)) }} 等
+              {{ startUserIds.length }} 人可发起流程
             </el-tooltip>
           </el-text>
         </div>
@@ -52,11 +60,11 @@
               placement="top"
               :content="getDeptNames(startDeptIds)"
             >
-              {{ getDeptNames(startDeptIds.slice(0,2)) }} 等 {{ startDeptIds.length }} 个部门的人可发起流程
+              {{ getDeptNames(startDeptIds.slice(0, 2)) }} 等
+              {{ startDeptIds.length }} 个部门可发起流程
             </el-tooltip>
           </el-text>
         </div>
-
       </el-tab-pane>
       <el-tab-pane label="表单字段权限" name="fields" v-if="formType === 10">
         <div class="field-setting-pane">
@@ -170,7 +178,7 @@ const getUserNicknames = (userIds: number[]): string => {
 const getDeptNames = (deptIds: number[]): string => {
   if (!deptIds || deptIds.length === 0) {
     return ''
-  } 
+  }
   const deptNames: string[] = []
   deptIds.forEach((deptId) => {
     const found = deptOptions?.value.find((item) => item.id === deptId)

+ 6 - 5
src/views/bpm/model/form/index.vue

@@ -94,7 +94,6 @@ import * as FormApi from '@/api/bpm/form'
 import { CategoryApi, CategoryVO } from '@/api/bpm/category'
 import * as UserApi from '@/api/system/user'
 import * as DeptApi from '@/api/system/dept'
-import { useUserStoreWithOut } from '@/store/modules/user'
 import * as DefinitionApi from '@/api/bpm/definition'
 import { BpmModelFormType, BpmModelType, BpmAutoApproveType } from '@/utils/constants'
 import BasicInfo from './BasicInfo.vue'
@@ -205,14 +204,16 @@ const initData = async () => {
       data.simpleModel = JSON.parse(data.simpleModel)
     }
     formData.value = data
-    formData.value.startUserType = formData.value.startUserIds?.length > 0 ? 1 : formData.value?.startDeptIds?.length > 0 ? 2 : 0
+    formData.value.startUserType =
+      formData.value.startUserIds?.length > 0 ? 1 : formData.value?.startDeptIds?.length > 0 ? 2 : 0
   } else if (['update', 'copy'].includes(actionType)) {
     // 情况二:修改场景/复制场景
     const modelId = route.params.id as string
     formData.value = await ModelApi.getModel(modelId)
-    formData.value.startUserType = formData.value.startUserIds?.length > 0 ? 1 : formData.value?.startDeptIds?.length > 0 ? 2 : 0
+    formData.value.startUserType =
+      formData.value.startUserIds?.length > 0 ? 1 : formData.value?.startDeptIds?.length > 0 ? 2 : 0
 
-    // 复制场景
+    // 特殊:复制场景
     if (route.params.type === 'copy') {
       delete formData.value.id
       formData.value.name += '副本'
@@ -233,7 +234,7 @@ const initData = async () => {
   userList.value = await UserApi.getSimpleUserList()
   // 获取部门列表
   deptList.value = await DeptApi.getSimpleDeptList()
-  
+
   // 最终,设置 currentStep 切换到第一步
   currentStep.value = 0