n20-common-lib 1.2.43 → 1.2.44

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 (201) 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 -566
  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/css/normalize.scss +0 -726
  188. package/style/fonts/element-icons.535877f5.woff +0 -0
  189. package/style/fonts/element-icons.732389de.ttf +0 -0
  190. package/style/fonts/iconfont.022f36c4.woff2 +0 -0
  191. package/style/fonts/iconfont.4a1b2c93.woff +0 -0
  192. package/style/fonts/iconfont.a9febaa2.ttf +0 -0
  193. package/style/index.css +0 -4
  194. package/style/index.css.map +0 -1
  195. package/style/index.umd.min.js +0 -2
  196. package/style/index.umd.min.js.map +0 -1
  197. package/style/pageDemo/demo-1.vue +0 -131
  198. package/style/pageDemo/demo-2.vue +0 -35
  199. package/style/pageDemo/demo-3.vue +0 -22
  200. package/style/pageDemo/seeCode.js +0 -20
  201. 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>