Update store paths and add persistence plugin

This commit is contained in:
wangqiao
2025-08-26 16:25:58 +08:00
parent e021ac1e05
commit 4263a0a235
27 changed files with 61 additions and 31 deletions

View File

@ -87,7 +87,7 @@
import { login, sendEmailCode, loginByEmail } from '~/api/login/index'
import refreshToken from '~/utils/RefreshToken'
import { handleLoginQQ, handleLoginWechat, generateRandomString } from '~/utils/login'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const { $openRegister, $openLogin } = useNuxtApp()

View File

@ -88,7 +88,7 @@
import { sendSms } from '~/api/common/index'
import REFRESHTOKEN from '~/utils/RefreshToken'
import { handleLoginQQ, handleLoginWechat } from '~/utils/login'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const app = useNuxtApp()
const token = useToken();

View File

@ -30,7 +30,7 @@
</div>
</template>
<script setup lang="ts">
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
import { BellFilled } from '@element-plus/icons-vue'
import { ref, computed } from 'vue'

View File

@ -68,7 +68,7 @@
import type { ProjectDrawStatisticAppRespVO } from '~/api/home/type'
import { Search } from '@element-plus/icons-vue'
import refreshToken from "~/utils/RefreshToken";
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const app = useNuxtApp()
@ -89,8 +89,6 @@
// 是否登录
const isLogin = computed(() => {
console.log('userStore.token', refreshToken.getToken());
return !!userStore.token
})
@ -180,6 +178,7 @@
}
const handleCommand = (command: string) => {
if (command === '退出') {
clearNuxtState(['token', 'userInfo'])
userStore.logout()
userStore.$reset()
} else if (command === '个人中心') {

View File

@ -91,7 +91,7 @@
import { upload } from '~/api/common'
import { sendKefuMessage, getMessagePage } from '~/api/channel/index'
import type { msgType, PageResultMessageRespVO } from '~/api/channel/types'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
import dayjs from 'dayjs'

View File

@ -41,7 +41,7 @@
import type { AppPayWalletPackageRespVO } from '~/api/pay/types'
// @ts-ignore
import QrcodeVue from 'qrcode.vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const props = defineProps({
modelValue: {

View File

@ -33,7 +33,7 @@
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
import { Service, Top, Promotion, Checked, Trophy } from '@element-plus/icons-vue'
import KlService from './components/kl-service.vue'
import KlVip from './components/kl-vip.vue'

View File

@ -58,7 +58,7 @@
const { $openLogin } = useNuxtApp()
import REFRESHTOKEN from '~/utils/RefreshToken'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const props = defineProps({

View File

@ -61,7 +61,7 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { Search } from '@element-plus/icons-vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
import { top } from '~/api/home/index'

View File

@ -11,7 +11,7 @@ export default defineNuxtConfig({
debug: process.env.NODE_ENV === "development", // 开启详细调试日志
ssr: true,
modules: ["@unocss/nuxt", "@pinia/nuxt", "@element-plus/nuxt"],
modules: ["@unocss/nuxt", "@pinia/nuxt", "@element-plus/nuxt",'pinia-plugin-persistedstate/nuxt'],
css: ["@unocss/reset/tailwind.css", "element-plus/dist/index.css","~/assets/scss/app.scss"],
vite: {
css: {
@ -115,5 +115,8 @@ export default defineNuxtConfig({
plugins: [
// 在这里引入插件
// { src: "~plugins/tinymce" ,ssr: false},
]
],
piniaPersistedstate: {
storage: 'localStorage'
}
});

View File

@ -30,6 +30,7 @@
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610",
"devDependencies": {
"@element-plus/nuxt": "^1.1.4",
"@pinia-plugin-persistedstate/nuxt": "^1.2.1",
"@unocss/nuxt": "^66.4.2",
"element-plus": "^2.10.7",
"sass": "^1.90.0",

View File

@ -68,7 +68,7 @@
import type { ChannelRespVO } from '~/api/channel/types'
import { createChannelFollow, deleteChannelFollow } from '~/api/channel/index'
import ChatPage from '~/pages/chat-page/index.vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const lunTanRes = defineModel<ChannelRespVO>('modelValue', {

View File

@ -36,7 +36,7 @@
</template>
<script setup lang="ts">
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const handleClick = () => {
// 判断是否登录

View File

@ -106,7 +106,7 @@
import type { msgType, PageResultMessageRespVO, MemberUserRespDTO } from '~/api/channel/types'
import { ref, onMounted, nextTick, watch, onUnmounted } from 'vue'
// import dayjs from 'dayjs'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const props = defineProps({

View File

@ -181,7 +181,7 @@
import { useRoute } from 'vue-router'
import { ref } from 'vue'
import type { ProjectRespVO, ProjectDrawPageRespVO, UserExtendSimpleRespDTO, ProjectDrawMemberRespVO } from '~/api/drawe-detail/types'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const message = useMessage()
const userStore = useUserStore()
// 获取路由参数

View File

@ -81,7 +81,7 @@
import { handleLoginQQ, handleLoginWechat } from '~/utils/login'
import type { UserStatisticsCountRespVO } from '~/api/personal-center/types'
import { getUserStatistics } from '~/api/personal-center/index'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const app = useNuxtApp()

View File

@ -56,7 +56,7 @@
import { reactive, ref } from 'vue'
import { resetPassoword } from '~/api/login/index'
import { sendSms } from '~/api/common/index'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const activeName = ref('修改密码')

View File

@ -131,7 +131,7 @@
import { upload } from '~/api/common'
import { sendSingleChat, conversationList, getChatDetail, clearUnreadMessage } from '~/api/channel/index'
import type { chatMessagesReq, msgType, PageResultSessionRespVO, PageResultMessageRespVO } from '~/api/channel/types'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
import dayjs from 'dayjs'

View File

@ -44,7 +44,7 @@
import type { AppPayWalletPackageRespVO } from '~/api/pay/types'
// @ts-ignore
import QrcodeVue from 'qrcode.vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const props = defineProps({

View File

@ -107,7 +107,7 @@
import Message from './components/message.vue'
import InfoEcharts from './info-echarts.vue'
import Pay from './components/pay.vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
// 路由跳转

View File

@ -40,7 +40,7 @@
import downloadTable from './components/download-table.vue'
import favoriteTable from './components/favorite-table.vue'
import browseTable from './components/browse-table.vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const activeName = ref('我的上传')

View File

@ -69,7 +69,7 @@
import { Search } from '@element-plus/icons-vue'
import { signIn, getUserPointPage } from '~/api/personal-center/index'
import type { PageResultMemberPointRecordRespVO } from '~/api/personal-center/types'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
import dayjs from 'dayjs'
const userStore = useUserStore()
const user = useUserInfo();

View File

@ -37,7 +37,7 @@
<script setup lang="ts">
import { ref } from 'vue'
import { Search } from '@element-plus/icons-vue'
import useUserStore from '~/store/user'
import useUserStore from '~/stores/user'
const userStore = useUserStore()
const emits = defineEmits(['search'])

View File

@ -1,4 +1,4 @@
import { defineStore } from "pinia";
import { defineStore, skipHydrate } from "pinia";
import refreshToken from "~/utils/RefreshToken";
import { getUserInfo } from "~/api/common/index";
import type { AppMemberUserInfoRespVO } from "~/api/common/types";
@ -8,7 +8,7 @@ import { socialLoginByCode } from "~/api/pay";
export default defineStore("useUserStore", {
state: () => ({
token: refreshToken.getToken().token || "",
token: refreshToken.getToken().token || '',
refreshToken: refreshToken.getToken().refreshToken || "",
userId: refreshToken.getToken().userId || "",
userName: refreshToken.getToken().userName || "",
@ -50,7 +50,7 @@ export default defineStore("useUserStore", {
},
// 建立连接mqtt
async connectMqtt() {
if (process.client) {
if (import.meta.client) {
this.mqttClient = new MQTTClient("wss://www.tuxixi.net/mqtt", {
clientId: this.userInfoRes.id,
});
@ -106,4 +106,8 @@ export default defineStore("useUserStore", {
}
},
},
persist: import.meta.client && {
storage: localStorage,
pick: ['token', 'refreshToken', 'userId', 'userName', 'userInfoRes'],
}
});

View File

@ -1009,7 +1009,7 @@
which "^5.0.0"
ws "^8.18.3"
"@nuxt/kit@3.18.1", "@nuxt/kit@^3.13.2", "@nuxt/kit@^3.15.4", "@nuxt/kit@^3.17.6", "@nuxt/kit@^3.9.0":
"@nuxt/kit@3.18.1", "@nuxt/kit@^3.12.2", "@nuxt/kit@^3.13.2", "@nuxt/kit@^3.15.4", "@nuxt/kit@^3.17.6", "@nuxt/kit@^3.9.0":
version "3.18.1"
resolved "https://registry.npmmirror.com/@nuxt/kit/-/kit-3.18.1.tgz"
integrity sha512-z6w1Fzv27CIKFlhct05rndkJSfoslplWH5fJ9dtusEvpYScLXp5cATWIbWkte9e9zFSmQTgDQJjNs3geQHE7og==
@ -1484,6 +1484,15 @@
"@parcel/watcher-win32-ia32" "2.5.1"
"@parcel/watcher-win32-x64" "2.5.1"
"@pinia-plugin-persistedstate/nuxt@^1.2.1":
version "1.2.1"
resolved "https://registry.npmmirror.com/@pinia-plugin-persistedstate/nuxt/-/nuxt-1.2.1.tgz#15f7c3d172bd6320f6017d9ccf785019a7de1060"
integrity sha512-q8s+4aQW/AjBMyeqLL48/qzBR5lcgnvvf1525ovNuKf6Wl9CsoLjPKh/5X8vNoKGwSow4gP7lVmdYPQRypgjgg==
dependencies:
"@nuxt/kit" "^3.12.2"
defu "^6.1.4"
pinia-plugin-persistedstate ">=3.2.1"
"@pinia/nuxt@^0.11.2":
version "0.11.2"
resolved "https://registry.npmmirror.com/@pinia/nuxt/-/nuxt-0.11.2.tgz"
@ -3187,6 +3196,11 @@ decimal.js@^10.6.0:
resolved "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a"
integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==
deep-pick-omit@^1.2.1:
version "1.2.1"
resolved "https://registry.npmmirror.com/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz#c035b27a4c86518b76f60ffa3004e6c61f317032"
integrity sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==
deepmerge@^4.2.2:
version "4.3.1"
resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz"
@ -5435,6 +5449,15 @@ picomatch@^4.0.2, picomatch@^4.0.3:
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz"
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
pinia-plugin-persistedstate@>=3.2.1:
version "4.5.0"
resolved "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-4.5.0.tgz#18563d635720de8459a94c051da4befa0c4b18b9"
integrity sha512-QTkP1xJVyCdr2I2p3AKUZM84/e+IS+HktRxKGAIuDzkyaKKV48mQcYkJFVVDuvTxlI5j6X3oZObpqoVB8JnWpw==
dependencies:
deep-pick-omit "^1.2.1"
defu "^6.1.4"
destr "^2.0.5"
pinia@^3.0.3:
version "3.0.3"
resolved "https://registry.npmmirror.com/pinia/-/pinia-3.0.3.tgz"