CEES-manage/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts

409 lines
9.9 KiB
TypeScript
Raw Normal View History

2025-03-03 19:41:01 +08:00
import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import { rules } from '/@/utils/helper/validator';
2025-03-03 18:23:57 +08:00
import { render } from '/@/utils/common/renderUtils';
2025-03-06 14:39:23 +08:00
import { ref, onMounted,reactive } from 'vue';
const groupOptions=ref()
// 创建一个简单的事件总线
export const updateGroupOptions = reactive({
updateGroupOptions(newOptions: any) {
groupOptions.value = newOptions;
},
});
2025-03-03 18:23:57 +08:00
//列表数据
export const columns: BasicColumn[] = [
2025-03-03 19:41:01 +08:00
{
2025-03-04 14:32:56 +08:00
title: '姓名',
align: 'center',
dataIndex: 'userName',
},
{
title: '用户ID',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'userId',
},
{
2025-03-04 14:32:56 +08:00
title: '年龄',
2025-03-03 19:41:01 +08:00
align: 'center',
2025-03-04 14:32:56 +08:00
dataIndex: 'age',
2025-03-03 19:41:01 +08:00
},
{
2025-03-04 14:32:56 +08:00
title: '性别',
2025-03-03 19:41:01 +08:00
align: 'center',
2025-03-04 14:32:56 +08:00
dataIndex: 'sex',
2025-03-03 19:41:01 +08:00
},
{
2025-03-04 14:32:56 +08:00
title: '学科',
2025-03-03 19:41:01 +08:00
align: 'center',
2025-03-04 14:32:56 +08:00
dataIndex: 'majorId',
2025-03-03 19:41:01 +08:00
},
{
2025-03-03 18:23:57 +08:00
title: '手机号',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'phone',
},
{
2025-03-03 18:23:57 +08:00
title: '职称',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'jobTitle',
},
2025-03-04 14:32:56 +08:00
{
title: '职务',
align: 'center',
dataIndex: 'office',
},
{
title: '所属分组',
align: 'center',
2025-03-06 14:39:23 +08:00
//dataIndex: 'groupId',
customRender: ({ text }) => {
const group = groupOptions.value.find(item => item.value === text.groupId);
if (group) {
return group.label;
}
return '未知分组';
},
2025-03-04 14:32:56 +08:00
},
{
title: '住宿信息',
align: 'center',
dataIndex: 'dormitory',
},
{
title: '用户专业id',
align: 'center',
dataIndex: 'userMajorId',
},
2025-03-03 19:41:01 +08:00
{
2025-03-03 18:23:57 +08:00
title: '银行卡号',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'pyCard',
},
{
2025-03-03 18:23:57 +08:00
title: '饭卡',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'mealCard',
},
2025-03-04 14:32:56 +08:00
2025-03-03 19:41:01 +08:00
{
2025-03-03 18:23:57 +08:00
title: '工作名称',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'workName',
},
{
2025-03-03 18:23:57 +08:00
title: '固定电话',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'workPhone',
},
{
2025-03-03 18:23:57 +08:00
title: '身份证',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'identityId',
},
{
2025-03-03 18:23:57 +08:00
title: '车牌号',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'carNumber',
},
{
2025-03-03 18:23:57 +08:00
title: '车辆是否入校',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'carStatus',
},
{
2025-03-03 18:23:57 +08:00
title: '是否住宿',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'dormitoryStatus',
},
{
2025-03-03 18:23:57 +08:00
title: '开户所在地',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'bankAddress',
},
{
2025-03-03 18:23:57 +08:00
title: '开户行',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'bankName',
},
{
2025-03-03 18:23:57 +08:00
title: '使用次数',
2025-03-03 19:41:01 +08:00
align: 'center',
dataIndex: 'numberuse',
},
{
title: '状态',
align: 'center',
dataIndex: 'status',
},
2025-03-03 18:23:57 +08:00
];
//查询数据
export const searchFormSchema: FormSchema[] = [
2025-03-03 19:41:01 +08:00
{
2025-03-04 14:32:56 +08:00
label: '学科',
2025-03-03 19:41:01 +08:00
field: 'majorId',
component: 'JRangeNumber',
//colProps: {span: 6},
},
{
2025-03-04 14:32:56 +08:00
label: '姓名',
2025-03-03 19:41:01 +08:00
field: 'userName',
component: 'Input',
//colProps: {span: 6},
},
2025-03-03 18:23:57 +08:00
];
//表单数据
export const formSchema: FormSchema[] = [
{
2025-03-04 14:32:56 +08:00
label: '用户ID',
2025-03-03 18:23:57 +08:00
field: 'userId',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
2025-03-04 14:32:56 +08:00
return [{ required: true, message: '请输入用户ID!' }];
2025-03-03 19:41:01 +08:00
},
2025-03-03 18:23:57 +08:00
},
{
2025-03-04 14:32:56 +08:00
label: '学科',
2025-03-03 18:23:57 +08:00
field: 'majorId',
component: 'InputNumber',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入专业id!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '用户专业id',
field: 'userMajorId',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入用户专业id!' }];
},
2025-03-03 18:23:57 +08:00
},
{
2025-03-04 14:32:56 +08:00
label: '姓名',
2025-03-03 18:23:57 +08:00
field: 'userName',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
2025-03-04 14:32:56 +08:00
return [{ required: true, message: '请输入姓名!' }];
2025-03-03 19:41:01 +08:00
},
2025-03-03 18:23:57 +08:00
},
{
label: '手机号',
field: 'phone',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入手机号!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '职称',
field: 'jobTitle',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入职称!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '银行卡号',
field: 'pyCard',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入银行卡号!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '饭卡',
field: 'mealCard',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入饭卡!' }];
},
2025-03-03 18:23:57 +08:00
},
{
2025-03-04 14:32:56 +08:00
label: '职务',
2025-03-03 18:23:57 +08:00
field: 'office',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入办公位!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '工作名称',
field: 'workName',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入工作名称!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '固定电话',
field: 'workPhone',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入固定电话!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '身份证',
field: 'identityId',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入身份证!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '车牌号',
field: 'carNumber',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入车牌号!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '性别',
field: 'sex',
2025-03-03 19:41:01 +08:00
component: 'RadioGroup',
componentProps: {
options: [
{ label: '男', value: 0 },
{ label: '女', value: 1 },
],
},
2025-03-03 18:23:57 +08:00
},
{
label: '年龄',
field: 'age',
component: 'InputNumber',
},
{
label: '车辆是否入校',
field: 'carStatus',
2025-03-03 19:41:01 +08:00
component: 'RadioGroup',
componentProps: {
options: [
{ label: '是', value: 0 },
{ label: '否', value: 1 },
],
},
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入车辆是否入校!' }];
},
2025-03-03 18:23:57 +08:00
},
{
2025-03-04 14:32:56 +08:00
label: '住宿信息',
2025-03-03 18:23:57 +08:00
field: 'dormitory',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入宿舍信息!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '是否住宿',
field: 'dormitoryStatus',
2025-03-03 19:41:01 +08:00
component: 'RadioGroup',
componentProps: {
options: [
{ label: '是', value: 0 },
{ label: '否', value: 1 },
],
},
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入是否住宿!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '开户所在地',
field: 'bankAddress',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入开户所在地!' }];
},
2025-03-03 18:23:57 +08:00
},
{
label: '开户行',
field: 'bankName',
component: 'Input',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入开户行!' }];
},
2025-03-03 18:23:57 +08:00
},
{
2025-03-04 14:32:56 +08:00
label: '所属分组',
2025-03-03 18:23:57 +08:00
field: 'groupId',
2025-03-06 14:39:23 +08:00
component: 'Select',
componentProps: {
options: groupOptions, // 动态设置分组选项
},
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
2025-03-06 14:39:23 +08:00
return [{ required: true, message: '请选择分组!' }];
2025-03-03 19:41:01 +08:00
},
2025-03-03 18:23:57 +08:00
},
{
label: '使用次数',
field: 'numberuse',
component: 'InputNumber',
2025-03-03 19:41:01 +08:00
dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入使用次数!' }];
},
2025-03-03 18:23:57 +08:00
},
{
2025-03-03 19:41:01 +08:00
label: '状态:',
2025-03-03 18:23:57 +08:00
field: 'status',
2025-03-03 19:41:01 +08:00
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,
},
2025-03-03 18:23:57 +08:00
];
// 高级查询数据
export const superQuerySchema = {
2025-03-04 14:32:56 +08:00
userId: { title: '用户ID', order: 0, view: 'text', type: 'string' },
majorId: { title: '学科', order: 1, view: 'number', type: 'number' },
2025-03-03 19:41:01 +08:00
userMajorId: { title: '用户专业id', order: 2, view: 'text', type: 'string' },
2025-03-04 14:32:56 +08:00
userName: { title: '姓名', order: 3, view: 'text', type: 'string' },
2025-03-03 19:41:01 +08:00
phone: { title: '手机号', order: 4, view: 'text', type: 'string' },
jobTitle: { title: '职称', order: 5, view: 'text', type: 'string' },
pyCard: { title: '银行卡号', order: 6, view: 'text', type: 'string' },
mealCard: { title: '饭卡', order: 7, view: 'text', type: 'string' },
2025-03-04 14:32:56 +08:00
office: { title: '职务', order: 8, view: 'text', type: 'string' },
2025-03-03 19:41:01 +08:00
workName: { title: '工作名称', order: 9, view: 'text', type: 'string' },
workPhone: { title: '固定电话', order: 10, view: 'text', type: 'string' },
identityId: { title: '身份证', order: 11, view: 'text', type: 'string' },
carNumber: { title: '车牌号', order: 12, view: 'text', type: 'string' },
sex: { title: '性别', order: 13, view: 'text', type: 'string' },
age: { title: '年龄', order: 14, view: 'number', type: 'number' },
carStatus: { title: '车辆是否入校', order: 15, view: 'number', type: 'number' },
2025-03-04 14:32:56 +08:00
dormitory: { title: '住宿信息', order: 16, view: 'text', type: 'string' },
2025-03-03 19:41:01 +08:00
dormitoryStatus: { title: '是否住宿', order: 17, view: 'text', type: 'string' },
bankAddress: { title: '开户所在地', order: 18, view: 'text', type: 'string' },
bankName: { title: '开户行', order: 19, view: 'text', type: 'string' },
2025-03-04 14:32:56 +08:00
groupId: { title: '所属分组', order: 20, view: 'number', type: 'number' },
2025-03-03 19:41:01 +08:00
numberuse: { title: '使用次数', order: 21, view: 'number', type: 'number' },
status: { title: '状态0已报道 1未报到', order: 22, view: 'number', type: 'number' },
2025-03-03 18:23:57 +08:00
};
/**
2025-03-03 19:41:01 +08:00
* formSchema
* @param param
*/
export function getBpmFormSchema(_formData): FormSchema[] {
2025-03-03 18:23:57 +08:00
// 默认和原始表单保持一致 如果流程中配置了权限数据这里需要单独处理formSchema
return formSchema;
2025-03-03 19:41:01 +08:00
}