diff --git a/src/api/infra/fileConfig/index.ts b/src/api/infra/fileConfig/index.ts index d6c00996..b72f18b7 100644 --- a/src/api/infra/fileConfig/index.ts +++ b/src/api/infra/fileConfig/index.ts @@ -17,7 +17,7 @@ export interface FileClientConfig { export interface FileConfigVO { id: number name: string - storage: number + storage: any master: boolean visible: boolean config: FileClientConfig diff --git a/src/config/axios/request.ts b/src/config/axios/request.ts new file mode 100644 index 00000000..d65842c2 --- /dev/null +++ b/src/config/axios/request.ts @@ -0,0 +1,50 @@ +import { service } from './service' + +import { config } from './config' + +const { default_headers } = config + +const request = (option: any) => { + const { url, method, params, data, headersType, responseType } = option + return service({ + url: url, + method, + params, + data, + responseType: responseType, + headers: { + 'Content-Type': headersType || default_headers + } + }) +} +export default { + get: async (option: any) => { + const res = await request({ method: 'GET', ...option }) + return res as unknown as T + }, + post: async (option: any) => { + const res = await request({ method: 'POST', ...option }) + return res as unknown as T + }, + delete: async (option: any) => { + const res = await request({ method: 'DELETE', ...option }) + return res as unknown as T + }, + put: async (option: any) => { + const res = await request({ method: 'PUT', ...option }) + return res as unknown as T + }, + patch: async (option: any) => { + const res = await request({ method: 'PATCH', ...option }) + return res as unknown as T + }, + download: async (option: any) => { + const res = await request({ method: 'GET', responseType: 'blob', ...option }) + return res as unknown as Promise + }, + upload: async (option: any) => { + option.headersType = 'multipart/form-data' + const res = await request({ method: 'POST', ...option }) + return res as unknown as Promise + } +} diff --git a/src/views/infra/config/config.data.ts b/src/views/infra/config/config.data.ts new file mode 100644 index 00000000..41acfa15 --- /dev/null +++ b/src/views/infra/config/config.data.ts @@ -0,0 +1,90 @@ +import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' +const { t } = useI18n() // 国际化 + +// 表单校验 +export const rules = reactive({ + category: [required], + name: [required], + key: [required], + value: [required] +}) + +// CrudSchema +const crudSchemas = reactive({ + primaryKey: 'id', + primaryType: null, + action: true, + columns: [ + { + title: '参数分类', + field: 'category' + }, + { + title: '参数名称', + field: 'name', + isSearch: true + }, + { + title: '参数键名', + field: 'key', + isSearch: true + }, + { + title: '参数键值', + field: 'value' + }, + { + title: '系统内置', + field: 'type', + dictType: DICT_TYPE.INFRA_CONFIG_TYPE, + dictClass: 'number', + isSearch: true + }, + { + title: '是否可见', + field: 'visible', + table: { + slots: { + default: 'visible_default' + } + }, + form: { + component: 'RadioButton', + componentProps: { + options: [ + { label: '是', value: true }, + { label: '否', value: false } + ] + } + } + }, + { + title: t('form.remark'), + field: 'remark', + isTable: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + rows: 4 + }, + colProps: { + span: 24 + } + } + }, + { + title: t('common.createTime'), + field: 'createTime', + formatter: 'formatDate', + isForm: false, + search: { + show: true, + itemRender: { + name: 'XDataTimePicker' + } + } + } + ] +}) +export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/src/views/system/tenantPackage/tenantPackage.data.ts b/src/views/system/tenantPackage/tenantPackage.data.ts index 47db56d4..d57dee29 100644 --- a/src/views/system/tenantPackage/tenantPackage.data.ts +++ b/src/views/system/tenantPackage/tenantPackage.data.ts @@ -43,7 +43,7 @@ const crudSchemas = reactive({ { title: t('form.remark'), field: 'remark', - isTable: false, + isTable: true, isSearch: true, form: { component: 'Input',