feat: 添加当前连接数据库信息

This commit is contained in:
bunny 2025-04-21 13:18:26 +08:00
parent 4ee723cce1
commit 9dfe5d6b3e
4 changed files with 48 additions and 7 deletions

View File

@ -1,6 +1,11 @@
import request from '@/api/server/request';
import type { BaseResult } from '@/types/request';
/* 当前数据库信息 */
export const getDatabaseInfoMetaData = () => {
return request<any, any>({ url: '/table/databaseInfoMetaData', method: 'GET' });
};
/* 当前配置的数据库 */
export const getCurrentDatabaseName = () => {
return request<any, any>({ url: '/table/currentDatabaseName', method: 'GET' });

View File

@ -1,6 +1,7 @@
import { defineStore } from 'pinia';
import {
getDatabaseInfoMetaData,
getDatabaseList,
getDatabaseTableList,
getTableColumnInfo,
@ -11,6 +12,7 @@ export const useTableStore = defineStore('tableStore', {
state: () => ({
// 当前的数据库名称
currentDatabaseName: undefined,
databaseInfoMeta: undefined,
// 数据库所有的表
tableList: [],
tableListLoading: false,
@ -19,6 +21,14 @@ export const useTableStore = defineStore('tableStore', {
}),
getters: {},
actions: {
/* 当前数据库信息 */
async getDatabaseInfoMeta() {
const result = await getDatabaseInfoMetaData();
if (result.code === 200) {
this.databaseInfoMeta = result.data;
}
},
/* 所有的数据库 */
async getDatabaseList() {
this.tableListLoading = true;

View File

@ -22,11 +22,11 @@ export const columns: any = [
},
{
title: '字段名称',
key: 'fieldName',
key: 'lowercaseName',
titleAlign: 'center',
align: 'center',
render(row: any): JSX.Element {
return <NTag>{row.fieldName}</NTag>;
return <NTag>{row.lowercaseName}</NTag>;
},
},
{

View File

@ -1,5 +1,6 @@
<script lang="tsx" setup>
import { NCard, NDataTable, NSelect, NTag } from 'naive-ui';
import { storeToRefs } from 'pinia';
import { onMounted } from 'vue';
import { getCurrentDatabaseName } from '@/api/table';
@ -7,6 +8,8 @@ import { useTableStore } from '@/store/modules/table';
import { columns, renderOptions } from '@/views/home/columns';
const tableStore = useTableStore();
const { databaseInfoMeta, tableList, dbList, tableListLoading, currentDatabaseName } =
storeToRefs(tableStore);
/* 更新数据库名称 */
const onUpdateCurrentDatabaseName = (databaseName: string) => {
@ -26,6 +29,7 @@ const initDatabaseTables = async () => {
onMounted(() => {
initDatabaseTables();
tableStore.getDatabaseInfoMeta();
tableStore.getDatabaseList();
});
</script>
@ -39,18 +43,40 @@ onMounted(() => {
<n-tag>注释内容</n-tag>
跳转
</p>
<p>
数据库产品名称
<n-tag type="primary">{{ databaseInfoMeta.databaseProductName }}</n-tag>
</p>
<p>
数据库产品版本
<n-tag type="primary">{{ databaseInfoMeta.databaseProductVersion }}</n-tag>
</p>
<p>
驱动名称
<n-tag type="primary">{{ databaseInfoMeta.driverName }}</n-tag>
</p>
<p>
数据库驱动版本
<n-tag type="primary">{{ databaseInfoMeta.driverVersion }}</n-tag>
</p>
<p>
数据库用户
<n-tag type="primary">{{ databaseInfoMeta.username }}</n-tag>
</p>
<p class="mt-2">
数据库共
<n-tag type="info">{{ tableStore.tableList.length }}</n-tag>
<n-tag type="info">{{ tableList.length }}</n-tag>
张表
</p>
<!-- 选择数据库 -->
<n-select
:on-update-value="onUpdateCurrentDatabaseName"
:options="tableStore.dbList"
:options="dbList"
:render-option="renderOptions"
:value="tableStore.currentDatabaseName"
:value="currentDatabaseName"
class="mt-2 w-[200px]"
clear-filter-after-select
clearable
@ -61,7 +87,7 @@ onMounted(() => {
<n-data-table
:bordered="true"
:columns="columns()"
:data="tableStore.tableList"
:loading="tableStore.tableListLoading"
:data="tableList"
:loading="tableListLoading"
/>
</template>