Browse Source

Merge branch 'sxx' into landong

# Conflicts:
#	pages/shop/Evaluations/EvaluationDetail/index.vue
home_hotList
ld0104 2 years ago
parent
commit
0bb30cba08
  1. 14
      assets/css/style.css
  2. 20
      assets/css/style.less
  3. 2
      components/UserEvaluation.vue
  4. 6
      pages.json
  5. 10
      pages/activity/DargainDetails/index.vue
  6. 4
      pages/activity/GroupRule/index.vue
  7. 61
      pages/home/index.vue
  8. 7
      pages/shop/Evaluations/EvaluationDetail/index.vue
  9. 16
      pages/shop/GoodsCon/index.vue
  10. 6
      pages/shop/GoodsFoot/index.vue
  11. 121
      pages/shop/IntegralGoodsCon/index.vue
  12. 2
      pages/shop/brands/brandDetail/index.vue
  13. 42
      pages/user/PersonalData/index.vue
  14. 13
      pages/user/signIn/Sign/index.vue

14
assets/css/style.css

@ -257,18 +257,18 @@ page {
line-height: 32rpx; line-height: 32rpx;
padding: 16rpx 0rpx; padding: 16rpx 0rpx;
} }
.evaluateWtapper .evaluateItem .imgList {
padding: 0 30rpx 0 15rpx;
margin-top: 25rpx;
}
.evaluateWtapper .evaluateItem .imgList .pictrue { .evaluateWtapper .evaluateItem .imgList .pictrue {
width: 156rpx; width: 204rpx;
height: 156rpx; height: 204rpx;
margin: 0 0 15rpx 15rpx; padding-right: 13rpx;
}
.evaluateWtapper .evaluateItem .imgList .pictrue:last-child {
padding-right: 0rpx;
} }
.evaluateWtapper .evaluateItem .imgList .pictrue .image { .evaluateWtapper .evaluateItem .imgList .pictrue .image {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 8rpx;
} }
/*优惠券列表公共*/ /*优惠券列表公共*/
.coupon-list { .coupon-list {

20
assets/css/style.less

@ -394,20 +394,26 @@ page {
padding: 16rpx 0rpx; padding: 16rpx 0rpx;
} }
.evaluateWtapper .evaluateItem .imgList { // .evaluateWtapper .evaluateItem .imgList {
padding: 0 0.3 * 100rpx 0 0.15 * 100rpx; // padding: 0 0.3 * 100rpx 0 0.15 * 100rpx;
margin-top: 0.25 * 100rpx; // margin-top: 0.25 * 100rpx;
} // }
.evaluateWtapper .evaluateItem .imgList .pictrue { .evaluateWtapper .evaluateItem .imgList .pictrue {
width: 1.56 * 100rpx; width: 204rpx;
height: 1.56 * 100rpx; height: 204rpx;
margin: 0 0 0.15 * 100rpx 0.15 * 100rpx; padding-right: 13rpx;
// margin: 0 0 0.15 * 100rpx 0.15 * 100rpx;
}
.evaluateWtapper .evaluateItem .imgList .pictrue:last-child {
padding-right: 0rpx;
} }
.evaluateWtapper .evaluateItem .imgList .pictrue .image { .evaluateWtapper .evaluateItem .imgList .pictrue .image {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 8rpx;
} }
// .evaluateWtapper .evaluateItem .reply { // .evaluateWtapper .evaluateItem .reply {

2
components/UserEvaluation.vue

@ -23,7 +23,7 @@
<!-- <view class="time">{{ item.createTime }} {{ item.sku||'' }}</view> --> <!-- <view class="time">{{ item.createTime }} {{ item.sku||'' }}</view> -->
<view class="evaluate-infor">{{ item.comment }}</view> <view class="evaluate-infor">{{ item.comment }}</view>
<view class="imgList acea-row" v-if="item.picturesArr.length"> <view class="imgList acea-row" v-if="item.picturesArr.length">
<view class="pictrue" v-for="(itemn, eq) in item.picturesArr" :key="eq"> <view class="pictrue" v-for="(itemn, eq) in item.picturesArr" :key="eq" v-if="eq < 3">
<image :src="itemn" class="image" /> <image :src="itemn" class="image" />
</view> </view>
</view> </view>

6
pages.json

@ -414,7 +414,8 @@
"path": "pages/activity/DargainDetails/index", "path": "pages/activity/DargainDetails/index",
"style": { "style": {
"navigationBarTitleText": "砍价详情", "navigationBarTitleText": "砍价详情",
"navigationStyle": "custom" "navigationStyle": "custom",
"enablePullDownRefresh": true
} }
}, },
{ {
@ -446,7 +447,8 @@
"path": "pages/activity/GroupRule/index", "path": "pages/activity/GroupRule/index",
"style": { "style": {
"navigationBarTitleText": "拼团详情", "navigationBarTitleText": "拼团详情",
"navigationStyle": "custom" "navigationStyle": "custom",
"enablePullDownRefresh": true
} }
}, },
{ {

10
pages/activity/DargainDetails/index.vue

@ -261,7 +261,7 @@
<view class="help font-color-red" v-text="'成功帮砍' + bargainHelpPrice + '元'"></view> <view class="help font-color-red" v-text="'成功帮砍' + bargainHelpPrice + '元'"></view>
您也可以砍价低价拿哦快去挑选心仪的商品吧~ 您也可以砍价低价拿哦快去挑选心仪的商品吧~
</view> </view>
<button class="tipBnt" open-type="share" v-if="bargainUid === userInfo.uid">邀请好友帮砍价</button> <button class="tipBnt" open-type="share" v-if="bargainUid === userInfo.uid" @click="close">邀请好友帮砍价</button>
<!-- <view class="tipBnt" @click="goPoster" v-if="bargainUid === userInfo.uid">邀请好友帮砍价</view> --> <!-- <view class="tipBnt" @click="goPoster" v-if="bargainUid === userInfo.uid">邀请好友帮砍价</view> -->
<view class="tipBnt" @click="getBargainStart" v-else>我也要参与</view> <view class="tipBnt" @click="getBargainStart" v-else>我也要参与</view>
</view> </view>
@ -325,6 +325,14 @@ export default {
mounted: function () { mounted: function () {
this.mountedStart() this.mountedStart()
}, },
onPullDownRefresh() {
this.getBargainShare(0);
if (this.bargainUid !== this.userInfo.uid) {
this.getBargainStartUser();
}
this.getBargainHelpList();
uni.stopPullDownRefresh();
},
methods: { methods: {
// //
mountedStart: function () { mountedStart: function () {

4
pages/activity/GroupRule/index.vue

@ -209,6 +209,10 @@ export default {
imageUrl: this.storeCombination.image imageUrl: this.storeCombination.image
} }
}, },
onPullDownRefresh() {
this.getCombinationPink();
uni.stopPullDownRefresh();
},
methods: { methods: {
swiperChange(e) { swiperChange(e) {
this.swiperCurrent = e.detail.current; this.swiperCurrent = e.detail.current;

61
pages/home/index.vue

@ -48,17 +48,13 @@
</view> </view>
</view> </view>
<view class="selections"> <view class="selections">
<scroll-view scroll-x="true" class="scroll"> <swiper previous-margin="32rpx">
<view class="item-box"> <swiper-item v-for="(item,index) in info.evaluationList" :key="index" @click="goEvaluationDetail(item)">
<view class="" v-for="(item,index) in info.evaluationList" :key="index" <view class="item">
@click="goEvaluationDetail(item)"> <image :src="item.homeImage" mode="aspectFill"></image>
<view class="item">
<!-- <view :class="'item ' + (index%2 == 0?'':'black')"> -->
<image :src="item.homeImage" mode="aspectFill"></image>
</view>
</view> </view>
</view> </swiper-item>
</scroll-view> </swiper>
</view> </view>
</view> </view>
@ -815,37 +811,26 @@
.selections { .selections {
padding-top: 6rpx; padding-top: 6rpx;
.scroll { swiper {
width: 100%; width: 100%;
overflow: hidden; height: 274rpx;
white-space: nowrap; swiper-item {
} width: 704rpx !important;
.item {
.item-box { margin-left: ;
display: flex; width: 684rpx;
flex-wrap: nowrap; height: 240rpx;
// width: 2144rpx; box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06);
padding: 10rpx 0rpx 24rpx 32rpx; border-radius: 16rpx;
overflow: hidden;
.item {
width: 684rpx; image {
height: 240rpx; width: 100%;
// background: #F5F6F8; height: 100%;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06); }
border-radius: 16rpx;
margin-right: 20rpx;
overflow: hidden;
image {
width: 100%;
height: 100%;
} }
} }
// .black {
// background: #4F4E53;
// }
} }
} }
} }

7
pages/shop/Evaluations/EvaluationDetail/index.vue

@ -16,7 +16,12 @@
<view class="synopsis-box acea-row" v-if="info.synopsis"> <view class="synopsis-box acea-row" v-if="info.synopsis">
<view class="left-circle"></view> <view class="left-circle"></view>
<view class="info"> <view class="info">
<<<<<<< HEAD
<!-- <text>甄选评测介绍</text> -->{{' ' + info.synopsis}} <!-- <text>甄选评测介绍</text> -->{{' ' + info.synopsis}}
=======
{{' ' + info.synopsis}}
<!-- <text>甄选评测介绍</text>{{' ' + info.synopsis}} -->
>>>>>>> sxx
</view> </view>
<image src="../../../../static/images/evaluation-icon.png" mode=""></image> <image src="../../../../static/images/evaluation-icon.png" mode=""></image>
</view> </view>
@ -227,7 +232,7 @@
margin: 20rpx 32rpx 0rpx 90rpx; margin: 20rpx 32rpx 0rpx 90rpx;
padding: 20rpx 0rpx 20rpx 50rpx; padding: 20rpx 0rpx 20rpx 50rpx;
width: 628rpx; width: 628rpx;
height: 146rpx; // height: 146rpx;
background: #F5F6F8; background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06); box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06);
border-radius: 16rpx; border-radius: 16rpx;

16
pages/shop/GoodsCon/index.vue

@ -156,20 +156,20 @@
<user-evaluation :reply="reply"></user-evaluation> <user-evaluation :reply="reply"></user-evaluation>
</view> </view>
<!-- <view class="product-parameter"> <view class="product-parameter" v-if="storeInfo.parameter.length > 0">
<view class="title">商品参数</view> <view class="title">商品参数</view>
<view :class="'parameter-list ' + (isUnfold?'unfold':'')" :style="isUnfold?'height: auto;':'max-height: 184rpx;'"> <view :class="'parameter-list ' + (isUnfold?'unfold':'')" :style="isUnfold?'height: auto;':'max-height: 184rpx;'">
<view class="parameter-item acea-row" v-for="(item,index) in 5" :key="index"> <view class="parameter-item acea-row" v-for="(item,index) in storeInfo.parameter" :key="index">
<view class="parameter-name one-t">品牌</view> <view class="parameter-name one-t">{{item.name}}</view>
<view class="parameter">LA PRAIRIE</view> <view class="parameter">{{item.details}}</view>
</view> </view>
</view> </view>
<view class="more-box acea-row row-center-wrapper" @click="unfold" :style="isUnfold?'height: 50rpx;padding-top: 0rpx;':''"> <view v-if="storeInfo.parameter.length > 4" class="more-box acea-row row-center-wrapper" @click="unfold" :style="isUnfold?'height: 50rpx;padding-top: 0rpx;':''">
<view>{{isUnfold?'收起':'展开'}}</view> <view>{{isUnfold?'收起':'展开'}}</view>
<view v-if="isUnfold" class="jiantou-up"></view> <view v-if="isUnfold" class="jiantou-up"></view>
<view v-else class="jiantou-down"></view> <view v-else class="jiantou-down"></view>
</view> </view>
</view> --> </view>
<!-- 商品推荐 --> <!-- 商品推荐 -->
<!-- <view class="superior"> <!-- <view class="superior">
@ -1036,8 +1036,8 @@
border-radius: 50%; border-radius: 50%;
.img { .img {
width: 84rpx; width: 100%;
height: 84rpx; height: 100%;
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 50%; border-radius: 50%;
} }

6
pages/shop/GoodsFoot/index.vue

@ -58,12 +58,12 @@
</view> </view>
</view> </view>
</view> </view>
<Recommend></Recommend> <!-- <Recommend></Recommend> -->
</view> </view>
</template> </template>
<script> <script>
import Loading from '@/components/Loading' import Loading from '@/components/Loading'
import Recommend from '@/components/Recommend' // import Recommend from '@/components/Recommend'
import { import {
getCollectUser, getCollectUser,
getCollectDel getCollectDel
@ -71,7 +71,7 @@
export default { export default {
name: 'GoodsFoot', name: 'GoodsFoot',
components: { components: {
Recommend, // Recommend,
Loading, Loading,
}, },
props: {}, props: {},

121
pages/shop/IntegralGoodsCon/index.vue

@ -34,7 +34,7 @@
<!-- 规格 --> <!-- 规格 -->
<view class="attribute acea-row row-between-wrapper" @click="selecAttrTap"> <view class="attribute acea-row row-between-wrapper" @click="selecAttrTap">
<view>选规格</view> <view>选规格</view>
<view class="acea-row attr-content"> <view class="acea-row attr-content">
<image v-if="item.image" :src="item.image" v-for="(item,index) in attrImages" :key="index" mode="aspectFill"></image> <image v-if="item.image" :src="item.image" v-for="(item,index) in attrImages" :key="index" mode="aspectFill"></image>
<view class="attrs">{{attr.productAttr[0].attrValueArr.length}}{{attr.productAttr.length == 1?attr.productAttr[0].attrName:attr.productAttr[0].attrValueArr.length == 1?attr.productAttr[1].attrName:attr.productAttr[0].attrName}}可选</view> <view class="attrs">{{attr.productAttr[0].attrValueArr.length}}{{attr.productAttr.length == 1?attr.productAttr[0].attrName:attr.productAttr[0].attrValueArr.length == 1?attr.productAttr[1].attrName:attr.productAttr[0].attrName}}可选</view>
<!-- <text>{{ attrTxt }}</text> <!-- <text>{{ attrTxt }}</text>
@ -45,16 +45,34 @@
</view> </view>
<!-- 用户评价 --> <!-- 用户评价 -->
<!-- <view class="userEvaluation" v-if="replyCount"> <view class="userEvaluation" v-if="replyCount">
<view class="title acea-row row-between-wrapper"> <view class="title acea-row row-between-wrapper">
<view>用户评价({{ replyCount }})</view> <view class="acea-row row-middle">
<text @click="goEvaluateList(id)" class="praise"> <text>评价</text>
<text class="font-color-red">{{ replyChance }}%</text>好评率 <text class="replyCount">{{ replyCount }}</text>
<text class="iconfont icon-jiantou"></text> </view>
</text> <view @click="goEvaluateList(id)" class="praise acea-row row-middle">
<view>好评率{{ replyChance }}%</view>
<view class="jiantou-right"></view>
</view>
</view> </view>
<user-evaluation :reply="reply"></user-evaluation> <user-evaluation :reply="reply"></user-evaluation>
</view> --> </view>
<view class="product-parameter" v-if="storeInfo.parameter.length > 0">
<view class="title">商品参数</view>
<view :class="'parameter-list ' + (isUnfold?'unfold':'')" :style="isUnfold?'height: auto;':'max-height: 184rpx;'">
<view class="parameter-item acea-row" v-for="(item,index) in storeInfo.parameter" :key="index">
<view class="parameter-name one-t">{{item.name}}</view>
<view class="parameter">{{item.details}}</view>
</view>
</view>
<view v-if="storeInfo.parameter.length > 4" class="more-box acea-row row-center-wrapper" @click="unfold" :style="isUnfold?'height: 50rpx;padding-top: 0rpx;':''">
<view>{{isUnfold?'收起':'展开'}}</view>
<view v-if="isUnfold" class="jiantou-up"></view>
<view v-else class="jiantou-down"></view>
</view>
</view>
<!-- 商品详情 --> <!-- 商品详情 -->
<view class="product-intro"> <view class="product-intro">
@ -150,7 +168,7 @@ export default {
productSelect: {}, productSelect: {},
}, },
isOpen: false, // isOpen: false, //
productValue: [], productValue: [],
attrImages: [], attrImages: [],
id: 0, id: 0,
storeInfo: {}, storeInfo: {},
@ -347,10 +365,10 @@ export default {
that.$set(that, 'goodList', goodArray) that.$set(that, 'goodList', goodArray)
that.updateTitle() that.updateTitle()
that.DefaultSelect() that.DefaultSelect()
that.getCartCount() that.getCartCount()
for(let i in that.productValue) { for(let i in that.productValue) {
that.attrImages.push(that.productValue[i]); that.attrImages.push(that.productValue[i]);
if(that.attrImages.length == 2) return if(that.attrImages.length == 2) return
} }
}) })
.catch(err => { .catch(err => {
@ -748,6 +766,83 @@ export default {
margin-left: 8rpx; margin-left: 8rpx;
} }
.userEvaluation .title .replyCount {
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A3A3C;
padding-left: 8rpx;
}
.product-parameter {
margin: 0rpx 32rpx 20rpx;
padding: 16rpx 24rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06);
border-radius: 16rpx;
position: relative;
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
.title {
font-size: 30rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #3A3A3C;
line-height: 46rpx;
padding-bottom: 22rpx;
}
.parameter-list {
overflow: hidden;
.parameter-item {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A3A3C;
line-height: 40rpx;
padding-bottom: 6rpx;
.parameter-name {
padding: 0rpx 20rpx;
width: 172rpx;
height: 40rpx;
background: #E3E3E3;
margin-right: 6rpx;
}
.parameter {
padding: 0rpx 20rpx;
width: 460rpx;
height: 40rpx;
background: #E3E3E3;
}
}
}
.unfold {
overflow: visible;
padding-bottom: 26rpx;
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
}
.more-box {
width: 686rpx;
height: 76rpx;
border-radius: 0rpx 0rpx 16rpx 16rpx;
padding-top: 10rpx;
position: absolute;
left: 0;
bottom: 0;
// z-index: 1;
background: linear-gradient(180deg, rgba(243, 243, 243, 0.4) 0%, #FFFFFF 100%);
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
line-height: 26rpx;
}
}
.geoPage { .geoPage {
position: fixed; position: fixed;
width: 100%; width: 100%;

2
pages/shop/brands/brandDetail/index.vue

@ -217,7 +217,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #F5F6F8; background: #F5F6F8;
border-radius: 16rpx; border-radius: 14rpx;
} }
} }
.info-box { .info-box {

42
pages/user/PersonalData/index.vue

@ -83,7 +83,8 @@
chooseImage chooseImage
} from "@/utils"; } from "@/utils";
import { import {
VUE_APP_API_URL VUE_APP_API_URL,
BXG_TENANT_ID
} from "@/config"; } from "@/config";
import { import {
postUserEdit, postUserEdit,
@ -192,7 +193,44 @@
}); });
}, },
onChooseAvatar(e) { onChooseAvatar(e) {
this.avatar = e.detail.avatarUrl; uni.getImageInfo({
src: e.detail.avatarUrl,
success: image => {
// console.log(image)
uni.showLoading({ title: '图片上传中', mask: true })
uni.uploadFile({
url: `${VUE_APP_API_URL}/api/upload`,
file: image,
filePath: image.path,
header: {
Authorization: 'Bearer ' + store.getters.token,
'tenant-id': BXG_TENANT_ID
},
name: 'file',
success: res => {
this.avatar = JSON.parse(res.data).data;
console.log('this.avatar', this.avatar)
},
fail: err => {
uni.showToast({
title: '上传图片失败',
icon: 'none',
duration: 2000,
})
},
complete: res => {
uni.hideLoading()
},
})
},
fail: err => {
uni.showToast({
title: '获取图片信息失败',
icon: 'none',
duration: 2000,
})
},
})
}, },
chooseImage() { chooseImage() {
chooseImage((img) => { chooseImage((img) => {

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

@ -47,6 +47,11 @@
<view class="wrapper acea-row row-column row-middle"> <view class="wrapper acea-row row-column row-middle">
<view class="tip">已累计签到</view> <view class="tip">已累计签到</view>
<view class="num-box acea-row row-center row-bottom"> <view class="num-box acea-row row-center row-bottom">
<view class="item" v-if="signCount.length < 4">
<view class="top"></view>
<view class="bottom"></view>
<view class="num">{{ 0 }}</view>
</view>
<view class="item" v-for="(item, signCountIndex) in signCount.length" :key="signCountIndex"> <view class="item" v-for="(item, signCountIndex) in signCount.length" :key="signCountIndex">
<view class="top"></view> <view class="top"></view>
<view class="bottom"></view> <view class="bottom"></view>
@ -493,7 +498,7 @@
goSign: function() { goSign: function() {
let that = this, let that = this,
sumSginDay = that.userInfo.sumSignDay; sumSginDay = that.userInfo.sumSignDay;
if (that.userInfo.is_day_sgin) { if (that.userInfo.is_day_sgin || that.userInfo.isDaySign) {
uni.showToast({ uni.showToast({
title: "您今日已签到!", title: "您今日已签到!",
icon: "none", icon: "none",
@ -510,6 +515,12 @@
// that.signCount = that.PrefixInteger(sumSginDay + 1, 4); // that.signCount = that.PrefixInteger(sumSginDay + 1, 4);
that.signCount = String(sumSginDay + 1); that.signCount = String(sumSginDay + 1);
that.userInfo.is_day_sgin = true; that.userInfo.is_day_sgin = true;
that.userInfo.isDaySign = true;
uni.showModal({
title:'签到成功!',
showCancel: false,
confirmColor: '#2DB5AE',
})
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