Преглед на файлове

feat: 新增加密解密工具,集成SM4算法,支持HTTP响应数据解密

laiqi преди 9 месеца
родител
ревизия
a1b34d88d9
променени са 6 файла, в които са добавени 243 реда и са изтрити 67 реда
  1. 1 0
      package.json
  2. 66 44
      pnpm-lock.yaml
  3. 120 0
      src/utils/crypto.ts
  4. 33 19
      src/utils/http.ts
  5. 3 0
      src/utils/index.ts
  6. 20 4
      src/utils/request.ts

+ 1 - 0
package.json

@@ -105,6 +105,7 @@
     "@vueuse/core": "9",
     "abortcontroller-polyfill": "^1.7.8",
     "dayjs": "1.11.10",
+    "gm-crypto": "^0.1.12",
     "pinia": "2.0.36",
     "pinia-plugin-persistedstate": "3.2.1",
     "qs": "6.5.3",

+ 66 - 44
pnpm-lock.yaml

@@ -13,7 +13,7 @@ importers:
     dependencies:
       '@dcloudio/uni-app':
         specifier: 3.0.0-4020920240930001
-        version: 3.0.0-4020920240930001(@dcloudio/types@3.4.14)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+        version: 3.0.0-4020920240930001(@dcloudio/types@3.4.14)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-app-harmony':
         specifier: 3.0.0-4020920240930001
         version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vite@5.2.8(@types/node@20.17.9)(sass@1.77.8)(terser@5.36.0))(vue@3.4.21(typescript@5.7.2))
@@ -22,10 +22,10 @@ importers:
         version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vite@5.2.8(@types/node@20.17.9)(sass@1.77.8)(terser@5.36.0))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-components':
         specifier: 3.0.0-4020920240930001
-        version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+        version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-h5':
         specifier: 3.0.0-4020920240930001
-        version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+        version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-alipay':
         specifier: 3.0.0-4020920240930001
         version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
@@ -61,7 +61,7 @@ importers:
         version: 5.62.16(vue@3.4.21(typescript@5.7.2))
       '@uni-helper/uni-use':
         specifier: ^0.19.14
-        version: 0.19.14(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2))
+        version: 0.19.14(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2))
       '@vueuse/core':
         specifier: '9'
         version: 9.13.0(vue@3.4.21(typescript@5.7.2))
@@ -71,6 +71,9 @@ importers:
       dayjs:
         specifier: 1.11.10
         version: 1.11.10
+      gm-crypto:
+        specifier: ^0.1.12
+        version: 0.1.12
       pinia:
         specifier: 2.0.36
         version: 2.0.36(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2))
@@ -104,7 +107,7 @@ importers:
         version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(jest-environment-node@27.5.1)(jest@27.0.4(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-cli-shared':
         specifier: 3.0.0-4020920240930001
-        version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+        version: 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-stacktracey':
         specifier: 3.0.0-4020920240930001
         version: 3.0.0-4020920240930001
@@ -3608,6 +3611,9 @@ packages:
   globjoin@0.1.4:
     resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
 
+  gm-crypto@0.1.12:
+    resolution: {integrity: sha512-ercd9ionBqxR+/FCXICr0eo+jzC8BvSK0j9L7/eB0uwbyjgeMPTdBNrcQTqIuRXOtOAKSGsTNvtLYFnIxNEoFg==}
+
   gopd@1.1.0:
     resolution: {integrity: sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==}
     engines: {node: '>= 0.4'}
@@ -4170,6 +4176,9 @@ packages:
     resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
     hasBin: true
 
+  jsbn@1.1.0:
+    resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+
   jsdom@16.7.0:
     resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
     engines: {node: '>=10'}
@@ -5653,6 +5662,9 @@ packages:
   tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
+  to-arraybuffer@1.0.1:
+    resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==}
+
   to-regex-range@5.0.1:
     resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
     engines: {node: '>=8.0'}
@@ -7228,7 +7240,7 @@ snapshots:
     dependencies:
       '@babel/parser': 7.26.2
       '@babel/types': 7.26.0
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
       '@dcloudio/uni-nvue-styler': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7259,7 +7271,7 @@ snapshots:
 
   '@dcloudio/uni-app-vite@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vite@5.2.8(@types/node@20.17.9)(sass@1.77.8)(terser@5.36.0))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
       '@dcloudio/uni-nvue-styler': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7282,15 +7294,15 @@ snapshots:
 
   '@dcloudio/uni-app-vue@3.0.0-4020920240930001': {}
 
-  '@dcloudio/uni-app@3.0.0-4020920240930001(@dcloudio/types@3.4.14)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-app@3.0.0-4020920240930001(@dcloudio/types@3.4.14)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
       '@dcloudio/types': 3.4.14
-      '@dcloudio/uni-cloud': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
-      '@dcloudio/uni-components': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cloud': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-components': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
-      '@dcloudio/uni-push': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-push': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
-      '@dcloudio/uni-stat': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-stat': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@vue/shared': 3.4.21
     transitivePeerDependencies:
       - '@nuxt/kit'
@@ -7303,7 +7315,7 @@ snapshots:
 
   '@dcloudio/uni-automator@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(jest-environment-node@27.5.1)(jest@27.0.4(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       address: 1.2.2
       cross-env: 7.0.3
       debug: 4.3.7
@@ -7328,7 +7340,7 @@ snapshots:
       - utf-8-validate
       - vue
 
-  '@dcloudio/uni-cli-shared@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-cli-shared@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@babel/code-frame': 7.26.2
@@ -7369,7 +7381,7 @@ snapshots:
       os-locale-s-fix: 1.0.8-fix-1
       picocolors: 1.1.1
       postcss-import: 14.1.0(postcss@8.4.49)
-      postcss-load-config: 3.1.4(postcss@8.4.49)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))
+      postcss-load-config: 3.1.4(postcss@8.4.49)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))
       postcss-modules: 4.3.1(postcss@8.4.49)
       postcss-selector-parser: 6.1.2
       resolve: 1.22.8
@@ -7386,9 +7398,9 @@ snapshots:
       - ts-node
       - vue
 
-  '@dcloudio/uni-cloud@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-cloud@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
       '@vue/shared': 3.4.21
@@ -7402,10 +7414,10 @@ snapshots:
       - ts-node
       - vue
 
-  '@dcloudio/uni-components@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-components@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cloud': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
-      '@dcloudio/uni-h5': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cloud': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-h5': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
     transitivePeerDependencies:
       - '@nuxt/kit'
@@ -7416,9 +7428,9 @@ snapshots:
       - ts-node
       - vue
 
-  '@dcloudio/uni-h5-vite@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-h5-vite@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
       '@rollup/pluginutils': 5.1.3(rollup@4.28.0)
       '@vue/compiler-dom': 3.4.21
@@ -7445,9 +7457,9 @@ snapshots:
     transitivePeerDependencies:
       - vue
 
-  '@dcloudio/uni-h5@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-h5@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-h5-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-h5-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-h5-vue': 3.0.0-4020920240930001(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7472,7 +7484,7 @@ snapshots:
 
   '@dcloudio/uni-mp-alipay@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7489,7 +7501,7 @@ snapshots:
 
   '@dcloudio/uni-mp-baidu@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
@@ -7519,7 +7531,7 @@ snapshots:
       '@babel/generator': 7.26.2
       '@babel/parser': 7.26.2
       '@babel/types': 7.26.0
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
       '@vue/compiler-core': 3.4.21
       '@vue/compiler-dom': 3.4.21
@@ -7536,7 +7548,7 @@ snapshots:
 
   '@dcloudio/uni-mp-jd@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
@@ -7553,7 +7565,7 @@ snapshots:
 
   '@dcloudio/uni-mp-kuaishou@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
@@ -7575,7 +7587,7 @@ snapshots:
 
   '@dcloudio/uni-mp-lark@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-toutiao': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
@@ -7594,7 +7606,7 @@ snapshots:
 
   '@dcloudio/uni-mp-qq@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7611,7 +7623,7 @@ snapshots:
 
   '@dcloudio/uni-mp-toutiao@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
@@ -7629,7 +7641,7 @@ snapshots:
 
   '@dcloudio/uni-mp-vite@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-i18n': 3.0.0-4020920240930001
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
@@ -7653,7 +7665,7 @@ snapshots:
 
   '@dcloudio/uni-mp-weixin@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7677,7 +7689,7 @@ snapshots:
 
   '@dcloudio/uni-mp-xhs@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-compiler': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
@@ -7697,9 +7709,9 @@ snapshots:
       parse-css-font: 4.0.0
       postcss: 8.4.49
 
-  '@dcloudio/uni-push@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-push@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
     transitivePeerDependencies:
       - '@nuxt/kit'
       - '@vueuse/core'
@@ -7711,7 +7723,7 @@ snapshots:
 
   '@dcloudio/uni-quickapp-webview@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vite': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-mp-vue': 3.0.0-4020920240930001
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
@@ -7731,9 +7743,9 @@ snapshots:
 
   '@dcloudio/uni-stacktracey@3.0.0-4020920240930001': {}
 
-  '@dcloudio/uni-stat@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
+  '@dcloudio/uni-stat@3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))':
     dependencies:
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
       debug: 4.3.7
     transitivePeerDependencies:
@@ -7750,7 +7762,7 @@ snapshots:
       '@babel/core': 7.26.0
       '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0)
       '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0)
-      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-cli-shared': 3.0.0-4020920240930001(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@dcloudio/uni-shared': 3.0.0-4020920240930001
       '@rollup/pluginutils': 5.1.3(rollup@4.28.0)
       '@vitejs/plugin-legacy': 5.3.2(terser@5.36.0)(vite@5.2.8(@types/node@20.17.9)(sass@1.77.8)(terser@5.36.0))
@@ -8760,10 +8772,10 @@ snapshots:
       typescript: 5.7.2
       vue: 3.4.21(typescript@5.7.2)
 
-  '@uni-helper/uni-use@0.19.14(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2))':
+  '@uni-helper/uni-use@0.19.14(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(typescript@5.7.2)(vue@3.4.21(typescript@5.7.2))':
     dependencies:
       '@dcloudio/types': 3.4.14
-      '@dcloudio/uni-app': 3.0.0-4020920240930001(@dcloudio/types@3.4.14)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
+      '@dcloudio/uni-app': 3.0.0-4020920240930001(@dcloudio/types@3.4.14)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.7.2)))(postcss@8.4.49)(rollup@4.28.0)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2))(vue@3.4.21(typescript@5.7.2))
       '@vueuse/core': 9.13.0(vue@3.4.21(typescript@5.7.2))
       vue: 3.4.21(typescript@5.7.2)
     optionalDependencies:
@@ -10772,6 +10784,12 @@ snapshots:
 
   globjoin@0.1.4: {}
 
+  gm-crypto@0.1.12:
+    dependencies:
+      buffer: 5.7.1
+      jsbn: 1.1.0
+      to-arraybuffer: 1.0.1
+
   gopd@1.1.0:
     dependencies:
       get-intrinsic: 1.2.4
@@ -11522,6 +11540,8 @@ snapshots:
     dependencies:
       argparse: 2.0.1
 
+  jsbn@1.1.0: {}
+
   jsdom@16.7.0:
     dependencies:
       abab: 2.0.6
@@ -12265,7 +12285,7 @@ snapshots:
       read-cache: 1.0.0
       resolve: 1.22.8
 
-  postcss-load-config@3.1.4(postcss@8.4.49)(ts-node@10.9.2(@types/node@20.17.9)(typescript@5.7.2)):
+  postcss-load-config@3.1.4(postcss@8.4.49)(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.7.2)):
     dependencies:
       lilconfig: 2.1.0
       yaml: 1.10.2
@@ -13087,6 +13107,8 @@ snapshots:
 
   tmpl@1.0.5: {}
 
+  to-arraybuffer@1.0.1: {}
+
   to-regex-range@5.0.1:
     dependencies:
       is-number: 7.0.0

+ 120 - 0
src/utils/crypto.ts

@@ -0,0 +1,120 @@
+import { SM4 } from 'gm-crypto'
+
+/**
+ * 后端接口加密解密工具
+ *
+ * 配置说明:
+ * - 加密算法:SM4
+ * - 加密模式:CBC
+ * - 填充方式:PKCS7
+ * - 密钥:xPEZKRe8Ef6vd662 (16字节)
+ * - 初始化向量:pWxeZjbMUbfDMBxK (16字节)
+ * - 数据格式:Base64编码
+ *
+ * 使用方式:
+ * 1. 所有HTTP请求的响应数据会自动解密(已集成到http.ts和request.ts中)
+ * 2. 如需手动解密,可使用 decryptData() 方法
+ * 3. 如需解密响应对象,可使用 decryptResponse() 方法
+ *
+ * 示例:
+ * ```typescript
+ * import { decryptData, decryptResponse } from '@/utils'
+ *
+ * // 手动解密Base64数据
+ * const plainText = decryptData('your_base64_encrypted_data')
+ *
+ * // 解密响应对象
+ * const decryptedRes = decryptResponse(response)
+ * ```
+ */
+
+/**
+ * 将字符串转换为十六进制密钥格式
+ * @param str 原始字符串
+ * @returns 十六进制格式的密钥字符串
+ */
+function getFormattedKey(str: string): string {
+  // SM4需要32位十六进制字符串(16字节)
+  // 直接将字符串的每个字符转换为十六进制
+  let hex = ''
+  for (let i = 0; i < Math.min(str.length, 16); i++) {
+    const code = str.codePointAt(i) ?? 0
+    hex += code.toString(16).padStart(2, '0')
+  }
+  // 如果不足16字节,用0补齐到32位十六进制字符串
+  return hex.padEnd(32, '0')
+}
+
+/**
+ * 获取正确格式的密钥和IV
+ */
+function getFormattedKeyAndIv() {
+  const originalKey = 'xPEZKRe8Ef6vd662' // 16字符
+  const originalIv = 'pWxeZjbMUbfDMBxK' // 16字符
+
+  return {
+    key: getFormattedKey(originalKey),
+    iv: getFormattedKey(originalIv),
+  }
+}
+
+/**
+ * 解密Base64编码的密文
+ * @param encryptedData - Base64编码的加密数据
+ * @returns 解密后的明文字符串
+ */
+export const decryptData = (encryptedData: string): string => {
+  try {
+    const { key, iv } = getFormattedKeyAndIv()
+
+    // 解密Base64编码的密文
+    const decrypted = SM4.decrypt(encryptedData, key, {
+      iv,
+      mode: SM4.constants.CBC,
+      inputEncoding: 'base64', // 输入为base64格式
+      outputEncoding: 'utf8', // 输出为utf8字符串
+    })
+
+    return decrypted
+  } catch (error) {
+    console.error('解密失败:', error)
+    throw new Error('数据解密失败')
+  }
+}
+
+/**
+ * 解密响应数据(用于HTTP响应处理)
+ * @param response - 包含加密数据的响应对象
+ * @returns 解密后的响应对象
+ */
+export const decryptResponse = <T = any>(
+  response: { data?: string | ArrayBuffer | AnyObject } & Record<string, any>,
+): T => {
+  try {
+    if (response.data && typeof response.data === 'string') {
+      // 如果data字段是字符串(加密的),则进行解密
+      const decryptedData = decryptData(response.data)
+
+      // 尝试解析为JSON
+      try {
+        const parsedData = JSON.parse(decryptedData)
+        return {
+          ...response,
+          data: parsedData,
+        } as T
+      } catch {
+        // 如果不是JSON格式,直接返回解密后的字符串
+        return {
+          ...response,
+          data: decryptedData,
+        } as T
+      }
+    }
+
+    // 如果data不是字符串,直接返回原响应
+    return response as T
+  } catch (error) {
+    console.error('响应数据解密失败:', error)
+    throw error
+  }
+}

+ 33 - 19
src/utils/http.ts

@@ -1,7 +1,7 @@
 import { CustomRequestOptions } from '@/interceptors/request'
 import { useUserStore } from '@/store/user'
 import { useAppStore } from '@/store/app'
-import { formatBackendJson } from '@/utils'
+import { formatBackendJson, decryptResponse } from '@/utils'
 
 export const http = <T>(options: CustomRequestOptions & { formatData?: boolean }) => {
   const userStore = useUserStore()
@@ -29,41 +29,55 @@ export const http = <T>(options: CustomRequestOptions & { formatData?: boolean }
       // #endif
       // 响应成功
       success(res) {
-        console.log('响应成功:', options, res)
+        // 解密响应数据
+        let decryptedRes
+        try {
+          decryptedRes = decryptResponse(res)
+        } catch (error) {
+          console.error('响应解密失败:', error)
+          // 解密失败时显示错误提示
+          uni.showToast({
+            icon: 'none',
+            title: '数据解密失败',
+            duration: 3000,
+          })
+          reject(error)
+          return
+        }
 
-        const { Status, Message, Data } = res.data as any
+        const { Status, Message, Data } = decryptedRes.data as any
 
         // 2. http的状态码 状态码 2xx,参考 axios 的设计
         if (res.statusCode >= 200 && res.statusCode < 300) {
           // 3. 业务状态码
           switch (Status) {
             case 0: // 请求成功
-              // console.log('请求成功:', res.data)
+              // console.log('请求成功:', decryptedRes.data)
               // 如果不需要格式化数据,则直接返回
               if (!options.formatData) {
-                resolve(res.data as IResData<T>)
+                resolve(decryptedRes.data as IResData<T>)
               } else {
                 // 如果需要格式化数据,则格式化数据
                 resolve({
-                  Status: (res.data as any).Status,
-                  Message: (res.data as any).Message,
-                  Data: formatBackendJson((res.data as any).Data),
-                  OtherData: (res.data as any).OtherData,
+                  Status: (decryptedRes.data as any).Status,
+                  Message: (decryptedRes.data as any).Message,
+                  Data: formatBackendJson((decryptedRes.data as any).Data),
+                  OtherData: (decryptedRes.data as any).OtherData,
                 } as IResData<T>)
               }
               break
             case -1: // 请求失败
-              // console.log('请求失败:', res.data)
+              // console.log('请求失败:', decryptedRes.data)
               uni.showToast({
                 icon: 'none',
                 title: Message || '请求错误',
                 duration: 3000,
               })
               resolve({
-                Status: (res.data as any).Status,
-                Message: (res.data as any).Message,
-                Data: (res.data as any).Data,
-                OtherData: (res.data as any).OtherData,
+                Status: (decryptedRes.data as any).Status,
+                Message: (decryptedRes.data as any).Message,
+                Data: (decryptedRes.data as any).Data,
+                OtherData: (decryptedRes.data as any).OtherData,
               } as IResData<T>)
               break
             case -2: // token过期
@@ -81,10 +95,10 @@ export const http = <T>(options: CustomRequestOptions & { formatData?: boolean }
                 })
               }
               resolve({
-                Status: (res.data as any).Status,
-                Message: (res.data as any).Message,
-                Data: (res.data as any).Data,
-                OtherData: (res.data as any).OtherData,
+                Status: (decryptedRes.data as any).Status,
+                Message: (decryptedRes.data as any).Message,
+                Data: (decryptedRes.data as any).Data,
+                OtherData: (decryptedRes.data as any).OtherData,
               } as IResData<T>)
               break
             default:
@@ -101,7 +115,7 @@ export const http = <T>(options: CustomRequestOptions & { formatData?: boolean }
           !options.hideErrorToast &&
             uni.showToast({
               icon: 'none',
-              title: (res.data as IResData<T>).Message || '请求错误',
+              title: (decryptedRes.data as IResData<T>).Message || '请求错误',
               duration: 3000,
             })
           reject(res)

+ 3 - 0
src/utils/index.ts

@@ -217,3 +217,6 @@ export const parseQueryValues = (obj: Record<string, any>) => {
   }
   return result
 }
+
+// 导出加密解密相关方法
+export { decryptData, decryptResponse } from './crypto'

+ 20 - 4
src/utils/request.ts

@@ -1,4 +1,5 @@
 import { CustomRequestOptions } from '@/interceptors/request'
+import { decryptResponse } from '@/utils'
 
 /**
  * 请求方法: 主要是对 uni.request 的封装,去适配 openapi-ts-request 的 request 方法
@@ -16,11 +17,26 @@ const http = <T>(options: CustomRequestOptions) => {
       // #endif
       // 响应成功
       success(res) {
-        console.log('请求成功:', res)
+        // 解密响应数据
+        let decryptedRes
+        try {
+          decryptedRes = decryptResponse(res)
+        } catch (error) {
+          console.error('响应解密失败:', error)
+          // 解密失败时显示错误提示
+          uni.showToast({
+            icon: 'none',
+            title: '数据解密失败',
+            duration: 3000,
+          })
+          reject(error)
+          return
+        }
+
         // 状态码 2xx,参考 axios 的设计
         if (res.statusCode >= 200 && res.statusCode < 300) {
-          // 2.1 提取核心数据 res.data
-          resolve(res.data as T)
+          // 2.1 提取核心数据 decryptedRes.data
+          resolve(decryptedRes.data as T)
         } else if (res.statusCode === 401) {
           // 401错误  -> 清理用户信息,跳转到登录页
           // userStore.clearUserInfo()
@@ -32,7 +48,7 @@ const http = <T>(options: CustomRequestOptions) => {
           !options.hideErrorToast &&
             uni.showToast({
               icon: 'none',
-              title: (res.data as T & { msg?: string })?.msg || '请求错误',
+              title: (decryptedRes.data as T & { msg?: string })?.msg || '请求错误',
             })
           reject(res)
         }