diff --git a/dbm-ui/frontend/src/common/const.ts b/dbm-ui/frontend/src/common/const.ts index 2782e3474..5d5a07b86 100644 --- a/dbm-ui/frontend/src/common/const.ts +++ b/dbm-ui/frontend/src/common/const.ts @@ -28,6 +28,7 @@ export enum DBTypes { INFLUXDB = 'influxdb', SPIDER = 'spider', RIAK = 'riak', + DORIS = 'doris', } export type DBTypesValues = `${DBTypes}`; @@ -61,6 +62,7 @@ export enum ClusterTypes { PULSAE = 'pulsar', INFLUXDB = 'influxdb', RIAK = 'riak', + DORIS = 'doris', } // 机器类型 @@ -149,6 +151,9 @@ export const clusterTypeInfos = { [ClusterTypes.SQLSERVER_SINGLE]: { dbType: DBTypes.SQLSERVER, }, + [ClusterTypes.DORIS]: { + dbType: DBTypes.DORIS, + }, }; export type ClusterTypeInfos = keyof typeof clusterTypeInfos; @@ -336,6 +341,14 @@ export enum TicketTypes { REDIS_INSTANCE_PROXY_OPEN = 'REDIS_INSTANCE_PROXY_OPEN', // redis 主从集群启用 REDIS_INSTANCE_PROXY_CLOSE = 'REDIS_INSTANCE_PROXY_CLOSE', // redis 主从集群禁用 REDIS_INSTANCE_DESTROY = 'REDIS_INSTANCE_DESTROY', // redis 主从集群删除 + DORIS_APPLY = 'DORIS_APPLY', // doris 部署 + DORIS_ENABLE = 'DORIS_ENABLE', // doris 启用 + DORIS_DISABLE = 'DORIS_DISABLE', // doris 禁用 + DORIS_DESTROY = 'DORIS_DESTROY', // doris 删除 + DORIS_REBOOT = 'DORIS_REBOOT', // doris 重启 + DORIS_REPLACE = 'DORIS_REPLACE', // doris 替换 + DORIS_SCALE_UP = 'DORIS_SCALE_UP', // doris 扩容 + DORIS_SHRINK = 'DORIS_SHRINK', // doris 缩容 MYSQL_DUMP_DATA = 'MYSQL_DUMP_DATA', // 数据导出 } export type TicketTypesStrings = keyof typeof TicketTypes; @@ -434,6 +447,11 @@ export const bigDataType = { name: t('Riak集群部署'), type: ClusterTypes.RIAK, }, + [TicketTypes.DORIS_APPLY]: { + id: TicketTypes.DORIS_APPLY, + name: t('Doris集群部署'), + type: ClusterTypes.DORIS, + }, }; export const mongoType = { @@ -534,6 +552,7 @@ export enum UserPersonalSettings { REDIS_HA_INSTANCE_SETTINGS = 'REDIS_HA_INSTANCE_SETTINGS', SQLSERVER_TOOLBOX_MENUS = 'SQLSERVER_TOOLBOX_MENUS', SQLSERVER_TOOLBOX_FAVOR = 'SQLSERVER_TOOLBOX_FAVOR', + DORIS_TABLE_SETTINGS = 'DORIS_TABLE_SETTINGS', } /** diff --git a/dbm-ui/frontend/src/components/bigdata-instance-detail/Index.vue b/dbm-ui/frontend/src/components/bigdata-instance-detail/Index.vue new file mode 100644 index 000000000..6d2038c4d --- /dev/null +++ b/dbm-ui/frontend/src/components/bigdata-instance-detail/Index.vue @@ -0,0 +1,435 @@ + + + + + + + {{ t('基本信息') }} + + + + + + {{ t('实例列表') }} + + + + {{ t('批量重启') }} + + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/components/cluster-common/RenderOperationTagNew.vue b/dbm-ui/frontend/src/components/cluster-common/RenderOperationTagNew.vue index 3561c7c08..7c8a144b9 100644 --- a/dbm-ui/frontend/src/components/cluster-common/RenderOperationTagNew.vue +++ b/dbm-ui/frontend/src/components/cluster-common/RenderOperationTagNew.vue @@ -81,6 +81,22 @@ color: '#FE9C00', background: '#FFF1DB', }, + [t('替换中')]: { + color: '#29AAE8', + background: '#EDFBFF', + }, + [t('扩容中')]: { + color: '#14A568', + background: '#E4FAF0', + }, + [t('重启中')]: { + color: '#3A84FF', + background: '#EDF4FF', + }, + [t('缩容中')]: { + color: '#8E3AFF', + background: '#F2EDFF', + }, }; const rootRef = ref(); @@ -146,6 +162,7 @@ padding: 0 4px; line-height: 16px; cursor: pointer; + border-radius: 2px; .icon-text { display: inline-block; diff --git a/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/Index.vue b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/Index.vue new file mode 100644 index 000000000..9c0d38849 --- /dev/null +++ b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/Index.vue @@ -0,0 +1,111 @@ + + + + + + {{ data.label }} + + {{ data.tagText }} + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/components/HostSelector.vue b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/components/HostSelector.vue new file mode 100644 index 000000000..7631d6afe --- /dev/null +++ b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/components/HostSelector.vue @@ -0,0 +1,187 @@ + + + + + + + + + {{ hostList.length }} + + + {{ calcSelectHostDisk(hostList) }} + + + {{ data.targetDisk - data.totalDisk }} + + + + + + + + + {{ hostTableData.length }} + + + {{ calcSelectHostDisk(hostTableData) }} + + + + + {{ targetMatchReal }} + + + + + {{ Math.abs(targetMatchReal) }} + + + + + + + + diff --git a/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/components/ResourcePoolSelector.vue b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/components/ResourcePoolSelector.vue new file mode 100644 index 000000000..41da7cf42 --- /dev/null +++ b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-expansion/components/ResourcePoolSelector.vue @@ -0,0 +1,204 @@ + + + + + + + + + {{ t('xx节点规格', { name: data.label.toLocaleLowerCase() }) }} + * + + + + + + {{ item.spec_name }} + {{ specCountMap[item.spec_id] }} + + + + + + + + + + + + {{ originalHostNums }} + + * + + + + + + + {{ t('预估容量(以最小配置计算)') }}: + {{ estimateCapacity + data.totalDisk }} + G + + + + + diff --git a/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-shrink/Index.vue b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-shrink/Index.vue new file mode 100644 index 000000000..d0fca86d9 --- /dev/null +++ b/dbm-ui/frontend/src/components/cluster-common/doris-observer-host-shrink/Index.vue @@ -0,0 +1,336 @@ + + + + + + {{ data.label }} + + {{ data.tagText }} + + + + + + {{ data.originalNodeList.length }} + + + + + + + + {{ t('缩容至') }} + + + + + {{ t('台') }} + + , {{ t('共缩容') }} + + {{ data.originalNodeList.length - localTargetDisk }} + + {{ t('台') }} + + + + + {{ t('当前数量') }}: + {{ data.originalNodeList.length }} + {{ t('台') }} + + ,{{ t('至少保留n台', { n: data.minHost }) }} + + + + + + + {{ t('缩容的节点 IP') }} + + {{ t('(默认从节点列表选取,如不满足,可以手动添加)') }} + + + + + + {{ t('请先设置期望容量') }} + + + + + {{ nodeTableData.length }} + + + {{ data.shrinkDisk }} + + + + + + {{ targetMatchReal }} + + + + + {{ Math.abs(targetMatchReal) }} + + + + + + {{ t('手动添加') }} + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/components/cluster-common/es-host-expansion/Index.vue b/dbm-ui/frontend/src/components/cluster-common/es-host-expansion/Index.vue index 39293a617..4b106898c 100644 --- a/dbm-ui/frontend/src/components/cluster-common/es-host-expansion/Index.vue +++ b/dbm-ui/frontend/src/components/cluster-common/es-host-expansion/Index.vue @@ -13,8 +13,13 @@ - - {{ data.label }} + + {{ data.label }} + + {{ data.tagText }} + @@ -69,7 +74,7 @@ - + { - targetDisk.value = ~~value; + targetDisk.value = Math.floor(value); window.changeConfirm = true; }; @@ -189,11 +196,14 @@ font-weight: bold; } - .header { + .header-box { padding: 10px 0; font-size: 14px; - font-weight: bold; color: #313238; + + .header-box-label { + font-weight: bold; + } } .target-content-box { diff --git a/dbm-ui/frontend/src/components/cluster-common/host-expansion/Index.vue b/dbm-ui/frontend/src/components/cluster-common/host-expansion/Index.vue index 250916789..237416033 100644 --- a/dbm-ui/frontend/src/components/cluster-common/host-expansion/Index.vue +++ b/dbm-ui/frontend/src/components/cluster-common/host-expansion/Index.vue @@ -13,8 +13,13 @@ - - {{ data.label }} + + {{ data.label }} + + {{ data.tagText }} + @@ -69,7 +74,7 @@ - + { - targetDisk.value = ~~value; + targetDisk.value = Math.floor(value); window.changeConfirm = true; }; @@ -188,11 +195,14 @@ font-weight: bold; } - .header { + .header-box { padding: 10px 0; font-size: 14px; - font-weight: bold; color: #313238; + + .header-box-label { + font-weight: bold; + } } .target-content-box { diff --git a/dbm-ui/frontend/src/components/cluster-common/host-expansion/NodeStatusList.vue b/dbm-ui/frontend/src/components/cluster-common/host-expansion/NodeStatusList.vue index dfcce16cc..4618d1bcb 100644 --- a/dbm-ui/frontend/src/components/cluster-common/host-expansion/NodeStatusList.vue +++ b/dbm-ui/frontend/src/components/cluster-common/host-expansion/NodeStatusList.vue @@ -24,11 +24,27 @@ + {{ + nodeInfo[nodeItem.key].resourceSpec.count - nodeInfo[nodeItem.key].originalHostList.length + }} + {{ t('台') }} + + {{ nodeInfo[nodeItem.key].expansionDisk }} G + + {{ t('未完善') }} + @@ -42,6 +58,8 @@ import { reactive } from 'vue'; import { useI18n } from 'vue-i18n'; + import DorisNodeModel from '@services/model/doris/doris-node'; + import type { TExpansionNode } from './Index.vue'; interface Props { @@ -83,7 +101,7 @@ validate() { Object.keys(validateStatusMemo).forEach((key) => (validateStatusMemo[key] = true)); return Object.values(props.nodeInfo).some((nodeData) => { - if (!nodeData.targetDisk) { + if (!nodeData.targetDisk && nodeData.role !== DorisNodeModel.ROLE_OBSERVER) { return false; } if (props.ipSource === 'manual_input') { @@ -141,6 +159,13 @@ flex: 0 0 auto; } + .unfinished-tips { + margin-left: auto; + font-weight: normal; + color: #ea3636; + flex: 0 0 auto; + } + .disk-tips { margin-left: auto; font-weight: normal; diff --git a/dbm-ui/frontend/src/components/cluster-common/host-replace/Index.vue b/dbm-ui/frontend/src/components/cluster-common/host-replace/Index.vue index 50878913e..ed029826b 100644 --- a/dbm-ui/frontend/src/components/cluster-common/host-replace/Index.vue +++ b/dbm-ui/frontend/src/components/cluster-common/host-replace/Index.vue @@ -110,10 +110,13 @@ diff --git a/dbm-ui/frontend/src/components/system-search/hooks/useRedirect.ts b/dbm-ui/frontend/src/components/system-search/hooks/useRedirect.ts index 80bb479c0..a5340297f 100644 --- a/dbm-ui/frontend/src/components/system-search/hooks/useRedirect.ts +++ b/dbm-ui/frontend/src/components/system-search/hooks/useRedirect.ts @@ -36,6 +36,7 @@ export const useRedirect = () => { sqlserver_single: 'SqlServerSingle', MongoShardedCluster: 'MongoDBSharedClusterList', MongoReplicaSet: 'MongoDBReplicaSetList', + doris: 'DorisList', } as Record; return (clusterType: string, queryParams: Record, bizId: number) => { diff --git a/dbm-ui/frontend/src/layout/Index.vue b/dbm-ui/frontend/src/layout/Index.vue index 3ccd9e1c0..ed317a549 100644 --- a/dbm-ui/frontend/src/layout/Index.vue +++ b/dbm-ui/frontend/src/layout/Index.vue @@ -133,6 +133,7 @@ 'RiakManage', 'MongoDBManage', 'SqlServerManage', + 'DorisManage', 'taskHistory', 'DatabaseWhitelist', 'ticketManage', diff --git a/dbm-ui/frontend/src/layout/components/database-manage/components/ModuleConfig.vue b/dbm-ui/frontend/src/layout/components/database-manage/components/ModuleConfig.vue index 974a7b96e..e3c7448fb 100644 --- a/dbm-ui/frontend/src/layout/components/database-manage/components/ModuleConfig.vue +++ b/dbm-ui/frontend/src/layout/components/database-manage/components/ModuleConfig.vue @@ -172,6 +172,11 @@ value: 'hdfs', icon: 'hdfs', }, + { + name: 'Doris', + value: 'doris', + icon: 'doris', + }, ], }; diff --git a/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Doris.vue b/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Doris.vue new file mode 100644 index 000000000..876a67052 --- /dev/null +++ b/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Doris.vue @@ -0,0 +1,24 @@ + + + + + + + + + {{ t('集群管理') }} + + + + + + + diff --git a/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Index.vue b/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Index.vue index 7fbda0794..5114016e6 100644 --- a/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Index.vue +++ b/dbm-ui/frontend/src/layout/components/database-manage/components/module-group/Index.vue @@ -4,6 +4,7 @@ + diff --git a/dbm-ui/frontend/src/views/doris-manage/common/expansion/Index.vue b/dbm-ui/frontend/src/views/doris-manage/common/expansion/Index.vue new file mode 100644 index 000000000..04b35def5 --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/common/expansion/Index.vue @@ -0,0 +1,473 @@ + + + + + + + + {{ t('资源池自动匹配') }} + + + {{ t('手动选择') }} + + + + + + + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/common/replace/Index.vue b/dbm-ui/frontend/src/views/doris-manage/common/replace/Index.vue new file mode 100644 index 000000000..e79516312 --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/common/replace/Index.vue @@ -0,0 +1,444 @@ + + + + + + + + {{ t('资源池自动匹配') }} + + + {{ t('手动选择') }} + + + + + {{ t('热节点') }} + + + + + + {{ t('冷节点') }} + + + + + + {{ t('Observer节点') }} + + + + + + {{ t('Follower节点') }} + + + + + + + + + {{ t('请先返回列表选择要替换的节点 IP') }} + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/common/shrink/Index.vue b/dbm-ui/frontend/src/views/doris-manage/common/shrink/Index.vue new file mode 100644 index 000000000..7e0a03e76 --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/common/shrink/Index.vue @@ -0,0 +1,433 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/list/Index.vue b/dbm-ui/frontend/src/views/doris-manage/list/Index.vue new file mode 100644 index 000000000..d5760dfc8 --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/list/Index.vue @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/list/components/detail/Index.vue b/dbm-ui/frontend/src/views/doris-manage/list/components/detail/Index.vue new file mode 100644 index 000000000..8f5507fc6 --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/list/components/detail/Index.vue @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/list/components/detail/components/BaseInfo.vue b/dbm-ui/frontend/src/views/doris-manage/list/components/detail/components/BaseInfo.vue new file mode 100644 index 000000000..71a8a3582 --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/list/components/detail/components/BaseInfo.vue @@ -0,0 +1,35 @@ + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/list/components/detail/components/node-list/Index.vue b/dbm-ui/frontend/src/views/doris-manage/list/components/detail/components/node-list/Index.vue new file mode 100644 index 000000000..55eb4326d --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/list/components/detail/components/node-list/Index.vue @@ -0,0 +1,725 @@ + + + + + + + + {{ t('扩容') }} + + + + + + {{ t('缩容') }} + + + + + + + {{ t('替换') }} + + + + (isCopyDropdown = false)" + @show="() => (isCopyDropdown = true)"> + + {{ t('复制IP') }} + + + + + + handleCopyIp(tableData)"> + {{ t('复制全部IP') }} + + + + handleCopyIp(abnormalNodeList)"> + {{ t('复制异常IP') }} + + + + handleCopyIp(Object.values(checkedNodeMap))"> + {{ t('复制已选IP') }} + + + + + + + + + + {{ operationData?.operationStatusText }} + + {{ t('我的服务单') }} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/list/components/list/Index.vue b/dbm-ui/frontend/src/views/doris-manage/list/components/list/Index.vue new file mode 100644 index 000000000..a52d054bd --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/list/components/list/Index.vue @@ -0,0 +1,1054 @@ + + + + + + + {{ t('申请实例') }} + + + + + + + + + + + + + + + + + + + {{ t('关闭') }} + + + + + + + + + + + diff --git a/dbm-ui/frontend/src/views/doris-manage/routes.ts b/dbm-ui/frontend/src/views/doris-manage/routes.ts new file mode 100644 index 000000000..a3b337f9b --- /dev/null +++ b/dbm-ui/frontend/src/views/doris-manage/routes.ts @@ -0,0 +1,47 @@ +/* + * TencentBlueKing is pleased to support the open source community by making 蓝鲸智云-DB管理系统(BlueKing-BK-DBM) available. + * + * Copyright (C) 2017-2023 THL A29 Limited, a Tencent company. All rights reserved. + * + * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for + * the specific language governing permissions and limitations under the License. + */ + +import type { RouteRecordRaw } from 'vue-router'; + +import type { BigdataFunctions } from '@services/model/function-controller/functionController'; + +import { t } from '@locales/index'; + +const routes: RouteRecordRaw[] = [ + { + name: 'DorisManage', + path: 'doris-manage', + meta: { + navName: t('【Doris】集群管理'), + }, + redirect: { + name: 'DorisList', + }, + component: () => import('@views/doris-manage/Index.vue'), + children: [ + { + name: 'DorisList', + path: 'list', + meta: { + navName: t('【Doris】集群管理'), + fullscreen: true, + }, + component: () => import('@views/doris-manage/list/Index.vue'), + }, + ], + }, +]; + +export default function getRoutes(controller: Record) { + return controller.doris ? routes : []; +} diff --git a/dbm-ui/frontend/src/views/es-manage/common/expansion/Index.vue b/dbm-ui/frontend/src/views/es-manage/common/expansion/Index.vue index b2b3f99ee..828ccd8f9 100644 --- a/dbm-ui/frontend/src/views/es-manage/common/expansion/Index.vue +++ b/dbm-ui/frontend/src/views/es-manage/common/expansion/Index.vue @@ -140,6 +140,7 @@ count: 1, instance_num: 1, }, + tagText: t('存储层') }, cold: { label: '冷节点', @@ -158,6 +159,7 @@ count: 1, instance_num: 1, }, + tagText: t('存储层') }, client: { label: 'Client 节点', @@ -176,6 +178,7 @@ count: 1, instance_num: 1, }, + tagText: t('接入层') }, }); diff --git a/dbm-ui/frontend/src/views/es-manage/common/shrink/Index.vue b/dbm-ui/frontend/src/views/es-manage/common/shrink/Index.vue index dff5fc5f7..2f6ddd28e 100644 --- a/dbm-ui/frontend/src/views/es-manage/common/shrink/Index.vue +++ b/dbm-ui/frontend/src/views/es-manage/common/shrink/Index.vue @@ -112,6 +112,7 @@ targetDisk: 0, shrinkDisk: 0, minHost: 0, + tagText: t('存储层') }, cold: { label: t('冷节点'), @@ -121,6 +122,7 @@ targetDisk: 0, shrinkDisk: 0, minHost: 0, + tagText: t('存储层') }, client: { label: 'Client', @@ -130,6 +132,7 @@ targetDisk: 0, shrinkDisk: 0, minHost: 0, + tagText: t('接入层') }, }); diff --git a/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/Index.vue b/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/Index.vue index 0b72f6d4d..2cfd121a5 100644 --- a/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/Index.vue +++ b/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/Index.vue @@ -165,9 +165,10 @@ :show-footer="false" :title="t('节点详情')" :width="960"> - @@ -190,6 +191,7 @@ import { ClusterTypes } from '@common/const'; + import BigdataInstanceDetail from '@components/bigdata-instance-detail/Index.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderClusterRole from '@components/cluster-common/RenderRole.vue'; import RenderHostStatus from '@components/render-host-status/Index.vue'; @@ -206,7 +208,7 @@ import { useTimeoutPoll } from '@vueuse/core'; - import InstanceDetail from './components/InstanceDetail.vue'; + // import InstanceDetail from './components/InstanceDetail.vue'; interface Props { clusterId: number; diff --git a/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/components/InstanceDetail.vue b/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/components/InstanceDetail.vue index 495479b4d..af80996ca 100644 --- a/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/components/InstanceDetail.vue +++ b/dbm-ui/frontend/src/views/es-manage/list/components/detail/components/node-list/components/InstanceDetail.vue @@ -53,7 +53,7 @@ import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderInstanceStatus from '@components/cluster-common/RenderInstanceStatus.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import { useTimeoutPoll } from '@vueuse/core'; diff --git a/dbm-ui/frontend/src/views/es-manage/list/components/list/Index.vue b/dbm-ui/frontend/src/views/es-manage/list/components/list/Index.vue index 241abe492..4c2b23a75 100644 --- a/dbm-ui/frontend/src/views/es-manage/list/components/list/Index.vue +++ b/dbm-ui/frontend/src/views/es-manage/list/components/list/Index.vue @@ -132,7 +132,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderNodeInstance from '@components/cluster-common/RenderNodeInstance.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import RenderPassword from '@components/cluster-common/RenderPassword.vue'; import RenderClusterStatus from '@components/cluster-common/RenderStatus.vue'; import EditEntryConfig from '@components/cluster-entry-config/Index.vue'; @@ -365,11 +365,15 @@ { data.operationTagTips.map(item => ) } - + { + !data.isOnline && !data.isStarting && ( + + {t('已禁用')} + + ) + } { isRecentDays(data.create_at, 24 * 3) && diff --git a/dbm-ui/frontend/src/views/hdfs-manage/common/expansion/Index.vue b/dbm-ui/frontend/src/views/hdfs-manage/common/expansion/Index.vue index c41bbf96f..e0aa6fd0b 100644 --- a/dbm-ui/frontend/src/views/hdfs-manage/common/expansion/Index.vue +++ b/dbm-ui/frontend/src/views/hdfs-manage/common/expansion/Index.vue @@ -121,6 +121,7 @@ spec_id: 0, count: 1, }, + tagText: t('存储层') }, }); diff --git a/dbm-ui/frontend/src/views/hdfs-manage/common/shrink/Index.vue b/dbm-ui/frontend/src/views/hdfs-manage/common/shrink/Index.vue index ed0e83f5a..84c424490 100644 --- a/dbm-ui/frontend/src/views/hdfs-manage/common/shrink/Index.vue +++ b/dbm-ui/frontend/src/views/hdfs-manage/common/shrink/Index.vue @@ -105,6 +105,7 @@ shrinkDisk: 0, // 最小主机数 minHost: 2, + tagText: t('存储层') }, }); diff --git a/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/Index.vue b/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/Index.vue index 739384e6e..99aea6a87 100644 --- a/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/Index.vue +++ b/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/Index.vue @@ -159,8 +159,10 @@ :show-footer="false" :title="t('节点详情')" :width="960"> - @@ -183,6 +185,7 @@ import { ClusterTypes } from '@common/const'; + import BigdataInstanceDetail from '@components/bigdata-instance-detail/Index.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderClusterRole from '@components/cluster-common/RenderRole.vue'; import RenderHostStatus from '@components/render-host-status/Index.vue'; @@ -199,7 +202,7 @@ import { useTimeoutPoll } from '@vueuse/core'; - import InstanceDetail from './components/InstanceDetail.vue'; + // import InstanceDetail from './components/InstanceDetail.vue'; interface Props { clusterId: number; diff --git a/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/components/InstanceDetail.vue b/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/components/InstanceDetail.vue index 3d224c277..08926320a 100644 --- a/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/components/InstanceDetail.vue +++ b/dbm-ui/frontend/src/views/hdfs-manage/list/components/detail/components/node-list/components/InstanceDetail.vue @@ -51,7 +51,7 @@ import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderInstanceStatus from '@components/cluster-common/RenderInstanceStatus.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import { useTimeoutPoll } from '@vueuse/core'; diff --git a/dbm-ui/frontend/src/views/hdfs-manage/list/components/list/Index.vue b/dbm-ui/frontend/src/views/hdfs-manage/list/components/list/Index.vue index a515e4f1a..0d862b9a9 100644 --- a/dbm-ui/frontend/src/views/hdfs-manage/list/components/list/Index.vue +++ b/dbm-ui/frontend/src/views/hdfs-manage/list/components/list/Index.vue @@ -141,7 +141,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderNodeInstance from '@components/cluster-common/RenderNodeInstance.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import RenderPassword from '@components/cluster-common/RenderPassword.vue'; import RenderClusterStatus from '@components/cluster-common/RenderStatus.vue'; import EditEntryConfig from '@components/cluster-entry-config/Index.vue'; @@ -380,11 +380,15 @@ { data.operationTagTips.map(item => ) } - + { + data.isOffline && ( + + {t('已禁用')} + + ) + } { isRecentDays(data.create_at, 24 * 3) && diff --git a/dbm-ui/frontend/src/views/influxdb-manage/instance-list/components/render-list/Index.vue b/dbm-ui/frontend/src/views/influxdb-manage/instance-list/components/render-list/Index.vue index 9a72877f5..7a9b3d348 100644 --- a/dbm-ui/frontend/src/views/influxdb-manage/instance-list/components/render-list/Index.vue +++ b/dbm-ui/frontend/src/views/influxdb-manage/instance-list/components/render-list/Index.vue @@ -167,7 +167,7 @@ import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderInstanceStatus from '@components/cluster-common/RenderInstanceStatus.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import DropdownExportExcel from '@components/dropdown-export-excel/index.vue'; import TextOverflowLayout from '@components/text-overflow-layout/Index.vue'; @@ -323,12 +323,15 @@ { data.operationTagTips.map(item => ) } - + { + !data.isOnline && !data.isStarting && ( + + {t('已禁用')} + + ) + } { data.isNew && ( diff --git a/dbm-ui/frontend/src/views/kafka-manage/common/expansion/Index.vue b/dbm-ui/frontend/src/views/kafka-manage/common/expansion/Index.vue index 7c1b32cc2..a1629655a 100644 --- a/dbm-ui/frontend/src/views/kafka-manage/common/expansion/Index.vue +++ b/dbm-ui/frontend/src/views/kafka-manage/common/expansion/Index.vue @@ -121,6 +121,7 @@ spec_id: 0, count: 1, }, + tagText: t('存储层') }, }); diff --git a/dbm-ui/frontend/src/views/kafka-manage/common/shrink/Index.vue b/dbm-ui/frontend/src/views/kafka-manage/common/shrink/Index.vue index 1f446af72..d0dde4aa1 100644 --- a/dbm-ui/frontend/src/views/kafka-manage/common/shrink/Index.vue +++ b/dbm-ui/frontend/src/views/kafka-manage/common/shrink/Index.vue @@ -104,6 +104,7 @@ // 实际选择的缩容主机容量 shrinkDisk: 0, minHost: 1, + tagText: t('存储层') }, }); diff --git a/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/Index.vue b/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/Index.vue index 7445dcd35..ee5c9243d 100644 --- a/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/Index.vue +++ b/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/Index.vue @@ -166,9 +166,10 @@ :show-footer="false" :title="t('节点详情')" :width="960"> - @@ -189,8 +190,9 @@ import { useGlobalBizs } from '@stores'; - import { ClusterTypes } from '@common/const'; + import { ClusterTypes } from '@common/const' + import BigdataInstanceDetail from '@components/bigdata-instance-detail/Index.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderClusterRole from '@components/cluster-common/RenderRole.vue'; import RenderHostStatus from '@components/render-host-status/Index.vue'; @@ -207,7 +209,7 @@ import { useTimeoutPoll } from '@vueuse/core'; - import InstanceDetail from './components/InstanceDetail.vue'; + // import InstanceDetail from './components/InstanceDetail.vue'; interface Props { clusterId: number; diff --git a/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/components/InstanceDetail.vue b/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/components/InstanceDetail.vue index 6a1e8e88c..04f9b4439 100644 --- a/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/components/InstanceDetail.vue +++ b/dbm-ui/frontend/src/views/kafka-manage/list/components/detail/components/node-list/components/InstanceDetail.vue @@ -53,7 +53,7 @@ import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderInstanceStatus from '@components/cluster-common/RenderInstanceStatus.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import { useTimeoutPoll } from '@vueuse/core'; diff --git a/dbm-ui/frontend/src/views/kafka-manage/list/components/list/Index.vue b/dbm-ui/frontend/src/views/kafka-manage/list/components/list/Index.vue index d4fb36d00..e135b5ab6 100644 --- a/dbm-ui/frontend/src/views/kafka-manage/list/components/list/Index.vue +++ b/dbm-ui/frontend/src/views/kafka-manage/list/components/list/Index.vue @@ -131,7 +131,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderNodeInstance from '@components/cluster-common/RenderNodeInstance.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import RenderPassword from '@components/cluster-common/RenderPassword.vue'; import RenderClusterStatus from '@components/cluster-common/RenderStatus.vue'; import EditEntryConfig from '@components/cluster-entry-config/Index.vue'; @@ -349,34 +349,47 @@ minWidth: 200, fixed: 'left', showOverflowTooltip: false, - render: ({ data }: {data: KafkaModel}) => ( + render: ({ data }: { data: KafkaModel }) => ( {{ default: () => ( - - - {data.cluster_name} - - {data.cluster_alias || '--'} - + + {data.cluster_name} + + {data.cluster_alias || '--'} + + ), + append: () => ( + <> { data.operationTagTips.map(item => ) } + { + data.isOffline && !data.isStarting && ( + + {t('已禁用')} + + ) + } + { + data.isNew && ( + + NEW + + ) + } - {data.isNew && } - - ), - append: () => ( - copy(data.cluster_name)} /> + v-bk-tooltips={t('复制集群名称')} + type="copy" + class="mt-2" + onClick={() => copy(data.cluster_name)} /> + > ) }} diff --git a/dbm-ui/frontend/src/views/mongodb-manage/mongodb-instance/list/index.vue b/dbm-ui/frontend/src/views/mongodb-manage/mongodb-instance/list/index.vue index 3622e4bc3..ccc41965b 100644 --- a/dbm-ui/frontend/src/views/mongodb-manage/mongodb-instance/list/index.vue +++ b/dbm-ui/frontend/src/views/mongodb-manage/mongodb-instance/list/index.vue @@ -83,6 +83,7 @@ } from '@common/const'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import DbStatus from '@components/db-status/index.vue'; import DropdownExportExcel from '@components/dropdown-export-excel/index.vue'; @@ -206,13 +207,11 @@ { - data.isRebooting && ( - - ) + data.operationTagTips.map(item => ( + + )) } ), diff --git a/dbm-ui/frontend/src/views/mongodb-manage/replica-set-list/components/list/Index.vue b/dbm-ui/frontend/src/views/mongodb-manage/replica-set-list/components/list/Index.vue index ef81852f1..ce9fb00aa 100644 --- a/dbm-ui/frontend/src/views/mongodb-manage/replica-set-list/components/list/Index.vue +++ b/dbm-ui/frontend/src/views/mongodb-manage/replica-set-list/components/list/Index.vue @@ -115,7 +115,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import ExcelAuthorize from '@components/cluster-common/ExcelAuthorize.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import RenderClusterStatus from '@components/cluster-common/RenderStatus.vue'; import DbTable from '@components/db-table/index.vue'; import DropdownExportExcel from '@components/dropdown-export-excel/index.vue'; @@ -307,11 +307,12 @@ )) } { - data.isDisabled && ( - + data.isOffline && ( + + {t('已禁用')} + ) } > diff --git a/dbm-ui/frontend/src/views/mongodb-manage/shared-cluster-list/components/list/Index.vue b/dbm-ui/frontend/src/views/mongodb-manage/shared-cluster-list/components/list/Index.vue index 915b27b79..dd3f90fec 100644 --- a/dbm-ui/frontend/src/views/mongodb-manage/shared-cluster-list/components/list/Index.vue +++ b/dbm-ui/frontend/src/views/mongodb-manage/shared-cluster-list/components/list/Index.vue @@ -132,7 +132,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import ExcelAuthorize from '@components/cluster-common/ExcelAuthorize.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import RenderClusterStatus from '@components/cluster-common/RenderStatus.vue'; import DbTable from '@components/db-table/index.vue'; import DropdownExportExcel from '@components/dropdown-export-excel/index.vue'; @@ -298,11 +298,12 @@ )) } { - data.isDisabled && ( - + data.isOffline && ( + + {t('已禁用')} + ) } > diff --git a/dbm-ui/frontend/src/views/mysql/ha-cluster-list/components/List.vue b/dbm-ui/frontend/src/views/mysql/ha-cluster-list/components/List.vue index 3c2dde2f2..f20aff244 100644 --- a/dbm-ui/frontend/src/views/mysql/ha-cluster-list/components/List.vue +++ b/dbm-ui/frontend/src/views/mysql/ha-cluster-list/components/List.vue @@ -150,7 +150,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import ExcelAuthorize from '@components/cluster-common/ExcelAuthorize.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import EditEntryConfig from '@components/cluster-entry-config/Index.vue'; import ClusterExportData from '@components/cluster-export-data/Index.vue' import DbStatus from '@components/db-status/index.vue'; @@ -399,11 +399,11 @@ } { data.isOffline && !data.isStarting && ( - + + {t('已禁用')} + ) } { diff --git a/dbm-ui/frontend/src/views/mysql/partition-manage/Index.vue b/dbm-ui/frontend/src/views/mysql/partition-manage/Index.vue index d2a55be23..d779b90de 100644 --- a/dbm-ui/frontend/src/views/mysql/partition-manage/Index.vue +++ b/dbm-ui/frontend/src/views/mysql/partition-manage/Index.vue @@ -136,11 +136,11 @@ } { data.isOffline && ( - + + {t('已禁用')} + ) } diff --git a/dbm-ui/frontend/src/views/mysql/single-cluster-list/components/List.vue b/dbm-ui/frontend/src/views/mysql/single-cluster-list/components/List.vue index 3e830a49a..6d8b64e2a 100644 --- a/dbm-ui/frontend/src/views/mysql/single-cluster-list/components/List.vue +++ b/dbm-ui/frontend/src/views/mysql/single-cluster-list/components/List.vue @@ -134,7 +134,7 @@ import ClusterCapacityUsageRate from '@components/cluster-capacity-usage-rate/Index.vue' import ExcelAuthorize from '@components/cluster-common/ExcelAuthorize.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; - import RenderOperationTag from '@components/cluster-common/RenderOperationTag.vue'; + import RenderOperationTag from '@components/cluster-common/RenderOperationTagNew.vue'; import EditEntryConfig from '@components/cluster-entry-config/Index.vue'; import ClusterExportData from '@components/cluster-export-data/Index.vue' import DbStatus from '@components/db-status/index.vue'; @@ -357,11 +357,11 @@ } { data.isOffline && !data.isStarting && ( - + + {t('已禁用')} + ) } { diff --git a/dbm-ui/frontend/src/views/pulsar-manage/common/expansion/Index.vue b/dbm-ui/frontend/src/views/pulsar-manage/common/expansion/Index.vue index c4a0f03d7..fe0e1146c 100644 --- a/dbm-ui/frontend/src/views/pulsar-manage/common/expansion/Index.vue +++ b/dbm-ui/frontend/src/views/pulsar-manage/common/expansion/Index.vue @@ -135,6 +135,7 @@ spec_id: 0, count: 1, }, + tagText: t('接入层') }, bookkeeper: { label: 'Bookkeeper', @@ -152,6 +153,7 @@ spec_id: 0, count: 1, }, + tagText: t('存储层') }, }); diff --git a/dbm-ui/frontend/src/views/pulsar-manage/common/shrink/Index.vue b/dbm-ui/frontend/src/views/pulsar-manage/common/shrink/Index.vue index 493cb6389..c5828fc1c 100644 --- a/dbm-ui/frontend/src/views/pulsar-manage/common/shrink/Index.vue +++ b/dbm-ui/frontend/src/views/pulsar-manage/common/shrink/Index.vue @@ -111,6 +111,7 @@ // 实际选择的缩容主机容量 shrinkDisk: 0, minHost: 1, + tagText: t('接入层') }, bookkeeper: { label: 'Bookkeeper', @@ -120,6 +121,7 @@ targetDisk: 0, shrinkDisk: 0, minHost: 2, + tagText: t('存储层') }, }); diff --git a/dbm-ui/frontend/src/views/pulsar-manage/list/components/detail/components/node-list/Index.vue b/dbm-ui/frontend/src/views/pulsar-manage/list/components/detail/components/node-list/Index.vue index 361c612aa..ba6dcdd34 100644 --- a/dbm-ui/frontend/src/views/pulsar-manage/list/components/detail/components/node-list/Index.vue +++ b/dbm-ui/frontend/src/views/pulsar-manage/list/components/detail/components/node-list/Index.vue @@ -165,10 +165,12 @@ :show-footer="false" :title="t('节点详情')" :width="960"> - + :cluster-type="ClusterTypes.PULSAE" + :data="operationNodeData" + @close="handleClose" /> @@ -189,6 +191,7 @@ import { ClusterTypes } from '@common/const'; + import BigdataInstanceDetail from '@components/bigdata-instance-detail/Index.vue'; import OperationBtnStatusTips from '@components/cluster-common/OperationBtnStatusTips.vue'; import RenderClusterRole from '@components/cluster-common/RenderRole.vue'; import RenderHostStatus from '@components/render-host-status/Index.vue'; @@ -204,7 +207,7 @@ import { useTimeoutPoll } from '@vueuse/core'; - import InstanceDetail from './components/InstanceDetail.vue'; + // import InstanceDetail from './components/InstanceDetail.vue'; interface Props { clusterId: number; @@ -653,6 +656,10 @@ isShowDetail.value = true; operationNodeData.value = data; }; + + const handleClose = () => { + isShowDetail.value = false; + };