({
getValue() {
- return editRef.value
- .getValue()
- .then(() => (localClusterId.value));
+ return editRef.value.getValue().then(() => localClusterId.value);
},
});
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-backup/pages/page1/components/RenderData/RenderRow.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-backup/pages/page1/components/RenderData/RenderRow.vue
index 0a1abb35ca..dfb3c0c088 100644
--- a/dbm-ui/frontend/src/views/sqlserver-manage/db-backup/pages/page1/components/RenderData/RenderRow.vue
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-backup/pages/page1/components/RenderData/RenderRow.vue
@@ -22,6 +22,7 @@
|
@@ -61,13 +62,14 @@
import { useI18n } from 'vue-i18n';
import { useRequest } from 'vue-request';
- import { getSqlserverDbs } from '@services/source/sqlserver'
+ import { getSqlserverDbs } from '@services/source/sqlserver';
import OperateColumn from '@components/render-table/columns/operate-column/index.vue';
+ import RenderDbName from '@views/mysql/common/edit-field/DbName.vue';
+
import { random } from '@utils';
- import RenderDbName from './RenderDbName.vue';
import RenderDomain from './RenderDomain.vue';
export interface IDataRow {
@@ -119,7 +121,7 @@
interface Exposes {
getValue: () => Promise<{
cluster_id: number;
- backup_dbs: string[]
+ backup_dbs: string[];
}>;
}
@@ -134,20 +136,17 @@
const backupDbs = ref(props.data.backupDbs);
const ignoreDbs = ref(props.data.ignoreDbs);
- const {
- data: finalDbs,
- run: getSqlserverDbsRun
- } = useRequest(getSqlserverDbs, {
+ const { data: finalDbs, run: getSqlserverDbsRun } = useRequest(getSqlserverDbs, {
manual: true,
- })
+ });
const getFinalDbsNew = (backupDbs: string[], ignoreDbs: string[]) => {
getSqlserverDbsRun({
cluster_id: props.data.clusterId,
db_list: backupDbs,
- ignore_db_list: ignoreDbs
- })
- }
+ ignore_db_list: ignoreDbs,
+ });
+ };
const handleInputFinish = (domain: string) => {
emits('inputClusterFinish', domain);
@@ -155,13 +154,13 @@
const handleBackupDbsChange = (value: string[]) => {
backupDbs.value = value;
- getFinalDbsNew(value, ignoreDbs.value)
+ getFinalDbsNew(value, ignoreDbs.value);
emits('inputBackupDbsFinish', value);
};
const handleIgnoreDbsChange = (value: string[]) => {
ignoreDbs.value = value;
- getFinalDbsNew(backupDbs.value, value)
+ getFinalDbsNew(backupDbs.value, value);
emits('inputIgnoreDbsFinish', value);
};
@@ -184,11 +183,13 @@
getValue() {
return Promise.all([
domainRef.value!.getValue(),
- backupDbsRef.value!.getValue(),
- ignoreDbsRef.value!.getValue(),
- ]).then(([clusterId]) => ({
+ backupDbsRef.value!.getValue('db_list'),
+ ignoreDbsRef.value!.getValue('ignore_db_list'),
+ ]).then(([clusterId, databasesData, ignoreDatabasesData]) => ({
cluster_id: clusterId,
- backup_dbs: finalDbs?.value || []
+ backup_dbs: finalDbs?.value || [],
+ ...databasesData,
+ ...ignoreDatabasesData,
}));
},
});
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/Index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/Index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/Index.vue
new file mode 100644
index 0000000000..bc6f5b86ea
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/Index.vue
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/Index.vue
new file mode 100644
index 0000000000..1a6ce17f8f
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/Index.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+ {{ t('集群') }}
+
+
+
+
+
+
+
+ {{ t('清档类型') }}
+
+
+ {{ t('指定DB名') }}
+
+
+ {{ t('忽略DB名') }}
+
+
+ {{ t('指定表名') }}
+
+
+ {{ t('忽略表名') }}
+
+
+ {{ t('最终 DB') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderClearDbName.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderClearDbName.vue
new file mode 100644
index 0000000000..31673d9c3e
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderClearDbName.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+ {{ localDbList.length < 1 ? '--' : localDbList.length }}
+
+
+
+
+
+
+ {{ t('手动修改回档的 DB 名 ') }}
+ {{ clusterData?.domain }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('最终 DB') }}
+
+ {{ localDbList.length }}
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderClearMode.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderClearMode.vue
new file mode 100644
index 0000000000..dbc4e90036
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderClearMode.vue
@@ -0,0 +1,85 @@
+
+
+
+ handleChange(value as string)" />
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..3ff1f4329c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/RenderCluster.vue
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/Row.vue
new file mode 100644
index 0000000000..26814e9f6d
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/Row.vue
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/render-clear-db-name/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/render-clear-db-name/Index.vue
new file mode 100644
index 0000000000..73d41c57be
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/render-clear-db-name/Index.vue
@@ -0,0 +1,165 @@
+
+
+
+
+
+ {{ localDbList.length < 1 ? '--' : localDbList.length }}
+
+
+
+
+
+
+ {{ t('手动修改回档的 DB 名 ') }}
+ {{ clusterData?.domain }}
+
+
+
+
+ {{ t('最终 DB') }}
+
+ {{ localDbList.length }}
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/render-clear-db-name/components/RenderDbList.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/render-clear-db-name/components/RenderDbList.vue
new file mode 100644
index 0000000000..8d6b5dfe35
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page1/components/RenderData/render-clear-db-name/components/RenderDbList.vue
@@ -0,0 +1,9 @@
+
+ asdasd
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page2/Index.vue
new file mode 100644
index 0000000000..7d848e6c42
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-clear/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ t('清档任务提交成功') }}
+
+
+
+ {{ t('我的服务单') }}
+
+
+
+
+ {{ t('去看看') }}
+
+
+ {{ t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/Index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/Index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/Index.vue
new file mode 100644
index 0000000000..92e6dbca1c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/Index.vue
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/Index.vue
new file mode 100644
index 0000000000..05c86713de
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/Index.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+ {{ t('目标集群') }}
+
+
+
+
+
+
+
+ {{ t('源 DB 名') }}
+
+
+ {{ t('新 DB 名') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..ce23b1260a
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/RenderCluster.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/RenderDbName.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/RenderDbName.vue
new file mode 100644
index 0000000000..6dac94b27e
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/RenderDbName.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/Row.vue
new file mode 100644
index 0000000000..ff1dc40db3
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page1/components/RenderData/Row.vue
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page2/Index.vue
new file mode 100644
index 0000000000..78053223d5
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/db-rename/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ t('DB 重命名任务提交成功') }}
+
+
+
+ {{ t('我的服务单') }}
+
+
+
+
+ {{ t('去看看') }}
+
+
+ {{ t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/Index.vue
new file mode 100644
index 0000000000..5062018ee7
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/Index.vue
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+ {{ t('检查业务来源的连接') }}
+
+
+
+
+ {{ t('检查主从同步延迟') }}
+
+
+
+
+ {{ t('检查主从数据校验结果') }}
+
+
+
+
+
+
+ {{ $t('提交') }}
+
+
+
+ {{ $t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/BatchEntry.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/BatchEntry.vue
new file mode 100644
index 0000000000..65c72e57a2
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/BatchEntry.vue
@@ -0,0 +1,334 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('n处格式错误', [inputInvalidStack.length]) }}
+
+
+
+ ;
+ {{ $t('n处缺少匹配对象', [inputErrorStack.length]) }}
+
+
+
+ ;
+ {{ $t('n处主机IP不存在', [inputHostErrorStack.length]) }}
+
+
+
+
+
+
+ {{ $t('确定') }}
+
+
+ {{ $t('取消') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/Index.vue
new file mode 100644
index 0000000000..7041801267
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/Index.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ {{ $t('故障主库主机') }}
+
+
+
+
+
+
+
+ {{ $t('从库主机') }}
+
+
+ {{ $t('同机关联的集群') }}
+
+
+ {{ $t('操作') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..4c42322680
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderCluster.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ {{ item.master_domain }}
+
+
+ {{ $t('输入主库后自动生成') }}
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderMaster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderMaster.vue
new file mode 100644
index 0000000000..d1c400a884
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderMaster.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderSlave.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderSlave.vue
new file mode 100644
index 0000000000..44f53f23c8
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/RenderSlave.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/Row.vue
new file mode 100644
index 0000000000..225c306b21
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page1/components/RenderData/Row.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page2/Index.vue
new file mode 100644
index 0000000000..777bdbf110
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-failover/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ $t('主库故障切换任务提交成功') }}
+
+
+
+ {{ $t('我的服务单') }}
+
+
+
+
+ {{ $t('去看看') }}
+
+
+ {{ $t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/Index.vue
new file mode 100644
index 0000000000..9dbe295e19
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/Index.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/BatchEntry.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/BatchEntry.vue
new file mode 100644
index 0000000000..de7cebd7d3
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/BatchEntry.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('n处格式错误', [inputInvalidStack.length]) }}
+
+
+
+ ;
+ {{ $t('n处缺少匹配对象', [inputErrorStack.length]) }}
+
+
+
+ ;
+ {{ $t('n处目标集群不存在', [inputClusterErrorStack.length]) }}
+
+
+
+
+
+
+ {{ $t('确定') }}
+
+
+ {{ $t('取消') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/Index.vue
new file mode 100644
index 0000000000..b02af6955c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/Index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ {{ $t('目标集群') }}
+
+
+
+
+
+
+
+ {{ $t('新主从主机') }}
+
+
+ {{ $t('操作') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/RenderMasterSlaveHost.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/RenderMasterSlaveHost.vue
new file mode 100644
index 0000000000..04cf5fc34b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/RenderMasterSlaveHost.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/Row.vue
new file mode 100644
index 0000000000..b2139e9e61
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page1/components/RenderData/Row.vue
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page2/Index.vue
new file mode 100644
index 0000000000..b2a24984e5
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-clone/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ $t('克隆主从任务提交成功') }}
+
+
+
+ {{ $t('我的服务单') }}
+
+
+
+
+ {{ $t('去看看') }}
+
+
+ {{ $t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/Index.vue
new file mode 100644
index 0000000000..3da4d0864b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/Index.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/Index.vue
new file mode 100644
index 0000000000..cb4e2a3af8
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/Index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ {{ $t('目标主库') }}
+
+
+
+
+
+
+
+ {{ $t('目标从库') }}
+
+
+ {{ $t('同机关联的集群') }}
+
+
+ {{ $t('操作') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..5377d92f59
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderCluster.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+ {{ item.master_domain }}
+
+
+ {{ $t('输入主库后自动生成') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderMaster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderMaster.vue
new file mode 100644
index 0000000000..b082558302
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderMaster.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderSlave.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderSlave.vue
new file mode 100644
index 0000000000..b18abb68df
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/RenderSlave.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/Row.vue
new file mode 100644
index 0000000000..3993671c36
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page1/components/RenderData/Row.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page2/Index.vue
new file mode 100644
index 0000000000..2966fd017c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/master-slave-swap/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ $t('主从互切任务提交成功') }}
+
+
+
+ {{ $t('我的服务单') }}
+
+
+
+
+ {{ $t('去看看') }}
+
+
+ {{ $t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/permission/components/CreateRule.vue b/dbm-ui/frontend/src/views/sqlserver-manage/permission/components/CreateRule.vue
index 3ec3bc178f..6c3ec6a36d 100644
--- a/dbm-ui/frontend/src/views/sqlserver-manage/permission/components/CreateRule.vue
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/permission/components/CreateRule.vue
@@ -265,7 +265,7 @@
const handleBeforeClose = () => {
if (window.changeConfirm) {
- return new Promise((resolve) => {
+ return new Promise((resolve) => {
InfoBox({
title: t('确认离开当前页'),
content: t('离开将会导致未保存信息丢失'),
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/Index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/Index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/Index.vue
new file mode 100644
index 0000000000..e1f8846c7b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/Index.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+
+
+ {{ t('原地定点构造') }}
+
+
+ {{ t('定点构造到其他集群') }}
+
+
+
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/common/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/common/RenderCluster.vue
new file mode 100644
index 0000000000..186e9d88f4
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/common/RenderCluster.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/common/RenderMode.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/common/RenderMode.vue
new file mode 100644
index 0000000000..c4e122b4a9
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/common/RenderMode.vue
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/Index.vue
new file mode 100644
index 0000000000..9606cba971
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/Index.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/RenderData.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/RenderData.vue
new file mode 100644
index 0000000000..2f3bb49c1b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/RenderData.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+ {{ t('待回档集群') }}
+
+
+
+
+
+
+
+ {{ t('回档类型') }}
+
+
+ {{ t('构造 DB ') }}
+
+
+ {{ t('忽略 DB ') }}
+
+
+ {{ t('构造后 DB 名') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/RenderRename.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/RenderRename.vue
new file mode 100644
index 0000000000..65ffba7f6f
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/RenderRename.vue
@@ -0,0 +1,191 @@
+
+
+
+
+
+ --
+
+
+ {{ t('已更新') }}
+
+
+
+ {{ localRenameInfoList.length }}
+
+
+
+
+
+
+
+
+
+ {{ t('手动修改回档的 DB 名 ') }}
+ {{ clusterData?.domain }}
+
+
+
+
+ {{ t('保存') }}
+
+
+ {{ t('取消') }}
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/Row.vue
new file mode 100644
index 0000000000..3678990ef1
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/local/components/Row.vue
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/Index.vue
new file mode 100644
index 0000000000..f10479f56c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/Index.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/RenderData.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/RenderData.vue
new file mode 100644
index 0000000000..be4b5fafd7
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/RenderData.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+ {{ t('待回档集群') }}
+
+
+
+
+
+
+
+ {{ t('目标集群') }}
+
+
+ {{ t('回档类型') }}
+
+
+ {{ t('构造 DB ') }}
+
+
+ {{ t('忽略 DB ') }}
+
+
+ {{ t('构造后 DB 名') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/RenderRename.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/RenderRename.vue
new file mode 100644
index 0000000000..ee2633cf59
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/RenderRename.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+ --
+
+
+ {{ t('已更新') }}
+
+
+
+ {{ localRenameInfoList.length }}
+
+
+
+
+
+
+
+
+
+ {{ t('手动修改回档的 DB 名 ') }}
+ {{ clusterData?.domain }}
+
+
+
+
+ {{ t('保存') }}
+
+
+ {{ t('取消') }}
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/Row.vue
new file mode 100644
index 0000000000..c22284cc3a
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page1/components/other-cluster/components/Row.vue
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page2/Index.vue
new file mode 100644
index 0000000000..d8b3ea3fc0
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/rollback/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ t('定点回档任务提交成功') }}
+
+
+
+ {{ t('我的服务单') }}
+
+
+
+
+ {{ t('去看看') }}
+
+
+ {{ t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/routes.ts b/dbm-ui/frontend/src/views/sqlserver-manage/routes.ts
index 896bf43041..22d4379938 100644
--- a/dbm-ui/frontend/src/views/sqlserver-manage/routes.ts
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/routes.ts
@@ -12,14 +12,19 @@
*/
import type { RouteRecordRaw } from 'vue-router';
-import FunctionControllModel from '@services/model/function-controller/functionController';
-
import { t } from '@locales/index';
const routes: RouteRecordRaw[] = [
{
name: 'SqlServerManage',
path: 'sqlserver-manage',
+ meta: {
+ navName: t('SQlServer_工具箱'),
+ },
+ redirect: {
+ name: 'SqlServerSingle',
+ },
+ component: () => import('@views/sqlserver-manage/Index.vue'),
children: [
{
name: 'SqlServerHaClusterList',
@@ -56,21 +61,123 @@ const routes: RouteRecordRaw[] = [
},
component: () => import('@views/sqlserver-manage/permission/Index.vue'),
},
+ ],
+ },
+];
+
+const toolboxRouters: RouteRecordRaw[] = [
+ {
+ path: 'toolbox',
+ name: 'sqlserverToolbox',
+ meta: {
+ navName: t('SQlServer_工具箱'),
+ fullscreen: true,
+ },
+ redirect: {
+ name: 'sqlServerExecute',
+ },
+ component: () => import('@views/sqlserver-manage/toolbox/Index.vue'),
+ children: [
+ {
+ name: 'sqlServerExecute',
+ path: 'sql-execute/:page?',
+ meta: {
+ navName: t('变更SQL执行'),
+ },
+ component: () => import('@views/sqlserver-manage/sql-execute/index.vue'),
+ },
+ {
+ name: 'sqlServerDBRename',
+ path: 'db-rename/:page?',
+ meta: {
+ navName: t('DB重命名'),
+ },
+ component: () => import('@views/sqlserver-manage/db-rename/Index.vue'),
+ },
+ {
+ name: 'sqlServerSlaveRebuild',
+ path: 'slave-rebuild/:page?',
+ meta: {
+ navName: t('重建从库'),
+ },
+ component: () => import('@views/sqlserver-manage/slave-rebuild/index.vue'),
+ },
+ {
+ name: 'sqlServerSlaveAdd',
+ path: 'slave-add/:page?',
+ meta: {
+ navName: t('添加从库'),
+ },
+ component: () => import('@views/sqlserver-manage/slave-add/index.vue'),
+ },
+ {
+ name: 'sqlServerMasterSlaveClone',
+ path: 'master-slave-clone/:page?',
+ meta: {
+ navName: t('克隆主从'),
+ },
+ component: () => import('@views/sqlserver-manage/master-slave-clone/index.vue'),
+ },
+ {
+ name: 'sqlServerMasterSlaveSwap',
+ path: 'master-slave-swap/:page?',
+ meta: {
+ navName: t('主从互切'),
+ },
+ component: () => import('@views/sqlserver-manage/master-slave-swap/index.vue'),
+ },
+ {
+ name: 'sqlServerMasterFailover',
+ path: 'master-failover/:page?',
+ meta: {
+ navName: t('主库故障切换'),
+ },
+ component: () => import('@views/sqlserver-manage/master-failover/index.vue'),
+ },
+ {
+ name: 'sqlServerDBClear',
+ path: 'db-clear/:page?',
+ meta: {
+ navName: t('清档'),
+ },
+ component: () => import('@views/sqlserver-manage/db-clear/Index.vue'),
+ },
+ {
+ name: 'sqlServerDBRollback',
+ path: 'rollback/:page?',
+ meta: {
+ navName: t('定点回档'),
+ },
+ component: () => import('@views/sqlserver-manage/rollback/Index.vue'),
+ },
{
name: 'SqlServerDbBackup',
- path: 'sqlserver-db-backup/:page?',
+ path: 'db-backup/:page?',
meta: {
navName: t('数据库备份'),
},
component: () => import('@views/sqlserver-manage/db-backup/Index.vue'),
},
+ {
+ name: 'sqlServerDataMigrate',
+ path: 'data-migrate/:page?',
+ meta: {
+ navName: t('数据迁移'),
+ },
+ component: () => import('@views/sqlserver-manage/data-migrate/Index.vue'),
+ },
+ {
+ name: 'sqlServerDataMigrateRecord',
+ path: 'data-migrate-record',
+ meta: {
+ navName: t('数据迁移'),
+ },
+ component: () => import('@views/sqlserver-manage/data-migrate-record/Index.vue'),
+ },
],
},
];
-
-export default function getRoutes(funControllerData: FunctionControllModel) {
- if (funControllerData.sqlserver && !funControllerData.sqlserver.is_enabled) {
- return [];
- }
+export default function getRoutes() {
+ routes[0].children?.push(...toolboxRouters);
return routes;
}
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/Index.vue
new file mode 100644
index 0000000000..969049289d
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/Index.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/Index.vue
new file mode 100644
index 0000000000..5b63ac4da5
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/Index.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ {{ t('目标集群(always on 集群)') }}
+
+
+
+
+
+
+
+ {{ t('新主从主机') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..eb10c4ecaa
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/RenderCluster.vue
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/RenderSlaveHost.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/RenderSlaveHost.vue
new file mode 100644
index 0000000000..932c6edae3
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/RenderSlaveHost.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/Row.vue
new file mode 100644
index 0000000000..308d67d732
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page1/components/RenderData/Row.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page2/Index.vue
new file mode 100644
index 0000000000..2b83da2d10
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-add/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ t('添加从库任务提交成功') }}
+
+
+
+ {{ t('我的服务单') }}
+
+
+
+
+ {{ t('去看看') }}
+
+
+ {{ t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/index.vue
new file mode 100644
index 0000000000..a699b45363
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/Index.vue
new file mode 100644
index 0000000000..b72eeb771b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/Index.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+ {{ t('重建类型') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/Index.vue
new file mode 100644
index 0000000000..9337bf2b07
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/Index.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/Index.vue
new file mode 100644
index 0000000000..10805343b0
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/Index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+ {{ t('待重建从库主机') }}
+
+
+
+
+
+
+
+ {{ t('同机关联集群') }}
+
+
+ {{ t('新从库主机') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..8873454147
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderCluster.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderNewSlave.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderNewSlave.vue
new file mode 100644
index 0000000000..eef4058022
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderNewSlave.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+ {{ t('请选择主机') }}
+
+
+ {{ localHostData.ip }}
+
+
+
+
+
+
+
+
+ {{ localHostData?.ip }}}
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderOldSlave.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderOldSlave.vue
new file mode 100644
index 0000000000..4d6b2c2f87
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/RenderOldSlave.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/Row.vue
new file mode 100644
index 0000000000..0cb77849c3
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/Row.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/useValidtor.ts b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/useValidtor.ts
new file mode 100644
index 0000000000..f48fb40d63
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/new-host/components/RenderData/useValidtor.ts
@@ -0,0 +1,89 @@
+/*
+ * 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 { reactive, toRefs } from 'vue';
+
+export type Rules = Array<{
+ validator: (value: any) => boolean | Promise;
+ message: string | (() => string);
+}>;
+
+const getRuleMessage = (rule: Rules[0]) => {
+ if (typeof rule.message === 'function') {
+ return rule.message();
+ }
+ return rule.message;
+};
+
+export default function (rules: Rules | undefined) {
+ const state = reactive({
+ loading: false,
+ error: false,
+ message: '',
+ });
+
+ const validator = (targetValue: any) => {
+ (state.error = false), (state.message = '');
+ if (!rules) {
+ return Promise.resolve(true);
+ }
+ const run = (() => {
+ let stepIndex = -1;
+ return (): Promise => {
+ stepIndex = stepIndex + 1;
+ if (stepIndex >= rules.length) {
+ return Promise.resolve(true);
+ }
+ const rule = rules[stepIndex];
+ return Promise.resolve().then(() => {
+ const result = rule.validator(targetValue);
+ // 异步验证
+ if (typeof result !== 'boolean' && typeof result.then === 'function') {
+ return result
+ .then((data: boolean) => {
+ // 异步验证结果为 false
+ if (data === false) {
+ return Promise.reject(getRuleMessage(rule));
+ }
+ })
+ .then(
+ () => run(),
+ () => {
+ state.error = true;
+ const message = getRuleMessage(rule);
+ state.message = message;
+ return Promise.reject(message);
+ },
+ );
+ }
+ // 验证失败
+ if (!result) {
+ state.error = true;
+ const message = getRuleMessage(rule);
+ state.message = message;
+ return Promise.reject(message);
+ }
+ // 下一步
+ return run();
+ });
+ };
+ })();
+
+ return run();
+ };
+
+ return {
+ ...toRefs(state),
+ validator,
+ };
+}
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/Index.vue
new file mode 100644
index 0000000000..dac74871c4
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/Index.vue
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+ ) => handleAppend(index, payload)"
+ @remove="handleRemove(index)" />
+
+
+
+
+ {{ t('提交') }}
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/Index.vue
new file mode 100644
index 0000000000..a942062603
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/Index.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+ {{ t('目标从库实例') }}
+
+
+
+
+
+
+
+ {{ t('所属集群') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/RenderCluster.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/RenderCluster.vue
new file mode 100644
index 0000000000..fa68f193fe
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/RenderCluster.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/RenderSlave.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/RenderSlave.vue
new file mode 100644
index 0000000000..cb29a79024
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/RenderSlave.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/Row.vue
new file mode 100644
index 0000000000..c34a217b3b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page1/components/original-host/components/RenderData/Row.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page2/Index.vue
new file mode 100644
index 0000000000..1b6ff0341b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/slave-rebuild/pages/page2/Index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ {{ $t('重建从库任务提交成功') }}
+
+
+
+ {{ $t('我的服务单') }}
+
+
+
+
+ {{ $t('去看看') }}
+
+
+ {{ $t('继续提单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/index.vue
new file mode 100644
index 0000000000..fb14435af3
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/index.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/Index.vue
new file mode 100644
index 0000000000..2fd3ac666f
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/Index.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ GBK
+
+
+
+
+
+
+
+
+
+ {{ t('提交') }}
+
+
+
+
+ {{ t('重置') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/ClusterIds.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/ClusterIds.vue
new file mode 100644
index 0000000000..e595f39b2c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/ClusterIds.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+ {{ $t('添加目标集群') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/TaskTips.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/TaskTips.vue
new file mode 100644
index 0000000000..898bdfe077
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/TaskTips.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('目前已有') }}
+
+ {{ taskCount }}
+
+ {{ $t('个模拟执行任务待确认_可点击查看最新动态') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.created_at }}
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/TicketMode.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/TicketMode.vue
new file mode 100644
index 0000000000..066f97c417
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/TicketMode.vue
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+ {{ t('手动执行') }}
+
+ {{ t('单据审批通过之后_需要人工确认方可执行') }}
+
+
+
+
+
+
+
+
+ {{ t('定时执行') }}
+
+ {{ t('单据审批通过之后_定时执行_无需确认') }}
+
+
+
+
+
+
+
+ {{ t('执行时间') }}
+
+ {{ t('在审批通过后_将会按照设置的时间定时执行_无需人工确认_如审批超时_需_人工确认_后才能执行') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/Index.vue
new file mode 100644
index 0000000000..7dea43e116
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/Index.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+ handleAppend(value, index)"
+ @change="(data: IDataRow) => handleChange(data, index)"
+ @remove="handleRemove(index)" />
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/Index.vue
new file mode 100644
index 0000000000..6819d8e169
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/Index.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+ {{ t('备份DB') }}
+
+
+ {{ t('忽略的 DB') }}
+
+
+ {{ t('最终 DB') }}
+
+
+ {{ t('操作') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/RenderDbs.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/RenderDbs.vue
new file mode 100644
index 0000000000..5f7f876d98
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/RenderDbs.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/Row.vue
new file mode 100644
index 0000000000..5263e390de
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/backup/RenderData/Row.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/Index.vue
new file mode 100644
index 0000000000..04a502d59c
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/Index.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+ handleAppend(value, index)"
+ @change="(data: IDataRow) => handleChange(data, index)"
+ @remove="handleRemove(index)" />
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/Index.vue
new file mode 100644
index 0000000000..53b802266d
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/Index.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+ {{ $t('变更的DB') }}
+
+ ({{ $t('如果变更 SQL 是“create database ...”,这个请填写 test') }})
+
+
+
+ {{ $t('忽略的DB') }}
+
+
+ {{ $t('操作') }}
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/RenderDbName.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/RenderDbName.vue
new file mode 100644
index 0000000000..58e955305d
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/RenderDbName.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+ {{ $t('匹配任意长度字符串_如a_不允许独立使用') }}
+ {{ $t('匹配任意单一字符_如a_d') }}
+ {{ $t('专门指代ALL语义_只能独立使用') }}
+ {{ $t('注_含通配符的单元格仅支持输入单个对象') }}
+ {{ $t('Enter完成内容输入') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/RenderDbs.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/RenderDbs.vue
new file mode 100644
index 0000000000..4c126c6c37
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/RenderDbs.vue
@@ -0,0 +1,38 @@
+
+ asdasd
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/Row.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/Row.vue
new file mode 100644
index 0000000000..b2a1e52e34
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-db-infos/RenderData/Row.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/Index.vue
new file mode 100644
index 0000000000..e045d96f37
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/Index.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ {{ $t('手动输入') }}
+
+
+ {{ $t('SQL文件') }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/editor/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/editor/Index.vue
new file mode 100644
index 0000000000..90ad2b57f5
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/editor/Index.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/editor/MessageList.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/editor/MessageList.vue
new file mode 100644
index 0000000000..b35f03c07e
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/editor/MessageList.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+ {{ totalMap.errorNum }}
+
+
+ ,
+
+ {{ totalMap.warningNum }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.message }}
+ [{{ item.line }}]
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/Index.vue
new file mode 100644
index 0000000000..94b57ff330
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/Index.vue
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+ ({{ $t('最终执行结果以SQL文件内容为准') }})
+
+
+
+
+
+
+ {{ $t('添加文件') }}
+
+
+ {{
+ $t(
+ '仅支持_sql文件_文件名不能包含空格_上传后_SQL执行顺序默认为从上至下_可拖动文件位置_变换文件的执行顺序文件',
+ )
+ }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/SqlFileList.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/SqlFileList.vue
new file mode 100644
index 0000000000..c82744541b
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/SqlFileList.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+ {{ $t('文件列表') }}
+
+ {{ $t('按顺序执行') }}
+
+
+
+
+
+
+ {{ fileItemData.name }}
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/CheckError.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/CheckError.vue
new file mode 100644
index 0000000000..79bead9b0e
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/CheckError.vue
@@ -0,0 +1,49 @@
+
+
+
+
+ {{ data.grammarCheck?.isError ? t('SQL语法错误') : t('文件上传失败') }}
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/CheckSuccess.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/CheckSuccess.vue
new file mode 100644
index 0000000000..3cc97a046f
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/CheckSuccess.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+ {{ $t('检测通过') }}
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/FileList.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/FileList.vue
new file mode 100644
index 0000000000..c5a33658d6
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/local-file/components/FileList.vue
@@ -0,0 +1,283 @@
+
+
+
+
+
+ {{ $t('文件列表') }}
+
+ {{ $t('按顺序执行') }}
+
+
+
+
+
+
+
+ {{ fileItemData.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/Index.vue
new file mode 100644
index 0000000000..1ee45166c1
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/Index.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+ ({{ $t('最终执行结果以 SQL 内容为准') }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxChecking.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxChecking.vue
new file mode 100644
index 0000000000..172f9374b8
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxChecking.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+ {{ $t('语法校验进行中') }}
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxError.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxError.vue
new file mode 100644
index 0000000000..7c4ba562eb
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxError.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+ {{ $t('语法检测服务异常_请联系管理员') }}
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxSuccess.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxSuccess.vue
new file mode 100644
index 0000000000..98400dabf3
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/manual-input/components/SyntaxSuccess.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+ {{ $t('检测通过') }}
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/utils.ts b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/utils.ts
new file mode 100644
index 0000000000..3424a70e98
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page1/components/execute-sql-file/utils.ts
@@ -0,0 +1,14 @@
+/*
+ * 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.
+ */
+
+export const getFileNameFromFilePath = (filePath: string) => filePath.replace(/[^_]+_/, '');
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page2/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page2/Index.vue
new file mode 100644
index 0000000000..b2da61808e
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/sql-execute/pages/page2/Index.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+ {{ t('变更SQL执行任务提交成功') }}
+
+
+
+ {{ t('我的服务单') }}
+
+
+
+
+ {{ t('去看看') }}
+
+
+ {{ t('再提一单') }}
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/toolbox-menu.ts b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox-menu.ts
new file mode 100644
index 0000000000..5a2ffc877d
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox-menu.ts
@@ -0,0 +1,118 @@
+/*
+ * 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 { t } from '@locales/index';
+
+export interface MenuChild {
+ name: string;
+ id: string;
+ parentId: string;
+}
+
+export default [
+ {
+ name: t('SQL任务'),
+ id: 'sql',
+ icon: 'db-icon-mysql',
+ children: [
+ {
+ name: t('变更SQL执行'),
+ id: 'sqlServerExecute',
+ parentId: 'sql',
+ },
+ {
+ name: t('DB重命名'),
+ id: 'sqlServerDBRename',
+ parentId: 'sql',
+ },
+ ],
+ },
+ {
+ name: t('备份'),
+ id: 'copy',
+ icon: 'db-icon-copy',
+ children: [
+ {
+ name: t('库表备份'),
+ id: 'SqlServerDbBackup',
+ parentId: 'copy',
+ },
+ ],
+ },
+ {
+ name: t('回档'),
+ id: 'fileback',
+ icon: 'db-icon-rollback',
+ children: [
+ {
+ name: t('定点回档'),
+ id: 'sqlServerDBRollback',
+ parentId: 'fileback',
+ },
+ ],
+ },
+ {
+ name: t('集群维护'),
+ id: 'migrate',
+ icon: 'db-icon-cluster',
+ children: [
+ {
+ name: t('重建从库'),
+ id: 'sqlServerSlaveRebuild',
+ parentId: 'migrate',
+ },
+ {
+ name: t('添加从库'),
+ id: 'sqlServerSlaveAdd',
+ parentId: 'migrate',
+ },
+ // {
+ // name: t('克隆主从'),
+ // id: 'sqlServerMasterSlaveClone',
+ // parentId: 'migrate',
+ // },
+ {
+ name: t('主从互切'),
+ id: 'sqlServerMasterSlaveSwap',
+ parentId: 'migrate',
+ },
+ {
+ name: t('主库故障切换'),
+ id: 'sqlServerMasterFailover',
+ parentId: 'migrate',
+ },
+ ],
+ },
+ {
+ name: t('数据处理'),
+ id: 'data',
+ icon: 'db-icon-data',
+ children: [
+ {
+ name: t('数据迁移'),
+ id: 'sqlServerDataMigrate',
+ parentId: 'data',
+ },
+ {
+ name: t('迁移记录'),
+ id: 'sqlServerDataMigrateRecord',
+ parentId: 'data',
+ },
+ {
+ name: t('清档'),
+ id: 'sqlServerDBClear',
+ parentId: 'data',
+ },
+ ],
+ },
+];
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/Index.vue
new file mode 100644
index 0000000000..b31cf58d92
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/Index.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+ {{ toolboxTitle }}
+
+ SQLServer
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/Index.vue b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/Index.vue
new file mode 100644
index 0000000000..2307839943
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/Index.vue
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/components/MenuGroup.vue b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/components/MenuGroup.vue
new file mode 100644
index 0000000000..387fa7c7e0
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/components/MenuGroup.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/components/TaskCount.vue b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/components/TaskCount.vue
new file mode 100644
index 0000000000..fcbd522c8f
--- /dev/null
+++ b/dbm-ui/frontend/src/views/sqlserver-manage/toolbox/components/toolbox-side/components/TaskCount.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+ {{ taskCount }}
+
+
+
+
+
+
+
+
+
+ {{ item.created_at }}
+
+
+
+
+
+ {{ $t('移除') }}
+
+
+
+
+
+ {{ $t('执行日志') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/dbm-ui/frontend/tsconfig.app.json b/dbm-ui/frontend/tsconfig.app.json
new file mode 100644
index 0000000000..f4c61f5833
--- /dev/null
+++ b/dbm-ui/frontend/tsconfig.app.json
@@ -0,0 +1,33 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "include": ["env.d.ts","components.d.ts", "src/**/*", "src/**/*.vue"],
+ "exclude": ["src/**/__tests__/*"],
+ "compilerOptions": {
+ "composite": true,
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["src/*"],
+ "@services/*": ["src/services/*"],
+ "@hooks": ["src/hooks"],
+ "@router/*": ["src/router/*"],
+ "@stores": ["src/stores"],
+ "@common/*": ["src/common/*"],
+ "@components/*": ["src/components/*"],
+ "@views/*": ["src/views/*"],
+ "@utils": ["src/utils"],
+ "@helper/*": ["src/helper/*"],
+ "@types": ["src/types/*"],
+ "@styles/*": ["src/styles/*"],
+ "@locales/*": ["src/locales/*"],
+ "@images/*": ["src/images/*"],
+ "@lib/*": ["lib/*"],
+ },
+ "typeRoots": [
+ "node_modules",
+ "./src/types"
+ ],
+ "types": ["bkui-vue/lib/volar.components"],
+ }
+}
diff --git a/dbm-ui/frontend/tsconfig.config.json b/dbm-ui/frontend/tsconfig.config.json
deleted file mode 100644
index 966afc297b..0000000000
--- a/dbm-ui/frontend/tsconfig.config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": "@vue/tsconfig/tsconfig.dom.json",
- "include": ["vite.config.*", "vitest.config.*", "cypress.config.*"],
- "compilerOptions": {
- "composite": true,
- "types": ["node"]
- }
-}
diff --git a/dbm-ui/frontend/tsconfig.json b/dbm-ui/frontend/tsconfig.json
index 7338084ef1..66b5e5703e 100644
--- a/dbm-ui/frontend/tsconfig.json
+++ b/dbm-ui/frontend/tsconfig.json
@@ -1,37 +1,11 @@
{
- "extends": "@vue/tsconfig/tsconfig.dom.json",
- "include": ["env.d.ts", "components.d.ts", "src/**/*", "src/**/*.vue"],
- "compilerOptions": {
- "ignoreDeprecations": "5.0",
- "resolvePackageJsonExports": false,
- "resolveJsonModule": true,
- "lib": [ "es2016", "dom", "es2018", "es2018.promise"],
- "baseUrl": ".",
- "paths": {
- "@/*": ["src/*"],
- "@services/*": ["src/services/*"],
- "@hooks": ["src/hooks"],
- "@router/*": ["src/router/*"],
- "@stores": ["src/stores"],
- "@common/*": ["src/common/*"],
- "@components/*": ["src/components/*"],
- "@views/*": ["src/views/*"],
- "@utils": ["src/utils"],
- "@helper/*": ["src/helper/*"],
- "@types": ["src/types/*"],
- "@styles/*": ["src/styles/*"],
- "@locales/*": ["src/locales/*"],
- "@images/*": ["src/images/*"],
- "@lib/*": ["lib/*"],
+ "files": [],
+ "references": [
+ {
+ "path": "./tsconfig.node.json"
},
- "typeRoots": [
- "node_modules",
- "./src/types"
- ],
- "types": [
- "bkui-vue/lib/volar.components",
- ],
- "jsx": "preserve",
- "noEmit": false,
- },
+ {
+ "path": "./tsconfig.app.json"
+ }
+ ]
}
diff --git a/dbm-ui/frontend/tsconfig.node.json b/dbm-ui/frontend/tsconfig.node.json
new file mode 100644
index 0000000000..f094063030
--- /dev/null
+++ b/dbm-ui/frontend/tsconfig.node.json
@@ -0,0 +1,19 @@
+{
+ "extends": "@tsconfig/node20/tsconfig.json",
+ "include": [
+ "vite.config.*",
+ "vitest.config.*",
+ "cypress.config.*",
+ "nightwatch.conf.*",
+ "playwright.config.*"
+ ],
+ "compilerOptions": {
+ "composite": true,
+ "noEmit": true,
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "types": ["node"]
+ }
+}
diff --git a/dbm-ui/frontend/vite.config.mts b/dbm-ui/frontend/vite.config.mts
index 367b1a1093..26cdc9f9fa 100644
--- a/dbm-ui/frontend/vite.config.mts
+++ b/dbm-ui/frontend/vite.config.mts
@@ -31,9 +31,6 @@ export default defineConfig(({ mode }) => {
return {
base: env.VITE_PUBLIC_PATH,
- define: {
- __RESOURCE_UNIQUE_KEY__: JSON.stringify(uniqueKey),
- },
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
@@ -102,12 +99,6 @@ export default defineConfig(({ mode }) => {
envPrefixes: ['VITE_'],
}),
].concat(isHttps ? [basicSsl()] : []),
- build: {
- sourcemap: true,
- commonjsOptions: {
- ignoreTryCatch: false,
- },
- },
optimizeDeps: {
exclude: ['@blueking/ip-selector/dist/vue3.x.js', 'lib/'],
},
|