Bläddra i källkod

完善代码生成器代码 动态修改分组关联

yangll 3 år sedan
förälder
incheckning
55e363f483

+ 53 - 29
src/views/codegen/form/modules/FormHeadModal.vue

@@ -33,7 +33,7 @@
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
                                label="稽核名称">
-                    <a-input decorator="['tableName1', validatorRules.tableName ]" :readOnly="editPageFlag" placeholder="请输入稽核名称"></a-input>
+                    <a-input v-decorator="['tableName', validatorRules.tableName ]" :readOnly="editPageFlag" placeholder="请输入稽核名称"></a-input>
                   </a-form-item>
                 </a-col>
                 <a-col :span="8">
@@ -41,7 +41,7 @@
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
                                label="稽核描述">
-                    <a-input decorator="['tableTxt1', validatorRules.tableTxt ]" :readOnly="editPageFlag" placeholder="请输入稽核描述"></a-input>
+                    <a-input v-decorator="['tableTxt', validatorRules.tableTxt ]" :readOnly="editPageFlag" placeholder="请输入稽核描述"></a-input>
                   </a-form-item>
                 </a-col>
               </a-row>
@@ -51,10 +51,10 @@
                   <a-form-item style="width: 100%"
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
-                               label="是否包含任务">
+                               label="任务模式">
                     <a-select v-decorator="[ 'isTree1', {initialValue: 'N'}]">
-                      <a-select-option value="Y"></a-select-option>
-                      <a-select-option value="N"></a-select-option>
+                      <a-select-option value="Y"></a-select-option>
+                      <a-select-option value="N"></a-select-option>
                     </a-select>
                   </a-form-item>
                 </a-col>
@@ -62,10 +62,10 @@
                   <a-form-item style="width: 100%"
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
-                               label="是否包含导入">
+                               label="导入功能">
                     <a-select v-decorator="[ 'isPage1', {initialValue: 'N'}]">
-                      <a-select-option value="Y"></a-select-option>
-                      <a-select-option value="N"></a-select-option>
+                      <a-select-option value="Y"></a-select-option>
+                      <a-select-option value="N"></a-select-option>
                     </a-select>
                   </a-form-item>
                 </a-col>
@@ -74,19 +74,19 @@
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
                                label="菜单排序">
-                    <a-input decorator="['sortIndex1', validatorRules.tableTxt ]" :readOnly="editPageFlag" placeholder="请输入菜单排序"></a-input>
+                    <a-input-number v-decorator="['sortIndex', {initialValue: 10}]" placeholder="请输入菜单排序"></a-input-number>
                   </a-form-item>
                 </a-col>
               </a-row>
 
 
-              <a-row style="width: 100%" :gutter="gutter">
+              <a-row style="width: 100%" :gutter="gutter" v-show="false">
                 <a-col :span="8">
                   <a-form-item style="width: 100%"
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
                                label="表名">
-                    <a-input decorator="['tableName', validatorRules.tableName ]" :readOnly="editPageFlag" placeholder="请输入表名"></a-input>
+                    <a-input v-decorator="['tableName3', validatorRules.tableName ]" :readOnly="editPageFlag" placeholder="请输入表名"></a-input>
                   </a-form-item>
                 </a-col>
                 <a-col :span="8">
@@ -94,7 +94,7 @@
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
                                label="表描述">
-                    <a-input decorator="['tableTxt', validatorRules.tableTxt ]" :readOnly="editPageFlag" placeholder="请输入表描述"></a-input>
+                    <a-input v-decorator="['tableTxt3', validatorRules.tableTxt ]" :readOnly="editPageFlag" placeholder="请输入表描述"></a-input>
                   </a-form-item>
                 </a-col>
                 <a-col :span="8">
@@ -133,15 +133,14 @@
                 </a-col>
               </a-row>
 
-              <a-row style="width: 100%" :gutter="gutter">
+              <a-row style="width: 100%" :gutter="gutter" v-show="false">
                 <a-col :span="8">
                   <a-form-item style="width: 100%"
                                :labelCol="threeCol.label"
                                :wrapperCol="threeCol.wrapper"
                                label="表单分类">
-                    <j-dict-select-tag decorator="[ 'formCategory', {initialValue: 'temp'}]"
+                    <j-dict-select-tag v-decorator="[ 'formCategory', {initialValue: 'temp'}]"
                                        dictCode="ol_form_biz_type"
-                                       :trigger-change="true"
                                        placeholder="请选择"
                     ></j-dict-select-tag>
                   </a-form-item>
@@ -172,7 +171,7 @@
               </a-row>
 
 
-              <a-row style="width: 100%" :gutter="gutter">
+              <a-row style="width: 100%" :gutter="gutter" v-show="false">
                 <a-col :span="8">
                   <a-form-item style="width: 100%"
                                :labelCol="threeCol.label"
@@ -214,7 +213,7 @@
               </a-row>
 
 
-              <a-row style="width: 100%" :gutter="gutter">
+              <a-row style="width: 100%" :gutter="gutter" v-show="false">
                 <a-col :span="8">
                   <a-form-item style="width: 100%"
                                :labelCol="threeCol.label"
@@ -250,7 +249,7 @@
       </a-list>
 
       <a-tabs defaultActiveKey="1" @change="handleChangeInTabs" v-model="activeKey">
-        <a-tab-pane tab="数据库属性" key="1" :forceRender="true">
+        <a-tab-pane tab="稽核属性" key="1" :forceRender="true">
           <db-attribute-table
             ref="table1"
             @added="handleAdded"
@@ -276,7 +275,11 @@
           <query-table ref="table6"></query-table>
         </a-tab-pane>
         <a-tab-pane tab="分组配置" key="7" :forceRender="true">
-          <filed-group-table ref="table7"></filed-group-table>
+          <filed-group-table
+            ref="table7"
+            @added="handleGroupAdded"
+            @deleted="handleGroupDeleted"
+          ></filed-group-table>
         </a-tab-pane>
       </a-tabs>
 
@@ -515,6 +518,7 @@ export default {
 
       // 获取model 中的指定字段
       let filterModel = this.$Jpick(this.model,
+        "tableName","tableTxt"
         // "themeTemplate", "tableName", "scroll",
         // "tableType", "tableVersion", "tableTxt",
         // "isCheckbox", "isDbSynch", "isPage", "isTree",
@@ -600,6 +604,16 @@ export default {
             target.syncTable(dbTable)
           })
       }
+      // 同步分组
+      if (["2"].indexOf(key) !== -1) {
+        this.getRefPromise("table7").then(table => {
+          return table.getGroupList();
+        }).then(groupList => {
+          this.getRefPromise("table2").then((table) => {
+            table.changeGroupOption(groupList);
+          });
+        });
+      }
     },
     /**
      * 同步所有表立即执行并返回Promise 对象
@@ -688,16 +702,16 @@ export default {
       });
     },
     handleChangeInTableType (type) {
-      // if (1 === type) {
-      //   this.templateFlag = true
-      //   this.form.setFieldsValue({themeTemplate: "normal"})
-      // } else {
-      //   this.templateFlag = false
-      // }
-      // this.showRelationType = 3 === type
-      // this.getRefPromise("table2").then((function (t) {
-      //   t.changePageType(3 === type)
-      // }))
+      if (type === 1) {
+        this.templateFlag = true
+        this.form.setFieldsValue({themeTemplate: "normal"})
+      } else {
+        this.templateFlag = false
+      }
+      this.showRelationType = type === 3
+      this.getRefPromise("table2").then((function (t) {
+        t.changePageType(type === 3)
+      }))
     },
     handleChangeInIsTree : function(obj) {
       this.showTreeParentIdField = "Y" === obj;
@@ -710,6 +724,16 @@ export default {
     handleChangeInIdType : function(obj) {
       this.showIdSequence = "SEQUENCE" === obj;
     },
+    handleGroupAdded() {
+      this.getRefPromise("table7").then((table) => {
+        // console.log('table7',table.getGroupList())
+      })
+    },
+    handleGroupDeleted() {
+      this.getRefPromise("table7").then((table) => {
+        // console.log('table7',table.getGroupList())
+      })
+    },
   }
 }
 

+ 0 - 2
src/views/codegen/form/tables/DbAttributeTable.vue

@@ -267,8 +267,6 @@ export default {
       let value = obj.value
       let target = obj.target;
       if (type === FormTypes.select && "dbType" === column.key) {
-        console.log(this.dataSource)
-        debugger
         // 同步数据库字段
         if (!("Date" !== value && "Datetime" !== value)) {
           this.$emit("syncDbType", {row: row, value: value, target: this})

+ 43 - 2
src/views/codegen/form/tables/FiledGroupTable.vue

@@ -9,6 +9,11 @@
       :rowSelection="true"
       :actionButton="actionButton"
       :maxHeight="300"
+      :disabledRows="{groupCode: 'id'}"
+      :dragSort="true"
+      dragSortKey="orderNum"
+      @added="handleAdded"
+      @deleted="handleDeleted"
     />
   </div>
 
@@ -33,8 +38,27 @@ export default {
       /**
        * 数据源
        */
-      dataSource: [],
+      dataSource: [
+        {"groupName": "任务信息","groupCode": "task","orderNum": 1},
+        {"groupName": "基本信息","groupCode": "basic","orderNum": 2},
+        {"groupName": "规范性信息","groupCode": "common","orderNum": 3},
+        {"groupName": "附件资料","groupCode": "other","orderNum": 4},
+      ],
       columns: [
+        {
+          title: "分组代码",
+          key: "groupCode",
+          width: "330px",
+          type: FormTypes.input,
+          defaultValue: "",
+          placeholder: "请输入${title}",
+          validateRules: [
+            {
+              required: true,
+              message: "${title}不能为空"
+            }
+          ]
+        },
         {
           title: "分组名称",
           key: "groupName",
@@ -49,6 +73,13 @@ export default {
             }
           ]
         },
+        {
+          title: "排序",
+          key: "orderNum",
+          isOrder: true,
+          type: FormTypes.hidden,
+          defaultValue: 0
+        }
 
       ],
       person: {
@@ -62,7 +93,17 @@ export default {
   methods: {
     syncTable(target) {
       this.dataSource
-    }
+    },
+    handleAdded() {
+      this.$emit("added", this)
+    },
+    handleDeleted() {
+      this.$emit("deleted", this)
+    },
+    getGroupList() {
+      let { values } = this.$refs.editableTable.getValuesSync({ validate: false })
+      return values;
+    },
   }
 }
 </script>

+ 2 - 2
src/views/codegen/form/tables/IndexTable.vue

@@ -88,7 +88,7 @@ export default {
   methods: {
     syncTable(target) {
       target.$refs.editableTable.getValuesPromise(false)
-        .then(((values) => {
+        .then(values => {
           let arr = [];
           values.forEach(((item) => {
             if (item.dbFieldName) {
@@ -96,7 +96,7 @@ export default {
             }
           }))
           this.columns[1].options = arr
-        }));
+        });
     }
   }
 }

+ 28 - 13
src/views/codegen/form/tables/PageAttributeTable.vue

@@ -60,14 +60,13 @@ let subTablePageOptions = [
   {"title": "多行文本","value":"textarea"}
 ];
 
-let pageOptions = [
-  {"title": "任务信息","value": "1"},
-  {"title": "基本信息","value": "2"},
-  {"title": "规范性信息","value": "3"},
-  {"title": "附件资料","value": "4"},
+let groupPageOptions = [
+  {"title": "任务信息","value": "task"},
+  {"title": "基本信息","value": "basic"},
+  {"title": "规范性信息","value": "common"},
+  {"title": "附件资料","value": "other"},
 ];
 
-
 export default {
   name: "PageAttributeTable",
   components: {},
@@ -77,6 +76,12 @@ export default {
     return {
       loading: false,
       dataSource: [],
+      groupOptions: [
+        {"title": "任务信息","value": "task"},
+        {"title": "基本信息","value": "basic"},
+        {"title": "规范性信息","value": "common"},
+        {"title": "附件资料","value": "other"},
+      ],
       columns: [
         {
           title: "字段名称",
@@ -133,12 +138,7 @@ export default {
           key: "fieldBelong",
           width: "170px",
           type: FormTypes.select,
-          options: [
-            {"title": "任务信息","value": "task"},
-            {"title": "基本信息","value": "basic"},
-            {"title": "规范性信息","value": "common"},
-            {"title": "附件资料","value": "other"},
-          ],
+          options: groupPageOptions,
           defaultValue: "task",
           placeholder: "请选择${title}",
           validateRules: [
@@ -267,9 +267,24 @@ export default {
         values: { isQuery: "1" }
       }]);
     },
+    /**
+     * 值改变后回调
+     * @param event 包含的属性
+     */
     valueChange(event){
-      console.log(event);
       let { type, row, column, value, target } = event;
+    },
+    changeGroupOption(groupList){
+      let groupOptionList = [];
+      // 转换成 select 选项
+      groupList.forEach((item)=> {
+        let option = {
+          title: item.groupName,
+          value: item.groupCode
+        }
+        groupOptionList.push(option);
+      })
+      this.columns[6].options = groupOptionList;
     }
   }
 }