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