瀏覽代碼

Merge branch 'master' into 02/23reviewBUG

lex-xin 4 年之前
父節點
當前提交
577dd2d888
共有 100 個文件被更改,包括 229 次插入100 次删除
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.c66440d7.css
  3. 1 0
      dist/static/css/chunk-03221830.e48265c1.css
  4. 0 0
      dist/static/css/chunk-0e37a996.18b5b57f.css
  5. 0 0
      dist/static/css/chunk-1ef0f7be.118dd9cc.css
  6. 1 1
      dist/static/css/chunk-288b1ca9.0903b3b1.css
  7. 0 0
      dist/static/css/chunk-29376f32.1875f58c.css
  8. 0 0
      dist/static/css/chunk-2c7b6d48.bb72f56c.css
  9. 0 1
      dist/static/css/chunk-45c832ba.66148cbf.css
  10. 0 0
      dist/static/css/chunk-488078a8.f265eaf3.css
  11. 0 0
      dist/static/css/chunk-5ca930b1.49b931aa.css
  12. 0 0
      dist/static/css/chunk-5e305839.468db65e.css
  13. 0 0
      dist/static/css/chunk-6189ac20.7ec12e45.css
  14. 0 0
      dist/static/css/chunk-71ec9914.87085111.css
  15. 0 1
      dist/static/css/chunk-a453817c.cbd1e596.css
  16. 1 0
      dist/static/css/chunk-b74fc93a.2adf0952.css
  17. 0 0
      dist/static/css/chunk-c7502088.6de1aa8d.css
  18. 0 0
      dist/static/js/app.8f9dde62.js
  19. 0 0
      dist/static/js/chunk-03221830.2900bf75.js
  20. 0 0
      dist/static/js/chunk-07594f33.d20cdb37.js
  21. 0 0
      dist/static/js/chunk-07594f33.d930efb4.js
  22. 0 0
      dist/static/js/chunk-08a5bd4e.d821d9a0.js
  23. 0 0
      dist/static/js/chunk-0e37a996.12e1a49a.js
  24. 0 0
      dist/static/js/chunk-126f9f72.e3e26b31.js
  25. 0 0
      dist/static/js/chunk-126f9f72.f5bda110.js
  26. 0 0
      dist/static/js/chunk-12a33f1e.8ab95a97.js
  27. 0 0
      dist/static/js/chunk-12a33f1e.f3ea0411.js
  28. 0 0
      dist/static/js/chunk-16ec54a1.0aefddaa.js
  29. 0 0
      dist/static/js/chunk-16ec54a1.4ec053e5.js
  30. 0 0
      dist/static/js/chunk-1ef0f7be.b256e3cf.js
  31. 0 0
      dist/static/js/chunk-246dd31b.ea3ed6d8.js
  32. 0 0
      dist/static/js/chunk-246dd31b.f39ecb14.js
  33. 0 0
      dist/static/js/chunk-257eca28.02a7b284.js
  34. 0 0
      dist/static/js/chunk-257eca28.a07e67bf.js
  35. 0 0
      dist/static/js/chunk-288b1ca9.a95370cf.js
  36. 0 0
      dist/static/js/chunk-2928a062.6031c189.js
  37. 0 0
      dist/static/js/chunk-2928a062.92426984.js
  38. 0 0
      dist/static/js/chunk-29376f32.8c1b4100.js
  39. 0 0
      dist/static/js/chunk-2a90eb6d.0796c6dd.js
  40. 0 0
      dist/static/js/chunk-2a90eb6d.4a261170.js
  41. 0 0
      dist/static/js/chunk-2c7b6d48.c4a65aba.js
  42. 0 0
      dist/static/js/chunk-2d0ac1af.42d41b6c.js
  43. 0 0
      dist/static/js/chunk-2d0b9f85.b6d5dfb0.js
  44. 0 0
      dist/static/js/chunk-2ddc0e3f.211382dc.js
  45. 0 0
      dist/static/js/chunk-2ddc0e3f.92411897.js
  46. 0 0
      dist/static/js/chunk-362f6420.52c4aacd.js
  47. 0 0
      dist/static/js/chunk-3d44bd43.72a020d2.js
  48. 0 0
      dist/static/js/chunk-3e99cc06.3453a8ea.js
  49. 0 0
      dist/static/js/chunk-3e99cc06.6a0b3348.js
  50. 0 0
      dist/static/js/chunk-42ab66a4.bbbf44d2.js
  51. 0 0
      dist/static/js/chunk-45c832ba.f69e03c9.js
  52. 0 0
      dist/static/js/chunk-4710b886.54e5741f.js
  53. 0 0
      dist/static/js/chunk-488078a8.b99efae6.js
  54. 0 0
      dist/static/js/chunk-495439dc.615fcda6.js
  55. 0 0
      dist/static/js/chunk-4d2bb3b0.2b6611fb.js
  56. 0 0
      dist/static/js/chunk-4dcddbd3.d9c26945.js
  57. 0 0
      dist/static/js/chunk-5ca930b1.929613f7.js
  58. 0 0
      dist/static/js/chunk-5db4513e.bb9ea791.js
  59. 0 0
      dist/static/js/chunk-5e1ddbca.3d73ad63.js
  60. 0 0
      dist/static/js/chunk-5e305839.c4b2fa50.js
  61. 0 0
      dist/static/js/chunk-5f5ffb00.4f432012.js
  62. 0 0
      dist/static/js/chunk-5f5ffb00.e4e4b663.js
  63. 0 0
      dist/static/js/chunk-6189ac20.aa13b36c.js
  64. 0 0
      dist/static/js/chunk-6a97b9c3.1e259b4a.js
  65. 0 0
      dist/static/js/chunk-71ec9914.d7db2107.js
  66. 0 0
      dist/static/js/chunk-739fed81.c2c36449.js
  67. 0 0
      dist/static/js/chunk-7b34927f.60a026ab.js
  68. 0 0
      dist/static/js/chunk-8eea3e92.475eeed2.js
  69. 0 0
      dist/static/js/chunk-9574c424.2ab34194.js
  70. 0 0
      dist/static/js/chunk-9574c424.323bf49d.js
  71. 0 0
      dist/static/js/chunk-9c496280.a56f07c1.js
  72. 0 0
      dist/static/js/chunk-a23e2ba4.3ebe8ddd.js
  73. 0 0
      dist/static/js/chunk-a23e2ba4.a4c50d1b.js
  74. 0 0
      dist/static/js/chunk-a453817c.ab6dcf22.js
  75. 0 0
      dist/static/js/chunk-a4e62e66.fc16b0fd.js
  76. 0 0
      dist/static/js/chunk-b74fc93a.f409887b.js
  77. 0 0
      dist/static/js/chunk-c2ac2236.282698db.js
  78. 0 0
      dist/static/js/chunk-c7502088.b4b9d42b.js
  79. 0 0
      dist/static/js/chunk-c7f5974e.c122c136.js
  80. 0 0
      dist/static/js/chunk-cc568e20.8b1ec88a.js
  81. 0 0
      dist/static/js/chunk-cc568e20.d538b3db.js
  82. 0 0
      dist/static/js/chunk-d393573c.f621b24f.js
  83. 0 0
      dist/static/js/chunk-d59046ce.75507a59.js
  84. 0 0
      dist/static/js/chunk-da63f3ae.964e7465.js
  85. 0 0
      dist/static/js/chunk-da63f3ae.98c38f41.js
  86. 0 0
      dist/static/js/chunk-e60d0406.03d1837f.js
  87. 0 0
      dist/static/js/chunk-eb65ded6.2b168562.js
  88. 0 0
      dist/static/js/chunk-fb41c584.940fb117.js
  89. 1 1
      src/App.vue
  90. 8 0
      src/utils/searchArray.js
  91. 1 1
      src/views/resetTeaming/components/resetPayList.vue
  92. 0 6
      src/views/resetTeaming/components/strudentPayInfo.vue
  93. 118 76
      src/views/resetTeaming/modals/subject-preview.vue
  94. 54 4
      src/views/studentManager/studentList.vue
  95. 1 0
      src/views/teamBuild/components/soundSetComponents/soundSetCore.vue
  96. 20 0
      src/views/teamBuild/components/teamBaseInfo.vue
  97. 2 1
      src/views/teamDetail/componentCourse/studentRollCall.vue
  98. 8 3
      src/views/teamDetail/teamCourseList.vue
  99. 2 2
      src/views/teamDetail/teamList.vue
  100. 11 3
      src/views/withdrawal-application/modals/visit.vue

文件差異過大導致無法顯示
+ 0 - 0
dist/index.html


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.c66440d7.css


+ 1 - 0
dist/static/css/chunk-03221830.e48265c1.css

@@ -0,0 +1 @@
+.visitBtnWrap[data-v-5287c0d8]{position:absolute;right:90px;top:82px;z-index:20}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-0e37a996.18b5b57f.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-1ef0f7be.118dd9cc.css


+ 1 - 1
dist/static/css/chunk-7b34927f.9c416a68.css → dist/static/css/chunk-288b1ca9.0903b3b1.css

@@ -1 +1 @@
-.process[data-v-f049a426]{padding:10px;max-height:600px;overflow-y:auto}.dialog-footer[data-v-7a44cd83]{margin-top:20px;display:block;text-align:right}.select[data-v-0f67c8c3]{font-size:14px}.btnList[data-v-0f67c8c3]{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-0f67c8c3]{margin-right:15px}
+.process[data-v-f049a426]{padding:10px;max-height:600px;overflow-y:auto}.dialog-footer[data-v-7a44cd83]{margin-top:20px;display:block;text-align:right}.select[data-v-3a2c8a7a]{font-size:14px}.btnList[data-v-3a2c8a7a]{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-3a2c8a7a]{margin-right:15px}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-29376f32.1875f58c.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-2c7b6d48.bb72f56c.css


+ 0 - 1
dist/static/css/chunk-45c832ba.66148cbf.css

@@ -1 +0,0 @@
-.visitBtnWrap[data-v-bba67e46]{position:absolute;right:90px;top:82px;z-index:20}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-488078a8.f265eaf3.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-5ca930b1.49b931aa.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-5e305839.468db65e.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-6189ac20.7ec12e45.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-71ec9914.87085111.css


+ 0 - 1
dist/static/css/chunk-a453817c.cbd1e596.css

@@ -1 +0,0 @@
-.newBand[data-v-6deab051]{display:inline-block;margin-right:10px}.right-code .title[data-v-6deab051]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-6deab051] .studentInfo .multiple.el-select{width:185px!important}

+ 1 - 0
dist/static/css/chunk-b74fc93a.2adf0952.css

@@ -0,0 +1 @@
+.newBand[data-v-1088ef88]{display:inline-block;margin-right:10px}.right-code .title[data-v-1088ef88]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-1088ef88] .studentInfo .multiple.el-select{width:185px!important}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-c7502088.6de1aa8d.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.8f9dde62.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-03221830.2900bf75.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-07594f33.d20cdb37.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-07594f33.d930efb4.js


+ 0 - 0
dist/static/js/chunk-08a5bd4e.429af77f.js → dist/static/js/chunk-08a5bd4e.d821d9a0.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-0e37a996.12e1a49a.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-126f9f72.e3e26b31.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-126f9f72.f5bda110.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-12a33f1e.8ab95a97.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-12a33f1e.f3ea0411.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-16ec54a1.0aefddaa.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-16ec54a1.4ec053e5.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-1ef0f7be.b256e3cf.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-246dd31b.ea3ed6d8.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-246dd31b.f39ecb14.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-257eca28.02a7b284.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-257eca28.a07e67bf.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-288b1ca9.a95370cf.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2928a062.6031c189.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2928a062.92426984.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-29376f32.8c1b4100.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2a90eb6d.0796c6dd.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2a90eb6d.4a261170.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2c7b6d48.c4a65aba.js


+ 0 - 0
dist/static/js/chunk-2d0ac1af.f1c5e64e.js → dist/static/js/chunk-2d0ac1af.42d41b6c.js


+ 0 - 0
dist/static/js/chunk-2d0b9f85.076c91dd.js → dist/static/js/chunk-2d0b9f85.b6d5dfb0.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2ddc0e3f.211382dc.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2ddc0e3f.92411897.js


+ 0 - 0
dist/static/js/chunk-362f6420.dabf939c.js → dist/static/js/chunk-362f6420.52c4aacd.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-3d44bd43.72a020d2.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-3e99cc06.3453a8ea.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-3e99cc06.6a0b3348.js


+ 0 - 0
dist/static/js/chunk-42ab66a4.c14ed378.js → dist/static/js/chunk-42ab66a4.bbbf44d2.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-45c832ba.f69e03c9.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-4710b886.54e5741f.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-488078a8.b99efae6.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-495439dc.615fcda6.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-4d2bb3b0.2b6611fb.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-4dcddbd3.d9c26945.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-5ca930b1.929613f7.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-5db4513e.bb9ea791.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-5e1ddbca.3d73ad63.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-5e305839.c4b2fa50.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-5f5ffb00.4f432012.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-5f5ffb00.e4e4b663.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-6189ac20.aa13b36c.js


+ 0 - 0
dist/static/js/chunk-6a97b9c3.a4ebac12.js → dist/static/js/chunk-6a97b9c3.1e259b4a.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-71ec9914.d7db2107.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-739fed81.c2c36449.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-7b34927f.60a026ab.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-8eea3e92.475eeed2.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-9574c424.2ab34194.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-9574c424.323bf49d.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-9c496280.a56f07c1.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-a23e2ba4.3ebe8ddd.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-a23e2ba4.a4c50d1b.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-a453817c.ab6dcf22.js


+ 0 - 0
dist/static/js/chunk-a4e62e66.3fff8c70.js → dist/static/js/chunk-a4e62e66.fc16b0fd.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-b74fc93a.f409887b.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-c2ac2236.282698db.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-c7502088.b4b9d42b.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-c7f5974e.c122c136.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-cc568e20.8b1ec88a.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-cc568e20.d538b3db.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-d393573c.f621b24f.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-d59046ce.75507a59.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-da63f3ae.964e7465.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-da63f3ae.98c38f41.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-e60d0406.03d1837f.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-eb65ded6.2b168562.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-fb41c584.940fb117.js


+ 1 - 1
src/App.vue

@@ -67,7 +67,7 @@ body {
 <style lang="scss">
 $--color-primary: teal;
 .el-table {
-  width: 99.9% !important;
+  width: 99% !important;
   border-left: 1px solid #EBEEF5;
   border-right: 1px solid #EBEEF5;
 }

+ 8 - 0
src/utils/searchArray.js

@@ -162,6 +162,14 @@ export const visitChiose = [
   { value: '常规回访', label: '常规回访', children: [{ value: '课后及作业回访', label: '课后及作业回访' }, { value: '练习及乐团表现', label: '练习及乐团表现' }] },
   { value: '其它', label: '其它', children: [{ value: '其它', label: '其它' }] }
 ]
+export const visitChiose1 = [
+  { value: '课程推荐', label: '课程推荐', children: [{ value: '新课推荐', label: '新课推荐' }, { value: '续费提醒', label: '续费提醒' }] },
+  { value: '常规回访', label: '常规回访', children: [{ value: '课后及作业回访', label: '课后及作业回访' }, { value: '练习及乐团表现', label: '练习及乐团表现' },{
+    label:'考勤申诉',
+    value:'考勤申诉'
+   }] },
+  { value: '其它', label: '其它', children: [{ value: '其它', label: '其它' }] }
+]
 
 // 交易状态
 export const paymentChannelStatus = [

+ 1 - 1
src/views/resetTeaming/components/resetPayList.vue

@@ -347,7 +347,7 @@
              title="续费二维码"
              :codeUrl="codeUrl" />
 
-    <el-dialog title="选择预览声部"
+    <el-dialog title="报名声部预览"
                :visible.sync="dialogSubjectVisible"
                width="400px">
       <el-tabs v-model="activeName" type="card">

+ 0 - 6
src/views/resetTeaming/components/strudentPayInfo.vue

@@ -610,12 +610,6 @@ export default {
           path: "/business/resetTeaming",
           query: { ...this.$route.query },
         });
-      } else if(query.type == 'look') {
-        this.$store.dispatch("delVisitedViews", this.$route);
-        this.$router.push({
-          path: "/business/teamLookBase",
-          query: { ...this.$route.query },
-        });
       }
       if(query.type == "look"){
          this.$store.dispatch("delVisitedViews", this.$route);

+ 118 - 76
src/views/resetTeaming/modals/subject-preview.vue

@@ -2,41 +2,42 @@
     <div style="background: #F3F4F8;">
         <div class="noticeInfo">
 			<h2>缴费说明</h2>
-			1、为确保声部平衡,请家长确认 注册声部为孩子的最终录取声部。<br />
-			2、为保障每个声部人数达标,我们都进行了超员20%的录取,系统将按照提交注册的先后顺序安排名额。超员后 有可能出现无法注册的情况,请您理解。如果其他声部仍有名额,我们将优先调配您的孩子;
+            1、您注册时所选择的乐团声部,即为乐团录取最终确认的声部,请您务必仔细填写;<br />
+			2、为避免因部分已注册家长放弃名额导致乐团声部失衡,系统设定各声部限额放大20%比例开放注册,系统自动按照完全完成注册的先后顺序确认录取名单,因此,超员后有可能出现无法注册的情况,请您理解。如果其他声部仍有名额,在您孩子的身体条件适合该乐器的前提下,我们将优先予以调配。
 		</div>
 
 		<div class="section">
-			<h2 class="title">乐团辅训系统</h2>
-            <p style="font-size: 14px; padding: 2px 0; color: #a1a1a1" v-if="serviceValidDate">服务有效期:{{ serviceValidDate }}</p>
-			<el-row class="title-row">
-				<el-col :span="12">服务项目</el-col>
-				<el-col :span="5" :offset="1" style="text-align: right;">原价</el-col>
-				<el-col :span="5" :offset="1" style="text-align: right;">现价</el-col>
-			</el-row>
+			<h2 class="title">{{ courseViewType == 1 ? '服务' : '乐团课程' }}</h2>
+            <p style="font-size: 14px; padding: 2px 0; color: #f85043" v-if="serviceValidDate && courseViewType == 1">服务有效期:{{ serviceValidDate }}</p>
 			<!-- 所有不可选的课程合集 -->
-			<template v-if="courseShowStatus">
+			<template v-if="courseShowStatus && courseViewType == 1">
 				<el-row class="option-row"  v-for="(item, index) in courseShowInfo" :class="[!item.isStudentOptional ? 'disabled' : '']" :key="index" @click.native="onCourseChange(item)">
-					<el-col :span="12">
+					<el-col :span="16">
 						<i class="check_default" :class="[item.isStatus ? 'check_active' : '']"></i>
 						<span style="display: flex; align-items: center;">
 							<template v-if="item.courseType == 'PROJECT'">{{ chargeTypeName }} </template><template v-else>{{ item.courseType | coursesType }}</template>
 						</span>
 						<el-icon v-if="item.courseType == 'PROJECT'" class="el-icon-question" @click.native="onQuestions" />
 					</el-col>
-					<el-col :span="6">
-						<del style="color: #AAA; font-size: 12px;">¥{{ item.courseOriginalPrice | moneyFormat }}</del>
-					</el-col>
-					<el-col :span="6">
+					<!-- <el-col :span="6"> -->
+						<!-- <del style="color: #AAA; font-size: 12px;">¥{{ item.courseOriginalPrice | moneyFormat }}</del> -->
+					<!-- </el-col> -->
+					<el-col :span="8">
 						<span style="color: #1A1A1A">¥{{ item.courseCurrentPrice | moneyFormat }}</span>
 					</el-col>
 				</el-row>
 			</template>
+
+            <el-row class="title-row" v-if="courseViewType == 0">
+				<el-col :span="12">课程类型</el-col>
+				<el-col :span="5" :offset="1" style="text-align: right;">原价</el-col>
+				<el-col :span="6" style="text-align: right;">现价</el-col>
+			</el-row>
 			<!-- 可选课程信息集合 -->
 			<template v-for="(item, index) in courseInfo">
-				<el-row class="option-row" :class="[!item.isStudentOptional ? 'disabled' : '']" :key="index" @click.native="onCourseChange(item)" v-if="item.isStudentOptional">
+				<el-row class="option-row" :key="index" @click.native="onCourseChange(item)" v-if="courseViewType == 0">
 					<el-col :span="12">
-						<i class="check_default" :class="[item.isStatus ? 'check_active' : '']"></i><template v-if="item.courseType == 'PROJECT'">{{ item.name }}</template><template v-else>{{ item.courseType | coursesType }}</template>
+						<i class="check_default" :class="[item.isStatus ? 'check_active' : '', !item.isStudentOptional ? 'disabled' : '']"></i><template v-if="item.courseType == 'PROJECT'">{{ item.name }}</template><template v-else>{{ item.courseType | coursesType }}</template>
 					</el-col>
 					<el-col :span="6">
 						<del style="color: #AAA; font-size: 12px;">¥{{ item.courseOriginalPrice | moneyFormat }}</del>
@@ -47,17 +48,6 @@
 				</el-row>
 			</template>
 
-			<el-row class="option-row lines">
-				<el-col :span="12" class="fontBold">
-					仅需支付
-				</el-col>
-				<el-col :span="6">
-					<del style="color: #f85043; font-size: 12px;">¥{{ orderInfo.musicMarketClassFee | moneyFormat }}</del>
-				</el-col>
-				<el-col :span="6">
-					<span class="fontBold" style="color: #f85043;">¥{{ orderInfo.musicClassFee | moneyFormat }}</span>
-				</el-col>
-			</el-row>
 		</div>
 
 		<div class="section" v-if="instrumentResult.length > 0">
@@ -100,7 +90,7 @@
 				</el-row>
 			</div>
 
-			<el-row class="option-row lines">
+			<!-- <el-row class="option-row lines">
 				<el-col :span="12" class="fontBold">
 					仅需支付
 				</el-col>
@@ -110,7 +100,7 @@
 				<el-col :span="6">
 					<span class="fontBold" style="color: #f85043;">¥{{ orderInfo.goodsPrice | moneyFormat }}</span>
 				</el-col>
-			</el-row>
+			</el-row> -->
 		</div>
 
 		<div class="section" v-if="accessOries.length > 0" key="accessOries">
@@ -121,20 +111,27 @@
 				<el-col :span="5" :offset="1" style="text-align: right;">现价</el-col>
 			</el-row>
 
-			<el-row class="option-row" v-for="(instr, index) in accessOries" :key="index" @click.native="onAuxiliarie(instr)">
-				<el-col :span="12">
-					<i class="check_default" :class="[ instr.checked ? 'check_active' : '' ]"></i>{{ instr.name }}
-				</el-col>
-				<el-col :span="6">
-					<del style="color: #AAA; font-size: 12px;">¥{{ instr.goodsList[0] ? instr.goodsList[0].marketPrice : 0 | moneyFormat }}</del>
-				</el-col>
-				<el-col :span="6">
-					<span style="color: #1A1A1A" v-if="instr.price == 0">免费</span>
-					<span style="color: #1A1A1A" v-else>¥{{ instr.price | moneyFormat }}</span>
-				</el-col>
-			</el-row>
+			<div v-for="(instr, index) in accessOries" :key="index">
+                <el-row class="option-row" @click.native="onAuxiliarie(instr)">
+                    <el-col :span="12">
+                        <i class="check_default" :class="[ instr.checked ? 'check_active' : '' ]"></i>{{ instr.name }}
+                    </el-col>
+                    <el-col :span="6">
+                        <del style="color: #AAA; font-size: 12px;">¥{{ instr.goodsList[0] ? instr.goodsList[0].marketPrice : 0 | moneyFormat }}</del>
+                    </el-col>
+                    <el-col :span="6">
+                        <span style="color: #1A1A1A" v-if="instr.price == 0">免费</span>
+                        <span style="color: #1A1A1A" v-else>¥{{ instr.price | moneyFormat }}</span>
+                    </el-col>
+                </el-row>
+                <el-row style="padding-left: 24px;" v-if="instr.childGoodsList">
+					<el-col>
+						<span v-for="(child, index) in instr.childGoodsList" :key="child.id" style="font-size: 12px; color: #aaaaaa;">{{ child.name }} {{instr.childGoodsList.length - 1 == index ? '' : ','}}</span>
+					</el-col>
+				</el-row>
+            </div>
 
-			<el-row class="option-row lines">
+			<!-- <el-row class="option-row lines">
 				<el-col :span="12" class="fontBold">
 					仅需支付
 				</el-col>
@@ -144,7 +141,7 @@
 				<el-col :span="6">
 					<span class="fontBold" style="color: #f85043;">¥{{ orderInfo.accessPrice | moneyFormat }}</span>
 				</el-col>
-			</el-row>
+			</el-row> -->
 		</div>
 
 		<!-- 原价现价 -->
@@ -231,6 +228,7 @@ export default {
             courseShowStatus: false,
             chargeTypeList: [],
             chargeTypeName: null,
+            courseViewType: 0, // 收费模式,0 课程显示,1 AMR系统
         };
     },
     mounted() {
@@ -255,6 +253,7 @@ export default {
                 let result = res
                 if (result.code == 200) {
                     let tempResult = result.data
+                    this.courseViewType = tempResult.musicGroup.courseViewType || 0
                     this.paymentPattern = 2
                     if(tempResult.musicGroupPaymentCalender) {
                         this.paymentPattern = tempResult.musicGroupPaymentCalender.paymentPattern
@@ -267,17 +266,17 @@ export default {
                             courseCurrentPrice: 0,
                             courseOriginalPrice: 0,
                             courseType: null,
-                            name: '乐团辅训系统'
+                            name: '器乐练习系统'
                         }
                         tempInfo.forEach(info => {
                             if(!info.isStudentOptional) {
                                 this.courseShowStatus = true
                                 tempCourse = {
                                     courseCurrentPrice: (info.courseCurrentPrice + tempCourse.courseCurrentPrice),
-                                    courseOriginalPrice: 9800,
+                                    courseOriginalPrice: (info.courseCurrentPrice + tempCourse.courseCurrentPrice),
                                     courseType: 'PROJECT',
                                     isStatus: true,
-                                    name: '乐团辅训系统'
+                                    name: '器乐练习系统'
                                 }
                             }
                         })
@@ -295,7 +294,11 @@ export default {
                         }]
                     }
                     this.courseInfo.forEach(item => {
-                        item.isStatus = true
+                        if(item.isStudentOptional) {
+                            item.isStatus = false
+                        } else {
+                            item.isStatus = true
+                        }
                     })
 
                     this.musicGroupSubject = tempResult.musicGroupSubjectPlan
@@ -414,7 +417,7 @@ export default {
             });
         },
         onQuestions() {
-            this.$alert(`<b>革命性的“AMR器乐练习系统 ”</b><br />世界上有没有一种能够轻松掌握器乐演奏技能的方法?答案就是“AMR器乐练习系统”,它的诞生是基于世界上最优秀的华人管乐指导专家-唐嘉宏先生的教育理念,创新开发的一种新型“音乐感官植入程序”,这个程序抛弃了传统的“数线式识谱、机械式节奏、死记式乐理”,它营造出沉浸式可变速演奏过程,采用画面与音乐刺激序列组合而成的特定场景,在趣味性挑战的反复刺激中逐步促进器乐演奏的三核心:“音质→音准→音型”,从而达成演奏各环节水准的均匀提高,产生永久性条件反射式大脑记忆,将多板块知识融会贯通,让抽象的音乐知识刻入脑海里!<br /><b>本练习系统的特点:</b><br /> 1.轻松快速掌握要点,让练习者沉浸其中,远离枯燥!<br /> 2.不假思索就能瞬间唤起反射式记忆,演奏识谱不再慢吞吞!<br /> 3.真正的实践记忆,摆脱纸上谈兵,与实际演奏紧密结合!<br />4.思维+肌肉的双重强化!无缝整合复习系统!<br /> 5.每条练习都经过严谨的编曲,你以为你只是在练习旋律线?其实是整个乐团在为你伴奏!`, 'AMR器乐练习系统', {
+            this.$alert(`<b>革命性的“AMR器乐练习系统”</b><br />它的诞生是基于世界上最优秀的华人管乐指导专家唐嘉宏先生的教育理念,创新开发的一种新型“音乐感官植入程序”,这个程序抛弃了传统的“数线式识谱、机械式节奏、死记式乐理”,它营造出沉浸式可变速演奏过程,采用画面与音乐刺激序列组合而成的特定场景,在趣味性挑战的反复刺激中逐步促进器乐演奏的三核心:“音质→音准→音型”,从而达成演奏各环节水准的均匀提高,产生永久性条件反射式大脑记忆,将多板块知识融会贯通,让抽象的音乐知识刻入脑海里!<br /><br /><b>本练习系统的特点:</b><br /> 1.轻松快速掌握要点,让练习者沉浸其中,远离枯燥!<br /> 2.不假思索就能瞬间唤起反射式记忆,演奏识谱不再慢吞吞!<br /> 3.真正的实践记忆,摆脱纸上谈兵,与实际演奏紧密结合!<br />4.思维+肌肉的双重强化!无缝整合复习系统!<br /> 5.每条练习都经过严谨的编曲,你以为你只是在练习旋律线?其实是整个乐团在为你伴奏!`, 'AMR器乐练习系统', {
                 confirmButtonText: '确定',
                 dangerouslyUseHTMLString: true,
                 callback: action => {
@@ -478,32 +481,65 @@ export default {
             let csi = this.courseInfo
             // 加上判断是否有课程信息
             if (mgs) {
+                // let tempCourse = this.courseShowInfo
+                // if(tempCourse.length > 0) {
+                //     let tempPrice = 0
+                //     tempCourse.forEach(item => {
+                //         // tempPrice += parseFloat(item.courseCurrentPrice)
+                //         marketPrice += parseFloat(item.courseOriginalPrice)
+                //         musicMarketClassFee += parseFloat(item.courseOriginalPrice)
+                //     });
+                // }
+                // csi.forEach(item => {
+                //     if (item.isStatus) {
+                //         musicClassFee += parseFloat(item.courseCurrentPrice)
+                //         // musicMarketClassFee += parseFloat(item.courseOriginalPrice)
+                //         // marketPrice += parseFloat(item.courseOriginalPrice)
+                //         if (item.id > 0) {
+                //             courseKeys.push(item.id)
+                //         }
+                //         // 不可选的课程才会减免课程费用
+                //         if(!item.isStudentOptional) {
+                //             tempGroupRemissionCourseFee += parseFloat(item.courseCurrentPrice)
+                //         } else {
+                //             marketPrice += parseFloat(item.courseOriginalPrice)
+                //             musicMarketClassFee += parseFloat(item.courseOriginalPrice)
+                //         }
+                //     }
+                // })
                 let tempCourse = this.courseShowInfo
-                if(tempCourse.length > 0) {
-                    let tempPrice = 0
+                if (tempCourse.length > 0 && this.courseViewType == 1) {
                     tempCourse.forEach(item => {
-                        // tempPrice += parseFloat(item.courseCurrentPrice)
-                        marketPrice += parseFloat(item.courseOriginalPrice)
-                        musicMarketClassFee += parseFloat(item.courseOriginalPrice)
-                    });
-                }
-                csi.forEach(item => {
-                    if (item.isStatus) {
-                        musicClassFee += parseFloat(item.courseCurrentPrice)
-                        // musicMarketClassFee += parseFloat(item.courseOriginalPrice)
-                        // marketPrice += parseFloat(item.courseOriginalPrice)
                         if (item.id > 0) {
                             courseKeys.push(item.id)
                         }
+                        musicClassFee += parseFloat(item.courseCurrentPrice)
+                        marketPrice += parseFloat(item.courseOriginalPrice)
                         // 不可选的课程才会减免课程费用
-                        if(!item.isStudentOptional) {
+                        if (!item.isStudentOptional) {
                             tempGroupRemissionCourseFee += parseFloat(item.courseCurrentPrice)
-                        } else {
+                        }
+                    });
+                    buyList.unshift({
+                        name: this.chargeTypeName,
+                        type: paymentPatternType[this.paymentPattern],
+                        price: Number((musicClassFee).toFixed(2))
+                    })
+                } else {
+                    csi.forEach(item => {
+                        if (item.isStatus) {
+                            musicClassFee += parseFloat(item.courseCurrentPrice)
                             marketPrice += parseFloat(item.courseOriginalPrice)
-                            musicMarketClassFee += parseFloat(item.courseOriginalPrice)
+                            if (item.id > 0) {
+                                courseKeys.push(item.id)
+                            }
+                            // 不可选的课程才会减免课程费用
+                            if (!item.isStudentOptional) {
+                                tempGroupRemissionCourseFee += parseFloat(item.courseCurrentPrice)
+                            }
                         }
-                    }
-                })
+                    })
+                }
             }
 
             // 乐器
@@ -532,7 +568,7 @@ export default {
                         }
                         if (item.kitType == 'LEASE') {
                             if (item.name != '自备') {
-                                marketPrice += item.depositFee
+                                marketPrice += parseFloat(item.marketPrice)
                                 goodsMarketPrice += item.depositFee
                             }
                         } else {
@@ -572,13 +608,13 @@ export default {
                 })
             }
             amount += parseFloat(tempCourseFee + musicClassFee)
-            // if (parseFloat(tempCourseFee + musicClassFee) > 0) {
+            if (parseFloat(tempCourseFee + musicClassFee) > 0 && this.courseViewType == 0) {
                 buyList.unshift({
                     name: '乐团课',
                     type: paymentPatternType[this.paymentPattern],
                     price: Number((tempCourseFee + musicClassFee).toFixed(2))
                 })
-            // }
+            }
             // 辅件
             if (this.accessOries.length > 0) {
                 this.accessOries.forEach(item => {
@@ -592,14 +628,20 @@ export default {
                             })
                         }
                         goodsGroupIds[item.id] = 'ACCESSORIES'
+
+                        buyList.push({
+                            name: item.name,
+                            type: '团购',
+                            price: item.price
+                        })
                     }
                 })
                 // if (tempAccessPrice > 0) {
-                    buyList.push({
-                        name: '辅件',
-                        type: '团购',
-                        price: tempAccessPrice
-                    })
+                    // buyList.push({
+                    //     name: '辅件',
+                    //     type: '团购',
+                    //     price: tempAccessPrice
+                    // })
                 // }
             }
             let tempGroupPurchasePrice = amount
@@ -710,7 +752,7 @@ export default {
 }
 
 .disabled {
-    opacity: 0.7;
+    opacity: 0.5;
     .check_active {
         opacity: .5;
     }
@@ -928,7 +970,7 @@ export default {
         display: flex;
         // align-items: center;
     }
-    .el-col-6 {
+    .el-col-6, .el-col-8 {
         display: flex;
         justify-content: flex-end;
     }

+ 54 - 4
src/views/studentManager/studentList.vue

@@ -597,6 +597,49 @@
         <el-button type="primary" @click="submitResetPassWord">确 定</el-button>
       </span>
     </el-dialog>
+
+    <el-dialog
+      title="协议下载"
+      :visible.sync="protocolVisible"
+      width="600px"
+    >
+      <div v-if="protocolVisible">
+        <!-- <el-alert
+          title="点击下载"
+          :closable="false"
+          type="info">
+        </el-alert>
+        <p style="font-size: 14px; color: #14928A; line-height: 1.5; padding: 8px 16px; cursor: pointer;" v-for="item in protocolVersions" :key="item.id" @click="onDownloadProtocol(item)">
+          产品与服务协议{{ item.version == 2 ? "(含课程)" : "(含系统)" }}
+        </p> -->
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="protocolVersions"
+        >
+          <el-table-column align="center" prop="studentId" label="协议名称">
+            <template slot-scope="scope">
+              产品与服务协议{{ scope.row.version == 2 ? "(含课程)" : "(含系统)" }}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="签署时间" prop="createTime">
+          </el-table-column>
+          <el-table-column align="center"
+                           width="150px"
+                           label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text"
+                           @click="onDownloadProtocol(scope.row)">下载</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="protocolVisible = false">取 消</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -696,6 +739,8 @@ export default {
         password2: "",
       },
       activatedRow: null,
+      protocolVisible: false,
+      protocolVersions: []
     };
   },
   mounted() {
@@ -1005,14 +1050,19 @@ export default {
         }
       });
     },
-    lookContracts(row) {
-      getLatest({ userId: row.userId }).then((res) => {
+    async lookContracts(row) {
+      await getLatest({ userId: row.userId }).then((res) => {
         if (res.code == 200) {
-          window.location.href = res.data.url
-          // window.open(res.data.url);
+          if(res.data) {
+            this.protocolVersions = res.data
+            this.protocolVisible = true
+          }
         }
       });
     },
+    onDownloadProtocol(item) {
+      window.location.href = item.url
+    }
   },
 };
 </script>

+ 1 - 0
src/views/teamBuild/components/soundSetComponents/soundSetCore.vue

@@ -534,6 +534,7 @@ export default {
         applyExpireDate: dayjs(this.topfor.time).format("YYYY-MM-DD HH:mm:ss"),
         chargeTypeId: this.topfor.type,
         cooperationOrganId: this.topfor.school,
+        courseViewType: this.topfor.courseViewType,
         teamTeacherId: this.topfor.boss,
         educationalTeacherId: this.topfor.teacher,
         enrollClasses,

+ 20 - 0
src/views/teamBuild/components/teamBaseInfo.vue

@@ -51,6 +51,22 @@
         </el-form-item>
 
         <el-form-item
+          label="收费模式"
+          prop="courseViewType"
+          :rules="[{ required: true, message: '收费模式不能为空' }]"
+        >
+          <el-select
+            v-model.trim="topFrom.courseViewType"
+            filterable
+            :disabled="basdisabled"
+            clearable
+          >
+            <el-option label="课程收费" :value="0"></el-option>
+            <el-option label="系统收费" :value="1"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item
           label="合作单位"
           prop="school"
           :rules="[{ required: true, message: '合作单位不能为空' }]"
@@ -349,6 +365,7 @@ export default {
       topFrom: {
         type: "", // 收费类型
         section: "", //所属分部
+        courseViewType: "", // 收费模式
         school: "", // 合作单位
         teacher: "", // 乐团主管
         name: "", //乐团名称
@@ -551,6 +568,7 @@ export default {
             this.topFrom.paymentValidEndDate =
               res.data.musicGroup.paymentValidEndDate;
             this.topFrom.section = res.data.musicGroup.organId;
+            this.topFrom.courseViewType = res.data.musicGroup.courseViewType;
             this.topFrom.school = res.data.musicGroup.cooperationOrganId;
             this.topFrom.teacher = res.data.musicGroup.educationalTeacherId;
             this.topFrom.boss = res.data.musicGroup.teamTeacherId;
@@ -613,6 +631,7 @@ export default {
           type: "", // 收费类型
           section: "", //所属分部
           school: "", // 合作单位
+          courseViewType: "",
           teacher: "", // 乐团主管
           name: "", //乐团名称
           boss: "", // 运营主管
@@ -741,6 +760,7 @@ export default {
             ),
             chargeTypeId: this.topFrom.type,
             cooperationOrganId: this.topFrom.school,
+            courseViewType: this.topFrom.courseViewType,
             teamTeacherId: this.topFrom.boss,
             educationalTeacherId: this.topFrom.teacher,
             enrollClasses: this.topFrom.startClass.join(","),

+ 2 - 1
src/views/teamDetail/componentCourse/studentRollCall.vue

@@ -96,6 +96,7 @@
         :username="detail.username"
         @close="visitVisible = false"
         @submited="getList"
+        :isMainGo="isMainGo"
       />
     </el-dialog>
   </div>
@@ -106,7 +107,7 @@ import pagination from '@/components/Pagination/index'
 import { permission } from '@/utils/directivePage'
 import visit from '@/views/withdrawal-application/modals/visit'
 export default {
-  props: ['courseScheduleId'],
+  props: ['courseScheduleId','isMainGo'],
   components: { pagination, visit },
   data () {
     return {

+ 8 - 3
src/views/teamDetail/teamCourseList.vue

@@ -2,7 +2,7 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      课表列表 <filter-search @reload="reloadSearch" :keys="['searchType']" :moreKeys="['start', 'end', 'organId']"/>
+      课表列表 <filter-search ref='filterSearch' @reload="reloadSearch" :keys="['searchType']" :moreKeys="['start', 'end', 'organId']"/>
     </h2>
     <div class="m-core">
       <!-- 搜索类型 -->
@@ -525,7 +525,7 @@
         <el-tab-pane label="学员列表" name="first">
           <div v-if="activeName == 'first'">
             <!-- studentRollCall  -->
-            <studentRollCall :courseScheduleId="maskForm.id"></studentRollCall>
+            <studentRollCall :courseScheduleId="maskForm.id" :isMainGo='isMainGo'></studentRollCall>
           </div>
         </el-tab-pane>
         <!-- <el-tab-pane label="GPS定位"
@@ -672,7 +672,8 @@ export default {
       id: null,
       show: false,
       compoundList: [],
-      deleteList:[]
+      deleteList:[],
+      isMainGo:false
     };
   },
   components: {
@@ -689,6 +690,7 @@ export default {
   },
   created(){
       this.searchForm.timer = [nowTime, nowTime]
+
   },
   computed: {
     workTypeOptions() {
@@ -697,6 +699,7 @@ export default {
     mergeCourseTypeOptions() {
       return objectToOptions(mergeCourseType);
     },
+
   },
   mounted() {
     const { query } = this.$route
@@ -897,6 +900,8 @@ export default {
             this.maskForm.id = row.id;
             this.activeName = "first";
             this.classVisible = true;
+            this.isMainGo = this.$refs.filterSearch?.show
+            console.log(this.isMainGo)
           }
         }
       );

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

@@ -340,10 +340,10 @@
                 <el-button
                   type="text"
                   v-if="
-                    scope.row.status == 'DRAFT' ||
+                    ((scope.row.status == 'DRAFT' ||
                     scope.row.status == 'AUDIT' ||
                     scope.row.status == 'FEE_AUDIT' ||
-                    ((scope.row.status == 'APPLY' ||
+                    scope.row.status == 'APPLY' ||
                       scope.row.status == 'PAY') &&
                       permission('musicGroup/cancelMusicGroup'))
                   "

+ 11 - 3
src/views/withdrawal-application/modals/visit.vue

@@ -16,6 +16,7 @@
       </el-form-item>
       <el-form-item label="回访类型" prop="visitType">
         <el-cascader
+        :disabled='isMainGo'
           expand-trigger="hover"
           clearable
           style="width: 80% !important"
@@ -87,12 +88,12 @@
 </template>
 <script>
 import cleanDeep from "clean-deep";
-import { visitChiose } from "@/utils/searchArray";
+import { visitChiose,visitChiose1 } from "@/utils/searchArray";
 import { addVisit } from "@/views/returnVisitManager/api";
 import record from './record'
 import studentWork from './studentWork'
 export default {
-  props: ["detail", "username"],
+  props: ["detail", "username",'isMainGo'],
   components:{record,studentWork},
   data() {
     return {
@@ -118,6 +119,14 @@ export default {
       workVisible:false
     };
   },
+  mounted(){
+    if(this.isMainGo){
+     this.visitChiose = visitChiose1
+    this.$set(this.visitForm,'visitType',['常规回访','考勤申诉'])
+    }else{
+      this.visitChiose = visitChiose
+    }
+  },
   computed: {
     userName() {
       return this.username || this.detail.user?.username || this.detail.realName || this.detail.userName || this.detail.studentName
@@ -128,7 +137,6 @@ export default {
   },
   methods: {
     submitAddVisit() {
-
       this.$refs.visitForm.validate((res) => {
         if (res) {
           const { visitType, ...rest } = this.visitForm;

部分文件因文件數量過多而無法顯示