Xiao_Mo 4 лет назад
Родитель
Сommit
000874e71e
100 измененных файлов с 578 добавлено и 211 удалено
  1. 0 0
      dist/static/js/app.c4497381.js
  2. 0 0
      dist/static/js/chunk-013e72b3.56da4a74.js
  3. 0 0
      dist/static/js/chunk-04b7540e.055332e1.js
  4. 0 0
      dist/static/js/chunk-07bcf2e6.febfb09a.js
  5. 0 0
      dist/static/js/chunk-0af06729.e0c50da3.js
  6. 0 0
      dist/static/js/chunk-0e668819.c7fca610.js
  7. 0 0
      dist/static/js/chunk-13bd442f.c71d64f8.js
  8. 0 0
      dist/static/js/chunk-13f8e716.8086775f.js
  9. 0 0
      dist/static/js/chunk-1554f5f4.253d34ca.js
  10. 0 0
      dist/static/js/chunk-15770507.c8679faa.js
  11. 0 0
      dist/static/js/chunk-17b879c2.8fe90e90.js
  12. 0 0
      dist/static/js/chunk-18013662.a94c5bdb.js
  13. 0 0
      dist/static/js/chunk-18bbf854.1350a350.js
  14. 0 0
      dist/static/js/chunk-196dc8ee.9bace685.js
  15. 0 0
      dist/static/js/chunk-1ca30b97.185fdfa1.js
  16. 0 0
      dist/static/js/chunk-1d43077c.366a9389.js
  17. 0 0
      dist/static/js/chunk-20db936c.db98fe37.js
  18. 1 1
      dist/static/js/chunk-2d0a32ea.3e23f2d4.js
  19. 0 0
      dist/static/js/chunk-2d0cfb23.015e05a2.js
  20. 0 0
      dist/static/js/chunk-2da2d364.0b4bc756.js
  21. 0 0
      dist/static/js/chunk-30617446.992f5d8d.js
  22. 0 0
      dist/static/js/chunk-332df63f.b3b42931.js
  23. 0 0
      dist/static/js/chunk-34764697.52dbd1b5.js
  24. 0 0
      dist/static/js/chunk-35d964c1.0c6f62ab.js
  25. 0 0
      dist/static/js/chunk-36548fb3.7acdf2ea.js
  26. 0 0
      dist/static/js/chunk-37caa5c6.08b117ea.js
  27. 0 0
      dist/static/js/chunk-3acfddfc.a2df73d7.js
  28. 0 0
      dist/static/js/chunk-3f7c6ea7.fa2eaed7.js
  29. 0 0
      dist/static/js/chunk-4044fa84.6ca7e0a4.js
  30. 0 0
      dist/static/js/chunk-41d99762.2fb4b6fc.js
  31. 0 0
      dist/static/js/chunk-4540290a.4986ca3f.js
  32. 0 0
      dist/static/js/chunk-4647ad6d.106a68a1.js
  33. 0 0
      dist/static/js/chunk-4a5767e5.781c63f7.js
  34. 0 0
      dist/static/js/chunk-4d6710e9.e999e027.js
  35. 0 0
      dist/static/js/chunk-53afcbb2.6c4ad1c5.js
  36. 0 0
      dist/static/js/chunk-573432f8.6cdfaf56.js
  37. 0 0
      dist/static/js/chunk-58b93a1a.542a2df1.js
  38. 0 0
      dist/static/js/chunk-5bcfc712.6aea182b.js
  39. 0 0
      dist/static/js/chunk-6562cc02.8b8bf30a.js
  40. 0 0
      dist/static/js/chunk-680b82b4.a3848824.js
  41. 0 0
      dist/static/js/chunk-6a1562ab.9930c3da.js
  42. 0 0
      dist/static/js/chunk-6e855f0c.da6a4e7e.js
  43. 0 0
      dist/static/js/chunk-6fdbc1f3.feedb073.js
  44. 0 0
      dist/static/js/chunk-72b3fe40.11091d2e.js
  45. 0 0
      dist/static/js/chunk-73def078.f1c0beaf.js
  46. 0 0
      dist/static/js/chunk-7691df9b.3c9bcc00.js
  47. 0 0
      dist/static/js/chunk-77449cf7.5d35613b.js
  48. 0 0
      dist/static/js/chunk-7f91ee0d.c1280531.js
  49. 0 0
      dist/static/js/chunk-91193b0c.646a8801.js
  50. 0 0
      dist/static/js/chunk-99129380.bbd783dc.js
  51. 0 0
      dist/static/js/chunk-a1a9433e.eb08c14d.js
  52. 0 0
      dist/static/js/chunk-c0b0701c.1ce010b1.js
  53. 0 0
      dist/static/js/chunk-d07d10c4.bf00cc10.js
  54. 0 0
      dist/static/js/chunk-da63f3ae.01f73fb2.js
  55. 0 0
      dist/static/js/chunk-df9f4870.435ff49d.js
  56. 0 0
      dist/static/js/chunk-e60d0406.26dc7aca.js
  57. 0 0
      dist/static/js/chunk-ebf07848.b8137801.js
  58. 0 0
      dist/static/js/chunk-efd12eaa.0e79ab22.js
  59. 0 0
      dist/static/js/chunk-f09b4a16.05583bb8.js
  60. 0 0
      dist/static/js/chunk-f6294b9e.10456b6d.js
  61. 0 0
      dist/static/js/chunk-fb916698.8a93df54.js
  62. 0 0
      dist/static/js/chunk-fd1cca6c.a0113ac9.js
  63. 0 0
      dist/static/js/chunk-libs.e14e97f6.js
  64. 0 0
      dist/yuepu/assets/index-legacy.83f908ef.js
  65. 0 0
      dist/yuepu/assets/index.1adfde28.js
  66. 0 0
      dist/yuepu/assets/vendor-legacy.047522f1.js
  67. 0 0
      dist/yuepu/assets/vendor.e484ff32.js
  68. 2 2
      mock/mock-server.js
  69. 1 0
      package.json
  70. 0 0
      public/yuepu/assets/index-legacy.83f908ef.js
  71. 0 0
      public/yuepu/assets/index.1adfde28.js
  72. 0 0
      public/yuepu/assets/vendor-legacy.047522f1.js
  73. 0 0
      public/yuepu/assets/vendor.e484ff32.js
  74. 1 1
      src/components/Auth/index.vue
  75. 2 4
      src/components/Editor/index.vue
  76. 1 1
      src/components/filter-search/index.vue
  77. 0 1
      src/components/form-item/index.vue
  78. 5 5
      src/components/remote-search/index.vue
  79. 1 1
      src/components/save-form/index.vue
  80. 0 1
      src/components/select-all/index.vue
  81. 2 2
      src/components/tab-router/index.vue
  82. 2 1
      src/constant/index.js
  83. 1 1
      src/layout/components/Navbar.vue
  84. 7 6
      src/layout/components/Sidebar/SidebarItem.vue
  85. 4 4
      src/layout/components/Sidebar/SidebarMenuItem.vue
  86. 112 87
      src/layout/components/Sidebar/index.vue
  87. 5 5
      src/layout/components/TagsView.vue
  88. 2 2
      src/main.js
  89. 10 8
      src/permission.js
  90. 7 49
      src/router/index.js
  91. 400 13
      src/store/modules/permission.js
  92. 0 1
      src/utils/date.js
  93. 1 1
      src/utils/request.js
  94. 1 2
      src/views/403.vue
  95. 1 1
      src/views/accompaniment/modals/form.vue
  96. 2 2
      src/views/accompanyManager/accompanyList.vue
  97. 2 3
      src/views/accompanyManager/accompanys.vue
  98. 2 2
      src/views/adapayAccount/form.vue
  99. 2 3
      src/views/adapayAccount/index.vue
  100. 1 1
      src/views/afterSchoolManager/afterSchoolList.vue

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/app.c4497381.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-013e72b3.56da4a74.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-04b7540e.055332e1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-07bcf2e6.febfb09a.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-0af06729.e0c50da3.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-0e668819.c7fca610.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-13bd442f.c71d64f8.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-13f8e716.8086775f.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-1554f5f4.253d34ca.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-15770507.c8679faa.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-17b879c2.8fe90e90.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-18013662.a94c5bdb.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-18bbf854.1350a350.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-196dc8ee.9bace685.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-1ca30b97.185fdfa1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-1d43077c.366a9389.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-20db936c.db98fe37.js


+ 1 - 1
dist/static/js/chunk-2d0a32ea.3e23f2d4.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0a32ea"],{"00a5":function(t,n,e){"use strict";e.r(n);var c=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div")},a=[],o=(e("a481"),{data:function(){return{}},created:function(){var t=this.$route.query;console.log(t.path),this.$confirm("页面更新请刷新页面","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){router.replace(t.path)})).catch((function(){}))}}),r=o,u=e("2877"),i=Object(u["a"])(r,c,a,!1,null,null,null);n["default"]=i.exports}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0a32ea"],{"00a5":function(t,n,e){"use strict";e.r(n);var c=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div")},a=[],o=(e("a481"),{data:function(){return{}},created:function(){var t=this.$route.query; (t.path),this.$confirm("页面更新请刷新页面","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){router.replace(t.path)})).catch((function(){}))}}),r=o,u=e("2877"),i=Object(u["a"])(r,c,a,!1,null,null,null);n["default"]=i.exports}}]);

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-2d0cfb23.015e05a2.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-2da2d364.0b4bc756.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-30617446.992f5d8d.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-332df63f.b3b42931.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-34764697.52dbd1b5.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-35d964c1.0c6f62ab.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-36548fb3.7acdf2ea.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-37caa5c6.08b117ea.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-3acfddfc.a2df73d7.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-3f7c6ea7.fa2eaed7.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-4044fa84.6ca7e0a4.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-41d99762.2fb4b6fc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-4540290a.4986ca3f.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-4647ad6d.106a68a1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-4a5767e5.781c63f7.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-4d6710e9.e999e027.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-53afcbb2.6c4ad1c5.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-573432f8.6cdfaf56.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-58b93a1a.542a2df1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-5bcfc712.6aea182b.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-6562cc02.8b8bf30a.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-680b82b4.a3848824.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-6a1562ab.9930c3da.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-6e855f0c.da6a4e7e.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-6fdbc1f3.feedb073.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-72b3fe40.11091d2e.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-73def078.f1c0beaf.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-7691df9b.3c9bcc00.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-77449cf7.5d35613b.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-7f91ee0d.c1280531.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-91193b0c.646a8801.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-99129380.bbd783dc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-a1a9433e.eb08c14d.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-c0b0701c.1ce010b1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-d07d10c4.bf00cc10.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-da63f3ae.01f73fb2.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-df9f4870.435ff49d.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-e60d0406.26dc7aca.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-ebf07848.b8137801.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-efd12eaa.0e79ab22.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-f09b4a16.05583bb8.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-f6294b9e.10456b6d.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-fb916698.8a93df54.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-fd1cca6c.a0113ac9.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-libs.e14e97f6.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/yuepu/assets/index-legacy.83f908ef.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/yuepu/assets/index.1adfde28.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/yuepu/assets/vendor-legacy.047522f1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/yuepu/assets/vendor.e484ff32.js


+ 2 - 2
mock/mock-server.js

@@ -59,9 +59,9 @@ module.exports = app => {
         mockRoutesLength = mockRoutes.mockRoutesLength
         mockStartIndex = mockRoutes.mockStartIndex
 
-        console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed  ${path}`))
+         (chalk.magentaBright(`\n > Mock Server hot reload success! changed  ${path}`))
       } catch (error) {
-        console.log(chalk.redBright(error))
+         (chalk.redBright(error))
       }
     }
   })

+ 1 - 0
package.json

@@ -15,6 +15,7 @@
   },
   "dependencies": {
     "@babel/plugin-proposal-optional-chaining": "^7.11.0",
+    "JSONPath": "^0.11.2",
     "axios": "0.18.1",
     "browserslist": "^4.13.0",
     "caniuse-lite": "^1.0.30001109",

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
public/yuepu/assets/index-legacy.83f908ef.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
public/yuepu/assets/index.1adfde28.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
public/yuepu/assets/vendor-legacy.047522f1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
public/yuepu/assets/vendor.e484ff32.js


+ 1 - 1
src/components/Auth/index.vue

@@ -38,7 +38,7 @@
         if(!auths) { // 判断是否有权限
           return false
         }
-        // console.log(auths)
+        //  (auths)
         if(typeof auths === 'object') {
           let sum = 0
           for(const auth of auths) {

+ 2 - 4
src/components/Editor/index.vue

@@ -67,7 +67,7 @@ export default {
        this.editorData = newHtml
        this.$emit('input', newHtml)
     }
-    // console.log(editor.txt.eventHooks)
+    //  (editor.txt.eventHooks)
     // editor.txt.eventHooks.clickEvents.push(() => {
     //   return false
     // })
@@ -78,7 +78,6 @@ export default {
     editor.config.customUploadImg = async (resultFiles, insertImgFn) => {
         // resultFiles 是 input 中选中的文件列表
         // insertImgFn 是获取图片 url 后,插入到编辑器的方法
-        console.log(insertImgFn)
         const file = resultFiles[0]
         const imageType = {
           "image/png": true,
@@ -128,7 +127,6 @@ export default {
   },
   watch: {
     value(newValue) {
-      console.log(newValue)
       this.editor.txt.html(newValue)
     }
   },
@@ -399,7 +397,7 @@ export default {
         };
         const isImage = imageType[file.type];
         const isLt2M = file.size / 1024 / 1024 < 2;
-        console.log(isImage, isLt2M)
+         (isImage, isLt2M)
         if (!isImage) {
           this.$message.error("只能上传图片格式!");
         }

+ 1 - 1
src/components/filter-search/index.vue

@@ -37,7 +37,7 @@ for (const key in errorType) {
   }
 }
 
-// console.log(typesByUrl)
+//  (typesByUrl)
 
 export default {
   name: 'filter-search',

+ 0 - 1
src/components/form-item/index.vue

@@ -11,7 +11,6 @@
 export default {
   name: 'form-item',
   mounted() {
-    console.log(this)
   }
 }
 </script>

+ 5 - 5
src/components/remote-search/index.vue

@@ -55,7 +55,7 @@ export default {
   },
   async mounted() {
     // this.getList();
-    // console.log(this.value)
+    //  (this.value)
     this.getOptions(this.value || "");
   },
   methods: {
@@ -73,7 +73,7 @@ export default {
           ? this.list
           : slice(this.list, 0, this.constant);
       this.options = uniqBy(this.options, "userId");
-      //  console.log(this.options)
+      //   (this.options)
     },
     remoteMethod(query) {
       // throttle
@@ -93,7 +93,7 @@ export default {
             if (this.multiple) {
               return flag || this.value.includes(item.userId);
             } else {
-              // console.log(query,this.value)
+              //  (query,this.value)
               return flag || item.userId == this.value;
             }
           }),
@@ -110,7 +110,7 @@ export default {
             this.options = uniqBy(this.options, "userId");
           }
         } catch (e) {
-          // console.log(e)
+          //  (e)
         }
       }
     },
@@ -118,7 +118,7 @@ export default {
       this.isFirst = false;
       this.$emit("input", val);
       this.$emit("change", val);
-      // console.log('来了',this.$refs.select.query)
+      //  ('来了',this.$refs.select.query)
       this.$nextTick((res) => {
         this.getOptions(this.$refs.select.query);
       });

+ 1 - 1
src/components/save-form/index.vue

@@ -48,7 +48,7 @@ export default {
         this.searchs.update(this.$route.path, undefined, 'bind')
       }
       this.searchs.update(this.model, undefined, 'form')
-        // console.log(  new Searchs().searchs)
+        //  (  new Searchs().searchs)
       if (this.$listeners.submit) {
         this.$listeners.submit(evt)
       }

+ 0 - 1
src/components/select-all/index.vue

@@ -46,7 +46,6 @@ export default {
   computed: {
     labelStr() {
       const { selected } = this.$refs.select;
-      console.log(selected);
       let labelStr = selected
         .map((item) => (item.label ? item.label : item.value))
         .join(",");

+ 2 - 2
src/components/tab-router/index.vue

@@ -66,11 +66,11 @@ export default {
       //   try{
 
       //       await this.$attrs['before-leave']().then(res=>{
-      //         console.log(res)
+      //          (res)
       //       })
 
       //   }catch(e){
-      //     console.log(e)
+      //      (e)
       //   }
 
 

+ 2 - 1
src/constant/index.js

@@ -262,7 +262,8 @@ export const clientType = {
 // ]
 export const downListType = {
   1:'订单列表',
-  2:'财务管理'
+  2:'财务管理',
+  3:'课表列表'
 }
 
 export const withdrawalStatus = {

+ 1 - 1
src/layout/components/Navbar.vue

@@ -199,7 +199,7 @@ export default {
     ...mapGetters(["sidebar", "avatar", "permission_routes"]),
     getTopMenuActive() {
       let route = this.$route;
-      // console.log(route, getBelongTopMenuPath(route))
+      //  (route, getBelongTopMenuPath(route))
       return getBelongTopMenuPath(route);
     }
   },

+ 7 - 6
src/layout/components/Sidebar/SidebarItem.vue

@@ -1,10 +1,10 @@
 <template>
   <div v-if="!item.hidden" v-show="menuIsShow(item)" class="menu-wrapper">
+    <!--  &&
+        !item.alwaysShow  && (!onlyOneChild.children|| onlyOneChild.children.length<=1 || onlyOneChild.noShowingChildren)-->
     <template
       v-if="
-        hasOneShowingChild(item.children, item) &&
-        (!onlyOneChild.children|| onlyOneChild.children.length<=1 || onlyOneChild.noShowingChildren) &&
-        !item.alwaysShow
+        hasOneShowingChild(item.children, item)
       "
     >
       <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
@@ -109,24 +109,25 @@ export default {
             activeTopMenu = meta.belongTopMenu;
         }
         //
-        // console.log(activeTopMenu, this.getActiveTopMenu)
+        //  (activeTopMenu, this.getActiveTopMenu)
         return activeTopMenu === this.getActiveTopMenu;
     },
     hasOneShowingChild(children = [], parent) {
+      let count = 0
       const showingChildren = children.filter((item) => {
         if (item.hidden) {
           return false;
         } else  {
           // Temp set(will be used if only has one showing child)
           this.onlyOneChild = item;
+          count++
           return true;
         }
       });
-
+      //  ('是否又多个子集',showingChildren)
       // When there is only one child router, the child router is displayed by default
 
       if (showingChildren.length === 1) {
-        // console.log(showingChildren[0].meta.title)
         return true;
       }
 

+ 4 - 4
src/layout/components/Sidebar/SidebarMenuItem.vue

@@ -97,7 +97,7 @@ export default {
             // When there is only one child router, the child router is displayed by default
 
             if (showingChildren.length === 1) {
-                // console.log(showingChildren[0].meta.title)
+                //  (showingChildren[0].meta.title)
                 return true;
             }
 
@@ -125,7 +125,7 @@ export default {
                     return true;
                 }
             });
-            // console.log(showChildren)
+            //  (showChildren)
             if (showChildren.length > 0) {
                 return true;
             }
@@ -144,9 +144,9 @@ export default {
             if (isExternal(routePath)) {
                 return routePath;
             }
-            // console.log(this.resolvePath, routePath)
+            //  (this.resolvePath, routePath)
             return path.resolve(this.resolvePath, routePath);
         }
     }
 };
-</script>
+</script>

+ 112 - 87
src/layout/components/Sidebar/index.vue

@@ -1,26 +1,30 @@
 <template>
-  <div :class="{'has-logo':showLogo}">
+  <div :class="{ 'has-logo': showLogo }">
     <!-- <logo v-if="showLogo"
           :collapse="false" /> -->
     <el-scrollbar wrap-class="scrollbar-wrapper">
       <!--    -->
-      <el-menu :default-active="activeMenu"
-               :collapse='false'
-                :background-color="variables.menuBg"
-               :text-color="variables.menuText"
-               :unique-opened="true"
-               :active-text-color="variables.menuActiveText2"
-               :collapse-transition="true"
-               mode="vertical">
+      <el-menu
+        :default-active="activeMenu"
+        :collapse="false"
+        :background-color="variables.menuBg"
+        :text-color="variables.menuText"
+        :unique-opened="true"
+        :active-text-color="variables.menuActiveText2"
+        :collapse-transition="true"
+        mode="vertical"
+      >
         <template v-for="route in permission_routes">
           <template v-if="!route.hidden">
             <!-- <sidebar-item  v-for="route2 in route.children" :key="route.path + '/' + route2.path" :item="route2" :base-path="route.path" :resolve-path="route.path" :active-top-menu="getTopMenuActive" /> -->
             <!-- <sidebar-menu-item v-for="route2 in route.children" :key="route.path + '/' + route2.path" :routes="route2" :base-path="route.path" :resolve-path="route.path" :active-top-menu="getTopMenuActive"/> -->
-            <sidebar-item v-for="(route2) in route.children"
-                      :key="route2.id"
-                      :item="route2"
-                      :active-top-menu="getTopMenuActive"
-                      :base-path="route2.path" />
+            <sidebar-item
+              v-for="route2 in route.children"
+              :key="route2.id"
+              :item="route2"
+              :active-top-menu="getTopMenuActive"
+              :base-path="route2.path"
+            />
           </template>
         </template>
         <!-- <sidebar-item v-for="(route,index) in permission_routes"
@@ -33,105 +37,124 @@
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
-import Logo from './Logo'
-import SidebarMenuItem from './SidebarMenuItem'
-import SidebarItem from './SidebarItem'
-import variables from '@/styles/variables.scss'
-import { getBelongTopMenuPath, getActiveSidebarMenuPath } from '@/utils/permission';
+import { mapGetters } from "vuex";
+import Logo from "./Logo";
+import SidebarMenuItem from "./SidebarMenuItem";
+import SidebarItem from "./SidebarItem";
+import variables from "@/styles/variables.scss";
+import {
+  getBelongTopMenuPath,
+  getActiveSidebarMenuPath,
+} from "@/utils/permission";
 export default {
   components: { SidebarItem, Logo, SidebarMenuItem },
   // mounted () {
   // },
   computed: {
-    ...mapGetters([
-      'sidebar',
-      'permission_routes'
-    ]),
+    ...mapGetters(["sidebar", "permission_routes"]),
     // routes () {
     //   return this.$router.options.routes
     // },
-    activeMenu () {
-      const route = this.$route
-      const { meta, path } = route
+    activeMenu() {
+      const route = this.$route;
+      const { meta, path } = route;
       // if set path, the sidebar will highlight the path you set
       // 设置高亮的位置
       if (meta.activeMenu) {
-        return meta.activeMenu
+        return meta.activeMenu;
       }
-      // console.log(meta, path)
-      return path
+      //  (meta, path)
+      return path;
     },
-    showLogo () {
-      return this.$store.state.settings.sidebarLogo
+    showLogo() {
+      return this.$store.state.settings.sidebarLogo;
     },
-    variables () {
-      return variables
+    variables() {
+      return variables;
     },
-    isCollapse () {
-      return false
+    isCollapse() {
+      return false;
     },
-    getSidebarMenuActive: function() {
+    getSidebarMenuActive: function () {
       const route = this.$route;
       return getActiveSidebarMenuPath(route);
     },
     getTopMenuActive() {
       let route = this.$route;
-      // console.log(getBelongTopMenuPath(route))
+      //  (getBelongTopMenuPath(route))
       return getBelongTopMenuPath(route);
-    }
+    },
   },
   mounted() {
-    // console.log(this.permission_routes)
-    this.menuIsShow(this.$route)
+    //  (this.permission_routes)
+    this.menuIsShow(this.$route);
   },
   watch: {
     $route() {
-      this.menuIsShow(this.$route)
-    }
+      this.menuIsShow(this.$route);
+    },
   },
   methods: {
     menuIsShow(route) {
-      let activeTopMenu
+      let activeTopMenu;
       const { meta } = route;
       if (meta.belongTopMenu) {
-          activeTopMenu = meta.belongTopMenu;
+        activeTopMenu = meta.belongTopMenu;
       }
-      let permissions = this.permission_routes || []
-      let childList = []
-      permissions.forEach(item => {
-        if(item.path == activeTopMenu) {
-          childList = item
+      let permissions = this.permission_routes || [];
+      let childList = [];
+      permissions.forEach((item) => {
+        if (item.path == activeTopMenu) {
+           ('childList',item)
+          childList = item;
         }
       });
-      let index = this.menuOperation(childList.children)
-      let status = index > 1 ? true : false
-      let routeParentName = sessionStorage.getItem('routeParentName')
+      //  (childList.children)
+      let index = this.menuOperation(childList.children);
+
+      //重写逻辑
+      let status = index > 0 ? true : false;
+      let routeParentName = sessionStorage.getItem("routeParentName");
       let params = {
-        status: status
+        status: status,
+      };
+      if (routeParentName != meta.belongTopMenu) {
+        params.isCollapse = true;
+        sessionStorage.setItem("routeParentName", meta.belongTopMenu);
       }
-      if(routeParentName != meta.belongTopMenu) {
-        params.isCollapse = true
-        sessionStorage.setItem('routeParentName', meta.belongTopMenu)
-      }
-      this.$emit('childStatus', params)
+
+      this.$emit("childStatus", params);
     },
     menuOperation(arr) {
       let index = 0;
-      for(let i = 0; i < arr.length; i++) {
-        if(arr[i].hidden) {
-          continue
-        }
-        if(arr[i].children && arr[i].children.length > 0) {
-          index += this.menuOperation(arr[i].children)
-        } else {
-          index++
+      if (arr?.length > 0) {
+        for (let i = 0; i < arr.length; i++) {
+          if (arr[i].hidden) {
+            continue;
+          }
+          //  (arr[i]);
+          if (arr[i].children?.length > 0) {
+            let isChildrenList = false;
+            arr[i].children.forEach((ii) => {
+              if (!ii.hidden) {
+                isChildrenList = true;
+              }
+            });
+            if (isChildrenList) {
+              index = this.menuOperation(arr[i].children);
+            }else{
+              index = 1
+            }
+          } else {
+            index++;
+          }
         }
       }
-      return index
-    }
-  }
-}
+
+      return index;
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .el-menu-item {
@@ -140,25 +163,26 @@ export default {
   }
 }
 
-/deep/.el-submenu__title, /deep/.el-menu-item {
+/deep/.el-submenu__title,
+/deep/.el-menu-item {
   font-size: 14px;
 }
 
 /deep/.el-menu-item.is-active {
-    font-weight: bold;
-    background-color: #EEF4F4 !important;
-    color: #14928a !important;
-    position: relative;
-    &::after{
-      position: absolute;
-      top: 0;
-      right: 0;
-      content: ' ';
-      width: 6px;
-      background-color: #14928a;
-      display: block;
-      height: 100%;
-    }
+  font-weight: bold;
+  background-color: #eef4f4 !important;
+  color: #14928a !important;
+  position: relative;
+  &::after {
+    position: absolute;
+    top: 0;
+    right: 0;
+    content: " ";
+    width: 6px;
+    background-color: #14928a;
+    display: block;
+    height: 100%;
+  }
 }
 /deep/.el-submenu .el-menu-item.is-active {
   color: #14928a !important;
@@ -166,7 +190,8 @@ export default {
 /deep/.el-menu .menu-wrapper .el-menu-item {
   color: #666666;
 }
-/deep/.el-menu-item, /deep/.el-submenu__title {
+/deep/.el-menu-item,
+/deep/.el-submenu__title {
   height: 60px !important;
   line-height: 60px !important;
 }

+ 5 - 5
src/layout/components/TagsView.vue

@@ -57,7 +57,7 @@ export default {
   inject: ["reloads"],
   computed: {
     visitedViews() {
-      // console.log(this.$store.state.tagsView.visitedViews)
+      //  (this.$store.state.tagsView.visitedViews)
       return this.$store.state.tagsView.visitedViews;
     },
   },
@@ -110,7 +110,7 @@ export default {
     syncTagViewAndSaveForm() {
       const keys = this.$store.state.tagsView.visitedViews.map(
         (item) => {
-          // console.log(item)
+          //  (item)
           return item.path}
       );
       const searchs = new Searchs();
@@ -141,7 +141,7 @@ export default {
       if (!route) {
         return false;
       }
-      // console.log(this.$route)
+      //  (this.$route)
       await this.$store.dispatch("addVisitedViews", route);
 
       this.syncTagViewAndSaveForm();
@@ -154,7 +154,7 @@ export default {
             this.$refs.scrollPane.moveToTarget(tag.$el);
             // const searchs = new Searchs();
             // const allSearch = searchs.getSearchs();
-            // console.log(allSearch)
+            //  (allSearch)
             break;
           }
         }
@@ -190,7 +190,7 @@ export default {
       this.$router.push("/");
     },
     openMenu(tag, e) {
-      // console.log(e)
+      //  (e)
       // this.visible = true;
       // this.selectedTag = tag;
       // this.left = e.clientX;

+ 2 - 2
src/main.js

@@ -66,7 +66,7 @@ class DonMessage {
 // 修改默认属性
 ElementUI.Dialog.props.closeOnClickModal.default = false;
 // ElementUI.Dialog.props.destroyOnClose.default = true;
-// console.log(ElementUI.Input)
+//  (ElementUI.Input)
 // 全局修改选择如果value与label都为数字0则清空
 const SelectValueWatch = ElementUI.Select.watch.value
 ElementUI.Select.watch.value = function (newValue, oldValue) {
@@ -90,7 +90,7 @@ document.addEventListener('mousewheel', function () {
   }
 })
 document.addEventListener('keydown', function (event) {
-  // console.log(document.activeElement,event.keyCode)
+  //  (document.activeElement,event.keyCode)
   if(event.keyCode == 13){
     setTimeout(res=>{
       document.activeElement.blur()

+ 10 - 8
src/permission.js

@@ -19,7 +19,7 @@ router.onError((error) => {
     const targetPath = router.history.pending.fullPath;
     if (isChunkLoadFailed && !isOpen) {
       isOpen = true
-      // console.log(router.app.$confirm)
+      //  (router.app.$confirm)
       // router.push({ path: "/403", query: { path: targetPath } })
       router.app.$confirm("网站有更新请点击确定刷新页面?", "更新提示", {
         confirmButtonText: "确定",
@@ -39,13 +39,15 @@ router.onError((error) => {
 });
 
 function getFirstMenu(routes) {
-  let firstMenu = null
-  routes.forEach(item => {
-    if(!firstMenu && item.children?.length > 0) {
-      firstMenu = pathErgodic(item)
-    }
-  })
-  return firstMenu
+  console.log(routes)
+  // let firstMenu = null
+  // routes.forEach(item => {
+  //   if(!firstMenu && item.children?.length > 0) {
+  //     firstMenu = pathErgodic(item)
+  //   }
+  // })
+  // console.log('firstMenu',firstMenu)
+  return routes[0].redirect
 }
 
 function pathErgodic(item) {

+ 7 - 49
src/router/index.js

@@ -33,49 +33,20 @@ import Layout from '@/layout'
 export const constantRoutes = [
   // {
   //   path: '/main',
+  //   name: '首页',
   //   component: Layout,
-  //   hidden: false,
-  //   children: [
-  //     {
-  //       name: '首页',
-  //       path: 'main',
-  //       component: () => import('@/views/main/index'),
-  //       hidden: false,
-  //     }
-  //   ]
-  // },
-  // {
-  //   path: '/timedtask', // 定时任务列表
-  //   component: Layout,
-  //   // component: () => import('@/views/timedTask/index'),
-  //   hidden: false,
-  //   children: [
-  //     {
-  //       name: '定时任务',
-  //       path: 'timedtask',
-  //       component: () => import('@/views/timedTask/index'),
-  //       hidden: true,
-  //       meta: {
-  //         title: '定时任务'
-  //       }
-  //     }
-  //   ]
+  //   hidden: true,
+  //   meta: {
+  //     noCache: '1',
+  //     title: '首页'
+  //   },
+  //   children:
   // },
   {
     path: '/setSilder', // 侧边栏
     component: Layout,
     hidden: true,
     children: [
-    //   {
-    //   name: '侧边栏',
-    //   path: 'setSilder',
-    //   component: () => import('@/views/setSilder/addSilder'),
-    //   hidden: true,
-    //   meta: {
-    //     noCache: '1',
-    //     title: '侧边栏'
-    //   }
-    // },
     {
       name: '提交表单',
       path: 'save-form',
@@ -109,19 +80,6 @@ export const constantRoutes = [
     component: () => import('@/views/403'),
     hidden: true
   },
-  // {
-  //   path: '/sporadicManager',
-  //   component: Layout,
-  //   hidden: false,
-  //   children: [
-  //     {
-  //       name: '零星收费',
-  //       path: 'sporadicList',
-  //       component: () => import('@/views/setSilder/addSilder'),
-  //       hidden: false,
-  //     }
-  //   ]
-  // },
   // { path: '*', redirect: '/404', hidden: true }
 ]
 // export const constantRoutes = [{

+ 400 - 13
src/store/modules/permission.js

@@ -9,11 +9,10 @@ import { getSilder } from '@/api/silder'
  * @param asyncRoutes
  * @param getMenu
  */
-function generateAsyncRouter (asyncRoutes, data) {
+function generateAsyncRouter(asyncRoutes, data) {
   if (!data) {
     return []
   }
-  // console.log(data)
   data.forEach((item) => {
     item.component = asyncRoutes[item.component]
     if (item.children && item.children.length > 0) {
@@ -50,8 +49,9 @@ const mutations = {
 function getFirstMenu(routes) {
   let firstMenu = null
   routes.forEach(item => {
-    if(item.children?.length > 0 && !item.hidden) {
+    if (item.children?.length > 0 && !item.hidden) {
       firstMenu = pathErgodic(item)
+      console.log(firstMenu)
       item.redirect = firstMenu
     }
   })
@@ -59,15 +59,33 @@ function getFirstMenu(routes) {
 }
 
 function pathErgodic(item) {
+  // console.log(item)
   let firstMenu = null
   item.children.forEach(i => {
-    if(!firstMenu && i.children?.length > 0) {
-      firstMenu = pathErgodic(i)
+    if (!firstMenu && i.children?.length > 0&&!i.hidden) {
+      let isChildrenList = false;
+      i.children.forEach(ii=>{
+        if(!ii.hidden){
+          isChildrenList = true
+        }
+      })
+      if(isChildrenList){
+        firstMenu = pathErgodic(i)
+      }else{
+        if (!firstMenu && checkPathUrl(i.path)) {
+          firstMenu = i.path
+        } else {
+          if (!firstMenu && !i.hidden) {
+            firstMenu = item.path + '/' + i.path
+          }
+        }
+      }
+
     } else {
-      if(!firstMenu && checkPathUrl(i.path)) {
+      if (!firstMenu && checkPathUrl(i.path)) {
         firstMenu = i.path
       } else {
-        if(!firstMenu && !i.hidden) {
+        if (!firstMenu && !i.hidden) {
           firstMenu = item.path + '/' + i.path
         }
       }
@@ -82,7 +100,8 @@ function checkPathUrl(path) {
 // 路由
 
 // 递归遍历数组
-function recursionRouter (arr) {
+function recursionRouter(arr) {
+  // 这里来了
   if (arr.length > 0) {
     let newArr = [];
     for (let i = 0; i < arr.length; i++) {
@@ -113,7 +132,7 @@ function recursionRouter (arr) {
 
 // 设置 belongTopMenu, 顶部菜单
 function addTopMenu(arr) {
-  if(arr.length > 0) {
+  if (arr.length > 0) {
     let newArr = [];
     for (let i = 0; i < arr.length; i++) {
       if (arr[i].type == 1) {
@@ -149,7 +168,7 @@ function setTopMenu(arr, topParentArr) {
 // 权限
 // 递归遍历数组
 let tempArr = []
-function recursionPermission (arr) {
+function recursionPermission(arr) {
   arr.map(item => {
     tempArr.push(item.memo)
     if (item.sysMenus && item.sysMenus.length > 0) {
@@ -157,21 +176,388 @@ function recursionPermission (arr) {
     }
   })
 }
+function setDetailRoute(accessedRoutes) {
+  accessedRoutes.forEach(route => {
+    console.log(route.path)
+    if (route.path == '/main') {
+      route.children = route.children.concat([
+        {
+          name: '日程安排',
+          path: 'scheduleDetail',
+          component: () => import('@/views/main/teamSchedule/scheduleDetail'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '日程安排',
+            belongTopMenu: "/main",
+            activeMenu: '/main/main'
+          }
+        },
+        {
+          name: '未在班级学员',
+          path: 'notClassStudent',
+          component: () => import('@/views/main/notClassStudent'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '未在班级学员',
+            belongTopMenu: "/main",
+            activeMenu: '/main/main'
+          }
+        },
+        //
+      ])
+    }
+    if (route.path == '/business') {
+      // import('@/views/resetTeaming/components/strudentPayInfo'),
+      route.children = route.children.concat([
+        {
+          name: '学员缴费详情',
+          path: 'strudentPayInfo',
+          component: () => import('@/views/resetTeaming/components/strudentPayInfo'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '学员缴费详情',
+            belongTopMenu: "/business",
+            activeMenu: '/teamList'
+          }
+        },
+        {
+          name: '乐团详情',
+          path: 'resetTeaming',
+          component: () => import('@/views/resetTeaming/index'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '乐团详情',
+            belongTopMenu: "/business",
+            activeMenu: '/teamList'
+          }
+        },
+        {
+          name: '新建vip',
+          path: 'buildVip',
+          component: () => import('@/views/buildVip/index'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: 'VIP/乐理课申请',
+            belongTopMenu: "/business",
+            activeMenu: '/vipManager/vipList'
+          }
+        },
+        {
+          name: 'vip修改',
+          path: 'vipReset',
+          component: () => import('@/views/vipClass/vipReset'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: 'VIP/乐理课修改',
+            belongTopMenu: "/business",
+            activeMenu: '/vipManager/vipList'
+          }
+        },
+        {
+          name: 'vip详情',
+          path: 'vipDetail',
+          component: () => import('@/views/vipClass/vipDetail'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: 'vip详情',
+            belongTopMenu: "/business",
+            activeMenu: '/vipManager/vipList'
+          }
+        },
+        {
+          name: '网管课详情',
+          path: 'accompanys',
+          component: () => import('@/views/accompanyManager/accompanys'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '网管课详情',
+            belongTopMenu: "/business",
+            activeMenu: '/accompanyManager/accompany'
+          }
+        },
+        {
+          name: '评价详情',
+          path: 'evaluateDetail',
+          component: () => import('@/views/evaluateManager/evaluateDetail'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '评价详情',
+            belongTopMenu: "/business",
+            activeMenu: '/commentManager'
+          }
+        },
+        {
+          name: '课外训练详情',
+          path: 'afterSchoolDetail',
+          component: () => import('@/views/afterSchoolManager/afterSchoolDetail'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: 'VIP/乐理课详情',
+            belongTopMenu: "/business",
+            activeMenu: '/afterSchoolManager'
+          }
+        },
+        {
+          name: '学员详情',
+          path: 'studentDetail',
+          component: () => import('@/views/studentManager/index'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '学员详情',
+            belongTopMenu: "/business",
+            activeMenu: '/studentManager/studentList'
+          }
+        },
+        {
+          name: '老师详情',
+          path: 'teacherDetail',
+          component: () => import('@/views/teacherManager/teacherDetail/index'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '老师详情',
+            belongTopMenu: "/business",
+            activeMenu: '/teacherManager/teacherList'
+          }
+        },
+        {
+          name: '老师修改',
+          path: 'teacherOperation',
+          component: () => import('@/views/teacherManager/teacherOperation/index'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '老师修改',
+            belongTopMenu: "/business",
+            activeMenu: '/teacherManager/teacherList'
+          }
+        },
+        {
+          name: '问答详情',
+          path: 'answer',
+          component: () => import('@/views/reaplceMusicPlayer/answerList'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '问答详情',
+            belongTopMenu: "/business",
+            activeMenu: '/otherManager/reaplceMusicPlayer'
+          }
+        },
+        // /otherManager/reaplceMusicPlayer /reaplceMusicPlayer/answer
+
+      ])
+    }
+    if (route.path == '/operateManager') {
+      route.children = route.children.concat([
+        {
+          name: '服务指标(详情)',
+          path: 'serverIndexDetail',
+          component: () => import('@/views/operateManager/serverIndexDetail'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '服务指标(详情)',
+            belongTopMenu: "/operateManager",
+            activeMenu: '/serverIndexManager/serverIndexList'
+          }
+        },
+        {
+          name: '新建活动方案',
+          path: 'vipNewActive',
+          component: () => import('@/views/categroyManager/vipNewActive'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '新建活动方案',
+            belongTopMenu: "/operateManager",
+            activeMenu: '/vipActiveManager/vipActiveList'
+          }
+        },
+        {
+          name: '添加分部活动',
+          path: 'branchActiveOperationAdd',
+          component: () => import('@/views/categroyManager/insideSetting/branchActiveOperation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '添加分部活动',
+            belongTopMenu: "/operateManager",
+            activeMenu: '/branchActiveManager/branchActive'
+          }
+        },
+        {
+          name: '修改分部活动',
+          path: 'branchActiveOperation',
+          component: () => import('@/views/categroyManager/insideSetting/branchActiveOperation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '修改分部活动',
+            belongTopMenu: "/operateManager",
+            activeMenu: '/branchActiveManager/branchActive'
+          }
+        },
+        {
+          name: '添加问卷',
+          path: 'questionOperations',
+          component: () => import('@/views/setQuestions/operation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '添加问卷',
+            belongTopMenu: "/operateManager",
+            activeMenu: '/operateManager/setQuestions'
+          }
+        },
+        // /operateManager/setQuestions /questionOperation   operateManager
+      ])
+    }
+    if (route.path == '/financialManager') {
+      route.children = route.children.concat([
+        {
+          name: '经营报表详情',
+          path: 'businessStatementDetail',
+          component: () => import('@/views/businessManager/orderManager/businessStatementDetail'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '经营报表详情',
+            belongTopMenu: "/financialManager",
+            activeMenu: '/businessStatement'
+          }
+        },
+      ])
+    }
+    if (route.path == '/contentManager') {
+      route.children = route.children.concat([
+        {
+          name: '经营报表详情',
+          path: 'helpCategory',
+          component: () => import('@/views/helpCenter/helpCategory'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '经营报表详情',
+            belongTopMenu: "/contentManager",
+            activeMenu: '/contentManager/helpContent'
+          }
+        },
+        {
+          name: '添加&修改内容管理',
+          path: 'contentOperation',
+          component: () => import('@/views/contentManager/contentOperation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '添加&修改内容管理',
+            belongTopMenu: "/contentManager",
+            activeMenu: '/contentManager/contentManager'
+          }
+        },
+      ])
+    }
+    if (route.path == '/shopManager') {
+      route.children = route.children.concat([
+        {
+          name: '进货清单',
+          path: 'purchaseLlist',
+          component: () => import('@/views/businessManager/shopManager/purchase-llist'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '进货清单',
+            belongTopMenu: "/shopManager",
+            activeMenu: '/shopManager'
+          }
+        },
+        {
+          name: '添加修改商品',
+          path: 'shopOperation',
+          component: () => import('@/views/businessManager/shopManager/shopOperation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '添加修改商品',
+            belongTopMenu: "/shopManager",
+            activeMenu: '/shopManager'
+          }
+        },
+      ])
+    }
+    if(route.path == '/systemManager'){
+      route.children = route.children.concat([
+        {
+          name: '创建&修改汇付账号',
+          path: 'adapayOperation',
+          component: () => import('@/views/adapayAccount/form'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '创建&修改汇付账号',
+            belongTopMenu: "/systemManager",
+            activeMenu: '/sysBasics/adapayManager'
+          }
+        },
+        {
+          name: '添加&查看时间充值活动',
+          path: 'entryOperation',
+          component: () => import('@/views/app/entryOperation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '添加&查看时间充值活动',
+            belongTopMenu: "/systemManager",
+            activeMenu: '/sysBasics/entryActivities'
+          }
+        },
+        {
+          name: '添加&修改系统权限',
+          path: 'adminOperation',
+          component: () => import('@/views/categroyManager/insideSetting/adminOperation'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '添加&修改系统权限',
+            belongTopMenu: "/systemManager",
+            activeMenu: '/parameter/adminManager'
+          }
+        },
+        // /parameter/adminManager adminOperation
+      ])
+    }
+  })
+  return accessedRoutes
+}
 const actions = {
-  generateRoutes ({ commit }) {
+  generateRoutes({ commit }) {
     return new Promise(resolve => {
       // 获取接口返回的权限菜单
       getSilder().then(res => {
         if (res.code == 200) {
           let result = addTopMenu(res.data)
           let newData = recursionRouter(result);
+
           newData = getFirstMenu(newData)
-          // console.log((newData))
+
           recursionPermission(res.data)
           let accessedRoutes
 
           // 生成异步路由表
           accessedRoutes = generateAsyncRouter(asyncRoutes, newData)
+          accessedRoutes = setDetailRoute(accessedRoutes)
+          console.log('生成出来的异步路由', accessedRoutes)
           // var result = accessedRoutes.concat({ path: '*', redirect: '/404', hidden: true })
           commit('SET_ROUTES', accessedRoutes)
           // commit('SET_PERMISSION', recursionPermission(res.data).flat(Infinity))
@@ -183,11 +569,12 @@ const actions = {
       })
     })
   },
-  removePermission ({ commit }) {
+  removePermission({ commit }) {
     window.localStorage.removeItem('permission')
     commit('SET_PERMISSION', [])
 
   }
+
 }
 
 export default {

+ 0 - 1
src/utils/date.js

@@ -85,7 +85,6 @@ export function diffTimerFormMinute (classDate, startTime, endTime) {
 
 export function addTimerFormMinute (classDate, startTime, time) {
   let endTime = dayjs(classDate + ' ' + startTime).add(time, 'minute')
-  console.log()
   if (!dayjs(classDate + ' ' + "23:59").isBefore(endTime)) {
     return endTime.format('HH:mm')
   } else {

+ 1 - 1
src/utils/request.js

@@ -81,7 +81,7 @@ service.interceptors.request.use(
     }
     config.params = cleanDeep(config.params)
     //  params: cleanDeep(options.params),
-    // console.log(config)
+    //  (config)
     return config
   },
   error => {

+ 1 - 2
src/views/403.vue

@@ -12,7 +12,6 @@ export default {
   },
   created () {
     let query = this.$route.query
-    console.log(query.path)
     this.$confirm("页面更新请刷新页面", "提示", {
       confirmButtonText: "确定",
       cancelButtonText: "取消",
@@ -25,4 +24,4 @@ export default {
 
   }
 }
-</script>
+</script>

+ 1 - 1
src/views/accompaniment/modals/form.vue

@@ -215,7 +215,7 @@ export default {
         const res = await queryTree()
         this.tree = res.data
       } catch (error) {
-        console.log(error)
+
       }
     },
     async FeatchDetailList() {

+ 2 - 2
src/views/accompanyManager/accompanyList.vue

@@ -265,7 +265,7 @@
             <template slot-scope="scope">
               <div>
                 <!-- v-permission="'courseSchedule/classStartDateAdjust'"  v-if="!scope.row.isSettlement" -->
-                <el-button type="text" @click="lookCrouse(scope.row)"
+                <el-button type="text" @click="lookCrouse(scope.row)"   v-if="permission('/accompanys')"
                   >查看</el-button
                 >
                 <el-button
@@ -572,7 +572,7 @@ export default {
     let coursesStartDate = this.$helpers.dayjs(row.coursesStartDate).format('YYYY-MM-DD')
     let coursesExpireDate = this.$helpers.dayjs(row.coursesExpireDate).format('YYYY-MM-DD')
       this.$router.push({
-        path: "/accompanys",
+        path: "/business/accompanys",
         query: { id: row.id, type: row.type,coursesStartDate,coursesExpireDate },
       });
     },

+ 2 - 3
src/views/accompanyManager/accompanys.vue

@@ -168,7 +168,7 @@
                 v-if="
                   scope.row.status == 'NOT_START' &&
                   courseType != 'TRIAL' &&
-                  permission('courseSchedule/practiceCourseTeacherAdjust')
+                  permission('courseSchedule/practiceCourseTeacherAdjust/3420')
                 "
                 @click="resetTeacher(scope.row)"
                 >更换老师</el-button
@@ -993,7 +993,6 @@ export default {
       };
     },
     submitExpireDate() {
-      console.log(this.updateCourseStatus)
       this.$refs.expireForm.validate((some) => {
         if (some) {
           if(this.updateCourseStatus == 1) {
@@ -1047,7 +1046,7 @@ export default {
               }
             });
           }
-          
+
         } else {
           return;
         }

+ 2 - 2
src/views/adapayAccount/form.vue

@@ -361,7 +361,7 @@ export default {
       this.form.multipartFile = null
     },
     handlePreview (file) {
-      // console.log(file);
+      //  (file);
     },
     onProvChange (value) {
       this.form.areaCode = null
@@ -433,4 +433,4 @@ export default {
   height: 178px;
   display: block;
 }
-</style>
+</style>

+ 2 - 3
src/views/adapayAccount/index.vue

@@ -286,7 +286,7 @@ export default {
         tagTitle = '修改'
       }
       this.$router.push({
-        path: '/sysBasics/adapayOperation',
+        path: '/systemManager/adapayOperation',
         query: {
           type: type,
           row: JSON.stringify(row)
@@ -323,7 +323,6 @@ export default {
       });
     },
     onBranchChange(val) {
-      console.log(val)
       this.calcBranchList.forEach(item => {
         if(item.value == val) {
           this.moneyForm.routeMemberId = item.hfMerNo
@@ -373,4 +372,4 @@ export default {
 };
 </script>
 <style lang='scss' scoped>
-</style>
+</style>

+ 1 - 1
src/views/afterSchoolManager/afterSchoolList.vue

@@ -277,7 +277,7 @@ export default {
     },
     lookDetail(row) {
       this.$router.push({
-        path: "/afterSchoolDetail",
+        path: "/business/afterSchoolDetail",
         query: { extracurricularExercisesId: row.id, title: row.title },
       });
     },

Некоторые файлы не были показаны из-за большого количества измененных файлов