Browse Source

Merge branch 'landong' of https://git.lotus-wallet.com/Loki/zsw-farm-bxg into landong

home_hotList
ld0104 2 years ago
parent
commit
a7aca93c9b
  1. 232
      assets/css/style.css
  2. 438
      assets/css/style.less
  3. 9
      components/CountDown.vue
  4. 8
      config/index.js
  5. 29
      pages.json
  6. 620
      pages/activity/DargainDetails/index.vue
  7. 433
      pages/activity/DargainGoodsDetails/index.vue
  8. 35
      pages/activity/GroupDetails/index.vue
  9. 1206
      pages/activity/GroupRule/index.vue
  10. 54
      pages/activity/SeckillDetails/index.vue
  11. 30
      pages/activity/activity/index.vue
  12. 298
      pages/order/Logistics/index.vue
  13. 5
      pages/order/MyOrder/index.vue
  14. 5
      pages/order/OrderDetails/index.vue
  15. 175
      pages/order/OrderReturnDetail/index.vue
  16. 1
      pages/shop/GoodsCon/index.vue
  17. 302
      pages/shop/IntegralList/index.vue
  18. 13
      pages/shop/ShoppingCart/index.vue
  19. 24
      pages/user/User/index.vue
  20. 104
      pages/user/signIn/Sign/index.vue
  21. BIN
      static/images/icon-tishi.png
  22. BIN
      static/images/link-icon.png

232
assets/css/style.css

@ -2068,107 +2068,6 @@ page {
margin-left: 14rpx;
}
/*物流信息*/
.logistics .header {
padding: 23rpx 30rpx;
background-color: #fff;
height: 166rpx;
}
.logistics .header .pictrue {
width: 120rpx;
height: 120rpx;
}
.logistics .header .pictrue image {
width: 100%;
height: 100%;
border-radius: 6rpx;
}
.logistics .header .text {
width: 540rpx;
font-size: 28rpx;
color: #999;
margin-top: 6rpx;
}
.logistics .header .text .name {
width: 365rpx;
color: #282828;
}
.logistics .header .text .money {
text-align: right;
}
.logistics .logisticsCon {
background-color: #fff;
margin: 12rpx 0;
}
.logistics .logisticsCon .company {
height: 120rpx;
margin: 0 0 45rpx 30rpx;
padding-right: 30rpx;
border-bottom: 1px solid #f5f5f5;
}
.logistics .logisticsCon .company .picTxt {
width: 520rpx;
}
.logistics .logisticsCon .company .picTxt .iconfont {
width: 50rpx;
height: 50rpx;
background-color: #666;
text-align: center;
line-height: 50rpx;
color: #fff;
font-size: 35rpx;
}
.logistics .logisticsCon .company .picTxt .text {
width: 450rpx;
font-size: 26rpx;
color: #282828;
}
.logistics .logisticsCon .company .picTxt .text .name {
color: #999;
}
.logistics .logisticsCon .company .picTxt .text .express {
margin-top: 5rpx;
}
.logistics .logisticsCon .company .copy {
font-size: 20rpx;
width: 106rpx;
height: 40rpx;
border-radius: 3rpx;
border: 1px solid #999;
}
.logistics .logisticsCon .item {
padding: 0 40rpx;
position: relative;
}
.logistics .logisticsCon .item .circular {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
position: absolute;
top: -1rpx;
left: 31.5rpx;
background-color: #ddd;
}
.logistics .logisticsCon .item .circular.on {
background-color: #eb3729;
}
.logistics .logisticsCon .item .text {
font-size: 26rpx;
color: #666;
width: 615rpx;
border-left: 1px solid #e6e6e6;
padding: 0 0 60rpx 38rpx;
}
.logistics .logisticsCon .item .text.on {
border-left-color: #f8c1bd;
}
.logistics .logisticsCon .item .text .data {
font-size: 24rpx;
color: #999;
margin-top: 10rpx;
}
.logistics .logisticsCon .item .text .data .time {
margin-left: 15rpx;
}
/*支付状态*/
.payment-status {
background-color: #fff;
@ -2553,58 +2452,6 @@ page {
left: 30rpx;
z-index: 99;
}
.bargain .header {
/* background-image: url('https://wx.yixiang.co/static/images/cut1.png'); */
background-repeat: no-repeat;
background-size: 100% 100%;
width: 698rpx;
height: 372rpx;
margin: 0 auto;
padding-top: 0.1rpx;
margin-top: 40rpx;
}
.bargain .header.on {
background-image: url('https://wx.yixiang.co/static/images/cut2.png');
}
.bargain .header .pictxt {
margin: 260rpx auto 0 auto;
font-size: 26rpx;
color: #000;
}
.bargain .header .pictxt .pictrue {
width: 56rpx;
height: 56rpx;
margin-right: 30rpx;
}
.bargain .header .pictxt .pictrue image {
width: 100%;
height: 100%;
border-radius: 50%;
border: 2rpx solid #fff;
}
.bargain .header .pictxt .text text {
margin-left: 20rpx;
}
.bargain .header .time {
background-repeat: no-repeat;
background-size: 100% 100%;
width: 440rpx;
height: 166rpx;
margin: 80rpx auto 0 auto;
font-size: 22rpx;
text-align: center;
padding-top: 9rpx;
color: #fc4141;
}
.bargain .header .people {
text-align: center;
color: #fff;
font-size: 20rpx;
margin-top: 20rpx;
}
.bargain .header .time .styleAll {
color: #333;
}
.bargain .wrapper,
.bargain .bargainGang,
.bargain .goodsDetails {
@ -2829,19 +2676,17 @@ page {
top: 50%;
left: 50%;
width: 560rpx;
margin-left: -280rpx;
z-index: 99;
border-radius: 20rpx;
background-color: #fff;
transition: all 0.3s ease-in-out 0s;
opacity: 0;
transform: scale(0);
transform: translate(-50%, -50%) scale(0);
padding-bottom: 60rpx;
margin-top: -330rpx;
}
.bargain .bargainTip.on {
opacity: 1;
transform: scale(1);
transform: translate(-50%, -50%) scale(1);
}
.bargain .bargainTip .pictrue {
width: 100%;
@ -2885,9 +2730,8 @@ page {
color: #fff;
width: 360rpx;
height: 82rpx;
border-radius: 41rpx;
background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
border-radius: 16rpx;
background: #2DB5AE;
text-align: center;
line-height: 82rpx;
margin: 50rpx auto 0 auto;
@ -3096,11 +2940,15 @@ page {
color: #282828;
}
.product-con .assemble {
background-color: #fff;
margin: 0rpx 32rpx;
width: 686rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.15);
border-radius: 16rpx;
}
.product-con .assemble .item {
padding-right: 30rpx;
margin-left: 30rpx;
padding-right: 24rpx;
margin-left: 24rpx;
border-bottom: 1px solid #f0f0f0;
height: 132rpx;
}
@ -3134,14 +2982,13 @@ page {
.product-con .assemble .item .right .spellBnt {
font-size: 24rpx;
color: #fff;
width: 140rpx;
height: 50rpx;
border-radius: 50rpx;
background-image: linear-gradient(to right, #ff2358 0%, #ff0000 100%);
background-image: -moz-linear-gradient(to right, #ff2358 0%, #ff0000 100%);
width: 110rpx;
height: 46rpx;
border-radius: 16rpx;
background-color: #2DB5AE;
text-align: center;
line-height: 50rpx;
margin-left: 30rpx;
line-height: 46rpx;
margin-left: 20rpx;
}
.product-con .assemble .item .right .spellBnt .iconfont {
font-size: 20rpx;
@ -3231,51 +3078,6 @@ page {
bottom: 0;
}
/*开团*/
.group-con .header {
width: 100%;
height: 186rpx;
background-color: #fff;
border-top: 1px solid #f5f5f5;
padding: 0 30rpx;
position: relative;
}
.group-con .header .iconfont {
font-size: 100rpx;
position: absolute;
color: #ccc;
right: 33rpx;
bottom: 20rpx;
}
.group-con .header .pictrue {
width: 140rpx;
height: 140rpx;
}
.group-con .header .pictrue image {
width: 100%;
height: 100%;
border-radius: 6rpx;
}
.group-con .header .text {
width: 525rpx;
font-size: 30rpx;
color: #222;
}
.group-con .header .text .money {
font-size: 24rpx;
font-weight: bold;
margin-top: 15rpx;
}
.group-con .header .text .money .num {
font-size: 32rpx;
}
.group-con .header .text .money .team {
padding: 1rpx 10rpx;
font-weight: normal;
border-radius: 50rpx;
font-size: 20rpx;
vertical-align: 4rpx;
margin-left: 15rpx;
}
.group-con .wrapper {
background-color: #fff;
margin-top: 20rpx;

438
assets/css/style.less

@ -4098,127 +4098,127 @@ page {
}
/*物流信息*/
.logistics .header {
padding: 0.23 * 100rpx 0.3 * 100rpx;
background-color: #fff;
height: 1.66 * 100rpx;
}
// .logistics .header {
// padding: 0.23 * 100rpx 0.3 * 100rpx;
// background-color: #fff;
// height: 1.66 * 100rpx;
// }
.logistics .header .pictrue {
width: 1.2 * 100rpx;
height: 1.2 * 100rpx;
}
// .logistics .header .pictrue {
// width: 1.2 * 100rpx;
// height: 1.2 * 100rpx;
// }
.logistics .header .pictrue image {
width: 100%;
height: 100%;
border-radius: 0.06 * 100rpx;
}
// .logistics .header .pictrue image {
// width: 100%;
// height: 100%;
// border-radius: 0.06 * 100rpx;
// }
.logistics .header .text {
width: 5.4 * 100rpx;
font-size: 0.28 * 100rpx;
color: #999;
margin-top: 0.06 * 100rpx;
}
// .logistics .header .text {
// width: 5.4 * 100rpx;
// font-size: 0.28 * 100rpx;
// color: #999;
// margin-top: 0.06 * 100rpx;
// }
.logistics .header .text .name {
width: 3.65 * 100rpx;
color: #282828;
}
// .logistics .header .text .name {
// width: 3.65 * 100rpx;
// color: #282828;
// }
.logistics .header .text .money {
text-align: right;
}
// .logistics .header .text .money {
// text-align: right;
// }
.logistics .logisticsCon {
background-color: #fff;
margin: 0.12 * 100rpx 0;
}
// .logistics .logisticsCon {
// background-color: #fff;
// margin: 0.12 * 100rpx 0;
// }
.logistics .logisticsCon .company {
height: 1.2 * 100rpx;
margin: 0 0 0.45 * 100rpx 0.3 * 100rpx;
padding-right: 0.3 * 100rpx;
border-bottom: 1px solid #f5f5f5;
}
// .logistics .logisticsCon .company {
// height: 1.2 * 100rpx;
// margin: 0 0 0.45 * 100rpx 0.3 * 100rpx;
// padding-right: 0.3 * 100rpx;
// border-bottom: 1px solid #f5f5f5;
// }
.logistics .logisticsCon .company .picTxt {
width: 5.2 * 100rpx;
}
// .logistics .logisticsCon .company .picTxt {
// width: 5.2 * 100rpx;
// }
.logistics .logisticsCon .company .picTxt .iconfont {
width: 0.5 * 100rpx;
height: 0.5 * 100rpx;
background-color: #666;
text-align: center;
line-height: 0.5 * 100rpx;
color: #fff;
font-size: 0.35 * 100rpx;
}
// .logistics .logisticsCon .company .picTxt .iconfont {
// width: 0.5 * 100rpx;
// height: 0.5 * 100rpx;
// background-color: #666;
// text-align: center;
// line-height: 0.5 * 100rpx;
// color: #fff;
// font-size: 0.35 * 100rpx;
// }
.logistics .logisticsCon .company .picTxt .text {
width: 4.5 * 100rpx;
font-size: 0.26 * 100rpx;
color: #282828;
}
// .logistics .logisticsCon .company .picTxt .text {
// width: 4.5 * 100rpx;
// font-size: 0.26 * 100rpx;
// color: #282828;
// }
.logistics .logisticsCon .company .picTxt .text .name {
color: #999;
}
// .logistics .logisticsCon .company .picTxt .text .name {
// color: #999;
// }
.logistics .logisticsCon .company .picTxt .text .express {
margin-top: 0.05 * 100rpx;
}
// .logistics .logisticsCon .company .picTxt .text .express {
// margin-top: 0.05 * 100rpx;
// }
.logistics .logisticsCon .company .copy {
font-size: 0.2 * 100rpx;
width: 1.06 * 100rpx;
height: 0.4 * 100rpx;
border-radius: 0.03 * 100rpx;
border: 1px solid #999;
}
// .logistics .logisticsCon .company .copy {
// font-size: 0.2 * 100rpx;
// width: 1.06 * 100rpx;
// height: 0.4 * 100rpx;
// border-radius: 0.03 * 100rpx;
// border: 1px solid #999;
// }
.logistics .logisticsCon .item {
padding: 0 0.4 * 100rpx;
position: relative;
}
// .logistics .logisticsCon .item {
// padding: 0 0.4 * 100rpx;
// position: relative;
// }
.logistics .logisticsCon .item .circular {
width: 0.2 * 100rpx;
height: 0.2 * 100rpx;
border-radius: 50%;
position: absolute;
top: -0.01 * 100rpx;
left: 0.315 * 100rpx;
background-color: #ddd;
}
// .logistics .logisticsCon .item .circular {
// width: 0.2 * 100rpx;
// height: 0.2 * 100rpx;
// border-radius: 50%;
// position: absolute;
// top: -0.01 * 100rpx;
// left: 0.315 * 100rpx;
// background-color: #ddd;
// }
.logistics .logisticsCon .item .circular.on {
background-color: #eb3729;
}
// .logistics .logisticsCon .item .circular.on {
// background-color: #eb3729;
// }
.logistics .logisticsCon .item .text {
font-size: 0.26 * 100rpx;
color: #666;
width: 6.15 * 100rpx;
border-left: 1px solid #e6e6e6;
padding: 0 0 0.6 * 100rpx 0.38 * 100rpx;
}
// .logistics .logisticsCon .item .text {
// font-size: 0.26 * 100rpx;
// color: #666;
// width: 6.15 * 100rpx;
// border-left: 1px solid #e6e6e6;
// padding: 0 0 0.6 * 100rpx 0.38 * 100rpx;
// }
.logistics .logisticsCon .item .text.on {
border-left-color: #f8c1bd;
}
// .logistics .logisticsCon .item .text.on {
// border-left-color: #f8c1bd;
// }
.logistics .logisticsCon .item .text .data {
font-size: 0.24 * 100rpx;
color: #999;
margin-top: 0.1 * 100rpx;
}
// .logistics .logisticsCon .item .text .data {
// font-size: 0.24 * 100rpx;
// color: #999;
// margin-top: 0.1 * 100rpx;
// }
.logistics .logisticsCon .item .text .data .time {
margin-left: 0.15 * 100rpx;
}
// .logistics .logisticsCon .item .text .data .time {
// margin-left: 0.15 * 100rpx;
// }
/*支付状态*/
.payment-status {
@ -5091,66 +5091,66 @@ page {
z-index: 99;
}
.bargain .header {
/* background-image: url('https://wx.yixiang.co/static/images/cut1.png'); */
background-repeat: no-repeat;
background-size: 100% 100%;
width: 6.98 * 100rpx;
height: 372rpx;
margin: 0 auto;
padding-top: 0.001 * 100rpx;
margin-top: 0.4 * 100rpx;
}
// .bargain .header {
// /* background-image: url('https://wx.yixiang.co/static/images/cut1.png'); */
// background-repeat: no-repeat;
// background-size: 100% 100%;
// width: 6.98 * 100rpx;
// height: 372rpx;
// margin: 0 auto;
// padding-top: 0.001 * 100rpx;
// margin-top: 0.4 * 100rpx;
// }
.bargain .header.on {
background-image: url('https://wx.yixiang.co/static/images/cut2.png');
}
// .bargain .header.on {
// background-image: url('https://wx.yixiang.co/static/images/cut2.png');
// }
.bargain .header .pictxt {
margin: 2.6 * 100rpx auto 0 auto;
font-size: 0.26 * 100rpx;
color: #000;
}
// .bargain .header .pictxt {
// margin: 2.6 * 100rpx auto 0 auto;
// font-size: 0.26 * 100rpx;
// color: #000;
// }
.bargain .header .pictxt .pictrue {
width: 0.56 * 100rpx;
height: 0.56 * 100rpx;
margin-right: 0.3 * 100rpx;
}
// .bargain .header .pictxt .pictrue {
// width: 0.56 * 100rpx;
// height: 0.56 * 100rpx;
// margin-right: 0.3 * 100rpx;
// }
.bargain .header .pictxt .pictrue image {
width: 100%;
height: 100%;
border-radius: 50%;
border: 0.02 * 100rpx solid #fff;
}
// .bargain .header .pictxt .pictrue image {
// width: 100%;
// height: 100%;
// border-radius: 50%;
// border: 0.02 * 100rpx solid #fff;
// }
.bargain .header .pictxt .text text {
margin-left: 0.2 * 100rpx;
}
// .bargain .header .pictxt .text text {
// margin-left: 0.2 * 100rpx;
// }
.bargain .header .time {
background-repeat: no-repeat;
background-size: 100% 100%;
width: 4.4 * 100rpx;
height: 1.66 * 100rpx;
margin: 0.8 * 100rpx auto 0 auto;
font-size: 0.22 * 100rpx;
text-align: center;
padding-top: 0.09 * 100rpx;
color: #fc4141;
}
// .bargain .header .time {
// background-repeat: no-repeat;
// background-size: 100% 100%;
// width: 4.4 * 100rpx;
// height: 1.66 * 100rpx;
// margin: 0.8 * 100rpx auto 0 auto;
// font-size: 0.22 * 100rpx;
// text-align: center;
// padding-top: 0.09 * 100rpx;
// color: #fc4141;
// }
.bargain .header .people {
text-align: center;
color: #fff;
font-size: 0.2 * 100rpx;
margin-top: 0.2 * 100rpx;
}
// .bargain .header .people {
// text-align: center;
// color: #fff;
// font-size: 0.2 * 100rpx;
// margin-top: 0.2 * 100rpx;
// }
.bargain .header .time .styleAll {
color: #333;
}
// .bargain .header .time .styleAll {
// color: #333;
// }
.bargain .wrapper,
.bargain .bargainGang,
@ -5423,20 +5423,20 @@ page {
top: 50%;
left: 50%;
width: 5.6 * 100rpx;
margin-left: -2.8 * 100rpx;
// margin-left: -2.8 * 100rpx;
z-index: 99;
border-radius: 0.2 * 100rpx;
background-color: #fff;
transition: all 0.3s ease-in-out 0s;
opacity: 0;
transform: scale(0);
transform: translate(-50%, -50%) scale(0);
padding-bottom: 0.6 * 100rpx;
margin-top: -3.3 * 100rpx;
// margin-top: -3.3 * 100rpx;
}
.bargain .bargainTip.on {
opacity: 1;
transform: scale(1);
transform: translate(-50%, -50%) scale(1);
}
.bargain .bargainTip .pictrue {
@ -5487,9 +5487,11 @@ page {
color: #fff;
width: 3.6 * 100rpx;
height: 0.82 * 100rpx;
border-radius: 0.41 * 100rpx;
background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
border-radius: 16rpx;
// border-radius: 0.41 * 100rpx;
background: #2DB5AE;
// background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
// background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
text-align: center;
line-height: 0.82 * 100rpx;
margin: 0.5 * 100rpx auto 0 auto;
@ -5741,12 +5743,17 @@ page {
}
.product-con .assemble {
background-color: #fff;
margin: 0rpx 32rpx;
width: 686rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
// background-color: #fff;
}
.product-con .assemble .item {
padding-right: 0.3 * 100rpx;
margin-left: 0.3 * 100rpx;
padding-right: 24rpx;
margin-left: 24rpx;
border-bottom: 1px solid #f0f0f0;
height: 1.32 * 100rpx;
}
@ -5787,14 +5794,15 @@ page {
.product-con .assemble .item .right .spellBnt {
font-size: 0.24 * 100rpx;
color: #fff;
width: 1.4 * 100rpx;
height: 0.5 * 100rpx;
border-radius: 0.5 * 100rpx;
background-image: linear-gradient(to right, #ff2358 0%, #ff0000 100%);
background-image: -moz-linear-gradient(to right, #ff2358 0%, #ff0000 100%);
width: 110rpx;
height: 46rpx;
border-radius: 16rpx;
background-color: #2DB5AE;
// background-image: linear-gradient(to right, #ff2358 0%, #ff0000 100%);
// background-image: -moz-linear-gradient(to right, #ff2358 0%, #ff0000 100%);
text-align: center;
line-height: 0.5 * 100rpx;
margin-left: 0.3 * 100rpx;
line-height: 46rpx;
margin-left: 20rpx;
}
.product-con .assemble .item .right .spellBnt .iconfont {
@ -5925,58 +5933,58 @@ page {
}
/*开团*/
.group-con .header {
width: 100%;
height: 1.86 * 100rpx;
background-color: #fff;
border-top: 1px solid #f5f5f5;
padding: 0 0.3 * 100rpx;
position: relative;
}
// .group-con .header {
// width: 100%;
// height: 1.86 * 100rpx;
// background-color: #fff;
// border-top: 1px solid #f5f5f5;
// padding: 0 0.3 * 100rpx;
// position: relative;
// }
.group-con .header .iconfont {
font-size: 1 * 100rpx;
position: absolute;
color: #ccc;
right: 0.33 * 100rpx;
bottom: 0.2 * 100rpx;
}
// .group-con .header .iconfont {
// font-size: 1 * 100rpx;
// position: absolute;
// color: #ccc;
// right: 0.33 * 100rpx;
// bottom: 0.2 * 100rpx;
// }
.group-con .header .pictrue {
width: 1.4 * 100rpx;
height: 1.4 * 100rpx;
}
// .group-con .header .pictrue {
// width: 1.4 * 100rpx;
// height: 1.4 * 100rpx;
// }
.group-con .header .pictrue image {
width: 100%;
height: 100%;
border-radius: 0.06 * 100rpx;
}
// .group-con .header .pictrue image {
// width: 100%;
// height: 100%;
// border-radius: 0.06 * 100rpx;
// }
.group-con .header .text {
width: 5.25 * 100rpx;
font-size: 0.3 * 100rpx;
color: #222;
}
// .group-con .header .text {
// width: 5.25 * 100rpx;
// font-size: 0.3 * 100rpx;
// color: #222;
// }
.group-con .header .text .money {
font-size: 0.24 * 100rpx;
font-weight: bold;
margin-top: 0.15 * 100rpx;
}
// .group-con .header .text .money {
// font-size: 0.24 * 100rpx;
// font-weight: bold;
// margin-top: 0.15 * 100rpx;
// }
.group-con .header .text .money .num {
font-size: 0.32 * 100rpx;
}
// .group-con .header .text .money .num {
// font-size: 0.32 * 100rpx;
// }
.group-con .header .text .money .team {
padding: 0.01 * 100rpx 0.1 * 100rpx;
font-weight: normal;
border-radius: 0.5 * 100rpx;
font-size: 0.2 * 100rpx;
vertical-align: 0.04 * 100rpx;
margin-left: 0.15 * 100rpx;
}
// .group-con .header .text .money .team {
// padding: 0.01 * 100rpx 0.1 * 100rpx;
// font-weight: normal;
// border-radius: 0.5 * 100rpx;
// font-size: 0.2 * 100rpx;
// vertical-align: 0.04 * 100rpx;
// margin-left: 0.15 * 100rpx;
// }
.group-con .wrapper {
background-color: #fff;

9
components/CountDown.vue

@ -78,18 +78,17 @@ export default {
},
methods: {
show_time() {
console.log(this.datatime,'==========================')
console.log('sdfasdgasdgad', this.time)
console.log('this.datatime', this.datatime, 'this.time', this.time)
if (this.time.toString().length == 13) {
//
console.log('毫秒')
// console.log('')
this.time = this.time / 1000
} else if (this.time.toString().length == 10) {
console.log('秒')
// console.log('')
//
} else {
//
console.log('时间')
// console.log('')
this.time = Date.parse(this.time) / 1000
}
this.runTime()

8
config/index.js

@ -1,8 +1,8 @@
// export const VUE_APP_API_URL = 'http://192.168.10.129:48080/bxgApp'
// export const VUE_APP_API_URL = 'http://192.168.10.113:48080/bxgApp'
export const VUE_APP_API_URL = 'https://farm.lotus-wallet.com/bxgApp'
export const VUE_APP_API_URL = 'http://192.168.10.113:48080/bxgApp'
// export const VUE_APP_API_URL = 'https://farm.lotus-wallet.com/bxgApp'
// export const VUE_APP_API_URL = 'https://xiaohui.shop.cyjyyjy.com/xiaohuiapp'
export const VUE_APP_RESOURCES_URL = 'https://h5.yixiang.co/static'
export const BXG_TENANT_ID = 129
// export const BXG_TENANT_ID = 138
// export const BXG_TENANT_ID = 129
export const BXG_TENANT_ID = 138
// export const BXG_TENANT_ID = 128

29
pages.json

@ -307,7 +307,8 @@
{
"path": "pages/order/Logistics/index",
"style": {
"navigationBarTitleText": "查看物流"
"navigationBarTitleText": "查看物流",
"navigationStyle": "custom"
}
},
{
@ -410,7 +411,8 @@
{
"path": "pages/activity/DargainDetails/index",
"style": {
"navigationBarTitleText": "帮砍价"
"navigationBarTitleText": "砍价详情",
"navigationStyle": "custom"
}
},
{
@ -441,7 +443,8 @@
{
"path": "pages/activity/GroupRule/index",
"style": {
"navigationBarTitleText": "团购规则"
"navigationBarTitleText": "拼团详情",
"navigationStyle": "custom"
}
},
{
@ -493,26 +496,34 @@
"navigationStyle": "custom"
}
},
// {
// "path": "pages/shop/IntegralList/index",
// "style": {
// "navigationBarTitleText": "",
// "enablePullDownRefresh": false,
// "navigationStyle": "custom"
// }
// },
{
"path": "pages/shop/IntegralList/index",
"path": "pages/shop/Evaluations/EvaluationDetail/index",
"style": {
"navigationBarTitleText": "",
"navigationBarTitleText": "甄选测评",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "pages/shop/Evaluations/EvaluationDetail/index",
"path": "pages/expert/index",
"style": {
"navigationBarTitleText": "甄选测评",
"navigationBarTitleText": "专家专栏",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "pages/expert/index",
"path": "pages/activity/DargainGoodsDetails/index",
"style": {
"navigationBarTitleText": "专家专栏",
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}

620
pages/activity/DargainDetails/index.vue

@ -1,12 +1,129 @@
<template>
<view class="bargain on">
<!-- 在header上加 on 为请求支援 -->
<view class="header">
<cu-custom :isBack="true" :isCenter="true" >
<block slot="backText">
<view class="backImg">
<image src="@/static/images/back-btn.png" mode=""></image>
</view>
</block>
<block slot="content">
<view class="tab-title">砍价详情</view>
</block>
</cu-custom>
</view>
<view class="content-box">
<view class="banner">
<swiper @change="swiperChange">
<swiper-item>
<image :src="goodsDetail.image" mode="aspectFill"></image>
</swiper-item>
</swiper>
<view class="dots acea-row">
<view class="dot on"></view>
<!-- <view :class="'dot ' + (swiperCurrent == index?'on':'')" v-for="(item, index) in goodsDetail.sliderImageArr" :key="index"></view> -->
</view>
</view>
<view class="goods-info">
<view class="price-box acea-row">
<view class="">¥{{ goodsDetail.minPrice }}</view>
<view class="productPrice">¥{{ goodsDetail.price }}</view>
</view>
<view class="goods-name">{{ goodsDetail.title }}</view>
<view class="info-text">{{ goodsDetail.info }}</view>
</view>
<image class="link-icon left" src="@/static/images/link-icon.png" mode=""></image>
<image class="link-icon right" src="@/static/images/link-icon.png" mode=""></image>
<view class="bargain-state-box">
<view class="bargain-state">
<view class="icon">
<view class="iconfont icon-kanjia"></view>
</view>
<view class="">砍价中</view>
</view>
</view>
</view>
<view class="content-box" style="padding: 46rpx 42rpx 42rpx;">
<view class="bargain-info-box acea-row row-between">
<image class="rule-tishi" src="../../../static/images/icon-tishi.png" mode="" @click="showRule"></image>
<view class="circle-info-box">
<view class="circle-info acea-row row-column row-center-wrapper">
<view class="price">¥<text>{{ bargainHelpCount.alreadyPrice || 0 }}</text></view>
<view class="text">已减</view>
</view>
</view>
<view class="right-info-box">
<view class="" v-if="bargainUserInfo && bargainUid != userInfo.uid">
<view class="">您的好友已砍{{ bargainHelpCount.alreadyPrice || 0 }}</view>
<view class="">助力ta再砍一刀</view>
</view>
<view class="" v-if="bargainUid == userInfo.uid">
<view class="">{{bargainHelpCount.price === 0?'':'加油!'}}</view>
<view v-if="bargainHelpCount.price === 0">恭喜您砍价成功!</view>
<view v-else class="">还可再砍{{bargainHelpCount.price || 0}}</view>
</view>
<view class="progress-box">
<view class="acea-row row-between">
<view class="">砍价进度</view>
<view class="">{{bargainHelpCount.pricePercent + '%'}}</view>
</view>
<view class="progress">
<view class="on" :style="{ width: bargainHelpCount.pricePercent + '%' }"></view>
</view>
</view>
</view>
</view>
<view class="btn-box">
<view class="acea-row row-center">
<!-- 参与砍价按钮 同一人-->
<view v-if="participate" class="btn bg-color-red big" @click="goParticipate">立即发起砍价</view>
<!-- 邀请好友按钮 -->
<button class="btn bg-color-red big" open-type="share" v-if="inviteFriends">邀请好友砍一刀</button>
<!-- <view class="btn bg-color-red big" v-if="inviteFriends" @click="goPoster">邀请好友砍一刀</view> -->
<!-- 支付按钮 -->
<view class="btn bg-color-red big" @click="goPay" v-if="pay">立即支付</view>
</view>
<view class="acea-row row-between">
<!-- 帮砍好友砍按钮 -->
<view v-if="helpFriendsBargain" class="btn bg-color-red" @click="getBargainHelp">帮好友砍一刀</view>
<!-- 发起砍价按钮 非同一人-->
<view v-if="bargain" class="btn" @click="getBargainStart">我也要砍价</view>
</view>
</view>
<view class="help-user-box">
<view class="acea-row row-between-wrapper">
<view class="title">助力好友记录</view>
<view class="people">{{bargainShare.userCount || 0}}人已砍价</view>
</view>
<view class="list-box">
<view class="item acea-row row-column row-middle" v-for="(item, bargainHelpListIndex) in bargainHelpList" :key="bargainHelpListIndex">
<view class="img-box">
<image v-if="item.avatar" class="avatar" :src="item.avatar" mode=""></image>
<view class="noAvatar acea-row row-middle row-center" v-else>
<image src="@/static/images/yanjie-logo.png" mode="widthFix"></image>
</view>
</view>
<view class="name line1" v-text="item.nickname || '微信用户'"></view>
<view class="money">-¥{{ item.price }}</view>
</view>
</view>
</view>
</view>
<!-- 当前登录的用户和url上携带的用户id不一致视为被邀请砍价 -->
<view class="wrapper bargain-box on user" v-if="bargainUserInfo && bargainUid != userInfo.uid">
<!-- <view class="people">
<!-- <view class="wrapper bargain-box on user" v-if="bargainUserInfo && bargainUid != userInfo.uid">
<view class="people">
{{ bargainShare.lookCount }}人查看 {{ bargainShare.shareCount }}人分享 {{ bargainShare.userCount }}人参与
</view> -->
<!-- 帮助砍价帮砍成功-->
</view>
帮助砍价帮砍成功
<view class="pictxt acea-row row-center-wrapper">
<div class="bargain-header">
<view class="pictrue"><image :src="bargainUserInfo.avatar" /></view>
@ -16,13 +133,13 @@
</view>
</div>
</view>
</view>
<view class="wrapper bargain-box time on">
</view> -->
<!-- <view class="wrapper bargain-box time on">
<div class="pictxt">
<count-down :isDay="true" :tipText="'倒计时 '" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '" :secondText="' 秒'" :datatime="goodsDetail.stopTime"></count-down>
</div>
</view>
<view class="wrapper bargain-box bargain-product">
</view> -->
<!-- <view class="wrapper bargain-box bargain-product">
<view class="pictxt acea-row row-between-wrapper" @click="openAlone">
<view class="pictrue">
<image :src="goodsDetail.image" />
@ -44,42 +161,42 @@
</view>
</view>
<!-- 砍价进度条 -->
//
<view class="cu-progress acea-row row-middle round margin-top">
<view class="acea-row row-middle bg-red" :style="{ width: bargainHelpCount.pricePercent + '%' }"></view>
</view>
<!-- 砍价进度条下的金额 -->
//
<view class="balance acea-row row-between-wrapper">
<view v-text="`已砍${bargainHelpCount.alreadyPrice || 0}元`"></view>
<view v-if="bargainHelpCount.price === 0">砍价成功</view>
<view v-else v-text="`还剩${bargainHelpCount.price || 0}元`"></view>
</view>
<!-- 砍价成功-->
<!--
surplusPrice 砍价剩余金额为0
bargainUid 砍价人为发起砍价用
userBargainStatus 砍价状态
-->
//
// surplusPrice 0
// bargainUid
// userBargainStatus
<view class="bargainSuccess" v-if="pay">
<span class="iconfont icon-xiaolian"></span>
恭喜您砍价成功快去支付吧~
</view>
<!-- 参与砍价按钮 同一人-->
//
<view v-if="participate" class="bargainBnt" @click="goParticipate">立即发起砍价</view>
<!-- 邀请好友按钮 -->
//
<view v-if="inviteFriends" class="bargainBnt" @click="goPoster">邀请好友帮砍价</view>
<!-- 帮砍好友砍按钮 -->
//
<view v-if="helpFriendsBargain" class="bargainBnt" @click="getBargainHelp">帮好友砍一刀</view>
<!-- 发起砍价按钮 非同一人-->
//
<view v-if="bargain" class="bargainBnt" @click="getBargainStart">我也要砍价</view>
<!-- 支付按钮 -->
//
<view class="bargainBnt" @click="goPay" v-if="pay">立即支付</view>
<view class="bargainBnt on" @click="goList">抢更多商品</view>
@ -89,8 +206,9 @@
位好友成功帮您砍价
</view>
<view class="lock"></view>
</view>
<view class="bargainGang bargain-box">
</view> -->
<!-- <view class="bargainGang bargain-box">
<view class="title font-color-red acea-row row-center-wrapper">
<view class="pictrue"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view>
<view class="titleCon">砍价帮</view>
@ -113,8 +231,8 @@
</view>
<view class="load font-color-red" v-if="!helpListStatus" @click="getBargainHelpList">点击加载更多</view>
<view class="lock"></view>
</view>
<view class="goodsDetails bargain-box">
</view> -->
<!-- <view class="goodsDetails bargain-box">
<view class="title font-color-red acea-row row-center-wrapper">
<view class="pictrue"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view>
<view class="titleCon">商品详情</view>
@ -122,16 +240,17 @@
</view>
<view class="conter" v-html="goodsDetail.description"></view>
<view class="lock"></view>
</view>
<view class="goodsDetails bargain-box">
</view> -->
<!-- <view class="goodsDetails bargain-box">
<view class="title font-color-red acea-row row-center-wrapper">
<view class="pictrue"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view>
<view class="titleCon">活动规则</view>
<view class="pictrue on"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view>
</view>
<view class="conter" v-html="goodsDetail.rule"></view>
</view>
<view class="bargainTip" :class="active === true ? 'on' : ''">
</view> -->
<view @touchmove.stop.prevent class="bargainTip" :class="active === true ? 'on' : ''">
<view class="cutOff" v-if="bargainUid === userInfo.uid">
您已砍掉
<text class="font-color-red" v-text="bargainHelpPrice"></text>
@ -144,7 +263,12 @@
<view class="tipBnt" @click="goPoster" v-if="bargainUid === userInfo.uid">邀请好友帮砍价</view>
<view class="tipBnt" @click="getBargainStart" v-else>我也要参与</view>
</view>
<view class="mask" @touchmove.prevent :hidden="active === false" @click="close"></view>
<view class="mask" @touchmove.stop.prevent :hidden="active === false && isShowRule === false" @click="close">
<view class="bargainTip" style="padding-bottom: 0;" :class="isShowRule === true ? 'on' : ''">
<view class="rule-content" v-html="goodsDetail.rule"></view>
</view>
</view>
</view>
</template>
<script>
@ -176,8 +300,13 @@ export default {
limit: 2, //
pricePercent: 0, //
bargainShare: {}, //
bargainHelpCount: {}, //
goodsDetail: {}, //
bargainHelpCount: {
pricePercent: 0
}, //
goodsDetail: {
minPrice: '',
price: '',
}, //
bargainUserInfo: [], //
bargainUid: 0, //
pay: false, //
@ -187,6 +316,7 @@ export default {
helpFriendsBargain: false, //
bargainSuccess: false, //
mainBargainSuccess: false, //
isShowRule: false, //
}
},
computed: mapGetters(['userInfo', 'isLogin']),
@ -220,6 +350,7 @@ export default {
if (that.bargainUid !== that.userInfo.uid) {
that.getBargainStartUser()
}
that.getBargainHelpList();
},
//
goParticipate() {
@ -521,7 +652,7 @@ export default {
})
.then(res => {
that.bargainUserInfo = res.data
that.getBargainHelpList()
// that.getBargainHelpList()
})
.catch(res => {
uni.showToast({
@ -533,37 +664,392 @@ export default {
},
//
close: function () {
this.active = false
this.active = false;
this.isShowRule = false;
},
showRule() {
// console.log('asdqwer')
// this.active = true;
this.isShowRule = true;
},
//
onShareAppMessage: function () {
return {
title: this.storeInfo.title,
imageUrl: this.storeInfo.image,
path: 'pages/activity/DargainDetails/index?id=' + this.storeInfo.id + '&spread=' + uni.getStorageSync('uid'),
success(res) {
uni.showToast({
title: '分享成功',
})
},
fail(res) {
uni.showToast({
title: '分享失败',
icon: 'none',
})
},
}
},
// onShareAppMessage: function () {
// return {
// title: this.storeInfo.title,
// imageUrl: this.storeInfo.image,
// path: 'pages/activity/DargainDetails/index?id=' + this.storeInfo.id + '&spread=' + uni.getStorageSync('uid'),
// success(res) {
// uni.showToast({
// title: '',
// })
// },
// fail(res) {
// uni.showToast({
// title: '',
// icon: 'none',
// })
// },
// }
// },
},
onShareAppMessage() {
return {
path: `/pages/activity/DargainDetails/index/?id=${this.$yroute.query.id}&partake=${this.userInfo.uid}`,
title: this.goodsDetail.title,
imageUrl: this.goodsDetail.image,
path: `/pages/activity/DargainDetails/index/?id=${this.bargainId}&partake=${this.bargainUid}`,
}
},
}
</script>
<style lang="less">
<style lang="less" scoped>
.header {
.tab-title {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 600;
color: #2DB5AE;
line-height: 42rpx;
}
.backImg {
width: 88rpx;
height: 62rpx;
padding-left: 26rpx;
image {
width: 100%;
height: 100%;
}
}
}
.content-box {
margin: 20rpx 32rpx;
width: 686rpx;
// height: 317px;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
position: relative;
.banner {
width: 100%;
height: 428rpx;
border-radius: 16rpx 16rpx 0rpx 0rpx;
position: relative;
swiper {
width: 100%;
height: 100%;
border-radius: 16rpx 16rpx 0rpx 0rpx;
swiper-item {
border-radius: 16rpx 16rpx 0rpx 0rpx;
image {
width: 100%;
height: 100%;
border-radius: 16rpx 16rpx 0rpx 0rpx;
}
}
}
.dots {
position: absolute;
bottom: 16rpx;
left: 50%;
transform: translateX(-50%);
.dot {
margin: 0rpx 8rpx;
width: 8rpx;
height: 8rpx;
background: #FFFFFF;
border-radius: 50%;
}
.on {
width: 34rpx;
background: #2DB5AE;
border-radius: 6rpx;
}
}
}
.link-icon {
width: 32rpx;
height: 80rpx;
position: absolute;
bottom: -54rpx;
z-index: 2;
}
.left {
left: 54rpx;
}
.right {
right: 54rpx;
}
}
.content-box .goods-info {
padding: 24rpx 24rpx 42rpx;
.price-box {
font-size: 48rpx;
font-family: Futura;
font-weight: 600;
color: #3A3A3C;
line-height: 64rpx;
.productPrice {
font-size: 30rpx;
color: #999999;
line-height: 40rpx;
padding-left: 16rpx;
padding-top: 18rpx;
}
}
.goods-name {
font-size: 34rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #3A3A3C;
line-height: 50rpx;
}
.info-text {
font-size: 20rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #999999;
line-height: 28rpx;
}
}
.content-box .bargain-state-box {
position: absolute;
top: 0;
right: 24rpx;
width: 112rpx;
height: 88rpx;
overflow: hidden;
padding-left: 20rpx;
.bargain-state {
width: 72rpx;
height: 88rpx;
border-radius: 0rpx 0rpx 20rpx 20rpx;
background: #2DB5AE;
font-size: 18rpx;
font-family: PingFang SC;
font-weight: 600;
color: #F5F6F8;
line-height: 18rpx;
text-align: center;
padding-top: 2rpx;
.iconfont.icon-kanjia {
font-size: 46rpx;
color: #F5F6F8;
font-weight: 500;
line-height: 46rpx;
}
.icon {
width: 46rpx;
height: 46rpx;
margin: 10rpx auto 0rpx;
}
}
.bargain-state::after {
width: 40rpx;
height: 40rpx;
content: "";
position: absolute;
top: 0rpx;
left: -20rpx;
border-radius: 18rpx;
box-shadow: 18rpx -18rpx 0rpx #2DB5AE;
}
.bargain-state::before {
width: 40rpx;
height: 40rpx;
content: "";
position: absolute;
top: 0rpx;
right: -20rpx;
border-radius: 18rpx;
box-shadow: -18rpx -18rpx 0rpx #2DB5AE;
}
}
.content-box {
.bargain-info-box {
position: relative;
.rule-tishi {
width: 42rpx;
height: 42rpx;
position: absolute;
top: 0;
right: 0;
z-index: 2;
}
.circle-info-box {
width: 162rpx;
height: 162rpx;
box-shadow: 0rpx 0rpx 20rpx 6rpx rgba(0,0,0,0.08);
padding: 4rpx;
background: linear-gradient(135deg, rgba(27, 141, 204, 1), rgba(57, 211, 150, 1));
border-radius: 50%;
.circle-info {
width: 100%;
height: 100%;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
border-radius: 50%;
.price {
font-size: 42rpx;
// font-size: 60rpx;
font-family: Futura;
font-weight: 500;
color: #F5F6F8;
line-height: 64rpx;
}
.text {
width: 124rpx;
border-top: 2rpx solid #F5F6F8;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #F5F6F8;
line-height: 32rpx;
text-align: center;
}
}
}
.right-info-box {
padding-top: 6rpx;
width: 416rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 600;
color: #3A3A3C;
line-height: 48rpx;
.progress-box {
padding-top: 10rpx;
width: 100%;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #2DB5AE;
line-height: 26rpx;
.progress {
width: 100%;
height: 12rpx;
margin-top: 12rpx;
background: #D8D8D8;
border-radius: 6rpx;
overflow: hidden;
.on {
height: 100%;
background: #2DB5AE;
border-radius: 6rpx;
transition: width 0.6s ease;
}
}
}
}
}
.btn-box {
padding-top: 28rpx;
.btn {
width: 290rpx;
height: 70rpx;
background: #98DAD7;
// background: #2DB5AE;
border-radius: 16rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 600;
color: #F5F6F8;
line-height: 70rpx;
text-align: center;
}
.big {
width: 100%;
}
}
}
.content-box .help-user-box {
padding-top: 26rpx;
.title {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 600;
color: #3A3A3C;
line-height: 38rpx;
}
.people {
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #2DB5AE;
line-height: 26rpx;
}
.list-box {
padding: 0rpx 14rpx 24rpx;
width: 600rpx;
min-height: 204rpx;
margin-top: 10rpx;
box-shadow: inset 0rpx 0rpx 10rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
.item {
width: 84rpx;
padding-top: 24rpx;
margin: 0rpx 14rpx;
.img-box {
width: 84rpx;
height: 84rpx;
box-shadow: 0rpx 0rpx 20rpx 6rpx rgba(0,0,0,0.08);
padding: 4rpx;
background: linear-gradient(135deg, rgba(27, 141, 204, 1), rgba(57, 211, 150, 1));
border-radius: 50%;
.avatar {
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #FFFFFF;
}
.noAvatar {
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #FFFFFF;
padding-left: 6rpx;
padding-right: 5rpx;
image {
width: 100%;
}
}
}
.name {
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A3A3C;
line-height: 26rpx;
padding: 14rpx 0rpx 8rpx;
text-align: center;
}
.money {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 600;
color: #3A3A3C;
line-height: 32rpx;
text-align: center;
}
}
}
}
.bargainTip {
.rule-content {
padding: 24rpx;
min-height: 300rpx;
max-height: 600rpx;
overflow-y: scroll;
}
}
.bargain {
&.on {
.bargain-box {
@ -573,21 +1059,21 @@ export default {
border: 0;
}
.header {
height: auto;
text-align: left;
// .header {
// height: auto;
// text-align: left;
.time {
text-align: left;
font-size: 24rpx;
// .time {
// text-align: left;
// font-size: 24rpx;
margin: 0;
padding: 0;
padding: 20rpx;
width: auto;
height: auto;
}
}
// margin: 0;
// padding: 0;
// padding: 20rpx;
// width: auto;
// height: auto;
// }
// }
}
}

433
pages/activity/DargainGoodsDetails/index.vue

@ -0,0 +1,433 @@
<template>
<view class="product-con">
<view class="header">
<cu-custom :isBack="true" :isCenter="true" >
<block slot="backText">
<view class="backImg">
<image src="@/static/images/back-btn.png" mode=""></image>
</view>
</block>
</cu-custom>
</view>
<!-- 商品轮播 -->
<product-con-swiper :imgUrls="imgUrls"></product-con-swiper>
<view class="tui-pro-detail">
<view class="activity-info-box">
<view class="tui-right__box">
<view class="acea-row row-middle row-center">
<view class="iconfont icon-kanjia"></view>
<text>砍价活动</text>
</view>
<view class="count-down-box">
<count-down :isSecond="false" :datatime="goodsDetail.stopTime" :styleAllStyle="styleAllStyle" :timeTxtStyle="timeTxtStyle"></count-down>
</view>
</view>
</view>
<view class="tui-pro-price">
<text class="tui-price">¥{{goodsDetail.minPrice}}</text>
<view class="tui-original-price">¥{{goodsDetail.price}}</view>
</view>
<view class="tui-pro-title">{{ goodsDetail.title }}</view>
<view class="tui-pro-info">{{ goodsDetail.info }}</view>
<view class="tui-sale-info">
<view class="tips acea-row">
<view class="tip">甄选品牌</view>
</view>
<view>库存{{ goodsDetail.stock }}{{ goodsDetail.unitName }}</view>
</view>
</view>
<view class="safeguard-info acea-row row-between-wrapper">
<view class="safeguard-item">
<image class="img" src="@/static/images/by.png" mode=""></image>
<view>{{199}}包邮</view>
</view>
<view class="line"></view>
<view class="safeguard-item">
<image class="img" src="@/static/images/fxt.png" mode=""></image>
<view>7天无理由</view>
</view>
<view class="line"></view>
<view class="safeguard-item">
<image class="img" src="@/static/images/bj.png" mode=""></image>
<view>30天保价</view>
</view>
</view>
<!-- 用户评价 -->
<!-- <view class="userEvaluation" v-if="replyCount">
<view class="title acea-row row-between-wrapper" @click="goEvaluateList(storeInfo.productId)">
<view class="acea-row row-middle"><text>评价</text><text class="replyCount">{{ replyCount }}</text></view>
<view @click="goEvaluateList(id)" class="praise acea-row row-middle">
<view>好评率{{ replyChance }}%</view>
<view class="jiantou-right"></view>
</view>
</view>
<user-evaluation :reply="reply"></user-evaluation>
</view> -->
<view class="product-intro">
<view class="title">商品展示</view>
<view class="conter" v-html="goodsDetail.description"></view>
</view>
<view :style="addBottom?'height: 162rpx;':'height: 122rpx;'"></view>
<!--底部操作栏-->
<view class="tui-operation acea-row row-between" :style="addBottom?'height: 162rpx;':'height: 122rpx;'">
<view class="tui-operation-left acea-row row-between">
<!-- #ifdef MP-WEIXIN -->
<button class="tui-operation-item" open-type="contact" hover-class="tui-opcity" :hover-stay-time="150">
<image src="@/static/images/service-icon.png" mode=""></image>
<view class="tui-operation-text">客服</view>
</button>
<!-- #endif -->
<view @click="goShoppingCart" class="tui-operation-item">
<image src="@/static/images/cart-icon.png" mode=""></image>
<view class="tui-operation-text">购物车</view>
</view>
<!-- <view class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150" @click="setCollect">
<image v-if="userCollect" src="@/static/images/star-light.png" mode=""></image>
<image v-else src="@/static/images/star.png" mode=""></image>
<view class="tui-operation-text">{{userCollect?'已收藏':'收藏'}}</view>
</view> -->
</view>
<view class="tui-operation-right acea-row">
<view class="btn other-col" @click="openAlone">原价购买</view>
<view class="btn" @click="goDargain">发起砍价</view>
</view>
</view>
</view>
</template>
<script>
import ProductConSwiper from '@/components/ProductConSwiper';
import CountDown from '@/components/CountDown';
import { getBargainDetail } from '@/api/activity';
import { handleQrCode } from '@/utils/index'
export default {
components: {
ProductConSwiper,
CountDown,
},
data() {
return {
addBottom: this.addBottom,
goodsDetail: {},
bargainId: 0,
bargainUid: 0,
imgUrls: [],
styleAllStyle: 'width:30rpx;height:24rpx;background:#F5F6F8;border-radius:8rpx;font-size:20rpx;color:#3A3A3C;line-height:24rpx;',
timeTxtStyle: 'font-size:20rpx;color:#F5F6F8;line-height:24rpx;padding:0rpx 4rpx;',
};
},
onLoad() {
let url = handleQrCode()
// bargainId id
// bargainUid
if (url) {
//
this.bargainId = url.bargainId
// this.bargainUid = url.partake
} else {
//
this.bargainId = this.$yroute.query.id
// this.bargainUid = this.$yroute.query.partake
}
// if (this.bargainUid == 0 || !this.bargainUid) {
// // urluiduid
// this.bargainUid = this.userInfo.uid
// }
this.getBargainDetail();
},
methods: {
//
getBargainDetail() {
uni.showLoading({
title: '加载中',
mask: true,
})
getBargainDetail(this.bargainId).then(res => {
uni.hideLoading()
this.goodsDetail = res.data.bargain;
this.imgUrls.push(this.goodsDetail.image);
// console.log(this.goodsDetail);
this.goodsDetail.description = this.goodsDetail.description.replace(/\<img/gi, '<img style="max-width:100%;height:auto;"');
this.goodsDetail.rule = this.goodsDetail.rule.replace(/\<img/gi, '<img style="max-width:100%;height:auto;"');
}).catch(res => {
uni.hideLoading()
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000,
})
})
},
goShoppingCart() {
uni.setStorageSync('pathToCart', '/pages/activity/DargainGoodsDetails/index?id='+ this.bargainId +'&partake=0');
this.$yrouter.switchTab('/pages/shop/ShoppingCart/index');
},
//
openAlone() {
this.$yrouter.push({
path: '/pages/shop/GoodsCon/index',
query: {
id: this.goodsDetail.productId,
},
})
},
goDargain() {
this.$yrouter.push({
path: "/pages/activity/DargainDetails/index",
query: { id: this.bargainId, partake: 0 }
});
}
}
}
</script>
<style lang="less" scoped>
.header {
.tab-title {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 600;
color: #2DB5AE;
line-height: 42rpx;
}
.backImg {
width: 88rpx;
height: 62rpx;
padding-left: 26rpx;
image {
width: 100%;
height: 100%;
}
}
}
.tui-pro-detail {
margin: 8rpx 32rpx 20rpx;
width: 686rpx;
// height: 230rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
padding: 24rpx;
position: relative;
}
.activity-info-box {
position: absolute;
top: 0rpx;
right: 24rpx;
width: 220rpx;
height: 74rpx;
overflow: hidden;
.tui-right__box {
padding-top: 8rpx;
width: 188rpx;
height: 74rpx;
background: #2DB5AE;
border-radius: 0rpx 0rpx 16rpx 16rpx;
position: relative;
z-index: 1;
margin: 0rpx 16rpx;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 26rpx;
.iconfont.icon-kanjia {
font-size: 26rpx;
font-weight: 500;
line-height: 26rpx;
margin-right: 6rpx;
}
.count-down-box {
padding-top: 6rpx;
padding-left: 10rpx;
}
}
.tui-right__box::after {
width: 32rpx;
height: 32rpx;
content: "";
position: absolute;
top: 0;
left: -32rpx;
border-radius: 16rpx;
box-shadow: 16rpx -16rpx 0rpx #2DB5AE;
}
.tui-right__box::before {
width: 32rpx;
height: 32rpx;
content: "";
position: absolute;
top: 0;
right: -32rpx;
border-radius: 16rpx;
box-shadow: -16rpx -16rpx 0rpx #2DB5AE;
}
}
.tui-pro-price {
font-size: 48rpx;
font-family: Futura;
font-weight: 600;
color: #3A3A3C;
line-height: 64rpx;
display: flex;
.tui-original-price {
padding-top: 18rpx;
font-size: 30rpx;
font-family: Futura;
font-weight: 600;
color: #999999;
line-height: 40rpx;
padding-left: 16rpx;
text-decoration: line-through;
}
}
.tui-pro-title {
font-size: 34rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #3A3A3C;
line-height: 50rpx;
}
.tui-pro-info {
font-size: 20rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #999999;
line-height: 28rpx;
}
.tui-sale-info {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 16rpx;
font-size: 20rpx;
font-family: SourceHanSansSCVF;
font-weight: 500;
color: #999999;
line-height: 28rpx;
.tips {
padding-top: 4rpx;
.tip {
width: 80rpx;
height: 26rpx;
background: #2DB5AE;
border-radius: 6rpx;
margin-right: 4rpx;
font-size: 16rpx;
font-family: PingFang SC;
color: #FFFFFF;
line-height: 26rpx;
text-align: center;
margin-right: 20rpx;
}
}
}
.safeguard-info {
width: 686rpx;
height: 120rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
padding: 18rpx 0rpx;
margin: 0rpx 32rpx 20rpx;
.safeguard-item {
width: 226rpx;
font-size: 20rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #999999;
line-height: 28rpx;
text-align: center;
.img {
width: 46rpx;
height: 46rpx;
}
}
.line {
width: 2rpx;
height: 84rpx;
background-color: #979797;
}
}
.tui-operation {
width: 100%;
position: fixed;
z-index: 100;
bottom: 0;
left: 0;
background: #F1F1F1;
box-shadow: 0rpx -4rpx 38rpx 0rpx rgba(0,0,0,0.2);
border-radius: 28rpx 28rpx 0rpx 0rpx;
.tui-operation-left {
padding: 12rpx 28rpx;
width: 220rpx;
// width: 330rpx;
.tui-operation-item {
width: 60rpx;
display: flex;
align-items: center;
flex-direction: column;
background: none;
padding: 0;
margin: 0;
border: 0;
image {
width: 50rpx;
height: 50rpx;
}
&:after {
display: none;
}
.tui-operation-text {
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
color: #3A3A3C;
line-height: 22rpx;
}
}
}
.tui-operation-right {
padding-top: 18rpx;
padding-right: 18rpx;
.btn {
width: 186rpx;
height: 66rpx;
background: #2DB5AE;
border-radius: 16rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 66rpx;
text-align: center;
margin-right: 14rpx;
}
.other-col {
background: #98DAD7;
}
}
}
</style>

35
pages/activity/GroupDetails/index.vue

@ -21,23 +21,16 @@
<view class="activity-info-left acea-row row-column row-middle">
<view class="people-icon-box" :style="'width:'+ (22*storeInfo.people - 4*(storeInfo.people - 1)) +'rpx;'">
<view class="item" v-for="(item,index) in storeInfo.people" :key="index" :style="'left:'+(18*index)+'rpx;z-index:'+(storeInfo.people - index)+';'">
<image v-if="index < 3" src="../../../static/images/group-icon.png" mode=""></image>
<image v-else src="../../../static/images/group-light-icon.png" mode=""></image>
<image src="../../../static/images/group-icon.png" mode=""></image>
<!-- <image src="../../../static/images/group-light-icon.png" mode=""></image> -->
</view>
</view>
<view class="">3/{{ storeInfo.people }}已参团</view>
<!-- <view class="">3/{{ storeInfo.people }}已参团</view> -->
</view>
<view class="activity-info-right">
<view class="people-num">{{ storeInfo.people }}</view>
<view class="text">人团</view>
</view>
<!-- <view class="acea-row row-middle row-center">
<image class="icon" src="../../../static/images/seckill-icon.png" mode=""></image>
<text>{{ seckillStatus != 2 ? '限时秒杀中' : seckillStatus == 1 ? '活动已结束' : '即将开抢' }}</text>
</view>
<view class="count-down-box">
<count-down :isSecond="false" :datatime="datatime" :styleAllStyle="styleAllStyle" :timeTxtStyle="timeTxtStyle"></count-down>
</view> -->
</view>
</view>
<!-- <view class="tui-price__box"> -->
@ -136,7 +129,7 @@
<view class="pictrue">
<image :src="item.avatar" class="image" />
</view>
<view class="text line1" v-text="item.nickname"></view>
<view class="text line1" v-text="item.nickname || '微信用户'"></view>
</view>
<view class="right acea-row row-middle">
<view>
@ -149,7 +142,9 @@
</view>
<view class="spellBnt" @click="groupRule(item.id)">
去拼单
<text class="iconfont icon-jiantou"></text>
</view>
</view>
</view>
@ -234,7 +229,7 @@
<view class="tui-operation-right acea-row">
<view class="btn other-col" @click="openAlone">单独购买</view>
<view class="btn" @click="openTeam">报名参</view>
<view class="btn" @click="openTeam">发起拼</view>
<!-- <view class="tui-flex-1">
<tui-button height="100rpx" :size="26" type="warning" shape="rightAngle" @click="openAlone">
<view class="tui-btn__box">
@ -375,7 +370,8 @@ export default {
}
},
goShoppingCart() {
this.$yrouter.switchTab('/pages/shop/ShoppingCart/index')
uni.setStorageSync('pathToCart', '/pages/activity/GroupDetails/index?id='+ this.$yroute.query.id);
this.$yrouter.switchTab('/pages/shop/ShoppingCart/index');
},
//
setCollect: function() {
@ -760,6 +756,9 @@ export default {
height: 26rpx;
position: relative;
// padding-bottom: 2rpx;
margin-top: 8rpx;
.item {
width: 22rpx;
height: 24rpx;
@ -1352,11 +1351,11 @@ export default {
// flex: 1;
// }
.tui-img__clock {
width: 30rpx;
height: 30rpx;
margin-right: 8rpx;
}
// .tui-img__clock {
// width: 30rpx;
// height: 30rpx;
// margin-right: 8rpx;
// }
/*底部操作栏*/

1206
pages/activity/GroupRule/index.vue

File diff suppressed because it is too large Load Diff

54
pages/activity/SeckillDetails/index.vue

@ -786,38 +786,38 @@ export default {
line-height: 28rpx;
}
.tui-share-btn {
display: block;
background: transparent;
margin: 0;
padding: 0;
border-radius: 0;
border: 0;
}
// .tui-share-btn {
// display: block;
// background: transparent;
// margin: 0;
// padding: 0;
// border-radius: 0;
// border: 0;
// }
.tui-share-btn::after {
border: 0;
}
// .tui-share-btn::after {
// border: 0;
// }
.tui-share-box {
display: flex;
align-items: center;
}
// .tui-share-box {
// display: flex;
// align-items: center;
// }
.tui-share-position {
position: absolute;
right: 0;
top: 30rpx;
}
// .tui-share-position {
// position: absolute;
// right: 0;
// top: 30rpx;
// }
.tui-share-text {
padding-left: 8rpx;
}
// .tui-share-text {
// padding-left: 8rpx;
// }
.tui-sub-title {
padding: 20rpx 0;
line-height: 32rpx;
}
// .tui-sub-title {
// padding: 20rpx 0;
// line-height: 32rpx;
// }
.tui-sale-info {
display: flex;

30
pages/activity/activity/index.vue

@ -57,25 +57,27 @@
<image class="goods-img" :src="item.image" mode="aspectFill"></image>
<view class="info-box">
<view class="name line1">{{item.title}}</view>
<view class="progress-box">
<view class="acea-row row-between" v-if="activityType === 0">
<view class="progress-box" v-if="activityType === 0">
<view class="acea-row row-between">
<text>{{activityType == 0?'秒杀':activityType == 1?'拼团':'砍价'}}剩余</text>
<text>{{100 - item.percent}}%</text>
</view>
<view class="progress" v-if="activityType === 0">
<view class="progress">
<view class="bg-red" :style="'width:'+ (100 - item.percent) + '%'"></view>
<!-- <view class="bg-red" :style="{ width: loading ? item.percent + '%' : '' }"></view> -->
</view>
</view>
<view class="original-price" v-if="activityType !== 0">
<view class="otPrice">{{activityType == 1?'单买价 ':'原价 '}}¥{{activityType == 1?item.productPrice:item.price}}</view>
</view>
<view class="acea-row row-between">
<view class="acea-row">
<view class="price">
{{activityType == 0?'秒杀':activityType == 1?'拼团':'砍价'}}<text>¥{{activityType != 2?item.price:item.minPrice}}</text>
{{activityType == 0?'秒杀':activityType == 1?'拼团':'可砍至'}}<text>¥{{activityType != 2?item.price:item.minPrice}}</text>
</view>
<view class="otPrice">¥{{activityType == 0?item.otPrice:activityType == 1?item.productPrice:item.price}}</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?'立即秒杀':'发起' + (activityType == 1?'拼团':'砍价')}}</view>
</view>
</view>
@ -189,9 +191,13 @@
})
} else {
this.$yrouter.push({
path: "/pages/activity/DargainDetails/index",
path: "/pages/activity/DargainGoodsDetails/index",
query: { id, partake: 0 }
});
// this.$yrouter.push({
// path: "/pages/activity/DargainDetails/index",
// query: { id, partake: 0 }
// });
}
},
seckillInfo() {
@ -507,6 +513,14 @@
}
}
.original-price {
height: 60rpx;
padding-top: 20rpx;
.otPrice {
text-decoration: none;
}
}
.price {
font-size: 30rpx;
font-family: PingFang SC;

298
pages/order/Logistics/index.vue

@ -1,6 +1,53 @@
<template>
<view class="logistics">
<view class="header acea-row row-between row-top" v-for="cart in cartInfo" :key="cart.id">
<view class="header">
<cu-custom :isBack="true" :isCenter="true">
<block slot="backText">
<view class="backImg">
<image src="@/static/images/back-btn.png" mode=""></image>
</view>
</block>
<block slot="content">
<view class="tab-title">物流详情</view>
</block>
</cu-custom>
</view>
<view class="info-box acea-row row-between">
<view class="image-box">
<image :src="cartInfo[0].productInfo.image" mode="aspectFill"></image>
<view class="image-num" v-if="cartInfo.length > 1">{{cartInfo.length}}件商品</view>
</view>
<view class="info-text">
<view class="item">配送快递{{ orderInfo.deliveryName }}</view>
<view class="item">快递单号{{ orderInfo.deliveryId }}</view>
<view class="item" @click="cellPhone">联系电话{{95338}}</view>
</view>
</view>
<view class="state-box">
<view class="state-progress acea-row row-between">
<view class="acea-row row-column row-middle" v-for="(item,index) in stateList" :key="index">
<view class="state-tip">
<view v-if="index != 2" class="tip">{{item.tip}}</view>
<view v-else class="active-tip acea-row row-column row-middle">
<view class="box">{{item.tip}}</view>
<view class="jiantou"></view>
</view>
</view>
<view :class="'state-item ' + (index==2?'active':'')">
<view class=""></view>
</view>
</view>
<view class="state-line"></view>
</view>
<view class="acea-row row-between">
<view class="place">上海市</view>
<view class="place line1">武汉市</view>
</view>
</view>
<!-- <view class="header acea-row row-between row-top" v-for="cart in cartInfo" :key="cart.id">
<view class="pictrue">
<image :src="cart.productInfo.image" />
</view>
@ -11,8 +58,9 @@
<view>x{{ cart.cart_num }}</view>
</view>
</view>
</view>
<view class="logisticsCon" style="margin-bottom: 5px">
</view> -->
<!-- <view class="logisticsCon" style="margin-bottom: 5px">
<view class="company acea-row row-between-wrapper">
<view class="picTxt acea-row row-between-wrapper">
<view class="iconfont icon-wuliu"></view>
@ -27,9 +75,9 @@
</view>
</view>
</view>
<!-- #ifndef H5 -->
#ifndef H5
<view class="copy acea-row row-center-wrapper copy-data" @click="copyClipboard(orderInfo.deliveryId)">复制单号</view>
<!-- #endif -->
#endif
</view>
<view class="item" v-for="(express, expressListIndex) in expressList" :key="expressListIndex">
<view class="circular" :class="expressListIndex === 0 ? 'on' : ''"></view>
@ -38,16 +86,45 @@
<view class="data">{{ express.time }}</view>
</view>
</view>
</view>
</view> -->
<view class="logistics-progress">
<view class="title">物流详情</view>
<view>
<view class="track-rcol">
<view class="track-list">
<view>
<view class="track-list-item" v-for="(item, logisticsListindex) in logisticsList" :key="logisticsListindex">
<view class="active" v-if="logisticsListindex === 0">
<view></view>
<i class="node-icon"></i>
<text class="txt">{{ item.acceptStation }}</text>
<text class="time">{{ item.acceptTime }}</text>
</view>
<view v-if="logisticsListindex > 0 && logisticsListindex !== logisticsList.length - 1">
<i class="node-icon"></i>
<text class="txt">{{ item.acceptStation }}</text>
<text class="time">{{ item.acceptTime }}</text>
</view>
<view v-if="logisticsListindex === logisticsList.length - 1" class="finall">
<i class="div-spilander"></i>
<i class="node-icon"></i>
<text class="txt">{{ item.acceptStation }}</text>
<text class="time">{{ item.acceptTime }}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 物流进度条 -->
<view class="div-bg bg-white" style="font-size:12px; background:#fff;">
<!--物流跟踪-->
<!-- 物流进度条 物流跟踪 -->
<!-- <view class="div-bg bg-white" style="font-size:12px; background:#fff;">
<view style="margin-bottom:5px;">
<view class="bg-white" style="width: 92%; margin-left: 4%;margin: auto;padding-left: 15px;padding-right: 15px;padding-top: 10px">
<view style="font-size: 26rpx;color: #111111; margin: 5px 0">
物流跟踪
<!--物流跟踪-->
</view>
<view>
<view class="track-rcol">
@ -78,16 +155,16 @@
</view>
</view>
</view>
</view>
</view> -->
<view class="no-express" v-if="loaded && !expressList.length">
<image :src="`${$VUE_APP_RESOURCES_URL}/images/noExpress.png`" />
</view>
<Recommend></Recommend>
<!-- <Recommend></Recommend> -->
</view>
</template>
<script>
import Recommend from '@/components/Recommend'
// import Recommend from '@/components/Recommend'
import { express, orderDetail } from '@/api/order'
import { copyClipboard } from '@/utils'
@ -96,13 +173,31 @@ const NAME = 'Logistics'
export default {
name: NAME,
components: {
Recommend,
// Recommend,
},
data: function() {
return {
id: '',
cartInfo: [],
orderInfo: {},
stateList: [
{
state: '',
tip: '已发货'
},
{
state: '',
tip: '运输中'
},
{
state: '',
tip: '派件中'
},
{
state: '',
tip: '已签收'
},
],
expressList: [],
loaded: false,
logisticsList: [
@ -131,6 +226,7 @@ export default {
let params = {
orderCode: this.id,
shipperCode: this.orderInfo.deliverySn,
// shipperCode: 'JTSD',
logisticCode: this.orderInfo.deliveryId,
}
express(params)
@ -164,7 +260,7 @@ export default {
}
this.getExpressInfo()
// const result = res.data.express.result || {};
// this.cartInfo = res.data.order.cartInfo;
this.cartInfo = res.data.cartInfo;
// this.expressList = result.list || [];
// this.loaded = true;
})
@ -176,11 +272,183 @@ export default {
})
})
},
cellPhone() {
uni.makePhoneCall({
phoneNumber: '18062552948',
fail: function () {
console.log('取消');
}
});
}
},
}
</script>
<style scoped lang="less">
.header {
.tab-title {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 600;
color: #2DB5AE;
line-height: 42rpx;
}
.backImg {
width: 88rpx;
height: 62rpx;
padding-left: 26rpx;
image {
width: 100%;
height: 100%;
}
}
}
.info-box {
margin: 20rpx 32rpx;
width: 686rpx;
padding: 20rpx;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
.image-box {
width: 164rpx;
height: 164rpx;
border-radius: 16rpx;
position: relative;
image {
width: 100%;
height: 100%;
border-radius: 16rpx;
}
.image-num {
width: 144rpx;
height: 40rpx;
background: rgba(0, 0, 0, 0.5);
border-radius: 12rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 40rpx;
text-align: center;
position: absolute;
left: 10rpx;
bottom: 10rpx;
}
}
.info-text {
width: 442rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 32rpx;
.item {
padding-top: 16rpx;
}
}
}
.state-box {
margin: 0rpx 32rpx 20rpx;
width: 686rpx;
height: 208rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
.state-progress {
padding: 26rpx 23rpx 16rpx;
position: relative;
.state-tip {
width: 100rpx;
height: 60rpx;
margin-bottom: 16rpx;
font-family: PingFang SC;
font-weight: 600;
text-align: center;
.tip {
padding-top: 34rpx;
font-size: 18rpx;
color: #2DB5AE;
line-height: 26rpx;
}
.box {
width: 100rpx;
height: 44rpx;
background-color: #2DB5AE;
border-radius: 16rpx;
font-size: 24rpx;
color: #FFFFFF;
line-height: 46rpx;
text-align: center;
}
.jiantou {
width: 0;
height: 0;
border-top: 16rpx solid #2DB5AE;
border-bottom: 0rpx;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
}
}
.state-item {
width: 32rpx;
height: 32rpx;
padding: 4rpx;
border-radius: 50%;
position: relative;
z-index: 1;
view {
width: 24rpx;
height: 24rpx;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
border-radius: 50%;
}
}
.active {
background: linear-gradient(rgba(27, 141, 204, 1), rgba(45, 183, 173, 1), rgba(57, 211, 150, 1));
}
.state-line {
width: 538rpx;
height: 4rpx;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
position: absolute;
left: 74rpx;
top: 118rpx;
z-index: 0;
}
}
.place {
margin: 0rpx 6rpx;
width: 134rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 600;
color: #3A3A3C;
line-height: 32rpx;
text-align: center;
}
}
.logistics-progress {
margin: 0rpx 32rpx 20rpx;
padding: 20rpx;
width: 686rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
.title {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 600;
color: #3A3A3C;
line-height: 42rpx;
padding-bottom: 34rpx;
}
}
.no-express {
margin: 1.5 * 100rpx 0;
}

5
pages/order/MyOrder/index.vue

@ -219,9 +219,10 @@ export default {
DataFormat,
},
computed: mapGetters(['userInfo']),
onLoad() {
this.type = parseInt(this.$yroute.query.type) || 0
},
onShow: function() {
console.log(this)
this.type = parseInt(this.$yroute.query.type) || 0
this.changeType(this.type)
this.getOrderData()
this.getOrderList()

5
pages/order/OrderDetails/index.vue

@ -31,11 +31,16 @@
<image class="icon" src="../../../static/images/order-status4.png" mode=""></image>
<view class="status">交易完成</view>
</view>
<view class="acea-row row-middle" v-else-if="status.type === 6 || status.type === -1">
<image class="icon" src="../../../static/images/order-status1.png" mode=""></image>
<view class="status">{{ orderInfo._status._title }}</view>
</view>
<view class="data" :class="refundOrder ? 'on' : ''">
<view class="" v-if="status.type === 0 || status.type === 9">{{ orderInfo._status._msg }}</view>
<view class="" v-else-if="status.type === 1">{{ orderInfo._status._msg }}</view>
<view class="" v-else-if="status.type === 2">{{ orderInfo.deliveryName }}</view>
<view class="" v-else-if="status.type === 3 || status.type === 4">您已签收</view>
<view class="" v-else>{{ orderInfo._status._msg }}</view>
<view class="tip" v-if="status.type === 0">未付款订单超时将关闭</view>
<!-- <view class="state">{{ orderInfo._status._msg }}</view>
<view>{{ orderInfo.createTime || '' }}</view> -->

175
pages/order/OrderReturnDetail/index.vue

@ -34,10 +34,31 @@
<view class="progress-text" v-if="orderDetail.salesState === 2">商家已拒绝售后申请</view>
</view>
<view class="current-progress">
<view class="current-progress acea-row">
<view class="item" v-for="(item,index) in returnStateLs" :key="index">
<view class="tips-box">
<view class="acea-row row-column row-middle" v-if="orderDetail.salesState === 0 && (orderDetail.state == item.state)">
<view class="box">{{item.tip}}</view>
<view class="jiantou"></view>
</view>
</view>
<view class="state-box" :style="item.stateText == '处理完成'?'margin-right: 0rpx;':''">
<view class="state">{{item.stateText}}</view>
</view>
</view>
<view class="line"></view>
</view>
<view class="info-item">
<view class="title">问题描述</view>
<view class="info">{{orderDetail.explains}}</view>
</view>
<view class="info-item">
<view class="title">图片凭证</view>
<view class="acea-row row-between">
<image src="" mode="" v-for="(item, index) in 3" :key="index"></image>
</view>
</view>
</view>
<!-- <view class="data bgRed">
@ -66,10 +87,11 @@
<view v-if="orderDetail.salesState === 2">
商家已拒绝售后申请
</view>
</view> -->
</view> -->
<!-- 退款总金额 -->
<view class="money">
<view class="top">
<!-- <view class="money"> -->
<!-- <view class="top">
<text>退款总金额</text>
<text class="colorRed">{{ orderDetail.refundAmount || 0 }}</text>
</view>
@ -78,15 +100,17 @@
<view class="info people"> 收货人 {{ orderDetail.consignee || '' }} </view>
<view class="info address"> 收货地址 {{ orderDetail.address || '' }} </view>
<view class="info phone"> 收货电话 {{ orderDetail.phoneNumber || '' }} </view>
</view>
</view> -->
<!-- 退款信息 -->
<view class="tips" v-if="orderDetail.state === 0">
<!-- <view class="tips" v-if="orderDetail.state === 0">
<text class="title">您已成功发起退款申请请耐心等待商家处理</text>
<view class="content">
<view>· 卖家同意或超时未处理系统将退款给您</view>
<view>· 如果卖家拒绝您可以修改退款申请后再次发起卖家会重新处理</view>
</view>
</view>
</view> -->
<!-- 撤销 -->
<!-- <view class="tips" v-if="orderDetail.serviceType === 1 && orderDetail.state >= 2">
<text class="title">您已撤销售后申请</text>
@ -103,14 +127,17 @@
<view>· </view>
</view>
</view> -->
<view class="bottom">
<!-- <view class="bottom">
<view class="btns redBtn" v-if="orderDetail.salesState === 0 && orderDetail.serviceType === 1 && orderDetail.state === 1" @click="toExpress">填写物流</view>
<view class="btns def" v-if="orderDetail.salesState === 0" @click="cancelReq">撤销申请</view>
<!-- <view class="btns redBtn" @click="editReq">修改申请</view>-->
</view>
</view>
<view class="btns def" v-if="orderDetail.salesState === 0" @click="cancelReq">撤销申请</view>
<view class="btns redBtn" @click="editReq">修改申请</view>
</view> -->
<!-- </view> -->
<!-- 退款信息 -->
<view class="rebackInfo">
<!-- <view class="rebackInfo">
<view class="top">
退款信息
</view>
@ -157,7 +184,7 @@
</view>
</view>
</view>
</view>
</view> -->
</view>
</template>
@ -169,7 +196,36 @@ export default {
orderId: '',
id: '',
orderInfo: {},
orderDetail: {},
orderDetail: {},
returnStateLs: [
{
stateText: '提交申请',
tip: '已申请',
state: 0
},
{
stateText: '申请审核',
tip: '已审核',
state: 1
},
{
stateText: '售后收货',
tip: '待收货',
state: 2,
serviceType: 1
},
{
stateText: '进行退款',
tip: '已退款',
state: 1,
serviceType: 0
},
{
stateText: '处理完成',
tip: '已完成',
state: 3
},
]
}
},
mounted() {
@ -287,6 +343,93 @@ export default {
}
}
}
.current-progress {
padding-top: 20rpx;
position: relative;
.item {
position: relative;
z-index: 1;
.tips-box {
width: 80rpx;
height: 48rpx;
margin-left: 6rpx;
margin-bottom: 8rpx;
.box {
width: 80rpx;
height: 36rpx;
background-color: #2DB5AE;
border-radius: 16rpx;
font-size: 18rpx;
font-family: PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 36rpx;
text-align: center;
}
.jiantou {
width: 0;
height: 0;
border-top: 12rpx solid #2DB5AE;
border-left: 6rpx solid transparent;
border-bottom: 0rpx solid transparent;
border-right: 6rpx solid transparent;
}
}
.state-box {
width: 92rpx;
height: 92rpx;
background: linear-gradient(rgba(27, 141, 204, 1), rgba(45, 183, 173, 1), rgba(57, 211, 150, 1));
border-radius: 50%;
padding: 4rpx;
margin-right: 42rpx;
.state {
width: 100%;
height: 100%;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
border-radius: 50%;
font-size: 18rpx;
font-family: PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 84rpx;
text-align: center;
}
}
}
.line {
position: absolute;
top: 120rpx;
left: 86rpx;
z-index: 0;
width: 474rpx;
height: 6rpx;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
}
}
.content-box .info-item {
font-family: PingFang SC;
font-weight: 500;
.title {
font-size: 30rpx;
font-weight: 600;
color: #3A3A3C;
line-height: 42rpx;
padding: 24rpx 0rpx 10rpx;
}
.info {
font-size: 24rpx;
color: #999999;
line-height: 32rpx;
}
image {
width: 204rpx;
height: 204rpx;
border-radius: 16rpx;
background: #dddddd;
}
}
@red: #2DB5AE;
.returnList {

1
pages/shop/GoodsCon/index.vue

@ -381,7 +381,6 @@ export default {
let url = handleQrCode()
if (!url) {
url = handleUrlParam(getCurrentPageUrlWithArgs())
console.log(url,'================-');
}
const token = cookie.get('login_status')

302
pages/shop/IntegralList/index.vue

@ -1,302 +0,0 @@
<template>
<view>
<view class="header">
<cu-custom :isBack="true" :isCenter="true">
<block slot="backText">
<view class="backImg">
<image src="@/static/images/back-btn.png" mode=""></image>
</view>
</block>
<block slot="content">
<view class="tab-title">积分兑换</view>
</block>
</cu-custom>
</view>
<view class="banner-box">
<swiper class="swiper-wrapper" @change="handleChange" :autoplay="true">
<block v-for="(item, imgUrlsIndex) in imgUrls" :key="imgUrlsIndex">
<swiper-item>
<view class="image">{{item}}</view>
<!-- <image class="image" :src="item" class="slide-image" mode="aspectFill"/> -->
</swiper-item>
</block>
</swiper>
<view class="dots-box acea-row row-center">
<view class="dot" v-for="(item,index) in imgUrls" :key="index">
<view :class="(currents > index?'active2 ':'active ') + (currents == index?'on':(currents-1 == index?'on2':''))"></view>
</view>
</view>
</view>
<view class="integral-box acea-row row-between">
<view class="integral">
<view class="title">我的积分</view>
<view class="acea-row">
<view class="item" v-for="(item, integralIndex) in integral" :key="integralIndex">
<view class="top"></view>
<view class="bottom"></view>
<view class="num">{{ item || 0 }}</view>
</view>
</view>
<view @click="goIntegral" class="btn acea-row row-between-wrapper">
<image src="@/static/images/mingxi.png" mode=""></image>
<view>明细</view>
</view>
</view>
<view class="integral get-way acea-row row-column row-between">
<view class="title">获取积分</view>
<view class="acea-row row-between">
<view class="btn2">去签到</view>
<view class="btn2">去下单</view>
</view>
</view>
</view>
<view class="list-box">
<view class="title">积分兑换</view>
<PromotionGood :benefit="productList" :isIntegral="true" />
</view>
</view>
</template>
<script>
import { mapGetters } from 'vuex';
import store from '@/store';
import PromotionGood from '@/components/PromotionGood';
import { getProductsIntegral } from '@/api/store';
export default {
components: {
PromotionGood
},
data() {
return {
currents: 0,
imgUrls: 5,
integral: 0,
from: {
page: 1,
limit: 15,
// sid: 0,
news: 0,
isIntegral: 1
},
productList: [],
};
},
computed: mapGetters(['userInfo']),
onLoad() {
getProductsIntegral(this.from).then(res => {
this.productList.push.apply(this.productList, res.data);
})
},
onShow() {
if (this.$store.getters.token) {
this.$store.dispatch('getUser', true);
}
if(this.userInfo.integral === undefined) this.userInfo.integral = 0;
this.integral = this.prefixInteger(this.userInfo.integral, 5);
console.log('userInfo', this.userInfo);
},
methods: {
handleChange(e) {
this.currents = e.mp.detail.current;
},
// 0num0length
prefixInteger(num, length) {
return (Array(length).join("0") + num).slice(-length).split("");
},
goIntegral() {
this.$yrouter.push('/pages/user/signIn/Integral/index')
},
},
}
</script>
<style lang="less" scoped>
.header {
.tab-title {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 600;
color: #2DB5AE;
line-height: 42rpx;
}
.backImg {
width: 88rpx;
height: 62rpx;
padding-left: 26rpx;
image {
width: 100%;
height: 100%;
}
}
}
.banner-box {
padding: 20rpx 32rpx;
.swiper-wrapper {
width: 686rpx;
height: 398rpx;
border-radius: 16rpx;
.image {
width: 686rpx;
height: 398rpx;
border-radius: 16rpx;
background-color: #FFFFFF;
}
}
.dots-box {
padding-top: 26rpx;
.dot {
width: 92rpx;
height: 4rpx;
background: #CCEDEB;
margin: 0rpx 6rpx;
position: relative;
.active {
width: 0rpx;
height: 4rpx;
background: #2DB5AE;
position: absolute;
top: 0;
left: 0;
transition: all .6s cubic-bezier(.18,.89,.17,.88);
-webkit-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-moz-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-o-transition: all .6s cubic-bezier(.18,.89,.17,.88);
}
.active2 {
width: 0rpx;
height: 4rpx;
background: #2DB5AE;
position: absolute;
top: 0;
left: 92rpx;
transition: all .6s cubic-bezier(.18,.89,.17,.88);
-webkit-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-moz-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-o-transition: all .6s cubic-bezier(.18,.89,.17,.88);
}
.active.on {
width: 92rpx;
transition: all .6s cubic-bezier(.18,.89,.17,.88);
-webkit-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-moz-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-o-transition: all .6s cubic-bezier(.18,.89,.17,.88);
}
.active.on2 {
width: 92rpx;
left: 0;
transition: all .6s cubic-bezier(.18,.89,.17,.88);
-webkit-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-moz-transition: all .6s cubic-bezier(.18,.89,.17,.88);
-o-transition: all .6s cubic-bezier(.18,.89,.17,.88);
}
}
}
}
.integral-box {
padding: 6rpx 32rpx 12rpx;
.title {
font-size: 26rpx;
font-family: PingFangTC;
font-weight: 600;
color: #F5F6F8;
line-height: 34rpx;
padding-bottom: 8rpx;
}
.integral {
width: 480rpx;
height: 130rpx;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
padding: 18rpx;
position: relative;
.item {
position: relative;
margin-right: 6rpx;
.top {
width: 40rpx;
height: 26rpx;
background: #3A3A3C;
border-radius: 8rpx 8rpx 0rpx 0rpx;
margin-bottom: 4rpx;
}
.bottom {
width: 40rpx;
height: 26rpx;
background: #3A3A3C;
border-radius: 0rpx 0rpx 8rpx 8rpx;
}
.num {
width: 40rpx;
height: 56rpx;
font-size: 40rpx;
font-family: Futura;
font-weight: 600;
color: #F5F6F8;
line-height: 56rpx;
text-align: center;
position: absolute;
top: 0;
left: 0;
}
}
.btn {
position: absolute;
bottom: 18rpx;
right: 18rpx;
width: 70rpx;
height: 26rpx;
padding: 0rpx 8rpx;
background: #FFFFFF;
border-radius: 16rpx;
font-size: 16rpx;
font-family: PingFangTC;
font-weight: 600;
color: #2DB5AE;
line-height: 26rpx;
image {
width: 20rpx;
height: 20rpx;
}
}
}
}
.integral-box .get-way {
width: 184rpx;
height: 130rpx;
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%);
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
.btn2 {
width: 70rpx;
height: 26rpx;
background: #FFFFFF;
border-radius: 16rpx;
font-size: 16rpx;
font-family: PingFangTC;
font-weight: 600;
color: #2DB5AE;
line-height: 26rpx;
text-align: center;
}
}
.list-box {
.title {
font-size: 30rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #3A3A3C;
line-height: 46rpx;
padding: 20rpx 32rpx;
}
}
</style>

13
pages/shop/ShoppingCart/index.vue

@ -2,8 +2,8 @@
<view class="shoppingCart">
<view class="header" :style="'height: ' + CustomBar + 'px'">
<view class="top-nav-box acea-row row-between-wrapper" :style="'width:' + CustomBarLeft + 'px;padding-top:' + StatusBar + 'px;height:' + CustomBar + 'px'">
<!-- <image v-if="$store.getters.token||userInfo.uid" class="backImg" src="@/static/images/back-btn.png" mode=""></image> -->
<view class=""></view>
<image v-if="hasReturnPath" class="backImg" src="@/static/images/back-btn.png" mode="" @click="returnPath"></image>
<view v-else class=""></view>
<view class="tab-title" v-if="$store.getters.token||userInfo.uid">购物车</view>
<view v-if="cartList.length > 0" :class="'manage-text ' + (footerswitch?'inManage':'')" @click="manage">{{ footerswitch ? '退出' : '管理' }}</view>
</view>
@ -260,6 +260,7 @@
addBottom: this.addBottom,
pagePath: '',
canIUseGetUserProfile: false,
hasReturnPath: false,
cartList: [],
// cartList: {
// invalid: [],
@ -335,6 +336,7 @@
this.getCartList();
this.gainCount();
}
this.hasReturnPath = uni.getStorageSync('pathToCart')?true:false;
},
methods: {
goPage() {
@ -349,6 +351,13 @@
}
});
},
returnPath() {
let url = uni.getStorageSync('pathToCart');
uni.removeStorageSync('pathToCart')
uni.redirectTo({
url
})
},
getCartList: function () {
let that = this;
getCartList().then(res => {

24
pages/user/User/index.vue

@ -248,18 +248,24 @@ export default {
pic: "../../../static/images/my-favorites.png",
uniapp_url: "/pages/shop/GoodsCollection/index"
},
{
name: "积分兑换",
enName: "EXCHANGE",
pic: "../../../static/images/exchange.png",
uniapp_url: "/pages/shop/IntegralList/index"
},
// {
// name: "",
// enName: "EXCHANGE",
// pic: "../../../static/images/exchange.png",
// uniapp_url: "/pages/shop/IntegralList/index"
// },
{
name: "地址管理",
enName: "MY ADDRESS",
pic: "../../../static/images/my-address.png",
uniapp_url: "/pages/user/address/AddressManagement/index"
},
{
name: "常见问题",
enName: "Q&A",
pic: "../../../static/images/Q&A.png",
uniapp_url: "/pages/user/Problem/index"
},
{
name: "关于我们",
enName: "ABOUT US",
@ -268,12 +274,6 @@ export default {
}
],
MyMenus2: [
{
name: "常见问题",
enName: "Q&A",
pic: "../../../static/images/Q&A.png",
uniapp_url: "/pages/user/Problem/index"
},
{
name: "联系客服",
enName: "SERVICE",

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

@ -4,14 +4,14 @@
<image src="@/static/images/namecard-bg.png" mode=""></image>
</view>
<view class="header">
<cu-custom :isBack="true" :isCenter="true" bgColor="''">
<cu-custom :isBack="true" :isCenter="true" :bgColor="bgColor">
<block slot="backText">
<view class="backImg">
<image src="@/static/images/back-btn.png" mode=""></image>
</view>
</block>
<block slot="content">
<view class="tab-title">签到有礼</view>
<view class="tab-title" :style="bgColor?'color:#2DB5AE;':''">签到有礼</view>
</block>
</cu-custom>
</view>
@ -57,7 +57,7 @@
<view class="tip2">据说连续签到{{day}}天可获得超额积分一定要坚持签到哦</view>
</view>
<view class="list">
<!-- <view class="list">
<view class="item acea-row row-between-wrapper" v-for="(item, signListIndex) in signList" :key="signListIndex">
<view>
<view class="name line1">{{ item.title }}</view>
@ -65,7 +65,12 @@
</view>
<view class="num">积分+{{ item.number }}</view>
</view>
</view>
</view> -->
</view>
<view class="list-box">
<view class="title">积分兑换</view>
<PromotionGood :benefit="productList" :isIntegral="true" />
</view>
<!-- <view class="header bg-color-red">
@ -232,7 +237,6 @@
.signList-box {
width: 686rpx;
// height: 176rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
@ -271,7 +275,7 @@
.info-box {
margin: 0rpx 32rpx;
width: 686rpx;
height: 894rpx;
// height: 894rpx;
background: #F5F6F8;
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15);
border-radius: 16rpx;
@ -336,31 +340,42 @@
}
}
.info-box .list {
width: 100%;
height: 570rpx;
overflow-y: scroll;
.item {
width: 100%;
height: 98rpx;
padding: 0rpx 30rpx;
border-top: 2rpx solid #D8D8D8;
font-size: 24rpx;
line-height: 26rpx;
font-family: PingFang SC;
font-weight: 500;
// .info-box .list {
// width: 100%;
// height: 570rpx;
// overflow-y: scroll;
// .item {
// width: 100%;
// height: 98rpx;
// padding: 0rpx 30rpx;
// border-top: 2rpx solid #D8D8D8;
// font-size: 24rpx;
// line-height: 26rpx;
// font-family: PingFang SC;
// font-weight: 500;
// color: #3A3A3C;
// .name {
// }
// .data {
// padding-top: 2rpx;
// font-size: 20rpx;
// color: #999999;
// line-height: 24rpx;
// }
// .num {
// font-weight: 600;
// }
// }
// }
.list-box {
.title {
font-size: 30rpx;
font-family: SourceHanSansSCVF;
font-weight: 600;
color: #3A3A3C;
.name {
}
.data {
padding-top: 2rpx;
font-size: 20rpx;
color: #999999;
line-height: 24rpx;
}
.num {
font-weight: 600;
}
line-height: 46rpx;
padding: 20rpx 32rpx;
}
}
@ -380,14 +395,19 @@
import {
add
} from "@/utils/bc";
import PromotionGood from '@/components/PromotionGood';
import { getProductsIntegral } from '@/api/store';
export default {
name: "Sign",
components: {},
components: {
PromotionGood
},
props: {},
data: function() {
return {
CustomBar: this.CustomBar,
bgColor: '',
userInfo: {},
integral: 0,
signCount: [],
@ -397,7 +417,14 @@
page: 1,
limit: 3,
active: false,
day: ""
day: "",
from: {
page: 1,
limit: 15,
news: 0,
isIntegral: 1
},
productList: [],
};
},
mounted: function() {
@ -405,11 +432,24 @@
this.signUser();
this.signConfig();
this.getSignList();
this.getGoodsList();
},
onPageScroll(e) {
if (e.scrollTop > 80) {
this.bgColor = '#F1F1F1';
} else {
this.bgColor = '';
};
},
methods: {
goSignRecord() {
this.$yrouter.push("/pages/user/signIn/SignRecord/index");
},
getGoodsList() {
getProductsIntegral(this.from).then(res => {
this.productList.push.apply(this.productList, res.data);
})
},
// js0num0length
PrefixInteger: function(num, length) {
return (Array(length).join("0") + num).slice(-length).split("");

BIN
static/images/icon-tishi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

BIN
static/images/link-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Loading…
Cancel
Save