浏览代码

老师打包

lex-xin 5 年之前
父节点
当前提交
121d99debc
共有 55 个文件被更改,包括 104 次插入76 次删除
  1. 0 1
      dist/css/Approval.1d1020cd.css
  2. 1 0
      dist/css/Approval.eaf05a1a.css
  3. 0 1
      dist/css/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.7837a7c8.css
  4. 0 0
      dist/css/Attendance.60a67af1.css
  5. 0 0
      dist/css/Attendance.9a7c5105.css
  6. 1 0
      dist/css/IStarted.0d6b31aa.css
  7. 0 1
      dist/css/IStarted.9b586437.css
  8. 0 0
      dist/css/Leave.8d3e04dc.css
  9. 0 0
      dist/css/Leave.c59bc30a.css
  10. 0 0
      dist/css/PeriodAdjust~PeriodChange.bc858902.css
  11. 0 0
      dist/css/PeriodAdjust~PeriodChange.c57beb2b.css
  12. 0 0
      dist/css/VIPApply.e4b4c525.css
  13. 0 1
      dist/css/VIPApply.e672a445.css
  14. 0 0
      dist/index.html
  15. 0 0
      dist/js/Approval.4a8a91a7.js
  16. 0 0
      dist/js/Approval.4a8a91a7.js.map
  17. 0 0
      dist/js/Approval.69425322.js
  18. 0 0
      dist/js/Approval.69425322.js.map
  19. 0 0
      dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.acd7ebce.js
  20. 0 0
      dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.acd7ebce.js.map
  21. 0 0
      dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.e1b5a518.js
  22. 0 0
      dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.e1b5a518.js.map
  23. 0 0
      dist/js/Attendance.1a090d3c.js
  24. 0 0
      dist/js/Attendance.1a090d3c.js.map
  25. 0 0
      dist/js/Attendance.d1114a18.js
  26. 0 0
      dist/js/Attendance.d1114a18.js.map
  27. 0 0
      dist/js/IStarted.e247a849.js
  28. 0 0
      dist/js/IStarted.e247a849.js.map
  29. 0 0
      dist/js/IStarted.eab7f958.js
  30. 0 0
      dist/js/IStarted.eab7f958.js.map
  31. 0 0
      dist/js/Leave.b88bea49.js
  32. 0 0
      dist/js/Leave.b88bea49.js.map
  33. 0 0
      dist/js/Leave.ea7fe248.js
  34. 0 0
      dist/js/Leave.ea7fe248.js.map
  35. 0 0
      dist/js/PeriodAdjust.1a6ab01c.js
  36. 0 0
      dist/js/PeriodAdjust.1a6ab01c.js.map
  37. 0 0
      dist/js/PeriodAdjust.51875e88.js.map
  38. 0 0
      dist/js/PeriodAdjust~PeriodChange.4c27b534.js
  39. 0 0
      dist/js/PeriodAdjust~PeriodChange.4c27b534.js.map
  40. 0 0
      dist/js/PeriodAdjust~PeriodChange.997c5b7f.js
  41. 0 0
      dist/js/PeriodAdjust~PeriodChange.997c5b7f.js.map
  42. 0 0
      dist/js/PeriodChange.1b23a16d.js
  43. 0 0
      dist/js/PeriodChange.1b23a16d.js.map
  44. 0 0
      dist/js/PeriodChange.34314ada.js.map
  45. 0 0
      dist/js/VIPApply.246babe3.js
  46. 0 0
      dist/js/VIPApply.246babe3.js.map
  47. 0 0
      dist/js/VIPApply.d2f1f3ca.js
  48. 0 0
      dist/js/VIPApply.d2f1f3ca.js.map
  49. 0 0
      dist/js/app.21976441.js
  50. 0 0
      dist/js/app.21976441.js.map
  51. 0 0
      dist/js/app.c0b005de.js
  52. 0 0
      dist/js/app.c0b005de.js.map
  53. 4 4
      src/api/teacher.js
  54. 92 64
      src/views/teacher/Attendance.vue
  55. 6 4
      src/views/teacher/VIPApply.vue

+ 0 - 1
dist/css/Approval.1d1020cd.css

@@ -1 +0,0 @@
-.icon[data-v-30afa9a9]{width:2rem;height:2rem;margin:.5rem auto .3rem}.icon_nodata[data-v-30afa9a9]{background:url(../img/icon_nodata.81c87d57.png) no-repeat 50%;background-size:contain}.msg[data-v-30afa9a9]{color:#aaa;font-size:.16rem;text-align:center;line-height:.22rem}.approval[data-v-51185b86]{min-height:100vh}[data-v-51185b86] .van-tab--active{color:#ef5a50}[data-v-51185b86] .van-tabs__line{background-color:#14928a}.app-item[data-v-51185b86]{margin:0 .16rem .1rem;background:#fff;border-radius:.1rem;font-size:.14rem}.app-item[data-v-51185b86]:first-child{margin-top:.1rem}.app-item .hd[data-v-51185b86]{padding:.1rem .15rem .1rem .19rem;border-bottom:1px solid #f5f5f5;color:#777;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.app-item .bd[data-v-51185b86]{padding:.12rem .15rem .2rem .19rem;line-height:.2rem}

+ 1 - 0
dist/css/Approval.eaf05a1a.css

@@ -0,0 +1 @@
+.mheader[data-v-61d0e2e4]{height:.44rem;overflow:hidden}.m-nav-header[data-v-61d0e2e4]{position:absolute;left:0;top:0;width:100%;height:.44rem;line-height:.44rem;background-color:#14928a;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fff}.m-nav-header.fixed[data-v-61d0e2e4]{position:fixed;z-index:99}.m-nav-header .m-nav-bar__title[data-v-61d0e2e4]{max-width:60%;margin:0 auto;color:#fff;font-weight:500;font-size:.16rem}.m-nav-header .m-nav-bar__left[data-v-61d0e2e4],.m-nav-header .m-nav-bar__right[data-v-61d0e2e4]{position:absolute;bottom:0}.m-nav-header .m-nav-bar__left[data-v-61d0e2e4]{left:.12rem}.m-nav-header .m-nav-bar__left .arrow-left[data-v-61d0e2e4]{font-size:.21rem;vertical-align:middle}.m-nav-header .m-nav-bar__right[data-v-61d0e2e4]{right:.12rem}.icon[data-v-30afa9a9]{width:2rem;height:2rem;margin:.5rem auto .3rem}.icon_nodata[data-v-30afa9a9]{background:url(../img/icon_nodata.81c87d57.png) no-repeat 50%;background-size:contain}.msg[data-v-30afa9a9]{color:#aaa;font-size:.16rem;text-align:center;line-height:.22rem}.approval[data-v-51185b86]{min-height:100vh}[data-v-51185b86] .van-tab--active{color:#ef5a50}[data-v-51185b86] .van-tabs__line{background-color:#14928a}.app-item[data-v-51185b86]{margin:0 .16rem .1rem;background:#fff;border-radius:.1rem;font-size:.14rem}.app-item[data-v-51185b86]:first-child{margin-top:.1rem}.app-item .hd[data-v-51185b86]{padding:.1rem .15rem .1rem .19rem;border-bottom:1px solid #f5f5f5;color:#777;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.app-item .bd[data-v-51185b86]{padding:.12rem .15rem .2rem .19rem;line-height:.2rem}

+ 0 - 1
dist/css/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.7837a7c8.css

@@ -1 +0,0 @@
-.mheader[data-v-61d0e2e4]{height:.44rem;overflow:hidden}.m-nav-header[data-v-61d0e2e4]{position:absolute;left:0;top:0;width:100%;height:.44rem;line-height:.44rem;background-color:#14928a;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fff}.m-nav-header.fixed[data-v-61d0e2e4]{position:fixed;z-index:99}.m-nav-header .m-nav-bar__title[data-v-61d0e2e4]{max-width:60%;margin:0 auto;color:#fff;font-weight:500;font-size:.16rem}.m-nav-header .m-nav-bar__left[data-v-61d0e2e4],.m-nav-header .m-nav-bar__right[data-v-61d0e2e4]{position:absolute;bottom:0}.m-nav-header .m-nav-bar__left[data-v-61d0e2e4]{left:.12rem}.m-nav-header .m-nav-bar__left .arrow-left[data-v-61d0e2e4]{font-size:.21rem;vertical-align:middle}.m-nav-header .m-nav-bar__right[data-v-61d0e2e4]{right:.12rem}

文件差异内容过多而无法显示
+ 0 - 0
dist/css/Attendance.60a67af1.css


文件差异内容过多而无法显示
+ 0 - 0
dist/css/Attendance.9a7c5105.css


+ 1 - 0
dist/css/IStarted.0d6b31aa.css

@@ -0,0 +1 @@
+.mheader[data-v-61d0e2e4]{height:.44rem;overflow:hidden}.m-nav-header[data-v-61d0e2e4]{position:absolute;left:0;top:0;width:100%;height:.44rem;line-height:.44rem;background-color:#14928a;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fff}.m-nav-header.fixed[data-v-61d0e2e4]{position:fixed;z-index:99}.m-nav-header .m-nav-bar__title[data-v-61d0e2e4]{max-width:60%;margin:0 auto;color:#fff;font-weight:500;font-size:.16rem}.m-nav-header .m-nav-bar__left[data-v-61d0e2e4],.m-nav-header .m-nav-bar__right[data-v-61d0e2e4]{position:absolute;bottom:0}.m-nav-header .m-nav-bar__left[data-v-61d0e2e4]{left:.12rem}.m-nav-header .m-nav-bar__left .arrow-left[data-v-61d0e2e4]{font-size:.21rem;vertical-align:middle}.m-nav-header .m-nav-bar__right[data-v-61d0e2e4]{right:.12rem}.squrt{width:.14rem;height:.12rem;margin-left:.1rem}.van-search{padding:.13rem .16rem}/deep/ .van-search__action{color:#777}.icon[data-v-30afa9a9]{width:2rem;height:2rem;margin:.5rem auto .3rem}.icon_nodata[data-v-30afa9a9]{background:url(../img/icon_nodata.81c87d57.png) no-repeat 50%;background-size:contain}.msg[data-v-30afa9a9]{color:#aaa;font-size:.16rem;text-align:center;line-height:.22rem}.istarted[data-v-600fd6ec]{min-height:100vh}.app-item[data-v-600fd6ec]{margin:0 .16rem .1rem;background:#fff;border-radius:.1rem;font-size:.14rem;display:block}.app-item[data-v-600fd6ec]:first-child{margin-top:.1rem}.app-item .hd[data-v-600fd6ec]{padding:.1rem .15rem .1rem .19rem;border-bottom:1px solid #f5f5f5;color:#777;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.app-item .bd[data-v-600fd6ec]{padding:.12rem .15rem .2rem .19rem;line-height:.2rem}

+ 0 - 1
dist/css/IStarted.9b586437.css

@@ -1 +0,0 @@
-.squrt{width:.14rem;height:.12rem;margin-left:.1rem}.van-search{padding:.13rem .16rem}/deep/ .van-search__action{color:#777}.icon[data-v-30afa9a9]{width:2rem;height:2rem;margin:.5rem auto .3rem}.icon_nodata[data-v-30afa9a9]{background:url(../img/icon_nodata.81c87d57.png) no-repeat 50%;background-size:contain}.msg[data-v-30afa9a9]{color:#aaa;font-size:.16rem;text-align:center;line-height:.22rem}.istarted[data-v-600fd6ec]{min-height:100vh}.app-item[data-v-600fd6ec]{margin:0 .16rem .1rem;background:#fff;border-radius:.1rem;font-size:.14rem;display:block}.app-item[data-v-600fd6ec]:first-child{margin-top:.1rem}.app-item .hd[data-v-600fd6ec]{padding:.1rem .15rem .1rem .19rem;border-bottom:1px solid #f5f5f5;color:#777;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.app-item .bd[data-v-600fd6ec]{padding:.12rem .15rem .2rem .19rem;line-height:.2rem}

文件差异内容过多而无法显示
+ 0 - 0
dist/css/Leave.8d3e04dc.css


文件差异内容过多而无法显示
+ 0 - 0
dist/css/Leave.c59bc30a.css


文件差异内容过多而无法显示
+ 0 - 0
dist/css/PeriodAdjust~PeriodChange.bc858902.css


文件差异内容过多而无法显示
+ 0 - 0
dist/css/PeriodAdjust~PeriodChange.c57beb2b.css


文件差异内容过多而无法显示
+ 0 - 0
dist/css/VIPApply.e4b4c525.css


+ 0 - 1
dist/css/VIPApply.e672a445.css

@@ -1 +0,0 @@
-.vip-title[data-v-20315a8d]{padding:.06rem 0 .04rem;font-size:.12rem;color:#444;text-align:center}.add-plan[data-v-20315a8d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:.2rem 0;font-size:.16rem;color:#777}.add-plan .van-icon[data-v-20315a8d]{margin-right:.05rem;font-size:.2rem}.title-time[data-v-20315a8d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex:1 auto;flex:1 auto;color:#4a4a4a}.title-time .online[data-v-20315a8d]{color:#777}.title-time .week[data-v-20315a8d]{padding-left:.4rem;padding-right:.15rem}[data-v-20315a8d] .van-cell__value,[data-v-20315a8d] .van-field__label{-webkit-box-flex:1;-ms-flex:1 auto;flex:1 auto}[data-v-20315a8d] .van-field__control:disabled{color:#6a6969}.button-group[data-v-20315a8d]{margin:.3rem .26rem .2rem}.button-group .van-button--primary[data-v-20315a8d]{background:#14928a;font-size:.18rem}.van-row[data-v-20315a8d]{line-height:.4rem;border-top:1px solid #edeef0;text-align:center;font-size:.14rem}.van-row[data-v-20315a8d]:first-child{border-top:0;background:#edeef0;color:#444;font-size:.15rem}.tableContainer[data-v-20315a8d]{max-height:2.44rem;overflow:auto}.tableContainer .van-row[data-v-20315a8d]{color:#444}.tableContainer .van-row[data-v-20315a8d]:first-child{border-top:0;background:#fff;font-size:.14rem}

文件差异内容过多而无法显示
+ 0 - 0
dist/index.html


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval.4a8a91a7.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval.4a8a91a7.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval.69425322.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval.69425322.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.acd7ebce.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.acd7ebce.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.e1b5a518.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Approval~Attendance~IStarted~Leave~PeriodAdjust~PeriodChange~VIPApply.e1b5a518.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Attendance.1a090d3c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Attendance.1a090d3c.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Attendance.d1114a18.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Attendance.d1114a18.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/IStarted.e247a849.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/IStarted.e247a849.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/IStarted.eab7f958.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/IStarted.eab7f958.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Leave.b88bea49.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Leave.b88bea49.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Leave.ea7fe248.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/Leave.ea7fe248.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust.1a6ab01c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust.1a6ab01c.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust.51875e88.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust~PeriodChange.4c27b534.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust~PeriodChange.4c27b534.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust~PeriodChange.997c5b7f.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodAdjust~PeriodChange.997c5b7f.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodChange.1b23a16d.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodChange.1b23a16d.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/PeriodChange.34314ada.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/VIPApply.246babe3.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/VIPApply.246babe3.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/VIPApply.d2f1f3ca.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/VIPApply.d2f1f3ca.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/app.21976441.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/app.21976441.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/js/app.c0b005de.js


文件差异内容过多而无法显示
+ 0 - 0
dist/js/app.c0b005de.js.map


+ 4 - 4
src/api/teacher.js

@@ -153,8 +153,8 @@ const courseSwap = (data) => {
 const statisticsInfo = (data) => {
     return axios({
         url: api + '/teacherCourseSchedule/statisticsInfo',
-        method: 'post',
-        data: qs.stringify(data)
+        method: 'get',
+        params: data
     })
 }
 
@@ -162,8 +162,8 @@ const statisticsInfo = (data) => {
 const statisticsList = (data) => {
     return axios({
         url: api + '/teacherCourseSchedule/statisticsList',
-        method: 'post',
-        data: qs.stringify(data)
+        method: 'get',
+        params: data
     })
 }
 

+ 92 - 64
src/views/teacher/Attendance.vue

@@ -1,111 +1,138 @@
 <template>
     <div class="attendance">
-        <m-header />
+        <!-- <m-header /> -->
 
         <div class="section">
-            <h2>武汉小学乐团1022班</h2>
+            <h2>{{ classGroupName }}</h2>
             <div class="att">
                 <div class="circel">
                     <van-circle
                         v-model="currentRate"
-                        :rate="70"
+                        :rate="dataInfo.rate"
                         :speed="100"
                         color="#14928A"
                         :stroke-width="65"
                         layer-color="#EEEEEE">
-                        <p><span>30</span>/32</p>
+                        <p><span>{{ dataInfo.alreadyInClass[0] }}</span>/{{ dataInfo.alreadyInClass[1] }}</p>
                         <p>已上课时</p>
                     </van-circle>
-                    <p class="current-time">9月8号  星期二</p>
+                    <p class="current-time">{{ dataInfo.classDate }} {{ dataInfo.classTime }}</p>
                 </div>
                 <div class="ite">
-                    <span>42</span> 学生(人)
+                    <span>{{ dataInfo.studentNum }}</span> 学生(人)
                 </div>
                 <div class="ite">
-                    <span>02</span> 退团(人)
+                    <span>{{ dataInfo.leagueNum }}</span> 退团(人)
                 </div>
             </div>
         </div>
 
         <div class="section">
-            <h2>
-                考勤统计
-                <div @click="onDropDownChange" :class="[showPicker?'down': '', 'dropdown']">{{ instrumentText }}</div>
-            </h2>
+            <h2>考勤统计</h2>
         </div>
-
-        <div class="stu_info" v-for="value in 5" :key="value">
-            <van-cell :center="true" title-class="truant">
-                <template slot="icon">
-                    <img class="logo" src="@/assets/images/default_head_img.png" alt="">
-                </template>
-                <template slot="default">到课(天):21<br/>旷课(天):21<br/>请假(天):21</template>
-                <template slot="title">阿曼湾<van-tag type="danger" size="medium">连续旷课</van-tag></template>
-                <template slot="label">长笛</template>
-            </van-cell>
-            <div class="stu-detail">
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p class="leave">到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p class="truant">到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
-                <div class="item"><p>09-01<br/>周三</p><p>到课</p></div>
+        <van-list v-model="loading"  v-if="show" key="records"
+                    :finished="finished"
+                    finished-text="我是有底线的"
+                    @load="statisticsList">
+            <div class="stu_info" v-for="(item, index) in dataList" :key="index">
+                <van-cell :center="true" title-class="truant">
+                    <template slot="icon">
+                        <img class="logo" src="@/assets/images/default_head_img.png" alt="">
+                    </template>
+                    <template slot="default">到课(天):{{ item.normalDay }}<br/>旷课(天):{{ item.truantDay }}<br/>请假(天):{{ item.leaveDay }}</template>
+                    <template slot="title">{{ item.studentName }}<van-tag v-if="item.truant" type="danger" size="medium">连续旷课</van-tag></template>
+                    <template slot="label">{{ item.subjectName | joinArray }}</template>
+                </van-cell>
+                <div class="stu-detail">
+                    <div class="item" v-for="(i, id) in item.list" :key="id">
+                        <p>{{ formatDate(i.classDate) }}<br/>{{ i.classWeek }}</p><p :class="i.status">{{ i.status | clockingIn }}</p>
+                    </div>
+                </div>
+                
             </div>
-        </div>
-        <van-popup v-model="showPicker" position="bottom">
-            <van-picker show-toolbar
-                :columns="columns"
-                :item-height="40"
-                :visible-item-count="4"
-                @cancel="showPicker = false"
-                @confirm="onConfirmPicker" />
-        </van-popup>
+        </van-list>
+        <m-empty v-else key="records" />
     </div>
 </template>
 <script>
-import MHeader from '@/components/MHeader'
+import MEmpty from '@/components/MEmpty'
 import { statisticsInfo, statisticsList } from '@/api/teacher'
 export default {
     name: 'attendance',
-    components: { MHeader },
+    components: { MEmpty },
     data() {
         return {
-            showPicker: false, // 乐器列表状态
             currentRate: 0, // 图表的进度
-            instrumentText: '长笛', // 默认显示文字
-            columns: [{
-                values: ['长笛', '杭州', '宁波东', '温州', '嘉兴', '湖州'],
-                defaultIndex: 0
-            }]
+            classGroupName: this.$route.query.classGroupName,
+            classGroupId: this.$route.query.classGroupId,
+            dataInfo: {
+                alreadyInClass: [0, 0],
+                rate: 0,
+            }, // 基本数据
+            show: true,
+            loading: false,
+            finished: false,
+            params: {
+                groupId: this.$route.params.groupId,
+                page: 1,
+                rows: 10,
+                classGroupId: this.$route.query.classGroupId
+            },
+            dataList: []
         }
     },
+    mounted() {
+        this.__init()
+        window.document.title = '历史考勤统计'
+    },
     methods: {
         __init() {
-            statisticsInfo()
+            statisticsInfo({
+                classGroupId: this.classGroupId
+            }).then(res => {
+                let result = res.data
+                if(result.code == 200) {
+                    this.dataInfo = result.data
+                    let aic = result.data.alreadyInClass
+                    aic = aic ? aic.split('/') : [0, 0]
+                    this.dataInfo.alreadyInClass = aic
+                    this.dataInfo.rate = aic[0] ? (aic[0] / aic[1] * 100) : 0
+                }
+            })
         },
-        onDropDownChange() {
-            // dropdown 切换时
-            this.showPicker = true
-
+        statisticsList() {
+            let params = this.params
+            statisticsList(params).then(res => {
+                let result = res.data
+                if(result.code == 200) {
+                    this.dataList = this.dataList.concat(result.data.rows)
+                    this.loading = false
+                    if(params.page >= Math.ceil(result.data.total / params.rows)) {
+                        this.finished = true
+                    }
+                    params.page++
+                } else {
+                    this.finished = true
+                }
+                if(this.dataList.length <= 0) {
+                    this.show = false
+                }
+            })
         },
-        onConfirmPicker(value) {
-            // picker 确认时
-            this.instrumentText = value[0]
-            this.showPicker = false
+        formatDate(value) {
+            let temp = new Date(value)
+            let month = (temp.getMonth() + 1) >= 10 ? temp.getMonth() + 1 : '0' + (temp.getMonth() + 1)
+            let day = (temp.getDate() + 1) >= 10 ? temp.getDate() + 1 : '0' + (temp.getDate() + 1)
+            return month + '-' + day
         }
     }
 }
 </script>
 <style lang='less' scoped>
 @import url("../../assets/commonLess/variable.less");
+.attendance {
+    min-height: 100vh;
+}
 .section {
     background-color: @whiteColor;
     margin-top: .02rem;
@@ -164,6 +191,7 @@ export default {
         flex-direction: column;
         justify-content: center;
         color: @mFontColor;
+        margin: 0 auto;
     }
     .current-time {
         padding-top: .04rem;
@@ -229,10 +257,10 @@ export default {
                 border-top: 1px solid #f3f4f8;
             }
 
-            &.leave {
+            &.LEAVE {
                 color: @orangeColor;
             }
-            &.truant {
+            &.TRUANT {
                 color: @redColor;
             }
         }

+ 6 - 4
src/views/teacher/VIPApply.vue

@@ -575,7 +575,9 @@ export default {
                     totalCount--
                 }
                 // 加一周
-                dateOperation.setDate(dateOperation.getDate() + 7)
+                if(scheduleList.length == 1) {
+                    dateOperation.setDate(dateOperation.getDate() + 7)
+                }
             }
         },
         onGiveMode() { // 赠送课改变时
@@ -613,10 +615,10 @@ export default {
                     // 有线下课
                     if(offss.salarySettlementType == 'TEACHER_DEFAULT') {
                         let b = (vcs.singleClassMinutes / 30).toFixed(2) // 每30Min计算一些课酬
-                        form.offlineTeacherSalary = b * tc.offlineClassesSalary // 线上课酬
+                        form.offlineTeacherSalary = (b * tc.offlineClassesSalary).toFixed(2) // 线上课酬
                     } else if(offss.salarySettlementType == 'RATIO_DISCOUNT') {
                         // 老师课酬的折扣
-                        form.offlineTeacherSalary = vcs.offlineClassesUnitPrice * (offss.settlementValue ? offss.settlementValue : 100) / 100
+                        form.offlineTeacherSalary = (vcs.offlineClassesUnitPrice * (offss.settlementValue ? offss.settlementValue : 100) / 100).toFixed(2)
                     } else if(offss.salarySettlementType == 'FIXED_SALARY') {
                         form.offlineTeacherSalary = offss.settlementValue
                     }
@@ -647,7 +649,7 @@ export default {
             } else {
                 dvar = day + '';
             }
-            return year + "-" + mvar + '-' + dvar;
+            return year + "/" + mvar + '/' + dvar;
         },
         // 分钟小时相加减
         MinutesTest (houer, mins, interval) {

部分文件因为文件数量过多而无法显示