diff --git a/mayfly_go_web/src/views/layout/navBars/breadcrumb/search.vue b/mayfly_go_web/src/views/layout/navBars/breadcrumb/search.vue index 3ff23615..873ea177 100644 --- a/mayfly_go_web/src/views/layout/navBars/breadcrumb/search.vue +++ b/mayfly_go_web/src/views/layout/navBars/breadcrumb/search.vue @@ -30,7 +30,7 @@ import { useStore } from '@/store/index.ts'; export default defineComponent({ name: 'layoutBreadcrumbSearch', setup() { - const layoutMenuAutocompleteRef = ref(); + const layoutMenuAutocompleteRef: any = ref(null); const store = useStore(); const router = useRouter(); const state: any = reactive({ @@ -68,7 +68,6 @@ export default defineComponent({ // 初始化菜单数据 const initTageView = () => { if (state.tagsViewList.length > 0) return false; - console.log(getRoutes(store.state.routesList.routesList)); getRoutes(store.state.routesList.routesList).map((v: any) => { if (!v.meta.isHide) { state.tagsViewList.push({ ...v }); diff --git a/mayfly_go_web/src/views/ops/db/DbList.vue b/mayfly_go_web/src/views/ops/db/DbList.vue index 15aabc52..6cd8ced0 100644 --- a/mayfly_go_web/src/views/ops/db/DbList.vue +++ b/mayfly_go_web/src/views/ops/db/DbList.vue @@ -72,6 +72,32 @@ + + + + + 结构 + 数据 + 结构+数据 + + + + + + + + + + + +
+ 取消 + 确定 +
+
+ 创建表
@@ -226,6 +252,10 @@ import { dbApi } from './api'; import enums from './enums'; import { projectApi } from '../project/api.ts'; import SqlExecBox from './component/SqlExecBox.ts'; +import config from '@/common/config'; +import { getSession } from '@/common/utils/storage'; +import { isTrue } from '@/common/assert'; + export default defineComponent({ name: 'DbList', components: { @@ -255,6 +285,13 @@ export default defineComponent({ }, datas: [], total: 0, + showDumpInfo: false, + dumpInfo: { + id: 0, + db: '', + type: 3, + tables: [], + }, // sql执行记录弹框 sqlExecLogDialog: { title: '', @@ -392,6 +429,29 @@ export default defineComponent({ searchSqlExecLog(); }; + /** + * 选择导出数据库表 + */ + const handleDumpTableSelectionChange = (vals: any) => { + state.dumpInfo.tables = vals.map((x: any) => x.tableName); + }; + + /** + * 数据库信息导出 + */ + const dump = (db: string) => { + isTrue(state.dumpInfo.tables.length > 0, '请选择要导出的表'); + const a = document.createElement('a'); + a.setAttribute( + 'href', + `${config.baseApiUrl}/dbs/${state.dbId}/dump?db=${db}&type=${state.dumpInfo.type}&tables=${state.dumpInfo.tables.join( + ',' + )}&token=${getSession('token')}` + ); + a.click(); + state.showDumpInfo = false; + }; + const onShowRollbackSql = async (sqlExecLog: any) => { const columns = await dbApi.columnMetadata.request({ id: sqlExecLog.dbId, db: sqlExecLog.db, tableName: sqlExecLog.table }); const primaryKey = columns[0].columnName; @@ -447,6 +507,7 @@ export default defineComponent({ }; const closeTableInfo = () => { + state.showDumpInfo = false; state.tableInfoDialog.visible = false; state.tableInfoDialog.infos = []; }; @@ -516,6 +577,8 @@ export default defineComponent({ valChange, deleteDb, onShowSqlExec, + handleDumpTableSelectionChange, + dump, onBeforeCloseSqlExecDialog, handleSqlExecPageChange, searchSqlExecLog, diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index 9be5ff8f..bc98f4e9 100644 --- a/mayfly_go_web/src/views/ops/db/SqlExec.vue +++ b/mayfly_go_web/src/views/ops/db/SqlExec.vue @@ -927,7 +927,7 @@ export default defineComponent({ return; } // 转为字符串比较,可能存在数字等 - let text = row[property] + ''; + let text = (row[property] ? row[property] : '') + ''; let div = cell.children[0]; if (div) { let input = document.createElement('input'); diff --git a/mayfly_go_web/src/views/ops/db/api.ts b/mayfly_go_web/src/views/ops/db/api.ts index ffe31bc7..712ff3b3 100644 --- a/mayfly_go_web/src/views/ops/db/api.ts +++ b/mayfly_go_web/src/views/ops/db/api.ts @@ -5,6 +5,7 @@ export const dbApi = { dbs: Api.create("/dbs", 'get'), saveDb: Api.create("/dbs", 'post'), deleteDb: Api.create("/dbs/{id}", 'delete'), + dumpDb: Api.create("/dbs/{id}/dump", 'post'), tableInfos: Api.create("/dbs/{id}/t-infos", 'get'), tableIndex: Api.create("/dbs/{id}/t-index", 'get'), tableDdl: Api.create("/dbs/{id}/t-create-ddl", 'get'), diff --git a/mayfly_go_web/src/views/ops/db/component/SqlExecDialog.vue b/mayfly_go_web/src/views/ops/db/component/SqlExecDialog.vue index 7a56681a..1c8efa1e 100644 --- a/mayfly_go_web/src/views/ops/db/component/SqlExecDialog.vue +++ b/mayfly_go_web/src/views/ops/db/component/SqlExecDialog.vue @@ -2,7 +2,7 @@
- +