n20-common-lib 1.2.42 → 1.2.45

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 (193) hide show
  1. package/README.md +2 -2
  2. package/package.json +88 -88
  3. package/src/_qiankun/index.js +113 -113
  4. package/src/_qiankun/postMessage.js +48 -48
  5. package/src/assets/css/_coreLib.scss +35 -35
  6. package/src/assets/css/cl-anchor.scss +23 -23
  7. package/src/assets/css/cl-approve-card.scss +58 -58
  8. package/src/assets/css/cl-dialog.scss +99 -99
  9. package/src/assets/css/cl-drag-list.scss +22 -22
  10. package/src/assets/css/cl-empty.scss +10 -10
  11. package/src/assets/css/cl-expandable-pane.scss +26 -26
  12. package/src/assets/css/cl-expandable.scss +24 -24
  13. package/src/assets/css/cl-file-upload-table.scss +11 -11
  14. package/src/assets/css/cl-filter.scss +4 -4
  15. package/src/assets/css/cl-flow-step.scss +185 -185
  16. package/src/assets/css/cl-footer-box.scss +10 -10
  17. package/src/assets/css/cl-form-item.scss +612 -612
  18. package/src/assets/css/cl-general-card.scss +11 -11
  19. package/src/assets/css/cl-layout-aside.scss +92 -92
  20. package/src/assets/css/cl-layout-content.scss +16 -16
  21. package/src/assets/css/cl-layout-header.scss +73 -73
  22. package/src/assets/css/cl-layout-tabs.scss +87 -87
  23. package/src/assets/css/cl-layout.scss +97 -97
  24. package/src/assets/css/cl-login-temporary.scss +37 -37
  25. package/src/assets/css/cl-message.scss +75 -75
  26. package/src/assets/css/cl-more-tab.scss +98 -98
  27. package/src/assets/css/cl-nav-menu.scss +5 -5
  28. package/src/assets/css/cl-pagination.scss +128 -128
  29. package/src/assets/css/cl-secondary-tab.scss +53 -53
  30. package/src/assets/css/cl-showcolumn.scss +23 -23
  31. package/src/assets/css/cl-sifting.scss +51 -51
  32. package/src/assets/css/cl-statis.scss +42 -42
  33. package/src/assets/css/cl-step.scss +73 -73
  34. package/src/assets/css/cl-suspend.scss +19 -19
  35. package/src/assets/css/cl-tertiary-tab.scss +54 -54
  36. package/src/assets/css/cl-upload.scss +41 -41
  37. package/src/assets/css/cl-worn-pagination.scss +50 -50
  38. package/src/assets/css/el-button.scss +173 -173
  39. package/src/assets/css/el-table.scss +79 -79
  40. package/src/assets/css/element-variables.scss +1061 -1061
  41. package/src/assets/css/element.dev.scss +21 -21
  42. package/src/assets/css/font-icon.scss +27 -27
  43. package/src/assets/css/index.dev.scss +4 -4
  44. package/src/assets/css/index.scss +11 -11
  45. package/src/assets/css/normalize.scss +726 -726
  46. package/src/assets/css/rootvar.scss +139 -139
  47. package/src/assets/css/select.scss +25 -25
  48. package/src/assets/css/title-pop.scss +4 -4
  49. package/src/assets/getJsonc.js +50 -50
  50. package/src/assets/realUrl.js +12 -12
  51. package/src/components/.DS_Store +0 -0
  52. package/src/components/Anchor/AnchorItem.vue +29 -29
  53. package/src/components/Anchor/index.vue +185 -185
  54. package/src/components/ApprovalButtons/index.vue +233 -233
  55. package/src/components/ApprovalCard/index.vue +128 -128
  56. package/src/components/ApprovalRecord/approvalImg.vue +44 -44
  57. package/src/components/ApprovalRecord/flowDialog.vue +45 -45
  58. package/src/components/ApprovalRecord/index.vue +59 -59
  59. package/src/components/Button/button-group.vue +150 -150
  60. package/src/components/Button/icon-group-button.vue +61 -61
  61. package/src/components/Button/index.vue +56 -56
  62. package/src/components/CascaderArea/index.vue +103 -103
  63. package/src/components/ContentLoading/index.vue +41 -41
  64. package/src/components/ContentNull/index.vue +19 -19
  65. package/src/components/DatePicker/index.vue +27 -27
  66. package/src/components/DatePicker/por.vue +169 -169
  67. package/src/components/Dialog/index.vue +26 -26
  68. package/src/components/Dialog/indexO.vue +116 -116
  69. package/src/components/DragList/index.vue +75 -75
  70. package/src/components/Empty/.DS_Store +0 -0
  71. package/src/components/Empty/img/.DS_Store +0 -0
  72. package/src/components/Empty/img/abnormal.svg +108 -108
  73. package/src/components/Empty/img/dispose.svg +71 -71
  74. package/src/components/Empty/img/empty.svg +57 -57
  75. package/src/components/Empty/img/general.svg +58 -58
  76. package/src/components/Empty/img/lock.svg +57 -57
  77. package/src/components/Empty/img/network.svg +59 -59
  78. package/src/components/Empty/img/relevant.svg +68 -68
  79. package/src/components/Empty/img/search.svg +72 -72
  80. package/src/components/Empty/index.vue +92 -92
  81. package/src/components/Expandable/index.vue +49 -49
  82. package/src/components/Expandable/main.vue +52 -52
  83. package/src/components/FileExportAsync/index.vue +178 -178
  84. package/src/components/FileUploadTable/index.vue +484 -484
  85. package/src/components/Filters/index.vue +371 -371
  86. package/src/components/Filters/indexO.vue +104 -104
  87. package/src/components/FlowStep/index.vue +68 -68
  88. package/src/components/FooterBox/index.vue +21 -21
  89. package/src/components/GeneralCard/index.vue +15 -15
  90. package/src/components/InputNumber/index.vue +169 -169
  91. package/src/components/InputNumber/numberRange.vue +47 -47
  92. package/src/components/InputSearch/index.vue +75 -75
  93. package/src/components/Layout/.DS_Store +0 -0
  94. package/src/components/Layout/AsideNav/index.vue +120 -120
  95. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  96. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  97. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  98. package/src/components/Layout/HeaderWrap/index.vue +371 -371
  99. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  100. package/src/components/Layout/SubContent/index.vue +127 -127
  101. package/src/components/Layout/TabsNav/index.vue +170 -170
  102. package/src/components/Layout/index.vue +518 -518
  103. package/src/components/Layout/utils.js +12 -12
  104. package/src/components/LoginTemporary/form.vue +566 -570
  105. package/src/components/LoginTemporary/index.vue +139 -139
  106. package/src/components/LoginTemporary/qrcode.vue +90 -90
  107. package/src/components/LoginTemporary/retrievePw.vue +372 -372
  108. package/src/components/LoginTemporary/utils.js +73 -73
  109. package/src/components/MicroApp/index.js +67 -67
  110. package/src/components/MicroFrame/index.vue +95 -95
  111. package/src/components/MoreTab/index.vue +232 -232
  112. package/src/components/NavMenu/index.vue +60 -60
  113. package/src/components/NstcG6Components/.DS_Store +0 -0
  114. package/src/components/PageLayout/page.vue +15 -15
  115. package/src/components/Pagination/index.vue +165 -165
  116. package/src/components/SecondaryTab/index.vue +58 -58
  117. package/src/components/SelectLazy/index.vue +75 -75
  118. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  119. package/src/components/SelectTree/index.vue +205 -205
  120. package/src/components/ShowColumn/index.vue +213 -213
  121. package/src/components/Sifting/index.vue +99 -99
  122. package/src/components/Statis/index.vue +97 -97
  123. package/src/components/Statis/statisItem.vue +54 -54
  124. package/src/components/Statis/statisPopover.vue +55 -55
  125. package/src/components/Step/index.vue +38 -38
  126. package/src/components/Suspend/index.vue +72 -72
  127. package/src/components/Table/index.vue +209 -209
  128. package/src/components/Table/indexO.vue +149 -149
  129. package/src/components/Task/index.vue +26 -26
  130. package/src/components/TertiaryTab/index.vue +63 -63
  131. package/src/components/TimePicker/index.vue +28 -28
  132. package/src/components/Upload/index.vue +242 -242
  133. package/src/components/WornPagination/index.vue +73 -73
  134. package/src/directives/VClickOutside/index.js +19 -19
  135. package/src/directives/VHas/index.js +58 -58
  136. package/src/directives/VMove/index.js +42 -42
  137. package/src/directives/VTitle/index.js +69 -69
  138. package/src/directives/VTitle/tooltip.vue +21 -21
  139. package/src/index.js +232 -232
  140. package/src/plugins/CompatibleOld/index.js +57 -57
  141. package/src/plugins/Print/index.js +4 -4
  142. package/src/plugins/Print/print-js/.babelrc +12 -12
  143. package/src/plugins/Print/print-js/LICENSE +21 -21
  144. package/src/plugins/Print/print-js/README.md +98 -98
  145. package/src/plugins/Print/print-js/dist/print.css +96 -96
  146. package/src/plugins/Print/print-js/dist/print.js +990 -990
  147. package/src/plugins/Print/print-js/package.json +60 -60
  148. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  149. package/src/plugins/Print/print-js/src/index.js +10 -10
  150. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  151. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  152. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  153. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  154. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  155. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  156. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  157. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  158. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  159. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  160. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  161. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  162. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  163. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  164. package/src/plugins/Print/print.js +2 -2
  165. package/src/plugins/Print/print.scss +1 -1
  166. package/src/plugins/SetMenuTree/index.vue +41 -41
  167. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  168. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  169. package/src/plugins/SetMenuTree/utils.js +74 -74
  170. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  171. package/src/plugins/Sign/index.js +65 -65
  172. package/src/plugins/Sign/sign.js +1 -1
  173. package/src/plugins/setTabsForSub.js +2 -2
  174. package/src/utils/auth.js +53 -53
  175. package/src/utils/axios.js +203 -203
  176. package/src/utils/downloadBlob.js +19 -19
  177. package/src/utils/forEachs.js +16 -16
  178. package/src/utils/getScrollContainer.js +43 -43
  179. package/src/utils/i18n/cn2hk.json +1270 -1270
  180. package/src/utils/i18n/index.js +50 -50
  181. package/src/utils/list2tree.js +36 -36
  182. package/src/utils/msgboxPor.js +26 -26
  183. package/src/utils/print.js +161 -161
  184. package/src/utils/relaNo.js +72 -72
  185. package/src/utils/repairElementUI.js +95 -95
  186. package/src/utils/urlToGo.js +82 -82
  187. package/style/index.css +3 -3
  188. package/style/css/normalize.scss +0 -726
  189. package/style/pageDemo/demo-1.vue +0 -131
  190. package/style/pageDemo/demo-2.vue +0 -35
  191. package/style/pageDemo/demo-3.vue +0 -22
  192. package/style/pageDemo/seeCode.js +0 -20
  193. package/style/server-config.jsonc +0 -606
@@ -1,232 +1,232 @@
1
- /**
2
- * author: zhengwei
3
- * tiem: 2021-8-31
4
- */
5
- <template>
6
- <div class="__common-layout-pageTabs">
7
- <el-scrollbar>
8
- <div class="__tabs">
9
- <div
10
- v-for="item in openedPageRouters"
11
- :key="item.fullPath"
12
- class="__tab-item"
13
- :class="{
14
- '__is-active': item.fullPath == $route.fullPath
15
- }"
16
- @click="onClick(item)"
17
- @contextmenu.prevent="showContextMenu($event, item)"
18
- >
19
- {{ item.meta.title }}
20
- <span
21
- class="el-icon-close"
22
- :style="openedPageRouters.length <= 1 ? 'width:0;' : ''"
23
- @click.stop="onClose(item)"
24
- @contextmenu.prevent.stop
25
- ></span>
26
- </div>
27
- </div>
28
- </el-scrollbar>
29
- <div v-show="contextMenuVisible">
30
- <ul
31
- :style="{ left: contextMenuLeft + 'px', top: contextMenuTop + 'px' }"
32
- class="__contextmenu"
33
- >
34
- <li>
35
- <el-button type="text" size="mini" @click="reload()"
36
- >重新加载</el-button
37
- >
38
- </li>
39
- <li>
40
- <el-button
41
- type="text"
42
- :disabled="false"
43
- size="mini"
44
- @click="closeOtherLeft"
45
- >关闭左边</el-button
46
- >
47
- </li>
48
- <li>
49
- <el-button
50
- type="text"
51
- :disabled="false"
52
- size="mini"
53
- @click="closeOtherRight"
54
- >关闭右边</el-button
55
- >
56
- </li>
57
- <li>
58
- <el-button type="text" size="mini" @click="closeOther"
59
- >关闭其他</el-button
60
- >
61
- </li>
62
- </ul>
63
- </div>
64
- </div>
65
- </template>
66
- <script>
67
- export default {
68
- name: 'MoreTab',
69
- props: {
70
- keepAliveComponentInstance: {
71
- type: Object,
72
- default: () => ({})
73
- }, //keep-alive控件实例对象
74
- blankRouteName: {
75
- type: String,
76
- default: 'blank'
77
- } //空白路由的name值
78
- },
79
- data() {
80
- return {
81
- contextMenuVisible: false, //右键菜单是否显示
82
- contextMenuLeft: 0, //右键菜单显示位置
83
- contextMenuTop: 0, //右键菜单显示位置
84
- contextMenuTargetPageRoute: null, //右键所指向的菜单路由
85
- openedPageRouters: [] //已打开的路由页面
86
- }
87
- },
88
- watch: {
89
- //当路由变更时,执行打开页面的方法
90
- $route: {
91
- handler(v) {
92
- this.openPage(v)
93
- },
94
- immediate: true
95
- }
96
- },
97
- mounted() {
98
- //添加点击关闭右键菜单
99
- window.addEventListener('click', this.closeContextMenu)
100
- },
101
- destroyed() {
102
- window.removeEventListener('click', this.closeContextMenu)
103
- },
104
- methods: {
105
- //打开页面
106
- openPage(route) {
107
- if (route.name === this.blankRouteName) {
108
- return
109
- }
110
- let isExist = this.openedPageRouters.some(
111
- (item) => item.fullPath === route.fullPath
112
- )
113
- if (!isExist) {
114
- let openedPageRoute = this.openedPageRouters.find(
115
- (item) => item.path === route.path
116
- ) //判断页面是否支持不同参数多开页面功能,如果不支持且已存在path值一样的页面路由,那就替换它
117
- if (!route.meta.canMultipleOpen && openedPageRoute != null) {
118
- this.delRouteCache(openedPageRoute.fullPath)
119
- this.openedPageRouters.splice(
120
- this.openedPageRouters.indexOf(openedPageRoute),
121
- 1,
122
- route
123
- )
124
- } else {
125
- this.openedPageRouters.push(route)
126
- }
127
- }
128
- }, //点击页面标签卡时
129
- onClick(route) {
130
- if (route.fullPath !== this.$route.fullPath) {
131
- this.$router.push(route.fullPath)
132
- }
133
- }, //关闭页面标签时
134
- onClose(route) {
135
- let index = this.openedPageRouters.indexOf(route)
136
- this.delPageRoute(route)
137
- if (route.fullPath === this.$route.fullPath) {
138
- //删除页面后,跳转到上一页面
139
- this.$router.replace(
140
- this.openedPageRouters[index === 0 ? 0 : index - 1]
141
- )
142
- }
143
- }, //右键显示菜单
144
- showContextMenu(e, route) {
145
- this.contextMenuTargetPageRoute = route
146
- this.contextMenuLeft = e.layerX
147
- this.contextMenuTop = e.layerY
148
- this.contextMenuVisible = true
149
- }, //隐藏右键菜单
150
- closeContextMenu() {
151
- this.contextMenuVisible = false
152
- this.contextMenuTargetPageRoute = null
153
- }, //重载页面
154
- reload() {
155
- this.delRouteCache(this.contextMenuTargetPageRoute.fullPath)
156
- if (this.contextMenuTargetPageRoute.fullPath === this.$route.fullPath) {
157
- this.$router.replace({ name: this.blankRouteName }).then(() => {
158
- this.$router.replace(this.contextMenuTargetPageRoute)
159
- })
160
- }
161
- }, //关闭其他页面
162
- closeOther() {
163
- for (let i = 0; i < this.openedPageRouters.length; i++) {
164
- let r = this.openedPageRouters[i]
165
- if (r !== this.contextMenuTargetPageRoute) {
166
- this.delPageRoute(r)
167
- i--
168
- }
169
- }
170
- if (this.contextMenuTargetPageRoute.fullPath !== this.$route.fullPath) {
171
- this.$router.replace(this.contextMenuTargetPageRoute)
172
- }
173
- }, //根据路径获取索引
174
- getPageRouteIndex(fullPath) {
175
- for (let i = 0; i < this.openedPageRouters.length; i++) {
176
- if (this.openedPageRouters[i].fullPath === fullPath) {
177
- return i
178
- }
179
- }
180
- }, //关闭左边页面
181
- closeOtherLeft() {
182
- let index = this.openedPageRouters.indexOf(
183
- this.contextMenuTargetPageRoute
184
- )
185
- let currentIndex = this.getPageRouteIndex(this.$route.fullPath)
186
- if (index > currentIndex) {
187
- this.$router.replace(this.contextMenuTargetPageRoute)
188
- }
189
- for (let i = 0; i < index; i++) {
190
- let r = this.openedPageRouters[i]
191
- this.delPageRoute(r)
192
- i--
193
- index--
194
- }
195
- }, //关闭右边页面
196
- closeOtherRight() {
197
- let index = this.openedPageRouters.indexOf(
198
- this.contextMenuTargetPageRoute
199
- )
200
- let currentIndex = this.getPageRouteIndex(this.$route.fullPath)
201
- for (let i = index + 1; i < this.openedPageRouters.length; i++) {
202
- let r = this.openedPageRouters[i]
203
- this.delPageRoute(r)
204
- i--
205
- }
206
- if (index < currentIndex) {
207
- this.$router.replace(this.contextMenuTargetPageRoute)
208
- }
209
- }, //删除页面
210
- delPageRoute(route) {
211
- let routeIndex = this.openedPageRouters.indexOf(route)
212
- if (routeIndex >= 0) {
213
- this.openedPageRouters.splice(routeIndex, 1)
214
- }
215
- this.delRouteCache(route.fullPath)
216
- }, //删除页面缓存
217
- delRouteCache(key) {
218
- let cache = this.keepAliveComponentInstance.cache
219
- let keys = this.keepAliveComponentInstance.keys
220
- for (let i = 0; i < keys.length; i++) {
221
- if (keys[i] === key) {
222
- keys.splice(i, 1)
223
- if (cache[key] != null) {
224
- delete cache[key]
225
- }
226
- break
227
- }
228
- }
229
- }
230
- }
231
- }
232
- </script>
1
+ /**
2
+ * author: zhengwei
3
+ * tiem: 2021-8-31
4
+ */
5
+ <template>
6
+ <div class="__common-layout-pageTabs">
7
+ <el-scrollbar>
8
+ <div class="__tabs">
9
+ <div
10
+ v-for="item in openedPageRouters"
11
+ :key="item.fullPath"
12
+ class="__tab-item"
13
+ :class="{
14
+ '__is-active': item.fullPath == $route.fullPath
15
+ }"
16
+ @click="onClick(item)"
17
+ @contextmenu.prevent="showContextMenu($event, item)"
18
+ >
19
+ {{ item.meta.title }}
20
+ <span
21
+ class="el-icon-close"
22
+ :style="openedPageRouters.length <= 1 ? 'width:0;' : ''"
23
+ @click.stop="onClose(item)"
24
+ @contextmenu.prevent.stop
25
+ ></span>
26
+ </div>
27
+ </div>
28
+ </el-scrollbar>
29
+ <div v-show="contextMenuVisible">
30
+ <ul
31
+ :style="{ left: contextMenuLeft + 'px', top: contextMenuTop + 'px' }"
32
+ class="__contextmenu"
33
+ >
34
+ <li>
35
+ <el-button type="text" size="mini" @click="reload()"
36
+ >重新加载</el-button
37
+ >
38
+ </li>
39
+ <li>
40
+ <el-button
41
+ type="text"
42
+ :disabled="false"
43
+ size="mini"
44
+ @click="closeOtherLeft"
45
+ >关闭左边</el-button
46
+ >
47
+ </li>
48
+ <li>
49
+ <el-button
50
+ type="text"
51
+ :disabled="false"
52
+ size="mini"
53
+ @click="closeOtherRight"
54
+ >关闭右边</el-button
55
+ >
56
+ </li>
57
+ <li>
58
+ <el-button type="text" size="mini" @click="closeOther"
59
+ >关闭其他</el-button
60
+ >
61
+ </li>
62
+ </ul>
63
+ </div>
64
+ </div>
65
+ </template>
66
+ <script>
67
+ export default {
68
+ name: 'MoreTab',
69
+ props: {
70
+ keepAliveComponentInstance: {
71
+ type: Object,
72
+ default: () => ({})
73
+ }, //keep-alive控件实例对象
74
+ blankRouteName: {
75
+ type: String,
76
+ default: 'blank'
77
+ } //空白路由的name值
78
+ },
79
+ data() {
80
+ return {
81
+ contextMenuVisible: false, //右键菜单是否显示
82
+ contextMenuLeft: 0, //右键菜单显示位置
83
+ contextMenuTop: 0, //右键菜单显示位置
84
+ contextMenuTargetPageRoute: null, //右键所指向的菜单路由
85
+ openedPageRouters: [] //已打开的路由页面
86
+ }
87
+ },
88
+ watch: {
89
+ //当路由变更时,执行打开页面的方法
90
+ $route: {
91
+ handler(v) {
92
+ this.openPage(v)
93
+ },
94
+ immediate: true
95
+ }
96
+ },
97
+ mounted() {
98
+ //添加点击关闭右键菜单
99
+ window.addEventListener('click', this.closeContextMenu)
100
+ },
101
+ destroyed() {
102
+ window.removeEventListener('click', this.closeContextMenu)
103
+ },
104
+ methods: {
105
+ //打开页面
106
+ openPage(route) {
107
+ if (route.name === this.blankRouteName) {
108
+ return
109
+ }
110
+ let isExist = this.openedPageRouters.some(
111
+ (item) => item.fullPath === route.fullPath
112
+ )
113
+ if (!isExist) {
114
+ let openedPageRoute = this.openedPageRouters.find(
115
+ (item) => item.path === route.path
116
+ ) //判断页面是否支持不同参数多开页面功能,如果不支持且已存在path值一样的页面路由,那就替换它
117
+ if (!route.meta.canMultipleOpen && openedPageRoute != null) {
118
+ this.delRouteCache(openedPageRoute.fullPath)
119
+ this.openedPageRouters.splice(
120
+ this.openedPageRouters.indexOf(openedPageRoute),
121
+ 1,
122
+ route
123
+ )
124
+ } else {
125
+ this.openedPageRouters.push(route)
126
+ }
127
+ }
128
+ }, //点击页面标签卡时
129
+ onClick(route) {
130
+ if (route.fullPath !== this.$route.fullPath) {
131
+ this.$router.push(route.fullPath)
132
+ }
133
+ }, //关闭页面标签时
134
+ onClose(route) {
135
+ let index = this.openedPageRouters.indexOf(route)
136
+ this.delPageRoute(route)
137
+ if (route.fullPath === this.$route.fullPath) {
138
+ //删除页面后,跳转到上一页面
139
+ this.$router.replace(
140
+ this.openedPageRouters[index === 0 ? 0 : index - 1]
141
+ )
142
+ }
143
+ }, //右键显示菜单
144
+ showContextMenu(e, route) {
145
+ this.contextMenuTargetPageRoute = route
146
+ this.contextMenuLeft = e.layerX
147
+ this.contextMenuTop = e.layerY
148
+ this.contextMenuVisible = true
149
+ }, //隐藏右键菜单
150
+ closeContextMenu() {
151
+ this.contextMenuVisible = false
152
+ this.contextMenuTargetPageRoute = null
153
+ }, //重载页面
154
+ reload() {
155
+ this.delRouteCache(this.contextMenuTargetPageRoute.fullPath)
156
+ if (this.contextMenuTargetPageRoute.fullPath === this.$route.fullPath) {
157
+ this.$router.replace({ name: this.blankRouteName }).then(() => {
158
+ this.$router.replace(this.contextMenuTargetPageRoute)
159
+ })
160
+ }
161
+ }, //关闭其他页面
162
+ closeOther() {
163
+ for (let i = 0; i < this.openedPageRouters.length; i++) {
164
+ let r = this.openedPageRouters[i]
165
+ if (r !== this.contextMenuTargetPageRoute) {
166
+ this.delPageRoute(r)
167
+ i--
168
+ }
169
+ }
170
+ if (this.contextMenuTargetPageRoute.fullPath !== this.$route.fullPath) {
171
+ this.$router.replace(this.contextMenuTargetPageRoute)
172
+ }
173
+ }, //根据路径获取索引
174
+ getPageRouteIndex(fullPath) {
175
+ for (let i = 0; i < this.openedPageRouters.length; i++) {
176
+ if (this.openedPageRouters[i].fullPath === fullPath) {
177
+ return i
178
+ }
179
+ }
180
+ }, //关闭左边页面
181
+ closeOtherLeft() {
182
+ let index = this.openedPageRouters.indexOf(
183
+ this.contextMenuTargetPageRoute
184
+ )
185
+ let currentIndex = this.getPageRouteIndex(this.$route.fullPath)
186
+ if (index > currentIndex) {
187
+ this.$router.replace(this.contextMenuTargetPageRoute)
188
+ }
189
+ for (let i = 0; i < index; i++) {
190
+ let r = this.openedPageRouters[i]
191
+ this.delPageRoute(r)
192
+ i--
193
+ index--
194
+ }
195
+ }, //关闭右边页面
196
+ closeOtherRight() {
197
+ let index = this.openedPageRouters.indexOf(
198
+ this.contextMenuTargetPageRoute
199
+ )
200
+ let currentIndex = this.getPageRouteIndex(this.$route.fullPath)
201
+ for (let i = index + 1; i < this.openedPageRouters.length; i++) {
202
+ let r = this.openedPageRouters[i]
203
+ this.delPageRoute(r)
204
+ i--
205
+ }
206
+ if (index < currentIndex) {
207
+ this.$router.replace(this.contextMenuTargetPageRoute)
208
+ }
209
+ }, //删除页面
210
+ delPageRoute(route) {
211
+ let routeIndex = this.openedPageRouters.indexOf(route)
212
+ if (routeIndex >= 0) {
213
+ this.openedPageRouters.splice(routeIndex, 1)
214
+ }
215
+ this.delRouteCache(route.fullPath)
216
+ }, //删除页面缓存
217
+ delRouteCache(key) {
218
+ let cache = this.keepAliveComponentInstance.cache
219
+ let keys = this.keepAliveComponentInstance.keys
220
+ for (let i = 0; i < keys.length; i++) {
221
+ if (keys[i] === key) {
222
+ keys.splice(i, 1)
223
+ if (cache[key] != null) {
224
+ delete cache[key]
225
+ }
226
+ break
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ </script>
@@ -1,60 +1,60 @@
1
- <template>
2
- <el-menu :router="true">
3
- <template v-for="omenus in menus">
4
- <template v-for="item in omenus.menu">
5
- <el-submenu v-if="item.children" :key="item.title" :index="item.title">
6
- <template slot="title">
7
- <i
8
- v-if="item.iconUrl"
9
- class="el-icon- icon-url"
10
- :style="{ backgroundImage: `url(${item.iconUrl})` }"
11
- ></i>
12
- <i v-else :class="item.iconClass"></i>
13
- <span>{{ item.title }}</span>
14
- </template>
15
- <template v-for="itemc in item.children">
16
- <el-menu-item
17
- :key="itemc.title"
18
- :index="itemc.title"
19
- :route="omenus.base + itemc.route"
20
- >
21
- <i
22
- v-if="item.iconUrl"
23
- class="el-icon- icon-url"
24
- :style="{ backgroundImage: `url(${itemc.iconUrl})` }"
25
- ></i>
26
- <i v-else :class="itemc.iconClass"></i>
27
- <span slot="title">{{ itemc.title }}</span>
28
- </el-menu-item>
29
- </template>
30
- </el-submenu>
31
- <el-menu-item
32
- v-else
33
- :key="item.title"
34
- :index="item.title"
35
- :route="omenus.base + item.route"
36
- >
37
- <i
38
- v-if="item.iconUrl"
39
- class="el-icon- icon-url"
40
- :style="{ backgroundImage: `url(${item.iconUrl})` }"
41
- ></i>
42
- <i v-else :class="item.iconClass"></i>
43
- <span slot="title">{{ item.title }}</span>
44
- </el-menu-item>
45
- </template>
46
- </template>
47
- </el-menu>
48
- </template>
49
-
50
- <script>
51
- export default {
52
- name: 'NavMenu',
53
- props: {
54
- menus: {
55
- type: Array,
56
- default: () => []
57
- }
58
- }
59
- }
60
- </script>
1
+ <template>
2
+ <el-menu :router="true">
3
+ <template v-for="omenus in menus">
4
+ <template v-for="item in omenus.menu">
5
+ <el-submenu v-if="item.children" :key="item.title" :index="item.title">
6
+ <template slot="title">
7
+ <i
8
+ v-if="item.iconUrl"
9
+ class="el-icon- icon-url"
10
+ :style="{ backgroundImage: `url(${item.iconUrl})` }"
11
+ ></i>
12
+ <i v-else :class="item.iconClass"></i>
13
+ <span>{{ item.title }}</span>
14
+ </template>
15
+ <template v-for="itemc in item.children">
16
+ <el-menu-item
17
+ :key="itemc.title"
18
+ :index="itemc.title"
19
+ :route="omenus.base + itemc.route"
20
+ >
21
+ <i
22
+ v-if="item.iconUrl"
23
+ class="el-icon- icon-url"
24
+ :style="{ backgroundImage: `url(${itemc.iconUrl})` }"
25
+ ></i>
26
+ <i v-else :class="itemc.iconClass"></i>
27
+ <span slot="title">{{ itemc.title }}</span>
28
+ </el-menu-item>
29
+ </template>
30
+ </el-submenu>
31
+ <el-menu-item
32
+ v-else
33
+ :key="item.title"
34
+ :index="item.title"
35
+ :route="omenus.base + item.route"
36
+ >
37
+ <i
38
+ v-if="item.iconUrl"
39
+ class="el-icon- icon-url"
40
+ :style="{ backgroundImage: `url(${item.iconUrl})` }"
41
+ ></i>
42
+ <i v-else :class="item.iconClass"></i>
43
+ <span slot="title">{{ item.title }}</span>
44
+ </el-menu-item>
45
+ </template>
46
+ </template>
47
+ </el-menu>
48
+ </template>
49
+
50
+ <script>
51
+ export default {
52
+ name: 'NavMenu',
53
+ props: {
54
+ menus: {
55
+ type: Array,
56
+ default: () => []
57
+ }
58
+ }
59
+ }
60
+ </script>
@@ -1,15 +1,15 @@
1
- <template>
2
- <div class="flex-column">
3
- <slot name="header"></slot>
4
- <div class="n20-page-content flex-item">
5
- <slot></slot>
6
- </div>
7
- <slot name="footer"></slot>
8
- </div>
9
- </template>
10
-
11
- <script>
12
- export default {
13
- name: 'Page'
14
- }
15
- </script>
1
+ <template>
2
+ <div class="flex-column">
3
+ <slot name="header"></slot>
4
+ <div class="n20-page-content flex-item">
5
+ <slot></slot>
6
+ </div>
7
+ <slot name="footer"></slot>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ name: 'Page'
14
+ }
15
+ </script>