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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zzz-pc-view",
3
- "version": "0.0.51",
3
+ "version": "0.0.53",
4
4
  "main": "src/index.umd.js",
5
5
  "module": "src/index.es.js",
6
6
  "types": "src/index.d.ts",
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["Folder"] = 1] = "Folder";
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 ZNavDir extends ZBaseNav {
2162
+ class ZNavFolder extends ZBaseNav {
2163
2163
  constructor() {
2164
2164
  super(...arguments);
2165
2165
  /**
2166
- * 导航目录的类型,固定为 ZNavTypeEnum.Folder
2166
+ * 导航目录的类型,固定为 ZNavTypeEnum.FOLDER
2167
2167
  * @readonly
2168
- * @type {ZNavTypeEnum.Folder}
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 navDirs = [];
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
- navDirs.push(ZNavDir.bindObject(nav));
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
- navDirs,
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 navChildrenMapRef = shallowRef(object);
2393
- const setNavTree = (navDirs, navMenus, navLinks) => {
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 navDirMap = toKeyValue(navDirs, "id");
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 = navDirMap[parentId];
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.navDirs, navsCategory.navMenus, navsCategory.navLinks);
2443
- setMenuButtonMap(navButtons);
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
- navChildrenMapRef.value = object;
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 navDir = void 0;
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
- navDir = nav;
2497
+ navFolder = nav;
2482
2498
  break;
2483
2499
  }
2484
2500
  }
2485
2501
  }
2486
- return navDir;
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
- * 获取菜单按钮映射的 getter 方法。
2522
- * 返回一个包含所有菜单按钮的映射对象,其中键为父级导航项的 ID,值为该父级导航项下的按钮数组。
2523
- * @returns {Record<ZBaseNav['id'], ZNavButton[]>} - 菜单按钮映射对象
2537
+ * 获取包含所有导航项的数组的 getter 方法。
2538
+ * 该方法返回 `navsComputed` 计算属性的值,包含所有的导航项,方便统一处理导航项。
2539
+ * @returns {ZNav[]} - 包含所有导航项的数组。
2524
2540
  */
2525
- get menuButtonMap() {
2526
- return menuButtonMapRef.value;
2541
+ get navs() {
2542
+ return navsComputed.value;
2527
2543
  },
2528
2544
  /**
2529
- * 获取导航目录的子导航项映射的 getter 方法。
2530
- * @type {Function}
2531
- * @returns {Record<ZNavDir['id'], ZNavWithoutButton[]>} - 导航目录的子导航项映射。
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 navChildrenMap() {
2534
- return navChildrenMapRef.value;
2581
+ get navMenuButtonMap() {
2582
+ return navMenuButtonMapComputed.value;
2535
2583
  },
2536
2584
  /**
2537
2585
  * 获取当前路由对应的根导航目录的 getter 方法。
2538
2586
  * 该属性返回一个计算属性 currentRootNavComputed 的值,用于获取与当前路由关联的根导航目录。
2539
- * @returns {ZNavDir | undefined} - 当前路由对应的根导航目录对象,如果找不到则返回 undefined。
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 {ZNavDir} rootNavDir - 要设置的根导航目录对象。
2595
+ * @param {ZNavFolder} rootNavFolder - 要设置的根导航目录对象。
2548
2596
  */
2549
- setRoute: (rootNavDir) => {
2550
- if (currentRootNavComputed.value === rootNavDir) {
2597
+ setRoute: (rootNavFolder) => {
2598
+ if (currentRootNavComputed.value === rootNavFolder) {
2551
2599
  return;
2552
2600
  }
2553
2601
  const firstNav = findLeafNode(
2554
- rootNavDir.children || [],
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
- ZNavDir,
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.Folder ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
11515
- nav.type === unref(ZWebUtils).ZNavTypeEnum.Folder && _ctx.onlyShowRoot ? (openBlock(), createElementBlock("li", {
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", {