Bladeren bron

修改操作按钮的表单渲染逻辑

lph 1 jaar geleden
bovenliggende
commit
3878d5fd32

+ 19 - 17
ruoyi-ui/src/views/bpmprocess/scriptManage.vue

@@ -170,13 +170,21 @@
     <!-- 添加或修改流程节点脚本对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
- 
         <el-form-item label="脚本编码:" prop="scriptKey">
           <el-col :span="20">
-            <el-input v-model="form.scriptKey" placeholder="请输入脚本编码" :disabled="true"/>
+            <el-input
+              v-model="form.scriptKey"
+              placeholder="请输入脚本编码"
+              :disabled="true"
+            />
           </el-col>
           <el-col :span="4">
-            <el-button icon="el-icon-document-copy" v-clipboard:copy="form.scriptKey" v-clipboard:success="onCopy" v-clipboard:error="onError"></el-button>
+            <el-button
+              icon="el-icon-document-copy"
+              v-clipboard:copy="form.scriptKey"
+              v-clipboard:success="onCopy"
+              v-clipboard:error="onError"
+            ></el-button>
           </el-col>
         </el-form-item>
         <el-form-item label="脚本名称:" prop="scriptName">
@@ -254,15 +262,11 @@
 </template>
 
 <script>
-import {
-  listScript,
-  getScript,
-  addScript,
-} from "@/api/bpmprocess/process";
-import {updateScript,delScript} from "@/api/bpmprocess/script"
+import { listScript, getScript, addScript } from "@/api/bpmprocess/process";
+import { updateScript, delScript } from "@/api/bpmprocess/script";
 import uuid from "@/utils/bpmn/uuid";
 import Editor from "vue2-ace-editor";
-import {v4 as uuidv4} from 'uuid';
+import { v4 as uuidv4 } from "uuid";
 import * as monaco from "monaco-editor";
 import Clipboard from "clipboard";
 
@@ -303,8 +307,7 @@ export default {
         scriptDescription: null,
       },
       // 表单参数
-      form: {
-      },
+      form: {},
       // 表单校验
       rules: {
         scriptName: [
@@ -347,7 +350,6 @@ export default {
     // this.editorInit();
   },
   methods: {
-
     // 编辑器初始化
     editorInit() {
       require("brace/theme/chrome");
@@ -420,10 +422,10 @@ export default {
       this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
-    handleAdd() { 
+    handleAdd() {
       this.monacoEditor?.dispose();
       this.reset();
-      this.form.scriptKey= uuidv4();
+      this.form.scriptKey = uuidv4();
       console.log(this.form.scriptKey);
       this.open = true;
       this.title = "添加流程节点脚本";
@@ -445,7 +447,7 @@ export default {
         response.data.scriptType = response.data.scriptType.toString();
         this.form = response.data;
         this.open = true;
-        this.title = "修改流程节点脚本";
+        this.title = "修改流程节点";
       });
     },
     /** 提交按钮 */
@@ -459,7 +461,7 @@ export default {
               this.open = false;
               this.getList();
             });
-          } else { 
+          } else {
             addScript(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;

+ 4 - 0
ruoyi-ui/src/views/dialogMange/components/RelayDialog.vue

@@ -42,6 +42,10 @@
             :label="item.fieldDescription"
             :value="item.fieldName"
           >
+            <span style="float: left">{{ item.fieldDescription }}</span>
+            <span style="float: right; color: #8492a6; font-size: 13px">{{
+              item.fieldName
+            }}</span>
           </el-option>
         </el-select>
       </el-form-item>

+ 30 - 31
ruoyi-ui/src/views/dialogMange/index.vue

@@ -474,13 +474,13 @@
                     ></el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="状态展示标题" prop="title">
+                <!-- <el-form-item label="状态展示标题" prop="title">
                   <el-input
                     @input="iptChange()"
                     v-model="countData.title"
                     placeholder="请输入展示标题"
                   ></el-input>
-                </el-form-item>
+                </el-form-item> -->
 
                 <!-- <el-form-item label="选择数据表" prop="table">
                   <el-select
@@ -529,7 +529,7 @@
                   </el-select>
                 </el-form-item>
 
-                <el-form-item label="统计字段">
+                <!-- <el-form-item label="统计字段">
                   <el-select
                     v-model="countData.countFile"
                     placeholder="请选择统计字段"
@@ -550,7 +550,7 @@
                       >
                     </el-option>
                   </el-select>
-                </el-form-item>
+                </el-form-item> -->
               </el-form>
             </el-card>
           </el-tab-pane>
@@ -2354,7 +2354,6 @@ export default {
                 sort: 2,
               }
             );
-            console.log(countTableList.tableKey);
             data.groupTableInfo = JSON.stringify(data.groupTableInfo);
             data.dragTables.push(tableList1, tableList2, countTableList);
 
@@ -2365,15 +2364,15 @@ export default {
             });
 
             console.log("回显", this.statusCount);
-            stateList.forEach((item) => {
-              item.id = this.statusCount.id;
-              item.sqlKey = this.statusCount.sqlKey;
-              item.tableKey = this.statusCount.tableKey;
-            });
-
-            stateSqlList.forEach((item) => {
-              item.sqlKey = this.statusCount.sqlKey;
-            });
+            // stateList.forEach((item) => {
+            //   item.id = this.statusCount.id;
+            //   item.sqlKey = this.statusCount.sqlKey;
+            //   item.tableKey = this.statusCount.tableKey;
+            // });
+
+            // stateSqlList.forEach((item) => {
+            //   item.sqlKey = this.statusCount.sqlKey;
+            // });
             // 修改统计数据
 
             await updateGroupTableStatistic({
@@ -2386,14 +2385,14 @@ export default {
             });
 
             // 修改统计状态
-            await updateGroupTableStatistic({
-              tableKey: this.countEchoData.tableKey,
-              dragTableStatisticList: stateList,
-              tableSqlList: stateSqlList,
-              searchFieldList: countFieldLists,
-              dtTableName: countData.tableName,
-              conditionDefaultValueMap: conutCondition,
-            });
+            // await updateGroupTableStatistic({
+            //   tableKey: this.countEchoData.tableKey,
+            //   dragTableStatisticList: stateList,
+            //   tableSqlList: stateSqlList,
+            //   searchFieldList: countFieldLists,
+            //   dtTableName: countData.tableName,
+            //   conditionDefaultValueMap: conutCondition,
+            // });
           } else {
             // 统计信息
             let graguuid = uuidv4();
@@ -2443,16 +2442,16 @@ export default {
               dtTableName: subTableData.tableName,
               conditionDefaultValueMap: subCondition,
             });
-            console.log(stateList);
+            // console.log(stateList);
             // 统计状态
-            await addGroupTableStatistic({
-              tableKey: countTableList.tableKey,
-              dragTableStatisticList: stateList,
-              tableSqlList: stateSqlList,
-              searchFieldList: countFieldLists,
-              dtTableName: countData.tableName,
-              conditionDefaultValueMap: conutCondition,
-            });
+            // await addGroupTableStatistic({
+            //   tableKey: countTableList.tableKey,
+            //   dragTableStatisticList: stateList,
+            //   tableSqlList: stateSqlList,
+            //   searchFieldList: countFieldLists,
+            //   dtTableName: countData.tableName,
+            //   conditionDefaultValueMap: conutCondition,
+            // });
           }
 
           if (this.tId) {

+ 0 - 1
ruoyi-ui/src/views/dialogTemplate/components/index.vue

@@ -426,7 +426,6 @@ export default {
           queryMap,
         });
         if (resTableData.code == 200) {
-          console.log("resTableData", resTableData);
           return resTableData.data.resultMap.result;
         }
       } catch (error) {

+ 16 - 16
ruoyi-ui/src/views/system/bpmnPro/components/Panel/components/ElementUnusualTasks.vue

@@ -121,7 +121,7 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item prop="formType" label="表单类型" size="normal">
+        <!-- <el-form-item prop="formType" label="表单类型" size="normal">
           <el-select
             v-model="newUnusualTask.formType"
             placeholder="请选择表单类型"
@@ -179,7 +179,7 @@
             >
             </el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <template #footer>
         <el-button @click="modelVisible = false">取 消</el-button>
@@ -226,20 +226,20 @@ export default {
           trigger: ["change"],
           message: "任务脚本不能为空",
         },
-        formType: {
-          required: true,
-          trigger: ["change"],
-          message: "表单类型不能为空",
-        },
-        formId: {
-          required: true,
-          trigger: ["change"],
-          message: "表单不能为空",
-        },
-        composeName: {
-          validator: this.composeNameValidate,
-          trigger: "blur",
-        },
+        // formType: {
+        //   required: true,
+        //   trigger: ["change"],
+        //   message: "表单类型不能为空",
+        // },
+        // formId: {
+        //   required: true,
+        //   trigger: ["change"],
+        //   message: "表单不能为空",
+        // },
+        // composeName: {
+        //   validator: this.composeNameValidate,
+        //   trigger: "blur",
+        // },
         // scriptTriggerType: {
         //   required: true,
         //   trigger: ["blur", "change"],

+ 2 - 2
ruoyi-ui/src/views/system/bpmnPro/components/Panel/index.vue

@@ -179,8 +179,8 @@ export default {
       //   this.renderComponents.push(ElementStartInitiator);
       // this.renderComponents.push(ElementExtensionField);
       // 添加执行表单
-      isTaskOrUserTask(element) &&
-        this.renderComponents.push(ElementExecuteForm);
+      // isTaskOrUserTask(element) &&
+      //   this.renderComponents.push(ElementExecuteForm);//执行表单
       !isProcess(element) && this.renderComponents.push(ElementNormalTask); //正常节点
       !isProcess(element) &&
         !isStart(element) &&

+ 4 - 4
ruoyi-ui/src/views/system/bpmnPro/components/bo-utils/getNodeMsg.js

@@ -242,10 +242,10 @@ export function validateNode(xmlObj) {
       res.flag = false;
       res.msg = `${element.localName}必须绑定正常节点`
     }
-    if (!element.getAttribute(`${preFix}:nodeFormKey`)) {
-      res.flag = false;
-      res.msg = `${element.localName}必须绑定正常节点`
-    }
+    // if (!element.getAttribute(`${preFix}:nodeFormKey`)) {
+    //   res.flag = false;
+    //   res.msg = `${element.localName}必须绑定表单`
+    // }
   }
   return res
 }

+ 135 - 78
ruoyi-ui/src/views/system/excuteBtnMange/index.vue

@@ -281,85 +281,93 @@
             </el-form-item>
           </el-col>
           <!-- 非目录 -->
-          <div v-show="btnGroupFormData.btnType != 6">
-            <div
+          <template v-if="btnGroupFormData.btnType != 'DIRECTORY'">
+            <el-col
+              :span="12"
               v-show="
-                btnGroupFormData.btnType != 3 && btnGroupFormData.btnType != 7
+                btnGroupFormData.btnType != 'DIRECTORY' &&
+                btnGroupFormData.btnType != 'OUTLINK' &&
+                btnGroupFormData.btnType != 'INNERLINK'
               "
             >
-              <el-col :span="12">
-                <el-form-item label="绑定表单" prop="btnFormKey">
-                  <el-select
-                    v-model="btnGroupFormData.btnFormKey"
-                    placeholder="请选择表单"
-                    clearable
-                    filterable
+              <el-form-item label="绑定表单" prop="btnFormKey">
+                <el-select
+                  v-model="btnGroupFormData.btnFormKey"
+                  placeholder="请选择表单"
+                  clearable
+                  filterable
+                >
+                  <el-option
+                    v-for="item in formOptions"
+                    :key="item.fId"
+                    :label="item.dfName"
+                    :value="item.fId"
                   >
-                    <el-option
-                      v-for="item in formOptions"
-                      :key="item.fId"
-                      :label="item.dfName"
-                      :value="item.fId"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="执行流程" prop="btnProcessKey">
-                  <el-select
-                    v-model="btnGroupFormData.btnProcessKey"
-                    placeholder="请选择执行流程"
-                    clearable
-                    filterable
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-show="btnGroupFormData.btnType == 'INITIATED'">
+              <el-form-item label="执行流程" prop="btnProcessKey">
+                <el-select
+                  v-model="btnGroupFormData.btnProcessKey"
+                  placeholder="请选择执行流程"
+                  clearable
+                  filterable
+                >
+                  <el-option
+                    v-for="item in processOptions"
+                    :key="item.processKey"
+                    :label="item.processName"
+                    :value="item.processKey"
                   >
-                    <el-option
-                      v-for="item in processOptions"
-                      :key="item.processKey"
-                      :label="item.processName"
-                      :value="item.processKey"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="绑定表格" prop="btnTableKey">
-                  <el-select
-                    v-model="btnGroupFormData.btnTableKey"
-                    placeholder="请选择表格"
-                    clearable
-                    filterable
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col
+              :span="12"
+              v-show="
+                btnGroupFormData.btnType == 'INSERT' ||
+                btnGroupFormData.btnType == 'UPDATE' ||
+                btnGroupFormData.btnType == 'DELETE'
+              "
+            >
+              <el-form-item label="绑定表格" prop="btnTableKey">
+                <el-select
+                  v-model="btnGroupFormData.btnTableKey"
+                  placeholder="请选择表格"
+                  clearable
+                  filterable
+                >
+                  <el-option
+                    v-for="item in tableOptions"
+                    :key="item.tableKey"
+                    :label="item.dtName"
+                    :value="item.tableKey"
                   >
-                    <el-option
-                      v-for="item in tableOptions"
-                      :key="item.tableKey"
-                      :label="item.dtName"
-                      :value="item.tableKey"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="绑定脚本" prop="btnScriptKey">
-                  <el-select
-                    v-model="btnGroupFormData.btnScriptKey"
-                    placeholder="请选择绑定节点"
-                    clearable
-                    filterable
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-show="btnGroupFormData.btnType == 'EXECUTE'">
+              <el-form-item label="绑定脚本" prop="btnScriptKey">
+                <el-select
+                  v-model="btnGroupFormData.btnScriptKey"
+                  placeholder="请选择绑定节点"
+                  clearable
+                  filterable
+                >
+                  <el-option
+                    v-for="item in scriptOptions"
+                    :key="item.scriptKey"
+                    :label="item.scriptName"
+                    :value="item.scriptKey"
                   >
-                    <el-option
-                      v-for="item in scriptOptions"
-                      :key="item.scriptKey"
-                      :label="item.scriptName"
-                      :value="item.scriptKey"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </div>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
             <el-col
               :span="24"
               v-show="
@@ -419,7 +427,7 @@
                 btnGroupFormData.btnType != 3 && btnGroupFormData.btnType != 7
               " -->
               <!-- <el-form-item label="" prop="btnParams"> -->
-              <div class="filter-table-wrap">
+              <div class="filter-table-wrap" style="width: 100%">
                 <span class="title mb10"
                   >{{
                     btnGroupFormData.btnType != 3 &&
@@ -520,7 +528,7 @@
               </div>
               <!-- </el-form-item> -->
             </el-col>
-          </div>
+          </template>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -601,6 +609,24 @@ export default {
             trigger: "change",
           },
         ],
+        btnFormKey: [
+          {
+            validator: this.checkBtnFormKey,
+            trigger: "change",
+          },
+        ],
+        btnProcessKey: [
+          {
+            validator: this.checkBtnProcessKey,
+            trigger: "change",
+          },
+        ],
+        btnScriptKey: [
+          {
+            validator: this.checkBtnScriptKey,
+            trigger: "change",
+          },
+        ],
       },
       // 按钮组表单数据
       btnGroupFormData: {
@@ -608,7 +634,7 @@ export default {
         btnParentId: "", //父节点id
         btnName: "", //按钮显示的文字
         btnIcon: "", //按钮图标
-        btnType: 6, //0:操作按钮,1,其他,2表单,3内链,4流程,5脚本, 6,目录, 7:外链
+        btnType: "DIRECTORY", //0:操作按钮,1,其他,2表单,3内链,4流程,5脚本, 6,目录, 7:外链
         btnFormKey: null, //表单唯一标识
         btnProcessKey: "", //流程唯一标识
         btnTableKey: "", //表格唯一标识
@@ -660,6 +686,10 @@ export default {
           value: "INNERLINK",
           label: "内链",
         },
+        {
+          value: "INSERT",
+          label: "新增",
+        },
         {
           // value: "8",
           value: "UPDATE",
@@ -669,9 +699,14 @@ export default {
           value: "DELETE",
           label: "删除",
         },
+
         {
-          value: "INSERT",
-          label: "新增",
+          value: "EXECUTE",
+          label: "执行脚本",
+        },
+        {
+          value: "INITIATED",
+          label: "发起流程",
         },
       ],
       formOptions: [],
@@ -716,6 +751,28 @@ export default {
     this.initFormSubData();
   },
   methods: {
+    // 自定义字段校验
+    checkBtnFormKey(rule, value, callback) {
+      let { btnType } = this.btnGroupFormData;
+      if (btnType == "INSERT" || btnType == "UPDATE") {
+        if (!value) callback(new Error("请绑定表单"));
+      }
+      callback();
+    },
+    checkBtnProcessKey(rule, value, callback) {
+      let { btnType } = this.btnGroupFormData;
+      if (btnType == "EXECUTE" || btnType == "INITIATED") {
+        if (!value) callback(new Error("请绑定流程"));
+      }
+      callback();
+    },
+    checkBtnScriptKey(rule, value, callback) {
+      let { btnType } = this.btnGroupFormData;
+      if (btnType == "EXECUTE" || btnType == "INITIATED") {
+        if (!value) callback(new Error("请绑定脚本"));
+      }
+      callback();
+    },
     // 删除公共传参
     deleteFilterItem(index) {
       this.commonFieldData.splice(index, 1);
@@ -853,7 +910,7 @@ export default {
         btnParentId: "", //父节点id
         btnName: "", //按钮显示的文字
         btnIcon: "", //按钮图标
-        btnType: "6", //0:操作按钮,1,其他,2表单,3跳转,4流程,5脚本
+        btnType: "DIRECTORY", //0:操作按钮,1,其他,2表单,3跳转,4流程,5脚本
         btnFormKey: null, //表单唯一标识
         btnProcessKey: "", //流程唯一标识
         btnTableKey: "", //表格唯一标识

+ 2 - 2
ruoyi-ui/src/views/tablelist/commonTable/listInfo.vue

@@ -696,7 +696,7 @@ export default {
       try {
         let payLoad = {
           basicMap: {
-            btnType: "UPDATE",
+            btnType: this.currentBtnData.btnType,
             btnKey: this.currentBtnData.btnKey,
             visible: "false",
             sqlKey: this.templateInfo.template.sqlKey,
@@ -1078,7 +1078,7 @@ export default {
             Object.keys(values).map((k) => {
               data.commMap[k] = values[k];
             });
-            data.basicMap.btnType = "UPDATE";
+            data.basicMap.btnType = this.currentBtnData.btnType;
             data.basicMap.visible = true;
           } else {
             data.basicMap.btnType = "INSERT";