From d5fae6385b7f55cb84986b4b7fa341ad1cd9f75f Mon Sep 17 00:00:00 2001
From: zhangxp <zhangxp@chicecm.com>
Date: 星期四, 01 六月 2023 18:31:04 +0800
Subject: [PATCH] 集成接口联调

---
 Source/UBCS-WEB/src/router/axios.js                        |    2 
 Source/UBCS-WEB/src/api/integration/integration.js         |   58 ++++++++
 Source/UBCS-WEB/vue.config.js                              |    3 
 Source/UBCS-WEB/src/views/integration/integrationIndex.vue |  333 ++++++++++++++++++++++-------------------------
 4 files changed, 218 insertions(+), 178 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/integration/integration.js b/Source/UBCS-WEB/src/api/integration/integration.js
new file mode 100644
index 0000000..4135761
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/integration/integration.js
@@ -0,0 +1,58 @@
+import request from '@/router/axios';
+
+// 涓绘暟鎹垎绫绘爲
+export const referCodeClassifyTree = (params) => {
+    return request({
+      url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/referCodeClassifyTree',
+      method: 'get',
+      params: params
+    })
+  }
+  // 涓绘暟鎹垎绫诲睘鎬т俊鎭�
+export const listCodeAttributeByClassId = (params) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/listCodeAttributeByClassId',
+    method: 'get',
+    params: params
+  })
+}
+// 闆嗗洟鍒嗙被鏍�
+export const referTree = (params) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/referTree',
+    method: 'get',
+    params: params
+  })
+}
+// 闆嗗洟鍒嗙被鏍戯紙鏌ヨ闆嗗洟鍒嗙被灞炴�ф帴鍙o級
+export const referTreeByClassId = (params) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/listViewModelAttributeByClassId',
+    method: 'get',
+    params: params
+  })
+}
+// 灞炴�ф槧灏�
+export const gridAttrMapping = (params) => {
+  return request({
+    url: '/api//ubcs-applyjtcodeservice/DockingPreApplyCode/gridAttrMapping',
+    method: 'get',
+    params: params
+  })
+}
+// 灞炴�у彇鍊艰寖鍥存槧灏�
+export const gridAttrRanges = (params) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/gridAttrRanges',
+    method: 'get',
+    params: params
+  })
+}
+// 灞炴�ф槧灏勪繚瀛樻柟娉�
+export const batchAddSave = (params) => {
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/batchAddSave',
+    method: 'get',
+    params: params
+  })
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/router/axios.js b/Source/UBCS-WEB/src/router/axios.js
index 64b38fe..7801ad2 100644
--- a/Source/UBCS-WEB/src/router/axios.js
+++ b/Source/UBCS-WEB/src/router/axios.js
@@ -17,7 +17,7 @@
 import 'nprogress/nprogress.css';
 
 //榛樿瓒呮椂鏃堕棿
-axios.defaults.timeout = 10000;
+axios.defaults.timeout = 20000;
 //杩斿洖鍏朵粬鐘舵�佺爜
 axios.defaults.validateStatus = function (status) {
   return status >= 200 && status <= 500;
diff --git a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
index 37dd110..c18063d 100644
--- a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
+++ b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
@@ -6,16 +6,29 @@
                     <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
                     </el-input>
                     <el-menu :default-openeds="['1', '3']">
-                        <el-tree class="filter-tree" :data="treeData" :props="defaultProps" default-expand-all
-                            :filter-node-method="filterNode" ref="tree">
+                        <el-tree class="filter-tree" :data="treeData" accordion :props="defaultProps"
+                            :filter-node-method="filterNode" empty-text="鏆傛棤鏁版嵁" ref="tree" @node-click="handelTreeCell">
                         </el-tree>
                     </el-menu>
                 </el-aside>
             </el-card>
             <el-main>
                 <el-card>
-                    <avue-crud :data="tableData" :option="option" ref="crud" @row-update="addUpdate" @row-save="rowSave"
-                        @row-click="handleRowClick">
+                    <el-form :model="form">
+                        <el-form-item label="闆嗗洟鍒嗙被" label-width="70px" size="small">
+                            <el-select clearable ref="selectTree" v-model="form.groupValue" placeholder="璇烽�夋嫨"
+                                popper-class="popperTreeSelect">
+                                <el-option :value="groupVal" :label="groupVal"> 
+                                    <el-tree ref="groupTree" :data="groupTreeData" empty-text="鏆傛棤鏁版嵁" :props="defaultProps"
+                                        @node-click="handleNodeClick">
+                                    </el-tree>
+                                </el-option>
+                            </el-select>
+
+                        </el-form-item>
+                    </el-form>
+                    <avue-crud :table-loading="loading" :data="tableData" :option="option" ref="crud" @cell-class-name="handelCellRow"
+                        @cell-click="handleCellClick">
                         <template slot="menuLeft">
                             <el-button icon="el-icon-plus" size="small" type="primary" @click="dialogPush = true">鏂� 澧�
                             </el-button>
@@ -24,35 +37,40 @@
                             <el-button icon="el-icon-connection" size="small" type="primary" @click="handleSync">鍚屾妯″瀷
                             </el-button>
                         </template>
+                        <template slot="defaultValue" slot-scope="{scope}">
+                            <!-- <el-input v-model="scope.row.defaultValue" v-if="scope.row.index === tableRowIndex && scope.column.index === tableColumnIndex" @blur="inputBlur"> </el-input> -->
+                            <span>{{ scope }}</span>
+                        </template>
                     </avue-crud>
                     <el-card :style="{ marginTop: '20px' }">
-                        <avue-crud :data="tableData" :option="optinos" ref="crud" @row-update="addUpdate"
-                            @row-save="rowSave" @row-click="handleRowClick">
+                        <avue-crud :data="tablesData" :option="optinos" ref="crud" 
+                        @cell-click="handleCellClick">
                         </avue-crud>
                     </el-card>
                 </el-card>
-                <el-dialog title="缂栫爜灞炴��" :visible.sync="dialogPush" destroy-on-close append-to-body="true" width="30%"
-                    :before-close="handleClose">
-                    <el-form :model="form">
-                        <el-form-item label="鏌ヨ鏉′欢" label-width="70px" size="small">
-                            <el-input v-model="form.name" autocomplete="off" @change="handleQuery"></el-input>
-                        </el-form-item>
-                    </el-form>
-                    <p class="text_tip">*閫夋嫨鍒嗙被杩涜灞炴�ц繃婊�, 鎴栬�呰緭鍏ュ睘鎬х殑鍏ㄦ嫾鎴栬�呯畝鎷艰繘琛屾煡璇�! 濡�: 濮撳悕 (鍙緭鍏m鎴杧inming )</p>
-                    <transfer v-model="transferValue" :data="transferData" :filter-method="filterMethod"
-                        filter-placeholder="璇疯緭鍏ュ睘鎬ф嫾闊冲叏鎷兼垨鑰呮嫾闊崇缉鍐�" @left-check-change="handelLeftCheck"></transfer>
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="dialogPush = false">鍙� 娑�</el-button>
-                        <el-button type="primary" @click="dialogVisible = false">淇� 瀛�</el-button>
-                    </span>
-                </el-dialog>
             </el-main>
         </el-container>
+        <el-dialog title="缂栫爜灞炴��" :visible.sync="dialogPush" append-to-body="true" destroy-on-close width="30%"
+            :before-close="handleClose">
+            <el-form :model="form">
+                <el-form-item label="鏌ヨ鏉′欢" label-width="70px" size="small">
+                    <el-input v-model="form.name" autocomplete="off" @change="handleQuery"></el-input>
+                </el-form-item>
+            </el-form>
+            <p class="text_tip">*閫夋嫨鍒嗙被杩涜灞炴�ц繃婊�, 鎴栬�呰緭鍏ュ睘鎬х殑鍏ㄦ嫾鎴栬�呯畝鎷艰繘琛屾煡璇�! 濡�: 濮撳悕 (鍙緭鍏m鎴杧inming )</p>
+            <transfer v-model="transferValue" :data="transferData" :filter-method="filterMethod"
+                filter-placeholder="璇疯緭鍏ュ睘鎬ф嫾闊冲叏鎷兼垨鑰呮嫾闊崇缉鍐�" @left-check-change="handelLeftCheck"></transfer>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="dialogPush = false">鍙� 娑�</el-button>
+                <el-button type="primary" @click="dialogPush = false">淇� 瀛�</el-button>
+            </span>
+        </el-dialog>
     </div>
 </template>
 <script>
 import transfer from '@/components/transfer/index'
 import pinyin from 'js-pinyin'
+import { referCodeClassifyTree, referTree, gridAttrMapping } from '@/api/integration/integration.js'
 export default {
     components: {
         transfer
@@ -75,94 +93,27 @@
         return {
             form: {
                 name: '',
+                groupValue: ''
             },
+            loading: false,
+            ishowTree: false,
+            search: '',
             transferData: generateData(),
             transferValue: [],
             dialogPush: false,
-            tableData: [
+            tableData: [],
+            tablesData: [
                 {
-                    id: 1,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 2,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
-                },
-                {
-                    id: 3,
-                    groupTypeName: '浜哄憳',
-                    codeView: '缂栫爜瑙嗗浘',
-                    sex: '鎬у埆',
-                    typeName: '铻烘爴',
-                    attributeName: '',
-                    defaultValue: '',
+                    id:'01',
+                    groupTypeName:'鏉庡洓',
+                    codeView:'寮犱笁',
+                    sex:'',
+                    typeName:''
                 }
             ],
             filterText: '',
+            tableRowIndex:null,
+            tableColumnIndex:null,
             optinos: {
                 title: '闆嗗洟灞炴��',
                 maxHeight: '300px',
@@ -182,8 +133,8 @@
                 column: [
                     { label: '灞炴�ч泦鍥㈡灇涓惧��', prop: 'groupTypeName', minWidth: 80, },
                     { label: '闆嗗洟灞炴�ф灇涓炬樉绀哄悕绉�', prop: 'codeView', minWidth: 80 },
-                    { label: 'MDM鏋氫妇鍊�', prop: 'sex', minWidth: 80 },
-                    { label: 'MDM鏋氫妇鏄剧ず鍚嶇О', prop: 'typeName', minWidth: 80, overHidden: true },
+                    { label: 'MDM鏋氫妇鍊�', prop: 'sex', minWidth: 80, cell: true },
+                    { label: 'MDM鏋氫妇鏄剧ず鍚嶇О', prop: 'typeName', minWidth: 80, cell: true },
                 ]
             },
             option: {
@@ -198,89 +149,91 @@
                 emptyBtn: false,
                 searchBtn: false,
                 searchShowBtn: false,
-                cellBtn: true,
+                cellBtn: false,
                 border: true,
                 searchMenuSpan: 8,
                 column: [
-                    {
-                        label: '闆嗗洟鍒嗙被',
-                        prop: 'groupTypeName',
-                        minWidth: 80,
-                        type: "select",
-                        dicUrl: "/api/ubcs-system/dict/dictionary?code=org_category",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        slot: true,
-                        search: true,
-                        rules: [{
-                            message: "璇疯緭鍏ラ泦鍥㈠垎绫诲悕绉�"
-                        }]
-                    },
-                    { label: '鎵�灞炶鍥�', prop: 'codeView', minWidth: 80 },
-                    { label: '闆嗗洟灞炴��', prop: 'sex', minWidth: 80 },
-                    { label: '鍒嗙被鍚嶇О', prop: 'typeName', minWidth: 80, overHidden: true },
-                    { label: '灞炴�у悕绉�', prop: 'attributeName', minWidth: 80, cell: true },
+                    { label: '闆嗗洟鍒嗙被', prop: 'sourceClassifyName', minWidth: 80, },
+                    { label: '鎵�灞炶鍥�', prop: 'viewName', minWidth: 80 },
+                    { label: '闆嗗洟灞炴��', prop: 'sourceAttrName', minWidth: 80 },
+                    { label: '鍒嗙被鍚嶇О', prop: 'targetClassifyName', minWidth: 80, overHidden: true },
+                    { label: '灞炴�у悕绉�', prop: 'targetAttrName', minWidth: 80},
                     { label: '榛樿鍊�', prop: 'defaultValue', minWidth: 140, cell: true },
                 ]
             },
-            treeData: [{
-                id: 1,
-                label: '涓�绾� 1',
-                children: [{
-                    id: 4,
-                    label: '浜岀骇 1-1',
-                    children: [{
-                        id: 9,
-                        label: '涓夌骇 1-1-1'
-                    }, {
-                        id: 10,
-                        label: '涓夌骇 1-1-2'
-                    }]
-                }]
-            }, {
-                id: 2,
-                label: '涓�绾� 2',
-                children: [{
-                    id: 5,
-                    label: '浜岀骇 2-1'
-                }, {
-                    id: 6,
-                    label: '浜岀骇 2-2'
-                }]
-            }, {
-                id: 3,
-                label: '涓�绾� 3',
-                children: [{
-                    id: 7,
-                    label: '浜岀骇 3-1'
-                }, {
-                    id: 8,
-                    label: '浜岀骇 3-2'
-                }]
-            }],
+            treeData: [],
+            groupTreeData: [],
             defaultProps: {
                 children: 'children',
-                label: 'label'
-            }
+                label: 'name',
+                id: 'oid',
+                isLeaf: ''
+            },
+            groupVal: '',
+            treeParam: {}
         }
     },
     watch: {
         filterText(val) {
+            console.log(this.$refs.tree)
             this.$refs.tree.filter(val);
         }
     },
     created() {
+        this.getReferCodeClassifyTree()
         pinyin.setOptions({ checkPolyphone: false, charCase: 1 });
         console.log(pinyin.getFullChars('绠$悊鍛�'))
         console.log(pinyin.getCamelChars('绠$悊鍛�'))
-
     },
     methods: {
+        async getReferCodeClassifyTree() {
+            const param = {
+                parentBtmName: "jclass",
+                valueField: "oid",
+                textField: "name",
+                parentFieldName: "id"
+            }
+            const response = await referCodeClassifyTree(param)
+            console.log(response)
+            if (response.status === 200) {
+                let data = response.data;
+                this.treeData = data.map(item => item.children ? { ...item, ...{ isLeaf: false } } : { ...item, ...{ isLeaf: true } })
+            }
+        },
+        async getlistCodeAttributeByClassId(oid) {
+            this.loading = true
+            console.log(this.treeParam)
+            const response = await gridAttrMapping({ sourceClassifyId: oid, ...this.treeParam })
+            console.log(response)
+            if (response.status === 200) {
+                this.loading = false
+                this.tableData = response.data.data
+            }
+        },
+        async referTree(oid, checked) {
+            this.groupTreeData = []
+            const response = await referTree({ 'conditionMap[codeclsfid]': oid, parentOid: null })
+            console.log(response)
+            if (response.status === 200) {
+                if (checked) {
+                    let items = response.data.map(item => {
+                        let obj = {}
+                        if (item.checked) obj = { ...item }
+                        else obj = null
+                        return obj
+                    })
+                    var r = items.filter(s => { return s && s.trim() });
+                    this.groupTreeData = r
+                } else {
+                    this.groupTreeData = response.data
+                }
+            }
+        },
         filterNode(value, data) {
+            console.log(value)
+            console.log(data)
             if (!value) return true;
-            return data.label.indexOf(value) !== -1;
+            return data.name.indexOf(value) !== -1;
         },
         handleSave() {
 
@@ -291,26 +244,46 @@
         handelLeftCheck(event) {
             console.log(event)
         },
-        addUpdate(event, done) {
-            console.log(event)
-            done()
-        },
-        rowSave(event, done) {
-            console.log(event)
-            done()
-        },
-        handleRowClick(row, event, column) {
-            console.log(row)
-            console.log(event)
-            console.log(column)
+        handelCellRow( {row, column, rowIndex, columnIndex }) {
+            row.index = rowIndex
+            column.index = columnIndex
         },
         handleQuery(event) {
             console.log(event)
             this.form.name = event
         },
-        filterMethod(query, item) {
+        filterMethod(item) {
             return item.pinyins.indexOf(this.form.name) > -1;
         },
+        handelTreeCell(event) {
+            console.log(event)
+            if (event.leaf) {
+                this.treeParam.codeClassifyId = event.oid
+                this.form.groupValue = ''
+                this.groupVal = ''
+                this.tableData = []
+                this.referTree(event.oid, event.checked)
+            }
+        },
+        handleNodeClick(data) {
+            console.log(data)
+            this.form.groupValue = data.name
+            this.groupVal = data.name
+            this.$refs.selectTree.blur()
+            this.getlistCodeAttributeByClassId(data.oid)
+        },
+        handleCellClick(row, column,cell, event) {
+            console.log(row)
+            console.log(column)
+            console.log(cell)
+            console.log(event)
+          this.tableRowIndex = row.index
+          this.tableColumnIndex = column.index
+        },
+        inputBlur() {
+            this.tableColumnIndex = ''
+            this.tableRowIndex = null
+        }
     }
 }
 </script>
@@ -320,6 +293,14 @@
     color: #F56C6C;
 }
 
+.setstyle {
+    min-height: 200px;
+    padding: 0 !important;
+    margin: 0;
+    overflow: auto;
+    cursor: default !important;
+}
+
 /deep/ .el-transfer-panel__list {
     width: 100%;
 }
diff --git a/Source/UBCS-WEB/vue.config.js b/Source/UBCS-WEB/vue.config.js
index d3136dc..7543090 100644
--- a/Source/UBCS-WEB/vue.config.js
+++ b/Source/UBCS-WEB/vue.config.js
@@ -27,7 +27,8 @@
       '/api': {
         //鏈湴鏈嶅姟鎺ュ彛鍦板潃
           target: 'http://localhost:37000',
-        // target: 'http://192.168.3.7:37000',
+        // target: 'http://192.168.1.63:37000',
+        //target: 'http://192.168.3.7:37000',
         //target: 'http://dev.vci-tech.com:37000',
         //target: 'http://192.168.1.51:37000/',
         //杩滅▼婕旂ず鏈嶅姟鍦板潃,鍙敤浜庣洿鎺ュ惎鍔ㄩ」鐩�

--
Gitblit v1.9.3