import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex); //vue的插件机制

import api from '@/api/api.js'
import i18n from '@/locale/index.js'

//Vuex.Store 构造器选项
const store = new Vuex.Store({
	state: {
		token: uni.getStorageSync('token') || '',
		configList: {}, //配置列表
		userInfo: uni.getStorageSync('userInfo') ? JSON.parse(uni.getStorageSync('userInfo')) : {}, //用户信息
		// riceInfo : {},//用户相关信息
		areaList: [], //地区列表信息
		selectArea: {}, //当前选择的地区
	},
	getters: {
		userInfo: state => state.userInfo,
		isLogin: state => state.token ? true : false
	},
	mutations: {
		// 初始化配置
		initConfig(state) {
			api('getConfig', res => {
				if (res.code == 200) {
					res.result.forEach(n => {
						state.configList[n.keyName] = n.keyContent
					})
				}
				console.log("initConfig===============", res);
			})

			// let config = ['getPrivacyPolicy', 'getUserAgreement']
			// config.forEach(k => {
			// 	api(k, res => {
			// 		if (res.code == 200) {
			// 			state.configList[k] = res.result
			// 		}
			// 	})
			// })
		},
		login(state, commit) {
			uni.showLoading({
				title: i18n.t('common.logging_in') // 登录中...
			})
			uni.login({
				success(res) {
					if (res.errMsg != "login:ok") {
						return
					}

					let data = {
						code: res.code
					}

					if (uni.getStorageSync('shareId')) {
						data.shareId = uni.getStorageSync('shareId')
					}

					api('wxLogin', data, res => {

						uni.hideLoading()

						if (res.code != 200) {
							return
						}
						state.userInfo = res.result.userInfo
						state.token = res.result.token
						uni.setStorageSync('token', res.result.token)
						if (!state.userInfo.nickName || !state.userInfo.headImage) {
							uni.navigateTo({
								url: '/pages_login/wxUserInfo'
							})
						} else {
							uni.switchTab({
								url: '/pages/index/index'
							})
						}
					})
				}
			})
		},
		getUserInfo(state) {
			api('getInfo', res => {
				if (res.code == 200) {
					uni.setStorageSync('userInfo', JSON.stringify(res.result))
					state.userInfo = res.result

					if (!state.userInfo.nickName ||
						!state.userInfo.headImage ||
						!state.userInfo.phone ||
						!state.userInfo.sex) {
						uni.showToast({
							title: i18n.t(
								'pages_order.huodong_detail.complete_info_required') // 请您先完善必要信息
						})
						uni.navigateTo({
							url: '/pages_login/wxUserInfo'
						})
					}
				}
			})
		},
		// getRiceInfo(state){
		// 	api('getRiceInfo', {
		// 		token : uni.getStorageSync('token') || ''
		// 	},res => {
		// 		if(res.code == 200){
		// 			state.riceInfo = res.result
		// 		}
		// 	})
		// },
		// 退出登录
		logout(state) {
			uni.showModal({
				title: i18n.t('common.confirm_logout'), // 确认退出登录吗
				success(r) {
					if (r.confirm) {
						state.userInfo = {}
						state.token = ""
						uni.removeStorageSync('token')
						uni.reLaunch({
							url: '/pages/index/index'
						})
					}
				}
			})
		},
		// 查询地区
		getArea(state, fn) {
			api('getArea', res => {
				if (res.code == 200) {

					res.result.unshift({
						city: i18n.t('common.all'), // 全部
						id: '',
					})

					state.areaList = res.result
					fn && fn(res.result)
				}
			})
		},
		setArea(state, index) {
			state.selectArea = state.areaList[index]
		},
		hanlderManager(state, fn){
			api('joinRecruitInfo')
			.then(res => {
				fn && fn(res)
			})
		},
	},
	actions: {
	},
})

export default store