From d6f94d02fd033c1c0a68fe2d4e987eb233d2afb1 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期三, 05 三月 2025 18:05:03 +0800
Subject: [PATCH] 整合代码

---
 Source/UBCS-WEB/src/views/docking/info.vue |  218 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 139 insertions(+), 79 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/docking/info.vue b/Source/UBCS-WEB/src/views/docking/info.vue
index 9caf94c..08f7265 100644
--- a/Source/UBCS-WEB/src/views/docking/info.vue
+++ b/Source/UBCS-WEB/src/views/docking/info.vue
@@ -2,28 +2,45 @@
   <el-container>
     <el-main>
       <basic-container>
-        <avue-crud ref="crud" v-model="form" :data="data" :option="option" :page.sync="page" @on-load="onLoad"
+        <avue-crud ref="crud" v-model="form" :cell-style="cellStyle" :data="data" :option="option" :page.sync="page"
+                   :permission="permissionList"
+                   @on-load="onLoad"
                    @search-change="searchChange"
                    @search-reset="searchReset"
                    @selection-change="selectionChange"
                    @current-change="currentChange"
-                   @size-change="sizeChange"
-                   @refresh-change="refreshChange" @row-click="rowClick" :cell-style="cellStyle">
+                   @size-change="sizeChange" @refresh-change="refreshChange" @row-click="rowClick">
           <template slot="menu" slot-scope="{row,index}">
-            <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave(row,index)" :disabled="row.usedFlag === 'true' ? false :true">缂栬緫</el-button>
-            <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave(row,index)">鍒犻櫎</el-button>
-            <el-button v-if="row.usedflag=='false'" icon="el-icon-position" size="small" type="text"
-                       @click="ENABLE(row,index)">鍚敤
+            <el-button v-if="permissionList.edit" :disabled="row.usedFlag === 'true' ? false :true"
+                       icon="el-icon-edit" size="small"
+                       type="text"
+                       @click="updateSave(row,index)">缂栬緫
             </el-button>
-            <el-button v-else icon="el-icon-finished" size="small" type="text" @click="DISABLE(row,index)">鍋滅敤
+            <el-button v-if="permissionList.delete" icon="el-icon-delete" size="small" type="text"
+                       @click="deleteSave(row,index)">鍒犻櫎
             </el-button>
+            <span v-if="permissionList.enable">
+
+                       <el-button v-if="row.usedFlag=='false' || row.usedFlag==''" icon="el-icon-position" size="small"
+                                  type="text" @click="ENABLE(row,index)">鍚敤
+                       </el-button>
+            </span>
+            <span v-if="permissionList.stop">
+                      <el-button v-if="row.usedFlag !== 'false' && row.usedFlag !== ''" icon="el-icon-finished"
+                                 size="small"
+                                 type="text" @click="DISABLE(row, index)">鍋滅敤
+                      </el-button>
+            </span>
           </template>
           <template slot="menuLeft">
-            <el-button icon="el-icon-plus" size="small" type="primary" @click="addSave">鏂�&nbsp;&nbsp;澧�
+            <el-button v-if="permissionList.add" icon="el-icon-plus" size="small" type="primary"
+                       @click="addSave">
+              鏂�&nbsp;&nbsp;澧�
             </el-button>
-            <el-button icon="el-icon-share" size="small" @click="PUSH">鍚� 姝�
+            <el-button v-if="permissionList.sync" icon="el-icon-share" size="small" @click="PUSH">鍚� 姝�
             </el-button>
-            <el-button icon="el-icon-search" size="small" @click="openAdvancedQuery">鏌� 璇�
+            <el-button v-if="permissionList.query" icon="el-icon-search" size="small"
+                       @click="openAdvancedQuery">鏌� 璇�
             </el-button>
           </template>
         </avue-crud>
@@ -42,16 +59,20 @@
 
 <script>
 import {
-  getList, add, edit, del, push, updateStatus
+  getList, add, edit, del, push, updateStatus, HeaderRequest, ParmRequest
 } from "@/api/docking/info";
 import {getDictionary} from "@/api/omd/enum";
 import infoForm from "./infoForm.vue";
+import {mapGetters} from "vuex";
 
 export default {
   name: "info",
   components: {infoForm},
+
   data() {
     return {
+      //涓嬫媺鎬荤被鍨�
+      DropDownTheTotalType: [],
       //鎺ュ彛绫诲瀷涓嬫媺
       interfaceTypeList: [{
         label: 'webService', value: 'webService'
@@ -72,6 +93,14 @@
       }, {
         label: 'Json', value: 'json'
       }],
+      //鍐呭绫诲瀷
+      contentTypeList: [{
+        label:'application/json',value:'application/json'
+      },{
+        label:'application/x-www-form-urlencoded',value:'application/x-www-form-urlencoded'
+      },{
+        label:'multipart/form-data',value:'multipart/form-data'
+      }],
       //鎺ㄩ�佺被鍨�
       pushTypeList: [{value: '1', label: '鏁版嵁鎺ㄩ��'},
         {value: '2', label: '鍒嗙被鎺ㄩ��'},
@@ -81,7 +110,7 @@
         {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
         {value: '7', label: '鏁版嵁鏌ヨ'}],
       page: {
-        pageSize: 10,
+        pageSize: 20,
         currentPage: 1,
         total: 100
       },
@@ -93,57 +122,59 @@
       option: {
         height: "auto",
         calcHeight: 20,
+        columnBtn: false,
         tip: false,
         headerAlign: "center",
         border: true,
         index: true,
         selection: true,
+        indexFixed: false,
+        selectionFixed: false,
         searchShow: false,
+        refreshBtn: false,
         searchMenuSpan: 6,
         rowKey: "id",
         tabs: true,
         stripe: true,
-        indexFixed: false,
         menuWidth: 180,
         highlightCurrentRow: true,
         addBtn: false,
         editBtn: false,
         delBtn: false,
-        columnBtn: false,
-        column: [ {
+        column: [{
           label: '鏄惁鍚敤',
           prop: 'usedFlag',
           width: 150,
           formatter: res => res.usedFlag === "true" ? "鍚敤" : "鍋滅敤"
-        },{
+        }, {
           label: '闆嗘垚绯荤粺',
           prop: 'sysBaseName',
           sortable: true,
           width: 150
-        },{
+        }, {
           label: '鍒嗙被閫夋嫨',
           prop: 'classifyName',
-          align:'center',
+          align: 'center',
           // sortable: true,
           width: 150
-        },{
+        }, {
           label: '缂栫爜绫诲瀷',
           prop: 'isGroupCodeFlag',
           sortable: true,
           width: 150,
-          formatter: res => res.isGroupCodeFlag ? '闆嗗洟鐮�' : '浼佷笟缂栫爜'
-        },{
+          formatter: res => res.isGroupCodeFlag === 'true' ? '闆嗗洟鐮�' : '浼佷笟缂栫爜'
+        }, {
           label: '鎺ュ彛绫诲瀷',
-          prop:'dataFlowTypeText',
-          align:'center',
+          prop: 'dataFlowTypeText',
+          align: 'center',
           sortable: true,
-          width:150,
-        },{
+          width: 150,
+        }, {
           label: '鎺ㄩ�佺被鍨�',
           prop: 'pushTypeText',
           sortable: true,
-          overHidden:true,
-          align:'center',
+          overHidden: true,
+          align: 'center',
           width: 150,
           //pushTypeList浣滅敤鍩�
           // formatter: (d) => {
@@ -153,57 +184,59 @@
           label: '绯荤粺缂栧彿',
           prop: 'id',
           sortable: true,
-          hide:true,
+          hide: true,
           width: 150
         }, {
           label: '绯荤粺鍚嶇О',
           prop: 'name',
-          hide:true,
+          hide: true,
           sortable: true,
           width: 150
-        },{
+        }, {
           label: '鎺ュ彛鏂瑰紡',
           prop: 'interfaceType',
           // sortable: true,
           width: 150
-        },{
+        }, {
           label: '绫昏矾寰�',
           prop: 'classPath',
           // sortable: true,
           width: 150
-        },{
+        }, {
           label: 'soapAction',
           prop: 'soapAction',
+          overHidden: true,
           sortable: true,
-          width: 150
-        },  {
+          width: 200
+        }, {
           label: '璋冪敤鏂瑰紡',
           prop: 'cxfaxis',
           sortable: true,
           width: 150
         }, {
-            label: '璇锋眰鏂瑰紡',
-            prop: 'requestMethod',
-            align:'center',
-            // sortable: true,
-            width: 150
-          }, {
+          label: '璇锋眰鏂瑰紡',
+          prop: 'requestMethod',
+          align: 'center',
+          // sortable: true,
+          width: 150
+        }, {
           label: '璇锋眰鍦板潃',
           prop: 'requestUrl',
           sortable: true,
-          width: 150
-        },  {
+          overHidden: true,
+          width: 200
+        }, {
           label: '鎺ュ彛鍑芥暟',
           prop: 'interfaceFunction',
           sortable: true,
-          align:'center',
+          align: 'center',
           width: 150
         }, {
-            label: '鍙傛暟鍚嶇О',
-            prop: 'targetName',
-            sortable: true,
-            width: 150
-          },{
+          label: '鍙傛暟鍚嶇О',
+          prop: 'targetName',
+          sortable: true,
+          width: 150
+        }, {
           label: '鍙傛暟绫诲瀷',
           prop: 'paramType',
           sortable: true,
@@ -224,6 +257,14 @@
           prop: 'nameSpace',
           sortable: true,
           width: 150
+        }, {
+          label: '鍐呭绫诲瀷',
+          prop: 'contentType',
+          sortable: true,
+          width: 150,
+          formatter: (d) => {
+            return this.contentTypeList[d.contentType]
+          }
         },{
           label: '绯荤粺鎻忚堪',
           prop: 'description',
@@ -243,6 +284,18 @@
   created() {
   },
   computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        sync: this.vaildData(this.permission.info.info_sync, false),
+        add: this.vaildData(this.permission.info.info_add, false),
+        query: this.vaildData(this.permission.info.info_query, false),
+        edit: this.vaildData(this.permission.info.info_edit, false),
+        delete: this.vaildData(this.permission.info.info_delete, false),
+        enable: this.vaildData(this.permission.info.info_enable, false),
+        stop: this.vaildData(this.permission.info.info_stop, false),
+      }
+    },
     oids() {
       let oids = [];
       this.selectionList.forEach(ele => {
@@ -251,7 +304,7 @@
       return oids.join(",");
     }
   },
-  watch:{
+  watch: {
     // editAttribute:{
     //   immediate: true,
     //   handler(newData) {
@@ -261,9 +314,9 @@
   },
   methods: {
     //鍗曞厓鏍兼牱寮�
-    cellStyle(row,column,rowIndex,columnIndex){
-      if(row.columnIndex==2) {
-        if(row.row.usedFlag == 'false'){
+    cellStyle(row, column, rowIndex, columnIndex) {
+      if (row.columnIndex == 2) {
+        if (row.row.usedFlag == '' || row.row.usedFlag == 'false') {
           return {
             color: 'red',
             fontWeight: 'bold',
@@ -325,10 +378,17 @@
       this.editAttribute.sysIntParamVOs = row.sysIntParamVOs || [];
       this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs || [];
       this.editAttribute.type = 'edit';
-      this.$refs.infoForm.formData = this.editAttribute;
+      this.$refs.infoForm.formData = row;
+      this.$refs.infoForm.groupCode = row.isGroupCodeFlag === 'true' ? true : false;
       this.$refs.infoForm.showSubmitDialog = true;
-      console.log('row',row.dataFlowTypeText)
-      console.log('editAttribute',this.editAttribute.dataFlowTypeText)
+      //header瀵硅薄
+      HeaderRequest(1, -1, {'conditionMap[infoOid]': row.oid}).then(res => {
+        this.$refs.infoForm.formData.sysIntHeaderVOs = res.data.data.records;
+      })
+      //鍙傛暟瀵硅薄
+      ParmRequest(1, -1, {'conditionMap[infoOid]': row.oid}).then(res => {
+        this.$refs.infoForm.formData.sysIntParamVOs = res.data.data.records;
+      })
     },
     deleteSave(row, index) {
       this.$confirm("鍒犻櫎鏁版嵁灏嗘棤娉曡鎭㈠, 鏄惁缁х画?", "鎻愮ず", {
@@ -338,7 +398,7 @@
         showClose: true,
         type: "warning"
       }).then(() => {
-        del({oids:row.oid}).then(res => {
+        del({oids: row.oid}).then(res => {
           this.$message.success("鍒犻櫎鎴愬姛");
           this.refreshChange();
         });
@@ -400,30 +460,10 @@
     onLoad(page, params = {}) {
       this.loading = true;
       getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
-        console.log(res)
+        // console.log(res)
         const data = res.data.data;
         this.page.total = data.total;
         this.data = data.records;
-        // const Props = {
-        //   paramType: '',
-        //   returnType: '',
-        //   dataFlowType: '',
-        //   pushType: '',
-        //   classifyName: '',
-        //   sourceSystemName: '',
-        //   targetSystemName: '',
-        //   classPath:'',
-        //   requestMethod:'',
-        //   requestUrl:'',
-        //   interfaceFunction:'',
-        //   nameSpace:'',
-        //   soapAction:'',
-        //   targetName:'',
-        //   cxfaxis:''
-        // };
-        // this.pushTypeList.forEach(item => {
-        //   Object.assign(item, Props);
-        // });
         this.loading = false;
       });
     },
@@ -437,6 +477,9 @@
       if (JSON.stringify(conditionMaps) != '{}') {
         this.query = conditionMaps;
         this.onLoad(this.page);
+      } else {
+        this.query = {};
+        this.onLoad(this.page, this.query);
       }
     },
     openAdvancedQuery() {
@@ -499,8 +542,25 @@
 }
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
 .applyRangeTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu {
   display: none !important;
 }
+
+// 婊氬姩鏉℃牱寮忎慨鏀�
+// 婊氬姩鏉$殑瀹藉害
+/deep/ .el-table__body-wrapper::-webkit-scrollbar {
+  height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓
+  background: white;
+  border: white;
+  width: 10px;
+
+}
+
+// 婊氬姩鏉$殑婊戝潡
+/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
+  background-color: #ececec;
+  border-radius: 20px;
+  border: #ececec;
+}
 </style>

--
Gitblit v1.9.3