import Vue from 'vue'; import Vuex from 'vuex'; import createPersistedState from "vuex-persistedstate"; Vue.use(Vuex); import { SETRUSERAREA, SETCITYCODE, SETFILMDATA, SETSPREAD, SETTOKEN, SETISAPP } from './mutation-types.js' import card from './module/card'; // import brand from './module/brand'; import recharge from './module/recharge'; import shopping from './module/shopping'; // import VueXAlong from 'vuex-along'; import film from './module/film/index.js'; import diy from './module/diy/index.js'; const store = new Vuex.Store({ strict: true, // plugins: [VueXAlong], plugins: [ createPersistedState({ // 存储方式:localStorage、sessionStorage、cookies // storage: window.cookies, //存储到cookie // storage:window.sessionStorage 存储到sessionStorage // 如果不写默认存储到localStorage // 存储的 key 的key值 key: "vuexstore", render(state) { // 要存储的数据:本项目采用es6扩展运算符的方式存储了state中所有的数据 return { ...state }; //需要存储其中的某些数据的话需要单独取出来 // return { //只储存state中的assessmentData //assessmentData: val.assessmentData } }) ], state: { /** * @card 发卡员 * @Recharge 充值 */ operationend: '', // 城市信息 cityInfor: { city: '天津市', lat: 39.100622, lon: 117.132678 }, // 用户手动切换位置 Locationtext: '', // 切换的城市code AraeCityCode: '', // 电影城市数据 FilmCityDate: { cityName: "", // 市名 cityId: "", // 市ID regionName: "", // 区名 regionId: "" // 区ID }, token: '', spread: '', isApp: false }, getters: { // 获取操作端 GetOperation: state => state['operationend'], // 获取用户位置 GetcityInfor: state => state['cityInfor'], // 获取用户位置 GetUserArae: state => state['Locationtext'], // 获取用户选择的城市code GetCityCode: state => state['AraeCityCode'], // 获取电影城市数据 GetFilmData: state => state['FilmCityDate'], GetToken: state => state['token'], GetSpread: state => state['spread'], GetIsApp: state => state['isApp'], }, mutations: { // 用户自主选择位置之后 [SETRUSERAREA](state, data) { console.log(data, '用户自主选择位置之后') state['Locationtext'] = data; }, // 设置城市code [SETCITYCODE](state, code) { state['AraeCityCode'] = code; console.log('设置城市code', state['AraeCityCode']); }, [SETSPREAD](state, code) { state['spread'] = code; console.log('设置邀请码code', state['spread']); }, [SETTOKEN](state, data) { state['token'] = data; }, [SETISAPP](state, data) { state['isApp'] = data; }, // 设置电影城市数据 SETFILMDATA(state, data) { console.log(data, 'vuex设置电影城市数据') state['FilmCityDate'] = data; }, /** * @设置操作端 */ SetOperation(state, data) { state['operationend'] = data; }, /** * @设置用户地址 */ SetcityInfor(state, data) { state['cityInfor'] = data; }, /** * @ */ GetState(state) { // uni.setStorageSync('VUEXSTATE', JSON.stringify(store)); } }, modules: { card, // brand, recharge, shopping, // 电影票 film, // 定制 diy }, }); window.addEventListener("beforeunload", () => { uni.setStorageSync('VUEXSTATE', JSON.stringify(store['state'])); }); export default store;