From d1fae033c247f26d4e3676015a65bd2dc137f474 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 01 九月 2023 10:35:13 +0800
Subject: [PATCH] 集成系统接口基本管理表单树回填

---
 Source/UBCS-WEB/src/views/docking/info.vue |  482 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 297 insertions(+), 185 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/docking/info.vue b/Source/UBCS-WEB/src/views/docking/info.vue
index 538f1e0..acfbe07 100644
--- a/Source/UBCS-WEB/src/views/docking/info.vue
+++ b/Source/UBCS-WEB/src/views/docking/info.vue
@@ -2,31 +2,34 @@
   <el-container>
     <el-main>
       <basic-container>
-        <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page"
+        <avue-crud ref="crud" v-model="form" :data="data" :option="option" :page.sync="page" @on-load="onLoad"
                    @search-change="searchChange"
                    @search-reset="searchReset"
                    @selection-change="selectionChange"
                    @current-change="currentChange"
                    @size-change="sizeChange"
-                   @refresh-change="refreshChange" @row-click="rowClick">
+                   @refresh-change="refreshChange" @row-click="rowClick" :cell-style="cellStyle">
           <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-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>
-            <el-button v-else icon="el-icon-finished" size="small" type="text" @click="DISABLE(row,index)">鍋滅敤</el-button>
+            <el-button v-if="row.usedFlag=='false' || row.usedFlag==''" icon="el-icon-position" size="small" type="text"
+                       @click="ENABLE(row,index)">鍚敤
+            </el-button>
+            <el-button v-else icon="el-icon-finished" size="small" type="text" @click="DISABLE(row,index)">鍋滅敤
+            </el-button>
           </template>
           <template slot="menuLeft">
-            <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave">鏂�&nbsp;&nbsp;澧�
+            <el-button icon="el-icon-plus" size="small" type="primary" @click="addSave">鏂�&nbsp;&nbsp;澧�
             </el-button>
-            <el-button size="small" icon="el-icon-share" @click="PUSH">鍚�  姝�
+            <el-button icon="el-icon-share" size="small" @click="PUSH">鍚� 姝�
             </el-button>
-            <el-button size="small" icon="el-icon-search" @click="openAdvancedQuery">鏌�  璇�
+            <el-button icon="el-icon-search" size="small" @click="openAdvancedQuery">鏌� 璇�
             </el-button>
           </template>
         </avue-crud>
       </basic-container>
     </el-main>
-    <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd>
+    <infoForm ref="infoForm" :formData="editAttribute" @refreshTable="refreshChange"></infoForm>
     <!-- 楂樼骇鏌ヨ瀵硅瘽妗� -->
     <advanced-query
       :ref="advancedQueryParam.ref"
@@ -39,31 +42,53 @@
 
 <script>
 import {
-  getList,
-  remove,
-  add,
-  update, getPage, getApplyRange
-} from "@/api/omd/OmdAttribute";
+  getList, add, edit, del, push, updateStatus
+} from "@/api/docking/info";
 import {getDictionary} from "@/api/omd/enum";
-import {mapGetters} from "vuex";
+import infoForm from "./infoForm.vue";
 
 export default {
   name: "info",
+  components: {infoForm},
   data() {
     return {
+      //鎺ュ彛绫诲瀷涓嬫媺
+      interfaceTypeList: [{
+        label: 'webService', value: 'webService'
+      }, {
+        label: '绫昏矾寰�', value: 'classPath'
+      }, {
+        label: 'Http', value: 'http'
+      }],
+      //鍙傛暟绫诲瀷涓嬫媺
+      paramTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      //杩斿洖鍊肩被鍨嬩笅鎷�
+      returnTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      //鎺ㄩ�佺被鍨�
+      pushTypeList: [{value: '1', label: '鏁版嵁鎺ㄩ��'},
+        {value: '2', label: '鍒嗙被鎺ㄩ��'},
+        {value: '3', label: '缂栫爜鐢宠'},
+        {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+        {value: '5', label: '鍒嗙被鏌ヨ'},
+        {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+        {value: '7', label: '鏁版嵁鏌ヨ'}],
       page: {
         pageSize: 10,
         currentPage: 1,
         total: 100
       },
-      selectRow: "",
+      selectRow: {},
       data: [],
       form: {},
-      attribute: {
-        nullable: true
-      },
       editAttribute: {},
-      applyRangeData: [],
       selectionList: [],
       option: {
         height: "auto",
@@ -85,85 +110,128 @@
         editBtn: false,
         delBtn: false,
         columnBtn: false,
-        column: [{
-          label: '鎺ㄩ�佺被鍨�',
-          field: 'pushTypeText',
+        column: [ {
+          label: '鏄惁鍚敤',
+          prop: 'usedFlag',
+          width: 150,
+          formatter: res => res.usedFlag === "true" ? "鍚敤" : "鍋滅敤"
+        },{
+          label: '闆嗘垚绯荤粺',
+          prop: 'sysBaseName',
+          sortable: true,
+          width: 150
+        },{
+          label: '鍒嗙被閫夋嫨',
+          prop: 'classifyName',
+          align:'center',
+          // sortable: true,
+          width: 150
+        },{
+          label: '缂栫爜绫诲瀷',
+          prop: 'isGroupCodeFlag',
           sortable: true,
           width: 150,
-          type: 'select',
-          dicData: this.pushType,
-          props: {
-            label: "value",
-            value: "key"
-          },
-        }, {
-          label: '绯荤粺鍚嶇О',
-          prop: 'sysbasename',
+          formatter: res => res.isGroupCodeFlag ? '闆嗗洟鐮�' : '浼佷笟缂栫爜'
+        },{
+          label: '鎺ュ彛绫诲瀷',
+          prop:'dataFlowTypeText',
+          align:'center',
           sortable: true,
-          search: true,
-          width: 150
+          width:150,
+        },{
+          label: '鎺ㄩ�佺被鍨�',
+          prop: 'pushTypeText',
+          sortable: true,
+          overHidden:true,
+          align:'center',
+          width: 150,
+          //pushTypeList浣滅敤鍩�
+          // formatter: (d) => {
+          //   return this.pushTypeList[d.pushType]
+          // }
         }, {
           label: '绯荤粺缂栧彿',
-          prop: 'sysbaseid',
+          prop: 'id',
           sortable: true,
-          search: true,
+          hide:true,
           width: 150
         }, {
-          label: '鎺ュ彛鍑芥暟',
-          prop: 'interfaceFunction',
+          label: '绯荤粺鍚嶇О',
+          prop: 'name',
+          hide:true,
           sortable: true,
           width: 150
-        }, {
-          label: '鍛藉悕绌洪棿',
-          prop: 'namespace',
-          sortable: true,
+        },{
+          label: '鎺ュ彛鏂瑰紡',
+          prop: 'interfaceType',
+          // sortable: true,
           width: 150
-        }, {
+        },{
+          label: '绫昏矾寰�',
+          prop: 'classPath',
+          // sortable: true,
+          width: 150
+        },{
           label: 'soapAction',
-          prop: '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',
+            align:'center',
+            // sortable: true,
+            width: 150
+          }, {
           label: '璇锋眰鍦板潃',
-          prop: 'requesturl',
+          prop: 'requestUrl',
           sortable: true,
+          overHidden:true,
+          width: 200
+        },  {
+          label: '鎺ュ彛鍑芥暟',
+          prop: 'interfaceFunction',
+          sortable: true,
+          align:'center',
           width: 150
         }, {
+            label: '鍙傛暟鍚嶇О',
+            prop: 'targetName',
+            sortable: true,
+            width: 150
+          },{
           label: '鍙傛暟绫诲瀷',
-          prop: 'paramtype',
+          prop: 'paramType',
           sortable: true,
-          width: 150
+          width: 150,
+          formatter: (d) => {
+            return this.paramTypeList[d.paramType]
+          }
         }, {
           label: '杩斿洖鍊肩被鍨�',
-          prop: 'returntype',
+          prop: 'returnType',
           sortable: true,
+          width: 150,
+          formatter: (d) => {
+            return this.returnTypeList[d.returnType]
+          }
+        }, {
+          label: '鍛藉悕绌洪棿',
+          prop: 'nameSpace',
+          sortable: true,
+          width: 150
+        },{
+          label: '绯荤粺鎻忚堪',
+          prop: 'description',
           width: 150
         }]
       },
-      itemForm: {
-        itemData: {},
-        activeName: "referTab",
-        enumInitFlag: false,
-        referInitFlag: false,
-        form: {}
-      },
-      pushType: [{key: '1', value: '鏁版嵁鎺ㄩ��'},
-        {key: '2', value: '鍒嗙被鎺ㄩ��'},
-        {key: '3', value: '缂栫爜鐢宠'},
-        {key: '4', value: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
-        {key: '5', value: '鍒嗙被鏌ヨ'},
-        {key: '6', value: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
-        {key: '7', value: '鏁版嵁鏌ヨ'}],
       // 楂樼骇鏌ヨ瀵硅瘽妗嗙浉鍏冲弬鏁�
       advancedQueryParam: {
         ref: 'advancedQuery',
@@ -185,7 +253,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);
@@ -198,15 +286,11 @@
     },
     selectionChange(list) {
       this.selectionList = list;
-      if(this.selectionList.length <= 0){
-        this.itemForm.itemData = null
+      if (this.selectionList.length <= 0) {
         this.selectRow = null
-        this.attribute = null
       }
       if (this.selectionList.length > 0) {
-        this.itemForm.itemData = this.selectionList[list.length-1];
-        this.selectRow = this.selectionList[list.length-1].$index;
-        this.attribute = this.selectionList[list.length-1];
+        this.selectRow = this.selectionList[list.length - 1].$index;
       }
     },
     selectionClear() {
@@ -223,44 +307,82 @@
       this.onLoad(this.page, this.query);
     },
     addSave() {
-      this.$refs.originalAdd.showSubmitDialog = true;
-      const newAttr = {};
-      newAttr.nullable = true;
-      this.$refs.originalAdd.attribute = newAttr;
+      this.$refs.infoForm.showSubmitDialog = true;
+      this.$refs.infoForm.formData = {
+        dataFlowType: '',
+        pushType: '',
+        sourceSystemName: '',
+        sourceSystemOid: '',
+        sourceSystemId: '',
+        targetSystemName: '',
+        targetSystemOid: '',
+        targetSystemId: '',
+        sysIntParamVOs: [],
+        sysIntHeaderVOs: []
+      };
     },
-    updateSave(row,index) {
-      this.selectRow = index;
-      var json = JSON.stringify(row);
-      this.editAttribute = JSON.parse(json);
-      this.editAttribute.nullable = row.nullable == 'true' ? true : false;
-      this.$refs.originalAdd.attribute = this.editAttribute;
-      this.$refs.originalAdd.showSubmitDialog = true;
-      this.checkUsingReferDict(row);
-      this.$refs.originalAdd.activeName = this.itemForm.activeName;
-      this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag;
-      this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag;
-      // this.refreshChange()
+    updateSave(row, index) {
+      this.selectRow = row;
+      this.editAttribute = row;
+      this.editAttribute.sysIntParamVOs = row.sysIntParamVOs || [];
+      this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs || [];
+      this.editAttribute.type = 'edit';
+      this.$refs.infoForm.formData = this.editAttribute;
+      this.$refs.infoForm.showSubmitDialog = true;
+      // console.log('row',this.editAttribute.pushType)
+      // console.log('editAttribute',this.editAttribute.dataFlowTypeText)
     },
-    deleteSave(row,index) {
-      this.$confirm("鍒犻櫎鍏冩暟鎹皢鏃犳硶琚仮澶�, 鏄惁缁х画?", "鎻愮ず", {
+    deleteSave(row, index) {
+      this.$confirm("鍒犻櫎鏁版嵁灏嗘棤娉曡鎭㈠, 鏄惁缁х画?", "鎻愮ず", {
         iconClass: 'el-icon-question',
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
         showClose: true,
         type: "warning"
       }).then(() => {
-        remove(row.oid).then(res => {
+        del({oids:row.oid}).then(res => {
           this.$message.success("鍒犻櫎鎴愬姛");
           this.refreshChange();
         });
       });
     },
-    PUSH(){
+    ENABLE(row, index) {
+      //鍚敤
+      this.updateStatus(row, "enable");
+    },
+    DISABLE(row, index) {
+      //鍋滅敤
+      this.updateStatus(row, "disable");
+    },
+    updateStatus(selectRow, able) {
+      var that = this;
+      var paramTemp = {
+        update: able,
+        oid: selectRow.oid,
+        ts: selectRow.ts
+      };
+      this.$confirm("鏄惁瑕�" + (able == "enbale" ? "鍚敤" : (able == "disable" ? "鍋滅敤" : "鍙戝竷")) + "杩欐潯鏁版嵁锛�", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          return updateStatus(paramTemp);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: (able == "enbale" ? "鍚敤鎴愬姛" : (able == "disable" ? "鍋滅敤鎴愬姛" : "鍙戝竷鎴愬姛"))
+          });
+        });
+    },
+    PUSH() {
       if (this.selectionList.length != 1) {
-        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�')
+        this.$message.warning('璇烽�夋嫨鏁版嵁')
         return false;
       }
-      this.$confirm("鏄惁瑕�"+ (this.selectionList[0].pushType == "1" ? "鎺ㄩ�佹暟鎹�" : "鎺ㄩ�佸垎绫�"), {
+      this.$confirm("鏄惁瑕�" + (this.selectionList[0].pushType == "1" ? "鎺ㄩ�佹暟鎹�" : "鎺ㄩ�佸垎绫�"), {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
         type: "warning"
@@ -279,108 +401,98 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
-      getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
+      getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(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;
-        this.data = res.data.data.records;
-        this.itemData = this.data[0];
       });
     },
     rowClick(row) {
-      this.itemForm.itemData = row;
-      this.selectRow = row.$index;
-      this.attribute = row;
-
+      this.selectRow = row;
       this.$refs.crud.toggleSelection();
       this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
-      //this.checkUsingReferDict(row);
-    },
-    checkUsingReferDict(row){
-      if (row.referToId !== null && row.referToId !== ""){
-        this.itemForm.activeName = 'referTab';
-        this.itemForm.referInitFlag = true;
-        this.itemForm.enumInitFlag = false;
-      }else if (row.usingDict === 'true'){
-        this.itemForm.activeName = 'enumTab';
-        this.itemForm.referInitFlag = false;
-        this.itemForm.enumInitFlag = true;
-        getDictionary({code: row.dictCode}).then(res => {
-          this.editAttribute.dictValue = res.data.data[0].label;
-          this.itemForm.itemData.dictValue = this.editAttribute.dictValue;
-          this.$refs.originalAdd.dictEnums = res.data.data;
-        })
-      }else {
-        this.itemForm.activeName = 'referTab';
-        this.itemForm.referInitFlag = true;
-        this.itemForm.enumInitFlag = false;
-      }
-    },
-    selectBtmType() {
-      this.referType.display = true;
-      this.referType.title = "璇烽�夋嫨" + this.referType.value;
-    },
-    applyRangeOpen() {
-      if (!this.selectRow && this.selectRow != 0) {
-        this.$message({
-          type: "warning",
-          message: "璇峰厛閫夋嫨灞炴��"
-        });
-      }
-      var oid = this.data[this.selectRow].oid;
-      getApplyRange(oid).then(res => {
-        this.applyRangeData = res.data.data;
-        this.$refs.applyRange.rangeData = this.applyRangeData;
-        this.$refs.applyRange.showDialog = true;
-
-      });
     },
     /** 楂樼骇鏌ヨ瀵硅瘽妗嗙粍浠�,缁勪欢杩斿洖鐨勫�兼槸condtionMap[field]褰㈠紡鐨勬煡璇㈡潯浠讹紝淇濈暀浜嗗拰涔嬪墠涓�鏍风殑鏂瑰紡 */
-    echoSeniorContionMap(conditionMaps){
-      if(JSON.stringify(conditionMaps)!='{}'){
+    echoSeniorContionMap(conditionMaps) {
+      if (JSON.stringify(conditionMaps) != '{}') {
         this.query = conditionMaps;
         this.onLoad(this.page);
       }
     },
-    openAdvancedQuery(){
-        this.advancedQueryParam.options = [
-          {
-            data: [],
-            title: '缂栧彿',
-            fieldType: 'text',
-            queryField: 'id',
-          },{
-            data: [],
-            title: '鍚嶇О',
-            fieldType: 'text',
-            queryField: 'name',
-          },{
-            data: [],
-            title: '鎻忚堪',
-            fieldType: 'text',
-            queryField: 'description',
-          },{
-            data: [
-              // {
-              //   key: '缂栬緫涓�',
-              //   value: 'Editing',
-              // },
-              // {
-              //   key: '宸插彂甯�',
-              //   value: 'Released',
-              // },
-              // {
-              //   key: '鍋滅敤',
-              //   value: 'Disabled',
-              // },
-            ],
-            title: '鐘舵��',
-            fieldType: 'combox',
-            queryField: 'lcStatus',
-            comboxKey: 'codeSearchLCStatus',
-          },
-        ]
+    openAdvancedQuery() {
+      this.advancedQueryParam.options = [{
+        data: this.pushTypeList,
+        title: '鎺ㄩ�佺被鍨�',
+        queryField: 'pushType',
+        fieldType: 'combox',
+        comboxKey: 'searchPushType'
+      }, {
+        title: '绯荤粺鍚嶇О',
+        queryField: 'sysBaseName',
+        fieldType: 'text'
+      }, {
+        title: '绯荤粺缂栧彿',
+        queryField: 'sysBaseId',
+        fieldType: 'text'
+      }, {
+        title: '鎺ュ彛鍑芥暟',
+        queryField: 'interfaceFunction',
+        fieldType: 'text'
+      }, {
+        title: '鍛藉悕绌洪棿',
+        queryField: 'nameSpace',
+        fieldType: 'text'
+      }, {
+        title: 'soapAction',
+        queryField: 'soapAction',
+        fieldType: 'text'
+      }, {
+        title: '鍙傛暟鍚嶇О',
+        queryField: 'targetName',
+        fieldType: 'text'
+      }, {
+        title: '璋冪敤鏂瑰紡',
+        queryField: 'cxfaxis',
+        fieldType: 'text'
+      }, {
+        title: '璇锋眰鍦板潃',
+        queryField: 'requestUrl',
+        fieldType: 'text'
+      }, {
+        title: '鍙傛暟绫诲瀷',
+        queryField: 'paramType',
+        fieldType: 'combox',
+        comboxKey: 'searchparamType',
+        data: this.paramTypeList
+      }, {
+        title: '杩斿洖鍊肩被鍨�',
+        queryField: 'returnType',
+        fieldType: 'combox',
+        comboxKey: 'searchreturnType',
+        data: this.returnTypeList
+      }]
 
       this.advancedQueryParam.currentOpen = 'info';
       this.advancedQueryParam.advancedQuerySettingBox = true;
@@ -390,7 +502,7 @@
 </script>
 
 <style lang="scss">
-.applyRangeTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
+.applyRangeTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu {
   display: none !important;
 }
 </style>

--
Gitblit v1.9.3