Browse Source

会员等级成长值;售后添加联系方式;售后列表ui调整

home_hotList
whyneedname 2 years ago
parent
commit
e8ad7b2d9f
  1. 4
      App.vue
  2. 178
      assets/css/base.css
  3. 40
      assets/css/base.less
  4. 6
      pages/activity/activity/index.vue
  5. 2
      pages/home/index.vue
  6. 16
      pages/order/GoodsReturn/index.vue
  7. 2
      pages/order/OrderReturnDetail/index.vue
  8. 78
      pages/order/ReturnList/index.vue
  9. 13
      pages/shop/GoodsCon/index.vue
  10. 2
      pages/shop/brands/index.vue
  11. 28
      pages/user/UserVip/index.vue
  12. 2
      pages/user/coupon/GetCoupon/index.vue
  13. 3
      pages/user/signIn/Sign/index.vue

4
App.vue

@ -54,8 +54,7 @@ export default {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
uni.getSystemInfo({ uni.getSystemInfo({
success: function (e) { success: function (e) {
console.log(e,88888888855); Vue.prototype.addBottom = e.safeArea.top > 20;
Vue.prototype.addBottom = e.safeArea.top > 20;
Vue.prototype.StatusBar = e.statusBarHeight Vue.prototype.StatusBar = e.statusBarHeight
// #ifdef H5 // #ifdef H5
Vue.prototype.CustomBar = e.statusBarHeight + 45 Vue.prototype.CustomBar = e.statusBarHeight + 45
@ -71,7 +70,6 @@ export default {
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
let custom = wx.getMenuButtonBoundingClientRect(); let custom = wx.getMenuButtonBoundingClientRect();
console.log(custom,7774447);
Vue.prototype.Custom = custom; Vue.prototype.Custom = custom;
Vue.prototype.CustomBarLeft = custom.left; Vue.prototype.CustomBarLeft = custom.left;
Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight; Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;

178
assets/css/base.css

@ -1,2 +1,176 @@
@charset "UTF-8";.font-color-red{color:#eb3729 !important}.bg-color-red{background-color:#eb3729 !important}.icon-color{color:#eb3729}.cart-color{color:#eb3729 !important;border:1px solid #eb3729 !important}.padding20{padding:20rpx}.pad20{padding:0 20rpx}.padding30{padding:30rpx}.pad30{padding:0 30rpx}.acea-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.acea-row.row-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.acea-row.row-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.acea-row.row-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.acea-row.row-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.acea-row.row-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.acea-row.row-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.acea-row.row-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.acea-row.row-around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.acea-row.row-column-around{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.acea-row.row-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.acea-row.row-column-between{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.acea-row.row-center-wrapper{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.acea-row.row-between-wrapper{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.slider-banner{position:relative;width:100%;overflow:hidden}.slider-banner .swiper-container{height:100%}.slider-banner image{display:block;width:100%;height:100%}.start{width:122rpx;height:30rpx;background-image:url("https://wx.yixiang.co/static/images/start.png");background-repeat:no-repeat;-webkit-background-size:122rpx auto;background-size:122rpx auto}.start.star5{background-position:0 3rpx}.start.star4{background-position:0 -30rpx}.start.star3{background-position:0 -70rpx}.start.star2{background-position:0 -105rpx}.start.star1{background-position:0 -140rpx}.start.star0{background-position:0 -175rpx}.checkbox-wrapper{position:relative}.checkbox-wrapper input{display:none}.checkbox-wrapper .icon{position:absolute;left:0;top:50%;display:inline-block;width:18px;height:18px;border:1px solid #cccccc;-webkit-border-radius:50%;border-radius:50%;-webkit-transform:translate(0, -50%);-ms-transform:translate(0, -50%);transform:translate(0, -50%)}.checkbox-wrapper input:checked+.icon{background-color:#e93323;border-color:#e93323;background-image:url("https://wx.yixiang.co/static/images/enter.png");-webkit-background-size:21rpx 15rpx;background-size:21rpx 15rpx;background-repeat:no-repeat;background-position:center center}.Loads{height:80rpx;font-size:25rpx;color:#000}.Loads .iconfont{font-size:30rpx;margin-right:10rpx;height:32rpx;line-height:32rpx}@-webkit-keyframes load{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.loadingpic{-webkit-animation:load 3s linear 1s infinite;animation:load 3s linear 1s infinite}.loading{-webkit-animation:load linear 1s infinite;animation:load linear 1s infinite} @charset "UTF-8";
/*# sourceMappingURL=./base.css.map */ /**
*相关初始化
*/
.font-color-red {
color: #2DB5AE !important;
}
.bg-color-red {
background-color: #2DB5AE !important;
color: #ffffff !important;
}
.icon-color {
color: #2DB5AE;
}
.cart-color {
color: #2DB5AE !important;
border: 1px solid #2DB5AE !important;
}
/* padding20 */
.padding20 {
padding: 20rpx;
}
/* pad20 */
.pad20 {
padding: 0 20rpx;
}
/* padding30 */
.padding30 {
padding: 30rpx;
}
/*pad30 */
.pad30 {
padding: 0 30rpx;
}
/* layout */
.acea-row {
display: flex;
flex-wrap: wrap;
/* 辅助类 */
}
.acea-row.row-middle {
align-items: center;
}
.acea-row.row-top {
align-items: flex-start;
}
.acea-row.row-bottom {
align-items: flex-end;
}
.acea-row.row-center {
justify-content: center;
}
.acea-row.row-right {
justify-content: flex-end;
}
.acea-row.row-left {
justify-content: flex-start;
}
.acea-row.row-between {
justify-content: space-between;
}
.acea-row.row-around {
justify-content: space-around;
}
.acea-row.row-column-around {
flex-direction: column;
justify-content: space-around;
}
.acea-row.row-column {
flex-direction: column;
}
.acea-row.row-column-between {
flex-direction: column;
justify-content: space-between;
}
/* 上下左右垂直居中 */
.acea-row.row-center-wrapper {
align-items: center;
justify-content: center;
}
/* 上下两边居中对齐 */
.acea-row.row-between-wrapper {
align-items: center;
justify-content: space-between;
}
.acea-row.row-center-column {
flex-direction: column;
align-items: center;
justify-content: center;
}
/* 轮播图 */
.slider-banner {
position: relative;
width: 100%;
/* height:750rpx; */
overflow: hidden;
}
.slider-banner .swiper-container {
height: 100%;
}
.slider-banner image {
display: block;
width: 100%;
height: 100%;
}
.start {
width: 122rpx;
height: 30rpx;
background-image: url("https://wx.yixiang.co/static/images/start.png");
background-repeat: no-repeat;
background-size: 122rpx auto;
}
.start.star5 {
background-position: 0 3rpx;
}
.start.star4 {
background-position: 0 -30rpx;
}
.start.star3 {
background-position: 0 -70rpx;
}
.start.star2 {
background-position: 0 -105rpx;
}
.start.star1 {
background-position: 0 -140rpx;
}
.start.star0 {
background-position: 0 -175rpx;
}
/* 单选框和多选框 */
.Loads {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A3A3C;
height: 80rpx;
}
.Loads .iconfont {
font-size: 30rpx;
margin-right: 10rpx;
height: 32rpx;
line-height: 32rpx;
}
/*加载动画*/
@keyframes load {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.loadingpic {
animation: load 3s linear 1s infinite;
}
.loading {
animation: load linear 1s infinite;
}
/* 多选框样式 */
checkbox .wx-checkbox-input {
width: 40rpx;
height: 40rpx;
border-radius: 50% !important;
color: #ffffff !important;
border: 2rpx solid #2DB5AE !important;
box-sizing: border-box;
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
border: none !important;
color: #fff;
background: linear-gradient(135deg, #39D396 0%, #1B8DCC 100%);
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
font-size: 28rpx;
}

40
assets/css/base.less

@ -159,9 +159,11 @@
// background-position: center center; // background-position: center center;
// } // }
.Loads { .Loads {
height: 0.8*100rpx; font-size: 24rpx;
font-size: 0.25*100rpx; font-family: PingFang SC;
color: #000; font-weight: 500;
color: #3A3A3C;
height: 80rpx;
} }
.Loads .iconfont { .Loads .iconfont {
font-size: 0.3*100rpx; font-size: 0.3*100rpx;
@ -185,21 +187,21 @@
animation: load linear 1s infinite; animation: load linear 1s infinite;
} }
/* 多选框样式 */ /* 多选框样式 */
checkbox .wx-checkbox-input { checkbox .wx-checkbox-input {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
border-radius: 50% !important; border-radius: 50% !important;
color: #ffffff !important; color: #ffffff !important;
border: 2rpx solid #2DB5AE !important; border: 2rpx solid #2DB5AE !important;
box-sizing: border-box; box-sizing: border-box;
} }
checkbox .wx-checkbox-input.wx-checkbox-input-checked { checkbox .wx-checkbox-input.wx-checkbox-input-checked {
border: none !important; border: none !important;
color: #fff; color: #fff;
// background: #9FCD69; // background: #9FCD69;
background: linear-gradient(135deg, #39D396 0%, #1B8DCC 100%); background: linear-gradient(135deg, #39D396 0%, #1B8DCC 100%);
} }
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before { checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
font-size: 28rpx; font-size: 28rpx;
} }

6
pages/activity/activity/index.vue

@ -39,14 +39,14 @@
</view> </view>
</view> </view>
<view class="tab-box acea-row row-between" v-if="activityType === 0"> <view class="tab-box acea-row row-between" v-if="activityType === 0">
<view :class="'tab ' + (tabType === 0 ? 'active' : '')" @click="setTabType(0)">活动抢购中</view> <view :class="'tab ' + (tabType === 0 ? 'active' : '')" @click="setTabType(0)">{{timeList[seckillActive].status == 2 ? '活动即将开始' : '活动抢购中'}}</view>
<view :class="'tab ' + (tabType === 1 ? 'active' : '')" @click="setTabType(1)">下期预告</view> <view :class="'tab ' + (tabType === 1 ? 'active' : '')" @click="setTabType(1)">下期预告</view>
</view> </view>
</view> </view>
<view class="list-box" :style="activityType !== 0?'height: calc(100% - 104rpx);':''"> <view class="list-box" :style="activityType !== 0?'height: calc(100% - 104rpx);':''">
<view class="countdown-box acea-row row-between-wrapper" v-if="activityType === 0 && tabType === 0 && timeList[seckillActive].stop"> <view class="countdown-box acea-row row-between-wrapper" v-if="activityType === 0 && tabType === 0 && timeList[seckillActive].stop">
<view class="acea-row row-middle"> <view class="acea-row row-middle">
<view class="text">本轮结束仅剩</view> <view class="text">{{timeList[seckillActive].status == 2 ? timeList[seckillActive].time + '即将开始' : '本轮结束仅剩'}}</view>
<CountDown :isDay="true" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '" :secondText="' 秒'" :datatime="timeList[seckillActive].stop"></CountDown> <CountDown :isDay="true" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '" :secondText="' 秒'" :datatime="timeList[seckillActive].stop"></CountDown>
</view> </view>
<image src="../../../static/images/icon-tishi.png" mode=""></image> <image src="../../../static/images/icon-tishi.png" mode=""></image>
@ -77,7 +77,7 @@
</view> </view>
<view class="otPrice" v-if="activityType === 0">¥{{item.otPrice}}</view> <view class="otPrice" v-if="activityType === 0">¥{{item.otPrice}}</view>
</view> </view>
<view class="btn" @click="goDetail(item)">{{activityType == 0?'立即秒杀':'发起' + (activityType == 1?'拼团':'砍价')}}</view> <view class="btn" @click="goDetail(item)">{{activityType == 0?(timeList[seckillActive].status == 2?'即将开始':'立即秒杀'):'发起' + (activityType == 1?'拼团':'砍价')}}</view>
</view> </view>
</view> </view>

2
pages/home/index.vue

@ -1181,4 +1181,4 @@
margin-bottom: 0; margin-bottom: 0;
} }
} }
</style> </style>

16
pages/order/GoodsReturn/index.vue

@ -84,7 +84,7 @@
<view class="item"> <view class="item">
<view>联系方式</view> <view>联系方式</view>
<view class="info-item acea-row row-between-wrapper" style="padding-top:20rpx;"> <view class="info-item acea-row row-between-wrapper" style="padding-top:20rpx;">
<view>联系方式</view> <view>联系</view>
<view class="info"> <view class="info">
<input type="text" placeholder="请输入姓名" placeholder-style="font-size:26rpx;color:#999999;line-height:62rpx;" v-model="userName"> <input type="text" placeholder="请输入姓名" placeholder-style="font-size:26rpx;color:#999999;line-height:62rpx;" v-model="userName">
</view> </view>
@ -190,7 +190,7 @@
</view> </view>
<view class="typeBtn"> <view class="typeBtn">
<view class="button def" @click="chooseType(0)">仅退款</view> <view class="button def" @click="chooseType(0)">仅退款</view>
<!-- <view class="button bg-color-red" @click="chooseType(1)">退货退款</view> --> <view class="button bg-color-red" @click="chooseType(1)">退货退款</view>
</view> </view>
</view> </view>
</view> --> </view> -->
@ -350,13 +350,23 @@ export default {
}); });
return return
} }
if (!this.userName || !this.phoneNumber) {
uni.showToast({
title: "请将联系方式填写完整!",
icon: 'none',
duration: 2000
});
return
}
submitAfterSealsOrder({ submitAfterSealsOrder({
orderCode: this.orderInfo.orderId, orderCode: this.orderInfo.orderId,
serviceType: this.serviceType, serviceType: this.serviceType,
reasonForApplication: this.reason, reasonForApplication: this.reason,
applicationInstructions: refund_reason_wap_explain, applicationInstructions: refund_reason_wap_explain,
applicationDescriptionPicture: this.refund_reason_wap_img.join(","), applicationDescriptionPicture: this.refund_reason_wap_img.join(","),
productParamList: this.productParamList productParamList: this.productParamList,
applicationName: this.userName,
applicationPhone: this.phoneNumber
}).then(res => { }).then(res => {
if (res.status === 200) { if (res.status === 200) {
uni.showToast({ uni.showToast({

2
pages/order/OrderReturnDetail/index.vue

@ -443,7 +443,7 @@ export default {
width: 204rpx; width: 204rpx;
height: 204rpx; height: 204rpx;
border-radius: 16rpx; border-radius: 16rpx;
background: #dddddd; // background: #dddddd;
margin-right: 17rpx; margin-right: 17rpx;
} }
image:last-child { image:last-child {

78
pages/order/ReturnList/index.vue

@ -13,10 +13,10 @@
</cu-custom> </cu-custom>
</view> </view>
<view class="content-box" :style="'height:calc(100vh - '+CustomBar+'px);'"> <view class="content" :style="'min-height:calc(100vh - '+CustomBar+'px);'">
<view class="content"> <!-- 分类查询 -->
<!-- 分类查询 --> <view class="nav-box" :style="'top:'+ CustomBar +'px;'">
<view class="nav acea-row row-around" :style="'top:calc('+CustomBar+'px+2px)'"> <view class="nav acea-row row-around">
<view class="item" @click="changeType(0)"> <view class="item" @click="changeType(0)">
<view :class="'title ' + (listQuery.type == 0? 'active' : '')">全部</view> <view :class="'title ' + (listQuery.type == 0? 'active' : '')">全部</view>
</view> </view>
@ -27,20 +27,19 @@
<view :class="'title ' + (listQuery.type == 2? 'active' : '')">已完成</view> <view :class="'title ' + (listQuery.type == 2? 'active' : '')">已完成</view>
</view> </view>
</view> </view>
<!-- 商品列表 --> </view>
<view class="list">
<ListItem <!-- 商品列表 -->
v-for="(item,index) in orderList" <view class="list">
:key="index" <ListItem
:item="item" v-for="(item,index) in orderList"
/> :key="index"
</view> :item="item"
<view class="noCart" v-if="orderList.length === 0 && page > 1"> />
<view class="pictrue"> <Loading v-if="orderList.length !== 0" :loaded="loaded" :loading="loading"></Loading>
<image :src="`${$VUE_APP_RESOURCES_URL}/images/noOrder.png`" /> </view>
</view> <view class="noCart" v-if="orderList.length === 0 && listQuery.page > 1">
</view> <image class="pictrue" :src="`${$VUE_APP_RESOURCES_URL}/images/noOrder.png`" mode="widthFix"/>
<Loading :loaded="loaded" :loading="loading"></Loading>
</view> </view>
</view> </view>
@ -129,34 +128,30 @@ export default {
} }
} }
.content-box { .content {
padding-top: 4rpx; width: 100%;
width: 100vw; overflow-y: scroll;
position: relative; background: #FFFFFF;
.content { border-radius: 28rpx 28rpx 0rpx 0rpx;
width: 100%; .nav-box {
height: 100%; width: 100vw;
overflow-y: scroll; padding-top: 4rpx;
background: #FFFFFF; position: fixed;
border-radius: 28rpx 28rpx 0rpx 0rpx; left: 0;
.list { z-index: 5;
padding-top: 76rpx; background: #F1F1F1;
} }
.list {
padding-top: 108rpx;
} }
} }
.return-list{ .return-list{
.nav{ .nav{
// background-color: #FFF;
// display: flex;
// justify-content: space-around;
width: 100vw; width: 100vw;
background: #FFFFFF; background: #FFFFFF;
height: 92rpx; height: 92rpx;
padding: 34rpx 32rpx 16rpx; padding: 34rpx 32rpx 16rpx;
position: fixed;
left: 0;
z-index: 5;
border-radius: 28rpx 28rpx 0rpx 0rpx; border-radius: 28rpx 28rpx 0rpx 0rpx;
.item { .item {
width: 112rpx; width: 112rpx;
@ -193,4 +188,13 @@ export default {
} }
} }
} }
.noCart {
padding-top: 100rpx;
text-align: center;
.pictrue {
width: 446rpx;
margin: 0rpx auto;
}
}
</style> </style>

13
pages/shop/GoodsCon/index.vue

@ -206,10 +206,9 @@
<mp-html id="article" :setTitle="false" :lazy-load="true" :copy-link="false" :tag-style="tagStyle" <mp-html id="article" :setTitle="false" :lazy-load="true" :copy-link="false" :tag-style="tagStyle"
:content="storeInfo.description" @linktap="linktap" /> :content="storeInfo.description" @linktap="linktap" />
</view> </view>
<!-- <view class="conter" v-html="storeInfo.description"></view> -->
</view> </view>
<view :style="addBottom?'height: 162rpx;':'height: 122rpx;'"></view> <view :style="'background:#FFFFFF;' + (addBottom?'height: 162rpx;':'height: 122rpx;')"></view>
<!-- 操作栏 --> <!-- 操作栏 -->
<view class="footer acea-row row-between" :style="addBottom?'height: 162rpx;':'height: 122rpx;'"> <view class="footer acea-row row-between" :style="addBottom?'height: 162rpx;':'height: 122rpx;'">
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
@ -415,10 +414,9 @@
showEntry: false, showEntry: false,
tagStyle: { tagStyle: {
a: 'color:#2DB5AE;text-decoration:underline;', a: 'color:#2DB5AE;text-decoration:underline;',
span: 'padding: 0rpx 30rpx; display: inline-block;text-align: justify;text-justify: auto;text-indent:2em' // span: 'padding: 0rpx 30rpx;text-indent:2em;text-align: justify;text-justify: auto;'
span: 'padding: 0rpx 30rpx; display: inline-block;'
}, }
description: "<h3>title</h3><a><span>asdfgh</span></a>"
} }
}, },
computed: mapGetters(['isLogin', 'location']), computed: mapGetters(['isLogin', 'location']),
@ -575,7 +573,6 @@
'<img style="max-width:100%;height:auto;"') '<img style="max-width:100%;height:auto;"')
res.data.storeInfo.description = res.data.storeInfo.description.replace(/&nbsp;/gi, res.data.storeInfo.description = res.data.storeInfo.description.replace(/&nbsp;/gi,
'') '')
// res.data.storeInfo.description = res.data.storeInfo.description.replace(/\<a/gi, '<a style="color:#2DB5AE;text-decoration:underline;"')
that.brandInfo = res.data.brandInfo; that.brandInfo = res.data.brandInfo;
that.$set(that, 'storeInfo', res.data.storeInfo) that.$set(that, 'storeInfo', res.data.storeInfo)
// attr attr // attr attr
@ -1510,7 +1507,7 @@
font-weight: 500; font-weight: 500;
color: #3A3A3C; color: #3A3A3C;
// line-height: 32rpx; // line-height: 32rpx;
padding: 0rpx 30rpx; // padding: 0rpx 30rpx;
view { view {
width: 100% !important; width: 100% !important;
} }

2
pages/shop/brands/index.vue

@ -227,7 +227,6 @@
width: 686rpx; width: 686rpx;
height: 398rpx; height: 398rpx;
border-radius: 16rpx; border-radius: 16rpx;
background-color: #FFFFFF;
} }
} }
.dots-box { .dots-box {
@ -384,7 +383,6 @@
width: 162rpx; width: 162rpx;
height: 162rpx; height: 162rpx;
border-radius: 16rpx; border-radius: 16rpx;
background-color: #CCEDEB;
} }
.info-box { .info-box {
width: 472rpx; width: 472rpx;

28
pages/user/UserVip/index.vue

@ -15,8 +15,8 @@
<view class="vip-info-box"> <view class="vip-info-box">
<view class="vip-box"> <view class="vip-box">
<image class="bg" src="@/static/images/vip-card.png" mode=""></image> <!-- <image class="bg" src="@/static/images/vip-card.png" mode=""></image> -->
<image class="bg" :src="vipList[0].image" mode=""></image> <image class="bg" :src="vipList[activeIndex].image" mode=""></image>
<view class="info-box"> <view class="info-box">
<view class="user-info acea-row"> <view class="user-info acea-row">
<view class="headImg"> <view class="headImg">
@ -31,12 +31,12 @@
</view> </view>
</view> </view>
<view class="progress-bar-box"> <view class="progress-bar-box">
<view class="progress-bar"></view> <view class="progress-bar" :style="'width:'+ (growthPercent || 0) +'%;'"></view>
</view> </view>
<view class="acea-row"> <view class="acea-row">
<!-- <view class="vip-icon"></view> --> <!-- <view class="vip-icon"></view> -->
<image class="vip-icon" :src="vipList[0].icon" mode=""></image> <image class="vip-icon" :src="vipList[activeIndex].icon" mode=""></image>
<view class="to-next-level">下一等级还需成长值 {{'50'}}/{{100}}</view> <view class="to-next-level">下一等级还需成长值 {{userInfo.growth}}/{{vipList[activeIndex+1].growthValue}}</view>
</view> </view>
</view> </view>
</view> </view>
@ -104,11 +104,11 @@
<view class="info-box"> <view class="info-box">
<view class="info-title">权益说明</view> <view class="info-title">权益说明</view>
<view class="" v-html="vipList[0].benefit"></view> <view class="" v-html="vipList[activeIndex].benefit"></view>
</view> </view>
<view class="info-box"> <view class="info-box">
<view class="info-title">会员规则说明</view> <view class="info-title">会员规则说明</view>
<view class="" v-html="vipList[0].explain"></view> <view class="" v-html="vipList[activeIndex].explain"></view>
</view> </view>
<!-- <view class="list"> <!-- <view class="list">
<view class="item" v-for="(item, vipCompleteIndex) in vipComplete" :key="vipCompleteIndex"> <view class="item" v-for="(item, vipCompleteIndex) in vipComplete" :key="vipCompleteIndex">
@ -145,6 +145,10 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import {
div,
mul
} from "@/utils/bc";
// import { swiper, swiperSlide } from "vue-awesome-swiper"; // import { swiper, swiperSlide } from "vue-awesome-swiper";
// import Recommend from "@/components/Recommend"; // import Recommend from "@/components/Recommend";
@ -185,7 +189,8 @@ export default {
loading: false, loading: false,
growthValue: true, growthValue: true,
illustrate: "", illustrate: "",
activeIndex: 0 activeIndex: 0,
growthPercent: 0,
}; };
}, },
watch: { watch: {
@ -236,9 +241,12 @@ export default {
that.vipRequire = res.data.task.list; that.vipRequire = res.data.task.list;
that.vipComplete = res.data.task.task; that.vipComplete = res.data.task.task;
that.taskCount = res.data.task.reachCount; that.taskCount = res.data.task.reachCount;
that.vipList.forEach(val => { that.vipList.forEach((val, index) => {
val.benefit = val.benefit.replace(/\n/g,"<br/>"); // /\r/g val.benefit = val.benefit.replace(/\n/g,"<br/>"); // /\r/g
val.explain = val.explain.replace(/\n/g,"<br/>"); // /\r/g val.explain = val.explain.replace(/\n/g,"<br/>"); // /\r/g
if (val.isClear === false) {
this.growthPercent = mul(div(this.userInfo.growth, this.vipList[index+1].growthValue), 100);
}
}) })
}, },
err => { err => {
@ -356,7 +364,7 @@ export default {
border-radius: 4rpx; border-radius: 4rpx;
margin-bottom: 14rpx; margin-bottom: 14rpx;
.progress-bar { .progress-bar {
width: 330rpx; // width: 330rpx;
height: 8rpx; height: 8rpx;
background: #1B8DCC; background: #1B8DCC;
border-radius: 4rpx; border-radius: 4rpx;

2
pages/user/coupon/GetCoupon/index.vue

@ -127,7 +127,7 @@ export default {
props: {}, props: {},
data: function() { data: function() {
return { return {
currents: 0, currents: 0,
page: 1, page: 1,
limit: 10, limit: 10,
couponsList: [], couponsList: [],

3
pages/user/signIn/Sign/index.vue

@ -506,7 +506,8 @@
let sign_index = parseInt(that.sign_index + 1); let sign_index = parseInt(that.sign_index + 1);
that.sign_index = that.sign_index =
sign_index > that.signSystemList.length ? 1 : sign_index; sign_index > that.signSystemList.length ? 1 : sign_index;
that.signCount = that.PrefixInteger(sumSginDay + 1, 4); // that.signCount = that.PrefixInteger(sumSginDay + 1, 4);
that.signCount = String(sumSginDay + 1);
that.userInfo.is_day_sgin = true; that.userInfo.is_day_sgin = true;
that.userInfo.integral = add(that.userInfo.integral, res.data.integral); that.userInfo.integral = add(that.userInfo.integral, res.data.integral);
that.getSignList(); that.getSignList();

Loading…
Cancel
Save