Переглянути джерело

新增拼团列表页

tags/富茂链客4.1.0
刘晖 6 роки тому
джерело
коміт
2e4b8740ce
13 змінених файлів з 683 додано та 1 видалено
  1. +1
    -0
      app.json
  2. +45
    -0
      components/spellbanner/index.js
  3. +6
    -0
      components/spellbanner/index.json
  4. +14
    -0
      components/spellbanner/index.wxml
  5. +51
    -0
      components/spellbanner/index.wxss
  6. +5
    -1
      config/config.js
  7. +6
    -0
      pages/main/index.js
  8. +4
    -0
      pages/main/index.wxml
  9. +302
    -0
      pages/spellGroup/spellGroup.js
  10. +10
    -0
      pages/spellGroup/spellGroup.json
  11. +34
    -0
      pages/spellGroup/spellGroup.wxml
  12. +197
    -0
      pages/spellGroup/spellGroup.wxss
  13. +8
    -0
      utils/imgurl.js

+ 1
- 0
app.json Переглянути файл

@@ -1,6 +1,7 @@
{
"pages": [
"pages/index/index",
"pages/spellGroup/spellGroup",
"pages/complete/index",
"pages/main/index",
"pages/bargain/bargainDatail/bargainDatail",


+ 45
- 0
components/spellbanner/index.js Переглянути файл

@@ -0,0 +1,45 @@
// pages/index/sw/index.js
const imgurl = require("../../utils/imgurl");
Component({
/**
* 组件的属性列表
*/
properties: {
list: {
value: [],
type: Array
}
},

/**
* 组件的初始数据
*/
data: {
swiperCurrent: 0,
bannerUrl: imgurl.banner.url
},

/**
* 组件的方法列表
*/
ready() {},
methods: {
swiperChange: function(e) {
this.setData({
swiperCurrent: e.detail.current
});
},
gotobannerdetail: function(e) {
console.log(e)
if(e.currentTarget.dataset.data.type==2){
wx.navigateTo({
url: `/pages/freeBannerDetail/index?id=${e.currentTarget.dataset.id}`
});
}else{
wx.navigateTo({
url: `/pages/bannerdetail/index?id=${e.currentTarget.dataset.id}`
});
}
}
}
});

+ 6
- 0
components/spellbanner/index.json Переглянути файл

@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
}
}

+ 14
- 0
components/spellbanner/index.wxml Переглянути файл

@@ -0,0 +1,14 @@
<view wx:if="{{list.length!=0}}" class="index-slide-view">
<swiper class="index-slide" bindchange="swiperChange" autoplay="true" circular="false">
<block wx:for="{{list}}" wx:key="unique">
<swiper-item>
<image data-id="{{item.id}}" data-data="{{item}}" bindtap='gotobannerdetail' src="{{item.coverImg}}" class="index-slide-image" />
</swiper-item>
</block>
</swiper>
<view class="dots">
<block wx:for="{{list}}" wx:key="unique">
<view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view>
</block>
</view>
</view>

+ 51
- 0
components/spellbanner/index.wxss Переглянути файл

@@ -0,0 +1,51 @@
.index-slide-view{
position: relative;
width: 710rpx;
height: 260rpx;
overflow: hidden;
/* margin:-132rpx auto 0; */
border-radius:16rpx;
box-shadow: 0 6px 20px 0 rgba(0,0,0,0.15);
}
.index-slide,
swiper-item
.index-slide-image {
display: block;
width: 710rpx;
height: 260rpx;
margin: 0 auto;
border-radius:16rpx;
overflow: hidden;
position: relative;

}
.index-slide-view .dots{
position: absolute;
left: 0;
right: 0;
bottom: 20rpx;
display: flex;
justify-content: center;
}
.index-slide-view .dots .dot{
margin: 0 8rpx;
width: 12rpx;
height: 12rpx;
background: #b6b6b7;
border-radius: 50%;
transition: all .6s;
}
.index-slide-view .dots .dot.active{
background: #02C0FF;
width: 30rpx;
height: 12rpx;
border-radius:10rpx;
opacity: 1;
}
.bannerbg{
width: 100%;
}
.bannerbg image{
display: block;
width: 100%;
}

+ 5
- 1
config/config.js Переглянути файл

@@ -220,7 +220,11 @@ var config = {
/**
* 领取转赠卡
*/
cardAccept:'/couponOrder/cardAccept'
cardAccept:'/couponOrder/cardAccept',
/**
* 获取我的拼团列表
*/
getMySepllList:'/orderGroup/queryOrderGroup'
},
weapp: {
AppId: weappId


+ 6
- 0
pages/main/index.js Переглянути файл

@@ -10,6 +10,7 @@ Page({
icon002: imgurl.icon002.url,
icon003: imgurl.icon003.url,
icon004: imgurl.icon004.url,
sapellgroup: imgurl.sapellgroup.url,
market: app.globalData.market,
list: [],
loading: true,
@@ -37,6 +38,11 @@ Page({
url: '/pages/rushToBuy/index',
})
},
gotoSpellGroup:function(){
wx.navigateTo({
url: '/pages/spellGroup/spellGroup',
})
},
qrcode: function(e) {
var that = this;
that.setData({


+ 4
- 0
pages/main/index.wxml Переглянути файл

@@ -11,6 +11,10 @@
<image src='{{icon002}}'></image>
<text>消费卡</text>
</view>
<view bindtap='gotoSpellGroup'>
<image src='{{sapellgroup}}'></image>
<text>拼团专场</text>
</view>
<view bindtap='gotoBargain'>
<image src='{{icon004}}'></image>
<text>砍价专场</text>


+ 302
- 0
pages/spellGroup/spellGroup.js Переглянути файл

@@ -0,0 +1,302 @@
var config = require("../../config/config.js");
const Http = require("../../utils/HttpBasics");
const imgurl = require("../../utils/imgurl");
Page({
/**
* 页面的初始数据
*/
data: {
bannerUrl: imgurl.banner.url,
loadingUrl: imgurl.loading.url,
bargaingoods: true,
mybargain: false,
list: [],
lists: [],
page: 1, // 设置加载的第几次,默认是第一次
pageSize: 10, //返回数据的个数
searchLoadingComplete: false, //“没有数据”的变量,默认false,隐藏
allow_load: true, // 是否允许继续加载标识 默认 true 允许,false 加载完成
myorder: false,
actUrl: imgurl.act.url,
loadingUrl: imgurl.loading.url,
flag: 'bargaingoods',
},
onLoad: function () {
let that = this;
that.getBannerlist();
var todayDate = new Date().getTime();
that.setData({
todayDate: todayDate
})
that.getList(1, "bargaingoods");
that.setData({
flag: "bargaingoods",
bargaingoods: true,
mybargain: false
})
},
//切换拼团列表
getSpellList(){
this.setData({
flag: "bargaingoods"
})
this.getList(1, "bargaingoods")
},
//切换我的拼团
getmyList(){
this.setData({
flag: "mybargain"
})
this.getList(1, "mybargain")
},
/**
* banner
*/
getBannerlist: function () {
let that = this;
Http.get({
url: config.api.bannerlist,
data: {
pageNum: 1,
pageSize: 7
}
}).then(res => {
that.setData({
list: res.data.list
});
});
},
getList(pageNum, flag) {
var that = this;
console.log(pageNum)
if (that.data.allow_load) {
/**
* mybargain: 我的砍价
* bargaingoods: 砍价商品
*/
that.setData({
loading: true,
content: '小主,我在玩命加载中...'
})
var param = {};
if (flag == 'mybargain') {
that.setData({
flag: "mybargain"
})
var param = {
pageNum: pageNum,
pageSize: 10
};
var url = config.api.getMySepllList;
} else if (flag == 'bargaingoods') {
that.setData({
flag: "bargaingoods"
})
var param = {
pageNum: pageNum,
pageSize: 10,
targetAd: 7
};
var url = config.api.couponChannelList;
}
// 请求接口
Http.get({
url: url,
data: param
}).then(res => {
console.log(res)
/**
* 加载完成
*/
if (pageNum >= res.data.pages) {
if (res.data.pages == 0 || res.data.pages == 1) {
that.setData({
allow_load: true,
loading: false,
content: ""
});
} else {
that.setData({
allow_load: false,
loading: true,
content: "——— 再拉裤子就掉了啦 ———",
});
}
}
if (pageNum == 1) {
that.setData({
lists: [],
})
}
if (flag == 'bargaingoods') {
var tmpArr = that.data.lists;
tmpArr.push.apply(tmpArr, res.data.list);
that.setData({
lists: tmpArr
})
} else if (flag == 'mybargain') {
console.log(res.data.list)
var tmpArr = that.data.lists;
tmpArr.push.apply(tmpArr, res.data.list);
console.log(tmpArr)
let lists = [];
tmpArr.map(file => {
if (file.orderStatus != 1) {
lists.push(file);
}
})
that.setData({
lists: lists
})
}
wx.stopPullDownRefresh();
})
.catch(err => {
wx.stopPullDownRefresh();
wx.showToast({
title: err.message,
icon: 'none',
duration: 2000,
mask: false
});
})
setTimeout(function () {
that.setData({
loading: false,
})
}, 1400);
} else {
that.setData({
loading: true,
content: "——— 再拉裤子就掉了啦 ———"
})
setTimeout(function () {
that.setData({
loading: false,
})
}, 1400)
}
},
/**
* 如果是重新砍价,需要重新下单
*/
orderSave: function (couponId, couponChannelId) {
Http.post({
url: config.api.orderSave,
data: {
couponId: "" + couponId,
couponChannelId: "" + couponChannelId,
press: true
}
})
.then(res => {
console.log(res)
wx.navigateTo({
url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.orderNumber}`
})
})
.catch(err => {
wx.showToast({
title: err.message,
icon: "none"
})
})
},
inviteFriend: function (e) {
/**
* 添加标识
*/
wx.navigateTo({
url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${e.currentTarget.dataset.id}`
})
},
barginAgain: function (e) {
let that = this;
console.log(e)
let couponId = e.currentTarget.dataset.couponid;
let couponChannelId = e.currentTarget.dataset.couponchannelid;
// let orderId = e.currentTarget.dataset.id;
that.orderSave(couponId, couponChannelId)
},
mybargain: function () {
let that = this;
that.setData({
bargaingoods: false,
mybargain: true,
flag: "mybargain",
allow_load: true,
loading: false,
content: "",
page: 1
})
that.getList(1, 'mybargain');
wx.setNavigationBarTitle({
title: '我的砍价'
})
},
bargaingoods: function () {
let that = this;
that.setData({
bargaingoods: true,
mybargain: false,
flag: "bargaingoods",
allow_load: true,
loading: false,
page: 1,
content: ""
})

that.getList(1, 'bargaingoods');
wx.setNavigationBarTitle({
title: '砍价专场'
})
},
/**
*
* @param {砍价} 邀请好友砍价
*/
invite: function (e) {
let couponChannelId = e.currentTarget.dataset.id;
let couponId = e.currentTarget.dataset.couponid;
if (couponChannelId && couponId) {
wx.navigateTo({
url: `/pages/coupon/detail/index?couponChannelId=${couponChannelId}&couponId=${couponId}`
})
}
},
//加载更多
onReachBottom: function () {
let that = this;
that.data.page++;
that.setData({
page: that.data.page
});
that.getList(that.data.page, that.data.flag);
},
/**
* 刷新
*/
onPullDownRefresh: function (e) {
let that = this;
if (that.data.flag == 'bargaingoods') {
that.getBannerlist();
var todayDate = new Date().getTime();
that.setData({
todayDate: todayDate
})
that.getList(1, "bargaingoods");
that.setData({
flag: "bargaingoods",
bargaingoods: true,
mybargain: false
})
} else if (that.data.flag == 'mybargain') {
that.getList(1, "mybargain");
that.setData({
flag: "mybargain",
bargaingoods: false,
mybargain: true
})
}
},
})

+ 10
- 0
pages/spellGroup/spellGroup.json Переглянути файл

@@ -0,0 +1,10 @@
{
"navigationBarTitleText": "拼团专场",
"enablePullDownRefresh": true,
"navigationBarBackgroundColor":"#F13C42",
"usingComponents": {
"c-banner": "../../components/spellbanner/index",
"i-tab": "../../../dist/tab/index",
"i-tabs": "../../../dist/tabs/index"
}
}

+ 34
- 0
pages/spellGroup/spellGroup.wxml Переглянути файл

@@ -0,0 +1,34 @@
<view class='content-box'>
<view class='top'>
<view class="banner" wx:if="{{list.length>0}}" hover-class="none" hover-stop-propagation="false">
<c-banner wx:key="unique" list="{{list}}" />
</view>
</view>
<view class='content'>
<view class='sepll-list' wx:for="{{lists}}" wx:key="{{index}}">
<view class='spell-left'>
<image src='{{item.coverImg}}'></image>
</view>
<view class='spell-center'>
<view class='tilte'>{{item.title}}</view>
<view class='remark'>{{item.subTitle}}</view>
<view class='spell-num'>{{item.pressLimitNum+'人团'}}</view>
<view class='price'>
<view class='price01'>
<view class='price-num'>{{item.salePriceStr}}</view>
<view class='price-unit'>元</view>
</view>
<view class='price02'>{{item.priceStr}}</view>
</view>
</view>
<view class='spell-right'>
<view class='right-button'>去拼团</view>
<view class='right-text'>已拼27</view>
</view>
</view>
</view>
<view class='bottom'>
<view class='bottom-left' bindtap="getSpellList" style="background:{{flag=='bargaingoods'?'#FF7250':'#F3453A'}}">拼团商品</view>
<view class='bottom-right' bindtap="getmyList" style="background:{{flag!='bargaingoods'?'#FF7250':'#F3453A'}}">我的拼团</view>
</view>
</view>

+ 197
- 0
pages/spellGroup/spellGroup.wxss Переглянути файл

@@ -0,0 +1,197 @@
/* pages/spellGroup/spellGroup.wxss */
page {
height: auto;
overflow: auto;
background-image: url('https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/cimg/spell-bg.png');
background-size: cover;
background-repeat: no-repeat;
}
.content-box{
height: auto;
background: #f89132;
padding-bottom: 200rpx;
}
.banner{
margin-bottom: 20rpx;
background: none;
border-radius: 16rpx;
}
.banner .bg {
display: block;
width: 100%;
}
image{
padding: 0;
margin: 0;
}
.banner .bannerbg image{
display: none!important;
height: 0;
overflow: hidden;
}
.bannerimg {
display: block;
width: 710rpx;
height: 260rpx;
border-radius: 15rpx;
margin: -132rpx auto 0;
}
.banner .index-slide-view {
margin: -132rpx auto 0;
}
.top{
position: absolute;
top: 30rpx;
width: 710rpx;
height: 260rpx;
background: #fff;
left: 20rpx;
border-radius: 16rpx;
overflow: hidden;
}
.content{
margin-top: 320rpx;
}
.content .sepll-list{
width: 690rpx;
height: 230rpx;
background: #fff;
border-radius: 30rpx;
margin: 30rpx auto 0;
}
.content .spell-left{
width: 230rpx;
height: 230rpx;
float: left;
}
.content .spell-left image{
width: 180rpx;
height: 180rpx;
margin: 25rpx;
}
.content .spell-center{
float: left;
width: 304rpx;
height: 100%;
}
.content .tilte{
font-size:30rpx;
font-family:PingFang-SC-Bold;
font-weight:bold;
color:rgba(51,51,51,1);
line-height:44rpx;
padding-top: 16rpx;
}
.content .remark{
width:304rpx;
font-size:24rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(140,140,140,1);
line-height:44rpx;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
.content .spell-num{
width: 95rpx;
border:1px solid rgba(255,50,50,1);
border-radius:10rpx;
font-size:24rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(255,50,50,1);
line-height:30rpx;
margin: 10rpx 0;
text-align: center;
}
.content .price{
overflow: hidden;
margin-top: 10rpx;
}
.content .price01{
display: inline;
font-size:50rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(255,50,50,1);
line-height:44rpx;
}
.content .price02{
display: inline;
font-size: 24rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
text-decoration:line-through;
color:rgba(140,140,140,1);
}
.content .price-num{
display: inline;
}
.content .price-unit{
display: inline;
font-size:24rpx;
margin-right: 10rpx;
}
.content .spell-right{
float: left;
width: 156rpx;
}
.right-button{
width:120rpx;
height:48rpx;
font-size:26rpx;
background:linear-gradient(90deg,rgba(236,59,45,1) 0%,rgba(248,98,52,1) 100%);
border-radius:24rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
text-align: center;
color:rgba(255,255,255,1);
line-height:44rpx;
margin: 110rpx auto 0;
margin-top: 110rpx;
}
.right-text{
font-size:22rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(140,140,140,1);
line-height:60rpx;
text-align: center;
}
.bottom{
width: 690rpx;
height: 85rpx;
position: fixed;
bottom: 26rpx;
left: 30rpx;
/* background:rgba(243,69,58,1); */
border:1px solid rgba(255, 222, 67, 1);
border-radius:40px;
color: #fff;
overflow: hidden;
}
.bottom-left{
width: 50%;
float: left;
margin-left: -1rpx;
text-align: center;
line-height: 85rpx;
font-size:30rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(255,253,245,1);
border-right:1px solid rgba(255, 222, 67, 1);
opacity: 1;
}
.bottom-right{
width: 50%;
float: left;
text-align: center;
line-height: 85rpx;
font-size:30rpx;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(255,253,245,1);
opacity: 1;
}

+ 8
- 0
utils/imgurl.js Переглянути файл

@@ -356,4 +356,12 @@ module.exports = {
'url': baseUrl + 'success01.png',
'name': '卡领取成功图标'
},
'sapellgroup': {
'url': baseUrl + 'sapellgroup.png',
'name': '拼团图标'
},
'spellBg': {
'url': baseUrl + 'spell-bg.png',
'name': '拼团背景图片'
},
}

Завантаження…
Відмінити
Зберегти