Просмотр исходного кода

feat(故障抽屉): 添加基础配置和触发方式表单字段

引入公共表单配置 nodeDataCommon 和 nodeDataTrigger
在故障抽屉组件中复用这些配置以保持表单一致性
zhanghaijun месяцев назад: 11
Родитель
Сommit
e5228e36b2

+ 59 - 0
src/components/business/EasyProcess/node/course.scheme.ts

@@ -0,0 +1,59 @@
+/**
+ * 节点数据定义
+ */
+export const nodeDataCommon = [
+  { prop: '', label: '', labelWidth: '0px', component: 'Divider', colSpan: 24, componentProps: { title: '基础配置' } },
+  { prop: 'bindRole', label: '选择角色', component: 'ApiSelect', componentProps: { api: '/role/list', labelField: 'roleName', valueField: 'roleID' } },
+  { prop: 'nodeDetail', label: '节点详细信息', component: 'Input' },
+  { prop: 'delaySkip', label: '延时跳过,单位秒', component: 'InputNumber', componentProps: { min: 0, max: 120, step: 1, suffix: '秒' } },
+  {
+    prop: 'loseItem',
+    label: '失格项',
+    component: 'Select',
+    defaultValue: '1',
+    componentProps: {
+      options: [
+        { label: '是', value: '1' },
+        { label: '否', value: '0' }
+      ]
+    }
+  },
+  {
+    prop: 'virtualOperation',
+    label: '虚拟操作',
+    component: 'radiogroup',
+    defaultValue: '0',
+    componentProps: {
+      options: [
+        { label: '是', value: '1' },
+        { label: '否', value: '0' }
+      ]
+    }
+  }
+]
+
+/**
+ * 节点数据:触发方式
+ */
+export const nodeDataTrigger = [
+  { prop: '', label: '', labelWidth: '0px', component: 'Divider', colSpan: 24, componentProps: { title: '触发方式' } },
+  {
+    prop: 'triggerMode',
+    label: '触发方式',
+    component: 'Select',
+    defaultValue: '0',
+    componentProps: {
+      options: [
+        { label: '教员手动触发', value: '0' },
+        { label: '课程起始时间触发', value: '1' },
+        { label: '流程延迟时间触发', value: '2' },
+        { label: '任意流程推进到立即出发', value: '3' },
+        { label: '条件流程触发', value: '4' }
+      ]
+    }
+  },
+  { prop: 'event', label: '触发事件', component: 'Input' },
+  { prop: 'triggerDelay', label: '触发延迟,单位秒', component: 'InputNumber', componentProps: { min: 0, max: 120, step: 1, suffix: '秒' } },
+  { prop: 'textParam1', label: '参数1', component: 'Input' },
+  { prop: 'textParam2', label: '参数2', component: 'Input' }
+]

+ 4 - 0
src/components/business/EasyProcess/node/fault_drawer.vue

@@ -21,6 +21,7 @@
   import { useForm } from '@/components/form'
   import { Process } from '../common/process.type'
   import { ProcessFault, ProcessServer } from '@/api/course.api'
+  import { nodeDataCommon, nodeDataTrigger } from './course.scheme'
 
   const props = withDefaults(defineProps<{ node: Process.FaultNode }>(), {})
 
@@ -35,6 +36,9 @@
       templateID: [{ required: true, message: '请选择操作模板', trigger: ['change'] }]
     },
     schema: [
+      ...nodeDataCommon,
+      ...nodeDataTrigger,
+      { prop: '', label: '', labelWidth: '0px', component: 'Divider', colSpan: 24, componentProps: { title: '故障信息' } },
       { prop: 'name', label: '故障名称', component: 'Input' },
       { prop: 'role', label: '选择角色', component: 'ApiSelect', componentProps: { api: '/role/list', labelField: 'roleName', valueField: 'roleID' } },
       { prop: 'templateID', label: '操作模', component: 'Input' },