<template>
	<view class="tm-cartCellListFood px-20 py-32 flex-top-start" :class="[
		bgColor,
		black_tmeme ? 'grey-darken-4' : '',
		black_tmeme ? 'bk' : '',
		border === 'top' ? 'border-t-1' : '',
		border === 'bottom' ? 'border-b-1' : '',
	]">
		<view v-if="mdata[keyMap['img']]" class="tm-cartCellListFood-img" :style="{
			width:imgWidth+'rpx',
			height:imgWidth+'rpx'
		}">
			<image @click="quxq(mdata)" style="width:90px;height:90px;" :round="3" :src="mdata[keyMap['img']]"></image>
		</view>
		<view class="tm-cartCellListFood-r fulled ">
			<view class="pl-15">
				<view class="title  text-size-s text-weight-b text-overflow-2" style="line-height: 32rpx;"
					:class="[black_tmeme ? 'bk' : '',]">
					{{mdata[keyMap['title']]}}
					<image v-if="typeclick==4" class="shanchu" src="/static/img/94.png"></image>
				</view>
				<view style="min-height: 64rpx;">
					<view v-if="!dense&&mdata[keyMap['label']]"
						class="tm-cartCellListFood-label text-size-s text-grey py-8">{{mdata[keyMap['label']]}}</view>
					<view v-if="!dense&&mdata[keyMap['label']]"
						class="tm-cartCellListFood-label text-size-s text-grey py-8 text-red">{{mdata[keyMap['size']]}}
					</view>
					<view v-if="mdata[keyMap['saleLabel']]&&!dense"
						class="tm-cartCellListFood-sale text-size-s text-grey">
						<block v-for="(item,index) in mdata[keyMap['saleLabel']]" :key="index">
							<tm-tags :black="black_tmeme" :color="color" v-if="index<4" size="xs">{{item}}</tm-tags>
						</block>
					</view>
				</view>
				<view class="tm-cartCellListFood-price flex-between">
					<view>
						<text class="text-size-xs text-red" v-if="typeclick!=3 && typeclick!=6">¥</text>
						<text v-if="typeclick!=3 && typeclick!=6"
							class="text-size-n text-red text-weight-b px-5">{{mdata[keyMap['price']]}}</text>
						<text v-if="mdata[keyMap['unit']]"
							class="text-size-xs text-grey pr-10">/{{mdata[keyMap['unit']]}}</text>
						<text v-if="mdata[keyMap['salePrice']]"
							class="text-delete text-size-xxs text-grey">¥{{mdata[keyMap['salePrice']]}}</text>
					</view>
					<view class="flex jiarugouwuche" v-if="typeclick==1" @click="jiaru(mdata)">
						<image class="" src="/static/img/86.png"></image>
					</view>
					<view class="flex" v-if="typeclick==2">
						<block v-if="cNum>0">
							<view :style="{
							width:`${actionSize}rpx`,
							height:`${actionSize}rpx`,
						}" :class="[color,black_tmeme ? 'bk' : '',]" @click="jian"
								class="tm-cartCellListFood-actions rounded  flex-center outlined">
								<text class="iconfont icon-minus text-size-xxs"></text>
							</view>
							<view class="px-12 text-size-n " :class="[black_tmeme ? 'bk' : '',]">{{cNum}}</view>
						</block>
						<view :style="{
							width:`${actionSize}rpx`,
							height:`${actionSize}rpx`,
						}" :class="[color,`border-${color}-a-1`,black_tmeme ? 'bk' : '',]" @click="jia"
							class="tm-cartCellListFood-actions rounded  flex-center ">
							<text class="iconfont icon-plus text-size-xs"></text>
						</view>
					</view>
					<view class="flex" v-if="typeclick==3" @click="jiaru(mdata)">
						<view class="qiangwang">前往商城购买</view>
					</view>
					<view class="flex" v-if="typeclick==4">
						<view class="" v-if="mdata[keyMap['orderStatus']]==0">
							<view class="fukuan" @click="goPay(mdata,0)">去付款</view>
						</view>
						<view class="flex" v-if="mdata[keyMap['orderStatus']]==1 ||mdata[keyMap['orderStatus']]==2">
							<view class="fukuan mr-10" @click="goBuy(mdata,1)">再次购买</view>
							<view class="fukuan" @click="goSure(mdata,1)" v-if="mdata[keyMap['orderStatus']]==1">确认收货</view>
							<view class="fukuan" @click="goEval(mdata,2)" v-if="mdata[keyMap['orderStatus']]==2">去评价</view>
						</view>
						<!-- <view class="flex" v-if="mdata[keyMap['orderStatus']]==-2">
							<view class="fukuan mr-10">再次购买</view>
							<view class="fukuan">确认收货</view>
						</view> -->
					</view>
					<view style="position: absolute;right: 20px;" v-if="typeclick==5">
						<view class="genghuan mr-10">出库</view>
						<!-- <view class="genghuan">取出</view> -->
					</view>
					<view style="position: absolute;right: 20px;" v-if="typeclick==6">
						<view class="genghuan mr-10" @click="genghuan(mdata,1)">更换</view>
						<view class="genghuan" @click="genghuan(mdata,2)">出库</view>
					</view>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	/**
	 * 餐饮购物商品列表
	 * @property {Number} img-width = [] 默认:140,图片元素宽度,rpx单位。
	 * @property {Number} cart-num = [] 默认:0,当前销售的数量,需要cartNum.sync。
	 * @property {String} color = [] 默认:primary,主题色
	 * @property {String} bg-color = [] 默认:white,背景主题色
	 * @property {Boolean} dense = [ture|false] 默认:false,是否隐藏中间优惠和文字说明的结构,只保留标题和价格数量按钮。
	 * @property {Number} action-size = [] 默认:34,增减按钮大小。单位rpx
	 * @property {String} border = [top|bottom] 默认:top, 显示上边线还是下边线
	 * @property {Boolean} black = [ture|false] 默认:null,是否暗黑主题
	 * @property {Object} mdata = [] 默认:{},数据结构
	 * @property {Object} key-map = [] 默认:{},mdata的字段映射,每个人数据格式都不一样,如果你的数据和默认字段不一致,需要映射下关键字段。
	 * @property {Function} change 改变销售数量时触发,返回当前改变后的销售数量。
	 */
	import tmSliderNav from "@/tm-vuetify/components/tm-sliderNav/tm-sliderNav.vue"
	import tmImages from "@/tm-vuetify/components/tm-images/tm-images.vue"
	import tmTags from "@/tm-vuetify/components/tm-tags/tm-tags.vue"
	export default {
		components: {
			tmSliderNav,
			tmImages,
			tmTags
		},
		name: "tm-cartCellListFood",
		props: {
			imgWidth: {
				type: Number,
				default: 140,
			},
			cartNum: {
				type: Number,
				default: 0
			},
			color: {
				type: String,
				default: 'primary'
			},
			bgColor: {
				type: String,
				default: 'white'
			},
			// 字段映射表,每个人的mdata的数据字段不一样。如果不同就映射下吧。
			keyMap: {
				type: Object,
				default: () => {
					return {
						img: 'img',
						title: 'title',
						label: 'label',
						price: 'price',
						salePrice: 'salePrice',
						saleLabel: 'saleLabel',
						unit: 'unit',
						buy: 'buy',
						size: 'size',
						orderStatus: 'orderStatus'
					}
				}
			},
			// 精简后,不显示简介文字和优惠文字,只显示标题,价格和数量
			dense: {
				type: Boolean | String,
				default: false
			},
			//增减按钮大小。单位rpx
			actionSize: {
				type: Number,
				default: 38
			},
			// 显示上边线还是下边线。可选top / bottom
			border: {
				type: String,
				default: 'top'
			},
			black: {
				type: Boolean | String,
				default: null
			},
			mdata: {
				type: Object,
				default: () => {
					// return {
					// 	img:'https://picsum.photos/300?k=2',
					// 	title:'特色单人套餐(任选)',
					// 	label:'这个产品是只有几个融会',
					// 	price:36.2,
					// 	salePrice:76.4,
					// 	saleLabel:['7折优惠','首单减3元'],
					// 	unit:'/斤'
					//  buy:0
					// }
					return {};
				}
			},
			typeclick: {
				type: Number,
				default: 0
			}
		},
		watch: {
			'mdata.buy': function(val) {
				if (this.cart_num == val) return;
				this.cart_num = val;
			},
		},
		computed: {
			black_tmeme: function() {
				if (this.black !== null) return this.black;
				return this.$tm.vx.state().tmVuetify.black;
			},

			cart_num: {
				get: function() {
					return this.cNum;
				},
				set: function(val) {
					this.cNum = val;
					this.$emit("update:cartNum", val)
					// #ifdef H5
					this.$nextTick(function() {
						this.$emit("change", val)
					})
					// #endif

					// #ifndef H5
					this.$emit("change", val)
					// #endif

				}
			}
		},
		data() {
			return {
				cNum: 0,
			};
		},
		mounted() {
			this.cNum = this.mdata.buy;
		},
		methods: {
			// 付款
			goPay(data,type){
				console.log(data);
			},
			// 评价
			goEval(data,type){
				// console.log(data);
				uni.navigateTo({
					url:'/pages/pingjia/index?no='+data.orderNo
				})
			},
			// 确认收货
			goSure(data,type){
				console.log(data);
				
			},
			//购买 
			goBuy(data,type){
				console.log(data);
			},
			
			jiaru(data) {
				this.$emit('jiaruFun', {
					data: data,
					type: 2
				});
			},
			genghuan(data, type) {
				if (type == 1) {
					this.$emit('genghuan', {
						data: data,
						type: type
					});
				} else if (type == 2) {
					this.$emit('genghuan', {
						data: data,
						type: type
					});
				}
			},
			quxq(data) {
				this.$emit('jiaruFun', {
					data: data,
					type: 1
				});
			},
			jian() {
				const buyNum = this.cNum;
				if (buyNum <= 0) {
					this.cart_num = 0;
					return
				}
				this.cart_num = buyNum - 1
			},
			jia() {
				const buyNum = this.cNum;
				this.cart_num = parseInt(buyNum) + 1
			},	
		}
	}
</script>

<style lang="less">
	.jiarugouwuche image {
		width: 28px !important;
		height: 28px !important;
	}

	.qiangwang {
		width: 100px;
		height: 28px;
		background: #303440;
		border: 1px solid white;
		font-size: 13px;
		text-align: center;
		color: white;
		line-height: 28px;
		border-radius: 5px;
		margin-top: 30px;
	}

	.fukuan {
		color: white;
		font-size: 14px;
		background: #303440;
		padding: 4px 15px 4px 15px;
		border-radius: 40px;
	}

	.shanchu {
		width: 25px;
		height: 25px;
		float: right;
	}

	.genghuan {
		color: #EBEBEB;
		font-size: 14px;
		background: #303440;
		border-radius: 6px;
		width: 60px;
		height: 27px;
		border: 1px solid #EBEBEB;
		text-align: center;
		line-height: 27px;
		margin-top: 8px;
	}
</style>