浏览代码

按钮组管理添加分页组件/表单组管理添加显示隐藏条件

lph 1 年之前
父节点
当前提交
0f8db4f2e4

+ 3 - 2
zkqy-ui/src/views/system/bpmnPro/components/bo-utils/getFormItems.js

@@ -57,7 +57,7 @@ function getItemArr(list = [], res = []) {
           break;
         case "selectInputList": //选项输入列
           item.columns.forEach((n) => {
-            this.getAllSelectItems(n.list, res);
+            getItemArr(n.list, res);
           });
           break;
         default:
@@ -71,4 +71,5 @@ function getItemArr(list = [], res = []) {
 
 function isWrapItem(item) {
   return wrapTypeList.includes(item.type)
-}
+}
+

+ 4 - 0
zkqy-ui/src/views/system/bpmnPro/data/index.js

@@ -55,5 +55,9 @@ export const formList = [
     formKey: "ScrapDisposition",
     formName: "产品报废处理",
   },
+  {
+    formKey: "QRCode",
+    formName: "印刷",
+  },
 ]
 

+ 86 - 12
zkqy-ui/src/views/system/excuteBtnMange/index.vue

@@ -172,6 +172,13 @@
         </template>
       </el-table-column>
     </el-table>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
 
     <!-- 添加或修改对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body>
@@ -300,6 +307,22 @@
                 btnGroupFormData.btnType != 'INNERLINK'
               "
             >
+              <el-form-item label="表单类型" prop="btnFormType">
+                <el-select
+                  v-model="btnGroupFormData.btnFormType"
+                  placeholder="请选择表单类型"
+                  filterable
+                >
+                  <el-option
+                    v-for="item in formTypeOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+
               <el-form-item label="绑定表单" prop="btnFormKey">
                 <el-select
                   v-model="btnGroupFormData.btnFormKey"
@@ -308,10 +331,10 @@
                   filterable
                 >
                   <el-option
-                    v-for="item in formOptions"
-                    :key="item.fId"
-                    :label="item.dfName"
-                    :value="item.fId"
+                    v-for="item in formList"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
                   >
                   </el-option>
                 </el-select>
@@ -381,7 +404,8 @@
             <el-col
               :span="24"
               v-show="
-                btnGroupFormData.btnType == 3 || btnGroupFormData.btnType == 7
+                btnGroupFormData.btnType == 'INNERLINK' ||
+                btnGroupFormData.btnType == 'OUTLINK'
               "
             >
               <el-form-item label="跳转路由" prop="btnParams">
@@ -438,13 +462,21 @@
               " -->
               <!-- <el-form-item label="" prop="btnParams"> -->
               <div class="filter-table-wrap" style="width: 100%">
-                <span class="title mb10"
+                <!-- <span class="title mb10"
                   >{{
                     btnGroupFormData.btnType != 3 &&
                     btnGroupFormData.btnType != 7
                       ? "公共"
                       : "query"
                   }}参数</span
+                > -->
+                <el-divider content-position="center"
+                  >{{
+                    btnGroupFormData.btnType != "OUTLINK" &&
+                    btnGroupFormData.btnType != "INNERLINK"
+                      ? "公共"
+                      : "query"
+                  }}参数</el-divider
                 >
                 <el-table :data="commonFieldData" style="width: 100%">
                   <el-table-column label="序号" type="index" width="50">
@@ -541,7 +573,8 @@
           </template>
           <!-- 按钮隐藏条件 -->
           <div class="filter-table-wrap" style="width: 100%">
-            <span class="title mb10">按钮隐藏条件</span>
+            <!-- <span class="title mb10">按钮隐藏条件</span> -->
+            <el-divider content-position="center">按钮隐藏条件</el-divider>
             <el-table :data="btnHidenCondtionData" style="width: 100%">
               <el-table-column label="序号" type="index" width="50">
               </el-table-column>
@@ -660,7 +693,7 @@ import IconSelect from "@/components/IconSelect";
 import { v4 as uuidv4 } from "uuid";
 import { dragTableInfo } from "@/api/tablelist/commonTable";
 import { camelCase } from "@/utils";
-import { mark } from "@/components/updateModule/k-form-design/lib/k-form-design.common";
+import { listFormGroup } from "@/api/system/formGroup";
 export default {
   name: "ExcuteBtnMange",
   dicts: ["sys_show_hide", "sys_normal_disable"],
@@ -733,6 +766,17 @@ export default {
           },
         ],
       },
+      // 表单类型
+      formTypeOptions: [
+        {
+          label: "单独表单",
+          value: "1",
+        },
+        {
+          label: "表单组",
+          value: "2",
+        },
+      ],
       // 按钮组表单数据
       btnGroupFormData: {
         btnGroupName: "", //按钮组名
@@ -740,6 +784,7 @@ export default {
         btnName: "", //按钮显示的文字
         btnIcon: "", //按钮图标
         btnType: "DIRECTORY", //0:操作按钮,1,其他,2表单,3内链,4流程,5脚本, 6,目录, 7:外链
+        btnFormType: "1", //表单类型  1:单独表单 2:表单组
         btnFormKey: null, //表单唯一标识
         btnProcessKey: "", //流程唯一标识
         btnTableKey: "", //表格唯一标识
@@ -815,6 +860,7 @@ export default {
         },
       ],
       formOptions: [],
+      groupFormOptions: [], //表单组选项
       tableOptions: [],
       processOptions: [],
       scriptOptions: [],
@@ -890,6 +936,15 @@ export default {
     this.getList();
     this.initFormSubData();
   },
+  computed: {
+    formList() {
+      if (this.btnGroupFormData.btnFormType === "1") {
+        return this.formOptions;
+      } else {
+        return this.groupFormOptions;
+      }
+    },
+  },
   methods: {
     // 自定义字段校验
     checkBtnFormKey(rule, value, callback) {
@@ -1018,6 +1073,7 @@ export default {
       listBtn(this.queryParams).then((response) => {
         let res = this.setRootBtnKey(response.rows);
         this.btnList = res;
+        this.total = response.total;
         this.loading = false;
       });
     },
@@ -1084,6 +1140,7 @@ export default {
         btnType: "DIRECTORY", //0:操作按钮,1,其他,2表单,3跳转,4流程,5脚本
         btnFormKey: null, //表单唯一标识
         btnProcessKey: "", //流程唯一标识
+        btnFormType: "1",
         btnTableKey: "", //表格唯一标识
         btnScriptKey: "", //脚本唯一标识
         btnShowCondition: "", //按钮显示条件
@@ -1139,7 +1196,7 @@ export default {
       await this.getRootFieldInfo(row.rootKey);
       getBtn(row.id).then((response) => {
         let { btnType, btnParams, btnShowCondition } = response.data;
-        if ((btnType == 3 || btnType == 7) && btnParams) {
+        if ((btnType == "OUTLINK" || btnType == "INNERLINK") && btnParams) {
           //内链或外链
           let tempObj = JSON.parse(btnParams);
           response.data.btnParams = tempObj.url;
@@ -1188,8 +1245,8 @@ export default {
           // 获取公共参数
           // let commonData=this.getCommonData(this.commonFieldData)
           if (
-            this.btnGroupFormData.btnType != 3 &&
-            this.btnGroupFormData.btnType != 7
+            this.btnGroupFormData.btnType != "OUTLINK" &&
+            this.btnGroupFormData.btnType != "INNERLINK"
           ) {
             this.btnGroupFormData.btnParams = JSON.stringify(
               this.commonFieldData
@@ -1267,7 +1324,12 @@ export default {
           formRes.rows.forEach((item) => {
             item.fId = item.fId.toString();
           });
-          this.formOptions = formRes.rows;
+          this.formOptions = formRes.rows.map((item) => {
+            return {
+              label: item.dfName,
+              value: item.fId,
+            };
+          });
         } else {
           this.$message.error("网络异常请稍后再试");
         }
@@ -1298,6 +1360,18 @@ export default {
         } else {
           this.$message.error("网络异常请稍后再试");
         }
+        // 获取表单组列表
+        let formGroupRes = await listFormGroup({ isEnablePaging: false });
+        if (formGroupRes.code == 200) {
+          this.groupFormOptions = formGroupRes.rows.map((item) => {
+            return {
+              label: item.fGName,
+              value: item.groupKey,
+            };
+          });
+        } else {
+          this.$message.error("网络异常请稍后再试");
+        }
       } catch (error) {
         console.log(error);
       }

+ 83 - 13
zkqy-ui/src/views/system/formGroupMange/index.vue

@@ -226,19 +226,19 @@
             <el-option
               v-for="item in formOptionList"
               :key="item.formKey"
-              :label="item.dfName"
+              :label="item.dfNickname"
               :value="item.formKey"
             >
               <span class="discribe" style="float: left">{{
-                item.dfName
+                item.dfNickname
               }}</span>
               <span style="float: right; color: #8492a6; font-size: 13px">{{
-                item.formKey
+                item.dfName
               }}</span>
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="mainFormItem" label="表单项:">
+        <el-form-item label-width="100px" prop="mainFormItem" label="表单项:">
           <el-select
             v-model="groupForm.mainFormItem"
             placeholder="请选择表单项"
@@ -258,6 +258,16 @@
             </el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="是否显示" prop="isShow" size="normal">
+          <el-switch
+            v-model="groupForm.isShow"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            active-text="是"
+            inactive-text="否"
+          >
+          </el-switch>
+        </el-form-item>
       </el-form>
       <el-divider content-position="center">从表单数据</el-divider>
       <el-table :data="subFormList" border stripe>
@@ -274,14 +284,14 @@
               <el-option
                 v-for="item in formOptionList"
                 :key="item.formKey"
-                :label="item.dfName"
+                :label="item.dfNickname"
                 :value="item.formKey"
               >
                 <span class="discribe" style="float: left">{{
-                  item.dfName
+                  item.dfNickname
                 }}</span>
                 <span style="float: right; color: #8492a6; font-size: 13px">{{
-                  item.formKey
+                  item.dfName
                 }}</span>
               </el-option>
             </el-select>
@@ -311,7 +321,7 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column prop="mainFormItem" label="依赖的主表单项:">
+        <el-table-column prop="mainFormItem" label="依赖的主表单项">
           <template slot-scope="scope">
             <el-select
               v-model="scope.row.relateMainItem"
@@ -335,6 +345,43 @@
             </el-select>
           </template>
         </el-table-column>
+        <el-table-column prop="mainFormItem" label="依赖的主表单项">
+          <template slot-scope="scope">
+            <el-select
+              v-model="scope.row.relateMainItem"
+              placeholder="请选择表单项"
+              clearable
+              filterable
+            >
+              <el-option
+                v-for="item in groupForm.mainFormItemOptions"
+                :key="item.model"
+                :label="item.label"
+                :value="item.tableName + '.' + item.model"
+              >
+                <span class="discribe" style="float: left">{{
+                  item.label
+                }}</span>
+                <span style="float: right; color: #8492a6; font-size: 13px">{{
+                  item.tableName + "." + item.model
+                }}</span>
+              </el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column prop="isShow" label="是否显示">
+          <template slot-scope="scope">
+            <el-switch
+              v-model="scope.row.isShow"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+              active-text="是"
+              inactive-text="否"
+            >
+            </el-switch>
+          </template>
+        </el-table-column>
+
         <el-table-column label="操作">
           <template slot-scope="scope">
             <el-button
@@ -378,6 +425,7 @@ import {
   addFormGroup,
   updateFormGroup,
 } from "@/api/system/formGroup";
+import { v4 as uuidv4 } from "uuid";
 export default {
   name: "formRelateMange",
   props: [],
@@ -395,6 +443,8 @@ export default {
         mainFormItem: "", //主表单项
         mainFormTable: "", //主表单对应表格
         mainFormItemOptions: [], //主表单项选项
+        groupKey: "", //组key
+        isShow: true,
       },
       subFormList: [
         // {
@@ -441,7 +491,18 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {},
+      rules: {
+        fGName: [{ required: true, message: "请输入组名称", trigger: "blur" }],
+        groupDesc: [
+          { required: true, message: "请输入组描述", trigger: "blur" },
+        ],
+        mainFormName: [
+          { required: true, message: "请选择主表表单", trigger: "change" },
+        ],
+        mainFormItem: [
+          { required: true, message: "请选择表单项", trigger: "change" },
+        ],
+      },
     };
   },
   computed: {},
@@ -465,6 +526,7 @@ export default {
         mainFormItem: "", //主表单项
         mainFormTable: "", //主表单对应表格
         mainFormItemOptions: [], //主表单项选项
+        groupKey: "", //组key
       });
       this.subFormList = [];
     },
@@ -476,8 +538,14 @@ export default {
     confirmHandler() {
       this.$refs.groupFormRef.validate(async (valid) => {
         if (valid) {
-          let { fGName, groupDesc, mainFormName, mainFormItem, mainFormTable } =
-            this.groupForm;
+          let {
+            fGName,
+            groupDesc,
+            mainFormName,
+            mainFormItem,
+            mainFormTable,
+            groupKey,
+          } = this.groupForm;
           let mainTable = mainFormTable + ":" + mainFormName;
           let tempFormKeys = this.subFormList.map((item) => item.formKey);
           tempFormKeys.push(mainFormName);
@@ -486,7 +554,6 @@ export default {
             mainForm: this.groupForm,
             subFormList: this.subFormList,
           });
-
           let payLoad = {
             fGName,
             remark: groupDesc,
@@ -494,6 +561,7 @@ export default {
             mainTable,
             relationJson,
             showDataSql: "",
+            groupKey,
           };
           let res;
           try {
@@ -510,6 +578,7 @@ export default {
               }
             } else {
               //新增
+              payLoad.groupKey = uuidv4();
               res = await addFormGroup(payLoad);
               if (res.code == 200) {
                 this.$message.success("新增成功");
@@ -550,7 +619,6 @@ export default {
           targetForm.dfVueTemplate
         );
         this.groupForm.mainFormTable = targetForm.dfTableName;
-        console.log(this.groupForm.mainFormItemOptions);
       }
     },
     // 获取fId对应的表单JSON数据
@@ -585,6 +653,7 @@ export default {
         formItemList: [], //从表单项列表
         formItem: "", //从表单项
         relateMainItem: "", //依赖的主表单项
+        isShow: true, //是否显示该表单
       });
     },
 
@@ -657,6 +726,7 @@ export default {
           // this.groupForm.fGName = fGName;
           // this.groupForm.groupDesc = remark;
           let { mainForm, subFormList } = JSON.parse(relationJson);
+          mainForm.groupKey = response.data.groupKey;
           Object.assign(this.groupForm, mainForm);
           if (subFormList && subFormList.length > 0) {
             this.subFormList = subFormList;

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

@@ -643,9 +643,10 @@ export default {
           Object.assign(this.dynamicData, dynamicData);
         }
         this.jsonData = JSON.parse(data.dfVueTemplate);
-        this.open = true;
+
         this.title = "添加信息";
         this.form.password = this.initPassword;
+        this.open = true;
         this.$nextTick(() => {
           this.$refs.addFromRef.reset();
           inputDisableComplete();