shish 3 anni fa
parent
commit
7e4277d4ac

+ 1 - 1
hdApp/src/admin/ghsProduct/components/buy-foot.vue

@@ -12,7 +12,7 @@
         </div>
         </div>
         <div class="btn-right">
         <div class="btn-right">
             <button v-if="isShare" class="button-com red" @click="$msg('开发中')">立即购买</button>
             <button v-if="isShare" class="button-com red" @click="$msg('开发中')">立即购买</button>
-            <button v-else class="button-com red" @click="goBack">返回</button>
+            <button v-else class="button-com red" @click="goBack">购买</button>
         </div>
         </div>
     </div>
     </div>
 </template>
 </template>

+ 2 - 10
hdApp/src/admin/ghsProduct/detail.vue

@@ -1,21 +1,14 @@
 <template>
 <template>
   <div class="app-content">
   <div class="app-content">
     <app-swiper :height="{type: 'number',val: 750}" :tagShow="true" :list="imgList" />
     <app-swiper :height="{type: 'number',val: 750}" :tagShow="true" :list="imgList" />
-
     <div class="shop-intro">
     <div class="shop-intro">
       <div class="app-price app-bold">
       <div class="app-price app-bold">
-        <text>¥</text>
-        <text class="app-size-34">{{ productInfo.price }}</text>
+        <text class="app-size-34">¥{{ productInfo.price }}</text>
       </div>
       </div>
       <div class="tui-pro-titbox">
       <div class="tui-pro-titbox">
         <div class="tui-pro-title app-size-32">{{ productInfo.discountPrice > 0 ? '【特价】'+productInfo.name : productInfo.name }}</div>
         <div class="tui-pro-title app-size-32">{{ productInfo.discountPrice > 0 ? '【特价】'+productInfo.name : productInfo.name }}</div>
         <button open-type="share" class="tui-share-btn tui-share-position" >
         <button open-type="share" class="tui-share-btn tui-share-position" >
-          <app-tag
-            type="gray"
-            tui-tag-class="tui-tag-share tui-size"
-            shape="circleLeft"
-            size="small"
-          >
+          <app-tag type="gray" tui-tag-class="tui-tag-share tui-size" shape="circleLeft" size="small" >
             <div class="flex-center">
             <div class="flex-center">
               <i class="iconfont iconfenxiang"></i>
               <i class="iconfont iconfenxiang"></i>
               <text class="tui-share-text tui-gray">分享</text>
               <text class="tui-share-text tui-gray">分享</text>
@@ -23,7 +16,6 @@
           </app-tag>
           </app-tag>
         </button>
         </button>
       </div>
       </div>
-
     </div>
     </div>
 
 
     <div class="module-wrap shop-detail">
     <div class="module-wrap shop-detail">

+ 1 - 1
hdApp/src/pagesPurchase/ghsProduct.vue

@@ -124,7 +124,7 @@
 							<image class="item-icon" :src="item.cover" alt="" />
 							<image class="item-icon" :src="item.cover" alt="" />
 							<view class="item-info">
 							<view class="item-info">
 								<view class="info-line">
 								<view class="info-line">
-									<text class="item-name">{{ item.itemName }}</text>
+									<text class="item-name">{{ item.name }}</text>
 									<text class="item-price">
 									<text class="item-price">
 										<text class="unit">¥</text>
 										<text class="unit">¥</text>
 										<text class="price">
 										<text class="price">

+ 7 - 12
mallApp/src/api/item/index.js

@@ -1,18 +1,13 @@
 import https from "@/plugins/luch-request_0.0.7/request";
 import https from "@/plugins/luch-request_0.0.7/request";
 
 
-/** *
- * 分类及花材数据(库存预警、库存管理共用这个接口)
- * @parmas py 花材拼音
- * @parmas type 库存预警时,固定为waring,其他情况不传或者传空
- */
- export const getProductDataApi = data => {
-	return https.get("/item/index", data);
+export const getMallItemInfo = data => {
+	return https.get("/item/get-mall-item-info", data);
 };
 };
 
 
+export const getProductDataApi = data => {
+	return https.get("/item/index", data);
+};
 
 
-/** *
- * 供应商花材列表(进店开单) 【采购开单】 
- */
- export const getGhsProductList = data => {
+export const getGhsProductList = data => {
 	return https.get('/item/ghs-item', data)
 	return https.get('/item/ghs-item', data)
-}
+}

+ 4 - 1
mallApp/src/components/item/module/app-footer-cart.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
 	<div class="cart-ft_bx">
 	<div class="cart-ft_bx">
 		<div class="cart-ct_bx">
 		<div class="cart-ct_bx">
-			<view class="cart-lf_bx">
+			<view class="cart-lf_bx" @click="showCartItem">
 				<view class="cart-dot_bx">
 				<view class="cart-dot_bx">
 					<i class="iconfont icongouwuche"></i>
 					<i class="iconfont icongouwuche"></i>
 				</view>
 				</view>
@@ -40,6 +40,9 @@ export default {
 	methods: {
 	methods: {
 		confirmEvent() {
 		confirmEvent() {
 			this.$emit("confirm");
 			this.$emit("confirm");
+		},
+		showCartItem(){
+			this.$emit('showCartItem')
 		}
 		}
 	}
 	}
 };
 };

+ 68 - 122
mallApp/src/mixins/cgProduct.js

@@ -50,15 +50,12 @@ export default {
 			this.initData();
 			this.initData();
 
 
 			if(this.isGhsProduct){
 			if(this.isGhsProduct){
-				console.log(111)
 				// this.initGhsData(id,shopId);//采购-进店下单
 				// this.initGhsData(id,shopId);//采购-进店下单
 			}else{
 			}else{
 				console.log(222)
 				console.log(222)
 				if(!this.$util.isEmpty(this.tabIndex)){
 				if(!this.$util.isEmpty(this.tabIndex)){
 					this.initData();//组合
 					this.initData();//组合
 				}
 				}
-				// this.initGoodsData();//成品
-				// this.initPxClassData();//课程
 			}
 			}
 		}
 		}
 	},
 	},
@@ -105,11 +102,7 @@ export default {
 			if (this.list) {
 			if (this.list) {
 				for (const item of this.list) {
 				for (const item of this.list) {
 					const itemInfo = this.getSelectItemById(item.id, item.classId);
 					const itemInfo = this.getSelectItemById(item.id, item.classId);
-					if (
-						itemInfo &&
-						!this.$util.isEmpty(itemInfo.bigPrice) &&
-						!this.$util.isEmpty(itemInfo.smallPrice)
-					) {
+					if ( itemInfo && !this.$util.isEmpty(itemInfo.bigPrice) && !this.$util.isEmpty(itemInfo.smallPrice) ) {
 						price += item.bigCount * Number(itemInfo.bigPrice);
 						price += item.bigCount * Number(itemInfo.bigPrice);
 						price += item.smallCount * Number(itemInfo.smallPrice);
 						price += item.smallCount * Number(itemInfo.smallPrice);
 					}
 					}
@@ -209,7 +202,6 @@ export default {
 			return has;
 			return has;
 		}
 		}
 	},
 	},
-
 	onShow(){
 	onShow(){
 		if(this.pageType == 'cg' && !this.$util.isEmpty(this.option.id)){
 		if(this.pageType == 'cg' && !this.$util.isEmpty(this.option.id)){
 			//在initGhsData()获取记忆的花材,保证价格有变时取到最新价格
 			//在initGhsData()获取记忆的花材,保证价格有变时取到最新价格
@@ -219,15 +211,14 @@ export default {
 			}
 			}
 		}
 		}
 	},
 	},
-
 	methods: {
 	methods: {
 		...mapActions(["setSelectInfoByType", "resetSelectInfoByType"]),
 		...mapActions(["setSelectInfoByType", "resetSelectInfoByType"]),
 		//记忆已选的花材
 		//记忆已选的花材
 		rememberProduct(){
 		rememberProduct(){
 			//采购或预订的记忆花材
 			//采购或预订的记忆花材
 			if(this.pageType == 'cg' || this.pageType == 'bookCg' ){
 			if(this.pageType == 'cg' || this.pageType == 'bookCg' ){
-				if(!this.$util.isEmpty(this.option.id)){
-					uni.setStorageSync('selectList'+this.pageType+'_ghs_'+this.option.id, this.selectList)
+				if(!this.$util.isEmpty(this.option.account)){
+					uni.setStorageSync('selectList'+this.pageType+'_hd_'+this.option.account, this.selectList)
 				}
 				}
 			}else{
 			}else{
 				uni.setStorageSync('selectList'+this.pageType, this.selectList)
 				uni.setStorageSync('selectList'+this.pageType, this.selectList)
@@ -236,7 +227,7 @@ export default {
 		//清除已记忆花材
 		//清除已记忆花材
 		removeMemory(ghsId){
 		removeMemory(ghsId){
 			if(ghsId){
 			if(ghsId){
-				uni.removeStorageSync('selectList'+this.pageType+'_ghs_'+ghsId);
+				uni.removeStorageSync('selectList'+this.pageType+'_hd_'+ghsId);
 				//删除小菊的记忆
 				//删除小菊的记忆
 				uni.removeStorageSync("ghsXj"+ghsId)
 				uni.removeStorageSync("ghsXj"+ghsId)
 			}else{
 			}else{
@@ -274,8 +265,8 @@ export default {
 				this.productInfo = data;
 				this.productInfo = data;
 
 
 				if(this.pageType == 'cg' && !this.$util.isEmpty(this.option.id)){
 				if(this.pageType == 'cg' && !this.$util.isEmpty(this.option.id)){
-					if(uni.getStorageSync('selectList'+this.pageType+'_ghs_'+this.option.id)){
-						let currentInfo = uni.getStorageSync('selectList'+this.pageType+'_ghs_'+this.option.id)
+					if(uni.getStorageSync('selectList'+this.pageType+'_hd_'+this.option.id)){
+						let currentInfo = uni.getStorageSync('selectList'+this.pageType+'_hd_'+this.option.id)
 						if(!this.$util.isEmpty(currentInfo)){
 						if(!this.$util.isEmpty(currentInfo)){
 							currentInfo.forEach((currentItem,currentIndex,currentArray)=>{
 							currentInfo.forEach((currentItem,currentIndex,currentArray)=>{
 								let currentId = currentItem.id
 								let currentId = currentItem.id
@@ -436,9 +427,7 @@ export default {
 				uni.hideLoading();
 				uni.hideLoading();
 			}
 			}
 		},
 		},
-		/**
-			* 成品-滚动或切换分类 获取更多数据
-			* **/
+		//成品-滚动或切换分类 获取更多数据
 		suitScrollPushList(){
 		suitScrollPushList(){
 			let list = copyObject(this.suitInfo);
 			let list = copyObject(this.suitInfo);
 			let classList = [];
 			let classList = [];
@@ -450,41 +439,8 @@ export default {
 				}
 				}
 			}
 			}
 			this.suitFilterProductInfo = classList
 			this.suitFilterProductInfo = classList
-			return
-			if(this.$util.isEmpty(this.suitFilterProductInfo)){	//第一次进入无数据
-				let classList = [];
-				list.forEach(ele=>{
-					classList = [...classList,{child:[],classId:ele.classId,className:ele.className}]
-				})
-				classList[this.suitClassIndex].child = list[this.suitClassIndex].child;
-				this.suitFilterProductInfo = classList;
-				let classIndex = 1;
-				this.suitTimeFun = setInterval(()=>{
-					if(classIndex<this.suitFilterProductInfo.length){
-						classList[classIndex].child = list[classIndex].child;
-						this.suitFilterProductInfo = classList;
-						classIndex++
-					}else{
-						clearInterval(this.suitTimeFun)
-					}
-				},600)
-			}else{//获取更多数据
-				if(this.$util.isEmpty(this.suitFilterProductInfo[this.suitClassIndex].child)){
-					this.suitFilterProductInfo[this.suitClassIndex].child = list[this.suitClassIndex].child;
-				}
-				if(this.suitClassIndex+1<this.suitFilterProductInfo.length-1){
-					if(this.$util.isEmpty(this.suitFilterProductInfo[this.suitClassIndex+1].child)){
-						this.suitFilterProductInfo[this.suitClassIndex+1].child = list[this.suitClassIndex+1].child;
-					}
-				}
-			}
-
-
-
 		},
 		},
-		/**
-			* 获取当前选中商品总价
-			*/
+		//获取当前选中商品总价
 		getSelectGoodsPrice(item) {
 		getSelectGoodsPrice(item) {
 			let price = 0;
 			let price = 0;
 
 
@@ -495,9 +451,7 @@ export default {
 			}
 			}
 			return price;
 			return price;
 		},
 		},
-		/**
-			* 通过id获取当前选中的商品信息
-			*/
+		//通过id获取当前选中的商品信息
 		getSelectItemById(id, classId) {
 		getSelectItemById(id, classId) {
 			let info = {
 			let info = {
 				bigCount: 0, //扎数
 				bigCount: 0, //扎数
@@ -521,9 +475,7 @@ export default {
 			}
 			}
 			return info;
 			return info;
 		},
 		},
-		/**
-			* 通过id获取当前选中的商品类别信息  左边菜单角标  当前选中该类别商品多少件
-			*/
+		//通过id获取当前选中的商品类别信息  左边菜单角标  当前选中该类别商品多少件
 		getSelectClassById(classId) {
 		getSelectClassById(classId) {
 			let info = {
 			let info = {
 				bigCount: 0, //扎数
 				bigCount: 0, //扎数
@@ -551,32 +503,22 @@ export default {
 		//添加商品
 		//添加商品
 		addEvent(item) {
 		addEvent(item) {
 			const list = this.selectList;
 			const list = this.selectList;
-			let has = false;
+			console.log(list)
+			console.log(item)
+			let hasItem = false;
 			for (let index = 0; index < list.length; index++) {
 			for (let index = 0; index < list.length; index++) {
 				const element = list[index];
 				const element = list[index];
 				if (element.id == item.id && element.classId == item.classId) {
 				if (element.id == item.id && element.classId == item.classId) {
-					has = true;
-					if(this.offVerifyRepertory){//去除库存验证
-						if(this.isSmallCount){
-							list[index] = { ...element, smallCount: ++element.smallCount };
-						}else{
-							list[index] = { ...element, bigCount: ++element.bigCount };
-						}
+					hasItem = true;
+					//盘点等页面不需要验证库存
+					if(this.offVerifyRepertory){
+						list[index] = { ...element, bigCount: ++element.bigCount };					
 					}else {
 					}else {
-						if(!this.isSmallCount){
-							list[index] = { ...element, bigCount: ++element.bigCount };
-						}
-						if(this.isSmallCount){
-							list[index] = { ...element, smallCount: ++element.smallCount };
-						}
+						list[index] = { ...element, bigCount: ++element.bigCount };
 						if (this.isLimit) {
 						if (this.isLimit) {
 							const {bigCount, smallCount} = list[index];
 							const {bigCount, smallCount} = list[index];
-							//超过库存时 设置为库存最大值
 							const ratio = Number(item.ratio);
 							const ratio = Number(item.ratio);
-							if (
-								Number(bigCount) * ratio + Number(smallCount) >
-								Number(item.bigNum) * ratio + Number(item.smallNum)
-							) {
+							if ( Number(bigCount) * ratio + Number(smallCount) > Number(item.bigNum) * ratio + Number(item.smallNum) ) {
 								list[index].bigCount = Number(item.bigNum);
 								list[index].bigCount = Number(item.bigNum);
 								list[index].smallCount = Number(item.smallNum);
 								list[index].smallCount = Number(item.smallNum);
 								this.$msg("库存还剩"+item.bigNum);
 								this.$msg("库存还剩"+item.bigNum);
@@ -584,13 +526,11 @@ export default {
 							}
 							}
 						}
 						}
 					}
 					}
-
 					break;
 					break;
 				}
 				}
 			}
 			}
-			if (!has) {
+			if (hasItem == false) {
 				let info = { classId: item.classId, id: item.id };
 				let info = { classId: item.classId, id: item.id };
-
 				const classInfo =
 				const classInfo =
 					this.productInfo &&
 					this.productInfo &&
 					this.productInfo.find(element => {
 					this.productInfo.find(element => {
@@ -601,20 +541,15 @@ export default {
 						return ele.id == item.id;
 						return ele.id == item.id;
 					});
 					});
 				}
 				}
-
-				let params = {
-					...info,
-					bigCount: this.isSmallCount?0:1, //扎数
-					smallCount: this.isSmallCount?1:0, //支数
-					autoPrice: 0 //调价价格
-				};
+				let params = { ...info, bigCount: this.isSmallCount?0:1, smallCount: this.isSmallCount?1:0, autoPrice: 0 }
 				if (info.bigNum && info.bigNum > 0) {
 				if (info.bigNum && info.bigNum > 0) {
 					list.push(params);
 					list.push(params);
 				} else {
 				} else {
-					if(this.offVerifyRepertory){//盘点页面没有库存验证
+					//盘点等页面不需要验证库存
+					if(this.offVerifyRepertory){
 						list.push(params);
 						list.push(params);
 					}else{
 					}else{
-						this.$msg("库存不足");
+						this.$msg("库存不足");
 						return;
 						return;
 					}
 					}
 				}
 				}
@@ -660,13 +595,10 @@ export default {
 		},
 		},
 		//减去商品
 		//减去商品
 		delEvent(item) {
 		delEvent(item) {
-
-			const list = copyObject(this.selectList);
-			let has = false;
+			const list = copyObject(this.selectList)
 			for (let index = 0; index < list.length; index++) {
 			for (let index = 0; index < list.length; index++) {
 				let element = list[index];
 				let element = list[index];
 				if (element.id == item.id && element.classId == item.classId) {
 				if (element.id == item.id && element.classId == item.classId) {
-					has = true;
 					if (element.bigCount > 0) {
 					if (element.bigCount > 0) {
 						if (!this.isSmallCount) {
 						if (!this.isSmallCount) {
 							list[index] = {...element, bigCount: --element.bigCount};
 							list[index] = {...element, bigCount: --element.bigCount};
@@ -727,10 +659,7 @@ export default {
 			}
 			}
 			return info;
 			return info;
 		},
 		},
-
-		/**
-			* 多风格-添加商品
-			*/
+		//多风格-添加商品
 		addGoodsEvent(item) {
 		addGoodsEvent(item) {
 			console.log(item,'itemitem')
 			console.log(item,'itemitem')
 			const list = this.selectList;
 			const list = this.selectList;
@@ -771,9 +700,7 @@ export default {
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 			// this.$forceUpdate();
 			// this.$forceUpdate();
 		},
 		},
-		/**
-			* 多风格-添加商品
-			*/
+		//多风格-添加商品
 		addGoods(item) {
 		addGoods(item) {
 			const list = this.selectList;
 			const list = this.selectList;
 			let has = false;
 			let has = false;
@@ -811,9 +738,7 @@ export default {
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 			// this.$forceUpdate();
 			// this.$forceUpdate();
 		},
 		},
-		/**
-			* 多风格-减去商品
-			*/
+		//多风格-减去商品
 		delGoodsEvent(item) {
 		delGoodsEvent(item) {
 			const list = this.selectList;
 			const list = this.selectList;
 			for (let index = 0; index < list.length; index++) {
 			for (let index = 0; index < list.length; index++) {
@@ -831,23 +756,52 @@ export default {
 			}
 			}
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 		},
 		},
-		/**
-			* 更新商品
-			*/
+		//添加商品
+		addItemEvent(item) {
+			const list = this.selectList;
+			if(!this.$util.isEmpty(list)){
+				for (let index = 0; index < list.length; index++) {
+					const element = list[index];
+					if (element.id == item.id && element.classId == item.classId) {
+						const { bigCount, smallCount } = list[index];
+						//超过库存时 设置为库存最大值
+						const ratio = Number(item.ratio);
+						if (this.isLimit) {
+							if (
+								Number(bigCount) * ratio + Number(smallCount) >
+								Number(item.bigNum) * ratio + Number(item.smallNum)
+							) {
+								list[index].bigCount = Number(item.bigNum);
+								list[index].smallCount = Number(item.smallNum);
+								list[index].itemPrice = item.itemPrice?Number(item.itemPrice):'';
+							}
+						}
+						list[index] = {
+							...element,
+							bigCount: Number(item.bigCount),
+							smallCount: Number(item.smallCount),
+							itemPrice: item.itemPrice?Number(item.itemPrice):''
+						};
+						break;
+					}
+				}
+			}else{
+				list[0] = item
+			}
+			this.setSelectInfoByType({ type: this.pageType, info: list });
+			//记忆已经选择的花材
+			this.rememberProduct()
+		},
+		//更新商品
 		updateItemEvent(item) {
 		updateItemEvent(item) {
 			const list = this.selectList;
 			const list = this.selectList;
-
 			for (let index = 0; index < list.length; index++) {
 			for (let index = 0; index < list.length; index++) {
 				const element = list[index];
 				const element = list[index];
 				if (element.id == item.id && element.classId == item.classId) {
 				if (element.id == item.id && element.classId == item.classId) {
 					const { bigCount, smallCount } = list[index];
 					const { bigCount, smallCount } = list[index];
-					//超过库存时 设置为库存最大值
 					const ratio = Number(item.ratio);
 					const ratio = Number(item.ratio);
 					if (this.isLimit) {
 					if (this.isLimit) {
-						if (
-							Number(bigCount) * ratio + Number(smallCount) >
-							Number(item.bigNum) * ratio + Number(item.smallNum)
-						) {
+						if ( Number(bigCount) * ratio + Number(smallCount) > Number(item.bigNum) * ratio + Number(item.smallNum) ) {
 							list[index].bigCount = Number(item.bigNum);
 							list[index].bigCount = Number(item.bigNum);
 							list[index].smallCount = Number(item.smallNum);
 							list[index].smallCount = Number(item.smallNum);
 							list[index].itemPrice = item.itemPrice?Number(item.itemPrice):'';
 							list[index].itemPrice = item.itemPrice?Number(item.itemPrice):'';
@@ -863,14 +817,10 @@ export default {
 				}
 				}
 			}
 			}
 			this.setSelectInfoByType({ type: this.pageType, info: list });
 			this.setSelectInfoByType({ type: this.pageType, info: list });
-
 			//记忆已经选择的花材
 			//记忆已经选择的花材
 			this.rememberProduct()
 			this.rememberProduct()
-
 		},
 		},
-		/**
-			* 切换左侧商品类别
-			*/
+		//切换左侧商品类别
 		swichClass(cur) {
 		swichClass(cur) {
 			// clearInterval(this.timeFun)
 			// clearInterval(this.timeFun)
 			console.log(cur,'---',this.filterProductInfo)
 			console.log(cur,'---',this.filterProductInfo)
@@ -1081,11 +1031,7 @@ export default {
 				this.scrollPushList();
 				this.scrollPushList();
 			}
 			}
 		},
 		},
-
-
-		/**
-			* 请求课程数据
-			*/
+		//请求课程数据
 		async initPxClassData() {
 		async initPxClassData() {
 			try {
 			try {
 				const { data } = await getPxClassDataApi({pageSize:50});
 				const { data } = await getPxClassDataApi({pageSize:50});

+ 1 - 0
mallApp/src/pages.json

@@ -6,6 +6,7 @@
         { "path": "pages/home/user", "style": { "navigationBarTitleText": "我的" } },
         { "path": "pages/home/user", "style": { "navigationBarTitleText": "我的" } },
         { "path": "pages/home/course", "style": { "navigationBarTitleText": "课程", "enablePullDownRefresh": true } },
         { "path": "pages/home/course", "style": { "navigationBarTitleText": "课程", "enablePullDownRefresh": true } },
         { "path": "pages/item/item", "style": { "navigationBarTitleText": "鲜花", "enablePullDownRefresh": true } },
         { "path": "pages/item/item", "style": { "navigationBarTitleText": "鲜花", "enablePullDownRefresh": true } },
+        { "path": "pages/item/detail", "style": { "navigationBarTitleText": "详情"} },
         { "path": "common/redirect", "style": { "navigationBarTitleText": "加载中..." } },
         { "path": "common/redirect", "style": { "navigationBarTitleText": "加载中..." } },
         { "path": "common/webview", "style": { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black" } },
         { "path": "common/webview", "style": { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black" } },
         { "path": "pages/class/index", "style": { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black" } },
         { "path": "pages/class/index", "style": { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black" } },

+ 6 - 5
mallApp/src/pages/billing/affirmGhs.vue

@@ -17,9 +17,10 @@
 										</text>
 										</text>
 									</view>
 									</view>
 									<view class="info-line">
 									<view class="info-line">
-										<text class="item-type"></text>
+										<text class="item-type" v-if="item.ratioType == 0">{{item.ratio}}{{item.smallUnit}}/{{item.bigUnit}}</text>
+										<text class="item-type" v-else>若干{{item.smallUnit}}/{{item.bigUnit}}</text>
 										<text class="item-count">
 										<text class="item-count">
-											<text>{{`${item.bigCount}`}}</text>
+											<text>{{`${item.bigCount}`}}{{item.bigUnit}}</text>
 										</text>
 										</text>
 									</view>
 									</view>
 								</view>
 								</view>
@@ -37,14 +38,14 @@
 				<view class="module-com input-line-wrap">
 				<view class="module-com input-line-wrap">
 
 
 					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
 					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
-						<button class="admin-button-com big" :class="[form.sendType == 2 ? 'blue' : 'default']" style="width:180upx;border:none;" @click="changeSendType(2)">跑腿送</button>
+						<button class="admin-button-com big" :class="[form.sendType == 2 ? 'blue' : 'default']" style="width:180upx;border:none;" @click="changeSendType(2)">跑腿送</button>
 						<button class="admin-button-com big" :class="[form.sendType == 1 ? 'blue' : 'default']" style="width:180upx;border:none;"  @click="changeSendType(1)">到店自取</button>
 						<button class="admin-button-com big" :class="[form.sendType == 1 ? 'blue' : 'default']" style="width:180upx;border:none;"  @click="changeSendType(1)">到店自取</button>
-						<button class="admin-button-com big" :class="[form.sendType == 0 ? 'blue' : 'default']" style="width:180upx;border:none;"  @click="changeSendType(0)">有车上门</button>
+						<button class="admin-button-com big" :class="[form.sendType == 0 ? 'blue' : 'default']" style="width:180upx;border:none;"  @click="changeSendType(0)">免费送货</button>
 					</tui-list-cell>
 					</tui-list-cell>
 
 
 					<tui-list-cell class="line-cell" :hover="false" :arrow="false">
 					<tui-list-cell class="line-cell" :hover="false" :arrow="false">
 						<view v-if="form.sendType == 0">
 						<view v-if="form.sendType == 0">
-							<text style="color: #3385FF;width:100%;">本店如有出车经过您那边,请选此项,免配送费</text>
+							<text style="color: #3385FF;width:100%;">在本店配送范围的,请选此项,免配送费</text>
 						</view>				
 						</view>				
 						<view v-if="form.sendType == 1">
 						<view v-if="form.sendType == 1">
 							<text style="color: #3385FF;width:100%;">到店取货,没有配送费</text>
 							<text style="color: #3385FF;width:100%;">到店取货,没有配送费</text>

+ 67 - 0
mallApp/src/pages/item/components/buy-foot.vue

@@ -0,0 +1,67 @@
+<template>
+	<div class="app-footer">
+        <div class="btn-left">
+            <div class="btn-wrap" @click="$msg('开发中')">
+                <i class="iconfont iconxiaoxi"></i>
+                <div class="btn-text">客服</div>
+            </div>
+            <div class="btn-wrap" @click="$msg('开发中')">
+                <i class="iconfont icondianpu"></i>
+                <div class="btn-text">店铺</div>
+            </div>
+        </div>
+        <div class="btn-right">
+            <button class="button-com red" @click="buy">购买</button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'buy-foot',
+    props:{
+        isShare:{
+			type:Boolean,
+			default: false
+		},
+    },
+	methods: {
+		buy() {
+			this.$emit('buy')
+		},
+        goShop(){
+            this.$emit('goShop')
+        },
+        goBack() {
+            uni.navigateBack();
+        }
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.app-footer {
+    @include disFlex(center, space-between);
+    .btn-left {
+        @include disFlex(center, space-evenly);
+        width: 36%;
+        .iconfont {
+            font-size: 44upx;
+        }
+        .btn-text {
+            font-size: 24upx;
+            font-weight: 200;
+            transform: scale(0.9);
+        }
+    }
+    .btn-right {
+        width: 62%;
+        @include disFlex(center, center);
+        .button-com {
+            width: calc(90% - 30upx);
+            font-size: 32upx;
+            font-weight: 400;
+        }
+    }
+}
+</style>

+ 49 - 14
mallApp/src/pages/item/components/sel-popup.vue

@@ -1,12 +1,32 @@
 <template>
 <template>
-  <div class="sel-popup">
+  <view class="sel-popup">
     <bottom-popup class="popup-wrap" :show="show" @close="close">
     <bottom-popup class="popup-wrap" :show="show" @close="close">
       <app-close @close="close" />
       <app-close @close="close" />
-      <div class="tui-popup-box">
-        <image :src="getCover" mode="aspectFit" style="height:550upx"></image>
-      </div>
+      <view class="tui-popup-box">
+        <view class="tui-product-box">
+          <template>
+              <img :src="imgNormal" class="tui-popup-img" />
+          </template>
+          <view class="tui-popup-price">
+            <view class="goods-tit app-bold">{{ info.name }}</view>
+            <view class="tui-amount tui-bold">¥{{ info.skPrice?parseFloat(info.skPrice):0 }}</view>
+            <text style="position:absolute;top:70upx;color:#333333;width:300upx;">剩{{info.stock ? parseFloat(info.stock) : 0 }}{{info.bigUnit}}</text>
+          </view>
+        </view>
+        <scroll-view scroll-y class="tui-popup-scroll">
+          <view class="tui-scrolldiv-box">
+            <view class="tui-number-box tui-bold tui-attr-title">
+              <view class="tui-attr-title">数量</view>
+              <number-box :max="maxStock" :min="1" :value="buyNum" @change="change"></number-box>
+            </view>
+          </view>
+        </scroll-view>
+        <view class="tui-popup-btn">
+          <button class="button-com red" @click="nextFn">下一步</button>
+        </view>
+      </view>
     </bottom-popup>
     </bottom-popup>
-  </div>
+  </view>
 </template>
 </template>
 <script>
 <script>
 import BottomPopup from "@/components/plugin/bottom-popup";
 import BottomPopup from "@/components/plugin/bottom-popup";
@@ -20,7 +40,6 @@ export default {
     AppClose
     AppClose
   },
   },
   props: {
   props: {
-    // 信息
     info: {
     info: {
       type: Object,
       type: Object,
       default: () => {
       default: () => {
@@ -42,10 +61,11 @@ export default {
     };
     };
   },
   },
   computed: {
   computed: {
-    getCover() {
-      if (!this.$util.isEmpty(this.info)) {
-        return this.info.bigCover;
-      }
+    imgNormal() {
+        return this.info.cover
+    },
+    maxStock() {
+      return 9999
     }
     }
   },
   },
   methods: {
   methods: {
@@ -57,11 +77,21 @@ export default {
     },
     },
     changeStyleFn(index) {
     changeStyleFn(index) {
       this.selIndex = index;
       this.selIndex = index;
+    },
+    nextFn() {
+      if(Number(this.info.price) <= 0){
+        this.$msg('没有价格,暂时无法下单')
+        return false
+      }
+      if(Number(this.buyNum) > Number(this.info.stock)){
+        this.$msg('不足'+this.buyNum+this.info.bigUnit)
+        return false
+      }
+      this.$emit("nextFn",this.buyNum);
     }
     }
   }
   }
 };
 };
 </script>
 </script>
-
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 /deep/.popup-wrap {
 /deep/.popup-wrap {
   .tui-popup-class {
   .tui-popup-class {
@@ -70,9 +100,12 @@ export default {
     // 适配iphoneX
     // 适配iphoneX
     padding-bottom: env(safe-area-inset-bottom);
     padding-bottom: env(safe-area-inset-bottom);
   }
   }
+
   .tui-popup-box {
   .tui-popup-box {
-    padding: 80upx 10upx 30upx;
+    position: relative;
+    padding: 30upx 30upx 100upx;
   }
   }
+
   .tui-popup-btn {
   .tui-popup-btn {
     width: 100%;
     width: 100%;
     position: absolute;
     position: absolute;
@@ -104,14 +137,16 @@ export default {
   .tui-popup-price {
   .tui-popup-price {
     padding-left: 20upx;
     padding-left: 20upx;
     padding-bottom: 8upx;
     padding-bottom: 8upx;
+    position:relative;
     .goods-tit {
     .goods-tit {
       margin-bottom: 75upx;
       margin-bottom: 75upx;
+      font-size:34upx;
     }
     }
   }
   }
 
 
   .tui-amount {
   .tui-amount {
     color: #ff201f;
     color: #ff201f;
-    font-size: 36upx;
+    font-size: 32upx;
   }
   }
 
 
   .tui-popup-scroll {
   .tui-popup-scroll {
@@ -177,4 +212,4 @@ export default {
     box-sizing: border-box;
     box-sizing: border-box;
   }
   }
 }
 }
-</style>
+</style>

+ 35 - 57
mallApp/src/pages/item/components/subItem.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
-	<view class="item-cmd_bx" @click="customNum(info.variety)">
-		<view class="img_bx" style="background:#eeeeee" @click.stop="customNum(info.variety)">
+	<view class="item-cmd_bx" @click="customNum()">
+		<view class="img_bx" style="background:#eeeeee" @click.stop="showBigImg">
 			<image :src="info.cover" v-if="isImg"></image>
 			<image :src="info.cover" v-if="isImg"></image>
 		</view>
 		</view>
 		<view class="cmd-info_bx">
 		<view class="cmd-info_bx">
@@ -29,15 +29,14 @@
 				<view class="price" v-else></view>
 				<view class="price" v-else></view>
 				
 				
 				<view class="open-bx" >
 				<view class="open-bx" >
-					<i class="iconfont iconjian" :class="delAnimationData?'animation':''" @click.stop="delEvent(info.variety)" v-if="bigCount > 0 || smallCount > 0"></i>
+					<i class="iconfont iconjian" @click.stop="delEvent()" v-if="bigCount > 0 || smallCount > 0"></i>
 					<text class="num">
 					<text class="num">
 						<text v-if="bigCount > 0 || smallCount > 0">{{ `${bigCount}` }}</text>
 						<text v-if="bigCount > 0 || smallCount > 0">{{ `${bigCount}` }}</text>
 						<text v-if="smallCount > 0">/</text>
 						<text v-if="smallCount > 0">/</text>
 						<text v-if="smallCount > 0">{{ `${smallCount}` }}</text>
 						<text v-if="smallCount > 0">{{ `${smallCount}` }}</text>
 					</text>
 					</text>
-					<i class="iconfont iconzeng" :class="addAnimationData?'animation':''" @click.stop="addEvents(info.variety)"></i>
+					<i class="iconfont iconzeng" @click.stop="addEvents()"></i>
 				</view>
 				</view>
-
 			</view>
 			</view>
 		</view>
 		</view>
 	</view>
 	</view>
@@ -46,14 +45,13 @@
 import { COMMODITY_TYPE } from "@/utils/declare";
 import { COMMODITY_TYPE } from "@/utils/declare";
 import AppImg from "@/components/app-img";
 import AppImg from "@/components/app-img";
 import allSelectInput from "@/components/module/allSelectInput";
 import allSelectInput from "@/components/module/allSelectInput";
-import animationMins from "@/mixins/animation";
 import allSelectInputMins from "@/mixins/allSelectInput";
 import allSelectInputMins from "@/mixins/allSelectInput";
 export default {
 export default {
 	name: "Commodity",
 	name: "Commodity",
 	components: {
 	components: {
 		AppImg,allSelectInput
 		AppImg,allSelectInput
 	},
 	},
-	mixins: [animationMins,allSelectInputMins],
+	mixins: [allSelectInputMins],
 	props: {
 	props: {
 		info: {
 		info: {
 			required: true,
 			required: true,
@@ -117,6 +115,9 @@ export default {
 		this.showPrice = this.info.price;
 		this.showPrice = this.info.price;
 	},
 	},
 	methods: {
 	methods: {
+		showBigImg(){
+			this.$emit("showBigCover", this.info);
+		},
 		//input点击删除按键
 		//input点击删除按键
 		deleteInputVal(){
 		deleteInputVal(){
 			this.isAloneAllActive=false;
 			this.isAloneAllActive=false;
@@ -150,69 +151,46 @@ export default {
 		showBigImg(){
 		showBigImg(){
 			this.$emit("showBigCover", this.info);
 			this.$emit("showBigCover", this.info);
 		},
 		},
-		addEvents(variety) {
-			//暂时不考虑小菊图片问题
-			variety = 0
-			if(variety == 0){
-				const ratio = Number(this.info.ratio);
-				if(this.offVerifyRepertory){
-					if(this.info.stock<=0){
-						uni.showToast({title:'没有货了',icon:'none'})
-						return
-					}
-					if (Number(this.bigCount) * ratio + Number(this.smallCount) >Number(this.info.bigNum) * ratio + Number(this.info.smallNum)) {
-						this.$msg("库存只剩"+this.info.bigNum);
-						return
-					}
+		addEvents() {
+			const ratio = Number(this.info.ratio);
+			if(this.offVerifyRepertory){
+				if(this.info.stock<=0){
+					uni.showToast({title:'没有货了',icon:'none'})
+					return
+				}
+				if (Number(this.bigCount) * ratio + Number(this.smallCount) >Number(this.info.bigNum) * ratio + Number(this.info.smallNum)) {
+					this.$msg("库存只剩"+this.info.bigNum);
+					return
 				}
 				}
-				this.animationFun('add');
-				this.$emit("add", this.info);
-			}else{
-				//去特殊品种页
-				this.$emit("goToSpecialVariety", this.info);
 			}
 			}
+			this.$emit("add", this.info)
 		},
 		},
-		delEvent(variety) {
-			//暂时不考虑小菊图片问题
-			variety = 0
-			if(variety == 0){
-				this.animationFun('del');
-				this.$emit("del", this.info);
-			}else{
-				//去特殊品种页
-				this.$emit("goToSpecialVariety", this.info);
-			}
+		delEvent() {
+			this.$emit("del", this.info);
 		},
 		},
 		changePriceEvent(event) {
 		changePriceEvent(event) {
 			this.isFocus = false;
 			this.isFocus = false;
 			this.isAlterMoney = true;
 			this.isAlterMoney = true;
 
 
 		},
 		},
-		customNum(variety) {
-			//暂时不考虑小菊图片问题
-			variety = 0
-			if(variety == 0){
-				if(this.info.stock<=0){
-					uni.showToast({title:'没有货了',icon:'none'})
-					return
-				}
-				if(!this.bigCount && !this.smallCount){
-					let params = {
-						...this.info,
-						bigCount: this.bigCount,
-						smallCount: this.smallCount
-					};
-					this.$emit("addOneEvent", this.info,params);
-				}
-				this.$emit("customNum", {
+		customNum() {
+			if(this.info.stock<=0){
+				uni.showToast({title:'没有货了',icon:'none'})
+				return
+			}
+			if(!this.bigCount && !this.smallCount){
+				let params = {
 					...this.info,
 					...this.info,
 					bigCount: this.bigCount,
 					bigCount: this.bigCount,
 					smallCount: this.smallCount
 					smallCount: this.smallCount
-				});
-			}else{
-				//去特殊品种页
-				this.$emit("goToSpecialVariety", this.info);
+				};
+				this.$emit("addOneEvent", this.info,params);
 			}
 			}
+			this.$emit("customNum", {
+				...this.info,
+				bigCount: this.bigCount,
+				smallCount: this.smallCount
+			})
 		}
 		}
 	}
 	}
 };
 };

+ 192 - 0
mallApp/src/pages/item/detail.vue

@@ -0,0 +1,192 @@
+<template>
+  <view class="app-content">
+    <app-swiper :height="{type: 'number',val: 750}" :tagShow="true" :list="imgList" />
+    <view class="shop-intro">
+      <view class="app-price app-bold">
+        <text class="app-size-34">¥{{ data.skPrice?parseFloat(data.skPrice):0 }}</text>
+      </view>
+      <view class="tui-pro-titbox">
+        <view class="tui-pro-title app-size-32">
+          <text v-if="data.presell == 1">【预售】</text>
+          <text v-if="Number(data.discountPrice) > 0">【特价】</text>
+          {{ data.name }}
+        </view>
+        <button open-type="share" class="tui-share-btn tui-share-position">
+          <app-tag type="gray" tui-tag-class="tui-tag-share tui-size" shape="circleLeft" size="small" >
+            <view class="flex-center">
+              <i class="iconfont iconfenxiang"></i>
+              <text class="tui-share-text tui-gray">分享</text>
+            </view>
+          </app-tag>
+        </button>
+      </view>
+      <view class="shop-express app-color-3" v-if="data.presell == 1">
+        <view>
+          到货日期:
+          <block v-if="!$util.isEmpty(data.presellDateShow)">
+            <text v-for="(dateItem, dateIndex) in data.presellDateShow" :key="dateIndex" style="">{{dateItem}}<text v-if="dateIndex!=data.presellDateShow.length-1">,</text></text>
+          </block>
+        </view>
+      </view>
+    </view>
+    <view class="module-wrap shop-detail">
+      <view class="module-tit app-size-30">商品详情</view>
+      <view class="module-det">
+        <view class="module-det-text">
+          <template v-if="$util.isEmpty(data.content) == false">
+            <rich-text :nodes="data.content"></rich-text>
+          </template>
+          <template v-else>
+            <rich-text :nodes="data.briefContent"></rich-text>
+          </template>
+        </view>
+      </view>
+    </view>
+    <sel-popup :show="popupShow" :info="data" :buyNum="buyNum" @change="changeNum" @close="hidePopup" @nextFn="nextFn" />
+    <buy-foot @buy="showPopup" @goShop="goToShop" :stock="data.stock" />
+  </view>
+</template>
+<script>
+import AppImg from "@/components/app-img";
+import AppSwiper from "@/components/app-swiper";
+import AppTag from "@/components/module/app-tag.vue";
+import AppTrademark from "@/components/module/app-trademark";
+import BuyFoot from "./components/buy-foot.vue";
+import SelPopup from "./components/sel-popup.vue";
+import GoLogin from "@/pages/home/components/go-login.vue";
+import { share } from "@/mixins";
+import { mapGetters } from "vuex";
+import { getMallItemInfo } from "@/api/item";
+import productMins from "@/mixins/cgProduct";
+export default {
+  name: "detail",
+  mixins: [share,productMins],
+  components: {
+    AppSwiper,
+    AppTag,
+    AppTrademark,
+    BuyFoot,
+    SelPopup,
+    AppImg,
+    GoLogin
+  },
+  data() {
+    return {
+      data: {},
+      imgList: [],
+      buyNum: 1,
+      popupShow: false,
+      loginShow: false,
+      showShare: false,
+			pageType: "cg"
+    };
+  },
+  onLoad(option) {},
+  mounted() {},
+  computed: {
+    ...mapGetters({ shopUser: "getShopUser" })
+  },
+  methods: {
+    nextFn(num){
+      let customData = {...this.data,bigCount: Number(num),smallCount:0,itemPrice:this.data.skPrice,bigPrice:this.data.skPrice,smallPrice:0}
+      this.addItemEvent(customData)
+      this.$util.pageTo({url:"/pages/billing/affirmGhs?account="+this.option.account,type:2})
+    },
+    init() {
+      this.getItemInfo()
+    },
+    async getItemInfo() {
+      let id = this.option.id ? this.option.id : 0
+      let hdId = this.option.hdId  ? this.option.hdId : 0
+      await getMallItemInfo({ id: id,hdId:hdId}).then(res => {
+        if (this.$util.isEmpty(res.data)){
+          return false
+        }
+        this.data = res.data.info ? res.data.info : {}
+
+        let newArr = [];
+        newArr.push({img: this.data.bigCover});
+        this.imgList = newArr;
+
+      })
+    },
+    changeNum(e) {
+      this.buyNum = e.value;
+    },
+    goToShop(){
+      let account = uni.getStorageSync('account')
+      this.$util.pageTo({ url: '/pages/home/shop', type: 4, query: { account: account } })
+    },
+    showPopup() {
+        this.popupShow = true
+    },
+    hidePopup() {
+      this.popupShow = false;
+    },
+    hideShare() {
+      this.showShare = false;
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.app-content {
+  padding-bottom: 120upx;
+  // 公共模块
+  .module-wrap {
+    margin-top: 20upx;
+    background-color: #fff;
+    .module-tit {
+      padding: 14upx 24upx;
+      border-bottom: 1upx solid $borderColor;
+    }
+    .module-det {
+      color: $fontColor2;
+      .module-det-text {
+        padding: 24upx;
+      }
+    }
+  }
+  // 公共模块
+  .shop-intro {
+    background: #fff;
+    padding: 30upx 0 30upx 30upx;
+    .tui-pro-titbox {
+      margin: 30upx 0 20upx;
+      @include disFlex(center, space-between);
+      .tui-pro-title {
+        width: 80%;
+      }
+      .tui-share-btn {
+        display: block;
+        background: none;
+        margin: 0;
+        padding: 0;
+        border-radius: 0;
+        .tui-share-text {
+          padding-left: 4upx;
+          color: $fontColor3;
+        }
+      }
+      .iconfenxiang {
+        font-size: 26upx;
+        color: $fontColor3;
+        margin-right: 6upx;
+      }
+    }
+    .shop-express {
+      padding-right: 30upx;
+      @include disFlex(center, space-between);
+      .prompt-text {
+        margin-right: 4upx;
+      }
+    }
+  }
+  .shop-desc {
+    .module-det {
+      // padding: 24upx;
+      line-height: 48upx;
+    }
+  }
+}
+</style>

+ 229 - 19
mallApp/src/pages/item/item.vue

@@ -15,13 +15,6 @@
 				<div v-for="(item, index) in filterProductInfo" :key="index" class="tab-bar-item" :class="[classIndex == index ? 'active' : '']" :data-current="index" @tap.stop="swichClass(index)">
 				<div v-for="(item, index) in filterProductInfo" :key="index" class="tab-bar-item" :class="[classIndex == index ? 'active' : '']" :data-current="index" @tap.stop="swichClass(index)">
 					<text v-if="item.classId=='-1' || item.classId=='-3'" style="color:red;font-weight:bold;">{{ item.className || "" }}</text>
 					<text v-if="item.classId=='-1' || item.classId=='-3'" style="color:red;font-weight:bold;">{{ item.className || "" }}</text>
 					<text v-else>{{ item.className }}</text>
 					<text v-else>{{ item.className }}</text>
-					<text class="tag" v-if=" getSelectClassById(item.classId).bigCount > 0 || getSelectClassById(item.classId).smallCount > 0">
-						<text v-if=" getSelectClassById(item.classId).bigCount > 0 || getSelectClassById(item.classId).smallCount > 0 ">
-							{{ `${getSelectClassById(item.classId).bigCount}` }}
-						</text>
-						<text v-if="getSelectClassById(item.classId).smallCount > 0"> / </text>
-						<text v-if="getSelectClassById(item.classId).smallCount > 0">{{ getSelectClassById(item.classId).smallCount }}</text>
-					</text>
 				</div>
 				</div>
 				<view style="height: 120upx"></view>
 				<view style="height: 120upx"></view>
 			</scroll-view>
 			</scroll-view>
@@ -73,10 +66,46 @@
 			</template>
 			</template>
 		</modal-module>
 		</modal-module>
 
 
-		<FooterCart :price="allPrice" :count="allCount" @confirm="confirmSelectEvent" ></FooterCart>
+		<FooterCart :price="allPrice" :count="allCount" @confirm="confirmSelectEvent" @showCartItem="showCartItem"></FooterCart>
     	<sel-popup :show="popupShow" :info="infoData" @close="hidePopup" />
     	<sel-popup :show="popupShow" :info="infoData" @close="hidePopup" />
 		<app-activily-coupon :show.sync="isNewCustom" :info="newCustomGift" :ghsId="ghsId" />
 		<app-activily-coupon :show.sync="isNewCustom" :info="newCustomGift" :ghsId="ghsId" />
 		
 		
+		<view v-if="cartItemShow == true" style="position: fixed;z-index: 190;top: 0;left: 0;width: 100vw;height: 100vh;background: rgba(0, 0, 0, 0.6);color: #fff;" @click="hideCartItem()">
+			<view style="position: fixed;bottom: 108upx;width:100vw;heigh:300upx;background-color:white;" @click.stop="">
+				<view class="commodity-view">
+					<view class="summary-bar">
+						<button class="admin-button-com blue middle" style="border:none;" @click.stop="delMemory()">清空花材</button>
+					</view>
+					<view class="commodity-list">
+						<view class="commodity-item" v-for="(item, index) in selectList" :key="index">
+							<image class="item-icon" :src="item.cover" alt="" />
+							<view class="item-info">
+								<view class="info-line">
+									<text class="item-name">{{ item.name }}</text>
+									<text class="item-price">
+										<text class="unit">¥</text>
+										<text class="price">
+											{{ item.skPrice ? parseFloat(item.skPrice) : 0 }}
+										</text>
+									</text>
+								</view>
+								<view style="text-align:right;">
+									<view class="open-bx" >
+										<i class="iconfont iconjian" @click.stop="delCurrent(item)" v-if="item.bigCount > 0 || item.smallCount > 0"></i>
+										<text class="num" @click.stop="customUpdate(item)">
+										<text v-if="item.bigCount > 0" style="font-weight:bold;color:#3385ff;">{{ item.bigCount }}</text>
+										<text v-if="item.smallCount > 0"><text v-if="item.bigCount > 0">/</text>{{ item.smallCount }}</text>
+										</text>
+										<i class="iconfont iconzeng" @click.stop="addCurrent(item)"></i>
+									</view>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
 		<wangCg :loginStatus.sync="loginStatus" @goToLogin="loginTo()"></wangCg>
 		<wangCg :loginStatus.sync="loginStatus" @goToLogin="loginTo()"></wangCg>
 
 
 	</view>
 	</view>
@@ -100,7 +129,7 @@ import allMoreSelectInputMins from "@/mixins/allMoreSelectInput";
 import productMins from "@/mixins/cgProduct";
 import productMins from "@/mixins/cgProduct";
 import { COMMODITY_TYPE } from "@/utils/declare";
 import { COMMODITY_TYPE } from "@/utils/declare";
 export default {
 export default {
-	name: "ghsProduct",
+	name: "item",
 	components: {
 	components: {
 		AppTabs,
 		AppTabs,
 		AppSearchModule,
 		AppSearchModule,
@@ -154,7 +183,8 @@ export default {
 			newCustomGift:{xrFlAmount:0},
 			newCustomGift:{xrFlAmount:0},
 			isNewCustom:false,
 			isNewCustom:false,
 			//0没有登录 1有登录
 			//0没有登录 1有登录
-      		loginStatus :0
+      		loginStatus :0,
+			cartItemShow:false,
 		};
 		};
 	},
 	},
 	onPullDownRefresh() {
 	onPullDownRefresh() {
@@ -246,6 +276,24 @@ export default {
 	onUnload() {
 	onUnload() {
 	},
 	},
 	methods: {
 	methods: {
+		showCartItem(){
+			if(this.cartItemShow == true){
+				this.cartItemShow = false
+			}else{
+				if(!this.$util.isEmpty(this.selectList)){
+					if(this.cartItemShow == false){
+						this.cartItemShow = true
+					}
+				}
+			}
+		},
+		delMemory(){
+			this.cartItemShow = false
+			this.removeMemory(this.option.id)
+		},
+		hideCartItem(){
+			this.cartItemShow = false
+		},
 		loginTo() {
 		loginTo() {
 			this.$util.pageTo({url:"/pages/login/index?needBack=1"})
 			this.$util.pageTo({url:"/pages/login/index?needBack=1"})
 		},
 		},
@@ -255,7 +303,7 @@ export default {
 			if(info.stock <= 0){
 			if(info.stock <= 0){
 				uni.showToast({title:"没有库存",icon:"none"})
 				uni.showToast({title:"没有库存",icon:"none"})
 			}else{
 			}else{
-				this.$util.pageTo({url: "/pagesPurchase/xj",query: {stock:info.stock,price: info.price,ghsId:this.option.id}})
+				this.$util.pageTo({url: "/pagesPurchase/xj",query: {stock:info.stock,price: info.price,ghsId:this.option.account}})
 			}
 			}
 		},
 		},
 		showPopup() {
 		showPopup() {
@@ -265,7 +313,7 @@ export default {
 			this.popupShow = false;
 			this.popupShow = false;
 		},
 		},
 		showBigCover(item){
 		showBigCover(item){
-      		this.$util.pageTo({url: "/admin/ghsProduct/detail",query: {id: item.id,ghsId:this.option.id}})
+      		this.$util.pageTo({url: "/pages/item/detail?id="+item.id+"&account="+this.option.account})
 		},
 		},
 		init(){
 		init(){
 			this.init = false
 			this.init = false
@@ -286,13 +334,36 @@ export default {
 				this.myClass = 'fadeOut'
 				this.myClass = 'fadeOut'
 			}
 			}
 		},
 		},
-		//自定义数量
+		addCurrent(info){
+			if(info.$orig){
+				info = info.$orig
+			}
+			this.addEvent(info)
+		},
+		delCurrent(info){
+			if(info.$orig){
+				info = info.$orig
+			}
+			this.delEvent(info)
+		},
+		customUpdate(info){
+			if(info.$orig){
+				info = info.$orig
+			}
+			this.isModel = true;
+			this.customData = info;
+			this.$nextTick(()=>{
+				this.customData.smallCount = this.customData.smallCount==0 ? null : this.customData.smallCount;
+				this.customData.bigCount = this.customData.bigCount==0 ? null : this.customData.bigCount;
+				this.isFocus = true;
+			})
+		},
 		customNum(info) {
 		customNum(info) {
 			this.isModel = true;
 			this.isModel = true;
 			this.customData = info;
 			this.customData = info;
 			this.$nextTick(()=>{
 			this.$nextTick(()=>{
-				this.customData.smallCount = 	this.customData.smallCount==0?null:this.customData.smallCount;
-				this.customData.bigCount = 	this.customData.bigCount==0?null:this.customData.bigCount;
+				this.customData.smallCount = this.customData.smallCount==0 ? null : this.customData.smallCount;
+				this.customData.bigCount = this.customData.bigCount==0 ? null : this.customData.bigCount;
 				this.isFocus = true;
 				this.isFocus = true;
 			})
 			})
 		},
 		},
@@ -349,10 +420,7 @@ export default {
 				const ratioNum = Number(ratio);
 				const ratioNum = Number(ratio);
 				//超过库存时 设置为库存最大值 1
 				//超过库存时 设置为库存最大值 1
 				if (Number(bigCount) * ratioNum + Number(smallCount) > Number(bigNum) * ratioNum + Number(smallNum)) {
 				if (Number(bigCount) * ratioNum + Number(smallCount) > Number(bigNum) * ratioNum + Number(smallNum)) {
-					uni.showToast({
-						title: '库存还剩'+bigNum,
-						icon: "none"
-					});
+					uni.showToast({ title: '库存还剩'+bigNum, icon: "none" })
 				} else {
 				} else {
 					this.updateItemEvent(this.customData)
 					this.updateItemEvent(this.customData)
 					this.modalCancel()
 					this.modalCancel()
@@ -677,4 +745,146 @@ export default {
     }
     }
   }
   }
 }
 }
+
+.commodity-view {
+	display: flex;
+	flex-direction: column;
+	.commodity-list {
+		overflow:scroll;
+		height:50vh;
+		padding: 20upx;
+		.commodity-item {
+			display: flex;
+			margin-bottom: 20upx;
+			.item-icon {
+				flex-shrink: 0;
+				width: 140upx;
+				height: 140upx;
+			}
+			.item-info {
+				display: flex;
+				flex-direction: column;
+				justify-content: center;
+				flex: 1;
+				margin-left: 20upx;
+				.info-line {
+					margin-bottom: 20upx;
+					display: flex;
+					justify-content: space-between;
+					align-items: flex-end;
+					.item-name {
+						color: #666;
+						font-size: 28upx;
+						overflow: hidden;
+						white-space: nowrap;
+						text-overflow: ellipsis;
+						width:400upx;
+					}
+					.item-price {
+						color: #333;
+						font-size: 22upx;
+						.price {
+							font-size: 32upx;
+							font-weight: bold;
+						}
+					}
+					.item-type {
+						color: #999;
+						font-size: 24upx;
+					}
+					.item-count {
+						color: #666;
+						font-size: 24upx;
+					}
+				}
+
+
+	.open-bx {
+		align-items: center;
+		& .iconfont {
+			color: #3385ff;
+			font-size: 60upx;
+		}
+
+		.position{
+			display: block;
+			width: 70upx;
+			text-align: center;
+		}
+		.iconcachu {
+			margin: 0 6upx 0 20upx;
+			color: #ccc;
+			&.edit {
+				color: #3385ff;
+			}
+		}
+		& > .num {
+			display: inline-block;
+			width: 130upx;
+			height:55upx;
+			line-height:55upx;
+			text-align:center;
+			margin: 0 8upx;
+			color: #868686;
+			border-radius: 22upx;
+			background-color: #f5f5f5;
+			font-size: 28upx;
+		}
+		.change-input {
+			width: 164upx;
+			height: 60upx;
+			line-height: 60upx;
+			text-align: center;
+			background: #ffffff;
+			border: 1upx solid #dddddd;
+			border-radius: 4upx;
+			font-size: 25upx;
+		}
+		.btn-box{
+			width: 100upx;
+			height: 60upx;
+			line-height: 60upx;
+			color: #ffffff;
+			background: #3385ff;
+			text-align: center;
+			border-radius: 10upx;
+		}
+	}
+
+			}
+		}
+	}
+	.summary-bar {
+		padding: 0 20upx;
+		height: 90upx;
+		display: flex;
+
+		align-items: center;
+		justify-content: space-between;
+		border-top: 1px solid #eeeeee;
+		.operate-view {
+			display: flex;
+			align-items: center;
+			color: #3385ff;
+			font-size: 28upx;
+			font-weight:bold;
+			.iconfont {
+				margin-right: 20upx;
+				font-size: 40upx;
+			}
+		}
+		.describe-view {
+			display: flex;
+
+			align-items: center;
+			color: #333;
+			font-size: 24upx;
+			.price {
+				font-weight: bold;
+				font-size: 36upx;
+			}
+		}
+	}
+}
+
 </style>
 </style>