From d598404c814ad8556159c0922c90dccbb7ee649f Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 20 三月 2024 15:36:09 +0800
Subject: [PATCH] 固定表单

---
 Source/ProjectWeb/src/router/page/index.js                                 |    4 
 Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue     |   70 ++-
 Source/ProjectWeb/src/components/dynamic-components/dynamic-table-form.vue |  128 ++++++++
 Source/ProjectWeb/src/views/base/UIContentArea.vue                         |    4 
 Source/ProjectWeb/src/views/base/uiDefineVO.js                             |  367 ++++++++++++++--------
 Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue       |   69 +--
 Source/ProjectWeb/src/main.js                                              |    4 
 Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue      |  269 ----------------
 8 files changed, 443 insertions(+), 472 deletions(-)

diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
index 6d57f5d..3ec92d0 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -1,25 +1,37 @@
 <template>
-  <!--琛ㄦ牸鍩虹鎸夐挳-->
-  <div v-if="type === 'table'">
-    <!--top灞曠ず琛ㄦ牸涓婃柟鍖哄煙 menu灞曠ず琛ㄦ牸鎿嶄綔鏍忓尯鍩� -->
-    <el-button v-for="item in basicButtonList.top"
-               v-if="LocationType === 'top'"
-               :key="item.oid" :icon="item.icon"
-               :type="item.paramVOS.buttonType || 'primary'" plain
-               size="small"
-               @click="buttonClick(item)">
-      {{ item.name }}
-    </el-button>
+  <div>
+    <!--琛ㄦ牸鍩虹鎸夐挳-->
+    <div v-if="type === 'table'">
+      <!--top灞曠ず琛ㄦ牸涓婃柟鍖哄煙 menu灞曠ず琛ㄦ牸鎿嶄綔鏍忓尯鍩� -->
+      <el-button v-for="item in basicButtonList.top"
+                 v-if="LocationType === 'top'"
+                 :key="item.oid" :icon="item.icon"
+                 :type="item.paramVOS.buttonType || 'primary'" plain
+                 size="small"
+                 @click="buttonClick(item)">
+        {{ item.name }}
+      </el-button>
 
-    <el-button v-for="item in basicButtonList.menu"
-               v-if="LocationType === 'menu'"
-               :key="item.oid" :icon="item.paramVOS.icon"
-               :type="item.paramVOS.buttonType || 'primary'" plain
-               size="small"
-               @click="buttonClick(item,scope)">
-      {{ item.name }}
-    </el-button>
-<!--    <dynamic-form :title="formName" :visible.sync="visible"></dynamic-form>-->
+      <el-button v-for="item in basicButtonList.menu"
+                 v-if="LocationType === 'menu'"
+                 :key="item.oid"
+                 :icon="item.paramVOS.icon ? item.paramVOS.icon : (item.paramVOS.buttonMethods === 'edit' ? 'el-icon-edit' : (item.paramVOS.buttonMethods === 'delete' ? 'el-icon-delete' : ''))"
+                 :type="item.paramVOS.buttonType || 'text'" plain
+                 size="small"
+                 @click="buttonClick(item,scope)">
+        {{ item.name }}
+      </el-button>
+    </div>
+    <div v-if="type === 'form'">
+      <el-button v-for="item in basicButtonList"
+                 :key="item.oid"
+                 :type="(item.paramVOS.buttonType !== 'text' ? item.paramVOS.buttonType : 'primary') || 'primary'" plain
+                 size="small"
+                 :icon="item.icon"
+                 @click="buttonClick(item)">
+        {{item.name}}
+      </el-button>
+    </div>
   </div>
 </template>
 
@@ -36,11 +48,11 @@
     LocationType: {
       type: String,
     },
-    scope:{
-      type:Object,
+    scope: {
+      type: Object,
     },
-    butttonList:{
-      type:Array
+    butttonList: {
+      type: Array
     }
   },
   data() {
@@ -53,19 +65,23 @@
     basicButtonList() {
       // const basicColumn = this.butttonList.filter(item => item.id !== 'launchworkflow'); // 棣栧厛杩囨护鍑烘潵鍩虹琛ㄥ崟浜嬩欢鐨勬寜閽�
       const basicColumn = this.butttonList;
-      if (this.type === 'table') {
+
+      if (this.type === 'form') {
+        console.log('basicColumn',basicColumn)
+        return basicColumn;
+      } else if (this.type === 'table') {
         const top = basicColumn.filter(item => item.paramVOS.location === 'top' || func.isEmpty(item.paramVOS.location)); // 杩囨护鍑烘潵琛ㄦ牸涓婇潰鍖哄煙灞曠ず鐨勬寜閽�
         const menu = basicColumn.filter(item => item.paramVOS.location === 'menu'); // 杩囨护鍑烘潵鎿嶄綔鏍忓睍绀虹殑鎸夐挳
         return {
           top: top,
           menu: menu
-        }
+        };
       }
     }
   },
   methods: {
     buttonClick(item) {
-      this.$emit('buttonClick',this.scope,item)
+      this.$emit('buttonClick', this.scope, item)
     }
   }
 }
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
index 947b92d..3d555d7 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -1,8 +1,6 @@
 <template>
-  <basic-container>
-    <el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeHandler" append-to-body>
-      <avue-form v-model="form" :option="option" @submit="submitHandler" @reset-change="changeHandler">
-        <template v-for="item in slotData" :slot="item.prop + 'Label'">
+  <avue-form v-model="form" :option="option">
+    <template v-for="item in slotData" :slot="item.prop + 'Label'">
         <span>
           <span>{{ item.label }} </span>
           <el-tooltip
@@ -15,10 +13,11 @@
             <i class="el-icon-star-on" style="font-size: 17px !important; color: red;vertical-align: baseline;"></i>
           </el-tooltip>
         </span>
-        </template>
-      </avue-form>
-    </el-dialog>
-  </basic-container>
+    </template>
+    <template slot="menuForm">
+      <dynamic-button type="form" :butttonList="componentVO.buttons" @buttonClick="buttonClick"></dynamic-button>
+    </template>
+  </avue-form>
 </template>
 
 <script>
@@ -46,52 +45,30 @@
       type: Object,
       default: {}
     },
-    visible: {
-      type: Boolean,
-      default: false,
-    },
-    title: {
-      type: String
-    },
-    formList:{
-      type:Array
-    },
   },
   data() {
     return {
       form: {},
     }
   },
+  mounted() {
+    // console.log('componentVO--',this.componentVO.tableDefineVO.cols[0])
+  },
   computed: {
-    dialogFormVisible: {
-      get() {
-        return this.visible;
-      },
-      set(val) {
-        this.$emit("update:visible", val);
-      },
-    },
     option() {
       return {
-        column: this.formColumn(this.formList)
+        submitBtn: false,
+        emptyBtn: false,
+        height: 300,
+        column: this.formColumn(this.componentVO.tableDefineVO.cols[0])
       }
     },
-    slotData(){
-      return this.formColumn(this.formList)
+    slotData() {
+      return this.formColumn(this.componentVO.tableDefineVO.cols[0])
     }
   },
-  methods:{
-    //琛ㄥ崟鎻愪氦
-    submitHandler(form,done){
-      console.log(form)
-      console.log(this.slotData)
-      done()
-    },
-    changeHandler(){
-      this.form = {};
-      // this.clearValidate() 娓呯┖鏍¢獙
-      // this.resetFields()
-    },
+  methods: {
+    //杞寲鏁版嵁
     formColumn(formList) {
       return formList.map(item => {
         const typeValue = item.type === 'text' ? 'input' : item.type === 'combox' ? 'select' : item.type;
@@ -106,8 +83,8 @@
           disabled: item.disabled,
           labelSuffix: item.suffix,
           suffixIcon: item.prefix,
-          placeholder:item.placeholder,
-          clearable:item.clearable,
+          placeholder: item.placeholder,
+          clearable: item.clearable,
           tip: item.tooltips,
           keyAttr: item.keyAttr,
           rules: [{
@@ -118,13 +95,13 @@
         }
       })
     },
-    closeHandler(){
-      this.form = {};
+    buttonClick(item) {
+      console.log(item.id)
     },
   }
 }
 </script>
 
-<style scoped lang="scss">
+<style scoped>
 
 </style>
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table-form.vue
new file mode 100644
index 0000000..924ccf2
--- /dev/null
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table-form.vue
@@ -0,0 +1,128 @@
+<template>
+  <basic-container>
+    <el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeHandler" append-to-body>
+      <avue-form v-model="form" :option="option" @submit="submitHandler" @reset-change="changeHandler">
+        <template v-for="item in slotData" :slot="item.prop + 'Label'">
+        <span>
+          <span>{{ item.label }} </span>
+          <el-tooltip
+            v-if="item.keyAttr"
+            class="item"
+            content="璇ュ睘鎬т负鍏抽敭灞炴��"
+            effect="dark"
+            placement="top-start"
+          >
+            <i class="el-icon-star-on" style="font-size: 17px !important; color: red;vertical-align: baseline;"></i>
+          </el-tooltip>
+        </span>
+        </template>
+      </avue-form>
+    </el-dialog>
+  </basic-container>
+</template>
+
+<script>
+export default {
+  name: "dynamic-table-form",
+  props: {
+    componentVO: {
+      type: Object,
+      default: {}
+    },
+    inDialog: {
+      type: Boolean,
+      default: false
+    },
+    areasName: {
+      type: String,
+      default: ''
+    },
+    sourceData: {
+      //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁
+      type: Object,
+      default: {}
+    },
+    paramVOS: {
+      type: Object,
+      default: {}
+    },
+    visible: {
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      type: String
+    },
+    formList:{
+      type:Array
+    },
+  },
+  data() {
+    return {
+      form: {},
+    }
+  },
+  computed: {
+    dialogFormVisible: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit("update:visible", val);
+      },
+    },
+    option() {
+      return {
+        column: this.formColumn(this.formList)
+      }
+    },
+    slotData(){
+      return this.formColumn(this.formList)
+    }
+  },
+  methods:{
+    //琛ㄥ崟鎻愪氦
+    submitHandler(form,done){
+      done()
+    },
+    changeHandler(){
+      this.form = {};
+      // this.clearValidate() 娓呯┖鏍¢獙
+      // this.resetFields()
+    },
+    formColumn(formList) {
+      return formList.map(item => {
+        const typeValue = item.type === 'text' ? 'input' : item.type === 'combox' ? 'select' : item.type;
+
+        return {
+          label: item.text,
+          prop: item.field,
+          type: typeValue,
+          value: item.defaultValue,
+          dicData: item.type === 'combox' ? item.dicData : null,
+          readonly: item.readOnly,
+          disabled: item.disabled,
+          labelSuffix: item.suffix,
+          suffixIcon: item.prefix,
+          placeholder:item.placeholder,
+          clearable:item.clearable,
+          tip: item.tooltips,
+          keyAttr: item.keyAttr,
+          rules: [{
+            required: item.required,
+            message: `璇疯緭鍏�${item.text}!`,
+            trigger: "blur"
+          }]
+        }
+      })
+    },
+    closeHandler(){
+      this.form = {};
+    },
+  }
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index 8f724ff..54a1b44 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -7,17 +7,17 @@
                :table-loading="loading">
       <!--top鍖哄煙鎸夐挳-->
       <template slot="menuLeft" slot-scope="scope">
-        <dynamic-button LocationType="top" type="table":butttonList="butttonList" @buttonClick="buttonClick" ></dynamic-button>
+        <dynamic-button LocationType="top" type="table":butttonList="componentVO.buttons" @buttonClick="buttonClick" ></dynamic-button>
       </template>
 
       <!--menu鍖哄煙鎸夐挳-->
       <template slot="menu" slot-scope="scope">
-        <dynamic-button :scope="scope" LocationType="menu" type="table":butttonList="butttonList" @buttonClick="buttonClick" ></dynamic-button>
+        <dynamic-button :scope="scope" LocationType="menu" type="table":butttonList="componentVO.buttons" @buttonClick="buttonClick" ></dynamic-button>
       </template>
     </avue-crud>
     <!-- 琛ㄦ牸鍐呮寜閽搷浣滃璇濇琛ㄥ崟   -->
-    <dynamic-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible"
-                  style="display: none"></dynamic-form>
+    <dynamic-table-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible"
+                  style="display: none"></dynamic-table-form>
   </div>
 </template>
 
@@ -58,78 +58,6 @@
         currentPage: 1,
         total: 5,
       },
-      //琛ㄦ牸澶�
-      tableHeadList: [
-        {
-          align: "left",
-          colspan: 1,
-          field: "name",
-          fieldType: "text",
-          hidden: false,
-          title: "鍚嶇О",
-          width: 100,
-        },
-        {
-          align: "left",
-          colspan: 1,
-          field: "code",
-          fieldType: "text",
-          hidden: false,
-          title: "缂栫爜",
-          width: 100
-        },
-        {
-          align: "left",
-          colspan: 1,
-          comboxKey: "EnumReviewType",
-          field: "reviewtypetext",
-          fieldType: "combox",
-          hidden: false,
-          sortField: "reviewtype",
-          title: "绫诲瀷",
-          width: 80
-        },
-        {
-          align: "left",
-          colspan: 1,
-          field: "content",
-          fieldType: "textarea",
-          hidden: false,
-          title: "澶囨敞",
-          width: 150
-        },
-        {
-          align: "left",
-          colspan: 1,
-          comboxKey: "ProcessReviewLC${lcstatus}",
-          field: "lcstatus_text",
-          fieldType: "text",
-          hidden: false,
-          sortField: "lcstatus",
-          title: "鐘舵��",
-          width: 100
-        },
-        {
-          align: "left",
-          colspan: 1,
-          field: "creator_name",
-          fieldType: "text",
-          hidden: false,
-          sortField: "creator",
-          title: "鍒涘缓浜�",
-          width: 80
-        },
-        {
-          align: "left",
-          colspan: 1,
-          dateFormate: "yyyy-MM-dd HH:mm:ss",
-          field: "createtime",
-          fieldType: "date",
-          hidden: false,
-          title: "鍒涘缓鏃ユ湡",
-          width: 160
-        }
-      ],
       //琛ㄦ牸鏁版嵁
       tableList: [
         {
@@ -686,192 +614,13 @@
           verify: ""
         },
       ],
-      // 鎸夐挳鏁版嵁
-      butttonList: [
-        {
-          actionVO: {
-            actionCls: "",
-            actionUsedType: "business",
-            bsUrl: "null",
-            createTime: "2013-11-01 15:17:45.000",
-            creator: "eddieliu",
-            csClass: "plm.uif.actions.client.AddAction",
-            description: "鍒涘缓涓氬姟瀵硅薄",
-            id: "add",
-            lastModifier: "developer",
-            lastModifyTime: "2013-11-01 15:17:45.000",
-            licensors: null,
-            name: "鍒涘缓",
-            oid: "65274704-5557-231C-E3EA-0B32B9BD5A0B"
-          },
-          areaType: "tab",
-          authorization: true,
-          children: null,
-          createTime: "2022-07-18 17:29:10.000",
-          creator: "developer",
-          csUrl: "plm.uif.actions.client.AddAction",
-          description: "",
-          displayMode: "textandimage",
-          hidden: false,
-          iconPath: "",
-          id: "add",
-          lastModifier: "developer",
-          lastModifyTime: "2022-07-18 17:29:10.000",
-          name: "鏂板",
-          oid: "DD34108A-5978-334C-7A2A-45F2EE158B1D",
-          orderNum: 1,
-          paramVOS: {
-            form: "DepartmentProcessReviewForm",
-            context: "EditDepartmentProcessReview",
-            type: "processreview",
-            initvalue: "reviewtype=department",
-            location: 'top',
-            buttonType: 'primary',
-            buttonMethods: 'add'
-          },
-          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
-          pkParentOid: "",
-          url: "null"
-        },
-        {
-          actionVO: {
-            actionCls: "",
-            actionUsedType: "business",
-            bsUrl: "BaseEditAction#doAction",
-            createTime: "2013-11-09 10:32:41.000",
-            creator: "eddieliu",
-            csClass: "plm.uif.actions.client.EditAction",
-            description: "淇敼涓氬姟瀵硅薄",
-            id: "edit",
-            lastModifier: "developer",
-            lastModifyTime: "2013-11-09 10:32:41.000",
-            licensors: null,
-            name: "淇敼",
-            oid: "F8534EFE-130B-0CB3-D477-2AC7B19B7DC4"
-          },
-          areaType: "tab",
-          authorization: true,
-          children: null,
-          createTime: "2022-07-18 17:29:10.000",
-          creator: "developer",
-          csUrl: "plm.uif.actions.client.EditAction",
-          description: "",
-          displayMode: "textandimage",
-          hidden: false,
-          iconPath: "",
-          id: "edit",
-          lastModifier: "developer",
-          lastModifyTime: "2022-07-18 17:29:10.000",
-          name: "淇敼",
-          oid: "F50F37CE-26FF-8BC1-F87A-FFD9CFA8CE57",
-          orderNum: 2,
-          paramVOS: {
-            form: "DepartmentProcessReviewForm",
-            checkNotOperation: "${lcstatus}=Auditing&${lcstatus}=Waiting",
-            location: 'menu',
-            buttonType: 'text',
-            icon: "el-icon-edit",
-            buttonMethods: 'edit'
-          },
-          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
-          pkParentOid: "",
-          url: "BaseEditAction#doAction"
-        },
-        {
-          actionVO: {
-            actionCls: "",
-            actionUsedType: "business",
-            bsUrl: "BaseDeleteAction",
-            createTime: "2013-11-09 10:33:08.000",
-            creator: "1",
-            csClass: "plm.uif.actions.client.DeleteAction",
-            description: "鍒犻櫎涓氬姟瀵硅薄",
-            id: "del",
-            lastModifier: "developer",
-            lastModifyTime: "2013-11-09 10:33:08.000",
-            licensors: null,
-            name: "鍒犻櫎",
-            oid: "2655E9F0-014B-DFEC-6F92-A6D1C51FDA19"
-          },
-          areaType: "tab",
-          authorization: true,
-          children: null,
-          createTime: "2022-07-18 17:29:10.000",
-          creator: "developer",
-          csUrl: "plm.uif.actions.client.DeleteAction",
-          description: "",
-          displayMode: "textandimage",
-          hidden: false,
-          iconPath: "",
-          id: "del",
-          lastModifier: "developer",
-          lastModifyTime: "2022-07-18 17:29:10.000",
-          name: "鍒犻櫎",
-          oid: "A8914C35-721B-A1E3-1EEE-3A9196DF5EC9",
-          orderNum: 3,
-          paramVOS: {
-            owner: "true",
-            checkNotOperation: "${lcstatus}=Auditing&${lcstatus}=Waiting",
-            state: "Editing",
-            location: 'menu',
-            buttonType: 'text',
-            icon: "el-icon-delete",
-            buttonMethods: 'delete'
-          },
-          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
-          pkParentOid: "",
-          url: "BaseDeleteAction"
-        },
-        {
-          actionVO: {
-            actionCls: "",
-            actionUsedType: "business",
-            bsUrl: "BaseStartWorkflowAction#doAction",
-            createTime: "2014-03-17 10:14:40.000",
-            creator: "developer",
-            csClass: "plm.uif.actions.client.LaunchWorkFlowAction",
-            description: "鍚姩娴佺▼",
-            id: "launchworkflow",
-            lastModifier: "developer",
-            lastModifyTime: "2014-03-17 10:14:40.000",
-            licensors: null,
-            name: "鍚姩娴佺▼",
-            oid: "56FE9470-AA2B-403B-F029-0A120FC94536"
-          },
-          areaType: "tab",
-          authorization: true,
-          children: null,
-          createTime: "2022-07-18 17:29:10.000",
-          creator: "developer",
-          csUrl: "plm.uif.actions.client.LaunchWorkFlowAction",
-          description: "",
-          displayMode: "textandimage",
-          hidden: false,
-          iconPath: "",
-          id: "launchworkflow",
-          lastModifier: "developer",
-          lastModifyTime: "2022-07-18 17:29:10.000",
-          name: "瀹$",
-          oid: "9963FA86-F146-FBD3-2AC2-51A7AAAAB825",
-          orderNum: 4,
-          paramVOS: {
-            owner: "true",
-            autoSubmitFirst: "false",
-            flowtemplates: "宸ヨ壓璇勫瀹$娴佺▼",
-            state: "Editing",
-            type: "processreview",
-            location: 'top',
-            buttonMethods: 'form'
-          },
-          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
-          pkParentOid: "",
-          url: "BaseStartWorkflowAction#doAction"
-        },
-      ]
     }
   },
+  mounted() {
+    console.log('componentVO',this.componentVO)
+  },
   computed: {
-    option() {
+      option() {
       return {
         index: true,
         addBtn: false,
@@ -884,7 +633,7 @@
       };
     },
     updatedColumns() {
-      return this.tableHeadList.map(item => {
+      return this.componentVO.tableDefineVO.cols[0].map(item => {
         const typeValue = item.fieldType === 'text' || item.fieldType === 'combox' ? 'input' : item.fieldType; // 琛ㄥ崟Type绫诲瀷
 
         return {
diff --git a/Source/ProjectWeb/src/main.js b/Source/ProjectWeb/src/main.js
index 770da51..1d74b80 100644
--- a/Source/ProjectWeb/src/main.js
+++ b/Source/ProjectWeb/src/main.js
@@ -28,8 +28,9 @@
 //鍩虹缁戝畾琛ㄥ崟鎸夐挳
 import dynamicButton from '@/components/dynamic-components/dynamic-button'
 //鍩虹鍔ㄦ�佸脊绐楄〃鍗曠粍浠�
+import dynamicTableForm from '@/components/dynamic-components/dynamic-table-form'
+//鍥哄畾琛ㄥ崟缁勪欢
 import dynamicForm from '@/components/dynamic-components/dynamic-form'
-
 // 娉ㄥ唽鍏ㄥ眬crud椹卞姩
 window.$crudCommon = crudCommon;
 // 鍔犺浇Vue鎷撳睍
@@ -52,6 +53,7 @@
 Vue.component('flowDesign', flowDesign);
 Vue.component('tenantPackage', tenantPackage);
 Vue.component('dynamicButton', dynamicButton);
+Vue.component('dynamicTableForm', dynamicTableForm);
 Vue.component('dynamicForm', dynamicForm);
 // 鍔犺浇鐩稿叧url鍦板潃
 Object.keys(urls).forEach(key => {
diff --git a/Source/ProjectWeb/src/router/page/index.js b/Source/ProjectWeb/src/router/page/index.js
index 8dfc5b4..4c511ba 100644
--- a/Source/ProjectWeb/src/router/page/index.js
+++ b/Source/ProjectWeb/src/router/page/index.js
@@ -90,13 +90,13 @@
     ]
   },
   {
-    path: '/dynamic-table',
+      path: '/dynamic-form',
     name: '鍔ㄦ�佽〃鏍奸〉闈�',
     component: Layout,
     children: [
       {
         path: '', // 绌鸿矾寰勮〃绀鸿闂� '/dynamic-table' 鏃跺姞杞� Layout 缁勪欢
-        component: () => import('@/components/dynamic-components/dynamic-table'),
+        component: () => import('@/components/dynamic-components/dynamic-form'),
         props: true
       }
     ]
diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue
index 7e11fec..934e517 100644
--- a/Source/ProjectWeb/src/views/base/UIContentArea.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue
@@ -96,11 +96,11 @@
     }
   },
   mounted() {
-    console.log(this.areasData);
+    // console.log(this.areasData);
   },
   methods:{
     tabHandleClick(tab, event) {
-      console.log(tab, event);
+      // console.log(tab, event);
     },
   }
 }
diff --git a/Source/ProjectWeb/src/views/base/uiDefineVO.js b/Source/ProjectWeb/src/views/base/uiDefineVO.js
index ed29532..91116b3 100644
--- a/Source/ProjectWeb/src/views/base/uiDefineVO.js
+++ b/Source/ProjectWeb/src/views/base/uiDefineVO.js
@@ -44,7 +44,11 @@
               "name": "鍒锋柊",
               "oid": "E20C314B-E741-FBE0-534A-D68E9C0D8E2C",
               "orderNum": 6,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonType': 'primary',
+                'buttonMethods': 'refresh'
+              },
               "pkComponent": "2D6D571B-BB6E-677D-9764-191BC5D5D3F1",
               "pkParentOid": "",
               "url": "RefreshAction"
@@ -950,7 +954,10 @@
               "paramVOS": {
                 "owner": "true",
                 "context": "CreateAuditQuestionDocume",
-                "type": "document"
+                "type": "document",
+                'location': 'edit',
+                'buttonMethods': 'edit',
+                'buttonType':'text'
               },
               "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
               "pkParentOid": "",
@@ -989,7 +996,10 @@
               "oid": "BE973D4A-CB99-10FC-3E31-F3010259F823",
               "orderNum": 2,
               "paramVOS": {
-                "owner": "true"
+                "owner": "true",
+                'location': 'menu',
+                'buttonType': 'text',
+                'buttonMethods': 'delete'
               },
               "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
               "pkParentOid": "",
@@ -1027,7 +1037,11 @@
               "name": "鍒锋柊",
               "oid": "A860B3E6-8FA5-92AE-8D8A-A2AE5CC552F4",
               "orderNum": 3,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonType': 'primary',
+                'buttonMethods': 'refresh'
+              },
               "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
               "pkParentOid": "",
               "url": "RefreshAction"
@@ -1542,7 +1556,10 @@
               "paramVOS": {
                 "form": "CreateDocument",
                 "type": "document",
-                "initvalue": "doctype=9;processreviewoid=root.${oid}"
+                "initvalue": "doctype=9;processreviewoid=root.${oid}",
+                'location': 'top',
+                'buttonType': 'primary',
+                'buttonMethods': 'add'
               },
               "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
               "pkParentOid": "",
@@ -1562,7 +1579,7 @@
                 "lastModifyTime": "2013-11-09 10:32:41.000",
                 "licensors": null,
                 "name": "淇敼",
-                "oid": "F8534EFE-130B-0CB3-D477-2AC7B19B7DC4"
+                "oid": "F8534EFE-130B-0CB3-D477-2AC7B19B7DC4",
               },
               "areaType": "tab",
               "authorization": true,
@@ -1582,7 +1599,9 @@
               "orderNum": 2,
               "paramVOS": {
                 "form": "CreateDocument",
-                "checkNotOperation": "${lcstatus}=Editing"
+                "checkNotOperation": "${lcstatus}=Editing",
+                'location': 'menu',
+                'buttonMethods': 'edit'
               },
               "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
               "pkParentOid": "",
@@ -1622,7 +1641,10 @@
               "orderNum": 3,
               "paramVOS": {
                 "owner": "true",
-                "checkNotOperation": "${lcstatus}=Editing"
+                "checkNotOperation": "${lcstatus}=Editing",
+                'location': 'menu',
+                'buttonType': 'text',
+                'buttonMethods': 'delete'
               },
               "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
               "pkParentOid": "",
@@ -1663,7 +1685,9 @@
               "paramVOS": {
                 "owner": "true",
                 "forsourcedata": "false",
-                "state": "Editing"
+                "state": "Editing",
+                'location': 'top',
+                'buttonMethods': 'upload'
               },
               "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
               "pkParentOid": "",
@@ -1704,7 +1728,9 @@
               "paramVOS": {
                 "owner": "true",
                 "flowtemplates": "宸ヨ壓鏂囨。瀹$娴佺▼",
-                "type": "document"
+                "type": "document",
+                'location': 'top',
+                'buttonMethods': 'launchworkflow'
               },
               "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
               "pkParentOid": "",
@@ -1742,7 +1768,10 @@
               "name": "鍒锋柊",
               "oid": "110B50FD-67F2-8EA2-0400-D25D591218BA",
               "orderNum": 6,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonMethods': 'refresh'
+              },
               "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
               "pkParentOid": "",
               "url": "RefreshAction"
@@ -2457,7 +2486,10 @@
               "oid": "A6D905FA-33FA-E76E-7E5C-BEA2A25D0640",
               "orderNum": 2,
               "paramVOS": {
-                "setpath": "true"
+                "setpath": "true",
+                'location': 'top',
+                'buttonType': 'primary',
+                'buttonMethods': 'download'
               },
               "pkComponent": "F6380995-A148-5EA4-46B8-65168D9F187C",
               "pkParentOid": "",
@@ -2495,7 +2527,11 @@
               "name": "鍒锋柊",
               "oid": "2D6CF3C0-8E18-CEED-0C04-A50628626D7D",
               "orderNum": 4,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonType': 'primary',
+                'buttonMethods': 'refresh'
+              },
               "pkComponent": "F6380995-A148-5EA4-46B8-65168D9F187C",
               "pkParentOid": "",
               "url": "RefreshAction"
@@ -3014,7 +3050,9 @@
               "orderNum": 1,
               "paramVOS": {
                 "state": "Editing",
-                "checkout": "me;null"
+                "checkout": "me;null",
+                'location': 'top',
+                'buttonMethods': 'upload'
               },
               "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
               "pkParentOid": "",
@@ -3053,7 +3091,9 @@
               "oid": "C76600A6-F38C-107F-CBFB-F33A1EC6B605",
               "orderNum": 2,
               "paramVOS": {
-                "setpath": "true"
+                "setpath": "true",
+                'location': 'top',
+                'buttonMethods': 'download',
               },
               "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
               "pkParentOid": "",
@@ -3094,7 +3134,9 @@
               "paramVOS": {
                 "owner": "true",
                 "state": "Editing",
-                "checkout": "me;null"
+                "checkout": "me;null",
+                'location': 'menu',
+                'buttonMethods': 'delete'
               },
               "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
               "pkParentOid": "",
@@ -3132,7 +3174,10 @@
               "name": "鍒锋柊",
               "oid": "E9119347-26C4-3BE8-2EA2-B4FCC54120CF",
               "orderNum": 4,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonMethods': 'refresh'
+              },
               "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
               "pkParentOid": "",
               "url": "RefreshAction"
@@ -3177,122 +3222,164 @@
             "cols": [
               [
                 {
-                  "align": "left",
-                  "colspan": 1,
-                  "comboxKey": null,
-                  "data": [],
-                  "dateFormate": null,
-                  "edit": "",
-                  "editConfig": null,
-                  "event": null,
-                  "field": "name",
-                  "fieldType": "text",
-                  "fixed": null,
-                  "hidden": false,
-                  "minWidth": null,
-                  "optionButtons": null,
-                  "optionField": false,
-                  "optionJsMap": null,
-                  "queryField": null,
-                  "referConfig": null,
-                  "rowspan": 1,
-                  "showField": null,
-                  "sort": false,
-                  "sortField": null,
-                  "style": null,
-                  "templet": null,
-                  "title": "鍚嶇О",
-                  "unresize": false,
-                  "width": 300
+                  'comboxKey': null,
+                  'customClass': null,
+                  'data': null,
+                  'dateFormate': null,
+                  'defaultValue': "",
+                  'displayExtension': "",
+                  'extendAttrMap': null,
+                  'extendAttrString': null,
+                  'field': "name",
+                  'hidden': false,
+                  'keyAttr': true,
+                  'prefix': null,
+                  'readOnly': false,
+                  'referConfig': null,
+                  'required': true,
+                  'selectLibFlag': null,
+                  'showField': null,
+                  'suffix': '$',
+                  'text': "鍚嶇О",
+                  'tooltips': '鍚嶇О',
+                  'type': "text",
+                  'unique': false,
+                  'verify': ""
                 },
                 {
-                  "align": "left",
-                  "colspan": 1,
-                  "comboxKey": null,
-                  "data": [],
-                  "dateFormate": null,
-                  "edit": "",
-                  "editConfig": null,
-                  "event": null,
-                  "field": "filesize",
-                  "fieldType": "radio",
-                  "fixed": null,
-                  "hidden": false,
-                  "minWidth": null,
-                  "optionButtons": null,
-                  "optionField": false,
-                  "optionJsMap": null,
-                  "queryField": null,
-                  "referConfig": null,
-                  "rowspan": 1,
-                  "showField": null,
-                  "sort": false,
-                  "sortField": null,
-                  "style": null,
-                  "templet": null,
-                  "title": "鏂囦欢澶у皬",
-                  "unresize": false,
-                  "width": 150
+                  'comboxKey': null,
+                  'customClass': null,
+                  'data': null,
+                  'dateFormate': null,
+                  'defaultValue': "",
+                  'displayExtension': "",
+                  'extendAttrMap': null,
+                  'extendAttrString': null,
+                  'field': "code",
+                  'hidden': false,
+                  'keyAttr': false,
+                  'prefix': null,
+                  'readOnly': false,
+                  'referConfig': null,
+                  'required': false,
+                  'selectLibFlag': null,
+                  'showField': null,
+                  'suffix': null,
+                  'disabled':true,
+                  'text': "缂栫爜",
+                  'tooltips': null,
+                  'type': "text",
+                  'unique': false,
+                  'verify': ""
                 },
                 {
-                  "align": "left",
-                  "colspan": 1,
-                  "comboxKey": null,
-                  "data": [],
-                  "dateFormate": null,
-                  "edit": "",
-                  "editConfig": null,
-                  "event": null,
-                  "field": "creator_name,(,creator,)",
-                  "fieldType": "text",
-                  "fixed": null,
-                  "hidden": false,
-                  "minWidth": null,
-                  "optionButtons": null,
-                  "optionField": false,
-                  "optionJsMap": null,
-                  "queryField": null,
-                  "referConfig": null,
-                  "rowspan": 1,
-                  "showField": null,
-                  "sort": false,
-                  "sortField": "creator",
-                  "style": null,
-                  "templet": null,
-                  "title": "鍒涘缓鑰�",
-                  "unresize": false,
-                  "width": 150
+                  'comboxKey': "EnumReviewType",
+                  'customClass': null,
+                  'data': null,
+                  'dateFormate': null,
+                  'defaultValue': "department",
+                  'displayExtension': "",
+                  'extendAttrMap': null,
+                  'extendAttrString': null,
+                  'field': "reviewtype",
+                  'hidden': false,
+                  'keyAttr': false,
+                  'prefix': null,
+                  'readOnly': false,
+                  'referConfig': null,
+                  'required': false,
+                  'selectLibFlag': null,
+                  'showField': null,
+                  'suffix': null,
+                  'text': "绫诲瀷",
+                  'tooltips': null,
+                  'type': "combox",
+                  'unique': false,
+                  'verify': "",
+                  'dicData': [{
+                    'label': '娴嬭瘯1',
+                    'value': 'department'
+                  }, {
+                    'label': '娴嬭瘯2',
+                    'value': 'departments'
+                  }]
                 },
                 {
-                  "align": "left",
-                  "colspan": 1,
-                  "comboxKey": null,
-                  "data": [],
-                  "dateFormate": "yyyy-MM-dd HH:mm:ss",
-                  "edit": "",
-                  "editConfig": null,
-                  "event": null,
-                  "field": "createtime",
-                  "fieldType": "text",
-                  "fixed": null,
-                  "hidden": false,
-                  "minWidth": null,
-                  "optionButtons": null,
-                  "optionField": false,
-                  "optionJsMap": null,
-                  "queryField": null,
-                  "referConfig": null,
-                  "rowspan": 1,
-                  "showField": null,
-                  "sort": false,
-                  "sortField": null,
-                  "style": null,
-                  "templet": null,
-                  "title": "鍒涘缓鏃堕棿",
-                  "unresize": false,
-                  "width": 150
-                }
-              ]
+                  'comboxKey': null,
+                  'customClass': null,
+                  'data': null,
+                  'dateFormate': null,
+                  'defaultValue': "",
+                  'displayExtension': "",
+                  'extendAttrMap': null,
+                  'extendAttrString': null,
+                  'field': "creator",
+                  'hidden': true,
+                  'keyAttr': false,
+                  'prefix': null,
+                  'readOnly': true,
+                  'referConfig': null,
+                  'required': false,
+                  'selectLibFlag': null,
+                  'showField': null,
+                  'suffix': null,
+                  'text': "鍒涘缓浜�",
+                  'tooltips': null,
+                  'type': "text",
+                  'unique': false,
+                  'verify': ""
+                },
+                {
+                  'comboxKey': null,
+                  'customClass': null,
+                  'data': null,
+                  'dateFormate': "yyyy-MM-dd HH:mm:ss",
+                  'defaultValue': "",
+                  'displayExtension': "",
+                  'extendAttrMap': null,
+                  'extendAttrString': null,
+                  'field': "createtime",
+                  'hidden': true,
+                  'keyAttr': false,
+                  'prefix': null,
+                  'readOnly': false,
+                  'referConfig': null,
+                  'required': false,
+                  'selectLibFlag': null,
+                  'showField': null,
+                  'suffix': null,
+                  'text': "鍒涘缓鏃堕棿",
+                  'tooltips': null,
+                  'type': "datetime",
+                  'unique': false,
+                  'verify': ""
+                },
+                {
+                  'comboxKey': null,
+                  'customClass': null,
+                  'data': null,
+                  'dateFormate': null,
+                  'defaultValue': "",
+                  'displayExtension': "",
+                  'extendAttrMap': null,
+                  'extendAttrString': null,
+                  'field': "content",
+                  'hidden': false,
+                  'keyAttr': false,
+                  'prefix': null,
+                  'readOnly': false,
+                  'referConfig': null,
+                  'required': false,
+                  'selectLibFlag': null,
+                  'showField': null,
+                  'suffix': null,
+                  'text': "澶囨敞",
+                  'tooltips': null,
+                  'type': "textarea",
+                  'unique': false,
+                  'verify': ""
+                },
+              ],
             ],
             "displayFolder": false,
             "displayQueryArea": false,
@@ -3530,8 +3617,8 @@
           "treeDefineVO": null,
           "treeTableDefineVO": null,
           "ts": null,
-          "uiComponentType": "table",
-          "uiComponentTypeText": "琛ㄦ牸",
+          "uiComponentType": "form",
+          "uiComponentTypeText": "琛ㄥ崟",
           "uiParseClass": "",
           "versionRule": null,
           "versionSeq": 0,
@@ -3629,7 +3716,9 @@
               "paramVOS": {
                 "form": "createAuditTask_web",
                 "state": "Waiting",
-                "type": "audittask"
+                "type": "audittask",
+                'location': 'top',
+                'buttonMethods': 'add'
               },
               "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
               "pkParentOid": "",
@@ -3667,7 +3756,10 @@
               "name": "鍙紑鍐呴儴璇勫",
               "oid": "1E72BCA6-4FB2-0BC8-BE99-F6EDC43CCA10",
               "orderNum": 2,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonMethods': 'conductinternalreview'
+              },
               "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
               "pkParentOid": "",
               "url": ""
@@ -3707,7 +3799,9 @@
               "paramVOS": {
                 "context": "CreateAuditQuestionDocume",
                 "type": "document",
-                "initvalue": "processreviewoid=${oid};doctype=8"
+                "initvalue": "processreviewoid=${oid};doctype=8",
+                'location': 'top',
+                'buttonMethods': 'add'
               },
               "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
               "pkParentOid": "",
@@ -3747,7 +3841,9 @@
               "orderNum": 4,
               "paramVOS": {
                 "form": "CreateAuditQuestionDocument",
-                "type": "document"
+                "type": "document",
+                'location': 'top',
+                'buttonMethods': 'opinionsummary'
               },
               "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
               "pkParentOid": "",
@@ -3785,7 +3881,10 @@
               "name": "鍒锋柊",
               "oid": "F52BE746-4D0E-9E00-1D5E-E3729DEEE1FA",
               "orderNum": 9,
-              "paramVOS": {},
+              "paramVOS": {
+                'location': 'top',
+                'buttonMethods': 'refresh'
+              },
               "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
               "pkParentOid": "",
               "url": "RefreshAction"

--
Gitblit v1.9.3