From c87c4fe5aa3987d61b10d57208232a94eec83d7c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 04 六月 2024 11:58:18 +0800
Subject: [PATCH] 班级学员管理
---
src/views/Manage/ClassManagement/Class.vue | 16 +--
src/api/user.js | 6 +
src/api/classesUser.js | 19 ++++
src/views/Manage/ClassManagement/ClassStaff.vue | 161 ++++++++++++++++++++--------------------
src/api/classes.js | 8 ++
5 files changed, 119 insertions(+), 91 deletions(-)
diff --git a/src/api/classes.js b/src/api/classes.js
index 04cf616..d4aa889 100644
--- a/src/api/classes.js
+++ b/src/api/classes.js
@@ -33,6 +33,14 @@
})
}
+// 瑙f暎鐝骇
+export const dissolution = (params) => {
+ return axios({
+ url: "/api/classes/dissolution/" + params,
+ method: "PUT"
+ })
+}
+
// 鎵归噺鍒犻櫎鐝骇
export const deleteClassesByIds = (params) => {
return axios({
diff --git a/src/api/classesUser.js b/src/api/classesUser.js
new file mode 100644
index 0000000..4e10cda
--- /dev/null
+++ b/src/api/classesUser.js
@@ -0,0 +1,19 @@
+import axios from "./request";
+
+// 鑾峰彇鐝骇涓庣敤鎴峰叧鑱旇〃鍒嗛〉
+export const getClassesUsers = (params) => {
+ return axios({
+ url: "/api/classes-user/page",
+ method: "GET",
+ params: params
+ })
+}
+
+// 淇濆瓨鐝骇瀛﹀憳鏁版嵁
+export const updateClassesUser = (data) => {
+ return axios({
+ url: "/api/classes-user/",
+ method: "PUT",
+ data: data
+ })
+}
diff --git a/src/api/user.js b/src/api/user.js
index bd97bde..34afe94 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -1,4 +1,4 @@
-import { post } from '@/utils/request'
+import { post,get } from '@/utils/request'
export default {
getUserPageList: query => post('/api/admin/user/page/list', query),
@@ -9,5 +9,7 @@
updateUser: query => post('/api/admin/user/update', query),
changeStatus: id => post('/api/admin/user/changeStatus/' + id),
deleteUser: id => post('/api/admin/user/delete/' + id),
- selectByUserName: query => post('/api/admin/user/selectByUserName', query)
+ selectByUserName: query => post('/api/admin/user/selectByUserName', query),
+ studentList: () => get('/api/admin/user/student/list'),
+ getClassesCurrentUserList: (param) => get('/api/admin/user/classes/students', param),
}
diff --git a/src/views/Manage/ClassManagement/Class.vue b/src/views/Manage/ClassManagement/Class.vue
index 6bfa2e3..f705d07 100644
--- a/src/views/Manage/ClassManagement/Class.vue
+++ b/src/views/Manage/ClassManagement/Class.vue
@@ -40,10 +40,10 @@
width="180px"
></el-table-column>
<el-table-column
- label="骞寸骇"
+ label="鐘舵��"
align="center"
width="80px"
- prop="grade"
+ prop="status"
></el-table-column>
<el-table-column
width="100px"
@@ -84,8 +84,8 @@
<el-button size="small" @click="handlerEdit(scope.row)" type="primary">淇敼</el-button>
<el-button size="small" type="warning">鐝骇楠岃瘉</el-button>
<el-button size="small" type="info">閫氱煡</el-button>
- <el-button @click="routersTo()" size="small" type="success">鎴愬憳绠$悊</el-button>
- <el-button @click="remove(scope.row.id)" type="danger" size="small">鍒犻櫎</el-button>
+ <el-button @click="studentManager(scope.row.id)" size="small" type="success">鎴愬憳绠$悊</el-button>
+ <el-button @click="remove(scope.row.id)" type="danger" size="small">瑙f暎</el-button>
</template>
</el-table-column>
</el-table>
@@ -233,7 +233,7 @@
},
remove(id) {
deleteClassesById(id).then(res => {
- this.$message.success("鍒犻櫎鎴愬姛")
+ this.$message.success(res.data.message)
this.page()
})
},
@@ -250,10 +250,8 @@
this.title = "鏂板鐝骇"
},
// 璺宠浆(鏌ョ湅鐝骇浜哄憳鎯呭喌)
- routersTo() {
- this.$router.push({
- name: "ClassStaff",
- });
+ studentManager(classesId) {
+ this.$router.push({ path: "class-management/Class-staff", query: { classesId: classesId } });
},
// 杩斿洖涓婁竴涓〉闈�
goBack() {
diff --git a/src/views/Manage/ClassManagement/ClassStaff.vue b/src/views/Manage/ClassManagement/ClassStaff.vue
index b6849c8..655fbcf 100644
--- a/src/views/Manage/ClassManagement/ClassStaff.vue
+++ b/src/views/Manage/ClassManagement/ClassStaff.vue
@@ -8,6 +8,7 @@
<!-- 鐝骇鍚嶇О -->
<div style="padding-bottom:20px; border-bottom: 3px solid #409EFF;margin-bottom: 20px;">
<span>{{title}}</span>
+ <el-button @click="open = true" type="primary" size="small">鏂板瀛﹀憳</el-button>
</div>
<!-- 琛ㄦ牸 -->
<el-table
@@ -62,14 +63,8 @@
class="block"
style="display: flex; margin-top: 40px;"
>
- <el-pagination
- style="margin:auto"
- background
- :page-size="10"
- layout="prev, pager, next, jumper"
- :total="100"
- >
- </el-pagination>
+ <pagination v-show="total>0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize"
+ @pagination="page"/>
</div>
</div>
</div>
@@ -79,11 +74,38 @@
ref="popUp"
@children="parentGoods"
/>
+
+ <el-dialog
+ title="瀛﹀憳绠$悊"
+ :visible.sync="open"
+ width="900px"
+ :before-close="handleClose">
+ <el-transfer
+ filterable
+ :filter-method="filterMethod"
+ filter-placeholder="瀛﹀憳濮撳悕"
+ :titles="['瀛︾敓鍒楄〃', '褰撳墠瀛︾敓']"
+ :button-texts="['閫�鍑虹彮绾�', '鍔犲叆鐝骇']"
+ :props="{
+ key: 'id',
+ label: 'realName'
+ }"
+ v-model="classes.studentList"
+ :data="studentList">
+ </el-transfer>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="handleClose">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm">淇� 瀛�</el-button>
+ </span>
+ </el-dialog>
+
</div>
</template>
<script>
// 寮曞叆褰堝嚭绐楀彛绲勪欢
import PopUp from "../../../components/PopUp/Question.vue";
+import UserApi from "@/api/user";
+import { updateClassesUser, getClassesUsers } from "@/api/classesUser";
export default {
// 娉ㄥ唽
components: {
@@ -91,6 +113,19 @@
},
data() {
return {
+ total: 0,
+ studentList: [],
+ searchForm: {
+ realName: "",
+ pageSize: 10,
+ pageNum: 1,
+ classesId: null
+ },
+ classes: {
+ id: null,
+ studentList: []
+ },
+ open: false,
// 鐝骇鍚嶇О
title: "19绾ц蒋浠跺洓鐝�",
formLabelAlign: {
@@ -99,78 +134,6 @@
region: "",
},
tableData: [
- {
- id: 1,
- name: "寮犱笁",
- sex: "鐢�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "宸蹭笂绾�",
- },
- {
- id: 1,
- name: "鏉庡洓",
- sex: "濂�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "宸蹭笂绾�",
- },
- {
- id: 1,
- name: "鐜嬩簲",
- sex: "鐢�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "鏈笂绾�",
- },
- {
- id: 1,
- name: "寮犱笁",
- sex: "鐢�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "宸蹭笂绾�",
- },
- {
- id: 1,
- name: "鏉庡洓",
- sex: "濂�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "宸蹭笂绾�",
- },
- {
- id: 1,
- name: "鐜嬩簲",
- sex: "鐢�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "鏈笂绾�",
- },
- {
- id: 1,
- name: "寮犱笁",
- sex: "鐢�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "宸蹭笂绾�",
- },
- {
- id: 1,
- name: "鏉庡洓",
- sex: "濂�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "宸蹭笂绾�",
- },
- {
- id: 1,
- name: "鐜嬩簲",
- sex: "鐢�",
- phone: "12345678977",
- // 鏄惁涓婄嚎
- condition: "鏈笂绾�",
- },
{
id: 1,
name: "鐜嬩簲",
@@ -182,7 +145,45 @@
],
};
},
+ mounted() {
+ this.classes.id = this.$route.query.classesId;
+ this.page()
+ this.getClassesCurrentUserList(this.classes.id)
+ this.getStudentList()
+ },
methods: {
+ getClassesCurrentUserList(classesId) {
+ let param = {
+ classesId: classesId
+ }
+ UserApi.getClassesCurrentUserList(param).then(res => {
+ this.classes.studentList = res.data
+ })
+ },
+ getStudentList() {
+ UserApi.studentList().then(res => {
+ this.studentList = res.data;
+ })
+ },
+ // 鑾峰彇褰撳墠鐝骇瀛﹀憳鍒嗛〉
+ page() {
+ this.searchForm.classesId = this.classes.id
+ getClassesUsers(this.searchForm).then(res => {
+ this.tableData = res.data.data
+ })
+ },
+ submitForm() {
+ updateClassesUser(this.classes).then(res => {
+ this.$message.success(res.data.message)
+ this.classesStudentPage();
+ })
+ },
+ handleClose() {
+
+ },
+ filterMethod(query, item) {
+ return item.realName.indexOf(query) > -1;
+ },
// 杩斿洖涓婁竴涓〉闈�
goBack() {
this.$router.back();
--
Gitblit v1.8.0