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
@@ -14,43 +14,6 @@
14
14
  @open="handleOpen"
15
15
  ></application>
16
16
  <div class="es-main__content is-gzw" ref="content">
17
- <!-- AI/IM -->
18
- <es-drawer
19
- class="es-simplicity-public-drawer"
20
- :direction="drawer.direction"
21
- modal-class="es-simplicity-apps-modal"
22
- size="100%"
23
- show-close
24
- :modal-append-to-body="false"
25
- :visible.sync="drawer.visible"
26
- >
27
- <div
28
- class="es-public-drawer-main"
29
- v-if="drawer.ai && drawer.ai.url"
30
- v-show="drawer.active == 'ai'"
31
- >
32
- <iframe
33
- frameborder="0"
34
- width="100%"
35
- height="100%"
36
- :src="drawer.ai.url"
37
- ></iframe>
38
- </div>
39
- <div
40
- class="es-public-drawer-main"
41
- v-if="drawer.im && drawer.im.url"
42
- v-show="drawer.active == 'im'"
43
- >
44
- <iframe
45
- frameborder="0"
46
- width="100%"
47
- height="100%"
48
- :src="drawer.im.url"
49
- ></iframe>
50
- </div>
51
- </es-drawer>
52
- <!-- AI/IM end -->
53
-
54
17
  <!-- 路由、iframe -->
55
18
  <pages
56
19
  :isFourthTabs="isFourthTabs"
@@ -100,18 +63,12 @@
100
63
  <div
101
64
  v-if="showAi"
102
65
  class="es-main__ai"
103
- :class="{ 'is-float': aiFloat, 'is-full': aiFull }"
104
66
  :style="aiStyle"
105
67
  @click.stop="handleClickAi"
106
68
  @pointerdown="startDrag"
107
69
  >
108
- <img
109
- v-show="aiFloat"
110
- class="es-main__ai--logo"
111
- :src="aiLogoUrl"
112
- ref="aiLogo"
113
- />
114
- <div
70
+ <img class="es-main__ai--logo" :src="aiLogoUrl" ref="aiLogo" />
71
+ <!-- <div
115
72
  class="es-main__ai--content"
116
73
  :class="{ 'is-open': aiOpen }"
117
74
  v-show="!aiFloat"
@@ -122,7 +79,7 @@
122
79
  height="100%"
123
80
  :src="(aiConfig || {}).url || ''"
124
81
  ></iframe>
125
- </div>
82
+ </div> -->
126
83
  </div>
127
84
  <!-- 路由、iframe end -->
128
85
 
@@ -177,6 +134,44 @@
177
134
  </es-dialog>
178
135
  <!-- 公用弹窗 end -->
179
136
  </div>
137
+ <!-- AI/IM -->
138
+ <es-drawer
139
+ class="es-simplicity-public-drawer is-gzw"
140
+ :direction="drawer.direction"
141
+ modal-class="is-gzw"
142
+ :size="drawer.size"
143
+ :with-header="false"
144
+ :visible.sync="drawer.visible"
145
+ :lazy="false"
146
+ >
147
+ <div
148
+ class="es-public-drawer-main"
149
+ v-if="showAi"
150
+ v-show="drawer.active === 'ai'"
151
+ >
152
+ <iframe
153
+ name="ai"
154
+ id="ai"
155
+ frameborder="0"
156
+ width="100%"
157
+ height="100%"
158
+ :src="aiConfig.url"
159
+ ></iframe>
160
+ </div>
161
+ <div
162
+ class="es-public-drawer-main"
163
+ v-if="drawer.im && drawer.im.url"
164
+ v-show="drawer.active === 'im'"
165
+ >
166
+ <iframe
167
+ frameborder="0"
168
+ width="100%"
169
+ height="100%"
170
+ :src="drawer.im.url"
171
+ ></iframe>
172
+ </div>
173
+ </es-drawer>
174
+ <!-- AI/IM end -->
180
175
  </div>
181
176
  </template>
182
177
 
@@ -185,9 +180,8 @@ import minxs from './minxs.js';
185
180
  import { getParams } from 'eoss/src/utils/util';
186
181
  import { getStorage } from 'eoss/src/utils/storage';
187
182
  import { aiIcon } from './icon.js';
188
-
189
183
  export default {
190
- name: 'Early',
184
+ name: 'Gzw',
191
185
  mixins: [minxs],
192
186
  provide() {
193
187
  return {};
@@ -199,12 +193,12 @@ export default {
199
193
  return (this.aiConfig || {}).icon || aiIcon;
200
194
  },
201
195
  aiStyle() {
202
- let styles = {}
203
- if(this.aiConfig){
196
+ let styles = {};
197
+ if (this.aiConfig) {
204
198
  styles.width = this.aiConfig.width + 'px';
205
199
  styles.height = this.aiConfig.height + 'px';
206
200
  }
207
- return this.aiFloat&&this.aiPosition.left>0&&this.aiPosition.top>0
201
+ return this.aiPosition.left > 0 && this.aiPosition.top > 0
208
202
  ? {
209
203
  left: this.aiPosition.left + 'px',
210
204
  top: this.aiPosition.top + 'px',
@@ -273,7 +267,7 @@ export default {
273
267
  0,
274
268
  this.parentSize.width - ((this.aiConfig || {}).width || 56)
275
269
  );
276
- this.aiPosition.left
270
+ this.aiPosition.left;
277
271
  this.aiPosition.top = Math.max(
278
272
  0,
279
273
  this.parentSize.height - ((this.aiConfig || {}).height || 56)
@@ -284,14 +278,10 @@ export default {
284
278
  handleClickAi() {
285
279
  // 只有非拖动状态才执行点击
286
280
  if (this.isDragging || this.hasDragged) return;
287
- //this.aiFloat = !this.aiFloat;
288
- this.aiFloat = false;
289
- //this.aiOpen = true;
290
- //this.handlerSetDrawer(this.aiConfig, 'ai', 'rtl');
281
+ this.handlerSetDrawer({type: 'ai', direction: 'rtl', visible: true});
291
282
  },
292
283
 
293
284
  startDrag(event) {
294
- if (!this.aiFloat) return;
295
285
  // 只响应鼠标左键
296
286
  if (event.button !== 0) return;
297
287
 
@@ -324,8 +314,6 @@ export default {
324
314
  this.parentSize.width = parentRect.width;
325
315
  this.parentSize.height = parentRect.height;
326
316
 
327
-
328
-
329
317
  // 设置全局样式
330
318
  document.body.style.cursor = 'grabbing';
331
319
  document.body.style.userSelect = 'none';
@@ -360,8 +348,14 @@ export default {
360
348
  let newLeft = this.dragStart.left + moveX;
361
349
  let newTop = this.dragStart.top + moveY;
362
350
 
363
- const maxLeft = Math.max(0, this.parentSize.width - ((this.aiConfig || {}).width || 56));
364
- const maxTop = Math.max(0, this.parentSize.height - ((this.aiConfig || {}).height || 56));
351
+ const maxLeft = Math.max(
352
+ 0,
353
+ this.parentSize.width - ((this.aiConfig || {}).width || 56)
354
+ );
355
+ const maxTop = Math.max(
356
+ 0,
357
+ this.parentSize.height - ((this.aiConfig || {}).height || 56)
358
+ );
365
359
 
366
360
  newLeft = Math.max(0, Math.min(newLeft, maxLeft));
367
361
  newTop = Math.max(54, Math.min(newTop, maxTop));
@@ -33,13 +33,15 @@ import {
33
33
  loading,
34
34
  updateTheme,
35
35
  getWinTop,
36
- exclAttribute
36
+ exclAttribute,
37
+ getParams
37
38
  } from 'eoss/src/utils/util';
38
39
  import { getStorage, setStorage, removeStorage} from 'eoss/src/utils/storage';
39
40
  import { timeCycle } from 'eoss/src/utils/date';
40
41
  import { socket } from 'eoss/src/utils/websocket';
41
42
  import { ajax, getMainConfig } from 'eoss/src/utils/ajax';
42
43
  import { isObject } from 'eoss/src/utils/types';
44
+ const appid = getParams('applicationId');
43
45
  /**
44
46
  * 主框架组件(早期版本)
45
47
  * 功能说明:提供完整的系统布局框架,包含应用菜单、子菜单、消息通知、设置面板等功能
@@ -481,8 +483,8 @@ export default {
481
483
  // 公用窗口面板配置
482
484
  drawer: {
483
485
  visible: false,
486
+ size: '100%',
484
487
  direction: 'ltr',
485
- ai: {},
486
488
  im: {},
487
489
  active: ''
488
490
  },
@@ -621,6 +623,8 @@ export default {
621
623
  bus.$on('windowOpen', this.winOpen);
622
624
  bus.$on('windowClose', this.winClose);
623
625
  bus.$on('jumpMenu', this.jumpMenu);
626
+ bus.$on('sendMsg', this.sendMsg);
627
+ bus.$on('handleClickApp', this.handleClickApp);
624
628
  bus.$on('emit', (method, args) => {
625
629
  // 主应用发送事件
626
630
  bus.$emit(method, args);
@@ -634,6 +638,8 @@ export default {
634
638
  window.menuRefresh = this.handleRefresh;
635
639
  window.jumpMenu = this.jumpMenu;
636
640
  window.changeAi = this.changeAi;
641
+ window.sendMsg = this.sendMsg;
642
+ window.handleClickApp = this.handleClickApp;
637
643
 
638
644
  window.addEventListener('message', this.handleMessage);
639
645
  });
@@ -674,6 +680,8 @@ export default {
674
680
  bus.$off('jumpMenu');
675
681
  bus.$off('emit');
676
682
  bus.$off('changeAi');
683
+ bus.$off('sendMsg');
684
+ bus.$off('handleClickApp');
677
685
  }
678
686
 
679
687
  // 清除全局变量,防止内存泄漏
@@ -684,6 +692,8 @@ export default {
684
692
  delete window.menuRefresh;
685
693
  delete window.jumpMenu;
686
694
  delete window.changeAi;
695
+ delete window.sendMsg;
696
+ delete window.handleClickApp;
687
697
  },
688
698
  /**
689
699
  * @desc: 切换布局风格
@@ -966,22 +976,59 @@ export default {
966
976
  case 'changeAi': // 人工智能是否展开
967
977
  this.changeAi(args);
968
978
  break;
979
+ case 'sendMsg':
980
+ this.sendMsg(args);
981
+ break;
982
+ case 'handleClickApp':
983
+ this.handleClickApp(args);
984
+ break;
969
985
  }
970
986
  },
987
+ sendMsg(res) {
988
+ let iframe = null;
989
+ if (res.id) {
990
+ iframe = document.getElementById(res.id);
991
+ } else if (res.name) {
992
+ iframe = document.querySelector(`iframe[name="${res.name}"]`);
993
+ }
994
+ if (!iframe) {
995
+ iframe = document.querySelector('iframe');
996
+ }
997
+ if (iframe) {
998
+ if (Array.isArray(iframe)) {
999
+ iframe.forEach((item) => {
1000
+ item.contentWindow.postMessage(res.data, '*');
1001
+ });
1002
+ } else {
1003
+ iframe.contentWindow.postMessage(res.data, '*');
1004
+ }
1005
+ }
1006
+
1007
+ },
971
1008
  /**
972
1009
  * @desc:改变人工智能状态
973
1010
  * @author huangbo
974
1011
  * @date 2024年9月7日
975
1012
  **/
976
- changeAi(type) {
1013
+ changeAi(res) {
1014
+ if (!res) {
1015
+ return;
1016
+ }
1017
+ let config = {};
1018
+ let type = 'open';
1019
+ if (typeof res === 'string') {
1020
+ type = res;
1021
+ } else {
1022
+ const { type: resType, ...other } = res;
1023
+ config = other;
1024
+ type = resType;
1025
+ }
977
1026
  if (type === 'open') {
1027
+ this.handlerSetDrawer({type: 'ai', direction: 'rtl', ...config, visible: true});
978
1028
  this.aiOpen = true;
979
- } else if (type === 'close') {
980
- this.aiOpen = false;
981
- } else if (type === 'full') {
982
- this.aiFull = !this.aiFull;
983
- } else if (type === 'float') {
984
- this.aiFloat = !this.aiFloat;
1029
+ } else if (type === 'close' || type === 'float') {
1030
+ this.handlerSetDrawer({type: 'ai', direction: 'rtl', ...config, visible: false});
1031
+ // this.aiOpen = false;
985
1032
  }
986
1033
  },
987
1034
  /**
@@ -1197,6 +1244,7 @@ export default {
1197
1244
  } else {
1198
1245
  this.aiConfig = {width: 56, height: 56, ...res[i]};
1199
1246
  }
1247
+ this.aiConfig.float && (this.aiFloat = true);
1200
1248
  break;
1201
1249
  case 'imConfig':
1202
1250
  if (typeof res[i] === 'string') {
@@ -1406,24 +1454,52 @@ export default {
1406
1454
  renderMenus(res) {
1407
1455
  this.menus = res;
1408
1456
  this.setTips(this.menus);
1409
- if (this.indexUrl) {
1410
- let obj = this.getMenu(this.menuApps, this.indexUrl);
1457
+ if (appid || this.indexUrl) {
1458
+ let obj = null;
1459
+ if (appid) {
1460
+ obj = this.getMenu(this.menuApps, appid, 'id');
1461
+ }
1411
1462
  if (!obj) {
1412
- obj = this.getMenu(this.menus, this.indexUrl);
1463
+ obj = this.getMenu(this.menus, appid, 'id');
1413
1464
  }
1414
- obj = obj
1415
- ? JSON.parse(JSON.stringify(obj))
1416
- : {
1417
- url: this.indexUrl,
1418
- text: this.indexTitle,
1419
- id: '0',
1420
- appCode: 'indexUrl'
1421
- };
1422
- this.homePage = this.setIframeType(obj);
1465
+ if (!obj) {
1466
+ console.error('未找到应用菜单', appid);
1467
+ } else {
1468
+ obj = JSON.parse(JSON.stringify(obj));
1469
+ }
1470
+ let homePage = null;
1471
+ if (this.indexUrl) {
1472
+ homePage = this.getMenu(this.menuApps, this.indexUrl);
1473
+ }
1474
+ if (!homePage) {
1475
+ homePage = this.getMenu(this.menus, this.indexUrl);
1476
+ }
1477
+ homePage = homePage ? JSON.parse(JSON.stringify(homePage)) : {
1478
+ url: this.indexUrl,
1479
+ text: this.indexTitle,
1480
+ id: '0',
1481
+ appCode: 'indexUrl'
1482
+ };
1483
+ this.homePage = this.setIframeType(homePage);
1423
1484
  if (!this.appCode) {
1424
- this.active = this.homePage.id;
1425
- this.tabs = [this.homePage];
1426
- this.activeName = this.homePage.id;
1485
+ const tid = (obj || {}).id || this.homePage.id;
1486
+ const source = (obj || {}).source || this.homePage.source;
1487
+ this.subMenus = this.getRootMenu(this.menus, tid);
1488
+ this.active = tid;
1489
+ this.tabs = [obj || this.homePage];
1490
+ this.activeName = tid;
1491
+ if (this.subMenus) {
1492
+ this.tabMenus[tid] = this.subMenus;
1493
+ this.showMenu = true;
1494
+ } else {
1495
+ this.showMenu = false;
1496
+ }
1497
+ if (this.isFourthTabs && source && source === 'fourthTabs') {
1498
+ const parentMenu = this.getParentMenu(this.menus, obj || this.homePage);
1499
+ this.subActive = parentMenu.id;
1500
+ } else {
1501
+ this.subActive = tid;
1502
+ }
1427
1503
  }
1428
1504
  }
1429
1505
  if (this.appCode) {
@@ -2028,18 +2104,19 @@ export default {
2028
2104
  * @author huangbo
2029
2105
  * @date 2024年9月7日
2030
2106
  **/
2031
- handlerSetDrawer(res, type, direction = 'ltr') {
2032
- this.drawer.visible = true;
2107
+ handlerSetDrawer({type, direction = 'ltr', visible = true, size = '100%'}) {
2108
+ this.drawer.visible = visible;
2033
2109
  this.drawer.active = type;
2034
2110
  this.drawer.direction = direction;
2035
- if (res) {
2036
- let { mounted, url } = res;
2037
- this.drawer[type] = {
2038
- mounted,
2039
- url,
2040
- name: res.name || uuid()
2041
- };
2042
- }
2111
+ this.drawer.size = type === 'ai' ? this.aiConfig.size || size : type === 'im' ? this.imConfig.size || size : size;
2112
+ // if (res) {
2113
+ // let { mounted, url } = res;
2114
+ // this.drawer[type] = {
2115
+ // mounted,
2116
+ // url,
2117
+ // name: res.name || uuid()
2118
+ // };
2119
+ // }
2043
2120
  },
2044
2121
  /**
2045
2122
  * @desc:关闭Drawer界面
@@ -2270,10 +2347,10 @@ export default {
2270
2347
  this.showSet = false;
2271
2348
  break;
2272
2349
  case 'ai':
2273
- this.handlerSetDrawer(this.aiConfig, 'ai', 'rtl');
2350
+ this.handlerSetDrawer({type: 'ai', direction: 'rtl', visible: true});
2274
2351
  break;
2275
2352
  case 'im':
2276
- this.handlerSetDrawer(this.imConfig, 'im', 'rtl');
2353
+ this.handlerSetDrawer({type: 'im', direction: 'rtl', visible: true});
2277
2354
  break;
2278
2355
  case 'goView':
2279
2356
  window.open(res.path, '_blank');
@@ -203,9 +203,9 @@ export default {
203
203
 
204
204
  // 处理快速跳转按钮
205
205
  if (target.classList.contains('more')) {
206
- if (target.classList.contains('quickprev')) {
206
+ if (target.classList.contains('btn-quickprev')) {
207
207
  newPage = currentPage - pagerCountOffset;
208
- } else if (target.classList.contains('quicknext')) {
208
+ } else if (target.classList.contains('btn-quicknext')) {
209
209
  newPage = currentPage + pagerCountOffset;
210
210
  }
211
211
  }
@@ -110,7 +110,10 @@ export default {
110
110
  * @type {Boolean}
111
111
  * @default false
112
112
  */
113
- background: Boolean,
113
+ background: {
114
+ type: Boolean,
115
+ default: true
116
+ },
114
117
  /**
115
118
  * 是否显示边框
116
119
  * @type {Boolean}
@@ -81,7 +81,7 @@ export default {
81
81
  * 二维码宽度
82
82
  * @type {Number}
83
83
  */
84
- width: Number,
84
+ width: [Number, String],
85
85
  /**
86
86
  * 扫码登录轮询时间间隔
87
87
  * @type {Number}
@@ -108,7 +108,11 @@ export default {
108
108
  return this.content || this.identifyingId;
109
109
  },
110
110
  _width() {
111
- return this.width || DEFAULT_SIZE[this.size] || DEFAULT_SIZE.default;
111
+ if(this.width){
112
+ return parseInt(this.width);
113
+ }
114
+ const sizes = (this.$EOSS || {}).qrCodeSize || DEFAULT_SIZE;
115
+ return sizes[this.size];
112
116
  }
113
117
  },
114
118
  watch: {},
@@ -163,6 +163,12 @@
163
163
  v-show="options.length > 0 && !loading"
164
164
  >
165
165
  <slot>
166
+ <es-option
167
+ class="es-select-dropdown__item-created"
168
+ :value="query"
169
+ created
170
+ v-if="showNewOption"
171
+ ></es-option>
166
172
  <es-option-tree
167
173
  v-if="tree"
168
174
  ref="selectTree"
@@ -177,7 +183,7 @@
177
183
  'node-collapse': handleCollapse
178
184
  }"
179
185
  ></es-option-tree>
180
- <template v-else-if="showNewOption || results.length">
186
+ <template v-else-if="results.length">
181
187
  <template v-if="results.length">
182
188
  <template v-for="item in results">
183
189
  <es-option-group
@@ -187,13 +193,23 @@
187
193
  >
188
194
  <es-option
189
195
  v-for="child in item.children"
190
- :key="child.key || child.id || child[labelKey] || child"
196
+ :key="
197
+ child.key ||
198
+ child.id ||
199
+ child[labelKey] ||
200
+ JSON.stringify(child)
201
+ "
191
202
  v-bind="getProps(child)"
192
203
  ></es-option>
193
204
  </es-option-group>
194
205
  <es-option
195
206
  v-else
196
- :key="item.key || item.id || item[labelKey] || item"
207
+ :key="
208
+ item.key ||
209
+ item.id ||
210
+ item[labelKey] ||
211
+ JSON.stringify(item)
212
+ "
197
213
  v-bind="getProps(item)"
198
214
  ></es-option>
199
215
  </template>
@@ -1637,9 +1653,15 @@ export default {
1637
1653
  },
1638
1654
 
1639
1655
  getValueKey(item) {
1640
- return this.getType(item.value) !== '[object object]'
1641
- ? item.value
1642
- : getValueByPath(item.value, this.valueKey);
1656
+ const value =
1657
+ this.getType(item.value) !== '[object object]'
1658
+ ? item.value
1659
+ : getValueByPath(item.value, this.valueKey);
1660
+ // 确保返回字符串或数字类型的key
1661
+ if (typeof value === 'object') {
1662
+ return JSON.stringify(value);
1663
+ }
1664
+ return value;
1643
1665
  },
1644
1666
  handleExpand(data, node) {
1645
1667
  this.$emit('node-expand', data, node);
@@ -32,7 +32,7 @@
32
32
  :events="item.events"
33
33
  @click.stop="item.event"
34
34
  />
35
- <field-renderer
35
+ <field-render
36
36
  :key="item.key || item.id || index"
37
37
  v-else-if="
38
38
  ['radio', 'checkbox', 'select', 'switch'].includes(
@@ -40,7 +40,7 @@
40
40
  )
41
41
  "
42
42
  v-bind="item"
43
- ></field-renderer>
43
+ ></field-render>
44
44
  </template>
45
45
  </template>
46
46
  </template>
@@ -118,7 +118,7 @@
118
118
  :events="item.events"
119
119
  @click.stop="item.event"
120
120
  />
121
- <field-renderer
121
+ <field-render
122
122
  :key="item.key || item.id || index"
123
123
  v-else-if="
124
124
  ['radio', 'checkbox', 'select', 'switch'].includes(
@@ -126,7 +126,7 @@
126
126
  )
127
127
  "
128
128
  v-bind="item"
129
- ></field-renderer>
129
+ ></field-render>
130
130
  </template>
131
131
  </template>
132
132
  </template>
@@ -149,6 +149,7 @@
149
149
 
150
150
  <script>
151
151
  import EsIcon from 'eoss/packages/icon/src/icon';
152
+ import FieldRender from 'eoss/src/components/field-render.vue';
152
153
 
153
154
  /**
154
155
  * Step 步骤项组件
@@ -165,7 +166,8 @@ export default {
165
166
  name: 'EsStep',
166
167
 
167
168
  components: {
168
- EsIcon
169
+ EsIcon,
170
+ FieldRender
169
171
  },
170
172
 
171
173
  props: {
@@ -558,6 +558,7 @@ export default {
558
558
  class={[
559
559
  'es-tabs__nav-wrap',
560
560
  hideAfter ? 'is-hide' : '',
561
+ scrollable ? 'is-scrollable' : '',
561
562
  `is-${this.rootTabs.tabPosition}`
562
563
  ]}
563
564
  >
@@ -309,9 +309,7 @@ export default {
309
309
  ''
310
310
  )}
311
311
  {newButton}
312
- <div class={['es-tabs__nav-main', `is-${tabPosition}`]}>
313
312
  <tab-nav {...navData} class={[hideBar ? 'is-hide' : '']} />
314
- </div>
315
313
  {this.$slots.append ? (
316
314
  <div
317
315
  ref={'append'}
@@ -23,6 +23,9 @@ function compile() {
23
23
  .pipe(dest('./lib'));
24
24
  }
25
25
 
26
+ /**
27
+ * 复制字体文件
28
+ */
26
29
  function copyfont() {
27
30
  return src('./src/fonts/**')
28
31
  .pipe(dest('./lib/fonts'))
@@ -1,6 +1,7 @@
1
1
  @import 'common/var.scss';
2
2
  @import './mixins/mixins.scss';
3
3
  @include b(account-login) {
4
+ height: auto !important;
4
5
  .es-input--prefix {
5
6
  .es-input__prefix {
6
7
  color: $--font-color-base;
@@ -254,4 +254,4 @@ table {
254
254
  }
255
255
  .es-icon_image {
256
256
  vertical-align: middle;
257
- }
257
+ }
@@ -1509,3 +1509,19 @@ $--breakpoints-spec: (
1509
1509
  min-width: $--xl
1510
1510
  )
1511
1511
  );
1512
+ /* Login
1513
+ --------------------------*/
1514
+
1515
+ $--login-width: 460px !default;
1516
+ $--login-width-large: $--login-width !default;
1517
+ $--login-width-base: $--login-width * 0.9 !default;
1518
+ $--login-width-medium: $--login-width * 0.8 !default;
1519
+ $--login-width-small: $--login-width * 0.7 !default;
1520
+ $--login-width-mini: $--login-width * 0.6 !default;
1521
+
1522
+ $--login-padding: 40px !default;
1523
+ $--login-padding-large: $--login-padding !default;
1524
+ $--login-padding-base: $--login-padding * 0.8 !default;
1525
+ $--login-padding-medium: $--login-padding * 0.6 !default;
1526
+ $--login-padding-small: $--login-padding * 0.6 !default;
1527
+ $--login-padding-mini: $--login-padding * 0.5 !default;