d1e9e01c by simon

版本提交

1 parent 662f9a7c
......@@ -7,7 +7,9 @@
</view>
<view class="name">{{item.commodityTitle}}</view>
<button class="btn" bindtap="onInnerButtonHandler">{{innerButton}}</button>
<view wx:if="{{item.commodityType == 'packet'}}" class="tips">您可以在“个人中心→我的订单”中查看物流进度</view>
<view wx:else class="tips">后台审核通过后,红包将会通过公众号消息或微信服务消息发送,届时请及时领取!</view>
<view wx:if="{{item.commodityType == 'packet'}}" class="tips">
后台审核通过后,红包将会通过公众号消息或微信服务消息发送,届时请及时领取!
</view>
<view wx:else class="tips">您可以在“个人中心→我的订单”中查看物流进度</view>
</view>
</view>
......
......@@ -33,7 +33,7 @@ module.exports = {
scanPersonQrcode: '/scan/person/qrcode', // post 扫个人二维码
signInfo: '/sign/info', // post 签到信息 用户注册接口
sign: '/sign', // post 签到动作 用户注册接口
sginRecord: '/sgin/record', // post 签到记录 用户注册接口
signRecord: '/sign/record', // post 签到记录 用户注册接口
areaQuery: 'https://api.k.wxpai.cn/bizproxy/kdapi/area', // post 区域查询
......
......@@ -118,7 +118,7 @@ Page({
} = this.data;
wx.showModal({
title: '兑换确认',
content: `将花费${item.commodityPrice}兑换${commodityTitle}一份`,
content: `将花费${item.commodityPrice}兑换${item.commodityTitle}一份`,
success(res) {
if (res.confirm) {
app.post({
......@@ -126,7 +126,7 @@ Page({
data: {
commodityCode: item.commodityCode,
receiverCode: defaultReceiver.receiverCode,
remark: this.data.remark
remark: _this.data.remark
}
}).then((result) => {
_this.initData().then((result) => {
......@@ -134,8 +134,6 @@ Page({
orderSubmitSuccessCompVisible: true
})
})
})
}
}
......
import {
getBindtapData
} from '../../utils/util';
let Date = require('../../utils/date.js');
let app = getApp();
Page({
data: {
authorizeVisible: false,
userInfo: {},
dateStart: "",
dateEnd: "",
dateStr: "",
total: 0,
page: 1,
size: 10,
status: "",
dataList: [],
navIndex: 0,
navList: [{
t1: "全部",
t2: "",
index: 0,
index: "0",
},
{
t1: "300",
t2: "购买积分",
index: 1,
index: "1",
},
{
t1: "200",
t2: "推广积分",
index: 2,
index: "2",
},
{
t1: "50",
t2: "签到积分",
index: 3,
index: "3",
},
{
t1: "300",
t2: "奖励积分",
index: 4,
index: "4",
},
{
t1: "300",
t2: "兑换积分",
index: 5,
index: "5",
},
],
},
......@@ -41,5 +55,157 @@ Page({
authorizeVisible: true
})
},
onLoad(options) {}
onLoad(options) {
let dateStart = new Date().last().week().toString("yyyy-MM-dd");
let dateEnd = Date.today().toString("yyyy-MM-dd");
let dateStr = Date.today().toString("yyyy-MM");
this.setData({
dateStart,
dateEnd,
dateStr
})
this.refreshStatus();
this.initData();
},
initData() {
this.queryMember().then((result) => {});
},
// 到达底部
onReachBottom() {
if (this.data.dataList.length < this.data.total) {
this.setData({
page: this.data.page + 1
});
this.queryOrder();
}
},
// 重置页面列表 点击搜索条件时需要
resetPage() {
this.setData({
page: 1,
dataList: []
})
},
/**
* 获取会员信息
*/
queryMember() {
return new Promise((resolve, reject) => {
app.post({
url: app.api.member,
data: {}
}).then((result) => {
this.setData({
userInfo: result
})
resolve();
})
});
},
/**
* 积分概览
*/
queryPointsOverview() {
return new Promise((resolve, reject) => {
let year = this.data.dateStr.slice(0, 4);
let month = this.data.dateStr.slice(5, 7);
app.post({
url: app.api.pointsOverview,
data: {
page: this.data.page,
size: this.data.size,
pointsType: this.data.status,
year: year,
month: month,
}
}).then((result) => {
console.log("result:", result);
let dataList = result.list;
dataList = this.data.dataList.concat(dataList);
dataList.forEach(element => {
element.time = new Date(element.createTime).toString("yyyy.MM.dd")
});
this.setData({
dataList: dataList,
total: result.total
})
resolve();
})
});
},
bindDateChange(e) {
this.setData({
dateStr: e.detail.value
})
this.resetPage();
this.refreshStatus();
},
/**
* 选择导航
* @param {*} evt
*/
onNavSelectHandler(evt) {
let navIndex = this.data.navIndex;
let curIndex = getBindtapData(evt, "index");
if (navIndex != curIndex) {
this.setData({
navIndex: curIndex
})
this.refreshStatus();
}
},
/**
* 刷新状态重新请求
*/
refreshStatus() {
let status = "";
let navIndex = this.data.navIndex + "";
switch (navIndex) {
// 全部
case "0":
status = "";
break;
// 购买积分
case "1":
status = "buy";
break;
// 推广积分
case "2":
status = "promotion";
break;
// 签到积分
case "3":
status = "sign";
break;
// 奖励积分
case "4":
status = "award";
break;
// 兑换积分
case "5":
status = "exchange";
break;
default:
break;
}
this.setData({
status: status
})
this.resetPage();
this.queryPointsOverview();
}
})
......
......@@ -26,7 +26,7 @@ $contentWidth:690px;
width: $contentWidth;
margin: 0 auto;
.func {
.header {
display: flex;
justify-content: space-between;
align-items: flex-end;
......@@ -55,6 +55,55 @@ $contentWidth:690px;
height: 32px;
margin: 8px;
}
.d1{
margin-left: 8px;
}
}
}
.func-wrap {
display: flex;
justify-content: space-between;
// padding: 4px 0;
}
.func {
@extend .fcc;
height: 80px;
// border-bottom: solid 1px #DDDDDD;
font-size: 26px;
color: #3680EB;
.icon {
width: 32px;
height: 32px;
margin: 0 8px;
}
.arrow {
width: 12px;
height: 8px;
margin: 0 8px;
}
}
// 时间
.time {
.sel {
font-size: 28px;
color: #3680EB;
padding: 4px 16px;
@extend .fcc;
background-color: rgba($color: #3680EB, $alpha: 0.05);
border-radius: 4px;
margin-bottom: 12px;
.icon {
width: 32px;
height: 32px;
margin: 8px;
}
}
}
......
......@@ -4,20 +4,49 @@
<view class="app__content main">
<view class="top-space"></view>
<view class="content">
<view class="func">
<view class="header">
<view class="info">
现有积分
<span class="t1">360</span>
<span class="t1">{{userInfo.memberPoints}}</span>
</view>
<picker mode="date" fields="month" value="{{date}}" bindchange="bindDateChange">
<view class="sel">
<image class="icon" mode="aspectFit" src="../../image/icon/icon-calendar.png" />
时间筛选
<span class="d1">{{dateStr}}</span>
</view>
</picker>
</view>
<!-- 时间 -->
<!-- <view class="time">
<view class="sel">
<image class="icon" mode="aspectFit" src="../../image/icon/icon-calendar.png" />
起始时间
</view>
</view> -->
<!-- 时间选择器 -->
<!-- <view class="func-wrap">
<picker mode="date" value="{{dateStart}}" bindchange="bindDateStartChange">
<view class="func">
<image class="icon" mode="aspectFit" src="../../image/icon/icon-sign-record.png" />
起始时间
<image class="arrow" mode="aspectFit" src="../../image/icon/icon-filter-down-on.png" />
{{dateStart}}
</view>
</picker>
<picker mode="date" value="{{dateEnd}}" bindchange="bindDateEndChange">
<view class="func">
<image class="icon" mode="aspectFit" src="../../image/icon/icon-sign-record.png" />
结束时间
<image class="arrow" mode="aspectFit" src="../../image/icon/icon-filter-down-on.png" />
{{dateEnd}}
</view>
</picker>
</view> -->
<!-- 标签 -->
<view class="tag">
<view data-index="{{index}}" wx:for="{{navList}}" wx:key="{{index}}" class="tag-item">
<view bindtap="onNavSelectHandler" data-data="{{item}}" data-index="{{index}}" wx:for="{{navList}}" wx:key="{{index}}" class="tag-item">
<image wx:if="{{navIndex==index}}" class="ebg" mode="aspectFit" src="../../image/icon/icon-integral-tag.png" />
<view class="desc {{navIndex == index ? 'act' : ''}}">
<view class="t1">{{item.t1}}</view>
......@@ -29,19 +58,22 @@
<view class="tit">
<view class="tt t1">时间</view>
<view class="tt t2">获取方式</view>
<view class="tt t3">积分</view>
<view class="tt t3">名称</view>
<view class="tt t4 minus">积分</view>
</view>
<!-- 积分 -->
<view class="integral">
<view class="integral-item">
<view class="tt t1">2019.03.13</view>
<view class="tt t2">扫码获取</view>
<view wx:for="{{dataList}}" wx:key="{{item}}" class="integral-item">
<view class="tt t1">{{item.time}}</view>
<view class="tt t2">{{item.subTitle}}</view>
<view class="tt t3">产品名称</view>
<view class="tt t4 minus">+1000</view>
<view class="tt t4 {{item.pointsIp == 0 ? 'minus':''}}">
{{item.pointsIp == 1 ? '+':'-'}} {{item.pointsNum}}
</view>
</view>
</view>
</view>
<empty-tips wx:if="{{dataList.length <= 0}}"></empty-tips>
</view>
</view>
<van-popup show="{{ authorizeVisible }}">
......
......@@ -11,6 +11,7 @@ Page({
page: 1,
size: 10,
dataList: [],
orderStatus: ""
},
onShareAppMessage() {},
showAuth() {
......@@ -27,11 +28,12 @@ Page({
navIndex: navIndex
})
}
this.initData();
this.refreshOrderStatus();
// this.initData();
},
initData() {
this.queryOrder();
// this.queryOrder();
},
// 到达底部
......@@ -44,6 +46,14 @@ Page({
}
},
// 重置页面列表 点击搜索条件时需要
resetPage() {
this.setData({
page: 1,
dataList: []
})
},
/**
* 订单状态
*/
......@@ -54,7 +64,7 @@ Page({
data: {
page: this.data.page,
size: this.data.size,
orderStatus: ""
orderStatus: this.data.orderStatus
}
}).then((result) => {
let dataList = result.list;
......@@ -75,12 +85,53 @@ Page({
onNavSelectHandler(evt) {
let navIndex = this.data.navIndex;
let curIndex = getBindtapData(evt, "index");
console.log("curIndex:", curIndex);
if (navIndex != curIndex) {
this.setData({
navIndex: curIndex
})
this.refreshOrderStatus();
}
},
/**
* 更新状态
*/
refreshOrderStatus() {
let orderStatus = "";
let navIndex = this.data.navIndex;
switch (navIndex) {
// 全部
case "0":
orderStatus = "";
break;
// 待审核
case "1":
orderStatus = "unaudited";
break;
// 已通过
case "2":
orderStatus = "pass";
break;
// 已发货
case "3":
orderStatus = "deliver";
break;
// 未通过
case "4":
orderStatus = "audit_faild";
break;
default:
break;
}
this.setData({
orderStatus: orderStatus
})
this.resetPage();
this.queryOrder();
}
})
......
......@@ -28,7 +28,71 @@
</view>
</view>
<!-- 卡片 -->
<view class="card">
<view wx:for="{{dataList}}" wx:key="{{index}}" class="border card-item">
<view class="no">订单编号:{{item.orderCode}}</view>
<view class="line"></view>
<view class="cont">
<view class="prize">
<image class="image" mode="aspectFit" />
</view>
<view class="detail">
<view class="t1">{{item.orderCommodityTitle}}</view>
<view class="t1 t2">{{item.orderCommodityPoints}}</view>
<view class="t1 t3">
<span wx:if="{{item.orderStatus == 'unaudited'}}">待审核</span>
<span wx:if="{{item.orderStatus == 'pass'}}">已通过</span>
<span wx:if="{{item.orderStatus == 'deliver'}}">已发货</span>
<span wx:if="{{item.orderStatus == 'audit_faild'}}">未通过</span>
</view>
</view>
</view>
<view class="line"></view>
<view class="logistics">
<view class="logistics-item">
<view class="label">收货地址</view>
<view class="val">{{item.orderAddress}}</view>
</view>
<view class="logistics-item">
<view class="label">物流公司</view>
<view class="val">{{item.logisticsCompany}}</view>
</view>
<view class="logistics-item">
<view class="label">物流单号</view>
<view class="val">{{item.logisticsOdd}}</view>
</view>
</view>
</view>
<!-- <view class="border card-item">
<view class="no">订单编号:2357123413491</view>
<view class="line"></view>
<view class="cont">
<view class="prize">
<image class="image" mode="aspectFit" />
</view>
<view class="detail">
<view class="t1">某东购物卡200元</view>
<view class="t1 t2">消耗积分:1000分</view>
<view class="t1 t3">处理中</view>
</view>
</view>
<view class="line"></view>
<view class="logistics">
<view class="logistics-item">
<view class="label">收货地址</view>
<view class="val">深圳市龙岗区XXX路</view>
</view>
<view class="logistics-item">
<view class="label">物流公司</view>
<view class="val">待定</view>
</view>
<view class="logistics-item">
<view class="label">物流单号</view>
<view class="val">暂定</view>
</view>
</view>
</view> -->
</view>
</view>
<empty-tips wx:if="{{dataList.length <= 0}}"></empty-tips>
</view>
......
import QR from '../../utils/qrcode'
let app = getApp();
Page({
data: {
authorizeVisible: false,
userInfo: {},
qrImagePath: "",
},
onShareAppMessage() {},
showAuth() {
......@@ -9,5 +13,73 @@ Page({
authorizeVisible: true
})
},
onLoad(options) {}
onLoad(options) {
this.initData();
},
initData() {
this.queryMember().then((result) => {
});
},
/**
* 获取会员信息
*/
queryMember() {
return new Promise((resolve, reject) => {
app.post({
url: app.api.member,
data: {}
}).then((result) => {
this.setData({
userInfo: result
})
// 设置二维码
let qrSize = this.setCanvasSize(440);
let codeContent = "xxx";
this.createQrCode(codeContent, 'qrcanvas', qrSize.w, qrSize.h);
resolve();
})
});
},
createQrCode(content, canvasId, cavW, cavH) {
//调用插件中的draw方法,绘制二维码图片
QR.api.draw(content, canvasId, cavW, cavH);
this.canvasToTempImage(canvasId);
},
//获取临时缓存图片路径,存入data中
canvasToTempImage(canvasId) {
let that = this;
wx.canvasToTempFilePath({
canvasId, // 这里canvasId即之前创建的canvas-id
success: function (res) {
let tempFilePath = res.tempFilePath;
console.log(tempFilePath);
that.setData({ // 如果采用mpvue,即 this.imagePath = tempFilePath
qrImagePath: tempFilePath,
});
},
fail: function (res) {
console.log(res);
}
});
},
//适配不同屏幕大小的canvas
setCanvasSize(sz) {
var size = {};
try {
var res = wx.getSystemInfoSync();
var scale = 750 / sz; //不同屏幕下canvas的适配比例;设计稿是750宽
var width = res.windowWidth / scale;
var height = width; //canvas画布为正方形
size.w = width;
size.h = height;
} catch (e) {
// Do something when catch error
console.log("获取设备信息失败" + e);
}
return size;
},
})
......
......@@ -45,7 +45,7 @@ $contentWidth:690px;
}
.qrcode {
margin-top: 40px;
margin-top: 24px;
width: 440px;
height: 440px;
}
......
......@@ -5,9 +5,11 @@
<view class="top-space"></view>
<view class="content">
<view class="card">
<image class="avatar" mode="widthFix" src="../../image/icon/icon-default-avatar.png" />
<view class="nickname">昵称填充</view>
<image class="qrcode" mode="widthFix" src="../../image/icon/icon-default-qrcode.png" />
<image class="avatar" mode="widthFix" src="{{userInfo.avatar}}" />
<view class="nickname">{{userInfo.nickname}}</view>
<!-- <image class="qrcode" mode="widthFix" src="../../image/icon/icon-default-qrcode.png" /> -->
<image wx:if="{{qrImagePath}}" class="qrcode" mode="widthFix" src="{{qrImagePath}}" />
<canvas wx:else class="qrcode" canvas-id="qrcanvas" />
<view class="t1">深士照明</view>
<view class="t1 t2">扫码即获专属积分,兑换超值奖品</view>
</view>
......
let Date = require('../../utils/date.js');
let app = getApp();
Page({
data: {
authorizeVisible: false,
dateStart: "",
dateEnd: "",
total: 0,
page: 1,
size: 10,
dataList: [],
},
onShareAppMessage() {},
showAuth() {
......@@ -9,5 +17,73 @@ Page({
authorizeVisible: true
})
},
onLoad(options) {}
onLoad(options) {
let dateStart = new Date().last().week().toString("yyyy-MM-dd");
let dateEnd = Date.today().toString("yyyy-MM-dd");
this.setData({
dateStart,
dateEnd
})
this.initData();
},
initData() {
this.querySginRecord();
},
// 到达底部
onReachBottom() {
if (this.data.dataList.length < this.data.total) {
this.setData({
page: this.data.page + 1
});
this.queryAnnouncementList();
}
},
// 重置页面列表 点击搜索条件时需要
resetPage() {
this.setData({
page: 1,
dataList: []
})
},
/**
* 请求签到记录
*/
querySginRecord() {
return new Promise((resolve, reject) => {
app.post({
url: app.api.signRecord,
data: {
start: this.data.dateStart,
end: this.data.dateEnd,
page: this.data.page,
size: this.data.size,
}
}).then((result) => {
let dataList = result.list;
dataList = this.data.dataList.concat(dataList);
this.setData({
dataList: dataList,
total: result.total
})
resolve();
})
});
},
// 起始时间
bindDateStartChange(e) {
this.setData({
dateStart: e.detail.value
})
this.resetPage();
this.querySginRecord();
},
// 结束时间
bindDateEndChange(e) {
this.setData({
dateEnd: e.detail.value
})
this.resetPage();
this.querySginRecord();
},
})
......
......@@ -13,7 +13,7 @@ $contentWidth:690px;
color: #333333;
.top-space {
height: 0px;
height: 20px;
}
.content {
......@@ -21,10 +21,12 @@ $contentWidth:690px;
width: 690px;
margin: 0 auto;
.func-wrap{
}
.func {
@extend .fcc;
height: 80px;
border-bottom: solid 1px #DDDDDD;
// border-bottom: solid 1px #DDDDDD;
font-size: 32px;
color: #3680EB;
......
......@@ -5,22 +5,36 @@
<view class="app__content main">
<view class="top-space"></view>
<view class="content">
<view class="func-wrap">
<picker mode="date" value="{{dateStart}}" bindchange="bindDateStartChange">
<view class="func">
<image class="icon" mode="aspectFit" src="../../image/icon/icon-sign-record.png" />
时间筛选
起始时间
<image class="arrow" mode="aspectFit" src="../../image/icon/icon-filter-down-on.png" />
{{dateStart}}
</view>
</picker>
<picker mode="date" value="{{dateEnd}}" bindchange="bindDateEndChange">
<view class="func">
<image class="icon" mode="aspectFit" src="../../image/icon/icon-sign-record.png" />
结束时间
<image class="arrow" mode="aspectFit" src="../../image/icon/icon-filter-down-on.png" />
{{dateEnd}}
</view>
</picker>
</view>
<view class="sign">
<view class="sign-item">
<view class="date">2019.03.13</view>
<view wx:for="{{dataList}}" wx:key="{{index}}" class="sign-item">
<view class="date">{{item.signTime}}</view>
<view class="desc">
签到成功,获得
<span class="green red">1</span>
红包
<span class="green {{item.prizeType == 'packet' ? 'red':''}}">{{item.prizeSize}}</span>
{{item.prizeType == 'packet' ? '元红包' : '积分' }}
</view>
</view>
</view>
</view>
<empty-tips wx:if="{{dataList.length <= 0}}"></empty-tips>
</view>
</view>
<van-popup show="{{ authorizeVisible }}">
......