import { BasicColumn } from '/@/components/Table'; import { FormSchema } from '/@/components/Table'; import { rules } from '/@/utils/helper/validator'; import { render } from '/@/utils/common/renderUtils'; import { ref, onMounted,reactive } from 'vue'; // 学科过滤方法 const filterMajor = (value, row) => { console.log(value, row); // 打印过滤值和行数据 return row === value; }; const groupOptions=ref() // 创建一个简单的事件总线 export const updateGroupOptions = reactive({ updateGroupOptions(newOptions: any) { groupOptions.value = newOptions; }, }); //列表数据 export const columns: BasicColumn[] = [ { title: '姓名', align: 'center', dataIndex: 'userName', }, { title: '用户ID', align: 'center', dataIndex: 'userId', }, { title: '工号', align: 'center', dataIndex: 'teacherId', }, { title: '手机号', align: 'center', dataIndex: 'phone', }, { title: '学科', align: 'center', dataIndex: 'majorId', filters: [ { text: '语文', value: 1 }, { text: '地理', value: 4 }, { text: '历史', value: 7 }, { text: '政治', value: 8 }, ], filterMultiple: false, // 是否支持多选过滤 //value: 用户选择的过滤值(如 1)。 onFilter: (value, record) => filterMajor(value, record.majorId), // 过滤方法 }, { title: '所属分组', align: 'center', //dataIndex: 'groupId', customRender: ({ text }) => { const group = groupOptions.value.find(item => item.value === text.groupId); if (group) { return group.label; } return '未知分组'; }, }, { title: '是否第一次阅卷', align: 'center', dataIndex: 'status', }, //{ // title: '用户专业id', // align: 'center', // dataIndex: 'userMajorId', //}, //{ // title: '使用次数', // align: 'center', // dataIndex: 'numberuse', //}, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ { label: '用户名', field: 'userName', component: 'Input', //colProps: {span: 6}, }, ]; //表单数据 export const formSchema: FormSchema[] = [ { label: '用户id', field: 'userId', component: 'Input', show: false, //dynamicRules: ({ model, schema }) => { // return [{ required: true, message: '请输入用户id!' }]; //}, }, { label: '姓名', field: 'userName', component: 'Input', dynamicRules: ({ model, schema }) => { return [{ required: true, message: '请输入姓名!' }]; }, }, { label: '工号', field: 'teacherId', component: 'Input', //dynamicRules: ({ model, schema }) => { // return [{ required: true, message: '请输入工号!' }]; //}, }, { label: '手机号', field: 'phone', component: 'Input', dynamicRules: ({ model, schema }) => { return [{ required: true, message: '请输入手机号!' }]; }, }, { label: '所属分组', field: 'groupId', component: 'Select', componentProps: { options: groupOptions, // 动态设置分组选项 }, //dynamicRules: ({ model, schema }) => { // return [{ required: true, message: '请选择分组!' }]; //}, }, //{ // label: '使用次数', // field: 'numberuse', // component: 'InputNumber', // dynamicRules: ({ model, schema }) => { // return [{ required: true, message: '请输入使用次数!' }]; // }, //}, { label: '是否第一次阅卷', field: 'status', component: 'RadioGroup', componentProps: { options: [ { label: '是', value: 0 }, { label: '否', value: 1 }, ], }, //dynamicRules: ({ model, schema }) => { // return [{ required: true, message: '请选择是否第一次阅卷!' }]; //}, }, // TODO 主键隐藏字段,目前写死为ID { label: '', field: 'id', component: 'Input', show: false, }, ]; // 高级查询数据 export const superQuerySchema = { userId: { title: '用户id', order: 0, view: 'text', type: 'string' }, userName: { title: '用户名', order: 1, view: 'text', type: 'string' }, majorId: { title: '学科', order: 2, view: 'number', type: 'number' }, userMajorId: { title: '用户专业id', order: 3, view: 'text', type: 'string' }, teacherId: { title: '用户专业id', order: 4, view: 'text', type: 'string' }, phone: { title: '手机号', order: 5, view: 'text', type: 'string' }, groupId: { title: '所属分组', order: 6, view: 'number', type: 'number' }, numberuse: { title: '使用次数', order: 7, view: 'number', type: 'number' }, status: { title: '状态:0正常 1禁用', order: 8, view: 'number', type: 'number' }, }; /** * 流程表单调用这个方法获取formSchema * @param param */ export function getBpmFormSchema(_formData): FormSchema[] { // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema return formSchema; }