From 1b71e351deb95435a90c26ecadf881eac2db3b1f Mon Sep 17 00:00:00 2001 From: YuNan <3194726156@qq.com> Date: Sun, 9 Mar 2025 17:25:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=96=E6=A0=A1=E8=80=81?= =?UTF-8?q?=E5=B8=88=E4=BD=8F=E5=AE=BF=E4=BF=A1=E6=81=AF=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cees/dormitory/CeesDormitoryInfo.api.ts | 37 +++--- .../cees/waiTeacher/CeesWaiTeacher.api.ts | 42 +++--- .../cees/waiTeacher/CeesWaiTeacher.data.ts | 18 +-- .../cees/waiTeacher/CeesWaiTeacherList.vue | 84 +++++++++++- .../components/CeesWaiTeacherForm.vue | 124 +++++++++--------- .../components/CeesWaiTeacherModal.vue | 110 ++++++++-------- 6 files changed, 252 insertions(+), 163 deletions(-) diff --git a/src/views/cees/dormitory/CeesDormitoryInfo.api.ts b/src/views/cees/dormitory/CeesDormitoryInfo.api.ts index 349bc81..d3b832f 100644 --- a/src/views/cees/dormitory/CeesDormitoryInfo.api.ts +++ b/src/views/cees/dormitory/CeesDormitoryInfo.api.ts @@ -1,17 +1,25 @@ -import {defHttp} from '/@/utils/http/axios'; -import { useMessage } from "/@/hooks/web/useMessage"; +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', + save = '/CEES/ceesDormitoryInfo/add', + edit = '/CEES/ceesDormitoryInfo/edit', deleteOne = '/CEES/ceesDormitoryInfo/delete', deleteBatch = '/CEES/ceesDormitoryInfo/deleteBatch', importExcel = '/CEES/ceesDormitoryInfo/importExcel', exportXls = '/CEES/ceesDormitoryInfo/exportXls', + selectBySex = '/CEES/ceesDormitoryInfo/selectBySex', } +/** + * 根据性别查询住宿信息 + * @param params + * @returns + */ +export const selectBySex = (params) => defHttp.get({ url: Api.selectBySex, params }); + /** * 导出api * @param params @@ -25,17 +33,16 @@ export const getImportUrl = Api.importExcel; * 列表接口 * @param params */ -export const list = (params) => - defHttp.get({url: Api.list, 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(() => { +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { handleSuccess(); }); -} +}; /** * 批量删除 * @param params @@ -48,17 +55,17 @@ export const batchDelete = (params, handleSuccess) => { okText: '确认', cancelText: '取消', onOk: () => { - return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + 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}); -} + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }); +}; diff --git a/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts b/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts index 91fc0f7..3523e5e 100644 --- a/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts +++ b/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts @@ -1,22 +1,25 @@ -import {defHttp} from '/@/utils/http/axios'; -import { useMessage } from "/@/hooks/web/useMessage"; +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', + save = '/cees/ceesWaiTeacher/add', + edit = '/cees/ceesWaiTeacher/edit', deleteOne = '/cees/ceesWaiTeacher/delete', deleteBatch = '/cees/ceesWaiTeacher/deleteBatch', importExcel = '/cees/ceesWaiTeacher/importExcel', exportXls = '/cees/ceesWaiTeacher/exportXls', updateGroupUser = '/cees/ceesGroup/updateGroupUser', + updataDormitory = 'cees/ceesWaiTeacher/updataDormitory', } +export const updataDormitory = (id, dormitory) => defHttp.get({ url: Api.updataDormitory, params: { id, dormitory } }); // ✅ 将参数包装为独立的对象 }); + //获取分组 export const getGroup = () => - defHttp.get({url: '/cees/ceesGroup/list'}).then((res) => { + defHttp.get({ url: '/cees/ceesGroup/list' }).then((res) => { return res.records; }); /** @@ -32,17 +35,16 @@ export const getImportUrl = Api.importExcel; * 列表接口 * @param params */ -export const list = (params) => - defHttp.get({url: Api.list, 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(() => { +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { handleSuccess(); }); -} +}; /** * 批量删除 * @param params @@ -55,28 +57,28 @@ export const batchDelete = (params, handleSuccess) => { okText: '确认', cancelText: '取消', onOk: () => { - return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { handleSuccess(); }); - } + }, }); -} +}; //更新分组中间表 export const updateGroupUser = (params) => { - return defHttp.post({url: Api.updateGroupUser, params}); -} + return defHttp.post({ url: Api.updateGroupUser, params }); +}; /** * 保存或者更新 * @param params */ export const saveOrUpdate = (params, isUpdate) => { - let url = isUpdate ? Api.edit : Api.save; + const url = isUpdate ? Api.edit : Api.save; // 更新分组中间表 const groupUserParams = { userId: params.userId, - groupId: params.groupId - } + groupId: params.groupId, + }; updateGroupUser(groupUserParams); - return defHttp.post({url: url, params}); -} + return defHttp.post({ url: url, params }); +}; diff --git a/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts b/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts index 170adb2..f031b90 100644 --- a/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts +++ b/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts @@ -2,7 +2,7 @@ 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'; +import { ref, onMounted, reactive } from 'vue'; // 学科过滤方法 const filterMajor = (value, row) => { @@ -10,7 +10,7 @@ const filterMajor = (value, row) => { return row === value; }; -const groupOptions=ref() +const groupOptions = ref(); // 创建一个简单的事件总线 export const updateGroupOptions = reactive({ @@ -75,7 +75,7 @@ export const columns: BasicColumn[] = [ align: 'center', //dataIndex: 'groupId', customRender: ({ text }) => { - const group = groupOptions.value.find(item => item.value === text.groupId); + const group = groupOptions.value.find((item) => item.value === text.groupId); if (group) { return group.label; } @@ -87,7 +87,7 @@ export const columns: BasicColumn[] = [ align: 'center', dataIndex: 'dormitory', }, - + //{ // title: '用户专业id', // align: 'center', @@ -103,7 +103,7 @@ export const columns: BasicColumn[] = [ // align: 'center', // dataIndex: 'mealCard', //}, - + //{ // title: '工作名称', // align: 'center', @@ -336,13 +336,13 @@ export const formSchema: FormSchema[] = [ field: 'groupId', component: 'Select', componentProps: { - options: groupOptions, // 动态设置分组选项 + options: groupOptions, // 动态设置分组选项 }, dynamicRules: ({ model, schema }) => { - return [{ required: true, message: '请选择分组!' }]; + return [{ required: true, message: '请选择分组!' }]; }, - }, - + }, + { label: '车辆是否入校', field: 'carStatus', diff --git a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue index e5bc953..3f04ced 100644 --- a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue +++ b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue @@ -57,6 +57,29 @@ {{ record.majorIdDescription }} + + + + + + + + + + @@ -71,12 +94,20 @@ import { useListPage } from '/@/hooks/system/useListPage'; import CeesWaiTeacherModal from './components/CeesWaiTeacherModal.vue'; import { columns, searchFormSchema, superQuerySchema, updateGroupOptions } from './CeesWaiTeacher.data'; - import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getGroup } from './CeesWaiTeacher.api'; + import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getGroup, updataDormitory } from './CeesWaiTeacher.api'; + import { selectBySex } from '/@/views/cees/dormitory/CeesDormitoryInfo.api'; import { downloadFile } from '/@/utils/common/renderUtils'; import { useUserStore } from '/@/store/modules/user'; const queryParam = reactive({}); const checkedKeys = ref>([]); const userStore = useUserStore(); + import { configStyleImportPlugin } from 'build/vite/plugin/styleImport'; + import { message } from 'ant-design-vue'; + import { registerCoordinateSystem } from 'echarts'; + + // 定义响应式数据 + const dormOptions = ref([]); + //注册model const [registerModal, { openModal }] = useModal(); //注册table数据 @@ -250,6 +281,55 @@ }, ]; } + + // 定义 handleFocus 函数 + async function handleFocus(sex, record) { + console.log('dormitory:', record.dormitory); + console.log('性别:', sex); + try { + const response = await selectBySex({ sex }); + console.log('响应:', response); + // 检查响应是否为数组 + if (Array.isArray(response)) { + //response.forEach((dormitory, index) => { + // console.log(`宿舍 ${index + 1}:`); + // console.log(' 宿舍状态:', dormitory.dormitoryStatus); + // console.log(' 宿舍类型:', dormitory.dormitoryType); + // console.log(' 宿舍名称:', dormitory.dormitory); + // console.log(' 组织代码:', dormitory.sysOrgCode); + // console.log(' 宿舍编号:', dormitory.dormitoryNum); + //}); + dormOptions.value = response.map((dormitory) => ({ + label: dormitory.dormitory, + value: dormitory.dormitory, + })); + } else { + console.error('预期的响应应该是一个数组。'); + } + } catch (error) { + console.error('在 handleFocus 中发生错误:', error); + } + } + // 定义 handleFocus 函数 + async function handleChange(userId, dormitory, record) { + console.log('userId', userId); + console.log('dormitory', dormitory); + let params = { + id: userId, + dormitory: dormitory, + }; + try { + // 正确调用方式(传递独立参数) + const response = await updataDormitory(userId, dormitory); + console.log('响应:', response); + } catch (error) { + console.error('在 handleFocus 中发生错误:', error); + } + } - + diff --git a/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue b/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue index 64cd9fd..e4ec9d9 100644 --- a/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue +++ b/src/views/cees/waiTeacher/components/CeesWaiTeacherForm.vue @@ -1,70 +1,70 @@ \ No newline at end of file + return true; + }); + + let formData = {}; + const queryByIdUrl = '/cees/ceesWaiTeacher/queryById'; + async function initFormData() { + let params = { id: props.formData.dataId }; + const data = await defHttp.get({ url: queryByIdUrl, params }); + formData = { ...data }; + //设置表单的值 + await setFieldsValue(formData); + //默认是禁用 + await setProps({ disabled: formDisabled.value }); + } + + async function submitForm() { + let data = getFieldsValue(); + let params = Object.assign({}, formData, data); + console.log('表单数据', params); + await saveOrUpdate(params, true); + } + + initFormData(); + + return { + registerForm, + formDisabled, + submitForm, + }; + }, + }); + diff --git a/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue b/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue index bc72dd0..815e732 100644 --- a/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue +++ b/src/views/cees/waiTeacher/components/CeesWaiTeacherModal.vue @@ -1,66 +1,66 @@ \ No newline at end of file + :deep(.ant-calendar-picker) { + width: 100%; + } +