mo преди 5 години
родител
ревизия
cfb6be5e82
променени са 63 файла, в които са добавени 721 реда и са изтрити 404 реда
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/chunk-0f2b4d83.756f7291.css
  3. 0 0
      dist/static/css/chunk-17439fad.a53f7e5d.css
  4. 0 0
      dist/static/css/chunk-41f382a0.c3cbecdf.css
  5. 0 0
      dist/static/css/chunk-421ac128.d10d974b.css
  6. 0 0
      dist/static/css/chunk-53070307.93573e8f.css
  7. 0 0
      dist/static/css/chunk-641dba2d.87907ec7.css
  8. 1 0
      dist/static/css/chunk-7ca96add.3df78747.css
  9. 1 1
      dist/static/css/chunk-7ed8e03b.ce5e6294.css
  10. 1 0
      dist/static/css/chunk-98da1dcc.a0913f45.css
  11. 0 1
      dist/static/css/chunk-a9ded3bc.fc2302a6.css
  12. 1 1
      dist/static/css/chunk-c6e235ce.fa9f81df.css
  13. 1 1
      dist/static/css/chunk-d1cc038a.51b416c2.css
  14. 0 0
      dist/static/css/chunk-d9869a34.8a4c3cf6.css
  15. 0 0
      dist/static/js/app.6061aede.js
  16. 0 0
      dist/static/js/app.cdf1cac4.js
  17. 0 0
      dist/static/js/chunk-00de8e4e.507771dd.js
  18. 0 0
      dist/static/js/chunk-00de8e4e.833c2868.js
  19. 0 0
      dist/static/js/chunk-1380390d.347ca69d.js
  20. 0 0
      dist/static/js/chunk-17439fad.ce100cef.js
  21. 0 0
      dist/static/js/chunk-1dcf51a9.c16d2fd5.js
  22. 0 0
      dist/static/js/chunk-21a5b3d9.153033b2.js
  23. 0 0
      dist/static/js/chunk-21a5b3d9.e708330e.js
  24. 0 0
      dist/static/js/chunk-2d0b66fc.52b49f32.js
  25. 0 0
      dist/static/js/chunk-2d0b66fc.8344f508.js
  26. 0 0
      dist/static/js/chunk-2d0c7b40.e8353b3e.js
  27. 0 0
      dist/static/js/chunk-41f382a0.9f258e85.js
  28. 0 0
      dist/static/js/chunk-421ac128.a63c628d.js
  29. 0 0
      dist/static/js/chunk-4bad1caf.61c715fd.js
  30. 0 0
      dist/static/js/chunk-4bad1caf.f8bbc955.js
  31. 0 0
      dist/static/js/chunk-53070307.c4b0cce2.js
  32. 0 0
      dist/static/js/chunk-641dba2d.11675412.js
  33. 0 0
      dist/static/js/chunk-6c411a46.504c5222.js
  34. 0 0
      dist/static/js/chunk-7229a4f2.384d411a.js
  35. 0 0
      dist/static/js/chunk-7ca96add.b0ade1ef.js
  36. 0 0
      dist/static/js/chunk-7ed8e03b.4907d94b.js
  37. 0 0
      dist/static/js/chunk-8b3be45e.60b3b962.js
  38. 0 0
      dist/static/js/chunk-98da1dcc.8c1d307b.js
  39. 0 0
      dist/static/js/chunk-a9ded3bc.ac01c820.js
  40. 0 0
      dist/static/js/chunk-b18c1384.3db20912.js
  41. 0 0
      dist/static/js/chunk-b18c1384.45d74d14.js
  42. 0 0
      dist/static/js/chunk-c6e235ce.59f9d7b3.js
  43. 0 0
      dist/static/js/chunk-d1cc038a.69c38547.js
  44. 0 0
      dist/static/js/chunk-d1dd2788.010e283e.js
  45. 0 0
      dist/static/js/chunk-d1dd2788.71a7019a.js
  46. 0 0
      dist/static/js/chunk-d9869a34.21cff5bc.js
  47. 0 0
      dist/static/js/chunk-ee626eae.f97e37bd.js
  48. 9 0
      src/api/buildTeam.js
  49. 3 3
      src/permission.js
  50. 4 4
      src/router/index.js
  51. 1 1
      src/utils/request.js
  52. 52 33
      src/views/buildVip/index.vue
  53. 23 12
      src/views/main/index.vue
  54. 2 1
      src/views/resetTeaming/components/resetSound.vue
  55. 16 4
      src/views/resetTeaming/index.vue
  56. 11 2
      src/views/teamBuild/components/teamBaseInfo.vue
  57. 4 0
      src/views/teamBuild/components/teamSoundMoney.vue
  58. 485 333
      src/views/teamBuild/teamSeting/components/coursePlan.vue
  59. 1 0
      src/views/teamBuild/teamSeting/components/improvementClass.vue
  60. 91 0
      src/views/teamBuild/teamSeting/components/lookCourse.vue
  61. 6 3
      src/views/teamBuild/teamSeting/index.vue
  62. 4 2
      src/views/teamDetail/components/resetClass.vue
  63. 4 2
      src/views/teamDetail/teamList.vue

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/index.html


+ 0 - 0
dist/static/css/chunk-0f2b4d83.3c1c5e0f.css → dist/static/css/chunk-0f2b4d83.756f7291.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/chunk-17439fad.a53f7e5d.css


+ 0 - 0
dist/static/css/chunk-1380390d.c3cbecdf.css → dist/static/css/chunk-41f382a0.c3cbecdf.css


+ 0 - 0
dist/static/css/chunk-ee626eae.fe1efc1e.css → dist/static/css/chunk-421ac128.d10d974b.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/chunk-53070307.93573e8f.css


+ 0 - 0
dist/static/css/chunk-7229a4f2.87907ec7.css → dist/static/css/chunk-641dba2d.87907ec7.css


+ 1 - 0
dist/static/css/chunk-7ca96add.3df78747.css

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

+ 1 - 1
dist/static/css/chunk-8b3be45e.43fc971c.css → dist/static/css/chunk-7ed8e03b.ce5e6294.css

@@ -1 +1 @@
-.m-core[data-v-5d2c1342]{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-5d2c1342]{width:180px}.m-core h4[data-v-5d2c1342]{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-5d2c1342],.m-core .right[data-v-5d2c1342],.m-core .vipLeft[data-v-5d2c1342]{width:400px}.planList[data-v-5d2c1342]{padding:0 25px}.planList .planTop[data-v-5d2c1342]{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-5d2c1342]{font-size:14px}.planList .planCore .row[data-v-5d2c1342]{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-5d2c1342]{width:87px}.okBtn[data-v-5d2c1342]{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-08933e78]{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-08933e78]{width:180px}.m-core h4[data-v-08933e78]{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-08933e78],.m-core .right[data-v-08933e78],.m-core .vipLeft[data-v-08933e78]{width:400px}.planList[data-v-08933e78]{padding:0 25px}.planList .planTop[data-v-08933e78]{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-08933e78]{font-size:14px}.planList .planCore .row[data-v-08933e78]{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-08933e78]{width:87px}.okBtn[data-v-08933e78]{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}

+ 1 - 0
dist/static/css/chunk-98da1dcc.a0913f45.css

@@ -0,0 +1 @@
+.floor[data-v-6dbd1cdc]{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[data-v-6dbd1cdc]{background:#f85043;margin-left:164px}.floor .add[data-v-6dbd1cdc],.floor .remove[data-v-6dbd1cdc]{width:98px;height:32px;border-radius:3px;color:#fff;line-height:32px;text-align:center;cursor:pointer}.floor .add[data-v-6dbd1cdc]{background:#14928a;margin-left:20px}.studentMask[data-v-6dbd1cdc]{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[data-v-6dbd1cdc]{width:200px;margin-right:20px}.studentMask .left .wrap[data-v-6dbd1cdc]{margin-bottom:20px}.studentMask .left h4[data-v-6dbd1cdc]{font-size:16px;color:#444;line-height:38px}.studentMask .left .chioseStudentList[data-v-6dbd1cdc]{height:500px;overflow-y:auto;border:1px solid #ccc}.studentMask .left .chioseStudentList .studentItem[data-v-6dbd1cdc]{padding-left:10px;line-height:25px}.studentMask .right .tableList[data-v-6dbd1cdc]{max-height:500px;overflow-y:auto}.el-date-editor.el-input[data-v-6dbd1cdc],.el-date-editor.el-input__inner[data-v-6dbd1cdc]{width:100px}

+ 0 - 1
dist/static/css/chunk-a9ded3bc.fc2302a6.css

@@ -1 +0,0 @@
-.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}.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}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:100px}

+ 1 - 1
dist/static/css/chunk-c6e235ce.b3bb47a8.css → dist/static/css/chunk-c6e235ce.fa9f81df.css

@@ -1 +1 @@
-.itemWrap{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}.itemWrap .item{width:303px;height:137px;padding:22px 28px 20px;-webkit-box-shadow:0 8px 20px 0 rgba(0,0,0,.1);box-shadow:0 8px 20px 0 rgba(0,0,0,.1);border-radius:6px;margin-right:30px}.itemWrap .item h4{margin-bottom:20px;color:#323c47;font-size:14px}.itemWrap .item .infos,.itemWrap .item h4{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}.itemWrap .item .infos .sub{font-size:14px;line-height:20px;color:#aaa;margin-bottom:8px}.itemWrap .item .infos .msg{font-size:24px;font-weight:500;color:#444;line-height:28px}
+.itemWrap{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}.itemWrap .item{width:303px;height:137px;padding:22px 28px 20px;-webkit-box-shadow:0 8px 20px 0 rgba(0,0,0,.1);box-shadow:0 8px 20px 0 rgba(0,0,0,.1);border-radius:6px;margin-right:30px}.itemWrap .item h4{margin-bottom:20px;color:#323c47;font-size:14px}.itemWrap .item .infos,.itemWrap .item h4{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}.itemWrap .item .infos .sub{font-size:14px;line-height:20px;color:#aaa;margin-bottom:8px}.itemWrap .item .infos .msg{font-size:24px;font-weight:500;color:#444;line-height:28px;text-align:center}

+ 1 - 1
dist/static/css/chunk-1dcf51a9.f3462710.css → dist/static/css/chunk-d1cc038a.51b416c2.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}.select[data-v-c29a8f8a]{font-size:14px}.btnList[data-v-c29a8f8a]{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}.btnList div[data-v-c29a8f8a]{margin-right:15px}
+.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}.select[data-v-6a5dcbab]{font-size:14px}.btnList[data-v-6a5dcbab]{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}.btnList div[data-v-6a5dcbab]{margin-right:15px}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/chunk-d9869a34.8a4c3cf6.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/app.6061aede.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/app.cdf1cac4.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-00de8e4e.507771dd.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-00de8e4e.833c2868.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-1380390d.347ca69d.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-17439fad.ce100cef.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-1dcf51a9.c16d2fd5.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-21a5b3d9.153033b2.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-21a5b3d9.e708330e.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-2d0b66fc.52b49f32.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-2d0b66fc.8344f508.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-2d0c7b40.e8353b3e.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-41f382a0.9f258e85.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-421ac128.a63c628d.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-4bad1caf.61c715fd.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-4bad1caf.f8bbc955.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-53070307.c4b0cce2.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-641dba2d.11675412.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-6c411a46.504c5222.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-7229a4f2.384d411a.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-7ca96add.b0ade1ef.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-7ed8e03b.4907d94b.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-8b3be45e.60b3b962.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-98da1dcc.8c1d307b.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-a9ded3bc.ac01c820.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-b18c1384.3db20912.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-b18c1384.45d74d14.js


+ 0 - 0
dist/static/js/chunk-c6e235ce.5ce3e9a2.js → dist/static/js/chunk-c6e235ce.59f9d7b3.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-d1cc038a.69c38547.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-d1dd2788.010e283e.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-d1dd2788.71a7019a.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-d9869a34.21cff5bc.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/chunk-ee626eae.f97e37bd.js


+ 9 - 0
src/api/buildTeam.js

@@ -642,4 +642,13 @@ export function startTeam (data) {
     method: 'POST',
     data: qs.stringify(data)
   })
+}
+
+// 根据班级id获取课程计划
+export function getClassCOurse (data) {
+  return request({
+    url: api + `/courseSchedule/findCourseScheduleByClassGroup`,
+    method: 'get',
+    params: data
+  })
 }

+ 3 - 3
src/permission.js

@@ -22,7 +22,7 @@ router.beforeEach(async (to, from, next) => {
   if (hasToken) {
     if (to.path === '/login') {
       // 如果有tonken直接跳转到首页
-      next({ path: '/main/main' })
+      next({ path: '/' })
       NProgress.done()
     } else {
       const hasGetUserInfo = store.getters.name
@@ -44,7 +44,7 @@ router.beforeEach(async (to, from, next) => {
           // remove token and go to login page to re-login
           await store.dispatch('user/resetToken')
           Message.error(error || 'Has Error')
-          next(`/login?redirect=/main/main`)
+          next(`/login`)
           NProgress.done()
         }
       }
@@ -57,7 +57,7 @@ router.beforeEach(async (to, from, next) => {
       next()
     } else {
       // other pages that do not have permission to access are redirected to the login page.
-      next(`/login?redirect=/main/main`)
+      next(`/login`)
       NProgress.done()
     }
   }

+ 4 - 4
src/router/index.js

@@ -38,9 +38,7 @@ export const constantRoutes = [
   },
   {
     path: '/',
-    redirect: {
-      path: '/main/main'
-    }
+    redirect: '/main/main'
   },
   {
     path: '/404',
@@ -158,7 +156,9 @@ export const asyncRoutes = {
   // 小班课设置
   setImprovement: () => import('@/views/teamBuild/teamSeting/components/setImprovement'),
   // 乐团修改 @/views/resetTeaming/index
-  resetTeaming: () => import('@/views/resetTeaming/index')
+  resetTeaming: () => import('@/views/resetTeaming/index'),
+  // 乐团课排课
+  coursePlan: () => import('@/views/teamBuild/teamSeting/components/coursePlan')
 
 }
 export default router

+ 1 - 1
src/utils/request.js

@@ -45,7 +45,7 @@ function tryHideFullScreenLoading () {
 const service = axios.create({
   baseURL: '', // url = base url + request url
   // withCredentials: true, // send cookies when cross-domain requests
-  timeout: 5000 // request timeout
+  timeout: 7000 // request timeout
 })
 // { fullscreen: true, text: '努力加载中', spinner: 'el-icon-loading' }
 // request interceptor

+ 52 - 33
src/views/buildVip/index.vue

@@ -234,7 +234,9 @@
                ref='maskForm'
                width="500px"
                :visible.sync="dialogFormVisible">
-      <el-form :model="maskForm">
+      <el-form :model="maskForm"
+               label-position="right"
+               label-width="150px">
         <el-form-item label="课程类型"
                       prop="type">
           <el-radio v-if="hasOnline"
@@ -248,10 +250,22 @@
             线下课
           </el-radio>
         </el-form-item>
-
+        <el-form-item label="线上课开课时间">
+          <el-date-picker v-model="maskForm.courseStartOnline"
+                          type="date"
+                          :picker-options="courseOption"
+                          placeholder="请选择开课时间" />
+        </el-form-item>
+        <el-form-item label="线下课开课时间">
+          <el-date-picker v-model="maskForm.courseStartOffline"
+                          type="date"
+                          :picker-options="courseOption"
+                          placeholder="请选择开课时间" />
+        </el-form-item>
         <el-form-item label="循环周次"
                       prop="week">
-          <el-select v-model="maskForm.week">
+          <el-select v-model="maskForm.week"
+                     style="width:220px!important;">
             <el-option label="星期日"
                        value="0" />
             <el-option label="星期一"
@@ -278,6 +292,7 @@
                           }"
                           placeholder="选择时间" />
         </el-form-item>
+
       </el-form>
       <div class="btnWrap">
         <div class="okBtn"
@@ -311,14 +326,8 @@
             </div>
           </div>
         </div>
-        <div style="margin:20px 0">
-          <el-date-picker v-model="maskForm.courseStart"
-                          type="date"
-                          :picker-options="courseOption"
-                          placeholder="请选择开课时间" />
-        </div>
-
         <div slot="footer"
+             style='margin-top:20px;'
              class="dialog-footer">
           <el-button @click="dialogFormVisible = false">
             取 消
@@ -360,7 +369,8 @@ export default {
         classTime: '',
         signUpStart: '',
         signUpEnd: '',
-        courseStart: '',
+        courseStartOnline: '',
+        courseStartOffline: '',
         courseEnd: '',
         section: ''
       },
@@ -394,7 +404,9 @@ export default {
       attribute1: '',
       attribute2: '',
       salaryReadonlyFlag: '', // 老师工资是否可配
-      lookList: [], // 展示课表
+      lookList: [],
+      onlinelookList: [], // 展示课表线上
+      offlineLookList: [], // 展示课表线下
       timeTable: [], // 真正的课表
       giveNum: '',
       weekDay: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
@@ -622,7 +634,7 @@ export default {
           'id': Date.now()
         })
       }
-
+      console.log(this.lookList)
       // let courseType = this.maskForm.type;
       // // let week = ;this.maskForm.week 
       // let startTime = this.maskForm.startTime;
@@ -682,14 +694,12 @@ export default {
       }
     },
     setTimeTable () {
-      if (!this.maskForm.courseStart) {
-        this.$message.error('请选择开课时间')
-        return;
-      }
+
+
       // 拿到线上课数与线下课数 以及
       this.timeTable = [];
-      let online = parseInt(this.centerForm.onlineCourseNum);
-      let offline = parseInt(this.centerForm.offlineCourseNum);
+      let online = parseInt(this.centerForm.onlineCourseNum) || 0;
+      let offline = parseInt(this.centerForm.offlineCourseNum) || 0;
 
       let giveNum = this.giveNum;
       let giveClassType = this.centerForm.radio;
@@ -699,11 +709,20 @@ export default {
       } else if (giveClassType == 'OFFLINE') {
         offline += giveNum;
       }
+      // 这里判断是否选择了排课开始时间
+      if (online && !this.maskForm.courseStartOnline) {
+        console.log(this.maskForm.courseStartOnline)
+        alert('选择了线上课 但没有线上课开始时间')
+        return
+      }
+      if (offline && !this.maskForm.courseStartOffline) {
+        alert('选择了线下课 但没有线下课开始时间')
+        return
+      }
 
-
-      let date = new Date(this.maskForm.courseStart.getTime());
-      let date1 = new Date(this.maskForm.courseStart.getTime());
-      let startWeekday = this.maskForm.courseStart.getDay();
+      let date = new Date(this.maskForm.courseStartOnline.getTime());
+      let date1 = new Date(this.maskForm.courseStartOffline.getTime());
+      // let startWeekday = this.maskForm.courseStart.getDay();
       let onlineList = []; // 装线上课的数组
       let offlineList = []; //装线下课的数组
       if (this.lookList.length <= 0) {
@@ -804,14 +823,14 @@ export default {
     },
     // 计算课酬
     computational () {
-      let userId = this.leftForm.teacher;
-      let giveTeachMode = this.centerForm.radio;
-      let vipGroupCategoryId = this.leftForm.courseType;
-      let vipGroupActivityId = this.leftForm.activeType;
-      let onlineClassesUnitPrice = this.rightForm.onlinePrice;
-      let offlineClassesUnitPrice = this.rightForm.offlinePrice;
-      let onlineClassesNum = this.centerForm.onlineCourseNum;
-      let offlineClassesNum = this.centerForm.offlineCourseNum;
+      let userId = this.leftForm.teacher || null;
+      let giveTeachMode = this.centerForm.radio || null;
+      let vipGroupCategoryId = this.leftForm.courseType || null;
+      let vipGroupActivityId = this.leftForm.activeType || null;
+      let onlineClassesUnitPrice = this.rightForm.onlinePrice || null;
+      let offlineClassesUnitPrice = this.rightForm.offlinePrice || null;
+      let onlineClassesNum = this.centerForm.onlineCourseNum || 0;
+      let offlineClassesNum = this.centerForm.offlineCourseNum || 0;
       if (this.hotType == 'GIVE_CLASS') {
         if (this.centerForm.radio == 'ONLINE') {
           onlineClassesNum = parseInt(onlineClassesNum) + parseInt(this.giveNum)
@@ -861,8 +880,8 @@ export default {
         coursesExpireDate: this.leftForm.courseEnd,
         teacherSchoolId: this.leftForm.section,
         name: this.leftForm.name,
-        offlineClassesNum: offline,
-        onlineClassesNum: online,
+        offlineClassesNum: offline || 0,
+        onlineClassesNum: online || 0,
         offlineClassesUnitPrice: this.rightForm.offlinePrice,
         onlineClassesUnitPrice: this.rightForm.onlinePrice,
         paymentExpireDate: this.leftForm.signUpEnd,

+ 23 - 12
src/views/main/index.vue

@@ -4,8 +4,12 @@
     </h2>
     <div class="m-core">
       <div class="itemWrap">
-        <div class="item" v-if="dataInfo.musicDatas">
-          <h4> <p>分部乐团数</p> <img src="" alt=""> </h4>
+        <div class="item"
+             v-if="dataInfo.musicDatas">
+          <h4>
+            <p>分部乐团数</p> <img src=""
+                 alt="">
+          </h4>
           <div class="infos">
             <div class="info">
               <p class="sub">全部</p>
@@ -22,7 +26,8 @@
           </div>
         </div>
         <!--  -->
-        <div class="item" v-if="dataInfo.incomeExpendMap">
+        <div class="item"
+             v-if="dataInfo.incomeExpendMap">
           <h4>
             <p>本月收入</p>
             <img src=""
@@ -40,7 +45,8 @@
           </div>
         </div>
 
-        <div class="item" v-if="dataInfo.incomeExpendMap">
+        <div class="item"
+             v-if="dataInfo.incomeExpendMap">
           <h4>
             <p>本月支出</p>
             <img src=""
@@ -58,7 +64,8 @@
           </div>
         </div>
 
-        <div class="item" v-if="dataInfo.teacherDatas">
+        <div class="item"
+             v-if="dataInfo.teacherDatas">
           <h4>
             <p>本月支出</p>
             <img src=""
@@ -80,7 +87,8 @@
           </div>
         </div>
 
-        <div class="item" v-if="dataInfo.vipDatas">
+        <div class="item"
+             v-if="dataInfo.vipDatas">
           <h4>
             <p>VIP课数</p>
             <img src=""
@@ -102,7 +110,8 @@
           </div>
         </div>
 
-        <div class="item" v-if="dataInfo.demoDatas">
+        <div class="item"
+             v-if="dataInfo.demoDatas">
           <h4>
             <p>试听课</p>
             <img src=""
@@ -124,7 +133,8 @@
           </div>
         </div>
 
-        <div class="item" v-if="dataInfo.studentDatas">
+        <div class="item"
+             v-if="dataInfo.studentDatas">
           <h4>
             <p>分部学生数</p>
             <img src=""
@@ -176,18 +186,18 @@
 import { getIndex } from '@/api/user'
 export default {
   // name: 'main',
-  data() {
+  data () {
     return {
       dataInfo: {}
     }
   },
-  mounted() {
+  mounted () {
     this.__init()
   },
   methods: {
-    __init() {
+    __init () {
       getIndex().then(res => {
-        if(res.code == 200) {
+        if (res.code == 200) {
           this.dataInfo = res.data
         }
       })
@@ -231,6 +241,7 @@ export default {
         font-weight: 500;
         color: rgba(68, 68, 68, 1);
         line-height: 28px;
+        text-align: center;
       }
     }
   }

+ 2 - 1
src/views/resetTeaming/components/resetSound.vue

@@ -39,7 +39,8 @@ export default {
   mounted () {
     // 获取声部信息
     this.teamid = this.$route.query.id
-    this.getSound()
+    this.getSound();
+    sessionStorage.setItem('resetCode', '2')
   },
   methods: {
     getSound () {

+ 16 - 4
src/views/resetTeaming/index.vue

@@ -22,8 +22,13 @@
         </el-tab-pane>
         <el-tab-pane label="新增排课"
                      name="4">
-          <coursePlan :teamid='teamid'
-                      v-if="acitveStatus[3]" />
+          <!-- <coursePlan :teamid='teamid'
+                      v-if="acitveStatus[3]" /> -->
+          <lookCourse />
+        </el-tab-pane>
+        <el-tab-pane label="小班课"
+                     name="5">
+          <improvement :teamid='teamid' />
         </el-tab-pane>
       </el-tabs>
     </div>
@@ -34,8 +39,10 @@ import teamBaseInfo from '@/views/teamBuild/components/teamBaseInfo'
 import resetSound from '@/views/resetTeaming/components/resetSound'
 import resetClass from '@/views/teamDetail/components/resetClass'
 import coursePlan from '@/views/teamBuild/teamSeting/components/coursePlan'
+import lookCourse from '@/views/teamBuild/teamSeting/components/lookCourse'
+import improvement from '@/views/teamBuild/teamSeting/components/improvementClass'
 export default {
-  components: { teamBaseInfo, resetSound, resetClass, coursePlan },
+  components: { teamBaseInfo, resetSound, resetClass, coursePlan, lookCourse, improvement },
   data () {
     return {
       activeIndex: '1',
@@ -43,8 +50,13 @@ export default {
       teamid: ''
     }
   },
-  mounted () {
+  created () {
+    this.activeIndex = sessionStorage.getItem('resetCode') || '1';
     this.teamid = this.$route.query.id;
+    console.log(this.teamid)
+  },
+  mounted () {
+
   }, methods: {
     handleClick (val) {
       this.activeIndex = val.name

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

@@ -459,7 +459,6 @@ export default {
       // this.holidayList = Object.keys(res.data[year])
     })
     this.teamStatus = this.$route.query.type;
-    console.log(this.teamStatus);
     // 传过来的乐团信息
     this.activeTeam = this.getTeamList;
 
@@ -497,12 +496,14 @@ export default {
               this.payList.company.price = res.data.musicGroupPaymentEntities[i].amount;
               this.payList.company.chiose = res.data.musicGroupPaymentEntities[i].paymentMethod;
             }
+
             if (res.data.months.length > 0) {
               this.payList.student.ischeck = true;
               this.payList.student.chiose = 'loop'
               this.chioseMonth = res.data.months;
-              console.log(this.chioseMonth)
             } else {
+              console.log(res.data.months.length);
+              console.log(1111);
               this.payList.student.ischeck = true;
               this.payList.student.chiose = 'ONE_OFF'
             }
@@ -557,6 +558,8 @@ export default {
     //     })
     //   }
     // })
+    // 缓存设置时的状态
+    sessionStorage.setItem('resetCode', '1')
   },
   methods: {
     gotoNext (num) {
@@ -650,6 +653,12 @@ export default {
               'name': '公司'
             })
           }
+          if (this.payList.student.ischeck) {
+            obj.musicGroupPaymentEntities.push({
+              'paymentMethod': this.payList.student.chiose,
+              'name': '学生'
+            })
+          }
           // 发请求
           resetTeamBaseInfo(obj).then(res => {
             if (res.code == 200) {

+ 4 - 0
src/views/teamBuild/components/teamSoundMoney.vue

@@ -679,6 +679,10 @@ export default {
                     // 
                     if (res.data.musicGroupSubjectGoodsGroups[j].type == 'INSTRUMENT') {
                       this.activeSoundList[i].zhonglei = this.activeSoundList[i].zhonglei.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsIdList)
+                      console.log(this.activeSoundList[i].zhonglei)
+                      this.activeSoundList[i].zhonglei = this.activeSoundList[i].zhonglei.map(item => {
+                        return parseInt(item);
+                      })
 
                       this.activeSoundList[i].goodsList = this.activeSoundList[i].goodsList.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsList);
                       // goodsList

Файловите разлики са ограничени, защото са твърде много
+ 485 - 333
src/views/teamBuild/teamSeting/components/coursePlan.vue


+ 1 - 0
src/views/teamBuild/teamSeting/components/improvementClass.vue

@@ -20,6 +20,7 @@
                     prop="timer">
         <el-date-picker v-model="topForm.timer"
                         align="right"
+                        style="width:220px!important;"
                         type="date"
                         placeholder="选择日期"
                         value-format="yyyy-MM-dd">

+ 91 - 0
src/views/teamBuild/teamSeting/components/lookCourse.vue

@@ -0,0 +1,91 @@
+<template>
+  <div>
+    <el-form :inline="true">
+      <el-form-item>
+        <div class="newBand"
+             @click="gotoPlan">新增/修改</div>
+      </el-form-item>
+      <el-form-item label="选择合奏班">
+        <el-select v-model="chioseMix">
+          <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>
+    <el-table :header-cell-style="{background:'#EDEEF0',color:'#444'}"
+              :data="tableList">
+      <el-table-column prop="classDate"
+                       label="日期"
+                       align="center"
+                       width="180">
+        <template slot-scope="scope">
+          <div>
+            {{ scope.row.classDate | formatTimer }}
+          </div>
+        </template>
+      </el-table-column>
+      </el-table-column>
+      <el-table-column label="课程类型"
+                       align="center"
+                       width="180">
+        <template slot-scope="scope">
+          <div>
+            {{scope.row.type |coursesType }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="name"
+                       align="center"
+                       label="课程名称">
+      </el-table-column>
+      <el-table-column label="上课时间"
+                       align="left"
+                       width="180">
+        <template slot-scope="scope">
+          <div>
+            {{ scope.row.startClassTimeStr+ '-'+ scope.row.endClassTimeStr}}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+<script>
+import { getAllClass, getClassCOurse } from '@/api/buildTeam'
+export default {
+  data () {
+    return {
+      teamid: '',
+      maxClassList: [],
+      chioseMix: '',
+      tableList: []
+    }
+  }, mounted () {
+    sessionStorage.setItem('resetCode', 4)
+    this.teamid = this.$route.query.id;
+    getAllClass({ musicGroupId: this.teamid }).then(res => {
+      if (res.code == 200) {
+        this.maxClassList = res.data;
+        this.chioseMix = this.maxClassList[0].id;
+        // 发请求获取数据
+        getClassCOurse({ classGroupId: this.chioseMix }).then(res => {
+          if (res.code == 200) {
+            this.tableList = res.data;
+          }
+        })
+      }
+    })
+  }, methods: {
+    gotoPlan () {
+      this.$router.push({ path: '/business/coursePlan', query: { id: this.teamid } })
+    }
+  },
+}
+</script>
+<style lang="scss" scoped>
+</style>

+ 6 - 3
src/views/teamBuild/teamSeting/index.vue

@@ -73,7 +73,8 @@
         <teacherSeting :teamid='id' />
       </div>
       <div v-if='activeIndex==2'>
-        <coursePlan :teamid='id' />
+        <!-- <coursePlan :teamid='id' /> -->
+        <lookCourse />
       </div>
       <div v-if='activeIndex==3'>
         <improvement :teamid='id' />
@@ -90,13 +91,15 @@ import teacherSeting from '@/views/teamBuild/teamSeting/components/setTeacher'
 import coursePlan from '@/views/teamBuild/teamSeting/components/coursePlan'
 import salarySet from '@/views/teamBuild/teamSeting/components/salarySet'
 import improvement from '@/views/teamBuild/teamSeting/components/improvementClass'
+import lookCourse from '@/views/teamBuild/teamSeting/components/lookCourse'
 export default {
   components: {
     classSeting,
     teacherSeting,
     coursePlan,
     salarySet,
-    improvement
+    improvement,
+    lookCourse
   },
   data () {
     return {
@@ -111,7 +114,7 @@ export default {
   created () {
     // 191015151405001
     // 191015094822001
-    this.id = this.$route.query.id || '191015094822001';
+    this.id = this.$route.query.id;
   },
   mounted () {
   },

+ 4 - 2
src/views/teamDetail/components/resetClass.vue

@@ -1,5 +1,6 @@
 <template>
-  <div class="m-container">
+  <!-- m-container -->
+  <div class="">
     <!-- <h2>
       <div class='squrt'></div>
       班级调整
@@ -418,6 +419,7 @@ export default {
     this.teamid = this.$route.query.id;
   },
   mounted () {
+    sessionStorage.setItem('resetCode', '3')
     // 1.获取乐团下所有的合奏班
     // 2.根据合奏班获取所有的单技班
     // 3.根据乐团id 查询 此乐团所有的合奏班
@@ -770,7 +772,7 @@ export default {
   }
 }
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
 .floor {
   padding-right: 20px;
   display: flex;

+ 4 - 2
src/views/teamDetail/teamList.vue

@@ -201,6 +201,7 @@ export default {
     pagination
   },
   mounted () {
+    sessionStorage.setItem('resetCode', '1')
     this.getList();
     // 获取乐团收费类型
     getPayType().then(res => {
@@ -226,8 +227,9 @@ export default {
         rows: this.rules.limit,
         page: this.rules.page,
         organId: this.$store.getters.organ,
-        chargeTypeId: this.topForm.payType,
-        musicGroupName: this.topForm.teamName
+        chargeTypeId: this.topForm.payType || null,
+        musicGroupName: this.topForm.teamName || null,
+        musicGroupStatus: this.topForm.status || null,
 
       }).then(res => {
         if (res.code == 200) {

Някои файлове не бяха показани, защото твърде много файлове са промени