eoss 0.1.0-alpha.25 → 0.1.0-alpha.26

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 (254) hide show
  1. package/lib/0.js +1 -1
  2. package/lib/1.js +1 -1
  3. package/lib/10.js +1 -1
  4. package/lib/11.js +1 -1
  5. package/lib/12.js +1 -1
  6. package/lib/13.js +1 -1
  7. package/lib/14.js +1 -1
  8. package/lib/15.js +1 -1
  9. package/lib/16.js +1 -1
  10. package/lib/17.js +1 -1
  11. package/lib/18.js +1 -1
  12. package/lib/19.js +1 -1
  13. package/lib/20.js +1 -1
  14. package/lib/21.js +1 -1
  15. package/lib/22.js +1 -1
  16. package/lib/23.js +1 -1
  17. package/lib/24.js +1 -1
  18. package/lib/25.js +1 -1
  19. package/lib/26.js +1 -1
  20. package/lib/27.js +1 -1
  21. package/lib/28.js +1 -1
  22. package/lib/29.js +1 -1
  23. package/lib/3.js +1 -1
  24. package/lib/30.js +1 -1
  25. package/lib/31.js +1 -1
  26. package/lib/32.js +1 -1
  27. package/lib/33.js +1 -1
  28. package/lib/34.js +1 -1
  29. package/lib/35.js +1 -1
  30. package/lib/36.js +1 -1
  31. package/lib/37.js +1 -1
  32. package/lib/38.js +1 -1
  33. package/lib/39.js +1 -1
  34. package/lib/4.js +1 -1
  35. package/lib/40.js +1 -1
  36. package/lib/41.js +1 -1
  37. package/lib/42.js +1 -1
  38. package/lib/43.js +1 -1
  39. package/lib/44.js +1 -1
  40. package/lib/45.js +1 -1
  41. package/lib/46.js +1 -1
  42. package/lib/47.js +1 -1
  43. package/lib/48.js +1 -1
  44. package/lib/49.js +1 -1
  45. package/lib/5.js +1 -1
  46. package/lib/50.js +1 -1
  47. package/lib/51.js +1 -1
  48. package/lib/52.js +1 -1
  49. package/lib/53.js +1 -1
  50. package/lib/54.js +1 -1
  51. package/lib/55.js +1 -1
  52. package/lib/56.js +1 -1
  53. package/lib/57.js +1 -1
  54. package/lib/58.js +1 -1
  55. package/lib/59.js +1 -1
  56. package/lib/6.js +1 -1
  57. package/lib/60.js +1 -1
  58. package/lib/61.js +1 -1
  59. package/lib/62.js +1 -1
  60. package/lib/63.js +1 -1
  61. package/lib/64.js +1 -1
  62. package/lib/65.js +1 -1
  63. package/lib/66.js +1 -1
  64. package/lib/67.js +1 -1
  65. package/lib/68.js +1 -1
  66. package/lib/69.js +1 -1
  67. package/lib/7.js +1 -1
  68. package/lib/70.js +1 -1
  69. package/lib/71.js +1 -1
  70. package/lib/72.js +1 -1
  71. package/lib/73.js +1 -1
  72. package/lib/74.js +1 -1
  73. package/lib/75.js +1 -1
  74. package/lib/76.js +1 -1
  75. package/lib/77.js +1 -1
  76. package/lib/78.js +1 -1
  77. package/lib/79.js +1 -1
  78. package/lib/8.js +1 -1
  79. package/lib/80.js +1 -1
  80. package/lib/81.js +1 -1
  81. package/lib/9.js +1 -1
  82. package/lib/account-login.js +1000 -971
  83. package/lib/alert.js +2 -2
  84. package/lib/aside.js +2 -2
  85. package/lib/audit-trajectory.js +75 -71
  86. package/lib/autocomplete.js +2136 -1951
  87. package/lib/avatar.js +2 -2
  88. package/lib/backtop.js +2 -2
  89. package/lib/badge.js +2 -2
  90. package/lib/breadcrumb-item.js +4 -4
  91. package/lib/breadcrumb.js +4 -4
  92. package/lib/button-group.js +12 -12
  93. package/lib/button.js +2 -2
  94. package/lib/ca-login.js +913 -888
  95. package/lib/calendar.js +872 -847
  96. package/lib/card.js +2 -2
  97. package/lib/carousel-item.js +905 -880
  98. package/lib/carousel.js +1042 -1017
  99. package/lib/cascader-panel.js +926 -901
  100. package/lib/cascader.js +2022 -1837
  101. package/lib/checkbox-button.js +2 -2
  102. package/lib/checkbox-group.js +1000 -971
  103. package/lib/checkbox.js +2 -2
  104. package/lib/col.js +2 -2
  105. package/lib/collapse-item.js +2174 -1980
  106. package/lib/collapse.js +2175 -1980
  107. package/lib/color-picker.js +1112 -952
  108. package/lib/config/api.js +3 -0
  109. package/lib/container.js +2 -2
  110. package/lib/cron.js +2 -2
  111. package/lib/data-table.js +1007 -978
  112. package/lib/date-picker.js +2142 -1957
  113. package/lib/dialog.js +910 -885
  114. package/lib/divider.js +2 -2
  115. package/lib/drawer.js +2 -2
  116. package/lib/dropdown-item.js +4 -4
  117. package/lib/dropdown-menu.js +1104 -944
  118. package/lib/dropdown.js +925 -900
  119. package/lib/email-login.js +999 -970
  120. package/lib/empty.js +2 -2
  121. package/lib/eoss.common.js +8751 -4166
  122. package/lib/flip.js +2 -2
  123. package/lib/flow-group.js +906 -881
  124. package/lib/flow.js +1112 -1083
  125. package/lib/flows.js +1010 -981
  126. package/lib/footer.js +2 -2
  127. package/lib/form-item.js +909 -884
  128. package/lib/form.js +2185 -1986
  129. package/lib/guide.js +620 -0
  130. package/lib/header.js +2 -2
  131. package/lib/icon.js +981 -952
  132. package/lib/icons.js +2 -2
  133. package/lib/image-viewer.js +907 -882
  134. package/lib/image.js +4 -4
  135. package/lib/index.js +1 -1
  136. package/lib/infinite-scroll.js +2 -2
  137. package/lib/input-number.js +4 -4
  138. package/lib/input.js +910 -885
  139. package/lib/link.js +2 -2
  140. package/lib/loading.js +2 -2
  141. package/lib/login.js +1027 -998
  142. package/lib/lowcode.js +17336 -13510
  143. package/lib/main.js +14933 -14625
  144. package/lib/marquee.js +907 -882
  145. package/lib/menu-item-group.js +2 -2
  146. package/lib/menu-item.js +2 -2
  147. package/lib/menu.js +2011 -1826
  148. package/lib/message-box.js +923 -898
  149. package/lib/message.js +911 -886
  150. package/lib/notification.js +911 -886
  151. package/lib/option-group.js +2 -2
  152. package/lib/option.js +907 -882
  153. package/lib/page-header.js +2 -2
  154. package/lib/pagination.js +910 -885
  155. package/lib/phone-login.js +998 -969
  156. package/lib/popconfirm.js +12 -12
  157. package/lib/popover.js +2009 -1824
  158. package/lib/process-config.js +1015 -986
  159. package/lib/process-module.js +1001 -972
  160. package/lib/process-rule.js +1019 -990
  161. package/lib/progress.js +5 -5
  162. package/lib/qr-code.js +4 -4
  163. package/lib/qrcode-login.js +1057 -1028
  164. package/lib/radio-button.js +2 -2
  165. package/lib/radio-group.js +998 -969
  166. package/lib/radio.js +2 -2
  167. package/lib/rate.js +907 -882
  168. package/lib/row.js +2 -2
  169. package/lib/scrollbar.js +904 -879
  170. package/lib/select.js +2135 -1945
  171. package/lib/selector-panel.js +1009 -980
  172. package/lib/selector.js +1001 -972
  173. package/lib/slider.js +2 -2
  174. package/lib/step.js +2172 -1977
  175. package/lib/steps.js +907 -882
  176. package/lib/submenu.js +1119 -959
  177. package/lib/switch.js +907 -882
  178. package/lib/tab-pane.js +2 -2
  179. package/lib/table-column.js +906 -881
  180. package/lib/table.js +2236 -2047
  181. package/lib/tabs.js +911 -886
  182. package/lib/tag.js +2 -2
  183. package/lib/theme-chalk/base.css +1 -1
  184. package/lib/theme-chalk/guide.css +1 -0
  185. package/lib/theme-chalk/icon.css +1 -1
  186. package/lib/theme-chalk/index.css +1 -1
  187. package/lib/theme-chalk/lowcode-view.css +1 -0
  188. package/lib/theme-chalk/lowcode.css +1 -1
  189. package/lib/theme-chalk/main.css +1 -1
  190. package/lib/theme-chalk/pagination.css +1 -1
  191. package/lib/theme-chalk/select-dropdown.css +1 -1
  192. package/lib/theme-chalk/select.css +1 -1
  193. package/lib/theme-chalk/wujie.css +1 -0
  194. package/lib/time-picker.js +1977 -1792
  195. package/lib/time-select.js +1978 -1793
  196. package/lib/timeline-item.js +2 -2
  197. package/lib/timeline.js +2 -2
  198. package/lib/tips.js +998 -969
  199. package/lib/toolbar.js +2 -2
  200. package/lib/tooltip.js +2006 -1821
  201. package/lib/transfer.js +916 -891
  202. package/lib/tree-group.js +978 -949
  203. package/lib/tree.js +999 -970
  204. package/lib/update-history.js +76 -72
  205. package/lib/upload.js +1028 -999
  206. package/lib/utils/frame.js +133 -0
  207. package/lib/wujie.js +5037 -0
  208. package/package.json +3 -2
  209. package/packages/cascader/src/cascader.vue +1 -1
  210. package/packages/date-picker/src/picker.vue +1 -1
  211. package/packages/form/src/form-item-render.vue +10 -6
  212. package/packages/guide/index.js +8 -0
  213. package/packages/guide/src/directive.js +47 -0
  214. package/packages/guide/src/guide.vue +89 -0
  215. package/packages/guide/src/manager.js +133 -0
  216. package/packages/input/src/input.vue +1 -1
  217. package/packages/lowcode/src/aside.vue +41 -8
  218. package/packages/lowcode/src/attribute/bind.vue +2 -4
  219. package/packages/lowcode/src/attribute/dependency.vue +3 -16
  220. package/packages/lowcode/src/attribute/function.vue +2 -4
  221. package/packages/lowcode/src/attribute/property.vue +3 -15
  222. package/packages/lowcode/src/attribute/styles.vue +105 -11
  223. package/packages/lowcode/src/attribute.vue +5 -35
  224. package/packages/lowcode/src/canvas.vue +223 -97
  225. package/packages/lowcode/src/iframe.vue +60 -0
  226. package/packages/lowcode/src/lowcode.vue +32 -8
  227. package/packages/lowcode/src/pages.vue +1 -1
  228. package/packages/lowcode/src/render.vue +312 -70
  229. package/packages/lowcode/src/util/source-generator.js +7 -11
  230. package/packages/lowcode/src/util/source-parser.js +1 -1
  231. package/packages/lowcode-view/index.js +1 -1
  232. package/packages/lowcode-view/src/Iframe.vue +55 -0
  233. package/packages/lowcode-view/src/Modulels.vue +239 -0
  234. package/packages/lowcode-view/src/render.vue +337 -0
  235. package/packages/lowcode-view/src/view.vue +763 -0
  236. package/packages/main/src/components/pages.vue +11 -2
  237. package/packages/main/src/event-center.js +160 -0
  238. package/packages/main/src/minxs.js +60 -90
  239. package/packages/progress/src/progress.vue +1 -1
  240. package/packages/select/src/select.vue +2 -1
  241. package/packages/theme-chalk/src/common/var.scss +34 -10
  242. package/packages/theme-chalk/src/guide.scss +93 -0
  243. package/packages/theme-chalk/src/icon.scss +425 -426
  244. package/packages/theme-chalk/src/index.scss +2 -0
  245. package/packages/theme-chalk/src/lowcode-view.scss +288 -0
  246. package/packages/theme-chalk/src/lowcode.scss +11 -1
  247. package/packages/theme-chalk/src/select-dropdown.scss +1 -1
  248. package/packages/theme-chalk/src/wujie.scss +5 -0
  249. package/packages/wujie/index.js +10 -0
  250. package/packages/wujie/src/wujie.vue +205 -0
  251. package/src/config/api.js +3 -0
  252. package/src/index.js +325 -319
  253. package/src/utils/frame.js +102 -0
  254. package/packages/lowcode/src/view.vue +0 -187
@@ -43,6 +43,7 @@
43
43
  @import "./form.scss";
44
44
  @import "./form-item.scss";
45
45
  @import "./footer.scss";
46
+ @import "./guide.scss";
46
47
  @import "./header.scss";
47
48
  @import "./icons.scss";
48
49
  @import "./image.scss";
@@ -100,6 +101,7 @@
100
101
  @import "./tree.scss";
101
102
  @import "./tree-group.scss";
102
103
  @import "./upload.scss";
104
+ @import "./wujie.scss";
103
105
  @import "./process-module.scss";
104
106
  @import "./audit-trajectory.scss";
105
107
  @import "./process-rule.scss";
@@ -0,0 +1,288 @@
1
+ @import './common/var.scss';
2
+ @import './mixins/mixins.scss';
3
+ @include b(lowcode-view) {
4
+ height: 100%;
5
+ .es-scrollbar__view {
6
+ padding: 16px;
7
+ }
8
+ @include e(edit-switch) {
9
+ position: fixed;
10
+ top: 120px;
11
+ right: 2px;
12
+ z-index: 999;
13
+
14
+ @include m(trigger) {
15
+ display: flex;
16
+ align-items: center;
17
+ height: 40px;
18
+ transform: translateX(calc(100% - 4px));
19
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
20
+ cursor: pointer;
21
+
22
+ &:hover {
23
+ transform: translateX(0);
24
+
25
+ .es-lowcode-view__edit-switch--strip {
26
+ opacity: 0;
27
+ }
28
+ .es-lowcode-view__edit-switch--content {
29
+ display: flex;
30
+ }
31
+ }
32
+ }
33
+
34
+ @include m(strip) {
35
+ width: 8px;
36
+ height: 100%;
37
+ background: $--color-primary-light-5;
38
+ border-radius: 2px 0 0 2px;
39
+ flex-shrink: 0;
40
+ transition: opacity 0.2s;
41
+ }
42
+
43
+ @include m(content) {
44
+ display: none;
45
+ align-items: center;
46
+ gap: 8px;
47
+ padding: 6px 16px 6px 10px;
48
+ background: #fff;
49
+ border-radius: 24px 0 0 24px;
50
+ box-shadow: -2px 2px 12px rgba(0, 0, 0, 0.12);
51
+ white-space: nowrap;
52
+ }
53
+
54
+ @include m(label) {
55
+ font-size: 14px;
56
+ color: #333;
57
+ }
58
+ @include when(edit) {
59
+ right: 0;
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: 12px;
63
+ align-items: flex-end;
64
+
65
+ .es-lowcode-view__edit-switch--btn {
66
+ display: flex;
67
+ align-items: center;
68
+ gap: 8px;
69
+ padding: 6px 16px 6px 6px;
70
+ background: #fff;
71
+ border-radius: 24px 0 0 24px;
72
+ box-shadow: -2px 2px 12px rgba(0, 0, 0, 0.12);
73
+ cursor: pointer;
74
+ transition: box-shadow 0.2s;
75
+
76
+ &:hover {
77
+ box-shadow: -2px 4px 16px rgba(0, 0, 0, 0.18);
78
+ }
79
+
80
+ &.is-confirm {
81
+ padding-right: 20px;
82
+ }
83
+
84
+ .es-lowcode-view__edit-switch--label {
85
+ font-size: 14px;
86
+ color: #333;
87
+ white-space: nowrap;
88
+ }
89
+ }
90
+ }
91
+
92
+ .es-button {
93
+ font-size: 18px;
94
+ }
95
+ }
96
+ @include e(waterfall) {
97
+ position: relative;
98
+ transition: height 0.2s ease;
99
+ display: grid;
100
+ }
101
+
102
+ .es-lowcode-view-sortable-ghost {
103
+ opacity: 0.4;
104
+
105
+ .item-content {
106
+ background-color: #ccc;
107
+ }
108
+ }
109
+
110
+ .es-lowcode-view-sortable-drag {
111
+ cursor: grabbing;
112
+ opacity: 0.8;
113
+ }
114
+
115
+ @include e(waterfall-item) {
116
+ position: relative;
117
+ &::after {
118
+ content: '';
119
+ position: absolute;
120
+ top: 0;
121
+ left: 0;
122
+ right: 0;
123
+ bottom: 0;
124
+ background-color: rgba(0, 0, 0, 0.3);
125
+ border: 1px dashed #cccccc;
126
+ border-radius: 6px;
127
+ }
128
+ }
129
+ @include e(waterfall-add) {
130
+ background-color: rgba(0, 0, 0, 0.3);
131
+ border-radius: 6px;
132
+ height: 100px;
133
+ border: 1px dashed #cccccc;
134
+ display: flex;
135
+ flex-direction: column;
136
+ align-items: center;
137
+ justify-content: center;
138
+ gap: 12px;
139
+ font-size: 14px;
140
+ color: #666666;
141
+ cursor: pointer;
142
+ }
143
+ @include e(resize-handle) {
144
+ position: absolute;
145
+ z-index: 100;
146
+ .es-lowcode__resize-size {
147
+ position: absolute;
148
+ font-size: 12px;
149
+ }
150
+ &.is-top {
151
+ top: 0;
152
+ left: 50%;
153
+ transform: translateX(-50%);
154
+ height: 8px;
155
+ line-height: 8px;
156
+ cursor: ns-resize;
157
+ .es-lowcode__resize-size {
158
+ top: 0;
159
+ right: 0;
160
+ transform: translateX(100%);
161
+ }
162
+ }
163
+ &.is-bottom {
164
+ bottom: 0;
165
+ left: 50%;
166
+ transform: translateX(-50%);
167
+ height: 8px;
168
+ line-height: 8px;
169
+ cursor: ns-resize;
170
+ .es-lowcode__resize-size {
171
+ bottom: 0;
172
+ right: 0;
173
+ transform: translateX(100%);
174
+ }
175
+ }
176
+ &.is-left {
177
+ left: 0;
178
+ top: 50%;
179
+ transform: translateY(-50%);
180
+ width: 12px;
181
+ text-align: center;
182
+ cursor: ew-resize;
183
+ .es-lowcode__resize-size {
184
+ left: 0;
185
+ bottom: 0;
186
+ transform: translateY(100%);
187
+ }
188
+ }
189
+ &.is-right {
190
+ right: 0;
191
+ top: 50%;
192
+ transform: translateY(-50%);
193
+ width: 12px;
194
+ text-align: center;
195
+ cursor: ew-resize;
196
+ .es-lowcode__resize-size {
197
+ right: 0;
198
+ bottom: 0;
199
+ transform: translateY(100%);
200
+ }
201
+ }
202
+ }
203
+
204
+ @include e(modules) {
205
+ height: 100%;
206
+ overflow: hidden;
207
+ @include m(scrollbar) {
208
+ height: calc(100% - 48px);
209
+ &.is-full {
210
+ height: 100%;
211
+ }
212
+ .es-scrollbar__view {
213
+ padding: 16px;
214
+ }
215
+ .es-checkbox-group {
216
+ display: block;
217
+ }
218
+ .es-checkbox {
219
+ display: block;
220
+ margin: 0;
221
+ position: absolute;
222
+ }
223
+ .es-checkbox__input {
224
+ position: absolute;
225
+ top: 12px;
226
+ right: 12px;
227
+ }
228
+ .es-checkbox__label {
229
+ display: block;
230
+ height: 100%;
231
+ padding: 0;
232
+ }
233
+ }
234
+ @include m(waterfall) {
235
+ position: relative;
236
+ width: 100%;
237
+ }
238
+ @include m(pagination) {
239
+ justify-content: center;
240
+ }
241
+ }
242
+ @include e(iframe) {
243
+ border: 0;
244
+ height: 100%;
245
+ .es-card__header {
246
+ border: 0;
247
+ padding-bottom: 0;
248
+ & + .es-card__body {
249
+ height: calc(100% - 43px);
250
+ }
251
+ }
252
+ .es-card__body {
253
+ height: 100%;
254
+ }
255
+ @include m(header) {
256
+ line-height: 24px;
257
+ }
258
+ @include m(header-title-icon) {
259
+ display: inline-block;
260
+ width: 20px;
261
+ height: 20px;
262
+ line-height: 20px;
263
+ text-align: center;
264
+ font-size: 12px;
265
+ background-color: $--color-primary-light-2;
266
+ border-radius: 3px;
267
+ color: $--color-primary-light-7;
268
+ position: relative;
269
+ top: -2px;
270
+ }
271
+ @include m(header-title) {
272
+ font-family: Alibaba PuHuiTi 2, Alibaba PuHuiTi 20;
273
+ font-size: 16px;
274
+ color: #121212;
275
+ margin-left: 10px;
276
+ }
277
+ @include m(header-right) {
278
+ float: right;
279
+ cursor: pointer;
280
+ color: #999999;
281
+ .es-icon-shezhi {
282
+ font-size: 16px;
283
+ position: relative;
284
+ top: 1px;
285
+ }
286
+ }
287
+ }
288
+ }
@@ -259,6 +259,14 @@
259
259
  @include m(component) {
260
260
  position: relative;
261
261
  transition: transform 0.2s ease;
262
+ @include when(child) {
263
+ z-index: 2;
264
+ }
265
+ @include when(drop-target) {
266
+ outline: 2px dashed #409eff;
267
+ outline-offset: -2px;
268
+ background-color: rgba(64, 158, 255, 0.05);
269
+ }
262
270
  &::after {
263
271
  content: '';
264
272
  position: absolute;
@@ -269,6 +277,7 @@
269
277
  cursor: move;
270
278
  border: 1px dashed #999;
271
279
  border-radius: 4px;
280
+ z-index: 1;
272
281
  }
273
282
  &:hover {
274
283
  background-color: #fdf5eb;
@@ -408,7 +417,7 @@
408
417
  @include e(handles) {
409
418
  position: absolute;
410
419
  top: 0;
411
- right: 0;
420
+ right: 4px;
412
421
  padding: 0 4px;
413
422
  z-index: 100;
414
423
  .es-button {
@@ -418,6 +427,7 @@
418
427
  @include e(resize-size) {
419
428
  position: absolute;
420
429
  font-size: 16px;
430
+ white-space: nowrap;
421
431
  }
422
432
  @include e(resize-handle) {
423
433
  position: absolute;
@@ -25,7 +25,7 @@
25
25
  &::after {
26
26
  position: absolute;
27
27
  right: 20px;
28
- font-family: 'es-icon';
28
+ font-family: $--font-icon-family;
29
29
  content: '\e758';
30
30
  font-size: 12px;
31
31
  font-weight: bold;
@@ -0,0 +1,5 @@
1
+ @import 'mixins/mixins.scss';
2
+ @include b(wujie) {
3
+ width: 100%;
4
+ height: 100%;
5
+ }
@@ -0,0 +1,10 @@
1
+ import Wujie from './src/wujie';
2
+
3
+ export { bus, setupApp, preloadApp, destroyApp, refreshApp } from './src/wujie';
4
+
5
+ /* istanbul ignore next */
6
+ Wujie.install = function(Vue) {
7
+ Vue.component(Wujie.name, Wujie);
8
+ };
9
+
10
+ export default Wujie;
@@ -0,0 +1,205 @@
1
+ <template>
2
+ <div class="es-wujie" v-loading="loading">
3
+ <WujieVue
4
+ width="100%"
5
+ height="100%"
6
+ :name="name"
7
+ :url="appUrl"
8
+ :sync="sync"
9
+ :alive="alive"
10
+ :degrade="degrade"
11
+ :fiber="fiber"
12
+ :fetch="fetch"
13
+ :props="mergedProps"
14
+ :plugins="plugins"
15
+ :beforeLoad="handleBeforeLoad"
16
+ :beforeMount="handleBeforeMount"
17
+ :afterMount="handleAfterMount"
18
+ :beforeUnmount="handleBeforeUnmount"
19
+ :afterUnmount="handleAfterUnmount"
20
+ :activated="handleActivated"
21
+ :deactivated="handleDeactivated"
22
+ :loadError="handleLoadError"
23
+ ref="wujie"
24
+ ></WujieVue>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ import Vue from 'vue';
30
+ import WujieVue from 'wujie-vue2';
31
+
32
+ // 注册全局组件,供子应用或外部直接使用
33
+ Vue.use(WujieVue);
34
+
35
+ const { bus, setupApp, preloadApp, destroyApp, refreshApp } = WujieVue;
36
+ import { startWith } from 'eoss/src/utils/util';
37
+ export default {
38
+ name: 'EsWujie',
39
+
40
+ components: {
41
+ WujieVue
42
+ },
43
+
44
+ inject: {
45
+ $main: {
46
+ default: () => ({})
47
+ }
48
+ },
49
+
50
+ props: {
51
+ // 子应用名称,
52
+ name: String,
53
+ // 子应用 host
54
+ host: String,
55
+ // 子应用地址
56
+ url: String,
57
+ // 是否同步路由
58
+ sync: Boolean,
59
+ // 保活模式
60
+ alive: {
61
+ type: Boolean,
62
+ default: undefined
63
+ },
64
+ // 降级为 iframe
65
+ degrade: {
66
+ type: Boolean,
67
+ default: undefined
68
+ },
69
+ // 开启 fiber 分片渲染
70
+ fiber: {
71
+ type: Boolean,
72
+ default: undefined
73
+ },
74
+ // 自定义 fetch
75
+ fetch: Function,
76
+ // 传递给子应用的数据
77
+ props: {
78
+ type: Object,
79
+ default: () => ({})
80
+ },
81
+ // 插件
82
+ plugins: {
83
+ type: Array,
84
+ default: null
85
+ },
86
+ // 刷新标识:pages.vue 刷新时修改 keys,触发子应用重建
87
+ keys: String
88
+ },
89
+
90
+ data() {
91
+ return {
92
+ loading: true
93
+ };
94
+ },
95
+
96
+ computed: {
97
+ appUrl() {
98
+ if (this.host && this.url) {
99
+ return startWith(this.url, ['http://', 'https://'])
100
+ ? this.url
101
+ : `${this.host}${this.url}`;
102
+ }
103
+ return this.url;
104
+ },
105
+ /**
106
+ * 合并框架上下文与用户自定义 props,注入子应用
107
+ */
108
+ mergedProps() {
109
+ return {
110
+ // 主应用实例,子应用可通过 $wujie.props.main 访问
111
+ main: this.$main,
112
+ bus,
113
+ ...this.props
114
+ };
115
+ }
116
+ },
117
+
118
+ watch: {
119
+ /**
120
+ * 监听 keys 变化,重建子应用实现刷新
121
+ */
122
+ keys() {
123
+ this.refresh();
124
+ }
125
+ },
126
+
127
+ beforeDestroy() {
128
+ // 组件销毁时清理总线监听,避免内存泄漏
129
+ if (this.name) {
130
+ bus.$off(this.name);
131
+ }
132
+ },
133
+
134
+ methods: {
135
+ /** 加载前 */
136
+ handleBeforeLoad(app) {
137
+ this.loading = true;
138
+ this.$emit('before-load', app);
139
+ },
140
+ /** 挂载前 */
141
+ handleBeforeMount(app) {
142
+ this.$emit('before-mount', app);
143
+ },
144
+ /** 挂载后 */
145
+ handleAfterMount(app) {
146
+ this.loading = false;
147
+ this.$emit('after-mount', app);
148
+ },
149
+ /** 卸载前 */
150
+ handleBeforeUnmount(app) {
151
+ this.$emit('before-unmount', app);
152
+ },
153
+ /** 卸载后 */
154
+ handleAfterUnmount(app) {
155
+ this.$emit('after-unmount', app);
156
+ },
157
+ /** 激活(保活模式) */
158
+ handleActivated(app) {
159
+ this.$emit('activated', app);
160
+ },
161
+ /** 失活(保活模式) */
162
+ handleDeactivated(app) {
163
+ this.$emit('deactivated', app);
164
+ },
165
+ /** 加载失败 */
166
+ handleLoadError(url) {
167
+ this.loading = false;
168
+ this.$emit('load-error', url);
169
+ },
170
+
171
+ /**
172
+ * 刷新子应用
173
+ */
174
+ refresh() {
175
+ if (this.$refs.wujie) {
176
+ return this.$refs.wujie.refresh();
177
+ }
178
+ return refreshApp(this.name);
179
+ },
180
+
181
+ /**
182
+ * 销毁子应用
183
+ */
184
+ destroy() {
185
+ destroyApp(this.name);
186
+ },
187
+
188
+ /**
189
+ * 向子应用发送事件
190
+ */
191
+ emitToApp(event, ...args) {
192
+ bus.$emit(event, ...args);
193
+ },
194
+
195
+ /**
196
+ * 监听子应用事件
197
+ */
198
+ onAppEvent(event, handler) {
199
+ bus.$on(event, handler);
200
+ }
201
+ }
202
+ };
203
+
204
+ export { bus, setupApp, preloadApp, destroyApp, refreshApp };
205
+ </script>
package/src/config/api.js CHANGED
@@ -325,6 +325,9 @@ export const pageLists = '/main2/pageComponentConfig/listJson';
325
325
  export const publishedLists = '/main2/pageComponentConfig/listPublished';
326
326
  // 获取自定义配置详情
327
327
  export const pageInfo = '/main2/pageComponentConfig/info';
328
+ // 获取自定义配置授权列表
329
+ export const pageGroup = 'main2/pageComponentTarget/listByConfigIdAndTypeGroup';
330
+
328
331
  // 保存自定义配置,发布也调这个接口但要加上字段status=1
329
332
  export const pageSave = '/main2/pageComponentConfig/save';
330
333
  // 更新自定义配置