@lambo-design/shared 1.0.0-beta.33 → 1.0.0-beta.331

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 (241) hide show
  1. package/config/config.js +20 -3
  2. package/config/index.js +7 -2
  3. package/config/locale.js +61 -0
  4. package/config/themes/atrovirens/atrovirens.css +589 -0
  5. package/config/themes/atrovirens/atrovirens.css.map +1 -0
  6. package/config/themes/atrovirens/atrovirens.less +680 -0
  7. package/config/themes/atrovirens/var.less +688 -0
  8. package/config/themes/blue/blue.css +589 -0
  9. package/config/themes/blue/blue.css.map +1 -0
  10. package/config/themes/blue/blue.less +683 -0
  11. package/config/themes/blue/var.less +691 -0
  12. package/config/themes/blue-digital/blue-digital.css +589 -0
  13. package/config/themes/blue-digital/blue-digital.css.map +1 -0
  14. package/config/themes/blue-digital/blue-digital.less +683 -0
  15. package/config/themes/blue-digital/var.less +691 -0
  16. package/config/themes/blue-white/blue-white.css +589 -0
  17. package/config/themes/blue-white/blue-white.css.map +1 -0
  18. package/config/themes/blue-white/blue-white.less +684 -0
  19. package/config/themes/blue-white/var.less +690 -0
  20. package/config/themes/blue-white-big/blue-white-big.css +589 -0
  21. package/config/themes/blue-white-big/blue-white-big.css.map +1 -0
  22. package/config/themes/blue-white-big/blue-white-big.less +684 -0
  23. package/config/themes/blue-white-big/var.less +690 -0
  24. package/config/themes/blue-white-tight/blue-white-tight.css +590 -0
  25. package/config/themes/blue-white-tight/blue-white-tight.css.map +1 -0
  26. package/config/themes/blue-white-tight/blue-white-tight.less +684 -0
  27. package/config/themes/blue-white-tight/var.less +692 -0
  28. package/config/themes/canglan/canglan.css +588 -0
  29. package/config/themes/canglan/canglan.css.map +1 -0
  30. package/config/themes/canglan/canglan.less +681 -0
  31. package/config/themes/canglan/var.less +692 -0
  32. package/config/themes/cuiwei/cuiwei.css +589 -0
  33. package/config/themes/cuiwei/cuiwei.css.map +1 -0
  34. package/config/themes/cuiwei/cuiwei.less +681 -0
  35. package/config/themes/cuiwei/var.less +690 -0
  36. package/config/themes/danqing/danqing.css +578 -0
  37. package/config/themes/danqing/danqing.css.map +1 -0
  38. package/config/themes/danqing/danqing.less +681 -0
  39. package/config/themes/danqing/danqing.wxss +576 -0
  40. package/config/themes/danqing/var.less +695 -0
  41. package/config/themes/deep/deep.css +589 -0
  42. package/config/themes/deep/deep.css.map +1 -0
  43. package/config/themes/deep/deep.less +681 -0
  44. package/config/themes/deep/var.less +693 -0
  45. package/config/themes/default/default.css +403 -57
  46. package/config/themes/default/default.css.map +1 -1
  47. package/config/themes/default/default.less +380 -16
  48. package/config/themes/default/var.less +389 -11
  49. package/config/themes/eap/eap.css +589 -0
  50. package/config/themes/eap/eap.css.map +1 -0
  51. package/config/themes/eap/eap.less +684 -0
  52. package/config/themes/eap/var.less +692 -0
  53. package/config/themes/gold/gold.css +589 -0
  54. package/config/themes/gold/gold.css.map +1 -0
  55. package/config/themes/gold/gold.less +684 -0
  56. package/config/themes/gold/var.less +385 -5
  57. package/config/themes/index.js +28 -4
  58. package/config/themes/lime/lime.css +589 -0
  59. package/config/themes/lime/lime.css.map +1 -0
  60. package/config/themes/lime/lime.less +684 -0
  61. package/config/themes/lime/var.less +384 -5
  62. package/config/themes/orange/orange.css +353 -7
  63. package/config/themes/orange/orange.css.map +1 -1
  64. package/config/themes/orange/orange.less +365 -0
  65. package/config/themes/orange/var.less +385 -5
  66. package/config/themes/red/red.css +353 -7
  67. package/config/themes/red/red.css.map +1 -1
  68. package/config/themes/red/red.less +365 -0
  69. package/config/themes/red/var.less +385 -5
  70. package/config/themes/sichuan/sichuan.css +589 -0
  71. package/config/themes/sichuan/sichuan.css.map +1 -0
  72. package/config/themes/sichuan/sichuan.less +684 -0
  73. package/config/themes/sichuan/var.less +690 -0
  74. package/config/themes/theme-atrovirens.js +571 -0
  75. package/config/themes/theme-bd.js +571 -0
  76. package/config/themes/theme-blue.js +571 -0
  77. package/config/themes/theme-bw.js +571 -0
  78. package/config/themes/theme-bwb.js +571 -0
  79. package/config/themes/theme-bwt.js +572 -0
  80. package/config/themes/theme-canglan.js +573 -0
  81. package/config/themes/theme-cuiwei.js +573 -0
  82. package/config/themes/theme-danqing.js +574 -0
  83. package/config/themes/theme-deep.js +571 -0
  84. package/config/themes/theme-default.js +378 -60
  85. package/config/themes/theme-eap.js +571 -0
  86. package/config/themes/theme-gold.js +326 -8
  87. package/config/themes/theme-lime.js +326 -8
  88. package/config/themes/theme-orange.js +560 -29
  89. package/config/themes/theme-red.js +563 -33
  90. package/config/themes/theme-sichuan.js +571 -0
  91. package/config/themes/theme-white.js +571 -0
  92. package/config/themes/white/var.less +691 -0
  93. package/config/themes/white/white.css +589 -0
  94. package/config/themes/white/white.css.map +1 -0
  95. package/config/themes/white/white.less +684 -0
  96. package/directives/module/print.js +1 -0
  97. package/directives/module/vue-print-nb/README.md +63 -0
  98. package/directives/module/vue-print-nb/print.js +94 -0
  99. package/directives/module/vue-print-nb/printarea.js +532 -0
  100. package/index.js +7 -1
  101. package/nstyles/common.less +197 -0
  102. package/nstyles/components/404.less +46 -0
  103. package/nstyles/components/button.less +34 -0
  104. package/nstyles/components/date-picker.less +41 -0
  105. package/nstyles/components/drawer.less +20 -0
  106. package/nstyles/components/dropdown.less +18 -0
  107. package/nstyles/components/excel-flow.less +72 -0
  108. package/nstyles/components/form.less +314 -0
  109. package/nstyles/components/index.less +23 -0
  110. package/nstyles/components/layout/collect.less +10 -0
  111. package/nstyles/components/layout/detail-view.less +107 -0
  112. package/nstyles/components/layout/full-screen.less +7 -0
  113. package/nstyles/components/layout/index.less +7 -0
  114. package/nstyles/components/layout/other-menu.less +142 -0
  115. package/nstyles/components/layout/page-view.less +101 -0
  116. package/nstyles/components/layout/sider-trigger.less +41 -0
  117. package/nstyles/components/layout/tags-nav.less +113 -0
  118. package/nstyles/components/modal.less +90 -0
  119. package/nstyles/components/n-button.less +131 -0
  120. package/nstyles/components/n-image-preview.less +131 -0
  121. package/nstyles/components/n-model/index.less +19 -0
  122. package/nstyles/components/n-model/report-index.less +43 -0
  123. package/nstyles/components/n-panel.less +41 -0
  124. package/nstyles/components/n-picker.less +37 -0
  125. package/nstyles/components/n-sign.less +17 -0
  126. package/nstyles/components/n-tooltip.less +10 -0
  127. package/nstyles/components/panel.less +31 -0
  128. package/nstyles/components/select.less +3 -0
  129. package/nstyles/components/sign.less +27 -0
  130. package/nstyles/components/table.less +413 -0
  131. package/nstyles/components/tree.less +166 -0
  132. package/nstyles/components/upload.less +174 -0
  133. package/nstyles/index.less +5 -0
  134. package/nstyles/reset.less +73 -0
  135. package/nstyles/third/ag.less +226 -0
  136. package/nstyles/third/icons/sort-desc.svg +1 -0
  137. package/nstyles/third/icons/sort-up.svg +1 -0
  138. package/nstyles/third/icons/sorting.svg +1 -0
  139. package/nstyles/third/index.less +11 -0
  140. package/nstyles/third/view-design.less +378 -0
  141. package/nstyles/variables/base.less +143 -0
  142. package/nstyles/variables/index.less +4 -0
  143. package/nstyles/variables/theme/default/button.less +7 -0
  144. package/nstyles/variables/theme/default/common.less +60 -0
  145. package/nstyles/variables/theme/default/index.less +7 -0
  146. package/nstyles/variables/theme/default/layout.less +40 -0
  147. package/nstyles/variables/theme/default/table.less +37 -0
  148. package/nstyles/variables/theme/default/tag.less +3 -0
  149. package/nstyles/variables/theme/default/upload.less +3 -0
  150. package/nstyles/variables/theme/index.less +13 -0
  151. package/nstyles/variables/theme/lsv/button.less +7 -0
  152. package/nstyles/variables/theme/lsv/common.less +39 -0
  153. package/nstyles/variables/theme/lsv/index.less +5 -0
  154. package/nstyles/variables/theme/lsv/layout.less +21 -0
  155. package/nstyles/variables/theme/lsv/table.less +20 -0
  156. package/nstyles/variables/theme/lsv/tag.less +3 -0
  157. package/nstyles/variables/theme/small/button.less +7 -0
  158. package/nstyles/variables/theme/small/common.less +41 -0
  159. package/nstyles/variables/theme/small/index.less +5 -0
  160. package/nstyles/variables/theme/small/layout.less +21 -0
  161. package/nstyles/variables/theme/small/table.less +17 -0
  162. package/nstyles/variables/theme/small/tag.less +3 -0
  163. package/package.json +28 -7
  164. package/plugin/index.js +12 -0
  165. package/plugin/module/date-format.js +30 -0
  166. package/plugin/module/loading.js +26 -0
  167. package/plugin/module/warn-handler.js +11 -0
  168. package/styles/image/indicator-card-header.png +0 -0
  169. package/styles/image/inspur.png +0 -0
  170. package/styles/image/lan_navigator.png +0 -0
  171. package/styles/image/layout-header-bg-canglan.png +0 -0
  172. package/styles/image/layout-header-bg-cuiwei.png +0 -0
  173. package/styles/image/lv_navigator.png +0 -0
  174. package/utils/ajax/abort-controller.js +70 -0
  175. package/utils/ajax/cancel-reason.js +25 -0
  176. package/utils/ajax/cancel-token.js +83 -0
  177. package/utils/ajax/content-type.js +30 -0
  178. package/utils/ajax/headers.js +11 -0
  179. package/utils/ajax/interceptors.js +45 -10
  180. package/utils/ajax/sseFetchUtil.js +118 -0
  181. package/utils/ajax/throttle.js +49 -0
  182. package/utils/assist.js +155 -27
  183. package/utils/base64.js +126 -0
  184. package/utils/blob.js +47 -0
  185. package/utils/context-menu.js +65 -0
  186. package/utils/crypto/aes.js +23 -0
  187. package/utils/crypto/index.js +10 -0
  188. package/utils/crypto/rsa.js +23 -0
  189. package/utils/date.js +334 -305
  190. package/utils/dict/built-in-dict.js +20 -0
  191. package/utils/dict/index.js +191 -0
  192. package/utils/event.js +72 -0
  193. package/utils/excel.js +502 -290
  194. package/utils/file.js +19 -0
  195. package/utils/form/validate.js +29 -0
  196. package/utils/half-year.js +68 -0
  197. package/utils/index.js +37 -0
  198. package/utils/json.js +44 -0
  199. package/utils/locale/en-US.js +175 -0
  200. package/utils/locale/zh-CN.js +175 -0
  201. package/utils/lodop.js +5 -0
  202. package/utils/menu/index.js +292 -15
  203. package/utils/mime_type.js +67 -0
  204. package/utils/modelerUtil.js +4 -1
  205. package/utils/n/api.js +38 -0
  206. package/utils/n/date.js +57 -0
  207. package/utils/n/index.js +10 -0
  208. package/utils/n/is-type.js +176 -0
  209. package/utils/n/number.js +144 -0
  210. package/utils/n/permission-cache.js +11 -0
  211. package/utils/n/reuqest/axiosN.js +17 -0
  212. package/utils/n/reuqest/content-type.js +19 -0
  213. package/utils/n/reuqest/interceptors.js +95 -0
  214. package/utils/n/reuqest/url-params.js +12 -0
  215. package/utils/n/storage.js +51 -0
  216. package/utils/n/token.js +51 -0
  217. package/utils/n/user-cache.js +11 -0
  218. package/utils/n/user.js +34 -0
  219. package/utils/n/uuid.js +16 -0
  220. package/utils/n-generator-routers.js +208 -0
  221. package/utils/n-router.js +205 -0
  222. package/utils/n-theme.js +30 -0
  223. package/utils/number.js +72 -15
  224. package/utils/oss.js +57 -0
  225. package/utils/platform.js +824 -33
  226. package/utils/quarter.js +58 -0
  227. package/utils/storage.js +198 -0
  228. package/utils/style.js +24 -0
  229. package/utils/theme.js +98 -3
  230. package/utils/transfer-queue.js +7 -0
  231. package/utils/transform.js +205 -0
  232. package/utils/type.js +102 -0
  233. package/utils/util.js +795 -0
  234. package/utils/vForm.js +349 -0
  235. package/utils/validator.js +181 -0
  236. package/config/themes/gold/default.css +0 -243
  237. package/config/themes/gold/default.css.map +0 -1
  238. package/config/themes/gold/default.less +0 -320
  239. package/config/themes/lime/default.css +0 -243
  240. package/config/themes/lime/default.css.map +0 -1
  241. package/config/themes/lime/default.less +0 -320
package/utils/platform.js CHANGED
@@ -1,8 +1,47 @@
1
- import Bus from './bus';
1
+ import {deepCopy} from './assist';
2
+ import _ from 'lodash';
3
+ import config from "../config/config";
4
+ import systemLogo from '../styles/image/inspur.png';
5
+ import {changeByThemeKey, changeThemeByThemeId} from "./theme";
6
+ import ajax from "./ajax";
7
+ import qs from 'qs'
8
+ import {disableRightClick} from "./context-menu";
2
9
 
3
- export const TOKEN_KEY = 'v8-token'
10
+ export let TOKEN_KEY = "lambo-token"
4
11
 
5
- export const COOKIE_KEY = 'lambo-sso-key'
12
+ export let getTokenKey = function () {
13
+ if (config.tokenKey) {
14
+ return config.tokenKey
15
+ }
16
+ return "lambo-token"
17
+ }
18
+
19
+ export let COOKIE_KEY = "lambo-sso-key"
20
+
21
+ export let getCookieKey = function () {
22
+ if (config.cookieKey) {
23
+ return config.cookieKey
24
+ }
25
+ return "lambo-sso-key"
26
+ }
27
+
28
+ export let SSO_TOKEN_KEY = "lambo-sso-token"
29
+
30
+ export let getSsoTokenKey = function () {
31
+ if (config.ssoTokenKey) {
32
+ return config.ssoTokenKey
33
+ }
34
+ return "lambo-sso-token"
35
+ }
36
+
37
+ export let PASSWORD_EXPIRED_KEY = "lambo-password-expired-time"
38
+
39
+ export let getPasswordExpiredKey = function () {
40
+ if (config.passwordExpiredKey) {
41
+ return config.passwordExpiredKey
42
+ }
43
+ return "lambo-password-expired-time"
44
+ }
6
45
 
7
46
  export function objEqual(obj1, obj2) {
8
47
  const keysArr1 = Object.keys(obj1)
@@ -13,6 +52,10 @@ export function objEqual(obj1, obj2) {
13
52
  else return !keysArr1.some(key => obj1[key] !== obj2[key])
14
53
  }
15
54
 
55
+ export function arraysEqual(a, b) {
56
+ return _.isEqual(a,b)
57
+ }
58
+
16
59
  /**
17
60
  * @param {Array} list 标签列表
18
61
  * @param {String} name 当前关闭的标签的name
@@ -31,47 +74,47 @@ export function getNextRoute(list, route) {
31
74
 
32
75
 
33
76
  export const setToken = (token) => {
34
- sessionStorage.setItem(TOKEN_KEY, token)
77
+ typeof sessionStorage != 'undefined' && sessionStorage.setItem(getTokenKey(), token)
35
78
  }
36
79
 
37
80
  export const getToken = () => {
38
- const token = sessionStorage.getItem(TOKEN_KEY)
81
+ const token = typeof sessionStorage != 'undefined' && sessionStorage.getItem(getTokenKey())
39
82
  if (token) return token
40
83
  else return false
41
84
  }
42
85
 
43
86
  export const setSessionStorage = (key, value) => {
44
- sessionStorage.setItem(key, JSON.stringify(value))
87
+ typeof sessionStorage != 'undefined' && sessionStorage.setItem(key, JSON.stringify(value))
45
88
  }
46
89
 
47
90
  export const getSessionStorage = (key) => {
48
- const value = sessionStorage.getItem(key)
91
+ const value = typeof sessionStorage != 'undefined' && sessionStorage.getItem(key)
49
92
  if (value) return JSON.parse(value)
50
93
  else return null
51
94
  }
52
95
 
53
96
  export const removeSessionStorage = (key) => {
54
- return sessionStorage.removeItem(key)
97
+ return typeof sessionStorage != 'undefined' && sessionStorage.removeItem(key)
55
98
  }
56
99
 
57
100
  export const clearSessionStorage = () => {
58
- return sessionStorage.clear()
101
+ return typeof sessionStorage != 'undefined' && sessionStorage.clear()
59
102
  }
60
103
 
61
104
  export const setLocalStorage = (key, localstorage) => {
62
- localStorage.setItem(key, localstorage)
105
+ typeof localStorage != 'undefined' &&localStorage.setItem(key, localstorage)
63
106
  }
64
107
 
65
108
  export const getLocalStorage = (key) => {
66
- return localStorage.getItem(key)
109
+ return typeof localStorage != 'undefined' &&localStorage.getItem(key)
67
110
  }
68
111
 
69
112
  export const removeLocalStorage = (key) => {
70
- return localStorage.removeItem(key)
113
+ return typeof localStorage != 'undefined' &&localStorage.removeItem(key)
71
114
  }
72
115
 
73
116
  export const clearLocalStorage = () => {
74
- return localStorage.clear()
117
+ return typeof localStorage != 'undefined' &&localStorage.clear()
75
118
  }
76
119
 
77
120
  export const hasChild = (item) => {
@@ -315,6 +358,12 @@ export const getTableDataFromArray = (array) => {
315
358
  }
316
359
  }
317
360
 
361
+ /**
362
+ * 寻找上级节点
363
+ * @param ele
364
+ * @param tag
365
+ * @returns {*}
366
+ */
318
367
  export const findNodeUpper = (ele, tag) => {
319
368
  if (ele.parentNode) {
320
369
  if (ele.parentNode.tagName === tag.toUpperCase()) {
@@ -325,6 +374,12 @@ export const findNodeUpper = (ele, tag) => {
325
374
  }
326
375
  }
327
376
 
377
+ /**
378
+ * 根据class寻找上级节点
379
+ * @param ele
380
+ * @param classes
381
+ * @returns {*}
382
+ */
328
383
  export const findNodeUpperByClasses = (ele, classes) => {
329
384
  let parentNode = ele.parentNode
330
385
  if (parentNode) {
@@ -337,6 +392,12 @@ export const findNodeUpperByClasses = (ele, classes) => {
337
392
  }
338
393
  }
339
394
 
395
+ /**
396
+ * 根据ele寻找下级节点
397
+ * @param ele
398
+ * @param tag
399
+ * @returns {*}
400
+ */
340
401
  export const findNodeDownward = (ele, tag) => {
341
402
  const tagName = tag.toUpperCase()
342
403
  if (ele.childNodes.length) {
@@ -350,6 +411,12 @@ export const findNodeDownward = (ele, tag) => {
350
411
  }
351
412
  }
352
413
 
414
+ /**
415
+ * @description 判断要查询的数组是否至少有一个元素包含在目标数组中
416
+ * @param access 需要查询的数组
417
+ * @param canViewAccess 目标数组
418
+ * @returns {*}
419
+ */
353
420
  export const showByAccess = (access, canViewAccess) => {
354
421
  return hasOneOf(canViewAccess, access)
355
422
  }
@@ -379,16 +446,23 @@ export const routeHasExist = (tagNavList, routeItem) => {
379
446
  return res
380
447
  }
381
448
 
382
- // scrollTop animation
449
+ /**
450
+ * scrollTop animation
451
+ * @param el
452
+ * @param from
453
+ * @param to
454
+ * @param duration
455
+ * @param endCallback
456
+ */
383
457
  export const scrollTop = (el, from = 0, to, duration = 500, endCallback) => {
384
458
  if (!window.requestAnimationFrame) {
385
459
  window.requestAnimationFrame = (
386
- window.webkitRequestAnimationFrame ||
387
- window.mozRequestAnimationFrame ||
388
- window.msRequestAnimationFrame ||
389
- function (callback) {
390
- return window.setTimeout(callback, 1000 / 60)
391
- }
460
+ window.webkitRequestAnimationFrame ||
461
+ window.mozRequestAnimationFrame ||
462
+ window.msRequestAnimationFrame ||
463
+ function (callback) {
464
+ return window.setTimeout(callback, 1000 / 60)
465
+ }
392
466
  )
393
467
  }
394
468
  const difference = Math.abs(from - to)
@@ -428,8 +502,16 @@ export const setTitle = (configTitle,routeItem, vm) => {
428
502
  window.document.title = resTitle
429
503
  }
430
504
 
431
- export const getUrlParams = () => {
432
- const url = location.search; //获取url中"?"符后的字串
505
+ /**
506
+ * 获取浏览器地址url中的参数
507
+ * @param url
508
+ * @returns {Object}
509
+ */
510
+ export const getUrlParams = (url) => {
511
+ if (!url){
512
+ url = location.search;
513
+ }
514
+ //const url = location.search; //获取url中"?"符后的字串
433
515
  const theRequest = new Object();
434
516
  if (url.indexOf("?") != -1) {
435
517
  const str = url.substr(1);
@@ -468,6 +550,80 @@ export const getChangeTableDatas = (oldData, newData) => {
468
550
  return list
469
551
  }
470
552
 
553
+ /**
554
+ * 合并数组并去重
555
+ * @param oldRow
556
+ * @param newRow
557
+ * @param key
558
+ * @returns {*[]}
559
+ */
560
+ export const removeDup = (oldRow,newRow,key) => {
561
+ let resultMap = {};
562
+ for(let o of oldRow){
563
+ resultMap[o[key]] = o;
564
+ }
565
+ for (let n of newRow) {
566
+ resultMap[n[key]] = n;
567
+ }
568
+ let result = []
569
+ for (let row in resultMap) {
570
+ result.push(resultMap[row])
571
+ }
572
+ return result;
573
+ }
574
+ /**
575
+ * 获取数组修改的数据
576
+ * @param oldRow
577
+ * @param newRow
578
+ * @param key
579
+ * @returns {{delList: *[], addList: *[]}}
580
+ */
581
+ export const getChangeData = (oldRow,newRow,key) =>{
582
+ let oldMap = {};
583
+ for(let o of oldRow){
584
+ if (key){
585
+ oldMap[o[key]] = o;
586
+ } else {
587
+ oldMap[o] = o;
588
+ }
589
+ }
590
+ let newMap = {}
591
+ for(let n of newRow){
592
+ if (key){
593
+ newMap[n[key]] = n;
594
+ } else {
595
+ newMap[n] = n;
596
+ }
597
+ }
598
+ let addList = []
599
+ for (let n of newRow) {
600
+ if (key){
601
+ if (!oldMap[n[key]]) {
602
+ addList.push(n);
603
+ }
604
+ } else {
605
+ if (!oldMap[n]) {
606
+ addList.push(n);
607
+ }
608
+ }
609
+ }
610
+ let delList = []
611
+ for (let o of oldRow) {
612
+ if (key){
613
+ if (!newMap[o[key]]) {
614
+ delList.push(o);
615
+ }
616
+ } else {
617
+ if (!newMap[o]) {
618
+ delList.push(o);
619
+ }
620
+ }
621
+ }
622
+ return {
623
+ addList,delList
624
+ }
625
+ }
626
+
471
627
  /**
472
628
  * @param {Array} arr1
473
629
  * @param {Array} arr2
@@ -502,6 +658,11 @@ const hasOneOf = (targetarr, arr) => {
502
658
  return targetarr.some(_ => arr.indexOf(_) > -1)
503
659
  }
504
660
 
661
+ /**
662
+ * foreach
663
+ * @param arr
664
+ * @param fn 回调函数,参数接收arr的元素,索引,arr本身
665
+ */
505
666
  const forEach = (arr, fn) => {
506
667
  if (!arr.length || !fn) return
507
668
  let i = -1
@@ -525,9 +686,17 @@ export function oneOf (value, validList) {
525
686
  return false
526
687
  }
527
688
 
689
+ /**
690
+ * recursionKeyFindItem
691
+ * @param arr
692
+ * @param filterKey
693
+ * @param filterValue
694
+ * @param recursionKey
695
+ * @returns {*|null}
696
+ */
528
697
  export const recursionKeyFindItem = (arr, filterKey, filterValue, recursionKey) => {
529
698
  for (const item of arr) {
530
- if (item[filterKey] && item[filterKey] == filterValue) {
699
+ if (item[filterKey] && item[filterKey] == filterValue && item['type'] == 2) {
531
700
  return item;
532
701
  }
533
702
  let result = null;
@@ -541,18 +710,344 @@ export const recursionKeyFindItem = (arr, filterKey, filterValue, recursionKey)
541
710
  return null;
542
711
  };
543
712
 
713
+ /**
714
+ * filterMenuName
715
+ * @param menuList
716
+ * @param name
717
+ * @returns {*|null}
718
+ */
544
719
  export const filterMenuName = (menuList, name) => {
545
720
  return recursionKeyFindItem(menuList, 'name', name, 'children')
546
721
  };
547
722
 
723
+ /**
724
+ * filterMenuUri
725
+ * @param menuList
726
+ * @param name
727
+ * @returns {*|null}
728
+ */
548
729
  export const filterMenuUri = (menuList, name) => {
549
730
  return recursionKeyFindItem(menuList, 'uri', name, 'children')
550
731
  };
551
732
 
733
+ /**
734
+ * tagExists
735
+ * @param taglist
736
+ * @param name
737
+ * @returns {boolean}
738
+ */
552
739
  export const tagExists = (taglist, name) => {
553
740
  return taglist && taglist.filter(item => item.name === name).length > 0;
554
741
  };
555
742
 
743
+ /**
744
+ * 判断菜单是否为新窗口打开
745
+ * @param menu
746
+ */
747
+ export const isOpenBlank = (menu) => {
748
+ let extendProps = {}
749
+ if (menu && menu.meta && menu.meta.data && menu.meta.data.extension) {
750
+ extendProps = JSON.parse(menu.meta.data.extension)
751
+ }
752
+ if (menu && menu.extension) {
753
+ extendProps = JSON.parse(menu.extension)
754
+ }
755
+ if (extendProps && extendProps.target_type && extendProps.target_type == 'blank') {
756
+ return true;
757
+ }
758
+ if (extendProps && extendProps.targetType && extendProps.targetType == 'blank') {
759
+ return true;
760
+ }
761
+ return false;
762
+ }
763
+
764
+ /**
765
+ * 判断应用是否为移动应用
766
+ * @param app
767
+ */
768
+ export const isMobileApp = (app) => {
769
+ try{
770
+ let extendProps = {};
771
+ if (app.extendProps) {
772
+ if (typeof app.extendProps == 'string') {
773
+ extendProps = JSON.parse(app.extendProps);
774
+ } else {
775
+ extendProps = app.extendProps;
776
+ }
777
+ }
778
+ if (app.setting) {
779
+ if (typeof app.setting == 'string') {
780
+ extendProps = JSON.parse(app.setting);
781
+ } else {
782
+ extendProps = app.setting;
783
+ }
784
+ }
785
+ if (extendProps && extendProps.is_mobile_app && extendProps.is_mobile_app == '1') {
786
+ return true;
787
+ }
788
+ }catch (e) {
789
+ console.error(e)
790
+ }
791
+ return false;
792
+ }
793
+
794
+ /**
795
+ * 获取pc应用列表
796
+ * @param appList
797
+ * @returns {*[]}
798
+ */
799
+ export const getPCAppList = (appList,filterCenter = false) => {
800
+ let finalList = []
801
+ if(appList) {
802
+ for (let app of appList) {
803
+ if ((!isMobileApp(app) && filterCenter && isCenterApp(app))
804
+ || (!isMobileApp(app) && !filterCenter)) {
805
+ finalList.push(app);
806
+ }
807
+ }
808
+ }
809
+ return finalList;
810
+ }
811
+
812
+ /**
813
+ * 获取移动应用列表
814
+ * @param appList
815
+ * @returns {*[]}
816
+ */
817
+ export const getMobileAppList = (appList,filterCenter= false) => {
818
+ let finalList = []
819
+ if(appList) {
820
+ for (let app of appList) {
821
+ if ((isMobileApp(app) && filterCenter && isCenterApp(app))
822
+ || (isMobileApp(app) && !filterCenter)) {
823
+ finalList.push(app);
824
+ }
825
+ }
826
+ }
827
+ return finalList;
828
+ }
829
+ /**
830
+ * 判断应用是否门户应用
831
+ * @param menu
832
+ */
833
+ export const isCenterApp = (app) => {
834
+ try{
835
+ let extendProps = {};
836
+ if (app.extendProps) {
837
+ if (typeof app.extendProps == 'string') {
838
+ extendProps = JSON.parse(app.extendProps);
839
+ } else {
840
+ extendProps = app.extendProps;
841
+ }
842
+ }
843
+ if (app.setting) {
844
+ if (typeof app.setting == 'string') {
845
+ extendProps = JSON.parse(app.setting);
846
+ } else {
847
+ extendProps = app.setting;
848
+ }
849
+ }
850
+ if (extendProps && extendProps.is_center_app && extendProps.is_center_app == '1') {
851
+ return true;
852
+ }
853
+ }catch (e) {
854
+ console.error(e);
855
+ }
856
+ return false;
857
+ }
858
+
859
+ /**
860
+ * 获取一级菜单作为顶级导航
861
+ * @param permissionList
862
+ * @param appType
863
+ * @returns {*[]}
864
+ */
865
+ export const buildNavListByMenu = (permissionList,appInfo,appType,defaultHideName = '') => {
866
+ let navList = []
867
+ if (permissionList && appInfo && appInfo.appId) {
868
+ let hideNames = [];
869
+ if (defaultHideName && typeof defaultHideName === 'string') {
870
+ hideNames = defaultHideName.split(',').map(name => name.trim());
871
+ }
872
+ let permissions = permissionList.filter(item => item.hasOwnProperty('pid')
873
+ && item.pid == '0' && item.appId == appInfo.appId && !hideNames.includes(item.name))
874
+ for (let per of permissions) {
875
+ if (appType && appType == 'sc') {
876
+ let nav = {
877
+ "data" : deepCopy(per),
878
+ "appInfo" : deepCopy(appInfo),
879
+ "orderNo": per.orders,
880
+ "application": {
881
+ "extendProps": per.extension ? JSON.parse(per.extension) : "",
882
+ "appId": per.permissionId,
883
+ "appBizCode": per.permissionValue,
884
+ "appName": per.title,
885
+ "appDesc": per.description,
886
+ "appUrl": appInfo.basepath,
887
+ "icon": per.icon,
888
+ "appStatus": 1,
889
+ "manageUnitId": "",
890
+ "protocolType": null,
891
+ "grantTypes": null,
892
+ "logoutUrl": null,
893
+ "redirectUrls": null,
894
+ "codeExpiresIn": null,
895
+ "idTokenExpiresIn": null,
896
+ "accessTokenExpiresIn": null,
897
+ "clientId": "",
898
+ "clientSecret": "",
899
+ "isEnableSso": false,
900
+ "isShare": false,
901
+ "referAppId": null,
902
+ "externalId": null,
903
+ "callerAppId": null,
904
+ "orderNo": 1,
905
+ "parentId": null,
906
+ "appType": null,
907
+ "relativeName": null,
908
+ "shortName": null,
909
+ "authType": "1",
910
+ "isLower": null
911
+ },
912
+ "basepath": appInfo.basepath,
913
+ "appId": per.permissionId,
914
+ "icon": per.icon,
915
+ "name": per.name,
916
+ "extendProps": per.extension ? JSON.parse(per.extension) : "",
917
+ "title": per.title,
918
+ "type": "00",
919
+ "status": 1
920
+ }
921
+ navList.push(nav)
922
+ } else {
923
+ let nav = {
924
+ "data" : deepCopy(per),
925
+ "appInfo" : deepCopy(appInfo),
926
+ "id": per.id,
927
+ "appId": per.permissionId,
928
+ "systemId": per.systemId,
929
+ "icon": per.icon,
930
+ "banner": null,
931
+ "theme": null,
932
+ "basepath": appInfo.basepath,
933
+ "status": 1,
934
+ "name": per.name,
935
+ "title": per.title,
936
+ "type": "00",
937
+ "setting": "",
938
+ "description": per.description,
939
+ "orders": per.orders,
940
+ "createTime": 1710772466000,
941
+ "updateTime": 1710772466000
942
+ }
943
+ navList.push(nav)
944
+ }
945
+ }
946
+ }
947
+ return navList;
948
+ }
949
+
950
+ /**
951
+ * 判断是否为子菜单
952
+ * @param permissionList
953
+ * @param pid
954
+ * @param per
955
+ * @returns {boolean|boolean|*}
956
+ */
957
+ export const isChildPermission = (permissionList, pid, per) => {
958
+ if (permissionList && pid && per && per.pid) {
959
+ let res = permissionList.find(item => item.hasOwnProperty('permissionId') && item.permissionId == per.pid)
960
+ if (res && res.permissionId && res.permissionId == pid) {
961
+ return true;
962
+ } else {
963
+ return isChildPermission(permissionList, pid, res)
964
+ }
965
+ }
966
+ return false;
967
+ }
968
+ /**
969
+ * 获取所有子菜单
970
+ * @param permissionList
971
+ * @param pid
972
+ */
973
+ export const getChildPermissions = (permissionList, pid, appInfo) => {
974
+ let res = []
975
+ if (permissionList && pid) {
976
+ for (let permission of permissionList) {
977
+ if (isChildPermission(permissionList, pid, permission)) {
978
+ let per2 = deepCopy(permission);
979
+ per2.appId = pid;
980
+ if (per2.pid == pid) {
981
+ per2.pid = "0";
982
+ }
983
+ per2.appInfo = deepCopy(appInfo)
984
+ res.push(per2);
985
+ }
986
+ }
987
+ }
988
+ return res;
989
+ }
990
+ /**
991
+ * 恢复权限的原始信息
992
+ * @param permission
993
+ */
994
+ export const getOriginalPermission = (permission) => {
995
+ if (permission && permission.meta && permission.meta.data && permission.meta.data.appInfo) {
996
+ let per2 = deepCopy(permission);
997
+ if (per2.hasOwnProperty('pid') && per2.pid == '0') {
998
+ per2.pid = per2.meta.data.appId;
999
+ per2.meta.data.pid = per2.meta.data.appId;
1000
+ }
1001
+ per2.meta.appId = permission.meta.data.appInfo.appId;
1002
+ per2.meta.data.appId = permission.meta.data.appInfo.appId;
1003
+ return per2;
1004
+ }
1005
+ return permission
1006
+ }
1007
+
1008
+ /**
1009
+ * 单应用时修改源权限信息
1010
+ * @param permissionList
1011
+ * @param menu
1012
+ * @param appInfo
1013
+ * @returns {*}
1014
+ */
1015
+ export const buildSinglePermission = (permissionList, menu) => {
1016
+ let permission = permissionList.find(item => item.permissionId == menu.permissionId && item.appId == menu.appId)
1017
+ let rootPermission = getRootPermission(permissionList, permission)
1018
+ if (rootPermission && rootPermission.permissionId) {
1019
+ menu.appInfo = {
1020
+ appId: menu.appId
1021
+ }
1022
+ menu.appId = rootPermission.permissionId;
1023
+ }
1024
+ return menu;
1025
+ }
1026
+ /**
1027
+ * 获取菜单根节点
1028
+ * @param permissionList
1029
+ * @param permission
1030
+ * @returns {*|{pid}|{}}
1031
+ */
1032
+ export const getRootPermission = (permissionList, permission) => {
1033
+ if (permissionList, permission) {
1034
+ if (!permission.hasOwnProperty('pid')) {
1035
+ return permission
1036
+ } else if (permission.pid == '0') {
1037
+ return permission
1038
+ } else {
1039
+ let parentPermission = permissionList.find(item => item.permissionId == permission.pid && item.appId == permission.appId)
1040
+ return getRootPermission(permissionList, parentPermission);
1041
+ }
1042
+ }
1043
+ return permission;
1044
+ }
1045
+ /**
1046
+ * getPreviousTagIndex
1047
+ * @param tagList
1048
+ * @param name
1049
+ * @returns {number}
1050
+ */
556
1051
  export const getPreviousTagIndex = (tagList, name) => {
557
1052
  let count = 0;
558
1053
  if (tagList && name) {
@@ -570,6 +1065,12 @@ export const getPreviousTagIndex = (tagList, name) => {
570
1065
  return count;
571
1066
  };
572
1067
 
1068
+ /**
1069
+ * getDelTagIndex
1070
+ * @param tagList
1071
+ * @param name
1072
+ * @returns {number}
1073
+ */
573
1074
  export const getDelTagIndex = (tagList, name) => {
574
1075
  let count = 1;
575
1076
  if (tagList && name) {
@@ -583,16 +1084,306 @@ export const getDelTagIndex = (tagList, name) => {
583
1084
  return count;
584
1085
  }
585
1086
 
586
- export const turnToPage = (vm, name ,url) =>{
587
- console.log("window.parent=",window.parent)
588
- if (window.parent) {
589
- console.log("url="+url)
590
- sessionStorage.removeItem('activeName')
591
- window.parent.location.href = url;
592
- } else {
593
- console.log("name="+name)
1087
+ /**
1088
+ * turnToPage
1089
+ * @param vm
1090
+ * @param name
1091
+ * @param url
1092
+ * @param forceLocation
1093
+ * @param queryObj
1094
+ */
1095
+ export const turnToPage = (vm, name ,url, forceLocation = false, queryObj = {}) =>{
1096
+ let query = qs.stringify(queryObj)
1097
+ if(query){
1098
+ url = url + '?' + query;
1099
+ }
1100
+ if (window.top && window.top.location.href !== window.location.href) {
1101
+ typeof sessionStorage != 'undefined' && sessionStorage.removeItem('activeName')
1102
+ window.top.location.href = url;
1103
+ } else if (forceLocation){
1104
+ typeof sessionStorage != 'undefined' && sessionStorage.removeItem('activeName')
1105
+ if (window.top){
1106
+ window.top.location.href = url;
1107
+ } else {
1108
+ window.location.href = url;
1109
+ }
1110
+ } else if (vm && vm.$router){
594
1111
  vm.$router.push({
595
- name: name
1112
+ name: name,
1113
+ ...queryObj
596
1114
  })
1115
+ } else {
1116
+ window.location.href = url;
597
1117
  }
598
- }
1118
+ }
1119
+
1120
+
1121
+ /**
1122
+ * 获取上级节点的方法
1123
+ * @param vm
1124
+ * @param methodName
1125
+ * @returns {*}
1126
+ */
1127
+ export const getParentMethod = (vm,methodName) => {
1128
+ if (vm.$parent) {
1129
+ if (vm.$parent[methodName]) {
1130
+ return vm.$parent[methodName];
1131
+ } else {
1132
+ return getParentMethod(vm.$parent,methodName)
1133
+ }
1134
+ }
1135
+ return undefined;
1136
+ }
1137
+
1138
+ /**
1139
+ * 执行全屏操作
1140
+ * @param vm
1141
+ */
1142
+ export const doParentMethod = (vm,methodName) => {
1143
+ let action = getParentMethod(vm,methodName)
1144
+ if (action) {
1145
+ action()
1146
+ }
1147
+ }
1148
+ /**
1149
+ * 替换url中的指定参数
1150
+ * @param url
1151
+ * @param paramName
1152
+ * @param paramValue
1153
+ * @returns {string}
1154
+ */
1155
+ export const replaceUrlParam = (url, paramName, paramValue) => {
1156
+ let pattern = new RegExp('(' + paramName + '=)([^&]+)', 'i');
1157
+ let queryString = url.split('?')[1];
1158
+ if (queryString) {
1159
+ let newParam = paramName + '=' + encodeURIComponent(paramValue);
1160
+ let newQueryString = queryString.replace(pattern, newParam);
1161
+ return url.split('?')[0] + '?' + newQueryString;
1162
+ } else {
1163
+ return url + '?' + paramName + '=' + encodeURIComponent(paramValue);
1164
+ }
1165
+ }
1166
+ /**
1167
+ * 拼接url
1168
+ * @param href
1169
+ * @param key
1170
+ * @param value
1171
+ * @returns {string}
1172
+ */
1173
+ export const buildParams = (href, key, value) =>{
1174
+ if (href && key && value) {
1175
+ if (!href.includes(key + '=')) {
1176
+ if (href.includes('?')) {
1177
+ href += '&' + key + '=' + value
1178
+ } else {
1179
+ href += '?' + key + '=' + value
1180
+ }
1181
+ } else {
1182
+ href = replaceUrlParam(href,key,value)
1183
+ }
1184
+ return href;
1185
+ }
1186
+ return '';
1187
+ }
1188
+ /**
1189
+ * 组装菜单url
1190
+ * @param item
1191
+ * @param ssoToken
1192
+ * @param ssoid
1193
+ * @returns {string}
1194
+ */
1195
+ export const buildMenuUri = (item,ssoToken,ssoid) => {
1196
+ if (!item.uri) {
1197
+ return ''
1198
+ }
1199
+ let href = ''
1200
+ let uri = item.uri
1201
+ if (uri.startsWith('http')) {
1202
+ href = uri
1203
+ } else {
1204
+ let basepath = ''
1205
+ if (item.navList) {
1206
+ let navList = deepCopy(item.navList);
1207
+ let appId = '';
1208
+ if (item.appId) {
1209
+ appId = item.appId;
1210
+ } else if (item.meta && item.meta.appId) {
1211
+ appId = item.meta.appId;
1212
+ }
1213
+ let appInfo = navList.find(app => app.appId === appId)
1214
+ if (appInfo && appInfo.basepath) {
1215
+ basepath = appInfo.basepath
1216
+ }
1217
+ }
1218
+ if (!basepath.startsWith('/') && !basepath.startsWith('http')) {
1219
+ basepath = '/' + basepath
1220
+ }
1221
+ if (basepath.endsWith('/')) {
1222
+ basepath = basepath.substring(0, basepath.length - 1)
1223
+ }
1224
+ if (!uri.startsWith('/')) {
1225
+ uri = '/' + uri
1226
+ }
1227
+ href = basepath + uri
1228
+ }
1229
+ href = buildParams(href,"layout","screen");
1230
+ if (ssoToken) {
1231
+ href = buildParams(href,"token",ssoToken);
1232
+ }
1233
+ if (ssoid) {
1234
+ href = buildParams(href,"ssoid",ssoid);
1235
+ }
1236
+ if (item.cts) {
1237
+ href = buildParams(href,"cts",item.cts);
1238
+ }
1239
+ return href
1240
+ }
1241
+ /**
1242
+ * 给query添加时间戳
1243
+ */
1244
+ export const addTimestamp = ($route) => {
1245
+ let query = {};
1246
+ if ($route.query) {
1247
+ query = $route.query;
1248
+ }
1249
+ query = Object.assign({},query,{cts:new Date().getTime()})
1250
+ $route.query = query;
1251
+ return $route;
1252
+ }
1253
+ /**
1254
+ * 根据配置信息修改系统信息
1255
+ * @param systemInfo
1256
+ */
1257
+ export const changeSystemInfo = async (systemInfo) => {
1258
+ let defaultSystemInfo = {
1259
+ layoutSize: 'small',
1260
+ systemLogo: systemLogo,
1261
+ logoWidth: '150px',
1262
+ systemName: sessionStorage.getItem('systemName') ? sessionStorage.getItem('systemName') : config.title,
1263
+ nameSize: 1,
1264
+ navType: 'dropdown',
1265
+ rightTopOptButtonList: ['collect', 'fullScreen'],
1266
+ rightTopShowFunList: ['theme', 'personalCenter', 'noticeList', 'logout'],
1267
+ menuLogo: '1',
1268
+ titleShow: 'wrap',
1269
+ menuScaling: '1',
1270
+ footerInfo: 'Copyright © 2021 浪潮数字商业科技有限公司 版权所有<br> 辽ICP备11001865号-3',
1271
+ showTheme: '',
1272
+ theme: 'default',
1273
+ tabNum: 5,
1274
+ topMenu: 4,
1275
+ };
1276
+ if (systemInfo) {
1277
+ systemInfo = Object.assign(defaultSystemInfo, systemInfo);
1278
+ } else {
1279
+ systemInfo = defaultSystemInfo;
1280
+ }
1281
+ if (systemInfo.logo) {
1282
+ systemInfo.systemLogo = config.ossServerContext + '/anon/system/file/get/' + systemInfo.logo
1283
+ } else {
1284
+ systemInfo.systemLogo = ''
1285
+ }
1286
+ sessionStorage.setItem('systemLogo', systemInfo.systemLogo)
1287
+ if (systemInfo.systemLogo) {
1288
+ let link = document.querySelector("link[rel*='icon']") || document.createElement('link');
1289
+ link.setAttribute('href', systemInfo.systemLogo);
1290
+ if (!link.getAttribute('rel')) {
1291
+ link.setAttribute('rel', 'icon');
1292
+ }
1293
+ if (!link.getAttribute('type')) {
1294
+ link.setAttribute('type', 'image/png');
1295
+ }
1296
+ }
1297
+ if (systemInfo.logoWidth) {
1298
+ systemInfo.logoWidth = systemInfo.logoWidth + ''
1299
+ }
1300
+ if (systemInfo.systemName) {
1301
+ document.title = systemInfo.systemName
1302
+ sessionStorage.setItem('systemName', systemInfo.systemName)
1303
+ }
1304
+ if (localStorage.getItem('theme')) {
1305
+ systemInfo.theme = localStorage.getItem('theme')
1306
+ }
1307
+ changeByThemeKey(systemInfo.theme)
1308
+ if(systemInfo.contextmenu === '0'){
1309
+ disableRightClick()
1310
+ }
1311
+ if (localStorage.getItem('themeIdCurrent')) {
1312
+ systemInfo.showTheme = localStorage.getItem('themeIdCurrent')
1313
+ }
1314
+ if (systemInfo.showTheme) {
1315
+ let showTheme = systemInfo.showTheme
1316
+ let split = showTheme.split('-')
1317
+ let systemForm = null
1318
+ let themeId = split[0];
1319
+ let status = split[1];
1320
+ let filterStatus = split[2];
1321
+ if (themeId) {
1322
+ let res = await ajax.get(config.upmsServerContext + '/anon/system/themeInfo?themeId=' + split[0])
1323
+ if (res.data.code == 1) {
1324
+ systemForm = res.data.data[0]
1325
+ if (!status && systemForm.status) {
1326
+ status = systemForm.status;
1327
+ }
1328
+ if (!filterStatus && systemForm.filterStatus) {
1329
+ filterStatus = systemForm.filterStatus;
1330
+ }
1331
+ }
1332
+ }
1333
+ if (systemForm) {
1334
+ changeThemeByThemeId(themeId, status, filterStatus, systemForm)
1335
+ }
1336
+ }
1337
+ if (!systemInfo.rightTopOptButtonList || systemInfo.rightTopOptButtonList.length <= 0) {
1338
+ systemInfo.rightTopOptButtonList = ['collect', 'fullScreen'];
1339
+ }
1340
+ if (!systemInfo.rightTopShowFunList || systemInfo.rightTopShowFunList.length <= 0) {
1341
+ systemInfo.rightTopShowFunList = ['theme', 'personalCenter', 'noticeList', 'logout']
1342
+ }
1343
+ return systemInfo;
1344
+ }
1345
+
1346
+ export const buildHomeConfigs = (settings) => {
1347
+ let result = [];
1348
+ if (settings && settings.length > 0) {
1349
+ let settingMap = {}
1350
+ for (let st of settings) {
1351
+ let key = st.categoryCode;
1352
+ if (!key) {
1353
+ key = "otherCategory";
1354
+ }
1355
+ if (settingMap[key]) {
1356
+ let oldSt = settingMap[key];
1357
+ if (st.permit && oldSt.permit
1358
+ && (st.permit.permissionType > oldSt.permit.permissionType
1359
+ || (st.permit.permissionType == oldSt.permit.permissionType
1360
+ && st.permit.createTime > oldSt.permit.createTime))) {
1361
+ settingMap[key] = st;
1362
+ }
1363
+ } else {
1364
+ settingMap[key] = st;
1365
+ }
1366
+ }
1367
+ if (settingMap['default']) {
1368
+ result.push(settingMap['default']);
1369
+ }
1370
+ for(let key in settingMap) {
1371
+ if (key != 'default') {
1372
+ result.push(settingMap[key])
1373
+ }
1374
+ }
1375
+ }
1376
+ return result;
1377
+ }
1378
+
1379
+ export const getAllElements = ( plist = [], result = []) => {
1380
+ for (let obj of plist) {
1381
+ if (obj.permissionId) {
1382
+ result.push(obj.permissionId);
1383
+ }
1384
+ if (obj.children && obj.children.length > 0) {
1385
+ getAllElements(obj.children, result);
1386
+ }
1387
+ }
1388
+ return result;
1389
+ }