diff --git a/src/views/cees/dormitory/CeesDormitoryInfo.api.ts b/src/views/cees/dormitory/CeesDormitoryInfo.api.ts
new file mode 100644
index 0000000..349bc81
--- /dev/null
+++ b/src/views/cees/dormitory/CeesDormitoryInfo.api.ts
@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/CEES/ceesDormitoryInfo/list',
+ save='/CEES/ceesDormitoryInfo/add',
+ edit='/CEES/ceesDormitoryInfo/edit',
+ deleteOne = '/CEES/ceesDormitoryInfo/delete',
+ deleteBatch = '/CEES/ceesDormitoryInfo/deleteBatch',
+ importExcel = '/CEES/ceesDormitoryInfo/importExcel',
+ exportXls = '/CEES/ceesDormitoryInfo/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+ defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({url: url, params});
+}
diff --git a/src/views/cees/dormitory/CeesDormitoryInfo.data.ts b/src/views/cees/dormitory/CeesDormitoryInfo.data.ts
new file mode 100644
index 0000000..ac6a833
--- /dev/null
+++ b/src/views/cees/dormitory/CeesDormitoryInfo.data.ts
@@ -0,0 +1,97 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '宿舍信息',
+ align:"center",
+ dataIndex: 'dormitory'
+ },
+ {
+ title: '宿舍类型(男/女)',
+ align:"center",
+ dataIndex: 'dormitoryType'
+ },
+ {
+ title: '宿舍人数',
+ align:"center",
+ dataIndex: 'dormitoryNum'
+ },
+ {
+ title: '状态',
+ align:"center",
+ dataIndex: 'dormitoryStatus'
+ },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+ {
+ label: '宿舍信息',
+ field: 'dormitory',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入宿舍信息!'},
+ ];
+ },
+ },
+ {
+ label: '男/女',
+ field: 'dormitoryType',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入男/女!'},
+ ];
+ },
+ },
+ {
+ label: '宿舍人数',
+ field: 'dormitoryNum',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入宿舍人数!'},
+ ];
+ },
+ },
+ {
+ label: '宿舍状态0没满,1已满',
+ field: 'dormitoryStatus',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入宿舍状态0没满,1已满!'},
+ ];
+ },
+ },
+ // TODO 主键隐藏字段,目前写死为ID
+ {
+ label: '',
+ field: 'id',
+ component: 'Input',
+ show: false
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ dormitory: {title: '宿舍信息',order: 0,view: 'text', type: 'string',},
+ dormitoryType: {title: '男/女',order: 1,view: 'text', type: 'string',},
+ dormitoryNum: {title: '宿舍人数',order: 2,view: 'number', type: 'number',},
+ dormitoryStatus: {title: '宿舍状态0没满,1已满',order: 3,view: 'text', type: 'string',},
+};
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+ return formSchema;
+}
\ No newline at end of file
diff --git a/src/views/cees/dormitory/CeesDormitoryInfoList.vue b/src/views/cees/dormitory/CeesDormitoryInfoList.vue
new file mode 100644
index 0000000..00e9310
--- /dev/null
+++ b/src/views/cees/dormitory/CeesDormitoryInfoList.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+ 新增
+ 导出
+ 导入
+
+
+
+
+
+ 删除
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/dormitory/components/CeesDormitoryInfoForm.vue b/src/views/cees/dormitory/components/CeesDormitoryInfoForm.vue
new file mode 100644
index 0000000..7d19959
--- /dev/null
+++ b/src/views/cees/dormitory/components/CeesDormitoryInfoForm.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/dormitory/components/CeesDormitoryInfoModal.vue b/src/views/cees/dormitory/components/CeesDormitoryInfoModal.vue
new file mode 100644
index 0000000..ea96387
--- /dev/null
+++ b/src/views/cees/dormitory/components/CeesDormitoryInfoModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/localTeacher/CeesLocalTeacher.api.ts b/src/views/cees/localTeacher/CeesLocalTeacher.api.ts
new file mode 100644
index 0000000..e9bfd19
--- /dev/null
+++ b/src/views/cees/localTeacher/CeesLocalTeacher.api.ts
@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/CEES/ceesLocalTeacher/list',
+ save='/CEES/ceesLocalTeacher/add',
+ edit='/CEES/ceesLocalTeacher/edit',
+ deleteOne = '/CEES/ceesLocalTeacher/delete',
+ deleteBatch = '/CEES/ceesLocalTeacher/deleteBatch',
+ importExcel = '/CEES/ceesLocalTeacher/importExcel',
+ exportXls = '/CEES/ceesLocalTeacher/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+ defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({url: url, params});
+}
diff --git a/src/views/cees/localTeacher/CeesLocalTeacher.data.ts b/src/views/cees/localTeacher/CeesLocalTeacher.data.ts
new file mode 100644
index 0000000..bf8acf1
--- /dev/null
+++ b/src/views/cees/localTeacher/CeesLocalTeacher.data.ts
@@ -0,0 +1,183 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '用户id',
+ align:"center",
+ dataIndex: 'userId'
+ },
+ {
+ title: '用户名',
+ align:"center",
+ dataIndex: 'userName'
+ },
+ {
+ title: '专业id,0表示未选择',
+ align:"center",
+ dataIndex: 'majorId'
+ },
+ {
+ title: '用户专业id',
+ align:"center",
+ dataIndex: 'userMajorId'
+ },
+ {
+ title: '用户专业id',
+ align:"center",
+ dataIndex: 'teacherId'
+ },
+ {
+ title: '手机号',
+ align:"center",
+ dataIndex: 'phone'
+ },
+ {
+ title: '组id',
+ align:"center",
+ dataIndex: 'groupId'
+ },
+ {
+ title: '使用次数',
+ align:"center",
+ dataIndex: 'numberuse'
+ },
+ {
+ title: '状态:0正常 1禁用',
+ align:"center",
+ dataIndex: 'status'
+ },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: "用户名",
+ field: 'userName',
+ component: 'Input',
+ //colProps: {span: 6},
+ },
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+ {
+ label: '用户id',
+ field: 'userId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户id!'},
+ ];
+ },
+ },
+ {
+ label: '用户名',
+ field: 'userName',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户名!'},
+ ];
+ },
+ },
+ {
+ label: '专业id,0表示未选择',
+ field: 'majorId',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入专业id,0表示未选择!'},
+ ];
+ },
+ },
+ {
+ label: '用户专业id',
+ field: 'userMajorId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户专业id!'},
+ ];
+ },
+ },
+ {
+ label: '用户专业id',
+ field: 'teacherId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户专业id!'},
+ ];
+ },
+ },
+ {
+ label: '手机号',
+ field: 'phone',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入手机号!'},
+ ];
+ },
+ },
+ {
+ label: '组id',
+ field: 'groupId',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入组id!'},
+ ];
+ },
+ },
+ {
+ label: '使用次数',
+ field: 'numberuse',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入使用次数!'},
+ ];
+ },
+ },
+ {
+ label: '状态:0正常 1禁用',
+ field: 'status',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入状态:0正常 1禁用!'},
+ ];
+ },
+ },
+ // 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: '专业id,0表示未选择',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: '组id',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;
+}
\ No newline at end of file
diff --git a/src/views/cees/localTeacher/CeesLocalTeacherList.vue b/src/views/cees/localTeacher/CeesLocalTeacherList.vue
new file mode 100644
index 0000000..d343bd5
--- /dev/null
+++ b/src/views/cees/localTeacher/CeesLocalTeacherList.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+ 新增
+ 导出
+ 导入
+
+
+
+
+
+ 删除
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/localTeacher/components/CeesLocalTeacherForm.vue b/src/views/cees/localTeacher/components/CeesLocalTeacherForm.vue
new file mode 100644
index 0000000..566cd2a
--- /dev/null
+++ b/src/views/cees/localTeacher/components/CeesLocalTeacherForm.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/localTeacher/components/CeesLocalTeacherModal.vue b/src/views/cees/localTeacher/components/CeesLocalTeacherModal.vue
new file mode 100644
index 0000000..5eeecc7
--- /dev/null
+++ b/src/views/cees/localTeacher/components/CeesLocalTeacherModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/student/Student.api.ts b/src/views/cees/student/Student.api.ts
new file mode 100644
index 0000000..ca5783e
--- /dev/null
+++ b/src/views/cees/student/Student.api.ts
@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/cees/student/list',
+ save='/cees/student/add',
+ edit='/cees/student/edit',
+ deleteOne = '/cees/student/delete',
+ deleteBatch = '/cees/student/deleteBatch',
+ importExcel = '/cees/student/importExcel',
+ exportXls = '/cees/student/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+ defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({url: url, params});
+}
diff --git a/src/views/cees/student/Student.data.ts b/src/views/cees/student/Student.data.ts
new file mode 100644
index 0000000..d8ee1f7
--- /dev/null
+++ b/src/views/cees/student/Student.data.ts
@@ -0,0 +1,243 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+
+// 学科映射
+const majorMap = {
+ 1: '语文',
+ 4: '地理',
+ 7: '历史',
+ 8: '政治',
+ };
+
+// 根据 majorId 获取学科名称
+const isMajor = (majorId) => {
+ return majorMap[majorId] || '未知学科';
+};
+
+// 学科过滤方法
+const filterMajor = (value, row) => {
+ console.log(value, row); // 打印过滤值和行数据
+ return row === value;
+};
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '学生名',
+ align:"center",
+ dataIndex: 'userName'
+ },
+ {
+ title: '用户ID',
+ align:"center",
+ dataIndex: 'userId'
+ },
+ {
+ title: '学号',
+ align:"center",
+ dataIndex: 'studentId'
+ },
+ {
+ title: '手机号',
+ align:"center",
+ dataIndex: 'phone'
+ },
+ {
+ title: '学科',
+ align:"center",
+ dataIndex: 'majorId',
+ customRender: ({ text }) => {
+ return isMajor(text); // 根据 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'
+ },
+ {
+ title: '是否第一次阅卷',
+ align:"center",
+ dataIndex: 'checked',
+ customRender: ({text}) => {
+ return text == 1 ? '是' : '否';
+ }
+ },
+
+ {
+ title: '使用次数',
+ align:"center",
+ dataIndex: 'numberuse'
+ },
+ {
+ title: '状态:0正常 1禁用',
+ align:"center",
+ dataIndex: 'status'
+ },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: "用户名",
+ field: 'userName',
+ component: 'Input',
+ //colProps: {span: 6},
+ },
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+ {
+ label: '用户id',
+ field: 'userId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户id!'},
+ ];
+ },
+ },
+ {
+ label: '用户名',
+ field: 'userName',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户名!'},
+ ];
+ },
+ },
+ {
+ label: '学科',
+ field: 'majorId',
+ component: 'Select',
+ componentProps: {
+ options: [
+ { label: '语文', value: 1 },
+ { label: '地理', value: 4 },
+ { label: '历史', value: 7 },
+ { label: '政治', value: 8 },
+ ],
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请选择学科!'},
+ ];
+ },
+ },
+ {
+ label: '用户专业id',
+ field: 'userMajorId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户专业id!'},
+ ];
+ },
+ },
+ {
+ label: '学生id',
+ field: 'studentId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入学生id!'},
+ ];
+ },
+ },
+ {
+ label: '手机号',
+ field: 'phone',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入手机号!'},
+ ];
+ },
+ },
+ {
+ label: '是否第一次阅卷',
+ field: 'checked',
+ component: 'RadioGroup',
+ componentProps: {
+ options: [
+ { label: '是', value: 1 },
+ { label: '否', value: 0 },
+ ],
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请选择是否第一次阅卷!'},
+ ];
+ },
+ },
+ {
+ label: '组id',
+ field: 'groupId',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入组id!'},
+ ];
+ },
+ },
+ {
+ label: '使用次数',
+ field: 'numberuse',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入使用次数!'},
+ ];
+ },
+ },
+ {
+ label: '状态:0正常 1禁用',
+ field: 'status',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入状态:0正常 1禁用!'},
+ ];
+ },
+ },
+ // 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: '专业id,0表示未选择',order: 2,view: 'number', type: 'number',},
+ userMajorId: {title: '用户专业id',order: 3,view: 'text', type: 'string',},
+ studentId: {title: '学生id',order: 4,view: 'text', type: 'string',},
+ phone: {title: '手机号',order: 5,view: 'text', type: 'string',},
+ checked: {title: '是否第一次阅卷',order: 6,view: 'text', type: 'string',},
+ groupId: {title: '组id',order: 7,view: 'number', type: 'number',},
+ numberuse: {title: '使用次数',order: 8,view: 'number', type: 'number',},
+ status: {title: '状态:0正常 1禁用',order: 9,view: 'number', type: 'number',},
+};
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+ return formSchema;
+}
\ No newline at end of file
diff --git a/src/views/cees/student/StudentList.vue b/src/views/cees/student/StudentList.vue
new file mode 100644
index 0000000..5b614d0
--- /dev/null
+++ b/src/views/cees/student/StudentList.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+ 新增
+ 导出
+ 导入
+
+
+
+
+
+ 删除
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/student/components/StudentForm.vue b/src/views/cees/student/components/StudentForm.vue
new file mode 100644
index 0000000..171b96f
--- /dev/null
+++ b/src/views/cees/student/components/StudentForm.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/student/components/StudentModal.vue b/src/views/cees/student/components/StudentModal.vue
new file mode 100644
index 0000000..9383494
--- /dev/null
+++ b/src/views/cees/student/components/StudentModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts b/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts
new file mode 100644
index 0000000..df8811a
--- /dev/null
+++ b/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts
@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/cees/ceesWaiTeacher/list',
+ save='/cees/ceesWaiTeacher/add',
+ edit='/cees/ceesWaiTeacher/edit',
+ deleteOne = '/cees/ceesWaiTeacher/delete',
+ deleteBatch = '/cees/ceesWaiTeacher/deleteBatch',
+ importExcel = '/cees/ceesWaiTeacher/importExcel',
+ exportXls = '/cees/ceesWaiTeacher/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+ defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+ return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+ createConfirm({
+ iconType: 'warning',
+ title: '确认删除',
+ content: '是否删除选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+ handleSuccess();
+ });
+ }
+ });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+ let url = isUpdate ? Api.edit : Api.save;
+ return defHttp.post({url: url, params});
+}
diff --git a/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts b/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts
new file mode 100644
index 0000000..7610ece
--- /dev/null
+++ b/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts
@@ -0,0 +1,403 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+ {
+ title: '用户id',
+ align:"center",
+ dataIndex: 'userId'
+ },
+ {
+ title: '专业id',
+ align:"center",
+ dataIndex: 'majorId'
+ },
+ {
+ title: '用户专业id',
+ align:"center",
+ dataIndex: 'userMajorId'
+ },
+ {
+ title: '用户名',
+ align:"center",
+ dataIndex: 'userName'
+ },
+ {
+ title: '手机号',
+ align:"center",
+ dataIndex: 'phone'
+ },
+ {
+ title: '职称',
+ align:"center",
+ dataIndex: 'jobTitle'
+ },
+ {
+ title: '银行卡号',
+ align:"center",
+ dataIndex: 'pyCard'
+ },
+ {
+ title: '饭卡',
+ align:"center",
+ dataIndex: 'mealCard'
+ },
+ {
+ title: '办公位',
+ align:"center",
+ dataIndex: 'office'
+ },
+ {
+ title: '工作名称',
+ align:"center",
+ dataIndex: 'workName'
+ },
+ {
+ title: '固定电话',
+ align:"center",
+ dataIndex: 'workPhone'
+ },
+ {
+ title: '身份证',
+ align:"center",
+ dataIndex: 'identityId'
+ },
+ {
+ title: '车牌号',
+ align:"center",
+ dataIndex: 'carNumber'
+ },
+ {
+ title: '性别',
+ align:"center",
+ dataIndex: 'sex'
+ },
+ {
+ title: '年龄',
+ align:"center",
+ dataIndex: 'age'
+ },
+ {
+ title: '车辆是否入校',
+ align:"center",
+ dataIndex: 'carStatus'
+ },
+ {
+ title: '宿舍信息',
+ align:"center",
+ dataIndex: 'dormitory'
+ },
+ {
+ title: '是否住宿',
+ align:"center",
+ dataIndex: 'dormitoryStatus'
+ },
+ {
+ title: '开户所在地',
+ align:"center",
+ dataIndex: 'bankAddress'
+ },
+ {
+ title: '开户行',
+ align:"center",
+ dataIndex: 'bankName'
+ },
+ {
+ title: '组id',
+ align:"center",
+ dataIndex: 'groupId'
+ },
+ {
+ title: '使用次数',
+ align:"center",
+ dataIndex: 'numberuse'
+ },
+ {
+ title: '状态:0已报道 1未报到',
+ align:"center",
+ dataIndex: 'status'
+ },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: "专业id",
+ field: "majorId",
+ component: 'JRangeNumber',
+ //colProps: {span: 6},
+ },
+ {
+ label: "用户名",
+ field: 'userName',
+ component: 'Input',
+ //colProps: {span: 6},
+ },
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+ {
+ label: '用户id',
+ field: 'userId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户id!'},
+ ];
+ },
+ },
+ {
+ label: '专业id',
+ field: 'majorId',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入专业id!'},
+ ];
+ },
+ },
+ {
+ label: '用户专业id',
+ field: 'userMajorId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户专业id!'},
+ ];
+ },
+ },
+ {
+ label: '用户名',
+ field: 'userName',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入用户名!'},
+ ];
+ },
+ },
+ {
+ label: '手机号',
+ field: 'phone',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入手机号!'},
+ ];
+ },
+ },
+ {
+ label: '职称',
+ field: 'jobTitle',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入职称!'},
+ ];
+ },
+ },
+ {
+ label: '银行卡号',
+ field: 'pyCard',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入银行卡号!'},
+ ];
+ },
+ },
+ {
+ label: '饭卡',
+ field: 'mealCard',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入饭卡!'},
+ ];
+ },
+ },
+ {
+ label: '办公位',
+ field: 'office',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入办公位!'},
+ ];
+ },
+ },
+ {
+ label: '工作名称',
+ field: 'workName',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入工作名称!'},
+ ];
+ },
+ },
+ {
+ label: '固定电话',
+ field: 'workPhone',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入固定电话!'},
+ ];
+ },
+ },
+ {
+ label: '身份证',
+ field: 'identityId',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入身份证!'},
+ ];
+ },
+ },
+ {
+ label: '车牌号',
+ field: 'carNumber',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入车牌号!'},
+ ];
+ },
+ },
+ {
+ label: '性别',
+ field: 'sex',
+ component: 'Input',
+ },
+ {
+ label: '年龄',
+ field: 'age',
+ component: 'InputNumber',
+ },
+ {
+ label: '车辆是否入校',
+ field: 'carStatus',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入车辆是否入校!'},
+ ];
+ },
+ },
+ {
+ label: '宿舍信息',
+ field: 'dormitory',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入宿舍信息!'},
+ ];
+ },
+ },
+ {
+ label: '是否住宿',
+ field: 'dormitoryStatus',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入是否住宿!'},
+ ];
+ },
+ },
+ {
+ label: '开户所在地',
+ field: 'bankAddress',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入开户所在地!'},
+ ];
+ },
+ },
+ {
+ label: '开户行',
+ field: 'bankName',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入开户行!'},
+ ];
+ },
+ },
+ {
+ label: '组id',
+ field: 'groupId',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入组id!'},
+ ];
+ },
+ },
+ {
+ label: '使用次数',
+ field: 'numberuse',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入使用次数!'},
+ ];
+ },
+ },
+ {
+ label: '状态:0已报道 1未报到',
+ field: 'status',
+ component: 'InputNumber',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入状态:0已报道 1未报到!'},
+ ];
+ },
+ },
+ // TODO 主键隐藏字段,目前写死为ID
+ {
+ label: '',
+ field: 'id',
+ component: 'Input',
+ show: false
+ },
+];
+
+// 高级查询数据
+export const superQuerySchema = {
+ userId: {title: '用户id',order: 0,view: 'text', type: 'string',},
+ majorId: {title: '专业id',order: 1,view: 'number', type: 'number',},
+ userMajorId: {title: '用户专业id',order: 2,view: 'text', type: 'string',},
+ userName: {title: '用户名',order: 3,view: 'text', type: 'string',},
+ 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',},
+ office: {title: '办公位',order: 8,view: 'text', type: 'string',},
+ 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',},
+ dormitory: {title: '宿舍信息',order: 16,view: 'text', type: 'string',},
+ dormitoryStatus: {title: '是否住宿',order: 17,view: 'text', type: 'string',},
+ bankAddress: {title: '开户所在地',order: 18,view: 'text', type: 'string',},
+ bankName: {title: '开户行',order: 19,view: 'text', type: 'string',},
+ groupId: {title: '组id',order: 20,view: 'number', type: 'number',},
+ numberuse: {title: '使用次数',order: 21,view: 'number', type: 'number',},
+ status: {title: '状态:0已报道 1未报到',order: 22,view: 'number', type: 'number',},
+};
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+ return formSchema;
+}
\ No newline at end of file
diff --git a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue
new file mode 100644
index 0000000..16d793c
--- /dev/null
+++ b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+ 新增
+ 导出
+ 导入
+
+
+
+
+
+ 删除
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue b/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue
new file mode 100644
index 0000000..64cd9fd
--- /dev/null
+++ b/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue b/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue
new file mode 100644
index 0000000..bc72dd0
--- /dev/null
+++ b/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file