😎统一前端所有数据库类型选择与显示

This commit is contained in:
zuohuaijun 2025-07-27 15:59:06 +08:00
parent c4cedbfb32
commit ad69c7e5b5
12 changed files with 21 additions and 110 deletions

View File

@ -23,9 +23,8 @@ public class SysReportDataSource : EntityBase
/// <summary>
/// 数据库类型
/// </summary>
[SugarColumn(ColumnDescription = "数据库类型", Length = 32)]
[MaxLength(32)]
public string DbType { get; set; }
[SugarColumn(ColumnDescription = "数据库类型", DefaultValue = "4")]
public SqlSugar.DbType DbType { get; set; } = SqlSugar.DbType.PostgreSQL;
/// <summary>
/// 连接字符串

View File

@ -155,7 +155,7 @@ public class SysReportDataSourceService : IDynamicApiController, ITransient
Id = ds.Id.ToString(),
Name = ds.Name,
IsBuildIn = false,
DbType = Enum.Parse<SqlSugar.DbType>(ds.DbType),
DbType = ds.DbType,
ConnectionString = ds.ConnectionString,
});
}

View File

@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
import { DbType } from './db-type';
/**
*
*
@ -93,12 +94,10 @@ export interface AddReportDataSourceInput {
name?: string | null;
/**
*
*
* @type {string}
* @type {DbType}
* @memberof AddReportDataSourceInput
*/
dbType?: string | null;
dbType?: DbType;
/**
*

View File

@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
import { DbType } from './db-type';
/**
*
*
@ -93,12 +94,10 @@ export interface SysReportDataSource {
name?: string | null;
/**
*
*
* @type {string}
* @type {DbType}
* @memberof SysReportDataSource
*/
dbType?: string | null;
dbType?: DbType;
/**
*

View File

@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
import { DbType } from './db-type';
/**
*
*
@ -93,12 +94,10 @@ export interface UpdateReportDataSourceInput {
name?: string | null;
/**
*
*
* @type {string}
* @type {DbType}
* @memberof UpdateReportDataSourceInput
*/
dbType?: string | null;
dbType?: DbType;
/**
*

View File

@ -25,34 +25,6 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="库类型" prop="dbType" :rules="[{ required: true, message: '库类型不能为空', trigger: 'blur' }]">
<g-sys-dict v-model="state.ruleForm.dbType" code="db_type" render-as="select" :disabled="state.ruleForm.tenantType == 0 && state.ruleForm.tenantType != undefined" />
<!-- <el-select v-model="state.ruleForm.dbType" placeholder="数据库类型" filterable clearable disabled class="w100">
<el-option label="MySql" :value="'0'" />
<el-option label="SqlServer" :value="'1'" />
<el-option label="Sqlite" :value="'2'" />
<el-option label="Oracle" :value="'3'" />
<el-option label="PostgreSQL" :value="'4'" />
<el-option label="Dm" :value="'5'" />
<el-option label="Kdbndp" :value="'6'" />
<el-option label="Oscar" :value="'7'" />
<el-option label="MySqlConnector" :value="'8'" />
<el-option label="Access" :value="'9'" />
<el-option label="OpenGauss" :value="'10'" />
<el-option label="QuestDB" :value="'11'" />
<el-option label="HG" :value="'12'" />
<el-option label="ClickHouse" :value="'13'" />
<el-option label="GBase" :value="'14'" />
<el-option label="Odbc" :value="'15'" />
<el-option label="OceanBaseForOracle" :value="'16'" />
<el-option label="TDengine" :value="'17'" />
<el-option label="GaussDB" :value="'18'" />
<el-option label="OceanBase" :value="'19'" />
<el-option label="Tidb" :value="'20'" />
<el-option label="Vastbase" :value="'21'" />
<el-option label="PolarDB" :value="'22'" />
<el-option label="Doris" :value="'23'" />
<el-option label="Custom" :value="'900'" />
</el-select> -->
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">

View File

@ -126,7 +126,6 @@ import * as monaco from 'monaco-editor';
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
import { format } from 'sql-formatter';
import { sqlSugarDbTypes } from '../inputCtrlType';
import { getAPI } from '/@/utils/axios-utils';
import { SysReportConfigApi, SysReportDataSourceApi, SysReportGroupApi } from '/@/api-services/api';
@ -326,7 +325,11 @@ const paramConfig = reactive({
title: t('输入控件类型'),
editRender: {
name: 'ElSelect',
options: sqlSugarDbTypes,
options: [
{ label: '输入框', value: 'Input' },
{ label: '日期选择器', value: 'Date' },
{ label: '选择器', value: 'Select' },
],
props: { size: 'small', filterable: true },
},
},

View File

@ -1,5 +0,0 @@
export const sqlSugarDbTypes = [
{ label: '输入框', value: 'Input' },
{ label: '日期选择器', value: 'Date' },
{ label: '选择器', value: 'Select' },
];

View File

@ -15,13 +15,11 @@
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item :label="$t('数据库类型')" prop="dbType" :rules="[{ required: true, message: $t('数据库类型不能为空'), trigger: 'blur' }]">
<el-select v-model="state.ruleForm.dbType">
<el-option v-for="item in sqlSugarDbTypes" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<g-sys-dict v-model="state.ruleForm.dbType" code="db_type" render-as="select" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item :label="$t('连接字符串')">
<el-form-item :label="$t('连接字符串')" prop="connectionString" :rules="[{ required: true, message: $t('连接字符串不能为空'), trigger: 'blur' }]">
<el-input v-model="state.ruleForm.connectionString" type="textarea" :autosize="{ minRows: 6 }" :placeholder="$t('编辑时置空则不更新值')" />
</el-form-item>
</el-col>
@ -45,8 +43,6 @@
import { reactive, ref } from 'vue';
import { ElInput } from 'element-plus';
import { sqlSugarDbTypes } from '.././sqlSugarDbType';
import { getAPI } from '/@/utils/axios-utils';
import { SysReportDataSourceApi } from '/@/api-services/api';
import { UpdateReportDataSourceInput } from '/@/api-services/models';

View File

@ -33,7 +33,7 @@
<el-empty :image-size="200" />
</template>
<template #row_dbType="{ row }">
<el-tag> {{ sqlSugarDbTypes.find((r) => r.value == row.dbType)?.label }} </el-tag>
<g-sys-dict v-model="row.dbType" code="db_type" render-as="tag" />
</template>
<template #row_record="{ row }">
<ModifyRecord :data="row" />
@ -64,7 +64,6 @@ import { auth } from '/@/utils/authFunction';
import EditReportDataSource from '/@/views/system/reportDataSource/component/editReportDataSource.vue';
import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { sqlSugarDbTypes } from './sqlSugarDbType';
import { getAPI } from '/@/utils/axios-utils';
import { SysReportDataSourceApi } from '/@/api-services/api';

View File

@ -1,26 +0,0 @@
export const sqlSugarDbTypes = [
{ label: 'MySql', value: '0' },
{ label: 'SqlServer', value: '1' },
{ label: 'Sqlite', value: '2' },
{ label: 'Oracle', value: '3' },
{ label: 'PostgreSQL', value: '4' },
{ label: 'Dm', value: '5' },
{ label: 'Kdbndp', value: '6' },
{ label: 'Oscar', value: '7' },
{ label: 'MySqlConnector', value: '8' },
{ label: 'Access', value: '9' },
{ label: 'OpenGauss', value: '10' },
{ label: 'QuestDB', value: '11' },
{ label: 'HG', value: '12' },
{ label: 'ClickHouse', value: '13' },
{ label: 'GBase', value: '14' },
{ label: 'Odbc', value: '15' },
{ label: 'OceanBaseForOracle', value: '16' },
{ label: 'TDengine', value: '17' },
{ label: 'GaussDB', value: '18' },
{ label: 'OceanBase', value: '19' },
{ label: 'Tidb', value: '20' },
{ label: 'Vastbase', value: '21' },
{ label: 'PolarDB', value: '22' },
{ label: 'Doris', value: '23' },
];

View File

@ -46,31 +46,7 @@
<el-switch v-model="scope.row.status" :active-value="1" :inactive-value="2" size="small" @change="changeStatus(scope)" :disabled="scope.row.id == 1300000000001" />
</template>
<template #row_dbType="{ row }">
<el-tag v-if="row.dbType === 0"> MySql </el-tag>
<el-tag v-else-if="row.dbType === 1"> SqlServer </el-tag>
<el-tag v-else-if="row.dbType === 2"> Sqlite </el-tag>
<el-tag v-else-if="row.dbType === 3"> Oracle </el-tag>
<el-tag v-else-if="row.dbType === 4"> PostgreSQL </el-tag>
<el-tag v-else-if="row.dbType === 5"> Dm </el-tag>
<el-tag v-else-if="row.dbType === 6"> Kdbndp </el-tag>
<el-tag v-else-if="row.dbType === 7"> Oscar </el-tag>
<el-tag v-else-if="row.dbType === 8"> MySqlConnector </el-tag>
<el-tag v-else-if="row.dbType === 9"> Access </el-tag>
<el-tag v-else-if="row.dbType === 10"> OpenGauss </el-tag>
<el-tag v-else-if="row.dbType === 11"> QuestDB </el-tag>
<el-tag v-else-if="row.dbType === 12"> HG </el-tag>
<el-tag v-else-if="row.dbType === 13"> ClickHouse </el-tag>
<el-tag v-else-if="row.dbType === 14"> GBase </el-tag>
<el-tag v-else-if="row.dbType === 15"> Odbc </el-tag>
<el-tag v-else-if="row.dbType === 16"> OceanBaseForOracle </el-tag>
<el-tag v-else-if="row.dbType === 17"> TDengine </el-tag>
<el-tag v-else-if="row.dbType === 18"> GaussDB </el-tag>
<el-tag v-else-if="row.dbType === 19"> OceanBase </el-tag>
<el-tag v-else-if="row.dbType === 20"> Tidb </el-tag>
<el-tag v-else-if="row.dbType === 21"> Vastbase </el-tag>
<el-tag v-else-if="row.dbType === 22"> PolarDB </el-tag>
<el-tag v-else-if="row.dbType === 23"> Doris </el-tag>
<el-tag v-else-if="row.dbType === 900"> Custom </el-tag>
<g-sys-dict v-model="row.dbType" code="db_type" render-as="tag" />
</template>
<template #row_record="{ row }">
<ModifyRecord :data="row" />