金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

160 lines
4.2 KiB

<template>
<view class="seckill-box" :style="{marginBottom: meta.margin_bottom + 'px',background: meta.background_color}" v-if="indexData && indexData.length">
<view class="title" data-src="/pages/store/seckill/seckill" @tap="_jumpImg">
<span>限时秒杀</span>
<span>
更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view v-for="(item, index) in indexData" :key="index" >
<view class="seckill-info" :data-id="item.associate.goods.id" @tap="_jumpToDetail">
<view class="left">
<image :src="item.image"></image>
</view>
<view class="right">
<view class="goods-name">
{{item.associate.goods.name}}
</view>
<view class="price-box">
<text>¥{{item.associate.seckill_price}}</text>
<text class="old">¥{{item.associate.goods.sell_price}}</text>
</view>
<view class="seckill-time">
<view>
<seckill :end="item.associate.ends_at" :starts="item.associate.starts_at" :server="server" mold="index" @starts="isStarts" @end="isEnd" :data-index="index" :data-idx="bigIndex"></seckill>
</view>
<view :style="'background: ' + config.mainColor" class="buy">
去抢购
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import seckill from "../seckill/seckill";
export default {
data() {
return {};
},
components: {
seckill
},
options: {
addGlobalClass: true
},
props: {
indexData: {
type: Array,
value: ''
},
config: {
type: null,
value: ''
},
server: {
type: String,
value: ''
},
bigIndex: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
}
},
//组件的方法
methods: {
//
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
},
_jumpToDetail(e) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
},
// 秒杀结束
isEnd(e) {
var index = e.index;
var idx = e.idx;
var myEventDetail = {
index: index,
idx: idx
};
// this.setData({
// [`indexData[${index}].associate.seckill`]: null
// })
this.indexData[index]={associate:{seckill:null}};
this.$emit('endevent', myEventDetail);
},
// 秒杀开始
isStarts(e) {
var index = e.index;
var idx = e.idx;
var myEventDetail = {
index: index,
idx: idx
};
if(this.indexData[index]==undefined||
this.indexData[index].associate==undefined ||
this.indexData[index].associate.init_status==undefined ||
this.indexData[index].associate.init_status != 1){
// this.setData({
// [`indexData[${index}].associate.seckill.init_status`]:1
// })
this.indexData[index]={associate:{init_status:1}};
}
this.$emit('startevent', myEventDetail);
},
setData: function (obj) {
let that = this;
let keys = [];
let val, data;
Object.keys(obj).forEach(function (key) {
keys = key.split('.');
val = obj[key];
data = that.$data;
keys.forEach(function (key2, index) {
if (index + 1 == keys.length) {
that.$set(data, key2, val);
} else {
if (!data[key2]) {
that.$set(data, key2, {});
}
}
data = data[key2];
});
});
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-seckill";
</style>