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