| import Vue from 'vue' | |
| import Vuex from 'vuex' | |
| 
 | |
| Vue.use(Vuex); //vue的插件机制 | |
|  | |
| import api from '@/api/api.js' | |
| 
 | |
| const accountInfo = wx.getAccountInfoSync(); | |
| 
 | |
| let envVersion = accountInfo.miniProgram.envVersion; | |
| 
 | |
| //Vuex.Store 构造器选项 | |
| const store = new Vuex.Store({ | |
| 	state: { | |
| 		configList: {}, //配置列表 | |
| 		userInfo : {}, //用户信息 | |
| 		bannerList : [],//轮播图 | |
| 		articleList : [],//文章列表 | |
| 		problemList : [],//问题列表 | |
| 		queryMyLog : [],//我的答题记录 | |
| 		reviewAnswerList : [],//评论题目列表 | |
| 		titleBy : {},//称号 | |
| 	}, | |
| 	getters: { | |
| 	}, | |
| 	mutations: { | |
| 		// 初始化配置 | |
| 		initConfig(state){ | |
| 			api('getConfig', res => { | |
| 				if(res.code == 200){ | |
| 					// state.configList = res.result | |
| 					res.result.forEach(n => { | |
| 						state.configList[n.keyName] = n.keyContent | |
| 					}) | |
| 					uni.$emit('initConfig', state.configList) | |
| 				} | |
| 			}) | |
| 			 | |
| 			// let config = ['getPrivacyPolicy', 'getUserAgreement'] | |
| 			// config.forEach(k => { | |
| 			// 	api(k, res => { | |
| 			// 		if (res.code == 200) { | |
| 			// 			state.configList[k] = res.result | |
| 			// 		} | |
| 			// 	}) | |
| 			// }) | |
| 		}, | |
| 		login(state){ | |
| 			uni.showLoading({ | |
| 				title: '登录中...' | |
| 			}) | |
| 			uni.login({ | |
| 				success(res) { | |
| 					if(res.errMsg != "login:ok"){ | |
| 						return | |
| 					} | |
| 					 | |
| 					api('wxLogin', { | |
| 						code : res.code | |
| 					}, res => { | |
| 						 | |
| 						uni.hideLoading() | |
| 						 | |
| 						if(res.code != 200){ | |
| 							return | |
| 						} | |
| 						 | |
| 						state.userInfo = res.result.userInfo | |
| 						uni.setStorageSync('token', res.result.token) | |
| 						 | |
| 						// if(!['release'].includes(envVersion)){ | |
| 						// 	return | |
| 						// } | |
| 						 | |
| 						// if(!state.userInfo.nickName || !state.userInfo.headImage){ | |
| 						// 	uni.navigateTo({ | |
| 						// 		url: '/pages_order/auth/wxUserInfo' | |
| 						// 	}) | |
| 						// }else{ | |
| 							// uni.navigateTo({ | |
| 							// 	url: '/pages/index/index' | |
| 							// }) | |
| 							uni.navigateBack(-1) | |
| 						// } | |
| 					}) | |
| 				} | |
| 			}) | |
| 		}, | |
| 		getUserInfo(state, fn){ | |
| 			api('getInfo', res => { | |
| 				if(res.code == 200){ | |
| 					state.userInfo = res.result | |
| 					fn && fn(state.userInfo) | |
| 				} | |
| 			}) | |
| 		}, | |
| 		// 获得的称号接口 | |
| 		getTitleByIds(state, ids){ | |
| 			api('getTitleByIds', {ids}, res => { | |
| 				if(res.code == 200){ | |
| 					state.titleBy = res.result | |
| 					state.articleList = res.result.answerObjectRuleNewsList | |
| 					setTimeout(uni.navigateTo, 0, { | |
| 						url: '/pages/index/title' | |
| 					}) | |
| 				} | |
| 			}) | |
| 		}, | |
| 		// // 获取轮播图 | |
| 		// getBanner(state){ | |
| 		// 	api('bannerList', res => { | |
| 		// 		if(res.code == 200){ | |
| 		// 			state.bannerList = res.result | |
| 		// 		} | |
| 		// 	}) | |
| 		// }, | |
| 		// // 获取文章列表 | |
| 		// getArticleList(state){ | |
| 		// 	api('articleList', res => { | |
| 		// 		if(res.code == 200){ | |
| 		// 			state.articleList = res.result | |
| 		// 		} | |
| 		// 	}) | |
| 		// }, | |
| 		// // 获取问题列表 | |
| 		// getProblemList(state){ | |
| 		// 	api('problemList', res => { | |
| 		// 		if(res.code == 200){ | |
| 		// 			state.problemList = res.result | |
| 		// 		} | |
| 		// 	}) | |
| 		// }, | |
| 		// // 评论题目列表接口 | |
| 		// getAnswerList(state, id){ | |
| 		// 	api('queryAnswerList', res => { | |
| 		// 		if(res.code == 200){ | |
| 		// 			state.reviewAnswerList = res.result | |
| 		// 			uni.navigateTo({ | |
| 		// 				url: '/pages/index/review?oid=' + id | |
| 		// 			}) | |
| 		// 		} | |
| 		// 	}) | |
| 		// }, | |
| 		// // 查询我的答题记录 | |
| 		// getQueryMyLog(state){ | |
| 		// 	api('queryMyLog', res => { | |
| 		// 		if(res.code == 200){ | |
| 		// 			state.queryMyLog = res.result | |
| 		// 			uni.navigateTo({ | |
| 		// 				url: '/pages/index/home' | |
| 		// 			}) | |
| 		// 		} | |
| 		// 	}) | |
| 		// }, | |
| 	}, | |
| 	actions: {}, | |
| }) | |
| 
 | |
| export default store
 |