147 lines
3.5 KiB
JavaScript
147 lines
3.5 KiB
JavaScript
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;
|