Commit 854bacf6 authored by Menethil's avatar Menethil
Browse files

添加Renard小程序

parent a50998e6
var util = require('../../../utils/util.js');
var api = require('../../../config/api.js');
var app = getApp();
Page({
data: {
addressList: [],
},
onLoad: function(options) {
// 页面初始化 options为页面跳转所带来的参数
},
onReady: function() {
// 页面渲染完成
},
onShow: function() {
// 页面显示
this.getAddressList();
},
onPullDownRefresh() {
wx.showNavigationBarLoading() //在标题栏中显示加载
this.getAddressList();
wx.hideNavigationBarLoading() //完成停止加载
wx.stopPullDownRefresh() //停止下拉刷新
},
getAddressList() {
let that = this;
util.request(api.AddressList).then(function(res) {
if (res.errno === 0) {
that.setData({
addressList: res.data
});
}
});
},
addressAddOrUpdate(event) {
console.log(event);
//返回之前,先取出上一页对象,并设置addressId
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
if (prevPage.route == "pages/shopping/checkout/checkout") {
console.log(event.currentTarget.dataset.addressId);
// prevPage.setData({
// addressId: event.currentTarget.dataset.addressId
// });
try {
wx.setStorageSync('addressId', event.currentTarget.dataset.addressId);
} catch (e) {
}
let addressId = event.currentTarget.dataset.addressId;
console.log(addressId);
if (addressId && addressId != 0) {
wx.navigateBack();
} else {
wx.navigateTo({
url: '/pages/ucenter/addressAdd/addressAdd?id=' + addressId
})
}
} else {
wx.navigateTo({
url: '/pages/ucenter/addressAdd/addressAdd?id=' + event.currentTarget.dataset.addressId
})
}
},
deleteAddress(event) {
console.log(event.target);
let that = this;
wx.showModal({
title: '',
content: '确定要删除地址?',
success: function(res) {
if (res.confirm) {
let addressId = event.target.dataset.addressId;
util.request(api.AddressDelete, {
id: addressId
}, 'POST').then(function(res) {
if (res.errno === 0) {
that.getAddressList();
wx.removeStorage({
key: 'addressId',
success: function(res) {},
})
}
});
console.log('用户点击确定')
}
}
});
return false;
},
onHide: function() {
// 页面隐藏
},
onUnload: function() {
// 页面关闭
}
});
\ No newline at end of file
{
"navigationBarTitleText": "地址管理"
}
\ No newline at end of file
<view class="container">
<view class="address-list" wx:if="{{ addressList.length > 0 }}">
<view class="item" wx:for="{{addressList}}" wx:key="id" bindtap="addressAddOrUpdate" data-address-id="{{item.id}}">
<view class="l">
<view class="name">{{item.name}}</view>
<view class="default" wx:if="{{item.isDefault}}">默认</view>
</view>
<view class="c">
<view class="mobile">{{item.mobile}}</view>
<view class="address">{{item.detailedAddress}}</view>
</view>
<view class="r">
<image catchtap="deleteAddress" data-address-id="{{item.id}}" class="del" src="/static/images/del-address.png"></image>
</view>
</view>
</view>
<view class="empty-view" wx:if="{{ addressList.length <= 0 }}">
<image class="icon" src="http://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/icon-normal/noAddress-26d570cefa.png"></image>
<text class="text">收货地址在哪里</text>
</view>
<view class="add-address" bindtap="addressAddOrUpdate" data-address-id="0">新建</view>
</view>
page{
height: 100%;
width: 100%;
background: #f4f4f4;
}
.container{
height: 100%;
width: 100%;
}
.address-list{
padding-left: 31.25rpx;
background: #fff url(http://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/icon-normal/address-bg-bd30f2bfeb.png) 0 0 repeat-x;
background-size: auto 10.5rpx;
margin-bottom: 90rpx;
}
.address-list .item{
height: 156.55rpx;
align-items: center;
display: flex;
border-bottom: 1rpx solid #DCD9D9;
}
.address-list .l{
width: 125rpx;
height: 80rpx;
overflow: hidden;
}
.address-list .name{
width: 125rpx;
height: 43rpx;
font-size: 29rpx;
margin-bottom: 5.2rpx;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.address-list .default{
width: 62.5rpx;
height: 33rpx;
line-height: 28rpx;
text-align: center;
font-size: 20rpx;
color: #a78845;
border: 1rpx solid #a78845;
visibility: visible;
}
.address-list .c{
flex: 1;
height: auto;
overflow: hidden;
}
.address-list .mobile{
height: 29rpx;
font-size: 29rpx;
line-height: 29rpx;
overflow: hidden;
margin-bottom: 6.25rpx;
}
.address-list .address{
height: 37rpx;
font-size: 25rpx;
line-height: 37rpx;
overflow: hidden;
}
.address-list .r{
width: 52rpx;
height: auto;
overflow: hidden;
margin-right: 16.5rpx;
}
.address-list .del{
display: block;
width: 52rpx;
height: 52rpx;
}
.add-address{
background: #a78845;
text-align: center;
width: 100%;
height: 99rpx;
line-height: 99rpx;
position: fixed;
border-radius: 0;
border: none;
color: #fff;
font-size: 29rpx;
bottom: 0;
left:0;
}
.empty-view{
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.empty-view .icon{
height: 248rpx;
width: 258rpx;
margin-bottom: 10rpx;
}
.empty-view .text{
width: auto;
font-size: 28rpx;
line-height: 35rpx;
color: #999;
}
\ No newline at end of file
var util = require('../../../utils/util.js');
var api = require('../../../config/api.js');
var check = require('../../../utils/check.js');
var app = getApp();
Page({
data: {
address: {
id: 0,
provinceId: 0,
cityId: 0,
areaId: 0,
address: '',
name: '',
mobile: '',
isDefault: 0,
provinceName: '',
cityName: '',
areaName: ''
},
addressId: 0,
openSelectRegion: false,
regionType: 1,
selectRegionDone: false
},
bindinputMobile(event) {
let address = this.data.address;
address.mobile = event.detail.value;
this.setData({
address: address
});
},
bindinputName(event) {
let address = this.data.address;
address.name = event.detail.value;
this.setData({
address: address
});
},
bindinputAddress(event) {
let address = this.data.address;
address.address = event.detail.value;
this.setData({
address: address
});
},
bindIsDefault() {
let address = this.data.address;
address.isDefault = !address.isDefault;
this.setData({
address: address
});
},
getAddressDetail() {
let that = this;
util.request(api.AddressDetail, {
id: that.data.addressId
}).then(function(res) {
if (res.errno === 0) {
if (res.data) {
that.setData({
address: res.data
});
}
}
});
},
wxChooseAddress() {
let that = this;
let address = this.data.address;
// 用户已经同意小程序使用地址功能
wx.chooseAddress({
success: function(res) {
address.provinceId = 99999;
address.cityId = 88888;
address.areaId = 77777;
address.name = res.userName;
address.mobile = res.telNumber;
address.provinceName = res.provinceName;
address.cityName = res.cityName;
address.areaName = res.countyName;
address.address = res.provinceName + res.cityName + res.countyName + res.detailInfo;
that.setData({
address: address,
});
}
});
},
wxAddress() {
let that = this;
// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.address" 这个 scope
wx.getSetting({
success(res) {
if (!res.authSetting['scope.address']) {
wx.authorize({
scope: 'scope.address',
success() {
that.wxChooseAddress();
}
})
} else {
that.wxChooseAddress();
}
}
})
},
onLoad: function(options) {
let that = this;
// 页面初始化 options为页面跳转所带来的参数
console.log(options);
if (options.id && options.id != 0) {
this.setData({
addressId: options.id
});
this.getAddressDetail();
} else {
that.wxAddress();
}
},
onReady: function() {
},
cancelAddress() {
wx.navigateBack();
},
saveAddress() {
console.log(this.data.address);
let address = this.data.address;
if (address.name == '') {
util.showErrorToast('请输入姓名');
return false;
}
if (address.mobile == '') {
util.showErrorToast('请输入手机号码');
return false;
}
if (address.areaId == 0) {
util.showErrorToast('请输入省市区');
return false;
}
if (address.address == '') {
util.showErrorToast('请输入详细地址');
return false;
}
if (!check.isValidPhone(address.mobile)) {
util.showErrorToast('手机号不正确');
return false;
}
let that = this;
util.request(api.AddressSave, {
id: address.id,
name: address.name,
mobile: address.mobile,
provinceId: address.provinceId,
cityId: address.cityId,
areaId: address.areaId,
address: address.address,
isDefault: address.isDefault,
provinceName: address.provinceName,
cityName: address.cityName,
countyName: address.areaName
}, 'POST').then(function(res) {
if (res.errno === 0) {
//返回之前,先取出上一页对象,并设置addressId
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
console.log(prevPage);
if (prevPage.route == "pages/shopping/checkout/checkout") {
prevPage.setData({
addressId: res.data
});
try {
wx.setStorageSync('addressId', res.data);
} catch (e) {
}
console.log("set address");
}
wx.navigateBack();
}
});
},
onShow: function() {
// 页面显示
},
onHide: function() {
// 页面隐藏
},
onUnload: function() {
// 页面关闭
}
});
\ No newline at end of file
{
"navigationBarTitleText": "编辑地址"
}
\ No newline at end of file
<view class="add-address">
<view class="add-form">
<view class="form-item">
<input class="input" bindinput="bindinputName" placeholder="姓名" value="{{address.name}}"/>
</view>
<view class="form-item">
<input class="input" bindinput="bindinputMobile" value="{{address.mobile}}" placeholder="手机号码"/>
</view>
<view class="form-item">
<input class="input" bindinput="bindinputAddress" value="{{address.address}}" placeholder="详细地址"/>
</view>
<view class="form-default">
<text bindtap="bindIsDefault" class="default-input {{address.isDefault == 1 ? 'selected' : ''}}">设为默认地址</text>
</view>
</view>
<view class="btns">
<button class="cannel" bindtap="cancelAddress">取消</button>
<button class="save" bindtap="saveAddress">保存</button>
</view>
</view>
<view class="bg-mask" bindtap="cancelSelectRegion" wx:if="{{openSelectRegion}}"></view>
\ No newline at end of file
page{
height: 100%;
background: #f4f4f4;
}
.add-address .add-form{
background: #fff;
width: 100%;
height: auto;
overflow: hidden;
}
.add-address .form-item{
height: 116rpx;
padding-left: 31.25rpx;
border-bottom: 1px solid #d9d9d9;
display: flex;
align-items: center;
padding-right: 31.25rpx;
}
.add-address .input{
flex: 1;
height: 44rpx;
line-height: 44rpx;
overflow: hidden;
}
.add-address .form-default{
border-bottom: 1px solid #d9d9d9;
height: 96rpx;
background: #fafafa;
padding-top: 28rpx;
font-size: 28rpx;
}
.default-input{
margin: 0 auto;
display: block;
width: 240rpx;
height: 40rpx;
padding-left: 50rpx;
line-height: 40rpx;
background: url(http://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/sprites/checkbox-sed825af9d3-a6b8540d42.png) 1rpx -448rpx no-repeat;
background-size: 38rpx 486rpx;
font-size: 28rpx;
}
.default-input.selected{
background: url(http://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/sprites/checkbox-sed825af9d3-a6b8540d42.png) 0 -192rpx no-repeat;
background-size: 38rpx 486rpx;
}
.add-address .btns{
position: fixed;
bottom: 0;
left: 0;
overflow: hidden;
display: flex;
height: 100rpx;
width: 100%;
}
.add-address .cannel,.add-address .save{
flex: 1;
height: 100rpx;
text-align: center;
line-height: 100rpx;
font-size: 28rpx;
color: #fff;
border:none;
border-radius: 0;
}
.add-address .cannel{
background: #3F3F3F;
}
.add-address .save{
background: #a78845;
}
.region-select{
width: 100%;
height: 600rpx;
background: #fff;
position: fixed;
z-index: 10;
left:0;
bottom: 0;
}
.region-select .hd{
height: 108rpx;
width: 100%;
border-bottom: 1px solid #f4f4f4;
padding: 46rpx 30rpx 0 30rpx;
}
.region-select .region-selected{
float: left;
height: 60rpx;
display: flex;
}
.region-select .region-selected .item{
max-width: 140rpx;
margin-right: 30rpx;
text-align: left;
line-height: 60rpx;
height: 100%;
color: #333;
font-size: 28rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.region-select .region-selected .item.disabled{
color: #999;
}
.region-select .region-selected .item.selected{
color: #a78845;
}
.region-select .done{
float: right;
height: 60rpx;
width: 60rpx;
border: none;
background: #fff;
line-height: 60rpx;
text-align: center;
color: #333;
font-size: 28rpx;
}
.region-select .done.disabled{
color: #999;
}
.region-select .bd{
height: 492rpx;
width: 100%;
padding: 0 30rpx;
}
.region-select .region-list{
height: 492rpx;
}
.region-select .region-list .item{
width: 100%;
height: 104rpx;
line-height: 104rpx;
text-align: left;
color: #333;
font-size: 28rpx;
}
.region-select .region-list .item.selected{
color: #b4282d;
}
.bg-mask{
height: 100%;
width: 100%;
background: rgba(0, 0, 0, 0.4);
position: fixed;
top:0;
left:0;
z-index: 8;
}
var util = require('../../../utils/util.js');
var api = require('../../../config/api.js');
var app = getApp();
Page({
data: {
type: 0,
collectList: [],
page: 1,
size: 10,
totalPages: 1
},
onPullDownRefresh() {
wx.showNavigationBarLoading() //在标题栏中显示加载
this.getCollectList();
wx.hideNavigationBarLoading() //完成停止加载
wx.stopPullDownRefresh() //停止下拉刷新
},
getCollectList() {
wx.showLoading({
title: '加载中...',
});
let that = this;
util.request(api.CollectList, {
type: that.data.type,
page: that.data.page,
size: that.data.size
}).then(function(res) {
if (res.errno === 0) {
that.setData({
collectList: res.data.collectList,
totalPages: res.data.totalPages
});
}
wx.hideLoading();
});
},
getAndAddCollectList() {
wx.showLoading({
title: '加载中...',
});
let that = this;
util.request(api.CollectList, {
type: that.data.type,
page: that.data.page,
size: that.data.size
}).then(function(res) {
if (res.errno === 0) {
that.setData({
collectList: that.data.collectList.concat(res.data.collectList),
totalPages: res.data.totalPages
});
}
wx.hideLoading();
});
},
onLoad: function(options) {
this.getCollectList();
},
onReachBottom() {
if (this.data.totalPages > this.data.page) {
this.setData({
page: this.data.page + 1
});
this.getAndAddCollectList();
} else {
wx.showToast({
title: '没有更多用户收藏了',
icon: 'none',
duration: 2000
});
return false;
}
},
onReady: function() {
},
onShow: function() {
},
onHide: function() {
// 页面隐藏
},
onUnload: function() {
// 页面关闭
},
openGoods(event) {
let that = this;
let index = event.currentTarget.dataset.index;
let goodsId = this.data.collectList[index].valueId;
//触摸时间距离页面打开的毫秒数
var touchTime = that.data.touchEnd - that.data.touchStart;
console.log(touchTime);
//如果按下时间大于350为长按
if (touchTime > 350) {
wx.showModal({
title: '',
content: '确定删除吗?',
success: function(res) {
if (res.confirm) {
util.request(api.CollectAddOrDelete, {
type: that.data.type,
valueId: goodsId
}, 'POST').then(function(res) {
if (res.errno === 0) {
console.log(res.data);
wx.showToast({
title: '删除成功',
icon: 'success',
duration: 2000
});
that.data.collectList.splice(index, 1)
that.setData({
collectList: that.data.collectList
});
}
});
}
}
})
} else {
wx.navigateTo({
url: '/pages/goods/goods?id=' + goodsId,
});
}
},
//按下事件开始
touchStart: function(e) {
let that = this;
that.setData({
touchStart: e.timeStamp
})
},
//按下事件结束
touchEnd: function(e) {
let that = this;
that.setData({
touchEnd: e.timeStamp
})
},
})
\ No newline at end of file
{
"navigationBarTitleText": "我的收藏"
}
\ No newline at end of file
<view class="container">
<view class="no-collect" wx:if="{{collectList.length <= 0}}">
<view class="c">
<image src="http://nos.netease.com/mailpub/hxm/yanxuan-wap/p/20150730/style/img/icon-normal/noCart-a8fe3f12e5.png" />
<text>还没有收藏</text>
</view>
</view>
<view class="collect-list" wx:else>
<view class="item" bindtap="openGoods" bindtouchstart="touchStart" bindtouchend="touchEnd" wx:for="{{collectList}}" wx:key="id" data-index="{{index}}">
<image class="img" src="{{item.picUrl}}"></image>
<view class="info">
<view class="name">{{item.name}}</view>
<view class="subtitle">{{item.brief}}</view>
<view class="price">¥{{item.retailPrice}}</view>
</view>
</view>
</view>
</view>
page{
background: #f4f4f4;
min-height: 100%;
}
.container{
background: #f4f4f4;
min-height: 100%;
width: 100%;
height: auto;
overflow: hidden;
}
.no-collect{
width: 100%;
height: auto;
margin: 0 auto;
}
.no-collect .c{
width: 100%;
height: auto;
margin-top: 200rpx;
}
.no-collect .c image{
margin: 0 auto;
display: block;
text-align: center;
width: 258rpx;
height: 258rpx;
}
.no-collect .c text{
margin: 0 auto;
display: block;
width: 258rpx;
height: 29rpx;
line-height: 29rpx;
text-align: center;
font-size: 29rpx;
color: #999;
}
.collect-list{
width: 100%;
height: auto;
overflow: hidden;
background: #fff;
padding-left: 30rpx;
border-top: 1px solid #e1e1e1;
}
.item{
height: 212rpx;
width: 720rpx;
background: #fff;
padding: 30rpx 30rpx 30rpx 0;
border-bottom: 1px solid #e1e1e1;
}
.item:last-child{
border-bottom: 1px solid #fff;
}
.item .img{
float: left;
width: 150rpx;
height: 150rpx;
}
.item .info{
float: right;
width: 540rpx;
height: 150rpx;
display: flex;
flex-direction: column;
justify-content: center;
padding-left: 20rpx;
}
.item .info .name{
font-size: 28rpx;
color: #333;
line-height: 40rpx;
}
.item .info .subtitle{
margin-top: 8rpx;
font-size: 24rpx;
color: #888;
line-height: 40rpx;
}
.item .info .price{
margin-top: 8rpx;
font-size: 28rpx;
color: #333;
line-height: 40rpx;
}
var util = require('../../../utils/util.js');
var api = require('../../../config/api.js');
var app = getApp();
Page({
data: {
},
onLoad: function (options) {
},
onReady: function () {
},
onShow: function () {
},
onHide: function () {
// 页面隐藏
},
onUnload: function () {
// 页面关闭
}
})
\ No newline at end of file
{
"navigationBarTitleText": "优惠券"
}
\ No newline at end of file
<view class="container">
<view class="coupon-form">
<view class="input-box">
<input class="coupon-sn" placeholder="请输入优惠码" />
<image class="clear-icon" src="http://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/icon-normal/clear-fb-dd9d604f86.png"></image>
</view>
<button class="add-btn disabled">兑换</button>
</view>
<view class="help">使用说明</view>
<view class="coupon-list">
<view class="item">
<view class="tag">新人专享</view>
<view class="content">
<view class="left">
<view class="name">限时免单券</view>
<view class="time">2017.06.08-2017.06.11</view>
</view>
<view class="right">
<button class="go">去使用</button>
</view>
</view>
<view class="condition">
<text class="txt">简约陶瓷马克杯专享;小米用户福利;限时购、三石福利价、礼品卡及详情页标注不可用券特殊商品除外</text>
<image src="https://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/icon-normal/couponArrow-71315b4145.png" class="icon"></image>
</view>
</view>
<view class="item">
<view class="tag">新人专享</view>
<view class="content">
<view class="left">
<view class="name">限时免单券</view>
<view class="time">2017.06.08-2017.06.11</view>
</view>
<view class="right">
<button class="go">去使用</button>
</view>
</view>
<view class="condition">
<text class="txt">简约陶瓷马克杯专享;小米用户福利;限时购、三石福利价、礼品卡及详情页标注不可用券特殊商品除外</text>
<image src="https://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/icon-normal/couponArrow-71315b4145.png" class="icon"></image>
</view>
</view>
</view>
</view>
\ No newline at end of file
page{
background: #f4f4f4;
min-height: 100%;
}
.container{
background: #f4f4f4;
min-height: 100%;
padding-top: 30rpx;
}
.coupon-form{
height: 110rpx;
width: 100%;
background: #fff;
padding-left: 30rpx;
padding-right: 30rpx;
padding-top: 20rpx;
display: flex;
}
.input-box{
flex: 1;
height: 70rpx;
color: #333;
font-size: 24rpx;
background: #fff;
position: relative;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4rpx;
margin-right: 30rpx;
}
.input-box .coupon-sn{
position: absolute;
top: 10rpx;
left: 30rpx;
height: 50rpx;
width: 100%;
color: #000;
line-height: 50rpx;
font-size: 24rpx;
}
.clear-icon{
position: absolute;
top: 21rpx;
right: 30rpx;
width: 28rpx;
height: 28rpx;
}
.add-btn{
height: 70rpx;
border:none;
width: 168rpx;
background: #b4282d;
border-radius: 0;
line-height: 70rpx;
color: #fff;
font-size: 28rpx;
}
.add-btn.disabled{
background: #ccc;
}
.help{
height: 72rpx;
line-height: 72rpx;
text-align: right;
padding-right: 30rpx;
background: url(https://yanxuan.nosdn.127.net/hxm/yanxuan-wap/p/20161201/style/img/icon-normal/couponHelp-4768607555.png) 590rpx center no-repeat;
background-size: 28rpx;
color: #999;
font-size: 24rpx;
}
.coupon-list{
width: 100%;
height: auto;
overflow: hidden;
padding-left: 30rpx;
padding-right: 30rpx;
}
.item{
position: relative;
height: 290rpx;
width: 100%;
background: linear-gradient(to right,#cfa568,#e3bf79);
margin-bottom: 30rpx;
padding-top: 52rpx;
}
.tag{
height: 32rpx;
background: #A48143;
padding-left: 16rpx;
padding-right: 16rpx;
position: absolute;
left: 20rpx;
color: #fff;
top: 20rpx;
font-size: 20rpx;
text-align: center;
line-height: 32rpx;
}
.content{
margin-top: 24rpx;
margin-left: 40rpx;
display: flex;
margin-right: 40rpx;
flex-direction: row;
align-items: center;
}
.content .left{
flex: 1;
}
.name{
font-size: 44rpx;
color: #fff;
margin-bottom: 14rpx;
}
.time{
font-size: 24rpx;
color: rgba(255,255,255, 0.8);
line-height: 30rpx;
}
.content .right{
width: 162rpx;
}
.go{
height: 48rpx;
border:none;
width: 162rpx;
background: rgba(255,255,255, 0.8);
border-radius: 4rpx;
line-height: 48rpx;
color: #b69150;
font-size: 24rpx;
}
.condition{
position: absolute;
width: 100%;
bottom: 0;
left:0;
height: 78rpx;
background: rgba(0,0,0,.08);
padding: 24rpx 40rpx;
display: flex;
flex-direction: row;
}
.condition .txt{
display: block;
height: 30rpx;
flex: 1;
overflow: hidden;
font-size: 24rpx;
line-height: 30rpx;
color: #fff;
}
.condition .icon{
margin-left: 30rpx;
width: 24rpx;
height: 24rpx;
}
\ No newline at end of file
var util = require('../../../utils/util.js');
var api = require('../../../config/api.js');
var app = getApp();
Page({
data: {
footprintList: [],
page: 1,
size: 10,
totalPages: 1
},
getFootprintList() {
wx.showLoading({
title: '加载中...',
});
let that = this;
util.request(api.FootprintList, { page: that.data.page, size: that.data.size }).then(function (res) {
if (res.errno === 0) {
let f1 = that.data.footprintList;
let f2 = res.data.footprintList;
for (let i = 0; i < f2.length; i++) {
let last = f1.length - 1;
if (last >= 0 && f1[last][0].addTime === f2[i].addTime) {
f1[last].push(f2[i]);
}
else{
let tmp = [];
tmp.push(f2[i])
f1.push(tmp);
}
}
that.setData({
footprintList: f1,
totalPages: res.data.totalPages
});
}
wx.hideLoading();
});
},
deleteItem (event){
let that = this;
let index = event.currentTarget.dataset.index;
let iindex = event.currentTarget.dataset.iindex;
let goodsId = this.data.footprintList[index][iindex].id;
var touchTime = that.data.touchEnd - that.data.touchStart;
console.log(touchTime);
//如果按下时间大于350为长按
if (touchTime > 350) {
wx.showModal({
title: '',
content: '要删除所选足迹?',
success: function (res) {
if (res.confirm) {
util.request(api.FootprintDelete, { footprintId: goodsId }, 'POST').then(function (res) {
if (res.errno === 0) {
wx.showToast({
title: '删除成功',
icon: 'success',
duration: 2000
});
that.data.footprintList[index].splice(iindex, 1)
if (that.data.footprintList[index].length == 0){
that.data.footprintList.splice(index, 1)
}
that.setData({
footprintList: that.data.footprintList
});
}
});
}
}
});
} else {
wx.navigateTo({
url: '/pages/goods/goods?id=' + goodsId,
});
}
},
onLoad: function (options) {
this.getFootprintList();
},
onReachBottom() {
if (this.data.totalPages > this.data.page) {
this.setData({
page: this.data.page + 1
});
this.getFootprintList();
} else {
wx.showToast({
title: '没有更多用户足迹了',
icon: 'none',
duration: 2000
});
return false;
}
},
onReady: function () {
},
onShow: function () {
},
onHide: function () {
// 页面隐藏
},
onUnload: function () {
// 页面关闭
},
//按下事件开始
touchStart: function (e) {
let that = this;
that.setData({
touchStart: e.timeStamp
})
console.log(e.timeStamp + '- touchStart')
},
//按下事件结束
touchEnd: function (e) {
let that = this;
that.setData({
touchEnd: e.timeStamp
})
console.log(e.timeStamp + '- touchEnd')
},
})
\ No newline at end of file
{
"navigationBarTitleText": "我的足迹"
}
\ No newline at end of file
<view class="container">
<view class="no-footprint" wx:if="{{footprintList.length <= 0}}">
<view class="c">
<image src="http://nos.netease.com/mailpub/hxm/yanxuan-wap/p/20150730/style/img/icon-normal/noCart-a8fe3f12e5.png" />
<text>没有浏览足迹</text>
</view>
</view>
<view class="footprint" wx:if="{{footprintList.length > 0}}">
<view class="day-item" wx:for="{{footprintList}}" wx:key="*this" wx:for-index="index">
<view class="day-hd" wx:if="{{item.length > 0}}">{{item[0].addTime}}</view>
<view class="day-list" wx:if="{{item.length > 0}}">
<view class="item" data-index="{{index}}" data-iindex="{{iindex}}" bindtouchstart="touchStart" bindtouchend="touchEnd" bindtap="deleteItem" wx:for="{{item}}" wx:for-index="iindex" wx:for-item="iitem" wx:key="id">
<image class="img" src="{{iitem.picUrl}}"></image>
<view class="info">
<view class="name">{{iitem.name}}</view>
<view class="subtitle">{{iitem.brief}}</view>
<view class="price">¥{{iitem.retailPrice}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
\ No newline at end of file
page{
background: #f4f4f4;
min-height: 100%;
}
.container{
background: #f4f4f4;
min-height: 100%;
width: 100%;
height: auto;
overflow: hidden;
}
.no-footprint{
width: 100%;
height: auto;
margin: 0 auto;
}
.no-footprint .c{
width: 100%;
height: auto;
margin-top: 200rpx;
}
.no-footprint .c image{
margin: 0 auto;
display: block;
text-align: center;
width: 258rpx;
height: 258rpx;
}
.no-footprint .c text{
margin: 0 auto;
display: block;
width: 258rpx;
height: 29rpx;
line-height: 29rpx;
text-align: center;
font-size: 29rpx;
color: #999;
}
.footprint{
height: auto;
overflow: hidden;
width: 100%;
border-top: 1px solid #e1e1e1;
}
.day-item{
height: auto;
overflow: hidden;
width: 100%;
margin-bottom: 20rpx;
}
.day-hd{
height: 94rpx;
width: 100%;
line-height: 94rpx;
background: #fff;
padding-left: 30rpx;
color: #333;
font-size: 28rpx;
}
.day-list{
width: 100%;
height: auto;
overflow: hidden;
background: #fff;
padding-left: 30rpx;
border-top: 1px solid #e1e1e1;
}
.item{
height: 212rpx;
width: 720rpx;
background: #fff;
padding: 30rpx 30rpx 30rpx 0;
border-bottom: 1px solid #e1e1e1;
}
.item:last-child{
border-bottom: 1px solid #fff;
}
.item .img{
float: left;
width: 150rpx;
height: 150rpx;
}
.item .info{
float: right;
width: 540rpx;
height: 150rpx;
display: flex;
flex-direction: column;
justify-content: center;
padding-left: 20rpx;
}
.item .info .name{
font-size: 28rpx;
color: #333;
line-height: 40rpx;
}
.item .info .subtitle{
margin-top: 8rpx;
font-size: 24rpx;
color: #888;
line-height: 40rpx;
}
.item .info .price{
margin-top: 8rpx;
font-size: 28rpx;
color: #333;
line-height: 40rpx;
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment