2024-10-05 22:56:44 +08:00
|
|
|
import type { FormSchemaGetter, VxeGridProps } from '#/adapter';
|
2024-09-23 15:04:23 +08:00
|
|
|
|
2024-10-07 17:45:34 +08:00
|
|
|
import { reactive } from 'vue';
|
|
|
|
|
2024-09-24 11:23:02 +08:00
|
|
|
import { getPopupContainer } from '@vben/utils';
|
|
|
|
|
2024-10-07 17:45:34 +08:00
|
|
|
import { dictOptionSelectList } from '#/api/system/dict/dict-type';
|
2024-10-05 22:56:44 +08:00
|
|
|
import { renderDictTag } from '#/utils/render';
|
|
|
|
|
2024-10-07 17:45:34 +08:00
|
|
|
/**
|
|
|
|
* updateSchema无法赋值
|
|
|
|
* TODO: 使用updateSchema重构
|
|
|
|
*/
|
|
|
|
const dictTypeOptions = reactive<{ label: string; value: string }[]>([]);
|
|
|
|
(async () => {
|
|
|
|
const resp = await dictOptionSelectList();
|
|
|
|
const options = resp.map((item) => ({
|
|
|
|
label: item.dictName,
|
|
|
|
value: item.dictType,
|
|
|
|
}));
|
|
|
|
dictTypeOptions.push(...options);
|
|
|
|
})();
|
|
|
|
|
2024-09-24 11:23:02 +08:00
|
|
|
export const querySchema: FormSchemaGetter = () => [
|
|
|
|
{
|
|
|
|
component: 'Select',
|
2024-10-07 17:45:34 +08:00
|
|
|
dependencies: {
|
|
|
|
show: () => false,
|
|
|
|
triggerFields: [''],
|
|
|
|
},
|
2024-09-24 11:23:02 +08:00
|
|
|
componentProps: {
|
|
|
|
getPopupContainer,
|
2024-10-07 17:45:34 +08:00
|
|
|
options: dictTypeOptions,
|
2024-09-24 11:23:02 +08:00
|
|
|
},
|
|
|
|
fieldName: 'dictType',
|
|
|
|
label: '字典类型',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Input',
|
|
|
|
fieldName: 'dictLabel',
|
|
|
|
label: '字典标签',
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
2024-10-05 22:56:44 +08:00
|
|
|
export const columns: VxeGridProps['columns'] = [
|
|
|
|
{ type: 'checkbox', width: 60 },
|
|
|
|
{
|
|
|
|
title: '字典标签',
|
|
|
|
field: 'cssClass',
|
|
|
|
slots: {
|
|
|
|
default: ({ row }) => {
|
|
|
|
const { dictValue } = row;
|
|
|
|
return renderDictTag(dictValue, [row as any]);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '字典键值',
|
|
|
|
field: 'dictValue',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '字典排序',
|
|
|
|
field: 'dictSort',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '备注',
|
|
|
|
field: 'remark',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '创建时间',
|
|
|
|
field: 'createTime',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
field: 'action',
|
|
|
|
fixed: 'right',
|
|
|
|
slots: { default: 'action' },
|
|
|
|
title: '操作',
|
|
|
|
width: 180,
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
2024-09-23 15:04:23 +08:00
|
|
|
export const drawerSchema: FormSchemaGetter = () => [
|
|
|
|
{
|
|
|
|
component: 'Input',
|
|
|
|
dependencies: {
|
|
|
|
show: () => false,
|
|
|
|
triggerFields: [''],
|
|
|
|
},
|
|
|
|
fieldName: 'dictCode',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Input',
|
|
|
|
componentProps: {
|
|
|
|
disabled: true,
|
|
|
|
},
|
|
|
|
fieldName: 'dictType',
|
|
|
|
label: '字典类型',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Input',
|
|
|
|
fieldName: 'listClass',
|
|
|
|
label: '标签样式',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Input',
|
|
|
|
fieldName: 'dictLabel',
|
|
|
|
label: '数据标签',
|
|
|
|
rules: 'required',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Input',
|
|
|
|
fieldName: 'dictValue',
|
|
|
|
label: '数据键值',
|
|
|
|
rules: 'required',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Textarea',
|
|
|
|
componentProps: {
|
|
|
|
placeholder: '可使用tailwind类名 如bg-blue w-full h-full等',
|
|
|
|
},
|
|
|
|
fieldName: 'cssClass',
|
|
|
|
formItemClass: 'items-baseline',
|
|
|
|
help: '标签的css样式, 可添加已经编译的css类名',
|
|
|
|
label: 'css类名',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'InputNumber',
|
|
|
|
fieldName: 'dictSort',
|
|
|
|
label: '显示排序',
|
|
|
|
rules: 'required',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
component: 'Textarea',
|
|
|
|
fieldName: 'remark',
|
|
|
|
formItemClass: 'items-baseline',
|
|
|
|
label: '备注',
|
|
|
|
},
|
|
|
|
];
|