From e5b9c5e8d60e46fbd4a5d7515b33fe4a02dd5376 Mon Sep 17 00:00:00 2001 From: Xubx <1827135378@qq.com> Date: Mon, 28 Apr 2025 18:27:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=A7=84=E5=88=99?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A1=8C=E6=94=BF=E4=BA=BA=E5=91=98=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=B0=E5=A2=9E=E4=BA=BA=E5=91=98=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cees/adminInfo/CeesAdminInfo.api.ts | 64 ++++++ .../cees/adminInfo/CeesAdminInfo.data.ts | 171 ++++++++++++++++ .../cees/adminInfo/CeesAdminInfoList.vue | 186 ++++++++++++++++++ .../components/CeesAdminInfoForm.vue | 70 +++++++ .../components/CeesAdminInfoModal.vue | 66 +++++++ src/views/cees/user/CeesUserList.vue | 19 +- 6 files changed, 571 insertions(+), 5 deletions(-) create mode 100644 src/views/cees/adminInfo/CeesAdminInfo.api.ts create mode 100644 src/views/cees/adminInfo/CeesAdminInfo.data.ts create mode 100644 src/views/cees/adminInfo/CeesAdminInfoList.vue create mode 100644 src/views/cees/adminInfo/components/CeesAdminInfoForm.vue create mode 100644 src/views/cees/adminInfo/components/CeesAdminInfoModal.vue diff --git a/src/views/cees/adminInfo/CeesAdminInfo.api.ts b/src/views/cees/adminInfo/CeesAdminInfo.api.ts new file mode 100644 index 0000000..5ed1d12 --- /dev/null +++ b/src/views/cees/adminInfo/CeesAdminInfo.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/ceesAdminInfo/list', + save='/cees/ceesAdminInfo/add', + edit='/cees/ceesAdminInfo/edit', + deleteOne = '/cees/ceesAdminInfo/delete', + deleteBatch = '/cees/ceesAdminInfo/deleteBatch', + importExcel = '/cees/ceesAdminInfo/importExcel', + exportXls = '/cees/ceesAdminInfo/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/adminInfo/CeesAdminInfo.data.ts b/src/views/cees/adminInfo/CeesAdminInfo.data.ts new file mode 100644 index 0000000..f508593 --- /dev/null +++ b/src/views/cees/adminInfo/CeesAdminInfo.data.ts @@ -0,0 +1,171 @@ +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: 'userName' + }, + { + title: '工号', + align:"center", + dataIndex: 'workNumber' + }, + { + title: '往年组别', + align:"center", + dataIndex: 'beforeGroupLevel' + }, + { + title: '组别', + align:"center", + dataIndex: 'groupLevel' + }, + { + title: '往年职务', + align:"center", + dataIndex: 'beforeDuty' + }, + { + title: '职务', + align:"center", + dataIndex: 'duty' + }, + { + title: '部门', + align:"center", + dataIndex: 'department' + }, + { + title: '岗位', + align:"center", + dataIndex: 'job' + }, + + // { + // title: '用户id', + // align:"center", + // dataIndex: 'userId' + // }, + // { + // title: '用户专业id', + // align:"center", + // dataIndex: 'userMajorId' + // }, + // { + // title: '专业id,0表示未选择', + // align:"center", + // dataIndex: 'majorId' + // }, + // { + // title: '组别', + // align:"center", + // dataIndex: 'groupId' + // }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ + { + label: '用户名', + field: 'userName', + component: 'Input', + //colProps: {span: 6}, + }, +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '用户名', + field: 'userName', + component: 'Input', + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入用户名!' }]; + }, + }, + { + label: '工号', + field: 'workNumber', + component: 'Input', + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入工号!' }]; + }, + }, + { + label: '往年组别', + field: 'beforeGroupLevel', + component: 'Input', + }, + { + label: '组别', + field: 'groupLevel', + component: 'Input', + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入组别!' }]; + }, + }, + { + label: '往年职务', + field: 'beforeDuty', + component: 'Input', + }, + { + label: '职务', + field: 'duty', + component: 'Input', + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入职务!' }]; + }, + }, + { + label: '部门', + field: 'department', + component: 'Input', + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入部门!' }]; + }, + }, + { + label: '岗位', + field: 'job', + component: 'Input', + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入岗位!' }]; + }, + }, + + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + workNumber: {title: '工号',order: 0,view: 'text', type: 'string',}, + userName: {title: '姓名',order: 1,view: 'text', type: 'string',}, + userId: {title: '用户id',order: 2,view: 'text', type: 'string',}, + userMajorId: {title: '用户专业id',order: 3,view: 'text', type: 'string',}, + majorId: {title: '专业id,0表示未选择',order: 4,view: 'number', type: 'number',}, + groupId: {title: '组别',order: 5,view: 'text', type: 'string',}, + beforeGroupLevel: {title: '组级别',order: 6,view: 'text', type: 'string',}, + groupLevel: {title: '组级别',order: 7,view: 'text', type: 'string',}, + beforeDuty: {title: '之前的职务',order: 8,view: 'text', type: 'string',}, + duty: {title: '职务',order: 9,view: 'text', type: 'string',}, + department: {title: '部门',order: 10,view: 'text', type: 'string',}, + job: {title: '岗位',order: 11,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/adminInfo/CeesAdminInfoList.vue b/src/views/cees/adminInfo/CeesAdminInfoList.vue new file mode 100644 index 0000000..89ac0ea --- /dev/null +++ b/src/views/cees/adminInfo/CeesAdminInfoList.vue @@ -0,0 +1,186 @@ + + + + + \ No newline at end of file diff --git a/src/views/cees/adminInfo/components/CeesAdminInfoForm.vue b/src/views/cees/adminInfo/components/CeesAdminInfoForm.vue new file mode 100644 index 0000000..4573fb6 --- /dev/null +++ b/src/views/cees/adminInfo/components/CeesAdminInfoForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/src/views/cees/adminInfo/components/CeesAdminInfoModal.vue b/src/views/cees/adminInfo/components/CeesAdminInfoModal.vue new file mode 100644 index 0000000..36d7722 --- /dev/null +++ b/src/views/cees/adminInfo/components/CeesAdminInfoModal.vue @@ -0,0 +1,66 @@ + + + + + \ No newline at end of file diff --git a/src/views/cees/user/CeesUserList.vue b/src/views/cees/user/CeesUserList.vue index a1c16ea..d9ca351 100644 --- a/src/views/cees/user/CeesUserList.vue +++ b/src/views/cees/user/CeesUserList.vue @@ -62,7 +62,7 @@ - + @@ -95,9 +95,16 @@ import { message } from 'ant-design-vue'; // 表单相关状态 const showAutoGenerateForm = ref(false); // 控制表单显示 +const isDisplay = ref(false); const handleGroupChange = (value) => { autoGenerateForm.group = value; + if (value != 1) { + isDisplay.value = true; + } else { + isDisplay.value = false; + autoGenerateForm.majorId = undefined; + } }; const handleMajorChange = (value) => { autoGenerateForm.majorId = value; @@ -114,7 +121,8 @@ const autoGenerateForm = reactive({ // 账号类型选项 const autoGeneratType = ref([ - { id: 1, name: '研究生', value: 2 }, + { id: 1, name: '行政人员', value: 1 }, + { id: 2, name: '研究生', value: 2 }, { id: 2, name: '本校老师', value: 3 }, { id: 3, name: "外校老师", value: 4 } ]); @@ -134,7 +142,7 @@ const handleAutoGenerate = () => { message.warning('请选择身份', 1.5); return } - if (autoGenerateForm.majorId == undefined) { + if (autoGenerateForm.majorId == undefined && isDisplay.value == true) { message.warning('请选择专业', 1.5); return } @@ -154,14 +162,15 @@ const handleAutoGenerate = () => { // 调用生成账号的 API 或逻辑 try { generateAccount(autoGenerateForm).then((res) => { + console.log(res) if (res.code == 200) { - message.success('生成账号成功', 1.5); + message.success(res.message, 1.5); //清空表单 autoGenerateForm.group = undefined; autoGenerateForm.majorId = undefined; autoGenerateForm.num = undefined; } else { - message.error('生成账号失败', 1.5); + message.error(res.message, 1.5); } }) From f002ffdd49ea195c5901dd9c5fadf96a74a6e0d5 Mon Sep 17 00:00:00 2001 From: Xubx <1827135378@qq.com> Date: Mon, 28 Apr 2025 19:20:17 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=86=E7=BB=84=E4=B8=AD=E5=AD=A6?= =?UTF-8?q?=E7=A7=91=E9=80=89=E6=8B=A9=E6=A1=86=E5=8F=AF=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cees/group/CeesGroup.data.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/views/cees/group/CeesGroup.data.ts b/src/views/cees/group/CeesGroup.data.ts index 63ca4d4..4e126fe 100644 --- a/src/views/cees/group/CeesGroup.data.ts +++ b/src/views/cees/group/CeesGroup.data.ts @@ -2,9 +2,13 @@ import {BasicColumn} from '/@/components/Table'; import {FormSchema} from '/@/components/Table'; import { rules} from '/@/utils/helper/validator'; import { render } from '/@/utils/common/renderUtils'; +import { usePermission } from '/@/hooks/web/usePermission'; + //import { getRowUser } from '/@/views/cees/group/CeesGroup.api'; //列表数据 +const { hasPermission } = usePermission(); + export const columns: BasicColumn[] = [ { title: '组名', @@ -42,6 +46,12 @@ export const columns: BasicColumn[] = [ ]; //查询数据 export const searchFormSchema: FormSchema[] = [ + { + label: '组名', + field: 'name', + component: 'Input', + //colProps: {span: 6}, + }, ]; //表单数据 export const formSchema: FormSchema[] = [ @@ -72,6 +82,9 @@ export const formSchema: FormSchema[] = [ { required: true, message: '请选择学科!'}, ]; }, + show: ({ values }) => { + return hasPermission('majorId:edit'); + } }, // TODO 主键隐藏字段,目前写死为ID {