From baff697b4fcb5d3b170f1daba208e76d95496528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=9B=E4=BC=8A=E5=BE=B7?= <2916022834@qq.com> Date: Tue, 28 Oct 2025 14:51:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B8=85=E6=A5=9Astate?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 3 ++- src/components/FooterNavigation.vue | 2 ++ src/stores/modules/generate.ts | 3 +++ src/stores/modules/userInfo.ts | 3 ++- src/utils/myEvent.js | 15 +++++++++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/utils/myEvent.js diff --git a/.env.development b/.env.development index e39cfae..248fe20 100644 --- a/.env.development +++ b/.env.development @@ -1 +1,2 @@ -VITE_APP_URL = http://192.168.31.82:8771 \ No newline at end of file +# VITE_APP_URL = http://192.168.31.82:8771 +VITE_APP_URL = http://192.168.31.118:8771 \ No newline at end of file diff --git a/src/components/FooterNavigation.vue b/src/components/FooterNavigation.vue index 556ba0e..f14c00b 100644 --- a/src/components/FooterNavigation.vue +++ b/src/components/FooterNavigation.vue @@ -2,6 +2,7 @@ import { computed } from 'vue' import { useRouter } from 'vue-router' import { showConfirmDialog } from 'vant' + import MyEvent from '@/utils/myEvent' const router = useRouter() const currentRoute = computed(() => router.currentRoute.value.path) @@ -23,6 +24,7 @@ cancelButtonText: 'Cancel', }) .then(() => { + MyEvent.emit('clear-generate-state') nav.path && router.push(nav.path) }) .catch(() => {}) diff --git a/src/stores/modules/generate.ts b/src/stores/modules/generate.ts index da44554..7bffe57 100644 --- a/src/stores/modules/generate.ts +++ b/src/stores/modules/generate.ts @@ -1,5 +1,8 @@ // 每一个存储的模块,命名规则use开头,store结尾 import { defineStore } from 'pinia' +import MyEvent from '@/utils/myEvent' +MyEvent.add('clear-generate-state', () => useGenerateStore().clearGenerateData()) + export const useGenerateStore = defineStore({ id: 'generate', // 必须指明唯一的pinia仓库的id state: () => { diff --git a/src/stores/modules/userInfo.ts b/src/stores/modules/userInfo.ts index 42379f4..e5f9072 100644 --- a/src/stores/modules/userInfo.ts +++ b/src/stores/modules/userInfo.ts @@ -2,7 +2,7 @@ import { defineStore } from 'pinia' import { ref, computed } from 'vue' import { removeLocal, setLocal } from '@/utils/local' - +import MyEvent from '@/utils/myEvent' export const useUserInfoStore = defineStore('userInfo', () => { const state = ref({ userInfo: {}, @@ -48,6 +48,7 @@ export const useUserInfoStore = defineStore('userInfo', () => { state.value.userInfo = {} removeLocal('token') resetGenerateParams() + MyEvent.emit('clear-generate-state') resolve('') }) } diff --git a/src/utils/myEvent.js b/src/utils/myEvent.js new file mode 100644 index 0000000..e3c4e1b --- /dev/null +++ b/src/utils/myEvent.js @@ -0,0 +1,15 @@ +class MyEvent { + static list = [] + add(name, call) { + MyEvent.list.push({ name, call }) + } + remove(name, call) { + MyEvent.list = MyEvent.list.filter(item => item.name != name && item.call != call) + } + emit(name, data) { + MyEvent.list.forEach(item => { + if (item.name == name) item.call(data) + }) + } +} +export default new MyEvent() \ No newline at end of file