n20-common-lib 1.2.40 → 1.2.43

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 (188) 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/Anchor/AnchorItem.vue +29 -29
  52. package/src/components/Anchor/index.vue +185 -185
  53. package/src/components/ApprovalButtons/index.vue +233 -233
  54. package/src/components/ApprovalCard/index.vue +128 -128
  55. package/src/components/ApprovalRecord/approvalImg.vue +44 -44
  56. package/src/components/ApprovalRecord/flowDialog.vue +45 -45
  57. package/src/components/ApprovalRecord/index.vue +59 -59
  58. package/src/components/Button/button-group.vue +150 -150
  59. package/src/components/Button/icon-group-button.vue +61 -61
  60. package/src/components/Button/index.vue +56 -56
  61. package/src/components/CascaderArea/index.vue +103 -103
  62. package/src/components/ContentLoading/index.vue +41 -41
  63. package/src/components/ContentNull/index.vue +19 -19
  64. package/src/components/DatePicker/index.vue +27 -27
  65. package/src/components/DatePicker/por.vue +169 -169
  66. package/src/components/Dialog/index.vue +26 -26
  67. package/src/components/Dialog/indexO.vue +116 -116
  68. package/src/components/DragList/index.vue +75 -75
  69. package/src/components/Empty/img/abnormal.svg +108 -108
  70. package/src/components/Empty/img/dispose.svg +71 -71
  71. package/src/components/Empty/img/empty.svg +57 -57
  72. package/src/components/Empty/img/general.svg +58 -58
  73. package/src/components/Empty/img/lock.svg +57 -57
  74. package/src/components/Empty/img/network.svg +59 -59
  75. package/src/components/Empty/img/relevant.svg +68 -68
  76. package/src/components/Empty/img/search.svg +72 -72
  77. package/src/components/Empty/index.vue +92 -92
  78. package/src/components/Expandable/index.vue +49 -49
  79. package/src/components/Expandable/main.vue +52 -52
  80. package/src/components/FileExportAsync/index.vue +178 -178
  81. package/src/components/FileUploadTable/index.vue +484 -484
  82. package/src/components/Filters/index.vue +371 -371
  83. package/src/components/Filters/indexO.vue +104 -104
  84. package/src/components/FlowStep/index.vue +68 -68
  85. package/src/components/FooterBox/index.vue +21 -21
  86. package/src/components/GeneralCard/index.vue +15 -15
  87. package/src/components/InputNumber/index.vue +169 -169
  88. package/src/components/InputNumber/numberRange.vue +47 -47
  89. package/src/components/InputSearch/index.vue +75 -75
  90. package/src/components/Layout/AsideNav/index.vue +120 -119
  91. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  92. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  93. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  94. package/src/components/Layout/HeaderWrap/index.vue +371 -371
  95. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  96. package/src/components/Layout/SubContent/index.vue +127 -127
  97. package/src/components/Layout/TabsNav/index.vue +170 -170
  98. package/src/components/Layout/index.vue +518 -518
  99. package/src/components/Layout/utils.js +12 -12
  100. package/src/components/LoginTemporary/form.vue +566 -570
  101. package/src/components/LoginTemporary/index.vue +139 -139
  102. package/src/components/LoginTemporary/retrievePw.vue +372 -372
  103. package/src/components/MicroApp/index.js +67 -67
  104. package/src/components/MicroFrame/index.vue +95 -95
  105. package/src/components/MoreTab/index.vue +232 -232
  106. package/src/components/NavMenu/index.vue +60 -60
  107. package/src/components/PageLayout/page.vue +15 -15
  108. package/src/components/Pagination/index.vue +165 -165
  109. package/src/components/SecondaryTab/index.vue +58 -58
  110. package/src/components/SelectLazy/index.vue +75 -75
  111. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  112. package/src/components/SelectTree/index.vue +205 -205
  113. package/src/components/ShowColumn/index.vue +213 -213
  114. package/src/components/Sifting/index.vue +99 -99
  115. package/src/components/Statis/index.vue +97 -97
  116. package/src/components/Statis/statisItem.vue +54 -54
  117. package/src/components/Statis/statisPopover.vue +55 -55
  118. package/src/components/Step/index.vue +38 -38
  119. package/src/components/Suspend/index.vue +72 -72
  120. package/src/components/Table/index.vue +209 -209
  121. package/src/components/Table/indexO.vue +149 -149
  122. package/src/components/Task/index.vue +26 -26
  123. package/src/components/TertiaryTab/index.vue +63 -63
  124. package/src/components/TimePicker/index.vue +28 -28
  125. package/src/components/Upload/index.vue +242 -242
  126. package/src/components/WornPagination/index.vue +73 -73
  127. package/src/directives/VClickOutside/index.js +19 -19
  128. package/src/directives/VHas/index.js +58 -58
  129. package/src/directives/VMove/index.js +42 -42
  130. package/src/directives/VTitle/index.js +69 -69
  131. package/src/directives/VTitle/tooltip.vue +21 -21
  132. package/src/index.js +232 -232
  133. package/src/plugins/CompatibleOld/index.js +57 -57
  134. package/src/plugins/Print/index.js +4 -4
  135. package/src/plugins/Print/print-js/.babelrc +12 -12
  136. package/src/plugins/Print/print-js/LICENSE +21 -21
  137. package/src/plugins/Print/print-js/README.md +98 -98
  138. package/src/plugins/Print/print-js/dist/print.css +96 -96
  139. package/src/plugins/Print/print-js/dist/print.js +990 -990
  140. package/src/plugins/Print/print-js/package.json +60 -60
  141. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  142. package/src/plugins/Print/print-js/src/index.js +10 -10
  143. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  144. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  145. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  146. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  147. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  148. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  149. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  150. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  151. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  152. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  153. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  154. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  155. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  156. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  157. package/src/plugins/Print/print.js +2 -2
  158. package/src/plugins/Print/print.scss +1 -1
  159. package/src/plugins/SetMenuTree/index.vue +41 -41
  160. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  161. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  162. package/src/plugins/SetMenuTree/utils.js +74 -74
  163. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  164. package/src/plugins/Sign/index.js +65 -65
  165. package/src/plugins/Sign/sign.js +1 -1
  166. package/src/plugins/setTabsForSub.js +2 -2
  167. package/src/utils/auth.js +53 -53
  168. package/src/utils/axios.js +203 -203
  169. package/src/utils/downloadBlob.js +19 -19
  170. package/src/utils/forEachs.js +16 -16
  171. package/src/utils/getScrollContainer.js +43 -43
  172. package/src/utils/i18n/cn2hk.json +1270 -1270
  173. package/src/utils/i18n/index.js +50 -50
  174. package/src/utils/list2tree.js +36 -36
  175. package/src/utils/msgboxPor.js +26 -26
  176. package/src/utils/print.js +161 -161
  177. package/src/utils/relaNo.js +72 -72
  178. package/src/utils/repairElementUI.js +95 -66
  179. package/src/utils/urlToGo.js +82 -82
  180. package/style/css/normalize.scss +726 -0
  181. package/style/index.css +3 -3
  182. package/style/index.css.map +1 -1
  183. package/style/pageDemo/demo-1.vue +131 -0
  184. package/style/pageDemo/demo-2.vue +35 -0
  185. package/style/pageDemo/demo-3.vue +22 -0
  186. package/style/pageDemo/seeCode.js +20 -0
  187. package/style/server-config.jsonc +606 -0
  188. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +0 -185
@@ -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>