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,72 +1,72 @@
1
- import forEachs from './forEachs'
2
-
3
- const name = process.env.VUE_APP_RelaAppNo || process.env.VUE_APP_NAME
4
-
5
- let relaObj = {
6
- appNo: name,
7
- relaNos: []
8
- }
9
-
10
- export function getRela() {
11
- return relaObj
12
- }
13
-
14
- export function setRela() {
15
- let relaNosStr = sessionStorage.getItem('relaNos')
16
- if (relaNosStr) {
17
- let relaNos = JSON.parse(relaNosStr)
18
- Object.assign(
19
- relaObj,
20
- relaNos.find((r) => r.appNo === name)
21
- )
22
- console.log(relaObj, 'has权限列表')
23
-
24
- relaObj.relaNosGlobal = relaNos.map((item) => item.relaNos).flat()
25
- return
26
- }
27
- /* 兼容旧门户 */
28
- let resourcesStr = sessionStorage.getItem('resources')
29
- if (resourcesStr) {
30
- let resources = JSON.parse(resourcesStr)
31
- let relaNos = []
32
- forEachs(resources, (item) => {
33
- relaNos.push(item.relaNo)
34
- })
35
- relaObj.relaNos = relaNos
36
- relaObj.relaNosGlobal = relaNos
37
- }
38
- }
39
-
40
- let cltrelaNos = undefined
41
- export function getCltRela(clt) {
42
- /* 获取全部单位权限 */
43
- if (!cltrelaNos) {
44
- let cltrelaNosStr = sessionStorage.getItem('cltrelaNos')
45
- if (cltrelaNosStr) {
46
- cltrelaNos = JSON.parse(cltrelaNosStr)
47
- } else {
48
- cltrelaNos = {}
49
- }
50
- }
51
-
52
- if (Array.isArray(clt)) {
53
- let clts = clt
54
- let cltI = clts[0]
55
- let cltRela = cltrelaNos[cltI]
56
-
57
- for (let i = 1; i < clt.length; i++) {
58
- cltRela = aandb(cltRela, cltrelaNos[clts[i]])
59
- }
60
- return cltRela || []
61
- } else {
62
- return cltrelaNos[clt] || []
63
- }
64
- }
65
-
66
- function aandb(a = [], b = []) {
67
- if (a.length === 0 || b.length === 0) {
68
- return []
69
- } else {
70
- return a.filter((ai) => b.includes(ai))
71
- }
72
- }
1
+ import forEachs from './forEachs'
2
+
3
+ const name = process.env.VUE_APP_RelaAppNo || process.env.VUE_APP_NAME
4
+
5
+ let relaObj = {
6
+ appNo: name,
7
+ relaNos: []
8
+ }
9
+
10
+ export function getRela() {
11
+ return relaObj
12
+ }
13
+
14
+ export function setRela() {
15
+ let relaNosStr = sessionStorage.getItem('relaNos')
16
+ if (relaNosStr) {
17
+ let relaNos = JSON.parse(relaNosStr)
18
+ Object.assign(
19
+ relaObj,
20
+ relaNos.find((r) => r.appNo === name)
21
+ )
22
+ console.log(relaObj, 'has权限列表')
23
+
24
+ relaObj.relaNosGlobal = relaNos.map((item) => item.relaNos).flat()
25
+ return
26
+ }
27
+ /* 兼容旧门户 */
28
+ let resourcesStr = sessionStorage.getItem('resources')
29
+ if (resourcesStr) {
30
+ let resources = JSON.parse(resourcesStr)
31
+ let relaNos = []
32
+ forEachs(resources, (item) => {
33
+ relaNos.push(item.relaNo)
34
+ })
35
+ relaObj.relaNos = relaNos
36
+ relaObj.relaNosGlobal = relaNos
37
+ }
38
+ }
39
+
40
+ let cltrelaNos = undefined
41
+ export function getCltRela(clt) {
42
+ /* 获取全部单位权限 */
43
+ if (!cltrelaNos) {
44
+ let cltrelaNosStr = sessionStorage.getItem('cltrelaNos')
45
+ if (cltrelaNosStr) {
46
+ cltrelaNos = JSON.parse(cltrelaNosStr)
47
+ } else {
48
+ cltrelaNos = {}
49
+ }
50
+ }
51
+
52
+ if (Array.isArray(clt)) {
53
+ let clts = clt
54
+ let cltI = clts[0]
55
+ let cltRela = cltrelaNos[cltI]
56
+
57
+ for (let i = 1; i < clt.length; i++) {
58
+ cltRela = aandb(cltRela, cltrelaNos[clts[i]])
59
+ }
60
+ return cltRela || []
61
+ } else {
62
+ return cltrelaNos[clt] || []
63
+ }
64
+ }
65
+
66
+ function aandb(a = [], b = []) {
67
+ if (a.length === 0 || b.length === 0) {
68
+ return []
69
+ } else {
70
+ return a.filter((ai) => b.includes(ai))
71
+ }
72
+ }
@@ -1,95 +1,95 @@
1
- /* 对ElementUI硬优化 */
2
- import Popper from 'element-ui/lib/utils/popper.js'
3
-
4
- function setPropsDefault(component, props) {
5
- let c_props = component.props
6
- Object.keys(props).forEach((key) => {
7
- c_props[key] = Object.assign({}, c_props[key], props[key])
8
- })
9
- }
10
- function setMethodsDefault(component, methods) {
11
- let c_methods = component.methods
12
- Object.keys(methods).forEach((key) => {
13
- c_methods[key] = methods[key]
14
- })
15
- }
16
-
17
- function repairPopper() {
18
- if (!Popper.prototype.repairR) {
19
- Popper.prototype.repairR = true
20
-
21
- let __getBoundaries = Popper.prototype._getBoundaries
22
- Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {
23
- const boundaries = __getBoundaries.call(this, data, padding, boundariesElement)
24
-
25
- if (this._options.boundariesElement === 'viewport') {
26
- const root = window
27
- const body = root.document.body
28
- const html = root.document.documentElement
29
- let width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth)
30
- let height = Math.max(
31
- body.scrollHeight,
32
- body.offsetHeight,
33
- html.clientHeight,
34
- html.scrollHeight,
35
- html.offsetHeight
36
- )
37
-
38
- boundaries.right = boundaries.right - root.document.documentElement.clientWidth + width
39
- boundaries.bottom = boundaries.bottom - root.document.documentElement.clientHeight + height
40
- }
41
- return boundaries
42
- }
43
- }
44
- }
45
-
46
- export default function (ElementUI) {
47
- repairPopper()
48
-
49
- // setPropsDefault(ElementUI.Table, {
50
- // tooltipEffect: {
51
- // default: 'light'
52
- // }
53
- // })
54
-
55
- setPropsDefault(ElementUI.TableColumn, {
56
- filterPlacement: {
57
- default: 'bottom'
58
- }
59
- })
60
-
61
- setPropsDefault(ElementUI.Dropdown, {
62
- placement: {
63
- default: 'bottom'
64
- }
65
- })
66
-
67
- setPropsDefault(ElementUI.Dialog, {
68
- appendToBody: {
69
- default: true
70
- }
71
- })
72
-
73
- setMethodsDefault(ElementUI.TableColumn, {
74
- setColumnWidth(column) {
75
- if (this.realWidth) {
76
- column.width = this.realWidth
77
- }
78
- if (this.realMinWidth) {
79
- column.minWidth = this.realMinWidth
80
- }
81
- if (!column.minWidth) {
82
- if (!column.width) {
83
- let label = column.label || ''
84
- let sortable = column.sortable ? 24 : 0
85
- let filters = column.filters ? 16 : 0
86
- column.minWidth = Math.max(80, label.length * 14 + 22 + sortable + filters)
87
- } else {
88
- column.minWidth = 80
89
- }
90
- }
91
- column.realWidth = column.width === undefined ? column.minWidth : column.width
92
- return column
93
- }
94
- })
95
- }
1
+ /* 对ElementUI硬优化 */
2
+ import Popper from 'element-ui/lib/utils/popper.js'
3
+
4
+ function setPropsDefault(component, props) {
5
+ let c_props = component.props
6
+ Object.keys(props).forEach((key) => {
7
+ c_props[key] = Object.assign({}, c_props[key], props[key])
8
+ })
9
+ }
10
+ function setMethodsDefault(component, methods) {
11
+ let c_methods = component.methods
12
+ Object.keys(methods).forEach((key) => {
13
+ c_methods[key] = methods[key]
14
+ })
15
+ }
16
+
17
+ function repairPopper() {
18
+ if (!Popper.prototype.repairR) {
19
+ Popper.prototype.repairR = true
20
+
21
+ let __getBoundaries = Popper.prototype._getBoundaries
22
+ Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {
23
+ const boundaries = __getBoundaries.call(this, data, padding, boundariesElement)
24
+
25
+ if (this._options.boundariesElement === 'viewport') {
26
+ const root = window
27
+ const body = root.document.body
28
+ const html = root.document.documentElement
29
+ let width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth)
30
+ let height = Math.max(
31
+ body.scrollHeight,
32
+ body.offsetHeight,
33
+ html.clientHeight,
34
+ html.scrollHeight,
35
+ html.offsetHeight
36
+ )
37
+
38
+ boundaries.right = boundaries.right - root.document.documentElement.clientWidth + width
39
+ boundaries.bottom = boundaries.bottom - root.document.documentElement.clientHeight + height
40
+ }
41
+ return boundaries
42
+ }
43
+ }
44
+ }
45
+
46
+ export default function (ElementUI) {
47
+ repairPopper()
48
+
49
+ // setPropsDefault(ElementUI.Table, {
50
+ // tooltipEffect: {
51
+ // default: 'light'
52
+ // }
53
+ // })
54
+
55
+ setPropsDefault(ElementUI.TableColumn, {
56
+ filterPlacement: {
57
+ default: 'bottom'
58
+ }
59
+ })
60
+
61
+ setPropsDefault(ElementUI.Dropdown, {
62
+ placement: {
63
+ default: 'bottom'
64
+ }
65
+ })
66
+
67
+ setPropsDefault(ElementUI.Dialog, {
68
+ appendToBody: {
69
+ default: true
70
+ }
71
+ })
72
+
73
+ setMethodsDefault(ElementUI.TableColumn, {
74
+ setColumnWidth(column) {
75
+ if (this.realWidth) {
76
+ column.width = this.realWidth
77
+ }
78
+ if (this.realMinWidth) {
79
+ column.minWidth = this.realMinWidth
80
+ }
81
+ if (!column.minWidth) {
82
+ if (!column.width) {
83
+ let label = column.label || ''
84
+ let sortable = column.sortable ? 24 : 0
85
+ let filters = column.filters ? 16 : 0
86
+ column.minWidth = Math.max(80, label.length * 14 + 22 + sortable + filters)
87
+ } else {
88
+ column.minWidth = 80
89
+ }
90
+ }
91
+ column.realWidth = column.width === undefined ? column.minWidth : column.width
92
+ return column
93
+ }
94
+ })
95
+ }
@@ -1,82 +1,82 @@
1
- function encode(val) {
2
- return encodeURIComponent(val)
3
- .replace(/%3A/gi, ':')
4
- .replace(/%24/g, '$')
5
- .replace(/%2C/gi, ',')
6
- .replace(/%20/g, '+')
7
- .replace(/%5B/gi, '[')
8
- .replace(/%5D/gi, ']')
9
- }
10
- function isDate(val) {
11
- return toString.call(val) === '[object Date]'
12
- }
13
- function isObject(val) {
14
- return val !== null && typeof val === 'object'
15
- }
16
-
17
- function buildURL(url, params) {
18
- if (!params) {
19
- return url
20
- }
21
-
22
- let parts = []
23
- Object.entries(params).forEach(([key, val]) => {
24
- if (val === null || typeof val === 'undefined') {
25
- return
26
- }
27
-
28
- if (Array.isArray(val)) {
29
- key = key + '[]'
30
- } else {
31
- val = [val]
32
- }
33
-
34
- val.forEach((v) => {
35
- if (isDate(v)) {
36
- v = v.toISOString()
37
- } else if (isObject(v)) {
38
- v = JSON.stringify(v)
39
- }
40
- parts.push(encode(key) + '=' + encode(v))
41
- })
42
- })
43
-
44
- let serializedParams = parts.join('&')
45
-
46
- if (serializedParams) {
47
- let hashmarkIndex = url.indexOf('#')
48
- if (hashmarkIndex !== -1) {
49
- url = url.slice(0, hashmarkIndex)
50
- }
51
-
52
- url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
53
- }
54
-
55
- return url
56
- }
57
-
58
- export function linkPush(url, params = {}) {
59
- params._fromNo = Date.now()
60
- sessionStorage.setItem(params._fromNo, location.href)
61
-
62
- url = buildURL(url, params)
63
- history.pushState(null, null, url)
64
- }
65
-
66
- export function linkGo() {
67
- let _fromUrl
68
- const search = window.location.search
69
- let _fromRe = search.includes('_fromNo=') ? /_fromNo=(\d+)/ : /_fromId=(\d+)/
70
- let _fromM = search.match(_fromRe)
71
- if (_fromM?.[1]) {
72
- _fromUrl = sessionStorage.getItem(_fromM[1])
73
- }
74
-
75
- if (_fromUrl) {
76
- // window.history.go(-1)
77
- // window.history.replaceState(null, null, _fromUrl)
78
- history.pushState(null, null, _fromUrl)
79
- } else {
80
- window.history.go(-1)
81
- }
82
- }
1
+ function encode(val) {
2
+ return encodeURIComponent(val)
3
+ .replace(/%3A/gi, ':')
4
+ .replace(/%24/g, '$')
5
+ .replace(/%2C/gi, ',')
6
+ .replace(/%20/g, '+')
7
+ .replace(/%5B/gi, '[')
8
+ .replace(/%5D/gi, ']')
9
+ }
10
+ function isDate(val) {
11
+ return toString.call(val) === '[object Date]'
12
+ }
13
+ function isObject(val) {
14
+ return val !== null && typeof val === 'object'
15
+ }
16
+
17
+ function buildURL(url, params) {
18
+ if (!params) {
19
+ return url
20
+ }
21
+
22
+ let parts = []
23
+ Object.entries(params).forEach(([key, val]) => {
24
+ if (val === null || typeof val === 'undefined') {
25
+ return
26
+ }
27
+
28
+ if (Array.isArray(val)) {
29
+ key = key + '[]'
30
+ } else {
31
+ val = [val]
32
+ }
33
+
34
+ val.forEach((v) => {
35
+ if (isDate(v)) {
36
+ v = v.toISOString()
37
+ } else if (isObject(v)) {
38
+ v = JSON.stringify(v)
39
+ }
40
+ parts.push(encode(key) + '=' + encode(v))
41
+ })
42
+ })
43
+
44
+ let serializedParams = parts.join('&')
45
+
46
+ if (serializedParams) {
47
+ let hashmarkIndex = url.indexOf('#')
48
+ if (hashmarkIndex !== -1) {
49
+ url = url.slice(0, hashmarkIndex)
50
+ }
51
+
52
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
53
+ }
54
+
55
+ return url
56
+ }
57
+
58
+ export function linkPush(url, params = {}) {
59
+ params._fromNo = Date.now()
60
+ sessionStorage.setItem(params._fromNo, location.href)
61
+
62
+ url = buildURL(url, params)
63
+ history.pushState(null, null, url)
64
+ }
65
+
66
+ export function linkGo() {
67
+ let _fromUrl
68
+ const search = window.location.search
69
+ let _fromRe = search.includes('_fromNo=') ? /_fromNo=(\d+)/ : /_fromId=(\d+)/
70
+ let _fromM = search.match(_fromRe)
71
+ if (_fromM?.[1]) {
72
+ _fromUrl = sessionStorage.getItem(_fromM[1])
73
+ }
74
+
75
+ if (_fromUrl) {
76
+ // window.history.go(-1)
77
+ // window.history.replaceState(null, null, _fromUrl)
78
+ history.pushState(null, null, _fromUrl)
79
+ } else {
80
+ window.history.go(-1)
81
+ }
82
+ }