eoss 0.1.0-alpha.20 → 0.1.0-alpha.21

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 (207) hide show
  1. package/lib/account-login.js +1943 -1890
  2. package/lib/alert.js +4 -4
  3. package/lib/aside.js +4 -4
  4. package/lib/autocomplete.js +4936 -4834
  5. package/lib/avatar.js +4 -4
  6. package/lib/backtop.js +4 -4
  7. package/lib/badge.js +4 -4
  8. package/lib/breadcrumb-item.js +6 -6
  9. package/lib/breadcrumb.js +7 -7
  10. package/lib/button-group.js +11 -14
  11. package/lib/button.js +6 -6
  12. package/lib/ca-login.js +2480 -2382
  13. package/lib/calendar.js +798 -798
  14. package/lib/card.js +4 -4
  15. package/lib/carousel-item.js +911 -813
  16. package/lib/carousel.js +1646 -1548
  17. package/lib/cascader-panel.js +2556 -2458
  18. package/lib/cascader.js +4546 -4444
  19. package/lib/checkbox-button.js +4 -4
  20. package/lib/checkbox-group.js +2894 -2841
  21. package/lib/checkbox.js +4 -4
  22. package/lib/col.js +2 -2
  23. package/lib/collapse-item.js +35159 -2572
  24. package/lib/collapse.js +35410 -2762
  25. package/lib/color-picker.js +494 -490
  26. package/lib/config/api.js +15 -1
  27. package/lib/container.js +4 -4
  28. package/lib/cron.js +4 -4
  29. package/lib/data-table.js +1895 -1842
  30. package/lib/date-picker.js +6422 -6320
  31. package/lib/dialog.js +2912 -2806
  32. package/lib/divider.js +4 -4
  33. package/lib/drawer.js +311 -299
  34. package/lib/dropdown-item.js +6 -6
  35. package/lib/dropdown-menu.js +539 -535
  36. package/lib/dropdown.js +2270 -2172
  37. package/lib/email-login.js +1783 -1730
  38. package/lib/empty.js +723 -0
  39. package/lib/eoss.common.js +63680 -56193
  40. package/lib/flip.js +4 -4
  41. package/lib/flow-group.js +2985 -2887
  42. package/lib/flow.js +28067 -28022
  43. package/lib/footer.js +4 -4
  44. package/lib/form-item.js +1935 -1837
  45. package/lib/form.js +9230 -9092
  46. package/lib/header.js +4 -4
  47. package/lib/icon.js +1708 -1590
  48. package/lib/icons.js +4 -4
  49. package/lib/image-viewer.js +1660 -1562
  50. package/lib/image.js +162 -162
  51. package/lib/index.js +1 -1
  52. package/lib/infinite-scroll.js +76 -76
  53. package/lib/input-number.js +172 -172
  54. package/lib/input.js +1362 -1264
  55. package/lib/link.js +4 -4
  56. package/lib/loading.js +321 -317
  57. package/lib/login.js +3306 -3300
  58. package/lib/lowcode.js +13320 -0
  59. package/lib/main.js +14465 -14339
  60. package/lib/marquee.js +1237 -1139
  61. package/lib/menu-item-group.js +119 -119
  62. package/lib/menu-item.js +114 -114
  63. package/lib/menu.js +6193 -6091
  64. package/lib/message-box.js +3582 -3480
  65. package/lib/message.js +2265 -2163
  66. package/lib/notification.js +2430 -2328
  67. package/lib/option-group.js +4 -4
  68. package/lib/option.js +842 -744
  69. package/lib/page-header.js +4 -4
  70. package/lib/pagination.js +1916 -1815
  71. package/lib/phone-login.js +1788 -1735
  72. package/lib/popconfirm.js +8 -8
  73. package/lib/popover.js +4559 -4457
  74. package/lib/progress.js +4 -4
  75. package/lib/qr-code.js +9 -9
  76. package/lib/qrcode-login.js +1600 -1543
  77. package/lib/radio-button.js +6 -6
  78. package/lib/radio-group.js +2142 -2089
  79. package/lib/radio.js +6 -6
  80. package/lib/rate.js +1226 -1128
  81. package/lib/row.js +2 -2
  82. package/lib/scrollbar.js +2695 -2597
  83. package/lib/select.js +5985 -5961
  84. package/lib/selector-panel.js +5239 -5186
  85. package/lib/selector.js +1712 -1659
  86. package/lib/slider.js +16 -16
  87. package/lib/step.js +35836 -2736
  88. package/lib/steps.js +1281 -1183
  89. package/lib/submenu.js +461 -457
  90. package/lib/switch.js +1010 -912
  91. package/lib/tab-pane.js +4 -4
  92. package/lib/table-column.js +2595 -2497
  93. package/lib/table.js +9225 -9239
  94. package/lib/tabs.js +2414 -2320
  95. package/lib/tag.js +4 -4
  96. package/lib/theme-chalk/account-login.css +1 -1
  97. package/lib/theme-chalk/autocomplete.css +1 -1
  98. package/lib/theme-chalk/base.css +1 -1
  99. package/lib/theme-chalk/cascader.css +1 -1
  100. package/lib/theme-chalk/date-picker.css +1 -1
  101. package/lib/theme-chalk/empty.css +1 -0
  102. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  103. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  104. package/lib/theme-chalk/form.css +1 -1
  105. package/lib/theme-chalk/icon.css +1 -1
  106. package/lib/theme-chalk/index.css +1 -1
  107. package/lib/theme-chalk/input-number.css +1 -1
  108. package/lib/theme-chalk/input.css +1 -1
  109. package/lib/theme-chalk/login.css +1 -1
  110. package/lib/theme-chalk/lowcode.css +1 -0
  111. package/lib/theme-chalk/main.css +1 -1
  112. package/lib/theme-chalk/message-box.css +1 -1
  113. package/lib/theme-chalk/pagination.css +1 -1
  114. package/lib/theme-chalk/qrcode-login.css +1 -1
  115. package/lib/theme-chalk/select.css +1 -1
  116. package/lib/theme-chalk/slider.css +1 -1
  117. package/lib/theme-chalk/tabs.css +1 -1
  118. package/lib/theme-chalk/time-picker.css +1 -1
  119. package/lib/theme-chalk/transfer.css +1 -1
  120. package/lib/time-picker.js +5823 -5819
  121. package/lib/time-select.js +3578 -3574
  122. package/lib/timeline-item.js +4 -4
  123. package/lib/timeline.js +4 -4
  124. package/lib/tips.js +1633 -1580
  125. package/lib/toolbar.js +213 -213
  126. package/lib/tooltip.js +4441 -4339
  127. package/lib/transfer.js +938 -840
  128. package/lib/tree-group.js +1875 -1757
  129. package/lib/tree.js +2626 -2573
  130. package/lib/upload.js +7209 -7156
  131. package/lib/utils/ajax.js +185 -243
  132. package/lib/utils/bus.js +2 -2
  133. package/lib/utils/popup/index.js +5 -1
  134. package/lib/utils/util.js +108 -11
  135. package/package.json +2 -2
  136. package/packages/button/src/button-group.vue +1 -4
  137. package/packages/collapse/src/collapse-item.vue +47 -33
  138. package/packages/dialog/src/dialog.vue +4 -1
  139. package/packages/drawer/src/drawer.vue +12 -4
  140. package/packages/empty/index.js +7 -0
  141. package/packages/empty/src/img-empty.vue +132 -0
  142. package/packages/empty/src/index.vue +49 -0
  143. package/packages/form/src/form-item-render.vue +16 -18
  144. package/packages/form/src/form.vue +27 -5
  145. package/packages/icons/src/icon.json +1 -1
  146. package/packages/login/src/login.vue +19 -21
  147. package/packages/login/src/mixins.js +2 -1
  148. package/packages/lowcode/index.js +5 -0
  149. package/packages/lowcode/src/aside.vue +331 -0
  150. package/packages/lowcode/src/attribute/bind.vue +441 -0
  151. package/packages/lowcode/src/attribute/dependency.vue +325 -0
  152. package/packages/lowcode/src/attribute/function.vue +112 -0
  153. package/packages/lowcode/src/attribute/property.vue +331 -0
  154. package/packages/lowcode/src/attribute/styles.vue +318 -0
  155. package/packages/lowcode/src/attribute.vue +135 -0
  156. package/packages/lowcode/src/canvas.vue +296 -0
  157. package/packages/lowcode/src/json.vue +32 -0
  158. package/packages/lowcode/src/lowcode.vue +539 -0
  159. package/packages/lowcode/src/modules.vue +93 -0
  160. package/packages/lowcode/src/pages.vue +91 -0
  161. package/packages/lowcode/src/render.vue +247 -0
  162. package/packages/lowcode/src/source.vue +32 -0
  163. package/packages/lowcode/src/toolbar.vue +162 -0
  164. package/packages/main/src/components/pages.vue +28 -2
  165. package/packages/main/src/components/set-menus.vue +3 -3
  166. package/packages/main/src/components/user.vue +6 -1
  167. package/packages/main/src/early.vue +2 -2
  168. package/packages/main/src/gzw.vue +55 -61
  169. package/packages/main/src/minxs.js +113 -36
  170. package/packages/pagination/src/pager.vue +2 -2
  171. package/packages/pagination/src/pagination.js +4 -1
  172. package/packages/qrcode-login/src/qrcode-login.vue +6 -2
  173. package/packages/select/src/select.vue +28 -6
  174. package/packages/steps/src/step.vue +7 -5
  175. package/packages/tabs/src/tab-nav.vue +1 -0
  176. package/packages/tabs/src/tabs.vue +0 -2
  177. package/packages/theme-chalk/dist/fonts/iconfont.ttf +0 -0
  178. package/packages/theme-chalk/dist/fonts/iconfont.woff +0 -0
  179. package/packages/theme-chalk/gulpfile.js +3 -0
  180. package/packages/theme-chalk/src/account-login.scss +1 -0
  181. package/packages/theme-chalk/src/base.scss +1 -1
  182. package/packages/theme-chalk/src/common/var.scss +16 -0
  183. package/packages/theme-chalk/src/empty.scss +45 -0
  184. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  185. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  186. package/packages/theme-chalk/src/form.scss +1 -8
  187. package/packages/theme-chalk/src/icon.scss +30 -1
  188. package/packages/theme-chalk/src/index.scss +2 -0
  189. package/packages/theme-chalk/src/input-number.scss +0 -4
  190. package/packages/theme-chalk/src/input.scss +9 -0
  191. package/packages/theme-chalk/src/login.scss +32 -29
  192. package/packages/theme-chalk/src/lowcode.scss +461 -0
  193. package/packages/theme-chalk/src/main.scss +28 -65
  194. package/packages/theme-chalk/src/pagination.scss +4 -55
  195. package/packages/theme-chalk/src/qrcode-login.scss +3 -1
  196. package/packages/theme-chalk/src/tabs.scss +81 -50
  197. package/src/config/api.js +13 -0
  198. package/src/index.js +17 -4
  199. package/src/utils/ajax.js +61 -65
  200. package/src/utils/bus.js +2 -2
  201. package/src/utils/popup/index.js +5 -1
  202. package/src/utils/util.js +104 -7
  203. package/lib/index_/345/211/257/346/234/254.js +0 -583
  204. package/packages/dialog copy/index.js +0 -8
  205. package/packages/dialog copy/src/dialog.vue +0 -615
  206. package/src/index_/345/211/257/346/234/254.js +0 -359
  207. /package/{packages/form/src → src/components}/field-render.vue +0 -0
@@ -74,14 +74,9 @@
74
74
  position: relative;
75
75
  }
76
76
  @include e(nav-wrap) {
77
+ flex: 1;
77
78
  box-sizing: border-box;
78
- padding: 0 20px;
79
79
  overflow: hidden;
80
- position: absolute;
81
- left: 0;
82
- top: 0;
83
- right: 0;
84
- bottom: 0;
85
80
  &:not(.is-hide)::after {
86
81
  content: '';
87
82
  position: absolute;
@@ -266,7 +261,6 @@
266
261
  background-color: $--background-color-base;
267
262
  border-bottom: 1px solid #fff;
268
263
  margin: 0;
269
- padding-top: 9px;
270
264
  }
271
265
  > .es-tabs__header .es-tabs__nav-wrap::after {
272
266
  content: none;
@@ -290,31 +284,6 @@
290
284
  background-color: $--color-white;
291
285
  border-right-color: $--color-white;
292
286
  border-left-color: $--color-white;
293
- border-top-left-radius: 8px;
294
- border-top-right-radius: 8px;
295
- &:before {
296
- content: '';
297
- position: absolute;
298
- bottom: -1px;
299
- width: 8px;
300
- height: 8px;
301
- background-color: #f5f5f5;
302
- left: -9px;
303
- border-radius: 0 0 8px 0;
304
- box-shadow: 4px 0 0 0 #ffffff;
305
- }
306
- &::after {
307
- content: '';
308
- position: absolute;
309
- bottom: -1px;
310
- width: 8px;
311
- height: 8px;
312
- background: #f5f5f5;
313
- right: -9px;
314
- border-radius: 0 0 0 8px;
315
- box-shadow: -4px 0 0 0 #ffffff;
316
- z-index: 1;
317
- }
318
287
  }
319
288
  &:not(.is-disabled):hover {
320
289
  color: $--color-primary;
@@ -330,9 +299,7 @@
330
299
  }
331
300
  @include m((top, bottom)) {
332
301
  &.es-tabs--border-card,
333
- &.es-tabs--card,
334
- .es-tabs--left,
335
- .es-tabs--right {
302
+ &.es-tabs--card {
336
303
  > .es-tabs__header {
337
304
  .es-tabs__item:nth-child(2) {
338
305
  padding-left: 20px;
@@ -342,6 +309,46 @@
342
309
  }
343
310
  }
344
311
  }
312
+ .es-tabs__nav-wrap {
313
+ min-width: 0;
314
+ &.is-scrollable {
315
+ padding: 0 20px;
316
+ }
317
+ }
318
+ }
319
+ @include m(top) {
320
+ &.es-tabs--border-card {
321
+ & > .es-tabs__header {
322
+ padding-top: 9px;
323
+ .es-tabs__nav {
324
+ padding: 0 8px;
325
+ }
326
+ .es-tabs__item.is-active {
327
+ border-top-left-radius: 8px;
328
+ border-top-right-radius: 8px;
329
+ &:before,
330
+ &::after {
331
+ content: '';
332
+ position: absolute;
333
+ width: 8px;
334
+ height: 8px;
335
+ background-color: #f5f5f5;
336
+ }
337
+ &:before {
338
+ border-radius: 0 0 8px 0;
339
+ bottom: -1px;
340
+ left: -9px;
341
+ box-shadow: 4px 0 0 0 #ffffff;
342
+ }
343
+ &::after {
344
+ border-radius: 0 0 0 8px;
345
+ bottom: -1px;
346
+ right: -9px;
347
+ box-shadow: -4px 0 0 0 #ffffff;
348
+ }
349
+ }
350
+ }
351
+ }
345
352
  }
346
353
  @include m(bottom) {
347
354
  .es-tabs__header.is-bottom {
@@ -349,7 +356,11 @@
349
356
  margin-top: 10px;
350
357
  }
351
358
  &.es-tabs--border-card {
359
+ .es-tabs__nav {
360
+ padding: 0 8px;
361
+ }
352
362
  .es-tabs__header.is-bottom {
363
+ padding-bottom: 9px;
353
364
  border-bottom: 0;
354
365
  border-top: 1px solid $--border-color-base;
355
366
  }
@@ -357,11 +368,38 @@
357
368
  margin-top: -1px;
358
369
  margin-bottom: 0;
359
370
  }
360
- .es-tabs__item.is-bottom:not(.is-active) {
361
- border: 1px solid transparent;
362
- }
363
- .es-tabs__item.is-bottom {
364
- margin: 0 -1px -1px -1px;
371
+ .es-tabs__item {
372
+ &.is-bottom {
373
+ margin: 0 -1px -1px -1px;
374
+ &:not(.is-active) {
375
+ border: 1px solid transparent;
376
+ }
377
+ }
378
+
379
+ &.is-active {
380
+ border-bottom-left-radius: 8px;
381
+ border-bottom-right-radius: 8px;
382
+ &:before,
383
+ &::after {
384
+ content: '';
385
+ position: absolute;
386
+ width: 8px;
387
+ height: 8px;
388
+ background-color: #f5f5f5;
389
+ }
390
+ &:before {
391
+ border-radius: 0 8px 0 0;
392
+ top: -1px;
393
+ left: -9px;
394
+ box-shadow: 4px 0 0 0 #ffffff;
395
+ }
396
+ &::after {
397
+ border-radius: 8px 0 0 0;
398
+ top: -1px;
399
+ right: -9px;
400
+ box-shadow: -4px 0 0 0 #ffffff;
401
+ }
402
+ }
365
403
  }
366
404
  }
367
405
  }
@@ -383,10 +421,6 @@
383
421
  height: auto;
384
422
  }
385
423
 
386
- .es-tabs__nav-main.is-left,
387
- .es-tabs__nav-main.is-right {
388
- margin-bottom: 0;
389
- }
390
424
  .es-tabs__nav-wrap.is-left,
391
425
  .es-tabs__nav-wrap.is-right {
392
426
  margin-bottom: 0;
@@ -440,9 +474,6 @@
440
474
  margin-right: 10px;
441
475
  flex-direction: column;
442
476
  }
443
- .es-tabs__nav-main.is-left {
444
- margin-right: -1px;
445
- }
446
477
  .es-tabs__nav-wrap.is-left {
447
478
  &::after {
448
479
  left: auto;
@@ -512,6 +543,9 @@
512
543
  }
513
544
  }
514
545
  }
546
+ .es-tabs__content{
547
+ height: 100%;
548
+ }
515
549
  }
516
550
  @include m(right) {
517
551
  .es-tabs__header.is-right {
@@ -521,9 +555,6 @@
521
555
  flex-direction: column;
522
556
  }
523
557
 
524
- .es-tabs__nav-main.is-right {
525
- margin-left: -1px;
526
- }
527
558
  .es-tabs__nav-wrap.is-right {
528
559
  &::after {
529
560
  left: 0;
package/src/config/api.js CHANGED
@@ -318,3 +318,16 @@ export const toFreeTaskCircularRead = '/bpm/bpmBackend/toFreeTaskCircularRead';
318
318
  export const freeTaskCircularRead =
319
319
  '/bpm/bpmBackend/freeTaskCircularRead';
320
320
 
321
+ /** 自定义配置 */
322
+ // 获取自定义配置列表
323
+ export const pageLists = '/main2/pageComponentConfig/listJson';
324
+ // 获取已发布自定义配置列表
325
+ export const publishedLists = '/main2/pageComponentConfig/listPublished';
326
+ // 获取自定义配置详情
327
+ export const pageInfo = '/main2/pageComponentConfig/info';
328
+ // 保存自定义配置,发布也调这个接口但要加上字段status=1
329
+ export const pageSave = '/main2/pageComponentConfig/save';
330
+ // 更新自定义配置
331
+ export const pageUpdate = '/main2/pageComponentConfig/update';
332
+ // 删除自定义配置
333
+ export const pageDelete = '/main2/pageComponentConfig/deleteById';
package/src/index.js CHANGED
@@ -36,6 +36,7 @@ import Dropdown from '../packages/dropdown/index.js';
36
36
  import DropdownItem from '../packages/dropdown-item/index.js';
37
37
  import DropdownMenu from '../packages/dropdown-menu/index.js';
38
38
  import EmailLogin from '../packages/email-login/index.js';
39
+ import Empty from '../packages/empty/index.js';
39
40
  import Flip from '../packages/flip/index.js';
40
41
  import Flow from '../packages/flow/index.js';
41
42
  import FlowGroup from '../packages/flow-group/index.js';
@@ -53,6 +54,7 @@ import Input from '../packages/input/index.js';
53
54
  import Link from '../packages/link/index.js';
54
55
  import Loading from '../packages/loading/index.js';
55
56
  import Login from '../packages/login/index.js';
57
+ import Lowcode from '../packages/lowcode/index.js';
56
58
  import Main from '../packages/main/index.js';
57
59
  import Marquee from '../packages/marquee/index.js';
58
60
  import MenuItem from '../packages/menu-item/index.js';
@@ -139,6 +141,7 @@ const components = [
139
141
  DropdownItem,
140
142
  DropdownMenu,
141
143
  EmailLogin,
144
+ Empty,
142
145
  Flip,
143
146
  Flow,
144
147
  FlowGroup,
@@ -154,6 +157,7 @@ const components = [
154
157
  Input,
155
158
  Link,
156
159
  Login,
160
+ Lowcode,
157
161
  Main,
158
162
  Marquee,
159
163
  MenuItem,
@@ -202,7 +206,7 @@ const components = [
202
206
  CollapseTransition
203
207
  ];
204
208
 
205
- const install = function(Vue) {
209
+ const install = function(Vue, opts = {}) {
206
210
 
207
211
  components.forEach(component => {
208
212
  Vue.component(component.name, component);
@@ -212,8 +216,15 @@ const install = function(Vue) {
212
216
  Vue.use(Loading.directive);
213
217
 
214
218
  Vue.prototype.$EOSS = {
215
- size: '',
216
- zIndex: 2000
219
+ size: opts.size || '',
220
+ zIndex: opts.zIndex || 2000,
221
+ qrCodeSize: opts.qrCodeSize || {
222
+ large: 284,
223
+ default: 250,
224
+ medium: 218,
225
+ small: 190,
226
+ mini: 174
227
+ }
217
228
  };
218
229
 
219
230
  Vue.prototype.$loading = Loading.service;
@@ -231,7 +242,7 @@ if (typeof window !== 'undefined' && window.Vue) {
231
242
  }
232
243
 
233
244
  export default {
234
- version: '0.1.0-alpha.20',
245
+ version: '0.1.0-alpha.21',
235
246
  install,
236
247
  CollapseTransition,
237
248
  Loading,
@@ -271,6 +282,7 @@ export default {
271
282
  DropdownItem,
272
283
  DropdownMenu,
273
284
  EmailLogin,
285
+ Empty,
274
286
  Flip,
275
287
  Flow,
276
288
  FlowGroup,
@@ -287,6 +299,7 @@ export default {
287
299
  Input,
288
300
  Link,
289
301
  Login,
302
+ Lowcode,
290
303
  Main,
291
304
  Marquee,
292
305
  MenuItem,
package/src/utils/ajax.js CHANGED
@@ -21,8 +21,6 @@ const statusMap = {
21
21
  503: '服务不可用(503)'
22
22
  };
23
23
 
24
- // 全局实例和状态
25
- let $_http;
26
24
  // let loginMsg;
27
25
  let initAuth;
28
26
 
@@ -117,76 +115,74 @@ export const ajax = function ({
117
115
  }
118
116
 
119
117
  // 初始化axios实例
120
- if (!$_http) {
121
- const baseURL = host === true ? getStorage('host') : host === false ? '' : host;
122
- $_http = axios.create({
123
- baseURL,
124
- timeout: 99000,
125
- transformResponse: [
126
- function (responseData) {
127
- try {
128
- return JSONbigToString.parse(responseData);
129
- } catch (err) {
130
- return responseData;
131
- }
118
+ const baseURL = host === true ? getStorage('host') : host === false ? '' : host;
119
+ const $_http = axios.create({
120
+ baseURL,
121
+ timeout: 99000,
122
+ transformResponse: [
123
+ function (responseData) {
124
+ try {
125
+ return JSONbigToString.parse(responseData);
126
+ } catch (err) {
127
+ return responseData;
132
128
  }
133
- ]
134
- });
129
+ }
130
+ ]
131
+ });
135
132
 
136
133
  // 请求拦截器
137
- $_http.interceptors.request.use(
138
- (config) => {
139
- config.headers.common = getStorage();
140
- return config;
141
- },
142
- (err) => Promise.reject(err)
143
- );
144
-
145
- // 响应拦截器
146
- $_http.interceptors.response.use(
147
- (response) => {
148
-
149
- // 处理认证信息
150
- if (response.headers.authorization) {
151
- const currentToken = getStorage('token');
152
- if (response.headers.authorization !== currentToken) {
153
- setStorage({
154
- key: ['token', 'Authorization'],
155
- value: response.headers.authorization
156
- });
157
- }
134
+ $_http.interceptors.request.use(
135
+ (config) => {
136
+ config.headers.common = getStorage();
137
+ return config;
138
+ },
139
+ (err) => Promise.reject(err)
140
+ );
141
+
142
+ // 响应拦截器
143
+ $_http.interceptors.response.use(
144
+ (response) => {
145
+
146
+ // 处理认证信息
147
+ if (response.headers.authorization) {
148
+ const currentToken = getStorage('token');
149
+ if (response.headers.authorization !== currentToken) {
150
+ setStorage({
151
+ key: ['token', 'Authorization'],
152
+ value: response.headers.authorization
153
+ });
158
154
  }
155
+ }
159
156
 
160
- // 处理会话ID
161
- const ssId = response.headers.ssId || response.headers.Ssid || response.headers.ssid;
162
- if (ssId) {
163
- const currentSsId = getStorage('ssId');
164
- if (ssId !== currentSsId) {
165
- setStorage({ key: 'ssId', value: ssId });
166
- }
157
+ // 处理会话ID
158
+ const ssId = response.headers.ssId || response.headers.Ssid || response.headers.ssid;
159
+ if (ssId) {
160
+ const currentSsId = getStorage('ssId');
161
+ if (ssId !== currentSsId) {
162
+ setStorage({ key: 'ssId', value: ssId });
167
163
  }
164
+ }
168
165
 
169
- // 处理响应数据
170
- if (response.status === 200) {
171
- responses(response.data);
172
- return Promise.resolve(JSON.parse(JSON.stringify(response.data)));
173
- }
174
- return response;
175
- },
176
- (error) => {
177
-
178
- // 处理错误信息
179
- if (error && error.response) {
180
- if (error.response.status) {
181
- error.message = statusMap[error.response.status] || `连接错误${error.response.status}`;
182
- } else {
183
- error.message = '无法请求,请联系管理员';
184
- }
166
+ // 处理响应数据
167
+ if (response.status === 200) {
168
+ responses(response.data);
169
+ return Promise.resolve(JSON.parse(JSON.stringify(response.data)));
170
+ }
171
+ return response;
172
+ },
173
+ (error) => {
174
+
175
+ // 处理错误信息
176
+ if (error && error.response) {
177
+ if (error.response.status) {
178
+ error.message = statusMap[error.response.status] || `连接错误${error.response.status}`;
179
+ } else {
180
+ error.message = '无法请求,请联系管理员';
185
181
  }
186
- return Promise.reject(error);
187
182
  }
188
- );
189
- }
183
+ return Promise.reject(error);
184
+ }
185
+ );
190
186
 
191
187
  // 添加默认用户ID
192
188
  const userId = getStorage('userId');
@@ -588,7 +584,7 @@ function redirectToLogin() {
588
584
  * @param {sting} [loginPage] - 第三方登录页面地址
589
585
  * @param {boolean} [redirect] - 是否重定向(用于新脚手架)
590
586
  **/
591
- export const isLogined = async function ({
587
+ export const isLogined = function ({
592
588
  to,
593
589
  _from, // eslint-disable-line no-unused-vars
594
590
  next,
@@ -642,7 +638,7 @@ export const isLogined = async function ({
642
638
  const loadingInstance = loading('页面加载中...');
643
639
 
644
640
  try {
645
- const res = await ajax({
641
+ const res = ajax({
646
642
  method: 'post',
647
643
  url: authCenter,
648
644
  data: to.query
package/src/utils/bus.js CHANGED
@@ -8,12 +8,12 @@ import Vue from 'vue';
8
8
  *
9
9
  * @example
10
10
  * A组件:
11
- * import bus from '$ui/utils/bus'
11
+ * import bus from 'eoss/src/utils/bus.js'
12
12
  * // 触发事件
13
13
  * bus.$emit('message', data)
14
14
  *
15
15
  * B组件:
16
- * import bus from '$ui/util/bus'
16
+ * import bus from 'eoss/src/utils/bus.js'
17
17
  *
18
18
  * // 侦听事件
19
19
  * bus.$on('message', data => {
@@ -41,6 +41,10 @@ export default {
41
41
  closeOnClickModal: {
42
42
  type: Boolean,
43
43
  default: false
44
+ },
45
+ lazy: {
46
+ type: Boolean,
47
+ default: true
44
48
  }
45
49
  },
46
50
 
@@ -71,7 +75,7 @@ export default {
71
75
  bodyPaddingRight: null,
72
76
  computedBodyPaddingRight: 0,
73
77
  withoutHiddenClass: true,
74
- rendered: false
78
+ rendered: !this.lazy
75
79
  };
76
80
  },
77
81
 
package/src/utils/util.js CHANGED
@@ -1175,7 +1175,8 @@ export const getObjectType = function (obj) {
1175
1175
  * @param {String} [options.name] - 参数名,可选
1176
1176
  * @return {Object|string} 参数对象或指定参数值
1177
1177
  **/
1178
- export const getParams = function ({url, name} = {}) {
1178
+ export const getParams = function (options = {}) {
1179
+ const { url, name } = typeof options === 'string' ? {name: options} : options;
1179
1180
  let href = '';
1180
1181
  try {
1181
1182
  href = window.top.location.href;
@@ -1579,10 +1580,7 @@ export const indexOfObj = function (arry, target, key) {
1579
1580
  return i;
1580
1581
  }
1581
1582
  } else if (target && typeof target === 'object') {
1582
- if (currentItem[currentKey] === undefined) {
1583
- throw new Error(`属性${currentKey}不存在`);
1584
- }
1585
- if (currentItem[currentKey] === target[currentKey]) {
1583
+ if (currentItem[currentKey] !== undefined && currentItem[currentKey] === target[currentKey]) {
1586
1584
  return i;
1587
1585
  }
1588
1586
  }
@@ -1757,7 +1755,106 @@ export const joinUrl = function ({ url, reg }) {
1757
1755
  // 如果前缀类型无效,直接返回URL
1758
1756
  return url;
1759
1757
  };
1758
+ /**
1759
+ * layoutWaterfall
1760
+ * @desc 布布流布局计算
1761
+ * @author huangbo
1762
+ * @date 2022年5月7日
1763
+ * @param {String} url - JS文件地址
1764
+ * @param {Function} [callback] - 回调函数
1765
+ **/
1766
+ export const layoutWaterfall = function (self, container, pages, columns, gap) {
1767
+ if (!container) return;
1768
+
1769
+ if (pages.length === 0) return;
1770
+
1771
+ // 获取容器实际内容宽度(减去 padding)
1772
+ const computedStyle = getComputedStyle(container);
1773
+ const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
1774
+ const paddingRight = parseFloat(computedStyle.paddingRight) || 0;
1775
+ const paddingTop = parseFloat(computedStyle.paddingTop) || 0;
1776
+ const containerWidth = container.clientWidth - paddingLeft - paddingRight;
1777
+ if (containerWidth === 0) return;
1778
+
1779
+ // 计算每列宽度
1780
+ const columnWidth =
1781
+ (containerWidth - gap * (columns - 1)) / columns;
1782
+
1783
+ // 初始化每列高度数组(以 paddingTop 为起始偏移)
1784
+ const columnHeights = new Array(columns).fill(paddingTop);
1785
+
1786
+ // 遍历所有元素,分配到高度最小的列
1787
+ pages.forEach(item => {
1788
+ // 确保span在有效范围内
1789
+ const span = Math.max(1, Math.min(item.style ? item.style.span || item.span || 1 : item.span || 1, columns));
1790
+
1791
+ // 找到可以容纳当前元素span宽度的最小高度起始列
1792
+ let minHeight = Infinity;
1793
+ let startColumn = 0;
1794
+
1795
+ // 遍历所有可能的起始列,找到可以放置span列元素的位置
1796
+ for (let i = 0; i <= columns - span; i++) {
1797
+ // 计算当前连续span列的最大高度
1798
+ let currentMaxHeight = 0;
1799
+ for (let j = i; j < i + span; j++) {
1800
+ if (columnHeights[j] > currentMaxHeight) {
1801
+ currentMaxHeight = columnHeights[j];
1802
+ }
1803
+ }
1804
+
1805
+ // 找到最小的最大高度
1806
+ if (currentMaxHeight < minHeight) {
1807
+ minHeight = currentMaxHeight;
1808
+ startColumn = i;
1809
+ }
1810
+ }
1811
+
1812
+ // 计算元素宽度和位置
1813
+ const existingWidth = (item.style && item.style.width) ? parseInt(item.style.width, 10) : null;
1814
+ const hasSpan = (item.style && item.style.span) || item.span;
1815
+ const calculatedWidth = columnWidth * span + gap * (span - 1);
1816
+ const useCustomWidth = !hasSpan && existingWidth;
1817
+ const elementWidth = useCustomWidth ? existingWidth : calculatedWidth;
1818
+
1819
+ // 根据是否使用自定义宽度计算 left(加上 padding 偏移)
1820
+ let left;
1821
+ if (useCustomWidth) {
1822
+ // 自定义宽度:在分配的列范围内居中(取整避免亚像素)
1823
+ const columnSpaceWidth = columnWidth * span + gap * (span - 1);
1824
+ left = Math.round(paddingLeft + startColumn * columnWidth + startColumn * gap + (columnSpaceWidth - elementWidth) / 2);
1825
+ } else {
1826
+ // 标准 span 宽度:正常计算位置
1827
+ left = paddingLeft + startColumn * columnWidth + startColumn * gap;
1828
+ }
1829
+ const top = minHeight;
1760
1830
 
1831
+ // 设置元素样式(使用Vue的$set确保响应式)
1832
+ if (!item.style) {
1833
+ self.$set(item, 'style', {});
1834
+ }
1835
+ const height = item.style.height ? parseInt(item.style.height, 10) : 30 ;
1836
+ self.$set(item.style, 'position', 'absolute');
1837
+ self.$set(item.style, 'width', `${elementWidth}px`);
1838
+ self.$set(item.style, 'height', `${height}px`);
1839
+ self.$set(item.style, 'left', `${left}px`);
1840
+ self.$set(item.style, 'top', `${top}px`);
1841
+ if (!useCustomWidth) {
1842
+ self.$set(item.style, 'span', span);
1843
+ }
1844
+
1845
+ // 更新所有被占用列的高度
1846
+ const newHeight = top + height + gap;
1847
+ for (let i = startColumn; i < startColumn + span; i++) {
1848
+ columnHeights[i] = newHeight;
1849
+ }
1850
+ });
1851
+
1852
+ // 设置容器高度
1853
+ let maxHeight = Math.max(...columnHeights);
1854
+ container.style.position = 'relative';
1855
+ container.style.height = `${maxHeight - gap}px`; // 减去最后一个间隙
1856
+ return {columnWidth, width: containerWidth};
1857
+ };
1761
1858
  /**
1762
1859
  * loadJs
1763
1860
  * @desc 加载JS文件
@@ -1897,8 +1994,8 @@ export const receiveMessage = function (callback) {
1897
1994
  **/
1898
1995
  export const renderIcon = function (data, node, icons) {
1899
1996
  const { attributes } = data || {};
1900
- const orgType = attributes.orgType || data.orgType;
1901
- const layerlevel = attributes.layerlevel || data.layerlevel;
1997
+ const orgType = attributes ? attributes.orgType : data.orgType;
1998
+ const layerlevel = attributes ? attributes.layerlevel : data.layerlevel;
1902
1999
  if (!orgType) return '';
1903
2000
  let key = orgType === 'org' ? layerlevel ? 'bumen' : 'gongsi' : 'bumen';
1904
2001
  if (node.level === 1 && (data.subNode || data.isParent || data.hasChildren)) {