186 lines
4.4 KiB
Vue
186 lines
4.4 KiB
Vue
<template>
|
||
<view>
|
||
<block v-for="(item, index) in orderInfoList" :key="index">
|
||
<view class="goods-box flex">
|
||
<view class="goods-img-box"><img :src="item.image" alt="" class="goods-img" /></view>
|
||
<view class="goods-info-box ml-20 flex-col">
|
||
<view class="goods-name">{{item.productName}}</view>
|
||
<view class="sku-text fs-24">{{item.sku}}</view>
|
||
<view class="verify-box flex-between-center">
|
||
<view v-if="isPunchCard" class="verified-box fs-24 flex">
|
||
<view>已核销:</view>
|
||
<view :class="type == 'users' ? 'font_color' : 'verified-text'">
|
||
{{item.verifyTotalTimes - item.verifyRemainingTimes}}
|
||
</view>
|
||
<view>/{{item.verifyTotalTimes}}</view>
|
||
</view>
|
||
<view v-else class="verified-box fs-24">
|
||
<text>核销数:</text>
|
||
<text>{{item.payNum}}</text>
|
||
</view>
|
||
<!-- 核销页面控制核销次数 -->
|
||
<view v-if="isVer && item.verifyRemainingTimes" class='carnum acea-row row-center-wrapper'>
|
||
<view class="reduce iconfont icon-ic_Reduce mr-8" :class="verifyCount == 1 ? 'on' : ''"
|
||
@click='subCart()'></view>
|
||
<view class='flex-center num rd-12rpx'>
|
||
<view class="verify-number-box">
|
||
<input class="verify-number-input" style="text-align: center;" type="number" v-model="verifyCount"
|
||
@input="changeVerifyCount"></input>
|
||
</view>
|
||
</view>
|
||
<view class="plus iconfont icon-ic_increase ml-8" :class="verifyCount == verifyRemainingTimes ? 'on' : ''"
|
||
@click='addCart()'></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
name: 'verGoodsInfo',
|
||
props: {
|
||
// 订单商品信息
|
||
orderInfoList: {
|
||
type: Array,
|
||
default: () => {
|
||
return []
|
||
}
|
||
},
|
||
// 是否次卡商品
|
||
isPunchCard: {
|
||
type: Boolean,
|
||
default: true
|
||
},
|
||
// 核销数
|
||
totalNum: {
|
||
type: Number,
|
||
default: 0
|
||
},
|
||
// 页面类型:users--用户,admin--商户员工
|
||
type: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
// 是否是核销页面
|
||
isVer: {
|
||
type: Boolean,
|
||
default: false,
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
verifyCount: 1, // 核销次数
|
||
verifyRemainingTimes: this.orderInfoList[0].verifyRemainingTimes, // 剩余核销次数
|
||
}
|
||
},
|
||
methods: {
|
||
// 核销次数减
|
||
subCart() {
|
||
this.verifyCount--;
|
||
if (this.verifyCount <= 1) {
|
||
this.verifyCount = 1
|
||
}
|
||
uni.$emit('getVerifyCount', this.verifyCount)
|
||
},
|
||
// 核销次数加
|
||
addCart() {
|
||
this.verifyCount++;
|
||
if (this.verifyCount >= this.verifyRemainingTimes) {
|
||
this.verifyCount = this.verifyRemainingTimes
|
||
}
|
||
uni.$emit('getVerifyCount', this.verifyCount)
|
||
},
|
||
// 更改核销次数
|
||
changeVerifyCount() {
|
||
if (this.verifyCount <= 0 && this.verifyCount != '') {
|
||
this.$nextTick(() => {
|
||
this.$set(this, 'verifyCount', 1);
|
||
uni.$emit('getVerifyCount', this.verifyCount)
|
||
});
|
||
} else if (this.verifyCount >= this.verifyRemainingTimes) {
|
||
this.$nextTick(() => {
|
||
this.$set(this, 'verifyCount', this.verifyRemainingTimes);
|
||
uni.$emit('getVerifyCount', this.verifyCount)
|
||
});
|
||
} else {
|
||
uni.$emit('getVerifyCount', this.verifyCount)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.goods-box {
|
||
& + .goods-box {
|
||
margin-top: 26rpx;
|
||
}
|
||
// background: #FFFFFF;
|
||
// border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||
// padding: 32rpx 24rpx;
|
||
|
||
.goods-img-box {
|
||
.goods-img {
|
||
width: 136rpx;
|
||
height: 136rpx;
|
||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||
}
|
||
}
|
||
|
||
.goods-info-box {
|
||
justify-content: space-around;
|
||
overflow: hidden;
|
||
width: 100%;
|
||
.goods-name {
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.sku-text {
|
||
color: #999;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.verify-box {
|
||
width: 100%;
|
||
|
||
.verified-box {
|
||
color: #666;
|
||
|
||
.verified-text {
|
||
color: #2A7EFB;
|
||
}
|
||
}
|
||
|
||
.verify-number-box {
|
||
width: 72rpx;
|
||
height: 36rpx;
|
||
background: #F5F5F5;
|
||
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||
.verify-number-input {
|
||
width: 72rpx;
|
||
height: 36rpx;
|
||
line-height: 36rpx;
|
||
font-size: 24rpx;
|
||
font-family: 'dinProRegular';
|
||
}
|
||
}
|
||
|
||
.on {
|
||
border-color: #e3e3e3;
|
||
color: #dedede;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.font_color {
|
||
@include main_color(theme);
|
||
}
|
||
</style> |