Explorar o código

表单组渲染组件-去部分校验版本

lph hai 1 ano
pai
achega
7dd8714302
Modificáronse 2 ficheiros con 62 adicións e 4 borrados
  1. 10 4
      zkqy-ui/src/components/FormGroup/index.vue
  2. 52 0
      zkqy-ui/src/utils/kFormDesign.js

+ 10 - 4
zkqy-ui/src/components/FormGroup/index.vue

@@ -8,14 +8,15 @@
         :defaultValue="item.defaultValue"
         class="formBuild"
         ref="addFromRef"
-        :value="item.jsonData"
+        :value="item.formInfo.jsonData"
       />
     </div>
   </div>
 </template>
 
 <script>
-import formList from "./formList.js";
+import formList from "@/assets/js/formArray";
+import { removeValidate } from "@/utils/kFormDesign";
 export default {
   name: "FormList",
   props: [],
@@ -32,7 +33,7 @@ export default {
   computed: {
     formList() {
       // return this.disableHandler(formList);
-      return this.removeValidate(formList, mainFormName);
+      return this.removeValidate(formList);
     },
   },
   methods: {
@@ -59,7 +60,12 @@ export default {
      * @param {String} mainFormName 主表单名
      *
      */
-    removeValidate(formObj, mainFormName) {},
+    removeValidate(formList, mainFormName) {
+      formList.forEach((item) => {
+        item.formInfo.jsonData = removeValidate(item.formInfo.jsonData);
+      });
+      return formList;
+    },
   },
   mounted() {},
 };

+ 52 - 0
zkqy-ui/src/utils/kFormDesign.js

@@ -133,3 +133,55 @@ function disableHandler(list) {
 }
 
 
+// 递归移除表单校验
+export function removeValidate(jsonData = {}) {
+  if (!jsonData.list || !jsonData.list.length) return {};
+  removeValidateHandler(jsonData.list);
+  return jsonData;
+}
+
+function removeValidateHandler(list) {
+  if (!list.length) return;
+  list.forEach((item) => {
+    if (isWrapItem(item)) { //递归处理保函类型的type
+      switch (item.type) {
+        case 'table':
+          item.trs.forEach((n) => {
+            n.tds.forEach((m) => {
+              removeValidateHandler(m.list);
+            });
+          });
+          break;
+        case "grid":
+          item.columns.forEach((n) => {
+            removeValidateHandler(n.list);
+          });
+          break;
+        case "tabs":
+          item.columns.forEach((n) => {
+            removeValidateHandler(n.list);
+          });
+          break;
+        case "card":
+          removeValidateHandler(item.list);
+          break;
+        case "batch"://动态表格
+          removeValidateHandler(item.list);
+          break;
+        case "selectInputList": //选项输入列
+          item.columns.forEach((n) => {
+            removeValidateHandler(n.list);
+          });
+          break;
+        default:
+          break;
+      }
+    } else if (isShowItem(item)) { //跳过仅展示类型
+      return;
+    } else {
+      item.rules = [];
+    }
+  })
+}
+
+