Quellcode durchsuchen

12 30 16:37

提交测试
mo vor 5 Jahren
Ursprung
Commit
ffb5ed3fbd
45 geänderte Dateien mit 271 neuen und 13 gelöschten Zeilen
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/chunk-0040b65a.546ad8fc.css
  3. 1 1
      dist/static/css/chunk-2a0fb4f1.3410c550.css
  4. 0 1
      dist/static/css/chunk-3db642f1.e0030167.css
  5. 0 0
      dist/static/css/chunk-ba404ada.3b48fc8c.css
  6. 0 0
      dist/static/css/chunk-ba404ada.50905a4f.css
  7. 0 0
      dist/static/js/app.5f071178.js
  8. 0 0
      dist/static/js/app.7f764d86.js
  9. 0 0
      dist/static/js/chunk-0040b65a.46bf1e42.js
  10. 0 0
      dist/static/js/chunk-046f506a.bae2f80f.js
  11. 0 0
      dist/static/js/chunk-047dcaaa.c3c3af8f.js
  12. 0 0
      dist/static/js/chunk-09753c97.f86fa8d5.js
  13. 0 0
      dist/static/js/chunk-13cc5d62.480f6843.js
  14. 0 0
      dist/static/js/chunk-16f87310.045b6039.js
  15. 0 0
      dist/static/js/chunk-1c9ae0ee.ce57a71e.js
  16. 0 0
      dist/static/js/chunk-231926cd.1bea6238.js
  17. 0 0
      dist/static/js/chunk-2a0fb4f1.8d7c5480.js
  18. 0 0
      dist/static/js/chunk-35d7984f.11b5af37.js
  19. 0 0
      dist/static/js/chunk-3661e960.3b19860b.js
  20. 0 0
      dist/static/js/chunk-3d78ba52.a73f4e71.js
  21. 0 0
      dist/static/js/chunk-3db642f1.e9d1963d.js
  22. 0 0
      dist/static/js/chunk-3fef4f99.f3742294.js
  23. 0 0
      dist/static/js/chunk-40e665d1.b5c5e537.js
  24. 0 0
      dist/static/js/chunk-415e29c8.bd148ad1.js
  25. 0 0
      dist/static/js/chunk-419ce36c.1ea3b711.js
  26. 0 0
      dist/static/js/chunk-41f382a0.811e447c.js
  27. 0 0
      dist/static/js/chunk-5e5d6dc0.64f65547.js
  28. 0 0
      dist/static/js/chunk-6181ddae.bc2578d3.js
  29. 0 0
      dist/static/js/chunk-64c33787.9987e591.js
  30. 0 0
      dist/static/js/chunk-6562cc02.22f7cca8.js
  31. 0 0
      dist/static/js/chunk-68259a14.db52fdb4.js
  32. 0 0
      dist/static/js/chunk-7cfc4d3d.9cbf630b.js
  33. 0 0
      dist/static/js/chunk-90bc8dd8.cff832c4.js
  34. 0 0
      dist/static/js/chunk-a9a6c8fe.3cde356e.js
  35. 0 0
      dist/static/js/chunk-b1e176fc.7cc01daf.js
  36. 0 0
      dist/static/js/chunk-b1e176fc.abdc8c73.js
  37. 0 0
      dist/static/js/chunk-ba404ada.4420166b.js
  38. 0 0
      dist/static/js/chunk-bc672cf4.ced1e130.js
  39. 0 0
      dist/static/js/chunk-c7045f8e.0a9ca28a.js
  40. 0 0
      dist/static/js/chunk-dc69ca8a.29db9d23.js
  41. 0 0
      dist/static/js/chunk-fac7eb14.3f8d4d1a.js
  42. 10 0
      src/api/buildTeam.js
  43. 185 3
      src/views/resetTeaming/components/resetSound.vue
  44. 70 5
      src/views/teamDetail/components/courseList.vue
  45. 5 3
      src/views/vipClass/vipReset.vue

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/index.html


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/chunk-0040b65a.546ad8fc.css


+ 1 - 1
dist/static/css/chunk-41cff220.2ca06bb5.css → dist/static/css/chunk-2a0fb4f1.3410c550.css

@@ -1 +1 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;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:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.vipwrap[data-v-adf84bbc]{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}.vipwrap .newBand[data-v-adf84bbc]{margin-right:20px}.resetClassForm[data-v-adf84bbc] .el-date-editor.el-input,.resetClassForm[data-v-adf84bbc] .el-date-editor.el-input__inner{width:180px!important}[data-v-adf84bbc] .el-date-editor.el-input,[data-v-adf84bbc] .el-date-editor.el-input__inner{width:100px!important}
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;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:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.vipwrap[data-v-af564a1c]{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}.vipwrap .newBand[data-v-af564a1c]{margin-right:20px}.resetClassForm[data-v-af564a1c] .el-date-editor.el-input,.resetClassForm[data-v-af564a1c] .el-date-editor.el-input__inner{width:180px!important}[data-v-af564a1c] .el-date-editor.el-input,[data-v-af564a1c] .el-date-editor.el-input__inner{width:100px!important}

+ 0 - 1
dist/static/css/chunk-3db642f1.e0030167.css

@@ -1 +0,0 @@
-.setBtn[data-v-3b267e69]{width:120px;height:40px;line-height:40px;text-align:center;border-radius:4px;color:#fff;background-color:#444;cursor:pointer;margin:20px 0}.imc[data-v-5ef28ee8]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:30px 42px;background-color:#fff;min-height:80vh}.imc .addBtn[data-v-5ef28ee8]{line-height:40px;text-align:center;color:#fff;border-radius:4px;margin-right:20px;cursor:pointer;width:120px;height:40px;background-color:#4eada7}

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/chunk-ba404ada.3b48fc8c.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/chunk-ba404ada.50905a4f.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/app.5f071178.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/app.7f764d86.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-0040b65a.46bf1e42.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-046f506a.bae2f80f.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-047dcaaa.c3c3af8f.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-09753c97.f86fa8d5.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-13cc5d62.480f6843.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-16f87310.045b6039.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-1c9ae0ee.ce57a71e.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-231926cd.1bea6238.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-2a0fb4f1.8d7c5480.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-35d7984f.11b5af37.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-3661e960.3b19860b.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-3d78ba52.a73f4e71.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-3db642f1.e9d1963d.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-3fef4f99.f3742294.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-40e665d1.b5c5e537.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-415e29c8.bd148ad1.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-419ce36c.1ea3b711.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-41f382a0.811e447c.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-5e5d6dc0.64f65547.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-6181ddae.bc2578d3.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-64c33787.9987e591.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-6562cc02.22f7cca8.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-68259a14.db52fdb4.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-7cfc4d3d.9cbf630b.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-90bc8dd8.cff832c4.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-a9a6c8fe.3cde356e.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-b1e176fc.7cc01daf.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-b1e176fc.abdc8c73.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-ba404ada.4420166b.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-bc672cf4.ced1e130.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-c7045f8e.0a9ca28a.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-dc69ca8a.29db9d23.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-fac7eb14.3f8d4d1a.js


+ 10 - 0
src/api/buildTeam.js

@@ -455,6 +455,16 @@ export function resetCourse (data) {
   })
 }
 
+// 课时调整 批量
+export function batchAdjustment (data) {
+  return request({
+    url: api + `/courseSchedule/batchClassStartDateAdjust`,
+    method: 'post',
+    data
+  })
+}
+// 课时调整-批量
+
 // 根据乐团id 和声部id获取学生列表
 export function teamSoundStudent (data) {
   return request({

+ 185 - 3
src/views/resetTeaming/components/resetSound.vue

@@ -168,6 +168,12 @@
         </template>
       </el-table-column>
     </el-table>
+    <div class="floor">
+      <!-- <div class="remove"
+             @click="removeListItem">删除</div> -->
+      <div class='add'
+           @click="addListItem">添加</div>
+    </div>
     <div class="btnWrap"
          style="margin-top:30px">
       <div class="closeBtn"
@@ -176,6 +182,41 @@
            v-permission="{child: 'musicGroup/updateSubjectInfo', parent: '/resetTeaming/resetSound'}"
            @click="saveInfo">保存</div>
     </div>
+
+    <el-dialog title="声部选择"
+               :visible.sync="dialogTableVisible"
+               :modal-append-to-body="false">
+      <div class="soundWrap">
+        <div class="itemList">
+          <div class="categroy"
+               v-for="(item,index) in soundList"
+               :key="index">
+            <p>{{item.name }}</p>
+            <el-checkbox-group v-model="soundLists[index]"
+                               @change='changeList'>
+              <!--  sound: this.activeSoundList[item].name,  // id
+                 jihua: '10', //计划招生人数
+                 yuji: '10', // 预计收费
+                 zhonglei: [], // 可选乐器种类
+                 fangshi: 2, // 乐器提供方式
+                 jiaopu: 'jiaopu1', // 教辅组合
+                 type: 1, // 操作
+                 id: this.activeSoundList[item].id, //声部id
+                 visible: false, // 当前乐器提供方式的pop提示框显示隐藏 -->
+              <el-checkbox :label="sound.id"
+                           @change="checkinlist({'id':sound.id,'sound':sound.name,'jihua':0,'yuji':0,'zhonglei':[],'fangshi':'','fangshiprice':1500,'jiaopu':'','type':1,'typeVisible':false,'provideVisible':false,'markVisible':false,'goodsList':[],'markList':[],'markChioseList':[]})"
+                           v-for="(sound,indexs) in item.subjects"
+                           :key="indexs">{{sound.name }}</el-checkbox>
+            </el-checkbox-group>
+          </div>
+        </div>
+      </div>
+      <p class='soundSubP'>当前选择声部数:{{chioseSoundNum}}</p>
+      <div class="btnWrapss">
+        <div class="dialogBtn"
+             @click="generates">确定</div>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -183,13 +224,15 @@ import { findMusicGroupSubjectInfo, resetSubjectPlan, getSoundTree, getGoods, up
 export default {
   data () {
     return {
+      dialogTableVisible: false,
       tableList: [],
       teamid: '',
       activeSoundList: [],
       soundList: [],
       checkList: [],
       multipleSelection: [], // 列表选择的集合
-
+      soundList: [],
+      soundLists: [], // 存储选中项的声部id 记录变量
     }
   },
   mounted () {
@@ -197,11 +240,23 @@ export default {
     this.teamid = this.$route.query.id
     this.getSound();
     sessionStorage.setItem('resetCode', '2');
+    // 获取所有声部
+    getSoundTree().then(res => {
+      if (res.code == 200) {
+        this.soundList = res.data.rows;
+        // // 生成动态的checkList
+        for (let key in this.soundList) {
+          this.$set(this.soundLists, key, [])
+        }
+      }
+
+    })
 
   },
   methods: {
+    changeList (e) {
+    },
     getSound () {
-
       findMusicGroupSubjectInfo({ musicGroupId: this.teamid }).then(res => {
         if (res.code == 200) {
           this.activeSoundList = res.data.musicGroupSubjectPlans.map(item => {
@@ -338,6 +393,33 @@ export default {
         }
       })
     },
+    // 勾选选中框处理数据,存储勾选过的checkbox值
+    checkinlist (obj) {
+      let flag = false;
+      this.activeSoundList.map(item => {
+        if (item.id == obj.id) {
+          flag = true
+        }
+      })
+      if (!flag) {
+        this.activeSoundList.push(obj)
+      } else {
+        for (let i = 0; i < this.activeSoundList.length; i++) {
+          if (this.activeSoundList[i].id == obj.id) {
+            this.activeSoundList.splice(i, 1);
+          }
+        }
+      }
+    },
+    // 添加声部
+    // 点击添加按钮
+    addListItem () {
+      this.dialogTableVisible = true;
+    },
+    // 点击确认按钮生成表单
+    generates () {
+      this.dialogTableVisible = false;
+    },
 
   }, filters: {
     zhongleiFilter (val, list) {
@@ -396,8 +478,108 @@ export default {
     //   let goods = val.goods.join(',');
     //   let price = val.price
     // }
-  },
+  }, computed: {
+    // 返回当前选中声部数量
+    chioseSoundNum () {
+      let num = 0;
+      for (let key in this.soundList) {
+        num += this.soundLists[key].length;
+
+      }
+      return num;
+    }
+  }
+
 }
 </script>
 <style lang="scss">
+.floor {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  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;
+  }
+}
+.soundWrap {
+  width: 100%;
+  overflow: auto;
+  .itemList {
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-start;
+    flex-wrap: nowrap;
+    flex-grow: 1;
+    height: 300px;
+    max-height: 300px;
+    overflow: auto;
+    .categroy {
+      width: 150px;
+      min-width: 150px;
+      .el-checkbox {
+        height: 30px;
+        line-height: 30px;
+        display: block;
+        padding-left: 20px;
+      }
+      p {
+        height: 40px;
+        line-height: 40px;
+        background-color: #edeef0;
+        margin-bottom: 15px;
+        text-align: center;
+      }
+    }
+  }
+}
+.soundSubP {
+  height: 40px;
+  line-height: 40px;
+  background-color: #edeef0;
+  padding-left: 25px;
+}
+.btnWrapss {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  margin-top: 150px;
+  .dialogBtn {
+    width: 188px;
+    height: 40px;
+    background: rgba(249, 114, 21, 1);
+    border-radius: 4px;
+    line-height: 40px;
+    color: #fff;
+    text-align: center;
+    cursor: pointer;
+  }
+}
 </style>

+ 70 - 5
src/views/teamDetail/components/courseList.vue

@@ -64,10 +64,16 @@
              @click="search">搜索</div>
       </el-form-item>
     </el-form>
+    <div class="btnWraps">
+      <div class="newBand"
+           @click="removeCourses"
+           v-permission="'courseSchedule/bathDelete'">批量删除</div>
+      <!-- v-permission="'courseSchedule/bathDelete'" -->
+      <div class="newBand"
+           @click="resetTimer">修改日期</div>
+    </div>
     <!-- -->
-    <div class="newBand"
-         @click="removeCourses"
-         v-permission="'courseSchedule/bathDelete'">批量删除</div>
+
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data='tableList'
@@ -228,12 +234,34 @@
                    @click="submitResetClass">确 定</el-button>
       </div>
     </el-dialog>
+    <el-dialog title='修改时间'
+               width="400px"
+               :before-close="handleCloseTimer"
+               :visible.sync="timerVisible">
+      <el-form :model="timerMask">
+        <el-form-item label="上课日期"
+                      :rules=" [{ required: true, message: '请选择日期', trigger: 'blur' },]">
+          <el-date-picker v-model="timerMask.timer"
+                          type="date"
+                          format='yyyy-MM-dd'
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer"
+           class="dialog-footer">
+        <el-button @click="timerVisible = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="batchAdjustmentTime">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
 import { bathDelete } from '@/api/vipSeting'
-import { getCourseList, findMusicGroupClassTeacher, resetCourse, getTeacher, getMusicGroupAllClass, getCourseSchedule } from '@/api/buildTeam'
+import { getCourseList, findMusicGroupClassTeacher, resetCourse, getTeacher, getMusicGroupAllClass, getCourseSchedule, batchAdjustment } from '@/api/buildTeam'
 export default {
   props: {
     teamid: {
@@ -243,6 +271,7 @@ export default {
   },
   data () {
     return {
+      timerVisible: false,
       courseVisible: false,
       searchForm: {
         courseStatus: '', // 课程类型
@@ -275,8 +304,12 @@ export default {
       },
       teacherList: [],
       classList: [],
-      activeCourseList: []
+      activeCourseList: [],
+      timerMask: {
+        timer: ''
+      }
     }
+
   },
   components: {
     pagination
@@ -432,7 +465,31 @@ export default {
     },
     checkSelectable (val) {
       return val.courseScheduleStatus == 'NOT_START'
+    },
+    batchAdjustmentTime () {
+      let arr = [];
+      arr = this.activeCourseList.map(item => {
+        return { classDate: this.timerMask.timer, id: item.courseScheduleId, endClassTimeStr: item.endClassTimeStr, startClassTimeStr: item.startClassTimeStr };
+      })
+      batchAdjustment(arr).then(res => {
+        if (res.code == 200) {
+          this.timerVisible = false;
+          this.getList();
+        }
+      })
+    },
+    handleCloseTimer () {
+      this.timerVisible = false;
+      this.timerMask.timer = '';
+    },
+    resetTimer () {
+      if (this.activeCourseList.length < 1) {
+        this.$message.error('请至少选择一节课')
+        return
+      }
+      this.timerVisible = true;
     }
+
   }
 }
 </script>
@@ -456,4 +513,12 @@ export default {
     margin: 0 30px;
   }
 }
+.btnWraps {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  div {
+    margin-right: 20px;
+  }
+}
 </style>

+ 5 - 3
src/views/vipClass/vipReset.vue

@@ -143,7 +143,7 @@
                             minTime: maskForm.startTime
                           }">
           </el-time-select>
-        </el-form-item> -->
+        </el-form-item>  v-if="maskForm.teachMode=='OFFLINE'"-->
         <el-form-item label="课程类型"
                       prop="courseType">
           <el-select clearable
@@ -269,7 +269,7 @@
                       v-if='isaddCourse'>
           <el-input v-model="adjustmentForm.fee"></el-input>
         </el-form-item>
-        <!--  v-if='isaddCourse' -->
+        <!--  v-if='isaddCourse' v-if="adjustmentForm.courseType=='OFFLINE'" -->
         <el-form-item label="课程类型"
                       prop="courseType">
           <el-select clearable
@@ -539,7 +539,9 @@ export default {
           this.$message.success('修改成功')
           this.courseVisible = false;
           this.getList();
-        }
+        } //else {
+        //   this.$message.error(res.msg)
+        // }
       })
     },
     removeClass (row) {

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.