2025-03-10 17:08:02 +08:00
|
|
|
import { BasicColumn } from '/@/components/Table';
|
|
|
|
import { FormSchema } from '/@/components/Table';
|
|
|
|
import { dictItemCheck } from './dict.api';
|
|
|
|
import { rules } from '/@/utils/helper/validator';
|
|
|
|
import { h } from "vue";
|
|
|
|
|
|
|
|
export const columns: BasicColumn[] = [
|
|
|
|
{
|
|
|
|
title: '字典名称',
|
|
|
|
dataIndex: 'dictName',
|
|
|
|
width: 240,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '字典编码',
|
|
|
|
dataIndex: 'dictCode',
|
|
|
|
width: 240,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '描述',
|
|
|
|
dataIndex: 'description',
|
|
|
|
// width: 120
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
export const recycleBincolumns: BasicColumn[] = [
|
|
|
|
{
|
|
|
|
title: '字典名称',
|
|
|
|
dataIndex: 'dictName',
|
|
|
|
width: 120,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '字典编码',
|
|
|
|
dataIndex: 'dictCode',
|
|
|
|
width: 120,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '描述',
|
|
|
|
dataIndex: 'description',
|
|
|
|
width: 120,
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
export const searchFormSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
label: '字典名称',
|
|
|
|
field: 'dictName',
|
|
|
|
component: 'JInput',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '字典编码',
|
|
|
|
field: 'dictCode',
|
|
|
|
component: 'JInput',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
export const formSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
label: '',
|
|
|
|
field: 'id',
|
|
|
|
component: 'Input',
|
|
|
|
show: false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '字典名称',
|
|
|
|
field: 'dictName',
|
|
|
|
required: true,
|
|
|
|
component: 'Input',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '字典编码',
|
|
|
|
field: 'dictCode',
|
|
|
|
component: 'Input',
|
|
|
|
dynamicDisabled: ({ values }) => {
|
|
|
|
return !!values.id;
|
|
|
|
},
|
|
|
|
dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('sys_dict', 'dict_code', model, schema, true),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '描述',
|
|
|
|
field: 'description',
|
|
|
|
component: 'Input',
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
export const dictItemColumns: BasicColumn[] = [
|
|
|
|
{
|
|
|
|
title: '名称',
|
|
|
|
dataIndex: 'itemText',
|
|
|
|
width: 80,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: '数据值',
|
|
|
|
dataIndex: 'itemValue',
|
|
|
|
width: 80,
|
|
|
|
},
|
2025-04-28 16:07:15 +08:00
|
|
|
{
|
|
|
|
title: '描述',
|
|
|
|
dataIndex: 'description',
|
|
|
|
width: 100,
|
|
|
|
},
|
2025-03-10 17:08:02 +08:00
|
|
|
{
|
|
|
|
title: '字典颜色',
|
|
|
|
dataIndex: 'itemColor',
|
|
|
|
width: 80,
|
|
|
|
align:'center',
|
|
|
|
customRender:({ text }) => {
|
|
|
|
return h('div', {
|
|
|
|
style: {"background": text, "width":"18px","height":"18px","border-radius":"50%","margin":"0 auto"}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
export const dictItemSearchFormSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
label: '名称',
|
|
|
|
field: 'itemText',
|
|
|
|
component: 'Input',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '状态',
|
|
|
|
field: 'status',
|
|
|
|
component: 'JDictSelectTag',
|
|
|
|
componentProps: {
|
|
|
|
dictCode: 'dict_item_status',
|
|
|
|
stringToNumber: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
export const itemFormSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
label: '',
|
|
|
|
field: 'id',
|
|
|
|
component: 'Input',
|
|
|
|
show: false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '名称',
|
|
|
|
field: 'itemText',
|
|
|
|
required: true,
|
|
|
|
component: 'Input',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '数据值',
|
|
|
|
field: 'itemValue',
|
|
|
|
component: 'Input',
|
|
|
|
dynamicRules: ({ values, model }) => {
|
|
|
|
return [
|
|
|
|
{
|
|
|
|
required: true,
|
|
|
|
validator: (_, value) => {
|
|
|
|
if (!value) {
|
|
|
|
return Promise.reject('请输入数据值');
|
|
|
|
}
|
|
|
|
if (new RegExp("[`~!@#$^&*()=|{}'.<>《》/?!¥()—【】‘;:”“。,、?]").test(value)) {
|
|
|
|
return Promise.reject('数据值不能包含特殊字符!');
|
|
|
|
}
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
let params = {
|
|
|
|
dictId: values.dictId,
|
|
|
|
id: model.id,
|
|
|
|
itemValue: value,
|
|
|
|
};
|
|
|
|
dictItemCheck(params)
|
|
|
|
.then((res) => {
|
|
|
|
res.success ? resolve() : reject(res.message || '校验失败');
|
|
|
|
})
|
|
|
|
.catch((err) => {
|
|
|
|
reject(err.message || '验证失败');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
];
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '颜色值',
|
|
|
|
field: 'itemColor',
|
|
|
|
component: 'Input',
|
|
|
|
slot:'itemColor'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '描述',
|
|
|
|
field: 'description',
|
|
|
|
component: 'Input',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
field: 'sortOrder',
|
|
|
|
label: '排序',
|
|
|
|
component: 'InputNumber',
|
|
|
|
defaultValue: 1,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
field: 'status',
|
|
|
|
label: '是否启用',
|
2025-03-19 09:47:28 +08:00
|
|
|
defaultValue: 0,
|
2025-03-10 17:08:02 +08:00
|
|
|
component: 'JDictSelectTag',
|
|
|
|
componentProps: {
|
|
|
|
type: 'radioButton',
|
|
|
|
dictCode: 'dict_item_status',
|
|
|
|
stringToNumber: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
];
|