修复内容

1. 会员等级背景图去掉校验
	2. 当查询不到会员等级是,按无会员等级展示
	3. 删除商城首页冗余配置在index中的引用
	4. 换绑推广人时,计算上一个推广人的推广人数
	5. pc后台清除推广人时,更新推广人数量
	6. 保证砍价金额最小为0.01
	7. 修复商品删除时购物车关联删除
	8. 删除商品问题修复
	9. 运费模板——指定包邮,包邮数量类型修改
	10. 签到错误修复
	11. 修复我的优惠券只查询20条的问题
	12. 文章列表修复
	13. 拼团商品详情页数据统计显示问题修复
	14. PC后台,账户详情,持有优惠券列表修复
	15. 支付查询参数修复
	16. 修复过期优惠券可以重复领取
	17. 订单邮费切换地址重复计算修复
	18. 判断是否在指定包邮区域内 必须满足件数 + 金额 才能包邮
	19. 支付页面,切换tab,金额计算问题修复
	20. 物流模板新增、编辑——修复
	21. 去除线下邮费的影响
	22. 订单运费计算重写
	23. 下单页面到店自提合计金额不应该计算商品邮费
	24. 新人券领取后,部分使用时间为空——修复
This commit is contained in:
stivepeim
2021-03-19 18:26:43 +08:00
parent e289857849
commit f44c0ade12
292 changed files with 5985 additions and 41476 deletions

View File

@@ -1,7 +1,9 @@
<template>
<view>
<view class='bargain-list'>
<!-- #ifndef APP-PLUS -->
<view class='iconfont icon-xiangzuo' @tap='goBack' :style="'top:'+ (navH/2) +'rpx'" v-if="returnShow"></view>
<!-- #endif -->
<view class='header'></view>
<view class='list'>
<block v-for="(item,index) in bargainList" :key="index">
@@ -23,7 +25,7 @@
</view>
</view>
<!-- #ifdef MP -->
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
<!-- #endif -->
<home></home>
</view>
@@ -72,6 +74,17 @@
};
},
computed: mapGetters(['isLogin']),
watch:{
isLogin:{
handler:function(newV,oldV){
if(newV){
this.getUserInfo();
this.getBargainList();
}
},
deep:true
}
},
onLoad: function(options) {
var pages = getCurrentPages();
this.returnShow = pages.length===1?false:true;
@@ -83,13 +96,7 @@
this.getUserInfo();
this.getBargainList();
} else {
// #ifdef H5 || APP-PLUS
toLogin();
// #endif
// #ifdef MP
this.isAuto = true;
this.$set(this, 'isShowAuth', true);
// #endif
}
},
methods: {

View File

@@ -2,7 +2,10 @@
<view>
<view :style="'height:'+systemH+'px'"></view>
<view class='bargain'>
<!-- #ifndef APP-PLUS -->
<view class='iconfont icon-xiangzuo' v-if='retunTop' @tap='goBack' :style="'top:'+navH+'px'"></view>
<!-- #endif -->
<view class="header" :class="bargainUid != userInfo.uid ? 'on' : ''">
<view class='people' >
<!-- :style="'top:'+navH/2+'rpx'" -->
@@ -202,12 +205,26 @@
</view>
<view class='mask' catchtouchmove="true" v-show='active==true' @tap='close'></view>
</view>
<!-- 分享按钮 -->
<view class="generate-posters acea-row row-middle" :class="posters ? 'on' : ''">
<!-- #ifdef APP-PLUS -->
<view class="item" @click="appShare('WXSceneSession')">
<view class="iconfont icon-weixin3"></view>
<view class="">微信好友</view>
</view>
<view class="item" @click="appShare('WXSenceTimeline')">
<view class="iconfont icon-pengyouquan"></view>
<view class="">微信朋友圈</view>
</view>
<!-- #endif -->
</view>
<!-- 发送给朋友图片 -->
<view class="share-box" v-if="H5ShareBox">
<image src="/static/images/share-info.png" @click="H5ShareBox = false"></image>
</view>
<!-- #ifdef MP -->
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
<!-- #endif -->
<home></home>
</view>
@@ -243,6 +260,12 @@
import home from '@/components/home';
import parser from "@/components/jyf-parser/jyf-parser";
import { silenceBindingSpread } from "@/utils";
// #ifdef APP-PLUS
import {
TOKENNAME,
HTTP_REQUEST_URL
} from '@/config/app.js';
// #endif
const app = getApp();
export default {
@@ -307,6 +330,17 @@
},
computed: mapGetters(['isLogin']),
watch: {
isLogin: {
handler: function(newV, oldV) {
if (newV) {
this.getBargainDetails();
this.addShareBargain();
}
},
deep: true
}
},
/**
* 生命周期函数--监听页面加载
*/
@@ -357,13 +391,7 @@
// '&spid=' + e.detail.uid;
// this.$set(that, 'bargainPartake', e.detail.uid);
} else {
// #ifdef H5 || APP-PLUS
toLogin();
// #endif
// #ifdef MP
this.isAuto = true;
this.$set(this, 'isShowAuth', true)
// #endif
}
@@ -373,6 +401,39 @@
})
},
methods: {
// app分享
// #ifdef APP-PLUS
appShare(scene) {
let that = this
console.log(HTTP_REQUEST_URL)
let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
let curRoute = routes[routes.length - 1].$page.fullPath // 获取当前页面路由,也就是最后一个打开的页面路由
uni.share({
provider: "weixin",
scene: scene,
type: 0,
href: `${HTTP_REQUEST_URL}${curRoute}`,
title: that.bargainInfo.title,
imageUrl: that.bargainInfo.image,
success: function(res) {
uni.showToast({
title: '分享成功',
icon: 'success'
})
that.posters = false;
},
fail: function(err) {
uni.showToast({
title: '分享失败',
icon: 'none',
duration: 2000
})
that.posters = false;
}
});
},
// #endif
openTap() {
this.$set(this,'couponsHidden',!this.couponsHidden);
},
@@ -485,6 +546,7 @@
},
currentBargainUser: function() { //当前用户砍价
this.$set(this, 'bargainUid', this.userInfo.uid);
this.page = 1;
this.setBargain();
},
setBargain: function() { //参与砍价
@@ -557,14 +619,6 @@
that.$set(that, 'bargainUserHelpList', bargainUserHelpList);
that.$set(that, 'limitStatus', datas.limit > len);
that.$set(that, 'page', that.page + 1);
// var bargainUserHelpListNew = [];
// var bargainUserHelpList = that.bargainUserHelpList;
// var len = res.data.list.length;
// bargainUserHelpListNew = bargainUserHelpList.concat(res.data.list);
// that.$set(that, 'bargainUserHelpList', res.data.list);
// that.$set(that, 'limitStatus', datas.limit > len);
// that.$set(that, 'page', (Number(datas.page) + Number(datas.limit)));
});
},
getBargainUserBargainPricePoster: function() {
@@ -641,7 +695,6 @@
configTimeline
)
.then(res => {
console.log(res);
})
.catch(res => {
if (res.is_ready) {
@@ -718,6 +771,38 @@
page {
background-color: #e93323 !important;
}
.generate-posters {
width: 100%;
height: 170rpx;
background-color: #fff;
position: fixed;
left: 0;
bottom: 0;
z-index: 300;
transform: translate3d(0, 100%, 0);
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
border-top: 1rpx solid #eee;
}
.generate-posters.on {
transform: translate3d(0, 0, 0);
}
.generate-posters .item {
flex: 1;
text-align: center;
font-size: 30rpx;
}
.generate-posters .item .iconfont {
font-size: 80rpx;
color: #5eae72;
}
.generate-posters .item .iconfont.icon-haibao {
color: #5391f1;
}
.bargain .bargainGang .open {
font-size: 24rpx;
color: #999;
@@ -797,7 +882,7 @@
font-size: 20rpx;
position: absolute;
width: 85%;
/* #ifdef MP */
/* #ifdef MP || APP-PLUS */
height: 44px;
line-height: 44px;
/* #endif */

View File

File diff suppressed because one or more lines are too long

View File

@@ -39,22 +39,24 @@
</div>
<!-- #ifdef H5 -->
<div v-if="userBool === 1 && isOk == 0 && pinkBool === 0">
<div class="teamBnt bg-color-red" v-if="$wechat.isWeixin()" @click="H5ShareBox = true">邀请好友参团</div>
<div class="teamBnt bg-color-red" v-else @click="goPoster">邀请好友参团</div>
<div class="teamBnt bg-color-red" v-if="$wechat.isWeixin() && pinkT.stopTime>timestamp" @click="H5ShareBox = true">邀请好友参团</div>
<div class="teamBnt bg-color-red" v-if='!$wechat.isWeixin() && pinkT.stopTime>timestamp' @click="goPoster">邀请好友参团</div>
</div>
<!-- <div class="teamBnt bg-color-red" v-if="userBool === 1 && isOk == 0 && pinkBool === 0" @click="goPoster">
邀请好友参团
</div> -->
<!-- #endif -->
<!-- #ifdef MP -->
<button open-type="share" class="teamBnt bg-color-red" v-if="userBool === 1 && isOk == 0 && pinkBool === 0">邀请好友参团</button>
<button open-type="share" class="teamBnt bg-color-red" v-if="userBool === 1 && isOk == 0 && pinkBool === 0 && pinkT.stopTime>timestamp">邀请好友参团</button>
<!-- #endif -->
<div class="teamBnt bg-color-red" v-else-if="userBool === 0 && pinkBool === 0 && count > 0" @click="pay">我要参团</div>
<div class="teamBnt bg-color-hui" v-if="pinkT.stopTime<timestamp && isOk == 0 && pinkBool === 0">拼团已过期</div>
<div class="teamBnt bg-color-red" v-else-if="userBool === 0 && pinkBool === 0 && count > 0 && pinkT.stopTime>timestamp" @click="pay">我要参团</div>
<div class="teamBnt bg-color-red" v-if="pinkBool === 1 || pinkBool === -1" @click="goDetail(storeCombination.id)">再次开团</div>
<div class="cancel" @click="getCombinationRemove" v-if="pinkBool === 0 && userBool === 1">
<span class="iconfont icon-guanbi3"></span>
取消开团
</div>
<div class="lookOrder" v-if="pinkBool === 1" @click="goOrder">
查看订单信息
<span class="iconfont icon-xiangyou"></span>
@@ -93,10 +95,10 @@
<!-- 发送给朋友图片 -->
<view class="share-box" v-if="H5ShareBox"><image src="/static/images/share-info.png" @click="H5ShareBox = false"></image></view>
<!-- #ifdef MP -->
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
<!-- #endif -->
<!-- <Product-window v-on:changeFun="changeFun" :attr="attr" :limitNum='1' :iSbnt='1'></Product-window> -->
<home></home>
<!-- <Product-window v-on:changeFun="changeFun" :attr="attr" :limitNum='1' :iSbnt='1'></Product-window> -->
</div>
</template>
<script>
@@ -162,9 +164,29 @@ export default {
H5ShareBox: false, //公众号分享图片
isAuto: false, //没有授权的不会自动授权
isShowAuth: false, //是否隐藏授权
onceNum: 0 //一次可以购买几个
onceNum: 0 ,//一次可以购买几个,
timestamp: 0 // 当前时间戳
};
},
watch: {
isLogin:{
handler:function(newV,oldV){
if(newV){
this.getCombinationPink();
}
},
deep:true
},
userData:{
handler:function(newV,oldV){
if(newV){
this.userInfo = newV;
app.globalData.openPages = '/pages/activity/goods_combination_status/index?id=' + this.pinkId;
}
},
deep:true
}
},
computed: mapGetters({
'isLogin':'isLogin',
'userData':'userInfo'
@@ -173,14 +195,9 @@ export default {
var that = this;
that.pinkId = options.id;
if (that.isLogin == false) {
// #ifdef H5 || APP-PLUS
toLogin();
// #endif
// #ifdef MP
that.isAuto = true;
that.$set(that, 'isShowAuth', true);
// #endif
} else {
this.timestamp = (new Date()).getTime();
// #ifdef H5
this.getCombinationPink();
// #endif
@@ -196,8 +213,6 @@ export default {
*/
onShareAppMessage: function() {
let that = this;
that.close();
that.addShareBargain();
return {
title: '您的好友' + that.userInfo.nickname + '邀请您参团' + that.storeCombination.title,
path: app.globalData.openPages,
@@ -505,17 +520,13 @@ export default {
if (that.attr.productAttr != 0) that.DefaultSelect();
})
.catch(err => {
this.$util.Tips({
title: err
});
uni.redirectTo({
success(){},
fail() {
uni.navigateTo({
url: '/pages/index/index',
})
}
})
if(that.isLogin){
that.$util.Tips({
title: err
}, {
url: '/pages/index/index'
});
}
});
},
//#ifdef H5

View File

@@ -3,22 +3,19 @@
<view class='flash-sale'>
<view class="saleBox"></view>
<!-- banner -->
<!-- <navigator :url='item.url' class='slide-navigator acea-row row-between-wrapper' hover-class='none'>
<image :src="item.pic" class="slide-image" lazy-load></image>
</navigator> -->
<view class="header" v-if="timeList.length">
<swiper indicator-dots="true" autoplay="true" :circular="circular" interval="3000" duration="1500"
indicator-color="rgba(255,255,255,0.6)" indicator-active-color="#fff">
<block v-for="(item,index) in JSON.parse(timeList[active].slide)" :key="index">
<block v-for="(item,index) in timeList[active].slide" :key="index">
<swiper-item>
<image :src="item.sattDir" class="slide-image" lazy-load></image>
<!-- <navigator :url='item.url' class='slide-navigator acea-row row-between-wrapper' hover-class='none'>
<image :src="item.pic" class="slide-image" lazy-load></image>
</navigator> -->
</swiper-item>
</block>
</swiper>
</view>
<!-- <view class='header' v-if="timeList.length>0">
<image :src='timeList[active].slide'></image>
</view> -->
<view class="seckillList acea-row row-between-wrapper">
<view class="priceTag">
<image src="/static/images/priceTag.png"></image>
@@ -99,7 +96,7 @@
loading: false,
loadend: false,
pageloading: false,
seckillHeader: [],
seckillHeader: []
}
},
onLoad() {
@@ -109,10 +106,12 @@
getSeckillConfig: function() {
let that = this;
getSeckillHeaderApi().then(res => {
res.data.seckillTime.map(item => {
item.slide = JSON.parse(item.slide)
})
that.timeList = res.data.seckillTime;
that.active = res.data.seckillTimeIndex;
if (that.timeList.length) {
// wxh.time(that.data.timeList[that.data.active].stop, that);
that.scrollLeft = (that.active - 1.37) * 100
setTimeout(function() {
that.loading = true

View File

@@ -110,7 +110,7 @@
<product-window :attr='attribute' :limitNum='1' @myevent="onMyEvent" @ChangeAttr="ChangeAttr" @ChangeCartNum="ChangeCartNum"
@attrVal="attrVal" @iptCartNum="iptCartNum"></product-window>
<!-- #ifdef MP -->
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth"></authorize>
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth"></authorize> -->
<!-- #endif -->
<home></home>
<!-- 分享按钮 -->
@@ -272,7 +272,8 @@
sharePacket: {
isState: true, //默认不显示
},
buyNum: 1
buyNum: 1,
errT: ''
}
},
components: {
@@ -288,6 +289,18 @@
// #endif
},
computed: mapGetters(['isLogin','uid','chatUrl']),
watch:{
isLogin:{
handler:function(newV,oldV){
if(newV){
this.getSeckillDetail();
this.getProductReplyList();
this.getProductReplyCount();
}
},
deep:true
}
},
onLoad(options) {
let that = this
@@ -337,13 +350,7 @@
this.getProductReplyList();
this.getProductReplyCount();
} else {
// #ifdef H5 || APP-PLUS
toLogin();
// #endif
// #ifdef MP
this.isAuto = true;
this.isShowAuth = true
// #endif
}
},
methods: {
@@ -828,9 +835,20 @@
*/
goPoster: function() {
let that = this;
uni.showLoading({
title: '海报生成中',
mask: true
});
that.posters = false;
let arrImagesUrl = '';
let arrImagesUrlTop = '';
if(!that.PromotionCode){
uni.hideLoading();
that.$util.Tips({
title: that.errT
});
return
}
uni.downloadFile({
url: that.imgTop, //仅为示例,并非真实的资源
success: (res) => {
@@ -842,10 +860,11 @@
that.$util.PosterCanvas(arrImages, storeName, price, that.storeInfo.otPrice,function(tempFilePath) {
that.posterImage = tempFilePath;
that.canvasStatus = true;
uni.hideLoading();
});
}, 200);
}, 500);
}
});
});
},
// 小程序二维码
getQrcode(){
@@ -859,7 +878,9 @@
base64src(res.data.code, res => {
that.PromotionCode = res;
});
})
}).catch(err => {
that.errT = err;
});
},
// 生成二维码;
make() {