浏览代码

Merge branch 'master' into 02/23reviewBUG

lex-xin 4 年之前
父节点
当前提交
9bb883b231
共有 95 个文件被更改,包括 906 次插入485 次删除
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.1f6b198a.css
  3. 0 0
      dist/static/css/chunk-0182cd82.c39692ca.css
  4. 0 0
      dist/static/css/chunk-018ff2e2.bd90b33d.css
  5. 1 0
      dist/static/css/chunk-0320c3e4.87fc6880.css
  6. 0 0
      dist/static/css/chunk-0e37a996.18b5b57f.css
  7. 1 0
      dist/static/css/chunk-0fc223d0.770890c9.css
  8. 0 0
      dist/static/css/chunk-1b5749db.5a9ff381.css
  9. 0 0
      dist/static/css/chunk-23ad114e.e48265c1.css
  10. 0 0
      dist/static/css/chunk-29376f32.1875f58c.css
  11. 0 0
      dist/static/css/chunk-2c7b6d48.bb72f56c.css
  12. 0 1
      dist/static/css/chunk-2ddc0e3f.d1bc4b00.css
  13. 0 0
      dist/static/css/chunk-2e582aba.5e02bbdf.css
  14. 0 1
      dist/static/css/chunk-42ab66a4.b2d5d021.css
  15. 0 0
      dist/static/css/chunk-43358ef0.b15f5722.css
  16. 1 1
      dist/static/css/chunk-43a42ee0.29e2a1fc.css
  17. 1 1
      dist/static/css/chunk-43be6c96.c201d6f6.css
  18. 0 0
      dist/static/css/chunk-4ae6e26c.325a6afa.css
  19. 0 0
      dist/static/css/chunk-5ca930b1.49b931aa.css
  20. 0 0
      dist/static/css/chunk-6189ac20.7ec12e45.css
  21. 0 1
      dist/static/css/chunk-6a97b9c3.c9ab11db.css
  22. 0 0
      dist/static/css/chunk-6ca44dac.a689f268.css
  23. 0 0
      dist/static/css/chunk-6fc50c24.4c08a038.css
  24. 0 0
      dist/static/css/chunk-71ec9914.87085111.css
  25. 0 0
      dist/static/css/chunk-73863f78.75116445.css
  26. 0 0
      dist/static/css/chunk-76dcf6a2.abc9e089.css
  27. 0 0
      dist/static/css/chunk-78565ab7.23677173.css
  28. 0 0
      dist/static/css/chunk-7eb5956e.c5979425.css
  29. 1 1
      dist/static/css/chunk-86dc7b98.97d60f9d.css
  30. 0 0
      dist/static/css/chunk-ba05f8b2.dc02868e.css
  31. 0 0
      dist/static/css/chunk-c4d77696.3da48583.css
  32. 0 0
      dist/static/js/app.162d117f.js
  33. 0 0
      dist/static/js/app.8f9dde62.js
  34. 0 0
      dist/static/js/chunk-0182cd82.ca6cf52c.js
  35. 0 0
      dist/static/js/chunk-018ff2e2.390454dd.js
  36. 0 0
      dist/static/js/chunk-0320c3e4.e700d2e1.js
  37. 0 0
      dist/static/js/chunk-03221830.2900bf75.js
  38. 0 0
      dist/static/js/chunk-06b8e50e.b0609ba4.js
  39. 0 0
      dist/static/js/chunk-08a5bd4e.d821d9a0.js
  40. 0 0
      dist/static/js/chunk-0e37a996.12e1a49a.js
  41. 0 0
      dist/static/js/chunk-0fc223d0.32a765ea.js
  42. 0 0
      dist/static/js/chunk-1b5749db.29ce86c7.js
  43. 0 0
      dist/static/js/chunk-23ad114e.f18cfdb9.js
  44. 0 0
      dist/static/js/chunk-288b1ca9.a95370cf.js
  45. 0 0
      dist/static/js/chunk-29376f32.8c1b4100.js
  46. 0 0
      dist/static/js/chunk-2c7b6d48.c4a65aba.js
  47. 0 0
      dist/static/js/chunk-2ddc0e3f.211382dc.js
  48. 0 0
      dist/static/js/chunk-2e582aba.cbf0d298.js
  49. 0 0
      dist/static/js/chunk-362f6420.52c4aacd.js
  50. 0 0
      dist/static/js/chunk-42ab66a4.bbbf44d2.js
  51. 0 0
      dist/static/js/chunk-43358ef0.a361710a.js
  52. 0 0
      dist/static/js/chunk-43a42ee0.97566efb.js
  53. 0 0
      dist/static/js/chunk-43be6c96.00c4d50a.js
  54. 0 0
      dist/static/js/chunk-4ae6e26c.8450957c.js
  55. 0 0
      dist/static/js/chunk-529acf22.9385bfe0.js
  56. 0 0
      dist/static/js/chunk-5ca930b1.929613f7.js
  57. 0 0
      dist/static/js/chunk-6189ac20.aa13b36c.js
  58. 0 0
      dist/static/js/chunk-65b41ce8.587d2979.js
  59. 0 0
      dist/static/js/chunk-6a97b9c3.1e259b4a.js
  60. 0 0
      dist/static/js/chunk-6ca44dac.54e7998a.js
  61. 0 0
      dist/static/js/chunk-6fc50c24.da8feea5.js
  62. 0 0
      dist/static/js/chunk-71ec9914.d7db2107.js
  63. 0 0
      dist/static/js/chunk-73863f78.a075c25f.js
  64. 0 0
      dist/static/js/chunk-76dcf6a2.4344ce8c.js
  65. 0 0
      dist/static/js/chunk-76f1424b.6cb9a540.js
  66. 0 0
      dist/static/js/chunk-78565ab7.7a9ca994.js
  67. 0 0
      dist/static/js/chunk-787a507d.9ffc2b07.js
  68. 0 0
      dist/static/js/chunk-7eb5956e.6eb6b21f.js
  69. 0 0
      dist/static/js/chunk-86dc7b98.08e030f6.js
  70. 0 0
      dist/static/js/chunk-ba05f8b2.ccc385be.js
  71. 0 0
      dist/static/js/chunk-c4d77696.79fe0cce.js
  72. 0 0
      dist/static/js/chunk-d3503f20.61e7b333.js
  73. 0 0
      dist/static/js/chunk-d59046ce.75507a59.js
  74. 0 0
      dist/static/js/chunk-d9d8b098.086bd71c.js
  75. 42 8
      src/components/remote-search/index.vue
  76. 19 18
      src/layout/components/AppMain.vue
  77. 45 32
      src/layout/components/TagsView.vue
  78. 5 1
      src/router/index.js
  79. 6 2
      src/router/notKeepAliveList.js
  80. 3 1
      src/store/getters.js
  81. 18 3
      src/store/modules/buildTeam.js
  82. 3 0
      src/store/modules/tagsView.js
  83. 8 3
      src/views/resetTeaming/components/strudentPayInfo.vue
  84. 8 0
      src/views/resetTeaming/modals/payment-cycle.vue
  85. 1 1
      src/views/resetTeaming/modals/subject-preview.vue
  86. 0 1
      src/views/setSilder/addSilder.vue
  87. 210 118
      src/views/teamBuild/components/soundSetComponents/soundSetCore.vue
  88. 191 179
      src/views/teamBuild/components/teamBaseInfo.vue
  89. 81 60
      src/views/teamBuild/components/teamSoundSet.vue
  90. 21 20
      src/views/teamBuild/index.vue
  91. 217 0
      src/views/teamBuild/teamDraft.vue
  92. 1 7
      src/views/teamDetail/index.vue
  93. 0 4
      src/views/teamDetail/indexCourse.vue
  94. 0 4
      src/views/teamDetail/teamInfo.vue
  95. 22 17
      src/views/teamDetail/teamList.vue

文件差异内容过多而无法显示
+ 0 - 0
dist/index.html


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.1f6b198a.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-0182cd82.c39692ca.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-018ff2e2.bd90b33d.css


+ 1 - 0
dist/static/css/chunk-0320c3e4.87fc6880.css

@@ -0,0 +1 @@
+.number-input[data-v-e3750f40]{width:100%}.number-input[data-v-57cd9361] .el-input__inner,.number-input[data-v-e3750f40] .el-input__inner{text-align:left}.number-input[data-v-55ad3016]{width:100%}.number-input[data-v-55ad3016] .el-input__inner{text-align:left}

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-0e37a996.18b5b57f.css


+ 1 - 0
dist/static/css/chunk-0fc223d0.770890c9.css

@@ -0,0 +1 @@
+.alert[data-v-3bf23a16]{margin:10px 0}.dialog-footer[data-v-290cb116]{margin-top:20px;display:block;text-align:right}.el-button--primary[data-v-2ccd281c],.el-button--primary[data-v-2ccd281c]:active,.el-button--primary[data-v-2ccd281c]:focus,.el-button--primary[data-v-2ccd281c]:hover{background:#14928a;border-color:#14928a;color:#fff}[data-v-2ccd281c] .el-date-editor.el-input,[data-v-2ccd281c] .el-select{width:100%!important}[data-v-2ccd281c] .el-table .cell{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}[data-v-2ccd281c] .el-dialog__body{padding:10px 20px}.newBand[data-v-2ccd281c]{display:inline-block}

+ 0 - 0
dist/static/css/chunk-4dcddbd3.9ece3cc9.css → dist/static/css/chunk-1b5749db.5a9ff381.css


+ 0 - 0
dist/static/css/chunk-03221830.e48265c1.css → dist/static/css/chunk-23ad114e.e48265c1.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-29376f32.1875f58c.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-2c7b6d48.bb72f56c.css


+ 0 - 1
dist/static/css/chunk-2ddc0e3f.d1bc4b00.css

@@ -1 +0,0 @@
-.alert[data-v-3bf23a16]{margin:10px 0}.dialog-footer[data-v-290cb116]{margin-top:20px;display:block;text-align:right}

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-2e582aba.5e02bbdf.css


+ 0 - 1
dist/static/css/chunk-42ab66a4.b2d5d021.css

@@ -1 +0,0 @@
-.el-button--primary[data-v-2ccd281c],.el-button--primary[data-v-2ccd281c]:active,.el-button--primary[data-v-2ccd281c]:focus,.el-button--primary[data-v-2ccd281c]:hover{background:#14928a;border-color:#14928a;color:#fff}[data-v-2ccd281c] .el-date-editor.el-input,[data-v-2ccd281c] .el-select{width:100%!important}[data-v-2ccd281c] .el-table .cell{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}[data-v-2ccd281c] .el-dialog__body{padding:10px 20px}.newBand[data-v-2ccd281c]{display:inline-block}

+ 0 - 0
dist/static/css/chunk-9574c424.b15f5722.css → dist/static/css/chunk-43358ef0.b15f5722.css


+ 1 - 1
dist/static/css/chunk-3573b058.cabdd01f.css → dist/static/css/chunk-43a42ee0.29e2a1fc.css

@@ -1 +1 @@
-.cl-container .topFrom{margin:20px 30px 0}.cl-container .topFrom .classlist{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}.cl-container .topFrom .classlist ul li{list-style:none}.cl-container .searchForm{margin:0 30px}.btnWraps{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}.btnWraps div{margin-right:20px}.m-container .m-core .msg.ing[data-v-6ac5c6d1]{color:#14928a}.m-container .m-core .msg[data-v-6ac5c6d1]{text-align:right;color:#777;font-size:32px;font-weight:700;position:absolute;right:40px;top:-33px}.m-container .m-core .msg img[data-v-6ac5c6d1]{width:36px;height:36px;position:relative;top:5px;margin-right:8px}.m-container .m-core .abs[data-v-6ac5c6d1]{position:absolute;right:240px;top:-28px}.m-container .term[data-v-6ac5c6d1]{height:32px;line-height:32px;border-radius:24px;width:100px;color:#14928a;border:1px solid #14928a;font-size:14px;text-align:center;margin-right:12px}.m-container .term[data-v-6ac5c6d1]:first-child{margin-left:47px}.m-container .term.active[data-v-6ac5c6d1]{color:#fff;background-color:#14928a}
+.cl-container .topFrom{margin:20px 30px 0}.cl-container .topFrom .classlist{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}.cl-container .topFrom .classlist ul li{list-style:none}.cl-container .searchForm{margin:0 30px}.btnWraps{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}.btnWraps div{margin-right:20px}.m-container .m-core .msg.ing[data-v-302f7eb4]{color:#14928a}.m-container .m-core .msg[data-v-302f7eb4]{text-align:right;color:#777;font-size:32px;font-weight:700;position:absolute;right:40px;top:-33px}.m-container .m-core .msg img[data-v-302f7eb4]{width:36px;height:36px;position:relative;top:5px;margin-right:8px}.m-container .m-core .abs[data-v-302f7eb4]{position:absolute;right:240px;top:-28px}.m-container .term[data-v-302f7eb4]{height:32px;line-height:32px;border-radius:24px;width:100px;color:#14928a;border:1px solid #14928a;font-size:14px;text-align:center;margin-right:12px}.m-container .term[data-v-302f7eb4]:first-child{margin-left:47px}.m-container .term.active[data-v-302f7eb4]{color:#fff;background-color:#14928a}

+ 1 - 1
dist/static/css/chunk-288b1ca9.0903b3b1.css → dist/static/css/chunk-43be6c96.c201d6f6.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-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}
+.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-4407b8ca]{font-size:14px}.btnList[data-v-4407b8ca]{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-4407b8ca]{margin-right:15px}

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-4ae6e26c.325a6afa.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-5ca930b1.49b931aa.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-6189ac20.7ec12e45.css


+ 0 - 1
dist/static/css/chunk-6a97b9c3.c9ab11db.css

@@ -1 +0,0 @@
-.number-input[data-v-5ec13f8a]{width:100%}.number-input[data-v-5ec13f8a] .el-input__inner,.number-input[data-v-57cd9361] .el-input__inner{text-align:left}.number-input[data-v-55ad3016]{width:100%}.number-input[data-v-55ad3016] .el-input__inner{text-align:left}

+ 0 - 0
dist/static/css/chunk-cc568e20.2715bb01.css → dist/static/css/chunk-6ca44dac.a689f268.css


+ 0 - 0
dist/static/css/chunk-7f15ad74.208eacb1.css → dist/static/css/chunk-6fc50c24.4c08a038.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-71ec9914.87085111.css


+ 0 - 0
dist/static/css/chunk-362f6420.d6dae5f5.css → dist/static/css/chunk-73863f78.75116445.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-76dcf6a2.abc9e089.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-78565ab7.23677173.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-7eb5956e.c5979425.css


+ 1 - 1
dist/static/css/chunk-d59046ce.4b3b0a28.css → dist/static/css/chunk-86dc7b98.97d60f9d.css

@@ -1 +1 @@
-[data-v-ce3060a2] .dialog-footer{margin-top:10px}.dialog-footer[data-v-ce3060a2]{float:right}.number-input[data-v-5ec13f8a]{width:100%}.number-input[data-v-5ec13f8a] .el-input__inner{text-align:left}.number-input[data-v-55ad3016]{width:100%}.number-input[data-v-55ad3016] .el-input__inner{text-align:left}.courseDiv[data-v-4c19b502]{height:45px;line-height:45px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.courseDiv[data-v-4c19b502],[data-v-4c19b502] .header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}[data-v-4c19b502] .header{width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}[data-v-4c19b502] .header>span:first-child{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-4c19b502] .header>span:first-child:before{content:"";display:block;width:5px;background-color:#14928a;margin-right:10px;border-radius:2px;height:48px}[data-v-4c19b502] .header .icon{font-size:18px;font-weight:400;margin-right:20px}[data-v-4c19b502] .header /deep/.el-collapse-item__wrap{border-bottom:none!important}.title[data-v-225a961a]{line-height:44px}.fixedBox[data-v-225a961a]{position:fixed;bottom:20px;right:10px;z-index:100;width:200px;background-color:#fff;font-size:14px}.fixedBox .boxWrap[data-v-225a961a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fixedBox .boxWrap i[data-v-225a961a]{font-size:18px;cursor:pointer}[data-v-225a961a] .el-divider--horizontal{margin:0!important}.minus[data-v-225a961a]{float:right;line-height:44px;padding-right:20px;font-size:20px;cursor:pointer}
+[data-v-ce3060a2] .dialog-footer{margin-top:10px}.dialog-footer[data-v-ce3060a2]{float:right}.number-input[data-v-e3750f40]{width:100%}.number-input[data-v-e3750f40] .el-input__inner{text-align:left}.number-input[data-v-55ad3016]{width:100%}.number-input[data-v-55ad3016] .el-input__inner{text-align:left}.courseDiv[data-v-4c19b502]{height:45px;line-height:45px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.courseDiv[data-v-4c19b502],[data-v-4c19b502] .header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}[data-v-4c19b502] .header{width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}[data-v-4c19b502] .header>span:first-child{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-4c19b502] .header>span:first-child:before{content:"";display:block;width:5px;background-color:#14928a;margin-right:10px;border-radius:2px;height:48px}[data-v-4c19b502] .header .icon{font-size:18px;font-weight:400;margin-right:20px}[data-v-4c19b502] .header /deep/.el-collapse-item__wrap{border-bottom:none!important}.title[data-v-225a961a]{line-height:44px}.fixedBox[data-v-225a961a]{position:fixed;bottom:20px;right:10px;z-index:100;width:200px;background-color:#fff;font-size:14px}.fixedBox .boxWrap[data-v-225a961a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fixedBox .boxWrap i[data-v-225a961a]{font-size:18px;cursor:pointer}[data-v-225a961a] .el-divider--horizontal{margin:0!important}.minus[data-v-225a961a]{float:right;line-height:44px;padding-right:20px;font-size:20px;cursor:pointer}

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-ba05f8b2.dc02868e.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-c4d77696.3da48583.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.162d117f.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.8f9dde62.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-0182cd82.ca6cf52c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-018ff2e2.390454dd.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-0320c3e4.e700d2e1.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-03221830.2900bf75.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-06b8e50e.b0609ba4.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-08a5bd4e.d821d9a0.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-0e37a996.12e1a49a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-0fc223d0.32a765ea.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-1b5749db.29ce86c7.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-23ad114e.f18cfdb9.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-288b1ca9.a95370cf.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-29376f32.8c1b4100.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-2c7b6d48.c4a65aba.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-2ddc0e3f.211382dc.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-2e582aba.cbf0d298.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-362f6420.52c4aacd.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-42ab66a4.bbbf44d2.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-43358ef0.a361710a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-43a42ee0.97566efb.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-43be6c96.00c4d50a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-4ae6e26c.8450957c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-529acf22.9385bfe0.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-5ca930b1.929613f7.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-6189ac20.aa13b36c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-65b41ce8.587d2979.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-6a97b9c3.1e259b4a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-6ca44dac.54e7998a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-6fc50c24.da8feea5.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-71ec9914.d7db2107.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-73863f78.a075c25f.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-76dcf6a2.4344ce8c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-76f1424b.6cb9a540.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-78565ab7.7a9ca994.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-787a507d.9ffc2b07.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-7eb5956e.6eb6b21f.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-86dc7b98.08e030f6.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-ba05f8b2.ccc385be.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-c4d77696.79fe0cce.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-d3503f20.61e7b333.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-d59046ce.75507a59.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-d9d8b098.086bd71c.js


+ 42 - 8
src/components/remote-search/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-select
+    <el-select v-if='!multiple'
       v-bind="{...$attrs}"
       :value="value"
       filterable
@@ -22,6 +22,29 @@
       >
       </el-option>
     </el-select>
+
+
+        <el-select v-else
+      v-bind="{...$attrs}"
+      :value="value"
+      filterable
+      remote
+      reserve-keyword
+      clearable
+      :multiple="multiple"
+      :placeholder="placeholder"
+      :loading="loading"
+      @change="changeValue"
+      :style="{ width: this.selectWidt + 'px!important' }"
+    >
+      <el-option
+        v-for="(item, index) in options"
+        :key="index"
+        :label="item.userName"
+        :value="item.userId"
+      >
+      </el-option>
+    </el-select>
   </div>
 </template>
 <script>
@@ -50,6 +73,7 @@ export default {
     // this.getList();
     // console.log(this.value)
     this.getOptions(this.value|| '' )
+    // console.log(this.multiple)
 
 
   },
@@ -62,37 +86,46 @@ export default {
         data[item.userId] = item
       }
       this.listById = data
-
-      this.options =
+    if(this.multiple){
+       this.options =this.list
+    }else{
+       this.options =
         this.list.length <= this.constant
           ? this.list
           : slice(this.list, 0, this.constant);
+    }
+     
 
             //  console.log(this.options)
     },
     remoteMethod(query) {
       // throttle
-      throttle(this.getOptions, 800)(query);
+      if(!this.multiple){
+         throttle(this.getOptions, 800)(query);
+      }
+     
     },
     async getOptions(query) {
-      if (query) {
+
+      if (query&&query.length>0) {
         let flag;
         this.options = this.list.filter((item) => {
           flag =
             item.userName.toLowerCase().indexOf(query.toString().toLowerCase()) > -1 ||
             item.userId == query;
           if (this.multiple) {
+            console.log(this.value,this.value.includes(item.userId),item.userId)
             return flag || this.value.includes(item.userId);
           } else {
             // console.log(query,this.value)
             return flag || item.userId == this.value;
           }
         });
+  
       } else {
           try{
              await this.getList()
           const optionids = this.options.map(item => item.userId)
-
           const valueItem = this.listById[this.value]
           if (!optionids.includes(this.value) && valueItem) {
             this.options.push(valueItem)
@@ -126,11 +159,12 @@ export default {
 
         if (this.multiple) {
           if (val?.length > 0 && this.isFirst) {
-           this.getOptions('')
+
+           this.getOptions()
           }
         } else {
           if (val && this.isFirst) {
-            this.getOptions('')
+            this.getOptions()
           }else{
              this.getOptions(val)
           }

+ 19 - 18
src/layout/components/AppMain.vue

@@ -1,35 +1,36 @@
 <template>
   <section class="app-main">
     <!--   -->
-    <transition name="fade-transform"
-                mode="out-in">
-      <keep-alive v-if="needKeep">
-        <router-view :key="key" />
-      </keep-alive>
-      <router-view v-else :key="key" />
+    <transition name="fade-transform" mode="out-in">
+      <div>
+        <keep-alive >
+          <router-view :key="key" v-if="needKeep" />
+        </keep-alive>
+        <router-view v-if="!needKeep" :key="key" />
+      </div>
     </transition>
   </section>
 </template>
 
 <script>
-import notKeepAliveList from '@/router/notKeepAliveList'
+import notKeepAliveList from "@/router/notKeepAliveList";
 export default {
-  name: 'AppMain',
+  name: "AppMain",
   computed: {
-    key () {
-      return this.$route.path
+    key() {
+      return this.$route.path;
     },
     needKeep() {
-      return !notKeepAliveList.includes(this.$route.path)
+      return !notKeepAliveList.includes(this.$route.path);
     },
-    cachedViews () {
-      return this.$store.state.tagsView.cachedViews
+    cachedViews() {
+      return this.$store.state.tagsView.cachedViews;
     },
-    keep () {
-      return this.$route.meta.noCache
-    }
-  }
-}
+    keep() {
+      return this.$route.meta.noCache;
+    },
+  },
+};
 </script>
 
 <style scoped>

+ 45 - 32
src/layout/components/TagsView.vue

@@ -10,7 +10,12 @@
         :key="index"
         @contextmenu.prevent.native="openMenu(tag, $event)"
       >
-        <span :title="generateTitle(tag.title)" class="item" @click="changeTag(tag)">{{ generateTitle(tag.title) }}</span>
+        <span
+          :title="generateTitle(tag.title)"
+          class="item"
+          @click="changeTag(tag)"
+          >{{ generateTitle(tag.title) }}</span
+        >
         <!-- v-if="index == Array.from(visitedViews).length -1" -->
         <span
           class="el-icon-close icon"
@@ -35,7 +40,7 @@
 import ScrollPane from "@/components/ScrollPane";
 import { generateTitle } from "@/utils/i18n";
 import { Searchs } from "@/helpers";
-let activeKey = ''
+let activeKey = "";
 export default {
   name: "TagsView",
   components: { ScrollPane },
@@ -61,22 +66,22 @@ export default {
       this.addViewTags();
       this.moveToCurrentTag();
       if (!activeKey && !this.$store.state.tagsView.isBack) {
-        const s = new Searchs()
-        const keys = [this.$route.path]
+        const s = new Searchs();
+        const keys = [this.$route.path];
         for (const key in s.searchs) {
           if (Object.hasOwnProperty.call(s.searchs, key)) {
             const item = s.searchs[key];
             if (item.bind === this.$route.path) {
-              keys.push(key)
+              keys.push(key);
             }
           }
         }
         for (const item of keys) {
-          s.removeByKey(item)
+          s.removeByKey(item);
         }
       }
-      this.$store.commit('SET_IS_BACK', false)
-      activeKey = ''
+      this.$store.commit("SET_IS_BACK", false);
+      activeKey = "";
     },
     visible(value) {
       if (value) {
@@ -109,16 +114,20 @@ export default {
       const searchs = new Searchs();
       const allSearch = searchs.getSearchs();
       const sks = Object.keys(allSearch);
-      let route = this.$route
+      let route = this.$route;
       for (const item of sks) {
         if (!(keys.includes(item) || keys.includes(allSearch[item].bind))) {
           searchs.removeByKey(item);
         }
 
-        let tempSaveKeyList = item.split('|')
+        let tempSaveKeyList = item.split("|");
         // 大于1说明的特殊标识编号
-        if(tempSaveKeyList.length > 1) {
-          if(allSearch[item] && route.path == allSearch[item].bind && route.query[tempSaveKeyList[1]] != tempSaveKeyList[2]) {
+        if (tempSaveKeyList.length > 1) {
+          if (
+            allSearch[item] &&
+            route.path == allSearch[item].bind &&
+            route.query[tempSaveKeyList[1]] != tempSaveKeyList[2]
+          ) {
             searchs.removeByKey(item);
           }
         }
@@ -139,26 +148,31 @@ export default {
         for (const tag of tags) {
           if (tag.path === this.$route.path) {
             this.$refs.scrollPane.moveToTarget(tag.$el);
+            // const searchs = new Searchs();
+            // const allSearch = searchs.getSearchs();
+            // console.log(allSearch)
             break;
           }
         }
       });
     },
     closeSelectedTag(view) {
-        activeKey = '1'
+      activeKey = "1";
 
       const searchs = new Searchs();
       searchs.remove(this.$route.path);
-      this.$store.dispatch("delVisitedViews", {...view, dontNeedSave: true}).then((views) => {
-        if (this.isActive(view)) {
-          const latestView = views.slice(-1)[0];
-          if (latestView) {
-            this.$router.push(latestView.fullPath);
-          } else {
-            this.$router.push("/");
+      this.$store
+        .dispatch("delVisitedViews", { ...view, dontNeedSave: true })
+        .then((views) => {
+          if (this.isActive(view)) {
+            const latestView = views.slice(-1)[0];
+            if (latestView) {
+              this.$router.push(latestView.fullPath);
+            } else {
+              this.$router.push("/");
+            }
           }
-        }
-      });
+        });
     },
     closeOthersTags() {
       this.$router.push(this.selectedTag.path);
@@ -180,25 +194,24 @@ export default {
       this.visible = false;
     },
     changeTag(tag) {
-      console.log(tag)
-      activeKey = this.getSearchsByRealPath(tag)
-
+      console.log(tag);
+      activeKey = this.getSearchsByRealPath(tag);
     },
     getSearchsByRealPath(tag) {
-      const searchs = new Searchs()
-      let keyName = ''
+      const searchs = new Searchs();
+      let keyName = "";
 
-      console.log( searchs.searchs)
+      console.log(searchs.searchs);
       for (const key in searchs.searchs) {
         if (Object.hasOwnProperty.call(searchs.searchs, key)) {
           const item = searchs.searchs[key];
           if (tag.path === key || item.bind === tag.path) {
-            keyName = item.bind || tag.path
+            keyName = item.bind || tag.path;
           }
         }
       }
       // this.activeKey = keyName
-      return keyName
+      return keyName;
     },
     async refresh(view) {
       await this.reloads();
@@ -246,7 +259,7 @@ export default {
         z-index: 2;
 
         &::before {
-           border-right: 0;
+          border-right: 0;
         }
       }
       &::before {
@@ -285,7 +298,7 @@ export default {
 //reset element css of el-icon-close
 .tags-view-wrapper {
   .tags-view-item {
-    .item{
+    .item {
       flex: 1;
       text-overflow: ellipsis;
       overflow: hidden;

+ 5 - 1
src/router/index.js

@@ -158,7 +158,11 @@ export const asyncRoutes = {
   payAppeal: () => import('@/views/workBenchManager/payAppeal'),
   // 乐团管理
   teamDetail: () => import('@/views/teamDetail/teamList'),
-  teamBuild: () => import('@/views/teamBuild/index'),
+  teamBuild: () => import('@/views/teamBuild/index'), // 新建
+  teamDraft:() => import('@/views/teamBuild/teamDraft'), // 编辑
+  teamAudit:() => import('@/views/teamBuild/teamDraft'), // 审核
+  feeAudit:() => import('@/views/teamBuild/teamDraft'), // 费用审核
+  auditFailed:() => import('@/views/teamBuild/teamDraft'), // 审核失败
   forecastName: () => import('@/views/teamBuild/forecastName'), // 预报名页面
   createPayment: () => import('@/views/teamBuild/createPayment'), // 创建缴费页面
   // VIP管理

+ 6 - 2
src/router/notKeepAliveList.js

@@ -73,7 +73,6 @@ export default [
   '/orderList/payRecord', // 支出记录
   '/orderList/businessStatement', // 经营报表
   '/business/buildVip', // 新建vip
-  '/orderList/businessStatement', // 经营报表
   '/orderList/resetList', // 更换列表
   '/orderList/incomeOut', // 对外订单管理
   '/business/signupList', // 报名缴费
@@ -91,5 +90,10 @@ export default [
   '/business/teacherDetail',
   '/arrearage-students',
   '/business/strudentPayInfo',
-  '/timedTask/timedTask'
+  '/timedTask/timedTask',
+  '/business/createPayment',
+  '/business/teamDraft',
+  '/business/teamAudit',
+  '/business/auditFailed',
+  // '/business/feeAudit', 
 ]

+ 3 - 1
src/store/getters.js

@@ -13,6 +13,8 @@ const getters = {
   payList: state => state.buildTeam.payList,
   phone: state => state.user.phone,
   newStudentinfo: state => state.buildTeam.newStudentList,
-  reactClassStudentList:state=>state.reactClassStudent.classList 
+  reactClassStudentList:state=>state.reactClassStudent.classList ,
+  buildIndex:state=>state.buildTeam.buildIndex,
+  draftIndex:state=>state.buildTeam.draftIndex
 }
 export default getters

+ 18 - 3
src/store/modules/buildTeam.js

@@ -2,7 +2,9 @@ const state = {
   topinfo: {},
   checkinfo: {},
   payList: {},
-  newStudentList: {}
+  newStudentList: {},
+  buildIndex:'',
+  draftIndex:''
 }
 
 const mutations = {
@@ -17,7 +19,15 @@ const mutations = {
   },
   SET_NEW_STUDENT (state, newStudentList) {
     state.newStudentList = newStudentList
+  },
+  SET_BUILD_INDEX(state,buildIndex){
+    state.buildIndex = buildIndex
+  },
+  SET_DRAFT_INDEX(state,draftIndex){
+    state.draftIndex = draftIndex
   }
+
+
 }
 const actions = {
   topinfo ({ commit }, topinfo) {
@@ -30,12 +40,17 @@ const actions = {
     commit('SET_PAY', payList)
   },
   newStudentinfo ({ commit }, newStudentList) {
-
     commit('SET_NEW_STUDENT', newStudentList)
+  },
+  buildIndex({commit},buildIndex){
+    commit('SET_BUILD_INDEX', buildIndex)
+  },
+  draftIndex({commit},draftIndex){
+    commit('SET_DRAFT_INDEX', draftIndex)
   }
 }
 export default {
   state,
   mutations,
   actions
-}
+}

+ 3 - 0
src/store/modules/tagsView.js

@@ -31,10 +31,13 @@ const tagsView = {
     },
     DEL_VISITED_VIEWS: (state, view) => {
       for (const [i, v] of state.visitedViews.entries()) {
+
         if (v.path === view.path) {
+
           if (state.visitedViews.length == 1 && state.visitedViews[0].path == '/main/main') {
             break
           } else {
+
             state.visitedViews.splice(i, 1)
             break
           }

+ 8 - 3
src/views/resetTeaming/components/strudentPayInfo.vue

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

+ 8 - 0
src/views/resetTeaming/modals/payment-cycle.vue

@@ -48,6 +48,7 @@
         v-model="form.paymentDate"
         type="daterange"
         style="width: 100%;"
+          :picker-options="pickerOptions"
         range-separator="至"
         start-placeholder="开始日期"
         end-placeholder="结束日期">
@@ -60,6 +61,7 @@
     >
       <el-date-picker
         v-model="form.paymentValid"
+         :picker-options="pickerOptions"
         type="daterange"
         style="width: 100%;"
         range-separator="至"
@@ -77,6 +79,12 @@ export default {
   data() {
     return {
       paymentPatternTypeOptions: objectToOptions(paymentPatternType),
+         pickerOptions: {
+        firstDayOfWeek: 1,
+        disabledDate (time) {
+          return time.getTime() + 86400000 <= new Date().getTime();
+        },
+      },
     }
   },
   methods: {

+ 1 - 1
src/views/resetTeaming/modals/subject-preview.vue

@@ -35,7 +35,7 @@
 			</el-row>
 			<!-- 可选课程信息集合 -->
 			<template v-for="(item, index) in courseInfo">
-				<el-row class="option-row" :key="index" @click.native="onCourseChange(item)" v-if="courseViewType == 0">
+				<el-row class="option-row" :key="index" @click.native="onCourseChange(item)" v-if="courseViewType == 0 && !item.isStudentOptional">
 					<el-col :span="12">
 						<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>

+ 0 - 1
src/views/setSilder/addSilder.vue

@@ -305,7 +305,6 @@ export default {
           name: '根结点',
           children: []
         })
-        console.log(this.cascaderList)
       })
     },
     setTableData (result) {

+ 210 - 118
src/views/teamBuild/components/soundSetComponents/soundSetCore.vue

@@ -1,6 +1,9 @@
 <template>
   <div>
-    <div class="soundBtnWrap">
+    <div
+      :class="isField ? 'soundBtnWrap' : 'soundBtnFixed'"
+      v-if="teamStatus != 'resetTeam' && !basdisabled"
+    >
       <el-button
         type="primary"
         @click="allin"
@@ -17,6 +20,7 @@
         >添加</el-button
       >
     </div>
+    <div class="wall" v-if="teamStatus != 'resetTeam' && !basdisabled"></div>
     <div class="coreWrap">
       <el-checkbox-group v-model="checkList" @change="lookCheck">
         <el-collapse v-model="chioseActiveSound">
@@ -66,9 +70,15 @@
                   :value="item.id"
                 >
                   <span style="float: left">{{ item.name }}</span>
-                  <span style="float: right; color: #8492a6; font-size: 13px; padding-right:20px">{{
-                    item.groupPurchasePrice|moneyFormat
-                  }}元</span>
+                  <span
+                    style="
+                      float: right;
+                      color: #8492a6;
+                      font-size: 13px;
+                      padding-right: 20px;
+                    "
+                    >{{ item.groupPurchasePrice | moneyFormat }}元</span
+                  >
                 </el-option>
               </el-select>
             </div>
@@ -120,14 +130,50 @@ export default {
       teamStatus: "", // 乐团状态
       checkList: [],
       basdisabled: false,
+      teamid: "",
+      isField: true,
     };
   },
   mounted() {
+    if (this.$route.query.id) {
+      this.teamid = this.$route.query.id;
+    }
+      window.addEventListener("scroll", this.getScroll);
     this.init();
   },
+  deactivated() {
+    window.removeEventListener("scroll", this.getScroll);
+  },
+  beforeDestroy() {
+    sessionStorage.setItem(
+      `${this.teamid}sound`,
+      JSON.stringify(this.activeSoundList)
+    );
+     window.removeEventListener("scroll", this.getScroll);
+  },
   activated() {
-    this.init();
+    if (
+      (this.teamid && this.teamid != this.$route.query.id) ||
+      this.teamStatus != this.$route.query.type
+    ) {
+      this.init();
+    } else {
+      if (!this.teamid && this.activeSoundList.length < 1) {
+        this.init();
+      }
+    }
+    this.teamStatus = this.$route.query.type;
+    if (
+      this.teamStatus == "look" ||
+      this.teamStatus == "teamAudit" ||
+      this.teamStatus == "feeAudit"
+    ) {
+      this.basdisabled = true;
+    } else {
+      this.basdisabled = false;
+    }
   },
+
   methods: {
     init() {
       // 获取第一页的数据
@@ -135,12 +181,6 @@ export default {
       let type = this.topfor.type;
       let section = this.topfor.section;
       this.teamStatus = this.$route.query.type;
-      if (this.$route.query.search) {
-        this.Fsearch = this.$route.query.search;
-      }
-      if (this.$route.query.rules) {
-        this.Frules = this.$route.query.rules;
-      }
       if (
         this.teamStatus == "look" ||
         this.teamStatus == "teamAudit" ||
@@ -150,88 +190,101 @@ export default {
       } else {
         this.basdisabled = false;
       }
-      getSoundTree({ tenantId: 1 }).then((res) => {
-        if (res.code == 200) {
-          this.soundList = res.data.rows;
-          if (this.teamStatus == "newTeam" && type && section) {
-            getDefaultSubject({
-              chargeTypeId: type,
-              organId: section,
-              number: 1,
-            }).then((res) => {
-              if (res.code == 200) {
-                let activeSound = [];
-                this.activeSoundList = res.data.map((item) => {
-                  activeSound.push(item.id);
-                  return this.initSound(item);
-                });
-                this.activeSound = activeSound;
-                this.chioseActiveSound = activeSound;
-                this.changeActiveSound(activeSound.join(","));
-              }
-            });
-          } else {
-            this.teamid = this.$route.query.id;
-            if (this.teamid) {
-              findMusicGroupSubjectInfo({ musicGroupId: this.teamid }).then(
-                (res) => {
-                  if (res.code == 200) {
-                    let activeSound = [];
-                    this.activeSoundList = res.data?.musicGroupSubjectPlans.map(
-                      (item) => {
-                        activeSound.push(item.subjectId);
-                        return {
-                          id: parseInt(item.subjectId),
-                          sound: item.subName,
-                          expectedStudentNum: item.expectedStudentNum,
-                          chioseMusic: [],
-                          markChioseList: [],
-                          goodsList: [],
-                          markList: [],
-                        };
-                      }
-                    );
-                    this.activeSound = activeSound;
-                    this.chioseActiveSound = activeSound;
-                    this.changeActiveSound(activeSound.join(","));
-                    // 格式化商品和教辅
-                    res.data.musicGroupSubjectGoodsGroups.forEach((shop) => {
-                      let index = findIndex(this.activeSoundList, (o) => {
-                        return o.id == shop.subjectId;
-                      });
+      let sotrage = JSON.parse(
+        sessionStorage.getItem(`${this.$route.query.id}sound`)
+      );
+      if (sotrage&&sotrage[0]?.id) {
+        this.activeSoundList = sotrage;
+        let activeSound = [];
 
-                      if (index != -1) {
-                        if (shop.type == "ACCESSORIES") {
-                          shop.goodsIdList.split(",").forEach((item) => {
-                            this.activeSoundList[index].markChioseList.push(
-                              parseInt(item)
+        this.activeSoundList.forEach((item) => {
+          activeSound.push(item.id);
+        });
+        this.chioseActiveSound = activeSound;
+      } else {
+        getSoundTree({ tenantId: 1 }).then((res) => {
+          if (res.code == 200) {
+            this.soundList = res.data.rows;
+            if (this.teamStatus == "newTeam" && type && section) {
+              getDefaultSubject({
+                chargeTypeId: type,
+                organId: section,
+                number: 1,
+              }).then((res) => {
+                if (res.code == 200) {
+                  let activeSound = [];
+                  this.activeSoundList = res.data.map((item) => {
+                    activeSound.push(item.id);
+                    return this.initSound(item);
+                  });
+                  this.activeSound = activeSound;
+                  this.chioseActiveSound = activeSound;
+                  this.changeActiveSound(activeSound.join(","));
+                }
+              });
+            } else {
+              this.teamid = this.$route.query.id;
+              if (this.teamid) {
+                findMusicGroupSubjectInfo({ musicGroupId: this.teamid }).then(
+                  (res) => {
+                    if (res.code == 200) {
+                      let activeSound = [];
+                      this.activeSoundList = res.data?.musicGroupSubjectPlans.map(
+                        (item) => {
+                          activeSound.push(item.subjectId);
+                          return {
+                            id: parseInt(item.subjectId),
+                            sound: item.subName,
+                            expectedStudentNum: item.expectedStudentNum,
+                            chioseMusic: [],
+                            markChioseList: [],
+                            goodsList: [],
+                            markList: [],
+                          };
+                        }
+                      );
+                      this.activeSound = activeSound;
+                      this.chioseActiveSound = activeSound;
+                      this.changeActiveSound(activeSound.join(","));
+                      // 格式化商品和教辅
+                      res.data.musicGroupSubjectGoodsGroups.forEach((shop) => {
+                        let index = findIndex(this.activeSoundList, (o) => {
+                          return o.id == shop.subjectId;
+                        });
+
+                        if (index != -1) {
+                          if (shop.type == "ACCESSORIES") {
+                            shop.goodsIdList.split(",").forEach((item) => {
+                              this.activeSoundList[index].markChioseList.push(
+                                parseInt(item)
+                              );
+                            });
+                          } else if (shop.type == "INSTRUMENT") {
+                            // 商品
+                            let typeJson = Object.keys(
+                              JSON.parse(shop.kitGroupPurchaseTypeJson)
                             );
-                          });
-                        } else if (shop.type == "INSTRUMENT") {
-                          // 商品
-                          let typeJson = Object.keys(
-                            JSON.parse(shop.kitGroupPurchaseTypeJson)
-                          );
-                          this.activeSoundList[index].chioseMusic.push({
-                            musical: parseInt(shop.goodsIdList),
-                            type: typeJson,
-                            groupPrice: shop.price,
-                            borrowPrice: shop.depositFee,
-                            groupRemissionCourseFee: Boolean(
-                              shop.groupRemissionCourseFee
-                            ),
-                          });
+                            this.activeSoundList[index].chioseMusic.push({
+                              musical: parseInt(shop.goodsIdList),
+                              type: typeJson,
+                              groupPrice: shop.price,
+                              borrowPrice: shop.depositFee,
+                              groupRemissionCourseFee: Boolean(
+                                shop.groupRemissionCourseFee
+                              ),
+                            });
+                          }
                         }
-                      }
-                    });
+                      });
+                    }
                   }
-                  // console.log(this.activeSoundList);
-                }
-              );
+                );
+              }
             }
           }
-        }
-      });
+        });
+      }
+
       getSubject({ tenantId: 1 }).then((res) => {
         if (res.code == 200) {
           this.childSoundList = res.data;
@@ -371,7 +424,6 @@ export default {
         // 格式化商品数据 chioseMusic: [{ musical: '', type: ["GROUP"], groupPrice: 0, borrowPrice: 1500 }],
 
         active.chioseMusic.forEach((music) => {
-          // console.log(music);
           let goodsItem = null;
           let depositFee = music.borrowPrice;
           let price = music.groupPrice;
@@ -459,20 +511,22 @@ export default {
             //  zheli
 
             // 把第3步单独拆出来做成独立的模块
-            this.$confirm('乐团创建成功,是否提交审核?', '提示', {
-              confirmButtonText: '确定',
-              cancelButtonText: '取消',
-              type: 'warning'
-            }).then(() => {
-              this.teamStatus = 'teamDraft'
-              this.teamid = res.data
-              this.submitInfo(1)
-            }).catch(() => {
-              this.$store.dispatch('delVisitedViews', this.$route)
-              this.$router.push({
-                path: '/business/teamDetail'
+            this.$confirm("乐团创建成功,是否提交审核?", "提示", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                this.teamStatus = "teamDraft";
+                this.teamid = res.data;
+                this.submitInfo(1);
               })
-            });
+              .catch(() => {
+                this.$store.dispatch("delVisitedViews", this.$route);
+                this.$router.push({
+                  path: "/business/teamDetail",
+                });
+              });
           }
         });
       } else {
@@ -490,14 +544,14 @@ export default {
             // this.$emit("chiosetab", 2);
 
             // 创建乐团,只会到声部了
-            let query = this.$route.query
-            this.$store.dispatch('delVisitedViews', this.$route)
+            let query = this.$route.query;
+            this.$store.dispatch("delVisitedViews", this.$route);
             this.$router.push({
-              path: '/business/teamDetail',
+              path: "/business/teamDetail",
               query: {
-                ...query
-              }
-            })
+                ...query,
+              },
+            });
           }
         });
       }
@@ -507,15 +561,24 @@ export default {
         this.$message.error("请至少勾选一个");
         return;
       }
-      for (let i = 0; i < this.activeSoundList.length; i++) {
-        let index = this.checkList.indexOf(this.activeSoundList[i].id);
-        if (index != -1) {
-          this.activeSoundList.splice(i, 1);
-          this.activeSound.splice(i, 1);
-          i--;
-        }
-      }
-      this.checkList = [];
+      this.$confirm("确定删除选中声部?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          for (let i = 0; i < this.activeSoundList.length; i++) {
+            let index = this.checkList.indexOf(this.activeSoundList[i].id);
+            if (index != -1) {
+              this.activeSoundList.splice(i, 1);
+              this.activeSound.splice(i, 1);
+              i--;
+            }
+          }
+          this.checkList = [];
+          this.$message.success("删除成功");
+        })
+        .catch(() => {});
     },
     allin() {
       this.checkList = [];
@@ -555,10 +618,22 @@ export default {
         ownershipType: this.topfor.ownershipType,
         repairUserId: this.topfor.repairUserId,
         feeType: this.topfor.feeType,
-        directorUserId:this.topfor.head
+        directorUserId: this.topfor.head,
       };
       return obj;
     },
+    getScroll() {
+
+      this.scrollTop =
+        window.pageYOffset ||
+        document.documentElement.scrollTop ||
+        document.body.scrollTop;
+      if (!!this.scrollTop && this.scrollTop >= 210) {
+        this.isField = false;
+      } else {
+        this.isField = true;
+      }
+    },
   },
   watch: {
     activeSoundList: {
@@ -586,9 +661,26 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-.soundBtnWrap {
+.wall {
+  height: 60px;
   margin-bottom: 20px;
 }
+.soundBtnWrap {
+  width: 100%;
+  position: absolute;
+  background-color: #fff;
+  z-index: 100;
+  padding: 20px;
+}
+.soundBtnFixed {
+  top: 86px;
+  left: 205px;
+  width: 100%;
+  position: fixed;
+  background-color: #fff;
+  z-index: 100;
+  padding: 20px;
+}
 /deep/.el-collapse-item__header {
   background-color: #edeef0;
 }

+ 191 - 179
src/views/teamBuild/components/teamBaseInfo.vue

@@ -86,28 +86,37 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="教学地点"
-                      prop="address"
-                      :rules="[{ required: true, message: '教学地点不能为空' }]">
+        <el-form-item
+          label="教学地点"
+          prop="address"
+          :rules="[{ required: true, message: '教学地点不能为空' }]"
+        >
           <template #label>
-            <p style="position: relative; display: inline-block;"> 教学地点
+            <p style="position: relative; display: inline-block">
+              教学地点
               <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">
-                    如果已生成课表,则会修改未上课时的教学点
-                  </div>
-                  <i class="el-icon-question"
-                     style="font-size: 18px; color: #F56C6C"></i>
-                </el-tooltip>
+                <div slot="content">
+                  如果已生成课表,则会修改未上课时的教学点
+                </div>
+                <i
+                  class="el-icon-question"
+                  style="font-size: 18px; color: #f56c6c"
+                ></i>
+              </el-tooltip>
             </p>
           </template>
-          <el-select v-model.trim="topFrom.address"
-                     filterable
-                     clearable
-                     :disabled="!topFrom.section || basdisabled">
-            <el-option v-for="(item, index) in addList"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            v-model.trim="topFrom.address"
+            filterable
+            clearable
+            :disabled="!topFrom.section || basdisabled"
+          >
+            <el-option
+              v-for="(item, index) in addList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item
@@ -318,13 +327,7 @@
           修改
         </div>
         <!-- 审批或者草稿的下一步 -->
-        <div
-          class="nextBtn"
-          @click="gotoNext(1)"
-          v-if="showNext"
-        >
-          下一步
-        </div>
+        <div class="nextBtn" @click="gotoNext(1)" v-if="showNext">下一步</div>
       </div>
     </div>
   </div>
@@ -385,62 +388,6 @@ export default {
         ownershipType: "OWN", // 合作机构类型
         repairUserId: null, // 维修技师
       },
-      checkList: {
-        soundInfo: {
-          // 声部
-          ischeck: false,
-          value: "",
-          checkBuy: false,
-          isNew: 0,
-          isStatus: false,
-        },
-        allInfo: {
-          // 合奏
-          ischeck: false,
-          value: "",
-          checkBuy: false,
-          isNew: 0,
-          isStatus: false,
-        },
-        baseInfo: {
-          // 基础
-          ischeck: false,
-          value: "",
-          checkBuy: false,
-          isNew: 0,
-          isStatus: false,
-        },
-        holidayInfo: {
-          // 假期
-          ischeck: false,
-          value: "",
-          checkBuy: false,
-          isNew: 0,
-          isStatus: false,
-        },
-        networkInfo: {
-          ischeck: false,
-          value: "",
-          checkBuy: false,
-          isNew: 0,
-          isStatus: false,
-        },
-        submit: {
-          ischeck: false,
-          value:
-            "年度安排个月共xxx课时,课时,原价xxx元,现价xxxx元/月(约 xxxx元/课时 )",
-        },
-      }, // 选中的集合
-      newStudentList: {
-        baseInfo: {
-          ischeck: false,
-          value: "",
-          checkBuy: true,
-          nowValue: "",
-          isNew: 1,
-          isStatus: false,
-        },
-      },
       baseInfo: {},
       money: 580,
       orderInfo: {
@@ -452,25 +399,6 @@ export default {
       cooperationList: [], // 教学点列表
       teacherList: [], // 获取老师列表
       addList: [], // 教学地点列表
-      payList: {
-        school: {
-          ischeck: false,
-          value: "",
-          price: "",
-          chiose: "",
-        },
-        company: {
-          ischeck: false,
-          value: "",
-          price: "",
-          chiose: "",
-        },
-        student: {
-          ischeck: true,
-          chiose: "loop",
-        },
-        chioseMonth: [], // 选中的月份
-      },
       activeTeam: [],
       teamid: "",
       teamStatus: "",
@@ -482,11 +410,55 @@ export default {
   },
   created() {},
   mounted() {
+    if (this.$route.query.id) {
+      this.teamid = this.$route.query.id;
+    }
+    this.teamStatus = this.$route.query.type;
+    if (this.$route.query.type == "newTeam") {
+      this.onReset();
+    }
+
     this.init();
-    this.$forceUpdate();
-    // 获取分部下的员工
   },
-  beforeDestroy() {},
+  activated() {
+    if (
+      (this.teamid && this.teamid != this.$route.query.id) ||
+      this.teamStatus != this.$route.query.type
+    ) {
+      this.init();
+    }
+
+    if (this.$route.query.clear == "true") {
+      this.onReset();
+    }
+    if (this.teamStatus == "newTeam") {
+      this.$store.dispatch("buildIndex", 0);
+    }
+
+    if (this.teamStatus != "newTeam") {
+      this.$store.dispatch("draftIndex", 0);
+    }
+    this.teamStatus = this.$route.query.type;
+
+    if (
+      this.teamStatus == "look" ||
+      this.teamStatus == "teamAudit" ||
+      this.teamStatus == "feeAudit"
+    ) {
+      this.basdisabled = true;
+    } else {
+      this.basdisabled = false;
+    }
+  },
+  deactivated() {
+
+  },
+  beforeDestroy(){
+
+    sessionStorage.setItem(`${this.teamid}base`,JSON.stringify(this.topFrom));
+  },
+
+
   methods: {
     //|| this.teamStatus === 'teamAudit'
     isNotEditing: function () {
@@ -496,9 +468,7 @@ export default {
         this.teamStatus === "teamList"
       );
     },
-    changeFeeType(val) {
-      // console.log(val == "ONLINE");
-    },
+    changeFeeType(val) {},
     changePaymentValidStartDate(val) {
       if (val) {
         this.$set(this.topFrom, "paymentValidEndDate", "");
@@ -523,36 +493,38 @@ export default {
         },
       };
     },
-  init() {
+    init() {
       this.isInit = true;
-      // 分为3种  this.teamStatus
-      //          1.resetTeam 乐团修改
-      //          2. newTeam  新建乐团
-      //          3.teamList  跨团修改
-      //          4.teamDraft 乐团草稿
       this.teamStatus = this.$route.query.type;
+      if (this.teamStatus == "newTeam") {
+        this.$store.dispatch("buildIndex", 0);
+      }
+
+      if (this.teamStatus != "newTeam") {
+        this.$store.dispatch("draftIndex", 0);
+      }
       // 传过来的乐团信息
       this.activeTeam = this.getTeamList;
       if (
         this.teamStatus == "look" ||
         this.teamStatus == "teamAudit" ||
         this.teamStatus == "feeAudit"
-
       ) {
         this.basdisabled = true;
       } else {
         this.basdisabled = false;
       }
-      if (
-        this.$route.query.id
-      ) {
+      if (this.$route.query.id) {
         // 单团修改
         this.teamid = this.$route.query.id;
-        getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
-          if (res.code == 200) {
-            // if (this.$listeners.getBaseInfo) {
-            //   this.$listeners.getBaseInfo(res.data);
-            // }
+        let sotrage = JSON.parse(sessionStorage.getItem(`${this.$route.query.id}base`)) ;
+        if (!sotrage?.section) {
+
+          getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
+            if (res.code == 200) {
+              // if (this.$listeners.getBaseInfo) {
+              //   this.$listeners.getBaseInfo(res.data);
+              // }
 
             // 头部
             this.topFrom.name = res.data.musicGroup.name;
@@ -602,59 +574,79 @@ export default {
               queryByOrganId({ organId: res.data.musicGroup.organId }).then(
                 (res) => {
                   if (res.code == 200) {
-                    this.cooperationList = res.data;
+                    this.orgianList = res.data.rows;
                   }
-                }
-              );
-              // 获取教学点
-              getSchool({ organId: res.data.musicGroup.organId }).then(
-                (res) => {
+                });
+                // 获取合作单位
+                queryByOrganId({ organId: res.data.musicGroup.organId }).then(
+                  (res) => {
+                    if (res.code == 200) {
+                      this.cooperationList = res.data;
+                    }
+                  }
+                );
+                // 获取教学点
+                getSchool({ organId: res.data.musicGroup.organId }).then(
+                  (res) => {
+                    if (res.code == 200) {
+                      this.addList = res.data;
+                      this.isInit = false;
+                    }
+                  }
+                );
+
+                // 获取维修技师
+                findTechnician().then((res) => {
                   if (res.code == 200) {
-                    this.addList = res.data;
-                    this.isInit = false;
+                    this.technician = res.data;
                   }
-                }
-              );
+                });
+              }
+              this.$emit("getBaseInfo", res.data);
 
-              // 获取维修技师
-              findTechnician().then((res) => {
-                if (res.code == 200) {
-                  this.technician = res.data;
-                }
-              });
             }
-            this.$emit("getBaseInfo", res.data);
-          }
-        });
-      } else {
-        this.topFrom = {
-          type: "", // 收费类型
-          section: "", //所属分部
-          school: "", // 合作单位
-          courseViewType: "",
-          teacher: "", // 乐团主管
-          name: "", //乐团名称
-          boss: "", // 运营主管
-          time: "", // 报名截止时间
-          startClass: [], // 招生年级起始
-          paymentValid: [], // 缴费有效期时间起始
-          address: "", // 教学地点
-          salary: "", // 收费模式
-          head: "",
-          paymentPattern: "", // 缴费方式
-          isClass: false, //是否为课堂课
-          startTime: "",
-          ownershipType: "OWN", // 合作机构类型
-          feeType: null,
-        };
-        this.$refs["topinfo"].resetFields();
+          });
+        }else{
+          this.topFrom = sotrage
+             if ( this.topFrom.section) {
+                // 获取员工
+                queryEmployByOrganId({
+                  organId: this.topFrom.section,
+                  rows: 1000,
+                }).then((res) => {
+                  if (res.code == 200) {
+                    this.orgianList = res.data.rows;
+                  }
+                });
+                // 获取合作单位
+                queryByOrganId({ organId: this.topFrom.section }).then(
+                  (res) => {
+                    if (res.code == 200) {
+                      this.cooperationList = res.data;
+                    }
+                  }
+                );
+                // 获取教学点
+                getSchool({ organId: this.topFrom.section }).then(
+                  (res) => {
+                    if (res.code == 200) {
+                      this.addList = res.data;
+                      this.isInit = false;
+                    }
+                  }
+                );
+
+                // 获取维修技师
+                findTechnician().then((res) => {
+                  if (res.code == 200) {
+                    this.technician = res.data;
+                  }
+                });
+             }
+
+             }
       }
-      // 1.获取各个选项卡的数据内容
-      // getSection({ 'delFlag': 0, 'rows': 1000 }).then(res => {
-      //   if (res.code == 200) {
-      //     this.sectionList = res.data.rows;
-      //   }
-      // }).catch()
+      this.$emit("getName", this.topFrom.name);
       getEmployeeOrgan().then((res) => {
         if (res.code == 200) {
           this.sectionList = res.data;
@@ -667,7 +659,6 @@ export default {
         }
       });
       // 缓存设置时的状态
-      sessionStorage.setItem("resetCode", "1");
     },
     changeSection(val) {
       // 修改分部的时候 重置运营主管 重置乐团主管 重置乐队指导 合作单位  教学点
@@ -702,7 +693,7 @@ export default {
       });
     },
     chioseSchool(val) {},
-     gotoNext(num) {
+    gotoNext(num) {
       this.$refs["topinfo"].validate((valid, object) => {
         if (!valid) {
           this.$message.error("请填写建团必要参数");
@@ -722,7 +713,6 @@ export default {
       });
     },
     resetSubmit() {
-
       this.$refs["topinfo"].validate((valid, object) => {
         if (!valid) {
           this.$message.error("请填写必要参数");
@@ -809,6 +799,29 @@ export default {
       // this.topFrom.paymentValidStartDate = ''
       // this.topFrom.paymentValidEndDate = ''
     },
+    onReset() {
+      this.topFrom = {
+        type: "", // 收费类型
+        section: "", //所属分部
+        school: "", // 合作单位
+        courseViewType: "",
+        teacher: "", // 乐团主管
+        name: "", //乐团名称
+        boss: "", // 运营主管
+        time: "", // 报名截止时间
+        startClass: [], // 招生年级起始
+        paymentValid: [], // 缴费有效期时间起始
+        address: "", // 教学地点
+        salary: "", // 收费模式
+        head: "",
+        paymentPattern: "", // 缴费方式
+        isClass: false, //是否为课堂课
+        startTime: "",
+        ownershipType: "OWN", // 合作机构类型
+        feeType: null,
+      };
+      this.$refs["topinfo"].resetFields();
+    },
   },
   computed: {
     startClassString() {
@@ -824,15 +837,14 @@ export default {
         .join(",");
     },
     showNext() {
-      const teamStatus = this.teamStatus
-      // console.log(teamStatus)
+      const teamStatus = this.teamStatus;
       return (
-        teamStatus == 'newTeam' ||
-        teamStatus == 'teamDraft' ||
-        teamStatus == 'teamAudit' ||
-        teamStatus == 'feeAudit'
-      )
-    }
+        teamStatus == "newTeam" ||
+        teamStatus == "teamDraft" ||
+        teamStatus == "teamAudit" ||
+        teamStatus == "feeAudit"
+      );
+    },
   },
 };
 </script>

+ 81 - 60
src/views/teamBuild/components/teamSoundSet.vue

@@ -4,27 +4,51 @@
       <p>当前选择声部数(个):{{ chioseSoundNum }}</p>
       <p style="margin-left: 30px">计划招生人数(个):{{ PlannedCount }}</p>
     </div>
-    <soundSetCore ref="soundSetCore"
-                  @chiosetab="chiosetab"
-                  @getBaseInfo="getBaseInfo"
-                  @getNumber="getNumber" />
+    <soundSetCore
+      ref="soundSetCore"
+      @chiosetab="chiosetab"
+      @getBaseInfo="getBaseInfo"
+      @getNumber="getNumber"
+    />
     <div class="btnWrap">
       <el-button type="primary" @click="goback">上一步</el-button>
 
-      <el-button type="primary"
+      <el-button
+        type="primary"
         v-if="teamStatus == 'newTeam'"
         @click="submitInfo()"
         v-permission="{
           child: 'musicGroup/createGroup',
           parent: '/teamBuild/soundMoney',
-        }">提交</el-button>
-      <el-button type="primary" @click="submitAudit(1)" v-if="teamStatus == 'teamDraft'">提交审核</el-button>
-      <el-button type="primary" @click="approval"
-           v-if="teamStatus == 'teamAudit'"
-           v-permission="{child: 'musicGroup/auditSuccess', parent: '/teamBuild/teamAudit/soundMoney'}">审核通过</el-button>
-      <el-button type="danger" @click="refuse"
-           v-if="teamStatus == 'teamAudit'"
-           v-permission="{child: 'musicGroup/auditFailed', parent: '/teamBuild/teamAudit/soundMoney'}">驳回</el-button>
+        }"
+        >提交</el-button
+      >
+      <el-button
+        type="primary"
+        @click="submitAudit(1)"
+        v-if="teamStatus == 'teamDraft'"
+        >提交审核</el-button
+      >
+      <el-button
+        type="primary"
+        @click="approval"
+        v-if="teamStatus == 'teamAudit'"
+        v-permission="{
+          child: 'musicGroup/auditSuccess',
+          parent: '/teamBuild/teamAudit/soundMoney',
+        }"
+        >审核通过</el-button
+      >
+      <el-button
+        type="danger"
+        @click="refuse"
+        v-if="teamStatus == 'teamAudit'"
+        v-permission="{
+          child: 'musicGroup/auditFailed',
+          parent: '/teamBuild/teamAudit/soundMoney',
+        }"
+        >驳回</el-button
+      >
       <!--  v-if="teamStatus != 'teamAudit'" -->
       <!-- <div
         class="submitBtn"
@@ -60,27 +84,13 @@
   </div>
 </template>
 <script>
-import store from "@/store";
-import { formatData } from "@/utils/utils";
-import {
-  getSubject,
-  getDefaultSubject,
-  getGoods,
-  createTeam,
-  getSoundTree,
-  findMusicGroupSubjectInfo,
-  updateSubjectInfo,
-  auditSuccess,
-  auditFailed,
-  getSubjectGoods,
-} from "@/api/buildTeam";
+import { auditSuccess, auditFailed } from "@/api/buildTeam";
 import dayjs from "dayjs";
-
 import soundSetCore from "./soundSetComponents/soundSetCore";
 
 export default {
   components: { soundSetCore },
-  data () {
+  data() {
     return {
       topfor: null, // 第一页的数据
       Fsearch: null,
@@ -89,32 +99,41 @@ export default {
       chioseSoundNum: 0,
       PlannedCount: 0,
       teamStatus: null,
-      teamid: null
+      teamid: null,
     };
   },
-  mounted () {
-    // console.log(this)
+  mounted() {
     this.teamid = this.$route.query.id;
     this.teamStatus = this.$route.query.type;
+    if (this.teamStatus == "newTeam") {
+      this.$store.dispatch("buildIndex", 1);
+    }
+    if (this.teamStatus != "newTeam") {
+      this.$store.dispatch("draftIndex", 1);
+    }
   },
-  activated () {
+  activated() {
+      if (this.teamStatus == "newTeam") {
+        this.$store.dispatch("buildIndex", 1);
+      }
+      if (this.teamStatus != "newTeam") {
+        this.$store.dispatch("draftIndex", 1);
+      }
     this.teamid = this.$route.query.id;
     this.teamStatus = this.$route.query.type;
   },
   methods: {
-    handleClick(evt) {
-      // console.log(evt)
-    },
-    goback () {
+    handleClick(evt) {},
+    goback() {
       this.$emit("chiosetab", 0);
     },
-    submitInfo () {
+    submitInfo() {
       this.$refs.soundSetCore.submitInfo();
     },
-    chiosetab (val) {
+    chiosetab(val) {
       this.$emit("chiosetab", val);
     },
-    submitAudit (val) {
+    submitAudit(val) {
       this.$confirm(`是否提交审核?`, "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
@@ -123,20 +142,20 @@ export default {
         .then(() => {
           this.$refs.soundSetCore.submitInfo(val);
         })
-        .catch(() => { });
+        .catch(() => {});
     },
     selectMusic() {
-      this.$refs.soundSetCore.submitInfo()
-      this.$emit('chiosetab', 3)
+      this.$refs.soundSetCore.submitInfo();
+      this.$emit("chiosetab", 3);
     },
-    getNumber (chioseSoundNum, PlannedCount) {
+    getNumber(chioseSoundNum, PlannedCount) {
       this.chioseSoundNum = chioseSoundNum;
       this.PlannedCount = PlannedCount;
     },
-    getBaseInfo (baseInfo) {
-      this.$emit('getBaseInfo', baseInfo)
+    getBaseInfo(baseInfo) {
+      this.$emit("getBaseInfo", baseInfo);
     },
-    approval () {
+    approval() {
       this.$confirm(`是否审核通过?`, "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
@@ -146,7 +165,7 @@ export default {
           auditSuccess({ musicGroupId: this.teamid }).then((res) => {
             if (res.code == 200) {
               this.$message.success("审核通过");
-              this.$store.dispatch('delVisitedViews', this.$route)
+              this.$store.dispatch("delVisitedViews", this.$route);
               this.$router.push({
                 path: "/business/teamDetail",
                 query: { search: this.Fsearch, rules: this.Frules },
@@ -154,29 +173,31 @@ export default {
             }
           });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
-    refuse () {
+    refuse() {
       // auditFailed
       this.$prompt("请输入拒绝原因", "提示", {
         confirmButtonText: "确定",
-        cancelButtonText: "取消"
+        cancelButtonText: "取消",
       }).then(({ value }) => {
         //   点击确认  值是value
         if (!value) {
           this.$message.error("请输入驳回原因");
           return;
         } else {
-          auditFailed({ musicGroupId: this.teamid, memo: value }).then(res => {
-            if (res.code == 200) {
-              this.$message.success("已拒绝");
-              this.$store.dispatch('delVisitedViews', this.$route)
-              this.$router.push({
-                path: "/business/teamDetail",
-                query: { search: this.Fsearch, rules: this.Frules }
-              });
+          auditFailed({ musicGroupId: this.teamid, memo: value }).then(
+            (res) => {
+              if (res.code == 200) {
+                this.$message.success("已拒绝");
+                this.$store.dispatch("delVisitedViews", this.$route);
+                this.$router.push({
+                  path: "/business/teamDetail",
+                  query: { search: this.Fsearch, rules: this.Frules },
+                });
+              }
             }
-          });
+          );
         }
       });
     },

+ 21 - 20
src/views/teamBuild/index.vue

@@ -29,17 +29,6 @@
                alt=""
                class="arrow" />
         </span>
-        <!--  @click="activeIndex = 2" -->
-        <!-- <span class="stepspan stepspan3"
-              v-if="showFlag?activeIndex  >=  2:true">
-          <div class="step2 sptep"
-               :class="activeIndex  >=  2 ? 'activestep' : ''">
-            创建缴费
-          </div>
-          <img :src="activeIndex >= 2 ? stepImgs.nol : stepImgs.active"
-               alt=""
-               class="arrow" />
-        </span> -->
       </div>
 
       <!-- 下面显示的内容 -->
@@ -50,21 +39,17 @@
                         :getTeamList="getTeamList"
                         @getBaseInfo="getBaseInfo" />
         </div>
-        <div v-if="activeIndex == 1">
+        <div v-show="activeIndex == 1" v-if="showSecond">
           <teamSoundMoney @chiosetab="chiosetab"
                           :getTeamList="getTeamList"
                           @getBaseInfo="getBaseInfo" />
         </div>
-        <!-- <div v-if="activeIndex == 2">
-          <teamPayInfo @chiosetab="chiosetab"
-                       :getTeamList="getTeamList"
-                       :baseInfo="baseInfo" />
-        </div> -->
       </div>
     </div>
   </div>
 </template>
 <script>
+import merge from "webpack-merge";
 import teamBaseInfo from "@/views/teamBuild/components/teamBaseInfo";
 import teamSoundMoney from "@/views/teamBuild/components/teamSoundSet";
 import teamPayInfo from "@/views/teamBuild/components/teamPayInfo";
@@ -81,16 +66,31 @@ export default {
       pageName: "建团申请",
       getTeamList: [],
       teamStatus: "",
+      showSecond:false
     };
   },
   created () {
     // 判断 是新建乐团还是修改乐团
-    this.activeIndex = 0;
+    // this.activeIndex = 0;
     this.init();
   },
   activated () {
+
+    if( this.$route.query.clear == 'true'){
+
+       this.showSecond=false
+        this.$store.dispatch("buildIndex", 0);
+                this.$router.push({
+      query: merge(this.$route.query, { clear: false }),
+    });
+    }
     this.init();
   },
+  destroyed() {
+    this.showSecond=false
+    console.log('页面销毁')
+  },
+
   methods: {
     init () {
       this.teamStatus = this.$route.query.type;
@@ -101,10 +101,10 @@ export default {
       if (this.teamStatus == "newTeam") {
         // 新建团
         this.pageName = "建团申请";
-        this.activeIndex = 0;
+         this.activeIndex = this.$store.getters.buildIndex || 0
       } else {
         this.pageName = "乐团修改";
-        this.activeIndex = 0;
+        this.activeIndex = this.$store.getters.draftIndex || 0
       }
     },
     chiosetab (val) {
@@ -112,6 +112,7 @@ export default {
       if (val == 0 && this.teamStatus != "newTeam" || val == 0 && this.teamStatus != "feeAudit") {
         this.$refs.teamBaseInfo.init()
       }
+      this.showSecond = true;
     },
     goBack () {
       this.$store.dispatch('delVisitedViews', this.$route)

+ 217 - 0
src/views/teamBuild/teamDraft.vue

@@ -0,0 +1,217 @@
+<template>
+  <div class="m-container">
+    <div class="line"></div>
+    <h2>
+      <el-page-header @back="goBack"
+                      :content="pageName"> </el-page-header>
+    </h2>
+    <div class="m-core">
+      <div class="stepbox">
+        <!--  @click="activeIndex = 0" -->
+        <span class="stepspan stepspan1">
+          <div class="step1 sptep"
+               :class="activeIndex >= 0 ? 'activestep' : ''">
+            基本信息
+          </div>
+          <img :src="activeIndex  >=  0 ? stepImgs.nol : stepImgs.active"
+               alt=""
+               class="arrow" />
+        </span>
+        <!-- @click="activeIndex = 1" -->
+        <span class="stepspan stepspan2"
+              v-if="showFlag?activeIndex>= 1:true">
+          <!--    -->
+          <div class="step2 sptep"
+               :class="activeIndex  >= 1 ? 'activestep' : ''">
+            声部设置
+          </div>
+          <img :src="activeIndex >=  1 ? stepImgs.nol : stepImgs.active"
+               alt=""
+               class="arrow" />
+        </span>
+        <!--  @click="activeIndex = 2" -->
+        <!-- <span class="stepspan stepspan3"
+              v-if="showFlag?activeIndex  >=  2:true">
+          <div class="step2 sptep"
+               :class="activeIndex  >=  2 ? 'activestep' : ''">
+            创建缴费
+          </div>
+          <img :src="activeIndex >= 2 ? stepImgs.nol : stepImgs.active"
+               alt=""
+               class="arrow" />
+        </span> -->
+      </div>
+
+      <!-- 下面显示的内容 -->
+      <div class="stepcontent">
+        <div v-show="activeIndex == 0">
+          <teamBaseInfo @chiosetab="chiosetab"
+          @getName="getName"
+                        ref='teamBaseInfo'
+                        :getTeamList="getTeamList"
+                        @getBaseInfo="getBaseInfo" />
+        </div>
+        <!-- v-if="showSecond" -->
+        <div v-if="activeIndex == 1"  >
+          <teamSoundMoney @chiosetab="chiosetab"
+                          :getTeamList="getTeamList"
+                          @getBaseInfo="getBaseInfo" />
+        </div>
+        <!-- <div v-if="activeIndex == 2">
+          <teamPayInfo @chiosetab="chiosetab"
+                       :getTeamList="getTeamList"
+                       :baseInfo="baseInfo" />
+        </div> -->
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import teamBaseInfo from "@/views/teamBuild/components/teamBaseInfo";
+import teamSoundMoney from "@/views/teamBuild/components/teamSoundSet";
+import teamPayInfo from "@/views/teamBuild/components/teamPayInfo";
+import merge from "webpack-merge";
+export default {
+  components: { teamBaseInfo, teamSoundMoney, teamPayInfo },
+  name: "teamDraft",
+  data () {
+    return {
+      activeIndex: 0,
+      stepImgs: {
+        nol: require("@/assets/images/base/step-arrow-active.png"),
+        active: require("@/assets/images/base/step-arrow.png"),
+      },
+      pageName: "建团申请",
+      getTeamList: [],
+      teamStatus: "",
+       showSecond:false
+    };
+  },
+  created () {
+    // 判断 是新建乐团还是修改乐团
+    // this.activeIndex = 0;
+    this.init();
+  },
+  activated () {
+
+    if( this.$route.query.clear == 'true'){
+
+       this.showSecond=false
+        this.$store.dispatch("draftIndex", 0);
+                this.$router.push({
+      query: merge(this.$route.query, { clear: false }),
+    });
+    }
+    this.init();
+  },
+    destroyed() {
+    this.showSecond=false
+  },
+  methods: {
+    init () {
+      this.teamStatus = this.$route.query.type;
+      if (this.$route.query.teamList) {
+        this.getTeamList = this.$route.query.teamList;
+      }
+
+      if (this.teamStatus == "newTeam") {
+        // 新建团
+        this.pageName = "建团申请";
+          this.activeIndex = this.$store.getters.buildIndex || 0
+      } else {
+             console.log( this.$store.getters.draftIndex,this.activeIndex)
+        this.pageName = "乐团修改";
+       this.activeIndex = this.$store.getters.draftIndex || 0
+      }
+
+    },
+    chiosetab (val) {
+      this.activeIndex = val;
+      if (val == 0 && this.teamStatus != "newTeam" || val == 0 && this.teamStatus != "feeAudit") {
+        this.$refs.teamBaseInfo.init()
+      }
+        this.showSecond = true;
+    },
+    goBack () {
+      this.$store.dispatch('delVisitedViews', this.$route)
+      this.$router.push({
+        path: "/business/teamDetail",
+      });
+    },
+    getBaseInfo (baseInfo) {
+      this.baseInfo = baseInfo
+      this.pageName = baseInfo.musicGroup?.name
+    },
+    getName(name){
+       this.pageName = name
+    }
+  },
+  computed: {
+    showFlag () {
+      return (this.teamStatus == 'newTeam' || this.teamStatus == 'teamList')
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.stepbox {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  .stepspan {
+    font-size: 14px;
+    display: block;
+    line-height: 40px;
+    position: relative;
+    z-index: 100;
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+
+    .sptep {
+      width: 110px;
+      height: 40px;
+      border: 1px solid #dcdfe6;
+      border-right: none;
+      border-bottom: none;
+      padding-left: 25px;
+      border-radius: 4px 0 0 0;
+    }
+    .arrow {
+      height: 40px;
+      width: 17px;
+      position: relative;
+      top: 1px;
+      z-index: 40;
+    }
+  }
+  .stepspan.stepspan2 {
+    position: relative;
+    z-index: 20;
+    left: -17px;
+    .sptep {
+      padding-left: 30px !important;
+      border-radius: 0 !important;
+    }
+  }
+  .stepspan.stepspan3 {
+    position: relative;
+    z-index: 10;
+    left: -34px;
+    background-color: #fff;
+    .sptep {
+      padding-left: 30px !important;
+      border-radius: 0 !important;
+    }
+  }
+  .sptep.activestep {
+    color: #fff;
+    font-weight: bold;
+    background-color: #4eada7;
+  }
+}
+.stepcontent {
+  border-top: 1px solid #dcdfe6;
+  padding-top: 30px;
+}
+</style>

+ 1 - 7
src/views/teamDetail/index.vue

@@ -8,9 +8,6 @@
       <div class="term active">第二学期</div> -->
     </h2>
     <div class="m-core">
-      <!-- <div class='newBand abs'
-           @click='resetTeam'>乐团修改</div> -->
-
       <p class='msg'
          :class="status=='PROGRESS'? 'ing' : '' "> <img :src="status=='PROGRESS'?stepImgs.PROGRESS:stepImgs.PAUSE"
              alt="">
@@ -101,6 +98,7 @@ export default {
 
   },
 
+
   methods: {
     permission (str) {
       return permission(str)
@@ -128,10 +126,6 @@ export default {
     //   this.name = name;
     //   localStorage.setItem('teamName', name);
     // },
-    resetTeam () {
-      // id  type
-      this.$router.push({ path: '/business/teamBuild', query: { type: 'resetTeam', id: this.teamid } })
-    }
   },
   components: {
     studentList,

+ 0 - 4
src/views/teamDetail/indexCourse.vue

@@ -74,10 +74,6 @@ export default {
       this.name = name;
       localStorage.setItem('teamName', name);
     },
-    resetTeam () {
-      // id  type
-      this.$router.push({ path: '/business/teamBuild', query: { type: 'resetTeam', id: this.teamid } })
-    }
   },
   components: {
     courseList,

+ 0 - 4
src/views/teamDetail/teamInfo.vue

@@ -86,10 +86,6 @@ export default {
       this.name = name;
       localStorage.setItem('teamName', name);
     },
-    resetTeam () {
-      // id  type
-      this.$router.push({ path: '/business/teamBuild', query: { type: 'resetTeam', id: this.teamid } })
-    }
   },
   components: {
     baseInfo,

+ 22 - 17
src/views/teamDetail/teamList.vue

@@ -318,7 +318,7 @@
                   type="text"
                   v-if="
                     scope.row.status == 'AUDIT' &&
-                    permission('teamDetail/audit/update')
+                    permission('/teamAudit')
                   "
                   @click="lookTeamDetail(scope.row)"
                   >审核</el-button
@@ -332,7 +332,7 @@
                   type="text"
                   v-if="
                     scope.row.status == 'DRAFT' &&
-                    permission('teamDetail/draft/update')
+                    permission('/teamDraft')
                   "
                   @click="lookTeamDetail(scope.row)"
                   >编辑</el-button
@@ -355,7 +355,7 @@
                   type="text"
                   v-if="
                     scope.row.status == 'AUDIT_FAILED' &&
-                    permission('teamDetail/aduitFailed/update')
+                    permission('/auditFailed')
                   "
                   @click="lookTeamDetail(scope.row)"
                   >编辑</el-button
@@ -552,25 +552,25 @@ export default {
       });
     },
     createNewTeam() {
-      let search = JSON.stringify(this.topForm);
-      let rules = JSON.stringify(this.rules);
+      this.$store.dispatch("buildIndex", 0);
+      this.$store.dispatch("delVisitedViews", { path: "/business/teamBuild" });
+
       this.$router.push(
-        { path: "/business/teamBuild", query: { type: "newTeam" } },
+        { path: "/business/teamBuild", query: { type: "newTeam",clear:'true'} },
         (router) => {
           router.meta.title = "新建乐团";
         }
       );
     },
+
     resetTeam() {
       // 这里还有勾选的乐团信息
       if (this.passed && this.passed.length <= 0) {
         this.$message.error("请至少选择一个乐团进行调整");
         return;
       }
-      let search = JSON.stringify(this.topForm);
-      let rules = JSON.stringify(this.rules);
       this.$router.push({
-        path: "/business/teamBuild",
+        path: "/business/teamDraft",
         query: { type: "teamList", teamList: this.passed },
       });
     },
@@ -702,10 +702,12 @@ export default {
       switch (row.status) {
         case "DRAFT": {
           // 编辑中
+          this.$store.dispatch("draftIndex", 0);
+          // teamBaseInfo
           this.$router.push(
             {
-              path: "/business/teamBuild",
-              query: { type: "teamDraft", id: row.id },
+              path: "/business/teamDraft",
+              query: { type: "teamDraft", id: row.id ,clear:'true'},
             },
             (router) => {
               router.meta.title = "编辑乐团";
@@ -715,10 +717,11 @@ export default {
         }
         case "AUDIT": {
           // 审核中
+          this.$store.dispatch("draftIndex", 0);
           this.$router.push(
             {
-              path: "/business/teamBuild",
-              query: { type: "teamAudit", id: row.id },
+              path: "/business/teamAudit",
+              query: { type: "teamAudit", id: row.id,clear:'true' },
             },
             (router) => {
               router.meta.title = "审核乐团";
@@ -736,10 +739,11 @@ export default {
         }
         case "FEE_AUDIT": {
           // 费用审核中
+          this.$store.dispatch("draftIndex", 0);
           this.$router.push(
             {
-              path: "/business/teamBuild",
-              query: { type: "feeAudit", id: row.id },
+              path: "/business/feeAudit",
+              query: { type: "feeAudit", id: row.id,clear:'true' },
             },
             (router) => {
               router.meta.title = "乐团费用审核中";
@@ -749,10 +753,11 @@ export default {
         }
         case "AUDIT_FAILED": {
           // 审核失败
+          this.$store.dispatch("draftIndex", 0);
           this.$router.push(
             {
-              path: "/business/teamBuild",
-              query: { type: "teamDraft", id: row.id },
+              path: "/business/auditFailed",
+              query: { type: "teamDraft", id: row.id,clear:'true' },
             },
             (router) => {
               router.meta.title = "乐团审核失败编辑";

部分文件因为文件数量过多而无法显示