import { defineStore } from 'pinia' import { createPinia, PiniaPlugin } from 'pinia' import { ProductInfo } from '~/types/order' import { createPersistedState } from 'pinia-plugin-persistedstate' import {ApplicationDataQuery} from "~/types/merchant"; const pinia = createPinia() interface AppSate { stateEvaluationInfo: ProductInfo | null stateApplicationData: ApplicationDataQuery| null stateCarNumber: number stateisShowHeaderMenu: boolean stateFooterIsIntersecting: boolean stateIsHomePage: boolean stateRoutePath:string stateMerId:number stateExpressAll: any } export const useAppStore = defineStore({ id: 'appStore', state: (): AppSate => ({ stateEvaluationInfo: null, //评价商品信息 stateApplicationData: null, //商户入驻申请数据 stateCarNumber: 0, //购物车数量 stateisShowHeaderMenu: true, //是否展示头部导航 stateFooterIsIntersecting: true, //底部导航是否出现在可视区域内 stateIsHomePage: false, //是否是首页 stateRoutePath: '', //路由地址 stateMerId: 0, //商户id stateExpressAll: [] //全部物流公司 }), persist: true, getters: { evaluationInfo: (state) => state.stateEvaluationInfo, applicationData: (state) => state.stateApplicationData, carNumber:(state) => state.stateCarNumber, isShowHeaderMenu: (state) => state.stateisShowHeaderMenu, footerIsIntersecting: (state) => state.stateFooterIsIntersecting, isHomePage: (state) => state.stateIsHomePage, routePath: (state) => state.stateRoutePath, pcMerId: (state) => state.stateMerId, expressAll: (state) => state.stateExpressAll }, actions: { //评价商品信息 getEvaluationInfo(info: ProductInfo) { this.stateEvaluationInfo = info }, //商户入驻申请数据 getApplicationData(info: ApplicationDataQuery) { this.stateApplicationData = info }, //购物车数量 getCarNumber(num: number) { this.stateCarNumber = num }, //头部是否展示菜单 getIsShowHeaderMenu(bool: boolean) { this.stateisShowHeaderMenu = bool }, // 底部导航是否出现在可视区域内 getFooterIsIntersecting(bool: boolean) { this.stateFooterIsIntersecting = bool }, //是否是首页 setIsHomePage(bool: boolean) { this.stateIsHomePage = bool }, //获取路由地址 getRoutePath(path:string){ this.stateRoutePath = path }, // 商户id getMerId(merId:number){ this.stateMerId = merId }, getExpressList(express:any){ this.stateExpressAll = express } }, }) // 添加持久化插件到Pinia中 pinia.use(createPersistedState()) export default pinia