金诚优选前端代码
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.
 
 
 
 
 

149 lines
4.0 KiB

<template>
<view id="container">
<view class="body_box">
<view v-if="list && list.length && list[0] && list[0].length">
<view class="bargain_body" v-for="(items,index) in list" :key="index">
<view v-for="(item,idx) in items" :key="item.id" style="margin-bottom: 10px;background-color: #FFFFFF; width: 100%;">
<view class="bargain_goods">
<view class="goods_left">
<image :src="item.reduce.goods.img" mode="widthFix" />
</view>
<view class="goods_right">
<view class="goods_name">{{item.reduce.goods.name}}</view>
<view class="number">剩余{{item.reduce.store_nums}}砍价名额</view>
<view class="past_price">原价 ¥<span>{{item.reduce.goods.max_price}}</span></view>
<view class="right_foot">
<view class="new_price">
砍后价¥{{item.reduce.price}}
</view>
<view class="btn" @tap="toDetail" :data-reduce-id="item.id" v-if="item.status_text=='进行中'">
查看详情
</view>
<view class="btn_other" @tap="toDetail" :data-reduce-id="item.id" v-else>
查看详情
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view v-if="list && list.length == 0 && list[0] && list[0].length == 0 && init" style="text-align: center;padding: 20px; font-size: 14px;">
您暂无砍价哟~
</view>
</view>
</view>
</template>
<script>
export default{
data(){
return{
list:[],
page:'',
more:'',
reduce_items_id:'',
init:''
}
},
onLoad(){
this.getReduceList(1);
},
onShow(){
},
//下拉刷新
onReachBottom(){
if(this.more){
let page = this.page + 1;
this.getReduceList(page);
} else {
wx.showToast({
image: '../../../static/error.png',
title: '再拉也没有啦'
});
}
},
methods:{
toDetail(e){
this.reduce_items_id = e.currentTarget.dataset.reduceId;
wx.navigateTo({
url: `/pages/bargain/detail/detail?reduce_items_id=${this.reduce_items_id}`
})
},
// 获取页面列表数据
getReduceList(page) {
wx.showLoading({
title: "加载中",
mask: true
});
var token = this.$cookieStorage.get('user_token');
this.$http.get({
api: 'api/reduce/list/me',
header:{
Authorization:token
},
data: {
page:page
}
}).then(res => {
res = res.data;
if (res.status) {
let pages = res.meta.pagination;
let current_page = pages.current_page;
let total_pages = pages.total_pages;
this.setData({
[`list.${page-1}`]: res.data,
more: current_page < total_pages,
page: current_page,
init:true
})
} else {
wx.showModal({
content: res.message || '请求失败',
showCancel: false
})
}
wx.hideLoading()
}).catch(rej => {
wx.hideLoading()
wx.showModal({
content: rej.message || '请求失败',
showCancel: false
})
})
},
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 "list";
</style>