圣诞快乐

# v1.3 更新列表
    1. 【新增】砍价
	2. 【新增】拼团
	3. 【新增】一号通
	4. 【修复】商品sku 编辑时出现商品属性对应错误的问题
	5. 【修复】商品推广海报生成二维码可能会出错的问题【小程序调试中】
	6. 【修复】微信公众号和小程序头像可能获取不到的问题
	7. 【修复】下单时可能会出错的问题
	8. 【修复】pc管理端用户访问量
	9. 【修复】微信退款
	10. 【修复】管理端订单状态可能出现不正确的情况
	11. 【修复】WEB管理端-菜单色调,短信API更新,首页用户访问量,系统设置tab是自动选择下一及表单
	12. 【修复】系统设置出现更新不正确的问题
This commit is contained in:
stivepeim
2020-12-23 15:56:45 +08:00
parent f3975936c2
commit 0d32da772d
768 changed files with 40200 additions and 46123 deletions

View File

@@ -104,7 +104,7 @@
this.loadend = false;
this.$set(this, 'rankList', []);
this.getBrokerageRankList();
this.getBrokerageRankNumber(this.type);
this.getBrokerageRankNumber();
},
getBrokerageRankNumber(type) {
brokerageRankNumber({
@@ -125,12 +125,19 @@
}).then(res => {
let list = res.data;
let loadend = list.length < this.limit;
this.rankList.push.apply(this.rankList, list);
this.loading = false;
this.rankList = this.$util.SplitArray(list, this.rankList);
this.$set(that,'rankList',this.rankList);
this.loadend = loadend;
this.loadTitle = loadend ? '😕我也是有底线的' : '加载更多';
this.$set(this, 'rankList', this.rankList);
this.position = res.data.position;
this.loading = false;
this.loadtitle = loadend ? "哼😕~我也是有底线的~" : "加载更多"
// let list = res.data;
// let loadend = list.length < this.limit;
// this.rankList.push.apply(this.rankList, list);
// this.loading = false;
// this.loadend = loadend;
// this.loadTitle = loadend ? '😕我也是有底线的' : '加载更多';
// this.$set(this, 'rankList', this.rankList);
// this.position = res.data.position;
}).catch(err => {
this.loading = false;
this.loadTitle = '加载更多';

View File

@@ -4,7 +4,7 @@
<view class='generalComment acea-row row-between-wrapper'>
<view class='acea-row row-middle font-color'>
<view class='evaluate'>评分</view>
<view class='start' :class="'star'+Math.round((replyData.replyChance)*5)"></view>
<view class='start' :class="'star'+ (replyData.sumCount===0?'3':Math.round(replyData.replyStar/replyData.sumCount))"></view>
</view>
<view><text class='font-color'>{{(replyData.replyChance)*100}}%</text>好评率</view>
</view>
@@ -21,7 +21,7 @@
</view>
<view class='noCommodity' v-if="!replyData.sumCount && page > 1">
<view class='pictrue'>
<image src='/images/noEvaluate.png'></image>
<image src='../static/noEvaluate.png'></image>
</view>
</view>
</view>

View File

@@ -141,7 +141,7 @@
DelPic:function(e){
let index = e, that = this;
that.refund_reason_wap_imgPath.splice(index, 1);
that.$set(that,'refund_reason_wap_imgPath',that.refund_reason_wap_imgPath);
// that.$set(that,'refund_reason_wap_imgPath',that.refund_reason_wap_imgPath);
},
/**
* 上传文件
@@ -150,10 +150,10 @@
uploadpic:function(){
let that=this;
that.$util.uploadImageOne({url:'user/upload/image',name:'multipart', model:"product", pid:1}, function(res){
that.refund_reason_wap_img.push(res.data.url);
that.refund_reason_wap_imgPath.push(res.data.localPath);
that.$set(that,'refund_reason_wap_img',that.refund_reason_wap_img);
that.$set(that,'refund_reason_wap_imgPath',that.refund_reason_wap_imgPath);
// that.refund_reason_wap_img.push(res.data.url);
that.refund_reason_wap_imgPath.push(res.data.url);
// that.$set(that,'refund_reason_wap_img',that.refund_reason_wap_img);
// that.$set(that,'refund_reason_wap_imgPath',that.refund_reason_wap_imgPath);
});
},
@@ -161,14 +161,15 @@
* 申请退货
*/
subRefund:function(e){
console.log(e);
let that = this, value = e.detail.value;
console.log(that.refund_reason_wap_imgPath.join(','));
//收集form表单
// if (!value.refund_reason_wap_explain) return app.Tips({title:'请输入退款原因'});
if (!value.refund_reason_wap_explain) return this.$util.Tips({title:'请输入退款原因'});
orderRefundVerify({
text: that.RefundArray[that.index] || '',
refund_reason_wap_explain: value.refund_reason_wap_explain,
refund_reason_wap_img: that.refund_reason_wap_img.join(','),
refund_reason_wap_img: that.refund_reason_wap_imgPath.join(','),
uni: that.orderId
}).then(res=>{
return this.$util.Tips({ title: '申请成功', icon: 'success' }, { tab: 5, url: '/pages/users/user_return_list/index?isT=1' });

View File

@@ -3,7 +3,7 @@
<div class="shading">
<div class="pictrue acea-row row-center-wrapper">
<image :src="logoUrl" v-if="logoUrl" />
<image src="/static/images/logo2.png" v-else />
<image src="../../../static/images/logo2.png" v-else />
</div>
</div>
<div class="whiteBg" v-if="formItem === 1">
@@ -324,7 +324,7 @@
loginH5({
account: that.account,
password: that.password,
spread: that.$Cache.get("spread")
spread_spid: that.$Cache.get("spread")
})
.then(({
data

View File

@@ -3,7 +3,7 @@
<div class="shading">
<div class="pictrue acea-row row-center-wrapper">
<image :src="logoUrl" v-if="logoUrl" />
<image src="/static/images/logo2.png" v-else />
<image src="../../../static/images/logo2.png" v-else />
</div>
</div>
<div class="whiteBg" v-if="formItem === 1">

View File

@@ -272,7 +272,9 @@
news: true,
again: false,
addAgain: false,
secKill: false //是否是秒杀
bargain: false, //是否是砍价
combination: false, //是否是拼团
secKill: false, //是否是秒杀
};
},
computed: mapGetters(['isLogin']),
@@ -290,7 +292,7 @@
url: 1
});
this.couponId = options.couponId || 0;
this.pinkId = options.pinkid ? parseInt(options.pinkid) : 0;
this.pinkId = options.pinkId ? parseInt(options.pinkId) : 0;
this.addressId = options.addressId || 0;
this.cartId = options.cartId;
this.is_address = options.is_address ? true : false;
@@ -298,6 +300,8 @@
this.again = options.again || false;
this.addAgain = options.addAgain || false;
this.secKill = options.secKill || false;
this.combination = options.combination || false;
this.bargain = options.bargain || false;
if (this.isLogin) {
this.getaddressInfo();
this.getConfirm();
@@ -507,7 +511,7 @@
*/
getConfirm: function() {
let that = this;
orderConfirm(that.cartId,that.news,this.addAgain,this.secKill).then(res => {
orderConfirm(that.cartId,that.news,this.addAgain,this.secKill,this.combination,this.bargain).then(res => {
that.$set(that, 'userInfo', res.data.userInfo);
that.$set(that, 'integral', res.data.userInfo.integral);
that.$set(that, 'cartInfo', res.data.cartInfo);
@@ -524,9 +528,9 @@
that.cartArr[0].payStatus = res.data.payWeixinOpen || 0
that.cartArr[1].payStatus = res.data.yuePayStatus || 0
if (res.data.offlinePayStatus == 2) {
that.cartArr[2].payStatus = 0
} else {
that.cartArr[2].payStatus = 1
} else {
that.cartArr[2].payStatus = 0
}
// that.$set(that, 'cartArr', that.cartArr);
@@ -551,8 +555,8 @@
let BargainId = 0;
let combinationId = 0;
cartINfo.forEach(function(value, index, cartINfo) {
BargainId = cartINfo[index].bargain_id,
combinationId = cartINfo[index].combination_id
BargainId = cartINfo[index].bargainId,
combinationId = cartINfo[index].combinationId
})
that.$set(that, 'BargainId', parseInt(BargainId));
that.$set(that, 'combinationId', parseInt(combinationId));
@@ -623,8 +627,7 @@
that.textareaStatus = false;
that.address.address = true;
that.pagesUrl = '/pages/users/user_address_list/index?cartId=' + this.cartId + '&pinkId=' + this.pinkId +
'&couponId=' +
this.couponId;
'&couponId=' + this.couponId + '&secKill=' + this.secKill + '&combination=' + this.combination + '&bargain=' + this.bargain;
},
realName: function(e) {
this.contacts = e.detail.value;
@@ -640,6 +643,10 @@
orderId = result.orderId,
jsConfig = res.data.jsConfig,
message = res.data.message;
if(that.totalPrice===0)return that.$util.Tips({
title: '支付成功',
icon: 'success'
});
if(that.news == "false"){
orderPay({
'paytype': that.payType,
@@ -648,7 +655,7 @@
'from': 'routine',
// #endif
// #ifdef H5 || APP-PLUS
'from': this.$wechat.isWeixin() ? 'weixin' : 'weixinh5',
'from': this.$wechat.isWeixin() ? 'public' : 'weixinh5',
// #endif
}).then(res=>{
result = res.data.result;

View File

@@ -2,7 +2,7 @@
<div class="register absolute">
<div class="shading">
<div class="pictrue acea-row row-center-wrapper">
<image src="/static/images/logo2.png" />
<image src="../../../static/images/logo2.png" />
</div>
</div>
<div class="whiteBg">

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -95,7 +95,10 @@
page: 1,
limit: 20,
isAuto: false, //没有授权的不会自动授权
isShowAuth: false //是否隐藏授权
isShowAuth: false, //是否隐藏授权
bargain: false, //是否是砍价
combination: false, //是否是拼团
secKill: false, //是否是秒杀
};
},
computed: mapGetters(['isLogin']),
@@ -104,6 +107,9 @@
this.cartId = options.cartId || '';
this.pinkId = options.pinkId || 0;
this.couponId = options.couponId || 0;
this.secKill = options.secKill || false;
this.combination = options.combination || false;
this.bargain = options.bargain || false;
this.getAddressList(true);
} else {
// #ifdef H5 || APP-PLUS
@@ -353,7 +359,7 @@
this.couponId = '';
uni.redirectTo({
url: '/pages/users/order_confirm/index?is_address=1&cartId=' + cartId + '&addressId=' + id + '&pinkId=' +
pinkId + '&couponId=' + couponId
pinkId + '&couponId=' + couponId + '&secKill=' + this.secKill + '&combination=' + this.combination + '&bargain=' + this.bargain
})
}
}

View File

@@ -95,7 +95,7 @@
let that = this;
getUserCoupons({status:0}).then(res => {
that.loading = true;
that.$set(that, 'couponsList', res.data);
that.$set(that, 'couponsList', res.data || []);
})
}
}
@@ -118,9 +118,9 @@
align-items: center;
}
.condition .line-title {
width: 90rpx;
/* width: 90rpx; */
height: 40rpx !important;
line-height: 1.5 !important;
line-height: 40rpx !important;
padding: 0 10rpx;
-webkit-box-sizing: border-box;
box-sizing: border-box;

View File

@@ -20,7 +20,7 @@
</view>
<view class='noCommodity' v-else-if="!collectProductList.length && page > 1">
<view class='pictrue'>
<image src='../../../static/images/noCollection.png'></image>
<image src='../static/noCollection.png'></image>
</view>
<recommend :hostProduct="hostProduct"></recommend>
</view>

View File

@@ -15,7 +15,7 @@
<view>累计消费</view>
</view>
<view class='item'>
<view class='num'>{{userInfo.today_integral||0}}</view>
<view class='num'>{{userInfo.yesterdayIntegral||0}}</view>
<view>今日获得</view>
</view>
</view>

View File

@@ -13,16 +13,24 @@
<navigator url="/pages/users/user_payment/index" hover-class="none" class='recharge font-color'>充值</navigator>
<!-- #endif -->
<!-- #ifdef MP -->
<view @click="openSubscribe('/pages/users/user_payment/index')" class='recharge font-color'>充值</view>
<view v-if="rechargeSwitch" @click="openSubscribe('/pages/users/user_payment/index')" class='recharge font-color'>充值</view>
<!-- #endif -->
</view>
<view class='cumulative acea-row row-top'>
<!-- #ifdef APP-PLUS || H5 -->
<view class='item'>
<view>累计收入()</view>
<view>累计充值()</view>
<view class='money'>{{statistics.recharge || 0}}</view>
</view>
<!-- #endif -->
<!-- #ifdef MP -->
<view class='item' v-if="rechargeSwitch">
<view>累计充值()</view>
<view class='money'>{{statistics.recharge || 0}}</view>
</view>
<!-- #endif -->
<view class='item'>
<view>累计支出()</view>
<view>累计消费()</view>
<view class='money'>{{statistics.orderStatusSum || 0}}</view>
</view>
</view>
@@ -39,9 +47,9 @@
<view class='pictrue'>
<image src='../../../static/images/record2.png'></image>
</view>
<view>支出记录</view>
<view>消费记录</view>
</navigator>
<navigator class='item' hover-class='none' url='/pages/users/user_bill/index?type=2' v-if="recharge_switch">
<navigator class='item' hover-class='none' url='/pages/users/user_bill/index?type=2' v-if="rechargeSwitch">
<view class='pictrue'>
<image src='../../../static/images/record3.png'></image>
</view>
@@ -155,7 +163,7 @@
userInfo: {},
hostProduct: [],
isClose: false,
recharge_switch: 0,
rechargeSwitch: false,
activity: {},
isAuto: false, //没有授权的不会自动授权
isShowAuth: false ,//是否隐藏授权
@@ -220,7 +228,7 @@
let that = this;
getUserInfo().then(res => {
that.$set(that, 'userInfo', res.data);
that.recharge_switch = res.data.recharge_switch;
that.rechargeSwitch = res.data.rechargeSwitch;
});
},
/**

View File

@@ -34,6 +34,7 @@
// #ifdef H5
import uQRCode from '@/js_sdk/Sansnn-uQRCode/uqrcode.js'
// #endif
import { base64src } from '@/utils/base64src.js'
import {
getUserInfo,
spreadBanner
@@ -78,15 +79,16 @@
imagePath: '',
qrcodeSize: 1000,
PromotionCode: '',
base64List: []
base64List: [],
posterbackgd: 'https://image.java.crmeb.net/image/product/2020/08/03/755bf516b1ca4b6db3bfeaa4dd5901cdh71kob20re.jpg'
};
},
computed: mapGetters(['isLogin']),
onLoad() {
if (this.isLogin) {
// #ifdef H5
// // #ifdef H5
this.userSpreadBannerList();
// #endif
// // #endif
} else {
// #ifdef H5 || APP-PLUS
toLogin();
@@ -112,34 +114,69 @@
onReady() {
},
methods: {
userSpreadBannerList: function() {
let that = this;
uni.showLoading({
title: '获取中',
mask: true,
})
spreadBanner({
page: 1,
limit: 5
}).then(res => {
uni.hideLoading();
that.$set(that, 'spreadList', res.data);
that.getImageBase64(res.data);
}).catch(err => {
uni.hideLoading();
});
},
getImageBase64:function(images){
uni.showLoading({
title: '海报生成中',
mask: true
});
let that = this;
// #ifdef H5
let spreadList = [];
images.forEach((item,index)=>{
imageBase64({url:item.pic}).then(res=>{
spreadList[index] = res.data.code;
that.$set(that,'base64List',spreadList);
that.$set(that, 'poster', spreadList[0]);
that.userInfos();
//that.$set(that, 'poster', spreadList[0]);
})
})
// #endif
// #ifdef MP
this.base64List = images.map(item => {
return item.pic
});
// #endif
that.userInfos();
console.log('上',this.base64List)
},
// 小程序二维码
getQrcode(){
let that = this;
let data = {
pid: that.userInfo.uid,
path: '/pages/index/index'
path: 'pages/index/index'
}
let arrImagesUrl = "";
uni.downloadFile({
url: this.base64List[0], //仅为示例,并非真实的资源
success: (res) => {
arrImagesUrl = res.tempFilePath;
}
});
getQrcode(data).then(res=>{
that.PromotionCode = res.data.code;
// let image = '../../../static/images/aa.jpg';
// that.PosterCanvas(image, res.data.code, that.userInfo.nickname,0);
that.PosterCanvas(this.base64List[0], res.data.code, that.userInfo.nickname,0);
base64src(res.data.code, res => {
that.PromotionCode = res;
console.log('第一张',that.PromotionCode)
});
setTimeout(() => {
that.PosterCanvas(arrImagesUrl, that.PromotionCode, that.userInfo.nickname, 0);
}, 200);
})
},
// 生成二维码;
@@ -153,8 +190,6 @@
margin: 10,
success: res => {
that.PromotionCode = res;
// let image = '../../../static/images/aa.jpg';
// that.PosterCanvas(image, that.PromotionCode, that.userInfo.nickname,0);
that.PosterCanvas(this.base64List[0], that.PromotionCode, that.userInfo.nickname,0);
},
complete: () => {},
@@ -171,7 +206,7 @@
let that = this;
uni.getImageInfo({
src: arrImages,
success: function(image) {
success: function(res) {
context.drawImage(arrImages, 0, 0, 750, 1190);
context.save();
context.drawImage(code, 110, 925, 140, 140);
@@ -179,22 +214,43 @@
context.setFontSize(28);
context.fillText(nickname, 270, 980);
context.fillText('邀请您加入', 270, 1020);
context.draw(true,function(){
uni.canvasToTempFilePath({
destWidth: 750,
destHeight: 1190,
canvasId: 'canvasOne',
fileType: 'jpg',
success: function(res) {
// 在H5平台下tempFilePath 为 base64
uni.hideLoading();
that.imagePath = res.tempFilePath;
that.spreadList[index].pic = res.tempFilePath;
}
})
})
setTimeout(() => {
context.draw(true,function(){
uni.canvasToTempFilePath({
destWidth: 750,
destHeight: 1190,
canvasId: 'canvasOne',
fileType: 'jpg',
success: function(res) {
console.log("成功",res)
// 在H5平台下tempFilePath 为 base64
uni.hideLoading();
that.imagePath = res.tempFilePath;
that.spreadList[index].pic = res.tempFilePath;
that.poster = res.tempFilePath;
console.log("spreadList = ", that.spreadList[index].pic)
}
})
})
}, 100);
// context.draw(true,function(){
// uni.canvasToTempFilePath({
// destWidth: 750,
// destHeight: 1190,
// canvasId: 'canvasOne',
// fileType: 'jpg',
// success: function(res) {
// console.log("成功",res)
// // 在H5平台下tempFilePath 为 base64
// uni.hideLoading();
// that.imagePath = res.tempFilePath;
// that.spreadList[index].pic = res.tempFilePath;
// }
// })
// })
},
fail: function(err) {
console.log("失败",err)
uni.hideLoading();
that.$util.Tips({
title: '无法获取图片信息'
@@ -216,10 +272,19 @@
let base64List = this.base64List;
let index = e.detail.current;
this.swiperIndex = index;
this.$set(this, 'poster', base64List[index]);
this.PosterCanvas(base64List[index], this.PromotionCode, this.userInfo.nickname,index);
// let aa = ['../../../static/images/aa.jpg','../../../static/images/aa.jpg','../../../static/images/aa.jpg'];
// this.PosterCanvas(aa[index], this.PromotionCode, this.userInfo.nickname,index);
let arrImagesUrl = "";
uni.downloadFile({
url: base64List[index], //仅为示例,并非真实的资源
success: (res) => {
console.log('移动',res)
arrImagesUrl = res.tempFilePath;
console.log('移动图片',arrImagesUrl)
console.log('移动二维码',this.PromotionCode)
setTimeout(() => {
this.PosterCanvas(arrImagesUrl, this.PromotionCode, this.userInfo.nickname, index);
}, 200);
}
});
},
// 点击保存海报
savePosterPath: function() {
@@ -326,23 +391,6 @@
};
this.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"], configAppMessage)
}
},
userSpreadBannerList: function() {
let that = this;
uni.showLoading({
title: '获取中',
mask: true,
})
spreadBanner({
page: 1,
limit: 5
}).then(res => {
uni.hideLoading();
that.$set(that, 'spreadList', res.data);
that.getImageBase64(res.data);
}).catch(err => {
uni.hideLoading();
});
}
}
}
@@ -352,7 +400,7 @@
page {
background-color: #a3a3a3 !important;
}
.canvas canvas{
.canvas{
position: fixed;
z-index: -5rpx;
opacity: 0;

View File

@@ -214,12 +214,14 @@
page: page,
limit: limit
}, recordType).then(res => {
let len = res.data.list.length;
let recordListData = res.data.list;
recordListNew = recordList.concat(recordListData);
that.status = limit > len;
that.page = page + 1;
that.$set(that, 'recordList', recordListNew);
if(res.data.list){
let len = res.data.list.length;
let recordListData = res.data.list;
recordListNew = recordList.concat(recordListData);
that.status = limit > len;
that.page = page + 1;
that.$set(that, 'recordList', recordListNew);
}
});
},
getRecordListCount: function() {

View File

@@ -291,7 +291,7 @@
border-radius: 23rpx;
padding: 22rpx 27rpx;
box-sizing: border-box;
.title {
font-size: 24rpx;
color: #AE8B4A;
@@ -305,7 +305,7 @@
.axis {
margin: 10rpx 0 15rpx 0;
overflow: hidden;
.bar {
width: 630rpx;
.spotw{

View File

@@ -50,7 +50,7 @@
<recommend :hostProduct="hostProduct"></recommend>
<view class='growthValue' :class='growthValue==false?"on":""'>
<view class='pictrue'>
<image src='../../../static/images/value.jpg'></image><text class='iconfont icon-guanbi3' @click='growthValue'></text>
<image src='../../columnGoods/static/value.jpg'></image><text class='iconfont icon-guanbi3' @click='growthValue'></text>
</view>
<view class='conter'>{{illustrate}}</view>
</view>