import { BasicColumn, FormSchema } from '@/components/Table'; import { h } from 'vue'; import { Tag } from 'ant-design-vue'; import Icon from '@/components/Icon/Icon.vue'; export const columns: BasicColumn[] = [ { title: '按钮名称', dataIndex: 'name', }, { title: 'DOMID', dataIndex: 'domId', }, { title: '排序', dataIndex: 'sort', }, { title: '样式', dataIndex: 'class', }, { title: '状态', dataIndex: 'enabledMark', width: 80, customRender: ({ record }) => { const color = record.status == 1 ? 'blue' : 'red'; const text = record.status == 1 ? '启用' : '停用'; return h(Tag, { color: color }, () => text); }, }, ]; const isDir = (type: string) => type === '0'; const isMenu = (type: string) => type === '1'; const isButton = (type: string) => type === '2'; export const searchFormSchema: FormSchema[] = [ { field: 'key', label: '关键字', component: 'Input', colProps: { span: 8 }, }, ]; export const formSchema: FormSchema[] = [ { field: 'type', label: '类型', component: 'RadioButtonGroup', defaultValue: '1', componentProps: { options: [ // { label: '目录', value: '0' }, { label: '菜单', value: '1' }, { label: '按钮', value: '2' }, ], }, colProps: { lg: 24, md: 24 }, }, { field: 'id', label: '名称', component: 'Input', ifShow: false, }, { field: 'name', label: '名称', component: 'Input', required: true, }, { field: 'parentId', label: '上级', component: 'TreeSelect', componentProps: { fieldNames: { label: 'name', key: 'id', value: 'id', }, getPopupContainer: () => document.body, }, ifShow: ({ values }) => !isButton(values.type), }, { field: 'moduleId', label: '菜单', component: 'TreeSelect', componentProps: { fieldNames: { label: 'name', key: 'id', value: 'id', }, getPopupContainer: () => document.body, }, ifShow: ({ values }) => isButton(values.type), required: true, }, { field: 'domId', label: 'DMOID', component: 'Input', required: true, ifShow: ({ values }) => isButton(values.type), }, { field: 'sortNo', label: '排序', component: 'InputNumber', ifShow: ({ values }) => !isButton(values.type), }, { field: 'sort', label: '排序', component: 'InputNumber', ifShow: ({ values }) => isButton(values.type), }, { field: 'class', helpMessage: ['参考参数值', 'success、warning、error'], label: '样式', component: 'Input', ifShow: ({ values }) => isButton(values.type), }, { field: 'iconName', label: '图标', component: 'IconPicker', ifShow: ({ values }) => !isButton(values.type), }, { field: 'url', label: '路由地址', component: 'Input', required: true, ifShow: ({ values }) => !isButton(values.type), }, // { // field: 'component', // label: '组件路径', // component: 'Input', // ifShow: ({ values }) => isMenu(values.type), // }, { field: 'code', label: '权限标识', component: 'Input', ifShow: ({ values }) => !isButton(values.type), }, { field: 'status', label: '是否启用', component: 'RadioButtonGroup', defaultValue: 1, componentProps: { options: [ { label: '否', value: 0 }, { label: '是', value: 1 }, ], }, }, // { // field: 'isExt', // label: '是否外链', // component: 'RadioButtonGroup', // defaultValue: '0', // componentProps: { // options: [ // { label: '否', value: '0' }, // { label: '是', value: '1' }, // ], // }, // ifShow: ({ values }) => !isButton(values.type), // }, // { // field: 'keepalive', // label: '是否缓存', // component: 'RadioButtonGroup', // defaultValue: '0', // componentProps: { // options: [ // { label: '否', value: '0' }, // { label: '是', value: '1' }, // ], // }, // ifShow: ({ values }) => isMenu(values.type), // }, // { // field: 'show', // label: '是否显示', // component: 'RadioButtonGroup', // defaultValue: '0', // componentProps: { // options: [ // { label: '是', value: '0' }, // { label: '否', value: '1' }, // ], // }, // ifShow: ({ values }) => !isButton(values.type), // }, ];