mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
refactor: add schema
This commit is contained in:
@@ -22,4 +22,5 @@ export const datasourceApi = {
|
||||
saveField: (data: any) => request.post('/datasource/editField', data),
|
||||
getDs: (id: number) => request.post(`/datasource/get/${id}`),
|
||||
cancelRequests: () => request.cancelRequests(),
|
||||
getSchema: (data: any) => request.post('/datasource/getSchemaByConf', data)
|
||||
}
|
||||
|
||||
@@ -270,7 +270,8 @@
|
||||
"field_original_notes": "Field original notes",
|
||||
"field_notes_1": "Field notes",
|
||||
"no_table": "No Table",
|
||||
"go_add": "Add"
|
||||
"go_add": "Add",
|
||||
"get_schema": "Get Schema"
|
||||
},
|
||||
"model": {
|
||||
"default_model": "Default model",
|
||||
@@ -618,4 +619,4 @@
|
||||
"setting_successfully": "Setting Successfully",
|
||||
"customize_theme_color": "Customize theme color"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,7 +270,8 @@
|
||||
"field_original_notes": "字段原始备注",
|
||||
"field_notes_1": "字段备注",
|
||||
"no_table": "暂无数据表",
|
||||
"go_add": "去添加"
|
||||
"go_add": "去添加",
|
||||
"get_schema": "获取Schema"
|
||||
},
|
||||
"model": {
|
||||
"default_model": "默认模型",
|
||||
@@ -618,4 +619,4 @@
|
||||
"setting_successfully": "设置成功",
|
||||
"customize_theme_color": "自定义主题色"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ const getUploadURL = import.meta.env.VITE_API_BASE_URL + '/datasource/uploadExce
|
||||
const saveLoading = ref<boolean>(false)
|
||||
const uploadLoading = ref(false)
|
||||
const { t } = useI18n()
|
||||
const schemaList = ref<any>([])
|
||||
|
||||
const rules = reactive<FormRules>({
|
||||
name: [
|
||||
@@ -340,6 +341,16 @@ const check = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const getSchema = () => {
|
||||
schemaList.value = []
|
||||
const requestObj = buildConf()
|
||||
datasourceApi.getSchema(requestObj).then((res: any) => {
|
||||
for (let item of res) {
|
||||
schemaList.value.push({ label: item, value: item })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
onBeforeUnmount(() => (saveLoading.value = false))
|
||||
|
||||
const next = debounce(async (formEl: FormInstance | undefined) => {
|
||||
@@ -644,13 +655,30 @@ defineExpose({
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="haveSchema.includes(form.type)" label="Schema" prop="dbSchema">
|
||||
<el-input
|
||||
<el-form-item v-if="haveSchema.includes(form.type)" class="schema-label" prop="dbSchema">
|
||||
<template #label>
|
||||
<span class="name">Schema<i class="required" /></span>
|
||||
<el-button text size="small" @click="getSchema">
|
||||
<template #icon>
|
||||
<Icon name="icon_add_outlined">
|
||||
<Plus class="svg-icon" />
|
||||
</Icon>
|
||||
</template>
|
||||
{{ t('datasource.get_schema') }}
|
||||
</el-button>
|
||||
</template>
|
||||
<el-select
|
||||
v-model="form.dbSchema"
|
||||
clearable
|
||||
filterable
|
||||
:placeholder="$t('datasource.please_enter') + $t('common.empty') + 'Schema'"
|
||||
/>
|
||||
<el-button v-if="false" link type="primary" :icon="Plus">Get Schema</el-button>
|
||||
>
|
||||
<el-option
|
||||
v-for="item in schemaList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('ds.form.timeout')" prop="timeout">
|
||||
<el-input-number
|
||||
@@ -905,4 +933,24 @@ defineExpose({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.schema-label {
|
||||
::v-deep(.ed-form-item__label) {
|
||||
display: flex !important;
|
||||
justify-content: space-between;
|
||||
padding-right: 0;
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.name {
|
||||
.required::after {
|
||||
content: '*';
|
||||
color: #f54a45;
|
||||
margin-left: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user