From 38dd9ea383a844f54c05676dcc09acf7d6552727 Mon Sep 17 00:00:00 2001
From: zhangxp <zhangxp@chicecm.com>
Date: 星期五, 07 七月 2023 18:08:05 +0800
Subject: [PATCH] 主数据动态按钮

---
 .gitignore                                            |    2 
 Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue |  224 +++++++++++++++---------------------
 Source/UBCS-WEB/src/views/MasterData/items.vue        |  122 +++++++++-----------
 Source/UBCS-WEB/src/components/Master/MasterTree.vue  |    5 
 4 files changed, 156 insertions(+), 197 deletions(-)

diff --git a/.gitignore b/.gitignore
index 32858aa..fd96978 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@
 
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
+Source/UBCS-WEB/vue.config.js
+Source/UBCS-WEB/package-lock.json
diff --git a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
index 2c7f374..137ee2c 100644
--- a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -2,11 +2,9 @@
   <basic-container>
     <div class="testbox">
       <div>
-        <el-button plain size="small" type="primary" @click="addvisible = true"
-        >澧炲姞
+        <!-- <el-button plain size="small" type="primary" @click="addvisible = true">澧炲姞
         </el-button>
-        <el-button plain size="small" type="primary" @click="editHandler"
-        >缂栬緫
+        <el-button plain size="small" type="primary" @click="editHandler">缂栬緫
         </el-button>
         <el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">鎵归噺瀵煎叆鐢宠</el-button>
         <el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">鍘嗗彶鏁版嵁瀵煎叆</el-button>
@@ -14,126 +12,60 @@
         <el-button plain size="small" type="primary">鎵归噺鍙戝竷</el-button>
         <el-button plain size="small" type="primary">鏌ョ湅娴佺▼鍘嗗彶</el-button>
         <el-button plain size="small" type="primary">鍒犻櫎</el-button>
-        <el-button plain size="small" type="primary" @click="setHandler"
-        >鍙戝竷</el-button
-        >
-        <el-button plain size="small" type="primary" @click="DataChange"
-        >鏁版嵁鏇存敼</el-button
-        >
-        <el-button plain size="small" type="primary" @click="huishouHandler"
-        >鍥炴敹</el-button
-        >
-        <el-button plain size="small" type="primary" @click="openD"
-        >瀵煎嚭
+        <el-button plain size="small" type="primary" @click="setHandler">鍙戝竷</el-button>
+        <el-button plain size="small" type="primary" @click="DataChange">鏁版嵁鏇存敼</el-button>
+        <el-button plain size="small" type="primary" @click="huishouHandler">鍥炴敹</el-button>
+        <el-button plain size="small" type="primary" @click="openD">瀵煎嚭
         </el-button>
-        <el-button plain size="small" type="primary" @click="findHandler"
-        >鏌ヨ
+        <el-button plain size="small" type="primary" @click="findHandler">鏌ヨ
         </el-button>
-        <el-button plain size="small" type="primary" @click="similarHandler"
-        >鐩镐技椤规煡璇�</el-button
-        >
+        <el-button plain size="small" type="primary" @click="similarHandler">鐩镐技椤规煡璇�</el-button>
         <el-button plain size="small" type="primary">鍒锋柊</el-button>
-        <el-input
-          placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�"
-          size="small"
-          style="width: 180px; margin-left: 5px; margin-top: 10px"
-        ></el-input>
+        <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small"
+          style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input> -->
+        <el-button plain size="small" type="primary" v-for="(item, index) in masterVrBtnList" :key="index"
+          @click="handelBtnClick(item)">{{
+            item.name }}</el-button>
+        <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small"
+          style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input>
       </div>
       <el-row style="height: 700px; width: 100%">
-        <el-table
-          v-loading="isLoading"
-          :data="tableData"
-          max-height="700"
-          style=""
-          @cell-click="handleCellClick"
-          @selection-change="handleSelectionChange"
-          @sort-change="sortChange"
-          v-if="tableData.length != 0"
-        >
+        <el-table v-loading="isLoading" :data="tableData" max-height="700" style="" @cell-click="handleCellClick"
+          @selection-change="handleSelectionChange" @sort-change="sortChange" v-if="tableData.length != 0">
           <el-table-column fixed type="selection" width="55"> </el-table-column>
           <el-table-column fixed label="搴忓彿" type="index" width="55">
           </el-table-column>
-          <el-table-column
-            v-for="item in this.tableHeadFindData"
-            :key="item.id"
-            :label="item.label"
-            :prop="item.prop"
-            :sortable="item.sortable"
-            :formatter="item.formatter"
-            :width="item.label.length >=4 ?'150':item.label.length==3 ?'120':'90'"
-            :show-overflow-tooltip="true"
-            align="center"
-          >
+          <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop"
+            :sortable="item.sortable" :formatter="item.formatter"
+            :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'" :show-overflow-tooltip="true"
+            align="center">
           </el-table-column>
         </el-table>
       </el-row>
-      <FormTemplateDialog
-        :codeClassifyOid="this.codeClassifyOid"
-        :codeRuleOid="this.codeRuleOid"
-        :disabledProp="disabledProp"
-        :templateOid="templateOid"
-        type="add"
-        :visible.sync="addvisible"
-        @submit="AddSumbit"
-      >
+      <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+        :disabledProp="disabledProp" :templateOid="templateOid" type="add" :visible.sync="addvisible" @submit="AddSumbit">
       </FormTemplateDialog>
-      <FormTemplateDialog
-        :codeClassifyOid="this.codeClassifyOid"
-        :codeRuleOid="this.codeRuleOid"
-        :disabledProp="disabledProp"
-        :rowOid="rowOid"
-        :templateOid="templateOid"
-        type="edit"
-        :title="'淇敼缂栫爜淇℃伅'"
-        :visible.sync="editvisible"
-        @submit="EditSumbit"
-      ></FormTemplateDialog>
-      <FormTemplateDialog
-        :codeClassifyOid="this.codeClassifyOid"
-        :codeRuleOid="this.codeRuleOid"
-        :disabledProp="disabledProp"
-        :rowOid="rowOid"
-        :templateOid="templateOid"
-        :type="edit"
-        :title="'宸插彂甯冩暟鎹洿鏀�'"
-        :visible.sync="DataVisible"
-      ></FormTemplateDialog>
-      <set-personnel
-        :visible.sync="visibleFlow"
-        :parameter="this.parameter"
-      ></set-personnel>
-      <advanced-query
-        :options="this.options"
-        :visible.sync="findvisible"
-        @echoContion="echoContion"
-      ></advanced-query>
-      <integration-transfer
-        :data="transferData"
-        :props="transferProps"
-        :visible.sync="dialogPush"
-        @save="handelTransferSave"
-      ></integration-transfer>
-      <ResembleQueryDialog
-        :visible.sync="similarVisible"
-        :templateOid="templateOid"
-        :codeClassifyOid="codeClassifyOid"
-        :rowOid="rowOid"
-        :codeRuleOid="this.codeRuleOid"
-      ></ResembleQueryDialog>
+      <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+        :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" type="edit" :title="'淇敼缂栫爜淇℃伅'"
+        :visible.sync="editvisible" @submit="EditSumbit"></FormTemplateDialog>
+      <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+        :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :type="edit" :title="'宸插彂甯冩暟鎹洿鏀�'"
+        :visible.sync="DataVisible"></FormTemplateDialog>
+      <set-personnel :visible.sync="visibleFlow" :parameter="this.parameter"></set-personnel>
+      <advanced-query :options="this.options" :visible.sync="findvisible" @echoContion="echoContion"></advanced-query>
+      <integration-transfer :data="transferData" :props="transferProps" :visible.sync="dialogPush"
+        @save="handelTransferSave"></integration-transfer>
+      <ResembleQueryDialog :visible.sync="similarVisible" :templateOid="templateOid" :codeClassifyOid="codeClassifyOid"
+        :rowOid="rowOid" :codeRuleOid="this.codeRuleOid"></ResembleQueryDialog>
     </div>
     <div class="block" style="display: flex; justify-content: flex-end">
-      <el-pagination
-        :current-page="page.currentPage"
-        :page-size="page.pageSizes"
-        :page-sizes="page.pageSizes"
-        :total="page.total"
-        layout="total, sizes, prev, pager, next, jumper"
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-      >
+      <el-pagination :current-page="page.currentPage" :page-size="page.pageSizes" :page-sizes="page.pageSizes"
+        :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+        @current-change="handleCurrentChange">
       </el-pagination>
     </div>
-    <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData"></BatchImport>
+    <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData">
+    </BatchImport>
   </basic-container>
 </template>
 <script>
@@ -188,6 +120,9 @@
     tableHeadFindData: {
       type: Array,
     },
+    tableHeadBtnData: {
+      type: Array,
+    },
   },
   data() {
     return {
@@ -199,8 +134,8 @@
         code: "",
         type: "PUBLIC",
         template: "",
-        vars:{
-          codeClassifyOid:""
+        vars: {
+          codeClassifyOid: ""
         }
       },
       visibleFlow: false,
@@ -243,25 +178,27 @@
         visible: false,
         type: '',
         codeClassifyOid: ''
-      }
+      },
+      // 涓绘暟鎹寜閽�
+      masterVrBtnList: []
     };
   },
   computed: {},
-  created() {},
-  mounted() {},
+  created() { },
+  mounted() { },
   activated() {
-    this.doLayout();
+    // this.doLayout();
   },
   watch: {
-    tableHeadDataFateher:{
-      handler(newval,oldval){
-        this.options=newval.tableDefineVO.seniorQueryColumns
+    tableHeadDataFateher: {
+      handler(newval, oldval) {
+        this.options = newval.tableDefineVO.seniorQueryColumns
       }
     },
     codeClassifyOid: {
       handler(newval, oldval) {
         this.codeClassifyOid = newval;
-        this.parameter.vars.codeClassifyOid=newval
+        this.parameter.vars.codeClassifyOid = newval
       },
       deep: true,
     },
@@ -272,16 +209,16 @@
     },
     tableHeadFindData: {
       handler(newval, oldval) {
-        newval.forEach((record,_index) =>{
-          if(record.field == 'id' && validatenull(record.templet)){
+        newval.forEach((record, _index) => {
+          if (record.field == 'id' && validatenull(record.templet)) {
             //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
             record.formatter = '';
-          }else {
-            if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)")>-1) {
+          } else {
+            if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)") > -1) {
               record.formatter = eval("(" + record.templet + ")");
               //function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'}
-            }else if(record.fieldType=="truefalse"){
-              record.formatter = function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'}
+            } else if (record.fieldType == "truefalse") {
+              record.formatter = function (row, column) { return row[column.property] == 'true' || row[column.property] == '1' ? '鏄�' : '鍚�' }
             }
           }
         })
@@ -299,6 +236,14 @@
       },
       deep: true,
     },
+    tableHeadBtnData: {
+      handler(newval) {
+        if (newval.length !== 0) {
+          this.masterVrBtnList = newval
+        }
+      },
+      deep: true
+    }
   },
   methods: {
     // 鍙戝竷
@@ -310,6 +255,28 @@
         this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]";
         this.visibleFlow = true;
       }
+    },
+    openVis(visible) {
+      console.log(visible)
+      this[visible] = true
+    },
+    handelBtnClick(event) {
+      const { uniqueFlag } = event
+      this.$nextTick(() => {
+        if (uniqueFlag === 'CODEADD') return this.addvisible = true
+        if (uniqueFlag === 'CODEEDIT') return this.editHandler()
+        if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply')
+        if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport')
+        // 鎵归噺鐢宠缂栫爜
+        //  if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode')
+        if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler()
+        if (uniqueFlag === 'CODEUPREVISION') return this.DataChange()
+        if (uniqueFlag === 'CODERECYCLE') return this.huishouHandler()
+        if (uniqueFlag === 'CODEEXPORT') return this.openD()
+        if (uniqueFlag === 'CODEQUERY') return this.findHandler()
+        //  鐩镐技椤规煡璇�
+        //  if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
+      });
     },
     openD() {
       this.getListCodeByClassId();
@@ -359,6 +326,7 @@
     },
     doLayout() {
       this.$nextTick(() => {
+        console.log(this.$refs)
         this.$refs.crud.doLayout();
       });
     },
@@ -446,7 +414,7 @@
       row.forEach((item) => {
         this.parameter.ids.push(item.oid);
       });
-      console.log(  '  this.parameter.ids',this.parameter.ids)
+      console.log('  this.parameter.ids', this.parameter.ids)
     },
     //缂栬緫
     editHandler() {
@@ -473,8 +441,8 @@
         ...val,
       }).then((res) => {
         console.log(res);
-        this.tableData=res.data.data;
-        this.page.total=res.data.total
+        this.tableData = res.data.data;
+        this.page.total = res.data.total
       });
     },
     //鐩镐技椤规煡璇�
@@ -529,6 +497,4 @@
 /deep/ .el-button {
   margin: 0 10px 10px 0;
 }
-
-
 </style>
diff --git a/Source/UBCS-WEB/src/components/Master/MasterTree.vue b/Source/UBCS-WEB/src/components/Master/MasterTree.vue
index 4d63d27..dd92b72 100644
--- a/Source/UBCS-WEB/src/components/Master/MasterTree.vue
+++ b/Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -29,6 +29,7 @@
   },
   data(){
     return{
+      masterVrBtnList:[],
       tableHeadFindData:[],
       tableHeadDataFateher:[],
       templateOids:"",
@@ -120,6 +121,8 @@
           codeClassifyOid: this.nodeClickList.oid,
           functionId: 5,
         }).then(res => {
+          console.log(res.data.buttons)
+          this.masterVrBtnList = res.data.buttons
           this.tableHeadDataFateher = res.data;
           this.templateOids = res.data.tableDefineVO.oid;
           let List = res.data.tableDefineVO.cols[0];
@@ -136,6 +139,7 @@
           })
           this.$emit('tableHeadDataFateher', this.tableHeadDataFateher);
           this.$emit('tableHeadFindData', this.tableHeadFindData);
+          this.$emit('tableHeadBttoms', this.masterVrBtnList);
           resolve();
         }).catch(err=>{
           reject(err)
@@ -152,7 +156,6 @@
         this.TableRend(); // TableHeadRend() 鏂规硶瀹屾垚鍚庡啀鎵ц TableRend()
         this.$emit('nodeClick',this.templateOids)
         this.$emit("codeClassifyOid", this.nodeClickList.oid )
-  
       } catch (error) {
         // 澶勭悊閿欒
         this.$message.error(error)
diff --git a/Source/UBCS-WEB/src/views/MasterData/items.vue b/Source/UBCS-WEB/src/views/MasterData/items.vue
index 0ca87ed..5a94682 100644
--- a/Source/UBCS-WEB/src/views/MasterData/items.vue
+++ b/Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -1,43 +1,29 @@
 <template>
-    <el-container>
-      <el-aside>
-        <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
-<!--          鏍戠粍浠�-->
-          <master-tree @codeClassifyOid="codeClassifyOidList"
-                       @coderuleoid="coderuleoidList"
-                       :pageSize="this.pageSize"
-                       :currentPage="this.currentPage"
-                       @tableDataArray="tableDataArrays"
-                       @tableHeadDataFateher="tableHeadDatas"
-                       @total="totals"
-                       @nodeClick="nodeClick"
-                       @tableHeadFindData="tableHeadFindDatas"
-                        ></master-tree>
-        </basic-container>
-      </el-aside>
-      <el-main>
-<!--        琛ㄦ牸缁勪欢-->
-      <VciMasterCrud :page="this.page"
-                 :codeClassifyOid="this.codeClassifyOid"
-                 :coderuleoid="this.coderuleoid"
-                 @pageSize="pageSizes"
-                 @currentPage="currentPages"
-                 :tableDataArray="tableDataArray"
-                 :total="this.total"
-                 :tableHeadDataFateher="this.tableHeadDataFateher"
-                 :isLoading="isLoading"
-                 :templateOid="templateOid"
-                 :tableHeadFindData="tableHeadFindData"
-      ></VciMasterCrud>
-      </el-main>
-    </el-container>
+  <el-container>
+    <el-aside>
+      <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
+        <!--          鏍戠粍浠�-->
+        <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize"
+          :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas"
+          @tableHeadBttoms="tableHeadBttoms" @total="totals" @nodeClick="nodeClick"
+          @tableHeadFindData="tableHeadFindDatas"></master-tree>
+      </basic-container>
+    </el-aside>
+    <el-main>
+      <!--        琛ㄦ牸缁勪欢-->
+      <VciMasterCrud :page="this.page" :codeClassifyOid="this.codeClassifyOid" :coderuleoid="this.coderuleoid"
+        @pageSize="pageSizes" @currentPage="currentPages" :tableDataArray="tableDataArray" :total="this.total"
+        :tableHeadDataFateher="this.tableHeadDataFateher" :isLoading="isLoading" :templateOid="templateOid"
+        :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList"></VciMasterCrud>
+    </el-main>
+  </el-container>
 </template>
 
 <script>
 export default {
   name: "items.vue",
-  data(){
-    return{
+  data() {
+    return {
       // 鍒嗛〉
       page: {
         total: 0,
@@ -45,56 +31,58 @@
         pageSize: 10,
         pageSizes: [10, 30, 50, 100, 200],
       },
-      pageSize:"10",
-      currentPage:"1",
-      codeClassifyOid:"",
-      coderuleoid:"",
-      templateOid:"",
-      tableDataArray:[],
-      tableHeadDataFateher:[],
-      total:"",
+      pageSize: "10",
+      currentPage: "1",
+      codeClassifyOid: "",
+      coderuleoid: "",
+      templateOid: "",
+      tableDataArray: [],
+      masterVrBtnList: [],
+      tableHeadDataFateher: [],
+      total: "",
       isLoading: false,
-      tableHeadFindData:{}
+      tableHeadFindData: {}
     }
   },
   created() {
   },
-  methods:{
-    codeClassifyOidList(val){
-      this.codeClassifyOid=val;
+  methods: {
+    codeClassifyOidList(val) {
+      this.codeClassifyOid = val;
     },
-    coderuleoidList(val){
-      this.coderuleoid=val;
+    coderuleoidList(val) {
+      this.coderuleoid = val;
     },
-    pageSizes(val){
-      this.pageSize=val
+    pageSizes(val) {
+      this.pageSize = val
     },
-    currentPages(val){
-      this.currentPage=val
+    currentPages(val) {
+      this.currentPage = val
     },
-    tableDataArrays(val){
-      this.tableDataArray=val
+    tableDataArrays(val) {
+      this.tableDataArray = val
     },
-    totals(val){
-      this.total=val
+    totals(val) {
+      this.total = val
     },
-    tableHeadDatas(val){
-      this.tableHeadDataFateher=val
+    tableHeadDatas(val) {
+      this.tableHeadDataFateher = val
     },
-    tableHeadFindDatas(val){
-      this.tableHeadFindData=val
+    tableHeadFindDatas(val) {
+      this.tableHeadFindData = val
     },
-    nodeClick(val){
-      this.templateOid=val;
-      this.isLoading=true;
+    nodeClick(val) {
+      this.templateOid = val;
+      this.isLoading = true;
       setTimeout(() => {
         this.isLoading = false;
       }, 2000);
-}
+    },
+    tableHeadBttoms(val) {
+      this.masterVrBtnList = val
+    },
   }
 }
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

--
Gitblit v1.9.3