commit 0ffbc53902f0f2d79f9fb9437d6d0fdd53321c45
Author: huangzhenbao <17818024429@163.com>
Date:   Thu May 14 15:28:09 2026 +0800

    瀹屾垚consumer绔悓姝?
diff --git a/ak/config.uts b/ak/config.uts
index 3c16d53e7..56c4b3ced 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,4 +1,4 @@
-// Supabase 閰嶇疆
+  // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
@@ -16,16 +16,9 @@
 // export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 
 
-// 鈽?鍖荤枟椤圭洰涓撳睘 Supabase 瀹炰緥
-// Studio 鍦板潃锛歨ttp://119.146.131.237:9127/project/default/editor/26894?schema=public
-// Kong API 缃戝叧锛圧EST/Auth/Storage锛夛細http://119.146.131.237:9126
-// SUPA_URL 蹇呴』濉?Kong API 缃戝叧鍦板潃锛屼笉鏄?Studio 鍦板潃
-// 鈥?Connect 寮圭獥鏄剧ず localhost:8000 鏄?self-hosted 瀹炰緥鐨勯粯璁ゅ厓鏁版嵁锛圫UPABASE_PUBLIC_URL 鏈敼锛夛紝
-//   涓嶄唬琛ㄥ墠绔姹傚湴鍧€锛涘墠绔缁堢敤 http://119.146.131.237:9126
-export const SUPA_URL: string = 'http://119.146.131.237:9129'
-// anon (public) key锛屾潵鑷?Studio 鈫?Project Settings 鈫?API 鈫?Project API keys 鈫?anon / public
-// 鈥?姝?key 蹇呴』涓?Kong 閲?ANON_KEY 鐜鍙橀噺涓€鑷达紝鍚﹀垯 Kong 浼氳繑鍥?401 Invalid authentication credentials
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
+// 褰撳墠鐩存帴澶嶇敤 mall 椤圭洰宸查獙璇佸彲鐢ㄧ殑 Kong API 缃戝叧鍜?anon key銆?+export const SUPA_URL: string = 'http://119.146.131.237:9126'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 
 
 
diff --git a/scripts/switch-pages.js b/scripts/switch-pages.js
index b5304c195..1b4fd5807 100644
--- a/scripts/switch-pages.js
+++ b/scripts/switch-pages.js
@@ -1,8 +1,10 @@
 /**
- * 鍒囨崲 pages.json 鍦ㄣ€屽畬鏁存ā寮忋€嶅拰銆屽晢瀹剁涓撳睘妯″紡銆嶄箣闂?+ * 鍒囨崲 pages.json 鍒颁笉鍚岀鐨勪笓灞炵紪璇戞ā寮忋€?  *
  * 鐢ㄦ硶锛?- *   npm run pages:merchant   鈫?浠呯紪璇?merchant 鐩稿叧椤甸潰锛堝ぇ骞呯缉鐭紪璇戞椂闂达級
+ *   npm run pages:consumer   鈫?浠呯紪璇?consumer 鐩稿叧椤甸潰
+ *   npm run pages:merchant   鈫?浠呯紪璇?merchant 鐩稿叧椤甸潰
+ *   npm run pages:admin      鈫?浠呯紪璇?admin 鐩稿叧椤甸潰
  *   npm run pages:full       鈫?鎭㈠瀹屾暣 pages.json
  */
 const fs = require("fs");
@@ -11,35 +13,415 @@ const path = require("path");
 const root = path.resolve(__dirname, "..");
 const pagesJson = path.join(root, "pages.json");
 const pagesFull = path.join(root, "pages.full.json");
-const pagesMerchant = path.join(root, "pages.merchant.json");
+const backupDir = path.join(root, ".pages-backup");
+const pageExtensions = [".uvue", ".vue", ".nvue"];
 
-const mode = process.argv[2]; // 'merchant' | 'full'
+const consumerUserPages = [
+  "pages/user/boot",
+  "pages/user/login",
+  "pages/user/register",
+  "pages/user/forgot-password",
+  "pages/user/terms",
+  "pages/user/center",
+  "pages/user/profile",
+  "pages/user/change-password",
+  "pages/user/bind-phone",
+  "pages/user/bind-email",
+];
 
-if (mode === "merchant") {
-  if (!fs.existsSync(pagesMerchant)) {
-    console.error("鉂?pages.merchant.json 涓嶅瓨鍦紝璇峰厛鍒涘缓璇ユ枃浠躲€?);
+const merchantUserPages = [
+  "pages/user/login",
+  "pages/user/boot",
+  "pages/user/register",
+  "pages/user/forgot-password",
+  "pages/user/terms",
+  "pages/user/change-password",
+];
+
+const adminUserPages = [
+  "pages/user/login",
+  "pages/user/boot",
+  "pages/user/forgot-password",
+  "pages/user/terms",
+  "pages/user/change-password",
+];
+
+const targetConfigs = {
+  consumer: {
+    fileName: "pages.consumer.json",
+    label: "娑堣垂鑰呯",
+    entryPath: "pages/main/index",
+    orderedTopLevelPaths: [
+      "pages/main/index",
+      ...consumerUserPages,
+      "pages/main/category",
+      "pages/main/messages",
+      "pages/main/cart",
+      "pages/main/profile",
+    ],
+    topLevelMatcher(pagePath) {
+      return (
+        pagePath.startsWith("pages/main/") ||
+        consumerUserPages.includes(pagePath)
+      );
+    },
+    subPackageMatcher(rootPath) {
+      return rootPath === "pages/mall/consumer";
+    },
+    tabBarMatcher(pagePath) {
+      return pagePath.startsWith("pages/main/");
+    },
+    defaultCondition() {
+      return {
+        current: 0,
+        list: [
+          {
+            name: "consumer绔?,
+            path: "pages/main/index",
+            query: "role=consumer",
+          },
+        ],
+      };
+    },
+  },
+  merchant: {
+    fileName: "pages.merchant.json",
+    label: "鍟嗗绔?,
+    entryPath: "pages/user/login",
+    orderedTopLevelPaths: [
+      "pages/user/login",
+      "pages/user/boot",
+      "pages/user/register",
+      "pages/user/forgot-password",
+      "pages/user/terms",
+      "pages/user/change-password",
+      "pages/mall/merchant/index",
+      "pages/mall/merchant/messages",
+      "pages/mall/merchant/orders",
+      "pages/mall/merchant/growth",
+      "pages/mall/merchant/profile",
+    ],
+    topLevelMatcher(pagePath) {
+      return (
+        merchantUserPages.includes(pagePath) ||
+        pagePath.startsWith("pages/mall/merchant/")
+      );
+    },
+    subPackageMatcher() {
+      return false;
+    },
+    defaultCondition() {
+      return {
+        current: 0,
+        list: [
+          {
+            name: "merchant绔?,
+            path: "pages/mall/merchant/index",
+            query: "role=merchant",
+          },
+        ],
+      };
+    },
+  },
+  admin: {
+    fileName: "pages.admin.json",
+    label: "绠＄悊鍚庡彴",
+    entryPath: "pages/user/login",
+    orderedTopLevelPaths: [
+      "pages/user/login",
+      "pages/user/boot",
+      "pages/user/forgot-password",
+      "pages/user/terms",
+      "pages/user/change-password",
+      "pages/mall/admin/homePage/index",
+      "pages/mall/admin/userCenter/index",
+    ],
+    topLevelMatcher(pagePath) {
+      return (
+        adminUserPages.includes(pagePath) ||
+        pagePath === "pages/mall/admin/homePage/index" ||
+        pagePath === "pages/mall/admin/userCenter/index"
+      );
+    },
+    subPackageMatcher(rootPath) {
+      return rootPath.startsWith("pages/mall/admin/");
+    },
+    defaultCondition() {
+      return {
+        current: 0,
+        list: [
+          {
+            name: "admin绔?,
+            path: "pages/mall/admin/homePage/index",
+            query: "role=admin",
+          },
+        ],
+      };
+    },
+  },
+};
+
+const mode = process.argv[2]; // 'consumer' | 'merchant' | 'admin' | 'full'
+
+function readJson(filePath) {
+  const rawContent = fs.readFileSync(filePath, "utf8").replace(/^\uFEFF/, "");
+  return JSON.parse(rawContent);
+}
+
+function writeJson(filePath, content) {
+  fs.writeFileSync(filePath, `${JSON.stringify(content, null, 2)}\n`, "utf8");
+}
+
+function ensureFullBackup() {
+  if (fs.existsSync(pagesFull)) {
+    return;
+  }
+  fs.copyFileSync(pagesJson, pagesFull);
+  console.log("馃摝 宸插浠?pages.json 鈫?pages.full.json");
+}
+
+function backupCurrentPages(targetName) {
+  if (!fs.existsSync(pagesJson)) {
+    return;
+  }
+
+  fs.mkdirSync(backupDir, { recursive: true });
+  const timestamp = new Date().toISOString().replace(/[.:]/g, "-");
+  const backupPath = path.join(
+    backupDir,
+    `pages.${targetName}.${timestamp}.json`,
+  );
+  fs.copyFileSync(pagesJson, backupPath);
+  console.log(`馃摝 宸插浠藉綋鍓?pages.json 鈫?${path.relative(root, backupPath)}`);
+}
+
+function getPageMap(fullConfig) {
+  return new Map(fullConfig.pages.map((page) => [page.path, page]));
+}
+
+function findMatchingPageFile(routePath) {
+  for (const extension of pageExtensions) {
+    const candidate = path.join(root, `${routePath}${extension}`);
+    if (fs.existsSync(candidate)) {
+      return candidate;
+    }
+  }
+  return null;
+}
+
+function clonePage(page) {
+  return JSON.parse(JSON.stringify(page));
+}
+
+function flattenSubPackagePages(fullConfig, rootPath) {
+  const targetPackage = fullConfig.subPackages.find(
+    (item) => item.root === rootPath,
+  );
+  if (!targetPackage) {
+    return [];
+  }
+
+  return targetPackage.pages.map((page) => ({
+    path: `${rootPath}/${page.path}`,
+    style: page.style ? JSON.parse(JSON.stringify(page.style)) : {},
+  }));
+}
+
+function getTopLevelPages(fullConfig, targetConfig) {
+  const pageMap = getPageMap(fullConfig);
+  const matchedFromTopLevel = fullConfig.pages
+    .filter((page) => targetConfig.topLevelMatcher(page.path))
+    .map((page) => clonePage(page));
+
+  const flattenedPages = (targetConfig.flattenRoots || []).flatMap((rootPath) =>
+    flattenSubPackagePages(fullConfig, rootPath),
+  );
+
+  const mergedMap = new Map();
+  for (const page of [...matchedFromTopLevel, ...flattenedPages]) {
+    mergedMap.set(page.path, page);
+  }
+
+  const orderedPages = [];
+  for (const pagePath of targetConfig.orderedTopLevelPaths) {
+    if (mergedMap.has(pagePath)) {
+      orderedPages.push(mergedMap.get(pagePath));
+      mergedMap.delete(pagePath);
+    } else if (pageMap.has(pagePath)) {
+      orderedPages.push(clonePage(pageMap.get(pagePath)));
+    }
+  }
+
+  for (const page of [...matchedFromTopLevel, ...flattenedPages]) {
+    if (mergedMap.has(page.path)) {
+      orderedPages.push(mergedMap.get(page.path));
+      mergedMap.delete(page.path);
+    }
+  }
+
+  return dedupePages(orderedPages);
+}
+
+function getSubPackages(fullConfig, targetConfig) {
+  return fullConfig.subPackages
+    .filter((item) => targetConfig.subPackageMatcher(item.root))
+    .map((item) => JSON.parse(JSON.stringify(item)));
+}
+
+function dedupePages(pages) {
+  const seen = new Set();
+  return pages.filter((page) => {
+    if (seen.has(page.path)) {
+      return false;
+    }
+    seen.add(page.path);
+    return true;
+  });
+}
+
+function getCondition(targetConfig, sourceCondition) {
+  if (sourceCondition && Array.isArray(sourceCondition.list)) {
+    const filteredList = sourceCondition.list.filter(
+      (item) => item.path === targetConfig.entryPath,
+    );
+    if (filteredList.length > 0) {
+      return {
+        current: 0,
+        list: filteredList,
+      };
+    }
+  }
+
+  return targetConfig.defaultCondition();
+}
+
+function validateGeneratedConfig(targetName, config) {
+  const missingRoutes = [];
+  const routeSet = new Set();
+
+  for (const page of config.pages || []) {
+    routeSet.add(page.path);
+    if (!findMatchingPageFile(page.path)) {
+      missingRoutes.push(page.path);
+    }
+  }
+
+  for (const subPackage of config.subPackages || []) {
+    for (const page of subPackage.pages || []) {
+      const fullPath = `${subPackage.root}/${page.path}`;
+      routeSet.add(fullPath);
+      if (!findMatchingPageFile(fullPath)) {
+        missingRoutes.push(fullPath);
+      }
+    }
+  }
+
+  for (const tabItem of config.tabBar?.list || []) {
+    if (!routeSet.has(tabItem.pagePath)) {
+      missingRoutes.push(`tabBar -> ${tabItem.pagePath}`);
+    }
+  }
+
+  for (const conditionItem of config.condition?.list || []) {
+    if (!routeSet.has(conditionItem.path)) {
+      missingRoutes.push(`condition -> ${conditionItem.path}`);
+    }
+  }
+
+  if (missingRoutes.length > 0) {
+    console.error(`鉂?${targetName} 閰嶇疆瀛樺湪鏃犳晥椤甸潰寮曠敤锛歚);
+    for (const routePath of missingRoutes) {
+      console.error(`   - ${routePath}`);
+    }
     process.exit(1);
   }
-  // 澶囦唤褰撳墠 pages.json锛堜粎鍦ㄦ湭澶囦唤鏃舵墽琛岋紝閬垮厤瑕嗙洊鐪熸鐨勫畬鏁寸増鏈級
-  if (!fs.existsSync(pagesFull)) {
-    fs.copyFileSync(pagesJson, pagesFull);
-    console.log("馃摝 宸插浠?pages.json 鈫?pages.full.json");
+}
+
+function buildTargetConfig(fullConfig, targetName, sourceCondition) {
+  const targetConfig = targetConfigs[targetName];
+  const nextConfig = {};
+
+  nextConfig.pages = getTopLevelPages(fullConfig, targetConfig);
+  nextConfig.subPackages = getSubPackages(fullConfig, targetConfig);
+
+  if (targetConfig.tabBarMatcher) {
+    const filteredTabBarList = (fullConfig.tabBar?.list || []).filter((item) =>
+      targetConfig.tabBarMatcher(item.pagePath),
+    );
+    if (filteredTabBarList.length > 0 && fullConfig.tabBar) {
+      nextConfig.tabBar = {
+        ...JSON.parse(JSON.stringify(fullConfig.tabBar)),
+        list: filteredTabBarList,
+      };
+    }
+  }
+
+  for (const key of Object.keys(fullConfig)) {
+    if (["pages", "subPackages", "tabBar", "condition"].includes(key)) {
+      continue;
+    }
+    nextConfig[key] = JSON.parse(JSON.stringify(fullConfig[key]));
   }
-  fs.copyFileSync(pagesMerchant, pagesJson);
-  console.log("鉁?宸插垏鎹负銆愬晢瀹剁涓撳睘缂栬瘧妯″紡銆?);
-  console.log("   浠呭寘鍚?merchant 椤甸潰锛屽樊閲忕紪璇戦€熷害澶у箙鎻愬崌銆?);
+
+  nextConfig.condition = getCondition(targetConfig, sourceCondition);
+
+  validateGeneratedConfig(targetName, nextConfig);
+  return nextConfig;
+}
+
+function writeTargetConfig(targetName, config) {
+  const targetPath = path.join(root, targetConfigs[targetName].fileName);
+  writeJson(targetPath, config);
+  fs.copyFileSync(targetPath, pagesJson);
+
+  const pageCount = config.pages.length;
+  const subPackageCount = config.subPackages.length;
+  const tabBarCount = config.tabBar?.list?.length || 0;
+
+  console.log(`鉁?宸插垏鎹负銆?{targetConfigs[targetName].label}涓撳睘缂栬瘧妯″紡銆慲);
+  console.log(`   鐩爣閰嶇疆锛?{targetConfigs[targetName].fileName}`);
+  console.log(`   pages锛?{pageCount} 涓猔);
+  console.log(`   subPackages锛?{subPackageCount} 涓猔);
+  console.log(`   tabBar锛?{tabBarCount} 涓猔);
   console.log("   鎭㈠瀹屾暣鐗堟湰锛歯pm run pages:full");
-} else if (mode === "full") {
+}
+
+function restoreFullPages() {
   if (!fs.existsSync(pagesFull)) {
     console.error("鉂?pages.full.json 涓嶅瓨鍦ㄣ€?);
     console.error("   鍙兘褰撳墠宸茬粡鏄畬鏁存ā寮忥紝鎴栧浠芥枃浠跺凡琚垹闄ゃ€?);
     process.exit(1);
   }
+
+  backupCurrentPages("full");
   fs.copyFileSync(pagesFull, pagesJson);
   console.log("鉁?宸叉仮澶嶃€愬畬鏁?pages.json銆?);
   console.log("   鍖呭惈 consumer + merchant + admin 鍏ㄩ儴椤甸潰銆?);
+}
+
+if (mode === "full") {
+  restoreFullPages();
+} else if (Object.prototype.hasOwnProperty.call(targetConfigs, mode)) {
+  ensureFullBackup();
+  backupCurrentPages(mode);
+
+  const fullConfig = readJson(pagesFull);
+  const sourceCondition = fs.existsSync(pagesJson)
+    ? (() => {
+        try {
+          return readJson(pagesJson).condition;
+        } catch (error) {
+          return null;
+        }
+      })()
+    : null;
+
+  const nextConfig = buildTargetConfig(fullConfig, mode, sourceCondition);
+  writeTargetConfig(mode, nextConfig);
 } else {
   console.log("鐢ㄦ硶锛?);
+  console.log("  npm run pages:consumer   鍒囨崲鍒版秷璐硅€呯涓撳睘缂栬瘧妯″紡");
   console.log("  npm run pages:merchant   鍒囨崲鍒板晢瀹剁涓撳睘缂栬瘧妯″紡");
+  console.log("  npm run pages:admin      鍒囨崲鍒扮鐞嗗悗鍙颁笓灞炵紪璇戞ā寮?);
   console.log("  npm run pages:full       鎭㈠瀹屾暣缂栬瘧妯″紡");
 }

commit 37141c1d6b76827a9ad5bdbcc7beb2dec98b51ec
Author: huangzhenbao <17818024429@163.com>
Date:   Mon Apr 13 11:32:31 2026 +0800

    娣诲姞mock鏁版嵁

diff --git a/ak/config.uts b/ak/config.uts
index 78c3d9e06..3c16d53e7 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -2,6 +2,8 @@
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
+
+
 //鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
 // export const SUPA_URL: string = 'http://192.168.1.61:18000'
 // export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
@@ -10,8 +12,23 @@
 // export const SUPA_URL: string = 'http://192.168.1.61:18000'
 // export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
-export const SUPA_URL: string = 'http://119.146.131.237:9126'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+// export const SUPA_URL: string = 'http://119.146.131.237:9126'
+// export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+
+
+// 鈽?鍖荤枟椤圭洰涓撳睘 Supabase 瀹炰緥
+// Studio 鍦板潃锛歨ttp://119.146.131.237:9127/project/default/editor/26894?schema=public
+// Kong API 缃戝叧锛圧EST/Auth/Storage锛夛細http://119.146.131.237:9126
+// SUPA_URL 蹇呴』濉?Kong API 缃戝叧鍦板潃锛屼笉鏄?Studio 鍦板潃
+// 鈥?Connect 寮圭獥鏄剧ず localhost:8000 鏄?self-hosted 瀹炰緥鐨勯粯璁ゅ厓鏁版嵁锛圫UPABASE_PUBLIC_URL 鏈敼锛夛紝
+//   涓嶄唬琛ㄥ墠绔姹傚湴鍧€锛涘墠绔缁堢敤 http://119.146.131.237:9126
+export const SUPA_URL: string = 'http://119.146.131.237:9129'
+// anon (public) key锛屾潵鑷?Studio 鈫?Project Settings 鈫?API 鈫?Project API keys 鈫?anon / public
+// 鈥?姝?key 蹇呴』涓?Kong 閲?ANON_KEY 鐜鍙橀噺涓€鑷达紝鍚﹀垯 Kong 浼氳繑鍥?401 Invalid authentication credentials
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
+
+
+
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
@@ -22,6 +39,10 @@ export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
 // export const WS_URL: string = 'ws://119.146.131.237:9126/realtime/v1/websocket'
 //export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'
 
+//hzb
+// 鍖荤枟椤圭洰 9127 瀹炰緥 WebSocket锛堝闇€鍚敤瀹炴椂鍔熻兘璇峰彇娑堟敞閲婂苟濉啓鐪熷疄 key 鍚庡惎鐢級
+// export const WS_URL: string = 'ws://119.146.131.237:9127/realtime/v1/websocket'
+
 // 鎺ㄩ€佹湇鍔″湴鍧€锛堢敤浜庢湰鍦拌皟璇曪紝鍙敼涓?http://<your-ip>:7301锛? export const PUSH_SERVER_URL: string = 'http://192.168.1.62:7301'
 
@@ -46,4 +67,17 @@ export const HOME_REDIRECT: string = '/pages/main/index'
 export const TABORPAGE: string = '/pages/main/index'
 
 // 娴嬭瘯妯″紡锛氭斁寮€浠绘剰璺宠浆锛堢鐢ㄥ惎鍔ㄩ〉/鐧诲綍/401 鐨勫己鍒堕噸瀹氬悜锛?-export const IS_TEST_MODE: boolean = true
\ No newline at end of file
+export const IS_TEST_MODE: boolean = true
+
+/**
+ * 鎵撳嵃褰撳墠 Supabase 閰嶇疆锛坘ey 鑴辨晱锛屽彧鎵撳嵃鍓?0浣?鍚?浣嶏級
+ * 鍦ㄩ〉闈?onLoad 鏃惰皟鐢紝鐢ㄤ簬纭杩愯鏃跺疄闄呬娇鐢ㄧ殑鏄摢濂楅厤缃?+ */
+export function logSupaConfig() {
+	const keyLen = SUPA_KEY.length
+	const masked = keyLen > 20
+		? SUPA_KEY.substring(0, 10) + '...' + SUPA_KEY.substring(keyLen - 8)
+		: '(too short)'
+	console.log('[SupaConfig] SUPA_URL :', SUPA_URL)
+	console.log('[SupaConfig] SUPA_KEY :', masked)
+}
\ No newline at end of file

commit ca8794ea3acf6b9d769509de4f525e556c8513f3
Author: huangzhenbao <17818024429@163.com>
Date:   Tue Mar 24 00:21:19 2026 +0800

    淇敼灏忕▼搴廱ug

diff --git a/scripts/switch-pages.js b/scripts/switch-pages.js
new file mode 100644
index 000000000..b5304c195
--- /dev/null
+++ b/scripts/switch-pages.js
@@ -0,0 +1,45 @@
+/**
+ * 鍒囨崲 pages.json 鍦ㄣ€屽畬鏁存ā寮忋€嶅拰銆屽晢瀹剁涓撳睘妯″紡銆嶄箣闂?+ *
+ * 鐢ㄦ硶锛?+ *   npm run pages:merchant   鈫?浠呯紪璇?merchant 鐩稿叧椤甸潰锛堝ぇ骞呯缉鐭紪璇戞椂闂达級
+ *   npm run pages:full       鈫?鎭㈠瀹屾暣 pages.json
+ */
+const fs = require("fs");
+const path = require("path");
+
+const root = path.resolve(__dirname, "..");
+const pagesJson = path.join(root, "pages.json");
+const pagesFull = path.join(root, "pages.full.json");
+const pagesMerchant = path.join(root, "pages.merchant.json");
+
+const mode = process.argv[2]; // 'merchant' | 'full'
+
+if (mode === "merchant") {
+  if (!fs.existsSync(pagesMerchant)) {
+    console.error("鉂?pages.merchant.json 涓嶅瓨鍦紝璇峰厛鍒涘缓璇ユ枃浠躲€?);
+    process.exit(1);
+  }
+  // 澶囦唤褰撳墠 pages.json锛堜粎鍦ㄦ湭澶囦唤鏃舵墽琛岋紝閬垮厤瑕嗙洊鐪熸鐨勫畬鏁寸増鏈級
+  if (!fs.existsSync(pagesFull)) {
+    fs.copyFileSync(pagesJson, pagesFull);
+    console.log("馃摝 宸插浠?pages.json 鈫?pages.full.json");
+  }
+  fs.copyFileSync(pagesMerchant, pagesJson);
+  console.log("鉁?宸插垏鎹负銆愬晢瀹剁涓撳睘缂栬瘧妯″紡銆?);
+  console.log("   浠呭寘鍚?merchant 椤甸潰锛屽樊閲忕紪璇戦€熷害澶у箙鎻愬崌銆?);
+  console.log("   鎭㈠瀹屾暣鐗堟湰锛歯pm run pages:full");
+} else if (mode === "full") {
+  if (!fs.existsSync(pagesFull)) {
+    console.error("鉂?pages.full.json 涓嶅瓨鍦ㄣ€?);
+    console.error("   鍙兘褰撳墠宸茬粡鏄畬鏁存ā寮忥紝鎴栧浠芥枃浠跺凡琚垹闄ゃ€?);
+    process.exit(1);
+  }
+  fs.copyFileSync(pagesFull, pagesJson);
+  console.log("鉁?宸叉仮澶嶃€愬畬鏁?pages.json銆?);
+  console.log("   鍖呭惈 consumer + merchant + admin 鍏ㄩ儴椤甸潰銆?);
+} else {
+  console.log("鐢ㄦ硶锛?);
+  console.log("  npm run pages:merchant   鍒囨崲鍒板晢瀹剁涓撳睘缂栬瘧妯″紡");
+  console.log("  npm run pages:full       鎭㈠瀹屾暣缂栬瘧妯″紡");
+}

commit 06acd970e4664034fbde4e3298dad77c15ec031f
Merge: 118cfd319 2d48e4c5d
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Wed Mar 18 20:34:55 2026 +0800

    Merge remote-tracking branch 'origin/cyh666666/consumer'

commit 118cfd31970ea44e8d2c5abd2124f38abdbe10c9
Merge: a339834d4 c2cd6dcd9
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Wed Mar 18 17:14:05 2026 +0800

    Merge remote-tracking branch 'origin/huangzhenbao-admin'

commit dac730474bce8ff85dc833cda0cc0ed0d829b2c3
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Mon Mar 16 14:58:00 2026 +0800

    鏁寸悊鏂囨。鍙婁慨鏀归厤缃?
diff --git a/ak/config.uts b/ak/config.uts
index 6ce76d2c2..b72a2a2f8 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -7,7 +7,7 @@
 //export const SUPA_URL: string = 'http://192.168.1.61:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 export const SUPA_URL: string = 'http://192.168.1.62:18000'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UtMSIsImlhdCI6MTc2OTY3NjQ5OCwiZXhwIjoxOTI3MzU2NDk4fQ.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzczNjIxMTQzLCJleHAiOjE5MzEzMDExNDN9.gkYe875_vsdcdsKbhOTwwe2klkuMNj_UY45aq4zwuy0'
 // export const SUPA_URL: string = 'http://192.168.1.63:18000'
 // export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 

commit e5ad13d6f5f8eae235f75c24886fe15bf17f752e
Author: huangzhenbao <17818024429@163.com>
Date:   Mon Mar 9 09:44:04 2026 +0800

    澧炴坊鍒嗛〉閰嶇疆

diff --git a/ak/config.uts b/ak/config.uts
index 14cc343ba..cee17672b 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -4,13 +4,16 @@
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
 //鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
-export const SUPA_URL: string = 'http://192.168.1.61:18000'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+// export const SUPA_URL: string = 'http://192.168.1.61:18000'
+// export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 //export const SUPA_URL: string = 'http://192.168.1.62:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 // export const SUPA_URL: string = 'http://192.168.1.61:18000'
 // export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
+export const SUPA_URL: string = 'http://119.146.131.237:9126'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
 //export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'

commit 3b0e3977147d1ad5b17771bd0288a1c8936daf51
Author: cyh666666 <cyh666666@example.com>
Date:   Thu Mar 5 16:54:00 2026 +0800

    consumer妯″潡瀹屾垚搴?5%锛屽畬鎴愰儴缃叉秷璐硅€呯锛堝缃戝彲璁块棶consumer.meitizs.com锛?娑堣垂鑰呭皬绋嬪簭鑳芥甯歌繍琛屽湪寰俊寮€鍙戣€呭伐鍏蜂笂

diff --git a/ak/config.uts b/ak/config.uts
index b788f2e40..ba966dc81 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -29,8 +29,8 @@ export const WS_URL: string = 'ws://119.146.131.237:9126/realtime/v1/websocket'
 // export const WS_URL: string = 'ws://192.168.1.64:3000/realtime/v1'
 
 // 璺敱閰嶇疆
-export const HOME_REDIRECT: string = '/pages/mall/consumer/index'
-export const TABORPAGE: string = '/pages/mall/consumer/index'
+export const HOME_REDIRECT: string = '/pages/main/index'
+export const TABORPAGE: string = '/pages/main/index'
 
 // 娴嬭瘯妯″紡锛氭斁寮€浠绘剰璺宠浆锛堢鐢ㄥ惎鍔ㄩ〉/鐧诲綍/401 鐨勫己鍒堕噸瀹氬悜锛? export const IS_TEST_MODE: boolean = true
\ No newline at end of file

commit 7f7f723d931047666adc8a562f2d8ac3df260022
Author: cyh666666 <cyh666666@example.com>
Date:   Thu Mar 5 08:45:00 2026 +0800

    consumer妯″潡瀹屾垚搴?5%锛屽噯澶囬儴缃叉秷璐硅€呯娴嬭瘯

diff --git a/ak/config.uts b/ak/config.uts
index 877319456..b788f2e40 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -5,11 +5,11 @@
 
 //export const SUPA_URL: string = 'http://192.168.1.61:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-export const SUPA_URL: string = 'http://192.168.1.61:18000'
+export const SUPA_URL: string = 'http://119.146.131.237:9126'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://119.146.131.237:9126/realtime/v1/websocket'
 //export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級

commit ab0a5c53f7f513b627249042598f0386b59fa7cf
Author: huangzhenbao <17818024429@163.com>
Date:   Fri Feb 27 12:02:15 2026 +0800

    閾炬帴涓婃暟鎹簱

diff --git a/ak/config.uts b/ak/config.uts
index 952154ee6..14cc343ba 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -4,12 +4,12 @@
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
 //鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
-//export const SUPA_URL: string = 'http://192.168.1.61:18000'
-//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+export const SUPA_URL: string = 'http://192.168.1.61:18000'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 //export const SUPA_URL: string = 'http://192.168.1.62:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-export const SUPA_URL: string = 'http://192.168.1.61:18000'
-export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
+// export const SUPA_URL: string = 'http://192.168.1.61:18000'
+// export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'

commit d53551feba72952bf558a24bf46ff1105f95b34f
Author: huangzhenbao <17818024429@163.com>
Date:   Thu Feb 26 17:49:19 2026 +0800

    鎺ュ叆鐧诲綍椤甸潰

diff --git a/ak/config.uts b/ak/config.uts
index 690cbaabc..952154ee6 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -8,13 +8,13 @@
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 //export const SUPA_URL: string = 'http://192.168.1.62:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-export const SUPA_URL: string = 'http://192.168.1.63:18000'
+export const SUPA_URL: string = 'http://192.168.1.61:18000'
 export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
 //export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
-export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit eb3d01c63cb8e7d7f71282f46c4b97557a4bf519
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Thu Feb 26 09:54:54 2026 +0800

    娴嬭瘯鏂囦欢

diff --git a/ak/config.uts b/ak/config.uts
index f54de0f3e..6ce76d2c2 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -7,7 +7,7 @@
 //export const SUPA_URL: string = 'http://192.168.1.61:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 export const SUPA_URL: string = 'http://192.168.1.62:18000'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UtMSIsImlhdCI6MTc2OTY3NjQ5OCwiZXhwIjoxOTI3MzU2NDk4fQ.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 // export const SUPA_URL: string = 'http://192.168.1.63:18000'
 // export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 

commit 07628574347aefb99fe70a79926544cdea94c6e4
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Wed Feb 25 09:38:01 2026 +0800

    娑堟伅鎺ㄩ€佸拰绗笁鏂规帴鏀跺悗鍙版惌寤猴紝鏈祴璇?
diff --git a/ak/config.uts b/ak/config.uts
index 6035d50eb..f54de0f3e 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -16,6 +16,9 @@ export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIj
 export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
 // export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
 
+// 鎺ㄩ€佹湇鍔″湴鍧€锛堢敤浜庢湰鍦拌皟璇曪紝鍙敼涓?http://<your-ip>:7301锛?+export const PUSH_SERVER_URL: string = 'http://192.168.1.62:7301'
+
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃
 // export const SUPA_URL: string = 'http://192.168.0.150:8080'

commit e606c597cabe2931188ed23100b960eb21133871
Author: cyh666666 <cyh666666@example.com>
Date:   Tue Feb 24 17:17:49 2026 +0800

    consumerm妯″潡瀹屾垚搴?0%锛屽畬鍠勬秷璐硅€呭拰鍟嗗绔暟鎹簱琛紝鍟嗗搧銆佽亰澶┿€佽鍗曟暟鎹鎺ュソ浜唖upabase锛屽拰鍟嗗绔鎺ヤ簡鑱婂ぉ鍔熻兘锛屽畨鍗撶缂栬瘧閫氳繃浜哻ss鏍峰紡锛屽墿浣欏嚑涓〉闈㈠湪澶勭悊鍑芥暟瑙勮寖闂

diff --git a/ak/config.uts b/ak/config.uts
index 5456d84c5..877319456 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,20 +1,16 @@
 // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.62
-// IP: 192.168.1.62
 // Kong HTTP Port: 8000
-//鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
+
+//export const SUPA_URL: string = 'http://192.168.1.61:18000'
+//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 export const SUPA_URL: string = 'http://192.168.1.61:18000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-//export const SUPA_URL: string = 'http://192.168.1.62:18000'
-//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-//export const SUPA_URL: string = 'http://192.168.1.63:18000'
-//export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
-//export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
-//export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
+//export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃
@@ -37,4 +33,4 @@ export const HOME_REDIRECT: string = '/pages/mall/consumer/index'
 export const TABORPAGE: string = '/pages/mall/consumer/index'
 
 // 娴嬭瘯妯″紡锛氭斁寮€浠绘剰璺宠浆锛堢鐢ㄥ惎鍔ㄩ〉/鐧诲綍/401 鐨勫己鍒堕噸瀹氬悜锛?-export const IS_TEST_MODE: boolean = true
+export const IS_TEST_MODE: boolean = true
\ No newline at end of file

commit e2f1dfb0972296dab5170eed51a10bfa5e6e5ac0
Author: cyh666666 <2398882793@qq.com>
Date:   Fri Feb 6 17:10:31 2026 +0800

    consumer妯″潡瀹屾垚95%锛屽湪鍜屽晢瀹剁瀵规帴鑱婂ぉ璐墿闂幆

diff --git a/ak/config.uts b/ak/config.uts
index 104823151..5456d84c5 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,20 +1,20 @@
 // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
-// IP: 192.168.1.61
-// IP: 192.168.1.61
+// IP: 192.168.1.62
+// IP: 192.168.1.62
 // Kong HTTP Port: 8000
 //鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
 export const SUPA_URL: string = 'http://192.168.1.61:18000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 //export const SUPA_URL: string = 'http://192.168.1.62:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-// export const SUPA_URL: string = 'http://192.168.1.63:18000'
-// export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
+//export const SUPA_URL: string = 'http://192.168.1.63:18000'
+//export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-// export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
-export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
-// export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
+//export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
+//export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃
@@ -37,4 +37,4 @@ export const HOME_REDIRECT: string = '/pages/mall/consumer/index'
 export const TABORPAGE: string = '/pages/mall/consumer/index'
 
 // 娴嬭瘯妯″紡锛氭斁寮€浠绘剰璺宠浆锛堢鐢ㄥ惎鍔ㄩ〉/鐧诲綍/401 鐨勫己鍒堕噸瀹氬悜锛?-export const IS_TEST_MODE: boolean = true
\ No newline at end of file
+export const IS_TEST_MODE: boolean = true

commit 06b73694944abcedc3f870c352714cd01c49d361
Author: cyh666666 <2398882793@qq.com>
Date:   Thu Feb 5 17:27:22 2026 +0800

    consumer妯″潡瀹屾垚90%锛屽畬鍠勫簵閾哄晢鍝佷紭鎯犲埜棰嗗彇

diff --git a/ak/config.uts b/ak/config.uts
index 9db7b3c6d..104823151 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,32 +1,20 @@
 // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
-// IP: 192.168.1.62
-// IP: 192.168.1.62
+// IP: 192.168.1.61
+// IP: 192.168.1.61
 // Kong HTTP Port: 8000
-<<<<<<< HEAD
-
-//export const SUPA_URL: string = 'http://192.168.1.61:18000'
-//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+//鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
 export const SUPA_URL: string = 'http://192.168.1.61:18000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-
-// WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
-//export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'
-=======
-//鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
-//export const SUPA_URL: string = 'http://192.168.1.61:18000'
-//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 //export const SUPA_URL: string = 'http://192.168.1.62:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-export const SUPA_URL: string = 'http://192.168.1.63:18000'
-export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
+// export const SUPA_URL: string = 'http://192.168.1.63:18000'
+// export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
-//export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
-export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
->>>>>>> origin/main
+export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
+// export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃
@@ -49,4 +37,4 @@ export const HOME_REDIRECT: string = '/pages/mall/consumer/index'
 export const TABORPAGE: string = '/pages/mall/consumer/index'
 
 // 娴嬭瘯妯″紡锛氭斁寮€浠绘剰璺宠浆锛堢鐢ㄥ惎鍔ㄩ〉/鐧诲綍/401 鐨勫己鍒堕噸瀹氬悜锛?-export const IS_TEST_MODE: boolean = true
+export const IS_TEST_MODE: boolean = true
\ No newline at end of file

commit 7344aaae772344a58a04793ba87a2ab19343787f
Merge: 39aa1b6be 1b83b5e0b
Author: cyh666666 <2398882793@qq.com>
Date:   Wed Feb 4 17:34:38 2026 +0800

    Merge branch 'cyh666666/consumer' of http://192.168.1.111:3000/mall/mall into cyh666666/consumer

commit 39aa1b6becd70806361b9095dbef96946eba3c75
Author: cyh666666 <2398882793@qq.com>
Date:   Wed Feb 4 17:21:15 2026 +0800

    consumer妯″潡瀹屾垚90%锛屽墠绔畬鎴恠upabase瀵规帴

diff --git a/ak/config.uts b/ak/config.uts
index 3413f86c0..977dbcd3f 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -3,7 +3,7 @@
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
 
-//export const SUPA_URL: string = 'http://localhost:18000'
+//export const SUPA_URL: string = 'http://192.168.1.61:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 export const SUPA_URL: string = 'http://192.168.1.61:18000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'

commit 768140fda3644c5ee7b8b575bbfc24f4ba24a30c
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Tue Feb 3 20:12:36 2026 +0800

    鍚堝苟鍚庝慨鏀规枃浠?
diff --git a/ak/config.uts b/ak/config.uts
index 690cbaabc..6035d50eb 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -6,15 +6,15 @@
 //鑷繁鐨勯厤缃嚜宸辫В寮€鍗冲彲
 //export const SUPA_URL: string = 'http://192.168.1.61:18000'
 //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-//export const SUPA_URL: string = 'http://192.168.1.62:18000'
-//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-export const SUPA_URL: string = 'http://192.168.1.63:18000'
-export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
+export const SUPA_URL: string = 'http://192.168.1.62:18000'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+// export const SUPA_URL: string = 'http://192.168.1.63:18000'
+// export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
-//export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
-export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
+// export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit 1b83b5e0b358b18c0d830d2b597aaab40d040297
Merge: 8a535e3f3 859372ca5
Author: cyh666666 <2398882793@qq.com>
Date:   Tue Feb 3 17:26:23 2026 +0800

    20260203

commit 8a535e3f387f58d736ca44a544e45ac1fe784cc8
Author: cyh666666 <2398882793@qq.com>
Date:   Tue Feb 3 17:11:50 2026 +0800

    consumer妯″潡瀹屾垚90%锛屽墠绔畬鎴恠upabase瀵规帴

diff --git a/ak/config.uts b/ak/config.uts
index 83113b958..3413f86c0 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -2,11 +2,15 @@
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
+
+//export const SUPA_URL: string = 'http://localhost:18000'
+//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 export const SUPA_URL: string = 'http://192.168.1.61:18000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛? export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
+//export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit 859372ca5b2d6c86107d3b19d5d7482a02eaac41
Merge: 9799de77b b6200cda2
Author: comlibmb <1844410276@qq.com>
Date:   Tue Feb 3 11:38:00 2026 +0800

    鍚堝苟鍚庡彴绔?
commit cd4861a6dcdac5c5cb4bcfefbfb77b6376baa3d4
Merge: fca976158 8efe6d5e8
Author: comlibmb <1844410276@qq.com>
Date:   Mon Feb 2 21:41:53 2026 +0800

    Merge branch 'ysj-delivery' into main

commit 8efe6d5e89193e991453d882b0fa3b353e903bf2
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Mon Feb 2 18:20:22 2026 +0800

    杩炴帴鏁版嵁搴撳苟淇敼椤甸潰

diff --git a/ak/config.uts b/ak/config.uts
index 2b48e5da5..88a835b8b 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -2,11 +2,11 @@
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
-export const SUPA_URL: string = 'http://192.168.1.62:13000'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
+export const SUPA_URL: string = 'http://192.168.1.62:18000'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.62:13000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit b6200cda285b50c855c9b7b5c9ddf5e1aec8f74e
Author: cyh666666 <2398882793@qq.com>
Date:   Mon Feb 2 17:34:31 2026 +0800

    鍓嶇鍚勯〉闈㈠鎺ユ暟鎹?
diff --git a/ak/config.uts b/ak/config.uts
index 290e56068..83113b958 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,12 +1,12 @@
 // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
-// IP: 192.168.1.61 (Ubuntu鏈嶅姟鍣?
+// IP: 192.168.1.62
 // Kong HTTP Port: 8000
-export const SUPA_URL: string = 'http://192.168.1.61:8000'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
+export const SUPA_URL: string = 'http://192.168.1.61:18000'
+export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.61:8000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃
@@ -26,4 +26,4 @@ export const WS_URL: string = 'ws://192.168.1.61:8000/realtime/v1/websocket'
 
 // 璺敱閰嶇疆
 export const HOME_REDIRECT: string = '/pages/mall/consumer/index'
-export const TABORPAGE: string = '/pages/mall/consumer/index'
+export const TABORPAGE: string = '/pages/mall/consumer/index'
\ No newline at end of file

commit 19970db2889644bce3834839d06d039e8905a4a1
Author: comlibmb <1844410276@qq.com>
Date:   Sun Feb 1 20:17:37 2026 +0800

    鏁版嵁鍒嗘瀽ui琛ュ厖瀹屽杽锛屾帴鍏ユ暟鎹簱

diff --git a/ak/config.uts b/ak/config.uts
index e235d9a14..b9ac3206d 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -2,11 +2,11 @@
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.63
 // Kong HTTP Port: 8000
-export const SUPA_URL: string = 'http://192.168.1.63:8000'
-export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
+export const SUPA_URL: string = 'http://192.168.1.63:18000'
+export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.63:8000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.63:18000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit 5f856a96c908172136f1e3135837c3433aa79111
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Fri Jan 30 21:11:17 2026 +0800

    淇敼鏁版嵁搴撳苟淇敼椤甸潰鏍峰紡

diff --git a/ak/config.uts b/ak/config.uts
index a24c488a8..2b48e5da5 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -2,11 +2,11 @@
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
 // IP: 192.168.1.62
 // Kong HTTP Port: 8000
-export const SUPA_URL: string = 'http://192.168.1.62:8000'
+export const SUPA_URL: string = 'http://192.168.1.62:13000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.62:8000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.62:13000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit b53d2376ff5df13939e35fea08fdaa225ed6864e
Author: comlibmb <1844410276@qq.com>
Date:   Thu Jan 29 17:30:39 2026 +0800

    鏁版嵁鍒嗘瀽ui琛ュ厖瀹屽杽锛屾帴鍏ユ暟鎹簱

diff --git a/ak/config.uts b/ak/config.uts
index 7269882bc..e235d9a14 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -27,3 +27,6 @@ export const WS_URL: string = 'ws://192.168.1.63:8000/realtime/v1/websocket'
 // 璺敱閰嶇疆
 export const HOME_REDIRECT: string = '/pages/mall/consumer/index'
 export const TABORPAGE: string = '/pages/mall/consumer/index'
+
+// 娴嬭瘯妯″紡锛氭斁寮€浠绘剰璺宠浆锛堢鐢ㄥ惎鍔ㄩ〉/鐧诲綍/401 鐨勫己鍒堕噸瀹氬悜锛?+export const IS_TEST_MODE: boolean = true

commit 76eb96ec0c1c7fb3618e30068060463074f087fb
Author: not-like-juvenile <16056107+not-like-juvenile@user.noreply.gitee.com>
Date:   Wed Jan 28 19:13:13 2026 +0800

    娣诲姞閫昏緫骞舵祴璇曡繛鎺ユ暟鎹簱

diff --git a/ak/config.uts b/ak/config.uts
index 7269882bc..a24c488a8 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,12 +1,12 @@
 // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
-// IP: 192.168.1.63
+// IP: 192.168.1.62
 // Kong HTTP Port: 8000
-export const SUPA_URL: string = 'http://192.168.1.63:8000'
+export const SUPA_URL: string = 'http://192.168.1.62:8000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.63:8000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.62:8000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃

commit a4fa00c93501c27c16b745b7d262d0bd5a838dcd
Author: cyh666666 <2398882793@qq.com>
Date:   Wed Jan 28 17:28:50 2026 +0800

    consumer妯″潡瀹屾垚搴?5%锛屾祴璇曡繛鎺upabase

diff --git a/ak/config.uts b/ak/config.uts
index 7269882bc..290e56068 100644
--- a/ak/config.uts
+++ b/ak/config.uts
@@ -1,12 +1,12 @@
 // Supabase 閰嶇疆
 // 鍐呯綉鐜 - 鏈湴閮ㄧ讲鐨?Supabase
-// IP: 192.168.1.63
+// IP: 192.168.1.61 (Ubuntu鏈嶅姟鍣?
 // Kong HTTP Port: 8000
-export const SUPA_URL: string = 'http://192.168.1.63:8000'
+export const SUPA_URL: string = 'http://192.168.1.61:8000'
 export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzY4ODMwNjI0LCJleHAiOjE5MjY1MTA2MjR9.mDVl-kIOdRK9v6VTxo0TDF8r7X7xk3PZXazaavHyVvg'
 
 // WebSocket 瀹炴椂杩炴帴锛堝唴缃戜娇鐢?ws:// 鑰岄潪 wss://锛?-export const WS_URL: string = 'ws://192.168.1.63:8000/realtime/v1/websocket'
+export const WS_URL: string = 'ws://192.168.1.61:8000/realtime/v1/websocket'
 
 // 澶囩敤閰嶇疆锛堝凡娉ㄩ噴锛屽闇€鍒囨崲鍙彇娑堟敞閲婏級
 // 寮€鍙戠幆澧?- 鍏朵粬鍐呯綉鍦板潃
