qj-common 4.3.0 → 4.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/.babelrc +12 -12
  2. package/.eslintrc.js +25 -25
  3. package/.idea/common.iml +11 -11
  4. package/.idea/modules.xml +7 -7
  5. package/.idea/vcs.xml +5 -5
  6. package/.postcssrc.js +9 -9
  7. package/.prettierrc.js +7 -7
  8. package/.project +37 -37
  9. package/README.md +2 -2
  10. package/gulpfile.js +20 -20
  11. package/package.json +18 -18
  12. package/src/api/apimanage.js +146 -146
  13. package/src/api/common/index.js +192 -192
  14. package/src/api/login.js +160 -160
  15. package/src/api/shopFbu.js +515 -515
  16. package/src/api/upload.js +8 -8
  17. package/src/components/Bounced/index.vue +145 -145
  18. package/src/components/Breadcrumb/index.vue +71 -71
  19. package/src/components/Checkbox/index.vue +53 -53
  20. package/src/components/Hamburger/index.vue +48 -48
  21. package/src/components/Logistics/logic.vue +186 -186
  22. package/src/components/ScrollBar/index.vue +60 -60
  23. package/src/components/Sticky/index.vue +76 -76
  24. package/src/components/SvgIcon/index.vue +42 -42
  25. package/src/components/ThemePicker/index.vue +243 -243
  26. package/src/components/Tinymce/components/editorImage.vue +94 -94
  27. package/src/components/Tinymce/index.vue +166 -166
  28. package/src/components/Tinymce/plugins.js +7 -7
  29. package/src/components/Tinymce/toolbar.js +6 -6
  30. package/src/components/TreeTable/customEval.js +44 -44
  31. package/src/components/TreeTable/eval.js +29 -29
  32. package/src/components/TreeTable/index.vue +124 -124
  33. package/src/components/TreeTable/readme.md +89 -89
  34. package/src/components/TreeTableApi/customEval.js +49 -49
  35. package/src/components/TreeTableApi/eval.js +29 -29
  36. package/src/components/TreeTableApi/index.vue +124 -124
  37. package/src/components/TreeTableApi/readme.md +89 -89
  38. package/src/components/Upload/singleImage.vue +123 -123
  39. package/src/components/Upload/singleImage2.vue +118 -118
  40. package/src/components/Upload/singleImage3.vue +138 -138
  41. package/src/components/Upload/upload.vue +295 -295
  42. package/src/components/workOrderList/index.vue +158 -158
  43. package/src/dependencies.js +119 -119
  44. package/src/iconShop/demo.css +539 -539
  45. package/src/iconShop/demo_index.html +8445 -8445
  46. package/src/iconShop/iconfont.css +1451 -1451
  47. package/src/iconShop/iconfont.json +2522 -2522
  48. package/src/iconShop/iconfont.svg +1070 -1070
  49. package/src/iconfont/demo.css +539 -539
  50. package/src/iconfont/demo_index.html +5276 -5276
  51. package/src/iconfont/iconfont.css +905 -905
  52. package/src/iconfont/iconfont.json +1563 -1563
  53. package/src/iconfont/iconfont.svg +692 -692
  54. package/src/icons/index.js +9 -9
  55. package/src/lang/e.js +48 -48
  56. package/src/lang/en.js +48 -48
  57. package/src/lang/zh.js +48 -48
  58. package/src/main.js +62 -62
  59. package/src/permission.js +283 -283
  60. package/src/permissionForMall.backup.js +375 -375
  61. package/src/permissionForMall.js +375 -375
  62. package/src/preset.js +67 -67
  63. package/src/router/_import_common.js +1 -1
  64. package/src/router/_import_development.js +1 -1
  65. package/src/router/_import_production.js +1 -1
  66. package/src/store/getters.js +39 -39
  67. package/src/store/index.js +18 -18
  68. package/src/store/modules/app.js +34 -30
  69. package/src/store/modules/menu.js +82 -82
  70. package/src/store/modules/user.js +227 -227
  71. package/src/styles/element-ui.scss +1368 -1368
  72. package/src/styles/index.scss +166 -166
  73. package/src/styles/mixin.scss +27 -27
  74. package/src/styles/pc-ui.scss +1031 -1031
  75. package/src/styles/scrollBar.scss +21 -21
  76. package/src/styles/sidebar.scss +123 -123
  77. package/src/styles/transition.scss +32 -32
  78. package/src/styles/variables.scss +44 -44
  79. package/src/styles/wf-ui.scss +86 -86
  80. package/src/utils/auth.js +57 -57
  81. package/src/utils/dom.js +12 -12
  82. package/src/utils/getQueryString.js +5 -5
  83. package/src/utils/import.js +5 -5
  84. package/src/utils/index.js +355 -355
  85. package/src/utils/interceptor.js +34 -34
  86. package/src/utils/menu.js +116 -116
  87. package/src/utils/proapp.js +35 -35
  88. package/src/utils/query.js +26 -26
  89. package/src/utils/request.js +366 -366
  90. package/src/utils/routeMapping.js +39 -39
  91. package/src/utils/routeMapping.json +310 -310
  92. package/src/utils/utils.js +84 -84
  93. package/src/utils/validate.js +102 -102
  94. package/src/views/404.vue +72 -72
  95. package/src/views/Layout.vue +106 -106
  96. package/src/views/imgSwiper/index.vue +34 -34
  97. package/src/views/layout/Layout.vue +181 -170
  98. package/src/views/layout/components/AppMain.vue +20 -20
  99. package/src/views/layout/components/Footer.vue +22 -22
  100. package/src/views/layout/components/LeftNavbar.vue +318 -310
  101. package/src/views/layout/components/NavMenu.vue +15 -15
  102. package/src/views/layout/components/Navbar.vue +664 -661
  103. package/src/views/layout/components/Sidebar/SidebarItem.vue +116 -113
  104. package/src/views/layout/components/Sidebar/index.vue +203 -193
  105. package/src/views/layout/components/index.js +19 -19
  106. package/src/views/layout/theme/darkBlue/Layout.vue +140 -140
  107. package/src/views/layout/theme/darkBlue/components/AppMain.vue +38 -38
  108. package/src/views/layout/theme/darkBlue/components/Footer.vue +147 -147
  109. package/src/views/layout/theme/darkBlue/components/LeftNavbar(/345/261/225/347/244/272/345/205/250/351/203/250/350/217/234/345/215/225).vue +448 -448
  110. package/src/views/layout/theme/darkBlue/components/LeftNavbar.3.vue +191 -191
  111. package/src/views/layout/theme/darkBlue/components/LeftNavbar.vue +466 -466
  112. package/src/views/layout/theme/darkBlue/components/Navbar.vue +200 -200
  113. package/src/views/layout/theme/darkBlue/components/Sidebar/SidebarItem.vue +71 -71
  114. package/src/views/layout/theme/darkBlue/components/Sidebar/index.vue +49 -49
  115. package/src/views/layout/theme/darkBlue/components/index.js +15 -15
  116. package/src/views/layout-default/Layout.vue +134 -134
  117. package/src/views/layout-default/components/AppMain.vue +19 -19
  118. package/src/views/layout-default/components/Footer.vue +22 -22
  119. package/src/views/layout-default/components/LeftNavbar.vue +164 -164
  120. package/src/views/layout-default/components/Navbar.vue +295 -295
  121. package/src/views/layout-default/components/Sidebar/SidebarItem.vue +67 -67
  122. package/src/views/layout-default/components/Sidebar/index.vue +59 -59
  123. package/src/views/layout-default/components/index.js +4 -4
  124. package/src/views/layout-default/theme/darkBlue/Layout.vue +140 -140
  125. package/src/views/layout-default/theme/darkBlue/components/AppMain.vue +38 -38
  126. package/src/views/layout-default/theme/darkBlue/components/Footer.vue +147 -147
  127. package/src/views/layout-default/theme/darkBlue/components/LeftNavbar.vue +465 -465
  128. package/src/views/layout-default/theme/darkBlue/components/Navbar.vue +200 -200
  129. package/src/views/layout-default/theme/darkBlue/components/Sidebar/SidebarItem.vue +69 -69
  130. package/src/views/layout-default/theme/darkBlue/components/Sidebar/index.vue +49 -49
  131. package/src/views/layout-default/theme/darkBlue/components/index.js +15 -15
  132. package/src/views/pc/Internationalization.vue +80 -80
  133. package/src/views/pc/default/Layout.vue +442 -442
  134. package/src/views/pc/default/LayoutCard.vue +424 -424
  135. package/src/views/pc/default/assets/flex.scss +99 -99
  136. package/src/views/pc/default/footer-modules/DgFooter/index.vue +179 -179
  137. package/src/views/pc/default/footer-modules/DgFooter/indexSDX.vue +187 -187
  138. package/src/views/pc/default/footer-modules/footer.vue +171 -171
  139. package/src/views/pc/default/footer-modules/footerAns.vue +167 -167
  140. package/src/views/pc/default/footer-modules/footerBulk.vue +169 -169
  141. package/src/views/pc/default/footer-modules/footerDM.vue +254 -254
  142. package/src/views/pc/default/footer-modules/footerDefault.vue +267 -267
  143. package/src/views/pc/default/footer-modules/footerDefaultA.vue +270 -270
  144. package/src/views/pc/default/footer-modules/footerDefaultNew.vue +201 -201
  145. package/src/views/pc/default/footer-modules/footerHDB.vue +153 -153
  146. package/src/views/pc/default/footer-modules/footerHy.vue +63 -63
  147. package/src/views/pc/default/footer-modules/footerKYW.vue +163 -163
  148. package/src/views/pc/default/footer-modules/footerMh.vue +30 -30
  149. package/src/views/pc/default/footer-modules/footerNew.vue +116 -116
  150. package/src/views/pc/default/footer-modules/footer_yzj.vue +169 -169
  151. package/src/views/pc/default/footer-modules/footerayd.vue +85 -85
  152. package/src/views/pc/default/footer-modules/ymFooter.vue +154 -154
  153. package/src/views/pc/default/footer-modules/zgl.vue +250 -250
  154. package/src/views/pc/default/header-modules/DgHeader/Logo.vue +57 -57
  155. package/src/views/pc/default/header-modules/DgHeader/Search.vue +135 -135
  156. package/src/views/pc/default/header-modules/DgHeader/Settleup.vue +46 -46
  157. package/src/views/pc/default/header-modules/DgHeader/index.vue +38 -38
  158. package/src/views/pc/default/header-modules/active.vue +177 -177
  159. package/src/views/pc/default/header-modules/header.vue +97 -97
  160. package/src/views/pc/default/header-modules/headerA.vue +142 -142
  161. package/src/views/pc/default/header-modules/headerFLPT.vue +157 -157
  162. package/src/views/pc/default/header-modules/headerMh.vue +187 -187
  163. package/src/views/pc/default/header-modules/headerNew.vue +121 -121
  164. package/src/views/pc/default/header-modules/headerSDX.vue +304 -304
  165. package/src/views/pc/default/header-modules/headerStyle2.vue +173 -173
  166. package/src/views/pc/default/header-modules/headerStyle3.vue +190 -190
  167. package/src/views/pc/default/header-modules/headerStyle4.vue +163 -163
  168. package/src/views/pc/default/header-modules/headerStyleAns.vue +400 -400
  169. package/src/views/pc/default/header-modules/headerStyleBulk.vue +427 -427
  170. package/src/views/pc/default/header-modules/headerStyleDefalut.vue +209 -209
  171. package/src/views/pc/default/header-modules/headerStyleKYW.vue +435 -435
  172. package/src/views/pc/default/header-modules/headerStyle_yzj.vue +427 -427
  173. package/src/views/pc/default/header-modules/headerayd.vue +187 -187
  174. package/src/views/pc/default/header-modules/index.vue +466 -466
  175. package/src/views/pc/default/header-modules/ymHeader.vue +292 -292
  176. package/src/views/pc/default/header-modules/ysHeader.vue +248 -248
  177. package/src/views/pc/default/header-modules/zgl.vue +855 -855
  178. package/src/views/pc/default/leftMenu-modules/leftMenu-logo.vue +194 -194
  179. package/src/views/pc/default/leftMenu-modules/leftMenu-style2.vue +206 -206
  180. package/src/views/pc/default/leftMenu-modules/leftMenu-style3.vue +207 -207
  181. package/src/views/pc/default/leftMenu-modules/leftMenu-style4.vue +192 -192
  182. package/src/views/pc/default/leftMenu-modules/leftMenu.vue +183 -183
  183. package/src/views/pc/default/leftMenu-modules/leftMenuDefault.vue +212 -212
  184. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultEn.vue +214 -214
  185. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultFLPT.vue +220 -220
  186. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultayd.vue +220 -220
  187. package/src/views/pc/default/nav-modules/nav.vue +52 -52
  188. package/src/views/pc/default/nav-modules/navAns.vue +60 -60
  189. package/src/views/pc/default/nav-modules/navBulk.vue +60 -60
  190. package/src/views/pc/default/top-modules/DgTopShortcut/index.vue +177 -177
  191. package/src/views/pc/default/top-modules/Toplg.vue +280 -280
  192. package/src/views/pc/default/top-modules/topA.vue +136 -136
  193. package/src/views/pc/default/top-modules/topAns.vue +261 -261
  194. package/src/views/pc/default/top-modules/topAns_yzj.vue +282 -282
  195. package/src/views/pc/default/top-modules/topBar.vue +304 -304
  196. package/src/views/pc/default/top-modules/topBulk.vue +280 -280
  197. package/src/views/pc/default/top-modules/topDefault.vue +244 -244
  198. package/src/views/pc/default/top-modules/topDefaultDM.vue +197 -197
  199. package/src/views/pc/default/top-modules/topDefaultNew.vue +271 -271
  200. package/src/views/pc/default/top-modules/topFLPT.vue +197 -197
  201. package/src/views/pc/default/top-modules/topHDB.vue +479 -479
  202. package/src/views/pc/default/top-modules/topKYW.vue +258 -258
  203. package/src/views/pc/default/top-modules/topMh.vue +174 -174
  204. package/src/views/pc/default/top-modules/topNew.vue +97 -97
  205. package/src/views/pc/default/top-modules/topSDX.vue +298 -298
  206. package/src/views/pc/default/top-modules/topSimple.vue +247 -247
  207. package/src/views/pc/default/top-modules/topSimpleHy.vue +256 -256
  208. package/src/views/pc/default/top-modules/topUcc.vue +264 -264
  209. package/src/views/pc/default/top-modules/topayd.vue +170 -170
  210. package/src/views/pc/default/top-modules/ymTop.vue +299 -299
  211. package/src/views/pc/default/top-modules/zgltop.vue +499 -499
  212. package/src/views/routerView.vue +9 -9
  213. package/src/views/templates/components/temp-select.vue +80 -80
  214. package/src/views/templates/components/temp-upload.vue +233 -233
  215. package/src/views/templates/readme.md +2 -2
  216. package/src/views/templates/templateInput.vue +421 -421
  217. package/src/views/templates/templateReadme.html +588 -588
  218. package/src/views/templates/templateReadme.md +619 -619
  219. package/src/views/templates/templateTable.vue +2243 -2243
  220. package/src/views/templates/templateTableData.vue +1883 -1883
  221. package/src/views/templates/templateUi/templateTableContent.vue +187 -187
  222. package/src/views/treeTemplate/index.vue +559 -559
  223. package/src/views/treeTemplate/treeTemplate.md +274 -274
  224. package/src/views/uploadDialog/index copy.vue +352 -352
  225. package/src/views/uploadDialog/index.vue +558 -558
  226. package/src/views/uploadDialog/indexOlay.vue +582 -582
  227. package/src/views/uploadDialog/indexPM.vue +578 -578
  228. package/src/views/uploadDialog/indexUpload.vue +543 -543
  229. package/src/views/uploadDialog/readme.md +45 -45
@@ -1,310 +1,318 @@
1
- <template>
2
- <div
3
- :class="{'is-active':sidebar.appNavOpen}"
4
- class="el-menu-vertical-demo"
5
- :style="{'height':heightAll+'px'}"
6
- >
7
- <div class="tool-menu-svg">
8
- <a class="logo-container" @click="navigator">
9
- <!-- :href="indexHref" -->
10
- <img :src="logoImg" />
11
- </a>
12
- </div>
13
- <div class="app-scroll-container" :style="{height:height+'px'}">
14
- <el-menu :default-active="appActive" @select="handleSelect" class="el-menu-vertical">
15
- <el-menu-item
16
- v-for="item in topAppList"
17
- :key="item.proappMenuCode"
18
- :index="item.proappMenuCode"
19
- @click="navBar(item)"
20
- >
21
- <!-- :href="item.menuAction" -->
22
- <a :title="item.menuName" slot="title">{{ item.menuName}}</a>
23
- </el-menu-item>
24
- </el-menu>
25
- </div>
26
- <div class="app-menu-fixed">
27
- <hr />
28
- <ul>
29
- <li
30
- v-for="(item,index) in bottomAppList"
31
- :key="index"
32
- :class="[item.proappModelCode == appActive ? 'c-theme':'']"
33
- >
34
- <a @click="openHref(item)" :class="[item.proappMenuCode == appActive ? 'c-theme':'']">
35
- <i
36
- :class="['iconfont',item.menuDefaultClass ? item.menuDefaultClass : 'icon-caidan-shi']"
37
- ></i>
38
- {{item.menuName}}
39
- </a>
40
- </li>
41
- </ul>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script>
47
- import { mapGetters } from "vuex";
48
- import { getProappinfo } from "#/api/login";
49
- import ScrollBar from "#/components/ScrollBar";
50
- export default {
51
- components: { ScrollBar },
52
- data() {
53
- return {
54
- logoImg: require("../assets/logo.png"),
55
- indexHref: "#",
56
- appActive: null, // 当前点击的项目名称
57
- height: 800,
58
- topAppList: [], // 上面菜单
59
- bottomAppList: [], //下面菜单
60
- proappEnvOpentype: window.sessionStorage.getItem("proappEnvLayout")
61
- ? JSON.parse(window.sessionStorage.getItem("proappEnvLayout"))
62
- .proappEnvOpentype
63
- : null, //默认是null
64
- heightAll: document.documentElement.clientHeight,
65
- secDomainName:null
66
- };
67
- },
68
- computed: {
69
- ...mapGetters(["appList", "sidebar"])
70
- },
71
- created() {
72
-
73
- this.getAppInfo();
74
- console.log(this.$route.meta.menuCode, "this.$route.meta.menuCode");
75
- this.appActive = this.$route.meta.menuCode;
76
- console.log(this.appActive, "this.appActive ");
77
-
78
- },
79
- mounted() {
80
- this.handleAppList();
81
- this.indexHref = JSON.parse(
82
- window.sessionStorage.getItem("proappEnvLayout")
83
- )?JSON.parse(
84
- window.sessionStorage.getItem("proappEnvLayout")
85
- ).proappEnvIndex:'';
86
- window.addEventListener("resize", this.heightChange);
87
- this.secDomainName=sessionStorage.getItem('secDomainName')?sessionStorage.getItem('secDomainName'):null
88
- },
89
- methods: {
90
- navigator() {
91
- window.sessionStorage.setItem("menuCode", '');
92
- window.location.href = process.env.API_ROOT + this.indexHref;
93
- },
94
- openHref(item) {
95
- window.sessionStorage.setItem("menuCode", item.proappModelCode);
96
- this.handlerMenu(item);
97
- },
98
- handleAppList() {
99
- this.topAppList = [];
100
- this.bottomAppList = [];
101
- let menuList = window.sessionStorage.getItem("menuList")
102
- ? JSON.parse(window.sessionStorage.getItem("menuList")).menuList
103
- : [];
104
- menuList.forEach(res => {
105
- // 处理菜单top和bottom 的问题
106
- if (
107
- res.proappMenuConfig === "bottom" &&
108
- res.children &&
109
- res.children.length > 0
110
- ) {
111
- this.bottomAppList.push(res);
112
- } else if (res.children && res.children.length > 0) {
113
- this.topAppList.push(res);
114
- // console.log(this.topAppList, "this.topAppList");
115
- }
116
- this.height =
117
- document.documentElement.clientHeight -
118
- 116 -
119
- this.bottomAppList.length * 46;
120
- });
121
- },
122
- getAppInfo() {
123
- let imgLogo = JSON.parse(
124
- window.sessionStorage.getItem("proappEnvLayout")
125
- );
126
- if (imgLogo) {
127
- if(imgLogo.proappEnvLogo.indexOf('http')>-1){
128
- this.logoImg = imgLogo.proappEnvLogo;
129
- }else if(this.secDomainName){
130
- this.logoImg = this.secDomainName + imgLogo.proappEnvLogo;
131
- }else{
132
- this.logoImg = imgLogo.proappEnvLogo;
133
- }
134
- // this.indexHref = imgLogo.proappEnvIndexr;
135
- } else {
136
- getProappinfo().then(data => {
137
- // console.log(data, "data");
138
- if (data) {
139
- // this.indexHref = data.proappEnvIndexr;
140
- window.sessionStorage.setItem(
141
- "proappEnvLayout",
142
- JSON.stringify(data)
143
- );
144
- this.$store.commit("setProappEnvLayout", data);
145
-
146
- if(data.proappEnvLogo.indexOf('http')>-1){
147
- this.logoImg = data.proappEnvLogo;
148
- }else if(this.secDomainName){
149
- this.logoImg = this.secDomainName + data.proappEnvLogo;
150
- }else{
151
- this.logoImg = data.proappEnvLogo;
152
- }
153
-
154
- }
155
- });
156
- }
157
- },
158
- navBar(item) {
159
- console.log(item, "item");
160
- if (location.href.indexOf("localhost") >= 0) {
161
- return false;
162
- } else {
163
- if(item.menuName === '首页') {
164
- window.sessionStorage.removeItem("menuCode");
165
- } else {
166
- window.sessionStorage.setItem("menuCode", item.proappModelCode);
167
- }
168
- this.handlerMenu(item);
169
- }
170
- },
171
- handlerMenu(item) {
172
- for (let i = 0; i < item.children.length; i++) {
173
- let el = item.children[i];
174
- if (el.children) {
175
- this.handlerMenu(el);
176
- break;
177
- } else if (el.menuShow == 0) {
178
- console.log(el);
179
- let url =
180
- this.proappEnvOpentype != "/"
181
- ? `${el.menuTarget}#/${el.proappMenuPcode}/${el.menuAction}`
182
- : `${el.menuTarget}#/${el.menuAction}`;
183
- url = this.secDomainName && (url.indexOf('http')==-1) ? this.secDomainName + url : url
184
- location.href = url;
185
- break;
186
- }
187
- }
188
- },
189
- heightChange() {
190
- console.log("开始发生改变");
191
- this.heightAll = document.documentElement.clientHeight;
192
- this.height = this.heightAll - 116 - this.bottomAppList.length * 46;
193
- }
194
- },
195
- watch: {
196
- appList: {
197
- handler() {
198
- this.handleAppList();
199
- },
200
- deep: true
201
- }
202
- }
203
- };
204
- </script>
205
- <style>
206
- </style>
207
-
208
- <style rel="stylesheet" scoped>
209
- .app-menu-fixed li.c-theme {
210
- background: #fff;
211
- }
212
-
213
- .el-menu-vertical-demo {
214
- position: absolute;
215
- width: 98px;
216
- left: 0;
217
- top: 0;
218
- bottom: 0;
219
- transition: width 0.43s;
220
- z-index: 1002;
221
- }
222
- .el-menu-vertical-demo.is-active {
223
- width: 50px;
224
- }
225
- .app-scroll-container {
226
- margin-top: 100px;
227
- overflow: auto;
228
- background: inherit;
229
- }
230
- .app-scroll-container .el-menu {
231
- background: none;
232
- }
233
- .el-menu-vertical {
234
- width: 100%;
235
- height: 100%;
236
-
237
- border-right: none;
238
- }
239
-
240
- .el-menu-vertical .el-menu-item {
241
- height: 44px;
242
- line-height: 44px;
243
- font-size: 14px;
244
- font-weight: 500;
245
- text-align: center;
246
- padding: 0 !important;
247
- color: #fff;
248
- font-weight: bold;
249
- font-family: "微软雅黑";
250
- }
251
- .el-menu-vertical .el-menu-item a {
252
- width: 4em;
253
- display: inline-block;
254
- overflow: hidden;
255
- text-overflow: ellipsis;
256
- white-space: nowrap;
257
- }
258
- .el-menu-item.is-active {
259
- background: #fff;
260
- }
261
- .logo-container {
262
- display: block;
263
- text-align: center;
264
- border-radius: 50%;
265
- height: 70px;
266
- width: 70px;
267
- margin: 20px auto 10px;
268
- overflow: hidden;
269
- background: #fff;
270
- }
271
- .logo-container img {
272
- /*margin-top: 10px;*/
273
- /*margin-bottom: 20px;*/
274
- width: 100%;
275
- height: 100%;
276
- }
277
- .tool-menu-svg {
278
- font-size: 14px;
279
- width: 100%;
280
- text-align: center;
281
- position: absolute;
282
- z-index: 12;
283
- }
284
-
285
- .app-scroll-container.scroll-container {
286
- background: none !important;
287
- }
288
- .app-menu-fixed hr {
289
- border: none;
290
- height: 2px;
291
- background: #41495b;
292
- margin-bottom: 10px;
293
- }
294
- .app-menu-fixed ul li {
295
- height: 46px;
296
- line-height: 46px;
297
- color: #fff;
298
- font-size: 14px;
299
- font-weight: bold;
300
- text-align: center;
301
- }
302
- .app-menu-fixed ul li i {
303
- margin-right: 8px;
304
- }
305
- .app-menu-fixed ul li.is-active {
306
- color: #363e50;
307
- background: #fff;
308
- }
309
- </style>
310
-
1
+ <template>
2
+ <div :class="{ 'is-active': sidebar.appNavOpen }" class="el-menu-vertical-demo"
3
+ :style="{ 'height': heightAll + 'px' }">
4
+ <div class="tool-menu-svg">
5
+ <a class="logo-container" @click="navigator">
6
+ <!-- :href="indexHref" -->
7
+ <img :src="logoImg" />
8
+ </a>
9
+ </div>
10
+ <div class="app-scroll-container" :style="{ height: height + 'px' }">
11
+ <el-menu :default-active="appActive" @select="handleSelect" class="el-menu-vertical">
12
+ <el-menu-item v-for="item in topAppList" :key="item.proappMenuCode" :index="item.proappMenuCode"
13
+ @click="navBar(item)">
14
+ <!-- :href="item.menuAction" -->
15
+ <a :title="item.menuName" slot="title">{{ item.menuName }}</a>
16
+ </el-menu-item>
17
+ </el-menu>
18
+ </div>
19
+ <div class="app-menu-fixed">
20
+ <hr />
21
+ <ul>
22
+ <li v-for="(item, index) in bottomAppList" :key="index"
23
+ :class="[item.proappModelCode == appActive ? 'c-theme' : '']">
24
+ <a @click="openHref(item)" :class="[item.proappMenuCode == appActive ? 'c-theme' : '']">
25
+ <i :class="['iconfont', item.menuDefaultClass ? item.menuDefaultClass : 'icon-caidan-shi']"></i>
26
+ {{ item.menuName }}
27
+ </a>
28
+ </li>
29
+ </ul>
30
+ </div>
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ import { mapGetters } from "vuex";
36
+ import { getProappinfo } from "#/api/login";
37
+ import ScrollBar from "#/components/ScrollBar";
38
+ export default {
39
+ components: { ScrollBar },
40
+ data() {
41
+ return {
42
+ logoImg: require("../assets/logo.png"),
43
+ indexHref: "#",
44
+ appActive: null, // 当前点击的项目名称
45
+ height: 800,
46
+ topAppList: [], // 上面菜单
47
+ bottomAppList: [], //下面菜单
48
+ proappEnvOpentype: window.sessionStorage.getItem("proappEnvLayout")
49
+ ? JSON.parse(window.sessionStorage.getItem("proappEnvLayout"))
50
+ .proappEnvOpentype
51
+ : null, //默认是null
52
+ heightAll: document.documentElement.clientHeight,
53
+ secDomainName: null
54
+ };
55
+ },
56
+ computed: {
57
+ ...mapGetters(["appList", "sidebar"])
58
+ },
59
+ created() {
60
+
61
+ this.getAppInfo();
62
+ console.log(this.$route.meta.menuCode, "this.$route.meta.menuCode");
63
+ let menuCode = sessionStorage.getItem('menuCode') ? sessionStorage.getItem('menuCode') : null
64
+ if (this.$route.path && this.$route.meta) {
65
+ if ('title' in this.$route.meta && 'icon' in this.$route.meta && 'menuCode' in this.$route.meta && 'params' in this.$route.meta) {
66
+ menuCode = sessionStorage.getItem('menuCode') ? sessionStorage.getItem('menuCode') : localStorage.getItem('menuCode') ? localStorage.getItem('menuCode') : null
67
+
68
+ }
69
+ }
70
+ this.appActive = this.$route.meta.menuCode ? this.$route.meta.menuCode : menuCode ? menuCode : null;;
71
+ console.log(this.appActive, "this.appActive ");
72
+
73
+ },
74
+ mounted() {
75
+ this.handleAppList();
76
+ this.indexHref = JSON.parse(
77
+ window.sessionStorage.getItem("proappEnvLayout")
78
+ ) ? JSON.parse(
79
+ window.sessionStorage.getItem("proappEnvLayout")
80
+ ).proappEnvIndex : '';
81
+ window.addEventListener("resize", this.heightChange);
82
+ this.secDomainName = sessionStorage.getItem('secDomainName') ? sessionStorage.getItem('secDomainName') : null
83
+ },
84
+ methods: {
85
+ navigator() {
86
+ window.sessionStorage.setItem("menuCode", '');
87
+ window.location.href = process.env.API_ROOT + this.indexHref;
88
+ },
89
+ openHref(item) {
90
+ window.sessionStorage.setItem("menuCode", item.proappModelCode);
91
+ window.localStorage.setItem("menuCode", item.proappModelCode);
92
+ this.handlerMenu(item);
93
+ },
94
+ handleAppList() {
95
+ this.topAppList = [];
96
+ this.bottomAppList = [];
97
+ let menuList = window.sessionStorage.getItem("menuList")
98
+ ? JSON.parse(window.sessionStorage.getItem("menuList")).menuList
99
+ : [];
100
+ menuList.forEach(res => {
101
+ // 处理菜单top和bottom 的问题
102
+ if (
103
+ res.proappMenuConfig === "bottom" &&
104
+ res.children &&
105
+ res.children.length > 0
106
+ ) {
107
+ this.bottomAppList.push(res);
108
+ } else if (res.children && res.children.length > 0) {
109
+ this.topAppList.push(res);
110
+ // console.log(this.topAppList, "this.topAppList");
111
+ }
112
+ this.height =
113
+ document.documentElement.clientHeight -
114
+ 116 -
115
+ this.bottomAppList.length * 46;
116
+ });
117
+ },
118
+ getAppInfo() {
119
+ let imgLogo = JSON.parse(
120
+ window.sessionStorage.getItem("proappEnvLayout")
121
+ );
122
+ if (imgLogo) {
123
+ if (imgLogo.proappEnvLogo.indexOf('http') > -1) {
124
+ this.logoImg = imgLogo.proappEnvLogo;
125
+ } else if (this.secDomainName) {
126
+ this.logoImg = this.secDomainName + imgLogo.proappEnvLogo;
127
+ } else {
128
+ this.logoImg = imgLogo.proappEnvLogo;
129
+ }
130
+ // this.indexHref = imgLogo.proappEnvIndexr;
131
+ } else {
132
+ getProappinfo().then(data => {
133
+ // console.log(data, "data");
134
+ if (data) {
135
+ // this.indexHref = data.proappEnvIndexr;
136
+ window.sessionStorage.setItem(
137
+ "proappEnvLayout",
138
+ JSON.stringify(data)
139
+ );
140
+ this.$store.commit("setProappEnvLayout", data);
141
+
142
+ if (data.proappEnvLogo.indexOf('http') > -1) {
143
+ this.logoImg = data.proappEnvLogo;
144
+ } else if (this.secDomainName) {
145
+ this.logoImg = this.secDomainName + data.proappEnvLogo;
146
+ } else {
147
+ this.logoImg = data.proappEnvLogo;
148
+ }
149
+
150
+ }
151
+ });
152
+ }
153
+ },
154
+ navBar(item) {
155
+ console.log(item, "item");
156
+ if (location.href.indexOf("localhost") >= 0) {
157
+ return false;
158
+ } else {
159
+ if (item.menuName === '首页') {
160
+ window.sessionStorage.removeItem("menuCode");
161
+ } else {
162
+ window.sessionStorage.setItem("menuCode", item.proappModelCode);
163
+ window.localStorage.setItem("menuCode", item.proappModelCode);
164
+ }
165
+ this.handlerMenu(item);
166
+ }
167
+ },
168
+ handlerMenu(item) {
169
+ for (let i = 0; i < item.children.length; i++) {
170
+ let el = item.children[i];
171
+ if (el.children) {
172
+ this.handlerMenu(el);
173
+ break;
174
+ } else if (el.menuShow == 0) {
175
+ console.log(el);
176
+ let url =
177
+ this.proappEnvOpentype != "/"
178
+ ? `${el.menuTarget}#/${el.proappMenuPcode}/${el.menuAction}`
179
+ : `${el.menuTarget}#/${el.menuAction}`;
180
+ url = this.secDomainName && (url.indexOf('http') == -1) ? this.secDomainName + url : url
181
+ location.href = url;
182
+ break;
183
+ }
184
+ }
185
+ },
186
+ heightChange() {
187
+ console.log("开始发生改变");
188
+ this.heightAll = document.documentElement.clientHeight;
189
+ this.height = this.heightAll - 116 - this.bottomAppList.length * 46;
190
+ }
191
+ },
192
+ watch: {
193
+ appList: {
194
+ handler() {
195
+ this.handleAppList();
196
+ },
197
+ deep: true
198
+ }
199
+ }
200
+ };
201
+ </script>
202
+ <style></style>
203
+
204
+ <style rel="stylesheet" scoped>
205
+ .app-menu-fixed li.c-theme {
206
+ background: #fff;
207
+ }
208
+
209
+ .el-menu-vertical-demo {
210
+ position: absolute;
211
+ width: 98px;
212
+ left: 0;
213
+ top: 0;
214
+ bottom: 0;
215
+ transition: width 0.43s;
216
+ z-index: 1002;
217
+ }
218
+
219
+ .el-menu-vertical-demo.is-active {
220
+ width: 50px;
221
+ }
222
+
223
+ .app-scroll-container {
224
+ margin-top: 100px;
225
+ overflow: auto;
226
+ background: inherit;
227
+ }
228
+
229
+ .app-scroll-container .el-menu {
230
+ background: none;
231
+ }
232
+
233
+ .el-menu-vertical {
234
+ width: 100%;
235
+ height: 100%;
236
+
237
+ border-right: none;
238
+ }
239
+
240
+ .el-menu-vertical .el-menu-item {
241
+ height: 44px;
242
+ line-height: 44px;
243
+ font-size: 14px;
244
+ font-weight: 500;
245
+ text-align: center;
246
+ padding: 0 !important;
247
+ color: #fff;
248
+ font-weight: bold;
249
+ font-family: "微软雅黑";
250
+ }
251
+
252
+ .el-menu-vertical .el-menu-item a {
253
+ width: 4em;
254
+ display: inline-block;
255
+ overflow: hidden;
256
+ text-overflow: ellipsis;
257
+ white-space: nowrap;
258
+ }
259
+
260
+ .el-menu-item.is-active {
261
+ background: #fff;
262
+ }
263
+
264
+ .logo-container {
265
+ display: block;
266
+ text-align: center;
267
+ border-radius: 50%;
268
+ height: 70px;
269
+ width: 70px;
270
+ margin: 20px auto 10px;
271
+ overflow: hidden;
272
+ background: #fff;
273
+ }
274
+
275
+ .logo-container img {
276
+ /*margin-top: 10px;*/
277
+ /*margin-bottom: 20px;*/
278
+ width: 100%;
279
+ height: 100%;
280
+ }
281
+
282
+ .tool-menu-svg {
283
+ font-size: 14px;
284
+ width: 100%;
285
+ text-align: center;
286
+ position: absolute;
287
+ z-index: 12;
288
+ }
289
+
290
+ .app-scroll-container.scroll-container {
291
+ background: none !important;
292
+ }
293
+
294
+ .app-menu-fixed hr {
295
+ border: none;
296
+ height: 2px;
297
+ background: #41495b;
298
+ margin-bottom: 10px;
299
+ }
300
+
301
+ .app-menu-fixed ul li {
302
+ height: 46px;
303
+ line-height: 46px;
304
+ color: #fff;
305
+ font-size: 14px;
306
+ font-weight: bold;
307
+ text-align: center;
308
+ }
309
+
310
+ .app-menu-fixed ul li i {
311
+ margin-right: 8px;
312
+ }
313
+
314
+ .app-menu-fixed ul li.is-active {
315
+ color: #363e50;
316
+ background: #fff;
317
+ }
318
+ </style>