From 5db4019b73a704d8ecdcf7892e39e6190699846d Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 18 四月 2024 00:05:28 +0800
Subject: [PATCH] 整合前几日代码
---
Source/UBCS-WEB/src/api/vciAttrbute.js | 16 +++
Source/UBCS-WEB/src/views/integration/vciAttribute.vue | 121 ++++++++++++-----------
Source/UBCS-WEB/src/views/integration/integrationIndex.vue | 147 ++++++++++++++++++++++++++---
3 files changed, 210 insertions(+), 74 deletions(-)
diff --git a/Source/UBCS-WEB/src/api/vciAttrbute.js b/Source/UBCS-WEB/src/api/vciAttrbute.js
index 422c466..256dc71 100644
--- a/Source/UBCS-WEB/src/api/vciAttrbute.js
+++ b/Source/UBCS-WEB/src/api/vciAttrbute.js
@@ -26,3 +26,19 @@
data
})
}
+//鑷姩濉厖
+export const getByGroupAttrMapping = (data) => {
+ return request({
+ url: '/api/ubcs-applyjtcodeservice/groupAttrPoolMapping/getByGroupAttrKeyList',
+ method: 'post',
+ data
+ })
+}
+// 鍙栧�艰寖鍥磋嚜鍔ㄥ~鍏�
+export const getEnumAttrByClsOidAndAttrId = (data) => {
+ return request({
+ url: '/api/ubcs-applyjtcodeservice/groupAttrPoolMapping/getEnumAttrByClsOIdAndAttrId',
+ method: 'post',
+ data
+ })
+}
diff --git a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
index 9e77493..5cb52d3 100644
--- a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
+++ b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
@@ -50,6 +50,11 @@
@row-click="handleMapingClick" @row-dblclick="handleMapingRowClick"
@selection-change="selectionChange"
@select-all="handleSelectAll">
+ <template slot="radio"
+ slot-scope="{row}">
+
+ <el-radio v-model="selectRow" :label="row.$index">-</el-radio>
+ </template>
<template slot="menuLeft">
<!-- <el-button :disabled="disabledPush" icon="el-icon-plus" size="small" type="primary"-->
<!-- @click="dialogPush = true">鏂� 澧�-->
@@ -74,7 +79,7 @@
@row-dblclick="handleRowClick">
<template slot="menuLeft">
<el-button icon="el-icon-coordinate" size="small" type="primary"
- @click="handlerAuto">鑷姩濉厖
+ @click="handlerBottomAuto">鑷姩濉厖
</el-button>
</template>
</avue-crud>
@@ -98,7 +103,7 @@
listCodeAttributeByClassId,
syncClassifyModel
} from '@/api/integration/integration.js'
-import {getPage} from "@/api/omd/OmdAttribute";
+import {getByGroupAttrMapping, getEnumAttrByClsOidAndAttrId} from "@/api/vciAttrbute";
export default {
components: {
@@ -122,6 +127,7 @@
highlightCurrentRow: true,
}
return {
+ selectRow: "",
targetNameList: [], // 鍏冩暟鎹繑鍥炲悕绉�
defaultCheckedKeys: [],
isNodeDisabled: true,
@@ -179,7 +185,6 @@
refreshBtn: false,
delBtn: false,
addBtn: false,
- index: true,
columnBtn: false,
searchShow: true,
emptyBtn: false,
@@ -191,6 +196,7 @@
highlightCurrentRow: true,
$cellEdit: true,
column: [
+ {label: '', prop: 'radio', width: 60, hide: false},
{label: '闆嗗洟鍒嗙被', prop: 'sourceClassifyName', minWidth: 80},
{label: '鎵�灞炶鍥�', prop: 'viewName', minWidth: 80},
{label: '闆嗗洟灞炴��', prop: 'sourceAttrName', minWidth: 80},
@@ -245,7 +251,8 @@
mappingForm: {},
// 瀹氭椂鍣�
times: null,
- TreeSelectOid: ""
+ TreeOid: "",
+ tableSelectId: ''
}
},
@@ -277,6 +284,102 @@
}
},
methods: {
+ handlerAuto() {
+ if (!this.TreeOid || this.TreeOid === "") {
+ return;
+ }
+ // 杩囨护鍑洪泦鍥㈠睘鎬х殑key鍊�
+ const groupArray = this.mappingData ? this.mappingData.map(obj => obj.sourceAttrKey) : [];
+ // 鑾峰彇鍒伴渶瑕佽嚜鍔ㄥ~鍏呯殑鍊�
+ getByGroupAttrMapping({classifyId: this.TreeOid, groupAttrKeyList: groupArray})
+ .then(res => {
+ // 鍗曠嫭鎶婅繑鍥炲�肩殑groupAttrKey鏀句竴涓暟缁勶紝鐒跺悗杩囨护鍑鸿繑鍥炲�肩殑groupAttrKey鏄惁绛変簬琛ㄦ牸鏁版嵁涓殑sourceAttrKey
+ // const groupReturnData = res.data && res.data.data ? res.data.data.map(item => item.groupAttrKey) : [];
+ const groupReturnData = res.data.data;
+ // 杩囨护鍖归厤
+ // console.log(groupReturnData)
+ this.mappingData.forEach(mappingItem => {
+ groupReturnData.forEach(groupItem => {
+ if (mappingItem.sourceAttrKey === groupItem.groupAttrKey) {
+ const result = this.transferData.find(obj => obj.id.toLowerCase() === groupItem.codeMetaAttrKey.toLowerCase());
+ if (result) {
+ mappingItem.targetAttrId = groupItem.codeMetaAttrOid.toLowerCase();
+ mappingItem.targetAttrName = groupItem.codeMetaAttrName.toLowerCase();
+ mappingItem.targetAttrKey = groupItem.codeMetaAttrKey.toLowerCase();
+ } else {
+ mappingItem.targetAttrId = '';
+ mappingItem.targetAttrName = '';
+ mappingItem.targetAttrKey = '';
+ }
+ }
+ })
+ })
+ this.$message.success('濉厖鎴愬姛锛�');
+ })
+ .catch(error => {
+ console.log(error)
+ this.$message.error('濉厖澶辫触锛岃绋嶅悗鍐嶈瘯锛�');
+ });
+ },
+ handlerBottomAuto() {
+ if (this.rangeData.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉℃灇涓剧被鍨嬪睘鎬�!')
+ return
+ }
+ getEnumAttrByClsOidAndAttrId({classifyId: this.TreeOid, codeMetaAttrKey: this.tableSelectId}).then(res => {
+ const data = res.data.data;
+ this.rangeData.forEach(rangeItem => {
+ data.forEach(dataItem => {
+ const similarity = this.calculateSimilarity(rangeItem.numText, dataItem.itemName);
+ if (similarity > 70) {
+ rangeItem.targetNumTextValue = rangeItem.numTextValue;
+ rangeItem.targetNumText = dataItem.itemName;
+ }
+ })
+ })
+
+ })
+ },
+ calculateSimilarity(str1, str2) {
+ // 璁$畻缂栬緫璺濈
+ function editDistance(s1, s2) {
+ s1 = s1.toLowerCase();
+ s2 = s2.toLowerCase();
+
+ const costs = [];
+ for (let i = 0; i <= s1.length; i++) {
+ let lastValue = i;
+ for (let j = 0; j <= s2.length; j++) {
+ if (i === 0)
+ costs[j] = j;
+ else {
+ if (j > 0) {
+ let newValue = costs[j - 1];
+ if (s1.charAt(i - 1) !== s2.charAt(j - 1))
+ newValue = Math.min(Math.min(newValue, lastValue),
+ costs[j]) + 1;
+ costs[j - 1] = lastValue;
+ lastValue = newValue;
+ }
+ }
+ }
+ if (i > 0)
+ costs[s2.length] = lastValue;
+ }
+ return costs[s2.length];
+ }
+
+ // 璁$畻鐩镐技搴︾櫨鍒嗘瘮
+ function similarityPercent(s1, s2) {
+ let maxLength = Math.max(s1.length, s2.length);
+ let distance = editDistance(s1, s2);
+ return ((maxLength - distance) / maxLength) * 100;
+ }
+
+ // 璋冪敤鐩镐技搴﹁绠楀嚱鏁板苟杩斿洖鐧惧垎姣斿舰寮忕殑鐩镐技搴�
+ const similarity = similarityPercent(str1, str2);
+ return similarity;
+ },
getTargetName(data) {
this.targetColumn.dicData = data.filter(item => item.name && item.name.trim() !== "") // 杩囨护鎺塶ame涓虹┖鐨勫睘鎬�
.map(item => {
@@ -284,7 +387,7 @@
targetAttrId: item.oid,
targetAttrKey: item.id,
targetAttrName: item.name,
- disabled: false
+ // disabled: false
}
});
},
@@ -312,12 +415,12 @@
this.loading = false
this.mappingData = response.data.data
- 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;
- }
- }
+ // 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;
+ // }
+ // }
}
},
// 鎺ュ彛鑾峰彇灞炴�ф槧灏勫彇鍊艰寖鍥�
@@ -429,11 +532,12 @@
}
for (const item of this.mappingData) {
item.$cellEdit = false;
- if (item.targetAttrName) {
+ if (item.targetAttrName && !item.targetAttrId && !item.targetAttrKey) {
const {targetAttrId, targetAttrKey, targetAttrName} = await getTargetCorresponding(item);
Object.assign(item, {targetAttrId, targetAttrKey, targetAttrName});
}
}
+ this.mappingData[this.selectRow].dockingPreAttrRangeVoList = (this.rangeData)
const response = await batchAddSave({dockingPreAttrMappingVOList: this.mappingData})
if (response.status === 200) {
this.$message({
@@ -484,6 +588,7 @@
},
// 宸︿晶鏍戠偣鍑�
handelTreeCell(event) {
+ this.TreeOid = event.oid;
this.treeParam.codeClassifyId = event.oid
this.form.groupValue = ''
this.groupVal = ''
@@ -517,6 +622,9 @@
},
// 闆嗗洟鏄犲皠灞炴�ц閫夋嫨锛堝崟鍑伙級
handleMapingClick(row) {
+ // console.log(row)
+ this.tableSelectId = row.targetAttrKey || "";
+ this.selectRow = row.$index;
clearTimeout(this.times)
this.mappingForm = row
this.times = setTimeout(() => {
@@ -556,10 +664,15 @@
// 鑾峰彇鐩爣灞炴�т俊鎭�
const {targetAttrId, targetAttrKey, targetAttrName} = await getTargetCorresponding(row);
- // 鏇存柊琛屾暟鎹�
- Object.assign(row, {targetAttrId, targetAttrKey, targetAttrName});
- const response = await batchAddSave({dockingPreAttrMappingVOList: this.mappingData});
+ // 鏇存柊琛屾暟鎹�
+ Object.assign(row, {
+ targetAttrId: targetAttrId.toLowerCase(),
+ targetAttrKey: targetAttrKey.toLowerCase(),
+ targetAttrName: targetAttrName.toLowerCase()
+ });
+
+ const response = await batchAddSave({dockingPreAttrMappingVOList: [row]});
if (response.status === 200) {
this.$message({
@@ -585,12 +698,14 @@
}
},
setCurrentRow(selection, row) {
+ console.log(selection, row)
this.mappingForm = row
this.disabledPush = false
},
handleSelectAll(selection) {
this.$refs.crudMapping.toggleSelection()
- }
+ },
+
}
}
</script>
diff --git a/Source/UBCS-WEB/src/views/integration/vciAttribute.vue b/Source/UBCS-WEB/src/views/integration/vciAttribute.vue
index c07974a..d39551f 100644
--- a/Source/UBCS-WEB/src/views/integration/vciAttribute.vue
+++ b/Source/UBCS-WEB/src/views/integration/vciAttribute.vue
@@ -4,7 +4,7 @@
@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="success" @click="savaHandler">淇濆瓨</el-button>
<el-button plain size="small" type="primary" @click="syncHandler">鍚屾</el-button>
</template>
</avue-crud>
@@ -25,7 +25,7 @@
calcHeight: 20,
headerAlign: "center",
border: true,
- // selection: true,
+ selection: true,
tip: false,
index: true,
refreshBtn: false,
@@ -80,12 +80,7 @@
}
},
created() {
- const params = {
- 'conditionMap[groupAttrKey_like]': 'RY_',
- page: this.page.currentPage,
- limit: this.page.pageSize
- }
- this.onLoad(params)
+ this.onLoad()
this.codeColumnOnload()
},
computed: {
@@ -107,7 +102,11 @@
selectChange(list) {
this.selectList = list;
},
- async onLoad(params) {
+ async onLoad() {
+ const params = {
+ page: this.page.currentPage,
+ limit: this.page.pageSize
+ }
getGroupAttrPoolALlList(params).then(res => {
const data = res.data.data;
this.data = data.records;
@@ -140,18 +139,24 @@
// row.codeMetaAttrName鍥犱负涓嬫媺妗唙alue鍊煎師鍥犵粦瀹氫负codeMetaAttrOid
let updataList = []
+ // console.log(this.ChangeName)
+ // console.log(row.codeMetaAttrName)
+ // if (this.ChangeName && this.ChangeName === row.codeMetaAttrName) {
+ // updataList = this.codeMetaColumn.dicData.find(item => item.codeMetaAttrOid === row.codeMetaAttrOid)
+ // } else {
+ // console.log('2')
+ // updataList = this.codeMetaColumn.dicData.find(item => item.codeMetaAttrOid === row.codeMetaAttrName)
+ // }
+ updataList = this.codeMetaColumn.dicData.find(item => item.codeMetaAttrOid === row.codeMetaAttrName)
- if (this.ChangeName && this.ChangeName === row.codeMetaAttrName) {
- updataList = this.codeMetaColumn.dicData.find(item => item.codeMetaAttrOid === row.codeMetaAttrOid)
- } else {
- if (row.codeMetaAttrName !== "" && row.codeMetaAttrName) {
- updataList = this.codeMetaColumn.dicData.find(item => item.codeMetaAttrOid === row.codeMetaAttrName)
- }
- }
// 鍥犱负row閲岄潰鐨勫�兼槸涓嶆纭殑 閲嶆柊璧嬪�间竴閬�
if (updataList) {
const {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName} = updataList;
- Object.assign(row, {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName});
+ Object.assign(row, {
+ codeMetaAttrOid: codeMetaAttrOid.toLowerCase(),
+ codeMetaAttrKey: codeMetaAttrKey.toLowerCase(),
+ codeMetaAttrName: codeMetaAttrName.toLowerCase()
+ });
}
const objet = {
@@ -162,6 +167,7 @@
codeMetaAttrKey: row.codeMetaAttrKey,
codeMetaAttrName: row.codeMetaAttrName
}
+
const response = await editGroupAttr([objet])
if (response.data.success) {
this.$message.success('淇濆瓨鎴愬姛锛�')
@@ -174,30 +180,41 @@
} else {
const hasTrueValue = this.selectList.some(item => !item.$cellEdit);
if (hasTrueValue) {
- this.$message.warning('璇峰紑鍚紪杈戝悗淇濆瓨锛�')
- } else {
- let saveList = []
- for (const item of this.selectList) {
- console.log(item)
- const updataList = this.codeMetaColumn.dicData.find(p => p.codeMetaAttrOid === item.codeMetaAttrName);
- const {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName} = updataList;
- Object.assign(item, {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName});
- console.log(updataList)
- 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.success) {
- this.$message.success('淇濆瓨鎴愬姛锛�')
- }
+ this.$message.warning('璇峰紑鍚紪杈戝悗杩涜淇濆瓨锛�')
+ return
}
+ const codeMetaInput = this.selectList.some(item => item.codeMetaAttrName === "");
+ if (codeMetaInput) {
+ this.$message.warning('璇锋鏌ュ凡鍕鹃�夋暟鎹腑鏄惁瀛樺湪鏈�夋嫨鐨勯」锛�');
+ return
+ }
+ let saveList = []
+ for (const item of this.selectList) {
+ const updataList = this.codeMetaColumn.dicData.find(column => column.codeMetaAttrOid === item.codeMetaAttrName);
+ if (updataList) {
+ const {codeMetaAttrOid, codeMetaAttrKey, codeMetaAttrName} = updataList;
+ Object.assign(item, {
+ codeMetaAttrOid: codeMetaAttrOid.toLowerCase(),
+ codeMetaAttrKey: codeMetaAttrKey.toLowerCase(),
+ codeMetaAttrName: codeMetaAttrName.toLowerCase()
+ });
+ }
+ 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.success) {
+ this.$message.success('淇濆瓨鎴愬姛锛�')
+ await this.onLoad()
+ }
+
}
},
async syncHandler() {
@@ -214,32 +231,20 @@
const response = await syncGroupAttrMapping(syncList)
if (response.data.success) {
this.$message.success(response.data.msg);
- const params = {
- 'conditionMap[groupAttrKey_like]': 'RY_',
- page: this.page.currentPage,
- limit: this.page.pageSize
- }
- await this.onLoad(params)
+
+ await this.onLoad()
}
}
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
- const params = {
- 'conditionMap[groupAttrKey_like]': 'RY_',
- page: this.page.currentPage,
- limit: this.page.pageSize
- }
- this.onLoad(params)
+
+ this.onLoad()
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
- const params = {
- 'conditionMap[groupAttrKey_like]': 'RY_',
- page: this.page.currentPage,
- limit: this.page.pageSize
- }
- this.onLoad(params)
+
+ this.onLoad()
},
}
}
--
Gitblit v1.9.3