<template>
	<view :style="colorStyle">
		<view class='shoppingCart copy-data' v-if="canShow">
			<view class='labelNav acea-row row-around row-middle'>
				<view class='item'><text class='iconfont icon-xuanzhong'></text>{{ $t(`100%正品保证`) }}</view>
				<view class='item'><text class='iconfont icon-xuanzhong'></text>{{ $t(`所有商品精挑细选`) }}</view>
				<view class='item'><text class='iconfont icon-xuanzhong'></text>{{ $t(`售后无忧`) }}</view>
			</view>
			<view class='nav acea-row row-between-wrapper'>
				<view>{{ $t(`购物数量`) }} <text class='num font-num'>{{ cartCount }}</text></view>
				<view v-if="cartList.valid.length > 0 || cartList.invalid.length > 0"
					class='administrate acea-row row-center-wrapper' @click='manage'>{{ footerswitch ? $t(`管理`) :
							$t(`取消`)
					}}
				</view>
			</view>
			<view v-if="(cartList.valid.length > 0 || cartList.invalid.length > 0) && canShow">
				<view class='list'>
					<checkbox-group @change="checkboxChange">
						<block v-for="(item, index) in cartList.valid" :key="index">
							<view class='item acea-row row-between-wrapper'>
								<!-- #ifndef MP -->
								<checkbox :value="(item.id).toString()" :checked="item.checked"
									:disabled="!item.attrStatus && footerswitch" />
								<!-- <checkbox :value="(item.id).toString()" :checked="item.checked" :disabled="item.attrStatus?false:true" /> -->
								<!-- #endif -->
								<!-- #ifdef MP -->
								<checkbox :value="item.id" :checked="item.checked"
									:disabled="!item.attrStatus && footerswitch" />
								<!-- #endif -->
								<navigator :url='"/pages/goods_details/index?id=" + item.product_id' hover-class='none'
									class='picTxt acea-row row-between-wrapper'>
									<view class='pictrue'>
										<image v-if="item.productInfo.attrInfo" :src='item.productInfo.attrInfo.image'>
										</image>
										<image v-else :src='item.productInfo.image'></image>
									</view>
									<view class='text'>
										<view class='line1' :class="item.attrStatus ? '' : 'reColor'">
											{{ item.productInfo.store_name }}
										</view>
										<view class='infor line1' v-if="item.productInfo.attrInfo">
											{{ $t(`属性`) }}：{{ item.productInfo.attrInfo.suk }}</view>
										<view class='money' v-if="item.attrStatus">{{ $t(`￥`) }}{{ item.truePrice }}
										</view>
										<view class="reElection acea-row row-between-wrapper" v-else>
											<view class="title">{{ $t(`请重新选择商品规格`) }}</view>
											<view class="reBnt cart-color acea-row row-center-wrapper"
												@click.stop="reElection(item)">{{ $t(`重选`) }}</view>
										</view>
									</view>
									<view class='carnum acea-row row-center-wrapper' v-if="item.attrStatus">
										<view class="reduce" :class="item.numSub ? 'on' : ''"
											@click.stop='subCart(index)'>-</view>
										<!-- <view class='num'>{{item.cart_num}}</view> -->
										<view class="num">
											<input type="number" v-model="item.cart_num" @click.stop
												@input="iptCartNum(index)" @blur="blurInput(index)" />
										</view>
										<view class="plus" :class="item.numAdd ? 'on' : ''"
											@click.stop='addCart(index)'>+</view>
									</view>
								</navigator>
							</view>
						</block>
					</checkbox-group>
				</view>
				<view class='invalidGoods' v-if="cartList.invalid.length > 0">
					<view class='goodsNav acea-row row-between-wrapper'>
						<view @click='goodsOpen'><text class='iconfont'
								:class='goodsHidden == true ? "icon-xiangxia" : "icon-xiangshang"'></text>{{ $t(`失效商品`)
								}}
						</view>
						<view class='del' @click='unsetCart'><text class='iconfont icon-shanchu1'></text>{{ $t(`清空`) }}
						</view>
					</view>
					<view class='goodsList' :hidden='goodsHidden'>
						<block v-for="(item, index) in cartList.invalid" :key='index'>
							<view class='item acea-row row-between-wrapper'>
								<view class='invalid'>{{ $t(`失效`) }}</view>
								<view class='pictrue'>
									<image v-if="item.productInfo.attrInfo" :src='item.productInfo.attrInfo.image'>
									</image>
									<image v-else :src='item.productInfo.image'></image>
								</view>
								<view class='text acea-row row-column-between'>
									<view class='line1 name'>{{ item.productInfo.store_name }}</view>
									<view class='infor line1' v-if="item.productInfo.attrInfo">
										{{ $t(`属性`) }}：{{ item.productInfo.attrInfo.suk }}</view>
									<view class='acea-row row-between-wrapper'>
										<!-- <view>￥{{item.truePrice}}</view> -->
										<view class='end'>{{ $t(`该商品已失效`) }}</view>
									</view>
								</view>
							</view>
						</block>
					</view>
				</view>
				<!-- <view class='loadingicon acea-row row-center-wrapper' v-if="cartList.valid.length&&!loadend">
					<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}}
				</view> -->
				<view class='loadingicon acea-row row-center-wrapper' v-if="cartList.invalid.length && loadend">
					<text class='loading iconfont icon-jiazai' :hidden='loadingInvalid == false'></text>{{
							loadTitleInvalid
					}}
				</view>
			</view>
			<view class='noCart' v-if="cartList.valid.length == 0 && cartList.invalid.length == 0 && canShow">
				<view class='emptyBox'>
					<image :src="imgHost + '/statics/images/no-thing.png'"></image>
					<view class="tips">{{ $t(`全选`) }}</view>
				</view>
				<recommend :hostProduct='hostProduct'></recommend>
			</view>
			<view style='height:120rpx;color: #F5F5F5;'></view>
			<view class='footer acea-row row-between-wrapper' v-if="cartList.valid.length > 0 && canShow"
				:class="is_diy && is_diy_set ? 'on' : ''">
				<view>
					<checkbox-group @change="checkboxAllChange">
						<checkbox value="all" :checked="!!isAllSelect" />
						<text class='checkAll'>{{ $t(`全选`) }}({{ selectValue.length }})</text>
					</checkbox-group>
				</view>
				<view class='money acea-row row-middle' v-if="footerswitch == true">
					<text class='font-color'>{{ $t(`￥`) }}{{ selectCountPrice }}</text>
					<form @submit="subOrder">
						<button class='placeOrder bg-color' formType="submit">{{ $t(`立即下单`) }}</button>
					</form>
				</view>
				<view class='button acea-row row-middle' v-else>
					<form @submit="subCollect">
						<button class='bnt cart-color' formType="submit">{{ $t(`收藏`) }}</button>
					</form>
					<form @submit="subDel">
						<button class='bnt' formType="submit">{{ $t(`删除`) }}</button>
					</form>
				</view>
			</view>
		</view>
		<productWindow :attr="attr" :isShow='1' :iSplus='1' :iScart='1' @myevent="onMyEvent" @ChangeAttr="ChangeAttr"
			@ChangeCartNum="ChangeCartNum" @attrVal="attrVal" @iptCartNum="iptCartNum" @goCat="reGoCat"
			id='product-window'></productWindow>
		<!-- #ifdef MP -->
		<!-- <authorize :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
		<!-- #endif -->
		<!-- <view class="uni-p-b-96"></view> -->
		<view class="uni-p-b-98"></view>
		<!-- <pageFooter :countNum="cartCount"></pageFooter> -->
		<view class="foot" v-if="is_diy && newData.status && newData.status.status">
			<view class="page-footer" id="target" :style="{ 'background-color': newData.bgColor.color[0].item }">
				<view class="foot-item" v-for="(item, index) in newData.menuList" :key="index" @click="goRouter(item)">
					<block v-if="item.link == activeRouter">
						<image :src="item.imgList[0]"></image>
						<view class="txt" :style="{ color: newData.activeTxtColor.color[0].item }">{{ item.name }}
						</view>
					</block>
					<block v-else>
						<image :src="item.imgList[1]"></image>
						<view class="txt" :style="{ color: newData.txtColor.color[0].item }">{{ item.name }}</view>
					</block>
					<div class="count-num" v-if="item.link === '/pages/order_addcart/order_addcart' && cartCount > 0">
						{{ cartCount }}
					</div>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
// #ifdef APP-PLUS
let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
// #endif
// #ifndef APP-PLUS
let sysHeight = 0
// #endif
import {
	getCartList,
	getCartCounts,
	changeCartNum,
	cartDel,
	getResetCart
} from '@/api/order.js';
import {
	getProductHot,
	collectAll,
	getProductDetail
} from '@/api/store.js';
import {
	toLogin
} from '@/libs/login.js';
import {
	mapGetters
} from "vuex";
import recommend from '@/components/recommend';
import productWindow from '@/components/productWindow';
// #ifdef MP
import authorize from '@/components/Authorize';
// #endif
import pageFooter from '@/components/pageFooter/index.vue'
import colors from "@/mixins/color";
import { HTTP_REQUEST_URL } from '@/config/app';
const hot_res = require('@/mock/json/hot_res.json')
import {
	getNavigation
} from '@/api/public.js'
export default {
	components: {
		pageFooter,
		recommend,
		productWindow,
		// #ifdef MP
		authorize
		// #endif
	},
	mixins: [colors],
	data() {
		return {
			imgHost: HTTP_REQUEST_URL,
			is_diy: uni.getStorageSync('is_diy'),
			canShow: false,
			cartCount: 0,
			goodsHidden: true,
			footerswitch: true,
			hostProduct: [],
			cartList: {
				valid: [],
				invalid: []
			},
			isAllSelect: false, //全选
			selectValue: [], //选中的数据
			selectCountPrice: 0.00,
			isAuto: false, //没有授权的不会自动授权
			isShowAuth: false, //是否隐藏授权
			hotScroll: false,
			hotPage: 1,
			hotLimit: 10,
			loading: false,
			loadend: false,
			loadTitle: this.$t(`我也是有底线的`), //提示语
			page: 1,
			limit: 20,
			loadingInvalid: false,
			loadendInvalid: false,
			loadTitleInvalid: this.$t(`加载更多`), //提示语
			pageInvalid: 1,
			limitInvalid: 20,
			attr: {
				cartAttr: false,
				productAttr: [],
				productSelect: {}
			},
			productValue: [], //系统属性
			storeInfo: {},
			attrValue: '', //已选属性
			attrTxt: this.$t(`请选择`), //属性页面提示
			cartId: 0,
			product_id: 0,
			sysHeight: sysHeight,
			newData: {},
			activeRouter: '',
			is_diy_set: false
		};
	},
	computed: mapGetters(['isLogin']),
	onLoad(options) {
		// if (this.is_diy) {
		// 	if (uni.getStorageSync('FOOTER_BAR')) {
		// 		uni.hideTabBar()
		// 	} else {
		// 		this.is_diy_set = true
		// 	}
		// 	uni.request({
		// 		url:'api/mock/navigation',
		// 		success:res=>{
		// 			this.newData = res.data
		// 			if (this.newData.status && this.newData.status.status) {
		// 				uni.hideTabBar()
		// 			} else {
		// 				uni.showTabBar()
		// 			}
		// 		}
		// 	})
		// 	// getNavigation().then(res => {
		// 	// 	this.newData = res.data
		// 	// 	if (this.newData.status && this.newData.status.status) {
		// 	// 		uni.hideTabBar()
		// 	// 	} else {
		// 	// 		uni.showTabBar()
		// 	// 	}
		// 	// })
		// } else {
		// 	uni.hideTabBar()
		// }
		let that = this;
		if (that.isLogin == false) {
			toLogin();
		}
		let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
		let curRoute = routes[routes.length - 1].route //获取当前页面路由
		this.activeRouter = '/' + curRoute
	},
	onShow() {
		this.canShow = false
		if (this.isLogin == true) {
			this.hotPage = 1;
			this.hostProduct = [],
				this.hotScroll = false,
				this.getHostProduct();
			this.loadend = false;
			this.page = 1;
			this.cartList.valid = [];
			this.getCartList();
			this.loadendInvalid = false;
			this.pageInvalid = 1;
			this.cartList.invalid = [];
			this.getInvalidList();
			this.getCartNum();
			this.goodsHidden = true;
			this.footerswitch = true;
			this.hostProduct = [];
			this.hotScroll = false;
			this.hotPage = 1;
			this.hotLimit = 10;
			this.cartList = {
				valid: [],
				invalid: []
			},
				this.isAllSelect = false; //全选
			this.selectValue = []; //选中的数据
			this.selectCountPrice = 0.00;
			this.cartCount = 0;
			this.isShowAuth = false;
		};
	},
	methods: {
		// 授权关闭
		authColse: function (e) {
			this.isShowAuth = e;
		},
		// 修改购物车
		reGoCat: function () {
			let that = this,
				productSelect = that.productValue[this.attrValue];
			//如果有属性,没有选择,提示用户选择
			if (
				that.attr.productAttr.length &&
				productSelect === undefined
			)
				return that.$util.Tips({
					title: that.$t(`产品库存不足，请选择其它`)
				});

			let q = {
				id: that.cartId,
				product_id: that.product_id,
				num: that.attr.productSelect.cart_num,
				unique: that.attr.productSelect !== undefined ?
					that.attr.productSelect.unique : ""
			};
			getResetCart(q)
				.then(function (res) {
					that.attr.cartAttr = false;
					that.$util.Tips({
						title: that.$t(`添加购物车成功`),
						success: () => {
							that.loadend = false;
							that.page = 1;
							that.cartList.valid = [];
							that.getCartList();
							that.getCartNum();
						}
					});
				})
				.catch(res => {
					return that.$util.Tips({
						title: res.msg
					});
				});
		},
		onMyEvent: function () {
			this.$set(this.attr, 'cartAttr', false);
		},
		reElection: function (item) {
			this.getGoodsDetails(item)
		},
		/**
		 * 获取产品详情
		 * 
		 */
		getGoodsDetails: function (item) {
			uni.showLoading({
				title: this.$t(`加载中`),
				mask: true
			});
			let that = this;
			that.cartId = item.id;
			that.product_id = item.product_id;
			getProductDetail(item.product_id).then(res => {
				uni.hideLoading();
				that.attr.cartAttr = true;
				let storeInfo = res.data.storeInfo;
				that.$set(that, 'storeInfo', storeInfo);
				that.$set(that.attr, 'productAttr', res.data.productAttr);
				that.$set(that, 'productValue', res.data.productValue);
				that.DefaultSelect();
			}).catch(err => {
				uni.hideLoading();
			})
		},
		/**
		 * 属性变动赋值
		 * 
		 */
		ChangeAttr: function (res) {
			let productSelect = this.productValue[res];
			if (productSelect && productSelect.stock > 0) {
				this.$set(this.attr.productSelect, "image", productSelect.image);
				this.$set(this.attr.productSelect, "price", productSelect.price);
				this.$set(this.attr.productSelect, "stock", productSelect.stock);
				this.$set(this.attr.productSelect, "unique", productSelect.unique);
				this.$set(this.attr.productSelect, "cart_num", 1);
				this.$set(this, "attrValue", res);
				this.$set(this, "attrTxt", this.$t(`已选择`));
			} else {
				this.$set(this.attr.productSelect, "image", this.storeInfo.image);
				this.$set(this.attr.productSelect, "price", this.storeInfo.price);
				this.$set(this.attr.productSelect, "stock", 0);
				this.$set(this.attr.productSelect, "unique", "");
				this.$set(this.attr.productSelect, "cart_num", 0);
				this.$set(this, "attrValue", "");
				this.$set(this, "attrTxt", this.$t(`请选择`));
			}
		},
		/**
		 * 默认选中属性
		 * 
		 */
		DefaultSelect: function () {
			let productAttr = this.attr.productAttr;
			let value = [];
			for (var key in this.productValue) {
				if (this.productValue[key].stock > 0) {
					value = this.attr.productAttr.length ? key.split(",") : [];
					break;
				}
			}
			for (let i = 0; i < productAttr.length; i++) {
				this.$set(productAttr[i], "index", value[i]);
			}
			//sort();排序函数:数字-英文-汉字；
			let productSelect = this.productValue[value.sort().join(",")];
			if (productSelect && productAttr.length) {
				this.$set(
					this.attr.productSelect,
					"store_name",
					this.storeInfo.store_name
				);
				this.$set(this.attr.productSelect, "image", productSelect.image);
				this.$set(this.attr.productSelect, "price", productSelect.price);
				this.$set(this.attr.productSelect, "stock", productSelect.stock);
				this.$set(this.attr.productSelect, "unique", productSelect.unique);
				this.$set(this.attr.productSelect, "cart_num", 1);
				this.$set(this, "attrValue", value.sort().join(","));
				this.$set(this, "attrTxt", this.$t(`已选择`));
			} else if (!productSelect && productAttr.length) {
				this.$set(
					this.attr.productSelect,
					"store_name",
					this.storeInfo.store_name
				);
				this.$set(this.attr.productSelect, "image", this.storeInfo.image);
				this.$set(this.attr.productSelect, "price", this.storeInfo.price);
				this.$set(this.attr.productSelect, "stock", 0);
				this.$set(this.attr.productSelect, "unique", "");
				this.$set(this.attr.productSelect, "cart_num", 0);
				this.$set(this, "attrValue", "");
				this.$set(this, "attrTxt", this.$t(`请选择`));
			} else if (!productSelect && !productAttr.length) {
				this.$set(
					this.attr.productSelect,
					"store_name",
					this.storeInfo.store_name
				);
				this.$set(this.attr.productSelect, "image", this.storeInfo.image);
				this.$set(this.attr.productSelect, "price", this.storeInfo.price);
				this.$set(this.attr.productSelect, "stock", this.storeInfo.stock);
				this.$set(
					this.attr.productSelect,
					"unique",
					this.storeInfo.unique || ""
				);
				this.$set(this.attr.productSelect, "cart_num", 1);
				this.$set(this, "attrValue", "");
				this.$set(this, "attrTxt", this.$t(`请选择`));
			}
		},
		attrVal(val) {
			this.$set(this.attr.productAttr[val.indexw], 'index', this.attr.productAttr[val.indexw].attr_values[val
				.indexn]);
		},
		/**
		 * 购物车数量加和数量减
		 * 
		 */
		ChangeCartNum: function (changeValue) {
			//changeValue:是否 加|减
			//获取当前变动属性
			let productSelect = this.productValue[this.attrValue];
			//如果没有属性,赋值给商品默认库存
			if (productSelect === undefined && !this.attr.productAttr.length)
				productSelect = this.attr.productSelect;
			//无属性值即库存为0；不存在加减；
			if (productSelect === undefined) return;
			let stock = productSelect.stock || 0;
			let num = this.attr.productSelect;
			if (changeValue) {
				num.cart_num++;
				if (num.cart_num > stock) {
					this.$set(this.attr.productSelect, "cart_num", stock ? stock : 1);
					this.$set(this, "cart_num", stock ? stock : 1);
				}
			} else {
				num.cart_num--;
				if (num.cart_num < 1) {
					this.$set(this.attr.productSelect, "cart_num", 1);
					this.$set(this, "cart_num", 1);
				}
			}
		},
		/**
		 * 购物车手动填写
		 * 
		 */
		iptCartNum: function (e) {
			this.$set(this.attr.productSelect, 'cart_num', e);
		},
		subDel: function (event) {
			let that = this,
				selectValue = that.selectValue;
			if (selectValue.length > 0)
				cartDel(selectValue).then(res => {
					that.loadend = false;
					that.page = 1;
					that.cartList.valid = [];
					that.getCartList();
					that.getCartNum();
				});
			else
				return that.$util.Tips({
					title: that.$t(`请选择产品`)
				});
		},
		getSelectValueProductId: function () {
			let that = this;
			let validList = that.cartList.valid;
			let selectValue = that.selectValue;
			let productId = [];
			if (selectValue.length > 0) {
				for (let index in validList) {
					if (that.inArray(validList[index].id, selectValue)) {
						productId.push(validList[index].product_id);
					}
				}
			};
			return productId;
		},
		subCollect: function (event) {
			let that = this,
				selectValue = that.selectValue;
			if (selectValue.length > 0) {
				let selectValueProductId = that.getSelectValueProductId();
				collectAll(that.getSelectValueProductId().join(',')).then(res => {
					return that.$util.Tips({
						title: res.msg,
						icon: 'success'
					});
				}).catch(err => {
					return that.$util.Tips({
						title: err
					});
				});
			} else {
				return that.$util.Tips({
					title: that.$t(`请选择产品`)
				});
			}
		},
		subOrder(event) {
			console.log(event)
			let that = this,
				selectValue = that.selectValue;
			if (selectValue.length > 0) {
				uni.navigateTo({
					url: '/pages/goods/order_confirm/index?cartId=' + selectValue.join(',')
				});
			} else {
				return that.$util.Tips({
					title: that.$t(`请选择产品`)
				});
			}
		},
		checkboxAllChange: function (event) {
			let value = event.detail.value;
			if (value.length > 0) {
				this.setAllSelectValue(1)
			} else {
				this.setAllSelectValue(0)
			}
		},
		setAllSelectValue: function (status) {
			let that = this;
			let selectValue = [];
			let valid = that.cartList.valid;
			if (valid.length > 0) {
				let newValid = valid.map(item => {
					if (status) {
						if (that.footerswitch) {
							if (item.attrStatus) {
								item.checked = true;
								selectValue.push(item.id);
							} else {
								item.checked = false;
							}
						} else {
							item.checked = true;
							selectValue.push(item.id);
						}
						that.isAllSelect = true;
					} else {
						item.checked = false;
						that.isAllSelect = false;
					}
					return item;
				});
				that.$set(that.cartList, 'valid', newValid);
				that.selectValue = selectValue;
				that.switchSelect();
			}
		},
		checkboxChange: function (event) {
			let that = this;
			let value = event.detail.value;
			let valid = that.cartList.valid;
			let arr1 = [];
			let arr2 = [];
			let arr3 = [];
			let newValid = valid.map(item => {
				if (that.inArray(item.id, value)) {
					if (that.footerswitch) {
						if (item.attrStatus) {
							item.checked = true;
							arr1.push(item);
						} else {
							item.checked = false;
						}
					} else {
						item.checked = true;
						arr1.push(item);
					}
				} else {
					item.checked = false;
					arr2.push(item);
				}
				return item;
			});
			if (that.footerswitch) {
				arr3 = arr2.filter(item => !item.attrStatus);
			}
			// for (let index in valid) {
			// 	if (that.inArray(valid[index].id, value)){
			// 		if(valid[index].attrStatus){
			// 			valid[index].checked = true;
			// 		}else{
			// 			valid[index].checked = false;
			// 		}
			// 	} else {
			// 		valid[index].checked = false;
			// 	} 
			// }
			that.$set(that.cartList, 'valid', newValid);
			// let newArr = that.cartList.valid.filter(item => item.attrStatus);
			that.isAllSelect = newValid.length === arr1.length + arr3.length;
			that.selectValue = value;
			that.switchSelect();
		},
		inArray: function (search, array) {
			for (let i in array) {
				if (array[i] == search) {
					return true;
				}
			}
			return false;
		},
		switchSelect: function () {
			let that = this;
			let validList = that.cartList.valid;
			let selectValue = that.selectValue;
			let selectCountPrice = 0.00;
			if (selectValue.length < 1) {
				that.selectCountPrice = selectCountPrice;
			} else {
				for (let index in validList) {
					if (that.inArray(validList[index].id, selectValue)) {
						selectCountPrice = that.$util.$h.Add(selectCountPrice, that.$util.$h.Mul(validList[index]
							.cart_num, validList[
								index].truePrice))
					}
				}
				that.selectCountPrice = selectCountPrice;
			}
		},
		/**
		 * 购物车手动填写
		 * 
		 */
		iptCartNum: function (index) {
			let item = this.cartList.valid[index];
			if (item.cart_num) {
				this.setCartNum(item.id, item.cart_num);
			}
			this.switchSelect();
		},
		blurInput: function (index) {
			let item = this.cartList.valid[index];
			console.log(item)
			if (!item.cart_num) {
				item.cart_num = 1;
				this.$set(this.cartList, 'valid', this.cartList.valid)
			}
		},
		subCart: function (index) {
			let that = this;
			let status = false;
			let item = that.cartList.valid[index];
			item.cart_num = Number(item.cart_num) - 1;
			if (item.cart_num < 1) status = true;
			if (item.cart_num <= 1) {
				item.cart_num = 1;
				item.numSub = true;
			} else {
				item.numSub = false;
				item.numAdd = false;
			}
			if (false == status) {
				that.setCartNum(item.id, item.cart_num, function (data) {
					that.cartList.valid[index] = item;
					that.getCartNum();
					that.switchSelect();
				});
			}
		},
		addCart: function (index) {
			let that = this;
			let item = that.cartList.valid[index];
			item.cart_num = Number(item.cart_num) + 1;
			let productInfo = item.productInfo;
			if (productInfo.hasOwnProperty('attrInfo') && item.cart_num >= item.productInfo.attrInfo.stock) {
				item.cart_num = item.productInfo.attrInfo.stock;
				item.numAdd = true;
				item.numSub = false;
			} else {
				item.numAdd = false;
				item.numSub = false;
			}
			that.setCartNum(item.id, item.cart_num, function (data) {
				that.cartList.valid[index] = item;
				that.getCartNum();
				that.switchSelect();
			});
		},
		setCartNum(cartId, cartNum, successCallback) {
			let that = this;
			changeCartNum(cartId, cartNum).then(res => {
				console.log(res)
				successCallback && successCallback(res.data);
			}).catch(err => {
				console.log(err)
				return that.$util.Tips({
					title: err
				});
			})
		},
		getCartNum: function () {
			let that = this;
			// getCartCounts().then(res => {
			that.cartCount = 0;
			this.$store.commit('indexData/setCartNum', that.cartCount > 99 ? '..' : that.cartCount)
			if (that.cartCount > 0) {
				wx.setTabBarBadge({
					index: 2,
					text: that.cartCount + ''
				})
			} else {
				wx.hideTabBarRedDot({
					index: 2
				})
			}

			// });
		},
		getCartData(data) {
			let resData = {
				"valid": [],
				"invalid": [],
				"deduction": {
					"seckill_id": 0,
					"bargain_id": 0,
					"combination_id": 0,
					"discount_id": 0
				}
			}
			this.loading = false;
			this.canShow = true
			return resData;
			// return new Promise((resolve, reject) => {
			// 	getCartList(data).then((res) => {
			// 		resolve(res.data);
			// 	}).catch((err) => {
			// 		this.loading = false;
			// 		this.canShow = true
			// 		this.$util.Tips({
			// 			title: err
			// 		});
			// 	})
			// });
		},
		async getCartList() {
			uni.showLoading({
				title: this.$t(`加载中`),
				mask: true
			});
			let that = this;
			let data = {
				page: that.page,
				limit: that.limit,
				status: 1
			}
			let countResData = {
				"count": 0,
				"ids": [
					9671,
					9670,
					9669
				],
				"sum_price": "955.00"
			}
			// getCartCounts().then(async c => {
			that.cartCount = countResData.count;
			let n = Math.ceil(countResData.ids.length / that.limit)
			for (let i = 0; i < n; i++) {
				// let cartList = await this.getCartData(data)
				let cartListData = {
					"valid": [
						{
							"id": 9671,
							"uid": 34391,
							"type": "0",
							"product_id": 97,
							"product_attr_unique": "fd6d98f3",
							"cart_num": 1,
							"add_time": 1666709939,
							"is_pay": 0,
							"is_del": 0,
							"is_new": 0,
							"combination_id": 0,
							"seckill_id": 0,
							"bargain_id": 0,
							"advance_id": 0,
							"status": 1,
							"productInfo": {
								"id": 97,
								"mer_id": 0,
								"image": "https://demo26.crmeb.net/uploads/attach/2021/11/20211113/small_0d407b8541efd8c8f87e5ac581d1421c.png",
								"recommend_image": "",
								"slider_image": [
									"https://demo26.crmeb.net/uploads/attach/2021/11/13/2d97c9bd7abcdb65049c97bbe9ba61d1.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/13/a48cce02122f4046193bdda67d970b55.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/13/5c4754f2b647b9e240e08f48c9889ebf.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/13/e8f6b1235f10f83d8a43bd91def20332.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/13/634a51ad34590eab005063742d086b87.jpg"
								],
								"store_name": "仟佰家 干花花束真花手工落地高枝装饰摆件招财莲蓬插花居客厅摆设 干花组合6025【不含花瓶】 干花包",
								"store_info": "仟佰家 干花花束真花手工落地高枝装饰摆件招财莲蓬插花居客厅摆设 干花组合6025【不含花瓶】 干花包",
								"keyword": "",
								"bar_code": "",
								"cate_id": "22,24",
								"price": "306.00",
								"vip_price": "0.00",
								"ot_price": "299.00",
								"postage": "0.00",
								"unit_name": "件",
								"sort": 100,
								"sales": 2,
								"stock": 12384,
								"is_show": 1,
								"is_hot": 0,
								"is_benefit": 0,
								"is_best": 0,
								"is_new": 1,
								"is_virtual": 0,
								"virtual_type": 0,
								"add_time": 1636791973,
								"is_postage": 0,
								"is_del": 0,
								"mer_use": 0,
								"give_integral": "0.00",
								"cost": "258.00",
								"is_seckill": 0,
								"is_bargain": null,
								"is_good": 0,
								"is_sub": 0,
								"is_vip": 0,
								"ficti": 0,
								"browse": 0,
								"code_path": "",
								"soure_link": "",
								"temp_id": 57,
								"spec_type": 1,
								"activity": "0,1,2,3",
								"spu": "5310153503736",
								"label_id": "0",
								"video_link": "",
								"command_word": "",
								"recommend_list": "",
								"vip_product": 0,
								"presale": 0,
								"presale_start_time": 0,
								"presale_end_time": 0,
								"presale_day": 0,
								"logistics": "1,2",
								"freight": 2,
								"custom_form": "",
								"is_limit": 0,
								"limit_type": 0,
								"limit_num": 0,
								"express_delivery": true,
								"store_mention": true,
								"attrInfo": {
									"id": 967,
									"product_id": 97,
									"suk": "干花组合6025【不含花瓶】,干花包",
									"stock": 562,
									"sales": 1,
									"price": "306.00",
									"image": "https://demo26.crmeb.net/uploads/attach/2021/11/13/small_634a51ad34590eab005063742d086b87.jpg",
									"bar_code": "",
									"ot_price": "299.00",
									"volume": "0.00",
									"weight": "0.00",
									"brokerage": "0.00",
									"brokerage_two": "0.00",
									"type": 0,
									"unique": "fd6d98f3",
									"cost": "258.00",
									"quota": 0,
									"quota_show": 0,
									"vip_price": "0.00",
									"is_virtual": 0,
									"coupon_id": 0,
									"disk_info": ""
								}
							},
							"attrStatus": true,
							"vip_truePrice": 0,
							"costPrice": "258.00",
							"trueStock": 562,
							"truePrice": 306,
							"sum_price": "306.00",
							"price_type": "level",
							"is_valid": 1
						},
						{
							"id": 9670,
							"uid": 34391,
							"type": "0",
							"product_id": 102,
							"product_attr_unique": "02cce37e",
							"cart_num": 1,
							"add_time": 1666709927,
							"is_pay": 0,
							"is_del": 0,
							"is_new": 0,
							"combination_id": 0,
							"seckill_id": 0,
							"bargain_id": 0,
							"advance_id": 0,
							"status": 1,
							"productInfo": {
								"id": 102,
								"mer_id": 0,
								"image": "https://demo26.crmeb.net/uploads/attach/2021/11/15/small_a79f5d2ea6bf0c3c11b2127332dfe2df.jpg",
								"recommend_image": "",
								"slider_image": [
									"https://demo26.crmeb.net/uploads/attach/2021/11/15/a79f5d2ea6bf0c3c11b2127332dfe2df.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/15/7f46e98ece1920e1a4082dfc72bcd72a.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/15/bfb275263d02ab081b8670a752f2823f.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/15/e499a4dc489cda7b8d472cb3a3b348b7.jpg",
									"https://demo26.crmeb.net/uploads/attach/2021/11/15/06fa150a47163e973bb4806a380afaab.jpg"
								],
								"store_name": "索尼（SONY）WH-CH510 无线立体声耳机 学生网课 白色",
								"store_info": "索尼（SONY）WH-CH510 无线立体声耳机 学生网课 白色",
								"keyword": "耳机",
								"bar_code": "",
								"cate_id": "18,27,25",
								"price": "299.00",
								"vip_price": "0.00",
								"ot_price": "349.00",
								"postage": "0.00",
								"unit_name": "件",
								"sort": 0,
								"sales": 3,
								"stock": 297,
								"is_show": 1,
								"is_hot": 0,
								"is_benefit": 0,
								"is_best": 0,
								"is_new": 0,
								"is_virtual": 0,
								"virtual_type": 0,
								"add_time": 1636958921,
								"is_postage": 0,
								"is_del": 0,
								"mer_use": 0,
								"give_integral": "0.00",
								"cost": "259.00",
								"is_seckill": 0,
								"is_bargain": null,
								"is_good": 0,
								"is_sub": 0,
								"is_vip": 0,
								"ficti": 0,
								"browse": 0,
								"code_path": "",
								"soure_link": "",
								"temp_id": 57,
								"spec_type": 1,
								"activity": "0,1,2,3",
								"spu": "5757529716664",
								"label_id": "0",
								"video_link": "",
								"command_word": "",
								"recommend_list": "",
								"vip_product": 0,
								"presale": 0,
								"presale_start_time": 0,
								"presale_end_time": 0,
								"presale_day": 0,
								"logistics": "1,2",
								"freight": 2,
								"custom_form": "",
								"is_limit": 0,
								"limit_type": 0,
								"limit_num": 0,
								"express_delivery": true,
								"store_mention": true,
								"attrInfo": {
									"id": 9,
									"product_id": 102,
									"suk": "黑色,CH510",
									"stock": 98,
									"sales": 2,
									"price": "299.00",
									"image": "https://demo26.crmeb.net/uploads/attach/2021/11/15/small_a79f5d2ea6bf0c3c11b2127332dfe2df.jpg",
									"bar_code": "",
									"ot_price": "349.00",
									"volume": "0.00",
									"weight": "0.00",
									"brokerage": "0.00",
									"brokerage_two": "0.00",
									"type": 0,
									"unique": "02cce37e",
									"cost": "259.00",
									"quota": 0,
									"quota_show": 0,
									"vip_price": "0.00",
									"is_virtual": 0,
									"coupon_id": 0,
									"disk_info": ""
								}
							},
							"attrStatus": true,
							"vip_truePrice": 0,
							"costPrice": "259.00",
							"trueStock": 98,
							"truePrice": 299,
							"sum_price": "299.00",
							"price_type": "level",
							"is_valid": 1
						},
						{
							"id": 9669,
							"uid": 34391,
							"type": "0",
							"product_id": 89,
							"product_attr_unique": "89807c67",
							"cart_num": 1,
							"add_time": 1666709911,
							"is_pay": 0,
							"is_del": 0,
							"is_new": 0,
							"combination_id": 0,
							"seckill_id": 0,
							"bargain_id": 0,
							"advance_id": 0,
							"status": 1,
							"productInfo": {
								"id": 89,
								"mer_id": 0,
								"image": "https://demo26.crmeb.net/uploads/attach/2021/11/20211113/small_2fbe723632427b0768df24c4f23c6cad.png",
								"recommend_image": "",
								"slider_image": [
									"https://demo26.crmeb.net/uploads/attach/2021/11/20211113/2fbe723632427b0768df24c4f23c6cad.png",
									"https://demo26.crmeb.net/uploads/attach/2021/11/20211113/64d188477292aa4ae2df8da7e63aca79.png"
								],
								"store_name": "家居梵高系列联名款饭盒袋大容量手拎保温实用方便 星月夜饭盒袋",
								"store_info": "",
								"keyword": "家居梵高系列联名款饭盒袋大容量手拎保温实用方便 星月夜饭盒袋",
								"bar_code": "",
								"cate_id": "35",
								"price": "350.00",
								"vip_price": "0.00",
								"ot_price": "300.00",
								"postage": "0.00",
								"unit_name": "件",
								"sort": 553,
								"sales": 19,
								"stock": 185,
								"is_show": 1,
								"is_hot": 1,
								"is_benefit": 0,
								"is_best": 0,
								"is_new": 0,
								"is_virtual": 0,
								"virtual_type": 0,
								"add_time": 1636777038,
								"is_postage": 0,
								"is_del": 0,
								"mer_use": 0,
								"give_integral": "0.00",
								"cost": "300.00",
								"is_seckill": 0,
								"is_bargain": null,
								"is_good": 1,
								"is_sub": 0,
								"is_vip": 0,
								"ficti": 0,
								"browse": 0,
								"code_path": "",
								"soure_link": "",
								"temp_id": 0,
								"spec_type": 1,
								"activity": "0,1,2,3",
								"spu": "1015710267816",
								"label_id": "",
								"video_link": "",
								"command_word": "",
								"recommend_list": "",
								"vip_product": 0,
								"presale": 0,
								"presale_start_time": 0,
								"presale_end_time": 0,
								"presale_day": 0,
								"logistics": "1,2",
								"freight": 2,
								"custom_form": "[]",
								"is_limit": 0,
								"limit_type": 0,
								"limit_num": 0,
								"express_delivery": true,
								"store_mention": true,
								"attrInfo": {
									"id": 1017,
									"product_id": 89,
									"suk": "梵高自画像饭盒",
									"stock": 88,
									"sales": 8,
									"price": "350.00",
									"image": "https://demo26.crmeb.net/uploads/attach/2021/11/20211113/small_2fbe723632427b0768df24c4f23c6cad.png",
									"bar_code": "",
									"ot_price": "300.00",
									"volume": "0.00",
									"weight": "0.00",
									"brokerage": "0.00",
									"brokerage_two": "0.00",
									"type": 0,
									"unique": "89807c67",
									"cost": "300.00",
									"quota": 0,
									"quota_show": 0,
									"vip_price": "0.00",
									"is_virtual": 0,
									"coupon_id": 0,
									"disk_info": ""
								}
							},
							"attrStatus": true,
							"vip_truePrice": 0,
							"costPrice": "300.00",
							"trueStock": 88,
							"truePrice": 350,
							"sum_price": "350.00",
							"price_type": "level",
							"is_valid": 1
						}
					],
					"invalid": [],
					"deduction": {
						"seckill_id": 0,
						"bargain_id": 0,
						"combination_id": 0,
						"discount_id": 0
					}
				}
				let cartList = cartListData
				let valid = cartList.valid
				let validList = that.$util.SplitArray(valid, that.cartList.valid);

				let numSub = [{
					numSub: true
				}, {
					numSub: false
				}];
				let numAdd = [{
					numAdd: true
				}, {
					numAdd: false
				}],
					selectValue = [];
				if (validList.length > 0) {
					for (let index in validList) {
						if (validList[index].cart_num == 1) {
							validList[index].numSub = true;
						} else {
							validList[index].numSub = false;
						}
						let productInfo = validList[index].productInfo;
						if (productInfo.hasOwnProperty('attrInfo') && validList[index].cart_num ==
							validList[index].productInfo.attrInfo
								.stock) {
							validList[index].numAdd = true;
						} else if (validList[index].cart_num == validList[index].productInfo
							.stock) {
							validList[index].numAdd = true;
						} else {
							validList[index].numAdd = false;
						}
						if (validList[index].attrStatus) {
							validList[index].checked = true;
							selectValue.push(validList[index].id);
						} else {
							validList[index].checked = false;
						}
					}
				}
				that.$set(that.cartList, 'valid', validList);
				data.page = that.page + 1;
				// that.goodsHidden = cartList.valid.length <= 0 ? false : true;
				that.selectValue = selectValue;
				let newArr = validList.filter(item => item.attrStatus);
				that.isAllSelect = newArr.length == selectValue.length && newArr.length;
				that.switchSelect();
			}
			that.loading = false;
			this.canShow = true
			uni.hideLoading();
			// });
		},
		getInvalidList: function () {
			let that = this;
			if (this.loadendInvalid) return false;
			if (this.loadingInvalid) return false;
			let data = {
				page: that.pageInvalid,
				limit: that.limitInvalid,
				status: 0
			}
			let resData = {
				"valid": [],
				"invalid": [],
				"deduction": {
					"seckill_id": 0,
					"bargain_id": 0,
					"combination_id": 0,
					"discount_id": 0
				}
			}
			// getCartList(data).then(res => {
			let cartList = resData,
				invalid = cartList.invalid,
				loadendInvalid = invalid.length < that.limitInvalid;
			let invalidList = that.$util.SplitArray(invalid, that.cartList.invalid);
			that.$set(that.cartList, 'invalid', invalidList);
			that.loadendInvalid = loadendInvalid;
			that.loadTitleInvalid = loadendInvalid ? that.$t(`我也是有底线的`) : that.$t(`加载更多`);
			that.pageInvalid = that.pageInvalid + 1;
			that.loadingInvalid = false;
			// }).catch(res => {
			// 	that.loadingInvalid = false;
			// 	that.loadTitleInvalid = that.$t(`加载更多`);
			// })

		},
		getHostProduct: function () {
			let that = this;
			if (that.hotScroll) return
			that.hotPage++
			that.hotScroll = hot_res.length < that.hotLimit
			that.hostProduct = that.hostProduct.concat(hot_res)
			// getProductHot(
			// 	that.hotPage,
			// 	that.hotLimit,
			// ).then(res => {
			// 	that.hotPage++
			// 	that.hotScroll = res.data.length < that.hotLimit
			// 	that.hostProduct = that.hostProduct.concat(res.data)
			// });
		},
		goodsOpen: function () {
			let that = this;
			that.goodsHidden = !that.goodsHidden;
		},
		goRouter(item) {
			var pages = getCurrentPages();
			var page = (pages[pages.length - 1]).$page.fullPath;
			if (item.link == page) return
			uni.switchTab({
				url: item.link,
				fail(err) {
					uni.redirectTo({
						url: item.link
					})
				}
			})
		},
		manage: function () {
			let that = this;
			that.footerswitch = !that.footerswitch;
			let arr1 = [];
			let arr2 = [];
			let newValid = that.cartList.valid.map(item => {
				if (that.footerswitch) {
					if (item.attrStatus) {
						if (item.checked) {
							arr1.push(item.id);
						}
					} else {
						item.checked = false;
						arr2.push(item);
					}
				} else {
					if (item.checked) {
						arr1.push(item.id);
					}
				}
				return item;
			});
			that.cartList.valid = newValid;
			if (that.footerswitch) {
				that.isAllSelect = newValid.length === arr1.length + arr2.length;
			} else {
				that.isAllSelect = newValid.length === arr1.length;
			}
			that.selectValue = arr1;
			that.switchSelect();
		},
		unsetCart: function () {
			let that = this,
				ids = [];
			for (let i = 0, len = that.cartList.invalid.length; i < len; i++) {
				ids.push(that.cartList.invalid[i].id);
			}
			cartDel(ids).then(res => {
				that.$util.Tips({
					title: that.$t(`清除成功`)
				});
				that.$set(that.cartList, 'invalid', []);
				that.getCartNum();
			}).catch(res => {

			});
		}
	},
	onReachBottom() {
		let that = this;
		if (that.loadend) {
			that.getInvalidList();
		}
		if (that.cartList.valid.length == 0 && that.cartList.invalid.length == 0) {
			that.getHostProduct();
		}
	}
}
</script>

<style scoped lang="scss">
.page-footer {
	position: fixed;
	bottom: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	justify-content: space-around;
	width: 100%;
	height: calc(98rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
	height: calc(98rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
	box-sizing: border-box;
	border-top: solid 1rpx #F3F3F3;
	background-color: #fff;
	box-shadow: 0px 0px 17rpx 1rpx rgba(206, 206, 206, 0.32);
	padding-bottom: constant(safe-area-inset-bottom); ///兼容 IOS<11.2/
	padding-bottom: env(safe-area-inset-bottom); ///兼容 IOS>11.2/

	.foot-item {
		display: flex;
		width: max-content;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		position: relative;

		.count-num {
			position: absolute;
			display: flex;
			justify-content: center;
			align-items: center;
			width: 40rpx;
			height: 40rpx;
			top: 0rpx;
			right: -15rpx;
			color: #fff;
			font-size: 20rpx;
			background-color: #FD502F;
			border-radius: 50%;
			padding: 4rpx;
		}
	}

	.foot-item image {
		height: 50rpx;
		width: 50rpx;
		text-align: center;
		margin: 0 auto;
	}

	.foot-item .txt {
		font-size: 24rpx;


		&.active {}
	}
}

.shoppingCart {
	/* #ifdef H5 */
	// padding-bottom: 0;
	// padding-bottom: constant(safe-area-inset-bottom);  
	// padding-bottom: env(safe-area-inset-bottom);
	/* #endif */
}

.shoppingCart .labelNav {
	height: 76rpx;
	padding: 0 30rpx;
	font-size: 22rpx;
	color: #8c8c8c;
	position: fixed;
	left: 0;
	width: 100%;
	box-sizing: border-box;
	background-color: #f5f5f5;
	z-index: 5;
	top: 0;
}

.shoppingCart .labelNav .item .iconfont {
	font-size: 25rpx;
	margin-right: 10rpx;
}

.shoppingCart .nav {
	width: 100%;
	height: 80rpx;
	background-color: #fff;
	padding: 0 30rpx;
	box-sizing: border-box;
	font-size: 28rpx;
	color: #282828;
	position: fixed;
	left: 0;
	z-index: 5;
	top: 76rpx;
}

.shoppingCart .nav .num {
	margin-left: 12rpx;
}

.shoppingCart .nav .administrate {
	font-size: 26rpx;
	color: #282828;
	width: 110rpx;
	height: 46rpx;
	border-radius: 6rpx;
	border: 1px solid #a4a4a4;
}

.shoppingCart .noCart {
	margin-top: 171rpx;
	background-color: #fff;
	padding-top: 0.1rpx;
}

.shoppingCart .noCart .pictrue {
	width: 414rpx;
	height: 336rpx;
	margin: 78rpx auto 56rpx auto;
}

.shoppingCart .noCart .pictrue image {
	width: 100%;
	height: 100%;
}

.shoppingCart .list {
	margin-top: 171rpx;
}

.shoppingCart .list .item {
	padding: 25rpx 30rpx;
	background-color: #fff;
	margin-bottom: 15rpx;
}

.shoppingCart .list .item .picTxt {
	width: 627rpx;
	position: relative;
}

.shoppingCart .list .item .picTxt .pictrue {
	width: 160rpx;
	height: 160rpx;
}

.shoppingCart .list .item .picTxt .pictrue image {
	width: 100%;
	height: 100%;
	border-radius: 6rpx;
}

.shoppingCart .list .item .picTxt .text {
	width: 444rpx;
	font-size: 28rpx;
	color: #282828;
}

.shoppingCart .list .item .picTxt .text .reColor {
	color: #999;
}

.shoppingCart .list .item .picTxt .text .reElection {
	margin-top: 20rpx;
}

.shoppingCart .list .item .picTxt .text .reElection .title {
	font-size: 24rpx;
}

.shoppingCart .list .item .picTxt .text .reElection .reBnt {
	width: 120rpx;
	height: 46rpx;
	border-radius: 23rpx;
	font-size: 26rpx;
}

.shoppingCart .list .item .picTxt .text .infor {
	font-size: 24rpx;
	color: #868686;
	margin-top: 16rpx;
}

.shoppingCart .list .item .picTxt .text .money {
	font-size: 32rpx;
	color: var(--view-theme);
	margin-top: 28rpx;
}

.shoppingCart .list .item .picTxt .carnum {
	height: 47rpx;
	position: absolute;
	bottom: 7rpx;
	right: 0;
}

.shoppingCart .list .item .picTxt .carnum view {
	border: 1rpx solid #a4a4a4;
	width: 66rpx;
	text-align: center;
	height: 100%;
	line-height: 40rpx;
	font-size: 28rpx;
	color: #a4a4a4;
}

.shoppingCart .list .item .picTxt .carnum .reduce {
	border-right: 0;
	border-radius: 3rpx 0 0 3rpx;
}

.shoppingCart .list .item .picTxt .carnum .reduce.on {
	border-color: #e3e3e3;
	color: #dedede;
}

.shoppingCart .list .item .picTxt .carnum .plus {
	border-left: 0;
	border-radius: 0 3rpx 3rpx 0;
}

.shoppingCart .list .item .picTxt .carnum .plus.on {
	border-color: #e3e3e3;
	color: #dedede;
}

.shoppingCart .list .item .picTxt .carnum .num {
	color: #282828;
}

.shoppingCart .invalidGoods {
	background-color: #fff;
}

.shoppingCart .invalidGoods .goodsNav {
	width: 100%;
	height: 66rpx;
	padding: 0 30rpx;
	box-sizing: border-box;
	font-size: 28rpx;
	color: #282828;
}

.shoppingCart .invalidGoods .goodsNav .iconfont {
	color: #424242;
	font-size: 28rpx;
	margin-right: 17rpx;
}

.shoppingCart .invalidGoods .goodsNav .del {
	font-size: 26rpx;
	color: #999;
}

.shoppingCart .invalidGoods .goodsNav .del .icon-shanchu1 {
	color: #999;
	font-size: 33rpx;
	vertical-align: -2rpx;
	margin-right: 8rpx;
}

.shoppingCart .invalidGoods .goodsList .item {
	padding: 20rpx 30rpx;
	border-top: 1rpx solid #f5f5f5;
}

.shoppingCart .invalidGoods .goodsList .item .invalid {
	font-size: 22rpx;
	color: #fff;
	width: 70rpx;
	height: 36rpx;
	background-color: #aaa;
	border-radius: 3rpx;
	text-align: center;
	line-height: 36rpx;
}

.shoppingCart .invalidGoods .goodsList .item .pictrue {
	width: 140rpx;
	height: 140rpx;
}

.shoppingCart .invalidGoods .goodsList .item .pictrue image {
	width: 100%;
	height: 100%;
	border-radius: 6rpx;
}

.shoppingCart .invalidGoods .goodsList .item .text {
	width: 433rpx;
	font-size: 28rpx;
	color: #999;
	height: 140rpx;
}

.shoppingCart .invalidGoods .goodsList .item .text .name {
	width: 100%;
}

.shoppingCart .invalidGoods .goodsList .item .text .infor {
	font-size: 24rpx;
}

.shoppingCart .invalidGoods .goodsList .item .text .end {
	font-size: 26rpx;
	color: #bbb;
}

.shoppingCart .footer {
	z-index: 999;
	width: 100%;
	height: 96rpx;
	background-color: #fafafa;
	position: fixed;
	padding: 0 30rpx;
	box-sizing: border-box;
	border-top: 1rpx solid #eee;
	bottom: 98rpx;
	bottom: calc(98rpx + constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
	bottom: calc(98rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
}

.shoppingCart .footer.on {
	// #ifndef H5
	bottom: 0rpx;
	// #endif
}

.shoppingCart .footer .checkAll {
	font-size: 28rpx;
	color: #282828;
	margin-left: 16rpx;
}

// .shoppingCart .footer checkbox .wx-checkbox-input{background-color:#fafafa;}
.shoppingCart .footer .money {
	font-size: 30rpx;
}

.shoppingCart .footer .placeOrder {
	color: #fff;
	font-size: 30rpx;
	width: 226rpx;
	height: 70rpx;
	border-radius: 50rpx;
	text-align: center;
	line-height: 70rpx;
	margin-left: 22rpx;
}

.shoppingCart .footer .button .bnt {
	font-size: 28rpx;
	color: #999;
	border-radius: 50rpx;
	border: 1px solid #999;
	width: 160rpx;
	height: 60rpx;
	text-align: center;
	line-height: 60rpx;
}

.shoppingCart .footer .button form~form {
	margin-left: 17rpx;
}

.uni-p-b-96 {
	height: 96rpx;
}

.uni-p-b-98 {
	height: 100rpx;
	/* 兼容 IOS<11.2 */
	height: calc(100rpx + constant(safe-area-inset-bottom));
	/* 兼容 IOS>11.2 */
	height: calc(100rpx + env(safe-area-inset-bottom));
}

.emptyBox {
	text-align: center;
	padding-top: 20rpx;

	.tips {
		color: #aaa;
		font-size: 26rpx;
	}

	image {
		width: 414rpx;
		height: 304rpx;
	}
}
</style>
