Browse Source

Merge branch 'online' into LAO_MO

mo 5 years ago
parent
commit
479219f210
69 changed files with 181 additions and 28 deletions
  1. 0 0
      dist/index.html
  2. 1 1
      dist/static/css/chunk-1db50a70.f75339f3.css
  3. 0 0
      dist/static/css/chunk-dcbf9c10.53358646.css
  4. 0 0
      dist/static/js/app.0fe7453a.js
  5. 0 0
      dist/static/js/app.b2eeb3cc.js
  6. 0 0
      dist/static/js/chunk-01894b84.0d9c41fd.js
  7. 0 0
      dist/static/js/chunk-05bea0d3.d4b78a9b.js
  8. 0 0
      dist/static/js/chunk-09753c97.d420e37b.js
  9. 0 0
      dist/static/js/chunk-1092deaa.85776fea.js
  10. 0 0
      dist/static/js/chunk-1c226b1c.24e5b6e6.js
  11. 0 0
      dist/static/js/chunk-1c9ae0ee.76e01322.js
  12. 0 0
      dist/static/js/chunk-1db50a70.97a590c8.js
  13. 0 0
      dist/static/js/chunk-24490ddc.891a7e99.js
  14. 0 0
      dist/static/js/chunk-257cc208.b423d67d.js
  15. 0 0
      dist/static/js/chunk-2751bcc3.1c29eb11.js
  16. 0 0
      dist/static/js/chunk-2e24cbed.f44a02b9.js
  17. 0 0
      dist/static/js/chunk-31362947.a5d5142b.js
  18. 0 0
      dist/static/js/chunk-35d7984f.ec57ae0d.js
  19. 0 0
      dist/static/js/chunk-3661e960.9905e170.js
  20. 0 0
      dist/static/js/chunk-38bd7fe2.fd1d27ba.js
  21. 0 0
      dist/static/js/chunk-3e119562.771da874.js
  22. 0 0
      dist/static/js/chunk-3e2f22ea.02a947b8.js
  23. 0 0
      dist/static/js/chunk-3e3440eb.6862769e.js
  24. 0 0
      dist/static/js/chunk-4041894e.beed1897.js
  25. 0 0
      dist/static/js/chunk-40e665d1.441a2cb6.js
  26. 0 0
      dist/static/js/chunk-41f382a0.4303c10a.js
  27. 0 0
      dist/static/js/chunk-49f1f558.0be9f84a.js
  28. 0 0
      dist/static/js/chunk-4aab68d7.a80b69b1.js
  29. 0 0
      dist/static/js/chunk-523c3930.8b8d0025.js
  30. 0 0
      dist/static/js/chunk-53974364.26aff490.js
  31. 0 0
      dist/static/js/chunk-5440ee4e.9bf4fb9a.js
  32. 0 0
      dist/static/js/chunk-56480712.8348d8f3.js
  33. 0 0
      dist/static/js/chunk-5c578a77.b46bcd47.js
  34. 0 0
      dist/static/js/chunk-5e9eef69.0e138cb0.js
  35. 0 0
      dist/static/js/chunk-5f8100bc.73ec0ada.js
  36. 0 0
      dist/static/js/chunk-5fbb8ef1.40630ff5.js
  37. 0 0
      dist/static/js/chunk-6181ddae.5edd2f64.js
  38. 0 0
      dist/static/js/chunk-63a9c1b3.6e6e7e44.js
  39. 0 0
      dist/static/js/chunk-6562cc02.77e6edbf.js
  40. 0 0
      dist/static/js/chunk-68259a14.3c4aea37.js
  41. 0 0
      dist/static/js/chunk-6b55c86a.47accd1d.js
  42. 0 0
      dist/static/js/chunk-6c407106.85253f54.js
  43. 0 0
      dist/static/js/chunk-6c42ea8e.81eead1b.js
  44. 0 0
      dist/static/js/chunk-6cb6556b.bffa8f8a.js
  45. 0 0
      dist/static/js/chunk-706f42cc.657280fb.js
  46. 0 0
      dist/static/js/chunk-71bf792c.43709cdd.js
  47. 0 0
      dist/static/js/chunk-7212fea1.a7a310d4.js
  48. 0 0
      dist/static/js/chunk-77d97730.f20f1307.js
  49. 0 0
      dist/static/js/chunk-7ca9ecab.8303f513.js
  50. 0 0
      dist/static/js/chunk-7ec4324a.47f5a60a.js
  51. 0 0
      dist/static/js/chunk-90bc8dd8.0d3536ba.js
  52. 0 0
      dist/static/js/chunk-918b3752.34276b95.js
  53. 0 0
      dist/static/js/chunk-935a2cb4.d53861f0.js
  54. 0 0
      dist/static/js/chunk-93886960.f1012adc.js
  55. 0 0
      dist/static/js/chunk-93a712fa.0e6305a3.js
  56. 0 0
      dist/static/js/chunk-96db54d2.a2f2acd7.js
  57. 0 0
      dist/static/js/chunk-ac13cdcc.07499a1c.js
  58. 0 0
      dist/static/js/chunk-b1e176fc.fd1ab05d.js
  59. 0 0
      dist/static/js/chunk-bb579d98.51bebdd6.js
  60. 0 0
      dist/static/js/chunk-bc672cf4.49fa5b10.js
  61. 0 0
      dist/static/js/chunk-bdad1ada.0b760a8c.js
  62. 0 0
      dist/static/js/chunk-d98ee362.33ba86e7.js
  63. 0 0
      dist/static/js/chunk-dcbf9c10.1fb0582d.js
  64. 0 0
      dist/static/js/chunk-eb7895b6.124b08cc.js
  65. 0 0
      dist/static/js/chunk-f6deba5e.feb20e12.js
  66. 10 0
      src/api/buildTeam.js
  67. 61 6
      src/utils/validate.js
  68. 104 16
      src/views/accompanyManager/accompanys.vue
  69. 5 5
      src/views/operateManager/serverIndexDetail.vue

File diff suppressed because it is too large
+ 0 - 0
dist/index.html


+ 1 - 1
dist/static/css/chunk-77d97730.52d59aff.css → dist/static/css/chunk-1db50a70.f75339f3.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}.titlewrap[data-v-43d9c028]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.titlewrap[data-v-43d9c028],.wrap[data-v-43d9c028]{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}.wrap div[data-v-43d9c028]{margin-right:20px}
+.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}.titlewrap[data-v-4069c78e]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.titlewrap[data-v-4069c78e],.wrap[data-v-4069c78e]{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}.wrap div[data-v-4069c78e]{margin-right:20px}

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-dcbf9c10.53358646.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.0fe7453a.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.b2eeb3cc.js


+ 0 - 0
dist/static/js/chunk-01894b84.f2977c34.js → dist/static/js/chunk-01894b84.0d9c41fd.js


+ 0 - 0
dist/static/js/chunk-05bea0d3.dbc3e05e.js → dist/static/js/chunk-05bea0d3.d4b78a9b.js


+ 0 - 0
dist/static/js/chunk-09753c97.b23289fa.js → dist/static/js/chunk-09753c97.d420e37b.js


+ 0 - 0
dist/static/js/chunk-1092deaa.61f3b1f2.js → dist/static/js/chunk-1092deaa.85776fea.js


+ 0 - 0
dist/static/js/chunk-1c226b1c.6a34eee3.js → dist/static/js/chunk-1c226b1c.24e5b6e6.js


+ 0 - 0
dist/static/js/chunk-1c9ae0ee.2aced0f3.js → dist/static/js/chunk-1c9ae0ee.76e01322.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-1db50a70.97a590c8.js


+ 0 - 0
dist/static/js/chunk-24490ddc.e08993e4.js → dist/static/js/chunk-24490ddc.891a7e99.js


+ 0 - 0
dist/static/js/chunk-257cc208.7bfe0963.js → dist/static/js/chunk-257cc208.b423d67d.js


+ 0 - 0
dist/static/js/chunk-2751bcc3.3c508c0b.js → dist/static/js/chunk-2751bcc3.1c29eb11.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-2e24cbed.f44a02b9.js


+ 0 - 0
dist/static/js/chunk-31362947.37ab09a2.js → dist/static/js/chunk-31362947.a5d5142b.js


+ 0 - 0
dist/static/js/chunk-35d7984f.1d5b0c9e.js → dist/static/js/chunk-35d7984f.ec57ae0d.js


+ 0 - 0
dist/static/js/chunk-3661e960.32d459da.js → dist/static/js/chunk-3661e960.9905e170.js


+ 0 - 0
dist/static/js/chunk-38bd7fe2.b432e487.js → dist/static/js/chunk-38bd7fe2.fd1d27ba.js


+ 0 - 0
dist/static/js/chunk-3e119562.fe505ba9.js → dist/static/js/chunk-3e119562.771da874.js


+ 0 - 0
dist/static/js/chunk-3e2f22ea.b6bd14e6.js → dist/static/js/chunk-3e2f22ea.02a947b8.js


+ 0 - 0
dist/static/js/chunk-3e3440eb.6480bd4d.js → dist/static/js/chunk-3e3440eb.6862769e.js


+ 0 - 0
dist/static/js/chunk-4041894e.b6977630.js → dist/static/js/chunk-4041894e.beed1897.js


+ 0 - 0
dist/static/js/chunk-40e665d1.540a26e8.js → dist/static/js/chunk-40e665d1.441a2cb6.js


+ 0 - 0
dist/static/js/chunk-41f382a0.d1d0cd91.js → dist/static/js/chunk-41f382a0.4303c10a.js


+ 0 - 0
dist/static/js/chunk-49f1f558.2e18119c.js → dist/static/js/chunk-49f1f558.0be9f84a.js


+ 0 - 0
dist/static/js/chunk-4aab68d7.a7bdd48e.js → dist/static/js/chunk-4aab68d7.a80b69b1.js


+ 0 - 0
dist/static/js/chunk-523c3930.50214653.js → dist/static/js/chunk-523c3930.8b8d0025.js


+ 0 - 0
dist/static/js/chunk-53974364.c6c7ac5f.js → dist/static/js/chunk-53974364.26aff490.js


+ 0 - 0
dist/static/js/chunk-5440ee4e.a5c80a1a.js → dist/static/js/chunk-5440ee4e.9bf4fb9a.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-56480712.8348d8f3.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-5c578a77.b46bcd47.js


+ 0 - 0
dist/static/js/chunk-5e9eef69.5c269a4b.js → dist/static/js/chunk-5e9eef69.0e138cb0.js


+ 0 - 0
dist/static/js/chunk-5f8100bc.6ecfd270.js → dist/static/js/chunk-5f8100bc.73ec0ada.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-5fbb8ef1.40630ff5.js


+ 0 - 0
dist/static/js/chunk-6181ddae.ffc39c82.js → dist/static/js/chunk-6181ddae.5edd2f64.js


+ 0 - 0
dist/static/js/chunk-63a9c1b3.948f6ce8.js → dist/static/js/chunk-63a9c1b3.6e6e7e44.js


+ 0 - 0
dist/static/js/chunk-6562cc02.8af1b9ad.js → dist/static/js/chunk-6562cc02.77e6edbf.js


+ 0 - 0
dist/static/js/chunk-68259a14.9e14686a.js → dist/static/js/chunk-68259a14.3c4aea37.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-6b55c86a.47accd1d.js


+ 0 - 0
dist/static/js/chunk-6c407106.193fdba9.js → dist/static/js/chunk-6c407106.85253f54.js


+ 0 - 0
dist/static/js/chunk-6c42ea8e.b0f70639.js → dist/static/js/chunk-6c42ea8e.81eead1b.js


+ 0 - 0
dist/static/js/chunk-6cb6556b.d5f1336d.js → dist/static/js/chunk-6cb6556b.bffa8f8a.js


+ 0 - 0
dist/static/js/chunk-706f42cc.e5c7d348.js → dist/static/js/chunk-706f42cc.657280fb.js


+ 0 - 0
dist/static/js/chunk-71bf792c.5c72114f.js → dist/static/js/chunk-71bf792c.43709cdd.js


+ 0 - 0
dist/static/js/chunk-7212fea1.7f404280.js → dist/static/js/chunk-7212fea1.a7a310d4.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-77d97730.f20f1307.js


+ 0 - 0
dist/static/js/chunk-7ca9ecab.d0e59b22.js → dist/static/js/chunk-7ca9ecab.8303f513.js


+ 0 - 0
dist/static/js/chunk-7ec4324a.86df533a.js → dist/static/js/chunk-7ec4324a.47f5a60a.js


+ 0 - 0
dist/static/js/chunk-90bc8dd8.2bc54ff2.js → dist/static/js/chunk-90bc8dd8.0d3536ba.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-918b3752.34276b95.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-935a2cb4.d53861f0.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-93886960.f1012adc.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-93a712fa.0e6305a3.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-96db54d2.a2f2acd7.js


+ 0 - 0
dist/static/js/chunk-ac13cdcc.85177e83.js → dist/static/js/chunk-ac13cdcc.07499a1c.js


+ 0 - 0
dist/static/js/chunk-b1e176fc.3250da83.js → dist/static/js/chunk-b1e176fc.fd1ab05d.js


+ 0 - 0
dist/static/js/chunk-bb579d98.548e759c.js → dist/static/js/chunk-bb579d98.51bebdd6.js


+ 0 - 0
dist/static/js/chunk-bc672cf4.be5d71d9.js → dist/static/js/chunk-bc672cf4.49fa5b10.js


+ 0 - 0
dist/static/js/chunk-bdad1ada.0d85f61c.js → dist/static/js/chunk-bdad1ada.0b760a8c.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-d98ee362.33ba86e7.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-dcbf9c10.1fb0582d.js


+ 0 - 0
dist/static/js/chunk-eb7895b6.adc9ff89.js → dist/static/js/chunk-eb7895b6.124b08cc.js


+ 0 - 0
dist/static/js/chunk-f6deba5e.87562b84.js → dist/static/js/chunk-f6deba5e.feb20e12.js


+ 10 - 0
src/api/buildTeam.js

@@ -1093,3 +1093,13 @@ export function getStuAndTeaReview(data) {
   })
 }
 
+// 网管课有效期调整
+export function updateCoursesExpireDate(data) { 
+  return request({
+    url: api + '/courseSchedule/updateCoursesExpireDate',
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}
+
+

+ 61 - 6
src/utils/validate.js

@@ -29,11 +29,11 @@ export function isvalidPhone(str) {
 export function vaildStudentUrl() {
   let url = window.location.href
   let returnUrl = ''
-  if(/test/.test(url)) { // test环境
+  if (/test/.test(url)) { // test环境
     returnUrl = 'http://mstutest.dayaedu.com'
-  } else if(/dev/.test(url)) { // dev 环境
+  } else if (/dev/.test(url)) { // dev 环境
     returnUrl = 'http://mstudev.dayaedu.com'
-  } else if(/online/.test(url)) { //线上
+  } else if (/online/.test(url)) { //线上
     returnUrl = 'https://mstuonline.dayaedu.com'
   } else { // 默认dev环境
     returnUrl = 'http://mstudev.dayaedu.com'
@@ -45,14 +45,69 @@ export function vaildStudentUrl() {
 export function vaildTeacherUrl() {
   let url = window.location.href
   let returnUrl = ''
-  if(/test/.test(url)) { // test环境
+  if (/test/.test(url)) { // test环境
     returnUrl = 'http://mteatest.dayaedu.com'
-  } else if(/dev/.test(url)) {// dev 环境
+  } else if (/dev/.test(url)) { // dev 环境
     returnUrl = 'http://mteadev.dayaedu.com'
-  } else if(/online/.test(url)) {//线上
+  } else if (/online/.test(url)) { //线上
     returnUrl = 'https://mteaonline.dayaedu.com'
   } else { // 默认dev环境
     returnUrl = 'http://mteadev.dayaedu.com'
   }
   return returnUrl
 }
+
+
+export function nextMonthLastDay(year, month) { //日期显示为次月最后一天
+  // var time = date ? new Date(date) : new Date();
+  // var year = time.getFullYear();
+  // //var year = 1900; //用于测试
+  // var month = time.getMonth() + 2;
+  if (month > 12) {
+
+    month = month - 12;
+
+    year = year + 1;
+
+  }
+
+  var day = nextMonthDay(year, month);
+
+  return [year, month, day];
+
+}
+
+function nextMonthDay(year, month) { //判断每月多少天
+
+  var day31 = [1, 3, 5, 7, 8, 10, 12];
+
+  var day30 = [4, 6, 9, 11];
+
+  if (day31.indexOf(month) > -1) {
+
+    return 31;
+
+  } else if (day30.indexOf(month) > -1) {
+
+    return 30;
+
+  } else {
+
+    if (isLeapYear(year)) {
+
+      return 29;
+
+    } else {
+
+      return 28;
+
+    }
+
+  }
+
+}
+
+function isLeapYear(year) { //判断是否为闰年
+  return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
+
+}

+ 104 - 16
src/views/accompanyManager/accompanys.vue

@@ -27,10 +27,11 @@
         v-permission="'courseSchedule/batchUpdateCourseSchedule'"
         @click="adjustment"
       >批量调整</div>
-      <!-- <div class="newBand"
+
+      <div class="newBand"
         v-permission="'courseSchedule/updateCoursesExpireDate'"
-        @click="onCourseExpireDate"
-      >有效期调整</div> -->
+        @click="expireVisible = true"
+      >有效期调整</div>
     </div>
     
     <div class="tableWrap">
@@ -92,28 +93,24 @@
             <div>
               <el-button
                 type="text"
-                v-permission="'courseSchedule/classStartDateAdjust'"
-                v-show="!scope.row.isSettlement"
+                v-if="!scope.row.isSettlement && permission('courseSchedule/classStartDateAdjust')"
                 @click="resetClass(scope.row)"
               >调整</el-button>
               <el-button
                 type="text"
-                v-permission="'accompanys/remove'"
-                v-show="!scope.row.isSettlement && scope.row.status == 'NOT_START'"
+                v-if="!scope.row.isSettlement && scope.row.status == 'NOT_START' && permission('accompanys/remove')"
                 @click="removeClass(scope.row)"
               >删除</el-button>
               <el-button
-                v-permission="'courseSchedule/practiceCourseTeacherAdjust'"
                 type="text"
-                v-show="scope.row.status == 'NOT_START'&&courseType!='TRIAL'"
+                v-if="scope.row.status == 'NOT_START'&&courseType!='TRIAL'&& permission('courseSchedule/practiceCourseTeacherAdjust')"
                 @click="resetTeacher(scope.row)"
               >更换老师</el-button>
-              <!-- <el-button v-if="scope.row.status == 'OVER' && !scope.row.settlementTime && permission('teacherAttendance/updateTeacherAttendance', '/teamCourseList')" type="text" @click="onMarkAttendance(scope.row)"
-              >补考勤</el-button> -->
+              <el-button v-if="scope.row.status == 'OVER' && scope.row.isSettlement == 0 && permission('teacherAttendance/updateTeacherAttendance', '/accompanys')" type="text" @click="onMarkAttendance(scope.row)"
+              >补考勤</el-button>
               <el-button
                 type="text"
-                v-permission="'accompanys/cleanAttendance'"
-                v-show="!scope.row.isSettlement"
+                v-if="!scope.row.isSettlement && permission('accompanys/cleanAttendance')"
                 @click="clearAttend(scope.row)"
               >清除考勤</el-button>
             </div>
@@ -128,6 +125,31 @@
         @pagination="getList"
       />
     </div>
+    <el-dialog title="有效期调整" width="400px" :before-close="expireClose" :visible.sync="expireVisible">
+      <el-form
+        :model="expireForm"
+        ref="expireForm"
+        :rules="expireRules"
+        label-position="right"
+        label-width="80px;"
+        :inline="true">
+        <el-form-item label="课程结束时间" prop="coursesExpireDate">
+          <el-date-picker
+            v-model.trim="expireForm.coursesExpireDate"
+            style="width:200px!important;"
+            type="date"
+            :picker-options="bigin"
+            value-format="yyyy-MM-dd"
+            placeholder="选择日期"
+          ></el-date-picker>
+        </el-form-item >
+        <div style="padding-left: 15px; color: red;">课程结束时间不得早于,{{ expireForm.tempCoursesExpireDate }}</div>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="expireVisible = false">取 消</el-button>
+        <el-button type="primary" @click="submitExpireDate">确 定</el-button>
+      </div>
+    </el-dialog>
     <el-dialog title="补考勤" width="400px" :visible.sync="markAttendance.status">
       <el-form>
         <el-form-item label="签到状态">{{ markAttendance.dataInfo.isSignIn | attendanceType }}</el-form-item>
@@ -364,6 +386,7 @@
 <script>
 import pagination from "@/components/Pagination/index";
 import { permission } from "@/utils/directivePage";
+import { nextMonthLastDay } from "@/utils/validate";
 import {
   findPracticeGroupCourseSchedules,
   practiceCourseAdjus,
@@ -376,13 +399,16 @@ import {
   getPracticeApplySubjects,
   batchUpdateCourseSchedule,
   findEducationUsers,
-  updateTeacherAttendance
+  updateTeacherAttendance,
+  superFindCourseSchedules,
+  updateCoursesExpireDate
 } from "@/api/buildTeam";
 import {
   vipCourseAdjust,
   batchAppendVipGroupCourses,
   bathDelete
 } from "@/api/vipSeting";
+// import { start } from 'repl';
 export default {
   components: {
     pagination
@@ -392,6 +418,7 @@ export default {
       adjustmentName: "",
       isaddCourse: false,
       adjustmentVisible: false,
+      expireVisible: false,
       isMultiple: true,
       name: "网管课程组",
       courseVisible: false,
@@ -427,6 +454,13 @@ export default {
         fee: ""
       },
       startTime: null,
+      expireForm: {
+        coursesExpireDate: null,
+        tempCoursesExpireDate: null
+      },
+      expireRules: {
+        coursesExpireDate: [{ required: true, message: "请选择课程结束时间", trigger: "blur" }]
+      },
       maskRules: {
         date: [{ required: true, message: "请选择上课时间", trigger: "blur" }],
         // startTime: [{ required: true, message: '请选择上课开始时间', trigger: 'blur' },],
@@ -478,12 +512,12 @@ export default {
       activeList: [],
       educationList: [],
       timers: null,
-      courseExpireDate: null, // 结束时间
       markAttendance: {
         // 考勤状态
         status: false,
         dataInfo: {}
       },
+      bigin: this.beginDate()
     };
   },
   mounted() {
@@ -539,7 +573,20 @@ export default {
               this.courseData[0].coursesStartDate.substring(0, 10) +
               "至" +
               this.courseData[0].coursesExpireDate.substring(0, 10);
-            this.courseExpireDate = this.courseData[0].coursesExpireDate.substring(0, 10);
+            this.expireForm.coursesExpireDate = this.courseData[0].coursesExpireDate.substring(0, 10);
+            let originalStartDate = this.courseData[0].coursesStartDate ? new Date(this.courseData[0].coursesStartDate) : new Date()
+            let buyMonths = this.courseData[0].buyMonths
+            let lastDayNum = nextMonthLastDay(originalStartDate.getFullYear(), (originalStartDate.getMonth() + buyMonths + 1))
+            if(lastDayNum[2] >= originalStartDate.getDate()) {
+              originalStartDate.setMonth(originalStartDate.getMonth() + buyMonths)
+            } else {
+              originalStartDate = new Date(lastDayNum.join('-'))
+            }
+
+            
+            originalStartDate.setDate(originalStartDate.getDate() - 1)
+            let overTime = originalStartDate.getFullYear() + '-' + (originalStartDate.getMonth() + 1) + '-' + originalStartDate.getDate()
+            this.expireForm.tempCoursesExpireDate = overTime
           }
         }
       });
@@ -547,6 +594,40 @@ export default {
     permission(str, parent) {
       return permission(str, parent);
     },
+    beginDate () {
+      let self = this
+      return {
+        disabledDate (time) {
+          if (self.expireForm.tempCoursesExpireDate) {
+            return new Date(self.expireForm.tempCoursesExpireDate).getTime() > time.getTime()
+          } else {
+            return time.getTime() >= Date.now()
+            //开始时间不选时,结束时间最大值小于等于当天
+          }
+        }
+      }
+    },
+    submitExpireDate() {
+      this.$refs.expireForm.validate(some => {
+        if (some) {
+          updateCoursesExpireDate({
+            practiceGroupId: this.practiceId,
+            coursesExpireDate: this.expireForm.coursesExpireDate
+          }).then(res => {
+            if (res.code == 200) {
+              this.$message.success("有效期修改成功")
+              this.expireVisible = false
+              this.getCourseGroup()
+            } else {
+              this.$message.error(res.msg)
+            }
+          })
+        } else {
+          return;
+        }
+      });
+      
+    },
     onMarkAttendance(item) {
       // 补考勤
       this.markAttendance = {
@@ -603,6 +684,13 @@ export default {
       };
       this.$refs["maskForm"].resetFields();
     },
+    expireClose() {
+      this.expireVisible = false;
+      this.expireForm = {
+        coursesExpireDate: null
+      };
+      this.$refs["expireForm"].resetFields();
+    },
     submitResetClass() {
       //   endClassTimeStr: this.maskForm.endTime,
       if (!this.startTime) {

+ 5 - 5
src/views/operateManager/serverIndexDetail.vue

@@ -29,7 +29,7 @@
           </div>
           <div class="textWrap">
             <p class="title">是否点评 : </p>
-            <p class="contant">{{item.isSubmit?'是':'否'}}</p>
+            <p class="contant">{{item.isReplied?'是':'否'}}</p>
           </div>
         </div>
         <div class="m-row"
@@ -75,7 +75,7 @@
                   <el-input type="textarea"
                             :disabled='true'
                             :rows="3"
-                            :value="111"
+                            :value="item.content"
                             style="font-size:16px"
                             placeholder="老师布置的作业"></el-input>
                 </div>
@@ -199,11 +199,11 @@ export default {
     goBack () {
       this.$router.push({ path: '/operateManager/serverIndexList', query: { search: this.Fsearch, rules: this.Frules } })
     },
-    getComment (item,index,subIndex) {
+    getComment (item, index, subIndex) {
       // 数据处理
       if (item.up) {
-          item.up = false;
-          this.$forceUpdate()
+        item.up = false;
+        this.$forceUpdate()
         // item.up = false;
       } else {
         let extra;

Some files were not shown because too many files changed in this diff