mo před 5 roky
rodič
revize
3073e3f424
34 změnil soubory, kde provedl 426 přidání a 22 odebrání
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/chunk-0a3a8a56.f169f753.css
  3. 1 1
      dist/static/css/chunk-4c809fb8.3866d55f.css
  4. 0 0
      dist/static/css/chunk-6abb7626.2cc5b69b.css
  5. 1 0
      dist/static/css/chunk-f7b8967e.31d603b3.css
  6. 0 0
      dist/static/js/app.32df028b.js
  7. 0 0
      dist/static/js/app.7defd4ce.js
  8. 0 0
      dist/static/js/chunk-00de8e4e.18f3b4a2.js
  9. 0 0
      dist/static/js/chunk-1228c85e.12035305.js
  10. 0 0
      dist/static/js/chunk-1228c85e.52d9d9de.js
  11. 0 0
      dist/static/js/chunk-1e7593f4.731d32cc.js
  12. 0 0
      dist/static/js/chunk-21a5b3d9.04bdb21f.js
  13. 0 0
      dist/static/js/chunk-36b7a56a.0c1919d4.js
  14. 0 0
      dist/static/js/chunk-36b7a56a.313225f7.js
  15. 0 0
      dist/static/js/chunk-48492cc9.1b64c5bf.js
  16. 0 0
      dist/static/js/chunk-4c809fb8.800b9ab9.js
  17. 0 0
      dist/static/js/chunk-51469487.75c6044a.js
  18. 0 0
      dist/static/js/chunk-51469487.bf89fe77.js
  19. 0 0
      dist/static/js/chunk-672f31be.2899bfc2.js
  20. 0 0
      dist/static/js/chunk-672f31be.7e05a01e.js
  21. 0 0
      dist/static/js/chunk-77f3b83c.cc4cc97d.js
  22. 0 0
      dist/static/js/chunk-77f3b83c.d006c48f.js
  23. 0 0
      dist/static/js/chunk-7a6e47c8.4fbd10d5.js
  24. 0 0
      dist/static/js/chunk-7a6e47c8.ae5dea82.js
  25. 0 0
      dist/static/js/chunk-f7b8967e.adabccaf.js
  26. 17 1
      src/api/buildTeam.js
  27. 9 0
      src/api/studentManager.js
  28. 2 0
      src/router/index.js
  29. 8 0
      src/utils/vueFilter.js
  30. 41 16
      src/views/buildVip/index.vue
  31. 8 2
      src/views/teamBuild/components/teamBaseInfo.vue
  32. 6 0
      src/views/teamDetail/components/classList.vue
  33. 331 0
      src/views/teamDetail/components/resetClass.vue
  34. 2 2
      vue.config.js

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/index.html


+ 0 - 0
dist/static/css/chunk-0a3a8a56.ad6c378c.css → dist/static/css/chunk-0a3a8a56.f169f753.css


+ 1 - 1
dist/static/css/chunk-48492cc9.14d1165b.css → dist/static/css/chunk-4c809fb8.3866d55f.css

@@ -1 +1 @@
-.m-core[data-v-00e1e878]{margin-top:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around}.m-core .el-input[data-v-00e1e878]{width:180px}.m-core h4[data-v-00e1e878]{font-size:16px;background-color:#ccc;color:#fff;text-align:center;width:100%;height:40px;line-height:40px;margin-bottom:20px}.m-core .center[data-v-00e1e878],.m-core .right[data-v-00e1e878],.m-core .vipLeft[data-v-00e1e878]{width:400px}.planList[data-v-00e1e878]{padding:0 25px}.planList .planTop[data-v-00e1e878]{height:40px;line-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #ccc;margin-top:20px}.planList .planTop>p[data-v-00e1e878]{font-size:14px}.planList .planCore .row[data-v-00e1e878]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;height:40px;line-height:40px;font-size:14px}.okBtn[data-v-00e1e878]{width:120px;height:40px;line-height:40px;text-align:center;color:#fff;border-radius:4px;margin-right:20px;cursor:pointer;background-color:#f97215;float:right}
+.m-core[data-v-0454429f]{margin-top:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around}.m-core .el-input[data-v-0454429f]{width:180px}.m-core h4[data-v-0454429f]{font-size:16px;background-color:#ccc;color:#fff;text-align:center;width:100%;height:40px;line-height:40px;margin-bottom:20px}.m-core .center[data-v-0454429f],.m-core .right[data-v-0454429f],.m-core .vipLeft[data-v-0454429f]{width:400px}.planList[data-v-0454429f]{padding:0 25px}.planList .planTop[data-v-0454429f]{height:40px;line-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #ccc;margin-top:20px}.planList .planTop>p[data-v-0454429f]{font-size:14px}.planList .planCore .row[data-v-0454429f]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;height:40px;line-height:40px;font-size:14px;text-align:center}.planList .planCore .row div[data-v-0454429f]{width:87px}.okBtn[data-v-0454429f]{width:120px;height:40px;line-height:40px;text-align:center;color:#fff;border-radius:4px;margin-right:20px;cursor:pointer;background-color:#f97215;float:right}

+ 0 - 0
dist/static/css/chunk-6abb7626.606659fc.css → dist/static/css/chunk-6abb7626.2cc5b69b.css


+ 1 - 0
dist/static/css/chunk-f7b8967e.31d603b3.css

@@ -0,0 +1 @@
+.floor{padding-right:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;width:100%;height:48px;line-height:48px;background:#edeef0;font-size:14px;color:#444;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;z-index:1}.floor .remove{background:#f85043;margin-left:164px}.floor .add,.floor .remove{width:98px;height:32px;border-radius:3px;color:#fff;line-height:32px;text-align:center;cursor:pointer}.floor .add{background:#14928a;margin-left:20px}.studentMask{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.studentMask .left{width:200px;margin-right:20px}.studentMask .left .wrap{margin-bottom:20px}.studentMask .left h4{font-size:16px;color:#444;line-height:38px;margin-bottom:10px}.studentMask .left .chioseStudentList{height:500px;overflow-y:auto;border:1px solid #ccc}.studentMask .left .chioseStudentList .studentItem{padding-left:10px;line-height:25px}.studentMask .right .tableList{max-height:500px;overflow-y:auto}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/app.32df028b.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/app.7defd4ce.js


+ 0 - 0
dist/static/js/chunk-00de8e4e.2f55d5bd.js → dist/static/js/chunk-00de8e4e.18f3b4a2.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-1228c85e.12035305.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-1228c85e.52d9d9de.js


+ 0 - 0
dist/static/js/chunk-1e7593f4.a8ed81b2.js → dist/static/js/chunk-1e7593f4.731d32cc.js


+ 0 - 0
dist/static/js/chunk-21a5b3d9.85933a92.js → dist/static/js/chunk-21a5b3d9.04bdb21f.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-36b7a56a.0c1919d4.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-36b7a56a.313225f7.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-48492cc9.1b64c5bf.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-4c809fb8.800b9ab9.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-51469487.75c6044a.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-51469487.bf89fe77.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-672f31be.2899bfc2.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-672f31be.7e05a01e.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-77f3b83c.cc4cc97d.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-77f3b83c.d006c48f.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-7a6e47c8.4fbd10d5.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-7a6e47c8.ae5dea82.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
dist/static/js/chunk-f7b8967e.adabccaf.js


+ 17 - 1
src/api/buildTeam.js

@@ -126,7 +126,7 @@ export function getPayStatus (data) {
   })
 }
 
-// 根据乐团id查询未分班的学生
+// 根据乐团id查询未分班的学生(根据多声部)
 export function getNoClassStudent (data) {
   return request({
     url: '/web-server/studentRegistration/getNoClassStu',
@@ -135,7 +135,15 @@ export function getNoClassStudent (data) {
 
   })
 }
+// 根据乐团id查询未分班的学生(所有或单声部)
+export function getNoClassStudentAll (data) {
+  return request({
+    url: '/web-server/studentRegistration/getMusicGroupNoClassStu',
+    method: 'get',
+    params: data
 
+  })
+}
 // 新增单技课班
 export function addSingleClass (data) {
   return request({
@@ -245,6 +253,14 @@ export function getAllSignClass (data) {
   })
 }
 
+// 根据合奏班id获取单技班以及老师
+export function getAllSignClassandTeacher (data) {
+  return request({
+    url: '/web-server/classGroup/classGroupAndTeacher',
+    method: 'get',
+    params: data
+  })
+}
 
 // 乐团课排课
 export function workOut (data) {

+ 9 - 0
src/api/studentManager.js

@@ -130,3 +130,12 @@ export function addStudent (data) {
   })
 }
 
+// 根据班级id获取班级内所有学生
+export function getClassAllStudent (data) {
+  return request({
+    url: `/web-server/classGroupStudent/findAllStudent`,
+    method: 'POST',
+    data: qs.stringify(data)
+  })
+}
+

+ 2 - 0
src/router/index.js

@@ -151,6 +151,8 @@ export const asyncRoutes = {
   teamDetails: () => import('@/views/teamDetail'),
   // 学生点名总汇
   studentSignin: () => import('@/views/teamDetail/components/studentSignin'),
+  // 班级调整
+  resetClass: () => import('@/views/teamDetail/components/resetClass'),
 
 
 }

+ 8 - 0
src/utils/vueFilter.js

@@ -275,3 +275,11 @@ Vue.filter('classType', value => {
   }
   return template[value]
 })
+
+Vue.filter('teachMode', value => {
+  let template = {
+    ONLINE: "线上课",
+    OFFLINE: '线下课'
+  }
+  return template[value]
+})

+ 41 - 16
src/views/buildVip/index.vue

@@ -18,7 +18,8 @@
           </el-form-item>
           <el-form-item label="科目名称"
                         prop="subject">
-            <el-select v-model="leftForm.subject">
+            <el-select v-model="leftForm.subject"
+                       @change="changeSubject">
               <el-option v-for='(item,index) in subjectList'
                          :key='index'
                          :value="item.id"
@@ -151,15 +152,18 @@
                        @click="dialogFormVisible = true">点击排课</el-button>
           </div>
           <div class="planCore">
+            <div class="row">
+              <div class="name">时间</div>
+              <div class="week">开始时间</div>
+              <div class="time">结束时间</div>
+              <div class="time">课程类型</div>
+            </div>
             <div class="row"
-                 v-for="(item,index) in this.lookList">
-              <div class="name">{{ item.type }}</div>
-              <div class="week">{{ item.week }}</div>
-              <div class="time">{{ item.time }}</div>
-              <div class="operation">
-                <el-button type='text'
-                           @click="removeWeekCourse(item.id)">删除</el-button>
-              </div>
+                 v-for="(item,index) in this.timeTable">
+              <div class="name">{{ item.classDate | formatTimer}}</div>
+              <div class="week">{{ item.startClassTimeStr }}</div>
+              <div class="time">{{ item.endClassTimeStr }}</div>
+              <div class="time">{{ item.teachMode |teachMode}}</div>
             </div>
           </div>
 
@@ -174,13 +178,13 @@
                         v-if="hasOnline">
             <el-input v-model="rightForm.onlineCourse"
                       :disabled="salaryReadonlyFlag==0"></el-input>
-                      <!--  || onlineSalary!='TEACHER_DEFAULT' -->
+            <!--  || onlineSalary!='TEACHER_DEFAULT' -->
           </el-form-item>
           <el-form-item label="线下课课酬"
                         v-if="hasOffline">
             <el-input v-model="rightForm.offlineCourse"
                       :disabled="salaryReadonlyFlag==0"></el-input>
-                      <!--  || offlineSalary!='TEACHER_DEFAULT' -->
+            <!--  || offlineSalary!='TEACHER_DEFAULT' -->
           </el-form-item>
           <el-form-item label="线上课单价"
                         v-if="hasOnline">
@@ -425,9 +429,13 @@ export default {
     }
   },
   methods: {
+    changeSubject (val) {
+      this.leftForm.teacher = ''
+      this.leftForm.section = ''
+    },
     // 选择课程类型
     changeType (val) {
-
+      this.leftForm.activeType = '';
       for (let i in this.courseTypeList) {
         if (this.courseTypeList[i].id == val) {
           // 学生人数
@@ -650,7 +658,9 @@ export default {
 
 
       let date = this.maskForm.courseStart;
-      let date1 = this.maskForm.courseStart;
+      let seceond = date.getTime();
+      let date1 = new Date(seceond);
+      console.log(date1)
       let startWeekday = this.maskForm.courseStart.getDay();
       let onlineList = []; // 装线上课的数组
       let offlineList = []; //装线下课的数组
@@ -667,6 +677,9 @@ export default {
           offlineList.push({ week: this.lookList[i].weekDay, date: this.lookList[i] })
         }
       }
+      // console.log(onlineList + '----------------------------------------------------------------------------------');
+      // console.log(offlineList);
+
       if (online > 0 && onlineList.length <= 0) {
         this.$message.error('选择了线上课但未排线上课');
         this.timeTable = [];
@@ -700,7 +713,7 @@ export default {
         date.setDate(date.getDate() + 7);
       }
 
-
+      console.log(date1)
       while (offline && offline > 0) {
         // 排线下课
         for (let i in offlineList) {
@@ -720,7 +733,7 @@ export default {
         // 加一周
         date1.setDate(date1.getDate() + 7);
       }
-
+      console.log(this.timeTable);
       this.dialogFormVisible = false;
     },
     getThinkDate (date, num) {
@@ -764,7 +777,9 @@ export default {
           offlineClassesNum = parseInt(offlineClassesNum) + parseInt(this.giveNum)
         }
       }
-      getVipGroupCostCount({ vipGroupActivityId, onlineClassesUnitPrice, vipGroupCategoryId, offlineClassesUnitPrice, onlineClassesNum, offlineClassesNum, userId, giveTeachMode }).then(res => {
+      let onlineTeacherSalary = this.rightForm.onlineCourse || null;
+      let offlineTeacherSalary = this.rightForm.offlineCourse || null;
+      getVipGroupCostCount({ vipGroupActivityId, onlineClassesUnitPrice, offlineTeacherSalary, offlineTeacherSalary, vipGroupCategoryId, offlineClassesUnitPrice, onlineClassesNum, offlineClassesNum, userId, giveTeachMode }).then(res => {
         if (res.code == 200) {
           this.rightForm.onlineCourse = res.data.onlineTeacherSalary;
           this.rightForm.offlineCourse = res.data.offlineTeacherSalary;
@@ -828,6 +843,7 @@ export default {
       })
     },
     setSection (val) {
+      this.leftForm.section = '';
       getTeachSchool({ userId: val }).then(res => {
         if (res.code == 200) {
           this.scetionList = res.data;
@@ -900,6 +916,15 @@ export default {
       height: 40px;
       line-height: 40px;
       font-size: 14px;
+      text-align: center;
+      div {
+        width: 87px;
+      }
+      // div {
+      //   &:nth-child(1) {
+      //     text-align: left;
+      //   }
+      // }
     }
   }
 }

+ 8 - 2
src/views/teamBuild/components/teamBaseInfo.vue

@@ -356,6 +356,8 @@
 <script>
 import { getSection, getType, getCooperation, getTeacher, getAddress, getPayMaster, getPayStatus, getTeamBaseInfo, resetTeamBaseInfo } from '@/api/buildTeam'
 import { scrollTo } from '@/utils/scroll-to'
+import axios from 'axios'
+import qs from 'qs'
 export default {
   props: ['getTeamList'],
   data () {
@@ -432,9 +434,13 @@ export default {
     }
   },
   created () {
-    // 分为3种  1.resetTeam 乐团修改
-    //         2. newTeam  新建乐团
+    // 分为3种   1.resetTeam 乐团修改
+    //          2. newTeam  新建乐团
     //          3.teamList 跨团修改
+    let year = new Date().getFullYear();
+    axios.post('/jiari/', qs.stringify({ d: year })).then(res => {
+      // this.holidayList = Object.keys(res.data[year])
+    })
     this.teamStatus = this.$route.query.type;
     console.log();
     // 传过来的乐团信息

+ 6 - 0
src/views/teamDetail/components/classList.vue

@@ -13,6 +13,8 @@
       </el-form-item>
     </el-form> -->
     <!-- 列表 -->
+    <div class="newBand"
+         @click="resetClass">班级调整</div>
     <div class="tableWrap">
       <el-table :data='tableList'
                 :header-cell-style="{background:'#EDEEF0',color:'#444'}">
@@ -113,6 +115,10 @@ export default {
           this.rules.total = res.data.total
         }
       })
+    },
+    resetClass () {
+      // 跳转到班级详情页
+      this.$router.push({ path: '/business/resetClass', query: { id: this.teamid } })
     }
   }
 }

+ 331 - 0
src/views/teamDetail/components/resetClass.vue

@@ -0,0 +1,331 @@
+<template>
+  <div class="m-container">
+    <h2>
+      <div class='squrt'></div>
+      班级调整
+    </h2>
+    <div class="m-core">
+      <el-form :inline="true"
+               :model="topForm">
+        <el-form-item label="合奏班">
+          <el-select v-model="topForm.mixClass"
+                     @change="changeMixClass">
+            <el-option v-for="(item,index) in maxClassList"
+                       :key='index'
+                       :value="item.id"
+                       :label="item.name"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="当前单技班数量">
+          <el-input disabled
+                    v-model="topForm.count"></el-input>
+        </el-form-item>
+      </el-form>
+      <div class="tableWrap"
+           style=" width: 800px;">
+        <el-table :data='activeSingleList'
+                  style="width:800px;"
+                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+          <el-table-column align='center'
+                           prop="name"
+                           label="班级名称">
+          </el-table-column>
+          <el-table-column align='center'
+                           prop="studentNum"
+                           label="班级人数">
+          </el-table-column>
+          <el-table-column align='center'
+                           prop=""
+                           label="主教老师">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="助教老师">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="是否排课">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-popover placement="top"
+                            width="160"
+                            :ref="scope.$index">
+                  <p>确定删除?</p>
+                  <div style="text-align: right; margin: 0">
+                    <el-button size="mini"
+                               type="text"
+                               @click="scope._self.$refs[scope.$index].doClose()">取消</el-button>
+                    <el-button type="primary"
+                               size="mini"
+                               @click="removeClass(scope)">确定</el-button>
+                  </div>
+                  <el-button type="text"
+                             slot="reference">删除</el-button>
+                </el-popover>
+                <el-button type="text"
+                           @click="resetClass(scope.row)">修改</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="floor">
+          <div class="add"
+               @click="temporary">临时调整</div>
+          <div class='add'>新建班级</div>
+        </div>
+      </div>
+    </div>
+    <el-dialog title="学员选择"
+               width="800px"
+               :visible.sync="studentVisible"
+               :modal-append-to-body="false">
+      <div class="studentMask">
+        <div class="left">
+
+          <div class="wrap">
+            <el-input placeholder="请输入班级名称"></el-input>
+          </div>
+          <div class="chioseStudentList">
+            <h4 style="padding-left:10px;">当前已选学员</h4>
+            <div class="studentItem"
+                 v-for="(item,index) in activeListStudent"
+                 :key="index">
+              {{ item.name }}
+              <el-button type="text"
+                         @click="removeStudent(item)">删除</el-button>
+            </div>
+          </div>
+        </div>
+        <div class="right">
+
+          <!--  multiple
+                     collapse-tags -->
+          <el-select v-model="activeChioseSound"
+                     style="width:180px"
+                     clearable
+                     placeholder="声部选择">
+            <el-option v-for='(item,index) in chioseSoundList'
+                       :key='index'
+                       :label="item.name"
+                       :value="item.id"></el-option>
+          </el-select>
+          <el-button type="danger"
+                     style="margin-left:20px;"
+                     @click="searchStudent">搜索</el-button>
+
+          <!--   列表开始  -->
+          <div class="tableList">
+            <el-table tooltip-effect="dark"
+                      style="width: 100%; margin-top:10px;"
+                      :data='studentList'
+                      ref='studentList'
+                      @selection-change="SelectionStudent">
+              <el-table-column type="selection"
+                               align='center'
+                               width="55">
+              </el-table-column>
+              <el-table-column prop="name"
+                               align='center'
+                               width="80"
+                               label="姓名">
+              </el-table-column>
+              <el-table-column prop="gender"
+                               align='center'
+                               width="55"
+                               label="性别">
+              </el-table-column>
+              <el-table-column prop="musicGroupName"
+                               align='center'
+                               label="学员声部">
+              </el-table-column>
+            </el-table>
+          </div>
+
+        </div>
+      </div>
+      <div slot="footer"
+           class="dialog-footer">
+        <el-button @click="studentVisible = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="studentVisible = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { getAllClass, getAllSignClassandTeacher, getAllSignClass, removeSingleClass, getNoClassStudentAll } from '@/api/buildTeam'
+import { getClassAllStudent } from '@/api/studentManager'
+import axios from 'axios'
+import qs from 'qs'
+export default {
+  data () {
+    return {
+      teamid: '',
+      topForm: {
+        mixClass: '',
+        count: ''
+      },
+      tableList: [],
+      maxClassList: [],
+      activeSingleList: [],
+      studentVisible: false,
+      activeListStudent: [], // 当前选中的学生列表
+      activeChioseSound: '', //选择的声部
+      chioseSoundList: [], //当前的所有声部
+      studentList: [], //列表里的学生集合
+    }
+  },
+  created () {
+    this.teamid = this.$route.query.id;
+    console.log(this.teamid)
+  },
+  mounted () {
+    // 1.获取乐团下所有的合奏班
+    // 2.根据合奏班获取所有的单技班
+    // 3.根据乐团id 查询 此乐团所有的合奏班
+    // 4.获取当年的所有节假日
+    getAllClass({ musicGroupId: this.teamid }).then(res => {
+      if (res.code == 200) {
+        this.maxClassList = res.data;
+      }
+    })
+    // let year = new Date().getFullYear();
+    // axios.post('/jiari/', qs.stringify({ d: year })).then(res => {
+    //   this.holidayList = Object.keys(res.data[year])
+    // })
+    console.log(this.teamid);
+    // getNoClassStudentAll({ musicGroupId: this.teamid }).then(res => {
+
+    // })
+  },
+  methods: {
+    changeMixClass (val) {
+      // 根据合奏班id获取合奏班下的所有单技班
+      // getAllSignClassandTeacher({ mixClassGroupId: val }).then(res => {
+      //   if (res.code == 200) {
+      //     this.activeSingleList = res.data.map(item => {
+      //       item.mixid = val
+      //       return item;
+      //     });
+      //     this.topForm.count = this.activeSingleList.length
+      //   }
+      // })
+      getAllSignClass({ musicGroupId: this.teamid, mixClassGroupId: val }).then(res => {
+        if (res.code == 200) {
+          this.activeSingleList = res.data.map(item => {
+            item.mixid = val
+            return item;
+          });
+        }
+      })
+    },
+    // 临时调整
+    temporary () {
+      if (!this.topForm.mixClass) {
+        this.$message.error('请先选择合奏班')
+      }
+    },
+    searchStudent () {
+      // 搜索学生
+    },
+    // 选择学生的方法
+    SelectionStudent () {
+
+    },
+    removeClass (scope) {
+      // console.log(scope.row);
+
+      // console.log(scope.$index)
+      removeSingleClass({ classGroupId: scope.row.id }).then(res => {
+        if (res.code == 200) {
+          this.$message.success('删除成功')
+          scope._self.$refs[scope.$index].doClose();
+        } else {
+          this.$message.error(res.msg)
+          scope._self.$refs[scope.$index].doClose();
+        }
+      })
+    },
+    resetClass (row) {
+      this.studentVisible = true;
+      console.log(row);
+      // 根据单机班id 查询单技班内的所有学生
+      getClassAllStudent({ classGroupId: row.id }).then(res => {
+      })
+    }
+  },
+}
+</script>
+<style lang="scss">
+.floor {
+  padding-right: 20px;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-end;
+  width: 100%;
+  height: 48px;
+  line-height: 48px;
+  background: rgba(237, 238, 240, 1);
+  font-size: 14px;
+  color: #444;
+  align-items: center;
+  position: relative;
+  z-index: 1;
+  .remove {
+    width: 98px;
+    height: 32px;
+    background: rgba(248, 80, 67, 1);
+    border-radius: 3px;
+    color: #fff;
+    line-height: 32px;
+    text-align: center;
+    margin-left: 164px;
+    cursor: pointer;
+  }
+  .add {
+    width: 98px;
+    height: 32px;
+    background: rgba(20, 146, 138, 1);
+    border-radius: 3px;
+    color: #fff;
+    line-height: 32px;
+    text-align: center;
+    margin-left: 20px;
+    cursor: pointer;
+  }
+}
+.studentMask {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  .left {
+    width: 200px;
+    margin-right: 20px;
+    .wrap {
+      margin-bottom: 20px;
+    }
+    h4 {
+      font-size: 16px;
+      color: #444;
+      line-height: 38px;
+      margin-bottom: 10px;
+    }
+    .chioseStudentList {
+      height: 500px;
+      overflow-y: auto;
+      border: 1px solid #ccc;
+      .studentItem {
+        padding-left: 10px;
+        line-height: 25px;
+      }
+    }
+  }
+  .right {
+    .tableList {
+      max-height: 500px;
+      overflow-y: auto;
+    }
+  }
+}
+</style>

+ 2 - 2
vue.config.js

@@ -17,10 +17,10 @@ const name = defaultSettings.title || 'vue Admin Template' // page title
 // http://47.99.212.176:8000
 // 
 // let target = 'http://192.168.3.27:8000' // 箭河
-// let target = 'http://192.168.3.28:8000' //邹璇
+let target = 'http://192.168.3.28:8000' //邹璇
 // let target = 'http://192.168.3.8:8000' //勇哥
 // let target = 'http://47.99.212.176:8000' // 测试服
-let target = 'http://192.168.3.48:8000' // 乔
+// let target = 'http://192.168.3.48:8000' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
   /**

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů