From 76fd6675b5d1ccc8fcbb05d2a01f4fac8bc85f1b Mon Sep 17 00:00:00 2001
From: "meilin.huang" <954537473@qq.com>
Date: Fri, 29 Dec 2023 16:48:15 +0800
Subject: [PATCH] refactor: code review
---
 mayfly_go_web/package.json                    |   2 +-
 mayfly_go_web/src/common/utils/date.ts        |   2 +-
 .../SearchForm/components/SearchFormItem.vue  |   6 +-
 .../src/components/SearchForm/index.vue       |   6 +-
 .../components/dynamic-form/DynamicForm.vue   |  14 +-
 .../dynamic-form/DynamicFormDialog.vue        |  11 +-
 .../dynamic-form/DynamicFormEdit.vue          |  16 +-
 .../src/components/pagetable/PageTable.vue    |  35 ++--
 mayfly_go_web/src/hooks/usePageTable.ts       |   9 +-
 .../src/views/ops/db/DbBackupEdit.vue         |  57 +++----
 .../src/views/ops/db/DbBackupList.vue         |  10 +-
 mayfly_go_web/src/views/ops/db/DbList.vue     |   4 +-
 .../src/views/ops/db/DbRestoreEdit.vue        |  68 ++++----
 .../src/views/ops/db/DbRestoreList.vue        |   4 -
 .../src/views/ops/tag/TagTreeList.vue         |   2 +-
 .../views/system/account/RoleAllocation.vue   |   8 +-
 .../components/AccountSelectFormItem.vue      |  10 +-
 .../views/system/resource/ResourceList.vue    |   2 +-
 .../views/system/role/AccountAllocation.vue   |   8 +-
 mayfly_go_web/yarn.lock                       | 149 +++++++++---------
 server/.gitignore                             |   8 +-
 server/go.mod                                 |   7 +-
 server/internal/db/api/db_backup.go           |   2 +
 server/internal/db/config/config.go           |  68 +++++++-
 server/internal/db/dbm/dbbin.go               |   1 +
 server/internal/db/domain/entity/db_binlog.go |   1 +
 .../db/infrastructure/service/db_backup.go    |   3 +-
 .../db/infrastructure/service/db_instance.go  |  19 +--
 server/pkg/config/config.go                   |   4 +-
 server/pkg/config/db.go                       |  13 --
 server/pkg/config/db_darwin.go                |  28 ----
 server/pkg/config/db_linux.go                 |  27 ----
 server/pkg/config/db_windows.go               |  27 ----
 server/pkg/model/json_time.go                 |  57 +++++++
 server/pkg/utils/timex/timex.go               |   4 +-
 35 files changed, 343 insertions(+), 349 deletions(-)
 create mode 100644 server/internal/db/dbm/dbbin.go
 delete mode 100644 server/pkg/config/db.go
 delete mode 100644 server/pkg/config/db_darwin.go
 delete mode 100644 server/pkg/config/db_linux.go
 delete mode 100644 server/pkg/config/db_windows.go
 create mode 100644 server/pkg/model/json_time.go
diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json
index 12e5faa1..b6b1eb7b 100644
--- a/mayfly_go_web/package.json
+++ b/mayfly_go_web/package.json
@@ -33,7 +33,7 @@
     "splitpanes": "^3.1.5",
     "sql-formatter": "^14.0.0",
     "uuid": "^9.0.1",
-    "vue": "^3.3.12",
+    "vue": "^3.4.0",
     "vue-router": "^4.2.5",
     "xterm": "^5.3.0",
     "xterm-addon-fit": "^0.8.0",
diff --git a/mayfly_go_web/src/common/utils/date.ts b/mayfly_go_web/src/common/utils/date.ts
index c12b3f00..2de40c3e 100644
--- a/mayfly_go_web/src/common/utils/date.ts
+++ b/mayfly_go_web/src/common/utils/date.ts
@@ -24,7 +24,7 @@ export function dateStrFormat(fmt: string, dateStr: string) {
 }
 
 export function dateFormat(dateStr: string) {
-    if (dateStr.startsWith('0001-01-01', 0)) {
+    if (dateStr?.startsWith('0001-01-01', 0)) {
         return '';
     }
     return dateFormat2('yyyy-MM-dd HH:mm:ss', new Date(dateStr));
diff --git a/mayfly_go_web/src/components/SearchForm/components/SearchFormItem.vue b/mayfly_go_web/src/components/SearchForm/components/SearchFormItem.vue
index 830911ef..5bc68db4 100644
--- a/mayfly_go_web/src/components/SearchForm/components/SearchFormItem.vue
+++ b/mayfly_go_web/src/components/SearchForm/components/SearchFormItem.vue
@@ -28,17 +28,13 @@
 
diff --git a/mayfly_go_web/src/views/ops/db/DbBackupList.vue b/mayfly_go_web/src/views/ops/db/DbBackupList.vue
index ed4409bb..69fa6634 100644
--- a/mayfly_go_web/src/views/ops/db/DbBackupList.vue
+++ b/mayfly_go_web/src/views/ops/db/DbBackupList.vue
@@ -9,11 +9,7 @@
             :searchItems="searchItems"
             :before-query-fn="beforeQueryFn"
             v-model:query-form="query"
-            :data="state.data"
             :columns="columns"
-            :total="state.total"
-            v-model:page-size="query.pageSize"
-            v-model:page-num="query.pageNum"
         >
             
                 
@@ -29,8 +25,8 @@
 
             
                 编辑
-                启用
-                禁用
+                启用
+                禁用
             
         
 
@@ -76,7 +72,7 @@ const columns = [
     TableColumn.new('enabled', '是否启用'),
     TableColumn.new('lastResult', '执行结果'),
     TableColumn.new('lastTime', '执行时间').isTime(),
-    TableColumn.new('action', '操作').isSlot().setMinWidth(220).fixedRight().alignCenter(),
+    TableColumn.new('action', '操作').isSlot().setMinWidth(160).fixedRight().alignCenter(),
 ];
 
 const emptyQuery = {
diff --git a/mayfly_go_web/src/views/ops/db/DbList.vue b/mayfly_go_web/src/views/ops/db/DbList.vue
index b049dffb..e9071fa7 100644
--- a/mayfly_go_web/src/views/ops/db/DbList.vue
+++ b/mayfly_go_web/src/views/ops/db/DbList.vue
@@ -123,7 +123,7 @@
         
 
         
 
         ('visible', {
+    default: false,
+});
 
 const validatePointInTime = (rule: any, value: any, callback: any) => {
     if (!state.histories || state.histories.length == 0) {
@@ -161,9 +163,9 @@ onMounted(async () => {
     await init(props.data);
 });
 
-watch(props, (newValue: any) => {
-    if (newValue.visible) {
-        init(newValue.data);
+watch(visible, (newValue: any) => {
+    if (newValue) {
+        init(props.data);
     }
 });
 
@@ -230,38 +232,40 @@ const getDbNamesWithoutRestore = async () => {
 
 const btnOk = async () => {
     restoreForm.value.validate(async (valid: any) => {
-        if (valid) {
-            if (state.restoreMode == 'point-in-time') {
-                state.form.dbBackupId = 0;
-                state.form.dbBackupHistoryId = 0;
-                state.form.dbBackupHistoryName = '';
-            } else {
-                state.form.pointInTime = '0001-01-01T00:00:00Z';
-            }
-            state.form.repeated = false;
-            const reqForm = { ...state.form };
-            let api = dbApi.createDbRestore;
-            if (props.data) {
-                api = dbApi.saveDbRestore;
-            }
-            api.request(reqForm).then(() => {
-                ElMessage.success('保存成功');
-                emit('val-change', state.form);
-                state.btnLoading = true;
-                setTimeout(() => {
-                    state.btnLoading = false;
-                }, 1000);
-                cancel();
-            });
-        } else {
+        if (!valid) {
             ElMessage.error('请正确填写信息');
             return false;
         }
+
+        if (state.restoreMode == 'point-in-time') {
+            state.form.dbBackupId = 0;
+            state.form.dbBackupHistoryId = 0;
+            state.form.dbBackupHistoryName = '';
+        } else {
+            state.form.pointInTime = '0001-01-01T00:00:00Z';
+        }
+
+        state.form.repeated = false;
+        const reqForm = { ...state.form };
+        let api = dbApi.createDbRestore;
+        if (props.data) {
+            api = dbApi.saveDbRestore;
+        }
+
+        try {
+            state.btnLoading = true;
+            await api.request(reqForm);
+            ElMessage.success('保存成功');
+            emit('val-change', state.form);
+            cancel();
+        } finally {
+            state.btnLoading = false;
+        }
     });
 };
 
 const cancel = () => {
-    emit('update:visible', false);
+    visible.value = false;
     emit('cancel');
 };
 
diff --git a/mayfly_go_web/src/views/ops/db/DbRestoreList.vue b/mayfly_go_web/src/views/ops/db/DbRestoreList.vue
index 8095d078..137f79e6 100644
--- a/mayfly_go_web/src/views/ops/db/DbRestoreList.vue
+++ b/mayfly_go_web/src/views/ops/db/DbRestoreList.vue
@@ -9,11 +9,7 @@
             :searchItems="searchItems"
             :before-query-fn="beforeQueryFn"
             v-model:query-form="query"
-            :data="state.data"
             :columns="columns"
-            :total="state.total"
-            v-model:page-size="query.pageSize"
-            v-model:page-num="query.pageNum"
         >
             
                 
diff --git a/mayfly_go_web/src/views/ops/tag/TagTreeList.vue b/mayfly_go_web/src/views/ops/tag/TagTreeList.vue
index da0c66ad..61ec902f 100644
--- a/mayfly_go_web/src/views/ops/tag/TagTreeList.vue
+++ b/mayfly_go_web/src/views/ops/tag/TagTreeList.vue
@@ -396,7 +396,7 @@ const removeDeafultExpandId = (id: any) => {