From cf8fff871b28e48a8ae237d963bd8883a2d8ff95 Mon Sep 17 00:00:00 2001 From: chenwenchang <479999519@qq.com> Date: Mon, 13 Jan 2025 16:51:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E5=B7=A5=E5=85=B7=E7=AE=B1?= =?UTF-8?q?=E9=87=8D=E6=9E=84=5F=E5=BA=93=E8=A1=A8=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E3=80=81=E5=85=A8=E5=BA=93=E5=A4=87=E4=BB=BD=20#8076=20#=20Rev?= =?UTF-8?q?iewed,=20transaction=20id:=2029118?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbm-ui/frontend/src/locales/zh-cn.json | 4 +- .../column/db-name-column/Index.vue} | 39 ++- .../column/tag-db-name-column/Index.vue | 300 ++++++++++++++++++ .../form-item/check-group/Index.vue | 26 +- .../TENDBCLUSTER_DB_TABLE_BACKUP/Create.vue | 198 ++++++++++++ .../TENDBCLUSTER_DB_TABLE_BACKUP/Index.vue | 32 ++ .../components/BackupColumn.vue | 113 +++++++ .../components/ClusterColumn.vue | 149 +++++++++ .../TENDBCLUSTER_FULL_BACKUP/Create.vue | 193 +++++++++++ .../TENDBCLUSTER_FULL_BACKUP/Index.vue | 32 ++ .../components/BackupColumn.vue | 117 +++++++ .../components/ClusterColumn.vue | 149 +++++++++ .../TENDBCLUSTER_MASTER_FAIL_OVER/Create.vue | 17 +- .../Create.vue | 17 +- .../TENDBCLUSTER_RENAME_DATABASE/Create.vue | 2 +- .../views/db-manage/tendb-cluster/routes.ts | 18 +- .../db-manage/tendb-cluster/toolbox-menu.ts | 4 +- 17 files changed, 1350 insertions(+), 60 deletions(-) rename dbm-ui/frontend/src/views/db-manage/{tendb-cluster/TENDBCLUSTER_RENAME_DATABASE/components/DbNameColumn.vue => common/toolbox-field/column/db-name-column/Index.vue} (76%) create mode 100644 dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/tag-db-name-column/Index.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_DB_TABLE_BACKUP/Create.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_DB_TABLE_BACKUP/Index.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_DB_TABLE_BACKUP/components/BackupColumn.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_DB_TABLE_BACKUP/components/ClusterColumn.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_FULL_BACKUP/Create.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_FULL_BACKUP/Index.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_FULL_BACKUP/components/BackupColumn.vue create mode 100644 dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_FULL_BACKUP/components/ClusterColumn.vue diff --git a/dbm-ui/frontend/src/locales/zh-cn.json b/dbm-ui/frontend/src/locales/zh-cn.json index 14cc4f8285..e8e39f37b6 100644 --- a/dbm-ui/frontend/src/locales/zh-cn.json +++ b/dbm-ui/frontend/src/locales/zh-cn.json @@ -4022,10 +4022,8 @@ "从资源池选择": "从资源池选择", "还差n台_请先勾选足够的IP": "还差 {n} 台,请先勾选足够的 IP", "已选够n台": "已选够 {n} 台", - "从资源池选择": "从资源池选择", - "还差n台_请先勾选足够的IP": "还差 {n} 台,请先勾选足够的 IP", - "已选够n台": "已选够 {n} 台", "原DB名": "原 DB 名", + "DB已存在": "DB 已存在", "DB不存在": "DB 不存在", "这行勿动!新增翻译请在上一行添加!": "" } diff --git a/dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_RENAME_DATABASE/components/DbNameColumn.vue b/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/db-name-column/Index.vue similarity index 76% rename from dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_RENAME_DATABASE/components/DbNameColumn.vue rename to dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/db-name-column/Index.vue index 7c2e647632..9f783473c0 100644 --- a/dbm-ui/frontend/src/views/db-manage/tendb-cluster/TENDBCLUSTER_RENAME_DATABASE/components/DbNameColumn.vue +++ b/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/db-name-column/Index.vue @@ -83,28 +83,45 @@ trigger: 'change', }, { - validator: async (value: string) => { - if (!_.some(value, (item) => !/[*%]/.test(item))) { + validator: (value: string) => { + if (!props.checkExist) { return true; } - const data = await checkClusterDatabase({ + const clearDbList = _.filter(value, (item) => !/[*%]/.test(item)); + if (clearDbList.length < 1) { + return true; + } + return checkClusterDatabase({ infos: [ { cluster_id: props.clusterId, db_names: [value], }, ], - }); - const isExist = Boolean(data[0]?.check_info[value]); - if (isExist && props.checkExist) { - return t('DB已存在'); + }).then((data) => (data.length > 0 ? data[0].check_info[value] : false)); + }, + message: t('DB不存在'), + trigger: 'blur', + }, + { + validator: (value: string) => { + if (!props.checkNotExist) { + return true; } - if (!isExist && props.checkNotExist) { - return t('DB不存在'); + const clearDbList = _.filter(value, (item) => !/[*%]/.test(item)); + if (clearDbList.length < 1) { + return true; } - return true; + return checkClusterDatabase({ + infos: [ + { + cluster_id: props.clusterId, + db_names: [value], + }, + ], + }).then((data) => (data.length > 0 ? !data[0].check_info[value] : true)); }, - message: '', + message: t('DB已存在'), trigger: 'blur', }, ]; diff --git a/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/tag-db-name-column/Index.vue b/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/tag-db-name-column/Index.vue new file mode 100644 index 0000000000..23b7539a24 --- /dev/null +++ b/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/column/tag-db-name-column/Index.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/form-item/check-group/Index.vue b/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/form-item/check-group/Index.vue index 3bd7c7c812..b8cf9fbd4e 100644 --- a/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/form-item/check-group/Index.vue +++ b/dbm-ui/frontend/src/views/db-manage/common/toolbox-field/form-item/check-group/Index.vue @@ -1,16 +1,16 @@