Parcourir la source

Merge branch 'master' into online

lex-xin il y a 5 ans
Parent
commit
4702a25c58
48 fichiers modifiés avec 139 ajouts et 12 suppressions
  1. 0 0
      dist/index.html
  2. 1 0
      dist/static/css/chunk-14e73a8a.58deb9d5.css
  3. 1 1
      dist/static/css/chunk-1b8cb2f4.94aa8920.css
  4. 0 0
      dist/static/js/app.91877a1b.js
  5. 0 0
      dist/static/js/chunk-09753c97.602936c4.js
  6. 0 0
      dist/static/js/chunk-098565e5.5747a0db.js
  7. 0 0
      dist/static/js/chunk-0fc56010.c8ff80b6.js
  8. 0 0
      dist/static/js/chunk-13336542.fa882956.js
  9. 0 0
      dist/static/js/chunk-1348e40c.49b655b4.js
  10. 0 0
      dist/static/js/chunk-14a1bcee.5f76e3a2.js
  11. 0 0
      dist/static/js/chunk-14e73a8a.ee24a06f.js
  12. 0 0
      dist/static/js/chunk-19af2112.ce7f5379.js
  13. 0 0
      dist/static/js/chunk-1b8cb2f4.731e849d.js
  14. 0 0
      dist/static/js/chunk-1c9ae0ee.41bfca52.js
  15. 0 0
      dist/static/js/chunk-2441ab90.e4220131.js
  16. 0 0
      dist/static/js/chunk-33fd6bb7.beae7954.js
  17. 0 0
      dist/static/js/chunk-35d7984f.649d5e07.js
  18. 0 0
      dist/static/js/chunk-3661e960.5a0c4ca0.js
  19. 0 0
      dist/static/js/chunk-385f8d18.4da314d2.js
  20. 0 0
      dist/static/js/chunk-3bcfc2cc.d0ca5ec7.js
  21. 0 0
      dist/static/js/chunk-4046482a.7a9f4222.js
  22. 0 0
      dist/static/js/chunk-40e665d1.7426692e.js
  23. 0 0
      dist/static/js/chunk-419ce36c.72f2c107.js
  24. 0 0
      dist/static/js/chunk-41f382a0.0e597b32.js
  25. 0 0
      dist/static/js/chunk-4ea01add.59681f11.js
  26. 0 0
      dist/static/js/chunk-532e18a2.066cbd2a.js
  27. 0 0
      dist/static/js/chunk-545b0d0c.118a4a8a.js
  28. 0 0
      dist/static/js/chunk-60578c4b.3aa2f486.js
  29. 0 0
      dist/static/js/chunk-6181ddae.70ac0f6d.js
  30. 0 0
      dist/static/js/chunk-62720db2.864f36c5.js
  31. 0 0
      dist/static/js/chunk-6562cc02.6d0cf0d6.js
  32. 0 0
      dist/static/js/chunk-68259a14.d0c583b9.js
  33. 0 0
      dist/static/js/chunk-6c42ea8e.66f3d4d0.js
  34. 0 0
      dist/static/js/chunk-8a9c297a.de352d12.js
  35. 0 0
      dist/static/js/chunk-90bc8dd8.3b257fd9.js
  36. 0 0
      dist/static/js/chunk-9247aa7e.dd906c05.js
  37. 0 0
      dist/static/js/chunk-b1e176fc.be7151d2.js
  38. 0 0
      dist/static/js/chunk-bb579d98.6c26fa39.js
  39. 0 0
      dist/static/js/chunk-bc672cf4.a6d03327.js
  40. 0 0
      dist/static/js/chunk-c6e235ce.31504d4f.js
  41. 0 0
      dist/static/js/chunk-d3d05562.497cf453.js
  42. 0 0
      dist/static/js/chunk-e962324e.0e17d48c.js
  43. 0 0
      dist/static/js/chunk-ed8bca9c.53373aab.js
  44. 10 1
      src/api/vipSeting.js
  45. 8 9
      src/views/teamDetail/components/courseList.vue
  46. 58 0
      src/views/teamDetail/teamCourseList.vue
  47. 12 0
      src/views/vipClass/vipDetail/components/vipStudentList.vue
  48. 49 1
      src/views/vipClass/vipList.vue

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/index.html


+ 1 - 0
dist/static/css/chunk-14e73a8a.58deb9d5.css

@@ -0,0 +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}.inputStyle[data-v-6aa153a0]{width:100px;text-align:center}.title[data-v-5fcb358e]{margin-bottom:20px}.amap-demo[data-v-5fcb358e]{height:300px}.inputStyle[data-v-63cd9bec]{width:100px;text-align:center}.work[data-v-63cd9bec]{margin-bottom:30px;font-size:16px}.visible[data-v-bab6aaa6]{visibility:hidden}.cl-container .topFrom[data-v-bab6aaa6]{margin:20px 30px 0}.cl-container .topFrom .classlist[data-v-bab6aaa6]{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;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cl-container .topFrom .classlist ul li[data-v-bab6aaa6]{list-style:none}.cl-container .searchForm[data-v-bab6aaa6]{margin:0 30px}.btnWraps[data-v-bab6aaa6]{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}.btnWraps div[data-v-bab6aaa6]{margin-right:20px}.inputStyle[data-v-bab6aaa6]{width:180px}.red[data-v-bab6aaa6]{color:red}.exportBtn[data-v-bab6aaa6]{background:#13817a}

+ 1 - 1
dist/static/css/chunk-64c33787.501fd35d.css → dist/static/css/chunk-1b8cb2f4.94aa8920.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}.m-container{-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}
+.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}.m-container[data-v-3813b37e]{-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.newBand[data-v-3813b37e]{display:inline-block}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/app.91877a1b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-09753c97.602936c4.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-098565e5.5747a0db.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-0fc56010.c8ff80b6.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-13336542.fa882956.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-1348e40c.49b655b4.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-14a1bcee.5f76e3a2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-14e73a8a.ee24a06f.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-19af2112.ce7f5379.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-1b8cb2f4.731e849d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-1c9ae0ee.41bfca52.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-2441ab90.e4220131.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-33fd6bb7.beae7954.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-35d7984f.649d5e07.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-3661e960.5a0c4ca0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-385f8d18.4da314d2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-3bcfc2cc.d0ca5ec7.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-4046482a.7a9f4222.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-40e665d1.7426692e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-419ce36c.72f2c107.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-41f382a0.0e597b32.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-4ea01add.59681f11.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-532e18a2.066cbd2a.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-545b0d0c.118a4a8a.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-60578c4b.3aa2f486.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-6181ddae.70ac0f6d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-62720db2.864f36c5.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-6562cc02.6d0cf0d6.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-68259a14.d0c583b9.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-6c42ea8e.66f3d4d0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-8a9c297a.de352d12.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-90bc8dd8.3b257fd9.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-9247aa7e.dd906c05.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-b1e176fc.be7151d2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-bb579d98.6c26fa39.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-bc672cf4.a6d03327.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-c6e235ce.31504d4f.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-d3d05562.497cf453.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-e962324e.0e17d48c.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-ed8bca9c.53373aab.js


+ 10 - 1
src/api/vipSeting.js

@@ -152,6 +152,15 @@ export function getVipGroupDetail (data) {
   })
 }
 
+// 根据id获取vip详情
+export function getVipGroupDetailForAudit (data) {
+  return request({
+    url: api + `/vipGroupManage/getVipGroupDetailForAudit`,
+    method: 'GET',
+    params: data
+  })
+}
+
 // 根据vipid获取学员
 export function findVipGroupStudents (data) {
   return request({
@@ -348,4 +357,4 @@ export function findTeacherWithVipGroupOrganAndSubject (data) {
     method: 'get',
     params: data
   })
-}
+}

+ 8 - 9
src/views/teamDetail/components/courseList.vue

@@ -509,7 +509,6 @@ export default {
       }
       this.maskForm.date = row.classDate;
       this.$set(this.maskForm, 'startTime', row.startClassTimeStr.substring(0, 5))
-      // this.maskForm.startTime = row.startClassTimeStr;
       this.maskForm.endTime = row.endClassTimeStr.substring(0, 5);
       this.maskForm.id = row.courseScheduleId;
       this.courseVisible = true;
@@ -567,7 +566,8 @@ export default {
       });
     },
     submitResetClass () {
-      if (!this.startTime || !this.endTime) {
+      let maskForm = this.maskForm
+      if (!maskForm.startTime || !maskForm.endTime) {
         this.$message.error('请填写开始时间或结束时间')
         return
       }
@@ -576,17 +576,17 @@ export default {
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        let teachingTeacherIdList = this.maskForm.assistant.join(',')
+        let teachingTeacherIdList = maskForm.assistant.join(',')
         if (teachingTeacherIdList.length <= 0) {
           let teachingTeacherIdList = null
         }
         let obj = {
-          actualTeacherId: this.maskForm.teacher,
-          startClassTimeStr: this.maskForm.startTime,
-          endClassTimeStr: this.maskForm.endTime,
-          id: this.maskForm.id,
+          actualTeacherId: maskForm.teacher,
+          startClassTimeStr: maskForm.startTime,
+          endClassTimeStr: maskForm.endTime,
+          id: maskForm.id,
           teachingTeacherIdList,
-          classDate: this.maskForm.date
+          classDate: maskForm.date
         }
         resetCourse(obj).then(res => {
           if (res.code == 200) {
@@ -608,7 +608,6 @@ export default {
         startTime: '',
         endTime: ''
       },
-        console.log(this.maskForm.startTime)
       this.$refs['maskForm'].resetFields()
     },
     handleSelectionChange (val) {

+ 58 - 0
src/views/teamDetail/teamCourseList.vue

@@ -85,6 +85,11 @@
           <div class='searchBtn'
                @click="search">搜索</div>
         </el-form-item>
+        <el-form-item>
+          <div class='searchBtn exportBtn'
+               v-permission="'export/superFindCourseSchedules'"
+               @click="onCourseExport">导出课表</div>
+        </el-form-item>
       </el-form>
       <div class="btnWraps">
       </div>
@@ -290,6 +295,8 @@ import { courseType } from '@/utils/searchArray'
 import studentRollCall from './componentCourse/studentRollCall'
 import gpsLoction from './componentCourse/gpsLocation'
 import studentWork from './componentCourse/studentWork'
+import axios from 'axios'
+import { getToken } from '@/utils/auth'
 let nowTime = new Date()
 nowTime = nowTime.getFullYear() + '-' + (nowTime.getMonth() + 1) + '-' + nowTime.getDate()
 export default {
@@ -367,6 +374,53 @@ export default {
       this.rules.page = 1;
       this.getList();
     },
+    onCourseExport() { // 课表导出
+      let searchForm = this.searchForm
+      if (!searchForm.timer) {
+        searchForm.timer = []
+      }
+      let obj = {
+        courseStatus: searchForm.courseStatus || null,
+        courseType: searchForm.courseType || null,
+        startTime: searchForm.timer[0] || null,
+        endTime: searchForm.timer[1] || null,
+        classGroupId: searchForm.class || null,
+        organIdList: searchForm.organIdList || null,
+        search: searchForm.search || null,
+        teacherIdList: searchForm.teacherIdList || null,
+        schoolId: searchForm.schoolId || null
+      }
+      let url = '/api-web/export/superFindCourseSchedules'
+      const options = {
+        method: 'get',
+        headers: {
+          'Authorization': getToken()
+        },
+        params: obj,
+        url,
+        responseType: 'blob'
+      }
+      this.$confirm('您确定导出报表', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        axios(options).then(res => {
+          let blob = new Blob([res.data], {
+            // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
+            type: 'application/vnd.ms-excel;charset=utf-8'
+            //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
+          })
+          let objectUrl = URL.createObjectURL(blob)
+          let link = document.createElement("a")
+          let fname = '课表列表' + new Date().getTime() //下载文件的名字
+          link.href = objectUrl
+          link.setAttribute("download", fname)
+          document.body.appendChild(link)
+          link.click()
+        })
+      }).catch(() => {})
+    },
     getList () {
       let searchForm = this.searchForm
       if (!searchForm.timer) {
@@ -453,4 +507,8 @@ export default {
 .red {
   color: red;
 }
+
+.exportBtn {
+  background: #13817a;
+}
 </style>

+ 12 - 0
src/views/vipClass/vipDetail/components/vipStudentList.vue

@@ -338,6 +338,14 @@ export default {
         }
       })
     },
+    // 删除循环周
+    removeWeek (item) {
+      for (let i in this.weekList) {
+        if (this.weekList[i].id == item.id) {
+          this.weekList.splice(i, 1)
+        }
+      }
+    },
     leaveSchool (scope) {
       let studentId = scope.row.id;
       let vipGroupId = this.id;
@@ -480,6 +488,10 @@ export default {
       })
     },
     submieRecover () {
+      if(this.weekList.length <= 0) {
+        this.$message.error('排课循环次数不能为空')
+        return
+      }
       this.$refs['adjustmentForm'].validate(res => {
         if (res) {
           // 发请求

+ 49 - 1
src/views/vipClass/vipList.vue

@@ -6,6 +6,9 @@
     <div class="newBand"
          v-permission="'/buildVip'"
          @click='gotoBuildVip'>新建VIP课</div>
+
+    <div class="newBand" v-permission="'export/vipGroupList'"
+         @click='onVIPCourseExport'>导出VIP课</div>
     <div class='m-core'>
       <!-- 搜索类型 -->
       <el-form :inline="true"
@@ -215,6 +218,8 @@ import pagination from '@/components/Pagination/index'
 import { getVipList, vipGroupActivity, closeVip, getVipGroupDetail } from '@/api/vipSeting'
 import { getTeacher, getEmployeeOrgan } from '@/api/buildTeam'
 import store from '@/store'
+import axios from 'axios'
+import { getToken } from '@/utils/auth'
 export default {
   components: { pagination },
   name: 'vipList',
@@ -327,6 +332,46 @@ export default {
       let searchForm = JSON.stringify(this.searchForm)
       this.$router.push({ path: '/business/buildVip', query: { rules, searchForm } })
     },
+    onVIPCourseExport() { // 导出VIP课
+      let searchForm = this.searchForm
+      let data = {
+        teacherId: searchForm.teacherId || null,
+        activityId: searchForm.activityId || null,
+        organId: searchForm.orgin || null,
+        status: searchForm.status || null,
+        search: searchForm.search || null
+      }
+      let url = '/api-web/export/vipGroupList'
+      const options = {
+        method: 'get',
+        headers: {
+          'Authorization': getToken()
+        },
+        params: data,
+        url,
+        responseType: 'blob'
+      }
+      this.$confirm('您确定导出报表', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        axios(options).then(res => {
+          let blob = new Blob([res.data], {
+            // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
+            type: 'application/vnd.ms-excel;charset=utf-8'
+            //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
+          })
+          let objectUrl = URL.createObjectURL(blob)
+          let link = document.createElement("a")
+          let fname = 'VIP列表' + new Date().getTime() //下载文件的名字
+          link.href = objectUrl
+          link.setAttribute("download", fname)
+          document.body.appendChild(link)
+          link.click()
+        })
+      }).catch(() => {})
+    },
     // 修改vip
     resetVip (id) {
       let rules = JSON.stringify(this.rules)
@@ -352,10 +397,13 @@ export default {
   }
 }
 </script>
-<style lang="scss" scope>
+<style lang="scss" scoped>
 .m-container {
   box-sizing: border-box;
   background-color: #fff;
   // padding: 18px 95px 55px 60px;
 }
+.newBand {
+  display: inline-block;
+}
 </style>

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff