ソースを参照

fix(products):修复产品菜单客户端中的关键字匹配逻辑

- 添加 try-catch 块以捕获关键字匹配过程中的潜在错误
- 在关键字为"软件产品"或"硬件产品"时,通过过滤获取对应的菜单项列表
- 当未匹配到对应菜单类型时,默认选择第一个子菜单项- 将 TypeScript 编译目标从 ES2017 降级至 ES5 以提高兼容性
nahida 6 ヶ月 前
コミット
ca9b005ca4
2 ファイル変更15 行追加8 行削除
  1. 14 7
      src/components/products/ProductMenuClient.tsx
  2. 1 1
      tsconfig.json

+ 14 - 7
src/components/products/ProductMenuClient.tsx

@@ -22,14 +22,21 @@ export default function ProductMenu({ menuItems, products }: ProductMenuProps) {
   let baseSelect = '';
   if(params.get('keyword')){
     baseSelect = params.get('keyword') || '';
-    if(Object.is(params.get('keyword'),"软件产品")){
-      if (menuItems.filter((item) => Object.is(item.key, "软件产品")).length > 0) {
-        baseSelect = menuItems[0].children?.[0].key || '';
-      }
-    }else if(Object.is(params.get('keyword'),"硬件产品")){
-      if (menuItems.filter((item) => Object.is(item.key, "硬件产品")).length > 0) {
-        baseSelect = menuItems[1].children?.[0].key || '';
+    try {
+      if (Object.is(params.get('keyword'), "软件产品")) {
+        if (menuItems.filter((item) => Object.is(item.key, "软件产品")).length > 0) {
+          const list = menuItems.filter((item) => Object.is(item.key, "软件产品"));
+          baseSelect = list[0].children?.[0].key || '';
+        }
+      } else if (Object.is(params.get('keyword'), "硬件产品")) {
+        if (menuItems.filter((item) => Object.is(item.key, "硬件产品")).length > 0) {
+          const list = menuItems.filter((item) => Object.is(item.key, "硬件产品"));
+          baseSelect = list[0].children?.[0].key || '';
+        }
       }
+    } catch (e) {
+      console.log(e,"没有匹配到对应的菜单类型")
+      baseSelect = menuItems[0].children?.[0].key || '';
     }
   }else if(menuItems[0]?.children){
     if(menuItems[0]?.children?.length>0){

+ 1 - 1
tsconfig.json

@@ -1,6 +1,6 @@
 {
   "compilerOptions": {
-    "target": "ES2017",
+    "target": "ES5",
     "lib": ["dom", "dom.iterable", "esnext"],
     "allowJs": true,
     "skipLibCheck": true,