fix: 添加数据库驱动配置

This commit is contained in:
sy2084 2024-07-25 16:57:19 +08:00
parent 15160e4d18
commit 3307392d58
3 changed files with 89 additions and 16 deletions

7
components.d.ts vendored
View File

@ -10,9 +10,6 @@ declare module 'vue' {
ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
ABreadcrumbItem: typeof import('ant-design-vue/es')['BreadcrumbItem']
AButton: typeof import('ant-design-vue/es')['Button']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup']
ACol: typeof import('ant-design-vue/es')['Col']
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
ADropdown: typeof import('ant-design-vue/es')['Dropdown']
AFloatButton: typeof import('ant-design-vue/es')['FloatButton']
@ -26,13 +23,9 @@ declare module 'vue' {
APagination: typeof import('ant-design-vue/es')['Pagination']
APopconfirm: typeof import('ant-design-vue/es')['Popconfirm']
ARadio: typeof import('ant-design-vue/es')['Radio']
ARadioButton: typeof import('ant-design-vue/es')['RadioButton']
ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
ARangePicker: typeof import('ant-design-vue/es')['RangePicker']
ARow: typeof import('ant-design-vue/es')['Row']
ASelect: typeof import('ant-design-vue/es')['Select']
ASpace: typeof import('ant-design-vue/es')['Space']
ASpin: typeof import('ant-design-vue/es')['Spin']
ASwitch: typeof import('ant-design-vue/es')['Switch']
ATable: typeof import('ant-design-vue/es')['Table']
RouterLink: typeof import('vue-router')['RouterLink']

View File

@ -55,7 +55,56 @@
:options="tableTypes"
/>
</a-form-item>
<a-form-item label="数据库特殊配置" name="is_other_database">
<a-switch
v-model:checked="formData.is_other_database"
:checkedValue="1"
:unCheckedValue="0"
@change="isOtherChange"
/>
</a-form-item>
<template v-if="formData.is_other_database">
<a-form-item label="数据库驱动" name="drive_type">
<a-radio-group v-model:value="formData.drive_type">
<a-radio :value="1">MySQL</a-radio>
<a-radio :value="2">Click House</a-radio>
</a-radio-group>
</a-form-item>
<a-form-item label="数据库地址" name="database_address">
<a-input
placeholder="请输入数据库地址"
v-model:value="formData.database_address"
/>
</a-form-item>
<a-form-item label="数据库端口" name="database_port">
<a-input-number
placeholder="请输入数据库端口"
v-model:value="formData.database_port"
style="width: 200px"
/>
</a-form-item>
<a-form-item label="数据库名称" name="database_name">
<a-input
placeholder="请输入数据库名称"
v-model:value="formData.database_name"
/>
</a-form-item>
<a-form-item label="数据库用户" name="database_username">
<a-input
placeholder="请输入数据库用户"
v-model:value="formData.database_username"
/>
</a-form-item>
<a-form-item label="数据库密码" name="database_password">
<a-space>
<a-input
placeholder="请输入数据库密码"
v-model:value="formData.database_password"
/>
</a-space>
</a-form-item>
</template>
</a-form>
</a-modal>
</template>
@ -104,6 +153,13 @@ const formData = ref({
// show_type_id: undefined,
original_sql: undefined,
table: undefined,
is_other_database: 0,
drive_type: 1,
database_address: undefined,
database_port: undefined,
database_name: undefined,
database_username: undefined,
database_password: undefined,
});
watch(
@ -121,6 +177,13 @@ watch(
// show_type_id: newVal.show_type_id,
original_sql: newVal.original_sql,
table: newVal.table,
drive_type: newVal.drive_type,
is_other_database: newVal.is_other_database,
database_address: newVal.database_address,
database_port: newVal.database_port,
database_name: newVal.database_name,
database_username: newVal.database_username,
database_password: newVal.database_password,
};
}
}
@ -132,6 +195,15 @@ const toGetDbTable = () => {
});
};
const isOtherChange = (val) => {
formData.value.drive_type = val ? 1 : undefined
formData.value.database_address = undefined
formData.value.database_port = undefined
formData.value.database_name = undefined
formData.value.database_username = undefined
formData.value.database_password = undefined
}
const resetFormData = () => {
formData.value = {
project_id: undefined,
@ -141,6 +213,13 @@ const resetFormData = () => {
// show_type_id: undefined,
original_sql: undefined,
table: undefined,
is_other_database: 0,
drive_type: undefined,
database_address: undefined,
database_port: undefined,
database_name: undefined,
database_username: undefined,
database_password: undefined,
};
};

View File

@ -59,6 +59,12 @@
>
</a-space>
</a-form-item>
<a-form-item label="数据库驱动" name="drive_type">
<a-radio-group v-model:value="formData.drive_type">
<a-radio :value="1">MySQL</a-radio>
<a-radio :value="2">Click House</a-radio>
</a-radio-group>
</a-form-item>
</a-form>
</a-modal>
</template>
@ -98,12 +104,6 @@ const formRules = {
database_name: [
{ required: true, message: "请输入数据库名称", trigger: "submit" },
],
database_username: [
{ required: true, message: "请输入数据库用户", trigger: "submit" },
],
database_password: [
{ required: true, message: "请输入数据库密码", trigger: "submit" },
],
};
const formRef = ref();
@ -116,6 +116,7 @@ const formData = ref({
database_name: undefined,
database_username: undefined,
database_password: undefined,
drive_type: 1,
});
watch(
@ -138,6 +139,7 @@ const toCheckDbConnect = () => {
database_address: formData.value.database_address,
database_username: formData.value.database_username,
database_password: formData.value.database_password,
drive_type: formData.value.drive_type,
}).then((res) => {
message.success(res.message);
});
@ -149,8 +151,6 @@ const validateConnect = () => {
database_name: "请输入数据库名称",
database_port: "请输入数据库端口",
database_address: "请输入数据库地址",
database_username: "请输入数据库用户",
database_password: "请输入数据库密码",
};
for (const key in fields) {
if (!formData.value[key]) {
@ -171,6 +171,7 @@ const resetFormData = () => {
database_name: undefined,
database_username: undefined,
database_password: undefined,
drive_type: 1,
};
};