mutations.js 8.2 KB
Newer Older
M
maguohua 已提交
1 2 3 4 5 6 7 8 9
import {
	RECORD_ADDRESS,
	ADD_CART,
	REDUCE_CART,
	INIT_BUYCART,
	CLEAR_CART,
	RECORD_SHOPDETAIL,
	RECORD_USERINFO,
	GET_USERINFO,
M
maguohua 已提交
10
	CONFIRM_REMARK,
M
confrim  
maguohua 已提交
11 12 13
	CONFIRM_INVOICE,
	CHOOSE_SEARCH_ADDRESS,
	SAVE_GEOHASH,
M
update  
maguohua 已提交
14
	CONFIRM_ADDRESS,
M
confrim  
maguohua 已提交
15
	CHOOSE_ADDRESS,
M
maguohua 已提交
16 17 18 19 20 21
	NEED_VALIDATION,
	SAVE_CART_ID_SIG,
	SAVE_ORDER_PARAM,
	CHANGE_ORDER_PARAM,
	ORDER_SUCCESS,
	SAVE_SHOPID,
M
maguohua 已提交
22
	SAVE_ORDER,
M
update  
maguohua 已提交
23
	OUT_LOGIN,
M
update  
maguohua 已提交
24 25 26
	RETSET_NAME,
	SAVE_AVANDER,
	SAVE_ADDRESS,
M
update  
maguohua 已提交
27
	SAVE_ADDDETAIL,
M
update  
maguohua 已提交
28
	SAVE_QUESTION,
M
update  
maguohua 已提交
29
	ADD_ADDRESS,
M
update  
maguohua 已提交
30
	BUY_CART,
M
maguohua 已提交
31
} from './mutation-types.js'
M
udpate  
maguohua 已提交
32

M
maguohua 已提交
33 34 35 36
import {
	setStore,
	getStore,
} from '../config/mUtils'
M
udpata  
maguohua 已提交
37 38

export default {
M
maguohua 已提交
39
	// 记录当前经度纬度
M
maguohua 已提交
40 41 42 43
	[RECORD_ADDRESS](state, {
		latitude,
		longitude
	}) {
M
maguohua 已提交
44 45
		state.latitude = latitude;
		state.longitude = longitude;
M
udpata  
maguohua 已提交
46
	},
M
maguohua 已提交
47 48

	[RECORD_SHOPDETAIL](state, detail) {
M
updata  
maguohua 已提交
49 50
		state.shopDetail = detail;
	},
M
maguohua 已提交
51
	// 加入购物车
M
maguohua 已提交
52 53 54 55 56 57 58 59 60 61 62 63
	[ADD_CART](state, {
		shopid,
		category_id,
		item_id,
		food_id,
		name,
		price,
		specs,
		packing_fee,
		sku_id,
		stock
	}) {
M
maguohua 已提交
64
		let cart = state.cartList;
M
maguohua 已提交
65 66 67
		if (cart[shopid] && cart[shopid][category_id] && cart[shopid][category_id][item_id] && cart[shopid][category_id][item_id][food_id]) {
			cart[shopid][category_id][item_id][food_id]['num']++;
		} else if (cart[shopid] && cart[shopid][category_id] && cart[shopid][category_id][item_id]) {
M
maguohua 已提交
68 69
			cart[shopid][category_id][item_id][food_id] = {};
			cart[shopid][category_id][item_id][food_id]['num'] = 1;
M
maguohua 已提交
70
			cart[shopid][category_id][item_id][food_id]['id'] = food_id;
M
maguohua 已提交
71 72 73
			cart[shopid][category_id][item_id][food_id]['name'] = name;
			cart[shopid][category_id][item_id][food_id]['price'] = price;
			cart[shopid][category_id][item_id][food_id]['specs'] = specs;
M
maguohua 已提交
74 75 76 77
			cart[shopid][category_id][item_id][food_id]['packing_fee'] = packing_fee;
			cart[shopid][category_id][item_id][food_id]['sku_id'] = sku_id;
			cart[shopid][category_id][item_id][food_id]['stock'] = stock;
		} else if (cart[shopid] && cart[shopid][category_id]) {
M
maguohua 已提交
78
			cart[shopid][category_id][item_id] = {};
M
maguohua 已提交
79
			cart[shopid][category_id][item_id][food_id] = {};
M
maguohua 已提交
80
			cart[shopid][category_id][item_id][food_id]['num'] = 1;
M
maguohua 已提交
81
			cart[shopid][category_id][item_id][food_id]['id'] = food_id;
M
maguohua 已提交
82 83 84
			cart[shopid][category_id][item_id][food_id]['name'] = name;
			cart[shopid][category_id][item_id][food_id]['price'] = price;
			cart[shopid][category_id][item_id][food_id]['specs'] = specs;
M
maguohua 已提交
85 86 87 88
			cart[shopid][category_id][item_id][food_id]['packing_fee'] = packing_fee;
			cart[shopid][category_id][item_id][food_id]['sku_id'] = sku_id;
			cart[shopid][category_id][item_id][food_id]['stock'] = stock;
		} else if (cart[shopid]) {
M
maguohua 已提交
89 90
			cart[shopid][category_id] = {};
			cart[shopid][category_id][item_id] = {};
M
maguohua 已提交
91 92
			cart[shopid][category_id][item_id][food_id] = {};
			cart[shopid][category_id][item_id][food_id]['num'] = 1;
M
maguohua 已提交
93
			cart[shopid][category_id][item_id][food_id]['id'] = food_id;
M
maguohua 已提交
94 95 96
			cart[shopid][category_id][item_id][food_id]['name'] = name;
			cart[shopid][category_id][item_id][food_id]['price'] = price;
			cart[shopid][category_id][item_id][food_id]['specs'] = specs;
M
maguohua 已提交
97 98 99 100
			cart[shopid][category_id][item_id][food_id]['packing_fee'] = packing_fee;
			cart[shopid][category_id][item_id][food_id]['sku_id'] = sku_id;
			cart[shopid][category_id][item_id][food_id]['stock'] = stock;
		} else {
M
maguohua 已提交
101 102 103
			cart[shopid] = {};
			cart[shopid][category_id] = {};
			cart[shopid][category_id][item_id] = {};
M
maguohua 已提交
104 105
			cart[shopid][category_id][item_id][food_id] = {};
			cart[shopid][category_id][item_id][food_id]['num'] = 1;
M
maguohua 已提交
106
			cart[shopid][category_id][item_id][food_id]['id'] = food_id;
M
maguohua 已提交
107 108 109
			cart[shopid][category_id][item_id][food_id]['name'] = name;
			cart[shopid][category_id][item_id][food_id]['price'] = price;
			cart[shopid][category_id][item_id][food_id]['specs'] = specs;
M
maguohua 已提交
110 111 112
			cart[shopid][category_id][item_id][food_id]['packing_fee'] = packing_fee;
			cart[shopid][category_id][item_id][food_id]['sku_id'] = sku_id;
			cart[shopid][category_id][item_id][food_id]['stock'] = stock;
M
maguohua 已提交
113
		}
M
update  
maguohua 已提交
114
		state.cartList = {...cart};
M
maguohua 已提交
115
		//存入localStorage
M
maguohua 已提交
116 117
		setStore('buyCart', state.cartList);
	},
M
maguohua 已提交
118
	// 移出购物车
M
maguohua 已提交
119 120 121 122 123 124 125
	[REDUCE_CART](state, {
		shopid,
		category_id,
		item_id,
		food_id,
		name,
		price,
M
maguohua 已提交
126
		specs,
M
maguohua 已提交
127
	}) {
M
maguohua 已提交
128
		let cart = state.cartList;
M
maguohua 已提交
129
		if (cart[shopid] && cart[shopid][category_id] && cart[shopid][category_id][item_id] && cart[shopid][category_id][item_id][food_id]) {
M
maguohua 已提交
130
			if (cart[shopid][category_id][item_id][food_id]['num'] > 0) {
M
maguohua 已提交
131
				cart[shopid][category_id][item_id][food_id]['num']--;
M
update  
maguohua 已提交
132
				state.cartList = {...cart};
M
maguohua 已提交
133
				//存入localStorage
M
maguohua 已提交
134
				setStore('buyCart', state.cartList);
M
maguohua 已提交
135
			} else {
M
maguohua 已提交
136
				//商品数量为0,则清空当前商品的信息
M
maguohua 已提交
137
				cart[shopid][category_id][item_id][food_id] = null;
M
maguohua 已提交
138 139 140
			}
		}
	},
M
maguohua 已提交
141
	//网页初始化时从本地缓存获取购物车数据
M
maguohua 已提交
142
	[INIT_BUYCART](state) {
M
maguohua 已提交
143 144 145 146
		let initCart = getStore('buyCart');
		if (initCart) {
			state.cartList = JSON.parse(initCart);
		}
M
maguohua 已提交
147
	},
M
maguohua 已提交
148
	//清空当前商品的购物车信息
M
maguohua 已提交
149
	[CLEAR_CART](state, shopid) {
M
maguohua 已提交
150
		state.cartList[shopid] = null;
M
update  
maguohua 已提交
151
		state.cartList = {...state.cartList};
M
maguohua 已提交
152
		setStore('buyCart', state.cartList);
M
maguohua 已提交
153
	},
M
maguohua 已提交
154
	// 记录用户信息
M
maguohua 已提交
155
	[RECORD_USERINFO](state, info) {
M
maguohua 已提交
156
		state.userInfo = info;
M
update  
maguohua 已提交
157
		state.login = true;
M
confrim  
maguohua 已提交
158 159 160 161 162
		let validity = 30;
		let now = new Date();
		now.setTime(now.getTime() + validity * 24 * 60 * 60 * 1000);
		document.cookie = "USERID=" + info.user_id + ";expires=" + now.toGMTString();
		document.cookie = "SID=huRyTRd9QLij7NkbpHJoj3PQrx1eRiO6bAiw" + ";expires=" + now.toGMTString();
M
maguohua 已提交
163
	},
M
confrim  
maguohua 已提交
164 165
	//获取用户信息存入vuex
	[GET_USERINFO](state, info) {
M
update  
maguohua 已提交
166 167 168
		if (state.userInfo && (state.userInfo.username !== info.username)) {
			return;
		};
M
update  
maguohua 已提交
169 170 171
		if (!state.login) {
			return
		}
M
confrim  
maguohua 已提交
172
		if (!info.message) {
M
udpate  
maguohua 已提交
173
			state.userInfo = {...info};
M
update  
maguohua 已提交
174 175 176 177 178
			let validity = 30;
			let now = new Date();
			now.setTime(now.getTime() + validity * 24 * 60 * 60 * 1000);
			document.cookie = "USERID=" + info.user_id + ";expires=" + now.toGMTString();
			document.cookie = "SID=huRyTRd9QLij7NkbpHJoj3PQrx1eRiO6bAiw" + ";expires=" + now.toGMTString();
M
confrim  
maguohua 已提交
179 180
		} else {
			state.userInfo = null;
M
maguohua 已提交
181 182
		}
	},
M
update  
maguohua 已提交
183 184 185 186
	//修改用户名
	[RETSET_NAME](state,username) {
		state.userInfo = Object.assign({}, state.userInfo,{username})
	},
M
maguohua 已提交
187 188 189 190
	//保存商铺id
	[SAVE_SHOPID](state, shopid) {
		state.shopid = shopid;
	},
M
maguohua 已提交
191 192 193 194 195 196 197
	//记录订单页面用户选择的备注, 传递给订单确认页面
	[CONFIRM_REMARK](state, {
		remarkText,
		inputText
	}) {
		state.remarkText = remarkText;
		state.inputText = inputText;
M
confrim  
maguohua 已提交
198 199 200 201 202 203 204 205 206 207 208 209
	},
	//是否开发票
	[CONFIRM_INVOICE](state, invoice) {
		state.invoice = invoice;
	},
	//选择搜索的地址
	[CHOOSE_SEARCH_ADDRESS](state, place) {
		state.searchAddress = place;
	},
	//保存geohash
	[SAVE_GEOHASH](state, geohash) {
		state.geohash = geohash;
M
update  
maguohua 已提交
210
		if (true) {}
M
confrim  
maguohua 已提交
211
	},
M
update  
maguohua 已提交
212 213 214 215
	//确认订单页添加新的的地址
	[CONFIRM_ADDRESS](state, newAddress) {
		state.newAddress.push(newAddress);
	},
M
confrim  
maguohua 已提交
216 217 218 219 220 221 222
	//选择的地址
	[CHOOSE_ADDRESS](state, {
		address,
		index
	}) {
		state.choosedAddress = address;
		state.addressIndex = index;
M
maguohua 已提交
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
	},
	//保存下单需要验证的返回值
	[NEED_VALIDATION](state, needValidation) {
		state.needValidation = needValidation;
	},
	//保存下单后购物id 和 sig
	[SAVE_CART_ID_SIG](state, {
		cart_id,
		sig
	}) {
		state.cart_id = cart_id;
		state.sig = sig;
	},
	//保存下单参数,用户验证页面调用
	[SAVE_ORDER_PARAM](state, orderParam) {
		state.orderParam = orderParam;
	},
	//修改下单参数
	[CHANGE_ORDER_PARAM](state, newParam) {
		state.orderParam = Object.assign({}, state.orderParam, newParam);
	},
	//下单成功,保存订单返回信息
	[ORDER_SUCCESS](state, order) {
M
update  
maguohua 已提交
246
		state.cartPrice = null;
M
maguohua 已提交
247 248
		state.orderMessage = order;
	},
M
maguohua 已提交
249 250 251 252
	//进入订单详情页前保存该订单信息
	[SAVE_ORDER](state, orderDetail) {
		state.orderDetail = orderDetail;
	},
J
Junv Zhao 已提交
253
	//退出登录
M
update  
maguohua 已提交
254 255 256 257
	[OUT_LOGIN](state) {
		state.userInfo = null;
		state.login = false;
	},
M
update  
maguohua 已提交
258 259 260 261 262 263 264 265
	//保存图片
	[SAVE_AVANDER](state, imgPath) {
		state.imgPath = imgPath;
	},
	//删除地址列表
	[SAVE_ADDRESS](state, newAdress) {
		state.removeAddress = newAdress
	},
M
update  
maguohua 已提交
266 267 268 269
	//添加地址name
	[SAVE_ADDDETAIL](state, addAddress){
		state.addAddress=addAddress;
	},
M
update  
maguohua 已提交
270 271 272
	//保存所选问题标题和详情
	[SAVE_QUESTION](state, question) {
		state.question = {...question};
M
update  
maguohua 已提交
273
	},
M
update  
maguohua 已提交
274
	//增加地址
M
udpate  
maguohua 已提交
275
	[ADD_ADDRESS](state, obj) {
M
update  
maguohua 已提交
276
		state.removeAddress = [obj, ...state.removeAddress];
M
update  
maguohua 已提交
277 278 279 280
	},
	//会员卡价格纪录
	[BUY_CART](state, price) {
		state.cartPrice = price;
M
update  
maguohua 已提交
281 282
	},

M
maguohua 已提交
283
}