Browse Source

Merge branch 'master' of http://192.168.101.4:3000/jiaxiaoqiang/HJ-AI-UNI

dengrui 4 months ago
parent
commit
c738abe338
8 changed files with 510 additions and 61 deletions
  1. 16 18
      main.js
  2. 397 34
      package-lock.json
  3. 10 8
      package.json
  4. 6 0
      pages.json
  5. 23 0
      pages/demo/test-store.vue
  6. 12 1
      pages/index/index.vue
  7. 27 0
      store/index.js
  8. 19 0
      store/user.js

+ 16 - 18
main.js

@@ -1,22 +1,20 @@
 import App from './App'
 
-// #ifndef VUE3
-import Vue from 'vue'
-import './uni.promisify.adaptor'
-Vue.config.productionTip = false
-App.mpType = 'app'
-const app = new Vue({
-  ...App
-})
-app.$mount()
-// #endif
 
-// #ifdef VUE3
-import { createSSRApp } from 'vue'
+import {
+	createSSRApp
+} from 'vue'
+import {
+	setupPinia
+} from "./store";
+
 export function createApp() {
-  const app = createSSRApp(App)
-  return {
-    app
-  }
-}
-// #endif
+	const app = createSSRApp(App)
+
+	setupPinia(app)
+
+	return {
+		app,
+
+	}
+}

+ 397 - 34
package-lock.json

@@ -1,36 +1,399 @@
 {
-  "name": "AudioTrans",
-  "version": "1.0.0",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "": {
-      "name": "AudioTrans",
-      "version": "1.0.0",
-      "license": "MIT",
-      "dependencies": {
-        "crypto-js": "^4.2.0",
-        "prettier": "^3.4.2"
-      }
-    },
-    "node_modules/crypto-js": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
-      "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
-    },
-    "node_modules/prettier": {
-      "version": "3.4.2",
-      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.4.2.tgz",
-      "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
-      "bin": {
-        "prettier": "bin/prettier.cjs"
-      },
-      "engines": {
-        "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/prettier/prettier?sponsor=1"
-      }
-    }
-  }
+	"name": "AudioTrans",
+	"version": "1.0.0",
+	"lockfileVersion": 3,
+	"requires": true,
+	"packages": {
+		"": {
+			"name": "AudioTrans",
+			"version": "1.0.0",
+			"license": "MIT",
+			"dependencies": {
+				"crypto-js": "^4.2.0",
+				"pinia": "^2.3.0",
+				"pinia-plugin-persist-uni": "^1.3.1",
+				"prettier": "^3.4.2"
+			}
+		},
+		"node_modules/@babel/helper-string-parser": {
+			"version": "7.25.9",
+			"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+			"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+			"peer": true,
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
+		"node_modules/@babel/helper-validator-identifier": {
+			"version": "7.25.9",
+			"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+			"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+			"peer": true,
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
+		"node_modules/@babel/parser": {
+			"version": "7.26.3",
+			"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz",
+			"integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
+			"peer": true,
+			"dependencies": {
+				"@babel/types": "^7.26.3"
+			},
+			"bin": {
+				"parser": "bin/babel-parser.js"
+			},
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
+		"node_modules/@babel/types": {
+			"version": "7.26.3",
+			"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz",
+			"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
+			"peer": true,
+			"dependencies": {
+				"@babel/helper-string-parser": "^7.25.9",
+				"@babel/helper-validator-identifier": "^7.25.9"
+			},
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
+		"node_modules/@jridgewell/sourcemap-codec": {
+			"version": "1.5.0",
+			"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+			"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+			"peer": true
+		},
+		"node_modules/@vue/compiler-core": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
+			"integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
+			"peer": true,
+			"dependencies": {
+				"@babel/parser": "^7.25.3",
+				"@vue/shared": "3.5.13",
+				"entities": "^4.5.0",
+				"estree-walker": "^2.0.2",
+				"source-map-js": "^1.2.0"
+			}
+		},
+		"node_modules/@vue/compiler-dom": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
+			"integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
+			"peer": true,
+			"dependencies": {
+				"@vue/compiler-core": "3.5.13",
+				"@vue/shared": "3.5.13"
+			}
+		},
+		"node_modules/@vue/compiler-sfc": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
+			"integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
+			"peer": true,
+			"dependencies": {
+				"@babel/parser": "^7.25.3",
+				"@vue/compiler-core": "3.5.13",
+				"@vue/compiler-dom": "3.5.13",
+				"@vue/compiler-ssr": "3.5.13",
+				"@vue/shared": "3.5.13",
+				"estree-walker": "^2.0.2",
+				"magic-string": "^0.30.11",
+				"postcss": "^8.4.48",
+				"source-map-js": "^1.2.0"
+			}
+		},
+		"node_modules/@vue/compiler-ssr": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
+			"integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
+			"peer": true,
+			"dependencies": {
+				"@vue/compiler-dom": "3.5.13",
+				"@vue/shared": "3.5.13"
+			}
+		},
+		"node_modules/@vue/devtools-api": {
+			"version": "6.6.4",
+			"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
+			"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
+		},
+		"node_modules/@vue/reactivity": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz",
+			"integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
+			"peer": true,
+			"dependencies": {
+				"@vue/shared": "3.5.13"
+			}
+		},
+		"node_modules/@vue/runtime-core": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
+			"integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
+			"peer": true,
+			"dependencies": {
+				"@vue/reactivity": "3.5.13",
+				"@vue/shared": "3.5.13"
+			}
+		},
+		"node_modules/@vue/runtime-dom": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
+			"integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
+			"peer": true,
+			"dependencies": {
+				"@vue/reactivity": "3.5.13",
+				"@vue/runtime-core": "3.5.13",
+				"@vue/shared": "3.5.13",
+				"csstype": "^3.1.3"
+			}
+		},
+		"node_modules/@vue/server-renderer": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
+			"integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
+			"peer": true,
+			"dependencies": {
+				"@vue/compiler-ssr": "3.5.13",
+				"@vue/shared": "3.5.13"
+			},
+			"peerDependencies": {
+				"vue": "3.5.13"
+			}
+		},
+		"node_modules/@vue/shared": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz",
+			"integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
+			"peer": true
+		},
+		"node_modules/crypto-js": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
+			"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+		},
+		"node_modules/csstype": {
+			"version": "3.1.3",
+			"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+			"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+			"peer": true
+		},
+		"node_modules/entities": {
+			"version": "4.5.0",
+			"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
+			"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+			"peer": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/estree-walker": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+			"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+			"peer": true
+		},
+		"node_modules/magic-string": {
+			"version": "0.30.15",
+			"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.15.tgz",
+			"integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==",
+			"peer": true,
+			"dependencies": {
+				"@jridgewell/sourcemap-codec": "^1.5.0"
+			}
+		},
+		"node_modules/nanoid": {
+			"version": "3.3.8",
+			"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz",
+			"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
+				}
+			],
+			"peer": true,
+			"bin": {
+				"nanoid": "bin/nanoid.cjs"
+			},
+			"engines": {
+				"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+			}
+		},
+		"node_modules/picocolors": {
+			"version": "1.1.1",
+			"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
+			"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+			"peer": true
+		},
+		"node_modules/pinia": {
+			"version": "2.3.0",
+			"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.3.0.tgz",
+			"integrity": "sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==",
+			"dependencies": {
+				"@vue/devtools-api": "^6.6.3",
+				"vue-demi": "^0.14.10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/posva"
+			},
+			"peerDependencies": {
+				"typescript": ">=4.4.4",
+				"vue": "^2.7.0 || ^3.5.11"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/pinia-plugin-persist-uni": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmmirror.com/pinia-plugin-persist-uni/-/pinia-plugin-persist-uni-1.3.1.tgz",
+			"integrity": "sha512-E7HEj6Hy3ZZKXCDG7yKWQ7Dg99Ibtei2qssY6w8wlqVBl3X54xSydiju8kO7IYPHw8heYAPjPBAF8TGCTdvRGQ==",
+			"dependencies": {
+				"vue-demi": "^0.12.1"
+			},
+			"peerDependencies": {
+				"@vue/composition-api": "^1.0.0",
+				"pinia": "^2.0.0",
+				"vue": "^2.0.0 || >=3.0.0"
+			},
+			"peerDependenciesMeta": {
+				"@vue/composition-api": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/pinia/node_modules/vue-demi": {
+			"version": "0.14.10",
+			"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
+			"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+			"hasInstallScript": true,
+			"bin": {
+				"vue-demi-fix": "bin/vue-demi-fix.js",
+				"vue-demi-switch": "bin/vue-demi-switch.js"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
+			},
+			"peerDependencies": {
+				"@vue/composition-api": "^1.0.0-rc.1",
+				"vue": "^3.0.0-0 || ^2.6.0"
+			},
+			"peerDependenciesMeta": {
+				"@vue/composition-api": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/postcss": {
+			"version": "8.4.49",
+			"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz",
+			"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/postcss/"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/postcss"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
+				}
+			],
+			"peer": true,
+			"dependencies": {
+				"nanoid": "^3.3.7",
+				"picocolors": "^1.1.1",
+				"source-map-js": "^1.2.1"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14"
+			}
+		},
+		"node_modules/prettier": {
+			"version": "3.4.2",
+			"resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.4.2.tgz",
+			"integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
+			"bin": {
+				"prettier": "bin/prettier.cjs"
+			},
+			"engines": {
+				"node": ">=14"
+			},
+			"funding": {
+				"url": "https://github.com/prettier/prettier?sponsor=1"
+			}
+		},
+		"node_modules/source-map-js": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
+			"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+			"peer": true,
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/vue": {
+			"version": "3.5.13",
+			"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz",
+			"integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
+			"peer": true,
+			"dependencies": {
+				"@vue/compiler-dom": "3.5.13",
+				"@vue/compiler-sfc": "3.5.13",
+				"@vue/runtime-dom": "3.5.13",
+				"@vue/server-renderer": "3.5.13",
+				"@vue/shared": "3.5.13"
+			},
+			"peerDependencies": {
+				"typescript": "*"
+			},
+			"peerDependenciesMeta": {
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/vue-demi": {
+			"version": "0.12.5",
+			"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz",
+			"integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
+			"hasInstallScript": true,
+			"bin": {
+				"vue-demi-fix": "bin/vue-demi-fix.js",
+				"vue-demi-switch": "bin/vue-demi-switch.js"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
+			},
+			"peerDependencies": {
+				"@vue/composition-api": "^1.0.0-rc.1",
+				"vue": "^3.0.0-0 || ^2.6.0"
+			},
+			"peerDependenciesMeta": {
+				"@vue/composition-api": {
+					"optional": true
+				}
+			}
+		}
+	}
 }

+ 10 - 8
package.json

@@ -1,10 +1,12 @@
 {
-  "name": "AudioTrans",
-  "version": "1.0.0",
-  "main": "index.js",
-  "license": "MIT",
-  "dependencies": {
-    "crypto-js": "^4.2.0",
-    "prettier": "^3.4.2"
-  }
+	"name": "AudioTrans",
+	"version": "1.0.0",
+	"main": "index.js",
+	"license": "MIT",
+	"dependencies": {
+		"crypto-js": "^4.2.0",
+		"pinia": "^2.3.0",
+		"pinia-plugin-persist-uni": "^1.3.1",
+		"prettier": "^3.4.2"
+	}
 }

+ 6 - 0
pages.json

@@ -11,6 +11,12 @@
 			"style": {
 				"navigationBarTitleText": "聊天"
 			}
+		},
+		{
+			"path": "pages/demo/test-store",
+			"style": {
+				"navigationBarTitleText": "store的用法"
+			}
 		}
 	],
 	"globalStyle": {

+ 23 - 0
pages/demo/test-store.vue

@@ -0,0 +1,23 @@
+<template>
+	<view>{{ userStore.baseNumber }}:{{ userStore.token }} </view>
+</template>
+
+<script setup>
+import { onMounted } from "vue";
+import $store from "@/store";
+
+const userStore = $store("user");
+
+onMounted(() => {
+	console.log("ddddd", userStore);
+	setTimeout(() => {
+		userStore.baseNumber = userStore.baseNumber + 1;
+		userStore.token = "两秒之后改变了";
+	}, 2000);
+});
+</script>
+
+<style lang="scss" scoped>
+.test {
+}
+</style>

+ 12 - 1
pages/index/index.vue

@@ -3,10 +3,12 @@
 		<!-- <button @touchstart.stop="start" @touchend.stop="end">按下说话,松开停止</button> -->
 		<button @click="start">开始说话</button>
 		<button @click="end">停止说话</button>
-		<button @click="gotoChat">去到下一个页面</button>
+
 		<view style="color: deeppink; font-size: 30rpx">
 			{{ msg }}
 		</view>
+		<button class="gap" @click="gotoChat">去到聊天页面页面</button>
+		<button class="gap" @click="gotoStore">去到store demo页面</button>
 		<yimo-AudioTrans
 			ref="yimoAudioTransRefs"
 			:options="options"
@@ -46,6 +48,11 @@ export default {
 				url: "/pages/chat/chat",
 			});
 		},
+		gotoStore() {
+			uni.navigateTo({
+				url: "/pages/demo/test-store",
+			});
+		},
 		countDown(e) {
 			console.log("countDown", e);
 		},
@@ -92,4 +99,8 @@ export default {
 	font-size: 36rpx;
 	color: #8f8f94;
 }
+
+.gap {
+	margin-top: 20px;
+}
 </style>

+ 27 - 0
store/index.js

@@ -0,0 +1,27 @@
+import {
+	createPinia
+} from "pinia";
+import piniaPersist from "pinia-plugin-persist-uni";
+
+// 自动注入所有pinia模块
+const files = import.meta.glob("./*.js", {
+	eager: true
+});
+const modules = {};
+
+Object.keys(files).forEach((key) => {
+	modules[key.replace(/(.*\/)*([^.]+).*/gi, "$2")] = files[key].default;
+});
+
+
+export const setupPinia = (app) => {
+	const pinia = createPinia();
+
+	pinia.use(piniaPersist);
+
+	app.use(pinia);
+};
+
+export default (name) => {
+	return modules[name]();
+};

+ 19 - 0
store/user.js

@@ -0,0 +1,19 @@
+import {
+	defineStore
+} from "pinia";
+
+
+const user = defineStore({
+	id: "user",
+	state: () => ({
+		baseNumber: 1,
+		token: '初始化的值aaaa'
+
+	}),
+	persist: {
+		enabled: true,
+		detached: true, // 设置订阅与组件分离
+	},
+});
+
+export default user;