From f1ee6723d0661e23f78318fa7feac70d3c7d27d1 Mon Sep 17 00:00:00 2001
From: Qi <3194726156@qq.com>
Date: Sun, 27 Apr 2025 15:44:47 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=89=B9=E9=87=8F=E5=88=86=E7=BB=84?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=B7=BB=E5=8A=A0=E5=88=B0=E7=A0=94=E7=A9=B6?=
=?UTF-8?q?=E7=94=9F=E7=AE=A1=E7=90=86=E5=92=8C=E5=A4=96=E6=A0=A1=E6=95=99?=
=?UTF-8?q?=E5=B8=88=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/cees/student/Student.api.ts | 59 ++-
src/views/cees/student/StudentList.vue | 340 +++++++------
.../student/components/GroupSelectModal.vue | 84 ++++
src/views/cees/user/CeesUserList.vue | 454 +++++++++---------
.../cees/waiTeacher/CeesWaiTeacher.api.ts | 26 +-
.../cees/waiTeacher/CeesWaiTeacherList.vue | 32 ++
.../components/GroupSelectModal.vue | 84 ++++
7 files changed, 678 insertions(+), 401 deletions(-)
create mode 100644 src/views/cees/student/components/GroupSelectModal.vue
create mode 100644 src/views/cees/waiTeacher/components/GroupSelectModal.vue
diff --git a/src/views/cees/student/Student.api.ts b/src/views/cees/student/Student.api.ts
index 28d2ac0..40649b2 100644
--- a/src/views/cees/student/Student.api.ts
+++ b/src/views/cees/student/Student.api.ts
@@ -1,22 +1,23 @@
-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/student/list',
- save='/cees/student/add',
- edit='/cees/student/edit',
+ save = '/cees/student/add',
+ edit = '/cees/student/edit',
deleteOne = '/cees/student/delete',
deleteBatch = '/cees/student/deleteBatch',
importExcel = '/cees/student/importExcel',
exportXls = '/cees/student/exportXls',
updateGroupUser = '/cees/ceesGroup/updateGroupUser',
+ batchGroup = '/cees/student/batchGroup',
}
//获取分组
export const getGroup = () =>
- defHttp.get({url: '/cees/ceesGroup/list'}).then((res) => {
+ defHttp.get({ url: '/cees/ceesGroup/list' }).then((res) => {
return res.records;
});
/**
@@ -32,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
@@ -55,27 +55,46 @@ 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 batchGroup = (params, handleSuccess) => {
+ console.log('params', params);
+ createConfirm({
+ iconType: 'warning',
+ title: '确认分组',
+ content: '是否分组选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.post({ url: Api.batchGroup, 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/student/StudentList.vue b/src/views/cees/student/StudentList.vue
index 9b8fcef..d63065b 100644
--- a/src/views/cees/student/StudentList.vue
+++ b/src/views/cees/student/StudentList.vue
@@ -14,9 +14,14 @@
删除
+
+
+ 分组
+
- 批量操作
+ 批量操作
@@ -44,165 +49,192 @@
+
diff --git a/src/views/cees/student/components/GroupSelectModal.vue b/src/views/cees/student/components/GroupSelectModal.vue
new file mode 100644
index 0000000..73b0483
--- /dev/null
+++ b/src/views/cees/student/components/GroupSelectModal.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/cees/user/CeesUserList.vue b/src/views/cees/user/CeesUserList.vue
index a1c16ea..cc897a5 100644
--- a/src/views/cees/user/CeesUserList.vue
+++ b/src/views/cees/user/CeesUserList.vue
@@ -16,16 +16,15 @@
- 批量操作
+ 批量操作
-
- 生成账号
-
+ 生成账号
@@ -50,12 +49,17 @@
-
+
-
+
{{ item.name }}
@@ -63,8 +67,7 @@
-
+
{{ item.name }}
@@ -72,8 +75,13 @@
-
+
@@ -81,231 +89,229 @@
diff --git a/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts b/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts
index cf53378..b7762db 100644
--- a/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts
+++ b/src/views/cees/waiTeacher/CeesWaiTeacher.api.ts
@@ -14,15 +14,16 @@ enum Api {
updateGroupUser = '/cees/ceesGroup/updateGroupUser',
updateDormitory = 'cees/ceesWaiTeacher/updateDormitory',
cancelCheckIn = 'cees/ceesWaiTeacher/cancelCheckIn',
- confirmCheckIn = 'cees/ceesWaiTeacher/confirmCheckIn'
+ confirmCheckIn = 'cees/ceesWaiTeacher/confirmCheckIn',
+ batchGroup = '/cees/ceesWaiTeacher/batchGroup',
}
export const updateDormitory = (id, dormitory) => defHttp.get({ url: Api.updateDormitory, params: { id, dormitory } }); // ✅ 将参数包装为独立的对象 });
//取消确认报到
-export const cancelCheckIn = (params) => defHttp.get({url: Api.cancelCheckIn, params});
+export const cancelCheckIn = (params) => defHttp.get({ url: Api.cancelCheckIn, params });
//确认报到
-export const confirmCheckIn = (params) => defHttp.get({url: Api.confirmCheckIn, params});
+export const confirmCheckIn = (params) => defHttp.get({ url: Api.confirmCheckIn, params });
//获取分组
export const getGroup = () =>
defHttp.get({ url: '/cees/ceesGroup/list' }).then((res) => {
@@ -69,6 +70,25 @@ export const batchDelete = (params, handleSuccess) => {
},
});
};
+/**
+ * 批量分组
+ * @param params
+ */
+export const batchGroup = (params, handleSuccess) => {
+ console.log('params', params);
+ createConfirm({
+ iconType: 'warning',
+ title: '确认分组',
+ content: '是否分组选中数据',
+ okText: '确认',
+ cancelText: '取消',
+ onOk: () => {
+ return defHttp.post({ url: Api.batchGroup, data: params }, { joinParamsToUrl: true }).then(() => {
+ handleSuccess();
+ });
+ },
+ });
+};
//更新分组中间表
export const updateGroupUser = (params) => {
diff --git a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue
index d918edc..f6f4a45 100644
--- a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue
+++ b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue
@@ -22,6 +22,10 @@
删除
+
+
+ 分组
+
+
@@ -92,6 +97,7 @@
import { ref, reactive, computed, unref, onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useModal } from '/@/components/Modal';
+ import GroupSelectModal from './components/GroupSelectModal.vue';
import { useListPage } from '/@/hooks/system/useListPage';
import CeesWaiTeacherModal from './components/CeesWaiTeacherModal.vue';
import { columns, searchFormSchema, superQuerySchema, updateGroupOptions } from './CeesWaiTeacher.data';
@@ -105,6 +111,7 @@
updateDormitory,
cancelCheckIn,
confirmCheckIn,
+ batchGroup,
} from './CeesWaiTeacher.api';
import { selectBySex } from '/@/views/cees/dormitory/CeesDormitoryInfo.api';
import { downloadFile } from '/@/utils/common/renderUtils';
@@ -121,6 +128,8 @@
//注册model
const [registerModal, { openModal }] = useModal();
+ const [registerGroupModal, { openModal: openGroupModal }] = useModal();
+ const groupModalRef = ref(null);
//注册table数据
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
tableProps: {
@@ -255,6 +264,29 @@
async function batchHandleDelete() {
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
}
+
+ /**
+ * 批量分组事件
+ */
+ async function batchHandleGroup() {
+ //if (selectedRowKeys.value.length === 0) {
+ // return;
+ //}
+ groupModalRef.value?.setGroupOptions(groupOptions.value);
+ openGroupModal(true);
+ }
+ /**
+ * 分组选好后的确认事件
+ */
+ async function handleGroupSuccess(groupId) {
+ console.log('asdfasd');
+ try {
+ console.log('111');
+ await batchGroup({ ids: selectedRowKeys.value, groupId }, handleSuccess);
+ } catch (error) {
+ console.error('批量分组失败:', error);
+ }
+ }
/**
* 成功回调
*/
diff --git a/src/views/cees/waiTeacher/components/GroupSelectModal.vue b/src/views/cees/waiTeacher/components/GroupSelectModal.vue
new file mode 100644
index 0000000..73b0483
--- /dev/null
+++ b/src/views/cees/waiTeacher/components/GroupSelectModal.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+