소스 검색

Merge branch '11/24SAAS' into ol_12_30

mo 3 년 전
부모
커밋
9744bb9a11
100개의 변경된 파일857개의 추가작업 그리고 439개의 파일을 삭제
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.6bb7ca86.css
  3. 1 0
      dist/static/css/chunk-098a5d9b.17674e23.css
  4. 0 0
      dist/static/css/chunk-0a363ac4.9a368e88.css
  5. 0 0
      dist/static/css/chunk-0cd7dfe2.16a40304.css
  6. 0 0
      dist/static/css/chunk-0dcc6e4f.0d1a6a65.css
  7. 0 0
      dist/static/css/chunk-13f8dba9.0ca6bba6.css
  8. 1 1
      dist/static/css/chunk-1a648666.ec851965.css
  9. 0 0
      dist/static/css/chunk-1c14e006.59598cb7.css
  10. 0 0
      dist/static/css/chunk-1c84ebc3.ae0ef9be.css
  11. 1 0
      dist/static/css/chunk-21fe3065.5f647cc4.css
  12. 1 0
      dist/static/css/chunk-23675f46.c5e65224.css
  13. 0 0
      dist/static/css/chunk-2c6bfe34.a3249b12.css
  14. 1 1
      dist/static/css/chunk-3861b956.ea601651.css
  15. 0 0
      dist/static/css/chunk-49981d12.c0dae328.css
  16. 0 0
      dist/static/css/chunk-502b3dde.5f3b4c46.css
  17. 1 0
      dist/static/css/chunk-538948e6.2a768dc6.css
  18. 0 0
      dist/static/css/chunk-6bb6691a.2849fa76.css
  19. 0 1
      dist/static/css/chunk-747579ba.3f4f4c5a.css
  20. 0 0
      dist/static/css/chunk-75ade3d5.24f39731.css
  21. 0 1
      dist/static/css/chunk-8651b216.fe7f1abc.css
  22. 0 0
      dist/static/css/chunk-b8f1d286.89a40de8.css
  23. 0 1
      dist/static/css/chunk-c5b00306.4567bcef.css
  24. 0 1
      dist/static/css/chunk-d4c82cd2.554f3b49.css
  25. 0 0
      dist/static/css/chunk-d4d3c7a0.1c297359.css
  26. 0 0
      dist/static/css/chunk-e750c2a6.269277e1.css
  27. 1 1
      dist/static/css/chunk-f248f12e.0b70021f.css
  28. 0 0
      dist/static/css/chunk-f38158aa.b9ccbb71.css
  29. BIN
      dist/static/fonts/iconfont.3bbc3d83.ttf
  30. BIN
      dist/static/img/banner1.af63c2a4.png
  31. BIN
      dist/static/img/banner2.24e60858.png
  32. BIN
      dist/static/img/banner3.424fd3dd.png
  33. BIN
      dist/static/img/banner4.87b7b090.png
  34. BIN
      dist/static/img/icon_success1.9cd421ec.png
  35. BIN
      dist/static/img/icon_success2.15d10a60.png
  36. BIN
      dist/static/img/icon_success3.6786f083.png
  37. BIN
      dist/static/img/icon_success4.9bb5480b.png
  38. BIN
      dist/static/img/imageIcon.0df9fb39.png
  39. BIN
      dist/static/img/img1.7f41e9f8.png
  40. BIN
      dist/static/img/img2.44529e2b.png
  41. BIN
      dist/static/img/img3.5a798adf.png
  42. BIN
      dist/static/img/img4.714f3773.png
  43. 0 0
      dist/static/js/app.744f749a.js
  44. 0 0
      dist/static/js/app.a1581f68.js
  45. 0 0
      dist/static/js/chunk-098a5d9b.10947d4a.js
  46. 0 0
      dist/static/js/chunk-0a363ac4.3a39e1d6.js
  47. 0 0
      dist/static/js/chunk-0cd7dfe2.87784f0e.js
  48. 0 0
      dist/static/js/chunk-0dcc6e4f.0caaff3c.js
  49. 0 0
      dist/static/js/chunk-13f8dba9.b75efe12.js
  50. 1 1
      dist/static/js/chunk-185a3684.60363699.js
  51. 0 0
      dist/static/js/chunk-1a648666.ec552ffb.js
  52. 1 1
      dist/static/js/chunk-1c14e006.8376b608.js
  53. 0 0
      dist/static/js/chunk-1c84ebc3.6aa5f8b4.js
  54. 0 0
      dist/static/js/chunk-21fe3065.e3bf6893.js
  55. 0 0
      dist/static/js/chunk-23675f46.da5f10a8.js
  56. 0 0
      dist/static/js/chunk-2c6bfe34.82d7b842.js
  57. 0 0
      dist/static/js/chunk-2d0b287c.df8cd534.js
  58. 0 0
      dist/static/js/chunk-3838a7f1.3e7bb4d2.js
  59. 0 0
      dist/static/js/chunk-3861b956.a376494c.js
  60. 0 0
      dist/static/js/chunk-39cead56.a3b9cc50.js
  61. 0 0
      dist/static/js/chunk-3aedde54.4f9d58c0.js
  62. 0 0
      dist/static/js/chunk-3efd6b76.3ebf2a63.js
  63. 0 0
      dist/static/js/chunk-42befee6.54958fc4.js
  64. 1 1
      dist/static/js/chunk-49981d12.9773289b.js
  65. 0 0
      dist/static/js/chunk-4cabdabe.f1ff0186.js
  66. 0 0
      dist/static/js/chunk-4e081942.65e7c277.js
  67. 0 0
      dist/static/js/chunk-4e081942.b404b426.js
  68. 0 0
      dist/static/js/chunk-4eca89e4.42abc8bf.js
  69. 0 0
      dist/static/js/chunk-502b3dde.35039bcf.js
  70. 0 0
      dist/static/js/chunk-5335553a.a81f66a2.js
  71. 0 0
      dist/static/js/chunk-538948e6.9e4f56a9.js
  72. 0 0
      dist/static/js/chunk-67b3e8ad.cb9f8264.js
  73. 0 0
      dist/static/js/chunk-6bb6691a.8f85ddeb.js
  74. 0 0
      dist/static/js/chunk-747579ba.45ea7a55.js
  75. 0 0
      dist/static/js/chunk-75ade3d5.7e5521cc.js
  76. 0 0
      dist/static/js/chunk-7cd232f5.4a7dbc8e.js
  77. 0 0
      dist/static/js/chunk-8651b216.5316234c.js
  78. 0 0
      dist/static/js/chunk-aac933f0.f7232826.js
  79. 0 0
      dist/static/js/chunk-aba618b0.f21627fe.js
  80. 0 0
      dist/static/js/chunk-ae95387c.cb90e726.js
  81. 0 0
      dist/static/js/chunk-b8f1d286.06800be1.js
  82. 0 0
      dist/static/js/chunk-c5b00306.50ffa8f9.js
  83. 0 0
      dist/static/js/chunk-d26cf0da.287c05a1.js
  84. 0 0
      dist/static/js/chunk-d4c82cd2.607fcb7c.js
  85. 0 0
      dist/static/js/chunk-d4d3c7a0.a3b2f52b.js
  86. 0 0
      dist/static/js/chunk-db969e48.187cfb83.js
  87. 0 0
      dist/static/js/chunk-de2414fa.fef6bae0.js
  88. 0 0
      dist/static/js/chunk-e74ee6b6.3ab2b7b3.js
  89. 0 0
      dist/static/js/chunk-e750c2a6.a62928ca.js
  90. 0 0
      dist/static/js/chunk-f248f12e.0a28844d.js
  91. 0 0
      dist/static/js/chunk-f38158aa.3081f0b5.js
  92. 0 0
      dist/static/js/chunk-ff8e09de.9328837a.js
  93. 2 3
      src/main.js
  94. 7 0
      src/views/auditList/api.js
  95. 26 371
      src/views/auditList/index.vue
  96. 255 0
      src/views/auditList/member.vue
  97. 91 0
      src/views/auditList/memberModel.vue
  98. 393 0
      src/views/auditList/musicGroup.vue
  99. 7 1
      src/views/studentManager/api.js
  100. 66 54
      src/views/studentManager/modals/createMember.vue

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/index.html


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/app.6bb7ca86.css


+ 1 - 0
dist/static/css/chunk-098a5d9b.17674e23.css

@@ -0,0 +1 @@
+[data-v-85b37976] .el-date-editor.el-input{width:100%!important}[data-v-85b37976] .el-select{width:98%!important}

+ 0 - 0
dist/static/css/chunk-ff8e09de.9a368e88.css → dist/static/css/chunk-0a363ac4.9a368e88.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-0cd7dfe2.16a40304.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-0dcc6e4f.0d1a6a65.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-13f8dba9.0ca6bba6.css


+ 1 - 1
dist/static/css/chunk-5335553a.4850288d.css → dist/static/css/chunk-1a648666.ec851965.css

@@ -1 +1 @@
-.alert[data-v-09525eac]{margin-bottom:10px}[data-v-09525eac] .description-title{margin-bottom:0}.description-label[data-v-09525eac]{width:120px!important}
+.alert[data-v-09525eac]{margin-bottom:10px}[data-v-09525eac] .description-title{margin-bottom:0}.description-label[data-v-09525eac]{width:120px!important}.title[data-v-45c6feae]{margin-bottom:30px;font-size:16px;color:#000}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-1c14e006.59598cb7.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-1c84ebc3.ae0ef9be.css


+ 1 - 0
dist/static/css/chunk-21fe3065.5f647cc4.css

@@ -0,0 +1 @@
+.dialog-footer[data-v-5b9f92c9],.dialog-footer[data-v-59fb2832]{margin-top:20px;display:block;text-align:right}[data-v-ca9641c6] .el-date-editor.el-input,[data-v-ca9641c6] .el-select{width:100%!important}[data-v-ca9641c6] .el-table .cell{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}[data-v-ca9641c6] .el-dialog__body{padding:10px 20px}.newBand[data-v-ca9641c6]{display:inline-block}.dialog-footer[data-v-79a0d1f7]{margin-top:20px;display:block;text-align:right}

+ 1 - 0
dist/static/css/chunk-23675f46.c5e65224.css

@@ -0,0 +1 @@
+.box-card[data-v-3628b15b]{margin-bottom:10px}[data-v-3628b15b] .el-collapse-item__header{background:#edeef0;color:#444;padding:0 10px}[data-v-3628b15b] .el-collapse-item__wrap{border:0}[data-v-3628b15b] .el-collapse-item__content{padding-bottom:0}.demo-table-expand[data-v-3628b15b]{font-size:0}.demo-table-expand label[data-v-3628b15b]{width:90px;color:#99a9bf}.demo-table-expand .el-form-item[data-v-3628b15b]{margin-right:0;margin-bottom:0;width:300px}.demo-table-expand .el-form-item span[data-v-3628b15b]{width:200px}.imgWrap[data-v-3628b15b]{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;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.moreImg[data-v-3628b15b]{width:50px;height:50px;background-color:#999;line-height:50px;text-align:center;color:#fff}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-2c6bfe34.a3249b12.css


+ 1 - 1
dist/static/css/chunk-de2414fa.3f138da9.css → dist/static/css/chunk-3861b956.ea601651.css

@@ -1 +1 @@
-.process[data-v-f049a426]{padding:10px;max-height:600px;overflow-y:auto}.dialog-footer[data-v-5b4bd763]{margin-top:20px;display:block;text-align:right}[data-v-3306755a] .el-button+.el-button{margin-left:0}.select[data-v-3306755a]{font-size:14px}.btnList[data-v-3306755a]{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 .exportBtn[data-v-3306755a]{margin-left:15px}
+.process[data-v-f049a426]{padding:10px;max-height:600px;overflow-y:auto}.dialog-footer[data-v-5b4bd763]{margin-top:20px;display:block;text-align:right}[data-v-627617ba] .el-button+.el-button{margin-left:0}.select[data-v-627617ba]{font-size:14px}.btnList[data-v-627617ba]{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 .exportBtn[data-v-627617ba]{margin-left:15px}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-49981d12.c0dae328.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-502b3dde.5f3b4c46.css


+ 1 - 0
dist/static/css/chunk-538948e6.2a768dc6.css

@@ -0,0 +1 @@
+.m-container .m-wrap[data-v-1f229098]{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;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:16px}.m-container .m-wrap .newBand[data-v-1f229098]{margin:0 5px 0 10px}.m-container .m-wrap .title[data-v-1f229098]{width:150px;text-align:right;color:#212121;font-weight:600}.m-container .m-wrap .organSelect[data-v-1f229098]{width:260px!important}.m-container .m-wrap .el-tooltip.micon[data-v-1f229098]{width:20px;height:20px;position:relative;margin-left:8px}.m-container .formCollapse[data-v-1f229098]{border:none}.m-container .formCollapse[data-v-1f229098] .el-collapse-item__header{padding:0 15px;border-bottom:none;background-color:#f8f8f8}.m-container .formCollapse[data-v-1f229098] .el-collapse-item__wrap{padding:15px;border-bottom:none}.m-container .formCollapse[data-v-1f229098] .el-collapse-item__arrow.is-active{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.m-container .formCollapse .el-tabs__nav[data-v-1f229098],.m-container .formCollapse[data-v-1f229098] .el-collapse-item__arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.m-container .formCollapse[data-v-1f229098] .el-collapse-item__content{padding-bottom:0!important}.m-container .formCollapse .wrapTitle[data-v-1f229098]{font-size:18px;position:relative;font-weight:600;margin-left:12px}.m-container .formCollapse .wrapTitle[data-v-1f229098]:after{position:absolute;width:4px;height:18px;background:var(--color-primary);border-radius:2px;left:-13px;top:14px;content:""}[data-v-1f229098] .el-input__icon.el-icon-date{height:40px!important}

+ 0 - 0
dist/static/css/chunk-745de3f0.8b1eb583.css → dist/static/css/chunk-6bb6691a.2849fa76.css


+ 0 - 1
dist/static/css/chunk-747579ba.3f4f4c5a.css

@@ -1 +0,0 @@
-[data-v-7f368b99] .el-date-editor.el-input{width:100%!important}[data-v-7f368b99] .el-select{width:98%!important}

+ 0 - 0
dist/static/css/chunk-8f6d9e96.3a688a3e.css → dist/static/css/chunk-75ade3d5.24f39731.css


+ 0 - 1
dist/static/css/chunk-8651b216.fe7f1abc.css

@@ -1 +0,0 @@
-.dialog-footer[data-v-5b9f92c9],.dialog-footer[data-v-59fb2832]{margin-top:20px;display:block;text-align:right}[data-v-600d64ed] .el-date-editor.el-input,[data-v-600d64ed] .el-select{width:100%!important}[data-v-600d64ed] .el-table .cell{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}[data-v-600d64ed] .el-dialog__body{padding:10px 20px}.newBand[data-v-600d64ed]{display:inline-block}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-b8f1d286.89a40de8.css


+ 0 - 1
dist/static/css/chunk-c5b00306.4567bcef.css

@@ -1 +0,0 @@
-.m-container .m-wrap[data-v-30f3ea08]{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;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:16px}.m-container .m-wrap .newBand[data-v-30f3ea08]{margin:0 5px 0 10px}.m-container .m-wrap .title[data-v-30f3ea08]{width:150px;text-align:right;color:#212121;font-weight:600}.m-container .m-wrap .organSelect[data-v-30f3ea08]{width:260px!important}.m-container .m-wrap .el-tooltip.micon[data-v-30f3ea08]{width:20px;height:20px;position:relative;margin-left:8px}.m-container .formCollapse[data-v-30f3ea08]{border:none}.m-container .formCollapse[data-v-30f3ea08] .el-collapse-item__header{padding:0 15px;border-bottom:none;background-color:#f8f8f8}.m-container .formCollapse[data-v-30f3ea08] .el-collapse-item__wrap{padding:15px;border-bottom:none}.m-container .formCollapse[data-v-30f3ea08] .el-collapse-item__arrow.is-active{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.m-container .formCollapse .el-tabs__nav[data-v-30f3ea08],.m-container .formCollapse[data-v-30f3ea08] .el-collapse-item__arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.m-container .formCollapse[data-v-30f3ea08] .el-collapse-item__content{padding-bottom:0!important}.m-container .formCollapse .wrapTitle[data-v-30f3ea08]{font-size:18px;position:relative;font-weight:600;margin-left:12px}.m-container .formCollapse .wrapTitle[data-v-30f3ea08]:after{position:absolute;width:4px;height:18px;background:var(--color-primary);border-radius:2px;left:-13px;top:14px;content:""}[data-v-30f3ea08] .el-input__icon.el-icon-date{height:40px!important}

+ 0 - 1
dist/static/css/chunk-d4c82cd2.554f3b49.css

@@ -1 +0,0 @@
-.box-card[data-v-44ae6d90]{margin-bottom:10px}[data-v-44ae6d90] .el-collapse-item__header{background:#edeef0;color:#444;padding:0 10px}[data-v-44ae6d90] .el-collapse-item__wrap{border:0}[data-v-44ae6d90] .el-collapse-item__content{padding-bottom:0}.demo-table-expand[data-v-44ae6d90]{font-size:0}.demo-table-expand label[data-v-44ae6d90]{width:90px;color:#99a9bf}.demo-table-expand .el-form-item[data-v-44ae6d90]{margin-right:0;margin-bottom:0;width:300px}.demo-table-expand .el-form-item span[data-v-44ae6d90]{width:200px}.imgWrap[data-v-44ae6d90]{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;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.moreImg[data-v-44ae6d90]{width:50px;height:50px;background-color:#999;line-height:50px;text-align:center;color:#fff}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-d4d3c7a0.1c297359.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-e750c2a6.269277e1.css


+ 1 - 1
dist/static/css/chunk-db969e48.40809372.css → dist/static/css/chunk-f248f12e.0b70021f.css

@@ -1 +1 @@
-.dialog-footer[data-v-07e9e40c]{display:block;text-align:right;margin-top:20px}.title[data-v-0bd85168]{margin-bottom:30px;font-size:16px;color:#000}.dialog-footer[data-v-4d102b4c]{display:block;text-align:right;margin-top:20px}.newBand[data-v-44d0dba0]{display:inline-block;margin-right:10px}.right-code .title[data-v-44d0dba0]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-44d0dba0] .studentInfo .multiple.el-select{width:185px!important}.red[data-v-44d0dba0]{color:red}.demo-table-expand label[data-v-44d0dba0]{width:150px;color:#99a9bf}.demo-table-expand .el-form-item[data-v-44d0dba0]{margin-right:0;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;position:relative}.demo-table-expand .el-form-item__label[data-v-44d0dba0]{z-index:100}[data-v-44d0dba0] .el-table__expanded-cell[class*=cell]{padding:20px 0 20px 110px}.schoolWrap[data-v-44d0dba0]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
+.dialog-footer[data-v-07e9e40c]{display:block;text-align:right;margin-top:20px}.title[data-v-45c6feae]{margin-bottom:30px;font-size:16px;color:#000}.dialog-footer[data-v-4d102b4c]{display:block;text-align:right;margin-top:20px}.newBand[data-v-44d0dba0]{display:inline-block;margin-right:10px}.right-code .title[data-v-44d0dba0]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-44d0dba0] .studentInfo .multiple.el-select{width:185px!important}.red[data-v-44d0dba0]{color:red}.demo-table-expand label[data-v-44d0dba0]{width:150px;color:#99a9bf}.demo-table-expand .el-form-item[data-v-44d0dba0]{margin-right:0;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;position:relative}.demo-table-expand .el-form-item__label[data-v-44d0dba0]{z-index:100}[data-v-44d0dba0] .el-table__expanded-cell[class*=cell]{padding:20px 0 20px 110px}.schoolWrap[data-v-44d0dba0]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/chunk-f38158aa.b9ccbb71.css


BIN
dist/static/fonts/iconfont.69e4cfa9.ttf → dist/static/fonts/iconfont.3bbc3d83.ttf


BIN
dist/static/img/banner1.af63c2a4.png


BIN
dist/static/img/banner2.24e60858.png


BIN
dist/static/img/banner3.424fd3dd.png


BIN
dist/static/img/banner4.87b7b090.png


BIN
dist/static/img/icon_success1.9cd421ec.png


BIN
dist/static/img/icon_success2.15d10a60.png


BIN
dist/static/img/icon_success3.6786f083.png


BIN
dist/static/img/icon_success4.9bb5480b.png


BIN
dist/static/img/imageIcon.0df9fb39.png


BIN
dist/static/img/img1.7f41e9f8.png


BIN
dist/static/img/img2.44529e2b.png


BIN
dist/static/img/img3.5a798adf.png


BIN
dist/static/img/img4.714f3773.png


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/app.744f749a.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/app.a1581f68.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-098a5d9b.10947d4a.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-0a363ac4.3a39e1d6.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-0cd7dfe2.87784f0e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-0dcc6e4f.0caaff3c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-13f8dba9.b75efe12.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/static/js/chunk-185a3684.60363699.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-1a648666.ec552ffb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/static/js/chunk-1c14e006.8376b608.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-1c84ebc3.6aa5f8b4.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-21fe3065.e3bf6893.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-23675f46.da5f10a8.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-2c6bfe34.82d7b842.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-2d0b287c.df8cd534.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-3838a7f1.3e7bb4d2.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-3861b956.a376494c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-39cead56.a3b9cc50.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-3aedde54.4f9d58c0.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-3efd6b76.3ebf2a63.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-42befee6.54958fc4.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
dist/static/js/chunk-49981d12.9773289b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-4cabdabe.f1ff0186.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-4e081942.65e7c277.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-4e081942.b404b426.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-4eca89e4.42abc8bf.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-502b3dde.35039bcf.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-5335553a.a81f66a2.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-538948e6.9e4f56a9.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-67b3e8ad.cb9f8264.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-6bb6691a.8f85ddeb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-747579ba.45ea7a55.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-75ade3d5.7e5521cc.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-7cd232f5.4a7dbc8e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-8651b216.5316234c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-aac933f0.f7232826.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-aba618b0.f21627fe.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-ae95387c.cb90e726.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-b8f1d286.06800be1.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-c5b00306.50ffa8f9.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-d26cf0da.287c05a1.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-d4c82cd2.607fcb7c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-d4d3c7a0.a3b2f52b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-db969e48.187cfb83.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-de2414fa.fef6bae0.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-e74ee6b6.3ab2b7b3.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-e750c2a6.a62928ca.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-f248f12e.0a28844d.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-f38158aa.3081f0b5.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/chunk-ff8e09de.9328837a.js


+ 2 - 3
src/main.js

@@ -104,13 +104,12 @@ document.addEventListener('mousewheel', function () {
     document.activeElement.blur()
   }
 })
+// 费用审核输入框回车之后失去焦点有问题,所以注释
 // document.addEventListener('keydown', function (event) {
-//   //  (document.activeElement,event.keyCode)
 //   if (event.keyCode == 13) {
-//     setTimeout(res => {
+//     setTimeout(() => {
 //       document.activeElement.blur()
 //     }, 300)
-
 //   }
 // })
 /**

+ 7 - 0
src/views/auditList/api.js

@@ -0,0 +1,7 @@
+import request2 from '@/utils/request2'
+
+export const cloudCoachPaymentProgramAudit = data => request2({
+  url: '/api-web/cloudCoachPaymentProgram/audit',
+  data,
+  method: 'post',
+})

+ 26 - 371
src/views/auditList/index.vue

@@ -1,393 +1,48 @@
-
 <template>
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      费用审核列表
+      费用审核
     </h2>
     <div class="m-core">
-      <!-- 搜索标题 -->
-      <save-form
-        :inline="true"
-        class="searchForm"
-        ref="searchForm"
-        :model.sync="searchForm"
-      >
-        <el-form-item>
-          <el-input
-            v-model.trim="searchForm.search"
-            clearable
-            @keyup.enter.native="search"
-            placeholder="乐团名称、编号"
-          ></el-input>
-        </el-form-item>
-        <el-form-item>
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.organId"
-            filterable
-            clearable
-            placeholder="请选择分部"
-          >
-            <el-option
-              v-for="(item, index) in selects.branchs"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.paymentType"
-            filterable
-            clearable
-            placeholder="申请类型"
-          >
-            <el-option
-              v-for="(item, index) in paymentTypeList"
-              :key="index"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.status"
-            filterable
-            clearable
-            placeholder="审核状态"
-          >
-            <el-option
-              v-for="(item, index) in statusList"
-              :key="index"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-button @click="search" type="primary">搜索</el-button>
-          <el-button @click="reset" type="danger">重置</el-button>
-          <auth
-            auths="musicGroupPaymentCalender/batchAuditing"
-            style="margin-left: 10px"
-          >
-            <el-button
-              @click="typesStatus = true"
-              :disabled="!selList.length > 0"
-              type="primary"
-              >批量审核</el-button
-            >
-          </auth>
-        </el-form-item>
-      </save-form>
-      <div class="tableWrap">
-        <el-table
-          :data="tableList"
-          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column
-            fixed="left"
-            type="selection"
-            width="55"
-            :selectable="selectable"
-          ></el-table-column>
-          <el-table-column align="center" prop="organName" label="分部名称">
-            <template slot-scope="scope">
-              <copy-text>{{ scope.row.organName }}</copy-text>
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            width="200px"
-            prop="musicGroupName"
-            label="乐团名称"
-          >
-            <template slot-scope="scope">
-              <div>
-                <Tooltip :content="scope.row.musicGroupName" />
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            width="100px"
-            prop="musicGroupId"
-            label="乐团编号"
-          >
-            <template slot-scope="scope">
-              <copy-text>{{ scope.row.musicGroupId }}</copy-text>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" prop="paymentType" label="收费模式">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.paymentType | auditPaymentType }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" prop="paymentType" label="申请类型">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.paymentType | auditPaymentType }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" prop="payUserType" label="订单类型">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.payUserType | payOrderType }}
-              </div>
-            </template>
-          </el-table-column>
-          <!-- <el-table-column
-            align="center"
-            prop="addCourseTotalTime"
-            label="加课总时长(分钟)"
-          ></el-table-column> -->
-          <el-table-column
-            align="center"
-            prop="originalTotalAmount"
-            label="总原价(元)"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="currentTotalAmount"
-            label="申请价格(元)"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="memo"
-            width="100px"
-            label="备注"
-          >
-            <template slot-scope="scope">
-              <overflow-text width="80px" :text="scope.row.memo" />
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="auditMemo"
-            width="100px"
-            label="审核意见"
-          >
-            <template slot-scope="scope">
-              <overflow-text width="80px" :text="scope.row.auditMemo" />
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="operatorName"
-            label="申请人"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="status"
-            label="状态"
-            width="100px"
-          >
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.status | auditType }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="createTime"
-            label="申请时间"
-            width="140px"
-          >
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.createTime | dateForMinFormat }}
-              </div>
-            </template>
-          </el-table-column>
-          <!--  -->
-          <el-table-column align="center" label="操作" fixed="right">
-            <template slot-scope="scope">
-              <!--     'musicGroupPaymentCalender/auditListDetail/update'
-                       'musicGroupPaymentCalender/auditListDetail/look' -->
-              <el-button
-                @click="lookDetail(scope.row)"
-                type="text"
-                v-if="scope.row.status == 'AUDITING' && $helpers.permission('musicGroupPaymentCalender/auditListDetail/update')"
-              >
-                审核
-              </el-button>
-              <el-button
-                @click="lookDetail(scope.row)"
-                type="text"
-                v-if="scope.row.status != 'AUDITING' && $helpers.permission('musicGroupPaymentCalender/getDetail/look')"
-              >
-                查看
-              </el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total.sync="pageInfo.total"
-          sync
-          :page.sync="pageInfo.page"
-          :limit.sync="pageInfo.limit"
-          :page-sizes="pageInfo.page_size"
-          @pagination="getList"
-        />
-      </div>
+      <tab-router v-model.trim="activeIndex"
+               type="card">
+        <el-tab-pane label="乐团缴费"
+                     name="1"
+                     v-if="permission('/auditList/music')">
+          <musicGroup v-if="activeIndex === '1'" />
+        </el-tab-pane>
+        <el-tab-pane label="团练宝缴费"
+                     name="2"
+                     v-if="permission('cloudCoachPaymentProgram/queryPage/home')">
+          <member v-if="activeIndex === '2'" />
+        </el-tab-pane>
+      </tab-router>
     </div>
-    <el-dialog
-      title="申请详情"
-      width="900px"
-      :visible.sync="typeStatus"
-      v-if="typeStatus"
-    >
-      <review :detail="detail" @close="close" />
-    </el-dialog>
-    <el-dialog
-      title="批量审核"
-      width="700px"
-      :visible.sync="typesStatus"
-      v-if="typesStatus"
-    >
-      <audit
-        :selList="selList"
-        @close="typesStatus = false"
-        @submited="submited"
-      />
-    </el-dialog>
   </div>
 </template>
 <script>
-import pagination from "@/components/Pagination/index";
-import review from "@/views/resetTeaming/modals/review.vue";
-import audit from "./audit.vue";
-// import store from '@/store'
-import { getAuditList, getAuditListDetail } from "@/api/auditManager";
-import { getEmployeeOrgan } from "@/api/buildTeam";
-import Tooltip from "@/components/Tooltip/index";
-import { auditTypeList, auditPaymentTypeList } from "@/utils/searchArray";
-
-const initSearch = {
-  search: null,
-  paymentType: null,
-  status: "AUDITING",
-  organId: null,
-};
+import { permission } from "@/utils/directivePage";
+import musicGroup from "./musicGroup";
+import member from "./member";
 export default {
-  components: { pagination, Tooltip, review, audit },
-  name: "helpCategory",
+  name: "Main",
+  components: {
+    musicGroup,
+    member
+  },
   data() {
     return {
-      typesStatus: false,
-      selList: [],
-      paymentTypeList: auditPaymentTypeList,
-      organList: [],
-      statusList: auditTypeList,
-      searchForm: { ...initSearch },
-      tableList: [],
-
-      pageInfo: {
-        // 分页规则
-        limit: 10, // 限制显示条数
-        page: 1, // 当前页
-        total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
-      },
-      detail: null,
-      typeStatus: false,
+      activeIndex: null,
     };
   },
   mounted() {
-    this.$store.dispatch("setBranchs");
-    this.getList();
+    // console.log(permission('/main/main/allData/826'))
   },
   methods: {
-    selectable(row, index) {
-      return row.status == "AUDITING";
-    },
-    search() {
-      this.pageInfo.page = 1;
-      this.$refs.searchForm.save(this.searchForm);
-      this.$refs.searchForm.save(this.pageInfo, "page");
-      this.getList();
-    },
-    reset() {
-      this.searchForm = { ...initSearch };
-      this.search();
-    },
-    handleSelectionChange(arr) {
-      this.selList = arr;
-    },
-    getList() {
-      let params = {
-        page: this.pageInfo.page,
-        rows: this.pageInfo.limit,
-        ...this.searchForm,
-      };
-      getAuditList(params).then((res) => {
-        let result = res.data;
-        if (res.code == 200) {
-          this.tableList = result.rows;
-          this.pageInfo.total = result.total;
-        }
-      });
-    },
-
-    lookDetail(row) {
-      // this.detail = res.data
-      this.detail = {
-        id: row.id,
-        musicGroupId: row.musicGroupId,
-        status: row.status,
-        batchNo: row.batchNo,
-      };
-      this.typeStatus = true;
-    },
-    submited() {
-      this.pageInfo.page = 1;
-      this.getList();
-    },
-    close() {
-      this.typeStatus = false;
-      this.getList();
-    },
-  },
-  watch: {
-    typeStatus(val) {
-      if (!val) {
-        this.detail = null;
-      }
-    },
+    permission,
   },
 };
 </script>
-<style lang="scss" scoped>
-/deep/.el-date-editor.el-input {
-  width: 100% !important;
-}
-/deep/.el-select {
-  width: 100% !important;
-}
-/deep/.el-table .cell {
-  display: -webkit-box;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  -webkit-line-clamp: 3;
-  -webkit-box-orient: vertical;
-}
-/deep/.el-dialog__body {
-  padding: 10px 20px;
-}
-.newBand {
-  display: inline-block;
-
-}
+<style lang="scss" scope>
 </style>

+ 255 - 0
src/views/auditList/member.vue

@@ -0,0 +1,255 @@
+<template>
+  <div>
+    <div>
+      <el-form :inline="true" :model="searchForm">
+        <el-form-item prop="period">
+          <el-select
+            placeholder="团练宝单位"
+            clearable
+            v-model.trim="searchForm.period"
+            style="width: 100% !important"
+          >
+            <el-option label="月度" value="MONTH"></el-option>
+            <el-option label="季度" value="QUARTERLY"></el-option>
+            <el-option label="半年" value="YEAR_HALF"></el-option>
+            <el-option label="年度" value="YEAR"></el-option>
+            <!-- <el-option label="固定天数" value="DAY"></el-option> -->
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="organId">
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organId"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="visitTime">
+            <el-date-picker
+              v-model.trim="searchForm.visitTime"
+              style="width: 410px"
+              type="daterange"
+              :picker-options="{
+                firstDayOfWeek: 1,
+              }"
+              :default-time="['00:00:00', '23:59:59']"
+              range-separator="至"
+              start-placeholder="创建开始日期"
+              end-placeholder="创建结束日期"
+            ></el-date-picker>
+          </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.status"
+            filterable
+            clearable
+            placeholder="审核状态"
+          >
+            <el-option label="审核中" value="AUDITING"></el-option>
+            <el-option label="拒绝" value="REJECT"></el-option>
+            <el-option label="开启缴费" value="OPEN"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search" type="danger">搜索</el-button>
+          <el-button @click="onReSet" type="primary">重置</el-button>
+        </el-form-item>
+      </el-form>
+
+      <div class="tableWrap">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
+        >
+          <el-table-column
+            align="center"
+            prop="id"
+            label="续费编号"
+          ></el-table-column>
+          <el-table-column align="center" prop="organName" label="分部名称">
+          </el-table-column>
+          <el-table-column align="center" prop="name" label="团练宝单位">
+            <template slot-scope="scope">
+              {{ scope.row.period | memberEnumType }}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="memberNum" label="周期数">
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="subjectName"
+            label="缴费金额(元)"
+          >
+            <template slot-scope="scope">
+              {{ scope.row.actualAmount | moneyFormat(true) }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="type"
+            label="已缴费人数/总人数"
+          >
+            <template slot-scope="scope">
+              {{ scope.row.paymentUserNum }}/{{ scope.row.userNum }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="operatorName"
+          >
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="remark"
+            label="备注"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="memo"
+            width="100px"
+            label="审核意见"
+          >
+            <template slot-scope="scope">
+              <overflow-text width="80px" :text="scope.row.memo" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="operatorName"
+            label="申请人"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="status"
+            label="状态"
+            width="100px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.status | auditType }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="创建时间"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="审核时间"
+            width="140px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.auditTime | dateForMinFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center"
+                          label="操作">
+            <template slot-scope="scope">
+              <el-button type="text" v-if="scope.row.status == 'AUDITING' && $helpers.permission('cloudCoachPaymentProgram/audit')" @click="onDetail(scope.row)">审核</el-button>
+              <el-button type="text" v-if="scope.row.status != 'AUDITING' && $helpers.permission('studentCloudCoachPaymentDetails/queryPage')" @click="onDetail(scope.row)">详情</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+
+    <el-dialog
+      title="审核详情"
+      :visible.sync="recordVisible"
+      width="800px"
+      v-if="recordVisible"
+      append-to-body
+    >
+      <member-model :detail="selectDetail" @getList="getList" @close="recordVisible = false" />
+    </el-dialog>
+  </div>
+</template>
+<script>
+import pagination from "@/components/Pagination/index";
+import memberModel from './memberModel'
+import { cloudCoachPaymentProgramQueryPage } from '../studentManager/api'
+import { getTimes } from "@/utils";
+import { auditTypeList } from "@/utils/searchArray";
+export default {
+  components: { pagination, memberModel },
+  data() {
+    return {
+      recordVisible: false,
+      searchForm: {
+        visitTime: [],
+        period: null,
+        organId: null,
+        status: 'AUDITING',
+      },
+      tableList: [],
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+      selectDetail: null,
+      statusList: auditTypeList,
+    };
+  },
+  async mounted() {
+    await this.$store.dispatch("setBranchs");
+    this.getList()
+  },
+  methods: {
+    async getList() {
+      try {
+        const { visitTime, ...search } = this.searchForm
+        const res = await cloudCoachPaymentProgramQueryPage({
+          ...search,
+          ...getTimes(visitTime, ["startTime", "endTime"]),
+          page: this.rules.page,
+          rows: this.rules.limit,
+        });
+        this.rules.total = res.data.total;
+        this.tableList = res.data.rows;
+      } catch (e) { }
+    },
+    search() {
+      this.rules.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      this.searchForm = {
+        visitTime: [],
+        period: null,
+      }
+      this.search()
+    },
+    onDetail(row) {
+      this.selectDetail = row
+      this.recordVisible = true
+    }
+  },
+};
+</script>

+ 91 - 0
src/views/auditList/memberModel.vue

@@ -0,0 +1,91 @@
+<template>
+  <div>
+    <descriptions :column="2" style="margin-bottom: 20px;">
+      <descriptions-item label="团练宝单位">{{ detail.period | memberEnumType }}</descriptions-item>
+      <descriptions-item label="周期数">{{ detail.memberNum }}</descriptions-item>
+      <descriptions-item label="缴费金额(元)">{{ detail.actualAmount | moneyFormat(true) }}</descriptions-item>
+      <descriptions-item label="已缴费人数/总人数">{{ detail.paymentUserNum }}/{{ detail.userNum }}</descriptions-item>
+      <descriptions-item label="创建人">{{ detail.operatorName }}</descriptions-item>
+      <descriptions-item label="创建时间">{{ detail.createTime }}</descriptions-item>
+      <descriptions-item label="备注">{{ detail.remark }}</descriptions-item>
+    </descriptions>
+
+    <template v-if="detail.status === 'AUDITING'">
+      <el-alert style="margin: 20px 0;"
+                title="审核意见"
+                :closable="false"
+                class="alert"
+                type="info">
+      </el-alert>
+      <el-form :model="form" ref="form">
+        <el-form-item prop="memo" :rules="[{ required: true, message: '请输入审核意见', trigger: 'blur' }]">
+          <el-input type="textarea"
+                :autosize="{ minRows: 2, maxRows: 4 }"
+                placeholder="请输入审核意见"
+                v-model="form.memo">
+      </el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer"
+          class="dialog-footer">
+        <el-button type="primary"
+                  @click="submit(1)"
+                  v-if="permission('musicGroupPaymentCalender/auditPass/batchAuditing')">审核通过</el-button>
+        <el-button type="danger"
+                  @click="submit(0)"
+                  v-if="permission('musicGroupPaymentCalender/auditRefuse/batchAuditing')">驳回</el-button>
+        <el-button @click="$emit('close')">关 闭</el-button>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import { permission } from '@/utils/directivePage'
+import { cloudCoachPaymentProgramAudit } from './api'
+export default {
+  props: ["detail"],
+  data () {
+    return {
+      form: {
+        memo: "",
+      }
+    };
+  },
+  mounted () {
+    console.log(this.detail, "detail");
+  },
+  methods: {
+    async submit (val) {
+      this.$refs.form.validate(async(_) => {
+        if(_) {
+          try {
+            const detail = this.detail
+            const str = val ? '通过' : '驳回'
+            await this.$confirm(`是否确认审核${str}`, '提示', {
+              type: 'warning'
+            })
+            await cloudCoachPaymentProgramAudit({
+              id: detail.id,
+              memo: this.form.memo,
+              status: val ? 'OPEN' : 'REJECT',
+            });
+            this.$message.success(`${str}成功`)
+            this.$emit('close')
+            this.$emit('getList')
+          } catch(error) {}
+        }
+      })
+    },
+    permission (str) {
+      return permission(str)
+    }
+  },
+};
+</script>
+<style lang="less" scoped>
+.dialog-footer {
+  margin-top: 20px;
+  display: block;
+  text-align: right;
+}
+</style>

+ 393 - 0
src/views/auditList/musicGroup.vue

@@ -0,0 +1,393 @@
+
+<template>
+  <div>
+    <!-- <h2>
+      <div class="squrt"></div>
+      费用审核列表
+    </h2> -->
+    <div>
+      <!-- 搜索标题 -->
+      <save-form
+        :inline="true"
+        class="searchForm"
+        ref="searchForm"
+        :model.sync="searchForm"
+      >
+        <el-form-item>
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            @keyup.enter.native="search"
+            placeholder="乐团名称、编号"
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organId"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.paymentType"
+            filterable
+            clearable
+            placeholder="申请类型"
+          >
+            <el-option
+              v-for="(item, index) in paymentTypeList"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.status"
+            filterable
+            clearable
+            placeholder="审核状态"
+          >
+            <el-option
+              v-for="(item, index) in statusList"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search" type="primary">搜索</el-button>
+          <el-button @click="reset" type="danger">重置</el-button>
+          <auth
+            auths="musicGroupPaymentCalender/batchAuditing"
+            style="margin-left: 10px"
+          >
+            <el-button
+              @click="typesStatus = true"
+              :disabled="!selList.length > 0"
+              type="primary"
+              >批量审核</el-button
+            >
+          </auth>
+        </el-form-item>
+      </save-form>
+      <div class="tableWrap">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column
+            fixed="left"
+            type="selection"
+            width="55"
+            :selectable="selectable"
+          ></el-table-column>
+          <el-table-column align="center" prop="organName" label="分部名称">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.organName }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            width="200px"
+            prop="musicGroupName"
+            label="乐团名称"
+          >
+            <template slot-scope="scope">
+              <div>
+                <Tooltip :content="scope.row.musicGroupName" />
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            width="100px"
+            prop="musicGroupId"
+            label="乐团编号"
+          >
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.musicGroupId }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="paymentType" label="收费模式">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.paymentType | auditPaymentType }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="paymentType" label="申请类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.paymentType | auditPaymentType }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="payUserType" label="订单类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.payUserType | payOrderType }}
+              </div>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column
+            align="center"
+            prop="addCourseTotalTime"
+            label="加课总时长(分钟)"
+          ></el-table-column> -->
+          <el-table-column
+            align="center"
+            prop="originalTotalAmount"
+            label="总原价(元)"
+          >
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="currentTotalAmount"
+            label="申请价格(元)"
+          >
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="memo"
+            width="100px"
+            label="备注"
+          >
+            <template slot-scope="scope">
+              <overflow-text width="80px" :text="scope.row.memo" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="auditMemo"
+            width="100px"
+            label="审核意见"
+          >
+            <template slot-scope="scope">
+              <overflow-text width="80px" :text="scope.row.auditMemo" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="operatorName"
+            label="申请人"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="status"
+            label="状态"
+            width="100px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.status | auditType }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="申请时间"
+            width="140px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.createTime | dateForMinFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <!--  -->
+          <el-table-column align="center" label="操作" fixed="right">
+            <template slot-scope="scope">
+              <!--     'musicGroupPaymentCalender/auditListDetail/update'
+                       'musicGroupPaymentCalender/auditListDetail/look' -->
+              <el-button
+                @click="lookDetail(scope.row)"
+                type="text"
+                v-if="scope.row.status == 'AUDITING' && $helpers.permission('musicGroupPaymentCalender/auditListDetail/update')"
+              >
+                审核
+              </el-button>
+              <el-button
+                @click="lookDetail(scope.row)"
+                type="text"
+                v-if="scope.row.status != 'AUDITING' && $helpers.permission('musicGroupPaymentCalender/getDetail/look')"
+              >
+                查看
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          :total.sync="pageInfo.total"
+          sync
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+    <el-dialog
+      title="审核详情"
+      width="900px"
+      :visible.sync="typeStatus"
+      v-if="typeStatus"
+    >
+      <review :detail="detail" @close="close" />
+    </el-dialog>
+    <el-dialog
+      title="批量审核"
+      width="700px"
+      :visible.sync="typesStatus"
+      v-if="typesStatus"
+    >
+      <audit
+        :selList="selList"
+        @close="typesStatus = false"
+        @submited="submited"
+      />
+    </el-dialog>
+  </div>
+</template>
+<script>
+import pagination from "@/components/Pagination/index";
+import review from "@/views/resetTeaming/modals/review.vue";
+import audit from "./audit.vue";
+// import store from '@/store'
+import { getAuditList, getAuditListDetail } from "@/api/auditManager";
+import { getEmployeeOrgan } from "@/api/buildTeam";
+import Tooltip from "@/components/Tooltip/index";
+import { auditTypeList, auditPaymentTypeList } from "@/utils/searchArray";
+
+const initSearch = {
+  search: null,
+  paymentType: null,
+  status: "AUDITING",
+  organId: null,
+};
+export default {
+  components: { pagination, Tooltip, review, audit },
+  name: "helpCategory",
+  data() {
+    return {
+      typesStatus: false,
+      selList: [],
+      paymentTypeList: auditPaymentTypeList,
+      organList: [],
+      statusList: auditTypeList,
+      searchForm: { ...initSearch },
+      tableList: [],
+
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+      detail: null,
+      typeStatus: false,
+    };
+  },
+  mounted() {
+    this.$store.dispatch("setBranchs");
+    this.getList();
+  },
+  methods: {
+    selectable(row, index) {
+      return row.status == "AUDITING";
+    },
+    search() {
+      this.pageInfo.page = 1;
+      this.$refs.searchForm.save(this.searchForm);
+      this.$refs.searchForm.save(this.pageInfo, "page");
+      this.getList();
+    },
+    reset() {
+      this.searchForm = { ...initSearch };
+      this.search();
+    },
+    handleSelectionChange(arr) {
+      this.selList = arr;
+    },
+    getList() {
+      let params = {
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...this.searchForm,
+      };
+      getAuditList(params).then((res) => {
+        let result = res.data;
+        if (res.code == 200) {
+          this.tableList = result.rows;
+          this.pageInfo.total = result.total;
+        }
+      });
+    },
+
+    lookDetail(row) {
+      // this.detail = res.data
+      this.detail = {
+        id: row.id,
+        musicGroupId: row.musicGroupId,
+        status: row.status,
+        batchNo: row.batchNo,
+      };
+      this.typeStatus = true;
+    },
+    submited() {
+      this.pageInfo.page = 1;
+      this.getList();
+    },
+    close() {
+      this.typeStatus = false;
+      this.getList();
+    },
+  },
+  watch: {
+    typeStatus(val) {
+      if (!val) {
+        this.detail = null;
+      }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+/deep/.el-date-editor.el-input {
+  width: 100% !important;
+}
+/deep/.el-select {
+  width: 100% !important;
+}
+/deep/.el-table .cell {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+}
+/deep/.el-dialog__body {
+  padding: 10px 20px;
+}
+.newBand {
+  display: inline-block;
+
+}
+</style>

+ 7 - 1
src/views/studentManager/api.js

@@ -7,7 +7,6 @@ export const getMusicMemberList = data => request2({
   method: 'get',
 })
 
-
 // 添加
 export const add = (data) => request2({
   url: '/api-web/cloudCoachPaymentProgram/add',
@@ -15,6 +14,13 @@ export const add = (data) => request2({
   data
 })
 
+// 修改
+export const update = (data) => request2({
+  url: '/api-web/cloudCoachPaymentProgram/update',
+  method: 'post',
+  data
+})
+
 //
 export const cloudCoachPaymentProgramQueryPage = (data) => request2({
   url: '/api-web/cloudCoachPaymentProgram/queryPage',

+ 66 - 54
src/views/studentManager/modals/createMember.vue

@@ -13,6 +13,7 @@
           placeholder="团练宝单位"
           clearable
           v-model.trim="memberForm.period"
+          @change="getMemberList"
           style="width: 100% !important"
         >
           <el-option label="月度" value="MONTH"></el-option>
@@ -31,6 +32,7 @@
       >
         <el-input
           type="number"
+          @input="getMemberList"
           onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
           v-model="memberForm.memberNum"
           placeholder="请输入团练宝周期"
@@ -39,18 +41,6 @@
       </el-form-item>
       <el-form-item
         label="缴费金额"
-        prop="amount"
-        v-show="false"
-      >
-        <el-input
-          type="number"
-          v-model="amount"
-          placeholder="请输入缴费金额"
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item
-        label="缴费金额"
         prop="actualAmount"
         :rules="[
           { required: true, message: '请输入缴费金额', trigger: 'blur' },
@@ -67,7 +57,7 @@
           <div slot="append">元/人</div>
         </el-input>
       </el-form-item>
-      <p style="color: red; padding: 0 0 20px 100px">若修改为0元则无需学员缴费,创建后即可进行激活操作</p>
+      <p style="color: red; padding: 0 0 20px 100px">若修改默认金额需审核通过后生效</p>
       <el-form-item label="备注" prop="remark"
         :rules="[
           { required: true, message: '请输入备注', trigger: 'blur' },
@@ -84,11 +74,11 @@
   </div>
 </template>
 <script>
-import { add } from "../api";
+import { add, update } from "../api";
 import { getmemberRankOrganizationFeeMapper } from '@/views/categroyManager/productSystem/api'
 import { sysConfigList } from "@/api/generalSettings"; // 平台的修改和查
 export default {
-  props: ["multipleSelection"],
+  props: ["multipleSelection", 'type'],
   data() {
     return {
       memberForm: {
@@ -104,41 +94,26 @@ export default {
     };
   },
   mounted() {
-    this.userIds = this.multipleSelection
-      .map((stu) => {
-        return stu.userId;
-      });
-    this.organId = this.multipleSelection[0].organId //
-    this.__init()
-  },
-  computed: {
-    amount() {
-      let money = 0
-      const memberForm = this.memberForm
-      const memberFeeSetting = this.memberFeeSetting
-      switch (memberForm?.period) {
-        case "MONTH": {
-          money = Number(memberFeeSetting.groupPurchaseMonthFee * memberForm.memberNum)
-          break;
-        }
-        case "QUARTERLY": {
-          money = Number(memberFeeSetting.groupPurchaseQuarterlyFee * memberForm.memberNum)
-          break;
-        }
-        case "YEAR_HALF": {
-          money = Number(memberFeeSetting.groupPurchaseHalfYearFee * memberForm.memberNum)
-          break;
-        }
-        case "YEAR": {
-          money = Number(memberFeeSetting.groupPurchaseYearFee * memberForm.memberNum)
-          break;
-        }
-      }
-      if(memberForm.memberNum && memberForm.period) {
-        this.memberForm.actualAmount = money
+    console.log(this.multipleSelection)
+    if(this.type == 'update') {
+      const { memberNum, actualAmount, period, remark, organId, id } = this.multipleSelection
+      this.memberForm = {
+        memberNum,
+        period,
+        actualAmount,
+        remark,
+        id
       }
-      return money
+      this.organId = organId
+    } else {
+      this.userIds = this.multipleSelection
+        .map((stu) => {
+          return stu.userId;
+        });
+      this.organId = this.multipleSelection[0].organId //
     }
+
+    this.__init()
   },
   methods: {
     async __init() {
@@ -165,16 +140,53 @@ export default {
 
       }
     },
+    getMemberList() {
+      let money = 0
+      const memberForm = this.memberForm
+      const memberFeeSetting = this.memberFeeSetting
+      if(memberFeeSetting) {
+        switch (memberForm?.period) {
+          case "MONTH": {
+            money = Number(memberFeeSetting.groupPurchaseMonthFee * memberForm.memberNum)
+            break;
+          }
+          case "QUARTERLY": {
+            money = Number(memberFeeSetting.groupPurchaseQuarterlyFee * memberForm.memberNum)
+            break;
+          }
+          case "YEAR_HALF": {
+            money = Number(memberFeeSetting.groupPurchaseHalfYearFee * memberForm.memberNum)
+            break;
+          }
+          case "YEAR": {
+            money = Number(memberFeeSetting.groupPurchaseYearFee * memberForm.memberNum)
+            break;
+          }
+        }
+      }
+      if(memberForm.memberNum && memberForm.period) {
+        this.memberForm.actualAmount = money
+      }
+    },
     submit() {
       this.$refs.memberForm.validate(async (res) => {
+        console.log(res, this.type, 'res')
         if (res) {
           try {
-            await add({
-              ...this.memberForm,
-              userIds: this.userIds,
-              organId: this.organId
-            });
-            this.$message.success('创建团练宝成功')
+            if(this.type == 'update') {
+              await update({
+                ...this.memberForm,
+                organId: this.organId
+              });
+              this.$message.success('创建团练宝成功')
+            } else {
+              await add({
+                ...this.memberForm,
+                userIds: this.userIds,
+                organId: this.organId
+              });
+              this.$message.success('创建团练宝成功')
+            }
             this.$emit("close");
             this.$emit("submited");
           } catch (e) {

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.