211 lines
3.8 KiB
TypeScript
211 lines
3.8 KiB
TypeScript
import { BasicColumn, FormSchema } from '@/components/Table';
|
|
import { h } from 'vue';
|
|
import { Tag } from 'ant-design-vue';
|
|
import { getRoleListByPage } from '@/api/demo/system';
|
|
|
|
export const columns: BasicColumn[] = [
|
|
{
|
|
title: '编码',
|
|
dataIndex: 'codeName',
|
|
width: 120,
|
|
},
|
|
{
|
|
title: '名称',
|
|
dataIndex: 'name',
|
|
width: 100,
|
|
},
|
|
{
|
|
title: '授权类型',
|
|
dataIndex: 'objectType',
|
|
width: 100,
|
|
customRender: ({ record }) => {
|
|
let color = '';
|
|
let text = '';
|
|
const formType = record.objectType;
|
|
if (formType == 2 || formType == '2') {
|
|
color = 'green';
|
|
text = '角色';
|
|
}
|
|
if (formType == 1 || formType == '1') {
|
|
color = 'yellow';
|
|
text = '用户';
|
|
}
|
|
return h(Tag, { color: color }, () => text);
|
|
},
|
|
},
|
|
{
|
|
title: '授权对象',
|
|
dataIndex: 'objectName',
|
|
width: 100,
|
|
},
|
|
{
|
|
title: '类型',
|
|
dataIndex: 'type',
|
|
width: 100,
|
|
customRender: ({ record }) => {
|
|
let color = '';
|
|
let text = '';
|
|
const formType = record.type;
|
|
if (formType == 2 || formType == '2') {
|
|
color = 'green';
|
|
text = '自定义表单';
|
|
}
|
|
if (formType == 1 || formType == '1') {
|
|
color = 'yellow';
|
|
text = '普通';
|
|
}
|
|
return h(Tag, { color: color }, () => text);
|
|
},
|
|
},
|
|
{
|
|
title: '创建人',
|
|
dataIndex: 'createUserName',
|
|
width: 100,
|
|
},
|
|
{
|
|
title: '创建时间',
|
|
dataIndex: 'createDate',
|
|
width: 120,
|
|
},
|
|
];
|
|
|
|
const colProps = {
|
|
span: 24,
|
|
};
|
|
|
|
export const searchFormSchema: FormSchema[] = [
|
|
{
|
|
field: 'key',
|
|
label: '关键字',
|
|
component: 'Input',
|
|
colProps: { span: 8 },
|
|
componentProps: {
|
|
placeholder: '请输入名称/编号',
|
|
},
|
|
},
|
|
];
|
|
|
|
export const formSchema: FormSchema[] = [
|
|
{
|
|
field: 'itemDetailId',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'itemId',
|
|
label: '项目ID',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'parentId',
|
|
label: '上级',
|
|
component: 'TreeSelect',
|
|
componentProps: {
|
|
fieldNames: {
|
|
label: 'itemName',
|
|
key: 'itemId',
|
|
value: 'itemValue',
|
|
},
|
|
getPopupContainer: () => document.body,
|
|
},
|
|
colProps,
|
|
},
|
|
{
|
|
field: 'itemCode',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'itemName',
|
|
label: '项目名',
|
|
component: 'Input',
|
|
required: true,
|
|
colProps,
|
|
},
|
|
{
|
|
field: 'itemValue',
|
|
label: '项目值',
|
|
component: 'Input',
|
|
required: true,
|
|
colProps,
|
|
},
|
|
{
|
|
field: 'quickQuery',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'simpleSpelling',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'isDefault',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'sortCode',
|
|
label: '排序',
|
|
component: 'InputNumber',
|
|
required: true,
|
|
colProps,
|
|
},
|
|
{
|
|
field: 'deleteMark',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'enabledMark',
|
|
label: '状态',
|
|
component: 'Switch',
|
|
colProps,
|
|
ifShow: false,
|
|
render: (scope) => {
|
|
return h('Switch', {
|
|
props: {
|
|
value: scope.model?.enabledMark === 1,
|
|
},
|
|
});
|
|
},
|
|
},
|
|
{
|
|
field: 'description',
|
|
label: '备注',
|
|
component: 'InputTextArea',
|
|
colProps,
|
|
},
|
|
{
|
|
field: 'createDate',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'createUserId',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'createUserName',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'modifyDate',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'modifyUserId',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
{
|
|
field: 'modifyUserName',
|
|
component: 'Input',
|
|
ifShow: false,
|
|
},
|
|
];
|