Przeglądaj źródła

Merge branch '11/24SAAS' into 02/23reviewBUG

mo 3 lat temu
rodzic
commit
c2b9bb9345
100 zmienionych plików z 1455 dodań i 1426 usunięć
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.e57d8a8f.css
  3. 0 0
      dist/static/css/app.fcdd3bb9.css
  4. 0 0
      dist/static/css/chunk-15ba9995.b7de33ad.css
  5. 1 1
      dist/static/css/chunk-24ade2e8.05385398.css
  6. 0 0
      dist/static/css/chunk-438ad2ec.6a93cfd8.css
  7. 0 0
      dist/static/css/chunk-a5501100.c15fac08.css
  8. 0 0
      dist/static/css/chunk-e843ef8c.7c013fa6.css
  9. 0 0
      dist/static/js/app.5870745f.js
  10. 0 0
      dist/static/js/app.93af385f.js
  11. 0 0
      dist/static/js/chunk-0220734c.6df1e158.js
  12. 0 0
      dist/static/js/chunk-069cc575.e85e8a86.js
  13. 0 0
      dist/static/js/chunk-086efad4.678962e1.js
  14. 0 0
      dist/static/js/chunk-086efad4.d0edfe56.js
  15. 0 0
      dist/static/js/chunk-08976328.b9fdcf61.js
  16. 0 0
      dist/static/js/chunk-0ba62c0e.f0b2e943.js
  17. 0 0
      dist/static/js/chunk-0c0c0b75.84c3aebc.js
  18. 0 0
      dist/static/js/chunk-11ec631a.3a8d2bb4.js
  19. 0 0
      dist/static/js/chunk-138e1169.1bbb9c2d.js
  20. 0 0
      dist/static/js/chunk-15ba9995.00c61918.js
  21. 0 0
      dist/static/js/chunk-16e17eaa.ea18b87d.js
  22. 0 0
      dist/static/js/chunk-18a03e22.4b893eca.js
  23. 0 0
      dist/static/js/chunk-19ff9f19.8ec63783.js
  24. 0 0
      dist/static/js/chunk-1ad8ae39.fb85bb77.js
  25. 0 0
      dist/static/js/chunk-1d81e89c.995a5fc8.js
  26. 0 0
      dist/static/js/chunk-21c4b344.da5d3174.js
  27. 0 0
      dist/static/js/chunk-21fe3065.18c51c30.js
  28. 0 0
      dist/static/js/chunk-24ade2e8.fa763e0a.js
  29. 0 0
      dist/static/js/chunk-259e1df6.d84c54f6.js
  30. 0 0
      dist/static/js/chunk-2706ce08.d7025200.js
  31. 0 0
      dist/static/js/chunk-27b61c68.8557b67f.js
  32. 0 0
      dist/static/js/chunk-29450f06.87bc8b78.js
  33. 0 0
      dist/static/js/chunk-29450f06.c3f1b3de.js
  34. 0 0
      dist/static/js/chunk-2d0ac1af.2c5b36a1.js
  35. 0 0
      dist/static/js/chunk-2d0b287c.2d6b8fd4.js
  36. 0 0
      dist/static/js/chunk-2d0b9f85.44f63c53.js
  37. 0 0
      dist/static/js/chunk-2d78e1cd.15063ddf.js
  38. 0 0
      dist/static/js/chunk-33576cd8.4777bc87.js
  39. 0 0
      dist/static/js/chunk-34252588.92f9b8cb.js
  40. 0 0
      dist/static/js/chunk-36e50c03.7c0b9e4d.js
  41. 0 0
      dist/static/js/chunk-3d077fb2.914d09d8.js
  42. 0 0
      dist/static/js/chunk-41b16241.667c1edb.js
  43. 2 2
      dist/static/js/chunk-438ad2ec.d8cf12a5.js
  44. 0 0
      dist/static/js/chunk-4f55cedb.31a0463c.js
  45. 0 0
      dist/static/js/chunk-51c693a2.10571ebd.js
  46. 0 0
      dist/static/js/chunk-5dbb88bd.ad9c832b.js
  47. 0 0
      dist/static/js/chunk-5f5ffb00.47eee793.js
  48. 0 0
      dist/static/js/chunk-5f5ffb00.d69fb156.js
  49. 0 0
      dist/static/js/chunk-6071e539.14e3624e.js
  50. 0 0
      dist/static/js/chunk-6400cc83.52b033cf.js
  51. 0 0
      dist/static/js/chunk-655d146c.0c999542.js
  52. 0 0
      dist/static/js/chunk-739fed81.48144aa1.js
  53. 0 0
      dist/static/js/chunk-7ae7fb58.894fb707.js
  54. 0 0
      dist/static/js/chunk-7bb1e6bb.98a52a6f.js
  55. 0 0
      dist/static/js/chunk-7bb1e6bb.cac07b0e.js
  56. 0 0
      dist/static/js/chunk-7c2f46aa.8eba8221.js
  57. 0 0
      dist/static/js/chunk-7dc4c95d.de303d90.js
  58. 0 0
      dist/static/js/chunk-82cc728c.ab204808.js
  59. 0 0
      dist/static/js/chunk-8b9e86ce.8906aa51.js
  60. 0 0
      dist/static/js/chunk-8d1ace1c.14f27cfc.js
  61. 0 0
      dist/static/js/chunk-99b852fc.43634c61.js
  62. 0 0
      dist/static/js/chunk-9adc6894.b1ddb41e.js
  63. 0 0
      dist/static/js/chunk-9ce0038c.8d7bbe14.js
  64. 0 0
      dist/static/js/chunk-9feb00b0.353aa85d.js
  65. 0 0
      dist/static/js/chunk-a0cc392c.0cff4939.js
  66. 0 0
      dist/static/js/chunk-a19b39f4.ebe2cdbb.js
  67. 0 0
      dist/static/js/chunk-a26cd514.af8ca597.js
  68. 1 1
      dist/static/js/chunk-a5501100.21922d09.js
  69. 0 0
      dist/static/js/chunk-b3c9434e.e03a2b90.js
  70. 0 0
      dist/static/js/chunk-b3c9434e.f225ded0.js
  71. 0 0
      dist/static/js/chunk-bcbf766a.f3156b83.js
  72. 0 0
      dist/static/js/chunk-bcff4d7c.094c60eb.js
  73. 0 0
      dist/static/js/chunk-c0b0701c.722fd8c5.js
  74. 0 0
      dist/static/js/chunk-c0b0701c.9ff360b4.js
  75. 0 0
      dist/static/js/chunk-c1e0cdd4.4e6591d9.js
  76. 0 0
      dist/static/js/chunk-c1e0cdd4.d62bf47c.js
  77. 0 0
      dist/static/js/chunk-c7f5974e.91135124.js
  78. 0 0
      dist/static/js/chunk-c7f5974e.de969877.js
  79. 0 0
      dist/static/js/chunk-d826a00c.d984d450.js
  80. 0 0
      dist/static/js/chunk-d94fbbf4.a6cde25d.js
  81. 0 0
      dist/static/js/chunk-e1e767e6.957610c9.js
  82. 0 0
      dist/static/js/chunk-e23e9bea.06e03300.js
  83. 1 1
      dist/static/js/chunk-e843ef8c.88719abc.js
  84. 0 0
      dist/static/js/chunk-eb76cba6.21548a9a.js
  85. 0 0
      dist/static/js/chunk-eb7cb786.5eb2d5c3.js
  86. 0 0
      dist/static/js/chunk-eba61f06.1daab8da.js
  87. 0 0
      dist/static/js/chunk-ed716c1c.10dcf806.js
  88. 0 0
      dist/static/js/chunk-ee33f144.556cf8c9.js
  89. 0 0
      dist/static/js/chunk-eff3ff30.400f44b3.js
  90. 0 0
      dist/static/js/chunk-f7755fc8.20397c31.js
  91. 1 1
      src/App.vue
  92. 10 0
      src/constant/index.js
  93. 2 0
      src/router/index.js
  94. 2 1
      src/router/notKeepAliveList.js
  95. 0 1
      src/store/modules/selects.js
  96. 837 822
      src/utils/searchArray.js
  97. 2 0
      src/utils/vueFilter.js
  98. 47 47
      src/views/accompanyManager/index.vue
  99. 243 243
      src/views/main/baseinfo/business.vue
  100. 306 306
      src/views/main/baseinfo/index.vue

Plik diff jest za duży
+ 0 - 0
dist/index.html


Plik diff jest za duży
+ 0 - 0
dist/static/css/app.e57d8a8f.css


Plik diff jest za duży
+ 0 - 0
dist/static/css/app.fcdd3bb9.css


Plik diff jest za duży
+ 0 - 0
dist/static/css/chunk-15ba9995.b7de33ad.css


+ 1 - 1
dist/static/css/chunk-069cc575.69fc21a6.css → dist/static/css/chunk-24ade2e8.05385398.css

@@ -1 +1 @@
-.el-button+.el-button[data-v-b3182cbc]{margin-left:0}.hanlderWrap[data-v-b3182cbc]{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;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+.el-button+.el-button[data-v-6aba3204]{margin-left:0}.hanlderWrap[data-v-6aba3204]{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;-webkit-box-align:center;-ms-flex-align:center;align-items:center}

Plik diff jest za duży
+ 0 - 0
dist/static/css/chunk-438ad2ec.6a93cfd8.css


Plik diff jest za duży
+ 0 - 0
dist/static/css/chunk-a5501100.c15fac08.css


Plik diff jest za duży
+ 0 - 0
dist/static/css/chunk-e843ef8c.7c013fa6.css


Plik diff jest za duży
+ 0 - 0
dist/static/js/app.5870745f.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/app.93af385f.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-0220734c.6df1e158.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-069cc575.e85e8a86.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-086efad4.678962e1.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-086efad4.d0edfe56.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-08976328.b9fdcf61.js


+ 0 - 0
dist/static/js/chunk-0ba62c0e.9ef83551.js → dist/static/js/chunk-0ba62c0e.f0b2e943.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-0c0c0b75.84c3aebc.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-11ec631a.3a8d2bb4.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-138e1169.1bbb9c2d.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-15ba9995.00c61918.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-16e17eaa.ea18b87d.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-18a03e22.4b893eca.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-19ff9f19.8ec63783.js


+ 0 - 0
dist/static/js/chunk-1ad8ae39.7580fb47.js → dist/static/js/chunk-1ad8ae39.fb85bb77.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-1d81e89c.995a5fc8.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-21c4b344.da5d3174.js


+ 0 - 0
dist/static/js/chunk-21fe3065.e3bf6893.js → dist/static/js/chunk-21fe3065.18c51c30.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-24ade2e8.fa763e0a.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-259e1df6.d84c54f6.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-2706ce08.d7025200.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-27b61c68.8557b67f.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-29450f06.87bc8b78.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-29450f06.c3f1b3de.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-2d0ac1af.2c5b36a1.js


+ 0 - 0
dist/static/js/chunk-2d0b287c.df8cd534.js → dist/static/js/chunk-2d0b287c.2d6b8fd4.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-2d0b9f85.44f63c53.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-2d78e1cd.15063ddf.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-33576cd8.4777bc87.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-34252588.92f9b8cb.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-36e50c03.7c0b9e4d.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-3d077fb2.914d09d8.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-41b16241.667c1edb.js


Plik diff jest za duży
+ 2 - 2
dist/static/js/chunk-438ad2ec.d8cf12a5.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-4f55cedb.31a0463c.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-51c693a2.10571ebd.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-5dbb88bd.ad9c832b.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-5f5ffb00.47eee793.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-5f5ffb00.d69fb156.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-6071e539.14e3624e.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-6400cc83.52b033cf.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-655d146c.0c999542.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-739fed81.48144aa1.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-7ae7fb58.894fb707.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-7bb1e6bb.98a52a6f.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-7bb1e6bb.cac07b0e.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-7c2f46aa.8eba8221.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-7dc4c95d.de303d90.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-82cc728c.ab204808.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-8b9e86ce.8906aa51.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-8d1ace1c.14f27cfc.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-99b852fc.43634c61.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-9adc6894.b1ddb41e.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-9ce0038c.8d7bbe14.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-9feb00b0.353aa85d.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-a0cc392c.0cff4939.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-a19b39f4.ebe2cdbb.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-a26cd514.af8ca597.js


Plik diff jest za duży
+ 1 - 1
dist/static/js/chunk-a5501100.21922d09.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-b3c9434e.e03a2b90.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-b3c9434e.f225ded0.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-bcbf766a.f3156b83.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-bcff4d7c.094c60eb.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-c0b0701c.722fd8c5.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-c0b0701c.9ff360b4.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-c1e0cdd4.4e6591d9.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-c1e0cdd4.d62bf47c.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-c7f5974e.91135124.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-c7f5974e.de969877.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-d826a00c.d984d450.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-d94fbbf4.a6cde25d.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-e1e767e6.957610c9.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-e23e9bea.06e03300.js


Plik diff jest za duży
+ 1 - 1
dist/static/js/chunk-e843ef8c.88719abc.js


+ 0 - 0
dist/static/js/chunk-eb76cba6.5807c446.js → dist/static/js/chunk-eb76cba6.21548a9a.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-eb7cb786.5eb2d5c3.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-eba61f06.1daab8da.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-ed716c1c.10dcf806.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-ee33f144.556cf8c9.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-eff3ff30.400f44b3.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-f7755fc8.20397c31.js


+ 1 - 1
src/App.vue

@@ -447,7 +447,7 @@ input[type="number"] {
 }
 }
 .el-select__tags {
 .el-select__tags {
   overflow: hidden;
   overflow: hidden;
-  flex-wrap: nowrap;
+  flex-wrap: nowrap!important;
 }
 }
 .select-all {
 .select-all {
   .el-select__tags {
   .el-select__tags {

+ 10 - 0
src/constant/index.js

@@ -433,3 +433,13 @@ export const issue = {
   1: '手动发放',
   1: '手动发放',
   2: '交易获取'
   2: '交易获取'
 }
 }
+
+
+// 小课回访状态
+export const feedbackType = {
+  'THINKING':'考虑中',
+  'PENDING_PAYMENT':'确认缴费待缴费',
+  'LOST':'回访流失',
+  'PAUSE':'暂停',
+  'OTHER':'其他'
+}

+ 2 - 0
src/router/index.js

@@ -548,6 +548,8 @@ export const asyncRoutes = {
   liveClassDetail:()=>import('@/views/liveClassManager/liveClassDetail'),
   liveClassDetail:()=>import('@/views/liveClassManager/liveClassDetail'),
   // 平台员工管理
   // 平台员工管理
   platformAdminManger:()=>import('@/views/platformManager/paltformAdmin'),
   platformAdminManger:()=>import('@/views/platformManager/paltformAdmin'),
+  // 小课学员管理
+  smallStudentManager:()=>import('@/views/smallStudentManager'),
 }
 }
 
 
 export default router
 export default router

+ 2 - 1
src/router/notKeepAliveList.js

@@ -118,5 +118,6 @@ export default [
   '/business/liveClassDetail',
   '/business/liveClassDetail',
   '/liveClassManager',
   '/liveClassManager',
   '/tenantApply',
   '/tenantApply',
-  '/platformAdminManger' // 平台员工管理
+  '/platformAdminManger', // 平台员工管理
+  '/studentManager/smallStudentManager'
 ]
 ]

+ 0 - 1
src/store/modules/selects.js

@@ -197,7 +197,6 @@ export default {
               }
               }
             }
             }
           }
           }
-          console.log(tempArr, 'tempArr')
           commit('commit_roles', tempArr)
           commit('commit_roles', tempArr)
         } catch (error) {}
         } catch (error) {}
         loadings.commit_roles = false
         loadings.commit_roles = false

+ 837 - 822
src/utils/searchArray.js

@@ -1,822 +1,837 @@
-// 搜索用的下拉数据列表
-import {
-  payOrderType,
-  auditType,
-  auditPaymentType,
-  orderServerType,
-  orderAuditType,
-  rewardModeType,
-  classTime,
-  musicClassType,
-  ProbationPeriodStatus,
-  downListType,
-  musicGroupType,
-  conclusion,
-  vipResetType,
-  courseViewType,
-  clientType,
-  couponType,
-  backType,
-  memberEnum,
-  coupontypeDetail,
-  issue
-} from '../constant'
-// 课程类型
-let tenantConfig = sessionStorage.getItem('tenantConfig')
-tenantConfig = tenantConfig ? JSON.parse(tenantConfig) : {}
-let tenantId = tenantConfig.tenantId
-let  courseType = null
-let musicCourseType = null
-if (tenantId == 1) {
-  musicCourseType = [{
-    label: "声部课",
-    value: "SINGLE"
-  },
-  {
-    label: "合奏课",
-    value: "MIX"
-  },
-  {
-    label: "基础技能课",
-    value: "HIGH"
-  },
-  {
-    label: "线上基础技能课",
-    value: "HIGH_ONLINE"
-  },
-  {
-    label: "乐团网管课",
-    value: "MUSIC_NETWORK"
-  },
-  {
-    label: "集训声部课",
-    value: "TRAINING_SINGLE"
-  },
-  {
-    label: "集训合奏课",
-    value: "TRAINING_MIX"
-  },
-  {
-    label: "课堂课",
-    value: "CLASSROOM"
-  },
-  {
-    label: "综合课",
-    value: "COMPREHENSIVE"
-  },
-]
-   courseType= [{
-      label: "声部课",
-      value: "SINGLE"
-    },
-    {
-      label: "合奏课",
-      value: "MIX"
-    },
-    {
-      label: "基础技能课",
-      value: "HIGH"
-    },
-    {
-      label: "线上基础技能课",
-      value: "HIGH_ONLINE"
-    },
-    {
-      label: "vip课",
-      value: "VIP"
-    },
-    {
-      label: "试听课",
-      value: "DEMO"
-    },
-    {
-      label: "综合课",
-      value: "COMPREHENSIVE"
-    },
-    {
-      label: "网管课",
-      value: "PRACTICE"
-    },
-    {
-      label: "乐团网管课",
-      value: "MUSIC_NETWORK"
-    },
-    {
-      label: "启蒙课",
-      value: "ENLIGHTENMENT"
-    },
-    {
-      label: "集训声部课",
-      value: "TRAINING_SINGLE"
-    },
-    {
-      label: "集训合奏课",
-      value: "TRAINING_MIX"
-    },
-    {
-      label: "课堂课",
-      value: "CLASSROOM"
-    },
-    {
-      label: "对外课",
-      value: "COMM"
-    }
-  ]
-} else {
-  musicCourseType = [{
-    label: "声部课",
-    value: "SINGLE"
-  },
-  {
-    label: "合奏课",
-    value: "MIX"
-  },
-  {
-    label: "基础技能课",
-    value: "HIGH"
-  },
-
-  {
-    label: "集训声部课",
-    value: "TRAINING_SINGLE"
-  },
-  {
-    label: "集训合奏课",
-    value: "TRAINING_MIX"
-  },
-  {
-    label: "课堂课",
-    value: "CLASSROOM"
-  },
-  {
-    label: "综合课",
-    value: "COMPREHENSIVE"
-  },
-]
-   courseType = [{
-      label: "声部课",
-      value: "SINGLE"
-    },
-    {
-      label: "合奏课",
-      value: "MIX"
-    },
-    {
-      label: "vip课",
-      value: "VIP"
-    },
-    {
-      label: "试听课",
-      value: "DEMO"
-    },
-    {
-      label: "综合课",
-      value: "COMPREHENSIVE"
-    },
-    {
-      label: "网管课",
-      value: "PRACTICE"
-    },
-
-    {
-      label: "启蒙课",
-      value: "ENLIGHTENMENT"
-    },
-    {
-      label: "集训声部课",
-      value: "TRAINING_SINGLE"
-    },
-    {
-      label: "集训合奏课",
-      value: "TRAINING_MIX"
-    },
-    {
-      label: "课堂课",
-      value: "CLASSROOM"
-    },
-    {
-      label: "对外课",
-      value: "COMM"
-    }
-  ]
-}
-
-export {courseType,musicCourseType};
-
-
-
-
-
-export const courseListType = [{
-    label: "乐团课",
-    value: "MUSIC"
-  },
-  {
-    label: "VIP课",
-    value: "VIP"
-  },
-  {
-    label: "网管课",
-    value: "PRACTICE"
-  },
-]
-
-// 考勤状态
-export const attendance = [{
-    label: '正常签到',
-    value: 1
-  },
-  {
-    label: '异常签到',
-    value: 0
-  },
-]
-
-// 工作类型
-export const jobNature = [{
-    label: '兼职',
-    value: 'PART_TIME'
-  },
-  {
-    label: '全职',
-    value: 'FULL_TIME'
-  },
-  {
-    label: '劳务',
-    value: 'LABOUR'
-  }
-  // { label: '临时工', value: 'TEMPORARY' }
-]
-
-// 老师状态
-export const teacherStatus = [{
-    label: '正常',
-    value: '0'
-  },
-  {
-    label: '冻结',
-    value: '1'
-  },
-  {
-    label: '锁定',
-    value: '9'
-  }
-]
-export const stuAttendance = [{
-    value: "NORMAL",
-    label: "正常"
-  },
-  {
-    value: "TRUANT",
-    label: "旷课"
-  },
-  {
-    value: "LEAVE",
-    label: "请假"
-  }
-]
-
-// 考勤状态
-export const attendanceStatus = [
-  ...stuAttendance,
-  {
-    value: "QUIT_SCHOOL",
-    label: "休学"
-  },
-  {
-    value: "DROP_OUT",
-    label: "退学"
-  },
-  {
-    value: "LATE",
-    label: "迟到"
-  }
-  // { value: "DROP_OUT", label: "休学" }
-]
-
-
-// 交易状态
-export const orderStatus = [{
-    value: "APPLY",
-    label: "报名"
-  },
-  {
-    value: "RENEW",
-    label: "续费"
-  },
-  {
-    value: "MEMBER",
-    label: "会员购买"
-  },
-  {
-    value: "SMALL_CLASS_TO_BUY",
-    label: "VIP购买"
-  },
-  {
-    value: "SPORADIC",
-    label: "零星收费"
-  },
-  {
-    value: "LUCK",
-    label: "福袋活动"
-  },
-  {
-    value: "DEGREE_REGISTRATION",
-    label: "考级报名"
-  },
-  {
-    value: "DOUBLE_ELEVEN2020",
-    label: "2020双十一活动"
-  },
-  {
-    value: "DOUBLE_ELEVEN2021",
-    label: "2021双十一活动"
-  },
-  {
-    value: "DEGREE",
-    label: "儿童节活动"
-  },
-  {
-    value: "PRACTICE_GROUP_BUY",
-    label: "网管课"
-  },
-  {
-    value: 'PRACTICE_GROUP_RENEW',
-    label: '网管课续费'
-  },
-  {
-    value: 'REPAIR',
-    label: '乐器维修'
-  },
-  {
-    value: 'OUTORDER',
-    label: '外部收入'
-  },
-  {
-    value: 'GOODS_SELL',
-    label: '商品销售'
-  },
-  {
-    value: 'SUBJECT_CHANGE',
-    label: '声部更换'
-  },
-  {
-    value: 'MAINTENANCE',
-    label: '乐器保养'
-  },
-  {
-    value: 'ADD_STUDENT',
-    label: '乐团报名'
-  },
-  {
-    value: 'REPLACEMENT',
-    label: '乐器置换'
-  },
-  {
-    value: "OTHER",
-    label: "其他"
-  },
-]
-
-// 交易状态
-export const dealStatus = [{
-    value: "ING",
-    label: "交易中"
-  },
-  {
-    value: "SUCCESS",
-    label: "成功交易"
-  },
-  {
-    value: "FAILED",
-    label: "交易失败"
-  },
-  {
-    value: "CLOSE",
-    label: "交易关闭"
-  }
-]
-
-
-
-export const vipGroupStatus = [{
-    value: '0',
-    text: '未开始'
-  },
-  {
-    value: '1',
-    text: '报名中'
-  },
-  {
-    value: '5',
-    text: '报名结束'
-  },
-  {
-    value: '2',
-    text: '进行中'
-  },
-  {
-    value: '4',
-    text: '已结束'
-  },
-  {
-    value: '3',
-    text: '取消'
-  },
-  {
-    value: '6',
-    text: '暂停'
-  },
-]
-
-// 课程状态
-export const courseStatus = [{
-    value: "NOT_START",
-    label: "未开始"
-  },
-  {
-    value: "UNDERWAY",
-    label: "进行中"
-  },
-  {
-    value: "OVER",
-    label: "已结束"
-  },
-]
-export const courseGroupStatus = [{
-    value: "NORMAL",
-    label: "正常"
-  },
-  {
-    value: "LOCK",
-    label: "锁定"
-  },
-  {
-    value: "FINISH",
-    label: "结束"
-  },
-  {
-    value: "CANCEL",
-    label: "取消"
-  },
-]
-export const commGroupStatus = [{
-    value: "NORMAL",
-    label: "进行中"
-  },
-  {
-    value: "FINISH",
-    label: "结束"
-  },
-  {
-    value: "CANCEL",
-    label: "关闭"
-  },
-  {
-    value: "LOCK",
-    label: "锁定"
-  },
-]
-
-// 老师时间充值状态
-export const teacherTimeStatus = [{
-    value: "RECHARGE",
-    label: "充值"
-  },
-  {
-    value: "CONSUME",
-    label: "建课"
-  },
-  {
-    value: "RETURN",
-    label: "退课"
-  },
-  {
-    value: "MANUAL_ADD",
-    label: "系统充值"
-  },
-  {
-    value: "MANUAL_SUB",
-    label: "系统扣除"
-  },
-]
-
-export const practiceGroupType = [{
-    value: "FREE",
-    label: "免费"
-  },
-  {
-    value: "CHARGE",
-    label: "收费"
-  },
-  {
-    value: "TRIAL",
-    label: "试听课"
-  },
-  {
-    value: "CARE_PACKAGE",
-    label: "关心包"
-  },
-  {
-    value: "COME_ON_PACKAGE",
-    label: "加油包"
-  }
-]
-export const visitChiose = [{
-    value: '课程推荐',
-    label: '课程推荐',
-    children: [{
-      value: '新课推荐',
-      label: '新课推荐'
-    }, {
-      value: '续费提醒',
-      label: '续费提醒'
-    }]
-  },
-  {
-    value: '常规回访',
-    label: '常规回访',
-    children: [{
-      value: '课后及训练回访',
-      label: '课后及训练回访'
-    }, {
-      value: '练习及乐团表现',
-      label: '练习及乐团表现'
-    }]
-  },
-  {
-    value: '其它',
-    label: '其它',
-    children: [{
-      value: '其它',
-      label: '其它'
-    }]
-  }
-]
-export const visitChiose1 = [{
-    value: '课程推荐',
-    label: '课程推荐',
-    children: [{
-      value: '新课推荐',
-      label: '新课推荐'
-    }, {
-      value: '续费提醒',
-      label: '续费提醒'
-    }]
-  },
-  {
-    value: '常规回访',
-    label: '常规回访',
-    children: [{
-      value: '课后及训练回访',
-      label: '课后及训练回访'
-    }, {
-      value: '练习及乐团表现',
-      label: '练习及乐团表现'
-    }, {
-      label: '考勤申诉',
-      value: '考勤申诉'
-    }, {
-      value: "异常请假回访",
-      label: "异常请假回访"
-    }]
-  },
-  {
-    value: '团练宝',
-    label: '团练宝',
-    children: [{
-      value: '体验回访',
-      label: '体验回访'
-    }]
-  },
-  {
-    value: '其它',
-    label: '其它',
-    children: [{
-      value: '其它',
-      label: '其它'
-    }, {
-      value: '会员续费',
-      label: '会员续费'
-    }]
-  }
-]
-
-// 交易状态
-export const paymentChannelStatus = [{
-    value: 'YQPAY',
-    label: '双乾'
-  },
-  {
-    value: 'BALANCE',
-    label: '余额'
-  },
-  {
-    value: 'ADAPAY',
-    label: '汇付'
-  }
-]
-// 销售类型
-export const saleStatus = [{
-    value: 'INSTRUMENT',
-    label: '乐器销售'
-  },
-  {
-    value: 'ACCESSORIES',
-    label: '配件销售'
-  },
-  {
-    value: 'SCHOOL_BUY',
-    label: '学校采购'
-  },
-  {
-    value: 'OTHER',
-    label: '其它'
-  }
-]
-// 商品类型
-export const goodsType = [{
-    value: 'INSTRUMENT',
-    label: '乐器'
-  },
-  {
-    value: 'ACCESSORIES',
-    label: '辅件'
-  },
-  {
-    value: 'TEACHING',
-    label: '教材'
-  },
-  {
-    value: 'STAFF',
-    label: '教谱'
-  },
-  {
-    value: 'OTHER',
-    label: '其它'
-  },
-]
-
-export const classStatus = [{
-    value: '1',
-    label: '一年级'
-  },
-  {
-    value: '2',
-    label: '二年级'
-  },
-  {
-    value: '3',
-    label: '三年级'
-  },
-  {
-    value: '4',
-    label: '四年级'
-  },
-  {
-    value: '5',
-    label: '五年级'
-  },
-  {
-    value: '6',
-    label: '六年级'
-  },
-  {
-    value: '7',
-    label: '初一'
-  },
-  {
-    value: '8',
-    label: '初二'
-  },
-  {
-    value: '9',
-    label: '初三'
-  },
-  {
-    value: '10',
-    label: '高一'
-  },
-  {
-    value: '11',
-    label: '高二'
-  },
-  {
-    value: '12',
-    label: '高三'
-  },
-]
-// 库存类型
-export const stockType = [{
-    value: 'INTERNAL',
-    label: '内部'
-  },
-  {
-    value: 'EXTERNAL',
-    label: '外部'
-  },
-  {
-    value: 'ALL',
-    label: '全部'
-  }
-]
-// export const musicGroupStatus = [
-//   { value: 'DRAFT', text: '编辑中' },
-//   { value: 'AUDIT', text: '审核中' },
-//   { value: 'PRE_APPLY', text: '预报名中' },
-//   { value: 'PRE_BUILD_FEE', text: '创建缴费中' },
-//   { value: 'APPLY', text: '报名中' },
-//   { value: 'PAY', text: '缴费中' },
-//   { value: 'PREPARE', text: '筹备中' },
-//   { value: 'PROGRESS', text: '进行中' },
-//   { value: 'FEE_AUDIT', text: '费用审核中' },
-//   { value: 'AUDIT_FAILED', text: '审核失败' },
-//   { value: 'PAUSE', text: '暂停' },
-//   { value: 'CANCELED', text: '取消' },
-//   { value: 'CLOSE', text: '已关闭' },
-// ]
-export const vipResetTypeList = [{
-    label: '不限制',
-    value: '1'
-  },
-  {
-    label: '线上不可调为线下',
-    value: '0'
-  },
-  {
-    label: '线下不可调为线上',
-    value: '2'
-  },
-  {
-    label: '线上线下不可互调',
-    value: '3'
-  }
-]
-export const musicGroupStatus = getValueForKey(musicGroupType)
-export const classTimeList = getValueForKey(classTime)
-export const courseViewTypeList = getValueForKey(courseViewType)
-export const payOrderTypeList = getValueForKey(payOrderType)
-export const auditTypeList = getValueForKey(auditType)
-export const auditPaymentTypeList = getValueForKey(auditPaymentType)
-export const orderServerList = getValueForKey(orderServerType)
-export const orderAuditTypeList = getValueForKey(orderAuditType)
-export const rewardModeTypeList = getValueForKey(rewardModeType)
-export const musicClassTypeList = getValueForKey(musicClassType)
-export const ProbationPeriodList = getValueForKey(ProbationPeriodStatus)
-export const downTypeList = getValueForKey(downListType)
-export const conclusionList = getValueForKey(conclusion)
-export const clientList = getValueForKey(clientType)
-export const couponTypeList = getValueForKey(couponType)
-export const backTypeList = getValueForKey(backType)
-export const memberEnumList = getValueForKey(memberEnum)
-export const coupontypeDetailList = getValueForKey(coupontypeDetail)
-export const issueList = getValueForKey(issue)
-
-
-//downListType
-function getValueForKey(obj) {
-  let arr = []
-  for (let k in obj) {
-    arr.push({
-      label: obj[k],
-      value: k
-    })
-  }
-  return arr
-}
-
-export const array2object = (array, [lk, vk] = ['value', 'label']) => {
-  const object = {}
-  if (array && array.length) {
-    for (const item of array) {
-      object[item[lk]] = item[vk]
-    }
-  }
-  return object
-}
-
-
-// export {
-//   courseType,
-//   attendance,
-//   jobNature,
-//   teacherStatus,
-//   attendanceStatus,
-//   orderStatus,
-//   dealStatus,
-//   musicGroupStatus,
-//   vipGroupStatus,
-//   courseStatus,
-//   teacherTimeStatus,
-//   courseGroupStatus,
-//   commGroupStatus,
-//   courseListType,
-//   practiceGroupType,
-//   visitChiose,
-//   paymentChannelStatus,
-//   saleStatus,
-//   goodsType,
-//   classStatus,
-//   stockType,
-//   classTimeList
-// }
+// 搜索用的下拉数据列表
+import {
+  payOrderType,
+  auditType,
+  auditPaymentType,
+  orderServerType,
+  orderAuditType,
+  rewardModeType,
+  classTime,
+  musicClassType,
+  ProbationPeriodStatus,
+  downListType,
+  musicGroupType,
+  conclusion,
+  vipResetType,
+  courseViewType,
+  clientType,
+  couponType,
+  backType,
+  memberEnum,
+  coupontypeDetail,
+  issue,
+  feedbackType
+} from '../constant'
+// 课程类型
+let tenantConfig = sessionStorage.getItem('tenantConfig')
+tenantConfig = tenantConfig ? JSON.parse(tenantConfig) : {}
+let tenantId = tenantConfig.tenantId
+let  courseType = null
+let musicCourseType = null
+if (tenantId == 1) {
+  musicCourseType = [{
+    label: "声部课",
+    value: "SINGLE"
+  },
+  {
+    label: "合奏课",
+    value: "MIX"
+  },
+  {
+    label: "基础技能课",
+    value: "HIGH"
+  },
+  {
+    label: "线上基础技能课",
+    value: "HIGH_ONLINE"
+  },
+  {
+    label: "乐团网管课",
+    value: "MUSIC_NETWORK"
+  },
+  {
+    label: "集训声部课",
+    value: "TRAINING_SINGLE"
+  },
+  {
+    label: "集训合奏课",
+    value: "TRAINING_MIX"
+  },
+  {
+    label: "课堂课",
+    value: "CLASSROOM"
+  },
+  {
+    label: "综合课",
+    value: "COMPREHENSIVE"
+  },
+]
+   courseType= [{
+      label: "声部课",
+      value: "SINGLE"
+    },
+    {
+      label: "合奏课",
+      value: "MIX"
+    },
+    {
+      label: "基础技能课",
+      value: "HIGH"
+    },
+    {
+      label: "线上基础技能课",
+      value: "HIGH_ONLINE"
+    },
+    {
+      label: "vip课",
+      value: "VIP"
+    },
+    {
+      label: "试听课",
+      value: "DEMO"
+    },
+    {
+      label: "综合课",
+      value: "COMPREHENSIVE"
+    },
+    {
+      label: "网管课",
+      value: "PRACTICE"
+    },
+    {
+      label: "乐团网管课",
+      value: "MUSIC_NETWORK"
+    },
+    {
+      label: "启蒙课",
+      value: "ENLIGHTENMENT"
+    },
+    {
+      label: "集训声部课",
+      value: "TRAINING_SINGLE"
+    },
+    {
+      label: "集训合奏课",
+      value: "TRAINING_MIX"
+    },
+    {
+      label: "课堂课",
+      value: "CLASSROOM"
+    },
+    {
+      label: "对外课",
+      value: "COMM"
+    }
+  ]
+} else {
+  musicCourseType = [{
+    label: "声部课",
+    value: "SINGLE"
+  },
+  {
+    label: "合奏课",
+    value: "MIX"
+  },
+  {
+    label: "基础技能课",
+    value: "HIGH"
+  },
+
+  {
+    label: "集训声部课",
+    value: "TRAINING_SINGLE"
+  },
+  {
+    label: "集训合奏课",
+    value: "TRAINING_MIX"
+  },
+  {
+    label: "课堂课",
+    value: "CLASSROOM"
+  },
+  {
+    label: "综合课",
+    value: "COMPREHENSIVE"
+  },
+]
+   courseType = [{
+      label: "声部课",
+      value: "SINGLE"
+    },
+    {
+      label: "合奏课",
+      value: "MIX"
+    },
+    {
+      label: "vip课",
+      value: "VIP"
+    },
+    {
+      label: "试听课",
+      value: "DEMO"
+    },
+    {
+      label: "综合课",
+      value: "COMPREHENSIVE"
+    },
+    {
+      label: "网管课",
+      value: "PRACTICE"
+    },
+
+    {
+      label: "启蒙课",
+      value: "ENLIGHTENMENT"
+    },
+    {
+      label: "集训声部课",
+      value: "TRAINING_SINGLE"
+    },
+    {
+      label: "集训合奏课",
+      value: "TRAINING_MIX"
+    },
+    {
+      label: "课堂课",
+      value: "CLASSROOM"
+    },
+    {
+      label: "对外课",
+      value: "COMM"
+    }
+  ]
+}
+
+export {courseType,musicCourseType};
+
+
+
+
+
+export const courseListType = [{
+    label: "乐团课",
+    value: "MUSIC"
+  },
+  {
+    label: "VIP课",
+    value: "VIP"
+  },
+  {
+    label: "网管课",
+    value: "PRACTICE"
+  },
+]
+
+// 考勤状态
+export const attendance = [{
+    label: '正常签到',
+    value: 1
+  },
+  {
+    label: '异常签到',
+    value: 0
+  },
+]
+
+// 工作类型
+export const jobNature = [{
+    label: '兼职',
+    value: 'PART_TIME'
+  },
+  {
+    label: '全职',
+    value: 'FULL_TIME'
+  },
+  {
+    label: '劳务',
+    value: 'LABOUR'
+  }
+  // { label: '临时工', value: 'TEMPORARY' }
+]
+
+// 老师状态
+export const teacherStatus = [{
+    label: '正常',
+    value: '0'
+  },
+  {
+    label: '冻结',
+    value: '1'
+  },
+  {
+    label: '锁定',
+    value: '9'
+  }
+]
+export const stuAttendance = [{
+    value: "NORMAL",
+    label: "正常"
+  },
+  {
+    value: "TRUANT",
+    label: "旷课"
+  },
+  {
+    value: "LEAVE",
+    label: "请假"
+  }
+]
+
+// 考勤状态
+export const attendanceStatus = [
+  ...stuAttendance,
+  {
+    value: "QUIT_SCHOOL",
+    label: "休学"
+  },
+  {
+    value: "DROP_OUT",
+    label: "退学"
+  },
+  {
+    value: "LATE",
+    label: "迟到"
+  }
+  // { value: "DROP_OUT", label: "休学" }
+]
+
+
+// 交易状态
+export const orderStatus = [{
+    value: "APPLY",
+    label: "报名"
+  },
+  {
+    value: "RENEW",
+    label: "续费"
+  },
+  {
+    value: "MEMBER",
+    label: "会员购买"
+  },
+  {
+    value: "SMALL_CLASS_TO_BUY",
+    label: "VIP购买"
+  },
+  {
+    value: "SPORADIC",
+    label: "零星收费"
+  },
+  {
+    value: "LUCK",
+    label: "福袋活动"
+  },
+  {
+    value: "DEGREE_REGISTRATION",
+    label: "考级报名"
+  },
+  {
+    value: "DOUBLE_ELEVEN2020",
+    label: "2020双十一活动"
+  },
+  {
+    value: "DOUBLE_ELEVEN2021",
+    label: "2021双十一活动"
+  },
+  {
+    value: "DEGREE",
+    label: "儿童节活动"
+  },
+  {
+    value: "PRACTICE_GROUP_BUY",
+    label: "网管课"
+  },
+  {
+    value: 'PRACTICE_GROUP_RENEW',
+    label: '网管课续费'
+  },
+  {
+    value: 'REPAIR',
+    label: '乐器维修'
+  },
+  {
+    value: 'OUTORDER',
+    label: '外部收入'
+  },
+  {
+    value: 'GOODS_SELL',
+    label: '商品销售'
+  },
+  {
+    value: 'SUBJECT_CHANGE',
+    label: '声部更换'
+  },
+  {
+    value: 'MAINTENANCE',
+    label: '乐器保养'
+  },
+  {
+    value: 'ADD_STUDENT',
+    label: '乐团报名'
+  },
+  {
+    value: 'REPLACEMENT',
+    label: '乐器置换'
+  },
+  {
+    value: "OTHER",
+    label: "其他"
+  },
+]
+
+// 交易状态
+export const dealStatus = [{
+    value: "ING",
+    label: "交易中"
+  },
+  {
+    value: "SUCCESS",
+    label: "成功交易"
+  },
+  {
+    value: "FAILED",
+    label: "交易失败"
+  },
+  {
+    value: "CLOSE",
+    label: "交易关闭"
+  }
+]
+
+
+
+export const vipGroupStatus = [{
+    value: '0',
+    text: '未开始'
+  },
+  {
+    value: '1',
+    text: '报名中'
+  },
+  {
+    value: '5',
+    text: '报名结束'
+  },
+  {
+    value: '2',
+    text: '进行中'
+  },
+  {
+    value: '4',
+    text: '已结束'
+  },
+  {
+    value: '3',
+    text: '取消'
+  },
+  {
+    value: '6',
+    text: '暂停'
+  },
+]
+
+// 课程状态
+export const courseStatus = [{
+    value: "NOT_START",
+    label: "未开始"
+  },
+  {
+    value: "UNDERWAY",
+    label: "进行中"
+  },
+  {
+    value: "OVER",
+    label: "已结束"
+  },
+]
+export const courseGroupStatus = [{
+    value: "NORMAL",
+    label: "正常"
+  },
+  {
+    value: "LOCK",
+    label: "锁定"
+  },
+  {
+    value: "FINISH",
+    label: "结束"
+  },
+  {
+    value: "CANCEL",
+    label: "取消"
+  },
+]
+export const commGroupStatus = [{
+    value: "NORMAL",
+    label: "进行中"
+  },
+  {
+    value: "FINISH",
+    label: "结束"
+  },
+  {
+    value: "CANCEL",
+    label: "关闭"
+  },
+  {
+    value: "LOCK",
+    label: "锁定"
+  },
+]
+
+// 老师时间充值状态
+export const teacherTimeStatus = [{
+    value: "RECHARGE",
+    label: "充值"
+  },
+  {
+    value: "CONSUME",
+    label: "建课"
+  },
+  {
+    value: "RETURN",
+    label: "退课"
+  },
+  {
+    value: "MANUAL_ADD",
+    label: "系统充值"
+  },
+  {
+    value: "MANUAL_SUB",
+    label: "系统扣除"
+  },
+]
+
+export const practiceGroupType = [{
+    value: "FREE",
+    label: "免费"
+  },
+  {
+    value: "CHARGE",
+    label: "收费"
+  },
+  {
+    value: "TRIAL",
+    label: "试听课"
+  },
+  {
+    value: "CARE_PACKAGE",
+    label: "关心包"
+  },
+  {
+    value: "COME_ON_PACKAGE",
+    label: "加油包"
+  }
+]
+export const visitChiose = [{
+    value: '课程推荐',
+    label: '课程推荐',
+    children: [{
+      value: '新课推荐',
+      label: '新课推荐'
+    }, {
+      value: '续费提醒',
+      label: '续费提醒'
+    }]
+  },
+  {
+    value: '常规回访',
+    label: '常规回访',
+    children: [{
+      value: '课后及训练回访',
+      label: '课后及训练回访'
+    }, {
+      value: '练习及乐团表现',
+      label: '练习及乐团表现'
+    }]
+  },
+  {
+    value: '其它',
+    label: '其它',
+    children: [{
+      value: '其它',
+      label: '其它'
+    }]
+  }
+]
+export const visitChiose1 = [{
+    value: '课程推荐',
+    label: '课程推荐',
+    children: [{
+      value: '新课推荐',
+      label: '新课推荐'
+    }, {
+      value: '续费提醒',
+      label: '续费提醒'
+    }]
+  },
+  {
+    value: '常规回访',
+    label: '常规回访',
+    children: [{
+      value: '课后及训练回访',
+      label: '课后及训练回访'
+    }, {
+      value: '练习及乐团表现',
+      label: '练习及乐团表现'
+    }, {
+      label: '考勤申诉',
+      value: '考勤申诉'
+    }, {
+      value: "异常请假回访",
+      label: "异常请假回访"
+    }]
+  },
+  {
+    value: '小课回访',
+    label: '小课回访',
+    children: [{
+      value: 'VIP课回访',
+      label: 'VIP课回访'
+    },{
+      value: '乐理课回访',
+      label: '乐理课回访'
+    },{
+      value: '网管课回访',
+      label: '网管课回访'
+    }]
+  },
+  {
+    value: '团练宝',
+    label: '团练宝',
+    children: [{
+      value: '体验回访',
+      label: '体验回访'
+    }]
+  },
+  {
+    value: '其它',
+    label: '其它',
+    children: [{
+      value: '其它',
+      label: '其它'
+    }, {
+      value: '会员续费',
+      label: '会员续费'
+    }]
+  }
+]
+
+// 交易状态
+export const paymentChannelStatus = [{
+    value: 'YQPAY',
+    label: '双乾'
+  },
+  {
+    value: 'BALANCE',
+    label: '余额'
+  },
+  {
+    value: 'ADAPAY',
+    label: '汇付'
+  }
+]
+// 销售类型
+export const saleStatus = [{
+    value: 'INSTRUMENT',
+    label: '乐器销售'
+  },
+  {
+    value: 'ACCESSORIES',
+    label: '配件销售'
+  },
+  {
+    value: 'SCHOOL_BUY',
+    label: '学校采购'
+  },
+  {
+    value: 'OTHER',
+    label: '其它'
+  }
+]
+// 商品类型
+export const goodsType = [{
+    value: 'INSTRUMENT',
+    label: '乐器'
+  },
+  {
+    value: 'ACCESSORIES',
+    label: '辅件'
+  },
+  {
+    value: 'TEACHING',
+    label: '教材'
+  },
+  {
+    value: 'STAFF',
+    label: '教谱'
+  },
+  {
+    value: 'OTHER',
+    label: '其它'
+  },
+]
+
+export const classStatus = [{
+    value: '1',
+    label: '一年级'
+  },
+  {
+    value: '2',
+    label: '二年级'
+  },
+  {
+    value: '3',
+    label: '三年级'
+  },
+  {
+    value: '4',
+    label: '四年级'
+  },
+  {
+    value: '5',
+    label: '五年级'
+  },
+  {
+    value: '6',
+    label: '六年级'
+  },
+  {
+    value: '7',
+    label: '初一'
+  },
+  {
+    value: '8',
+    label: '初二'
+  },
+  {
+    value: '9',
+    label: '初三'
+  },
+  {
+    value: '10',
+    label: '高一'
+  },
+  {
+    value: '11',
+    label: '高二'
+  },
+  {
+    value: '12',
+    label: '高三'
+  },
+]
+// 库存类型
+export const stockType = [{
+    value: 'INTERNAL',
+    label: '内部'
+  },
+  {
+    value: 'EXTERNAL',
+    label: '外部'
+  },
+  {
+    value: 'ALL',
+    label: '全部'
+  }
+]
+// export const musicGroupStatus = [
+//   { value: 'DRAFT', text: '编辑中' },
+//   { value: 'AUDIT', text: '审核中' },
+//   { value: 'PRE_APPLY', text: '预报名中' },
+//   { value: 'PRE_BUILD_FEE', text: '创建缴费中' },
+//   { value: 'APPLY', text: '报名中' },
+//   { value: 'PAY', text: '缴费中' },
+//   { value: 'PREPARE', text: '筹备中' },
+//   { value: 'PROGRESS', text: '进行中' },
+//   { value: 'FEE_AUDIT', text: '费用审核中' },
+//   { value: 'AUDIT_FAILED', text: '审核失败' },
+//   { value: 'PAUSE', text: '暂停' },
+//   { value: 'CANCELED', text: '取消' },
+//   { value: 'CLOSE', text: '已关闭' },
+// ]
+export const vipResetTypeList = [{
+    label: '不限制',
+    value: '1'
+  },
+  {
+    label: '线上不可调为线下',
+    value: '0'
+  },
+  {
+    label: '线下不可调为线上',
+    value: '2'
+  },
+  {
+    label: '线上线下不可互调',
+    value: '3'
+  }
+]
+export const musicGroupStatus = getValueForKey(musicGroupType)
+export const classTimeList = getValueForKey(classTime)
+export const courseViewTypeList = getValueForKey(courseViewType)
+export const payOrderTypeList = getValueForKey(payOrderType)
+export const auditTypeList = getValueForKey(auditType)
+export const auditPaymentTypeList = getValueForKey(auditPaymentType)
+export const orderServerList = getValueForKey(orderServerType)
+export const orderAuditTypeList = getValueForKey(orderAuditType)
+export const rewardModeTypeList = getValueForKey(rewardModeType)
+export const musicClassTypeList = getValueForKey(musicClassType)
+export const ProbationPeriodList = getValueForKey(ProbationPeriodStatus)
+export const downTypeList = getValueForKey(downListType)
+export const conclusionList = getValueForKey(conclusion)
+export const clientList = getValueForKey(clientType)
+export const couponTypeList = getValueForKey(couponType)
+export const backTypeList = getValueForKey(backType)
+export const memberEnumList = getValueForKey(memberEnum)
+export const coupontypeDetailList = getValueForKey(coupontypeDetail)
+export const issueList = getValueForKey(issue)
+export const feedbackTypeList =  getValueForKey(feedbackType)
+
+//downListType
+function getValueForKey(obj) {
+  let arr = []
+  for (let k in obj) {
+    arr.push({
+      label: obj[k],
+      value: k
+    })
+  }
+  return arr
+}
+
+export const array2object = (array, [lk, vk] = ['value', 'label']) => {
+  const object = {}
+  if (array && array.length) {
+    for (const item of array) {
+      object[item[lk]] = item[vk]
+    }
+  }
+  return object
+}
+
+
+// export {
+//   courseType,
+//   attendance,
+//   jobNature,
+//   teacherStatus,
+//   attendanceStatus,
+//   orderStatus,
+//   dealStatus,
+//   musicGroupStatus,
+//   vipGroupStatus,
+//   courseStatus,
+//   teacherTimeStatus,
+//   courseGroupStatus,
+//   commGroupStatus,
+//   courseListType,
+//   practiceGroupType,
+//   visitChiose,
+//   paymentChannelStatus,
+//   saleStatus,
+//   goodsType,
+//   classStatus,
+//   stockType,
+//   classTimeList
+// }

+ 2 - 0
src/utils/vueFilter.js

@@ -212,6 +212,8 @@ Vue.filter('memberEnumType',val=> {
 // 优惠券类型
 // 优惠券类型
 Vue.filter("coupontypeDetailType", val => constant.coupontypeDetail[val]);
 Vue.filter("coupontypeDetailType", val => constant.coupontypeDetail[val]);
 
 
+// 学员回访状态 feedbackType
+Vue.filter("feedbackTypeFilter", val => constant.feedbackType[val]);
 // 时间处理
 // 时间处理
 Vue.filter("timer", value => {
 Vue.filter("timer", value => {
   if (value) {
   if (value) {

+ 47 - 47
src/views/accompanyManager/index.vue

@@ -1,47 +1,47 @@
-<!--  -->
-<template>
-  <div class="m-container">
-    <h2>
-      <div class="squrt"></div>
-      网管课管理
-    </h2>
-    <div class="m-core">
-      <tab-router
-        v-model.trim="activeIndex"
-        type="card"
-        @tab-click="handleClick"
-      >
-        <el-tab-pane label="网管课管理" lazy name="1">
-          <accompanyList v-if="activeIndex === '1'" />
-        </el-tab-pane>
-        <el-tab-pane label="网管课购买" lazy name="2">
-          <accompanyBuys v-if="activeIndex === '2'" />
-        </el-tab-pane>
-      </tab-router>
-    </div>
-  </div>
-</template>
-
-<script>
-import accompanyList from "@/views/accompanyManager/accompanyList";
-import accompanyBuys from "@/views/accompanyManager/accompanyBuys";
-export default {
-  components: { accompanyList, accompanyBuys },
-  data() {
-    return {
-      activeIndex: "1",
-    };
-  },
-  //生命周期 - 创建完成(可以访问当前this实例)
-  created() {},
-  //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted() {},
-  methods: {
-    handleClick(evt) {
-      // this.changeHash(evt.name);
-    },
-  },
-};
-</script>
-<style lang='scss' scoped>
-</style>
+<!--  -->
+<template>
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      网管课管理
+    </h2>
+    <div class="m-core">
+      <tab-router
+        v-model.trim="activeIndex"
+        type="card"
+        @tab-click="handleClick"
+      >
+        <el-tab-pane label="网管课管理" lazy name="1">
+          <accompanyList v-if="activeIndex === '1'" />
+        </el-tab-pane>
+        <el-tab-pane label="网管课购买" lazy name="2">
+          <accompanyBuys v-if="activeIndex === '2'" />
+        </el-tab-pane>
+      </tab-router>
+    </div>
+  </div>
+</template>
+
+<script>
+import accompanyList from "@/views/accompanyManager/accompanyList";
+import accompanyBuys from "@/views/accompanyManager/accompanyBuys";
+export default {
+  components: { accompanyList, accompanyBuys },
+  data() {
+    return {
+      activeIndex: "1",
+    };
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  methods: {
+    handleClick(evt) {
+      // this.changeHash(evt.name);
+    },
+  },
+};
+</script>
+<style lang='scss' scoped>
+</style>

+ 243 - 243
src/views/main/baseinfo/business.vue

@@ -1,243 +1,243 @@
-<template
->
-  <el-card header="">
-    <div slot="header" class="clearfix">
-      <searchHeader
-        v-if="mdate.length > 0"
-        :dates="mdate"
-        :title="'业务数据'"
-        :isShowQuert="false"
-        @changeValue="changeValue"
-      />
-    </div>
-
-    <div class="wall" style="height:68px;" v-if="JSON.stringify(items) == '{}'"></div>
-    <statistic class="statistic" :cols="0">
-      <statistic-item
-        v-for="(item, key) in items"
-        :key="key"
-        :class="{ active: active === key }"
-        @click="active = key"
-      >
-        <span>
-          {{ item.title+'(%)'}}
-          <el-tooltip
-            v-if="item.desc"
-            :content="item.desc"
-            :open-delay="0.3"
-            placement="top"
-          >
-            <i
-              style="margin-left: 5px; cursor: pointer"
-              class="el-icon-warning-outline"
-            />
-          </el-tooltip>
-        </span>
-        <span> <count-to :endVal="item.percent" :decimals="2" /></span>
-      </statistic-item>
-    </statistic>
-    <!--   :data-zoom="dataZoom" -->
-    <ve-line
-      style="width: 100%"
-      height="350px"
-      :data="chartData"
-      :data-empty="dataEmpty"
-      :extend="chartExtend"
-      :legend="legend"
-    ></ve-line>
-  </el-card>
-</template>
-<script>
-import "v-charts/lib/style.css";
-import "echarts/lib/component/dataZoom";
-import countTo from "vue-count-to";
-import veLine from "v-charts/lib/line.common";
-import searchHeader from "./modals/searchHeader";
-import { getTimes } from "@/utils";
-import { getIndex } from "../api";
-import { descs, chioseNum } from "../constant";
-import { getNowDateAndSunday, getNowDateAndMonday } from "@/utils/date";
-export default {
-  props: ["data", "search"],
-  components: {
-    "count-to": countTo,
-    "ve-line": veLine,
-    searchHeader,
-  },
-  computed: {
-    legend() {
-      return {
-        left: "10px",
-      };
-    },
-    items() {
-      let obj = {}
-      let arr = ["HOMEWORK_CREATE_RATE","HOMEWORK_SUBMIT_RATE","HOMEWORK_COMMENT_RATE"]
-      arr.forEach(str=>{
-        if(this.data[str]){
-          obj[str]=this.data[str]
-        }
-      })
-      /**
-       *  {
-        HOMEWORK_CREATE_RATE:this.data["HOMEWORK_CREATE_RATE"] || {},
-        HOMEWORK_SUBMIT_RATE: this.data["HOMEWORK_SUBMIT_RATE"] || {},
-        HOMEWORK_COMMENT_RATE: this.data["HOMEWORK_COMMENT_RATE"] || {},
-      };
-       */
-      return obj
-    },
-    chartExtend() {
-      return {
-        series: {
-           type: 'line',
-          smooth: false,
-        },
-        yAxis: {
-          //纵轴标尺固定
-          minInterval: 1,
-          type: "value",
-          scale: true,
-          min: 0,
-          max: 100,
-          axisLabel: {
-            formatter: "{value}%",
-          },
-        },
-        tooltip: {
-          axisPointer: {
-            type: "shadow",
-            shadowStyle: {
-              color: "rgba(150,150,150,0.2)",
-            },
-          },
-
-          formatter: (item) => {
-            return [
-              item[0].axisValueLabel,
-              ...item.map(
-                (d) => `<br/>${d.marker}${d.seriesName}: ${d.value[1]} %`
-              ),
-            ].join("");
-          },
-        },
-      };
-    },
-    dataZoom() {
-      return [
-        {
-          grid: {
-            left: "0%",
-          },
-          type: "slider",
-          start: 40,
-          end: 100,
-        },
-      ];
-    },
-    chartData() {
-      const values = Object.values(this.items);
-      const months = {};
-      for (const item of values) {
-        for (const row of item.indexMonthData || []) {
-          const key = this.$helpers.dayjs(row.month).format("YYYY-MM-DD");
-          if (!months[key]) {
-            months[key] = {
-              日期: key + "/" + getNowDateAndSunday(key),
-            };
-          }
-          months[key][item.title] = row.percent;
-        }
-      }
-
-      return {
-        columns: [
-          "日期",
-          ...values.map((item) => {
-            return item.title;
-          }),
-        ],
-        rows: Object.values(months),
-      };
-    },
-    dataEmpty() {
-      return !this.chartData.rows.length;
-    },
-  },
-  data() {
-    return {
-      active: "ACTIVATION_RATE",
-      mdate: [],
-      loading: false,
-    };
-  },
-  mounted() {
-    this.init()
-  },
-  methods: {
-    init() {
-      let nowTiem = this.$helpers.dayjs(new Date()).format("YYYY-MM-DD");
-      let startTime = this.$helpers
-        .dayjs(getNowDateAndMonday(nowTiem))
-        .subtract(49, "day")
-        .format("YYYY-MM-DD");
-      let endTime = getNowDateAndSunday(nowTiem);
-      this.mdate = [startTime, endTime];
-      this.FetchDetail();
-    },
-    changeValue(date) {
-      // 请求更改数据
-      this.mdate = date;
-      //  this.isDayOrMoth(date)
-      this.FetchDetail();
-    },
-    async FetchDetail() {
-      this.loading = true;
-      let data = [];
-      try {
-        const { dates, ...rest } = this.search;
-        const res = await getIndex({
-          ...rest,
-          ...getTimes(this.mdate, ["startDate", "endDate"]),
-          dataTypes:
-            "HOMEWORK_CREATE_RATE,HOMEWORK_SUBMIT_RATE,HOMEWORK_COMMENT_RATE",
-        });
-        for (const item of res.data) {
-          // 再循环一遍
-          for (const key in this.items) {
-            if (item.dataType == key) {
-              data[item.dataType] = {
-                ...item,
-                desc: descs[item.dataType],
-              };
-            }
-          }
-        }
-      } catch (error) {
-        console.log(error);
-      }
-      this.loading = false;
-      // this.dataInfo = data;
-      this.$emit("resetDate", data);
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-// .statistic{
-//   /deep/ .statistic-content{
-//     cursor: pointer;
-//     &.active > span{
-//       color: var(--color-primary) !important;
-//     }
-//   }
-// }
-.chioseBox {
-  position: absolute;
-  right: 20px;
-  z-index: 1000;
-}
-.wrap {
-  position: relative;
-}
-</style>
+<template
+>
+  <el-card header="">
+    <div slot="header" class="clearfix">
+      <searchHeader
+        v-if="mdate.length > 0"
+        :dates="mdate"
+        :title="'业务数据'"
+        :isShowQuert="false"
+        @changeValue="changeValue"
+      />
+    </div>
+
+    <div class="wall" style="height:68px;" v-if="JSON.stringify(items) == '{}'"></div>
+    <statistic class="statistic" :cols="0">
+      <statistic-item
+        v-for="(item, key) in items"
+        :key="key"
+        :class="{ active: active === key }"
+        @click="active = key"
+      >
+        <span>
+          {{ item.title+'(%)'}}
+          <el-tooltip
+            v-if="item.desc"
+            :content="item.desc"
+            :open-delay="0.3"
+            placement="top"
+          >
+            <i
+              style="margin-left: 5px; cursor: pointer"
+              class="el-icon-warning-outline"
+            />
+          </el-tooltip>
+        </span>
+        <span> <count-to :endVal="item.percent" :decimals="2" /></span>
+      </statistic-item>
+    </statistic>
+    <!--   :data-zoom="dataZoom" -->
+    <ve-line
+      style="width: 100%"
+      height="350px"
+      :data="chartData"
+      :data-empty="dataEmpty"
+      :extend="chartExtend"
+      :legend="legend"
+    ></ve-line>
+  </el-card>
+</template>
+<script>
+import "v-charts/lib/style.css";
+import "echarts/lib/component/dataZoom";
+import countTo from "vue-count-to";
+import veLine from "v-charts/lib/line.common";
+import searchHeader from "./modals/searchHeader";
+import { getTimes } from "@/utils";
+import { getIndex } from "../api";
+import { descs, chioseNum } from "../constant";
+import { getNowDateAndSunday, getNowDateAndMonday } from "@/utils/date";
+export default {
+  props: ["data", "search"],
+  components: {
+    "count-to": countTo,
+    "ve-line": veLine,
+    searchHeader,
+  },
+  computed: {
+    legend() {
+      return {
+        left: "10px",
+      };
+    },
+    items() {
+      let obj = {}
+      let arr = ["HOMEWORK_CREATE_RATE","HOMEWORK_SUBMIT_RATE","HOMEWORK_COMMENT_RATE"]
+      arr.forEach(str=>{
+        if(this.data[str]){
+          obj[str]=this.data[str]
+        }
+      })
+      /**
+       *  {
+        HOMEWORK_CREATE_RATE:this.data["HOMEWORK_CREATE_RATE"] || {},
+        HOMEWORK_SUBMIT_RATE: this.data["HOMEWORK_SUBMIT_RATE"] || {},
+        HOMEWORK_COMMENT_RATE: this.data["HOMEWORK_COMMENT_RATE"] || {},
+      };
+       */
+      return obj
+    },
+    chartExtend() {
+      return {
+        series: {
+           type: 'line',
+          smooth: false,
+        },
+        yAxis: {
+          //纵轴标尺固定
+          minInterval: 1,
+          type: "value",
+          scale: true,
+          min: 0,
+          max: 100,
+          axisLabel: {
+            formatter: "{value}%",
+          },
+        },
+        tooltip: {
+          axisPointer: {
+            type: "shadow",
+            shadowStyle: {
+              color: "rgba(150,150,150,0.2)",
+            },
+          },
+
+          formatter: (item) => {
+            return [
+              item[0].axisValueLabel,
+              ...item.map(
+                (d) => `<br/>${d.marker}${d.seriesName}: ${d.value[1]} %`
+              ),
+            ].join("");
+          },
+        },
+      };
+    },
+    dataZoom() {
+      return [
+        {
+          grid: {
+            left: "0%",
+          },
+          type: "slider",
+          start: 40,
+          end: 100,
+        },
+      ];
+    },
+    chartData() {
+      const values = Object.values(this.items);
+      const months = {};
+      for (const item of values) {
+        for (const row of item.indexMonthData || []) {
+          const key = this.$helpers.dayjs(row.month).format("YYYY-MM-DD");
+          if (!months[key]) {
+            months[key] = {
+              日期: key + "/" + getNowDateAndSunday(key),
+            };
+          }
+          months[key][item.title] = row.percent;
+        }
+      }
+
+      return {
+        columns: [
+          "日期",
+          ...values.map((item) => {
+            return item.title;
+          }),
+        ],
+        rows: Object.values(months),
+      };
+    },
+    dataEmpty() {
+      return !this.chartData.rows.length;
+    },
+  },
+  data() {
+    return {
+      active: "ACTIVATION_RATE",
+      mdate: [],
+      loading: false,
+    };
+  },
+  mounted() {
+    this.init()
+  },
+  methods: {
+    init() {
+      let nowTiem = this.$helpers.dayjs(new Date()).format("YYYY-MM-DD");
+      let startTime = this.$helpers
+        .dayjs(getNowDateAndMonday(nowTiem))
+        .subtract(49, "day")
+        .format("YYYY-MM-DD");
+      let endTime = getNowDateAndSunday(nowTiem);
+      this.mdate = [startTime, endTime];
+      this.FetchDetail();
+    },
+    changeValue(date) {
+      // 请求更改数据
+      this.mdate = date;
+      //  this.isDayOrMoth(date)
+      this.FetchDetail();
+    },
+    async FetchDetail() {
+      this.loading = true;
+      let data = [];
+      try {
+        const { dates, ...rest } = this.search;
+        const res = await getIndex({
+          ...rest,
+          ...getTimes(this.mdate, ["startDate", "endDate"]),
+          dataTypes:
+            "HOMEWORK_CREATE_RATE,HOMEWORK_SUBMIT_RATE,HOMEWORK_COMMENT_RATE",
+        });
+        for (const item of res.data) {
+          // 再循环一遍
+          for (const key in this.items) {
+            if (item.dataType == key) {
+              data[item.dataType] = {
+                ...item,
+                desc: descs[item.dataType],
+              };
+            }
+          }
+        }
+      } catch (error) {
+        console.log(error);
+      }
+      this.loading = false;
+      // this.dataInfo = data;
+      this.$emit("resetDate", data);
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+// .statistic{
+//   /deep/ .statistic-content{
+//     cursor: pointer;
+//     &.active > span{
+//       color: var(--color-primary) !important;
+//     }
+//   }
+// }
+.chioseBox {
+  position: absolute;
+  right: 20px;
+  z-index: 1000;
+}
+.wrap {
+  position: relative;
+}
+</style>

+ 306 - 306
src/views/main/baseinfo/index.vue

@@ -1,306 +1,306 @@
-<template>
-  <div class="container main">
-    <save-form
-      inline
-      :model="search"
-      @submit="FetchDetail"
-      @reset="reset"
-      saveKey="/main/main/baseInfo"
-    >
-      <!-- <el-form-item prop="year">
-        <el-date-picker
-          v-model="search.dates"
-          type="daterange"
-          align="right"
-          unlink-panels
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :picker-options="pickerOptions">
-        </el-date-picker>
-      </el-form-item> -->
-      <el-form-item prop="organId">
-        <el-select
-          clearable
-          filterable
-          placeholder="请选择分部"
-          v-model="search.organId"
-        >
-          <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-button native-type="submit" type="primary">搜索</el-button>
-      <el-button native-type="reset" type="danger">重置</el-button>
-    </save-form>
-    <!-- <el-alert type="info" :closable="false" style="margin-bottom: 20px;">
-      每日0点更新前一日数据
-    </el-alert> -->
-    <!-- 这里显示选项卡 -->
-    <empty desc="暂无统计数据" v-if="isEmpty" />
-    <el-row v-else class="rows" :gutter="20">
-      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="8">
-        <studentbaseinfo :data="dataInfo" />
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="8">
-        <operate :data="dataInfo" />
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="8">
-        <hrdata :data="dataInfo" />
-      </el-col>
-      <!-- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-        <surplusCourse :data="dataInfo" />
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-        <useCourse :data="dataInfo" />
-      </el-col> -->
-      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-        <management
-          ref="management"
-          :data="dataInfo"
-          :search="search"
-          @resetDate="resetDate"
-        />
-      </el-col>
-      <el-col
-        :xs="24"
-        :sm="24"
-        :md="24"
-        :lg="24"
-        :xl="24"
-        v-if="$helpers.tenantId == 1"
-      >
-        <business
-          ref="business"
-          :data="dataInfo"
-          :search="search"
-          @resetDate="resetDate"
-        />
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-        <curriculum
-          :data="dataInfo"
-          ref="curriculum"
-          :search="search"
-          @resetDate="resetDate"
-        />
-      </el-col>
-      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-        <student
-          :data="dataInfo"
-          ref="student"
-          :search="search"
-          @resetDate="resetDate"
-        />
-      </el-col>
-
-      <!-- <el-col :xs="24" :sm="24" :md="12">
-        <operate :data="dataInfo"/>
-      </el-col> -->
-      <!-- <el-col :xs="24" :sm="24" :md="12">
-        <hrdata :data="dataInfo"/>
-      </el-col> -->
-    </el-row>
-  </div>
-</template>
-<script>
-import { getIndex } from "../api";
-import operate from "./operate";
-import business from "./business";
-import management from "./management";
-import hrdata from "./hr";
-import student from "./student";
-import curriculum from "./curriculum";
-import studentbaseinfo from "./studentBaseinfo";
-import surplusCourse from "./surplusCourse";
-import useCourse from "./useCourse";
-import { getTimes } from "@/utils";
-import { descs } from "../constant";
-
-export default {
-  components: {
-    operate,
-    business,
-    management,
-    hrdata,
-    student,
-    curriculum,
-    studentbaseinfo,
-    surplusCourse,
-    useCourse,
-  },
-  data() {
-    return {
-      pickerOptions: {
-        firstDayOfWeek: 1,
-        disabledDate: (a) => {
-          const { dayjs } = this.$helpers;
-          return dayjs(a).isAfter(dayjs().subtract(1, "day"));
-        },
-        shortcuts: [
-          {
-            text: "最近一周",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 8);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 31);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近三个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 91);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-        ],
-      },
-      search: {
-        dates: [],
-        organId: null,
-      },
-      dataInfo: {},
-      business: {},
-      loading: false,
-    };
-  },
-  computed: {
-    isEmpty() {
-      return !Object.keys(this.dataInfo).length;
-    },
-  },
-  created() {},
-  async mounted() {
-    this.$set(this.search, "dates", this.getInitDate());
-   await this.$store.dispatch("setBranchs");
-    this.FetchDetail();
-  },
-  methods: {
-    getInitDate() {
-      const end = this.$helpers
-        .dayjs(new Date())
-        .subtract(1, "day")
-        .format("YYYY-MM-DD");
-      const start = this.$helpers
-        .dayjs(new Date())
-        .subtract(1, "day")
-        .set("date", 1)
-        .format("YYYY-MM-DD");
-      return [start, end];
-    },
-    reset() {
-      this.$set(this.search, "dates", this.getInitDate());
-      this.$set(this.search, "organId", null);
-      this.FetchDetail();
-    },
-    async FetchDetail() {
-      // 这里改变就通知子组件重置
-
-      const data = {};
-      try {
-        const { dates, ...rest } = this.search;
-        const res = await getIndex({
-          ...rest,
-          ...getTimes(dates, ["startDate", "endDate"]),
-        });
-        for (const item of res.data) {
-          data[item.dataType] = {
-            ...item,
-            desc: descs[item.dataType],
-          };
-        }
-      } catch (error) {
-        console.log(error);
-      }
-      this.dataInfo = data;
-      if (this.$refs.business) {
-        this.$refs["business"].init();
-      }
-      if (this.$refs.management) {
-        this.$refs["management"].init();
-      }
-    },
-    resetDate(data) {
-      let arr = null;
-      for (let item in data) {
-        // console.log(item)
-        if (item == "VIP_GROUP_COURSE") {
-          arr = data[item].indexMonthData;
-        }
-        this.dataInfo[item] = data[item];
-      }
-      this.dataInfo = { ...this.dataInfo };
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.container {
-  overflow: hidden;
-  .rows {
-    > div {
-      margin-bottom: 20px;
-    }
-  }
-  /deep/ .el-card__body .statistic {
-    margin-bottom: 15px;
-    padding: 0;
-  }
-}
-/deep/.el-card__header {
-  padding: 0 20px !important;
-}
-</style>
-<style lang="scss">
-.main {
-  .statistic {
-    .statistic-content > span {
-      font-size: 22px !important;
-      &:first-child {
-        font-size: 14px !important;
-      }
-    }
-  }
-}
-
-.box {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  height: 55px;
-  line-height: 55px;
-  .shape {
-    margin-right: 10px;
-    height: 18px;
-    width: 4px;
-    background-color: var(--color-primary);
-  }
-}
-.wall {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  justify-content: center;
-  color: #888;
-  font-size: 14px;
-}
-</style>
+<template>
+  <div class="container main">
+    <save-form
+      inline
+      :model="search"
+      @submit="FetchDetail"
+      @reset="reset"
+      saveKey="/main/main/baseInfo"
+    >
+      <!-- <el-form-item prop="year">
+        <el-date-picker
+          v-model="search.dates"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions">
+        </el-date-picker>
+      </el-form-item> -->
+      <el-form-item prop="organId">
+        <el-select
+          clearable
+          filterable
+          placeholder="请选择分部"
+          v-model="search.organId"
+        >
+          <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-button native-type="submit" type="primary">搜索</el-button>
+      <el-button native-type="reset" type="danger">重置</el-button>
+    </save-form>
+    <!-- <el-alert type="info" :closable="false" style="margin-bottom: 20px;">
+      每日0点更新前一日数据
+    </el-alert> -->
+    <!-- 这里显示选项卡 -->
+    <empty desc="暂无统计数据" v-if="isEmpty" />
+    <el-row v-else class="rows" :gutter="20">
+      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="8">
+        <studentbaseinfo :data="dataInfo" />
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="8">
+        <operate :data="dataInfo" />
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="8">
+        <hrdata :data="dataInfo" />
+      </el-col>
+      <!-- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
+        <surplusCourse :data="dataInfo" />
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
+        <useCourse :data="dataInfo" />
+      </el-col> -->
+      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+        <management
+          ref="management"
+          :data="dataInfo"
+          :search="search"
+          @resetDate="resetDate"
+        />
+      </el-col>
+      <el-col
+        :xs="24"
+        :sm="24"
+        :md="24"
+        :lg="24"
+        :xl="24"
+        v-if="$helpers.tenantId == 1"
+      >
+        <business
+          ref="business"
+          :data="dataInfo"
+          :search="search"
+          @resetDate="resetDate"
+        />
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+        <curriculum
+          :data="dataInfo"
+          ref="curriculum"
+          :search="search"
+          @resetDate="resetDate"
+        />
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+        <student
+          :data="dataInfo"
+          ref="student"
+          :search="search"
+          @resetDate="resetDate"
+        />
+      </el-col>
+
+      <!-- <el-col :xs="24" :sm="24" :md="12">
+        <operate :data="dataInfo"/>
+      </el-col> -->
+      <!-- <el-col :xs="24" :sm="24" :md="12">
+        <hrdata :data="dataInfo"/>
+      </el-col> -->
+    </el-row>
+  </div>
+</template>
+<script>
+import { getIndex } from "../api";
+import operate from "./operate";
+import business from "./business";
+import management from "./management";
+import hrdata from "./hr";
+import student from "./student";
+import curriculum from "./curriculum";
+import studentbaseinfo from "./studentBaseinfo";
+import surplusCourse from "./surplusCourse";
+import useCourse from "./useCourse";
+import { getTimes } from "@/utils";
+import { descs } from "../constant";
+
+export default {
+  components: {
+    operate,
+    business,
+    management,
+    hrdata,
+    student,
+    curriculum,
+    studentbaseinfo,
+    surplusCourse,
+    useCourse,
+  },
+  data() {
+    return {
+      pickerOptions: {
+        firstDayOfWeek: 1,
+        disabledDate: (a) => {
+          const { dayjs } = this.$helpers;
+          return dayjs(a).isAfter(dayjs().subtract(1, "day"));
+        },
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 8);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 31);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 91);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+      search: {
+        dates: [],
+        organId: null,
+      },
+      dataInfo: {},
+      business: {},
+      loading: false,
+    };
+  },
+  computed: {
+    isEmpty() {
+      return !Object.keys(this.dataInfo).length;
+    },
+  },
+  created() {},
+  async mounted() {
+    this.$set(this.search, "dates", this.getInitDate());
+   await this.$store.dispatch("setBranchs");
+    this.FetchDetail();
+  },
+  methods: {
+    getInitDate() {
+      const end = this.$helpers
+        .dayjs(new Date())
+        .subtract(1, "day")
+        .format("YYYY-MM-DD");
+      const start = this.$helpers
+        .dayjs(new Date())
+        .subtract(1, "day")
+        .set("date", 1)
+        .format("YYYY-MM-DD");
+      return [start, end];
+    },
+    reset() {
+      this.$set(this.search, "dates", this.getInitDate());
+      this.$set(this.search, "organId", null);
+      this.FetchDetail();
+    },
+    async FetchDetail() {
+      // 这里改变就通知子组件重置
+
+      const data = {};
+      try {
+        const { dates, ...rest } = this.search;
+        const res = await getIndex({
+          ...rest,
+          ...getTimes(dates, ["startDate", "endDate"]),
+        });
+        for (const item of res.data) {
+          data[item.dataType] = {
+            ...item,
+            desc: descs[item.dataType],
+          };
+        }
+      } catch (error) {
+        console.log(error);
+      }
+      this.dataInfo = data;
+      if (this.$refs.business) {
+        this.$refs["business"].init();
+      }
+      if (this.$refs.management) {
+        this.$refs["management"].init();
+      }
+    },
+    resetDate(data) {
+      let arr = null;
+      for (let item in data) {
+        // console.log(item)
+        if (item == "VIP_GROUP_COURSE") {
+          arr = data[item].indexMonthData;
+        }
+        this.dataInfo[item] = data[item];
+      }
+      this.dataInfo = { ...this.dataInfo };
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+.container {
+  overflow: hidden;
+  .rows {
+    > div {
+      margin-bottom: 20px;
+    }
+  }
+  /deep/ .el-card__body .statistic {
+    margin-bottom: 15px;
+    padding: 0;
+  }
+}
+/deep/.el-card__header {
+  padding: 0 20px !important;
+}
+</style>
+<style lang="scss">
+.main {
+  .statistic {
+    .statistic-content > span {
+      font-size: 22px !important;
+      &:first-child {
+        font-size: 14px !important;
+      }
+    }
+  }
+}
+
+.box {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  height: 55px;
+  line-height: 55px;
+  .shape {
+    margin-right: 10px;
+    height: 18px;
+    width: 4px;
+    background-color: var(--color-primary);
+  }
+}
+.wall {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: center;
+  color: #888;
+  font-size: 14px;
+}
+</style>

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików