From 2353af8edf94434cd571100bb16ed9fe9f12819d Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 16 四月 2024 20:15:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/views/modeling/LinkType.vue            |    9 +
 Source/UBCS-WEB/src/api/vciAttrbute.js                     |   28 ++++
 Source/UBCS-WEB/src/views/integration/vciAttribute.vue     |  228 ++++++++++++++++++++++++++++++++++++++
 Source/UBCS-WEB/src/views/integration/integrationIndex.vue |   52 +++++---
 4 files changed, 294 insertions(+), 23 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/vciAttrbute.js b/Source/UBCS-WEB/src/api/vciAttrbute.js
new file mode 100644
index 0000000..422c466
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/vciAttrbute.js
@@ -0,0 +1,28 @@
+import request from '@/router/axios';
+
+//  鏁版嵁鏌ヨ鎺ュ彛
+export const getGroupAttrPoolALlList = (params) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/groupAttrPoolMapping/getGroupAttrPoolALlList',
+    method: 'get',
+    params: {
+      ...params
+    }
+  })
+}
+// 淇濆瓨鎺ュ彛
+export const editGroupAttr = (data) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/groupAttrPoolMapping/editGroupAttr',
+    method: 'post',
+    data
+  })
+}
+// 鍚屾鎺ュ彛
+export const syncGroupAttrMapping = (data) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/groupAttrPoolMapping/syncGroupAttrMapping',
+    method: 'post',
+    data
+  })
+}
diff --git a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
index b0de958..9e77493 100644
--- a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
+++ b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
@@ -51,9 +51,9 @@
                        @selection-change="selectionChange"
                        @select-all="handleSelectAll">
               <template slot="menuLeft">
-<!--                <el-button :disabled="disabledPush" icon="el-icon-plus" size="small" type="primary"-->
-<!--                           @click="dialogPush = true">鏂� 澧�-->
-<!--                </el-button>-->
+                <!--                <el-button :disabled="disabledPush" icon="el-icon-plus" size="small" type="primary"-->
+                <!--                           @click="dialogPush = true">鏂� 澧�-->
+                <!--                </el-button>-->
                 <el-button icon="el-icon-check" size="small" type="primary" @click="handleSave">淇� 瀛�
                 </el-button>
                 <el-button icon="el-icon-connection" size="small" type="primary"
@@ -62,6 +62,9 @@
                 <el-button icon="el-icon-connection" size="small" type="primary"
                            @click="handleSync('one')">鍚屾璇︾粏妯″瀷
                 </el-button>
+                <el-button icon="el-icon-coordinate" size="small" type="primary"
+                           @click="handlerAuto">鑷姩濉厖
+                </el-button>
               </template>
             </avue-crud>
           </el-card>
@@ -69,6 +72,11 @@
             <avue-crud ref="crudRange" :data="rangeData" :option="optinoRange" :style="{ marginTop: '-20px'}"
                        @row-update="handleUpdate"
                        @row-dblclick="handleRowClick">
+              <template slot="menuLeft">
+                <el-button icon="el-icon-coordinate" size="small" type="primary"
+                           @click="handlerAuto">鑷姩濉厖
+                </el-button>
+              </template>
             </avue-crud>
           </el-card>
         </el-card>
@@ -140,8 +148,8 @@
       optinoRange: {
         title: '灞炴�ф槧灏勫彇鍊艰寖鍥�',
         maxHeight: '280px',
-        header: false,
         rowKey: 'oid',
+        refreshBtn: false,
         column: [
           {label: '灞炴�ч泦鍥㈡灇涓惧��', prop: 'numTextValue', minWidth: 80},
           {label: '闆嗗洟灞炴�ф灇涓炬樉绀哄悕绉�', prop: 'numText', minWidth: 80},
@@ -181,7 +189,7 @@
         border: true,
         searchMenuSpan: 8,
         highlightCurrentRow: true,
-        $cellEdit:true,
+        $cellEdit: true,
         column: [
           {label: '闆嗗洟鍒嗙被', prop: 'sourceClassifyName', minWidth: 80},
           {label: '鎵�灞炶鍥�', prop: 'viewName', minWidth: 80},
@@ -192,14 +200,13 @@
             prop: 'targetAttrName',
             type: 'select',
             cell: true,
-            allowCreate: true,
             filterable: true,
             minWidth: 80,
-            props:{
-              label:'targetAttrName',
-              value:'targetAttrName'
+            props: {
+              label: 'targetAttrName',
+              value: 'targetAttrName'
             },
-            dicData: this.targetNameList,
+            dicData: [],
           },
           // {
           //   label: '榛樿鍊�',
@@ -277,7 +284,7 @@
             targetAttrId: item.oid,
             targetAttrKey: item.id,
             targetAttrName: item.name,
-            disabled:false
+            disabled: false
           }
         });
     },
@@ -305,8 +312,8 @@
         this.loading = false
         this.mappingData = response.data.data
 
-        for (const item of this.mappingData){
-          if(item.targetAttrName && item.targetAttrId && item.targetAttrKey){
+        for (const item of this.mappingData) {
+          if (item.targetAttrName && item.targetAttrId && item.targetAttrKey) {
             const targetObject = this.targetColumn.dicData.find(obj => obj.targetAttrName === item.targetAttrName);
             targetObject.disabled = true;
           }
@@ -417,14 +424,14 @@
     },
     // 淇濆瓨鎸夐挳
     async handleSave() {
-      const getTargetCorresponding = (row) =>{
+      const getTargetCorresponding = (row) => {
         return this.targetColumn.dicData.find(column => column.targetAttrName === row.targetAttrName);
       }
       for (const item of this.mappingData) {
         item.$cellEdit = false;
-        if(item.targetAttrName){
-          const { targetAttrId, targetAttrKey, targetAttrName } = await getTargetCorresponding(item);
-          Object.assign(item, { targetAttrId, targetAttrKey, targetAttrName });
+        if (item.targetAttrName) {
+          const {targetAttrId, targetAttrKey, targetAttrName} = await getTargetCorresponding(item);
+          Object.assign(item, {targetAttrId, targetAttrKey, targetAttrName});
         }
       }
       const response = await batchAddSave({dockingPreAttrMappingVOList: this.mappingData})
@@ -547,12 +554,12 @@
         }
 
         // 鑾峰彇鐩爣灞炴�т俊鎭�
-        const { targetAttrId, targetAttrKey, targetAttrName } = await getTargetCorresponding(row);
+        const {targetAttrId, targetAttrKey, targetAttrName} = await getTargetCorresponding(row);
 
         // 鏇存柊琛屾暟鎹�
-        Object.assign(row, { targetAttrId, targetAttrKey, targetAttrName });
+        Object.assign(row, {targetAttrId, targetAttrKey, targetAttrName});
 
-        const response = await batchAddSave({ dockingPreAttrMappingVOList: this.mappingData });
+        const response = await batchAddSave({dockingPreAttrMappingVOList: this.mappingData});
 
         if (response.status === 200) {
           this.$message({
@@ -613,8 +620,9 @@
   .el-transfer-panel {
     width: 270px;
   }
-  .el-scrollbar__view  {
-    height: 100px ;
+
+  .el-scrollbar__view {
+    height: 100px;
   }
 }
 
diff --git a/Source/UBCS-WEB/src/views/integration/vciAttribute.vue b/Source/UBCS-WEB/src/views/integration/vciAttribute.vue
new file mode 100644
index 0000000..940d3ab
--- /dev/null
+++ b/Source/UBCS-WEB/src/views/integration/vciAttribute.vue
@@ -0,0 +1,228 @@
+<template>
+  <basic-container>
+    <avue-crud ref="crud" :data="data" :option="options" :page.sync="page" @current-change="currentChange"
+               @size-change="sizeChange" @row-dblclick="handleRowClick" @row-update="handleUpdate"
+               @selection-change="selectChange">
+      <template slot="menuLeft">
+        <el-button plain size="small" type="success" @click="savaHandler">淇濆瓨</el-button>
+        <el-button plain size="small" type="primary" @click="syncHandler">鍚屾</el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import {getGroupAttrPoolALlList, editGroupAttr,syncGroupAttrMapping} from '@/api/vciAttrbute'
+import {getPage} from "@/api/omd/OmdAttribute";
+
+export default {
+  name: "vciAttribute",
+  data() {
+    return {
+      data: [],
+      options: {
+        height: 'auto',
+        calcHeight: 20,
+        headerAlign: "center",
+        border: true,
+        selection: true,
+        tip: false,
+        index: true,
+        refreshBtn: false,
+        searchShowBtn: false,
+        addBtn: false,
+        delBtn: false,
+        $cellEdit: true,
+        rowKey: 'oid',
+        cellBtn: true,
+        highlightCurrentRow: true,
+        column: [
+          {
+            label: '闆嗗洟灞炴�х紪鍙�',
+            prop: 'groupAttrKey'
+          },
+          {
+            label: '闆嗗洟灞炴�у悕绉�',
+            prop: 'groupAttrName'
+          },
+          {
+            label: '灞炴�х紪鍙�',
+            prop: 'codeMetaAttrKey'
+          },
+          {
+            label: '灞炴�у悕绉�',
+            prop: 'codeMetaAttrName',
+            type: 'select',
+            cell: true,
+            filterable: true,
+            props: {
+              label: 'codeMetaAttrName',
+              value: 'codeMetaAttrOid',
+            },
+            dicData: []
+          }
+        ]
+      },
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      selectList: []
+    }
+  },
+  created() {
+    const params = {
+      'conditionMap[groupAttrKey_like]': 'RY_',
+      page: this.page.currentPage,
+      limit: this.page.pageSize
+    }
+    this.onLoad(params)
+    this.codeColumnOnload()
+  },
+  computed: {
+    codeMetaColumn() {
+      return this.options.column.find(column => column.prop === 'codeMetaAttrName');
+    }
+  },
+  methods: {
+    codeMetaDis() {
+      for (const item of this.data) {
+        if (item.codeMetaAttrOid && item.codeMetaAttrKey && item.codeMetaAttrName) {
+          console.log(this.codeMetaColumn)
+          console.log(this.codeMetaColumn.dicData)
+          if (this.codeMetaColumn.dicData.length >= 1) {
+            const targetObject = this.codeMetaColumn.dicData.find(obj => obj.codeMetaAttrName === item.codeMetaAttrName);
+            console.log(targetObject)
+          }
+          // targetObject.disabled = true;
+        }
+      }
+    },
+    selectChange(list) {
+      this.selectList = list;
+    },
+    async onLoad(params) {
+      getGroupAttrPoolALlList(params).then(res => {
+        const data = res.data.data;
+        this.data = data.records;
+        this.page.total = data.total;
+      })
+    },
+    codeColumnOnload() {
+      getPage(1, -1).then(res => {
+        const data = res.data.data;
+        this.codeMetaColumn.dicData = data.records.filter(item => item.name && item.name.trim() !== "") // 杩囨护鎺塶ame涓虹┖鐨勫睘鎬�
+          .map(item => {
+            return {
+              codeMetaAttrOid: item.oid,
+              codeMetaAttrKey: item.id,
+              codeMetaAttrName: item.name,
+              disabled: false
+            }
+          })
+      })
+    },
+    handleRowClick(row, column) {
+      if (column.label === '灞炴�у悕绉�') this.$refs.crud.rowCell(row, row.$index)
+    },
+    async handleUpdate(row, index, done) {
+      if (!row.codeMetaAttrName) {
+        this.$message.warning('璇烽�夋嫨瑕佷繚瀛樼殑灞炴�у悕绉帮紒');
+        done();
+        return;
+      }
+      // row.codeMetaAttrName鍥犱负涓嬫媺妗唙alue鍊煎師鍥犵粦瀹氫负codeMetaAttrOid
+      const updataList = this.codeMetaColumn.dicData.find(item => item.codeMetaAttrOid === row.codeMetaAttrName)
+
+      // 鍥犱负row閲岄潰鐨勫�兼槸涓嶆纭殑 閲嶆柊璧嬪�间竴閬�
+      const {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName} = updataList;
+      Object.assign(row, {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName});
+
+      const objet = {
+        oid: row.oid,
+        groupAttrKey: row.groupAttrKey,
+        groupAttrName: row.groupAttrName,
+        codeMetaAttrOid: row.codeMetaAttrOid,
+        codeMetaAttrKey: row.codeMetaAttrKey,
+        codeMetaAttrName: row.codeMetaAttrName
+      }
+      const response = await editGroupAttr([objet])
+      if (response.data.data.success) {
+        this.$message.success('淇濆瓨鎴愬姛锛�')
+      }
+      done()
+    },
+    async savaHandler() {
+      if (this.selectList.length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹悗杩涜淇濆瓨锛�')
+      } else {
+        const hasTrueValue = this.selectList.some(item => !item.$cellEdit);
+        if (hasTrueValue) {
+          this.$message.warning('璇峰紑鍚紪杈戝悗淇濆瓨锛�')
+        } else {
+          let saveList = []
+          for (const item of this.selectList) {
+            const updataList = this.codeMetaColumn.dicData.find(p => p.codeMetaAttrOid === item.codeMetaAttrName);
+            const {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName} = updataList;
+            Object.assign(item, {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName});
+
+            item.$cellEdit = false;
+            saveList.push({
+              oid: item.oid,
+              groupAttrKey: item.groupAttrKey,
+              groupAttrName: item.groupAttrName,
+              codeMetaAttrOid: item.codeMetaAttrOid,
+              codeMetaAttrKey: item.codeMetaAttrKey,
+              codeMetaAttrName: item.codeMetaAttrName
+            })
+          }
+          const response = await editGroupAttr(saveList)
+          if (response.data.data.success) {
+            this.$message.success('淇濆瓨鎴愬姛锛�')
+          }
+        }
+      }
+    },
+    async syncHandler(){
+      if(this.selectList.length <= 0){
+        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹繘琛屽悓姝ワ紒')
+      }else {
+        const syncList = [];
+        for (const item of this.selectList) {
+          syncList.push({
+            groupAttrKey: item.groupAttrKey,
+            groupAttrName: item.groupAttrName,
+          })
+        }
+        const response = await syncGroupAttrMapping(syncList)
+        if(response.data.success){
+          this.$message.success(response.data.msg)
+        }
+      }
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+      const params = {
+        'conditionMap[groupAttrKey_like]': 'RY_',
+        page: this.page.currentPage,
+        limit: this.page.pageSize
+      }
+      this.onLoad(params)
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      const params = {
+        'conditionMap[groupAttrKey_like]': 'RY_',
+        page: this.page.currentPage,
+        limit: this.page.pageSize
+      }
+      this.onLoad(params)
+    },
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/UBCS-WEB/src/views/modeling/LinkType.vue b/Source/UBCS-WEB/src/views/modeling/LinkType.vue
index 13e9fed..5e50452 100644
--- a/Source/UBCS-WEB/src/views/modeling/LinkType.vue
+++ b/Source/UBCS-WEB/src/views/modeling/LinkType.vue
@@ -141,7 +141,7 @@
     </el-container>
     <link-type-add ref="linkAdd" :domainOption="domainOptions" :icons="icons" :linkStatus="linkStatus"
                    :linkType="addOption.linkType"
-                   @refreshTable="initTreeOnLoad">
+                   @refreshTable="initTable">
     </link-type-add>
 
   </el-container>
@@ -161,6 +161,7 @@
   name: "LinkType",
   data() {
     return {
+      nodeClickOid:'',
       linkStatus: '',
       addOption: {
         linkType: {
@@ -253,10 +254,16 @@
   methods: {
     // 鏍戠偣鍑�
     nodeClick(data) {
+      this.nodeClickOid = data.oid;
       getDetail(data.oid).then(res => {
         this.obj = res.data.data;
       })
     },
+    initTable(){
+      getDetail(this.nodeClickOid).then(res => {
+        this.obj = res.data.data;
+      })
+    },
     // 娣诲姞鎸夐挳鐐瑰嚮浜嬩欢
     linkTypeAdd() {
       this.$refs.linkAdd.linkType = {};

--
Gitblit v1.9.3