<template>
	<block>
		<view class="choose-product-item"
		v-for="(item, dix) in list"
		:key="item.id" 
		>
			<view class="choose-product-item-check" @click="checkItem(item.id)">
				<u-icon size="45" :color="item.checked?'#ff0000':'#969799'" :name="item.checked?'roundcheckfill':'round'" custom-prefix="custom-icon"></u-icon>
			</view>
			 <view>
				 <view class="choose-product-item-img">
					<image mode="aspectFit" :src="item.productImage+'?x-oss-process=image/resize,p_30'" style="width: 100%;height: 180rpx;"></image>
					<view class="back-price" v-if="item.promoRuleValue">返<text>{{item.promoRuleValue}}</text>元</view>
					<view class="choose-product-item-left-info-code ellipsis-one">{{item.productCode}}</view>
				 </view>
				 <view class="choose-product-item-info">
					<view class="choose-product-item-left-info-name ellipsis-two">{{item.productName}}</view>
					<view class="choose-product-item-left-info-guige ellipsis-two">{{item.productOrigCode}}</view>
					<view class="choose-product-item-left-info-price">
						<view class="price-txt">￥<text>{{item.cost}}</text></view>
						<view>
							<uni-number-box v-if="!edit" v-model="item.qty" :min="1" :max="999999" @change="v=>{changeQty(v,item.id)}"></uni-number-box>
							<view v-else class="edit-qty">
								X <text>{{item.qty}}</text>
								<u-icon size="42" color="#ff0000" name="ashbin" custom-prefix="custom-icon" @click="remove(item.id)"></u-icon>
							</view>
						</view>
					</view>
				 </view>
			 </view>
		</view>
	</block>
</template>

<script>
	import uniNumberBox from '@/components/uni-number-box/uni-number-box.vue'
	export default {
		name: 'productItem',
		components: {
			uniNumberBox
		},
		props: {
			index: {
				type: Number,
				default: 0
			},
			list: {
				type: Array,
				default: () => []
			},
			edit: {
				type: Boolean,
				default: false
			}
		},
		data() {
			return {
			}
		},
		methods: {
			changeQty(e, id) {
				this.$emit('changeQty', e, id)
			},
			remove(id){
				this.$emit('remove',id)
			},
			checkItem(id){
				this.$emit('check',id)
			}
		}
	}
</script>

<style lang="less" scoped>
	.choose-product-item{
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 10px;
		background: #fff;
		margin: 8px 0;
		border-radius: 10px;
		.price-txt{
			color: red;
			display: flex;
			align-items: center;
			text{
				font-size: 36rpx;
			}
		}
		> view{
			 display: flex;
			 align-items: center;
			 justify-content: space-between;
			 &:last-child{
				 flex-grow: 1;
			 }
		}
		.choose-product-item-check{
			padding: 0 20rpx 0 0;
		}
		.choose-product-item-img{
			margin-right: 20rpx;
			width: 35%;
			position: relative;
			overflow: hidden;
			border: 1px solid #eee;
			padding: 10rpx;
			.back-price{
				zoom: calc(0.8);
				padding: 6rpx 65rpx;
				background: rgba(255 ,87 ,34 , 1);
				position: absolute;
				top: 18rpx;
				right: -45rpx;
				color: #fff;
				z-index: 2;
				font-size: 20rpx;
				text-align: center;
				transform: rotate(40deg);
				display: flex;
				align-items: center;
				text{
					font-size: 28rpx;
					margin: 0 5rpx;
				}
			}
			.choose-product-item-left-info-code{
				color: #666;
				position: absolute;
				width: 100%;
				left:0;
				bottom:0;
				background: rgba(255,255,255,0.7);
				text-align: center;
			}
		}
		.choose-product-item-info{
			margin-right: 10rpx;
			width: 65%;
			flex-grow: 1;
			.choose-product-item-left-info-price{
				display: flex;
				align-items:center;
				justify-content: space-between;
				>view{
					&:last-child{
						display: flex;
						align-items:center;
					}
				}
				.edit-qty{
					display: flex;
					align-items:center;
					justify-content: space-between;
					color: #999;
					font-size: 12px;
					> text{
						color: #666;
						font-size: 14px;
						margin-right: 20px;
					}
				}
			}
			.choose-product-item-left-info-name{
				font-size: 28rpx;
				font-weight: 900;
				color: #666;
			}
			.choose-product-item-left-info-guige{
				color: #2196F3;
				margin: 10rpx 0;
				text{
					margin-right: 10rpx;
				}
			}
		}
	}
</style>