Quellcode durchsuchen

03/09 12:48

111
261568008@qq.com vor 5 Jahren
Ursprung
Commit
46b260fc31
56 geänderte Dateien mit 400 neuen und 64 gelöschten Zeilen
  1. 0 0
      dist/index.html
  2. 0 1
      dist/static/css/chunk-02d489a1.deba464c.css
  3. 1 1
      dist/static/css/chunk-667d60cc.a3fd56c8.css
  4. 1 0
      dist/static/css/chunk-cd502c5c.95d81e26.css
  5. 0 0
      dist/static/js/app.0155788b.js
  6. 0 0
      dist/static/js/app.8a41afed.js
  7. 0 0
      dist/static/js/chunk-0138b0da.1f2c2b4a.js
  8. 0 0
      dist/static/js/chunk-02d489a1.94ec33ce.js
  9. 0 0
      dist/static/js/chunk-03688f5e.a614f4ad.js
  10. 0 0
      dist/static/js/chunk-075d6717.2b851cc6.js
  11. 0 0
      dist/static/js/chunk-09753c97.d89bcd24.js
  12. 0 0
      dist/static/js/chunk-11ede39e.9b945e37.js
  13. 0 0
      dist/static/js/chunk-1c9ae0ee.8c6c5493.js
  14. 0 0
      dist/static/js/chunk-243e17a6.93ae38bd.js
  15. 0 0
      dist/static/js/chunk-2455a54e.31435f90.js
  16. 0 0
      dist/static/js/chunk-257cc208.99a15fa7.js
  17. 0 0
      dist/static/js/chunk-35d7984f.e7061a42.js
  18. 0 0
      dist/static/js/chunk-3661e960.51b154a4.js
  19. 0 0
      dist/static/js/chunk-3e3440eb.481c4b88.js
  20. 0 0
      dist/static/js/chunk-40e665d1.4574a8ae.js
  21. 0 0
      dist/static/js/chunk-419ce36c.41de8911.js
  22. 0 0
      dist/static/js/chunk-41e8aa7a.26db2b29.js
  23. 0 0
      dist/static/js/chunk-41f382a0.6ad0c8e5.js
  24. 0 0
      dist/static/js/chunk-4aab68d7.a973b364.js
  25. 0 0
      dist/static/js/chunk-5440ee4e.705ef032.js
  26. 0 0
      dist/static/js/chunk-5fbb8ef1.b157706c.js
  27. 0 0
      dist/static/js/chunk-601e685c.f5d55197.js
  28. 0 0
      dist/static/js/chunk-6181ddae.e0cb6137.js
  29. 0 0
      dist/static/js/chunk-644c653e.2fb47530.js
  30. 0 0
      dist/static/js/chunk-6562cc02.a842b3d6.js
  31. 0 0
      dist/static/js/chunk-667d60cc.d9c9931f.js
  32. 0 0
      dist/static/js/chunk-66a826b1.b91041a6.js
  33. 0 0
      dist/static/js/chunk-68259a14.ced62d4f.js
  34. 0 0
      dist/static/js/chunk-6c42ea8e.b91671e4.js
  35. 0 0
      dist/static/js/chunk-70fa4dab.601f297d.js
  36. 0 0
      dist/static/js/chunk-7212fea1.2e6140ec.js
  37. 0 0
      dist/static/js/chunk-787f95c4.55d0dbfc.js
  38. 0 0
      dist/static/js/chunk-787f95c4.728ef4c0.js
  39. 0 0
      dist/static/js/chunk-90bc8dd8.0c31e765.js
  40. 0 0
      dist/static/js/chunk-b1e176fc.943d8bd6.js
  41. 0 0
      dist/static/js/chunk-bb579d98.e407829a.js
  42. 0 0
      dist/static/js/chunk-bc672cf4.3c637aca.js
  43. 0 0
      dist/static/js/chunk-cd502c5c.26080a16.js
  44. 0 0
      dist/static/js/chunk-d98ee362.0e1e1011.js
  45. 0 0
      dist/static/js/chunk-d98ee362.367dbde9.js
  46. 0 0
      dist/static/js/chunk-de5c2e9a.636e1ef7.js
  47. 0 0
      dist/static/js/chunk-dea0328a.fc23cc45.js
  48. 0 0
      dist/static/js/chunk-eb7895b6.91edf509.js
  49. 0 0
      dist/static/js/chunk-f1cf4274.3a0fa070.js
  50. 0 0
      dist/static/js/chunk-f6deba5e.37d5753d.js
  51. 0 0
      dist/static/js/chunk-f6deba5e.628cef5d.js
  52. 26 0
      src/api/buildTeam.js
  53. 93 0
      src/utils/questionJson.js
  54. 16 16
      src/views/accompanyManager/accompanys.vue
  55. 107 24
      src/views/evaluateManager/evaluateDetail.vue
  56. 156 22
      src/views/evaluateManager/evaluateList.vue

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


+ 0 - 1
dist/static/css/chunk-02d489a1.deba464c.css

@@ -1 +0,0 @@
-.m-core[data-v-3f2004b4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.m-core .left[data-v-3f2004b4]{width:400px}.m-core .right[data-v-3f2004b4]{margin-left:30px;min-width:600px}.m-core .right .box-card[data-v-3f2004b4]{width:100%;min-height:500px}.m-core .right .box-card .cardWrap[data-v-3f2004b4]{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;width:100%;margin-top:30px}.m-core .right .box-card .cardWrap .row[data-v-3f2004b4]{height:30px;line-height:30px;font-size:14px}.m-core .right .box-card .cardWrap .title[data-v-3f2004b4]{text-align:center}.m-core .right .box-card .cardWrap .cardWrapleft[data-v-3f2004b4],.m-core .right .box-card .cardWrap .cardWrapright[data-v-3f2004b4]{width:48%}.m-core .right .box-card .cardWrap .cardWrapright .textWrap[data-v-3f2004b4]{margin-top:20px;width:100%;border:1px solid #999;min-height:100px}

+ 1 - 1
dist/static/css/chunk-601e685c.7a8bb069.css → dist/static/css/chunk-667d60cc.a3fd56c8.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-a3346508]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.titlewrap[data-v-a3346508],.wrap[data-v-a3346508]{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-a3346508]{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-4b58952c]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.titlewrap[data-v-4b58952c],.wrap[data-v-4b58952c]{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-4b58952c]{margin-right:20px}

+ 1 - 0
dist/static/css/chunk-cd502c5c.95d81e26.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}.m-core[data-v-46f8f6e8]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.m-core .left[data-v-46f8f6e8]{width:550px}.m-core .right[data-v-46f8f6e8]{margin-left:30px;min-width:600px}.m-core .right .box-card[data-v-46f8f6e8]{width:100%;min-height:500px}.m-core .right .box-card .cardWrap[data-v-46f8f6e8]{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;width:100%;margin-top:30px}.m-core .right .box-card .cardWrap .row[data-v-46f8f6e8]{line-height:30px;font-size:14px}.m-core .right .box-card .cardWrap .title[data-v-46f8f6e8]{text-align:center}.m-core .right .box-card .cardWrap .cardWrapleft[data-v-46f8f6e8],.m-core .right .box-card .cardWrap .cardWrapright[data-v-46f8f6e8]{width:48%}.m-core .right .box-card .cardWrap .cardWrapright .textWrap[data-v-46f8f6e8]{margin-top:20px;width:100%;border:1px solid #999;min-height:100px}

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


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


+ 0 - 0
dist/static/js/chunk-0138b0da.02ab5eb1.js → dist/static/js/chunk-0138b0da.1f2c2b4a.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-02d489a1.94ec33ce.js


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


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-075d6717.2b851cc6.js


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


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-11ede39e.9b945e37.js


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


+ 0 - 0
dist/static/js/chunk-243e17a6.8d2c93b3.js → dist/static/js/chunk-243e17a6.93ae38bd.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-2455a54e.31435f90.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-257cc208.99a15fa7.js


+ 0 - 0
dist/static/js/chunk-35d7984f.1c6c61ce.js → dist/static/js/chunk-35d7984f.e7061a42.js


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


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


+ 0 - 0
dist/static/js/chunk-40e665d1.04530ada.js → dist/static/js/chunk-40e665d1.4574a8ae.js


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


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-41e8aa7a.26db2b29.js


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


+ 0 - 0
dist/static/js/chunk-4aab68d7.5363e3d9.js → dist/static/js/chunk-4aab68d7.a973b364.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-5440ee4e.705ef032.js


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


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


+ 0 - 0
dist/static/js/chunk-6181ddae.9602ae6c.js → dist/static/js/chunk-6181ddae.e0cb6137.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-644c653e.2fb47530.js


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


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


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


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


+ 0 - 0
dist/static/js/chunk-6c42ea8e.615c4841.js → dist/static/js/chunk-6c42ea8e.b91671e4.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-70fa4dab.601f297d.js


+ 0 - 0
dist/static/js/chunk-7212fea1.22bbdfdd.js → dist/static/js/chunk-7212fea1.2e6140ec.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-787f95c4.55d0dbfc.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-787f95c4.728ef4c0.js


+ 0 - 0
dist/static/js/chunk-90bc8dd8.c39361e9.js → dist/static/js/chunk-90bc8dd8.0c31e765.js


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


+ 0 - 0
dist/static/js/chunk-bb579d98.06fa6b79.js → dist/static/js/chunk-bb579d98.e407829a.js


+ 0 - 0
dist/static/js/chunk-bc672cf4.e8fcefa8.js → dist/static/js/chunk-bc672cf4.3c637aca.js


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


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


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


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


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


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


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


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


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


+ 26 - 0
src/api/buildTeam.js

@@ -1004,3 +1004,29 @@ export function batchUpdateCourseSchedule(data) {
     data
   })
 }
+
+// 评论管理
+export function getReviews(data) { 
+  return request({
+    url: api + '/practiceGroupManage/getReviews',
+    method: 'get',
+    params: data
+  })
+}
+
+// 评论详情 列表
+export function getGroupReviews(data) { 
+  return request({
+    url: api + '/practiceGroupManage/getGroupReviews',
+    method: 'get',
+    params: data
+  })
+}
+//  评论详情 
+export function getReviewsInfo(data) { 
+  return request({
+    url: api + '/practiceGroupManage/getReviewsInfo',
+    method: 'get',
+    params: data
+  })
+}

+ 93 - 0
src/utils/questionJson.js

@@ -0,0 +1,93 @@
+const subjectJson = {
+    "1": {
+      title: "练习表现",
+      1: "表现优异,互动积极!课程效率超高!",
+      2: "表现良好!能够与老师进行互动,继续保持!",
+      3: "偶尔开小差,要专注才会有提升哦!",
+      icon: ""
+    },
+    "2": {
+      title: "气息运用",
+      1: "气息运用良好,吸气充分,送出均匀且平稳。",
+      2: "气息运用基本正确,吸气要尽可能更多更快,气息送出需要更加平稳。",
+      3: "气息的运用还需增强,要注意演奏时不要通过鼻子,而是用嘴来吸气,存气位置为丹田处,切忌存于肺部,气息送出要均匀,在演奏时气速要适当提高,对演奏起到支撑。",
+      icon: ""
+    },
+    "3": {
+      title: "发音环节",
+      1: "发音环节整体较好,吐音清晰,起音柔和、自然。",
+      2: "发音环节基本正确,吹奏时固定笛头吹孔角度,继续加强4个吹气方向,从而提升音准控制力,注意气速不易过快,吐音要清晰自然。",
+      3: "发音环节需要加强,尤其是注意下巴拉平,笛头吹奏时口风要保持细小,上唇切忌不要盖的太多,吹孔放于下唇线以下并垂直朝上,不要歪斜,吐音时舌头做上下的自然动作,切勿吐音太重。",
+      icon: ""
+    },
+    "4": {
+      title: "教材演奏",
+      1: "教材演奏优秀,吐音与运指能够较好的配合,演奏连贯,音质、音量及音色能够保持一致,演奏法区分清晰。",
+      2: "教材演奏较好,个别地方连贯度还要增强,读谱、吐音与运指的良好配合会提升连贯度。音质、音量及音色要注意保持一致,嘴型的固定及气息的控制提升会明显改善一致性的问题。",
+      3: "教材演奏需要加强,提升吐音与运指的配合度,改善断奏及时值不足的问题。通过嘴型的调整会使音质有明显的变化,练习中出现的演奏法记号不要忽视。",
+      icon: ""
+    },
+    "5": {
+        title: "节奏",
+        1: "节奏较为稳定,能够做到时值饱满。",
+        2: "节奏部分还要继续加强,多使用节拍器来进行练习,既不要抢拍也不要拖拍,换气前的音符注意时值保持饱满,通过教材中节奏模打练习来提升整个节奏的稳定性。",
+        icon: ""
+      },
+      "6": {
+        title: "跳音",
+        1: "演奏较好,富有弹性,音型正确",
+        2: "不够短促,反之也不要由于演奏过短而出现的僵硬问题",
+        icon: ""
+      },
+      "7": {
+        title: "保持音",
+        1: "演奏充分,较为饱满,音型正确",
+        2: "首先不要出现“大肚子”音,从而提升保持音稳定程度,音尾不要渐弱",
+        icon: ""
+      },
+      "8": {
+        title: "重音",
+        1: "音头清晰,气息与舌头配合良好,音型正确。",
+        2: "音头不够明显,适当增加舌头动作与气息速度。",
+        3:"出现音头过重的情况,要检查舌头动作,避免前后运动。",
+        icon: ""
+      },
+      
+  }
+
+
+  const subjectJsonOld =  {
+    '1': {
+      title: "练习表现",
+      1: "表现优异!你就是最闪亮的星!",
+      2: "表现良好!你非常有潜力!",
+      3: "偶尔开小差,还要加油哦!",
+      icon: ""
+    },
+    '2': {
+      title: "节奏准确度",
+      1: "节奏优异!堪称人肉节拍器!",
+      2: "基本准确!注意时值饱满哦!",
+      3: "中等稳定!搭配练习节拍器会更好哦!",
+      icon: ""
+    },
+    '3': {
+      title: "音符准确度",
+      1: "百发百中!棒极了!",
+      2: "准确度良好!距离完美只有一步之遥!",
+      3: "中等准确!稍加练习你一定会更好!",
+      icon: ""
+    },
+    '4': {
+      title: "演奏连贯度",
+      1: "非常棒!你演奏一气呵成!",
+      2: "良好!多注意乐句末的音符时值哦!",
+      3: "继续努力!告诉自己,你一定能行的!",
+      icon: ""
+    }
+  }
+
+export {
+    subjectJsonOld,
+    subjectJson
+  }

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

@@ -39,7 +39,7 @@
         <el-table-column label="主教老师" align="center" prop="teacherName"></el-table-column>
         <!-- <el-table-column label="主教老师" align="center" >
           <template slot-scope="scope">
-            <div v-if="scope.row.teacher">
+            <div v-show="scope.row.teacher">
               {{scope.row.teacher.realName}}
             </div>
           </template>
@@ -79,25 +79,25 @@
               <el-button
                 type="text"
                 v-permission="'courseSchedule/classStartDateAdjust'"
-                v-if="!scope.row.isSettlement"
+                v-show="!scope.row.isSettlement"
                 @click="resetClass(scope.row)"
               >调整</el-button>
               <el-button
                 type="text"
                 v-permission="'accompanys/remove'"
-                v-if="!scope.row.isSettlement && scope.row.status == 'NOT_START'"
+                v-show="!scope.row.isSettlement && scope.row.status == 'NOT_START'"
                 @click="removeClass(scope.row)"
               >删除</el-button>
               <el-button
                 v-permission="'courseSchedule/practiceCourseTeacherAdjust'"
                 type="text"
-                v-if="scope.row.status == 'NOT_START'"
+                v-show="scope.row.status == 'NOT_START'"
                 @click="resetTeacher(scope.row)"
               >更换老师</el-button>
               <el-button
                 type="text"
                 v-permission="'accompanys/cleanAttendance'"
-                v-if="!scope.row.isSettlement"
+                v-show="!scope.row.isSettlement"
                 @click="clearAttend(scope.row)"
               >清除考勤</el-button>
             </div>
@@ -154,14 +154,14 @@
                             minTime: maskForm.startTime
                           }">
           </el-time-select>
-        </el-form-item>  v-if="maskForm.teachMode=='OFFLINE'"-->
+        </el-form-item>  v-show="maskForm.teachMode=='OFFLINE'"-->
         <!-- <el-form-item label="课程类型" prop="courseType">
           <el-select clearable v-model.trim="maskForm.teachMode">
             <el-option label="线上课" value="ONLINE"></el-option>
             <el-option label="线下课" value="OFFLINE"></el-option>
           </el-select>
         </el-form-item>-->
-        <!-- <el-form-item label="教学地点" v-if="maskForm.teachMode == 'OFFLINE'">
+        <!-- <el-form-item label="教学地点" v-show="maskForm.teachMode == 'OFFLINE'">
           <el-select v-model.trim="maskForm.address" filterable clearable>
             <el-option
               v-for="(item,index) in schoolList"
@@ -192,10 +192,10 @@
         label-width="80px;"
         :inline="true"
       >
-        <el-form-item label="课程班名称" v-if="isMultiple">
+        <el-form-item label="课程班名称" v-show="isMultiple">
           <el-input v-model.trim="teacherForm.name" disabled></el-input>
         </el-form-item>
-        <el-form-item label="课程组声部" v-if="isMultiple">
+        <el-form-item label="课程组声部" v-show="isMultiple">
           <el-select
             v-model.trim="teacherForm.subjectId"
             @change="changeSound"
@@ -220,7 +220,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item v-if="isMultiple">
+        <el-form-item v-show="isMultiple">
           <p style="color:#FF5353">*更改课程组老师,将更换全部未开始课程的老师</p>
         </el-form-item>
       </el-form>
@@ -238,14 +238,14 @@
         :rules="adjustmentRules"
         :inline="true"
       >
-        <el-form-item label="已选择课时数" v-if="!isaddCourse">
+        <el-form-item label="已选择课时数" v-show="!isaddCourse">
           <el-input disabled v-model.trim="adjustmentForm.count"></el-input>
         </el-form-item>
-        <el-form-item label="添加课时数" prop="addCount" v-if="isaddCourse">
+        <el-form-item label="添加课时数" prop="addCount" v-show="isaddCourse">
           <el-input type="number" @mousewheel.native.prevent v-model.trim="adjustmentForm.addCount"></el-input>
         </el-form-item>
         <br />
-        <!-- <el-form-item label="单课费用" prop="fee" v-if="isaddCourse">
+        <!-- <el-form-item label="单课费用" prop="fee" v-show="isaddCourse">
           <el-input v-model.trim="adjustmentForm.fee"></el-input>
         </el-form-item>-->
         <el-form-item label="排课起始时间" prop="courseTime">
@@ -304,8 +304,8 @@
       </div>
       <div slot="footer" class="dialog-footer">
         <el-button @click="adjustmentVisible = false">取 消</el-button>
-        <el-button type="primary" v-if="!isaddCourse" @click="submitAdjustment">确 定</el-button>
-        <el-button type="primary" v-if="isaddCourse" @click="addCourseSubmit">确 定</el-button>
+        <el-button type="primary" v-show="!isaddCourse" @click="submitAdjustment">确 定</el-button>
+        <el-button type="primary" v-show="isaddCourse" @click="addCourseSubmit">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -422,7 +422,7 @@ export default {
       timers: null
     };
   },
-  created() {
+  mounted() {
     this.init();
   },
   activated() {

+ 107 - 24
src/views/evaluateManager/evaluateDetail.vue

@@ -10,22 +10,35 @@
           :header-cell-style="{background:'#EDEEF0',color:'#444'}"
           :data="tableData"
         >
-          <el-table-column align="center" prop="id" label="时间"></el-table-column>
-          <el-table-column align="center" prop="id" label="操作"></el-table-column>
+          <el-table-column align="center" prop="month" label="时间"></el-table-column>
+          <el-table-column align="center" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text" @click="getReviews(scope.row.id)">查看</el-button>
+              </div>
+            </template>
+          </el-table-column>
         </el-table>
+        <!-- <pagination
+          :total="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />-->
       </div>
-      <div class="right">
+      <div class="right" v-if="isLook">
         <el-card class="box-card">
           评价详情
           <div class="cardWrap">
             <div class="cardWrapleft">
               <p class="title">授课内容</p>
               <el-divider></el-divider>
-              <p class="row">评价时间:</p>
-              <p class="row">老师:</p>
-              <p class="row">声部:</p>
-              <p class="row">训练次数:</p>
-              <p class="row">训练时长</p>
+              <p class="row">评价时间:{{commitWrap.time }}</p>
+              <p class="row">老师: {{commitWrap.teacher}}</p>
+              <p class="row">声部:{{ commitWrap.soundName }}</p>
+              <p class="row">训练次数:{{ commitWrap.count }}</p>
+              <p class="row">训练时长:{{ commitWrap.timers }}</p>
               <p class="title">授课内容</p>
               <el-divider></el-divider>
               <p class="row">乐理:</p>
@@ -35,11 +48,8 @@
             <div class="cardWrapright">
               <p class="title">点评</p>
               <el-divider></el-divider>
-              <p class="row">(选择1)填充文本</p>
-              <p class="row">(选择1)填充文本</p>
-              <p class="row">(选择1)填充文本</p>
-              <p class="row">(选择1)填充文本</p>
-              <div class="textWrap"></div>
+              <p class="row" v-for="(item,index) in askList">{{index+1+':'+item}}</p>
+              <!-- <div class="textWrap"></div> -->
             </div>
           </div>
         </el-card>
@@ -48,11 +58,86 @@
   </div>
 </template>
 <script>
+import pagination from "@/components/Pagination/index";
+import { getGroupReviews, getReviewsInfo } from "@/api/buildTeam";
+import {subjectJsonOld,
+    subjectJson} from '@/utils/questionJson'
 export default {
+  components: { pagination },
   data() {
     return {
-      tableData: []
+      tableData: [],
+      id: null,
+      isLook: false,
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      },
+      subjectJsonOld:subjectJsonOld ,
+      subjectJson:subjectJson,
+      askList: [],
+      commitWrap: {
+        time: "",
+        teacher: "",
+        soundName: "",
+        count: "",
+        timers: ""
+      }
     };
+  },
+  activated() {
+    this.init();
+  },
+  created() {
+    this.init();
+  },
+  methods: {
+    init() {
+      this.id = this.$route.query.id;
+      this.evaluateId = this.$route.query.evaluateId;
+      // 获取列表
+      this.getList();
+      // 获取评论详情
+      if (this.evaluateId > 0) {
+        this.getReviews(this.evaluateId);
+      }
+    },
+    getList() {
+      getGroupReviews({ groupId: this.id }).then(res => {
+        if (res.code == 200) {
+          // this.tableData = res.data.rows;
+          // this.rules.total = res.data.total;
+          this.tableData = res.data;
+        }
+      });
+    },
+    getReviews(id) {
+      getReviewsInfo({ id: this.evaluateId }).then(res => {
+        if (res.code == 200) {
+          this.isLook = true;
+          if(res.data.version == 1){
+             this.askList = res.data.item.split(",").map((item, index) => {
+            return this.subjectJsonOld[index + 1][item];
+          });
+          }else if(res.data.version == 2){
+                this.askList = res.data.item.split(",").map((item, index) => {
+            return this.subjectJson[index + 1][item];
+          });
+          }
+         
+          this.commitWrap = {
+            time: res.data.createTime,
+            teacher:res.data.teacher,
+            soundName: res.data.subjectName,
+            count: res.data.times,
+            timers: res.data.totalMinutes
+          };
+        }
+      });
+    }
   }
 };
 </script>
@@ -61,7 +146,7 @@ export default {
   display: flex;
   flex-direction: row;
   .left {
-    width: 400px;
+    width: 550px;
   }
   .right {
     margin-left: 30px;
@@ -76,24 +161,22 @@ export default {
         width: 100%;
         margin-top: 30px;
         .row {
-          height: 30px;
           line-height: 30px;
           font-size: 14px;
         }
-          .title {
-            text-align: center;
-          }
+        .title {
+          text-align: center;
+        }
         .cardWrapleft {
           width: 48%;
-        
         }
         .cardWrapright {
           width: 48%;
           .textWrap {
-              margin-top: 20px;
-              width:100%;
-              border: 1px solid #999;
-              min-height: 100px;
+            margin-top: 20px;
+            width: 100%;
+            border: 1px solid #999;
+            min-height: 100px;
           }
         }
       }

+ 156 - 22
src/views/evaluateManager/evaluateList.vue

@@ -14,19 +14,45 @@
           ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="请选择分部"></el-select>
+          <el-select placeholder="请选择分部" v-model="searchForm.organId" clearable>
+            <el-option
+              v-for="(item,index) in organList"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="请选择状态"></el-select>
+          <el-select placeholder="请选择状态" v-model="searchForm.isOver" clearable>
+            <el-option label="已完成" value="1"></el-option>
+            <el-option label="进行中" value="0"></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="请选择指导老师"></el-select>
+          <el-select placeholder="请选择指导老师" v-model="searchForm.teacherId" clearable filterable>
+            <el-option
+              v-for="(item,index) in teacherList"
+              :label="item.realName"
+              :value="item.id"
+              :key="index"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="是否完成评价"></el-select>
+          <el-select placeholder="是否完成评价" v-model="searchForm.hasReport" clearable>
+            <el-option label="是" value="1"></el-option>
+            <el-option label="否" value="0"></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="请选择指时间"></el-select>
+          <el-date-picker
+          :clearable='false'
+            v-model="searchForm.month"
+            type="month"
+            value-format="yyyy-MM"
+            placeholder="选择年月"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item>
           <el-button @click="search" type="danger">搜索</el-button>
@@ -40,17 +66,39 @@
           :data="tableData"
         >
           <el-table-column align="center" prop="id" label="课程组编号"></el-table-column>
-          <el-table-column align="center" prop="id" label="课程组名称"></el-table-column>
-          <el-table-column align="center" prop="id" label="分部名称"></el-table-column>
-          <el-table-column align="center" prop="id" label="类型"></el-table-column>
-          <el-table-column align="center" prop="id" label="收费类型"></el-table-column>
-          <el-table-column align="center" prop="id" label="状态"></el-table-column>
-          <el-table-column align="center" prop="id" label="指导老师"></el-table-column>
-          <el-table-column align="center" prop="id" label="课次"></el-table-column>
-          <el-table-column align="center" prop="id" label="是否评价"></el-table-column>
-          <el-table-column align="center" prop="id" label="操作"></el-table-column>
+          <el-table-column align="center" prop="name" label="课程组名称"></el-table-column>
+          <el-table-column align="center" prop="organName" label="分部名称"></el-table-column>
+          <!-- <el-table-column align="center" prop="id" label="类型"></el-table-column> -->
+          <el-table-column align="center" prop="id" label="收费类型">
+            <template slot-scope="scope">
+              <div>{{scope.row.buyMonths>0?'付费':'免费'}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="状态">
+            <template slot-scope="scope">
+              <div>{{ scope.row.coursesExpireDate | coursesStatus}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="teacherName" label="指导老师"></el-table-column>
+          <el-table-column align="center" label="课次">
+            <template slot-scope="scope">
+              <div>{{scope.row.currentClassTimes+'/'+scope.row.totalClassTimes}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="id" label="是否评价">
+            <template slot-scope="scope">
+              <div>{{scope.row.evaluateId>0?'是':'否'}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text" @click="gotoEvakuateDetail(scope.row)">查看</el-button>
+              </div>
+            </template>
+          </el-table-column>
         </el-table>
-              <pagination
+        <pagination
           :total="rules.total"
           :page.sync="rules.page"
           :limit.sync="rules.limit"
@@ -63,25 +111,111 @@
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
+import { getReviews, getTeacher, getEmployeeOrgan } from "@/api/buildTeam";
 export default {
-    components: { pagination },
+  components: { pagination },
   data() {
     return {
-      searchForm: {},
-        rules: {
+      searchForm: {
+        organId: null,
+        isOver: "",
+        teacherId: null,
+        hasReport: "",
+        month: null,
+        search: null
+      },
+      rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
-      tableData:[]
+      tableData: [],
+      teacherList: [],
+      subjectList: [],
+      organList: []
     };
   },
+  created() {
+    this.init();
+  },
+  activated() {
+    this.init();
+  },
   methods: {
-    getList() {},
-    search(){},
-    onReSet(){}
+    init() {
+      if (!this.searchForm.month) {
+        var now = new Date();
+        this.searchForm.month = new Date(
+          Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+        )
+          .toISOString()
+          .slice(0, 7);
+      }
+
+      // 获取指导老师
+      getTeacher({}).then(res => {
+        if (res.code == 200) {
+          this.teacherList = res.data;
+        }
+      });
+      // 获取分部
+      getEmployeeOrgan().then(res => {
+        if (res.code == 200) {
+          this.organList = res.data;
+        }
+      });
+      this.getList();
+      // getReviews()
+    },
+    getList() {
+      // 数据效验
+      let obj = {};
+      obj.hasReport = this.searchForm.hasReport || null;
+      obj.isOver = this.searchForm.isOver || null;
+      obj.month = this.searchForm.month || null;
+      obj.organId = this.searchForm.organId || null;
+      obj.page = this.rules.page;
+      obj.rows = this.rules.rows;
+      obj.search = this.rules.search;
+      obj.teacherId = this.searchForm.teacherId || null;
+      getReviews(obj).then(res => {
+        if (res.code == 200) {
+          this.tableData = res.data.rows;
+          this.rules.total = res.data.total; 
+        }
+      });
+    },
+    search() {
+      this.rules.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      this.searchForm = { organId: null,
+        isOver: "",
+        teacherId: null,
+        hasReport: "",
+        month: null,
+        search: null}
+            var now = new Date();
+        this.searchForm.month = new Date(
+          Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+        )
+          .toISOString()
+          .slice(0, 7);
+      
+    },
+    gotoEvakuateDetail(row){
+      let id = row.id;
+      let evaluateId = row.evaluateId
+      this.$router.push({path:'/business/evaluateDetail',query:{id,evaluateId}})
+    }
+  },
+  filters: {
+    coursesStatus(val) {
+      return new Date().getTime() - new Date(val) > 0 ? "已完成" : "进行中";
+    }
   }
 };
 </script>

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