修复内容

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

@@ -90,7 +90,7 @@
</view>
<navigator url="/pages/goods_cate/goods_cate" class="button" hover-class="none" open-type='switchTab'>去获取</navigator>
</view>
<view class="item acea-row row-between-wrapper">
<!-- <view class="item acea-row row-between-wrapper">
<view class="picTxt acea-row row-middle">
<view class="pictrue on2"><text class="iconfont icon-yaoqing"></text></view>
<view class="text">
@@ -99,7 +99,7 @@
</view>
</view>
<navigator url="/pages/users/user_spread_code/index" class="button" hover-class="none">去获取</navigator>
</view>
</view> -->
</view>
</view>
</view>
@@ -163,6 +163,8 @@
getUserInfo: function() {
let that = this;
getUserInfo().then(res => {
that.$store.commit("SETUID", res.data.uid);
that.$store.commit("UPDATE_USERINFO", res.data);
that.userInfo = res.data;
that.levelInfo = res.data.experience;
}).catch(function(res) {

View File

@@ -1,480 +0,0 @@
<template>
<view>
<view class='member-center'>
<view class='header'>
<swiper :indicator-dots="indicatorDots" :autoplay="autoplay" :circular="circular" :interval="interval" :duration="duration"
@change="bindchange" previous-margin="30px" next-margin="30px">
<block v-for="(item,index) in VipList" :key="index">
<swiper-item>
<view class="memberBg" :class="swiperIndex == index ? 'active' : 'quiet'" :style='"background-image:url("+item.image+")"'
mode='aspectFill'>
<view class='name'>{{item.name}}</view>
<view class='discount'>可享受商品折扣:{{item.discount}}<text class='iconfont icon-zhekou'></text></view>
<view class='lock' v-if="item.grade < grade"><text class='iconfont icon-xuanzhong1'></text>已解锁更高等级</view>
<view class='lock' v-if="item.grade > grade"><text class='iconfont icon-quanxianguanlisuozi'></text>该会员等级尚未解锁</view>
<view class='nav acea-row' v-if="grade==item.grade">
<view class='item' v-if="indexn <= 3" v-for="(itemn,indexn) in item.task_list" :key="indexn">
<view class='num'>{{itemn.number}}</view>
<view>{{itemn.real_name}}</view>
</view>
</view>
</view>
</swiper-item>
</block>
</swiper>
</view>
<view class='wrapper'>
<view class='title acea-row row-between-wrapper'>
<view><text class='iconfont icon-jingyanzhi'></text>会员升级要求</view>
<view class='num'><text class='current'>{{reach_count || 0}}</text>/{{task.length || 0}}</view>
</view>
<view class='list'>
<view class='item' v-for="(item,index) in task" :key="index">
<view class='top acea-row row-between-wrapper'>
<view class='name' @click='opHelp(index)'>{{item.name}}<text v-if="item.illustrate" class='iconfont icon-wenti'></text></view>
<view v-if="item.finish">已满足条件</view>
<view v-else>未满足条件</view>
</view>
<view class="cu-progress">
<view class='bg-red' :style="'width:'+item.speed+'%;'"></view>
</view>
<view class='experience acea-row row-between-wrapper'>
<view>{{item.task_type_title}}</view>
<view><text class='num'>{{item.new_number || 0}}</text>/{{item.number || 0}}</view>
</view>
</view>
</view>
</view>
<recommend :hostProduct="hostProduct"></recommend>
<view class='growthValue' :class='growthValue==false?"on":""'>
<view class='pictrue'>
<image src='../../columnGoods/static/value.jpg'></image><text class='iconfont icon-guanbi3' @click='growthValue'></text>
</view>
<view class='conter'>{{illustrate}}</view>
</view>
<view class='mask' :hidden='growthValue' @click='growthValueClose'></view>
</view>
<!-- #ifdef MP -->
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
<!-- #endif -->
</view>
</template>
<script>
import {
userLevelGrade,
userLevelTask,
userLevelDetection
} from '@/api/user.js';
import {
getProductHot
} from '@/api/store.js';
import {
toLogin
} from '@/libs/login.js';
import {
mapGetters
} from "vuex";
// #ifdef MP
import authorize from '@/components/Authorize';
// #endif
import recommend from '@/components/recommend';
export default {
components: {
recommend,
// #ifdef MP
authorize
// #endif
},
data() {
return {
reach_count:0,
VipList: [],
indicatorDots: false,
circular: true,
autoplay: false,
interval: 3000,
duration: 500,
swiperIndex: 0,
growthValue: true,
task: [], //任务列表
illustrate: '', //任务说明
level_id: 0, //任务id,
hostProduct: [],
grade: 0,
isAuto: false, //没有授权的不会自动授权
isShowAuth: false ,//是否隐藏授权
hotScroll:false,
hotPage:1,
hotLimit:10
};
},
computed: mapGetters(['isLogin']),
watch: {
VipList: function() {
console.log('观察')
let that = this;
if (that.VipList.length > 0) {
that.VipList.forEach(function(item, index) {
if (item.is_clear === false) {
// that.swiper.slideTo(index);
that.activeIndex = index;
that.grade = item.grade;
}
});
}
}
},
onLoad() {
if (this.isLogin) {
this.setLeveLComplete();
this.get_host_product();
} else {
// #ifdef H5 || APP-PLUS
toLogin();
// #endif
// #ifdef MP
this.isAuto = true;
this.$set(this, 'isShowAuth', true)
// #endif
}
let that = this;
setTimeout(function() {
that.loading = true
}, 500)
},
methods: {
onLoadFun: function() {
this.setLeveLComplete();
this.get_host_product();
},
// 授权关闭
authColse: function(e) {
this.isShowAuth = e
},
/**
* 获取我的推荐
*/
get_host_product: function() {
let that = this;
getProductHot().then(res => {
let that = this;
if(that.hotScroll) return
getProductHot(
that.hotPage,
that.hotLimit,
).then(res => {
that.hotPage++
that.hotScroll = res.data.length<that.hotLimit
that.hostProduct = that.hostProduct.concat(res.data)
});
});
},
/**
* 会员切换
*
*/
bindchange(e) {
let index = e.detail.current;
this.swiperIndex = index;
this.level_id = this.VipList[index].id || 0;
// this.grade = this.VipList[index].grade
this.getTask();
},
/**
* 关闭说明
*/
growthValueClose: function() {
this.growthValue = true;
},
/**
* 打开说明
*/
opHelp: function(index) {
this.growthValue = false;
this.illustrate = this.task[index].illustrate;
},
/**
* 设置会员
*/
setLeveLComplete: function() {
let that = this;
userLevelDetection().then(res => {
that.getVipList();
});
},
/**
* 获取会员等级
*
*/
getVipList: function() {
let that = this;
userLevelGrade().then(res => {
that.$set(that, 'VipList', res.data.list);
that.task = res.data.task.task;
that.reach_count = res.data.task.reach_count;
that.level_id = res.data.list[0] ? res.data.list[0].id : 0;
let arr = [];
// res.data.list.forEach(function(item, index) {
// if (item.is_clear == false) {
// arr.push(item.grade);
// }
// })
// that.grade = arr[0] || 0;
// that.grade = res.data.list[0].grade
});
},
/**
* 获取任务要求
*/
getTask: function() {
let that = this;
userLevelTask(that.level_id).then(res => {
that.task = res.data.task;
that.reach_count = res.data.reach_count;
});
}
},
onReachBottom() {
this.get_host_product();
}
}
</script>
<style scoped lang="scss">
.member-center .header {
background-color: #232323;
width: 100%;
padding: 50rpx 0;
}
.member-center .header swiper {
width: 100%;
height: 328rpx;
position: relative;
}
.member-center .header swiper-item .memberBg.active {
transform: none;
transition: all 0.2s ease-in 0s;
}
.member-center .header swiper-item .memberBg.quiet {
transform: scale(0.9);
transition: all 0.2s ease-in 0s;
}
.member-center .header swiper-item .memberBg {
width: 100%;
height: 328rpx;
border-radius: 16rpx;
color: #fff;
position: relative;
background-size: 100% 100%
}
.member-center .header swiper-item .memberBg image {
width: 89rpx;
height: 108rpx;
display: block;
position: absolute;
right: 60rpx;
}
.member-center .header swiper-item .memberBg .name {
font-size: 46rpx;
font-weight: bold;
padding: 40rpx 0 0 35rpx;
}
.member-center .header swiper-item .memberBg .discount {
font-size: 28rpx;
font-weight: bold;
margin: 15rpx 0 0 35rpx;
}
.member-center .header swiper-item .memberBg .discount .iconfont {
margin-left: 10rpx;
font-size: 30rpx;
}
.member-center .header swiper-item .memberBg .nav {
margin-top: 55rpx;
}
.member-center .header swiper-item .memberBg .nav .item {
flex: 1;
text-align: center;
color: rgba(255, 255, 255, 0.6);
position: relative;
}
.member-center .header swiper-item .memberBg .nav .item .num {
font-size: 40rpx;
color: #fff;
font-family: 'Guildford Pro';
}
.member-center .header swiper-item .memberBg .nav .item~.item::before {
position: absolute;
width: 2rpx;
height: 32rpx;
background-color: rgba(255, 255, 255, 0.6);
content: '';
left: 0;
top: 50%;
transform: translateY(-50%);
}
.member-center .header swiper-item .memberBg .lock {
font-size: 26rpx;
margin: 73rpx 0 0 35rpx;
}
.member-center .header swiper-item .memberBg .lock .iconfont {
font-size: 37rpx;
margin-right: 15rpx;
vertical-align: -4rpx;
}
.member-center .wrapper {
background-color: #fff;
padding-bottom: 16rpx;
margin-bottom: 20rpx;
}
.member-center .wrapper .title {
height: 98rpx;
padding: 0 30rpx;
font-size: 30rpx;
font-weight: bold;
color: #282828;
}
.member-center .wrapper .title .iconfont {
color: #ffae06;
font-weight: normal;
font-size: 40rpx;
margin-right: 12rpx;
vertical-align: -2rpx;
}
.member-center .wrapper .title .num {
font-size: 28rpx;
color: #999;
}
.member-center .wrapper .title .num .current {
color: #ffae06;
}
.member-center .wrapper .list .item {
width: 690rpx;
height: 184rpx;
background-color: #f9f9f9;
margin: 0 auto 20rpx auto;
padding: 27rpx 0 22rpx 0;
border-radius: 12rpx;
box-sizing: border-box;
}
.member-center .wrapper .list .item .top {
padding-right: 27rpx;
font-size: 26rpx;
color: #999;
}
.member-center .wrapper .list .item .top .name {
border-left: 6rpx solid #ffae06;
padding-left: 20rpx;
font-size: 28rpx;
color: #282828;
font-weight: bold;
}
.member-center .wrapper .list .item .top .name .iconfont {
color: #999;
font-size: 30rpx;
vertical-align: -2rpx;
margin-left: 10rpx;
}
.member-center .wrapper .list .item .cu-progress {
overflow: hidden;
height: 12rpx;
background-color: #eee;
width: 636rpx;
border-radius: 20rpx;
margin: 35rpx auto 0 auto;
}
.member-center .wrapper .list .item .cu-progress .bg-red {
width: 0;
height: 100%;
transition: width 0.6s ease;
background-color: #ffaa29;
border-radius: 20rpx;
}
.member-center .wrapper .list .item .experience {
margin-top: 17rpx;
padding: 0 27rpx;
font-size: 24rpx;
color: #999;
}
.member-center .wrapper .list .item .experience .num {
color: #ffad07;
}
.member-center .growthValue {
background-color: #fff;
border-radius: 16rpx;
position: fixed;
top: 266rpx;
left: 50%;
width: 560rpx;
height: 740rpx;
margin-left: -280rpx;
z-index: 99;
transform: translate3d(0, -200%, 0);
transition: all .3s cubic-bezier(.25, .5, .5, .9);
}
.member-center .growthValue.on {
transform: translate3d(0, 0, 0);
}
.member-center .growthValue .pictrue {
width: 100%;
height: 257rpx;
position: relative;
}
.member-center .growthValue .pictrue image {
width: 100%;
height: 100%;
border-radius: 16rpx 16rpx 0 0;
}
.member-center .growthValue .conter {
padding: 0 35rpx;
font-size: 30rpx;
color: #333;
margin-top: 58rpx;
line-height: 1.5;
height: 350rpx;
overflow: auto;
}
.member-center .growthValue .pictrue .iconfont {
position: absolute;
font-size: 65rpx;
color: #fff;
top: 775rpx;
left: 50%;
transform: translateX(-50%);
}
</style>