inl-ui 0.0.31 → 0.0.33

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 (63) hide show
  1. package/dist/components/index.cjs +683 -0
  2. package/dist/components/index.d.ts +84 -0
  3. package/dist/components/index.js +672 -0
  4. package/dist/directives/index.cjs +74 -0
  5. package/dist/directives/index.d.ts +15 -0
  6. package/dist/directives/index.js +69 -0
  7. package/dist/hooks/index.cjs +133 -0
  8. package/dist/hooks/index.d.ts +50 -0
  9. package/dist/hooks/index.js +121 -0
  10. package/dist/iconfont.js +69 -0
  11. package/dist/index.cjs +1068 -0
  12. package/dist/index.d.ts +241 -0
  13. package/dist/index.js +1088 -15
  14. package/dist/index.js.map +1 -1
  15. package/dist/src/pageComponent/components/SearchSelect.d.ts +2 -2
  16. package/dist/src/pageComponent/components/check-people.d.ts +0 -1
  17. package/dist/src/pageComponent/components/loginBox/index.d.ts +2 -2
  18. package/dist/src/pageComponent/components/user/userTable.d.ts +1 -1
  19. package/dist/src/pageComponent/hooks/cardTable.d.ts +0 -1
  20. package/dist/src/pageComponent/hooks/useTableList.d.ts +0 -1
  21. package/dist/src/pageComponent/utils/filter.d.ts +1 -1
  22. package/dist/src/pageComponent/views/card-center/components/cardDetail.d.ts +1 -1
  23. package/dist/src/pageComponent/views/card-center/components/pageDetail.d.ts +1 -1
  24. package/dist/src/pageComponent/views/data-center/cardModal.d.ts +1 -1
  25. package/dist/src/pageComponent/views/data-center/components/chart.d.ts +1 -1
  26. package/dist/src/pageComponent/views/data-center/components/leftTree.d.ts +3 -3
  27. package/dist/src/pageComponent/views/data-center/components/table.d.ts +1 -1
  28. package/dist/src/pageComponent/views/data-center/userModal.d.ts +1 -1
  29. package/dist/src/pageComponent/views/fileManager/components/MoveToFolder.d.ts +1 -1
  30. package/dist/src/pageComponent/views/login/box.d.ts +2 -2
  31. package/dist/src/pageComponent/views/processDrawingConfiguration/components/EventForm.d.ts +1 -1
  32. package/dist/src/pageComponent/views/processDrawingConfiguration/components/addonAfter.d.ts +1 -1
  33. package/dist/src/pageComponent/views/processDrawingConfiguration/components/cardItem.d.ts +2 -2
  34. package/dist/src/pageComponent/views/processDrawingConfiguration/components/flowList.d.ts +3 -3
  35. package/dist/src/pageComponent/views/processDrawingConfiguration/components/propertyForm.d.ts +1 -1
  36. package/dist/src/pageComponent/views/productionPlanManager/components/Plan.d.ts +1 -1
  37. package/dist/src/pageComponent/views/projectManager/components/commonForm.d.ts +2 -2
  38. package/dist/src/pageComponent/views/projectManager/hooks/useTreeSearch.d.ts +3105 -0
  39. package/dist/src/pageComponent/views/projectManager/utils/index.d.ts +1 -1
  40. package/dist/src/pageComponent/views/pss/components/ApproveOpinion.d.ts +1 -1
  41. package/dist/src/pageComponent/views/pss/components/Info.d.ts +2 -2
  42. package/dist/src/pageComponent/views/pss/components/NewOrder.d.ts +2 -2
  43. package/dist/src/pageComponent/views/systemManager/authManager/RoleManager/updateRoleDialog.d.ts +2 -2
  44. package/dist/src/pageComponent/views/systemManager/authManager/userManager/updateUserDialog.d.ts +3 -3
  45. package/dist/src/pageComponent/views/systemManager/orgManager/depManager/updateDepDialog.d.ts +2 -2
  46. package/dist/src/pageComponent/views/systemManager/orgManager/depManager/updateEmployeeDialog.d.ts +2 -2
  47. package/dist/src/pageComponent/views/systemManager/orgManager/depManagerCorp/updateDepDialog.d.ts +2 -2
  48. package/dist/src/pageComponent/views/systemManager/orgManager/depManagerCorp/updateEmployeeDialog.d.ts +2 -2
  49. package/dist/src/pageComponent/views/systemManager/orgManager/postManager/updatePostDialog.d.ts +3 -3
  50. package/dist/src/pageComponent/views/systemManager/orgManager/teamManager/updateTeamDialog.d.ts +3 -3
  51. package/dist/src/pageComponent/views/thingInstance/component/dynamicForm.d.ts +1 -1
  52. package/dist/src/pageComponent/views/thingInstance/component/logicForm.d.ts +3 -3
  53. package/dist/src/pageComponent/views/thingInstance/hooks/useTableList.d.ts +0 -1
  54. package/dist/src/pageComponent/views/thingModel/hooks/useTableList.d.ts +0 -1
  55. package/dist/src/pageComponent/views/video/components/checkCamera.d.ts +1 -1
  56. package/dist/src/pageComponent/views/video/components/transfer.d.ts +1 -1
  57. package/dist/src/tpInit/index.d.ts +3 -3
  58. package/dist/utils/index.cjs +181 -0
  59. package/dist/utils/index.d.ts +72 -0
  60. package/dist/utils/index.js +167 -0
  61. package/package.json +1 -1
  62. package/src/pageComponent/views/systemManager/systemSetting/index.tsx +0 -1
  63. package/src/pageComponent/views/thingInstance/index.tsx +4 -2
@@ -0,0 +1,683 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var iconsVue = require('@ant-design/icons-vue');
7
+ var core = require('@vueuse/core');
8
+ var antDesignVue = require('ant-design-vue');
9
+ var vueRouter = require('vue-router');
10
+ var _ = require('lodash');
11
+ var qiankun = require('qiankun');
12
+ var appList = require('@/micro-apps/apps');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
17
+ var appList__default = /*#__PURE__*/_interopDefaultLegacy(appList);
18
+
19
+ const config = {
20
+ prefix: "inl",
21
+ requestOmitParams: ["createDt", "createUser", "updateDt", "updateUser"]
22
+ };
23
+
24
+ const {
25
+ prefix
26
+ } = config;
27
+ function installComponent(component, name, withPrefix = true) {
28
+ component.install = app => {
29
+ name = withPrefix ? `${prefix}-${name}` : name;
30
+ app.component(name, component);
31
+ };
32
+ return component;
33
+ }
34
+
35
+ const Demo = vue.defineComponent({
36
+ props: {
37
+ name: {
38
+ type: String,
39
+ default: "\u5F20\u4E09"
40
+ }
41
+ },
42
+ setup(props) {
43
+ return () => vue.createVNode("div", {
44
+ "class": "Demo"
45
+ }, ["\u6211\u662Fdemo, ", props.name]);
46
+ }
47
+ });
48
+ var index$2 = installComponent(Demo, "demo");
49
+
50
+ const IconFont = iconsVue.createFromIconfontCN();
51
+ var index$1 = installComponent(IconFont, "icon-font", false);
52
+
53
+ function getMenuByKeyPath(menuList, keyPath, keyProp = "id") {
54
+ function getMenuByKey2(list2, key) {
55
+ return list2.find(item => item[keyProp] && item[keyProp] === key);
56
+ }
57
+ let list = menuList;
58
+ for (let i = 0; i < keyPath.length; i++) {
59
+ const menu = getMenuByKey2(list, keyPath[i]);
60
+ if (!menu) return;
61
+ if (i === keyPath.length - 1) {
62
+ return menu;
63
+ }
64
+ list = menu.subList;
65
+ }
66
+ }
67
+ function flattenMenu(menuList) {
68
+ const res = [];
69
+ for (const menu of menuList) {
70
+ res.push(menu);
71
+ res.push(...menu.subList);
72
+ }
73
+ return res;
74
+ }
75
+ function getMenuByKey(menuList, key, propName = "id") {
76
+ const flattenMenuList = flattenMenu(menuList);
77
+ return flattenMenuList.find(item => item[propName] && item[propName] === key);
78
+ }
79
+ function getNavByChildKey(navList, key, propName = "id") {
80
+ for (const nav of navList) {
81
+ const menu = getMenuByKey(nav.subList, key, propName);
82
+ if (menu) {
83
+ return nav;
84
+ }
85
+ }
86
+ }
87
+
88
+ function useActiveMenu(menuList, extraPages, isNav = false, watchOnce = false) {
89
+ const route = vueRouter.useRoute();
90
+ const isMounted = core.useMounted();
91
+ const menu = vue.ref();
92
+ const unwatch = vue.watch([menuList, isMounted, route], ___default["default"].debounce(([list]) => {
93
+ if (list.length && isMounted) {
94
+ watchOnce && unwatch();
95
+ const {
96
+ query,
97
+ path
98
+ } = route;
99
+ const id = "" + query.iframeId;
100
+ if (query.iframeId) {
101
+ menu.value = isNav ? getNavByChildKey(list, id, "id") : getMenuByKey(list, id, "id");
102
+ } else if (query.extraPageKey) {
103
+ const page = extraPages.find(item => item.key === query.extraPageKey);
104
+ menu.value = page;
105
+ } else if (path !== "/") {
106
+ menu.value = isNav ? getNavByChildKey(list, path, "url") : getMenuByKey(list, path, "url");
107
+ } else {
108
+ const getFirstMenu = list2 => {
109
+ if (list2[0].subList?.length) {
110
+ return getFirstMenu(list2[0].subList);
111
+ }
112
+ return list2[0];
113
+ };
114
+ const firstMenu = getFirstMenu(list);
115
+ menu.value = firstMenu;
116
+ }
117
+ }
118
+ }, 10, {
119
+ leading: false
120
+ }));
121
+ return menu;
122
+ }
123
+
124
+ function _isSlot$1(s) {
125
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
126
+ }
127
+ const Header = vue.defineComponent({
128
+ emits: ["navSelect"],
129
+ props: {
130
+ menu: {
131
+ type: Array,
132
+ required: true
133
+ },
134
+ logo: {
135
+ type: String
136
+ },
137
+ userInfo: {
138
+ type: Object,
139
+ required: true
140
+ },
141
+ extraPages: {
142
+ type: Array,
143
+ required: true
144
+ },
145
+ messageCount: {
146
+ type: Number
147
+ }
148
+ },
149
+ setup(props, {
150
+ emit
151
+ }) {
152
+ const isMounted = core.useMounted();
153
+ const router = vueRouter.useRouter();
154
+ const searchText = vue.ref("");
155
+ const handleGlobalSearch = () => {
156
+ searchText.value = "";
157
+ };
158
+ const acitveMenuKey = vue.ref([]);
159
+ const handleMenuSelected = ({
160
+ key
161
+ }) => {
162
+ emit("navSelect", key);
163
+ };
164
+ const activeMenu = useActiveMenu(() => props.menu, props.extraPages, true);
165
+ vue.watch(activeMenu, val => {
166
+ if (val && val.id) {
167
+ handleMenuSelected({
168
+ key: val.id
169
+ });
170
+ acitveMenuKey.value = [val.id];
171
+ }
172
+ });
173
+ const cancleWatch = vue.watch([isMounted, () => props.menu], ([mounted, list]) => {
174
+ if (mounted && list.length) {
175
+ cancleWatch();
176
+ if (!activeMenu.value) {
177
+ const firstNav = list[0];
178
+ emit("navSelect", firstNav.id);
179
+ acitveMenuKey.value = [firstNav.id];
180
+ }
181
+ }
182
+ });
183
+ const handlePersonalCenter = () => {
184
+ router.push({
185
+ path: "/",
186
+ query: {
187
+ extraPageKey: "personalCenter"
188
+ }
189
+ });
190
+ };
191
+ return () => {
192
+ let _slot;
193
+ return vue.createVNode("div", {
194
+ "class": "header"
195
+ }, [vue.createVNode("div", {
196
+ "class": "logo"
197
+ }, [vue.createVNode("img", {
198
+ "src": props.logo,
199
+ "alt": ""
200
+ }, null)]), vue.createVNode(antDesignVue.Menu, {
201
+ "class": "menu",
202
+ "mode": "horizontal",
203
+ "selectedKeys": acitveMenuKey.value,
204
+ "onUpdate:selectedKeys": $event => acitveMenuKey.value = $event,
205
+ "onSelect": handleMenuSelected
206
+ }, _isSlot$1(_slot = props.menu.map(item => vue.createVNode(antDesignVue.MenuItem, {
207
+ "key": item.id,
208
+ "icon": vue.createVNode(vue.resolveComponent("icon-font"), {
209
+ "type": item.icon
210
+ }, null)
211
+ }, {
212
+ default: () => [item.name]
213
+ }))) ? _slot : {
214
+ default: () => [_slot]
215
+ }), vue.createVNode(antDesignVue.Input, {
216
+ "class": "search",
217
+ "placeholder": "\u641C\u7D22",
218
+ "allowClear": true,
219
+ "value": searchText.value,
220
+ "onUpdate:value": $event => searchText.value = $event,
221
+ "onPressEnter": handleGlobalSearch
222
+ }, {
223
+ suffix: () => vue.createVNode(iconsVue.SearchOutlined, null, null)
224
+ }), vue.createVNode("div", {
225
+ "class": "user-info"
226
+ }, [vue.createVNode("span", {
227
+ "class": "username"
228
+ }, [props.userInfo.userName]), vue.createVNode("div", {
229
+ "onClick": handlePersonalCenter
230
+ }, [vue.createVNode(antDesignVue.Badge, {
231
+ "dot": !!props.messageCount
232
+ }, {
233
+ default: () => [vue.createVNode(antDesignVue.Avatar, {
234
+ "class": "avatar",
235
+ "src": "https://joeschmoe.io/api/v1/random"
236
+ }, null)]
237
+ })])])]);
238
+ };
239
+ }
240
+ });
241
+
242
+ function _isSlot(s) {
243
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
244
+ }
245
+ const renderMenuItem = item => {
246
+ if (item.subList?.length) {
247
+ let _slot;
248
+ return vue.createVNode(antDesignVue.SubMenu, {
249
+ "key": item.id,
250
+ "icon": vue.createVNode(vue.resolveComponent("icon-font"), {
251
+ "type": item.icon
252
+ }, null),
253
+ "title": item.name
254
+ }, _isSlot(_slot = item.subList.map(i => renderMenuItem(i))) ? _slot : {
255
+ default: () => [_slot]
256
+ });
257
+ }
258
+ return vue.createVNode(antDesignVue.MenuItem, {
259
+ "key": item.id,
260
+ "icon": vue.createVNode(vue.resolveComponent("icon-font"), {
261
+ "type": item.icon
262
+ }, null)
263
+ }, {
264
+ default: () => [item.name]
265
+ });
266
+ };
267
+ const SideMenu = vue.defineComponent({
268
+ emits: ["menuSelect"],
269
+ props: {
270
+ menu: {
271
+ type: Array,
272
+ required: true
273
+ },
274
+ extraPages: {
275
+ type: Array,
276
+ required: true
277
+ }
278
+ },
279
+ setup(props, {
280
+ emit
281
+ }) {
282
+ const activeMenu = vue.ref([]);
283
+ const initialMenu = useActiveMenu(() => props.menu, props.extraPages);
284
+ vue.watch(initialMenu, val => {
285
+ if (val?.id) {
286
+ activeMenu.value = [val.id];
287
+ } else {
288
+ activeMenu.value = [];
289
+ }
290
+ });
291
+ const handleMenuSelect = param => {
292
+ const {
293
+ keyPath
294
+ } = param;
295
+ const menu = getMenuByKeyPath(props.menu, keyPath);
296
+ if (menu) {
297
+ emit("menuSelect", menu);
298
+ }
299
+ };
300
+ return () => {
301
+ let _slot2;
302
+ return vue.createVNode(antDesignVue.Menu, {
303
+ "mode": "inline",
304
+ "selectedKeys": activeMenu.value,
305
+ "onUpdate:selectedKeys": $event => activeMenu.value = $event,
306
+ "onSelect": handleMenuSelect
307
+ }, _isSlot(_slot2 = props.menu.map(item => renderMenuItem(item))) ? _slot2 : {
308
+ default: () => [_slot2]
309
+ });
310
+ };
311
+ }
312
+ });
313
+
314
+ function useActiveApp() {
315
+ const route = vueRouter.useRoute();
316
+ const activeAppName = vue.computed(() => {
317
+ return route.path.split("/")[1];
318
+ });
319
+ return activeAppName;
320
+ }
321
+
322
+ function useMicroApp() {
323
+ const route = vueRouter.useRoute();
324
+ const activeAppName = useActiveApp();
325
+ const loadAppList = vue.ref([]);
326
+ const handleRouteChange = core.useThrottleFn(async () => {
327
+ const microAppName = activeAppName.value;
328
+ const loadApp = loadAppList.value.find(item => item.name === microAppName);
329
+ if (loadApp) return;
330
+ const microApp = appList__default["default"].find(item => item.name === microAppName);
331
+ if (!microApp) return;
332
+ const domId = `microApp_${microAppName}`;
333
+ const app = qiankun.loadMicroApp({
334
+ name: microApp.name,
335
+ entry: microApp.entry,
336
+ container: `#${domId}`
337
+ });
338
+ loadAppList.value.push({
339
+ name: microAppName,
340
+ domId,
341
+ app
342
+ });
343
+ }, 100);
344
+ vue.watch(route, handleRouteChange, {
345
+ immediate: true
346
+ });
347
+ return loadAppList;
348
+ }
349
+
350
+ function onAddExtraTabs(handler) {
351
+ const qiankunState = vue.inject("qiankunState");
352
+ vue.watch(() => qiankunState.value.extraTabs, (val = [], prev = []) => {
353
+ if (val.length > prev.length) {
354
+ const added = _.differenceBy(val, prev, item => item.key);
355
+ handler(added);
356
+ }
357
+ }, {
358
+ deep: true,
359
+ immediate: true
360
+ });
361
+ }
362
+
363
+ const TabList = vue.defineComponent({
364
+ emits: ["update:activeKey", "update:list", "tabSelect"],
365
+ props: {
366
+ list: {
367
+ type: Array,
368
+ default: () => []
369
+ },
370
+ activeKey: {
371
+ type: String
372
+ }
373
+ },
374
+ setup(props, {
375
+ emit
376
+ }) {
377
+ const qiankunState = vue.inject("qiankunState");
378
+ const tabContainerRef = vue.ref();
379
+ const tabList = core.useVModel(props, "list", emit);
380
+ const activeTabKey = core.useVModel(props, "activeKey", emit);
381
+ const scrollLeft = val => {
382
+ if (!tabContainerRef.value) return;
383
+ tabContainerRef.value.scrollTo({
384
+ left: tabContainerRef.value.scrollLeft + val,
385
+ behavior: "smooth"
386
+ });
387
+ };
388
+ const handleScroll = e => {
389
+ if (!e.deltaX) {
390
+ scrollLeft(e.deltaY < 0 ? -300 : 300);
391
+ }
392
+ };
393
+ const handleRemove = async (e, tab, index) => {
394
+ e.stopPropagation();
395
+ if (tab.key === activeTabKey.value) {
396
+ const next = tabList.value[index + 1];
397
+ const prev = tabList.value[index - 1];
398
+ if (next) {
399
+ activeTabKey.value = next.key;
400
+ emit("tabSelect", next);
401
+ } else if (prev) {
402
+ activeTabKey.value = prev.key;
403
+ emit("tabSelect", prev);
404
+ } else {
405
+ return;
406
+ }
407
+ }
408
+ tabList.value.splice(index, 1);
409
+ };
410
+ const closeToRight = index => tabList.value = tabList.value.filter((_2, i) => i <= index);
411
+ const closeToLeft = index => tabList.value = tabList.value.filter((_2, i) => i >= index);
412
+ const closeOther = index => {
413
+ activeTabKey.value = tabList.value[index].key;
414
+ tabList.value = tabList.value.filter((_2, i) => i === index);
415
+ };
416
+ core.watchArray(tabList, (val, prev, added, removed) => {
417
+ for (const tab of removed) {
418
+ if (tab.isExtraTab) {
419
+ const idx = qiankunState.value.extraTabs.find(item => item.key === tab.key);
420
+ idx !== -1 && qiankunState.value.extraTabs.splice(idx, 1);
421
+ }
422
+ }
423
+ }, {
424
+ deep: true
425
+ });
426
+ return () => vue.createVNode("div", {
427
+ "class": "tab-list"
428
+ }, [vue.createVNode("div", {
429
+ "class": "handle",
430
+ "onClick": () => scrollLeft(-150)
431
+ }, [vue.createVNode(iconsVue.LeftOutlined, null, null)]), vue.createVNode("div", {
432
+ "class": "tabs-container",
433
+ "ref": tabContainerRef,
434
+ "onWheel": handleScroll
435
+ }, [tabList.value.map((item, index) => vue.createVNode(antDesignVue.Dropdown, {
436
+ "placement": "bottomLeft",
437
+ "trigger": ["contextmenu"]
438
+ }, {
439
+ default: () => [vue.createVNode("div", {
440
+ "key": item.id,
441
+ "class": ["tab", {
442
+ active: item.key === activeTabKey.value
443
+ }],
444
+ "onClick": () => emit("tabSelect", item)
445
+ }, [vue.createVNode(vue.resolveComponent("icon-font"), {
446
+ "class": "icon",
447
+ "type": item.icon
448
+ }, null), vue.createVNode("span", {
449
+ "class": "tab-name"
450
+ }, [item.name]), tabList.value.length > 1 && vue.createVNode(iconsVue.CloseOutlined, {
451
+ "class": "close",
452
+ "onClick": e => handleRemove(e, item, index)
453
+ }, null)])],
454
+ overlay: () => vue.createVNode(antDesignVue.Menu, null, {
455
+ default: () => [vue.createVNode(antDesignVue.MenuItem, {
456
+ "key": "right",
457
+ "onClick": () => closeToRight(index)
458
+ }, {
459
+ default: () => ["\u5173\u95ED\u53F3\u4FA7"]
460
+ }), vue.createVNode(antDesignVue.MenuItem, {
461
+ "key": "left",
462
+ "onClick": () => closeToLeft(index)
463
+ }, {
464
+ default: () => ["\u5173\u95ED\u5DE6\u4FA7"]
465
+ }), vue.createVNode(antDesignVue.MenuItem, {
466
+ "key": "other",
467
+ "onClick": () => closeOther(index)
468
+ }, {
469
+ default: () => ["\u5173\u95ED\u5176\u4ED6"]
470
+ })]
471
+ })
472
+ }))]), vue.createVNode("div", {
473
+ "class": "handle",
474
+ "onClick": () => scrollLeft(150)
475
+ }, [vue.createVNode(iconsVue.RightOutlined, null, null)])]);
476
+ }
477
+ });
478
+
479
+ const PageContent = vue.defineComponent({
480
+ props: {
481
+ currMenu: {
482
+ type: Object
483
+ },
484
+ menu: {
485
+ type: Array,
486
+ default: () => []
487
+ },
488
+ extraPages: {
489
+ type: Array,
490
+ required: true
491
+ }
492
+ },
493
+ setup(props, {
494
+ emit
495
+ }) {
496
+ const router = vueRouter.useRouter();
497
+ const qiankunState = vue.inject("qiankunState");
498
+ const activeKey = vue.ref();
499
+ const tabList = vue.ref([]);
500
+ const activeAppName = useActiveApp();
501
+ const loadAppList = useMicroApp();
502
+ const iframeList = vue.ref([]);
503
+ const extraPageList = vue.ref([]);
504
+ const handleMenuChange = ___default["default"].throttle(val => {
505
+ if (!val) return;
506
+ if (val.isExtra) {
507
+ const exist = extraPageList.value.find(item => item.key === val.key);
508
+ if (!exist) {
509
+ tabList.value.push(val);
510
+ extraPageList.value.push(val);
511
+ }
512
+ router.push(`/?extraPageKey=${val.key}`);
513
+ activeKey.value = val.key;
514
+ return;
515
+ }
516
+ const {
517
+ key,
518
+ id,
519
+ mode = 0,
520
+ url
521
+ } = val;
522
+ const isOpened = tabList.value.find(item => item.id === id);
523
+ const tab = ___default["default"].cloneDeep(val);
524
+ switch (mode) {
525
+ case 0:
526
+ if (!isOpened) tabList.value.push({
527
+ ...tab,
528
+ key: key ?? id
529
+ });
530
+ router.push(url);
531
+ break;
532
+ case 1:
533
+ window.open(url);
534
+ break;
535
+ case 2:
536
+ if (!isOpened) {
537
+ iframeList.value.push(val);
538
+ tabList.value.push({
539
+ ...tab,
540
+ key: id
541
+ });
542
+ }
543
+ router.push({
544
+ path: "/",
545
+ query: {
546
+ iframeId: id
547
+ }
548
+ });
549
+ break;
550
+ }
551
+ activeKey.value = key ?? id;
552
+ }, 100, {
553
+ trailing: false
554
+ });
555
+ const activeMenu = useActiveMenu(() => props.menu, props.extraPages);
556
+ vue.watch(activeMenu, handleMenuChange);
557
+ vue.watch(() => props.currMenu, handleMenuChange, {
558
+ immediate: true
559
+ });
560
+ vue.watch(activeKey, val => qiankunState.value.activeTabKey = val, {
561
+ immediate: true
562
+ });
563
+ vue.watch(() => qiankunState.value.activeTabKey, val => activeKey.value = val);
564
+ onAddExtraTabs(added => {
565
+ tabList.value.push(...added);
566
+ });
567
+ return () => vue.createVNode("div", {
568
+ "class": "page-content"
569
+ }, [vue.createVNode(TabList, {
570
+ "activeKey": activeKey.value,
571
+ "onUpdate:activeKey": $event => activeKey.value = $event,
572
+ "list": tabList.value,
573
+ "onUpdate:list": $event => tabList.value = $event,
574
+ "onTabSelect": handleMenuChange
575
+ }, null), vue.createVNode("div", {
576
+ "class": "page-container"
577
+ }, [loadAppList.value.map(item => vue.withDirectives(vue.createVNode("div", {
578
+ "id": item.domId
579
+ }, null), [[vue.vShow, item.name === activeAppName.value]])), iframeList.value.map(item => vue.withDirectives(vue.createVNode("iframe", {
580
+ "src": item.url,
581
+ "width": "100%",
582
+ "height": "100%",
583
+ "frameborder": "0"
584
+ }, null), [[vue.vShow, item.id === activeKey.value]])), extraPageList.value.map(item => vue.withDirectives(vue.createVNode("div", {
585
+ "style": {
586
+ height: "100%"
587
+ }
588
+ }, [vue.createVNode(item.component, null, null)]), [[vue.vShow, item.key === activeKey.value]]))])]);
589
+ }
590
+ });
591
+
592
+ const Layout = vue.defineComponent({
593
+ props: {
594
+ userMenu: {
595
+ type: Array,
596
+ required: true
597
+ },
598
+ copyRight: {
599
+ type: String
600
+ },
601
+ userInfo: {
602
+ type: Object,
603
+ required: true
604
+ },
605
+ extraPages: {
606
+ type: Array,
607
+ default: () => []
608
+ },
609
+ messageCount: {
610
+ type: Number,
611
+ default: 0
612
+ },
613
+ logo: {
614
+ type: String
615
+ }
616
+ },
617
+ setup(props, {
618
+ emit
619
+ }) {
620
+ const [isFolder, toggleFolder] = core.useToggle(false);
621
+ const currentNavKey = vue.ref();
622
+ const siderMenu = vue.ref([]);
623
+ const handleNavSelect = id => {
624
+ currentNavKey.value = id;
625
+ };
626
+ vue.watch(currentNavKey, val => {
627
+ if (!val) return;
628
+ const nav = props.userMenu.find(item => item.id === val);
629
+ if (nav) {
630
+ siderMenu.value = nav.subList;
631
+ }
632
+ }, {
633
+ immediate: true,
634
+ flush: "post"
635
+ });
636
+ const currMenu = vue.ref();
637
+ const handleMenuSelect = menu => {
638
+ currMenu.value = menu;
639
+ };
640
+ return () => vue.createVNode("div", {
641
+ "class": "layout"
642
+ }, [vue.createVNode(antDesignVue.Layout, null, {
643
+ default: () => [vue.createVNode(antDesignVue.LayoutHeader, null, {
644
+ default: () => [vue.createVNode(Header, {
645
+ "menu": props.userMenu,
646
+ "onNavSelect": handleNavSelect,
647
+ "userInfo": props.userInfo,
648
+ "extraPages": props.extraPages,
649
+ "messageCount": props.messageCount,
650
+ "logo": props.logo
651
+ }, null)]
652
+ }), vue.createVNode(antDesignVue.Layout, null, {
653
+ default: () => [vue.createVNode(antDesignVue.LayoutSider, {
654
+ "width": "10.416vw",
655
+ "collapsedWidth": "3.125vw",
656
+ "collapsed": isFolder.value
657
+ }, {
658
+ default: () => [vue.createVNode("div", {
659
+ "class": "folder",
660
+ "onClick": () => toggleFolder()
661
+ }, [isFolder.value ? vue.createVNode(iconsVue.MenuUnfoldOutlined, null, null) : vue.createVNode(iconsVue.MenuFoldOutlined, null, null)]), vue.createVNode(SideMenu, {
662
+ "menu": siderMenu.value,
663
+ "onMenuSelect": handleMenuSelect,
664
+ "extraPages": props.extraPages
665
+ }, null), vue.createVNode("div", {
666
+ "class": "copyright"
667
+ }, [props.copyRight])]
668
+ }), vue.createVNode(antDesignVue.LayoutContent, null, {
669
+ default: () => [vue.createVNode(PageContent, {
670
+ "currMenu": currMenu.value,
671
+ "menu": props.userMenu,
672
+ "extraPages": props.extraPages
673
+ }, null)]
674
+ })]
675
+ })]
676
+ })]);
677
+ }
678
+ });
679
+ var index = installComponent(Layout, "layout");
680
+
681
+ exports.Demo = index$2;
682
+ exports.IconFont = index$1;
683
+ exports.Layout = index;