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) => {
uni.getSystemInfo({
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
// #ifdef H5
Vue.prototype.CustomBar = e.statusBarHeight + 45
@ -71,7 +70,6 @@ export default {
// #ifdef MP-WEIXIN
let custom = wx.getMenuButtonBoundingClientRect();
console.log(custom,7774447);
Vue.prototype.Custom = custom;
Vue.prototype.CustomBarLeft = custom.left;
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}
/*# sourceMappingURL=./base.css.map */
@charset "UTF-8";
/**
*相关初始化
*/
.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;
// }
.Loads {
height: 0.8*100rpx;
font-size: 0.25*100rpx;
color: #000;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A3A3C;
height: 80rpx;
}
.Loads .iconfont {
font-size: 0.3*100rpx;
@ -185,21 +187,21 @@
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;
/* 多选框样式 */
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: #9FCD69;
background: linear-gradient(135deg, #39D396 0%, #1B8DCC 100%);
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
font-size: 28rpx;
background: linear-gradient(135deg, #39D396 0%, #1B8DCC 100%);
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
font-size: 28rpx;
}

6
pages/activity/activity/index.vue

@ -39,14 +39,14 @@
</view>
</view>
<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>
</view>
<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="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>
</view>
<image src="../../../static/images/icon-tishi.png" mode=""></image>
@ -77,7 +77,7 @@
</view>
<view class="otPrice" v-if="activityType === 0">¥{{item.otPrice}}</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>

2
pages/home/index.vue

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

16
pages/order/GoodsReturn/index.vue

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

2
pages/order/OrderReturnDetail/index.vue

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

78
pages/order/ReturnList/index.vue

@ -13,10 +13,10 @@
</cu-custom>
</view>
<view class="content-box" :style="'height:calc(100vh - '+CustomBar+'px);'">
<view class="content">
<!-- 分类查询 -->
<view class="nav acea-row row-around" :style="'top:calc('+CustomBar+'px+2px)'">
<view class="content" :style="'min-height:calc(100vh - '+CustomBar+'px);'">
<!-- 分类查询 -->
<view class="nav-box" :style="'top:'+ CustomBar +'px;'">
<view class="nav acea-row row-around">
<view class="item" @click="changeType(0)">
<view :class="'title ' + (listQuery.type == 0? 'active' : '')">全部</view>
</view>
@ -27,20 +27,19 @@
<view :class="'title ' + (listQuery.type == 2? 'active' : '')">已完成</view>
</view>
</view>
<!-- 商品列表 -->
<view class="list">
<ListItem
v-for="(item,index) in orderList"
:key="index"
:item="item"
/>
</view>
<view class="noCart" v-if="orderList.length === 0 && page > 1">
<view class="pictrue">
<image :src="`${$VUE_APP_RESOURCES_URL}/images/noOrder.png`" />
</view>
</view>
<Loading :loaded="loaded" :loading="loading"></Loading>
</view>
<!-- 商品列表 -->
<view class="list">
<ListItem
v-for="(item,index) in orderList"
:key="index"
:item="item"
/>
<Loading v-if="orderList.length !== 0" :loaded="loaded" :loading="loading"></Loading>
</view>
<view class="noCart" v-if="orderList.length === 0 && listQuery.page > 1">
<image class="pictrue" :src="`${$VUE_APP_RESOURCES_URL}/images/noOrder.png`" mode="widthFix"/>
</view>
</view>
@ -129,34 +128,30 @@ export default {
}
}
.content-box {
padding-top: 4rpx;
width: 100vw;
position: relative;
.content {
width: 100%;
height: 100%;
overflow-y: scroll;
background: #FFFFFF;
border-radius: 28rpx 28rpx 0rpx 0rpx;
.list {
padding-top: 76rpx;
}
.content {
width: 100%;
overflow-y: scroll;
background: #FFFFFF;
border-radius: 28rpx 28rpx 0rpx 0rpx;
.nav-box {
width: 100vw;
padding-top: 4rpx;
position: fixed;
left: 0;
z-index: 5;
background: #F1F1F1;
}
.list {
padding-top: 108rpx;
}
}
.return-list{
.nav{
// background-color: #FFF;
// display: flex;
// justify-content: space-around;
width: 100vw;
background: #FFFFFF;
height: 92rpx;
padding: 34rpx 32rpx 16rpx;
position: fixed;
left: 0;
z-index: 5;
border-radius: 28rpx 28rpx 0rpx 0rpx;
.item {
width: 112rpx;
@ -193,4 +188,13 @@ export default {
}
}
}
.noCart {
padding-top: 100rpx;
text-align: center;
.pictrue {
width: 446rpx;
margin: 0rpx auto;
}
}
</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"
:content="storeInfo.description" @linktap="linktap" />
</view>
<!-- <view class="conter" v-html="storeInfo.description"></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;'">
<!-- #ifdef MP-WEIXIN -->
@ -415,10 +414,9 @@
showEntry: false,
tagStyle: {
a: 'color:#2DB5AE;text-decoration:underline;',
span: 'padding: 0rpx 30rpx; display: inline-block;text-align: justify;text-justify: auto;text-indent:2em'
},
description: "<h3>title</h3><a><span>asdfgh</span></a>"
// span: 'padding: 0rpx 30rpx;text-indent:2em;text-align: justify;text-justify: auto;'
span: 'padding: 0rpx 30rpx; display: inline-block;'
}
}
},
computed: mapGetters(['isLogin', 'location']),
@ -575,7 +573,6 @@
'<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(/\<a/gi, '<a style="color:#2DB5AE;text-decoration:underline;"')
that.brandInfo = res.data.brandInfo;
that.$set(that, 'storeInfo', res.data.storeInfo)
// attr attr
@ -1510,7 +1507,7 @@
font-weight: 500;
color: #3A3A3C;
// line-height: 32rpx;
padding: 0rpx 30rpx;
// padding: 0rpx 30rpx;
view {
width: 100% !important;
}

2
pages/shop/brands/index.vue

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

28
pages/user/UserVip/index.vue

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

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

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

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

@ -506,7 +506,8 @@
let sign_index = parseInt(that.sign_index + 1);
that.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.integral = add(that.userInfo.integral, res.data.integral);
that.getSignList();

Loading…
Cancel
Save