Browse Source

add 工作流挂节点路由表单

wangzk 1 year ago
parent
commit
c5b3c121c9

+ 1 - 0
src/api/workflow/task/types.ts

@@ -37,6 +37,7 @@ export interface TaskVO extends BaseEntity {
   participantVo: ParticipantVo;
   multiInstance: boolean;
   businessKey: string;
+  formKey: string;
   wfFormDefinitionVo: any;
 }
 

+ 4 - 2
src/components/BpmnDesign/hooks/usePanel.ts

@@ -115,7 +115,9 @@ export default (ops: Options) => {
       updateProperties({ name: newVal });
     }
   };
-
+  const formKeyChange = (newVal: string) => {
+      updateProperties({ formKey: newVal });
+  };
   const constant = {
     MultiInstanceType: [
       { id: '373d4b81-a0d1-4eb8-8685-0d2fb1b468e2', label: '无', value: MultiInstanceTypeEnum.NONE },
@@ -136,7 +138,7 @@ export default (ops: Options) => {
     createModdleElement,
     idChange,
     nameChange,
-
+    formKeyChange,
     getExtensionElements,
     getPropertiesElements
   };

+ 4 - 1
src/components/BpmnDesign/panel/TaskPanel.vue

@@ -21,6 +21,9 @@
             <el-form-item v-if="showConfig.skipExpression" prop="skipExpression" label="跳过表达式">
               <el-input v-model="formData.skipExpression" @change="skipExpressionChange"> </el-input>
             </el-form-item>
+            <el-form-item prop="formKey" label="表单地址">
+              <el-input v-model="formData.formKey" @change="formKeyChange" placeholder="当前节点表单路由如:/demo/leaveEdit/index"> </el-input>
+            </el-form-item>
           </div>
         </el-collapse-item>
         <el-collapse-item name="2">
@@ -243,7 +246,7 @@ interface PropType {
   element: ModdleElement;
 }
 const props = withDefaults(defineProps<PropType>(), {});
-const { showConfig, nameChange, idChange, updateProperties, getExtensionElements, createModdleElement, constant } = usePanel({
+const { showConfig, nameChange, formKeyChange, idChange, updateProperties, getExtensionElements, createModdleElement, constant } = usePanel({
   element: toRaw(props.element)
 });
 const { parseData } = useParseElement({

+ 1 - 0
src/types/bpmn/panel.d.ts

@@ -34,6 +34,7 @@ declare module 'bpmnDesign' {
     multiInstanceType: MultiInstanceTypeEnum;
     async?: boolean;
     priority?: number;
+    formKey?: string;
     skipExpression?: string;
     isForCompensation?: boolean;
     triggerServiceTask?: boolean;

+ 13 - 3
src/views/workflow/task/taskWaiting.vue

@@ -135,7 +135,17 @@ const getWaitingList = () => {
 };
 //办理
 const handleOpen = async (row: TaskVO) => {
-  if(row.wfFormDefinitionVo){
+  if (row.formKey != null) {
+    proxy.$tab.closePage(proxy.$route);
+    proxy.$router.push({
+      path: `${row.formKey}`,
+      query: {
+        id: row.businessKey,
+        type: 'approval',
+        taskId: row.id
+      }
+    });
+  } else if (row.wfFormDefinitionVo) {
     proxy.$tab.closePage(proxy.$route);
     proxy.$router.push({
       path: `${row.wfFormDefinitionVo.path}`,
@@ -144,8 +154,8 @@ const handleOpen = async (row: TaskVO) => {
         type: 'approval',
         taskId: row.id
       }
-    })
-  }else{
+    });
+  } else {
     proxy?.$modal.msgError('请到流程定义菜单配置路由!');
   }
 };