diff --git a/cmdb-ui/public/iconfont/demo_index.html b/cmdb-ui/public/iconfont/demo_index.html index 4fd6112..8a77542 100644 --- a/cmdb-ui/public/iconfont/demo_index.html +++ b/cmdb-ui/public/iconfont/demo_index.html @@ -5322,9 +5322,9 @@
@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1721640768584') format('woff2'),
-       url('iconfont.woff?t=1721640768584') format('woff'),
-       url('iconfont.ttf?t=1721640768584') format('truetype');
+  src: url('iconfont.woff2?t=1721959219377') format('woff2'),
+       url('iconfont.woff?t=1721959219377') format('woff'),
+       url('iconfont.ttf?t=1721959219377') format('truetype');
 }
 

第二步:定义使用 iconfont 的样式

diff --git a/cmdb-ui/public/iconfont/iconfont.css b/cmdb-ui/public/iconfont/iconfont.css index e05c3d9..a9a234b 100644 --- a/cmdb-ui/public/iconfont/iconfont.css +++ b/cmdb-ui/public/iconfont/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 3857903 */ - src: url('iconfont.woff2?t=1721640768584') format('woff2'), - url('iconfont.woff?t=1721640768584') format('woff'), - url('iconfont.ttf?t=1721640768584') format('truetype'); + src: url('iconfont.woff2?t=1721959219377') format('woff2'), + url('iconfont.woff?t=1721959219377') format('woff'), + url('iconfont.ttf?t=1721959219377') format('truetype'); } .iconfont { diff --git a/cmdb-ui/public/iconfont/iconfont.ttf b/cmdb-ui/public/iconfont/iconfont.ttf index ac43fa7..8ece7fd 100644 Binary files a/cmdb-ui/public/iconfont/iconfont.ttf and b/cmdb-ui/public/iconfont/iconfont.ttf differ diff --git a/cmdb-ui/public/iconfont/iconfont.woff b/cmdb-ui/public/iconfont/iconfont.woff index 8c5808d..1d2f154 100644 Binary files a/cmdb-ui/public/iconfont/iconfont.woff and b/cmdb-ui/public/iconfont/iconfont.woff differ diff --git a/cmdb-ui/public/iconfont/iconfont.woff2 b/cmdb-ui/public/iconfont/iconfont.woff2 index 313fc9b..99e62c0 100644 Binary files a/cmdb-ui/public/iconfont/iconfont.woff2 and b/cmdb-ui/public/iconfont/iconfont.woff2 differ diff --git a/cmdb-ui/src/components/CustomIconSelect/constants.js b/cmdb-ui/src/components/CustomIconSelect/constants.js index 7638a37..8116a8b 100644 --- a/cmdb-ui/src/components/CustomIconSelect/constants.js +++ b/cmdb-ui/src/components/CustomIconSelect/constants.js @@ -905,6 +905,33 @@ export const multicolorIconList = [ value: 'caise-application', label: '应用', list: [{ + value: 'caise-data_center', + label: '数据中心' + }, { + value: 'caise-folder', + label: '文件夹' + }, { + value: 'caise-resource_pool', + label: '资源池' + }, { + value: 'caise-network', + label: '网络' + }, { + value: 'caise-distributed_switch', + label: '分布式交换机' + }, { + value: 'caise-standard_switch', + label: '标准式交换机' + }, { + value: 'caise-host_cluster', + label: '主机集群' + }, { + value: 'caise-storage_cluster', + label: '数据存储集群' + }, { + value: 'caise-data_storage', + label: '数据存储' + }, { value: 'caise-yilianjie', label: '已连接' }, { diff --git a/cmdb-ui/src/modules/cmdb/components/attrMapTable/index.vue b/cmdb-ui/src/modules/cmdb/components/attrMapTable/index.vue index 1a3aa21..815d507 100644 --- a/cmdb-ui/src/modules/cmdb/components/attrMapTable/index.vue +++ b/cmdb-ui/src/modules/cmdb/components/attrMapTable/index.vue @@ -21,15 +21,15 @@ > * - + showSearch + allowClear + :options="ciTypeAttributes" + style="width: 100%; height: 28px; line-height: 28px;" + class="attr-map-table-left-select" + > @@ -49,7 +49,7 @@ > - + diff --git a/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.less b/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.less index ec64712..6245094 100644 --- a/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.less +++ b/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.less @@ -17,7 +17,7 @@ border: 1px solid #d9d9d9; border-radius: 2px; padding: 4px 8px; - width: 100px; + width: auto; text-align: center; .title { font-size: 16px; @@ -73,7 +73,7 @@ } } .root { - width: 100px; + width: auto; border-color: @primary-color; font-weight: 700; padding: 4px 8px; diff --git a/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.vue b/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.vue index b89c573..f57c86a 100644 --- a/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.vue +++ b/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailRelationTopo/index.vue @@ -29,6 +29,10 @@ export default { methods: { init() { const root = document.getElementById('ci-detail-relation-topo') + const canvas = document.createElement('canvas') + const context = canvas.getContext('2d') + context.font = '16px' + this.canvas = new TreeCanvas({ root: root, disLinkable: false, // 可删除连线 @@ -54,7 +58,15 @@ export default { return 10 }, getWidth(d) { - return 40 + const metrics = context.measureText(d?.title || '') + const width = metrics.width + /** + * width 文字宽度 + * 20 icon 宽度 + * 4 盒子内边距 + * 40 节点间距 + */ + return width + 20 + 4 + 40 }, getHGap(d) { return 80 @@ -69,22 +81,27 @@ export default { this.canvas.on('events', ({ type, data }) => { const sourceNode = data?.id || null if (type === 'custom:clickLeft') { - searchCIRelation(`root_id=${Number(sourceNode)}&&level=1&&reverse=1&&count=10000`).then((res) => { + searchCIRelation(`root_id=${Number(sourceNode)}&level=1&reverse=1&count=10000`).then((res) => { this.redrawData(res, sourceNode, 'left') }) } if (type === 'custom:clickRight') { - searchCIRelation(`root_id=${Number(sourceNode)}&&level=1&&reverse=0&&count=10000`).then((res) => { + searchCIRelation(`root_id=${Number(sourceNode)}&level=1&reverse=0&count=10000`).then((res) => { this.redrawData(res, sourceNode, 'right') }) } }) }, setTopoData(data) { + const root = document.getElementById('ci-detail-relation-topo') + if (root && root?.innerHTML) { + root.innerHTML = '' + } this.canvas = null this.init() this.topoData = _.cloneDeep(data) - this.canvas.draw(data, {}, () => { + + this.canvas.redraw(data, {}, () => { this.canvas.focusCenterWithAnimate() }) }, diff --git a/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailTab.vue b/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailTab.vue index 7511f1b..786d9d3 100644 --- a/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailTab.vue +++ b/cmdb-ui/src/modules/cmdb/views/ci/modules/ciDetailTab.vue @@ -28,7 +28,7 @@ {{ $t('cmdb.relation') }}
- +
@@ -181,6 +181,7 @@ export default { hasPermission: true, itsmInstalled: true, tableHeight: this.attributeHistoryTableHeight || (this.$store.state.windowHeight - 120), + initQueryLoading: true, } }, computed: { @@ -218,6 +219,7 @@ export default { }, methods: { async create(ciId, activeTabKey = 'tab_1', ciDetailRelationKey = '1') { + this.initQueryLoading = true this.activeTabKey = activeTabKey if (activeTabKey === 'tab_2') { this.$nextTick(() => { @@ -230,10 +232,13 @@ export default { if (this.hasPermission) { this.getAttributes() this.getCIHistory() - getCITypes().then((res) => { - this.ci_types = res.ci_types - }) + const ciTypeRes = await getCITypes() + this.ci_types = ciTypeRes.ci_types + if (this.activeTabKey === 'tab_2') { + this.$refs.ciDetailRelation.init(true) + } } + this.initQueryLoading = false }, getAttributes() { getCITypeGroupById(this.typeId, { need_other: 1 }) diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/allAttrDrawer.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/allAttrDrawer.vue new file mode 100644 index 0000000..339c945 --- /dev/null +++ b/cmdb-ui/src/modules/cmdb/views/ci_types/allAttrDrawer.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/cidrTags/index.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/cidrTags/index.vue new file mode 100644 index 0000000..9bc195c --- /dev/null +++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/cidrTags/index.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/portScanConfig/index.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/portScanConfig/index.vue new file mode 100644 index 0000000..2729829 --- /dev/null +++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/portScanConfig/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/privateCloud/vcenterForm.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/privateCloud/vcenterForm.vue index 1ead9d1..9f3077b 100644 --- a/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/privateCloud/vcenterForm.vue +++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attrAD/privateCloud/vcenterForm.vue @@ -6,7 +6,7 @@ />
-