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