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 |  296 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 190 insertions(+), 106 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/docking/info.vue b/Source/UBCS-WEB/src/views/docking/info.vue
index 5d7cff7..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">
+                   @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)">缂栬緫</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,38 +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 {
-      add: [
-        {
-          pushType: '1',
-          name: '灏忔槑',
-        },
-        {
-          pushType: '1',
-          name: '灏忔槑1',
-        },
-        {
-          pushType: '2',
-          name: '灏忔槑12',
-        },
-        {
-          pushType: '5',
-          name: '灏忔槑123',
-        },
-        {
-          pushType: '2',
-          name: '灏忕孩123',
-        }
-      ],
+      //涓嬫媺鎬荤被鍨�
+      DropDownTheTotalType: [],
       //鎺ュ彛绫诲瀷涓嬫媺
       interfaceTypeList: [{
         label: 'webService', value: 'webService'
@@ -94,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: '鍒嗙被鎺ㄩ��'},
@@ -103,7 +110,7 @@
         {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
         {value: '7', label: '鏁版嵁鏌ヨ'}],
       page: {
-        pageSize: 10,
+        pageSize: 20,
         currentPage: 1,
         total: 100
       },
@@ -115,96 +122,118 @@
       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: [{
-          label: '鎺ㄩ�佺被鍨�',
-          prop: 'pushType',
+          label: '鏄惁鍚敤',
+          prop: 'usedFlag',
+          width: 150,
+          formatter: res => res.usedFlag === "true" ? "鍚敤" : "鍋滅敤"
+        }, {
+          label: '闆嗘垚绯荤粺',
+          prop: 'sysBaseName',
           sortable: true,
-          overHidden:true,
+          width: 150
+        }, {
+          label: '鍒嗙被閫夋嫨',
+          prop: 'classifyName',
+          align: 'center',
+          // sortable: true,
+          width: 150
+        }, {
+          label: '缂栫爜绫诲瀷',
+          prop: 'isGroupCodeFlag',
+          sortable: true,
+          width: 150,
+          formatter: res => res.isGroupCodeFlag === 'true' ? '闆嗗洟鐮�' : '浼佷笟缂栫爜'
+        }, {
+          label: '鎺ュ彛绫诲瀷',
+          prop: 'dataFlowTypeText',
+          align: 'center',
+          sortable: true,
+          width: 150,
+        }, {
+          label: '鎺ㄩ�佺被鍨�',
+          prop: 'pushTypeText',
+          sortable: true,
+          overHidden: true,
+          align: 'center',
           width: 150,
           //pushTypeList浣滅敤鍩�
-          formatter: (d) => {
-            return this.pushTypeList[d.pushType]
-          }
+          // formatter: (d) => {
+          //   return this.pushTypeList[d.pushType]
+          // }
         }, {
           label: '绯荤粺缂栧彿',
           prop: 'id',
           sortable: true,
+          hide: true,
           width: 150
         }, {
           label: '绯荤粺鍚嶇О',
           prop: 'name',
+          hide: true,
           sortable: true,
           width: 150
         }, {
-          label: '鎺ュ彛鍑芥暟',
-          prop: 'interfaceFunction',
-          sortable: true,
-          width: 150
-        }, {
-          label: '鍛藉悕绌洪棿',
-          prop: 'nameSpace',
-          sortable: true,
-          width: 150
-        },{
-          label: '鍒嗙被閫夋嫨',
-          prop: 'classifyName',
-          // sortable: true,
-          width: 150
-        }, {
-          label: '闆嗘垚绯荤粺',
-          prop: 'targetSystemName',
-          // 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
-        }, {
-          label: '鍙傛暟鍚嶇О',
-          prop: 'targName',
-          sortable: true,
-          width: 150
+          width: 200
         }, {
           label: '璋冪敤鏂瑰紡',
           prop: 'cxfaxis',
           sortable: true,
           width: 150
         }, {
-            label: '璇锋眰鏂瑰紡',
-            prop: 'requestMethod',
-            // sortable: true,
-            width: 150
-          }, {
+          label: '璇锋眰鏂瑰紡',
+          prop: 'requestMethod',
+          align: 'center',
+          // sortable: true,
+          width: 150
+        }, {
           label: '璇锋眰鍦板潃',
           prop: 'requestUrl',
+          sortable: true,
+          overHidden: true,
+          width: 200
+        }, {
+          label: '鎺ュ彛鍑芥暟',
+          prop: 'interfaceFunction',
+          sortable: true,
+          align: 'center',
+          width: 150
+        }, {
+          label: '鍙傛暟鍚嶇О',
+          prop: 'targetName',
           sortable: true,
           width: 150
         }, {
@@ -224,6 +253,19 @@
             return this.returnTypeList[d.returnType]
           }
         }, {
+          label: '鍛藉悕绌洪棿',
+          prop: 'nameSpace',
+          sortable: true,
+          width: 150
+        }, {
+          label: '鍐呭绫诲瀷',
+          prop: 'contentType',
+          sortable: true,
+          width: 150,
+          formatter: (d) => {
+            return this.contentTypeList[d.contentType]
+          }
+        },{
           label: '绯荤粺鎻忚堪',
           prop: 'description',
           width: 150
@@ -242,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 => {
@@ -250,7 +304,27 @@
       return oids.join(",");
     }
   },
+  watch: {
+    // editAttribute:{
+    //   immediate: true,
+    //   handler(newData) {
+    //     this.$refs.infoForm.formData  = Object.assign({}, newData);
+    //   }
+    // }
+  },
   methods: {
+    //鍗曞厓鏍兼牱寮�
+    cellStyle(row, column, rowIndex, columnIndex) {
+      if (row.columnIndex == 2) {
+        if (row.row.usedFlag == '' || row.row.usedFlag == 'false') {
+          return {
+            color: 'red',
+            fontWeight: 'bold',
+            fontSize: '20'
+          }
+        }
+      }
+    },
     searchReset() {
       this.query = {};
       this.onLoad(this.page);
@@ -286,11 +360,11 @@
     addSave() {
       this.$refs.infoForm.showSubmitDialog = true;
       this.$refs.infoForm.formData = {
-        dataFlowType: 'push',
-        pushType: '1',
-        sourceSystemName: '缂栫爜绯荤粺',
-        sourceSystemOid: 'code00000001',
-        sourceSystemId: 'CODE',
+        dataFlowType: '',
+        pushType: '',
+        sourceSystemName: '',
+        sourceSystemOid: '',
+        sourceSystemId: '',
         targetSystemName: '',
         targetSystemOid: '',
         targetSystemId: '',
@@ -303,8 +377,18 @@
       this.editAttribute = row;
       this.editAttribute.sysIntParamVOs = row.sysIntParamVOs || [];
       this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs || [];
-      this.$refs.infoForm.formData = this.editAttribute;
+      this.editAttribute.type = 'edit';
+      this.$refs.infoForm.formData = row;
+      this.$refs.infoForm.groupCode = row.isGroupCodeFlag === 'true' ? true : false;
       this.$refs.infoForm.showSubmitDialog = true;
+      //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("鍒犻櫎鏁版嵁灏嗘棤娉曡鎭㈠, 鏄惁缁х画?", "鎻愮ず", {
@@ -314,7 +398,7 @@
         showClose: true,
         type: "warning"
       }).then(() => {
-        remove(row.oid).then(res => {
+        del({oids: row.oid}).then(res => {
           this.$message.success("鍒犻櫎鎴愬姛");
           this.refreshChange();
         });
@@ -376,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:'',
-        //   targName:'',
-        //   cxfaxis:''
-        // };
-        // this.pushTypeList.forEach(item => {
-        //   Object.assign(item, Props);
-        // });
         this.loading = false;
       });
     },
@@ -413,6 +477,9 @@
       if (JSON.stringify(conditionMaps) != '{}') {
         this.query = conditionMaps;
         this.onLoad(this.page);
+      } else {
+        this.query = {};
+        this.onLoad(this.page, this.query);
       }
     },
     openAdvancedQuery() {
@@ -444,7 +511,7 @@
         fieldType: 'text'
       }, {
         title: '鍙傛暟鍚嶇О',
-        queryField: 'targName',
+        queryField: 'targetName',
         fieldType: 'text'
       }, {
         title: '璋冪敤鏂瑰紡',
@@ -475,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