Files
MER-2.2_2601/mer_uniapp/subPackage/pages/verGoodsInfo/index.vue
2026-03-08 20:07:52 +08:00

186 lines
4.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>