n20-common-lib 1.2.28 → 1.2.31

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 (191) 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 +39 -39
  56. package/src/components/ApprovalRecord/index.vue +59 -59
  57. package/src/components/Button/button-group.vue +150 -150
  58. package/src/components/Button/icon-group-button.vue +61 -61
  59. package/src/components/Button/index.vue +56 -56
  60. package/src/components/CascaderArea/index.vue +103 -103
  61. package/src/components/ContentLoading/index.vue +41 -41
  62. package/src/components/ContentNull/index.vue +19 -19
  63. package/src/components/DatePicker/index.vue +27 -27
  64. package/src/components/DatePicker/por.vue +169 -169
  65. package/src/components/Dialog/index.vue +26 -26
  66. package/src/components/Dialog/indexO.vue +116 -116
  67. package/src/components/DragList/index.vue +75 -75
  68. package/src/components/Empty/img/abnormal.svg +108 -108
  69. package/src/components/Empty/img/dispose.svg +71 -71
  70. package/src/components/Empty/img/empty.svg +57 -57
  71. package/src/components/Empty/img/general.svg +58 -58
  72. package/src/components/Empty/img/lock.svg +57 -57
  73. package/src/components/Empty/img/network.svg +59 -59
  74. package/src/components/Empty/img/relevant.svg +68 -68
  75. package/src/components/Empty/img/search.svg +72 -72
  76. package/src/components/Empty/index.vue +92 -92
  77. package/src/components/Expandable/index.vue +49 -49
  78. package/src/components/Expandable/main.vue +52 -52
  79. package/src/components/FileExportAsync/index.vue +178 -178
  80. package/src/components/FileUploadTable/index.vue +484 -484
  81. package/src/components/Filters/index.vue +371 -371
  82. package/src/components/Filters/indexO.vue +104 -104
  83. package/src/components/FlowStep/index.vue +68 -68
  84. package/src/components/FooterBox/index.vue +21 -21
  85. package/src/components/GeneralCard/index.vue +15 -15
  86. package/src/components/InputNumber/index.vue +169 -169
  87. package/src/components/InputNumber/numberRange.vue +47 -47
  88. package/src/components/InputSearch/index.vue +75 -75
  89. package/src/components/Layout/AsideNav/index.vue +119 -119
  90. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  91. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  92. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  93. package/src/components/Layout/HeaderWrap/index.vue +373 -373
  94. package/src/components/Layout/HeaderWrap/noticePop.vue +300 -300
  95. package/src/components/Layout/SubContent/index.vue +131 -131
  96. package/src/components/Layout/TabsNav/index.vue +170 -170
  97. package/src/components/Layout/index.vue +529 -529
  98. package/src/components/Layout/utils.js +12 -12
  99. package/src/components/LoginTemporary/form.vue +561 -563
  100. package/src/components/LoginTemporary/index.vue +139 -146
  101. package/src/components/LoginTemporary/qrcode.vue +90 -90
  102. package/src/components/LoginTemporary/retrievePw.vue +372 -374
  103. package/src/components/LoginTemporary/utils.js +73 -73
  104. package/src/components/MicroApp/index.js +67 -67
  105. package/src/components/MicroFrame/index.vue +95 -95
  106. package/src/components/MoreTab/index.vue +232 -232
  107. package/src/components/NavMenu/index.vue +60 -60
  108. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +184 -184
  109. package/src/components/PageLayout/page.vue +15 -15
  110. package/src/components/Pagination/index.vue +165 -165
  111. package/src/components/SecondaryTab/index.vue +58 -58
  112. package/src/components/SelectLazy/index.vue +75 -75
  113. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  114. package/src/components/SelectTree/index.vue +205 -205
  115. package/src/components/ShowColumn/index.vue +213 -208
  116. package/src/components/Sifting/index.vue +99 -99
  117. package/src/components/Statis/index.vue +97 -97
  118. package/src/components/Statis/statisItem.vue +54 -54
  119. package/src/components/Statis/statisPopover.vue +55 -55
  120. package/src/components/Step/index.vue +38 -38
  121. package/src/components/Suspend/index.vue +72 -72
  122. package/src/components/Table/index.vue +209 -209
  123. package/src/components/Table/indexO.vue +149 -149
  124. package/src/components/Task/index.vue +26 -26
  125. package/src/components/TertiaryTab/index.vue +63 -63
  126. package/src/components/TimePicker/index.vue +28 -28
  127. package/src/components/Upload/index.vue +242 -242
  128. package/src/components/WornPagination/index.vue +73 -73
  129. package/src/directives/VClickOutside/index.js +19 -19
  130. package/src/directives/VHas/index.js +58 -58
  131. package/src/directives/VMove/index.js +42 -42
  132. package/src/directives/VTitle/index.js +69 -69
  133. package/src/directives/VTitle/tooltip.vue +21 -21
  134. package/src/index.js +229 -229
  135. package/src/plugins/CompatibleOld/index.js +57 -57
  136. package/src/plugins/Print/index.js +4 -4
  137. package/src/plugins/Print/print-js/.babelrc +12 -12
  138. package/src/plugins/Print/print-js/LICENSE +21 -21
  139. package/src/plugins/Print/print-js/README.md +98 -98
  140. package/src/plugins/Print/print-js/dist/print.css +96 -96
  141. package/src/plugins/Print/print-js/dist/print.js +990 -990
  142. package/src/plugins/Print/print-js/package.json +60 -60
  143. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  144. package/src/plugins/Print/print-js/src/index.js +10 -10
  145. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  146. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  147. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  148. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  149. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  150. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  151. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  152. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  153. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  154. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  155. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  156. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  157. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  158. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  159. package/src/plugins/Print/print.js +2 -2
  160. package/src/plugins/Print/print.scss +1 -1
  161. package/src/plugins/SetMenuTree/index.vue +41 -41
  162. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  163. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  164. package/src/plugins/SetMenuTree/utils.js +74 -74
  165. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  166. package/src/plugins/Sign/index.js +65 -65
  167. package/src/plugins/Sign/sign.js +1 -1
  168. package/src/plugins/setTabsForSub.js +2 -2
  169. package/src/utils/auth.js +53 -53
  170. package/src/utils/axios.js +203 -203
  171. package/src/utils/downloadBlob.js +19 -19
  172. package/src/utils/forEachs.js +16 -16
  173. package/src/utils/getScrollContainer.js +43 -43
  174. package/src/utils/i18n/cn2hk.json +1270 -1270
  175. package/src/utils/i18n/index.js +50 -50
  176. package/src/utils/list2tree.js +36 -36
  177. package/src/utils/msgboxPor.js +26 -26
  178. package/src/utils/print.js +161 -161
  179. package/src/utils/relaNo.js +76 -76
  180. package/src/utils/repairElementUI.js +66 -66
  181. package/src/utils/urlToGo.js +82 -82
  182. package/style/css/normalize.scss +726 -726
  183. package/style/index.css +3 -3
  184. package/style/pageDemo/demo-1.vue +131 -131
  185. package/style/pageDemo/demo-2.vue +35 -35
  186. package/style/pageDemo/demo-3.vue +22 -22
  187. package/style/pageDemo/seeCode.js +20 -20
  188. package/style/server-config.jsonc +606 -606
  189. package/src/components/.DS_Store +0 -0
  190. package/src/components/Layout/.DS_Store +0 -0
  191. package/src/components/NstcG6Components/.DS_Store +0 -0
@@ -1,73 +1,73 @@
1
- import forEachs from '../../utils/forEachs'
2
- import list2tree from '../../utils/list2tree'
3
-
4
- export function siteTree2menus(siteTree) {
5
- let list_1 = []
6
-
7
- forEachs(siteTree, (item) => {
8
- if (item.resType === '1' || item.resType === '2') {
9
- list_1.push(item)
10
- }
11
- })
12
-
13
- let list_2 = []
14
- list_1.forEach((item) => {
15
- let menuObj = {
16
- menuid: item.menuid,
17
- pmid: item.pmid,
18
- sortnum: item.sortnum ? Number(item.sortnum) : item.menuid,
19
- appNo: item.appNo || undefined,
20
- title: item.label
21
- }
22
- if (/^http(s)?:|\/\//.test(item.pageurl)) {
23
- menuObj.href = item.pageurl
24
- } else {
25
- menuObj.route = item.pageurl
26
- }
27
-
28
- if (/\//.test(item.logo)) {
29
- menuObj.iconUrl = item.logo
30
- } else {
31
- menuObj.iconClass = item.logo
32
- }
33
-
34
- if (item.resType === '2') {
35
- menuObj.hide = true
36
- }
37
-
38
- list_2.push(menuObj)
39
- })
40
-
41
- return list2tree(list_2, 'menuid', 'pmid', 'children', 'sortnum')
42
- }
43
-
44
- export function siteTree2RelaNos(siteTree) {
45
- let relaNos = []
46
- siteTree.forEach((m) => {
47
- let oRelaObj = relaNos.find((item) => item.appNo === m.appNo)
48
- if (oRelaObj) {
49
- m.treeno && oRelaObj.relaNos.push(m.treeno)
50
- if (Array.isArray(m.children)) {
51
- forEachs(m.children, (item) => {
52
- item.treeno && oRelaObj.relaNos.push(item.treeno)
53
- })
54
- }
55
- } else {
56
- oRelaObj = {
57
- appNo: m.appNo,
58
- label: m.label,
59
- pageurl: m.pageurl,
60
- relaNos: []
61
- }
62
-
63
- m.treeno && oRelaObj.relaNos.push(m.treeno)
64
- if (Array.isArray(m.children)) {
65
- forEachs(m.children, (item) => {
66
- item.treeno && oRelaObj.relaNos.push(item.treeno)
67
- })
68
- }
69
- relaNos.push(oRelaObj)
70
- }
71
- })
72
- return relaNos
73
- }
1
+ import forEachs from '../../utils/forEachs'
2
+ import list2tree from '../../utils/list2tree'
3
+
4
+ export function siteTree2menus(siteTree) {
5
+ let list_1 = []
6
+
7
+ forEachs(siteTree, (item) => {
8
+ if (item.resType === '1' || item.resType === '2') {
9
+ list_1.push(item)
10
+ }
11
+ })
12
+
13
+ let list_2 = []
14
+ list_1.forEach((item) => {
15
+ let menuObj = {
16
+ menuid: item.menuid,
17
+ pmid: item.pmid,
18
+ sortnum: item.sortnum ? Number(item.sortnum) : item.menuid,
19
+ appNo: item.appNo || undefined,
20
+ title: item.label
21
+ }
22
+ if (/^http(s)?:|\/\//.test(item.pageurl)) {
23
+ menuObj.href = item.pageurl
24
+ } else {
25
+ menuObj.route = item.pageurl
26
+ }
27
+
28
+ if (/\//.test(item.logo)) {
29
+ menuObj.iconUrl = item.logo
30
+ } else {
31
+ menuObj.iconClass = item.logo
32
+ }
33
+
34
+ if (item.resType === '2') {
35
+ menuObj.hide = true
36
+ }
37
+
38
+ list_2.push(menuObj)
39
+ })
40
+
41
+ return list2tree(list_2, 'menuid', 'pmid', 'children', 'sortnum')
42
+ }
43
+
44
+ export function siteTree2RelaNos(siteTree) {
45
+ let relaNos = []
46
+ siteTree.forEach((m) => {
47
+ let oRelaObj = relaNos.find((item) => item.appNo === m.appNo)
48
+ if (oRelaObj) {
49
+ m.treeno && oRelaObj.relaNos.push(m.treeno)
50
+ if (Array.isArray(m.children)) {
51
+ forEachs(m.children, (item) => {
52
+ item.treeno && oRelaObj.relaNos.push(item.treeno)
53
+ })
54
+ }
55
+ } else {
56
+ oRelaObj = {
57
+ appNo: m.appNo,
58
+ label: m.label,
59
+ pageurl: m.pageurl,
60
+ relaNos: []
61
+ }
62
+
63
+ m.treeno && oRelaObj.relaNos.push(m.treeno)
64
+ if (Array.isArray(m.children)) {
65
+ forEachs(m.children, (item) => {
66
+ item.treeno && oRelaObj.relaNos.push(item.treeno)
67
+ })
68
+ }
69
+ relaNos.push(oRelaObj)
70
+ }
71
+ })
72
+ return relaNos
73
+ }
@@ -1,67 +1,67 @@
1
- import { loadMicroApp } from 'qiankun'
2
- export default {
3
- props: {
4
- name: {
5
- type: String,
6
- default: ''
7
- },
8
- entry: {
9
- type: String,
10
- default: ''
11
- },
12
- props: {
13
- type: Object,
14
- default: undefined
15
- },
16
- noCache: {
17
- type: Boolean,
18
- default: false
19
- }
20
- },
21
- data() {
22
- this.microApp = undefined
23
- return {}
24
- },
25
- computed: {
26
- appName() {
27
- return '_qiankun_abstract_' + this.name
28
- }
29
- },
30
- watch: {
31
- entry() {
32
- this.mountApp()
33
- }
34
- },
35
- mounted() {
36
- this.mountApp()
37
- },
38
- activated() {
39
- if (this.noCache && window._pending_update_cache) {
40
- window._pending_update_cache[this.props.router] = true
41
- window.postMessage({
42
- updateCache: true,
43
- targetName: '*',
44
- originName: 'main'
45
- })
46
- }
47
- },
48
- beforeDestroy() {
49
- window[this.appName]?.unmount({ props: this.props })
50
- },
51
- methods: {
52
- async mountApp() {
53
- window[this.appName]?.unmount({ props: this.props })
54
- if (this.entry) {
55
- window[this.appName] = loadMicroApp({
56
- name: this.name,
57
- container: this.$el,
58
- entry: this.entry,
59
- props: this.props
60
- })
61
- }
62
- }
63
- },
64
- render(h) {
65
- return h('div')
66
- }
67
- }
1
+ import { loadMicroApp } from 'qiankun'
2
+ export default {
3
+ props: {
4
+ name: {
5
+ type: String,
6
+ default: ''
7
+ },
8
+ entry: {
9
+ type: String,
10
+ default: ''
11
+ },
12
+ props: {
13
+ type: Object,
14
+ default: undefined
15
+ },
16
+ noCache: {
17
+ type: Boolean,
18
+ default: false
19
+ }
20
+ },
21
+ data() {
22
+ this.microApp = undefined
23
+ return {}
24
+ },
25
+ computed: {
26
+ appName() {
27
+ return '_qiankun_abstract_' + this.name
28
+ }
29
+ },
30
+ watch: {
31
+ entry() {
32
+ this.mountApp()
33
+ }
34
+ },
35
+ mounted() {
36
+ this.mountApp()
37
+ },
38
+ activated() {
39
+ if (this.noCache && window._pending_update_cache) {
40
+ window._pending_update_cache[this.props.router] = true
41
+ window.postMessage({
42
+ updateCache: true,
43
+ targetName: '*',
44
+ originName: 'main'
45
+ })
46
+ }
47
+ },
48
+ beforeDestroy() {
49
+ window[this.appName]?.unmount({ props: this.props })
50
+ },
51
+ methods: {
52
+ async mountApp() {
53
+ window[this.appName]?.unmount({ props: this.props })
54
+ if (this.entry) {
55
+ window[this.appName] = loadMicroApp({
56
+ name: this.name,
57
+ container: this.$el,
58
+ entry: this.entry,
59
+ props: this.props
60
+ })
61
+ }
62
+ }
63
+ },
64
+ render(h) {
65
+ return h('div')
66
+ }
67
+ }
@@ -1,95 +1,95 @@
1
- <template>
2
- <content-loading />
3
- </template>
4
-
5
- <script>
6
- import contentLoading from '../ContentLoading'
7
- export default {
8
- components: {
9
- contentLoading
10
- },
11
- data() {
12
- return {
13
- loading: true,
14
- frameUrl: undefined
15
- }
16
- },
17
- activated() {
18
- let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
19
- if (!contentWrap) {
20
- this.getUrl()
21
- this.addFrame()
22
- } else {
23
- this.showFrame()
24
- }
25
- contentWrap = undefined
26
- },
27
- deactivated() {
28
- this.hideFrame()
29
- },
30
- methods: {
31
- destroy() {
32
- this.removeFrame()
33
- },
34
- getUrl() {
35
- let hrefPrefix = this.$route.meta.hrefPrefix || '/'
36
- let pathMatch = this.$route.params.pathMatch || ''
37
- let [path, params] = pathMatch.split('/_PARAMS_/')
38
- let url = hrefPrefix + path
39
- params && (url = url + '?' + params)
40
-
41
- this.frameUrl = url
42
- },
43
- addFrame() {
44
- let frame = document.createElement('iframe')
45
- frame.setAttribute('src', this.frameUrl)
46
- frame.style.width = '100%'
47
- frame.style.height = '100%'
48
-
49
- frame.addEventListener('load', () => {
50
- let subDoc = frame.contentDocument
51
- if (subDoc) {
52
- let style = subDoc.createElement('style')
53
- style.textContent =
54
- '::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-button{width:0;height:0}::-webkit-scrollbar-corner{background-color:transparent}::-webkit-scrollbar-thumb,::-webkit-scrollbar-track{border-color:transparent;border-style:solid}::-webkit-scrollbar-thumb{min-height:28px;background-color:rgba(0,0,0,0.07);border-width:0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,0.2)}::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,0.25)}::-webkit-scrollbar-track:hover{background-color:rgba(0,0,0,0.03)}::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,0.03)}html{overflow:auto}'
55
- subDoc.querySelector('head').appendChild(style)
56
- }
57
-
58
- contentWrap.style.display = ''
59
- this.loading = false
60
- })
61
-
62
- let contentBox = document.createElement('div')
63
- contentBox.setAttribute('class', 'content-box')
64
- contentBox.style.overflow = 'hidden'
65
- contentBox.appendChild(frame)
66
-
67
- let contentWrap = document.createElement('div')
68
- contentWrap.setAttribute('class', 'content-wrap')
69
- contentWrap.setAttribute('data-url', this.frameUrl)
70
- contentWrap.style.display = 'none'
71
- contentWrap.appendChild(contentBox)
72
-
73
- document.querySelector('body').appendChild(contentWrap)
74
- },
75
- showFrame() {
76
- let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
77
- if (contentWrap) {
78
- contentWrap.style.display = ''
79
- }
80
- },
81
- hideFrame() {
82
- let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
83
- if (contentWrap) {
84
- contentWrap.style.display = 'none'
85
- }
86
- },
87
- removeFrame() {
88
- let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
89
- if (contentWrap) {
90
- contentWrap.parentNode.removeChild(contentWrap)
91
- }
92
- }
93
- }
94
- }
95
- </script>
1
+ <template>
2
+ <content-loading />
3
+ </template>
4
+
5
+ <script>
6
+ import contentLoading from '../ContentLoading'
7
+ export default {
8
+ components: {
9
+ contentLoading
10
+ },
11
+ data() {
12
+ return {
13
+ loading: true,
14
+ frameUrl: undefined
15
+ }
16
+ },
17
+ activated() {
18
+ let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
19
+ if (!contentWrap) {
20
+ this.getUrl()
21
+ this.addFrame()
22
+ } else {
23
+ this.showFrame()
24
+ }
25
+ contentWrap = undefined
26
+ },
27
+ deactivated() {
28
+ this.hideFrame()
29
+ },
30
+ methods: {
31
+ destroy() {
32
+ this.removeFrame()
33
+ },
34
+ getUrl() {
35
+ let hrefPrefix = this.$route.meta.hrefPrefix || '/'
36
+ let pathMatch = this.$route.params.pathMatch || ''
37
+ let [path, params] = pathMatch.split('/_PARAMS_/')
38
+ let url = hrefPrefix + path
39
+ params && (url = url + '?' + params)
40
+
41
+ this.frameUrl = url
42
+ },
43
+ addFrame() {
44
+ let frame = document.createElement('iframe')
45
+ frame.setAttribute('src', this.frameUrl)
46
+ frame.style.width = '100%'
47
+ frame.style.height = '100%'
48
+
49
+ frame.addEventListener('load', () => {
50
+ let subDoc = frame.contentDocument
51
+ if (subDoc) {
52
+ let style = subDoc.createElement('style')
53
+ style.textContent =
54
+ '::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-button{width:0;height:0}::-webkit-scrollbar-corner{background-color:transparent}::-webkit-scrollbar-thumb,::-webkit-scrollbar-track{border-color:transparent;border-style:solid}::-webkit-scrollbar-thumb{min-height:28px;background-color:rgba(0,0,0,0.07);border-width:0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,0.2)}::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,0.25)}::-webkit-scrollbar-track:hover{background-color:rgba(0,0,0,0.03)}::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,0.03)}html{overflow:auto}'
55
+ subDoc.querySelector('head').appendChild(style)
56
+ }
57
+
58
+ contentWrap.style.display = ''
59
+ this.loading = false
60
+ })
61
+
62
+ let contentBox = document.createElement('div')
63
+ contentBox.setAttribute('class', 'content-box')
64
+ contentBox.style.overflow = 'hidden'
65
+ contentBox.appendChild(frame)
66
+
67
+ let contentWrap = document.createElement('div')
68
+ contentWrap.setAttribute('class', 'content-wrap')
69
+ contentWrap.setAttribute('data-url', this.frameUrl)
70
+ contentWrap.style.display = 'none'
71
+ contentWrap.appendChild(contentBox)
72
+
73
+ document.querySelector('body').appendChild(contentWrap)
74
+ },
75
+ showFrame() {
76
+ let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
77
+ if (contentWrap) {
78
+ contentWrap.style.display = ''
79
+ }
80
+ },
81
+ hideFrame() {
82
+ let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
83
+ if (contentWrap) {
84
+ contentWrap.style.display = 'none'
85
+ }
86
+ },
87
+ removeFrame() {
88
+ let contentWrap = document.querySelector(`[data-url="${this.frameUrl}"]`)
89
+ if (contentWrap) {
90
+ contentWrap.parentNode.removeChild(contentWrap)
91
+ }
92
+ }
93
+ }
94
+ }
95
+ </script>