Explorar o código

Merge branch 'feature/bpm' of https://gitee.com/yudaocode/yudao-ui-admin-vue3

YunaiV hai 5 meses
pai
achega
78e29940be

+ 15 - 3
src/components/SimpleProcessDesignerV2/src/nodes-config/components/Condition.vue

@@ -12,7 +12,10 @@
         </el-radio>
       </el-radio-group>
     </el-form-item>
-    <el-form-item v-if="condition.conditionType === ConditionType.RULE && condition.conditionGroups" label="条件规则">
+    <el-form-item
+      v-if="condition.conditionType === ConditionType.RULE && condition.conditionGroups"
+      label="条件规则"
+    >
       <div class="condition-group-tool">
         <div class="flex items-center">
           <div class="mr-4">条件组关系</div>
@@ -67,14 +70,23 @@
                   trigger: 'change'
                 }"
               >
-                <el-select style="width: 160px" v-model="rule.leftSide">
+                <el-select style="width: 160px" v-model="rule.leftSide" clearable>
                   <el-option
                     v-for="(field, fIdx) in fieldOptions"
                     :key="fIdx"
                     :label="field.title"
                     :value="field.field"
                     :disabled="!field.required"
-                  />
+                  >
+                    <el-tooltip
+                      content="表单字段非必填时不能作为流程分支条件"
+                      effect="dark"
+                      placement="right-start"
+                      v-if="!field.required"
+                    >
+                      <span>{{ field.title }}</span>
+                    </el-tooltip>
+                  </el-option>
                 </el-select>
               </el-form-item>
             </div>

+ 18 - 18
src/views/bpm/model/form/ExtraSettings.vue

@@ -147,16 +147,16 @@
       <div class="flex flex-col w-100%">
         <div class="flex">
           <el-switch
-            v-model="preProcessNotifyEnable"
+            v-model="processBeforeTriggerEnable"
             @change="handlePreProcessNotifyEnableChange"
           />
           <div class="ml-80px">流程启动后通知</div>
         </div>
         <HttpRequestSetting
-          v-if="preProcessNotifyEnable"
-          v-model:setting="modelData.preProcessNotifySetting"
+          v-if="processBeforeTriggerEnable"
+          v-model:setting="modelData.processBeforeTriggerSetting"
           :responseEnable="true"
-          :formItemPrefix="'preProcessNotifySetting'"
+          :formItemPrefix="'processBeforeTriggerSetting'"
         />
       </div>
     </el-form-item>
@@ -167,16 +167,16 @@
       <div class="flex flex-col w-100%">
         <div class="flex">
           <el-switch
-            v-model="postProcessNotifyEnable"
+            v-model="processAfterTriggerEnable"
             @change="handlePostProcessNotifyEnableChange"
           />
           <div class="ml-80px">流程启动后通知</div>
         </div>
         <HttpRequestSetting
-          v-if="postProcessNotifyEnable"
-          v-model:setting="modelData.postProcessNotifySetting"
+          v-if="processAfterTriggerEnable"
+          v-model:setting="modelData.processAfterTriggerSetting"
           :responseEnable="true"
-          :formItemPrefix="'postProcessNotifySetting'"
+          :formItemPrefix="'processAfterTriggerSetting'"
         />
       </div>
     </el-form-item>
@@ -247,32 +247,32 @@ const numberExample = computed(() => {
 })
 
 /** 是否开启流程前置通知 */
-const preProcessNotifyEnable = ref(false)
+const processBeforeTriggerEnable = ref(false)
 const handlePreProcessNotifyEnableChange = (val: boolean | string | number) => {
   if (val) {
-    modelData.value.preProcessNotifySetting = {
+    modelData.value.processBeforeTriggerSetting = {
       url: '',
       header: [],
       body: [],
       response: []
     }
   } else {
-    modelData.value.preProcessNotifySetting = null
+    modelData.value.processBeforeTriggerSetting = null
   }
 }
 
 /** 是否开启流程后置通知 */
-const postProcessNotifyEnable = ref(false)
+const processAfterTriggerEnable = ref(false)
 const handlePostProcessNotifyEnableChange = (val: boolean | string | number) => {
   if (val) {
-    modelData.value.postProcessNotifySetting = {
+    modelData.value.processAfterTriggerSetting = {
       url: '',
       header: [],
       body: [],
       response: []
     }
   } else {
-    modelData.value.postProcessNotifySetting = null
+    modelData.value.processAfterTriggerSetting = null
   }
 }
 
@@ -335,11 +335,11 @@ const initData = () => {
       summary: []
     }
   }
-  if (modelData.value.preProcessNotifySetting) {
-    preProcessNotifyEnable.value = true
+  if (modelData.value.processBeforeTriggerSetting) {
+    processBeforeTriggerEnable.value = true
   }
-  if (modelData.value.postProcessNotifySetting) {
-    postProcessNotifyEnable.value = true
+  if (modelData.value.processAfterTriggerSetting) {
+    processAfterTriggerEnable.value = true
   }
 }
 defineExpose({ initData })

+ 8 - 11
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue

@@ -749,19 +749,16 @@ const selectNextAssigneesConfirm = (id: string, userList: any[]) => {
 }
 /** 审批通过时,校验每个自选审批人的节点是否都已配置了审批人 */
 const validateNextAssignees = () => {
-  // TODO @小北:可以考虑 Object.keys(nextAssigneesActivityNode.value).length === 0) return true;减少括号层级
-  // 如果需要自选审批人,则校验自选审批人
-  if (Object.keys(nextAssigneesActivityNode.value).length > 0) {
-    // 校验每个节点是否都已配置审批人
-    for (const item of nextAssigneesActivityNode.value) {
-      if (isEmpty(approveReasonForm.nextAssignees[item.id])) {
-        // TODO @小北:可以打印下节点名,嘿嘿。
-        message.warning('下一个节点的审批人不能为空!')
-        return false
-      }
+  if (Object.keys(nextAssigneesActivityNode.value).length === 0) {
+    return true
+  }
+  // 如果需要自选审批人,则校验每个节点是否都已配置审批人
+  for (const item of nextAssigneesActivityNode.value) {
+    if (isEmpty(approveReasonForm.nextAssignees[item.id])) {
+      message.warning('下一个节点的审批人不能为空!')
+      return false
     }
   }
-  return true
 }
 
 /** 处理审批通过和不通过的操作 */