| 
									
										
										
										
											2025-04-24 10:00:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <view> | 
					
						
							|  |  |  |     <view class="quan" | 
					
						
							|  |  |  |           @click.stop="goCart"> | 
					
						
							| 
									
										
										
										
											2025-04-22 17:47:02 +08:00
										 |  |  |       <img :src="smallCarLength>0?cart:cartEmpty" | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |            alt=""> | 
					
						
							|  |  |  |       <view class="qiu" | 
					
						
							|  |  |  |             v-show="smallCarLength > 0">{{ smallCarLength }}</view> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     </view> | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  |     <u-popup | 
					
						
							|  |  |  |       :show="downShow" | 
					
						
							|  |  |  |       mode="bottom" | 
					
						
							|  |  |  |       closeOnClickOverlay | 
					
						
							|  |  |  |       closeable | 
					
						
							|  |  |  |       round="10" | 
					
						
							|  |  |  |       @close="close" | 
					
						
							|  |  |  |     > | 
					
						
							| 
									
										
										
										
											2025-04-01 21:35:18 +08:00
										 |  |  |       <view class="title">{{ '购物车' }}</view> | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  |       <cartBtmList ref="cartBtmList" @orderCallBack="orderCallBack"></cartBtmList> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |     </u-popup> | 
					
						
							|  |  |  |   </view> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  | import { mapGetters, mapActions } from 'vuex' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | import cartBtmList from '@/components/cartBtmList.vue' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default { | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  |   props: { | 
					
						
							|  |  |  |     carLength: { | 
					
						
							|  |  |  |       type: Number | String, | 
					
						
							|  |  |  |       default: 0, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     specialArea: { | 
					
						
							|  |  |  |       type: Number | String, | 
					
						
							|  |  |  |       default: 1, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |   components: { | 
					
						
							|  |  |  |     cartBtmList, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   data() { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       downShow: false, | 
					
						
							| 
									
										
										
										
											2025-04-22 17:47:02 +08:00
										 |  |  |       cart: require('@/static/images/cart-not-empty.png'), | 
					
						
							|  |  |  |       cartEmpty: require('@/static/images/cart-empty.png'), | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   computed: { | 
					
						
							|  |  |  |     ...mapGetters(['smallCarLength']), | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  |   created() { | 
					
						
							|  |  |  |     this.getCar() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |   }, | 
					
						
							|  |  |  |   methods: { | 
					
						
							|  |  |  |     close() { | 
					
						
							|  |  |  |       this.downShow = false | 
					
						
							|  |  |  |       this.getCar() | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |     getCar() { | 
					
						
							|  |  |  |       this.$store.dispatch('getCarLength', this.specialArea) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     goCart() { | 
					
						
							|  |  |  |       this.downShow = true | 
					
						
							|  |  |  |       this.$nextTick(() => { | 
					
						
							|  |  |  |         this.$refs.cartBtmList.getCarList(this.specialArea) | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |       // uni.switchTab({ url: '/pages/shoppingCar/index' })
 | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-24 14:19:12 +08:00
										 |  |  |     orderCallBack() { | 
					
						
							|  |  |  |       this.close() | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |   }, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <style lang="scss" scoped> | 
					
						
							|  |  |  | .title { | 
					
						
							|  |  |  |   font-size: 40rpx; | 
					
						
							|  |  |  |   text-align: center; | 
					
						
							|  |  |  |   margin: 20rpx auto; | 
					
						
							|  |  |  |   color: #333; | 
					
						
							|  |  |  |   font-weight: bold; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | .quan { | 
					
						
							|  |  |  |   position: absolute; | 
					
						
							| 
									
										
										
										
											2025-04-25 11:54:43 +08:00
										 |  |  |   right: 84rpx; | 
					
						
							|  |  |  |   bottom: 30%; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |   background: #fff; | 
					
						
							|  |  |  |   border-radius: 50%; | 
					
						
							|  |  |  |   box-shadow: 0px 2px 20px 0px rgba(204, 204, 204, 1); | 
					
						
							|  |  |  |   width: 100rpx; | 
					
						
							|  |  |  |   height: 100rpx; | 
					
						
							|  |  |  |   display: flex; | 
					
						
							|  |  |  |   justify-content: center; | 
					
						
							|  |  |  |   align-items: center; | 
					
						
							|  |  |  |   z-index: 10; | 
					
						
							|  |  |  |   img { | 
					
						
							|  |  |  |     width: 60rpx; | 
					
						
							|  |  |  |     height: 60rpx; | 
					
						
							|  |  |  |     position: relative; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   .qiu { | 
					
						
							|  |  |  |     position: absolute; | 
					
						
							|  |  |  |     width: 30rpx; | 
					
						
							|  |  |  |     height: 30rpx; | 
					
						
							|  |  |  |     background: #e03030; | 
					
						
							|  |  |  |     border-radius: 50%; | 
					
						
							|  |  |  |     color: #fff; | 
					
						
							|  |  |  |     text-align: center; | 
					
						
							|  |  |  |     line-height: 30rpx; | 
					
						
							|  |  |  |     right: 0; | 
					
						
							|  |  |  |     top: -10rpx; | 
					
						
							|  |  |  |     font-size: 10px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ::v-deep .u-popup__content { | 
					
						
							|  |  |  |   overflow: hidden; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </style> |