zzz-pc-view 0.0.51 → 0.0.53
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.
- package/package.json +1 -1
- package/src/index.es.js +93 -45
- package/src/index.umd.js +2 -2
- package/src/webUtils/useNavStore.d.ts +64 -22
package/package.json
CHANGED
package/src/index.es.js
CHANGED
|
@@ -2152,20 +2152,20 @@ class WebSocketManager {
|
|
|
2152
2152
|
}
|
|
2153
2153
|
}
|
|
2154
2154
|
var ZNavTypeEnum = /* @__PURE__ */ ((ZNavTypeEnum2) => {
|
|
2155
|
-
ZNavTypeEnum2[ZNavTypeEnum2["
|
|
2155
|
+
ZNavTypeEnum2[ZNavTypeEnum2["FOLDER"] = 1] = "FOLDER";
|
|
2156
2156
|
ZNavTypeEnum2[ZNavTypeEnum2["MENU"] = 2] = "MENU";
|
|
2157
2157
|
ZNavTypeEnum2[ZNavTypeEnum2["BUTTON"] = 3] = "BUTTON";
|
|
2158
2158
|
return ZNavTypeEnum2;
|
|
2159
2159
|
})(ZNavTypeEnum || {});
|
|
2160
2160
|
class ZBaseNav extends WithPrototype {
|
|
2161
2161
|
}
|
|
2162
|
-
class
|
|
2162
|
+
class ZNavFolder extends ZBaseNav {
|
|
2163
2163
|
constructor() {
|
|
2164
2164
|
super(...arguments);
|
|
2165
2165
|
/**
|
|
2166
|
-
* 导航目录的类型,固定为 ZNavTypeEnum.
|
|
2166
|
+
* 导航目录的类型,固定为 ZNavTypeEnum.FOLDER
|
|
2167
2167
|
* @readonly
|
|
2168
|
-
* @type {ZNavTypeEnum.
|
|
2168
|
+
* @type {ZNavTypeEnum.FOLDER}
|
|
2169
2169
|
*/
|
|
2170
2170
|
__publicField(this, "type", 1);
|
|
2171
2171
|
}
|
|
@@ -2204,7 +2204,7 @@ class ZNavButton extends ZBaseNav {
|
|
|
2204
2204
|
}
|
|
2205
2205
|
}
|
|
2206
2206
|
const getNavsCategory = (navs, pageViewMap) => {
|
|
2207
|
-
const
|
|
2207
|
+
const navFolders = [];
|
|
2208
2208
|
const navMenus = [];
|
|
2209
2209
|
const navLinks = [];
|
|
2210
2210
|
const navButtons = [];
|
|
@@ -2213,7 +2213,7 @@ const getNavsCategory = (navs, pageViewMap) => {
|
|
|
2213
2213
|
const nav = navs[i];
|
|
2214
2214
|
switch (nav.type) {
|
|
2215
2215
|
case 1:
|
|
2216
|
-
|
|
2216
|
+
navFolders.push(ZNavFolder.bindObject(nav));
|
|
2217
2217
|
break;
|
|
2218
2218
|
case 2:
|
|
2219
2219
|
const { name } = nav;
|
|
@@ -2231,7 +2231,7 @@ const getNavsCategory = (navs, pageViewMap) => {
|
|
|
2231
2231
|
}
|
|
2232
2232
|
}
|
|
2233
2233
|
return {
|
|
2234
|
-
|
|
2234
|
+
navFolders,
|
|
2235
2235
|
navMenus: sort(navMenus, "orderNo"),
|
|
2236
2236
|
navLinks,
|
|
2237
2237
|
navButtons: sort(navButtons, "orderNo")
|
|
@@ -2389,11 +2389,34 @@ const setRoutes = (option) => {
|
|
|
2389
2389
|
});
|
|
2390
2390
|
};
|
|
2391
2391
|
const navTreeRef = shallowRef(list$1);
|
|
2392
|
-
const
|
|
2393
|
-
const
|
|
2392
|
+
const navWithoutButtonsComputed = computed(() => toFlat(navTreeRef.value, "children"));
|
|
2393
|
+
const navWithoutButtonsMapComputed = computed(
|
|
2394
|
+
() => toKeyValue(navWithoutButtonsComputed.value, "id")
|
|
2395
|
+
);
|
|
2396
|
+
const navFoldersComputed = computed(
|
|
2397
|
+
() => navWithoutButtonsComputed.value.filter(
|
|
2398
|
+
(nav) => nav.type === 1
|
|
2399
|
+
/* FOLDER */
|
|
2400
|
+
)
|
|
2401
|
+
);
|
|
2402
|
+
const navMenusComputed = computed(
|
|
2403
|
+
() => navWithoutButtonsComputed.value.filter(
|
|
2404
|
+
(nav) => nav.type === 2
|
|
2405
|
+
/* MENU */
|
|
2406
|
+
)
|
|
2407
|
+
);
|
|
2408
|
+
const navButtonsRef = shallowRef([]);
|
|
2409
|
+
const navMenuButtonMapComputed = computed(() => toKeyValues(navButtonsRef.value, "parentId"));
|
|
2410
|
+
const navsComputed = computed(() => [...navWithoutButtonsComputed.value, ...navButtonsRef.value]);
|
|
2411
|
+
const navMapComputed = computed(() => toKeyValue(navsComputed.value, "id"));
|
|
2412
|
+
const setMenuButtons = (navButtons) => {
|
|
2413
|
+
const navWithoutButtonsMap = navWithoutButtonsMapComputed.value;
|
|
2414
|
+
navButtonsRef.value = navButtons.filter((navButton) => navWithoutButtonsMap[navButton.parentId]);
|
|
2415
|
+
};
|
|
2416
|
+
const setNavTree = (navFolders, navMenus, navLinks) => {
|
|
2394
2417
|
const buildList = navMenus.filter((navMenu) => !navMenu.isHide);
|
|
2395
2418
|
buildList.push(...navLinks);
|
|
2396
|
-
const
|
|
2419
|
+
const navFolderMap = toKeyValue(navFolders, "id");
|
|
2397
2420
|
const childrenMap = {};
|
|
2398
2421
|
const roots = [];
|
|
2399
2422
|
for (let nav; nav = buildList.shift(); ) {
|
|
@@ -2402,7 +2425,7 @@ const setNavTree = (navDirs, navMenus, navLinks) => {
|
|
|
2402
2425
|
roots.push(nav);
|
|
2403
2426
|
continue;
|
|
2404
2427
|
}
|
|
2405
|
-
const parent =
|
|
2428
|
+
const parent = navFolderMap[parentId];
|
|
2406
2429
|
if (!parent) {
|
|
2407
2430
|
continue;
|
|
2408
2431
|
}
|
|
@@ -2417,11 +2440,6 @@ const setNavTree = (navDirs, navMenus, navLinks) => {
|
|
|
2417
2440
|
childrenMap[key2] = sort(childrenMap[key2], "orderNo");
|
|
2418
2441
|
}
|
|
2419
2442
|
navTreeRef.value = sort(roots, "orderNo");
|
|
2420
|
-
navChildrenMapRef.value = childrenMap;
|
|
2421
|
-
};
|
|
2422
|
-
const menuButtonMapRef = shallowRef({});
|
|
2423
|
-
const setMenuButtonMap = (navButtons) => {
|
|
2424
|
-
menuButtonMapRef.value = toKeyValues(navButtons, "parentId");
|
|
2425
2443
|
};
|
|
2426
2444
|
const setNavs = (option) => {
|
|
2427
2445
|
const pageViewMap = getComponentViewMap(option.pageViewMap);
|
|
@@ -2429,27 +2447,25 @@ const setNavs = (option) => {
|
|
|
2429
2447
|
const { navMenus, navButtons } = navsCategory;
|
|
2430
2448
|
setRoutes({
|
|
2431
2449
|
RootPageView: option.RootPageView,
|
|
2432
|
-
// 根页面视图
|
|
2433
2450
|
navMenus,
|
|
2434
|
-
// 导航菜单
|
|
2435
2451
|
pageViewMap,
|
|
2436
|
-
// 页面视图映射
|
|
2437
2452
|
navButtons,
|
|
2438
|
-
// 导航按钮
|
|
2439
2453
|
NotFoundPageView: option.NotFoundPageView
|
|
2440
|
-
// 404页面视图
|
|
2441
2454
|
});
|
|
2442
|
-
setNavTree(navsCategory.
|
|
2443
|
-
|
|
2455
|
+
setNavTree(navsCategory.navFolders, navsCategory.navMenus, navsCategory.navLinks);
|
|
2456
|
+
setMenuButtons(navButtons);
|
|
2444
2457
|
};
|
|
2445
2458
|
const clear = (option) => {
|
|
2446
2459
|
navTreeRef.value = list$1;
|
|
2447
|
-
|
|
2460
|
+
navButtonsRef.value = list$1;
|
|
2448
2461
|
if (option) {
|
|
2449
2462
|
const { path } = option;
|
|
2450
2463
|
router.addRoute({
|
|
2464
|
+
// 根路由的名称
|
|
2451
2465
|
name: ROOT_ROUTE_NAME,
|
|
2466
|
+
// 根路由的路径
|
|
2452
2467
|
path,
|
|
2468
|
+
// 根路由对应的组件
|
|
2453
2469
|
component: option.PageView
|
|
2454
2470
|
});
|
|
2455
2471
|
router.replace(path).then(() => {
|
|
@@ -2467,7 +2483,7 @@ const currentRootNavComputed = computed(() => {
|
|
|
2467
2483
|
if (raw instanceof ZNavMenu && navTree.includes(raw)) {
|
|
2468
2484
|
return;
|
|
2469
2485
|
}
|
|
2470
|
-
let
|
|
2486
|
+
let navFolder = void 0;
|
|
2471
2487
|
const navTreeLen = navTree.length;
|
|
2472
2488
|
for (let i = 0; i < navTreeLen; i++) {
|
|
2473
2489
|
const nav = navTree[i];
|
|
@@ -2478,12 +2494,12 @@ const currentRootNavComputed = computed(() => {
|
|
|
2478
2494
|
(nav2) => nav2 === raw
|
|
2479
2495
|
);
|
|
2480
2496
|
if (navMenu) {
|
|
2481
|
-
|
|
2497
|
+
navFolder = nav;
|
|
2482
2498
|
break;
|
|
2483
2499
|
}
|
|
2484
2500
|
}
|
|
2485
2501
|
}
|
|
2486
|
-
return
|
|
2502
|
+
return navFolder;
|
|
2487
2503
|
});
|
|
2488
2504
|
const response = {
|
|
2489
2505
|
/**
|
|
@@ -2518,25 +2534,57 @@ const response = {
|
|
|
2518
2534
|
return navTreeRef.value;
|
|
2519
2535
|
},
|
|
2520
2536
|
/**
|
|
2521
|
-
*
|
|
2522
|
-
*
|
|
2523
|
-
* @returns {
|
|
2537
|
+
* 获取包含所有导航项的数组的 getter 方法。
|
|
2538
|
+
* 该方法返回 `navsComputed` 计算属性的值,包含所有的导航项,方便统一处理导航项。
|
|
2539
|
+
* @returns {ZNav[]} - 包含所有导航项的数组。
|
|
2524
2540
|
*/
|
|
2525
|
-
get
|
|
2526
|
-
return
|
|
2541
|
+
get navs() {
|
|
2542
|
+
return navsComputed.value;
|
|
2527
2543
|
},
|
|
2528
2544
|
/**
|
|
2529
|
-
*
|
|
2530
|
-
*
|
|
2531
|
-
* @returns {Record<
|
|
2545
|
+
* 获取导航项 ID 到导航项对象的映射的 getter 方法。
|
|
2546
|
+
* 该方法返回 `navMapComputed` 计算属性的值,键为导航项的 ID,值为对应的导航项对象,方便通过 ID 快速查找导航项。
|
|
2547
|
+
* @returns {Record<ZNav['id'], ZNav>} - 导航项 ID 到导航项对象的映射。
|
|
2548
|
+
*/
|
|
2549
|
+
get navMap() {
|
|
2550
|
+
return navMapComputed.value;
|
|
2551
|
+
},
|
|
2552
|
+
/**
|
|
2553
|
+
* 获取导航目录项数组的 getter 方法。
|
|
2554
|
+
* 该方法返回 `navFoldersComputed` 计算属性的值,包含所有的导航目录项。
|
|
2555
|
+
* @returns {ZNavFolder[]} - 导航目录项数组。
|
|
2556
|
+
*/
|
|
2557
|
+
get navFolders() {
|
|
2558
|
+
return navFoldersComputed.value;
|
|
2559
|
+
},
|
|
2560
|
+
/**
|
|
2561
|
+
* 获取导航菜单项数组的 getter 方法。
|
|
2562
|
+
* 该方法返回 `navMenusComputed` 计算属性的值,包含所有的导航菜单项。
|
|
2563
|
+
* @returns {ZNavMenu[]} - 导航菜单项数组。
|
|
2564
|
+
*/
|
|
2565
|
+
get navMenus() {
|
|
2566
|
+
return navMenusComputed.value;
|
|
2567
|
+
},
|
|
2568
|
+
/**
|
|
2569
|
+
* 获取导航按钮项数组的 getter 方法。
|
|
2570
|
+
* 该方法返回 `navButtonsRef` 浅引用的值,包含所有的导航按钮项。
|
|
2571
|
+
* @returns {ZNavButton[]} - 导航按钮项数组。
|
|
2572
|
+
*/
|
|
2573
|
+
get navButtons() {
|
|
2574
|
+
return navButtonsRef.value;
|
|
2575
|
+
},
|
|
2576
|
+
/**
|
|
2577
|
+
* 获取父级导航项 ID 到导航按钮项数组的映射的 getter 方法。
|
|
2578
|
+
* 该方法返回 `navMenuButtonMapComputed` 计算属性的值,键为父级导航项的 ID,值为该父级导航项下的导航按钮项数组,方便通过父级导航项 ID 快速查找对应的导航按钮项。
|
|
2579
|
+
* @returns {Record<ZNavButton['parentId'], ZNavButton[]>} - 父级导航项 ID 到导航按钮项数组的映射。
|
|
2532
2580
|
*/
|
|
2533
|
-
get
|
|
2534
|
-
return
|
|
2581
|
+
get navMenuButtonMap() {
|
|
2582
|
+
return navMenuButtonMapComputed.value;
|
|
2535
2583
|
},
|
|
2536
2584
|
/**
|
|
2537
2585
|
* 获取当前路由对应的根导航目录的 getter 方法。
|
|
2538
2586
|
* 该属性返回一个计算属性 currentRootNavComputed 的值,用于获取与当前路由关联的根导航目录。
|
|
2539
|
-
* @returns {
|
|
2587
|
+
* @returns {ZNavFolder | undefined} - 当前路由对应的根导航目录对象,如果找不到则返回 undefined。
|
|
2540
2588
|
*/
|
|
2541
2589
|
get currentRouteNav() {
|
|
2542
2590
|
return currentRootNavComputed.value;
|
|
@@ -2544,14 +2592,14 @@ const response = {
|
|
|
2544
2592
|
/**
|
|
2545
2593
|
* 设置当前路由到指定根导航目录的第一个菜单项。
|
|
2546
2594
|
* 如果指定的根导航目录已经是当前根导航目录,则不进行任何操作。
|
|
2547
|
-
* @param {
|
|
2595
|
+
* @param {ZNavFolder} rootNavFolder - 要设置的根导航目录对象。
|
|
2548
2596
|
*/
|
|
2549
|
-
setRoute: (
|
|
2550
|
-
if (currentRootNavComputed.value ===
|
|
2597
|
+
setRoute: (rootNavFolder) => {
|
|
2598
|
+
if (currentRootNavComputed.value === rootNavFolder) {
|
|
2551
2599
|
return;
|
|
2552
2600
|
}
|
|
2553
2601
|
const firstNav = findLeafNode(
|
|
2554
|
-
|
|
2602
|
+
rootNavFolder.children || [],
|
|
2555
2603
|
"children",
|
|
2556
2604
|
(nav) => nav instanceof ZNavMenu
|
|
2557
2605
|
);
|
|
@@ -2686,7 +2734,7 @@ const ZWebUtils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePro
|
|
|
2686
2734
|
ZBaseNav,
|
|
2687
2735
|
ZBaseNavMenu,
|
|
2688
2736
|
ZNavButton,
|
|
2689
|
-
|
|
2737
|
+
ZNavFolder,
|
|
2690
2738
|
ZNavLink,
|
|
2691
2739
|
ZNavMenu,
|
|
2692
2740
|
ZNavTypeEnum,
|
|
@@ -11511,8 +11559,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
11511
11559
|
return openBlock(), createElementBlock(Fragment, {
|
|
11512
11560
|
key: nav.id
|
|
11513
11561
|
}, [
|
|
11514
|
-
nav.type === unref(ZWebUtils).ZNavTypeEnum.
|
|
11515
|
-
nav.type === unref(ZWebUtils).ZNavTypeEnum.
|
|
11562
|
+
nav.type === unref(ZWebUtils).ZNavTypeEnum.FOLDER ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
11563
|
+
nav.type === unref(ZWebUtils).ZNavTypeEnum.FOLDER && _ctx.onlyShowRoot ? (openBlock(), createElementBlock("li", {
|
|
11516
11564
|
key: 0,
|
|
11517
11565
|
tabindex: "0",
|
|
11518
11566
|
class: normalizeClass(["flex center layout-nav-link el-menu-item", {
|