浏览代码

购物车

wcni 5 年之前
父节点
当前提交
84f60e3119
共有 58 个文件被更改,包括 1096 次插入178 次删除
  1. 3 3
      common/request.js
  2. 199 0
      component/uinNumberCart.vue
  3. 6 2
      pages.json
  4. 186 85
      pages/index/cart.vue
  5. 143 14
      pages/index/shop.vue
  6. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  7. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  8. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  9. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/Dialog.js.map
  10. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/assess.js.map
  11. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/commoNar.js.map
  12. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/mpvue-citypicker/mpvueCityPicker.js.map
  13. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/shopList.js.map
  14. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/textarea.js.map
  15. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uinNumber.js.map
  16. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uinNumberCart.js.map
  17. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-icon/uni-icon.js.map
  18. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-nav-bar/uni-nav-bar.js.map
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-status-bar/uni-status-bar.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uploadImage.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/cart.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/hotel.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/hoteldetail.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/searchresult.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/shop.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/sureBuy.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/applyfor.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/commentback.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/definite.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/index.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/information.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/myCollect.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/adress.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/adressManger.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/estimate.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/index.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/order.js.map
  39. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/paymoment.js.map
  40. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/reminder.js.map
  41. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myone/oneIndex.js.map
  42. 2 2
      unpackage/dist/dev/mp-weixin/app.json
  43. 2 2
      unpackage/dist/dev/mp-weixin/common/runtime.js
  44. 8 9
      unpackage/dist/dev/mp-weixin/common/vendor.js
  45. 270 0
      unpackage/dist/dev/mp-weixin/component/uinNumberCart.js
  46. 4 0
      unpackage/dist/dev/mp-weixin/component/uinNumberCart.json
  47. 1 0
      unpackage/dist/dev/mp-weixin/component/uinNumberCart.wxml
  48. 56 0
      unpackage/dist/dev/mp-weixin/component/uinNumberCart.wxss
  49. 164 57
      unpackage/dist/dev/mp-weixin/pages/index/cart.js
  50. 2 1
      unpackage/dist/dev/mp-weixin/pages/index/cart.json
  51. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/cart.wxml
  52. 9 0
      unpackage/dist/dev/mp-weixin/pages/index/cart.wxss
  53. 16 1
      unpackage/dist/dev/mp-weixin/pages/index/shop.js
  54. 5 1
      unpackage/dist/dev/mp-weixin/pages/index/shop.json
  55. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/shop.wxml
  56. 6 1
      unpackage/dist/dev/mp-weixin/pages/index/shop.wxss
  57. 7 0
      unpackage/dist/dev/mp-weixin/sitemap24.json
  58. 7 0
      unpackage/dist/dev/mp-weixin/sitemap96.json

+ 3 - 3
common/request.js

@@ -2,12 +2,12 @@ import baseUrl from './new_file.js'
 const request = function(options) {
      options.url = baseUrl + options.url;
      try {
-       // 获取放入缓存的字段token
+       // 获取放入缓存的字段token obj.header["token"] = userToken;
        // const token = uni.getStorageSync('sessionId');
-	    const token = '777';
+	    const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvd3d3LnF6YWl3YW5nLmNvbSIsImlhdCI6MTU4OTMzNTEyOCwiZXhwIjoxNTkwMTk5MTI4LCJuYmYiOjE1ODkzMzUxMjgsInN1YiI6MTYsInBydiI6ImU5YTM5YzhhZjYwMWYyNGMzZjA3ZjQ0NjMyMmE1NmM4MDVjNWNkZTYifQ.Uec3pKa_Btj0u_6qR95YK_MzyhL9gEcczRd3FpG9xUg';
        if (token) { // 如果存在token 配置请求头
          options.header = {
-           'Authorization' : token,
+           'X-TOKEN' : token,
 		   'Content-Type' : 'application/x-www-form-urlencoded',
          };
         }else{	// 不存在token 跳转至登录

+ 199 - 0
component/uinNumberCart.vue

@@ -0,0 +1,199 @@
+<template>
+	<view class="uni-numbox">
+		<view class="uni-numbox-minus" 
+			@click="_calcValue('subtract')"
+		>
+			<text class="yticon icon--jianhao" :class="minDisabled?'uni-numbox-disabled': ''" >-</text>
+		</view>
+		<input 
+			class="uni-numbox-value" 
+			type="number" 
+			:disabled="disabled"
+			:value="inputValue" 
+			
+			@blur="_onBlur"
+		>
+		<view 
+			class="uni-numbox-plus" 
+			@click="_calcValue('add')"
+		>
+			<text :class="maxDisabled?'uni-numbox-disabled': ''" >+</text>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		name: 'uni-number-box',
+		props: {
+			isMax: {
+				type: Boolean,
+				default: false
+			},
+			isMin: {
+				type: Boolean,
+				default: false
+			},
+			index: {
+				type: Number,
+				default: 0
+			},
+			value: {
+				type: Number,
+				default: 0
+			},
+			min: {
+				type: Number,
+				default: -Infinity
+			},
+			max: {
+				type: Number,
+				default: Infinity
+			},
+			step: {
+				type: Number,
+				default: 1
+			},
+			disabled: {
+				type: Boolean,
+				default: false
+			}
+		},
+		data() {
+			return {
+				inputValue: this.value,
+				minDisabled: false,
+				maxDisabled: false
+			}
+		},
+		created(){
+			this.maxDisabled = this.isMax;
+			this.minDisabled = this.isMin;
+		},
+		computed: {
+
+		},
+		watch: {
+			inputValue(number) {
+				const data = {
+					number: number,
+					index: this.index
+				}
+				this.$emit('eventChange', data);
+			}
+		},
+		methods: {
+			_calcValue(type) {
+				const scale = this._getDecimalScale();
+				let value = this.inputValue * scale;
+				let newValue = 0;
+				let step = this.step * scale;
+				
+				if(type === 'subtract'){
+					newValue = value - step;
+					if (newValue <= this.min){
+						this.minDisabled = true;
+					}
+					if(newValue < this.min){
+						newValue = this.min
+					}
+					if(newValue < this.max && this.maxDisabled === true){
+						this.maxDisabled = false;
+					}
+				}else if(type === 'add'){
+					newValue = value + step;
+					if (newValue >= this.max){
+						this.maxDisabled = true;
+					}
+					if(newValue > this.max){
+						newValue = this.max
+					}
+					if(newValue > this.min && this.minDisabled === true){
+						this.minDisabled = false;
+					}
+				}
+				if(newValue === value){
+					return;
+				}
+				this.inputValue = newValue / scale;
+			},
+			_getDecimalScale() {
+				let scale = 1;
+				// 浮点型
+				if (~~this.step !== this.step) {
+					scale = Math.pow(10, (this.step + '').split('.')[1].length);
+				}
+				return scale;
+			},
+			_onBlur(event) {
+				let value = event.detail.value;
+				if (!value) {
+					this.inputValue = 0;
+					return
+				}
+				value = +value;
+				if (value > this.max) {
+					value = this.max;
+				} else if (value < this.min) {
+					value = this.min
+				}
+
+				this.inputValue = value
+			}
+		}
+	}
+</script>
+<style>
+	.uni-numbox {
+		position:absolute;
+		left: 30upx;
+		bottom: 0;
+		display: flex;
+		justify-content: flex-start;
+		align-items: center;
+		width:230upx;
+		height: 70upx;
+		background:#f5f5f5;
+	}
+
+	.uni-numbox-minus,
+	.uni-numbox-plus {
+		margin: 0;
+		background-color: #f5f5f5;
+		width: 70upx;
+		height: 100%;
+		line-height: 70upx;
+		text-align: center;
+		position: relative;
+	}
+	.uni-numbox-minus .yticon,
+	.uni-numbox-plus .yticon{
+		font-size: 36upx;
+		color: #555;
+	}
+
+	.uni-numbox-minus {
+		border-right: none;
+		border-top-left-radius: 6upx;
+		border-bottom-left-radius: 6upx;
+	}
+
+	.uni-numbox-plus {
+		border-left: none;
+		border-top-right-radius: 6upx;
+		border-bottom-right-radius: 6upx;
+	}
+
+	.uni-numbox-value {
+		position: relative;
+		background-color: #f5f5f5;
+		width: 90upx;
+		height: 50upx;
+		text-align: center;
+		padding: 0;
+		font-size: 30upx;
+	}
+
+	.uni-numbox-disabled.yticon {
+		color: #d6d6d6;
+	}
+</style>

+ 6 - 2
pages.json

@@ -45,6 +45,7 @@
 			"style": {
 				"navigationBarTitleText": "购物车",
 				"usingComponents": {
+				  "van-icon": "/wxcomponents/dist/icon/index",
 				  "van-card": "/wxcomponents/dist/card/index",
 				   "van-goods-action": "/wxcomponents/dist/goods-action/index",
 				   "van-goods-action-icon": "/wxcomponents/dist/goods-action-icon/index",
@@ -66,7 +67,10 @@
 				"navigationBarTitleText": "商品详情",
 				"usingComponents":{
 						 "van-tab": "/wxcomponents/dist/tab/index",
-						 "van-tabs": "/wxcomponents/dist/tabs/index"
+						 "van-tabs": "/wxcomponents/dist/tabs/index",
+						 "van-goods-action": "/wxcomponents/dist/goods-action/index",
+						 "van-goods-action-icon": "/wxcomponents/dist/goods-action-icon/index",
+						 "van-goods-action-button": "/wxcomponents/dist/goods-action-button/index"
 				}
 			}
 		},
@@ -283,7 +287,7 @@
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",
-		"navigationBarBackgroundColor": "#F8F8F8",
+		"navigationBarBackgroundColor": "#fff",
 		"backgroundColor": "#F8F8F8",
 		"usingComponents":{
 			 "van-dialog": "/wxcomponents/dist/dialog/index",

+ 186 - 85
pages/index/cart.vue

@@ -1,42 +1,62 @@
 <template>
 	<view style="height: 100vh;background-color: #F5F5F5;">
 		 <view class="titleright" @click="changeShop" v-if="isdelete">编辑</view>
-		  <view class="titleright" @click="changeShop" v-else>删除</view>
-		 <view class="cart-list">
-		  <view style="display: flex;align-items: center;padding: 20upx 36upx;
-		   border-bottom: 1px solid #F5F5F5;">
-			  <image src="" style="width: 50upx;height: 50upx;"></image>
-			  <span style="padding-left: 8upx;">华南酒店</span>
+		  <view class="titleright" @click="changeShop" v-else>取消</view>
+		  <view v-if="list.length>0">
+			  <scroll-view  style="height: 100vh;" class="floor-list"
+			  		   :scroll-top="scrollTop" scroll-y="true"  @scroll="scroll"  @scrolltoupper="upper" @scrolltolower="lower"
+			  		   refresher-enabled="true">
+			  		 <view class="cart-list">
+			  		  <view style="display: flex;align-items: center;padding: 20upx 36upx;
+			  		   border-bottom: 1px solid #F5F5F5;">
+			  			  <image :src="pictureUrl+'/uploads/home/store/'+store.store_id+'/'+store.store_logo" style="border-radius: 50%;
+			  width: 50upx;height: 50upx;"></image>
+			  			  <span style="padding-left: 8upx;">{{store.store_name}}</span>
+			  		  </view>
+			  		  
+			  		  <view v-for="(item,index) in list" :key="index" class="shoplist" style="background-color: #fff;">
+			  			  <view style="flex: 1;border-radius: 100%;">
+			  				<van-checkbox-group :value="checkboxList" @change="checkboxChange()">
+			  				    <van-checkbox  checked-color="#D9332E" :name="index"></van-checkbox>
+			  				  </van-checkbox-group> 
+			  			  </view>
+			  			  <view style="flex: 15;">
+			  			  <van-card
+			  			    title-class="changewidth"
+			  				price-class ="priceClass"
+			  			    :price="item.goods_price"
+			  			    :desc="item.desarray[1]+'X'+item.goods_num"
+			  			    :title="item.desarray[0]"
+			  			    :thumb="pictureUrl + '/uploads/home/store/goods/' + item.goods_image.substr(0, item.goods_image.indexOf('\_')) + '/' + item.goods_image"
+			  			  >
+			  			    <view slot="footer">
+			  				 <!-- <uninumberbox :min="1":isMax="item.number>=item.stock?true:false"
+			  				 	:isMin="item.number===1":max="item.stock" :value="item.goods_num" @change="bindChange(item)"/> -->
+			  				 <uninumberbox
+			  				    class="step"
+			  				 	:min="1" 
+			  				 	:value="item.goods_num"
+			  					:index="index"
+			  					@eventChange="bindChange"
+			  				 ></uninumberbox>
+			  			    </view>
+			  			  </van-card>
+			  			  </view>
+			  		  </view>
+			  		 </view>
+			  		 </scroll-view>
 		  </view>
-		  
-		  <view v-for="(item,index) in list" :key="index" class="shoplist" style="background-color: #fff;">
-			  <view style="flex: 1;border-radius: 100%;">
-				<van-checkbox-group :value="checkboxList" @change="checkboxChange()">
-				    <van-checkbox  checked-color="#D9332E" :name="index"></van-checkbox>
-				  </van-checkbox-group> 
-			  </view>
-			  <view style="flex: 15;">
-			  <van-card
-			    title-class="changewidth"
-				price-class ="priceClass"
-			    :price="item.price"
-			    :desc="item.titleDesc"
-			    :title="item.title"
-			    thumb="https://gd3.alicdn.com/imgextra/i3/0/O1CN01IiyFQI1UGShoFKt1O_!!0-item_pic.jpg_400x400.jpg"
-			  >
-			    <view slot="footer">
-				  <uninumberbox :min="1" @change="bindChange"/>
-			    </view>
-			  </van-card>
+		  <view v-else>
+			  <view style="margin: 120upx auto;text-align: center;">
+				   <van-icon size="160rpx" color="#909399" name="cart-o" />
+				   <view style="text-align: center;color: #909399;"> 去买点什么</view>
 			  </view>
 		  </view>
-		 </view>
-		 
 		 <view style="position: fixed;bottom: 0;">
 		 <van-submit-bar
 		   :price="prices"
 		   :button-text="listip"
-		   bind:submit="onClickButton"
+		   @submit="onClickButton"
 		   :tip="true"
 		 >
 		 <van-checkbox checked-color="#D9332E" :value="isAll" shape="round" @change="onChange">
@@ -50,7 +70,7 @@
 
 <script>
 	import uniNavBar from '@/component/uni-nav-bar/uni-nav-bar.vue'
-	import uninumberbox  from '@/component/uinNumber.vue'
+	import uninumberbox  from '@/component/uinNumberCart.vue'
 	export default {
 		components: {
 			uniNavBar,
@@ -58,44 +78,111 @@
 		},
 		data() {
 			return {
-				prices: 201,
-				listip: '结算',
+				ismax: 0,
+				lengthnumber: 0,
+				pricelist:[],
+				pictureUrl: this.pictureUrl,
+				scrollTop: 0,
+				old: {
+					scrollTop: 0
+				},
+				store: {},
+				ispull: true,
+				page: 1,
+				store_id: 0,
+				prices: 0,
+				listip: '',
 				isdelete: true,
 				isAll: false,
 				checkboxList:[],
-				list:[
-					{title:'洗澡拖鞋dddd一次性', titleDesc:'一次性亚述拖鞋dddd不ww要错过x2', price:'0.5'},
-					{title:'洗澡拖鞋dsssss一次性', titleDesc:'一次性亚述拖dddddd鞋不要33错过x2', price:'0.5'},
-					{title:'洗澡拖鞋一dddddd次性', titleDesc:'一次性亚述拖ddddd鞋不要错过wx2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖dddddddddddddd鞋不要错过wwx3', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖ddddd鞋不要错ee过x2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖鞋不要错过x2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖鞋不要错过x2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖鞋不要错过x2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖鞋不要错过x2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖鞋不要错过x2', price:'0.5'},
-					{title:'洗澡拖鞋一次性', titleDesc:'一次性亚述拖鞋不要错过x2', price:'0.5'}
-				]
+				list:[]
 			}
 		},
 		// 隐藏分享菜单
-		onLoad: function () {
-		 // uni.hideShareMenu({
-		 // 	  success(res) {
-		 // 		  console.log(res)
-		 		 
-		 // 	  },
-		 // 	  fail(res){
-		 // 		  console.log(res)
-		 		  
-		 // 	  } 
-		 // });
+		onLoad: function (options) {
+			console.log(options)
+			this.store_id = options.store_id;
+			this.listip = '结算'+ (this.lengthnumber);
+			this.getshoplist();
 	    },
 		methods: {
+			onClickButton(e) {
+				let array = [];
+				this.pricelist.forEach(item => {
+				  array.push(item.goods_id)
+				})
+				let ids = array.toString();
+				if(this.isdelete) {
+					if(this.pricelist.length == 0) {
+						this.$msg('请选择商品');
+						return;
+					}
+					// 结算
+					uni.navigateTo({
+					   url: './sureBuy'  // 确认订单
+					})
+				}else {
+					if(ids == '') {
+						this.$msg('请选择删除商品');
+						return;
+					}
+					// 删除
+					this.deleteshop(ids);
+				}
+			},
+			deleteshop(ids) {
+				this.request({
+					url: '/v2/order/cart_drop',
+					method: 'post',
+					data: {
+						ids: ids,
+						store_id: this.store_id
+					},
+					success: () => {
+						this.getshoplist();
+					}
+				})
+			},
+			// 滚动到顶部
+			upper(e) {
+				console.log("顶部")
+			},
+			
+			// 滚到底部
+			lower(e) {
+				this.page = this.page + 1;
+				if(this.ispull) {
+					this.getshoplist();
+				}
+			},
+			
+			// 滚动时触发
+			scroll(e) {
+				this.old.scrollTop = e.detail.scrollTop
+			},
 			changeShop() {
 				this.isdelete = !this.isdelete;
-				this.listip = this.isdelete?'结算':'删除';
-				this.prices = this.isdelete?'3201':'';
+				console.log(this.lengthnumber)
+				this.listip = this.isdelete ? "结算" + (this.lengthnumber) :'删除'+ (this.lengthnumber);
+			},
+			getshoplist() {
+				this.request({
+					url: '/v2/order/cart',
+					method: 'post',
+					data: {
+						store_id: this.store_id,
+						page: this.page
+					},
+					success: (res) => {
+						let { data } = res.data;
+						 data.cart_list.forEach(item => {
+							 item.desarray = item.goods_name.split(' ')
+						 })
+						this.list = data.cart_list;
+						this.store = data.store;
+						//console.log(data.cart_list[0].goods_name.split(' '));
+					}
+				})
 			},
 			// 返回上层
 			goback() {
@@ -107,51 +194,55 @@
 			},
 			// 数量累加
 			bindChange(e) {
-				console.log(e)
+				 console.log(e);
+				 this.list[e.index].goods_num = e.number;
+				 this.checkoutprice();
 			},
 			// 单选
 			checkboxChange(e) {
 			  this.checkboxList = []
-			  console.log(e.detail)
 			  e.detail.forEach((item, idx) => {
 				  this.$set(this.checkboxList, idx, item)
 			  })
-			  console.log(this.checkboxList)
-			 //    let items = this.list;
-			 //    let values = e;
-				// for (let i = 0, lenI = items.length; i < lenI; ++i) {
-				// 	const item = items[i]
-				// 	if(values == item){
-				// 		this.$set(item,'checked',true)
-				// 	}else{
-				// 		this.$set(item,'checked',false)
-				// 	}
-				// }
-			
-				
+			  let array = this.list;
+			  let price = [];
+			  this.checkboxList.forEach(item => {
+				  price.push(array[item])
+			  })
+			  this.pricelist = price
+			  this.lengthnumber = this.pricelist.length;
+			  this.listip = this.isdelete ? "结算" + (this.lengthnumber) :'删除'+ (this.lengthnumber);
+			  this.checkoutprice();
 			   },
+			 // 计算价格 
+			 checkoutprice() {
+				 let total = 0;
+				 console.log(this.pricelist)
+				  this.pricelist.forEach(item => {
+					  total += item.goods_price * item.goods_num;
+				  })
+				  this.prices = Number(total.toFixed(2))*100;
+				  
+			 },
 			// 全选
-			onChange() {
+			onChange(a) {
 				this.isAll = !this.isAll;
 				let items = this.list;
 				if(this.isAll) {
 					items.forEach((item, idx) => {
 						this.$set(this.checkboxList, idx, idx.toString())
 					})
-					
-					// for (let i = 0, lenI = items.length; i < lenI; ++i) {
-					// 	console.log(i);
-					// 	this.$set(this.checkboxList, i, i)
-					// 	 // const item = items[i]
-					// 	 // this.$set(item,'checked',true)
-					// }
+					 this.pricelist = this.list;
+					 this.lengthnumber = this.pricelist.length;
+					 this.listip = this.isdelete ? "结算" + (this.lengthnumber) :'删除'+ (this.lengthnumber);
+					 this.checkoutprice();
 				}else {
 					for (let i = 0, lenI = items.length; i < lenI; ++i) {
 						 this.checkboxList = []
-						// this.$set(this.checkboxList, [])
-						
-						// const item = items[i]
-						// this.$set(item,'checked',false)
+						  this.pricelist = this.list;
+						  this.lengthnumber = 0;
+						  this.listip = this.isdelete ? "结算" + (this.lengthnumber) :'删除'+ (this.lengthnumber);
+						  this.checkoutprice();
 					}
 					
 				}
@@ -181,6 +272,11 @@
 		color: #303133;
 		font-size: 32upx;
 		font-weight: 100!important;
+		width: 70%;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+
 	}
 	.priceClass {
 		color:#303133!important;
@@ -195,6 +291,7 @@
 		padding: 0 35upx;
 		justify-content: space-between;
 		align-items: center;
+		padding-bottom: 25upx;
 	}
 		
 	.checklabel {
@@ -205,4 +302,8 @@
 		transform:scale(0.7);
 		border-radius: 100%;
 	}
+	.uni-numbox {
+		position: static!important;
+		float: right;
+	}
 </style>

+ 143 - 14
pages/index/shop.vue

@@ -81,7 +81,7 @@
 			</van-tabs>
  		</view>
  		<!-- 底部操作菜单 -->
- 		<view class="page-bottom">
+ 	<!-- 	<view class="page-bottom">
  			<navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
  				<text class="yticon icon-xiatubiao--copy"></text>
  				<text>首页</text>
@@ -98,7 +98,18 @@
 				<button type="primary" @click="openCar"  class=" action-btn no-border add-cart-btn">加入购物车</button>
  				<button type="primary" class=" action-btn no-border buy-now-btn" @click="buy">立即购买</button>
  			</view>
- 		</view>
+ 		</view> -->
+		
+		<View class="page-bottom">
+			<van-goods-action>
+			  <van-goods-action-icon @click="goIndex" icon="bag-o" />
+			  <van-goods-action-icon icon="cart-o" @click="openCar" :info="cartnumber" />
+			  <van-goods-action-icon icon="star-o" v-if="has_collected == 0"  @click="toFavorite"/>
+			   <van-goods-action-icon icon="star" v-if="has_collected == 1"   icon-class="colored"   @click="toFavorite"/>
+			  <van-goods-action-button  @click="addCar"   text="加入购物车" type="warning" />
+			  <van-goods-action-button text="立即购买"  @click="buynow"   />
+			</van-goods-action>
+		</View>
  		<!-- 规格-模态层弹窗 -->
  		<view 
  			class="popup spec" 
@@ -156,10 +167,15 @@
  			:shareList="shareList"
  		></share> -->
 		</scroll-view>
+		 <logionDialog @confirmDiaolog="confirmDiaolog"  @cancelDiaolog="cancelDiaolog" :showdialog="showdialog"/>
  	</view>
  </template>
  
  <script>
+	 import {
+	 	mapMutations,mapState
+	 } from 'vuex'
+	import logionDialog from '@/component/loginDialog.vue'
 	import uninumberbox  from '@/component/uinNumber.vue' 
 	import assess from '@/component/assess.vue'  // 评价列表
  	import uniIcon from '@/component/uni-icon/uni-icon.vue'
@@ -167,10 +183,16 @@
  		components: {
  			uniIcon,
 			assess,
-			uninumberbox
+			uninumberbox,
+			logionDialog
  		},
  		data() {
  			return {
+				arrayId:[],
+				scopemapId: 0,
+				showdialog: false,
+				has_collected: false, // 是否收藏
+				cartnumber: 0, // 购物车数量
 				changnumber: 100,
 				ismax: false, // 输入狂禁止数量
 				goods_storage: 0, // 规格商品参数
@@ -179,7 +201,8 @@
 				pictureUrl: this.pictureUrl,
 				datalist: {},
 				store_id: 0, // 酒店id
-				goodId: 0, // 商品id
+				goodId: 0, // 商品公共id
+				goods_id: 0, // 商品相信id
 				windowHeight: 0, // 窗口高度
 				iScrolltop: 1,
 				active: 0,
@@ -204,6 +227,12 @@
 		onLaunch: function(){
 			this.active = 1;
 		},
+		computed:{
+			...mapState([
+			  'hasLogin',
+			  'userInfo'
+			]),
+		},
 		onShow: function() {
 			let _this = this;
 			uni.getSystemInfo({
@@ -234,6 +263,12 @@
  		},
 				
  		methods:{
+			// 跳转到首页
+			goIndex() {
+				uni.switchTab({
+					url:'./index'
+				})
+			},
 			// 更改商品数量
 			changestorage(e) {
 				this.shopnumber = e;
@@ -250,12 +285,13 @@
 					data: params,
 					success: function(res) {
 						let { data } = res.data;
+						_this.cartnumber = data.cart;
+						_this.has_collected = data.has_collected;
 						let array = data;
 					    array.spec_list[0].value_list.forEach( (item,idx) => {
 							item.goods_storage = data.goods_list[idx].goods_storage;
 						})
 						_this.datalist = array;
-						
 					}
 				})
 			},
@@ -274,6 +310,7 @@
  			//规格弹窗开关
  			toggleSpec() {
 				this.specClass = 'show';
+				//this.specSelected = []; 
  				// if(this.specClass === 'show'){
  				// 	this.specClass = 'hide';
  				// 	setTimeout(() => {
@@ -284,12 +321,62 @@
  				// }
  			},
 			 
-			//
+			 // 关闭弹窗
+			 cancelDiaolog() {
+			 	this.showdialog = false;
+			 },
+			 // 确定
+			 confirmDiaolog() {
+			 	this.showdialog = false;
+			 	uni.navigateTo({
+			 	   url: '../myCenter/information'  // 我的收藏
+			 	})
+			 },
+			
 			openCar() {
-				this.specClass = 'show';
+				if(this.hasLogin) { 
+					let store_id = this.store_id;
+					uni.navigateTo({
+						url:`/pages/index/cart?store_id=${store_id}`
+					})
+				}else {
+					this.showdialog = true;
+				}
+			},
+			// 加入购物车
+			addCar() {
+				if(this.hasLogin) {
+					 
+						if(this.specSelected.length == 0) {
+							this.specClass = 'show';
+							this.$msg("请选择规格数量");
+							return;
+						}else {
+							this.request({
+								url:'/v2/order/add_cart',
+								method:'POST',
+								data: {
+									goods_id: this.goods_id,
+									goods_num: this.shopnumber
+								},
+								success: () => {
+									this.$msg("商品添加成功");
+									this.specClass = 'none';
+									this.getshopdetail();
+								}
+							})
+						}
+						
+				}else {
+					this.showdialog = true;
+				}
+			},
+			// 立即购买
+			buynow() {
+				if(this.hasLogin) {
 					
-				if(this.specSelected.length == 0) {
-					this.$msg("请选择规格数量");
+				}else {
+					this.showdialog = true;
 				}
 			},
 			closeCar() {
@@ -297,7 +384,6 @@
 			},
  			//选择规格
  			selectSpec(index, pid,value_name,goods_storage){
-				console.log(goods_storage)
 				if(goods_storage == 0) {
 					return;
 				}
@@ -309,15 +395,38 @@
 						this.$set(item, 'selected', false);
 					}
  				})
+				let obj = {};
+				obj.firstId = index;
+				obj.pid = pid;
+				this.arrayId.push(obj);
+				let arr = this.arrayId;
+						   for(var i=0; i<arr.length; i++){
+						             for(var j=i+1; j<arr.length; j++){
+						                 if(arr[i].firstId==arr[j].firstId){         
+						                     arr.splice(j,1);
+						                     j--;
+						                 }
+						             }
+						         }
+				let newarray = []
+				arr.forEach(item => {
+					newarray.push(item.pid);
+				})
+				this.arrayId = arr;
+				if(this.arrayId.length == 0) {
+					this.scopemapId = newarray.toString(); ;
+				}else {
+					this.scopemapId = newarray.join("_");
+				}
 				this.datalist.spec_list[index].value_list = list;
-				let scopemapId = pid;
-				let goodId = this.datalist.spec_map[scopemapId];
+				let goodId = this.datalist.spec_map[this.scopemapId]; //  
 				let items = this.datalist.goods_list[goodId]
 				items.value_name = value_name;
 				this.nuberImg = items.spec_img;
  				this.specSelected = []; 
  				this.specSelected.push(items)
  				this.goods_storage = items.goods_storage;
+				this.goods_id = items.goods_id;
  				
  			}, 					 					
  			// 滚动到顶部
@@ -342,7 +451,22 @@
  			
  			//收藏
  			toFavorite(){
- 				this.favorite = !this.favorite;
+				if(this.hasLogin) {
+					this.request({
+						url: '/v1/favorites/collect',
+						method: 'post',
+						data: {
+							type:'goods',
+							fav_id: this.goodId
+						},
+						success: () => {
+							this.getshopdetail()
+						}
+					})
+				}else {
+					this.showdialog = false;
+				}
+ 				//this.favorite = !this.favorite;
  			},
  			buy(){
  				uni.navigateTo({
@@ -358,7 +482,8 @@
  <style lang='scss'>
  	page{
  		/* background: $page-color-base; */
- 		padding-bottom: 160upx;
+ 		/* padding-bottom: 160upx; */
+		position: relative;
  	}
  	.icon-you{
  		font-size: 28upx + 2upx;
@@ -615,6 +740,7 @@
  	.detail-desc{
  		background: #fff;
  		margin-top: 16upx;
+		margin-bottom: 150rpx;
 		width: 100%;
  		.d-header{
  			display: flex;
@@ -801,6 +927,9 @@
  			}
  		}
  	}
+	.colored {
+		color: red;
+	}
  	.van-sticky {
 		/* z-index: 0!important; */
 	}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/Dialog.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/assess.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/commoNar.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/mpvue-citypicker/mpvueCityPicker.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/shopList.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/textarea.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uinNumber.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uinNumberCart.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-icon/uni-icon.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-nav-bar/uni-nav-bar.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-status-bar/uni-status-bar.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uploadImage.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/cart.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/hotel.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/hoteldetail.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/searchresult.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/shop.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/sureBuy.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/applyfor.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/commentback.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/definite.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/information.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/myCollect.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/adress.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/adressManger.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/estimate.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/order.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/paymoment.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myOrder/reminder.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myone/oneIndex.js.map


+ 2 - 2
unpackage/dist/dev/mp-weixin/app.json

@@ -29,7 +29,7 @@
   "window": {
     "navigationBarTextStyle": "black",
     "navigationBarTitleText": "uni-app",
-    "navigationBarBackgroundColor": "#F8F8F8",
+    "navigationBarBackgroundColor": "#fff",
     "backgroundColor": "#F8F8F8"
   },
   "tabBar": {
@@ -63,5 +63,5 @@
     "van-rate": "/wxcomponents/dist/rate/index",
     "van-cell": "/wxcomponents/dist/cell/index"
   },
-  "sitemapLocation": "sitemap22.json"
+  "sitemapLocation": "sitemap96.json"
 }

+ 2 - 2
unpackage/dist/dev/mp-weixin/common/runtime.js

@@ -104,11 +104,11 @@
 /******/
 /******/
 /******/ 		// mini-css-extract-plugin CSS loading
-/******/ 		var cssChunks = {"component/uni-icon/uni-icon":1,"component/uni-nav-bar/uni-nav-bar":1,"component/assess":1,"component/commoNar":1,"component/shopList":1,"component/uinNumber":1,"component/Dialog":1,"component/textarea":1,"component/uploadImage":1,"component/mpvue-citypicker/mpvueCityPicker":1,"component/uni-status-bar/uni-status-bar":1};
+/******/ 		var cssChunks = {"component/uni-icon/uni-icon":1,"component/uni-nav-bar/uni-nav-bar":1,"component/assess":1,"component/commoNar":1,"component/shopList":1,"component/uinNumberCart":1,"component/uinNumber":1,"component/Dialog":1,"component/textarea":1,"component/uploadImage":1,"component/mpvue-citypicker/mpvueCityPicker":1,"component/uni-status-bar/uni-status-bar":1};
 /******/ 		if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
 /******/ 		else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
 /******/ 			promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
-/******/ 				var href = "" + ({"component/loginDialog":"component/loginDialog","component/uni-icon/uni-icon":"component/uni-icon/uni-icon","component/uni-nav-bar/uni-nav-bar":"component/uni-nav-bar/uni-nav-bar","component/assess":"component/assess","component/commoNar":"component/commoNar","component/shopList":"component/shopList","component/uinNumber":"component/uinNumber","component/Dialog":"component/Dialog","component/textarea":"component/textarea","component/uploadImage":"component/uploadImage","component/mpvue-citypicker/mpvueCityPicker":"component/mpvue-citypicker/mpvueCityPicker","component/uni-status-bar/uni-status-bar":"component/uni-status-bar/uni-status-bar"}[chunkId]||chunkId) + ".wxss";
+/******/ 				var href = "" + ({"component/loginDialog":"component/loginDialog","component/uni-icon/uni-icon":"component/uni-icon/uni-icon","component/uni-nav-bar/uni-nav-bar":"component/uni-nav-bar/uni-nav-bar","component/assess":"component/assess","component/commoNar":"component/commoNar","component/shopList":"component/shopList","component/uinNumberCart":"component/uinNumberCart","component/uinNumber":"component/uinNumber","component/Dialog":"component/Dialog","component/textarea":"component/textarea","component/uploadImage":"component/uploadImage","component/mpvue-citypicker/mpvueCityPicker":"component/mpvue-citypicker/mpvueCityPicker","component/uni-status-bar/uni-status-bar":"component/uni-status-bar/uni-status-bar"}[chunkId]||chunkId) + ".wxss";
 /******/ 				var fullhref = __webpack_require__.p + href;
 /******/ 				var existingLinkTags = document.getElementsByTagName("link");
 /******/ 				for(var i = 0; i < existingLinkTags.length; i++) {

文件差异内容过多而无法显示
+ 8 - 9
unpackage/dist/dev/mp-weixin/common/vendor.js


文件差异内容过多而无法显示
+ 270 - 0
unpackage/dist/dev/mp-weixin/component/uinNumberCart.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/component/uinNumberCart.json

@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/component/uinNumberCart.wxml

@@ -0,0 +1 @@
+<view class="uni-numbox"><view data-event-opts="{{[['tap',[['_calcValue',['subtract']]]]]}}" class="uni-numbox-minus" bindtap="__e"><text class="{{['yticon icon--jianhao',minDisabled?'uni-numbox-disabled':'']}}">-</text></view><input class="uni-numbox-value" type="number" disabled="{{disabled}}" data-event-opts="{{[['blur',[['_onBlur',['$event']]]]]}}" value="{{inputValue}}" bindblur="__e"/><view data-event-opts="{{[['tap',[['_calcValue',['add']]]]]}}" class="uni-numbox-plus" bindtap="__e"><text class="{{[maxDisabled?'uni-numbox-disabled':'']}}">+</text></view></view>

+ 56 - 0
unpackage/dist/dev/mp-weixin/component/uinNumberCart.wxss

@@ -0,0 +1,56 @@
+
+.uni-numbox {
+	position:absolute;
+	left: 30rpx;
+	bottom: 0;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-pack: start;
+	-webkit-justify-content: flex-start;
+	        justify-content: flex-start;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	        align-items: center;
+	width:230rpx;
+	height: 70rpx;
+	background:#f5f5f5;
+}
+.uni-numbox-minus,
+.uni-numbox-plus {
+	margin: 0;
+	background-color: #f5f5f5;
+	width: 70rpx;
+	height: 100%;
+	line-height: 70rpx;
+	text-align: center;
+	position: relative;
+}
+.uni-numbox-minus .yticon,
+.uni-numbox-plus .yticon{
+	font-size: 36rpx;
+	color: #555;
+}
+.uni-numbox-minus {
+	border-right: none;
+	border-top-left-radius: 6rpx;
+	border-bottom-left-radius: 6rpx;
+}
+.uni-numbox-plus {
+	border-left: none;
+	border-top-right-radius: 6rpx;
+	border-bottom-right-radius: 6rpx;
+}
+.uni-numbox-value {
+	position: relative;
+	background-color: #f5f5f5;
+	width: 90rpx;
+	height: 50rpx;
+	text-align: center;
+	padding: 0;
+	font-size: 30rpx;
+}
+.uni-numbox-disabled.yticon {
+	color: #d6d6d6;
+}
+

+ 164 - 57
unpackage/dist/dev/mp-weixin/pages/index/cart.js

@@ -98,6 +98,22 @@ var render = function() {
   var _vm = this
   var _h = _vm.$createElement
   var _c = _vm._self._c || _h
+  var l0 = _vm.__map(_vm.list, function(item, index) {
+    var g0 = item.goods_image.substr(0, item.goods_image.indexOf("_"))
+    return {
+      $orig: _vm.__get_orig(item),
+      g0: g0
+    }
+  })
+
+  _vm.$mp.data = Object.assign(
+    {},
+    {
+      $root: {
+        l0: l0
+      }
+    }
+  )
 }
 var recyclableRender = false
 var staticRenderFns = []
@@ -131,7 +147,27 @@ __webpack_require__.r(__webpack_exports__);
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var uniNavBar = function uniNavBar() {__webpack_require__.e(/*! require.ensure | component/uni-nav-bar/uni-nav-bar */ "component/uni-nav-bar/uni-nav-bar").then((function () {return resolve(__webpack_require__(/*! @/component/uni-nav-bar/uni-nav-bar.vue */ 209));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var uninumberbox = function uninumberbox() {__webpack_require__.e(/*! require.ensure | component/uinNumber */ "component/uinNumber").then((function () {return resolve(__webpack_require__(/*! @/component/uinNumber.vue */ 247));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var _default =
+/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var uniNavBar = function uniNavBar() {__webpack_require__.e(/*! require.ensure | component/uni-nav-bar/uni-nav-bar */ "component/uni-nav-bar/uni-nav-bar").then((function () {return resolve(__webpack_require__(/*! @/component/uni-nav-bar/uni-nav-bar.vue */ 209));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var uninumberbox = function uninumberbox() {__webpack_require__.e(/*! require.ensure | component/uinNumberCart */ "component/uinNumberCart").then((function () {return resolve(__webpack_require__(/*! @/component/uinNumberCart.vue */ 324));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var _default =
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
@@ -191,44 +227,111 @@ __webpack_require__.r(__webpack_exports__);
 
   data: function data() {
     return {
-      prices: 201,
-      listip: '结算',
+      ismax: 0,
+      lengthnumber: 0,
+      pricelist: [],
+      pictureUrl: this.pictureUrl,
+      scrollTop: 0,
+      old: {
+        scrollTop: 0 },
+
+      store: {},
+      ispull: true,
+      page: 1,
+      store_id: 0,
+      prices: 0,
+      listip: '',
       isdelete: true,
       isAll: false,
       checkboxList: [],
-      list: [
-      { title: '洗澡拖鞋dddd一次性', titleDesc: '一次性亚述拖鞋dddd不ww要错过x2', price: '0.5' },
-      { title: '洗澡拖鞋dsssss一次性', titleDesc: '一次性亚述拖dddddd鞋不要33错过x2', price: '0.5' },
-      { title: '洗澡拖鞋一dddddd次性', titleDesc: '一次性亚述拖ddddd鞋不要错过wx2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖dddddddddddddd鞋不要错过wwx3', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖ddddd鞋不要错ee过x2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖鞋不要错过x2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖鞋不要错过x2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖鞋不要错过x2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖鞋不要错过x2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖鞋不要错过x2', price: '0.5' },
-      { title: '洗澡拖鞋一次性', titleDesc: '一次性亚述拖鞋不要错过x2', price: '0.5' }] };
-
+      list: [] };
 
   },
   // 隐藏分享菜单
-  onLoad: function onLoad() {
-    // uni.hideShareMenu({
-    // 	  success(res) {
-    // 		  console.log(res)
-
-    // 	  },
-    // 	  fail(res){
-    // 		  console.log(res)
-
-    // 	  } 
-    // });
+  onLoad: function onLoad(options) {
+    console.log(options);
+    this.store_id = options.store_id;
+    this.listip = '结算' + this.lengthnumber;
+    this.getshoplist();
   },
   methods: {
+    onClickButton: function onClickButton(e) {
+      var array = [];
+      this.pricelist.forEach(function (item) {
+        array.push(item.goods_id);
+      });
+      var ids = array.toString();
+      if (this.isdelete) {
+        if (this.pricelist.length == 0) {
+          this.$msg('请选择商品');
+          return;
+        }
+        // 结算
+        uni.navigateTo({
+          url: './sureBuy' // 确认订单
+        });
+      } else {
+        if (ids == '') {
+          this.$msg('请选择删除商品');
+          return;
+        }
+        // 删除
+        this.deleteshop(ids);
+      }
+    },
+    deleteshop: function deleteshop(ids) {var _this = this;
+      this.request({
+        url: '/v2/order/cart_drop',
+        method: 'post',
+        data: {
+          ids: ids,
+          store_id: this.store_id },
+
+        success: function success() {
+          _this.getshoplist();
+        } });
+
+    },
+    // 滚动到顶部
+    upper: function upper(e) {
+      console.log("顶部");
+    },
+
+    // 滚到底部
+    lower: function lower(e) {
+      this.page = this.page + 1;
+      if (this.ispull) {
+        this.getshoplist();
+      }
+    },
+
+    // 滚动时触发
+    scroll: function scroll(e) {
+      this.old.scrollTop = e.detail.scrollTop;
+    },
     changeShop: function changeShop() {
       this.isdelete = !this.isdelete;
-      this.listip = this.isdelete ? '结算' : '删除';
-      this.prices = this.isdelete ? '3201' : '';
+      console.log(this.lengthnumber);
+      this.listip = this.isdelete ? "结算" + this.lengthnumber : '删除' + this.lengthnumber;
+    },
+    getshoplist: function getshoplist() {var _this2 = this;
+      this.request({
+        url: '/v2/order/cart',
+        method: 'post',
+        data: {
+          store_id: this.store_id,
+          page: this.page },
+
+        success: function success(res) {var
+          data = res.data.data;
+          data.cart_list.forEach(function (item) {
+            item.desarray = item.goods_name.split(' ');
+          });
+          _this2.list = data.cart_list;
+          _this2.store = data.store;
+          //console.log(data.cart_list[0].goods_name.split(' '));
+        } });
+
     },
     // 返回上层
     goback: function goback() {
@@ -241,50 +344,54 @@ __webpack_require__.r(__webpack_exports__);
     // 数量累加
     bindChange: function bindChange(e) {
       console.log(e);
+      this.list[e.index].goods_num = e.number;
+      this.checkoutprice();
     },
     // 单选
-    checkboxChange: function checkboxChange(e) {var _this = this;
+    checkboxChange: function checkboxChange(e) {var _this3 = this;
       this.checkboxList = [];
-      console.log(e.detail);
       e.detail.forEach(function (item, idx) {
-        _this.$set(_this.checkboxList, idx, item);
+        _this3.$set(_this3.checkboxList, idx, item);
       });
-      console.log(this.checkboxList);
-      //    let items = this.list;
-      //    let values = e;
-      // for (let i = 0, lenI = items.length; i < lenI; ++i) {
-      // 	const item = items[i]
-      // 	if(values == item){
-      // 		this.$set(item,'checked',true)
-      // 	}else{
-      // 		this.$set(item,'checked',false)
-      // 	}
-      // }
-
+      var array = this.list;
+      var price = [];
+      this.checkboxList.forEach(function (item) {
+        price.push(array[item]);
+      });
+      this.pricelist = price;
+      this.lengthnumber = this.pricelist.length;
+      this.listip = this.isdelete ? "结算" + this.lengthnumber : '删除' + this.lengthnumber;
+      this.checkoutprice();
+    },
+    // 计算价格 
+    checkoutprice: function checkoutprice() {
+      var total = 0;
+      console.log(this.pricelist);
+      this.pricelist.forEach(function (item) {
+        total += item.goods_price * item.goods_num;
+      });
+      this.prices = Number(total.toFixed(2)) * 100;
 
     },
     // 全选
-    onChange: function onChange() {var _this2 = this;
+    onChange: function onChange(a) {var _this4 = this;
       this.isAll = !this.isAll;
       var items = this.list;
       if (this.isAll) {
         items.forEach(function (item, idx) {
-          _this2.$set(_this2.checkboxList, idx, idx.toString());
+          _this4.$set(_this4.checkboxList, idx, idx.toString());
         });
-
-        // for (let i = 0, lenI = items.length; i < lenI; ++i) {
-        // 	console.log(i);
-        // 	this.$set(this.checkboxList, i, i)
-        // 	 // const item = items[i]
-        // 	 // this.$set(item,'checked',true)
-        // }
+        this.pricelist = this.list;
+        this.lengthnumber = this.pricelist.length;
+        this.listip = this.isdelete ? "结算" + this.lengthnumber : '删除' + this.lengthnumber;
+        this.checkoutprice();
       } else {
         for (var i = 0, lenI = items.length; i < lenI; ++i) {
           this.checkboxList = [];
-          // this.$set(this.checkboxList, [])
-
-          // const item = items[i]
-          // this.$set(item,'checked',false)
+          this.pricelist = this.list;
+          this.lengthnumber = 0;
+          this.listip = this.isdelete ? "结算" + this.lengthnumber : '删除' + this.lengthnumber;
+          this.checkoutprice();
         }
 
       }

+ 2 - 1
unpackage/dist/dev/mp-weixin/pages/index/cart.json

@@ -1,6 +1,7 @@
 {
   "navigationBarTitleText": "购物车",
   "usingComponents": {
+    "van-icon": "/wxcomponents/dist/icon/index",
     "van-card": "/wxcomponents/dist/card/index",
     "van-goods-action": "/wxcomponents/dist/goods-action/index",
     "van-goods-action-icon": "/wxcomponents/dist/goods-action-icon/index",
@@ -11,6 +12,6 @@
     "van-radio": "/wxcomponents/dist/radio/index",
     "van-radio-group": "/wxcomponents/dist/radio-group/index",
     "uni-nav-bar": "/component/uni-nav-bar/uni-nav-bar",
-    "uninumberbox": "/component/uinNumber"
+    "uninumberbox": "/component/uinNumberCart"
   }
 }

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/cart.wxml


+ 9 - 0
unpackage/dist/dev/mp-weixin/pages/index/cart.wxss

@@ -16,6 +16,10 @@
 		color: #303133;
 		font-size: 32rpx;
 		font-weight: 100!important;
+		width: 70%;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
 }
 .priceClass {
 		color:#303133!important;
@@ -36,6 +40,7 @@
 		-webkit-box-align: center;
 		-webkit-align-items: center;
 		        align-items: center;
+		padding-bottom: 25rpx;
 }
 .checklabel {
 		-webkit-transform:scale(0.7);
@@ -47,4 +52,8 @@
 		        transform:scale(0.7);
 		border-radius: 100%;
 }
+.uni-numbox {
+		position: static!important;
+		float: right;
+}
 

文件差异内容过多而无法显示
+ 16 - 1
unpackage/dist/dev/mp-weixin/pages/index/shop.js


+ 5 - 1
unpackage/dist/dev/mp-weixin/pages/index/shop.json

@@ -3,8 +3,12 @@
   "usingComponents": {
     "van-tab": "/wxcomponents/dist/tab/index",
     "van-tabs": "/wxcomponents/dist/tabs/index",
+    "van-goods-action": "/wxcomponents/dist/goods-action/index",
+    "van-goods-action-icon": "/wxcomponents/dist/goods-action-icon/index",
+    "van-goods-action-button": "/wxcomponents/dist/goods-action-button/index",
     "uni-icon": "/component/uni-icon/uni-icon",
     "assess": "/component/assess",
-    "uninumberbox": "/component/uinNumber"
+    "uninumberbox": "/component/uinNumber",
+    "logion-dialog": "/component/loginDialog"
   }
 }

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/shop.wxml


+ 6 - 1
unpackage/dist/dev/mp-weixin/pages/index/shop.wxss

@@ -32,7 +32,8 @@
 /* 行为相关颜色 */
 page {
   /* background: $page-color-base; */
-  padding-bottom: 160rpx;
+  /* padding-bottom: 160upx; */
+  position: relative;
 }
 .icon-you {
   font-size: 30rpx;
@@ -353,6 +354,7 @@ page {
 .detail-desc {
   background: #fff;
   margin-top: 16rpx;
+  margin-bottom: 150rpx;
   width: 100%;
 }
 .detail-desc .d-header {
@@ -605,6 +607,9 @@ page {
             transform: translateY(120%);
 }
 }
+.colored {
+  color: red;
+}
 .van-sticky {
   /* z-index: 0!important; */
 }

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap24.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap96.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

部分文件因为文件数量过多而无法显示