From c7d4bec988dd4e65fd2b07e4696ce51a558b9f17 Mon Sep 17 00:00:00 2001 From: dagongren <53748875+wang-liang0615@users.noreply.github.com> Date: Wed, 3 Apr 2024 15:27:54 +0800 Subject: [PATCH] feat(cmdb-ui): attributes relation (#463) --- cmdb-ui/src/assets/logo_VECMDB.png | Bin 8161 -> 35995 bytes .../TwoColumnLayout/TwoColumnLayout.vue | 1 - .../src/modules/cmdb/api/CITypeRelation.js | 5 +- cmdb-ui/src/modules/cmdb/lang/en.js | 9 +- cmdb-ui/src/modules/cmdb/lang/zh.js | 10 +- .../cmdb/views/ci_types/ciTypedetail.vue | 2 +- .../cmdb/views/ci_types/relationTable.vue | 191 ++++++++++++++++-- .../cmdb/views/model_relation/index.vue | 82 +++++++- .../modules/modelRelationTable.vue | 99 ++++++++- .../cmdb/views/preference_relation/index.vue | 2 +- .../relation_views/modules/ContextMenu.vue | 2 +- cmdb-ui/src/style/global.less | 1 + 12 files changed, 360 insertions(+), 44 deletions(-) diff --git a/cmdb-ui/src/assets/logo_VECMDB.png b/cmdb-ui/src/assets/logo_VECMDB.png index 0323b3a69ecc5c68c98d24de2ca0bf5361c95d64..fc733d1bb797a32538f3288c5558d6dcef631631 100644 GIT binary patch literal 35995 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 literal 8161 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 bc~@k&Zf~)Y)w&b%dH~Q+)mA|(S%v-&OR6x$ diff --git a/cmdb-ui/src/components/TwoColumnLayout/TwoColumnLayout.vue b/cmdb-ui/src/components/TwoColumnLayout/TwoColumnLayout.vue index 8dd4f9b..44d888d 100644 --- a/cmdb-ui/src/components/TwoColumnLayout/TwoColumnLayout.vue +++ b/cmdb-ui/src/components/TwoColumnLayout/TwoColumnLayout.vue @@ -59,7 +59,6 @@ export default { width: 100%; .two-column-layout-sidebar { height: 100%; - border-radius: 15px; overflow-y: auto; } .two-column-layout-main { diff --git a/cmdb-ui/src/modules/cmdb/api/CITypeRelation.js b/cmdb-ui/src/modules/cmdb/api/CITypeRelation.js index c812506..70c115e 100644 --- a/cmdb-ui/src/modules/cmdb/api/CITypeRelation.js +++ b/cmdb-ui/src/modules/cmdb/api/CITypeRelation.js @@ -30,11 +30,11 @@ export function getRelationTypes(CITypeID, parameter) { }) } -export function createRelation(parentId, childrenId, relationTypeId, constraint) { +export function createRelation(parentId, childrenId, data) { return axios({ url: `/v0.1/ci_type_relations/${parentId}/${childrenId}`, method: 'post', - data: { relation_type_id: relationTypeId, constraint } + data }) } @@ -42,7 +42,6 @@ export function deleteRelation(parentId, childrenId) { return axios({ url: `/v0.1/ci_type_relations/${parentId}/${childrenId}`, method: 'delete' - }) } diff --git a/cmdb-ui/src/modules/cmdb/lang/en.js b/cmdb-ui/src/modules/cmdb/lang/en.js index ad39212..2f9664f 100644 --- a/cmdb-ui/src/modules/cmdb/lang/en.js +++ b/cmdb-ui/src/modules/cmdb/lang/en.js @@ -187,7 +187,14 @@ const cmdb_en = { downloadType: 'Download CIType', deleteCIType: 'Delete CIType', otherGroupTips: 'Non sortable within the other group', - filterTips: 'click to show {name}' + filterTips: 'click to show {name}', + attributeAssociation: 'Attribute Association', + attributeAssociationTip1: 'Automatically establish relationships through the attributes except password, json and multiple of two models', + attributeAssociationTip2: 'Double click to edit', + attributeAssociationTip3: 'Two Attributes must be selected', + attributeAssociationTip4: 'Please select a attribute from Source CIType', + attributeAssociationTip5: 'Please select a attribute from Target CIType', + }, components: { unselectAttributes: 'Unselected', diff --git a/cmdb-ui/src/modules/cmdb/lang/zh.js b/cmdb-ui/src/modules/cmdb/lang/zh.js index 016346a..e79b1dc 100644 --- a/cmdb-ui/src/modules/cmdb/lang/zh.js +++ b/cmdb-ui/src/modules/cmdb/lang/zh.js @@ -129,7 +129,7 @@ const cmdb_zh = { addRelation: '新增关系', sourceCIType: '源模型', sourceCITypeTips: '请选择源模型', - dstCIType: '目标模型名', + dstCIType: '目标模型', dstCITypeTips: '请选择目标模型', relationType: '关联类型', relationTypeTips: '请选择关联类型', @@ -187,7 +187,13 @@ const cmdb_zh = { downloadType: '下载模型', deleteCIType: '删除模型', otherGroupTips: '其他分组属性不可排序', - filterTips: '点击可仅查看{name}属性' + filterTips: '点击可仅查看{name}属性', + attributeAssociation: '属性关联', + attributeAssociationTip1: '通过2个模型的属性值(除密码、json、多值)来自动建立关系', + attributeAssociationTip2: '双击可编辑', + attributeAssociationTip3: '属性关联必须选择两个属性', + attributeAssociationTip4: '请选择原模型属性', + attributeAssociationTip5: '请选择目标模型属性', }, components: { unselectAttributes: '未选属性', diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/ciTypedetail.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/ciTypedetail.vue index 3f6012e..2b99166 100644 --- a/cmdb-ui/src/modules/cmdb/views/ci_types/ciTypedetail.vue +++ b/cmdb-ui/src/modules/cmdb/views/ci_types/ciTypedetail.vue @@ -4,7 +4,7 @@ - + diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/relationTable.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/relationTable.vue index 5bbd1df..679d7c4 100644 --- a/cmdb-ui/src/modules/cmdb/views/ci_types/relationTable.vue +++ b/cmdb-ui/src/modules/cmdb/views/ci_types/relationTable.vue @@ -15,11 +15,16 @@ :data="tableData" size="small" show-overflow + show-header-overflow highlight-hover-row keep-source - :max-height="windowHeight - 180" + :height="windowHeight - 190" class="ops-stripe-table" :row-class-name="rowClass" + :edit-config="{ trigger: 'dblclick', mode: 'cell', showIcon: false }" + resizable + @edit-closed="handleEditClose" + @edit-actived="handleEditActived" > @@ -40,6 +45,59 @@ {{ constraintMap[row.constraint] }} + + + + + - - + + + + + + + + + diff --git a/cmdb-ui/src/modules/cmdb/views/preference_relation/index.vue b/cmdb-ui/src/modules/cmdb/views/preference_relation/index.vue index a6ecfe2..510aae5 100644 --- a/cmdb-ui/src/modules/cmdb/views/preference_relation/index.vue +++ b/cmdb-ui/src/modules/cmdb/views/preference_relation/index.vue @@ -154,7 +154,7 @@ export default { this.getViewsData() }, async getMainData() { - const ciTypeRelations = await getCITypeRelations() + const { relations: ciTypeRelations } = await getCITypeRelations() const nodes = [] const links = [] ciTypeRelations.forEach((item) => { diff --git a/cmdb-ui/src/modules/cmdb/views/relation_views/modules/ContextMenu.vue b/cmdb-ui/src/modules/cmdb/views/relation_views/modules/ContextMenu.vue index 1c9c8e2..6d2de06 100644 --- a/cmdb-ui/src/modules/cmdb/views/relation_views/modules/ContextMenu.vue +++ b/cmdb-ui/src/modules/cmdb/views/relation_views/modules/ContextMenu.vue @@ -7,7 +7,7 @@ @click="clickNode" > - + diff --git a/cmdb-ui/src/style/global.less b/cmdb-ui/src/style/global.less index dba1ca9..0e9a600 100644 --- a/cmdb-ui/src/style/global.less +++ b/cmdb-ui/src/style/global.less @@ -910,6 +910,7 @@ body { .vue-treeselect__multi-value, .vue-treeselect__multi-value-item { line-height: var(--custom-multiple-lineHeight); + line-height: 18px; } } .custom-treeselect.vue-treeselect--open-below .vue-treeselect__menu {