91 lines
2.4 KiB
JavaScript
91 lines
2.4 KiB
JavaScript
import Vue from 'vue'
|
|
|
|
const state = {
|
|
order: {}
|
|
};
|
|
|
|
const getters = {
|
|
// 获取订单商品信息列表
|
|
getCartInfoList(state) {
|
|
return state.order.carInfoVoList
|
|
},
|
|
// 获取提货点信息
|
|
getLeaderAddressVo(state) {
|
|
return state.order.leaderAddressVo
|
|
},
|
|
// 确认选中购物车的数量
|
|
getSelectedCount(state) {
|
|
let count = 0;
|
|
state.order.carInfoVoList && state.order.carInfoVoList
|
|
.forEach(carInfoItem => {
|
|
carInfoItem.cartInfoList.forEach(cartInfoItem => {
|
|
if (cartInfoItem.isChecked === 1) {
|
|
count += cartInfoItem.skuNum;
|
|
}
|
|
})
|
|
})
|
|
return count;
|
|
},
|
|
// 获取购物车价格信息
|
|
getCartPriceInfo(state) {
|
|
if (!state.order.totalAmount) {
|
|
return {
|
|
couponReduceAmount: 0,
|
|
originalTotalAmount: 0,
|
|
totalAmount: 0,
|
|
activityReduceAmount: 0
|
|
}
|
|
}
|
|
|
|
return {
|
|
couponReduceAmount: state.order.couponReduceAmount,
|
|
originalTotalAmount: state.order.originalTotalAmount,
|
|
totalAmount: state.order.totalAmount,
|
|
activityReduceAmount: state.order.activityReduceAmount
|
|
}
|
|
},
|
|
// 是否显示包含多个商品的内容
|
|
showMultiCheckbox(state) {
|
|
return function (index) {
|
|
return state.order.carInfoVoList[index].cartInfoList.length > 1
|
|
}
|
|
},
|
|
// 获取订单优惠券信息列表
|
|
getCartCouponInfoList(state) {
|
|
const couponInfoList = state.order.couponInfoList || []
|
|
if (couponInfoList) {
|
|
couponInfoList.forEach((
|
|
item) => {
|
|
Vue.set(item, 'selected', item.isOptimal === 1 && item.isSelect === 1)
|
|
|
|
})
|
|
}
|
|
return couponInfoList
|
|
},
|
|
}
|
|
|
|
const mutations = {
|
|
// 获取确认订单
|
|
getConfirmOrderMutation(state, payload) {
|
|
state.order = payload
|
|
}
|
|
}
|
|
|
|
const actions = {
|
|
// 获取确认订单
|
|
async getConfirmOrderAction({
|
|
commit
|
|
}) {
|
|
let result = await this._vm.$u.api.getConfirmOrder()
|
|
commit('getConfirmOrderMutation', result)
|
|
}
|
|
}
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state,
|
|
mutations,
|
|
actions,
|
|
getters,
|
|
};
|