feat(generator): 代码生成字段配置支持选择关联字典

This commit is contained in:
2024-08-27 00:02:26 +08:00
parent fcbc3ebbff
commit 6574181110
3 changed files with 24 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
import type * as Tool from './type'
import type { LabelValueState } from '@/types/global'
import http from '@/utils/http'
const BASE_URL = '/generator'
@@ -36,3 +37,8 @@ export function generate(tableNames: Array<string>) {
responseType: 'blob'
})
}
/** @desc 查询字典列表 */
export function listFieldConfigDict() {
return http.get<LabelValueState[]>(`${BASE_URL}/dict`)
}

View File

@@ -27,6 +27,7 @@ export interface FieldConfigResp {
showInQuery: boolean
formType: string
queryType: string
dictCode: string
createTime?: string
}
export interface GenConfigResp {

View File

@@ -4,7 +4,7 @@
:title="title"
:mask-closable="false"
:esc-to-close="false"
:width="width >= 1050 ? 1050 : '100%'"
:width="width >= 1350 ? 1350 : '100%'"
@before-ok="save"
@close="reset"
>
@@ -106,6 +106,15 @@
/>
<span v-else>无需设置</span>
</template>
<template #dictCode="{ record }">
<a-select
v-model="record.dictCode"
:options="dictList"
placeholder="请选择字典类型"
allow-search
allow-clear
/>
</template>
</GiTable>
</a-tab-pane>
</a-tabs>
@@ -115,7 +124,8 @@
<script setup lang="ts">
import { type FormInstance, Message } from '@arco-design/web-vue'
import { useWindowSize } from '@vueuse/core'
import { type FieldConfigResp, type GeneratorConfigResp, getGenConfig, listFieldConfig, saveGenConfig } from '@/apis'
import { type FieldConfigResp, type GeneratorConfigResp, getGenConfig, listFieldConfig, listFieldConfigDict, saveGenConfig } from '@/apis'
import type { LabelValueState } from '@/types/global'
import type { TableInstanceColumns } from '@/components/GiTable/type'
import { useForm } from '@/hooks'
import { useDict } from '@/hooks/app'
@@ -136,9 +146,11 @@ const columns: TableInstanceColumns[] = [
{ title: '必填', slotName: 'isRequired', width: 60, align: 'center' },
{ title: '查询', slotName: 'showInQuery', width: 60, align: 'center' },
{ title: '表单类型', slotName: 'formType', width: 150 },
{ title: '查询方式', slotName: 'queryType' }
{ title: '查询方式', slotName: 'queryType' },
{ title: '关联字典', slotName: 'dictCode' }
]
const dictList = ref<LabelValueState[]>([])
const dataList = ref<FieldConfigResp[]>([])
const loading = ref(false)
// 查询列表数据
@@ -147,6 +159,8 @@ const getDataList = async (tableName: string, requireSync: boolean) => {
loading.value = true
const res = await listFieldConfig(tableName, requireSync)
dataList.value = res.data
const { data } = await listFieldConfigDict()
dictList.value = data
} finally {
loading.value = false
}