@lambo-design/shared 1.0.0-beta.8 → 1.0.0-beta.81

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 (61) hide show
  1. package/config/config.js +2 -2
  2. package/config/themes/atrovirens/atrovirens.css +533 -0
  3. package/config/themes/atrovirens/atrovirens.css.map +1 -0
  4. package/config/themes/atrovirens/atrovirens.less +624 -0
  5. package/config/themes/atrovirens/var.less +627 -0
  6. package/config/themes/default/default.css +533 -241
  7. package/config/themes/default/default.css.map +1 -0
  8. package/config/themes/default/default.less +379 -74
  9. package/config/themes/default/var.less +318 -4
  10. package/config/themes/eap/eap.css +533 -0
  11. package/config/themes/eap/eap.css.map +1 -0
  12. package/config/themes/eap/eap.less +624 -0
  13. package/config/themes/eap/var.less +628 -0
  14. package/config/themes/gold/gold.css +533 -0
  15. package/config/themes/gold/gold.css.map +1 -0
  16. package/config/themes/gold/gold.less +624 -0
  17. package/config/themes/gold/var.css +0 -0
  18. package/config/themes/gold/var.css.map +0 -0
  19. package/config/themes/gold/var.less +319 -4
  20. package/config/themes/index.js +10 -2
  21. package/config/themes/lime/lime.css +533 -0
  22. package/config/themes/lime/lime.css.map +1 -0
  23. package/config/themes/lime/lime.less +624 -0
  24. package/config/themes/lime/var.less +319 -4
  25. package/config/themes/orange/orange.css +533 -0
  26. package/config/themes/orange/orange.css.map +1 -0
  27. package/config/themes/orange/orange.less +624 -0
  28. package/config/themes/orange/var.less +629 -0
  29. package/config/themes/red/red.css +533 -0
  30. package/config/themes/red/red.css.map +1 -0
  31. package/config/themes/red/red.less +624 -0
  32. package/config/themes/red/var.less +628 -0
  33. package/config/themes/theme-atrovirens.js +515 -0
  34. package/config/themes/theme-default.js +270 -7
  35. package/config/themes/theme-eap.js +515 -0
  36. package/config/themes/theme-gold.js +271 -8
  37. package/config/themes/theme-lime.js +271 -8
  38. package/config/themes/theme-orange.js +516 -0
  39. package/config/themes/theme-red.js +515 -0
  40. package/directives/index.js +23 -0
  41. package/directives/module/draggable.js +56 -0
  42. package/directives/module/permission.js +49 -0
  43. package/index.js +3 -1
  44. package/package.json +23 -20
  45. package/plugin/index.js +12 -0
  46. package/plugin/module/date-format.js +30 -0
  47. package/plugin/module/loading.js +26 -0
  48. package/plugin/module/warn-handler.js +11 -0
  49. package/utils/ajax/interceptors.js +13 -6
  50. package/utils/assist.js +48 -9
  51. package/utils/base64.js +126 -0
  52. package/utils/date.js +0 -27
  53. package/utils/excel.js +122 -21
  54. package/utils/menu/index.js +25 -2
  55. package/utils/platform.js +34 -6
  56. package/utils/theme.js +5 -0
  57. package/utils/vxetable/index.js +15 -4
  58. package/config/themes/gold/default.css +0 -241
  59. package/config/themes/gold/default.less +0 -319
  60. package/config/themes/lime/default.css +0 -241
  61. package/config/themes/lime/default.less +0 -319
@@ -9,6 +9,26 @@ export const hasRoute = ($router, name) => {
9
9
  let res = routes.filter(item => item.name === name)
10
10
  return res && res.length > 0
11
11
  }
12
+ /**
13
+ * 判断是否存在路由并且页面存在
14
+ * @param $router
15
+ * @param path
16
+ * @returns {*|boolean}
17
+ */
18
+ export const hasRoutePath = ($router, path) => {
19
+ if ($router && path) {
20
+ let routes = $router.getRoutes();
21
+ if (path.trim().startsWith("dida/")) {
22
+ path = path.trim().replace("dida/","");
23
+ if (!path.startsWith("/")) {
24
+ path = "/" + path;
25
+ }
26
+ }
27
+ let res = routes.filter(item => item.path === path)
28
+ return res && res.length > 0
29
+ }
30
+ return false
31
+ }
12
32
  /**
13
33
  * 动态生成菜单
14
34
  * @param permissionList
@@ -44,7 +64,7 @@ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId)
44
64
  return;
45
65
  }
46
66
  list.forEach(item => {
47
- if (item.appId == appId) {
67
+ if (item.appId == appId && (!item.hasOwnProperty("hideInMenu") || (item.hasOwnProperty("hideInMenu") && !item.hideInMenu))) {
48
68
  // 判断是否为父级菜单
49
69
  if (item.pid === parentId) {
50
70
  if (item.type === 1 || item.type === 2) {
@@ -54,7 +74,9 @@ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId)
54
74
  title: item.label,
55
75
  icon: item.icon,
56
76
  crumbs: [...crumbs],
57
- activeName: item.name
77
+ activeName: item.name,
78
+ notCache: item.notCache ? true : false,
79
+ hideInMenu: item.hideInMenu ? true : false
58
80
  },
59
81
  type: item.type,
60
82
  pid: item.pid,
@@ -97,6 +119,7 @@ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId)
97
119
  if (item.type === 4) {
98
120
  let child = {
99
121
  meta: {
122
+ appId: item.appId,
100
123
  title: item.label,
101
124
  hideInMenu: true,
102
125
  notCache: true,
package/utils/platform.js CHANGED
@@ -1,8 +1,9 @@
1
-
2
- export const TOKEN_KEY = 'v8-token'
1
+ export const TOKEN_KEY = 'lambo-token'
3
2
 
4
3
  export const COOKIE_KEY = 'lambo-sso-key'
5
4
 
5
+ export const SSO_TOKEN_KEY = 'lambo-sso-token'
6
+
6
7
  export function objEqual(obj1, obj2) {
7
8
  const keysArr1 = Object.keys(obj1)
8
9
  const keysArr2 = Object.keys(obj2)
@@ -363,7 +364,7 @@ export const routeEqual = (route1, route2) => {
363
364
  const params2 = route2.params || {}
364
365
  const query1 = route1.query || {}
365
366
  const query2 = route2.query || {}
366
- return (route1.name === route2.name) //&& objEqual(params1, params2) && objEqual(query1, query2)
367
+ return (route1.name === route2.name) && objEqual(params1, params2) && objEqual(query1, query2)
367
368
  }
368
369
 
369
370
  /**
@@ -427,8 +428,11 @@ export const setTitle = (configTitle,routeItem, vm) => {
427
428
  window.document.title = resTitle
428
429
  }
429
430
 
430
- export const getUrlParams = () => {
431
- const url = location.search; //获取url中"?"符后的字串
431
+ export const getUrlParams = (url) => {
432
+ if (!url){
433
+ url = location.search;
434
+ }
435
+ //const url = location.search; //获取url中"?"符后的字串
432
436
  const theRequest = new Object();
433
437
  if (url.indexOf("?") != -1) {
434
438
  const str = url.substr(1);
@@ -567,4 +571,28 @@ export const getPreviousTagIndex = (tagList, name) => {
567
571
  }
568
572
  }
569
573
  return count;
570
- }
574
+ };
575
+
576
+ export const getDelTagIndex = (tagList, name) => {
577
+ let count = 1;
578
+ if (tagList && name) {
579
+ for (let i = 1 ;i < tagList.length; i++) {
580
+ let item = tagList[i];
581
+ if (item.name !== name) {
582
+ return count;
583
+ }
584
+ }
585
+ }
586
+ return count;
587
+ }
588
+
589
+ export const turnToPage = (vm, name ,url) =>{
590
+ if (window.top && window.top.location.href != window.location.href) {
591
+ sessionStorage.removeItem('activeName')
592
+ window.parent.location.href = url;
593
+ } else {
594
+ vm.$router.push({
595
+ name: name
596
+ })
597
+ }
598
+ }
package/utils/theme.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import themes from "../config/themes";
2
+ import cssVars from "css-vars-ponyfill";
2
3
  const changeByThemeKey = (themeKey) => {
3
4
  if (themeKey) {
4
5
  themes.forEach((theme) => {
@@ -14,6 +15,10 @@ const changeByThemeKey = (themeKey) => {
14
15
  }
15
16
  changeByThemeKey(themeKey);
16
17
  }
18
+ cssVars({
19
+ rootElement: document, // default
20
+ include: 'link[rel=stylesheet],style'
21
+ });
17
22
  return themeKey;
18
23
  };
19
24
 
@@ -1,14 +1,25 @@
1
1
  export const setParentRefs = (parentVm, targetVm, refKey) => {
2
2
  let hasFind = false;
3
3
  if (parentVm.$refs) {
4
- Object.entries(parentVm.$refs).forEach(([key, value]) => {
5
- if (value === targetVm) {
4
+ //遍历父组件的refs里注册的组件
5
+ Object.entries(parentVm.$refs).forEach(([parentKey, parentValue]) => {
6
+ //找到targetVm组件
7
+ if (parentValue === targetVm) {
6
8
  hasFind = true;
7
- parentVm.$refs[key] = targetVm.$refs[refKey]
9
+ //遍历targetVm组件上注册的refKey组件
10
+ Object.entries(targetVm.$refs[refKey]).forEach(([key, value])=>{
11
+ //找到refKey组件methods里面的function
12
+ if(key.charAt(0) !== '$'
13
+ && key.charAt(0) !== '_'
14
+ && typeof value == 'function'){
15
+ //将function添加到targetVm组件
16
+ parentVm.$refs[parentKey][key] = value
17
+ }
18
+ })
8
19
  }
9
20
  })
10
21
  }
11
22
  if (!hasFind && parentVm.$parent) {
12
23
  setParentRefs(parentVm.$parent, targetVm, refKey)
13
24
  }
14
- }
25
+ }
@@ -1,241 +0,0 @@
1
- :root {
2
- --primary-color: #fa8c16;
3
- --primary-color-tint-20: #fba345;
4
- --primary-color-tint-90: #fff4e8;
5
- --primary-color-tint-80: #fee8d0;
6
- --primary-color-tint-5: #fa9222;
7
- --primary-color-tint-95-fade-50: rgba(255, 249, 243, 0.5);
8
- --primary-color-fade-20: rgba(250, 140, 22, 0.2);
9
- --primary-color-shade-5: #ee8515;
10
- --info-color: #2db7f5;
11
- --info-color-tint-20: #57c5f7;
12
- --info-color-tint-90: #eaf8fe;
13
- --info-color-tint-80: #d5f1fd;
14
- --info-color-tint-5: #38bbf6;
15
- --info-color-tint-95-fade-50: rgba(245, 251, 254, 0.5);
16
- --info-color-fade-20: rgba(45, 183, 245, 0.2);
17
- --info-color-shade-5: var(--info-color-shade-5, #2baee9);
18
- --success-color: #19be6b;
19
- --success-color-tint-20: #47cb89;
20
- --success-color-tint-90: #e8f9f0;
21
- --success-color-tint-80: #d1f2e1;
22
- --success-color-tint-5: #25c172;
23
- --success-color-tint-95-fade-50: rgba(244, 252, 248, 0.5);
24
- --success-color-fade-20: rgba(25, 190, 107, 0.2);
25
- --success-color-shade-5: #18b566;
26
- --processing-color: #fa8c16;
27
- --warning-color: #ff9900;
28
- --warning-color-tint-20: #ffad33;
29
- --warning-color-tint-90: #fff5e6;
30
- --warning-color-tint-5: #ff9e0d;
31
- --warning-color-tint-80: #ffebcc;
32
- --warning-color-tint-95-fade-50: rgba(255, 250, 242, 0.5);
33
- --warning-color-fade-20: rgba(255, 153, 0, 0.2);
34
- --warning-color-shade-5: #f29100;
35
- --error-color: #ed4014;
36
- --error-color-tint-20: #f16643;
37
- --error-color-tint-90: #fdece8;
38
- --error-color-tint-5: #ee4a20;
39
- --error-color-tint-80: #fbd9d0;
40
- --error-color-tint-95-fade-50: rgba(254, 245, 243, 0.5);
41
- --error-color-fade-20: rgba(237, 64, 20, 0.2);
42
- --error-color-shade-5: #e13d13;
43
- --normal-color: #e6ebf1;
44
- --link-color: #2D8cF0;
45
- --link-hover-color: #57a3f3;
46
- --link-active-color: #2b85e4;
47
- --selected-color: rgba(250, 140, 22, 0.9);
48
- --selected-color-shade-10: rgba(220, 123, 19, 0.91);
49
- --tooltip-color: #fff;
50
- --subsidiary-color: #808695;
51
- --rate-star-color: #f5a623;
52
- --rate-star-color-tint-20: #f7b84f;
53
- --white: #fff;
54
- --black: #000;
55
- --body-background: #fff;
56
- --component-background: #fff;
57
- --font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
58
- --code-family: Consolas, Menlo, Courier, monospace;
59
- --title-color: #17233d;
60
- --text-color: #515a6e;
61
- --text-color-secondary: rgba(0, 0, 0, 0.45);
62
- --heading-color: rgba(0, 0, 0, 0.85);
63
- --heading-color-dark: #ffffff;
64
- --font-size-base: 14px;
65
- --font-size-small: 12px;
66
- --font-size-large: 16px;
67
- --line-height-base: 1.5;
68
- --line-height-computed: 21px;
69
- --border-radius-base: 6px;
70
- --border-radius-small: 4px;
71
- --cursor-disabled: not-allowed;
72
- --padding-lg: 24px;
73
- --padding-md: 16px;
74
- --padding-sm: 12px;
75
- --padding-xs: 8px;
76
- --border-color-base: #dcdee2;
77
- --border-color-split: #e8eaec;
78
- --border-width-base: 1px;
79
- --border-style-base: solid;
80
- --background-color-base: #f7f7f7;
81
- --background-color-select-hover: #f3f3f3;
82
- --tooltip-bg: rgba(70, 76, 91, 0.9);
83
- --head-bg: #f9fafc;
84
- --table-thead-bg: #f8f8f9;
85
- --table-td-stripe-bg: #f8f8f9;
86
- --table-td-hover-bg: #ebf7ff;
87
- --table-td-highlight-bg: #ebf7ff;
88
- --menu-dark-title: #515a6e;
89
- --menu-dark-active-bg: #363e4f;
90
- --menu-dark-subsidiary-color: rgba(255, 255, 255, 0.7);
91
- --menu-dark-group-title-color: rgba(255, 255, 255, 0.36);
92
- --date-picker-cell-hover-bg: #e1f0fe;
93
- --shadow-color: rgba(0, 0, 0, 0.2);
94
- --shadow-base: 0 1px 6px rgba(0, 0, 0, 0.2);
95
- --shadow-card: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
96
- --shadow-up: 0 -1px 6px rgba(0, 0, 0, 0.2);
97
- --shadow-down: 0 1px 6px rgba(0, 0, 0, 0.2);
98
- --shadow-left: -1px 0 6px rgba(0, 0, 0, 0.2);
99
- --shadow-right: 1px 0 6px rgba(0, 0, 0, 0.2);
100
- --btn-height-base: 32px;
101
- --btn-height-large: 40px;
102
- --btn-height-small: 24px;
103
- --btn-padding-base: 0 15px;
104
- --btn-padding-large: 0 15px;
105
- --btn-padding-small: 0 7px;
106
- --btn-font-weight: normal;
107
- --btn-padding-base-icon: 5px 15px 6px;
108
- --btn-padding-large-icon: 6px 15px 6px 15px;
109
- --btn-padding-small-icon: 1px 7px 2px;
110
- --btn-font-size: 14px;
111
- --btn-font-size-large: 16px;
112
- --btn-font-size-small: 14px;
113
- --btn-border-radius: 4px;
114
- --btn-border-radius-small: 3px;
115
- --btn-group-border: #ee8515;
116
- --btn-disable-color: #c5c8ce;
117
- --btn-disable-bg: #f7f7f7;
118
- --btn-disable-border: #dcdee2;
119
- --btn-default-color: #515a6e;
120
- --btn-default-color-tint-20: #747b8b;
121
- --btn-default-color-shade-5: #4d5669;
122
- --btn-default-bg: #fff;
123
- --btn-default-bg-tint-20: #ffffff;
124
- --btn-default-bg-shade-5: #f2f2f2;
125
- --btn-default-border: #dcdee2;
126
- --btn-default-border-tint-20: #e3e5e8;
127
- --btn-default-border-shade-5: #d1d3d7;
128
- --btn-primary-color: #fff;
129
- --btn-primary-color-tint-20: #ffffff;
130
- --btn-primary-color-tint-5: #ffffff;
131
- --btn-primary-color-shade-5: #f2f2f2;
132
- --btn-primary-bg: #fa8c16;
133
- --btn-primary-bg-tint-20: #fba345;
134
- --btn-primary-bg-tint-5: #fa9222;
135
- --btn-ghost-color: #515a6e;
136
- --btn-ghost-color-tint-20: #747b8b;
137
- --btn-ghost-color-shade-5: #4d5669;
138
- --btn-ghost-bg: #fff;
139
- --btn-ghost-bg-tint-20: #ffffff;
140
- --btn-ghost-bg-shade-5: #f2f2f2;
141
- --btn-ghost-border: #dcdee2;
142
- --btn-ghost-border-tint-20: #e3e5e8;
143
- --btn-ghost-border-shade-5: #d1d3d7;
144
- --btn-circle-size: 32px;
145
- --btn-circle-size-large: 40px;
146
- --btn-circle-size-small: 24px;
147
- --btn-square-size: 32px;
148
- --btn-square-size-large: 40px;
149
- --btn-square-size-small: 24px;
150
- --grid-columns: 24;
151
- --grid-gutter-width: 0;
152
- --layout-body-background: #f5f7f9;
153
- --layout-header-background: #515a6e;
154
- --layout-header-height: 64px;
155
- --layout-header-padding: 0 50px;
156
- --layout-footer-padding: 24px 50px;
157
- --layout-footer-background: #f5f7f9;
158
- --layout-sider-background: #515a6e;
159
- --layout-sider-background-tint-10: #626b7d;
160
- --layout-trigger-height: 48px;
161
- --layout-trigger-color: #fff;
162
- --layout-zero-trigger-width: 36px;
163
- --layout-zero-trigger-height: 42px;
164
- --legend-color: #999;
165
- --input-height-base: 32px;
166
- --input-height-large: 40px;
167
- --input-height-small: 24px;
168
- --input-padding-horizontal: 7px;
169
- --input-padding-vertical-base: 4px;
170
- --input-padding-vertical-small: 1px;
171
- --input-padding-vertical-large: 6px;
172
- --input-placeholder-color: #c5c8ce;
173
- --input-color: #515a6e;
174
- --input-border-color: #dcdee2;
175
- --input-border-color-tint-20: #e3e5e8;
176
- --input-bg: #fff;
177
- --input-group-bg: #f8f8f9;
178
- --input-hover-border-color: #fa8c16;
179
- --input-hover-border-color-tint-20: #fba345;
180
- --input-hover-border-color-fade-20: rgba(250, 140, 22, 0.2);
181
- --input-focus-border-color: #fa8c16;
182
- --input-disabled-bg: #f3f3f3;
183
- --tag-font-size: 12px;
184
- --screen-xs: 480px;
185
- --screen-xs-min: 480px;
186
- --screen-xs-max: 479px;
187
- --screen-sm: 576px;
188
- --screen-sm-min: 576px;
189
- --screen-sm-max: 575px;
190
- --screen-md: 768px;
191
- --screen-md-min: 768px;
192
- --screen-md-max: 767px;
193
- --screen-lg: 992px;
194
- --screen-lg-min: 992px;
195
- --screen-lg-max: 991px;
196
- --screen-xl: 1200px;
197
- --screen-xl-min: 1200px;
198
- --screen-xl-max: 1199px;
199
- --screen-xxl: 1600px;
200
- --screen-xxl-min: 1600px;
201
- --screen-xxl-max: 1599px;
202
- --zindex-spin: 8;
203
- --zindex-affix: 10;
204
- --zindex-back-top: 10;
205
- --zindex-select: 900;
206
- --zindex-modal: 1000;
207
- --zindex-drawer: 1000;
208
- --zindex-message: 1010;
209
- --zindex-notification: 1010;
210
- --zindex-tooltip: 1060;
211
- --zindex-transfer: 1060;
212
- --zindex-loading-bar: 2000;
213
- --zindex-spin-fullscreen: 2010;
214
- --animation-time: 0.3s;
215
- --animation-time-quick: 0.15s;
216
- --transition-time: 0.2s;
217
- --ease-in-out: ease-in-out;
218
- --slider-color: #fba345;
219
- --slider-height: 4px;
220
- --slider-margin: 16px 0;
221
- --slider-button-wrap-size: 18px;
222
- --slider-button-wrap-offset: -5px;
223
- --slider-disabled-color: #ccc;
224
- --avatar-size-base: 32px;
225
- --avatar-size-lg: 40px;
226
- --avatar-size-sm: 24px;
227
- --avatar-font-size-base: 18px;
228
- --avatar-font-size-lg: 24px;
229
- --avatar-font-size-sm: 14px;
230
- --avatar-bg: #ccc;
231
- --avatar-color: #fff;
232
- --avatar-border-radius: 4px;
233
- --anchor-border-width: 2px;
234
- --list-header-background: transparent;
235
- --list-footer-background: transparent;
236
- --list-empty-text-padding: 16px;
237
- --list-item-padding: 12px 0;
238
- --list-item-meta-margin-bottom: 16px;
239
- --list-item-meta-avatar-margin-right: 16px;
240
- --list-item-meta-title-margin-bottom: 12px;
241
- }