H5-ThreeDoorder/store/index.js

147 lines
3.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;