From 0f823d771d6a876c8990ad5b7dd80c835c38c53f Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 06 六月 2024 15:52:46 +0800 Subject: [PATCH] 班级学员新增、修改 --- src/api/classesNotify.js | 14 +- src/api/classesUser.js | 42 +++++++++ src/views/Manage/ClassManagement/ClassStaff.vue | 146 ++++++++++++++++++++++++++++++------ src/api/classes.js | 16 ++-- 4 files changed, 176 insertions(+), 42 deletions(-) diff --git a/src/api/classes.js b/src/api/classes.js index d4aa889..164459d 100644 --- a/src/api/classes.js +++ b/src/api/classes.js @@ -3,7 +3,7 @@ // 鑾峰彇鐝骇鍒嗛〉 export const getClassess = (params) => { return axios({ - url: "/api/classes/page", + url: "/api/admin/classes/page", method: "GET", params: params }) @@ -12,7 +12,7 @@ // 鑾峰彇鐝骇鍒楄〃 export const getClassesList = () => { return axios({ - url: "/api/classes/list", + url: "/api/admin/classes/list", method: "GET" }) } @@ -20,7 +20,7 @@ // 閫氳繃id鑾峰彇鐝骇 export const getClassesById = (params) => { return axios({ - url: "/api/classes/" + params, + url: "/api/admin/classes/" + params, method: "GET" }) } @@ -28,7 +28,7 @@ // 閫氳繃id鍒犻櫎鐝骇 export const deleteClassesById = (params) => { return axios({ - url: "/api/classes/" + params, + url: "/api/admin/classes/" + params, method: "DELETE" }) } @@ -36,7 +36,7 @@ // 瑙f暎鐝骇 export const dissolution = (params) => { return axios({ - url: "/api/classes/dissolution/" + params, + url: "/api/admin/classes/dissolution/" + params, method: "PUT" }) } @@ -44,7 +44,7 @@ // 鎵归噺鍒犻櫎鐝骇 export const deleteClassesByIds = (params) => { return axios({ - url: "/api/classes/batch", + url: "/api/admin/classes/batch", method: "DELETE", data: params }) @@ -53,7 +53,7 @@ // 淇敼鐝骇 export const editClasses = (params) => { return axios({ - url: "/api/classes/", + url: "/api/admin/classes/", method: "PUT", data: params }) @@ -62,7 +62,7 @@ // 娣诲姞鐝骇 export const addClasses = (params) => { return axios({ - url: "/api/classes/", + url: "/api/admin/classes/", method: "POST", data: params }) diff --git a/src/api/classesNotify.js b/src/api/classesNotify.js index 99ff7f2..222fe3a 100644 --- a/src/api/classesNotify.js +++ b/src/api/classesNotify.js @@ -3,7 +3,7 @@ // 鑾峰彇鐝骇閫氱煡鍒嗛〉 export const getClassesNotifys = (params) => { return axios({ - url: "/api/classes-notify/page", + url: "/api/admin/classes-notify/page", method: "GET", params: params }) @@ -12,7 +12,7 @@ // 鑾峰彇鐝骇閫氱煡鍒楄〃 export const getClassesNotifyList = () => { return axios({ - url: "/api/classes-notify/list", + url: "/api/admin/classes-notify/list", method: "GET" }) } @@ -20,7 +20,7 @@ // 閫氳繃id鑾峰彇鐝骇閫氱煡 export const getClassesNotifyById = (params) => { return axios({ - url: "/api/classes-notify/" + params, + url: "/api/admin/classes-notify/" + params, method: "GET" }) } @@ -28,7 +28,7 @@ // 閫氳繃id鍒犻櫎鐝骇閫氱煡 export const deleteClassesNotifyById = (params) => { return axios({ - url: "/api/classes-notify/" + params, + url: "/api/admin/classes-notify/" + params, method: "DELETE" }) } @@ -36,7 +36,7 @@ // 鎵归噺鍒犻櫎鐝骇閫氱煡 export const deleteClassesNotifyByIds = (params) => { return axios({ - url: "/api/classes-notify/batch", + url: "/api/admin/classes-notify/batch", method: "DELETE", data: params }) @@ -45,7 +45,7 @@ // 淇敼鐝骇閫氱煡 export const editClassesNotify = (params) => { return axios({ - url: "/api/classes-notify/", + url: "/api/admin/classes-notify/", method: "PUT", data: params }) @@ -54,7 +54,7 @@ // 娣诲姞鐝骇閫氱煡 export const addClassesNotify = (params) => { return axios({ - url: "/api/classes-notify/", + url: "/api/admin/classes-notify/", method: "POST", data: params }) diff --git a/src/api/classesUser.js b/src/api/classesUser.js index 4e10cda..338a4e4 100644 --- a/src/api/classesUser.js +++ b/src/api/classesUser.js @@ -3,17 +3,53 @@ // 鑾峰彇鐝骇涓庣敤鎴峰叧鑱旇〃鍒嗛〉 export const getClassesUsers = (params) => { return axios({ - url: "/api/classes-user/page", + url: "/api/admin/classesUser/page", method: "GET", params: params }) } -// 淇濆瓨鐝骇瀛﹀憳鏁版嵁 +// 淇濆瓨鐝骇瀛﹀憳鏁版嵁(鍒犻櫎/鏂板) export const updateClassesUser = (data) => { return axios({ - url: "/api/classes-user/", + url: "/api/admin/classesUser/edit", + method: "POST", + data: data + }) +} + +// 缂栬緫瀛﹀憳淇℃伅 +export const editClassesUser = (data) => { + return axios({ + url: "/api/admin/classesUser", method: "PUT", data: data }) } + + +// 閫氳繃id鍒犻櫎 +export const deleteClassesUserById = (params) => { + return axios({ + url: "/api/admin/classesUser/" + params, + method: "DELETE" + }) +} + +// 鎵归噺鍒犻櫎 +export const deleteClassesUserByIds = (params) => { + return axios({ + url: "/api/admin/classesUser/batch", + method: "DELETE", + data: params + }) +} + +// 娣诲姞鐝骇涓庣敤鎴峰叧鑱旇〃 +export const addClassesUser = (params) => { + return axios({ + url: "/api/admin/classesUser/", + method: "POST", + data: params + }) +} diff --git a/src/views/Manage/ClassManagement/ClassStaff.vue b/src/views/Manage/ClassManagement/ClassStaff.vue index 655fbcf..468e550 100644 --- a/src/views/Manage/ClassManagement/ClassStaff.vue +++ b/src/views/Manage/ClassManagement/ClassStaff.vue @@ -3,12 +3,12 @@ <div class="c"> <div class="bg"> <div class="main"> - <TitleIndex title="鐝骇浜哄憳绠$悊" /> <div class="content"> <!-- 鐝骇鍚嶇О --> <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> + <el-button @click="handlerAddStudent" type="primary" size="small">鏂板瀛﹀憳</el-button> + <el-button @click="open = true" type="primary" size="small">瀛﹀憳璋冩暣</el-button> </div> <!-- 琛ㄦ牸 --> <el-table @@ -27,13 +27,14 @@ </el-table-column> <el-table-column align="center" - prop="name" + prop="realName" label="濮撳悕" > </el-table-column> <el-table-column align="center" prop="sex" + :formatter="sexFormatter" label="鎬у埆" > </el-table-column> @@ -44,19 +45,15 @@ > </el-table-column> <el-table-column - align="center" - prop="condition" - label="涓婄嚎鎯呭喌" - > - </el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="300px" > - <el-button type="warning">缂栬緫</el-button> - <el-button type="danger">鍒犻櫎</el-button> - <el-button type="primary">鍒嗛厤瑙掕壊</el-button> + <template slot-scope="scope"> + <el-button @click="handlerEditStudent(scope.row)" type="warning">缂栬緫</el-button> + <el-button @click="remove(scope.row.id)" type="danger">鍒犻櫎</el-button> + <el-button type="primary">鍒嗛厤瑙掕壊</el-button> + </template> </el-table-column> </el-table> <div @@ -76,7 +73,38 @@ /> <el-dialog - title="瀛﹀憳绠$悊" + :title="studentTitle" + :visible.sync="addOpen" + width="700px" + :before-close="handleAddClose"> + <el-form :model="studentForm" :rules="studentRules" ref="studentForm" label-width="100px" class="demo-ruleForm"> + <el-form-item label="濮撳悕" prop="realName"> + <el-input v-model="studentForm.realName"></el-input> + </el-form-item> + <el-form-item label="鎬у埆" prop="sex"> + <el-select v-model="studentForm.sex"> + <el-option label="鐢�" value="N"></el-option> + <el-option label="濂�" value="V"></el-option> + </el-select> + </el-form-item> + <el-form-item label="鐢佃瘽" prop="phone"> + <el-input v-model="studentForm.phone"></el-input> + </el-form-item> + <el-form-item label="鐧诲綍璐﹀彿" prop="account"> + <el-input v-model="studentForm.account"></el-input> + </el-form-item> + <el-form-item label="鐧诲綍瀵嗙爜" prop="password"> + <el-input v-model="studentForm.password" show-password placeholder="涓嶅~鍐欎細浣跨敤榛樿202406"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="handleAddClose">鍙� 娑�</el-button> + <el-button type="primary" @click="submitStudentForm">娣� 鍔�</el-button> + </span> + </el-dialog> + + <el-dialog + title="瀛﹀憳璋冩暣" :visible.sync="open" width="900px" :before-close="handleClose"> @@ -105,7 +133,7 @@ // 寮曞叆褰堝嚭绐楀彛绲勪欢 import PopUp from "../../../components/PopUp/Question.vue"; import UserApi from "@/api/user"; -import { updateClassesUser, getClassesUsers } from "@/api/classesUser"; +import { updateClassesUser, getClassesUsers, deleteClassesUserById, addClassesUser, edit } from "@/api/classesUser"; export default { // 娉ㄥ唽 components: { @@ -113,6 +141,30 @@ }, data() { return { + studentForm: { + realName: "", + sex: "", + phone: "", + age: null, + account: "", + password: "" + }, + studentRules: { + realName: [ + { required: true, message: '璇峰~鍐欏鍛樺鍚�', trigger: 'blur' }, + ], + sex: [ + { required: true, message: '璇烽�夋嫨瀛﹀憳鎬у埆', trigger: 'change' }, + ], + phone: [ + { required: true, message: '璇峰~鍐欏鍛樼數璇�', trigger: 'blur' }, + ], + account: [ + { required: true, message: '璇峰~鍐欏鍛樼櫥褰曡处鍙�', trigger: 'blur' }, + ] + }, + studentTitle: "鏂板瀛﹀憳", + addOpen: false, total: 0, studentList: [], searchForm: { @@ -134,14 +186,6 @@ region: "", }, tableData: [ - { - id: 1, - name: "鐜嬩簲", - sex: "鐢�", - phone: "12345678977", - // 鏄惁涓婄嚎 - condition: "鏈笂绾�", - }, ], }; }, @@ -152,6 +196,60 @@ this.getStudentList() }, methods: { + handlerEditStudent(row) { + this.studentForm = row + this.studentTitle = "缂栬緫瀛﹀憳" + this.addOpen = true + }, + handlerAddStudent() { + this.studentTitle = "娣诲姞瀛﹀憳" + this.addOpen = true + }, + submitStudentForm() { + this.$refs['studentForm'].validate((valid) => { + if (valid) { + this.studentForm.classes = this.classes.id + if (this.studentForm.id) { + edit(this.studentForm).then(res => { + this.addOpen = false + this.$message.success(res.data.message) + this.page() + }) + } + addClassesUser(this.studentForm).then(res => { + this.addOpen = false + this.$message.success(res.data.message) + this.page() + }) + } + }) + }, + resetStudentForm() { + this.studentForm = { + realName: "", + sex: "", + phone: "", + age: null + } + }, + handleAddClose() { + this.addOpen = false + this.resetStudentForm() + }, + remove(id) { + deleteClassesUserById(id).then(res => { + this.$message.success(res.data.message) + this.page() + }) + }, + sexFormatter(row) { + if (row.sex === 1) { + return "鐢�" + } + if (row.sex === 2) { + return "濂�" + } + }, getClassesCurrentUserList(classesId) { let param = { classesId: classesId @@ -175,11 +273,11 @@ submitForm() { updateClassesUser(this.classes).then(res => { this.$message.success(res.data.message) - this.classesStudentPage(); + this.page(); }) }, handleClose() { - + this.open = false }, filterMethod(query, item) { return item.realName.indexOf(query) > -1; -- Gitblit v1.8.0