@jdlinker/system
Version:
jdLinker 系统模块
118 lines (115 loc) • 2.68 kB
text/typescript
import { BasicColumn, FormSchema, render } from '@jdlinker/ui';
import { h } from 'vue';
import { Switch } from 'ant-design-vue';
import { setMaster } from './service';
//列表数据
export const columns: BasicColumn[] = [
{
title: '配置名称',
align: 'center',
dataIndex: 'name'
},
{
title: '存储器',
align: 'center',
dataIndex: 'storage',
customRender: ({ text }) => {
return render.renderDict(text, 'storage_type');
}
},
{
title: '开启',
align: 'center',
dataIndex: 'master',
customRender: ({ record }) => {
if (!Reflect.has(record, 'pendingStatus')) {
record.pendingStatus = false;
}
return h(Switch, {
checked: record.master === true,
checkedChildren: '启用',
unCheckedChildren: '禁用',
loading: record.pendingStatus,
onChange(checked: boolean) {
record.pendingStatus = true;
const newStatus = checked ? true : false;
setMaster(record.id, newStatus)
.then(() => {
record.master = newStatus;
})
.catch(() => {})
.finally(() => {
record.pendingStatus = false;
});
}
});
}
},
{
title: '备注',
align: 'center',
dataIndex: 'remark'
},
{
title: '创建时间',
align: 'center',
dataIndex: 'createTime'
}
];
//查询数据
export const searchFormSchema: FormSchema[] = [
{
label: '配置名称',
field: 'name',
component: 'Input'
},
{
label: '存储器',
field: 'storage',
component: 'Input'
}
];
//表单数据
export const formSchema: FormSchema[] = [
{
label: '配置名称',
field: 'name',
component: 'Input',
dynamicRules: () => {
return [{ required: true, message: '请输入配置名称!' }];
}
},
{
label: '存储器',
field: 'storage',
component: 'JDictSelectTag',
componentProps: {
dictCode: 'storage_type',
placeholder: '请选择存储器',
stringToNumber: true
},
dynamicRules: () => {
return [{ required: true, message: '请输入存储器!' }];
}
},
{
label: '备注',
field: 'remark',
component: 'Input'
},
// TODO 主键隐藏字段,目前写死为ID
{
label: '',
field: 'id',
component: 'Input',
show: false
}
];
/**
* 流程表单调用这个方法获取formSchema
* @param _formData
*/
export function getBpmFormSchema(_formData): FormSchema[] {
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
return formSchema;
}