master
chen 2021-10-22 11:07:32 +08:00
parent b6f94cb7e6
commit f8c127a6cf
101 changed files with 3573 additions and 731 deletions

View File

@ -94,43 +94,135 @@
.btnBKS{height: 120rpx;} .btnBKS{height: 120rpx;}
.lianShare{height: 90rpx;width: 220rpx;} .lianShare{height: 90rpx;width: 220rpx;}
.backH{width: 190rpx;height: 190rpx;top: -126rpx;} .backH{width: 190rpx;height: 190rpx;top: -126rpx;}
.addCart-btn{border-top-left-radius: 51rpx;border-bottom-left-radius: 51rpx;background-color: #3875F6;}
.mai-btn{border-top-right-radius: 51rpx;border-bottom-right-radius: 51rpx;background-color: #F85050;}
/* 商城 */ /* 商城 */
.activecate,.shopMo{width: 216rpx;height: 65rpx;border-radius: 20rpx;line-height: 65rpx;text-align: center;background-color: #f2f2f2;color: #333333;} .shop-nav-box input{border: 2rpx solid #E0E0E0;padding: 0rpx 20rpx;height: 80rpx;line-height: 80rpx;}
.activecate{color: #FFFFFF;} .shop-nav-box>view:first-child view,.jf-input-box>view:first-child view{height: 80rpx;line-height: 80rpx;}
.shopMo span::after,.activecate span::after{display: inline-block;content: '';width: 16rpx;height: 13rpx;margin-left: 6rpx;}
.shopMo span::after{background: url(/static/public/shopSJ.png) no-repeat;background-size: 100% 90%;}
.activecate span::after{background: url(/static/public/shopSJ-active.png) no-repeat;background-size: 100% 90%;transform: rotate(180deg);background-position: 0 2rpx;}
.shop_list_box>view>view:last-child{margin-bottom: 200rpx;} .shop_list_box>view>view:last-child{margin-bottom: 200rpx;}
.shop-nav-box .pad-zy50 view:nth-child(n+2){background: #3875F6;color: #FFFFFF;border-radius: 30rpx;padding: 8rpx 20rpx;font-size: 24rpx;display: flex;align-items: center;margin-right: 20rpx;margin-top: 30rpx;}
.shop-nav-box .mar-s40{height: 60rpx;border: 2rpx solid #E0E0E0;border-radius: 10rpx;width: 100%;box-sizing: border-box;padding-left: 20rpx;font-size: 24rpx;}
.shop-nav-box .mar-x30 view{font-size: 28rpx;width: 294rpx;height: 60rpx;border-radius: 10rpx;text-align: center;line-height: 60rpx; }
.shop-nav-box .mar-x30 view:first-child{background: #E6E6E6;color: #4D4D4D;}
.shop-nav-box .mar-x30 view:last-child{background: #3875F6;color: #FFFFFF;}
.activebcate,.shopBMo{border-radius: 20rpx;background-color: #f2f2f2;color: #333333;padding: 12rpx 24rpx;} .activebcate,.shopBMo{border-radius: 20rpx;background-color: #f2f2f2;color: #333333;padding: 12rpx 24rpx;}
.activebcate{color: #FFFFFF;} .activebcate{color: #FFFFFF;}
.jf-input-box input{border: 2rpx solid #E0E0E0;padding: 0rpx 20rpx;height: 80rpx;line-height: 80rpx;}
.jf-input-box image{width: 16rpx;height: 13rpx;}
.jf-input-box image:last-child{margin-top: 4rpx;}
.cart-box{position: fixed;right: 30rpx;bottom: 200rpx;}
.cart-box .posir,.cart-box .posir image,.detail-cart-box .posir,.detail-cart-box .posir image{width: 112rpx;height: 112rpx;}
.cart-box .posia,.detail-cart-box .posia{background: #F85050;width: 36rpx;height: 36rpx;line-height: 36rpx;border-radius: 100%;color: #FFFFFF;font-size: 24rpx;text-align: center;top: 20rpx;right: 20rpx;}
.cart-box .posia view,.detail-cart-box .posia view{transform: scale(.8);}
.moban{background: rgba(0,0,0,.54);width: 100%;position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 2;}
.detail-cart-box{position: fixed;right: 30rpx;bottom: 300rpx;}
/* 商品详情 */ /* 商品详情 */
.activelei,.molei{border-radius: 20rpx;padding: 10rpx 24rpx;color: #333333;margin-left: 20rpx;} .activelei,.molei{border-radius: 20rpx;padding: 10rpx 24rpx;color: #333333;margin-left: 20rpx;}
.activelei{color: #FFFFFF;} .activelei{color: #FFFFFF;}
.shop-title-box view{display: inline-block;float: left;}
.shop-title-box view span{padding: 6rpx 10rpx;}
.shop-title-box view span:nth-child(n+2){background: #F85050;}
.shop-price{color: #F85050;font-size: 40rpx;font-weight: bold;}
.shop-price span:last-child{color: #B3B3B3;font-size: 24rpx;text-decoration: line-through;font-weight: 400;margin-left: 20rpx;}
.yuan-price{color: #B3B3B3;font-size: 24rpx;text-decoration: line-through;font-weight: 400;}
.shar-box{margin-top: -20rpx;padding-bottom: 20rpx;}
.shar-box>view:first-child image{width: 42rpx;height: 30rpx;}
.shop-swiper{height: 280rpx;padding-top: 20rpx;}
.big-img{width: 70rpx;height: 70rpx; border-radius: 100%;}
.shop-swiper .bold{width: 140rpx;height: 80rpx;line-height: 80rpx;text-align: center;background: #F85050;border-radius: 20rpx;}
.duan-xian{border-bottom: 2rpx solid #E6E6E6;position: absolute;bottom: 0;width: 87%;right: 0;}
.bottom-popu,.order-cancle-tk{border-radius: 40rpx 40rpx 0rpx 0rpx;}
.bottom-popu>view:first-child image{width: 214rpx;height: 214rpx;border-radius: 15rpx;bottom: 0;flex-shrink: 0;margin-top: -107rpx;margin-right: 30rpx;}
.bottom-popu>view:first-child .width100 image{width: 24px;height: 24px;margin-top: -20rpx;}
.del-btn,.add-btn{width: 65rpx;height: 30px;}
.num-input{width: 80rpx;height: 28px;text-align: center;border-top: 2rpx solid #3875F6;border-bottom: 2rpx solid #3875F6;}
.ev-btn{width: 294rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 10rpx;}
.pd-tk-box{position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 6;background: rgba(0,0,0,.54);display: flex;justify-content: center;align-items: center;}
.pd-tk-box .posir{font-weight: 500;text-align: center;margin: 0 85rpx;height: 458rpx;}
.pd-tk-box .posir view:nth-child(1){margin: 34rpx 0 27rpx 0;}
.pd-tk-box .posir view:nth-child(2){margin-bottom: 63rpx;}
.pd-tk-box .posir view:nth-child(3){margin-bottom: 77rpx;}
.pd-tk-box .posir view:nth-child(3) image:nth-child(1),.pd-tk-box .posir view:nth-child(3) image:nth-child(3){width: 100rpx;height: 100rpx;border-radius: 100%;}
.pd-tk-box .posir view:nth-child(3) image:nth-child(2){width: 42rpx;height: 42rpx;margin: 0 47rpx;}
.pd-tk-box .posir view:nth-child(4){width: 464rpx;height: 60rpx;line-height: 60rpx;color: #FFFFFF;background: #F85050;border-radius: 10rpx;margin: 0 auto;font-size: 28rpx;}
.pd-tk-box .posir>image{width: 77rpx;height: 77rpx;right: -30rpx;top: -30rpx;}
swiper-item view:last-child .duan-xian{border-bottom: none;}
/* 准备下单 */ /* 准备下单 */
.activeT,.expressT{width: 124rpx;height: 60rpx;line-height: 60rpx;text-align: center;margin-left: 20rpx;border-radius: 20rpx;} .activeT,.expressT{width: 124rpx;height: 60rpx;line-height: 60rpx;text-align: center;margin-left: 20rpx;border-radius: 20rpx;}
.activeT{color: #FFFFFF;} .activeT{color: #FFFFFF;}
.activeQuan::before{content: '';display: block;width: 50%;height: 8rpx;background: #3875F6;position: absolute;bottom: -20rpx;left: 50%;transform: translateX(-50%);} .activeQuan::before{content: '';display: block;width: 50%;height: 8rpx;background: #3875F6;position: absolute;bottom: -20rpx;left: 50%;transform: translateX(-50%);}
.xiaDan-next{width: 16px;height: 16px;flex-shrink: 0;}
.there{width: 90rpx;height: 86rpx;flex-shrink: 0;}
.order-image{width: 166rpx;height: 166rpx;border-radius: 15rpx;margin-right: 12rpx;}
.order-sy{font-size: 22rpx;color: #808080;font-weight: 500;margin-top: 6rpx;}
.order-item-price{color: #F85050;font-size: 32rpx;font-weight: bold;}
.goPayment{color: #FFFFFF;font-size: 28rpx;font-weight: bold;width: 170rpx;height: 70rpx;line-height: 70rpx;text-align: center;background: #3875F6;border-radius: 35rpx;margin-left: 10rpx;}
.quan-item-box{height: 200rpx;}
.quan-item-box>view:first-child{width: 218rpx;height: 200rpx;flex-shrink: 0;text-align: center;color: #FFFFFF;}
.quan-item-box>view:first-child image{width: 218rpx;height: 200rpx;left: 0;top: 0;}
.quan-item-box>view:last-child{display: flex;flex-direction: column;justify-content: space-between;width: 100%;height: 200rpx;padding: 0 20rpx;background-color: #F5F5F5;}
.quan-item-box>view:last-child image{float: right;}
.quan-list-box{max-height: 600rpx;}
.quan-list-box .mar-x40:last-child{margin-bottom: 0rpx;}
.ling-btn{font-size: 36rpx;color: #FFFFFF;font-weight: bold;margin: 0 auto;background: #3875F6;border-radius: 20rpx;height: 90rpx;line-height: 90rpx;text-align: center;margin-top: 156rpx;margin-bottom: 20rpx;}
/* 立即支付页面 */
.chooseDX,.quan-item-box>view:last-child image{width: 40rpx;height: 40rpx;border-radius: 100%;}
.dao-box{padding: 55rpx 0 64rpx 0;text-align: center;}
.submit-pay{margin: 0 auto;color: #FFFFFF;font-weight: bold;font-size: 36rpx;text-align: center;width: 546rpx;height: 90rpx;line-height: 90rpx;background-color: #3875F6;border-radius: 20rpx;}
.success-btn{margin-bottom: 150rpx;}
.success-btn view{width: 244rpx;height: 70rpx;border-radius: 10rpx;text-align: center;line-height: 70rpx;}
.success-btn view:first-child{background: #E9E9E9;color: #333333;}
/* 购物车页面 */
.edit-btn{width: 113rpx;height: 43rpx;border-radius: 20rpx;background: #3875F6;text-align: center;color: #FFFFFF;line-height: 43rpx;}
.cart-list-box{overflow: hidden;}
.cart-input-box{border-radius: 4rpx;overflow: hidden;}
.cart-input-box image{width: 46rpx;height: 26px;}
.cart-input-box input{width: 60rpx;height: 24px;text-align: center;border-top: 2rpx solid #3875F6;border-bottom: 2rpx solid #3875F6;}
.goBuy-btn{width: 170rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 35rpx;}
.chooseAll-box{width: 40rpx;height: 40rpx;border-radius: 100%;border: 2rpx solid #3875F6;flex-shrink: 0;display: flex;justify-content: center;align-items: center;}
.chooseAll-box view{width: 24rpx;height: 24rpx;background-color: #3875F6;border-radius: 100%;}
.item-del-btn{width: 117rpx;height: 205rpx;background: #F85050;line-height: 205rpx;text-align: center;color: #FFFFFF;font-size: 24rpx;flex-shrink: 0;position: absolute;right: 0;bottom: 40rpx;top: 2rpx;}
/* 我的订单页面 */
.order-item-box image{width: 166rpx;height: 166rpx;border-radius: 15rpx;margin-right: 12rpx;}
.order-btn{width: 140rpx;height: 50rpx;line-height: 50rpx;text-align: center;border-radius: 10rpx;background: #F85050;color: #FFFFFF;margin-left: 45rpx;}
.order-cancle{width: 140rpx;height: 50rpx;line-height: 50rpx;text-align: center;border-radius: 10rpx;background: #E9E9E9;color: #808080;}
.heyan-close{width: 96rpx;height: 96rpx;left: 50%;transform: translateX(-50%);bottom: -150rpx;}
.confirm-btn{font-size: 36rpx;color: #FFFFFF;font-weight: bold;margin: 0 auto;background: #3875F6;border-radius: 20rpx;height: 90rpx;line-height: 90rpx;text-align: center;margin: 80rpx 100rpx 20rpx 100rpx;}
/* 地址管理页面 */
.address_active{width: 40rpx;height: 40rpx;}
.address_add{font-size: 30rpx;color: #FFFFFF;font-weight: bold;margin: 0 auto;background: #3875F6;border-radius: 20rpx;height: 90rpx;line-height: 90rpx;text-align: center;margin: 0 93rpx;}
.xiao-sanj image{width: 14rpx;height: 11rpx;}
.xiao-sanj image:last-child{margin-top: 4rpx;}
.address-btn-add{font-size: 30rpx;color: #FFFFFF;font-weight: bold;margin: 0 auto;background: #3875F6;border-radius: 20rpx;height: 90rpx;line-height: 90rpx;text-align: center;margin: 80rpx 76rpx 20rpx 76rpx;}
.address-close-btn{width: 77rpx;height: 77rpx;right: -55rpx;top: -36rpx;}
.info-box{background: #fff;left: 0;right: 0;top: 52rpx;height: 0rpx;transition: all 0.5s;border: 2rpx solid #E6E6E6;opacity: 0; z-index: 6;overflow: hidden;overflow-y: scroll;color: #666;}
.info-box view{margin: 10rpx;font-size: 24rpx;}
.dong {height: 200rpx;border: 2rpx solid #E6E6E6;opacity: 1;}
/* 优惠券页面 */
.quan-btn{width: 136rpx;height: 48rpx;line-height: 48rpx;text-align: center;border-radius: 30rpx;background: #FFFFFF;color: #3875F6;margin-right: -10rpx;}
.quan-img{width: 218rpx;height: 200rpx;left: 0;top: 0;}
.quan-right-box{display: flex;flex-direction: column;justify-content: space-between;width: 100%;height: 200rpx;padding: 0 20rpx;background-color: #FFFFFF;}
.quan-use{width: 94rpx;height: 94rpx;right: 20rpx;top: 20rpx;}
.quan-tk-box{position: fixed;top: 0;left: 0;bottom: 0;right: 0;background: rgba(0,0,0,.54);z-index: 3;}
.quan-tk-btn{width: 96rpx;height: 96rpx;left: 50%;transform: translateX(-50%);bottom: -150rpx;}
.bottoc{margin-top: 6rpx;color: #414141;} .bottoc{margin-top: 6rpx;color: #414141;}
.opc{opacity: 0.7;} .opc{opacity: 0.7;}
.width100{width: 100%;} .width100{width: 100%;}
.width33{width: 33%;} .width33{width: 33%;}
.width45{width: 45%;}
.width50{width: 50%;}
.width55{width: 55%;}
.posAll{position: fixed;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.45);z-index: 12;} .posAll{position: fixed;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.45);z-index: 12;}
.posir{position: relative;} .posir{position: relative;}
.posia{position: absolute;} .posia{position: absolute;}
.poszy{position: fixed;left: 0;right: 0;z-index: 3;}
.posiszy{position: fixed;left: 0;right: 0;z-index: 5;} .posiszy{position: fixed;left: 0;right: 0;z-index: 5;}
.posixzy{position: fixed;left: 0;right: 0;z-index: 2;bottom: 0;} .posixzy{position: fixed;left: 0;right: 0;z-index: 2;bottom: 0;}
.posia-op{position: absolute;top: 0;right: 0;left: 0;bottom: 0;opacity: 0;}
.syxzo{top: 0;left: 0;right: 0;bottom: 0;opacity: 0;} .syxzo{top: 0;left: 0;right: 0;bottom: 0;opacity: 0;}
@ -147,6 +239,9 @@
.flexs{flex-shrink: 0;} .flexs{flex-shrink: 0;}
.wh42{width: 42rpx;height: 42rpx;}
.wh44{width: 44rpx;height: 44rpx;}
button:after{content: none!important;} button:after{content: none!important;}
.borbot{border-bottom: 2rpx solid #E6E6E6;} .borbot{border-bottom: 2rpx solid #E6E6E6;}
.borbot:last-child{border-bottom: none;} .borbot:last-child{border-bottom: none;}
@ -154,11 +249,65 @@ button:after{content: none!important;}
.borbot-df{border: 2rpx solid #DFDFDF;} .borbot-df{border: 2rpx solid #DFDFDF;}
.borbot-cc{border: 2rpx solid #CCCCCC;} .borbot-cc{border: 2rpx solid #CCCCCC;}
.line-h50{line-height: 50rpx;}
.clips1{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;} .clips1{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
.clips2{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;} .clips2{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
.clips3{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;} .clips3{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
/* 字体大小 */
.fon20{font-size: 20rpx;}
.fon24{font-size: 24rpx;}
.fon25{font-size: 25rpx;}
.fon26{font-size: 26rpx;}
.fon27{font-size: 27rpx;}
.fon28{font-size: 28rpx;}
.fon30{font-size: 30rpx;}
.fon32{font-size: 32rpx;}
.fon34{font-size: 34rpx;}
.fon36{font-size: 36rpx;}
.fon38{font-size: 38rpx;}
.fon40{font-size: 40rpx;}
.fon56{font-size: 56rpx;}
/* 字体颜色 */
.colf{color: #FFFFFF;}
.colb{color: #000000;}
.colc{color: #CCCCCC;}
.col3{color: #333333;}
.col6{color: #666666;}
.colf8{color: #F85050;}
.col9{color: #999999;}
.pcol{color: #3875F6;}
.col2c{color: #2C2C2C;}
.col80{color: #808080;}
.col7D{color: #7D7D7D;}
.colB3{color: #B3B3B3;}
/* 字体位置 */
.tc{text-align: center;}
.tright{text-align: right;}
/* 粗体 */
.bold{font-weight: bold;}
/* 背景颜色 */
.pbackc{background-color: #3875F6;}
.bacf{background-color: #FFFFFF;}
.bcdb{background-color: #DBDBDB;}
.bcf8{background: #F85050;}
/* 圆角 */
.radius10{border-radius: 10rpx;}
.radius15{border-radius: 15rpx;}
.radius20{border-radius: 20rpx;}
.radius30{border-radius: 30rpx;}
.radius35{border-radius: 35rpx;}
.radius40{border-radius: 40rpx;}
.radius45{border-radius: 45rpx;}
/* 上下左右---外边距 */ /* 上下左右---外边距 */
.mar10{margin: 10rpx;} .mar10{margin: 10rpx;}
.mar20{margin: 20rpx;} .mar20{margin: 20rpx;}
@ -289,50 +438,10 @@ button:after{content: none!important;}
.pad-y40{padding-right: 40rpx;} .pad-y40{padding-right: 40rpx;}
.pad-y50{padding-right: 50rpx;} .pad-y50{padding-right: 50rpx;}
.pad-sx27-zy20{padding: 27rpx 20rpx;}
/* 字体大小 */
.fon20{font-size: 20rpx;}
.fon24{font-size: 24rpx;}
.fon25{font-size: 25rpx;}
.fon26{font-size: 26rpx;}
.fon27{font-size: 27rpx;}
.fon28{font-size: 28rpx;}
.fon30{font-size: 30rpx;}
.fon32{font-size: 32rpx;}
.fon34{font-size: 34rpx;}
.fon36{font-size: 36rpx;}
.fon38{font-size: 38rpx;}
.fon40{font-size: 40rpx;}
/* 字体颜色 */
.colf{color: #FFFFFF;}
.colb{color: #000000;}
.colc{color: #CCCCCC;}
.col3{color: #333333;}
.col6{color: #666666;}
.col9{color: #999999;}
.pcol{color: #3875F6;}
.col2c{color: #2C2C2C;}
.col80{color: #808080;}
/* 字体位置 */
.tc{text-align: center;}
.tright{text-align: right;}
/* 粗体 */
.bold{font-weight: bold;}
/* 背景颜色 */
.pbackc{background-color: #3875F6;}
.bacf{background-color: #FFFFFF;}
.bcdb{background-color: #DBDBDB;}
/* 圆角 */
.radius10{border-radius: 10rpx;}
.radius15{border-radius: 15rpx;}
.radius20{border-radius: 20rpx;}
.radius30{border-radius: 30rpx;}

View File

@ -141,7 +141,8 @@
if(!this.jieDuan){ if(!this.jieDuan){
let isAuth = this.$toolAll.tools.returnAuth() let isAuth = this.$toolAll.tools.returnAuth()
if(!isAuth){ if(!isAuth){
uni.reLaunch({url:'/pages/tabbar/my/my'}) // uni.reLaunch({url:'/pages/tabbar/my/my'})
uni.reLaunch({url:'/pages/tabbar/my/staffDuan'})
} else this.jieDuan = true } else this.jieDuan = true
} }
break; break;

View File

@ -1,98 +1,78 @@
<template> <template>
<view class="pad20 shop_list_box"> <view class="pad20 shop_list_box">
<view style="width: 48.6%;float: left;"> <view style="width: 48.6%;float: left;">
<view class="bacf radius15 mar-x20" @tap="goPage"> <view v-if="index1%2==0" v-for="(item1,index1) in dataList" :key="index1" class="bacf radius15 mar-x20" @tap="goPage(item1.id,index1)">
<image src="../../../static/public/wen-one.png" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image> <image :src="item1.imgSrc" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image>
<view class="pad-zy20 pad-s10 pad-x30"> <view class="pad-zy20 pad-s10 pad-x30">
<view class="fon28 bold col3 clips2">99皮皮节种植发际 线1000单位FUE技术...</view> <view class="fon28 bold col3 clips2">{{item1.title}}</view>
<view class="disac fon20 mar-sx20"> <view class="disac fon20 mar-sx20" v-if="!item1.isIntegral">
<view class="radius10 colf" style="padding: 6rpx 10rpx;margin-right: 10rpx;" :style="{background:publicColor}">秃顶种植</view> <view class="radius10 colf" style="padding: 6rpx 10rpx;margin-right: 10rpx;" :style="{background:publicColor}">{{item1.disease_name}}</view>
<view class="radius10 colf" style="padding: 6rpx 10rpx;background: #F85050;">团购</view> <view class="radius10 colf" v-if="item1.isTuan" style="padding: 6rpx 10rpx;background: #F85050;"></view>
<view class="radius10 colf" v-if="item1.isPing" style="padding: 6rpx 10rpx;background: #F85050;"></view>
<view class="radius10 colf" v-if="item1.isXian" style="padding: 6rpx 10rpx;background: #F85050;"></view>
</view> </view>
<view class="disac"> <view class="disac">
<view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">3888</view> <view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">
<view class="fon24" style="text-decoration: line-through;color: #C7C7C7;">4205</view> <view v-if="item1.isIntegral" class="mar-s20">
<view>积分:{{item1.integral}}</view>
<view class="disac mar-s20" v-if="item1.grade!=0">
<image src="/static/public/huiy.png" style="width: 40rpx;height: 33rpx;" mode=""></image>
<view class="fon24 col3 mar-z10">{{item1.level_text}}</view>
</view> </view>
</view> </view>
<view v-else>
<span v-if="item1.isPing"></span>
<span v-if="item1.isXian"></span>
{{item1.zhePrice}}
</view> </view>
<view class="bacf radius15 mar-x20">
<image src="../../../static/public/wen-one.png" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image>
<view class="pad-zy20 pad-s10 pad-x30">
<view class="fon28 bold col3 clips2">99皮皮节种植发际 线1000单位FUE技术...</view>
<view class="disac fon20 mar-sx20">
<view class="radius10 colf" style="padding: 6rpx 10rpx;margin-right: 10rpx;" :style="{background:publicColor}">秃顶种植</view>
<view class="radius10 colf" style="padding: 6rpx 10rpx;background: #F85050;">团购</view>
</view> </view>
<view> <view v-if="item1.isTuan || item1.isPing || item1.isXian" class="fon24" style="text-decoration: line-through;color: #C7C7C7;">{{item1.yuanPrice}}</view>
<view class="disjbac">
<view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">拼团价3888</view>
<view class="fon24" style="text-decoration: line-through;color: #C7C7C7;">4205</view>
</view> </view>
<view class="disjbac mar-s20"> <view v-if="item1.isPing" class="disjbac mar-s20">
<view class="fon24 col80">已拼团10</view> <view class="fon24 col80">已拼团{{item1.activity_group_num}}</view>
<view class="disac"> <view class="disac">
<image src="../../../static/tabbar/mya.png" mode="" style="width: 40rpx;height: 40rpx;border-radius: 100%;"></image> <image v-for="(itemm,indexm) in item1.activity_group_cover" :key="indexm" :src="itemm" mode="" style="width: 40rpx;height: 40rpx;border-radius: 100%;margin-left: -20rpx;"></image>
<image src="../../../static/tabbar/mym.png" mode="" style="width: 40rpx;height: 40rpx;border-radius: 100%;margin-left: -20rpx;"></image>
<image src="../../../static/tabbar/homeAc.png" mode="" style="width: 40rpx;height: 40rpx;border-radius: 100%;margin-left: -20rpx;"></image>
</view> </view>
</view> </view>
</view> <view v-if="item1.isXian" class="fon24 col80 mar-s20">150000</view>
</view>
</view>
<view class="bacf radius15 mar-x20">
<image src="../../../static/public/wen-one.png" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image>
<view class="pad-zy20 pad-s10 pad-x30">
<view class="fon28 bold col3 clips2">99皮皮节种植发际 线1000单位FUE技术...</view>
<view class="disac fon20 mar-sx20">
<view class="radius10 colf" style="padding: 6rpx 10rpx;margin-right: 10rpx;" :style="{background:publicColor}">秃顶种植</view>
<view class="radius10 colf" style="padding: 6rpx 10rpx;background: #F85050;">团购</view>
</view>
<view>
<view class="disjbac">
<view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">促销价3888</view>
<view class="fon24" style="text-decoration: line-through;color: #C7C7C7;">4205</view>
</view>
<view class="fon24 col80 mar-s20">结束时间15小时00分00秒</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<view style="width: 48.6%;float: right;"> <view style="width: 48.6%;float: right;">
<view class="bacf radius15 mar-x20"> <view v-if="index1%2!=0" v-for="(item1,index1) in dataList" :key="index1" class="bacf radius15 mar-x20" @tap="goPage(item1.id,index1)">
<image src="../../../static/public/wen-one.png" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image> <image :src="item1.imgSrc" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image>
<view class="pad-zy20 pad-s10 pad-x30"> <view class="pad-zy20 pad-s10 pad-x30">
<view class="fon28 bold col3 clips2">99皮皮节种植发际 线1000单位FUE技术...</view> <view class="fon28 bold col3 clips2">{{item1.title}}</view>
<view class="disac fon20 mar-sx20"> <view class="disac fon20 mar-sx20" v-if="!item1.isIntegral">
<view class="radius10 colf" style="padding: 6rpx 10rpx;margin-right: 10rpx;" :style="{background:publicColor}">秃顶种植</view> <view class="radius10 colf" style="padding: 6rpx 10rpx;" :style="{background:publicColor}">{{item1.disease_name}}</view>
<view class="radius10 colf" style="padding: 6rpx 10rpx;background: #F85050;">团购</view> <view class="radius10 colf" v-if="item1.isTuan" style="padding: 6rpx 10rpx;background: #F85050;margin-left: 10rpx;"></view>
</view> <view class="radius10 colf" v-if="item1.isPing" style="padding: 6rpx 10rpx;background: #F85050;margin-left: 10rpx;"></view>
<view>
<view class="disjbac">
<view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">拼团价3888</view>
<view class="fon24" style="text-decoration: line-through;color: #C7C7C7;">4205</view>
</view>
<view class="disjbac">
<view class="fon24 col80">已拼团10组</view>
<view>
<image src="" mode="" style="width: 40rpx;height: 40rpx;"></image>
</view>
</view>
</view>
</view>
</view>
<view class="bacf radius15 mar-x20">
<image src="../../../static/public/wen-one.png" mode="aspectFill" style="width: 100%;border-top-left-radius: 15rpx;border-top-right-radius: 15rpx;height: 325rpx;"></image>
<view class="pad-zy20 pad-s10 pad-x30">
<view class="fon28 bold col3 clips2">99皮皮节种植发际 线1000单位FUE技术...</view>
<view class="disac fon20 mar-sx20">
<view class="radius10 colf" style="padding: 6rpx 10rpx;margin-right: 10rpx;" :style="{background:publicColor}">秃顶种植</view>
<view class="radius10 colf" style="padding: 6rpx 10rpx;background: #F85050;">团购</view>
</view> </view>
<view class="disac"> <view class="disac">
<view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">3888</view> <view class="fon28 bold" style="color: #F85050;margin-right: 8rpx;">
<view class="fon24" style="text-decoration: line-through;color: #C7C7C7;">4205</view> <view v-if="item1.isIntegral" class="mar-s20">
<view>积分:{{item1.integral}}</view>
<view class="disac mar-s20" v-if="item1.grade!=0">
<image src="/static/public/huiy.png" style="width: 40rpx;height: 33rpx;" mode=""></image>
<view class="fon24 col3 mar-z10">{{item1.level_text}}</view>
</view> </view>
</view> </view>
<view v-else>
<span v-if="item1.isPing"></span>
<span v-if="item1.isXian"></span>
{{item1.zhePrice}}
</view>
</view>
<view v-if="item1.isTuan || item1.isPing || item1.isXian" class="fon24" style="text-decoration: line-through;color: #C7C7C7;">{{item1.yuanPrice}}</view>
</view>
<view v-if="item1.isPing" class="disjbac mar-s20">
<view class="fon24 col80">已拼团{{item1.activity_group_num}}</view>
<view class="disac">
<image v-for="(itemm,indexm) in item1.activity_group_cover" :key="indexm" :src="itemm" mode="" style="width: 40rpx;height: 40rpx;border-radius: 100%;margin-left: -20rpx;"></image>
</view>
</view>
<view v-if="item1.isXian" class="fon24 col80 mar-s20">150000</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -101,15 +81,41 @@
<script> <script>
export default { export default {
name:"shop-list", name:"shop-list",
props:{
dataList:{
type:Array,
default:function(){
return [
{
imgSrc:'/static/public/wen-one.png',//
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',//
zhePrice:'3888',//
yuanPrice:'4205',//
integral:'2888',//
isTuan:false,//
isPing:false,//
isXian:false,//
isIntegral:false,//
grade:0,//
}
]
}
}
},
data() { data() {
return { return {
publicColor:uni.getStorageSync('publicColor'), publicColor:uni.getStorageSync('publicColor'),
}; };
}, },
methods:{ methods:{
goPage(){// goPage(id,index){//
let isText = '';
if(this.dataList[index].isTuan) isText = "团购"
if(this.dataList[index].isPing) isText = "拼团"
if(this.dataList[index].isXian) isText = "限时"
if(this.dataList[index].integral) isText = "积分"
uni.navigateTo({ uni.navigateTo({
url:'/pagesB/shopDetail/shopDetail' url:`/pagesB/shopDetail/shopDetail?id=${id}&isText=${isText}`
}) })
} }
} }

View File

@ -4,7 +4,8 @@
<view class="status-nav" :style="{background:backgroudColor}"> <view class="status-nav" :style="{background:backgroudColor}">
<!-- 返回键 --> <!-- 返回键 -->
<view @tap="backEvent" v-if="statusBack" style="height: 33rpx;width: 80rpx;flex-shrink: 0;position: absolute;"> <view @tap="backEvent" v-if="statusBack" style="height: 33rpx;width: 80rpx;flex-shrink: 0;position: absolute;">
<image class="tab-back" src="/static/public/backBlackm.png"></image> <image v-if="backColor==0" class="tab-back" src="/static/public/backBlackm.png"></image>
<image v-if="backColor==1" class="tab-back" src="/static/public/videoBack.png"></image>
</view> </view>
<!-- 标题 --> <!-- 标题 -->
<!-- <view v-if="statusTitle" :class="statusBack ? 'tcenter' : 'tleft'" class="tab-title" :style="{color:tabcolor}">{{titleVal}}</view> --> <!-- <view v-if="statusTitle" :class="statusBack ? 'tcenter' : 'tleft'" class="tab-title" :style="{color:tabcolor}">{{titleVal}}</view> -->
@ -41,6 +42,10 @@
whereCome:{// whereCome:{//
type:Number, type:Number,
default:0 default:0
},
backColor:{//
type:Number,
default:0
} }
}, },
mounted() { mounted() {

View File

@ -4,7 +4,8 @@ console.log('当前环境', process.env.NODE_ENV)
const apiHub = { const apiHub = {
//开发环境 //开发环境
development: { development: {
BASE_URL: "https://hm.hmzfyy.cn/api/", BASE_URL: "https://hengmei.scdxtc.cn/api/",
// BASE_URL: "https://hm.hmzfyy.cn/api/",
IMG_URL: "https://xx", IMG_URL: "https://xx",
BASE_UPLOAD_URL: "", BASE_UPLOAD_URL: "",
}, },

View File

@ -31,6 +31,38 @@ export function cancleCollectionEV(data){//取消收藏事件
} }
},error=>{}) },error=>{})
} }
// 商品收藏、积分收藏
export function collectionShopEV(data){//收藏事件
console.log(data);
return requst.post('spu/record',data).then(res=>{
if(res.code==0) {
let newMsg = ''
let num = 0
if(data.action=='collect'){
num = 3
newMsg = '收藏成功'
}
let maiOjb = {
e:num,//内容收藏
c:data.id*1,
t:new Date().getTime()//当前时间戳
}
toolAll.tools.maiDian(maiOjb)
toolAll.tools.showToast(newMsg,'none',1500)
}
},error=>{})
}
export function cancleCollectionShopEV(data){//取消收藏事件
return requst.post('spu/un-record',data).then(res=>{
if(res.code==0) {
let newMsg = ''
if(data.action=='collect'){
newMsg = '已取消收藏'
}
toolAll.tools.showToast(newMsg,'none',1500)
}
},error=>{})
}
export function buriedPoint(){//查询埋点类型事件 export function buriedPoint(){//查询埋点类型事件
return requst.post('statistics/event').then(res=>{ return requst.post('statistics/event').then(res=>{
// console.log('查询所有需要埋点的类型:',res); // console.log('查询所有需要埋点的类型:',res);

View File

@ -1,4 +1,4 @@
const domainName = 'https://hm.hmzfyy.cn/api/'//域名配置 const domainName = 'https://hengmei.scdxtc.cn/api/'//域名配置
// 统一给参数 // 统一给参数
const dataObj = (url, params) => { const dataObj = (url, params) => {
let options = params let options = params

View File

@ -104,6 +104,11 @@ const tools = {
hname = `${name.substr(0, 1)}****${name.substr(name.length-1)}` hname = `${name.substr(0, 1)}****${name.substr(name.length-1)}`
return hname return hname
}, },
// 整数添加.00,小数就不添加
addXiaoShu(num){
let str = num.toString();
return str.includes('.') ? num : num = num + '.00';
},
// 时间戳===>日期 // 时间戳===>日期
timestampToTime(timestamp) { timestampToTime(timestamp) {
var date = timestamp.toString().length==13 ? new Date(timestamp*1) : new Date(timestamp * 1000);//时间戳为10位需*1000时间戳为13位的话不需乘1000 var date = timestamp.toString().length==13 ? new Date(timestamp*1) : new Date(timestamp * 1000);//时间戳为10位需*1000时间戳为13位的话不需乘1000
@ -281,7 +286,7 @@ const tools = {
language:obj.language language:obj.language
} }
uni.request({ uni.request({
url: `https://hm.hmzfyy.cn/api/user/login`, url: `https://hengmei.scdxtc.cn/api/user/login`,
method: 'post', method: 'post',
data: params, data: params,
header: { header: {
@ -321,6 +326,18 @@ const tools = {
if(uni.getStorageSync('is_active')!='' && uni.getStorageSync('is_active') !=0 ){ if(uni.getStorageSync('is_active')!='' && uni.getStorageSync('is_active') !=0 ){
this.overdue() this.overdue()
} }
},
clickCopy(data){
uni.setClipboardData({
data: data,
success: function() {
uni.showToast({
title: '复制成功',
duration: 2000,
icon: 'none'
});
}
});
} }
} }

View File

@ -10,7 +10,8 @@
"compilerVersion" : 3, "compilerVersion" : 3,
/* 5+App */ /* 5+App */
"modules" : { "modules" : {
"Payment" : {} "Payment" : {},
"Share" : {}
}, },
/* */ /* */
"distribute" : { "distribute" : {
@ -48,7 +49,13 @@
} }
}, },
"push" : {}, "push" : {},
"geolocation" : {} "geolocation" : {},
"share" : {
"weixin" : {
"appid" : "wxa02e44170bc722cd",
"UniversalLinks" : ""
}
}
} }
} }
}, },

View File

@ -1,6 +1,9 @@
{ {
"pages": [ "pages": [
{ {
"path" : "pages/tabbar/my/staffDuan",
"style" :{}
},{
"path" : "pages/tabbar/pagehome/pagehome", "path" : "pages/tabbar/pagehome/pagehome",
"style" :{} "style" :{}
},{ },{
@ -72,6 +75,87 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}
,{
"path" : "member/member",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "integralManage/integralManage",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "peacockCoin/peacockCoin",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "signIn/signIn",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "myOrder/myOrder",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "myAddress/myAddress",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "activityTask/activityTask",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "coupon/coupon",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "pointsMall/pointsMall",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
} }
] ]
}, },

View File

@ -18,7 +18,8 @@
<view class="bacf radius20 width100 tank-box"> <view class="bacf radius20 width100 tank-box">
<view class="tc tank-box-itemone">请授权绑定手机号</view> <view class="tc tank-box-itemone">请授权绑定手机号</view>
<view class="fon28 colf pad-x30 pad-zy30 tc disjb"> <view class="fon28 colf pad-x30 pad-zy30 tc disjb">
<view @tap="refuse" class="pad-sx10 radius10 tank-btn" style="background-color: rgba(230, 230, 230,1);color: #000000;">暂不绑定</view> <!-- <view @tap="refuse" class="pad-sx10 radius10 tank-btn" style="background-color: rgba(230, 230, 230,1);color: #000000;">暂不绑定</view> -->
<view class="pad-sx10 radius10 tank-btn" style="background-color: rgba(230, 230, 230,1);color: #000000;">暂不绑定</view>
<view :style="{background:publicColor}" class="pad-sx10 radius10 tank-btn posir"> <view :style="{background:publicColor}" class="pad-sx10 radius10 tank-btn posir">
立即绑定 立即绑定
<button open-type="getPhoneNumber" @getphonenumber="getphonenumber" class="posia syxzo">立即绑定</button> <button open-type="getPhoneNumber" @getphonenumber="getphonenumber" class="posia syxzo">立即绑定</button>
@ -57,7 +58,7 @@
} }
}, },
methods: { methods: {
refuse(){ refuse(){//
this.isShowP=false this.isShowP=false
this.$toolAll.tools.showToast('登录成功','success') this.$toolAll.tools.showToast('登录成功','success')
uni.reLaunch({url:'/pages/tabbar/pagehome/pagehome'}) uni.reLaunch({url:'/pages/tabbar/pagehome/pagehome'})
@ -93,7 +94,7 @@
desc: '登录', desc: '登录',
lang: 'zh_CN', lang: 'zh_CN',
success: (res) => { success: (res) => {
// console.log('res',res); console.log('res',res);
ya.userInfo = res.userInfo; ya.userInfo = res.userInfo;
// console.log('',ya.userInfo); // console.log('',ya.userInfo);
try { try {

View File

@ -0,0 +1,441 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :backgroudColor="publicColor" :tabcolor="publicColor" :statusTitle="true" :statusBack="false"></status-nav>
<image src="/static/public/staff-head.png" style="position: absolute;top: 0;left: 0;right: 0;height: 436rpx;width: 100%;"></image>
<view class="mar-zy32 posir pad-x260" :style="{paddingTop:statusHNH+'px'}">
<view class="radius20 posir gao">
<view class="posia" :style="{top:`-${gaoh*0.4}px`,height:gaoh+'px'}" style="left: -32rpx;right: -32rpx;z-index: -1;"></view>
<view class="disjbac">
<view class="disac colf">
<!-- 头像 -->
<image class="mar-sx30" :src="userInfo.headimgurl || ''" style="width:120rpx;height: 120rpx;border-radius: 100%;margin-left: 15rpx;z-index: 1;" mode="aspectFill"></image>
<view class="mar-z30">
<!-- 昵称 -->
<view class="disac">
<view class="fon36 bold">{{userInfo.nickname || ''}}</view>
<view style="background: #FFBD39;border-radius: 10rpx;text-align: center;font-size: 22rpx;color: #FFFFFF;padding: 5rpx 16rpx;margin-left: 10rpx;">黄金</view>
</view>
<view class="disac mar-s10" v-if="userInfo.mobile!==''">
<image src="/static/public/phone-02.png" style="width: 14rpx;height: 20rpx;" mode=""></image>
<!-- 手机号 -->
<view class="fon24 mar-z10">{{userInfo.mobile}}</view>
</view>
</view>
</view>
<view class="mar-y25 disac">
<!-- 二维码 -->
<image @tap="isQrcode=true" src="/static/public/staff-qro.png" style="width: 43rpx;height: 43rpx;z-index: 1;" mode=""></image>
<!-- 前进键 -->
<view @tap="goNodifyData" style="width: 50rpx;position: relative;z-index: 1;justify-content: flex-end;" class="disac">
<image class="" src="/static/public/next-white.png" style="width: 35rpx;height: 35rpx;z-index: 1;" mode="aspectFill"></image>
</view>
</view>
</view>
<view class="disjbac posir mar-s40 fon24 pad-zy50" style="z-index: 1;color: #F8CE59;">
<view>
<view class="disac"><span style="font-weight: bold;margin-right: 20rpx;">VIP</span>黄金会员</view>
</view>
<navigator url="/pagesA/member/member" hover-class="none">
<view class="disac">
<view>更多权益</view>
<image src="/static/public/next-yellow.png" style="width: 22rpx;height: 22rpx;" mode=""></image>
</view>
</navigator>
</view>
</view>
<view class="disja posir" style="z-index: 1;margin-top: 75rpx;">
<view @tap="choosesjf(indext)" class="disac fc flexs" style="width: 33%;" v-for="(itemt,indext) in tongList" :key="indext">
<view class="fon28 bold mar-sx20 clips1">{{itemt.num}}<text v-if="indext==2"></text></view>
<view class="fon28 mar-x25">{{itemt.title}}</view>
</view>
</view>
<!-- 员工功能 v-if="userInfo.is_staff && yuanList.length!=0" -->
<view v-if="userInfo.is_staff==1" class="bacf radius20 mar-s20 pad20">
<view class="bacf radius20 mar-s20 pad20">
<view class="mar-x30 fon28 bold col3">员工功能</view>
<view class="disac yuan-box">
<view @tap="chooseYitem(indexy)" style="width: 33%;display: flex;justify-content: center;align-items: center;position: relative;" v-for="(itemy,indexy) in yuanList" :key="indexy">
<view class="disac fc">
<image :src="itemy.src" style="width: 54rpx;height: 54rpx;" mode="aspectFill"></image>
<view class="fon28 mar-s20 mar-x10">{{itemy.title}}</view>
</view>
<view v-if="indexy<(yuanList.length-1)" style="height: 58rpx;border: 2rpx solid #E6E6E6;position: absolute;right: 0;"></view>
</view>
</view>
</view>
</view>
<!-- 我的订单 -->
<view class="bacf radius20 mar-s20 pad20">
<view class="mar-x30 fon28 col3 disjbac">
<view>我的订单</view>
<navigator url="/pagesA/myOrder/myOrder?index=0" hover-class="none">
<view class="disac">
<view class="fon24 col9">全部</view>
<image src="/static/public/nextM.png" style="width: 22rpx;height: 22rpx;" mode=""></image>
</view>
</navigator>
</view>
<view class="disja fon28 col3">
<view @tap="chooseOrderStatus(indexo)" v-for="(itemo,indexo) in myOrderList" :key="indexo">
<view class="disac fc posir">
<image :src="itemo.src" style="width: 60rpx;height: 60rpx;" mode="aspectFill"></image>
<view class="mar-s20 mar-x10">{{itemo.title}}</view>
<view class="posia" style="width: 36rpx;height: 36rpx;line-height: 36rpx;border-radius: 100%;background: #F96969;right: 0;top: 0;font-size: 22rpx;color: #FFFFFF;text-align: center;">19</view>
</view>
</view>
</view>
</view>
<!-- 广告 -->
<image @tap="goPage" class="width100 radius20 mar-sx20" :src="guangImg" style="height: 160rpx;" mode="aspectFill"></image>
<!-- 功能列表① -->
<view class="bacf radius20 mar-s20">
<view class="disjbac fon28 col3 fw">
<view @tap="goPageNew(indexm)" v-for="(itemm,indexm) in moneyList" :key="indexm" class="mar-s20 mar-x20" style="width: 25%;">
<view class="disac fc">
<image :src="itemm.src" style="width: 60rpx;height: 60rpx;" mode="aspectFill"></image>
<view class="mar-s20 mar-x10">{{itemm.title}}</view>
</view>
</view>
</view>
</view>
<!-- 功能列表② -->
<view class="bacf radius20 mar-s20">
<view class="disac fon28 col3 fw">
<view @tap="goPageTwo(indexf)" v-for="(itemf,indexf) in toolsList" :key="indexf" class="mar-s20 mar-x20" style="width: 25%;">
<view class="disac fc posir">
<image :src="itemf.src" style="width: 60rpx;height: 60rpx;" mode="aspectFill"></image>
<view class="mar-s20 mar-x10">{{itemf.title}}</view>
<view v-if="indexf==4" class="posia" style="width: 36rpx;height: 36rpx;line-height: 36rpx;border-radius: 100%;background: #F96969;right: 50rpx;top: 0;font-size: 22rpx;color: #FFFFFF;text-align: center;">19</view>
</view>
</view>
</view>
</view>
</view>
<!-- 我的二维码弹框 -->
<view v-if="isQrcode" class="posAll disjcac">
<view>
<view class="bacf radius20" style="margin: 0 130rpx;">
<view class="fon28 col3 tc pad-s40">我的二维码</view>
<image :src="myqr" style="width: 325rpx;height: 325rpx;margin: 30rpx 86rpx 68rpx 86rpx;" mode="aspectFill"></image>
</view>
<view class="disjcac">
<image @tap="isQrcode=false" class="mar-s50" src="/static/public/qrcodec.png" style="width: 96rpx;height: 96rpx;border-radius: 100%;" mode="aspectFill"></image>
</view>
</view>
</view>
<!-- 底部tab -->
<foot-tab :titleList="titleList" :imgList="imgList" :newcurrent='4'></foot-tab>
<!-- 弹框授权 -->
<empower :vision="vision" @cancleEv="cancleEv"></empower>
<view v-if="isQian" style="position: fixed;top: 50%;left: 50%;transform: translate(-50%,-50%);">
<view style="padding: 20rpx 40rpx;background-color: rgba(0,0,0,.6);color: #FFFFFF;border-radius: 6rpx;">签到成功</view>
</view>
</view>
</template>
<script>
import {base64ToPath} from '@/jsFile/base64-src.js';
import empower from '@/components/empower.vue';
import {checkBanner} from '@/jsFile/publicAPI.js';
export default {
components:{empower},
data() {
return {
vision:false,
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),
tongList:[
{num:'0',title:'我的积分'},
{num:'0',title:'孔雀币'},
{num:'0',title:'连续签到'}
],
yuanList:[], //'customer-list','footmarks','scan'
zanCyuanList:[
{src:'/static/public/keh.png',title:'客户列表',rule:'customer-list'},
{src:'/static/public/zu.png',title:'用户足迹',rule:'footmarks'},
{src:'/static/public/scan.png',title:'扫码签到',rule:'scan'},
],
myOrderList:[//
{src:'/static/public/dai-fu60.png',title:'待付款'},
{src:'/static/public/dai-fa60.png',title:'待发货'},
{src:'/static/public/dai-shou60.png',title:'待收货'},
{src:'/static/public/wan-60.png',title:'已完成'},
],
moneyList:[
{src:'/static/public/integral60.png',title:'积分商城'},
{src:'/static/public/address60.png',title:'地址管理'},
{src:'/static/public/day60.png',title:'日程提醒'},
{src:'/static/public/ren60.png',title:'活动任务'},
{src:'/static/public/quan60.png',title:'优惠券'},
{src:'/static/public/kong60.png',title:'孔雀币'},
{src:'/static/public/scor60.png',title:'积分管理'},
{src:'/static/public/signIn.png',title:'签到记录'},
],
toolsList:[
{src:'/static/public/staff-yue60.png',title:'自助预约',num:''},
{src:'/static/public/staff-hai60.png',title:'个人海报',num:''},
{src:'/static/public/staff-collection60.png',title:'收藏',num:''},
{src:'/static/public/staff-share.png',title:'分享中心',num:''},
{src:'/static/public/staff-msg60.png',title:'消息通知',num:''},
{src:'/static/public/staff-tou60.png',title:'投诉与建议',num:''},
{src:'/static/public/staff-about60.png',title:'关于我们',num:''},
],
isQrcode:false,//
userInfo:{},//
gaoh:uni.getStorageSync('gao'),
myqr:'/static/public/qrcode.png',
is_worker:'',//0 1
is_doctor:'',//01
is_servicer:'',//01
is_staff:'',//01
titleList:[],
imgList:[],
isQian:false,
bannerList:[],
guangImg:'',
isAuth:'',
guanggao:'',
}
},
onUnload: function() {
//
let pages = getCurrentPages();
// console.log('pages:',pages);
},
onShow() {
uni.removeStorageSync('uinfo')//
this.$toolAll.tools.isLogin()
this.checkInfo()
uni.removeStorageSync('shareAll')//
this.$requst.post('index/mini-program-setting').then(res=>{
// log('',res);
if(res.code==0){
if(res.data.length!=0){
if(res.data.footBar.length!=0){//
res.data.footBar.forEach(item=>{
let newName = item.name
let newObj = {
iconPath:this.$http + item.icon[0],
selectedIconPath:this.$http + item.icon[1],
}
if(item.key=="home"){
this.imgList[0] = newObj
this.titleList[0] = newName
}
if(item.key=="category"){
this.imgList[1] = newObj
this.titleList[1] = newName
}
if(item.key=="service"){
this.imgList[2] = newObj
this.titleList[2] = newName
}
if(item.key=="shop"){
this.imgList[3] = newObj
this.titleList[3] = newName
}
if(item.key=="my"){
this.imgList[4] = newObj
this.titleList[4] = newName
}
})
uni.setStorageSync('footTitle',this.titleList)
uni.setStorageSync('footimg',this.imgList)
this.titleList = uni.getStorageSync('footTitle')
this.imgList = uni.getStorageSync('footimg')
}
}
}
},error=>{})
},
onLoad() {
if(uni.getStorageSync('gao')==''){
const query = wx.createSelectorQuery()
query.select('.gao').boundingClientRect((rect) => {
uni.setStorageSync('gao',rect.height)
this.gaoh = rect.height
}).exec()
}
this.checkSwi()
this.checkGM()
},
methods: {
goPageNew(index){
if(index==0){uni.navigateTo({url:'/pagesA/pointsMall/pointsMall'})}
if(index==1){uni.navigateTo({url:'/pagesA/myAddress/myAddress'})}
if(index==2){uni.navigateTo({url:'/pagesB/messagecenter/messagecenter?index=true'})}
if(index==3){uni.navigateTo({url:'/pagesA/activityTask/activityTask'})}
if(index==4){uni.navigateTo({url:'/pagesA/coupon/coupon'})}
if(index==5){uni.navigateTo({url:'/pagesA/peacockCoin/peacockCoin'})}
if(index==6){uni.navigateTo({url:'/pagesA/integralManage/integralManage'})}
if(index==7){uni.navigateTo({url:'/pagesA/signIn/signIn'})}
},
goPageTwo(index){
if(index==0){uni.navigateTo({url:'/pagesA/makeAnPppointment/makeAnPppointment'})}
if(index==1){uni.navigateTo({url:'/pagesB/personalPoster/personalPoster'})}
if(index==2){uni.navigateTo({url:'/pagesB/myCollection/myCollection'})}
if(index==3){uni.navigateTo({url:'/pagesB/sharingCenter/sharingCenter'})}
if(index==4){uni.navigateTo({url:'/pagesB/messagecenter/messagecenter'})}
if(index==5){uni.navigateTo({url:'/pagesA/suggestions/suggestions'})}
if(index==6){uni.navigateTo({url:'/pagesB/aboutUs/aboutUs'})}
},
chooseOrderStatus(index){
let statusIndex = ''
if(index==0) statusIndex = 1;
if(index==1) statusIndex = 2;
if(index==2) statusIndex = 4;
if(index==3) statusIndex = 5;
uni.navigateTo({
url:'/pagesA/myOrder/myOrder?index='+statusIndex
})
},
goPage(){
uni.navigateTo({
url:this.guanggao
})
},
checkSwi(){
checkBanner({position:'personal-center-banner'}).then(res=>{
// console.log('res',res);
if(res.code==0){
if(res.data.length!=0){
this.guangImg = this.$http + res.data[0].src
this.guanggao = res.data[0].url
// res.data.forEach(item=>{
// let isVideo = false
// if(item.type!='img') isVideo = true
// let banObj = {
// imgSrc:this.$http + item.src,
// url:item.url,
// isVideo:isVideo,
// poster:this.$http + item.src,
// }
// this.bannerList.push(banObj)
// })
}
}
})
},
cancleEv(e){
if(e==0) this.vision = false
},
checkGM(){//
this.$requst.post('user/personal-qr').then(res=>{
// console.log('',res);
if(res.code==0){
base64ToPath(res.data.qr).then(path => {
this.myqr = path
uni.setStorageSync('imgSrc',path)
}).catch(error => {})
}
},error=>{})
},
checkInfo(){
this.$requst.post('user/info').then(res=>{
// console.log('',res);
if(res.code==0 && res.data.length!=0) {
this.userInfo = res.data;
this.userInfo.mobile = this.$toolAll.tools.hideMPhone(this.userInfo.mobile);
this.tongList[1].num = res.data.score//
this.tongList[0].num = res.data.collects//
this.tongList[2].num = res.data.share_users.total//
this.toolsList[4].num = res.data.unread_messages//
this.is_worker = res.data.is_worker//0 1
this.is_doctor = res.data.is_doctor//01
this.is_servicer = res.data.is_servicer//01
this.is_staff = res.data.is_staff//01
if(res.data.is_staff==1){
if(this.toolsList.length!=8){
this.toolsList.push({src:'/static/public/aboutus.png',title:'客服二维码',num:''})
}
}
uni.setStorageSync('shareAll',res.data)
if(res.data.rules.length!=0){
let result = this.zanCyuanList.filter(item => res.data.rules.some(itemt => itemt===item.rule))
this.yuanList = result
uni.setStorageSync('rules',res.data.rules)
} else this.yuanList = []
}
},error=>{})
},
chooseItem(index){//
// console.log('',this.toolsList[index].title);
let newUrl = ''
if(index==0) newUrl = '/pagesA/makeAnPppointment/makeAnPppointment'
if(index==1) newUrl = '/pagesB/personalPoster/personalPoster'
if(index==2) newUrl = '/pagesB/myCollection/myCollection'
if(index==3) newUrl = '/pagesB/sharingCenter/sharingCenter'
if(index==4) newUrl = '/pagesB/messagecenter/messagecenter'
if(index==5) newUrl = '/pagesA/suggestions/suggestions'
if(index==6) newUrl = '/pagesB/aboutUs/aboutUs'
if(index==7) newUrl = '/pagesB/customer/customer'
uni.navigateTo({
url:newUrl
})
},
chooseYitem(index){//
// console.log('',this.yuanList[index].title);
switch (index){
case 0:
uni.navigateTo({
url:'/pagesB/customerList/customerList'
})
break;
case 1:
uni.navigateTo({
url:'/pagesB/userFootprint/userFootprint'
})
break;
case 2:
wx.scanCode({ //
complete: (res) => {}, //
fail: (res) => {}, //
onlyFromCamera: false, //,
scanType: ['qrCode'], // scanType :
success: (rt) => { //
let uc = JSON.parse(rt.result).user_coding
this.$requst.post('user/sign-in',{user_coding:uc}).then(res=>{
// console.log('',res);
if(res.code==0){
this.isQian = true
setTimeout(()=>{
this.isQian = false
},2000)
}
},error=>{})
}
})
break;
}
},
choosesjf(index){//
// console.log('',this.tongList[index].title);
switch (index){
case 0:
uni.navigateTo({//
url:'/pagesB/myCollection/myCollection'
})
break;
case 1:
break;
case 2:
uni.navigateTo({//
url:'/pagesB/mysharer/mysharer'
})
break;
}
},
goNodifyData(){//
uni.setStorageSync('uinfo',this.userInfo)
uni.navigateTo({
url:'/pagesA/nodifyData/nodifyData'
})
},
}
}
</script>
<style>
</style>

View File

@ -3,12 +3,12 @@
<!-- 状态栏 --> <!-- 状态栏 -->
<status-nav :titleVal="'商城'" :statusBack="false" :statusTitle="true"></status-nav> <status-nav :titleVal="'商城'" :statusBack="false" :statusTitle="true"></status-nav>
<!-- 搜索输入框 --> <!-- 搜索输入框 -->
<view class="search-input-box bacf" :style="{top: statusHNH+'px'}" style="position: fixed;left: 0;right: 0;"> <view class="search-input-box bacf poszy shop-nav-box" :style="{top: statusHNH+'px'}">
<view class="disac pad-zy30 mar-s20"> <view class="disac pad-zy30 mar-s20">
<!-- 输入框 --> <!-- 输入框 -->
<input style="border: 2rpx solid #E0E0E0;padding: 0rpx 20rpx;height: 80rpx;line-height: 80rpx;" class="width100 fon34 radius10" type="text" v-model="searchVal" placeholder="请输入商品名称"/> <input class="width100 fon34 radius10" type="text" @confirm="searchEv" v-model="searchVal" placeholder="请输入商品名称"/>
<!-- 搜索 --> <!-- 搜索 -->
<view class="flexs mar-z30 radius10 pad-zy40 fon34 colf" style="height: 80rpx;line-height: 80rpx;" :style="{background:publicColor}">搜索</view> <view class="flexs mar-z30 radius10 pad-zy40 fon34 colf" @tap="searchEv" :style="{background:publicColor}">搜索</view>
</view> </view>
<!-- 分类标题 --> <!-- 分类标题 -->
<view style="background: #FFFFFF;font-size: 24rpx;" class="disjbac pad-zy20 pad-s20"> <view style="background: #FFFFFF;font-size: 24rpx;" class="disjbac pad-zy20 pad-s20">
@ -17,39 +17,40 @@
<!-- 筛选结果 --> <!-- 筛选结果 -->
<view v-if="isClick" class="pad-zy50 disac fw pad-x20"> <view v-if="isClick" class="pad-zy50 disac fw pad-x20">
<view class="col3 fon28 mar-s30">筛选</view> <view class="col3 fon28 mar-s30">筛选</view>
<view v-for="(item,indexx) in shaiList" :key="indexx" style="background: #3875F6;color: #FFFFFF;border-radius: 30rpx;padding: 8rpx 20rpx;font-size: 24rpx;display: flex;align-items: center;margin-right: 20rpx;margin-top: 30rpx;">{{item}} <view class="mar-z10" @tap="deleteSX(indexx)">×</view></view> <view v-for="(item,indexx) in shaiList" :key="indexx">{{item}} <view class="mar-z10" @tap="deleteSX(indexx)">×</view></view>
</view> </view>
<view v-if="isXiao"> <view v-if="isXiao">
<view class="pad-zy30"> <view class="pad-zy30">
<view class="mar-s50 mar-x20 fon28 bold">{{cateTitle}}</view> <view class="mar-s50 mar-x20 fon28 bold">{{cateTitle}}</view>
<view class="disac fw"> <view class="disac fw">
<view @tap="chooseBing(indexb)" v-for="(itemb,indexb) in bingzList" class="mar-y30 fon26 mar-s30" :key="indexb" :class="bingIndex==indexb?'activebcate':'shopBMo'" :style="{background:bingIndex==indexb?publicColor:'#F2F2F2'}">{{itemb}}</view> <view @tap="chooseBing(indexb)" v-for="(itemb,indexb) in bingzList" class="mar-y30 fon26 mar-s30" :key="indexb" :class="itemb.isActive?'activebcate':'shopBMo'" :style="{background:itemb.isActive?publicColor:'#F2F2F2'}">{{itemb.title}}</view>
</view> </view>
<view v-if="activeIndex==1"> <view v-if="activeIndex==1">
<view class="fon28 bold mar-sx40">医生选择</view> <view class="fon28 bold mar-sx40">医生选择</view>
<input type="text" class="mar-x40" value="" style="height: 60rpx;border: 2rpx solid #E0E0E0;border-radius: 10rpx;width: 100%;box-sizing: border-box;padding-left: 20rpx;font-size: 24rpx;" placeholder="请输入医生姓名并选择" /> <input type="text" class="mar-x40" value="" placeholder="请输入医生姓名并选择" />
</view> </view>
</view> </view>
<!-- 重置筛选 --> <!-- 重置筛选 -->
<view class="disjbac pad-zy20 mar-s50 mar-x30 pad-s20"> <view class="disjbac pad-zy20 mar-s50 mar-x30 pad-s20">
<view @tap="chongz" style="font-size: 28rpx;width: 294rpx;height: 60rpx;border-radius: 10rpx;text-align: center;line-height: 60rpx; background: #E6E6E6;color: #4D4D4D;">重置</view> <view @tap="chongz"></view>
<view @tap="shaix" style="font-size: 28rpx;width: 294rpx;height: 60rpx;border-radius: 10rpx;text-align: center;line-height: 60rpx; background: #3875F6;color: #FFFFFF;">筛选</view> <view @tap="shaix"></view>
</view>
<view @tap="isXiao=false" style="background: rgba(0,0,0,.54);width: 100%;height: 600rpx;float: left;position: relative;"></view>
</view> </view>
</view> </view>
</view>
<view v-if="isXiao" @tap="isXiao=false" class="moban"></view>
<!-- 数据列表 --> <!-- 数据列表 -->
<view :style="{marginTop:statusHNH+titleHeight+'px'}"> <view :style="{marginTop:statusHNH+titleHeight+'px'}">
<shopList></shopList> <shopList :dataList="dataList" v-if="dataList.length!=0"></shopList>
<nothing-page v-if="dataList.length==0" :content="`暂无更多${searchVal}商品`"></nothing-page>
</view> </view>
<!-- 底部tab --> <!-- 底部tab -->
<foot-tab :titleList="titleList" :imgList="imgList" :newcurrent='3'></foot-tab> <foot-tab :titleList="titleList" :imgList="imgList" :newcurrent='3'></foot-tab>
<!-- 购物车 --> <!-- 购物车 -->
<navigator url="/pagesA/shopCart/shopCart" hover-class="none"> <navigator url="/pagesA/shopCart/shopCart?isScore=false" hover-class="none">
<view style="position: fixed;right: 30rpx;bottom: 200rpx;"> <view class="cart-box">
<view class="posir" style="width: 112rpx;height: 112rpx;"> <view class="posir">
<image src="/static/public/cart.png" mode="aspectFill" style="width: 112rpx;height: 112rpx;"></image> <image src="/static/public/cart.png" mode="aspectFill"></image>
<view class="posia" style="background: #F85050;width: 28rpx;height: 28rpx;border-radius: 100%;color: #FFFFFF;font-size: 24rpx;text-align: center;line-height: 28rpx;top: 20rpx;right: 20rpx;"><view style="transform: scale(.8);">99</view></view> <view class="posia"><view>99</view></view>
</view> </view>
</view> </view>
</navigator> </navigator>
@ -71,12 +72,18 @@
activeIndex:'-1', activeIndex:'-1',
shopCate:['全部病种','全部医生','全部活动'], shopCate:['全部病种','全部医生','全部活动'],
cateTitle:'', cateTitle:'',
bingIndex:0,
bingzList:[],// bingzList:[],//
zanBingArr:[],//
isXiao:false,// isXiao:false,//
titleHeight:'',// titleHeight:'',//
shaiList:[],// shaiList:[],//
isClick:false,// isClick:false,//
dataList:[],
searchVal:'',//
doctor_role:'',// doctor= design=
doctor_name:'',//
activity:'',// + normal=group_make=group_buy=;limit_time=
disease_id:'',//ID
} }
}, },
onShow() { onShow() {
@ -91,50 +98,148 @@
// console.log('+',rect.height); // console.log('+',rect.height);
this.titleHeight = rect.height this.titleHeight = rect.height
}).exec() }).exec()
this.checkSX();
}, },
methods: { methods: {
chooseShopCate(index){// async checkSX(){//
this.activeIndex = index; this.$requst.get('spu/condition').then(res=>{
this.isClick = false; if(res.code==0){
this.bingIndex = 0; this.zanBingArr = res.data;
if(!this.isXiao) {
this.isXiao = true;
} }
})
await this.checkShopList();
},
chooseShopCate(index){//
if(this.activeIndex==index && this.isXiao) {
this.isXiao = false;
} else this.isXiao = true;
this.shaiList = []
this.bingzList = [];
this.isClick = false;
this.activeIndex = index;
let arr = [];
let obj = {};
if(this.activeIndex==0) { if(this.activeIndex==0) {
this.cateTitle = '病种选择'; this.cateTitle = '病种选择';
this.bingzList = ['全部','秃顶植发','眉毛种植','发际线种植','耳发种植','胡须种植','植发失败修复','其他']; this.zanBingArr.disease.forEach(item=>{
obj = {
pid: item.pid,
title: item.name,
id: item.id,
sort: item.sort,
isActive:false
}
arr.push(obj);
})
this.bingzList = arr;
this.bingzList.unshift({pid: '', title: "全部", id: '', sort: '',isActive:true});
this.bingzList.push({pid: '', title: "其他", id: '', sort: ''});
} }
if(this.activeIndex==1) { if(this.activeIndex==1) {
this.cateTitle = '职位选择'; this.cateTitle = '职位选择';
this.bingzList = ['全部','植发','医师','主任']; this.zanBingArr.doctor_roles.forEach(item=>{
obj = {
id: item.id,
name: item.name,
title: item.title,
pid: item.pid,
is_group: item.is_group,
isActive:false
}
arr.push(obj);
})
this.bingzList = arr;
this.bingzList.unshift({id: '', name: '', title: "全部", pid: '', is_group: '',isActive:true});
} }
if(this.activeIndex==2) { if(this.activeIndex==2) {
this.cateTitle = '活动选择'; this.cateTitle = '活动选择';
this.bingzList = ['全部','拼团活动','团购活动','限时促销']; this.zanBingArr.activity.forEach(item=>{
obj = {
name: item.name,
title: item.title,
isActive:false
} }
arr.push(obj);
})
this.bingzList = arr;
this.bingzList.unshift({name: '', title: "全部",isActive:true});
}
},
checkShopList(){
let params = {
keyword:this.searchVal,//
page:1,
size:10,
doctor_role:this.doctor_role,// doctor= design=
doctor_name:this.doctor_name,//
activity:this.activity,// + normal=group_make=group_buy=;limit_time=
disease_id:this.disease_id//ID
}
this.$requst.post('spu/list',params).then(res=>{
if(res.code==0){
this.dataList = [];
if(res.data.list.length!=0){
res.data.list.forEach(item=>{
let tuan = false,ping = false,xian = false,integral = false;
if(item.activity_type=='group_make') ping = true;
if(item.activity_type=='group_buy') tuan = true;
if(item.activity_type=='limit_time') xian = true;
let group_cover = [];
if(item.activity_group_cover.length!=0) {
item.activity_group_cover.forEach(item=>{
group_cover.push(this.$http + item)
})
}
let obj = {
id:item.id,
imgSrc: this.$http + item.cover,
title: item.name,
zhePrice:item.price/100,
yuanPrice:item.original_price/100,
integral:'',
isTuan:tuan,
isPing:ping,
isXian:xian,
isIntegral:integral,
grade:'',
disease_name:item.disease_name,//
disease_id:item.disease_id,//ID
activity_end_at:item.activity_end_at,//
activity_group_cover:group_cover,//
activity_group_num:item.activity_group_num//
}
this.dataList.push(obj)
})
}
}
})
}, },
chooseBing(index){// chooseBing(index){//
this.bingIndex = index; this.bingzList[index].isActive = !this.bingzList[index].isActive;
let cun = this.shaiList.indexOf(this.bingzList[index]); let cun = this.shaiList.indexOf(this.bingzList[index].id);
if(cun==-1){ if(cun==-1){
this.shaiList.push(this.bingzList[index]); this.shaiList.push(this.bingzList[index].title);
} }
console.log(this.shaiList); this.searchVal = this.shaiList.join(',');
console.log(this.searchVal);
}, },
chongz(){// chongz(){//
this.bingIndex = 0
this.isClick = false; this.isClick = false;
this.shaiList = [] this.shaiList = []
}, },
shaix(){// shaix(){//
this.isXiao = false this.isXiao = false
this.isClick = true; this.isClick = true;
this.checkShopList();
}, },
deleteSX(index){// deleteSX(index){//
this.shaiList.splice(index,1); this.shaiList.splice(index,1);
if(this.shaiList.length==0){ if(this.shaiList.length==0){
this.isClick = false; this.isClick = false;
} }
},
searchEv(){//
this.checkShopList();
} }
} }
} }
@ -142,4 +247,9 @@
<style> <style>
page{background: #F5F5F5;} page{background: #F5F5F5;}
.activecate,.shopMo{width: 216rpx;height: 65rpx;border-radius: 20rpx;line-height: 65rpx;text-align: center;background-color: #f2f2f2;color: #333333;}
.activecate{color: #FFFFFF;}
.shopMo span::after,.activecate span::after{display: inline-block;content: '';width: 16rpx;height: 13rpx;margin-left: 6rpx;}
.shopMo span::after{background: url(/static/public/shopSJ.png) no-repeat;background-size: 100% 90%;}
.activecate span::after{background: url(/static/public/shopSJ-active.png) no-repeat;background-size: 100% 90%;transform: rotate(180deg);background-position: 0 2rpx;}
</style> </style>

View File

@ -0,0 +1,164 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'活动任务'" :statusTitle="true"></status-nav>
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy32 pad-x20">
<!-- 签到领积分 -->
<view class="bacf radius20 pad20 mar-s20">
<view class="bold col3 disjbac">
<view class="disac">
<image src="/static/public/task-01-60.png" style="width: 60rpx;height: 60rpx;margin-right: 20rpx;" mode=""></image>
<view class="fon28">签到领积分</view>
</view>
<view><span style="color: #3875F6;">0</span>/7</view>
</view>
<view class="fon24" style="color: #808080;">
<view class="mar-s30">活动要求七天签到可领取7000个积分</view>
<view class="mar-s20">获得奖励10积分</view>
<view class="mar-s20">会员暂无</view>
<view class="mar-s20">结束时间2021-09-10 10:30</view>
</view>
<view class="disjcac">
<view class="mar-s30" style="width: 546rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 35rpx;font-size: 30rpx;color: #FFFFFF;background: #3875F6;">立即签到</view>
</view>
</view>
<!-- 分享孔雀币 -->
<view class="bacf radius20 pad20 mar-s20">
<view class="bold col3 disjbac">
<view class="disac">
<image src="/static/public/task-02-60.png" style="width: 60rpx;height: 60rpx;margin-right: 20rpx;" mode=""></image>
<view class="fon28">分享孔雀币</view>
</view>
<view><span style="color: #3875F6;">0</span>/7</view>
</view>
<view class="fon24" style="color: #808080;">
<view class="mar-s30">活动要求成功分享并注册成为会员9人可获得30孔雀币</view>
<view class="mar-s20">获得奖励10孔雀币</view>
<view class="mar-s20">会员暂无</view>
<view class="mar-s20">结束时间2021-09-10 10:30</view>
</view>
<view class="disjcac">
<view class="mar-s30" style="width: 546rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 35rpx;font-size: 30rpx;color: #FFFFFF;background: #3875F6;">立即参与</view>
</view>
</view>
<!-- 分享领积分 -->
<view class="bacf radius20 pad20 mar-s20">
<view class="bold col3 disjbac">
<view class="disac">
<image src="/static/public/task-03-60.png" style="width: 60rpx;height: 60rpx;margin-right: 20rpx;" mode=""></image>
<view class="fon28">分享领积分</view>
</view>
<view><span style="color: #3875F6;">0</span>/7</view>
</view>
<view class="fon24" style="color: #808080;">
<view class="mar-s30">活动要求成功分享并注册成为会员2人可获得100积分</view>
<view class="mar-s20">获得奖励10孔雀币</view>
<view class="mar-s20">会员暂无</view>
<view class="mar-s20">结束时间2021-09-10 10:30</view>
</view>
<view class="disjcac">
<view class="mar-s30" style="width: 546rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 35rpx;font-size: 30rpx;color: #FFFFFF;background: #3875F6;">立即参与</view>
</view>
</view>
<!-- 分享至朋友圈 -->
<view class="bacf radius20 pad20 mar-s20">
<view class="bold col3 disjbac">
<view class="disac">
<image src="/static/public/task-04-60.png" style="width: 60rpx;height: 60rpx;margin-right: 20rpx;" mode=""></image>
<view class="fon28">分享至朋友圈</view>
</view>
<view><span style="color: #3875F6;">1</span>/1</view>
</view>
<view class="fon24" style="color: #808080;">
<view class="mar-s30">活动要求成功分享并上传截图认证通过后获得</view>
<view class="mar-s20">获得奖励20积分</view>
<view class="mar-s20">会员暂无</view>
<view class="mar-s20">结束时间2021-09-10 10:30</view>
</view>
<view class="disjcac">
<view @tap="isScreenshot=true" :style="{background:!isScreenshot?publicColor:'#CCCCCC'}" class="mar-s30" style="width: 546rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 35rpx;font-size: 30rpx;color: #FFFFFF;">{{!isScreenshot?'立即参与':'审核中...'}}</view>
</view>
</view>
<!-- 上传截图弹框 -->
<view v-if="isScreenshot" @tap.stop="isScreenshot=false,upImg=''" class="posAll disjcac" style="padding: 0 85rpx;z-index: 3;">
<view class="bacf width100" @tap.stop="isScreenshot=true" style="padding: 0 33rpx;border-radius: 20rpx;">
<view class=" disjcac fc">
<view class="fon32 col3 mar-s30 mar-x40">截图上传</view>
<view v-if="upImg==''" @tap="chooseImg" class=" disjcac fc" style="width: 340rpx;height: 348rpx;background: #F0F0F0;border-radius: 10rpx;margin-bottom: 70rpx;">
<view class="posir disjcac mar-s50">
<view class="posia" style="width: 100rpx;height: 6rpx;background: #B3B3B3;border-radius: 10rpx;transform: rotate(90deg);"></view>
<view class="posia" style="width: 100rpx;height: 6rpx;background: #B3B3B3;border-radius: 10rpx;"></view>
</view>
<view class="fon28 col9" style="margin-top: 120rpx;">点击上传截图</view>
</view>
<image v-else @tap="chooseImg" :src="upImg" style="width: 340rpx;height: 348rpx;border-radius: 10rpx;margin-bottom: 70rpx;" mode="aspectFill"></image>
</view>
<view class="disjbac mar-x20" style="text-align: center;">
<view @tap.stop="isScreenshot=false,upImg=''" style="width: 196rpx;height: 60rpx;line-height: 60rpx;border-radius: 10rpx;background: #E6E6E6;color: #FFFFFF;">取消</view>
<view @tap.stop="shareEv" style="width: 196rpx;height: 60rpx;line-height: 60rpx;border-radius: 10rpx;background: #3875F6;color: #FFFFFF;position: relative;">确定</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
isScreenshot:false,
upImg:''
}
},
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad() {
this.checkList();
},
methods: {
checkList(){//
this.$requst.post('task/task/task-list').then(res=>{
if(res.code==0){
if(res.data.length!=0){
res.data.forEach(item=>{
})
}
}
})
},
chooseImg(){//
uni.chooseImage({
count:1,
sourceType:['album'],
success: (res) => {
console.log(res);
this.upImg = res.tempFilePaths[0]
}
})
},
shareEv(){//
},
}
}
</script>
<style>
.isWen{color: #3875F6;}
.isWen::after{
content: '';
display: block;
height: 8rpx;
width: 80%;
position: absolute;
bottom: -20rpx;
left: 50%;
transform: translateX(-50%);
background: #3875F6;
}
</style>

154
pagesA/coupon/coupon.vue Normal file
View File

@ -0,0 +1,154 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'优惠券'" :statusTitle="true"></status-nav>
<view id="daoh" class="bacf pad-zy40 pad-sx20 isTopf fon28 col3 disjbac" :style="{top:statusHNH+'px'}">
<view @tap="chooseNav(indexn)" :class="isStatus==indexn?'isWen bold':''" class="posir" v-for="(itemn,indexn) in navList" :key="indexn">{{itemn}}</view>
</view>
<!-- 列表 -->
<view :style="{paddingTop: (statusHNH+chuTop+15)+'px'}" class="pad-zy32">
<view class="pad-x30">
<view v-if="dataList.length!=0" class="mar-x20" v-for="(item,index) in dataList" :key="index">
<view style="height: 200rpx;" class="disjbac posir">
<view class="posir disjcac fc" style="width: 218rpx;height: 200rpx;flex-shrink: 0;text-align: center;color: #FFFFFF;">
<image v-if="item.statusNum!=0 && item.statusNum!=2" class="posia quan-img" src="/static/public/quan-left-two.png" mode=""></image>
<image v-else class="posia quan-img" src="/static/public/quan-left.png" mode=""></image>
<view class="posir disjcac fc" style="z-index: 1;">
<view class="fon28 mar-s20 mar-x36"><span v-if="!item.isTiyan && !item.isZhek">¥</span><span class="bold" style="font-size: 56rpx;">{{item.num}}</span></view>
<view v-if="item.statusNum==0 || item.statusNum==2" @tap="useEv(index)" class="fon24 quan-btn">{{item.statusNum==2?'':'使'}}</view>
</view>
</view>
<view class="quan-right-box">
<view class="fon28 col3 mar-s20">{{item.title}}</view>
<view class="fon24 col80">{{item.manPrice}}元可使用</view>
<view class="fon20 col80 mar-x20">有效期{{item.startTime}}{{item.endTime}}</view>
</view>
<image v-if="item.statusNum==1" class="posia quan-use" src="/static/public/quan-use.png" mode=""></image>
<image v-if="item.statusNum==3" class="posia quan-use" src="/static/public/quan-over.png" mode=""></image>
</view>
</view>
<block v-if="loading">
<nothing-page v-if="dataList.length==0" :content="['暂无可使用优惠券','暂无已使用优惠券','暂无可领取优惠券','暂无已过期优惠券'][isStatus]"></nothing-page>
</block>
</view>
</view>
<!-- 体验券使用弹框 -->
<view v-if="isTY" @tap="isTY=false" class="disjcac tc quan-tk-box">
<view class="bacf width100 radius20 pad30 posir" style="margin: 0 128rpx;" @tap.stop="isTY=true">
<view class="fon28 col3">体验券使用</view>
<view class="mar-sx30">
<image :src="tyImg" class="quan-tk-em" style="width: 325rpx;height: 325rpx;" mode="aspectFill"></image>
</view>
<view class="fon24 col3 mar-s40 mar-x20">工作人员扫码使用体验券</view>
<image @tap.stop="isTY=false" src="/static/public/closequan.png" class="posia quan-tk-btn" mode=""></image>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
chuTop:'',
navList:['未使用','已使用','可领取','已过期'],
isStatus:0,
dataList:[],
zcList:[],
isTY:false,
page:1,
size:10,
quanStatus:'normal',//
loading:false,
tyImg:''//使img
}
},
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad() {
const query = wx.createSelectorQuery()
query.select('#daoh').boundingClientRect((rect) => {
// console.log('+',rect);
this.chuTop = rect.height;
}).exec()
this.zcList = this.dataList;
this.checkAllList(0);
},
methods: {
checkAllList(index){//
let params = {
status: this.quanStatus,// normal=使 used=使 invalid= waiting=
page:this.page,
size:this.size
}
this.$requst.post('user/get-coupon-list',params).then(res=>{
if(res.code==0){
this.dataList = [];
if(res.data.length!=0){
res.data.forEach(item=>{
let leix = false;
if(item.type=='taste') leix = true;
let obj = {
id:item.id,
num:item.amount,
title:item.name,
cover:this.$http + item.cover,
manPrice:item.condition,
startTime:item.begin_at,
endTime:item.end_at,
isTiyan:leix,
isZhek:false,
statusNum:index
}
this.zcList = this.dataList.push(obj);
})
this.checkList(index);
}
this.loading = true;
}
})
},
chooseNav(index){
this.isStatus = index;
if(index==0) this.quanStatus = 'normal';//使
if(index==1) this.quanStatus = 'used';//使
if(index==2) this.quanStatus = 'waiting';//
if(index==3) this.quanStatus = 'invalid';//
this.loading = false;
this.checkAllList(index);
},
checkList(index){
this.dataList = this.zcList.filter(item=>item.statusNum==index);
},
useEv(index){
if(this.dataList[index].statusNum==2) {
this.$requst.post('user/get-coupon',{coupon_id:this.dataList[index].id}).then(res=>{
if(res.code==0){
this.$toolAll.tools.showToast('领取成功');
this.checkAllList(this.isStatus);
} else {
this.$toolAll.tools.showToast(res.msg);
}
})
}
if(this.dataList[index].isTiyan==true && this.dataList[index].statusNum==0){this.isTY = true;this.tyImg = this.dataList[index].cover;}
}
}
}
</script>
<style>
.isWen{color: #3875F6;}
.isWen::after{
content: '';
display: block;
height: 8rpx;
width: 100%;
position: absolute;
bottom: -20rpx;
background: #3875F6;
}
</style>

View File

@ -2,126 +2,125 @@
<view> <view>
<!-- 状态栏 --> <!-- 状态栏 -->
<status-nav :titleVal="'购物车'" :statusTitle="true"></status-nav> <status-nav :titleVal="'购物车'" :statusTitle="true"></status-nav>
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy30" style="padding-bottom: 150rpx;"> <view v-if="loading" :style="{paddingTop: statusHNH+'px'}" class="pad-zy30" style="padding-bottom: 150rpx;">
<view class="bacf radius20 mar-s20 disjbac" style="padding: 27rpx 20rpx;"> <view class="bacf radius20 mar-s20 disjbac pad-sx27-zy20">
<view class="bold">配送方式</view> <view class="bold">配送方式</view>
<view class="fon26 col3 disac"> <view class="fon26 col3 disac">
<view @tap="isExpress=true" :class="isExpress?'activeT':'expressT'" :style="{background:isExpress?publicColor:''}">快递</view> <view @tap="expressEv(0)" :class="isExpress?'activeT':'expressT'" :style="{background:isExpress?publicColor:''}">快递</view>
<view @tap="isExpress=false" :class="!isExpress?'activeT':'expressT'" :style="{background:isExpress?'':publicColor}">自提</view> <view @tap="expressEv(1)" :class="!isExpress?'activeT':'expressT'" :style="{background:isExpress?'':publicColor}">自提</view>
</view> </view>
</view> </view>
<!-- 地址信息 --> <!-- 地址信息 -->
<view v-if="isExpress" class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;"> <view v-if="isExpress" class="bacf radius20 mar-s20 pad-sx27-zy20">
<view class="bold">收件人信息</view> <view class="bold">收件人信息</view>
<view class="fon26 col3 disjbac"> <navigator url="/pagesA/myAddress/myAddress?isWhere=0" hover-class="none">
<view class="fon26 col3 disjbac pad-s50">
<view> <view>
<view class="fon28 col3 bold" style="margin: 52rpx 0 20rpx 0;">蒋灰灰 <span>188****0362</span></view> <view class="fon28 col3 bold mar-x20">{{addressInfo.name}} <span class="mar-z20">{{userPphone}}</span></view>
<view class="fon24 col9">四川省成都市成华区中环路双店路段奥园广场</view> <view class="fon24 col9">{{addressInfo.province_str}}{{addressInfo.city_str}}{{addressInfo.county_str || ''}}{{addressInfo.address || ''}}</view>
</view> </view>
<image src="/static/public/nextM.png" style="width: 16px;height: 16px;flex-shrink: 0;" mode="aspectFill"></image> <image src="/static/public/nextM.png" class="xiaDan-next" mode="aspectFill"></image>
</view> </view>
</navigator>
</view> </view>
<!-- 自提地址 --> <!-- 自提地址 -->
<view v-else class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;"> <view v-else class="bacf radius20 mar-s20 pad-sx27-zy20">
<view class="bold">自提地址</view> <view class="bold">自提地址</view>
<view class="fon26 col3 disjbac" style="margin-top: 50rpx;"> <input type="number" maxlength="11" :focus="isFocus" @blur="blurEv" v-model="zPhone" class="mar-s50 mar-x20" style="border: 2rpx solid #E0E0E0;padding: 20rpx;border-radius: 10rpx;font-size: 24rpx;" placeholder="请输入收货人手机号" />
<view class="fon26 col3 disjbac">
<view> <view>
<view class="fon28 col3 bold" style="margin-bottom: 20rpx;">恒美植发</view> <view class="fon28 col3 bold mar-x20">恒美植发</view>
<view class="fon24 col9">四川省成都市青羊区青羊大道213号</view> <view class="fon24 col9">{{goAddress}}</view>
</view> </view>
<image @tap="goThere" src="/static/public/daoh.png" style="width: 96rpx;height: 93rpx;flex-shrink: 0;" mode="aspectFill"></image> <!-- 立即导航 -->
<image @tap="goThere(goAddress)" src="/static/public/daoh.png" class="there" mode="aspectFill"></image>
</view> </view>
</view> </view>
<!-- 订单信息 --> <!-- 订单信息 -->
<view class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;"> <view class="bacf radius20 mar-s20 pad-sx27-zy20">
<view class="bold">订单信息</view> <view class="bold">订单信息</view>
<view class="fon26 col3 disjbac pad-sx50 disjbac bbot"> <view v-for="(item,index) in orderList" :key="index" class="fon26 col3 disjbac pad-sx50 disjbac bbot">
<image src="/static/public/banner.png" class="flexs" style="width: 166rpx;height: 166rpx;border-radius: 15rpx;margin-right: 12rpx;" mode="aspectFill"></image> <navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<view class="width100"> <image :src="item.imgSrc" class="flexs order-image" mode="aspectFill"></image>
<view class="fon28 col3 bold clips2">99皮皮节种植发际线1000单位FUE技术案例招募门美人</view> </navigator>
<view style="font-size: 22rpx;color: #808080;font-weight: 500;">试用</view> <view class="width100 disjb fw" style="height: 166rpx;">
<view class="disjbac mar-s10"> <view>
<view style="color: #F85050;font-size: 32rpx;font-weight: bold;">3888</view> <navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<view class="fon28 col6">x2</view> <view class="fon28 col3 bold clips2">{{item.title}}</view>
</navigator>
<view class="order-sy">试用</view>
</view>
<view class="disjbac mar-s10 width100">
<view class="order-item-price" v-if="isNei!=3">{{item.price}}</view>
<view class="order-item-price" v-else>{{item.price}}</view>
<view class="fon28 col6">x{{item.num}}</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<!-- 优惠 --> <!-- 优惠 -->
<view class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;"> <view v-if="isNei!=3" class="bacf radius20 mar-s20 pad-sx27-zy20">
<view class="bold">优惠</view> <view class="bold">优惠</view>
<view @tap="showQuan=true" class="fon28 col3 disjbac mar-sx40"> <view @tap="quanEv(1)" class="fon28 col3 disjbac mar-sx40">
<view>优惠券</view> <view>优惠券</view>
<view class="disac"> <view class="disac">
<view style="color: #F85050;font-weight: bold;">-99.00</view> <view class="colf8 bold">-{{youQuan.youPrice}}.00</view>
<image src="/static/public/nextM.png" style="width: 16px;height: 16px;flex-shrink: 0;" mode="aspectFill"></image> <image src="/static/public/nextM.png" class="xiaDan-next" mode="aspectFill"></image>
</view> </view>
</view> </view>
<view class="fon28 col3 disjbac"> <!-- <view class="fon28 col3 disjbac">
<view>立减优惠</view> <view>立减优惠</view>
<view style="color: #F85050;font-weight: bold;">-99.00</view> <view class="colf8 bold">-{{delPrice}}.00</view>
</view> </view> -->
</view> </view>
<!-- 快递费用 --> <!-- 快递费用 -->
<view class="bacf radius20 mar-s20 disjbac" style="padding: 27rpx 20rpx;"> <view v-if="isExpress" class="bacf radius20 mar-s20 disjbac pad-sx27-zy20">
<view class="bold">快递费用</view> <view class="bold">快递费用</view>
<view class="fon28" style="color: #F85050;font-weight: bold;">10.00</view> <view class="fon28 colf8 bold">{{expressInfo.default_price}}.00</view>
</view> </view>
<view class="disjbac posixzy bacf" style="height: 124rpx;line-height: 124rpx;padding: 0 32rpx;"> <view class="disjbac posixzy bacf pad-zy32" style="height: 124rpx;line-height: 124rpx;">
<!-- 去支付 --> <!-- 去支付 -->
<view class="fon40 bold" style="color: #F85050;">合计7166.00</view> <view class="fon40 colf8 bold" v-if="isNei!=3">{{allPrice}}</view>
<view @tap="goPayment" style="color: #FFFFFF;font-size: 28rpx;font-weight: bold;width: 170rpx;height: 70rpx;line-height: 70rpx;text-align: center;background: #3875F6;border-radius: 35rpx;margin-left: 10rpx;">去支付</view> <view class="fon40 colf8 bold dis" v-else><span class="col3 fon28">合计积分</span>{{allPrice}}<span v-if="isExpress">+ {{expressInfo.default_price}}</span></view>
<view @tap="goPayment" v-if="isNei!=3" class="goPayment"></view>
<view @tap="goPayment" v-else class="goPayment">去兑换</view>
</view> </view>
</view> </view>
<view v-if="showQuan" @tap.stop="showQuan=false" class="posAll"> <view v-if="showQuan" @tap.stop="showQuan=false" class="posAll">
<view class="bacf posixzy" style="border-radius: 40rpx 40rpx 0rpx 0rpx;" @tap.stop="showQuan=true"> <view class="bacf posixzy" style="border-radius: 40rpx 40rpx 0rpx 0rpx;" @tap.stop="showQuan=true">
<view style="padding: 20rpx 50rpx;"> <view class="pad-sx20 pad-zy50">
<view class="disjbac"> <view class="disjbac">
<view class="fon28 bold col3">优惠券</view> <view class="fon28 bold col3">可用优惠券({{quanList.length}})</view>
<image @tap.stop="showQuan=false" src="/static/public/cha-close.png" style="width: 30rpx;height: 30rpx;" mode="aspectFill"></image> <image @tap.stop="showQuan=false" src="/static/public/cha-close.png" style="width: 30rpx;height: 30rpx;" mode="aspectFill"></image>
</view> </view>
<view class="fon28 bold col3" style="display: flex;justify-content: space-around;align-items: center;padding: 50rpx 0 16rpx 0;"> <!-- <view class="fon28 bold col3 disja pad-s50" style="padding-bottom: 16rpx;">
<view class="posir" :class="switchQuan?'activeQuan':''" @tap="switchQuan=true">(1)</view> <view class="posir" :class="switchQuan?'activeQuan':''" @tap="switchQuan=true">(1)</view>
<view class="posir" :class="!switchQuan?'activeQuan':''" @tap="switchQuan=false">(0)</view> <view class="posir" :class="!switchQuan?'activeQuan':''" @tap="switchQuan=false">(0)</view>
</view> </view> -->
<view class="mar-s40"> <scroll-view scroll-y class="mar-s40 quan-list-box">
<view style="height: 200rpx;" class="disjbac"> <view @tap.stop="chooseQuan(index)" v-for="(item,index) in quanList" :key="index" class="mar-x40">
<view class="posir" style="width: 218rpx;height: 200rpx;flex-shrink: 0;text-align: center;color: #FFFFFF;"> <view class="disjbac quan-item-box">
<image class="posia" src="/static/public/quan-left.png" style="width: 218rpx;height: 200rpx;left: 0;top: 0;" mode=""></image> <view class="posir">
<image class="posia" src="/static/public/quan-left.png" mode=""></image>
<view class="posir" style="z-index: 1;"> <view class="posir" style="z-index: 1;">
<view style="margin: 40rpx 0 30rpx 0rpx;" class="fon28"><span style="font-size: 56rpx;font-weight: bold;">10</span></view> <view class="pad-s40 pad-x30 fon28"><span class="bold fon56">{{item.youPrice}}</span></view>
<view class="fon24">满300元可使用</view> <view class="fon24" style="padding-left: 12rpx;">{{item.manPrice}}元可使用</view>
</view> </view>
</view> </view>
<view style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;height: 200rpx;padding: 0 20rpx;background-color: #F5F5F5;">
<view class="fon28 col3 mar-s20">黄金会员专属优惠券</view>
<view> <view>
<image src="/static/public/chooseQuan.png" style="width: 40rpx;height: 40rpx;border-radius: 100%;float: right;"></image> <!-- <view class="fon28 col3 mar-s20">{{['黄金','白银'][item.isGrade]}}会员专属优惠券</view> -->
</view> <view class="fon28 col3 mar-s20">{{item.name}}</view>
<view class="fon20 col3 mar-x20">有效期2021-09-06至2021-09-15</view>
</view>
</view>
</view>
<view class="mar-s40">
<view style="height: 200rpx;" class="disjbac">
<view class="posir" style="width: 218rpx;height: 200rpx;flex-shrink: 0;text-align: center;color: #FFFFFF;">
<image class="posia" src="/static/public/quan-left.png" style="width: 218rpx;height: 200rpx;left: 0;top: 0;" mode=""></image>
<view class="posir" style="z-index: 1;">
<view style="margin: 40rpx 0 30rpx 0rpx;" class="fon28"><span style="font-size: 56rpx;font-weight: bold;">10</span></view>
<view class="fon24">满300元可使用</view>
</view>
</view>
<view style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;height: 200rpx;padding: 0 20rpx;background-color: #F5F5F5;">
<view class="fon28 col3 mar-s20">黄金会员专属优惠券</view>
<view> <view>
<image src="/static/public/cancleQuan.png" style="width: 40rpx;height: 40rpx;border-radius: 100%;float: right;"></image> <image v-if="item.isStatus" src="/static/public/chooseQuan.png"></image>
<image v-else src="/static/public/cancleQuan.png"></image>
</view> </view>
<view class="fon20 col3 mar-x20">有效期2021-09-06至2021-09-15</view> <view class="fon20 col3 mar-x20">有效期{{item.startTime.slice(0,10)}}{{item.endTime.slice(0,10)}}</view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view>
<!-- 领取优惠券按钮 --> <!-- 领取优惠券按钮 -->
<view @tap.stop="showQuan=false" style="font-size: 36rpx;color: #FFFFFF;font-weight: bold;margin: 0 auto;background: #3875F6;border-radius: 20rpx;height: 90rpx;line-height: 90rpx;text-align: center;margin-top: 156rpx;margin-bottom: 20rpx;">领取优惠券</view> <view @tap.stop="goCoupon" class="ling-btn">领取优惠券</view>
</view> </view>
</view> </view>
</view> </view>
@ -147,36 +146,244 @@
publicColor:uni.getStorageSync('publicColor'),// publicColor:uni.getStorageSync('publicColor'),//
isExpress:true, isExpress:true,
switchQuan:true, switchQuan:true,
showQuan:false, showQuan:false,//
isDui:false isDui:false,
orderList:uni.getStorageSync('orderList'),
quanList:[],
goAddress:'四川省成都市青羊区青羊大道213号',
youQuan:{
id:0,
youPrice:0
},//
delPrice:0,//
allPrice:0,//
allNum:0,//
zanAllPrice:0,//
isNei:0,
expressInfo:{},//
addressInfo:{},//
userPphone:'',
zPhone:'',//
page:1,
size:10,
isFocus:false,
loading:false
} }
}, },
onShow() { onShow() {
this.$toolAll.tools.isLogin() this.$toolAll.tools.isLogin();
this.checkexpress();//
this.checkAddress();//
this.quanEv(0);//
uni.removeStorageSync('orderInfo');
}, },
onLoad() { onLoad(options) {
this.checkeList();//
this.checkOrderDetail();//
this.isNei = options.isNei;
}, },
methods: { methods: {
goThere(){ goPayment(){//
this.isFocus = false;
let nphone = '';
if(this.isExpress) {
nphone = this.addressInfo.phone;//
} else nphone = this.zPhone;//
let self = 0;//
if(!this.isExpress) self = 1;//
let nsku_list = [];
this.orderList.forEach(item=>{
let obj = {
sku_coding:item.coding,
num:item.num
}
nsku_list.push(obj);
})
let parmas = {
sku_list: nsku_list,//
total: this.allPrice,//
address_id: this.addressInfo.id,//ID
express_code: this.expressInfo.code,//
coupon_id: this.youQuan.id,//ID
coupon_price: this.youQuan.youPrice,//
pick_self: self,//0 1
pick_self_phone: nphone,//
original_total: 0,//
freight: this.expressInfo.default_price,
remarks: ""//
}
if(nphone=='') {
this.$toolAll.tools.showToast('请填写收货人手机号');
this.focusEv();
} else if(this.$toolAll.tools.isPhone(nphone)) {
this.$toolAll.tools.showToast('请正确填写收货人手机号');
this.focusEv();
} else {
this.$requst.post('order/create',parmas).then(res=>{
if(res.code==0){
uni.setStorageSync('orderList',this.orderList);
uni.setStorageSync('orderInfo',res.data);
console.log(res.data);
uni.navigateTo({
url:`/pagesA/immediatePayment/immediatePayment?allPrice=${this.allPrice}&allNum=${this.allNum}`
})
} else {
this.$toolAll.tools.showToast(res.msg);
}
})
}
},
goThere(val){//
wx.getLocation({// wx.getLocation({//
type: 'wgs84', //wx.openLocationbug: iOS 6.3.30 type wgs84 type: 'wgs84', //wx.openLocationbug: iOS 6.3.30 type wgs84
success: function (res) { success: function (res) {
wx.openLocation({//使 wx.openLocation({//使
latitude: 22.5542080000,//- latitude: 22.5542080000,//-
longitude: 113.8878770000,//- longitude: 113.8878770000,//-
name: "宝安中心A地铁口", name: val,
address:'宝安中心A地铁口' address: val
}) })
} }
}) })
}, },
goPayment(){ checkAddress(){//
uni.navigateTo({ this.$requst.post('user/address').then(res=>{
url:'/pagesA/immediatePayment/immediatePayment' if(res.code==0){
if(res.data.length!=0){
res.data.forEach(item=>{
if(item.is_default==1) {
this.addressInfo = item;
}
})
this.userPphone = this.$toolAll.tools.hideMPhone(this.addressInfo.phone);
}
}
})
},
checkexpress(){//
if(this.isExpress) {
this.$requst.post('common/express-list').then(res=>{
if(res.code==0){
if(res.data.length!=0){
res.data.forEach(item=>{
if(item.is_default==1){
this.expressInfo = item;
this.expressInfo.default_price = this.expressInfo.default_price/100;
}
})
this.totalEv();
}
}
})
} else {
this.totalEv();
}
},
expressEv(index){//
if(index==0) {
this.isExpress = true;
}
if(index==1) {
this.isExpress = false;
}
this.checkexpress();
},
totalEv(){//
if(this.isNei!=3 && this.isExpress){
this.allPrice = this.zanAllPrice - this.youQuan.youPrice - this.delPrice + this.expressInfo.default_price;// = - - +
}
if(this.isNei!=3 && !this.isExpress){
this.allPrice = this.zanAllPrice - this.youQuan.youPrice - this.delPrice;// = - -
}
this.allPrice = this.$toolAll.tools.addXiaoShu(this.allPrice);
this.loading = true;
},
checkOrderDetail(){//
let nsku_list = [];
this.orderList.forEach(item=>{
let obj = {
sku_coding:item.coding,
num:item.num
}
nsku_list.push(obj)
})
let parmas = {
sku_list: nsku_list,
pick_self: 0
}
this.$requst.post('order/prepare-info',parmas).then(res=>{
if(res.code==0){
} else this.$toolAll.tools.showToast(res.msg);
})
},
checkeList(){
this.orderList.forEach(item=>{
this.allPrice += item.price*item.num;
this.allNum += item.num;
})
this.zanAllPrice = this.allPrice;
},
quanEv(index){//
if(index==1){
this.showQuan = true
}
this.youQuan.id = 0;
this.youQuan.youPrice = 0;
this.allPrice = this.zanAllPrice + this.expressInfo.default_price;
this.checkQuan();
},
checkQuan(){//
this.$requst.post('user/get-coupon-list',{status:'normal',page:this.page,size:this.size}).then(res=>{
if(res.code==0){
this.quanList = [];
if(res.data.length!=0){
res.data.forEach(item=>{
if(item.type!='taste'){//
let obj = {
id:item.id,
youPrice:item.amount/100,
manPrice:item.condition/100,
isGrade:0,
name:item.name,
startTime:item.begin_at,
endTime:item.end_at,
isStatus:false
}
this.quanList.push(obj);
}
}) })
} }
} }
})
},
chooseQuan(index){//
if(this.zanAllPrice <= this.quanList[index].manPrice){//
this.$toolAll.tools.showToast('未达到使用条件')
} else {
this.quanList.forEach(item=>{
item.isStatus = false;
});
this.quanList[index].isStatus = true;
this.showQuan = false;
this.youQuan = this.quanList[index];
this.allPrice = this.zanAllPrice - this.quanList[index].youPrice + this.expressInfo.default_price;// = -
}
},
goCoupon(){//
this.showQuan = false;
uni.navigateTo({
url:'/pagesA/coupon/coupon'
})
},
focusEv(){//
this.isFocus = true;
},
blurEv(){//
this.isFocus = false;
}
}
} }
</script> </script>

View File

@ -7,48 +7,52 @@
<!-- 订单信息 --> <!-- 订单信息 -->
<view class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;"> <view class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;">
<view class="bold fon28">订单支付</view> <view class="bold fon28">订单支付</view>
<view class="fon26 col3 disjbac pad-sx50 disjbac bbot"> <view v-for="(item,index) in orderList" :key="index" class="fon26 col3 disjbac pad-sx50 disjbac bbot">
<image src="/static/public/banner.png" class="flexs" style="width: 166rpx;height: 166rpx;border-radius: 15rpx;margin-right: 12rpx;" mode="aspectFill"></image> <navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<view class="width100"> <image :src="item.imgSrc" class="flexs order-image" mode="aspectFill"></image>
<view class="fon28 col3 bold clips2">99皮皮节种植发际线1000单位FUE技术案例招募门美人</view> </navigator>
<view style="font-size: 22rpx;color: #808080;font-weight: 500;">试用</view> <view class="width100 disjb fw" style="height: 166rpx;">
<view class="disjbac mar-s10"> <view>
<view style="color: #F85050;font-size: 32rpx;font-weight: bold;">3888</view> <navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<view class="fon28 col6">x2</view> <view class="fon28 col3 bold clips2">{{item.title}}</view>
</navigator>
<view class="order-sy">试用</view>
</view>
<view class="disjbac mar-s10 width100">
<view class="order-item-price">{{item.price}}</view>
<view class="fon28 col6">x{{item.num}}</view>
</view> </view>
</view> </view>
</view> </view>
<view class="fon28 disjbac" style="margin: 60rpx 0 20rpx 0;"> <view class="fon28 disjbac mar-s50 pad-s10 mar-x20">
<view class="col6">共4件</view> <view class="col6">{{zf_allNum}}</view>
<view style="font-weight: bold;color: #F85050;">应付款3888.00+300孔雀币</view> <view class="bold colf8">应付款{{zf_allPrice}}<span v-if="isKq">+{{zf_kqPrice}}</span></view>
</view> </view>
</view> </view>
<!-- 支付方式 --> <!-- 支付方式 -->
<view class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;font-size: 28rpx;color: #333333;"> <view class="bacf radius20 mar-s20 fon28 col3 pad-sx30 pad-zy20">
<view class="bold fon28">选择支付方式</view>
<view @tap="chooseFS(index)" v-for="(item,index) in payFS" :key="index" class="disjbac mar-s30">
<view class="disac"> <view class="disac">
<image src="/static/public/chooseFS.png" style="width: 40rpx;height: 40rpx;border-radius: 100%;" mode=""></image> <image v-if="item.isActive" src="/static/public/chooseFS.png" class="chooseDX" mode=""></image>
<view style="margin-left: 26rpx;">微信支付</view> <image v-else src="/static/public/cancle-FS.png" class="chooseDX" mode=""></image>
<view class="mar-z25">{{item.title}}</view>
</view> </view>
<view class="disjbac" style="margin-top: 30rpx;"> <view v-if="item.num!=0">{{item.num}}</view>
<view class="disac">
<image src="/static/public/cancle-FS.png" style="width: 40rpx;height: 40rpx;border-radius: 100%;" mode=""></image>
<view style="margin-left: 26rpx;">孔雀币</view>
</view>
<view>余3000</view>
</view> </view>
</view> </view>
<view class="fon28 col3" style="padding: 55rpx 0 64rpx 0;text-align: center;">请在<span style="color: #F85050;font-weight: bold;">23时25分36秒</span>完成支付</view> <view class="fon28 col3 dao-box">请在<span class="colf8 bold">23时25分36秒</span>完成支付</view>
<!-- 确认支付 --> <!-- 确认支付 -->
<view @tap="payment" style="margin: 0 auto;color: #FFFFFF;font-weight: bold;font-size: 36rpx;text-align: center;width: 546rpx;height: 90rpx;line-height: 90rpx;background-color: #3875F6;border-radius: 20rpx;">确认支付</view> <view @tap="payment" class="submit-pay">确认支付</view>
</view> </view>
<!-- 支付成功 --> <!-- 支付成功 -->
<view v-if="isSuccess" class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;text-align: center;"> <view v-if="isSuccess" class="bacf radius20 mar-s20" style="padding: 27rpx 20rpx;text-align: center;">
<image src="/static/public/pay-success.png" style="width: 194rpx;height: 194rpx;" mode=""></image> <image src="/static/public/pay-success.png" style="width: 194rpx;height: 194rpx;" mode=""></image>
<view class="fon28 col3" style="margin: 20rpx 0 40rpx 0;">支付成功</view> <view class="fon28 col3 pad-s20 pad-x40">支付成功</view>
<view class="" style="font-size: 46rpx;margin-bottom: 120rpx;color: #F85050;">3888.00</view> <view class="" style="font-size: 46rpx;margin-bottom: 120rpx;color: #F85050;">{{jsPrice}}</view>
<view class="disja" style="margin-bottom: 150rpx;"> <view class="disja success-btn">
<view @tap="goDetail" style="width: 244rpx;height: 70rpx;border-radius: 10rpx;text-align: center;line-height: 70rpx;background: #E9E9E9;color: #333333;">查看订单</view> <view @tap="goDetail" style="">查看订单</view>
<view @tap="goShop" style="width: 244rpx;height: 70rpx;border-radius: 10rpx;text-align: center;line-height: 70rpx;background: #3875F6;color: #FFFFFF;">再逛一逛</view> <view @tap="goShop" class="colf" :style="{background:publicColor}">再逛一逛</view>
</view> </view>
</view> </view>
</view> </view>
@ -61,18 +65,105 @@
return { return {
statusHNH:uni.getStorageSync('statusHNH'), statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),// publicColor:uni.getStorageSync('publicColor'),//
isSuccess:false isSuccess:false,
orderList:uni.getStorageSync('orderList'),
zf_allNum:0,//
zf_allPrice:0,//
zf_kqPrice:0,//
payFS:[
{title:'微信支付',isActive:true,num:0},
{title:'孔雀币',isActive:false,num:3000},
],
isKq:false,
jsPrice:0,//,
zc_allPrice:0,//
orderInfo:uni.getStorageSync('orderInfo')
} }
}, },
onShow() { onShow() {
this.$toolAll.tools.isLogin() this.$toolAll.tools.isLogin()
}, },
onLoad() { onUnload() {
uni.removeStorageSync('orderInfo');
},
onLoad(options) {
this.zc_allPrice = this.zf_allPrice = options.allPrice;
this.zf_allPrice = this.$toolAll.tools.addXiaoShu(this.zf_allPrice);
this.zf_allNum = options.allNum;
}, },
methods: { methods: {
chooseFS(index){
this.payFS[index].isActive = !this.payFS[index].isActive;
if(index==0){
if(this.payFS[0].isActive && this.payFS[1].isActive){//+
this.isKq = true;
return;
}
if(!this.payFS[0].isActive && this.payFS[1].isActive){//+
this.$toolAll.tools.showToast('孔雀币不足');
return;
}
if(!this.payFS[0].isActive && !this.payFS[1].isActive){//+
this.$toolAll.tools.showToast('请选择支付方式');
return;
}
}
if(index==1) {
if(this.payFS[0].isActive && this.payFS[1].isActive) {//+
this.isKq = true;
this.zf_allPrice = this.zc_allPrice - this.payFS[index].num;
this.zf_kqPrice = this.payFS[index].num;
return;
}
if(this.payFS[0].isActive && !this.payFS[1].isActive) {//+
this.isKq = false;
this.zf_allPrice = this.zc_allPrice;
return;
}
if(!this.payFS[0].isActive && this.payFS[1].isActive && this.zc_allPrice*1 > this.zf_kqPrice*1){//++
this.$toolAll.tools.showToast('孔雀币不足')
this.isKq = true;
this.zf_allPrice = this.zc_allPrice - this.payFS[index].num;
this.zf_kqPrice = this.payFS[index].num;
return;
}
if(!this.payFS[0].isActive && !this.payFS[1].isActive){//+
this.$toolAll.tools.showToast('请选择支付方式')
this.isKq = false;
this.zf_allPrice = this.zc_allPrice;
return;
}
}
},
payment(){ payment(){
this.isSuccess = true if(!this.payFS[0].isActive && !this.payFS[1].isActive) {
this.$toolAll.tools.showToast('请选择支付方式')
} else if(!this.payFS[0].isActive && this.zc_allPrice*1 > this.zf_kqPrice*1){
this.$toolAll.tools.showToast('孔雀币不足')
} else {
console.log(this.orderInfo.needPay);
if(this.orderInfo.needPay){
uni.requestPayment({
provider: 'wxpay',
appId:this.orderInfo.payment_params.appId,//appId
timeStamp: this.orderInfo.payment_params.timeStamp,//
nonceStr: this.orderInfo.payment_params.nonceStr,//
package: this.orderInfo.payment_params.package,//package
signType: this.orderInfo.payment_params.signType,//MD5
paySign: this.orderInfo.payment_params.sign,//
success:(res)=> {
this.$requst.post('order/paid',{order_coding:this.orderInfo.coding}).then(res=>{
this.isSuccess = true;
},error=>{this.$toolAll.tools.showToast(res.msg);})
},
fail: (err)=> {}
});
} else {
this.$requst.post('order/paid',{order_coding:this.orderInfo.coding}).then(res=>{
this.isSuccess = true;
},error=>{this.$toolAll.tools.showToast(res.msg);})
}
}
}, },
goDetail(){ goDetail(){
uni.navigateTo({ uni.navigateTo({

View File

@ -0,0 +1,92 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'积分管理'" :statusTitle="true"></status-nav>
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy30 fon28 col3">
<view class="mar-s20 bacf pad20 radius20 bold">
<view class="mar-x30">当前积分</view>
<view style="font-size: 56rpx;">3000</view>
</view>
<view class="mar-s20 disjbac">
<view class="disjbac pad20 bacf radius20" style="width: 48%;box-sizing: border-box;">
<image src="../../static/public/integral-01-108.png" style="width: 108rpx;height: 108rpx;flex-shrink: 0;" mode=""></image>
<view class="width100" style="display: flex;justify-content: space-between;flex-direction: column;height: 108rpx;">
<view style="font-weight: 400;">我的分享人</view>
<view class="fon36 bold">100 <span style="font-size: 26rpx;font-weight: 400;"></span></view>
</view>
</view>
<view class="disjbac pad20 bacf radius20" style="width: 48%;box-sizing: border-box;">
<image src="../../static/public/integral-02-108.png" style="width: 108rpx;height: 108rpx;flex-shrink: 0;" mode=""></image>
<view class="disjbac fc width100"style="display: flex;justify-content: space-between;flex-direction: column;height: 108rpx;">
<view style="font-weight: 400;">签到记录</view>
<view style="width: 140rpx;height: 40rpx;line-height: 40rpx;text-align: center;color: #FFFFFF;background: #F6C338;border-radius: 30rpx;font-size: 24rpx;font-weight: 400;">立即签到</view>
</view>
</view>
</view>
<!-- 积分列表消费列表 -->
<view class="mar-s20 bacf pad20 radius20">
<view class="mar-x50 fon28 disja">
<view @tap="switchState(true)" :class="activeJF?'col3 bold':'col9'">积分列表</view>
<view @tap="switchState(false)" :class="!activeJF?'col3 bold':'col9'">消费列表</view>
</view>
<!-- 积分列表 -->
<view v-for="(item,index) in dataList" :key="index" class="disjbac bbot pad-sx10">
<view>
<view class="fon26 col3">{{item.title}}</view>
<view class="mar-s10 fon20 col9">{{item.time}}</view>
</view>
<view v-show="activeJF" class="fon36 bold" style="color: #3875F6;">+{{item.num}}</view>
<view v-show="!activeJF" class="fon36 bold">-{{item.num}}</view>
</view>
</view>
<!-- 分享按钮 -->
<view class="disjcac" style="width: 588rpx;height: 90rpx;line-height: 90rpx;text-align: center;border-radius: 20rpx;background: #38CE51;position: fixed;bottom: 76rpx;left: 50%;transform: translateX(-50%);">
<image src="/static/public/bottom-shear.png" style="width: 50rpx;height: 50rpx;" mode=""></image>
<view class="fon40 colf bold mar-z10">分享给好友</view>
<button class="posia" open-type="share" style="top: 0;left: 0;right: 0;bottom: 0;opacity: 0;"></button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
activeJF:true,
dataList:[
{title:'签到兑换',time:'2021.09.06 10:30:10',num:'1'},
{title:'分享注册',time:'2021.09.06 10:30:10',num:'1'},
{title:'二级分销',time:'2021.09.06 10:30:10',num:'1'},
{title:'任务完成',time:'2021.09.06 10:30:10',num:'1'},
]
}
},
onLoad() {
this.$toolAll.tools.isLogin()
},
methods: {
switchState(flag){
this.activeJF = flag;
if(flag) {
this.dataList = [
{title:'签到兑换',time:'2021.09.06 10:30:10',num:'1'},
{title:'分享注册',time:'2021.09.06 10:30:10',num:'1'},
{title:'二级分销',time:'2021.09.06 10:30:10',num:'1'},
{title:'任务完成',time:'2021.09.06 10:30:10',num:'1'},
]
} else {
this.dataList = [
{title:'兑换商品',time:'2021.09.06 10:30:10',num:'1'},
{title:'商品购买',time:'2021.09.06 10:30:10',num:'1'},
]
}
}
}
}
</script>
<style>
</style>

153
pagesA/member/member.vue Normal file
View File

@ -0,0 +1,153 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :backgroudColor="publicColor" :tabcolor="publicColor" :statusTitle="true" :backColor="1"></status-nav>
<image src="/static/public/member-head.png" style="position: absolute;top: 0;left: 0;right: 0;height: 436rpx;width: 100%;"></image>
<view class="mar-zy32 posir" :style="{paddingTop:statusHNH+26+'px'}">
<view class="radius30 posir gao mar-zy40 fon24 pad-x20" style="box-shadow: 0px 16rpx 30rpx rgba(141, 141, 141, 0.26);">
<view class="posir pad-zy20" style="z-index: 2;">
<view class="disjb">
<view class="disac">
<!-- 头像 -->
<image class="mar-sx20" src="/static/public/like.png" style="width:90rpx;height: 90rpx;border-radius: 100%;" mode="aspectFill"></image>
<view class="mar-z20">
<!-- 昵称 -->
<view class="fon28 bold disac">昵称<view style="background: #FFFFFF;border-radius: 10rpx;text-align: center;font-size: 22rpx;color: #FFBD39;padding: 5rpx 16rpx;margin-left: 10rpx;">VIP</view></view>
<view class="mar-s10" style="color: #C27417;">黄金会员</view>
</view>
</view>
<view class="mar-s30 " style="color: #C27417;">当前等级</view>
</view>
<view style="margin-top: 62rpx;color: #C27417;">还差1200积分升级</view>
<view class="fon28 mar-s10" style="color: #C49F74;">升级到钻石会员享有更多权益</view>
</view>
<image class="posia" style="top: 0;left: 0;right: 0;bottom: 0;width: 100%;height: 100%;z-index: 0;" src="/static/public/member.png" mode=""></image>
</view>
<!-- 功能列表 -->
<view class="bacf radius20 mar-s20">
<view class="disac fon28 fw pad-x20" style="color: #C27417;">
<view v-for="(itemh,indexh) in huiList" :key="indexh" class="mar-s20" style="width: 25%;">
<view class="disac fc">
<image :src="itemh.src" style="width: 50rpx;height: 50rpx;" mode="aspectFill"></image>
<view class="mar-s20 mar-x10">{{itemh.title}}</view>
</view>
</view>
</view>
</view>
<!-- 当前权益介绍 -->
<view class="bacf radius20 mar-s20 pad20">
<view class="mar-x30 fon32 bold" style="color: #C27417;">当前权益介绍</view>
<image src="../../static/public/dang-quan.png" style="width: 100%;" mode="widthFix"></image>
</view>
<view class="fon30 bold tc mar-s50 mar-x30" :style="{color:publicColor}">积分兑换</view>
</view>
<shopList :dataList="dataList"></shopList>
</view>
</template>
<script>
import shopList from '@/components/shop-list.vue';
export default {
components:{
shopList
},
data() {
return {
vision:false,
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),
huiList:[
{src:'/static/public/ru-hui50.png',title:'入会权益'},
{src:'/static/public/birthday50.png',title:'生日礼物'},
{src:'/static/public/member-scor50.png',title:'积分权益'},
{src:'/static/public/te-quan50.png',title:'特权日'},
{src:'/static/public/share-hai50.png',title:'分享海报'},
],
dataList:[
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:1,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:0,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:1,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:0,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:0,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:0,
}
]
}
},
onLoad() {
this.$toolAll.tools.isLogin()
},
methods: {
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,352 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'地址管理'" :statusTitle="true"></status-nav>
<view :style="{paddingTop:statusHNH+'px'}" class="mar-sx20 pad-zy32" style="padding-bottom: 150rpx;">
<view v-if="loading">
<view v-for="(item,index) in dataList" :key="index" class="bacf radius20 pad20 mar-x20">
<view class="pad-y20 disjbac">
<view class="fon28 col3 bold">{{item.userName}} {{item.userPhone}}</view>
<image v-if="item.isActive" src="/static/public/chooseQuan.png" class="address_active" mode=""></image>
</view>
<view class="fon24 col9 mar-s25">{{item.userAddress}}</view>
<view class="disjbac fon28 col3 mar-s32">
<view @tap="setMo(index)" class="disac">
<image v-if="item.isActive" src="/static/public/chooseQuan.png" class="address_active" mode=""></image>
<image v-else src="/static/public/cancle-FS.png" class="address_active" mode=""></image>
<view class="mar-z10" :class="item.isActive?'':'col9'">设为默认地址</view>
</view>
<view class="disac" style="color: #808080;">
<view @tap="editAddress(index)"></view>
<view @tap="delAddress(index)" class="mar-y10 mar-z50">删除</view>
</view>
</view>
</view>
<view @tap.stop="obtainLngLat" class="posixzy address_add" style="bottom: 20rpx;">添加地址</view>
<nothing-page v-if="dataList.length==0" :content="'暂无可用地址'"></nothing-page>
</view>
</view>
<!-- 添加地址修改地址 -->
<view v-if="idEdit" @tap.stop="idEdit=false" class="posAll disjcac" style="padding: 0 46rpx;z-index: 3;">
<view class="bacf width100" @tap.stop="idEdit=true" style="padding: 0 55rpx;border-radius: 23rpx;">
<view class="pad-sx20 posir">
<view class="fon28 bold col3 width100 tc">收件人地址</view>
<image class="posia address-close-btn" @tap.stop="idEdit=false" src="/static/public/addressClose.png" mode="aspectFill"></image>
</view>
<view class="pad-sx20 fon28 col3">
<view class="fon26 col9 mar-s30">收件人</view>
<view class="bbot mar-s30 pad-x10">
<input type="text" class="width100" v-model="userName" placeholder="请输入姓名" />
</view>
<view class="fon26 col9 mar-s30">手机号码</view>
<view class="bbot mar-s30 pad-x10">
<input type="text" class="width100" v-model="userPhone" placeholder="请输入联系电话" />
</view>
<view class="fon26 col9 mar-s30">地址</view>
<view class="disjbac">
<view class="bbot mar-s30 pad-x10 posir disac" @tap="chooseProvinceCityCounty(0)">
<input type="text" class="width100 pad-y20" disabled v-model="userProvince" placeholder="四川" />
<view class="posia disjcac fc xiao-sanj" style="right: 0;">
<image src="/static/public/address-top.png" mode=""></image>
<image src="/static/public/address-down.png" mode=""></image>
</view>
<view :class="isAddress==1?'dong':''" class="posia info-box">
<view @tap.stop="chooseProvince(index)" class="clips1" v-for="(item,index) in provinceArr" :key="index">{{item.name}}</view>
</view>
</view>
<view class="bbot mar-s30 pad-x10 posir disac mar-zy30" @tap="chooseProvinceCityCounty(1)">
<input type="text" class="width100 pad-y20" disabled v-model="userCity" placeholder="成都" />
<view class="posia disjcac fc xiao-sanj" style="right: 0;">
<image src="/static/public/address-top.png" mode=""></image>
<image src="/static/public/address-down.png" mode=""></image>
</view>
<view :class="isAddress==2?'dong':''" class="posia info-box">
<view @tap.stop="chooseCity(index)" class="clips1" v-for="(item,index) in cityArr" :key="index">{{item.name}}</view>
</view>
</view>
<view class="bbot mar-s30 pad-x10 posir disac" @tap="chooseProvinceCityCounty(2)">
<input type="text" class="width100 pad-y20" disabled v-model="userCounty" placeholder="成华区" />
<view class="posia disjcac fc xiao-sanj" style="right: 0;">
<image src="/static/public/address-top.png" mode=""></image>
<image src="/static/public/address-down.png" mode=""></image>
</view>
<view :class="isAddress==3?'dong':''" class="posia info-box">
<view @tap.stop="chooseCounty(index)" class="clips1" v-for="(item,index) in countyArr" :key="index">{{item.name}}</view>
</view>
</view>
</view>
<view class="fon26 col9 mar-s30">详细地址</view>
<view class="bbot mar-s30 pad-x10">
<input type="text" class="width100" v-model="userAddress" placeholder="请输入详细地址" />
</view>
<!-- 确认保存按钮 -->
<view @tap.stop="addAddress" class="address-btn-add">确认保存</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {lotusAddressJson} from '@/components/city/city.js';
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
dataList:[],
idEdit:false,
userName:'',
userPhone:'',
userProvince:'',
userCity:'',
userCounty:'',
userAddress:'',
isChoose:'',//id
delNum:0,//
loading:false,
provinceArr:[],
cityArr:[],
countyArr:[],
isAddress:0,
isWhere:1
}
},
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad(options) {
this.checkList();
this.isWhere = options.isWhere;
},
methods: {
obtainLngLat(){//
this.idEdit = true;
this.clearAll();
//
wx.getLocation({
success:(res)=> {
//
this.getDistrict(res.latitude, res.longitude)
},
})
},
getDistrict(latitude, longitude) {//
let ya = this
wx.request({
url: `https://apis.map.qq.com/ws/geocoder/v1/?location=${latitude},${longitude}&key=B2ABZ-SIDKS-WD2O3-6CJ2U-CDZOT-U3FKF`,
header: {
'Content-Type':'application/json'
},
success:function(res) {
// console.log('',res)
ya.userProvince = res.data.result.address_component.province
ya.userCity = res.data.result.address_component.city
ya.userCounty = res.data.result.address_component.district
lotusAddressJson.forEach((itema,index)=>{
if(ya.userProvince==itema.name) {
ya.chooseProvinceCityCounty(0);
ya.chooseProvince(index);
}
})
}
})
},
chooseProvinceCityCounty(index){
if(index==0){//
this.isAddress = 1;
this.provinceArr = []
lotusAddressJson.forEach((item,index)=>{
if(item.value.slice(2) =='0000'){
this.provinceArr.push(item)
}
})
}
if(index==1){//
if(this.cityArr.length!=0){
this.isAddress = 2;
}
}
if(index==2){//
if(this.countyArr.length==0){
this.$toolAll.tools.showToast('暂无可选项');
} else {
this.isAddress = 3;
}
}
},
chooseProvince(index){//
this.countyArr = this.cityArr = [];
this.userProvince = this.provinceArr[index].name;
lotusAddressJson.forEach(itema=>{
if(this.provinceArr[index].value==itema.parent) {
this.cityArr.push(itema)
}
})
this.isAddress = 0;
this.userCity = this.cityArr[0].name;//
this.chooseCity(0);
},
chooseCity(index){//
this.countyArr = [];
this.userCity = this.cityArr[index].name;
lotusAddressJson.forEach(itema=>{
if(this.cityArr[index].value==itema.parent) {
this.countyArr.push(itema)
}
})
this.isAddress = 0;
if(this.countyArr.length!=0) {
this.userCounty = this.countyArr[0].name;//
} else this.userCounty = '未知';
},
chooseCounty(index){//
this.isAddress = 0;
this.userCounty = this.countyArr[index].name;
},
async checkList(){//
this.$requst.post('user/address').then(res=>{
if(res.code==0){
this.dataList = [];
if(res.data.length!=0){
res.data.forEach(item=>{
let newActive = false;
if(item.is_default==1) newActive = true
let obj = {
id:item.id,
user_id:item.user_id,
userName:item.name,
userPhone:item.phone,
userAddress:item.province_str + item.city_str + item.county_str + item.address,
province:item.province_str,
city:item.city_str,
county:item.county_str,
address:item.address,
isActive:newActive
}
this.dataList.push(obj);
})
this.loading = true;
this.checkActive();
}
}
})
},
checkActive(){//
let have = this.dataList.findIndex((res)=>{
return res.isActive == true;
});
this.dataList.unshift(this.dataList[have]);
this.dataList.splice(have+1,1);
},
async addAddress(){//
if(this.userName=='') {
this.$toolAll.tools.showToast('请输入姓名');
} else if(this.userPhone=='') {
this.$toolAll.tools.showToast('请输入联系电话');
} else if(this.$toolAll.tools.isPhone(this.userPhone)) {
this.$toolAll.tools.showToast('请输入正确的联系电话');
} else if(this.userAddress=='') {
this.$toolAll.tools.showToast('请输入详细地址');
} else {
let params = {
id:this.isChoose,
name:this.userName,
phone:this.userPhone,
city:'',//
county:'',//
province_str:this.userProvince,//
city_str:this.userCity,//
county_str:this.userCounty,//
address:this.userAddress,
is_default:1//
}
this.$requst.post('user/address-save',params).then(res=>{
if(res.code==0){
this.idEdit = false;
if(this.isChoose!='') {
this.$toolAll.tools.showToast('地址修改成功');
} else {
this.$toolAll.tools.showToast('新增地址成功');
}
setTimeout(()=>{
this.checkList();
this.clearAll();
},1000)
}
})
}
},
setMo(index){//
let params = {
id:this.dataList[index].id,
name:this.dataList[index].userName,
phone:this.dataList[index].userPhone,
city:'',//
county:'',//
province_str:this.dataList[index].province,//
city_str:this.dataList[index].city,//
county_str:this.dataList[index].county,//
address:this.dataList[index].address,
is_default:1//
}
this.$requst.post('user/address-save',params).then(res=>{
if(res.code==0){
this.$toolAll.tools.showToast('设置默认地址成功');
this.dataList.forEach(item=>{
item.isActive = false;
});
this.dataList[index].isActive = true;
this.checkActive();
if(this.isWhere==0) {
uni.navigateBack({delta:1})
}
}
})
},
editAddress(index){//
this.idEdit = true;
this.isChoose = this.dataList[index].id,
this.userName = this.dataList[index].userName;
this.userPhone = this.dataList[index].userPhone;
this.userProvince = this.dataList[index].province;
this.userCity = this.dataList[index].city;
this.userCounty = this.dataList[index].county;
this.userAddress = this.dataList[index].address;
},
delAddress(index){//
this.delNum++
setTimeout(()=>{
this.delNum = 0;
},3000)
if(this.delNum==1) {
this.$toolAll.tools.showToast('双击即可删除');
}
if(this.delNum==2) {
this.$requst.post('user/address-del',{id:this.dataList[index].id}).then(res=>{
if(res.code==0){
this.$toolAll.tools.showToast('删除成功');
setTimeout(()=>{
this.checkList();
},1500)
}
})
}
},
clearAll(){//
this.isChoose = '',
this.userName = '';
this.userPhone = '';
this.userProvince = '';
this.userCity = '';
this.userCounty = '';
this.userAddress = '';
}
}
}
</script>
<style>
</style>

229
pagesA/myOrder/myOrder.vue Normal file
View File

@ -0,0 +1,229 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'订单管理'" :statusTitle="true"></status-nav>
<!-- 自定义二级分类 -->
<view class="isTopf bacf" :style="{top:statusHNH+'px'}">
<scroll-view scroll-x>
<view id="daoh" class="disjbac pad-s20 mar-zy30">
<view @tap="chooseNav(indexn)" class="posir pad-s20 pad-zy20 pad-x30 flexs mar-y10" style="text-align: center;" :class="activeIndex==indexn?'activeD':''" :style="{color:activeIndex==indexn?'#3875F6':'#000000'}" v-for="(itemn,indexn) in statusList" :key="indexn">{{itemn}}</view>
</view>
</scroll-view>
</view>
<view :style="{paddingTop:(statusHNH+12+chuTop)+'px'}" class="pad-sx20 pad-zy32">
<view v-for="(item,index) in orderList" :key="index" class="radius20 bacf pad20 mar-x20 order-item-box">
<view class="bbot disjbac pad-x20 mar-x20"><view class="fon28 col3 bold">{{item.isShop==0?'商城订单':'积分商城订单'}}</view><view class="fon24 col9">{{item.establish}}</view></view>
<view class="disjbac fon24"><view class="col3">订单号{{item.orderNum}}</view><view class="bold" :class="(item.orderStatus==1 || item.orderStatus==2 || item.orderStatus==3) ? 'colf8':'col9'">{{['','待付款','待发货','待核验','待收货','交易完成'][item.orderStatus]}}</view></view>
<view v-for="(itemc,indexc) in item.childrenList" :key="indexc" class="fon26 col3 disjbac pad-sx50 disjbac bbot">
<navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<image :src="itemc.imgSrc" class="flexs" mode="aspectFill"></image>
</navigator>
<view class="width100 disjb fc" style="height: 166rpx;">
<view>
<navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<view class="fon28 col3 bold clips2">{{itemc.title}}</view>
</navigator>
<view class="order-sy">试用</view>
</view>
<view class="disjbac mar-s10">
<view class="colf8 fon32 bold"><span v-if="item.isShop==0"></span>{{itemc.price}}</view>
<view class="fon28 col6 mar-y40">x{{itemc.num}}</view>
</view>
</view>
</view>
<view class="fon28 col3 pad-s20 disjbac">
<view class="flexs"><span v-if="item.isShop==0">{{item.total}}.00</span><span v-else>{{item.total}}</span></view>
<view class="width100 disac" style="justify-content: flex-end;">
<view @tap="isCancle=true" v-if="item.orderStatus != 0 && item.orderStatus != 5" class="order-cancle"></view>
<view v-if="item.orderStatus == 1" class="order-btn"></view>
<view @tap="isHeyan=true" v-if="item.orderStatus == 3" class="order-btn">线</view>
<!-- <view class="order-btn">单人拼团</view> -->
<view @tap="confirmReceipt(item.id)" v-if="item.orderStatus == 4" class="order-btn"></view>
</view>
</view>
</view>
</view>
<!-- 待核验弹框 -->
<view v-if="isHeyan" @tap="isHeyan=false" class="disjcac tc posAll" style="z-index: 3;">
<view class="bacf width100 radius20 pad30 posir" style="margin: 0 128rpx;" @tap.stop="isHeyan=true">
<view class="fon28 col3">订单二维码</view>
<view class="mar-sx30">
<image src="/static/public/member-head.png" style="width: 325rpx;height: 325rpx;" mode=""></image>
</view>
<view class="fon24 col3">
<view class=" mar-s40 mar-x20">工作人员扫码核销订单</view>
<view>订单未完成前请勿出示二维码</view>
</view>
<image @tap.stop="isHeyan=false" src="/static/public/closequan.png" class="posia heyan-close" mode=""></image>
</view>
</view>
<!-- 取消订单弹框 -->
<view v-if="isCancle" @tap.stop="isCancle=false" class="posAll">
<view class="bacf posixzy order-cancle-tk" @tap.stop="isCancle=true">
<view>
<view class="bbot pad-sx20 posir">
<view class="fon28 bold col3 width100" style="text-align: center;">取消订单</view>
<image class="posia" @tap.stop="isCancle=false" src="/static/public/cha-close.png" style="width: 40rpx;height: 40rpx;right: 50rpx;top: 20rpx;" mode="aspectFill"></image>
</view>
<view class="pad-zy32 pad-sx20" style="color: #5B5B5B;">
<view class="fon24" style="line-height: 40rpx;">
<view>温馨提示</view>
<view>订单取消需要提交工作人员审核商品金额将原路径返还账户订单一旦取消系统无法恢复</view>
</view>
<view @tap.stop="chooseReason(indexy)" v-for="(itemy,indexy) in reasonList" :key="indexy" class="disac mar-s40">
<image v-if="itemy.isActive" src="/static/public/chooseFS.png" style="width: 40rpx;height: 40rpx;" mode=""></image>
<image v-else src="/static/public/cancle-FS.png" style="width: 40rpx;height: 40rpx;" mode=""></image>
<view class="mar-z20 fon28">{{itemy.title}}</view>
</view>
<!-- 确认取消按钮 -->
<view @tap.stop="confirmEv" class="confirm-btn">确认取消</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
chuTop:'',//
activeIndex:'',
statusList:['全部','待付款','待发货','待核验','待收货','已完成'],
//
reasonList:[
{title:'不想要了/买多了/买错了',isActive:true},
{title:'地址信息填写错误',isActive:false},
{title:'其他原因',isActive:false},
],
isHeyan:false,//线
isCancle:false,//
orderList:[
{
id:1,
establish:'2021-09-06 20:30',//
orderNum:'1234567890',//
childrenList:[
{imgSrc:'/static/public/member-head.png',title:'【99募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
],
orderStatus:5,//1 2 3 4 5
isShop:0,//0 ,1
total: 15552//
},
{
id:2,
establish:'2021-09-06 20:30',//
orderNum:'1234567890',//
childrenList:[
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
],
orderStatus:3,//1 2 3 4 5
isShop:0,//0 ,1
total: 15552//
},
{
id:3,
establish:'2021-09-06 20:30',//
orderNum:'1234567890',//
childrenList:[
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
],
orderStatus:4,//1 2 3 4 5
isShop:0,//0 ,1
total: 15552//
},
{
id:4,
establish:'2021-09-06 20:30',//
orderNum:'1234567890',//
childrenList:[
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】100美人',price:3888,num:2},
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
],
orderStatus:1,//1 2 3 4 5
isShop:0,//0 ,1
total: 15552//
},
{
id:5,
establish:'2021-09-06 20:30',//
orderNum:'1234567890',//
childrenList:[
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
{imgSrc:'/static/public/member-head.png',title:'【99皮皮节】【种植发际线】1000单位FUE技术案例招募门美人1000单位FUE技术案例招募门美人',price:3888,num:2},
],
orderStatus:2,//1 2 3 4 5
isShop:1,//0 ,1
total: 15552//
}
],
zanList:[],//
}
},
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad(options) {
const query = wx.createSelectorQuery()
query.select('#daoh').boundingClientRect((rect) => {
// console.log('+',rect);
this.chuTop = rect.height
}).exec()
options.index==undefined ? this.activeIndex = 0 : this.activeIndex = options.index;
this.zanList = this.orderList;
this.checkList(this.activeIndex);
},
methods: {
chooseNav(index){
this.activeIndex = index;
this.checkList(index)
},
checkList(index){//
if(index==0) {
this.orderList = this.zanList;
} else {
this.orderList = this.zanList.filter(item=>{
return item.orderStatus==index;
});
}
},
chooseReason(index){//
this.reasonList.forEach(item=>item.isActive = false);
this.reasonList[index].isActive = true;
},
confirmEv(){//
this.isCancle = false;
let con = '';
this.reasonList.forEach(item=>{
if(item.isActive) con = item.title;
})
},
confirmReceipt(id){//
console.log(id);
this.$requst.post('order/accepted',{order_id:id}).then(res=>{
if(res.code==0){
} else this.$toolAll.tools.showToast(res.msg);
})
}
}
}
</script>
<style>
.activeD::after{
content: '';
display: block;
position: absolute;
bottom: 0;
left: 0;
height: 8rpx;
background: #3875F6;
width: 100%;
}
</style>

View File

@ -0,0 +1,103 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'孔雀币管理'" :statusTitle="true"></status-nav>
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy30 fon28 col3">
<view class="mar-s20 bacf pad20 radius20">
<view class="mar-x30">当前孔雀币</view>
<view class="disjbac">
<view class="disjcac fc width33" style="align-items: flex-start;">
<view class="fon36 bold mar-z20">3000</view>
<view class="mar-s36" @tap="isTiX=true" style="width: 152rpx;height: 60rpx;line-height: 60rpx;text-align: center;color: #FFFFFF;background: #3875F6;border-radius: 30rpx;font-size: 26rpx;">提现</view>
</view>
<view class="disjcac fc width33">
<view class="fon36 bold">300 <span style="font-size: 26rpx;font-weight: 400;"></span></view>
<view class="mar-s36 fon26 col3" style="height: 60rpx;line-height: 60rpx;">审核中</view>
</view>
<view class="disjcac fc width33">
<view class="fon36 bold">0 <span style="font-size: 26rpx;font-weight: 400;"></span></view>
<view class="mar-s36 fon26 col3" style="height: 60rpx;line-height: 60rpx;">已提现</view>
</view>
</view>
</view>
<!-- 获取列表提现列表 -->
<view class="mar-s20 bacf pad20 radius20">
<view class="mar-x50 fon28 disja">
<view @tap="switchState(true)" :class="activeJF?'col3 bold':'col9'">获取列表</view>
<view @tap="switchState(false)" :class="!activeJF?'col3 bold':'col9'">提现列表</view>
</view>
<view v-for="(item,index) in dataList" :key="index" class="disjbac bbot pad-sx10">
<view>
<view class="fon26 col3">{{item.title}}</view>
<view class="mar-s10 fon20 col9">{{item.time}}</view>
</view>
<view v-show="activeJF" class="fon36 bold" style="color: #3875F6;">+{{item.num}}</view>
<view v-show="!activeJF" class="fon36 bold">-{{item.num}}</view>
</view>
</view>
<!-- 分享按钮 -->
<view class="disjcac" style="width: 588rpx;height: 90rpx;line-height: 90rpx;text-align: center;border-radius: 20rpx;background: #38CE51;position: fixed;bottom: 76rpx;left: 50%;transform: translateX(-50%);">
<image src="/static/public/bottom-shear.png" style="width: 50rpx;height: 50rpx;" mode=""></image>
<view class="fon40 colf bold mar-z10">分享给好友</view>
<button class="posia" open-type="share" style="top: 0;left: 0;right: 0;bottom: 0;opacity: 0;"></button>
</view>
<!-- 提现弹框 -->
<view v-if="isTiX" @tap="isTiX=false" class="disjcac tc" style="position: fixed;top: 0;left: 0;bottom: 0;right: 0;background: rgba(0,0,0,.54);">
<view class="bacf width100 radius20 pad30" style="margin: 0 85rpx;" @tap.stop="isTiX=true">
<view class="fon28 bold" style="color: #343434;">孔雀币提现</view>
<view class="fon28 mar-sx30" style="color: #343434;font-weight: 500;">兑换比例100孔雀币兑换1元人民币</view>
<input type="text" value="" placeholder="请输入提现金额" class="width100 radius10" style="border: 2rpx solid #E0E0E0;margin-bottom: 80rpx;height: 60rpx;"/>
<view class="disjbac">
<view @tap.stop="isTiX=false" style="width: 196rpx;height: 60rpx;line-height: 60rpx;text-align: center;border-radius: 10rpx;font-size: 28rpx;color: #FFFFFF;background-color: #3875F6;">立即提现</view>
<view @tap.stop="isTiX=false" style="width: 196rpx;height: 60rpx;line-height: 60rpx;text-align: center;border-radius: 10rpx;font-size: 28rpx;color: #FFFFFF;background-color: #C8C8C8;">暂不提现</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
activeJF:true,
dataList:[
{title:'积分兑换',time:'2021.09.06 10:30:10',num:'1'},
{title:'分享订单',time:'2021.09.06 10:30:10',num:'1'},
{title:'订单分享',time:'2021.09.06 10:30:10',num:'1'},
{title:'任务完成',time:'2021.09.06 10:30:10',num:'1'},
],
isTiX:true
}
},
onLoad() {
this.$toolAll.tools.isLogin()
},
methods: {
switchState(flag){
this.activeJF = flag;
if(flag) {
this.dataList = [
{title:'积分兑换',time:'2021.09.06 10:30:10',num:'1'},
{title:'分享订单',time:'2021.09.06 10:30:10',num:'1'},
{title:'订单分享',time:'2021.09.06 10:30:10',num:'1'},
{title:'任务完成',time:'2021.09.06 10:30:10',num:'1'},
]
} else {
this.dataList = [
{title:'孔雀币提现',time:'2021.09.06 10:30:10',num:'1'},
{title:'任务完成',time:'2021.09.06 10:30:10',num:'1'},
{title:'分享订单',time:'2021.09.06 10:30:10',num:'1'},
{title:'任务完成',time:'2021.09.06 10:30:10',num:'1'},
]
}
}
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,166 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'积分商城'" :statusTitle="true"></status-nav>
<!-- 搜索输入框 -->
<view class="search-input-box bacf poszy jf-input-box" :style="{top: statusHNH+'px'}">
<view class="disac pad-zy30 mar-s20">
<!-- 输入框 -->
<input class="width100 fon34 radius10" @confirm="searchKey" type="text" v-model="searchVal" placeholder="请输入商品名称"/>
<!-- 搜索 -->
<view class="flexs mar-z30 radius10 pad-zy40 fon34 colf" @tap="searchKey" :style="{background:publicColor}">搜索</view>
</view>
<!-- 分类标题 -->
<view class="disjbac pad-zy20 pad-s20 bacf fon24">
<view v-for="(item,index) in shopCate" class="disjcac" @tap="chooseShopCate(index)" :class="activeIndex==index?'activecate':'shopMo'" :style="{background:activeIndex==index?publicColor:'#F2F2F2'}" :key="index">
<span>{{item}}</span>
<view class="disjcac fc mar-z10" v-if="index==2 || index==3">
<image src="/static/public/address-top.png" mode=""></image>
<image src="/static/public/address-down.png" mode=""></image>
</view>
</view>
</view>
</view>
<!-- 数据列表 -->
<view :style="{marginTop:statusHNH+titleHeight+'px'}">
<shopList :dataList="dataList" v-if="dataList.length!=0"></shopList>
<nothing-page v-if="dataList.length==0" :content="`暂无更多${searchVal}积分商品`"></nothing-page>
</view>
<!-- 底部tab -->
<foot-tab :titleList="titleList" :imgList="imgList" :newcurrent='4'></foot-tab>
<!-- 购物车 -->
<navigator url="/pagesA/shopCart/shopCart?isScore=score" hover-class="none">
<view class="cart-box">
<view class="posir">
<image src="/static/public/cart.png" mode="aspectFill"></image>
<view class="posia"><view>99</view></view>
</view>
</view>
</navigator>
</view>
</template>
<script>
import shopList from '@/components/shop-list.vue';
export default {
components:{
shopList
},
data() {
return {
titleList:[],
imgList:[],
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),
activeIndex:0,
shopCate:['综合','最新','兑换量','积分'],
titleHeight:'',//
dataList:[],
searchVal:'',//
type:'normal',//type=normal newest=
sort_field:'',// score= num=
sort_value:'asc',// asc= desc=
cishu:0
}
},
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad() {
this.titleList = uni.getStorageSync('footTitle')
this.imgList = uni.getStorageSync('footimg')
// +
const query = wx.createSelectorQuery()
query.select('.search-input-box').boundingClientRect((rect) => {
// console.log('+',rect.height);
this.titleHeight = rect.height
}).exec()
this.checkList();
},
methods: {
checkList(){//
let params = {
keyword:this.searchVal,//
page:1,
size:10,
type:this.type,//type=normal newest=
sort_field:this.sort_field,// score= num=
sort_value:this.sort_value// asc= desc=
}
this.$requst.post('spu/score',params).then(res=>{
if(res.code==0){
this.dataList = [];
if(res.data.list.length!=0){
res.data.list.forEach(item=>{
let obj = {
id:item.id,
imgSrc: this.$http + item.cover,
saleable:item.saleable,//
stock:item.stock,//
title: item.name,
zhePrice:item.price,
yuanPrice:item.original_price,
integral:item.score,
isTuan:false,
isPing:false,
isXian:false,
isIntegral:true,
grade:item.level_id,
published_at:item.published_at,//
amount:item.amount,//
level_text:item.level_text//
}
this.dataList.push(obj)
})
} else {
this.$toolAll.tools.showToast('暂无更多积分商品')
}
}
})
},
searchKey(){//
if(this.activeIndex==0) {
this.clearVal();
this.type = 'normal';
}
if(this.activeIndex==2 || this.activeIndex==3) this.sort_value = 'asc';
this.checkList();
},
chooseShopCate(index){//
this.activeIndex = index;
this.type = '';
this.sort_field = '';
if(index==0) this.type = 'normal';
if(index==1) this.type = 'newest';
this.cishu++
if(index==2) {
this.sort_field = 'amount';
if(this.cishu%2==0) {
this.sort_value = 'asc';
} else this.sort_value = 'desc';
}
if(index==3) {
this.sort_field = 'score';
if(this.cishu%2==0) {
this.sort_value = 'asc';
} else this.sort_value = 'desc';
}
this.checkList();
},
clearVal(){
this.type = '';
this.sort_field = '';
}
}
}
</script>
<style>
page{background: #F5F5F5;}
.activecate,.shopMo{border-radius: 20rpx;text-align: center;background-color: #f2f2f2;color: #333333;padding: 16rpx 25rpx;}
.activecate{color: #FFFFFF;}
.activecate image{
-webkit-filter: invert(1); /* Chrome, Safari, Opera */
filter: invert(1);
}
</style>

View File

@ -3,71 +3,58 @@
<!-- 状态栏 --> <!-- 状态栏 -->
<status-nav :titleVal="'购物车'" :statusTitle="true"></status-nav> <status-nav :titleVal="'购物车'" :statusTitle="true"></status-nav>
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy30"> <view :style="{paddingTop: statusHNH+'px'}" class="pad-zy30">
<view class="bacf radius20 mar-s20 pad20"> <view class="bacf radius20 mar-s20 pad20" v-if="cartList.length!=0">
<view class="fon28 col3 disjbac" style="height: 43rpx;"> <view class="fon28 col3 disjbac" style="height: 43rpx;">
<view class="bold">订单信息</view> <view class="bold">订单信息</view>
<view v-if="!cancle_del" @tap="cancle_del=true"></view> <view v-if="!cancle_del && cartList.length!=0" @tap="guanEv(0)"></view>
<view v-else @tap="cancle_del=false" style="width: 113rpx;height: 43rpx;border-radius: 20rpx;background: #3875F6;text-align: center;color: #FFFFFF;line-height: 43rpx;">×</view> <view v-if="cancle_del && cartList.length!=0" @tap="guanEv(1)" class="edit-btn">×</view>
</view> </view>
<view> <view v-for="(item,index) in cartList" :key="index" class="disjbac pad-sx40 bbot posir cart-list-box" @touchstart="moveStart(index,$event)" @touchend="moveEnd">
<view class="disjbac pad-sx40 bbot posir" style="overflow: hidden;" @touchstart="moveStart" @touchend="moveEnd"> <view class="disjbac width100" :style="{marginLeft:(showDel && isDang==index)?'-70px':'',paddingRight:(showDel && isDang==index)?'70px':''}">
<view class="disjbac" :style="{marginLeft:showDel?'-70px':'',paddingRight:showDel?'70px':''}">
<!-- --> <!-- -->
<image src="/static/public/chooseFS.png" style="width: 40rpx;height: 40rpx;flex-shrink: 0;" mode=""></image> <view @tap="chooseItem(index)">
<image src="/static/tabbar/mya.png" style="width: 166rpx;height: 166rpx;border-radius: 15rpx;flex-shrink: 0;margin: 0 12rpx 0 24rpx;" mode=""></image> <image v-if="item.isActive" src="/static/public/chooseFS.png" class="flexs chooseDX" mode=""></image>
<view> <image v-else src="/static/public/cancle-FS.png" class="flexs chooseDX" mode=""></image>
<view class="fon28 col3 bold clips2">99皮皮节种植发际线1000单位FUE技术案例招募门美人</view> </view>
<view style="font-size: 22rpx;color: #808080;">试用</view> <image @tap="chooseItem(index)" :src="item.imgSrc" class="order-image mar-z25 flexs" mode="aspectFill"></image>
<view class="disjbac mar-s10"> <view class="width100 disjbac fc" style="height: 166rpx;">
<view style="font-size: 32rpx;color: #F85050;font-weight: bold;">3888</view> <view class="width100">
<view class="fon26 col3 disac bold" style="border-radius: 4rpx;overflow: hidden;"> <navigator url="/pagesB/shopDetail/shopDetail" hover-class="none">
<image src="/static/public/del.png" mode="" style="width: 46rpx;height: 26px;"></image> <view class="fon28 col3 bold clips2">{{item.title}}</view>
<input type="text" value="1" style="width: 60rpx;height: 24px;text-align: center;border-top: 2rpx solid #3875F6;border-bottom: 2rpx solid #3875F6;"/> </navigator>
<image src="/static/public/add.png" mode="" style="width: 46rpx;height: 26px;"></image> <view class="order-sy">试用</view>
</view>
<view class="disjbac width100 mar-s10">
<view class="order-item-price"><span v-if="item.is_score!=1"></span><span v-else></span>{{item.price}}</view>
<view class="fon26 col3 disac bold cart-input-box">
<image @tap="deladdEvent(index , 0)" src="/static/public/del.png" mode=""></image>
<input type="text" v-model="item.num"/>
<image @tap="deladdEvent(index , 1)" src="/static/public/add.png" mode=""></image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view v-if="showDel" style="width: 117rpx;height: 205rpx;background: #F85050;line-height: 205rpx;text-align: center;color: #FFFFFF;font-size: 24rpx;flex-shrink: 0;position: absolute;right: 0;bottom: 40rpx;top: 2rpx;"></view> <view v-if="showDel && isDang==index" @tap="deltItem(index)" class="item-del-btn"></view>
</view>
<view class="disjbac pad-sx40 bbot posir" style="overflow: hidden;" @touchstart="moveStart" @touchend="moveEnd">
<view class="disjbac" :style="{marginLeft:showDel?'-70px':'',paddingRight:showDel?'70px':''}">
<!-- -->
<image src="/static/public/cancle-FS.png" style="width: 40rpx;height: 40rpx;flex-shrink: 0;" mode=""></image>
<image src="/static/tabbar/mya.png" style="width: 166rpx;height: 166rpx;border-radius: 15rpx;flex-shrink: 0;margin: 0 12rpx 0 24rpx;" mode=""></image>
<view>
<view class="fon28 col3 bold clips2">99皮皮节种植发际线1000单位FUE技术案例招募门美人</view>
<view style="font-size: 22rpx;color: #808080;">试用</view>
<view class="disjbac mar-s10">
<view style="font-size: 32rpx;color: #F85050;font-weight: bold;">3888</view>
<view class="fon26 col3 disac bold" style="border-radius: 4rpx;overflow: hidden;">
<image src="/static/public/del.png" mode="" style="width: 46rpx;height: 26px;"></image>
<input type="text" value="1" style="width: 60rpx;height: 24px;text-align: center;border-top: 2rpx solid #3875F6;border-bottom: 2rpx solid #3875F6;"/>
<image src="/static/public/add.png" mode="" style="width: 46rpx;height: 26px;"></image>
</view> </view>
</view> </view>
</view> <nothing-page v-if="cartList.length==0" :content="'暂无更多商品'"></nothing-page>
</view> <view class="disjbac posixzy bacf pad-zy32" style="height: 124rpx;line-height: 124rpx;">
<view v-if="showDel" style="width: 117rpx;height: 205rpx;background: #F85050;line-height: 205rpx;text-align: center;color: #FFFFFF;font-size: 24rpx;flex-shrink: 0;position: absolute;right: 0;bottom: 40rpx;top: 2rpx;"></view> <view class="disac" @tap="chooseAll">
</view> <view class="chooseAll-box">
</view> <view v-if="isChooseAll"></view>
</view>
<view class="disjbac posixzy bacf" style="height: 124rpx;line-height: 124rpx;padding: 0 32rpx;">
<view class="disac">
<view style="width: 40rpx;height: 40rpx;border-radius: 100%;border: 2rpx solid #3875F6;flex-shrink: 0;display: flex;justify-content: center;align-items: center;">
<!-- <view style="width: 24rpx;height: 24rpx;background-color: #3875F6;border-radius: 100%;"></view> -->
</view> </view>
<view class="fon28 col3 mar-z10">全选</view> <view class="fon28 col3 mar-z10">全选</view>
</view> </view>
<!-- 去支付 --> <!-- 去支付 -->
<view v-if="!cancle_del" class="disjbac"> <view v-if="!cancle_del" class="disjbac">
<view> <view>
<view class="fon28">合计<span class="fon40 bold" style="color: #F85050;">7166.00</span></view> <view class="fon28" v-if="isScore!='score'"><span class="fon40 bold colf8">{{allPrice}}.00</span></view>
<view class="fon28" v-else><span class="fon40 bold colf8">{{allPrice}}</span></view>
</view> </view>
<view @tap="goGetReadyDan" style="color: #FFFFFF;font-size: 28rpx;font-weight: bold;width: 170rpx;height: 70rpx;line-height: 70rpx;text-align: center;background: #3875F6;border-radius: 35rpx;margin-left: 10rpx;">去支付</view> <view @tap="goGetReadyDan" class="colf fon28 bold mar-z10 goBuy-btn" style="background: #3875F6;">{{cartList.length==0?'去购物':'去支付'}}</view>
</view> </view>
<!-- 删除 --> <!-- 删除 -->
<view v-else style="color: #FFFFFF;font-size: 28rpx;font-weight: bold;width: 170rpx;height: 70rpx;line-height: 70rpx;text-align: center;background: #F85050;border-radius: 35rpx;">删除</view> <view @tap="delBtn" v-else class="colf fon28 bold goBuy-btn" style="background: #F85050;">删除</view>
</view> </view>
</view> </view>
</view> </view>
@ -82,31 +69,155 @@
showDel:false, showDel:false,
startX:'',// startX:'',//
endX:'',// endX:'',//
cancle_del:false cancle_del:false,
cartList:[],//
isChooseAll:false,//
isDang:0,//item
newList:[],//
delIndex:[],//ID
page:1,
size:10,
isScore:''
} }
}, },
onShow() { onShow() {
this.$toolAll.tools.isLogin() this.$toolAll.tools.isLogin();
uni.removeStorageSync('orderList');
},
onLoad(options) {
options.isScore=='score' ? this.isScore = 'score' : ''
this.checkList();
},
computed:{
allPrice(){
let sum = 0
this.cartList.forEach(item=>{
if(item.isActive) sum += item.price*1 * item.num
})
return sum;
}, },
onLoad() {
}, },
methods: { methods: {
clickGL(){ checkList(){//
console.log('管理'); this.$requst.post('order/shopping-cart',{page:this.page,size:this.size,type:this.isScore}).then(res=>{
if(res.code==0){
if(res.data.length!=0){
res.data.forEach(item=>{
let nprice = '';
item.is_score ==1 ? nprice = item.score : nprice = item.sku.sku_price;
let obj = {
id:item.id,
imgSrc:this.$http + item.spu.spu_cover,
coding:item.sku.coding,
title:item.sku.sku_name,
price:nprice,//
num:item.num,
isActive:false,
is_score:item.is_score
}
this.cartList.push(obj)
})
}
}
})
}, },
moveStart(e){ deltItem(index){//
this.$requst.post('order/shopping-cart-del',{id:this.cartList[index].id}).then(res=>{
if(res.code==0){
this.cartList.splice(index,1);
this.$toolAll.tools.showToast('删除成功');
}
})
},
deladdEvent(cur,index){//
if(index==0){//
if(this.cartList[cur].num>1) this.cartList[cur].num--;
} else {//
this.cartList[cur].num++;
}
this.$requst.post('order/shopping-cart-change-num',{id:this.cartList[cur].id,num:this.cartList[cur].num}).then(res=>{})
this.zanList();
},
chooseItem(index){//
this.cartList[index].isActive = !this.cartList[index].isActive;
let one = this.cartList.filter(function(item){
return item.isActive == false;
})
one.length==0 ? this.isChooseAll = true : this.isChooseAll = false
this.zanList();
},
chooseAll(){//
this.isChooseAll = !this.isChooseAll;
this.cartList.forEach(item=>{
this.isChooseAll ? item.isActive = true : item.isActive = false;
})
this.zanList();
},
zanList(){//
this.delIndex = []
this.newList = this.cartList.filter(item=>item.isActive==true);
if(this.cancle_del){
this.cartList.filter((item,index)=>{
if(item.isActive) {
this.delIndex.push(item.id);
}
});
}
},
delBtn(){//
this.delIndex.forEach(item=>{
this.cartList.forEach((item1,index)=>{
if(item==item1.id){
this.cartList.splice(index,1);
this.$requst.post('order/shopping-cart-del',{id:item1.id}).then(res=>{
if(res.code==0){
} else {
this.$toolAll.tools.showToast(res.msg);
}
})
}
})
})
this.isChooseAll = false;
if(this.cartList.length==0){
this.cancle_del = false;
}
},
guanEv(index){//
index==0 ? this.cancle_del = true : this.cancle_del = false;
this.cartList.forEach(item=>item.isActive=false);
this.isChooseAll = false;
},
moveStart(index,e){//
this.isDang = index;
this.startX = e.touches[0].pageX this.startX = e.touches[0].pageX
}, },
moveEnd(e){ moveEnd(e){//
this.endX = e.changedTouches[0].pageX this.endX = e.changedTouches[0].pageX
if(this.startX-this.endX>0){ if(this.startX-this.endX>0){
this.showDel = true; this.showDel = true;
} else this.showDel = false; } else this.showDel = false;
}, },
goGetReadyDan(){ goGetReadyDan(){
let newUrl = '';
let isNei = '';
if(this.isScore=='score') {
isNei = 3
}
if(this.cartList.length == 0) {
if(isNei==3){
newUrl = '/pagesA/pointsMall/pointsMall';
} else {
newUrl = '/pages/tabbar/shop/shop';
}
}
if(this.cartList.length > 0) {
uni.setStorageSync('orderList',this.newList);
newUrl = `/pagesA/getReadyDan/getReadyDan?isNei=${isNei}`;
}
uni.navigateTo({ uni.navigateTo({
url:'/pagesA/getReadyDan/getReadyDan' url:newUrl
}) })
} }
} }

77
pagesA/signIn/signIn.vue Normal file
View File

@ -0,0 +1,77 @@
<template>
<view>
<!-- 状态栏 -->
<status-nav :titleVal="'签到管理'" :statusTitle="true"></status-nav>
<view :style="{paddingTop: statusHNH+'px'}" class=" fon28 col3">
<view class="posir">
<image class="posia width100" src="/static/public/sign-01.png" mode="widthFix"></image>
<view class="posir tc pad-sx20" style="z-index: 5;">
<image src="/static/public/sign-02.png" mode="" style="width: 218rpx;height: 202rpx;margin: 0 auto;"></image>
<view class="fon20 colf mar-s20">在连续签到6天就可以获得额外300积分哦~加油吧</view>
<view class="disjcac mar-sx30">
<image src="/static/public/sign-03.png" style="width: 31rpx;height: 30rpx;margin-top: 20rpx;" mode=""></image>
<view class="bold colf mar-z10" style="font-size: 56rpx;">1000</view>
</view>
<view class="disjb pad-zy30">
<view v-for="(item,index) in timeList" :key="index" class="disjcac fc">
<view class="disjcac fon24 posir" :style="{color:item.isSign?'#789CFB':'#FFFFFF',background:item.isSign?'#FFFFFF':''}" style="width: 66rpx;height: 66rpx;border-radius: 100%;border: 2rpx solid #FFFFFF;">
+{{item.num}}
<view v-if="index==1" class="posia" style="width: 27rpx;height: 27rpx;border-radius: 100%;border: 1rpx solid #759FFD;text-align: center;line-height: 27rpx;color: #759FFD;background: #FFFFFF;font-size: 20rpx;right: 0rpx;bottom: -8rpx;"></view>
</view>
<view class="fon28 colf mar-s20">{{item.day}}</view>
</view>
</view>
</view>
</view>
<!-- 获取列表提现列表 -->
<view class="pad-zy30">
<view class="mar-s20 bacf pad20 radius20">
<view class="mar-x20 fon28 col3 bold">签到记录</view>
<view v-for="(item,index) in dataList" :key="index" class="disjbac bbot pad-sx10">
<view>
<view class="fon26 col3">{{item.title}}</view>
<view class="mar-s10 fon20 col9">{{item.time}}</view>
</view>
<view class="fon36 bold" style="color: #3875F6;">+{{item.num}}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),//
timeList:[
{num:'10',day:'3.21',isSign:true},
{num:'10',day:'今天',isSign:true},
{num:'20',day:'明天',isSign:false},
{num:'20',day:'9.11',isSign:false},
{num:'20',day:'9.12',isSign:false},
{num:'20',day:'9.13',isSign:false},
{num:'20',day:'9.14',isSign:false},
],
dataList:[
{title:'签到积分',time:'2021.09.06 10:30:10',num:'1'},
{title:'签到积分',time:'2021.09.06 10:30:10',num:'1'},
{title:'签到积分',time:'2021.09.06 10:30:10',num:'1'},
{title:'签到积分',time:'2021.09.06 10:30:10',num:'1'},
],
}
},
onLoad() {
this.$toolAll.tools.isLogin()
},
methods: {
}
}
</script>
<style>
page{background-color: #FFFFFF;}
</style>

View File

@ -1,9 +1,13 @@
<template> <template>
<view> <view>
<!-- 状态栏 --> <!-- 状态栏 -->
<status-nav :titleVal="'消息中心'" :statusTitle="true"></status-nav> <status-nav :titleVal="'消息'" :statusTitle="true"></status-nav>
<view id="daoh" class="bacf pad-zy30 pad-sx20 isTopf fon28 col3 disja" :style="{top:statusHNH+'px'}">
<view @tap="isWen=true" :class="isWen?'isWen bold':'col9'" class="posir">日程提醒</view>
<view @tap="isWen=false" :class="!isWen?'isWen bold':'col9'" class="posir">消息中心</view>
</view>
<!-- 列表 --> <!-- 列表 -->
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy32"> <view :style="{paddingTop: (statusHNH+chuTop+15)+'px'}" class="pad-zy32">
<view v-if="dataList.length!=0"> <view v-if="dataList.length!=0">
<view v-for="(item,index) in dataList" :key="index"> <view v-for="(item,index) in dataList" :key="index">
<view class="fon24 col6 tc mar-sx50">{{item.time}}</view> <view class="fon24 col6 tc mar-sx50">{{item.time}}</view>
@ -56,6 +60,8 @@
// } // }
], ],
showTop:false,// showTop:false,//
chuTop:'',
isWen:true,
} }
}, },
onPageScroll(e) { onPageScroll(e) {
@ -77,7 +83,13 @@
onShow() { onShow() {
this.$toolAll.tools.isLogin() this.$toolAll.tools.isLogin()
}, },
onLoad() { onLoad(options) {
const query = wx.createSelectorQuery()
query.select('#daoh').boundingClientRect((rect) => {
// console.log('+',rect);
this.chuTop = rect.height
}).exec()
if(options.index==undefined){this.isWen = false}
this.checkMsg() this.checkMsg()
}, },
methods: { methods: {
@ -117,5 +129,16 @@
</script> </script>
<style> <style>
.isWen{color: #3875F6;}
.isWen::after{
content: '';
display: block;
height: 8rpx;
width: 80%;
position: absolute;
bottom: -20rpx;
left: 50%;
transform: translateX(-50%);
background: #3875F6;
}
</style> </style>

View File

@ -1,14 +1,19 @@
<template> <template>
<view> <view>
<!-- 状态栏 --> <!-- 状态栏 -->
<status-nav :titleVal="'文章收藏'" :statusTitle="true"></status-nav> <status-nav :titleVal="'收藏'" :statusTitle="true"></status-nav>
<!-- 自定义二级分类 --> <!-- 自定义二级分类 -->
<!-- 列表 --> <!-- 列表 -->
<view> <view>
<view id="daoh" class="bacf pad-zy30 pad-sx20 isTopf" :style="{top:statusHNH+'px'}"> <view id="daoh" class="bacf pad-zy30 pad-sx20 isTopf fon28 col3 disja" :style="{top:statusHNH+'px'}">
<cate-pu :newCurrent="newCurrent*1" :activeb="publicColor" :isCenter="false" :newbmo="'#E0E0E0'" @choosecateEv="chooseTwo" :newcateList="cateList"></cate-pu> <view @tap="isWen=true" :class="isWen?'isWen':''" class="posir">文章收藏</view>
<view @tap="isWen=false" :class="!isWen?'isWen':''" class="posir">商品收藏</view>
</view>
<view :style="{paddingTop:(statusHNH+chuTop+15)+'px'}">
<view v-if="isWen">
<view class="pad-zy32 mar-x20">
<cate-pu :newCurrent="newCurrent*1" :activeb="publicColor" :isCenter="false" :newbmo="'#F2F2F2'" @choosecateEv="chooseTwo" :newcateList="cateList"></cate-pu>
</view> </view>
<view :style="{paddingTop:(statusHNH+chuTop+30)+'px'}">
<view v-if="dataList.length!=0" class="pad-zy20 pad-s20"> <view v-if="dataList.length!=0" class="pad-zy20 pad-s20">
<list-pu :radiu="true" @comfirmev="comfirmev" :list="dataList"></list-pu> <list-pu :radiu="true" @comfirmev="comfirmev" :list="dataList"></list-pu>
</view> </view>
@ -17,6 +22,16 @@
<view class="fon24 col3">您还没有收藏快去收藏吧</view> <view class="fon24 col3">您还没有收藏快去收藏吧</view>
</view> </view>
</view> </view>
<view v-else>
<view v-if="shopList.length!=0" style="margin-top: -20rpx;">
<shopList :dataList="shopList"></shopList>
</view>
<view v-else class="disjcac fc" style="margin-top: 50%;">
<image class="zanw-img" src="/static/public/collection.png" style="" mode="aspectFill"></image>
<view class="fon24 col3">您还没有收藏快去收藏吧</view>
</view>
</view>
</view>
</view> </view>
<!-- 返回顶部 --> <!-- 返回顶部 -->
<!-- <back-top :showTop="showTop" @backTop="backTop"></back-top> --> <!-- <back-top :showTop="showTop" @backTop="backTop"></back-top> -->
@ -27,7 +42,11 @@
<script> <script>
import {cancleCollectionEV} from '@/jsFile/publicAPI.js'; import {cancleCollectionEV} from '@/jsFile/publicAPI.js';
import shopList from '@/components/shop-list.vue';
export default { export default {
components:{
shopList
},
data() { data() {
return { return {
statusHNH:uni.getStorageSync('statusHNH'), statusHNH:uni.getStorageSync('statusHNH'),
@ -44,6 +63,57 @@
isZanw:true, isZanw:true,
category_id:0,//ID category_id:0,//ID
chuTop:'', chuTop:'',
isWen:true,
shopList:[
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:true,
isPing:false,
isXian:false,
isIntegral:false,
grade:0,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:true,
isXian:false,
isIntegral:false,
grade:0,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:true,
isIntegral:false,
grade:0,
},
{
imgSrc:'/static/public/wen-one.png',
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',
zhePrice:'3888',
yuanPrice:'4205',
integral:'2888',
isTuan:false,
isPing:false,
isXian:false,
isIntegral:false,
grade:0,
}
]
} }
}, },
onPageScroll(e) { onPageScroll(e) {
@ -161,5 +231,14 @@
</script> </script>
<style> <style>
.isWen{color: #3875F6;}
.isWen::after{
content: '';
display: block;
height: 4rpx;
width: 100%;
position: absolute;
bottom: -20rpx;
background: #3875F6;
}
</style> </style>

View File

@ -16,8 +16,8 @@
<view class="bacf radius20 mar-s20 fon28" style="padding: 27rpx 20rpx;"> <view class="bacf radius20 mar-s20 fon28" style="padding: 27rpx 20rpx;">
<view class="bold">物流信息</view> <view class="bold">物流信息</view>
<view class="bold col3 mar-s40 fon26 disjbac"> <view class="bold col3 mar-s40 fon26 disjbac">
<view>韵达快递2983625984729</view> <view>{{express}}</view>
<view></view> <view @tap="copyCont"></view>
</view> </view>
</view> </view>
<!-- 地址信息 --> <!-- 地址信息 -->
@ -146,7 +146,8 @@
publicColor:uni.getStorageSync('publicColor'),// publicColor:uni.getStorageSync('publicColor'),//
isExpress:true, isExpress:true,
switchQuan:true, switchQuan:true,
showQuan:false showQuan:false,
express:'韵达快递2983625984729'
} }
}, },
onShow() { onShow() {
@ -173,6 +174,9 @@
uni.navigateTo({ uni.navigateTo({
url:'/pagesA/immediatePayment/immediatePayment' url:'/pagesA/immediatePayment/immediatePayment'
}) })
},
copyCont(){
this.$toolAll.tools.clickCopy(this.express)
} }
} }
} }

View File

@ -4,26 +4,30 @@
<status-nav :titleVal="'二维码海报'" :statusTitle="true"></status-nav> <status-nav :titleVal="'二维码海报'" :statusTitle="true"></status-nav>
<!-- 自定义二级分类 --> <!-- 自定义二级分类 -->
<!-- 列表 --> <!-- 列表 -->
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy36 pad-x20"> <view :style="{paddingTop: statusHNH+'px'}" class="pad-zy20">
<view v-show="imgSrc!=''"> <view v-if="imgList.length!=0">
<view class="mar-s20"> <view class="mar-s20 disjbac fw">
<image class="width100 radius20" :src="imgSrc" mode="widthFix" lazy-load></image> <image @tap="chooseImg(index)" v-for="(item,index) in imgList" :key="index" class="width100 radius20 mar-x20" :src="item" style="width: 48.5%;max-height: 474rpx" mode="aspectFill" lazy-load></image>
</view> </view>
</view>
<view v-else class="disjcac fc" style="margin-top: 50%;">
<image class="zanw-img mar-x50" src="/static/public/zanwn.png" mode="aspectFill"></image>
<view class="fon24 col3 mar-s50" style="margin-top: 30%;">暂无内容</view>
</view>
<!-- 预览弹框 -->
<view v-if="showBtn" @tap.stop="showBtn=false" class="posAll disjcac fc pad-zy50" style="z-index: 3;">
<image :src="imgSrc" @tap.stop="showBtn=true" class="radius20" style="width: 80%;" mode="widthFix"></image>
<!-- 分享按钮 --> <!-- 分享按钮 -->
<view v-if="showBtn" @tap="shareEv" class="disjcac radius20 posir" style="height: 90rpx;margin: 20rpx 80rpx 0 80rpx;background-color: #38CE51;line-height: 90rpx;"> <view v-if="haved" @tap.stop="shareEv" class="disjcac radius20 posixzy" style="height: 90rpx;margin: 20rpx 80rpx;background-color: #38CE51;line-height: 90rpx;bottom: 40rpx;">
<view class="disac"> <view class="disac">
<image src="/static/public/sharef.png" style="width: 54rpx;height: 54rpx;" mode=""></image> <image src="/static/public/sharef.png" style="width: 54rpx;height: 54rpx;" mode=""></image>
<view class="fon40 bold colf mar-z10">分享给好友</view> <view class="fon40 bold colf mar-z10">分享给好友</view>
</view> </view>
</view> </view>
</view> </view>
<view v-show="imgSrc==''" class="disjcac fc" style="margin-top: 50%;">
<image class="zanw-img mar-x50" src="/static/public/zanwn.png" mode="aspectFill"></image>
<view class="fon24 col3 mar-s50" style="margin-top: 30%;">暂无内容</view>
</view>
</view> </view>
<!-- 弹框 --> <!-- 弹框 -->
<pu-po :isShowT="imgSrc==''" :contentVal="'立即生成创意海报'" :clearVal="'暂不生成'" :comfrimVal="'立即生成'" @comfirmev="comfirmev" @cancleev="cancleev"></pu-po> <pu-po :isShowT="imgList.length==0 && isHaib" :contentVal="'立即生成创意海报'" :clearVal="'暂不生成'" :comfrimVal="'立即生成'" @comfirmev="comfirmev" @cancleev="cancleev"></pu-po>
<!-- 底部客服 --> <!-- 底部客服 -->
<public-customer :nbottom="100"></public-customer> <public-customer :nbottom="100"></public-customer>
</view> </view>
@ -37,27 +41,36 @@
statusHNH:uni.getStorageSync('statusHNH'), statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),// publicColor:uni.getStorageSync('publicColor'),//
isShowT:true, isShowT:true,
imgSrc:uni.getStorageSync('imgSrcP'), imgList:uni.getStorageSync('imgSrcList'),
isHaib:false, imgSrc:'',
showBtn:false showBtn:false,
isHaib:true,
haved:true
} }
}, },
onShow() { onShow() {
this.$toolAll.tools.isLogin() this.$toolAll.tools.isLogin()
this.haved = true
}, },
onLoad() { onLoad() {
// uni.removeStorageSync('imgSrcList')
// //
this.imgSrc = uni.getStorageSync('imgSrcP')// if(uni.getStorageSync('imgSrcList')!='') this.imgSrcList = uni.getStorageSync('imgSrcList')//
if(this.imgSrc!='') { else this.imgList = []
setTimeout(()=>{ console.log(this.imgList.length);
this.showBtn = true
},500)
}
}, },
methods: { methods: {
chooseImg(index){
this.haved = this.showBtn = true;
this.imgSrc = this.imgList[index]
},
shareEv(){ shareEv(){
this.haved = false
wx.showShareImageMenu({ wx.showShareImageMenu({
path: this.imgSrc path: this.imgSrc,
fail:(res=>{//
this.haved = true
})
}) })
this.$requst.post('user/record',{type:'other',action:'share',id:''}).then(res=>{console.log('分享成功:',res);},error=>{}) this.$requst.post('user/record',{type:'other',action:'share',id:''}).then(res=>{console.log('分享成功:',res);},error=>{})
let maiOjb = { let maiOjb = {
@ -72,14 +85,17 @@
this.$requst.get('user/personal-poster').then(res=>{ this.$requst.get('user/personal-poster').then(res=>{
// console.log('',res); // console.log('',res);
if(res.code==0){ if(res.code==0){
this.imgSrc = res.data.poster let newArr = [];
newArr.push(res.data.poster)
uni.hideToast() uni.hideToast()
this.$toolAll.tools.showToast('生成海报成功') newArr.forEach(item=>{
base64ToPath(this.imgSrc).then(path => { base64ToPath(item).then(path => {
this.imgSrc = path this.imgList.push(path)
this.showBtn = true uni.setStorageSync('imgSrcList',this.imgList)
uni.setStorageSync('imgSrcP',path)
}).catch(error => {}) }).catch(error => {})
})
this.$toolAll.tools.showToast('生成海报成功');
this.isHaib = false
} }
},error=>{}) },error=>{})
}, },

View File

@ -3,73 +3,78 @@
<!-- 状态栏 --> <!-- 状态栏 -->
<status-nav v-if="invite_code==''" :titleVal="'商品详情'" :statusTitle="true"></status-nav> <status-nav v-if="invite_code==''" :titleVal="'商品详情'" :statusTitle="true"></status-nav>
<!-- 列表 --> <!-- 列表 -->
<view :style="{top: statusHNH+'px'}" class="posiszy" style="height: 50px;"> <view :style="{top: statusHNH+'px'}" v-if="isNei!=3" class="posiszy" style="height: 50px;">
<view class="bacf pad-zy32 pad-sx20"> <view class="bacf pad-zy32 pad-sx20">
<cate-pu @choosecateEv="choosecateEv" :activeb="invite_code!=''?'#3875F6':publicColor" :newCurrent="cateCurrent*1" :newbmo="'#F2F2F2'" :isCenter="false" :newcateList="cateList"></cate-pu> <cate-pu @choosecateEv="choosecateEv" :activeb="invite_code!=''?'#3875F6':publicColor" :newCurrent="cateCurrent*1" :newbmo="'#F2F2F2'" :isCenter="false" :newcateList="cateList"></cate-pu>
</view> </view>
</view> </view>
<view class="pad-x180" :style="{paddingTop: (statusHNH+50)+'px'}"> <view :style="{top: statusHNH+'px'}" v-else class="posiszy" style="height: 50px;"></view>
<view class="pad-x180" :style="{paddingTop: isNei!=3?(statusHNH+60)+'px':statusHNH+'px'}">
<!-- 自定义轮播 --> <!-- 自定义轮播 -->
<swiper-pu :browseP="true" :bannerList="bannerList" :newHeight="'250'" :newRadius="'0'" :newBottom="'5'"></swiper-pu>
<view v-if="isLoading"> <view v-if="isLoading">
<swiper-pu :browseP="true" :bannerList="bannerList" :newHeight="'250'" :newRadius="'0'" :newBottom="'5'"></swiper-pu>
<view v-if="isNei==3" style="width: 100%;height: 90rpx;line-height: 90rpx;padding-left: 62rpx;background: #3875F6;color: #FFFFFF;font-size: 40rpx;font-weight: bold;">{{detailObj.score}}</view>
<view v-show="cateCurrent==isNum"> <view v-show="cateCurrent==isNum">
<view class="pad20 bacf mar-zy20 radius20 mar-s20"> <view class="pad20 bacf mar-zy20 radius20 mar-s20">
<!-- 标题 --> <!-- 标题 -->
<view class="mar-x20 fon36 col3 bold clips3"> <view class="mar-x20 fon36 col3 bold clips3 shop-title-box line-h50">
<span class="radius15 colf fon20" style="padding: 6rpx 10rpx;" :style="{background:publicColor}">秃顶种植</span> <view style="margin-top: -8rpx;margin-right: 10rpx;">
<span class="radius15 colf fon20 mar-z10" style="padding: 6rpx 10rpx;background: #F85050;">团购</span> <span v-if="isNei!=3" class="radius15 colf fon20" :style="{background:publicColor}">{{detailObj.disease_name}}</span>
<span class="radius15 colf fon20 mar-z10" style="padding: 6rpx 10rpx;background: #F85050;">拼团活动</span> <span v-if="isNei==0" class="radius15 colf fon20 mar-z10"></span>
<span class="radius15 colf fon20 mar-z10" style="padding: 6rpx 10rpx;background: #F85050;">促销活</span> <span v-if="isNei==1" class="radius15 colf fon20 mar-z10"></span>
<span style="line-height: 50rpx;">99皮皮节种植发际线1000单位FUE技术案例招募门美人尖/头顶加密/微针/纤维/脱发</span> <span v-if="isNei==2" class="radius15 colf fon20 mar-z10"></span>
</view> </view>
<view class="fon24" style="color: #7D7D7D;">无任何额外消费</view> <span>{{detailObj.name}}</span>
</view>
<view class="fon24 col7D">无任何额外消费</view>
<!-- 团购商品详情时显示 --> <!-- 团购商品详情时显示 -->
<view class="disjbac fon24 mar-s20" style="color: #7D7D7D;"> <view v-if="isNei==0" class="disjbac fon24 mar-s20 col7D">
<view>团购累计参与人员300</view> <view>团购累计参与人员300</view>
<view>还剩余60</view> <view>还剩余60</view>
</view> </view>
<view class="mar-s20" style="color: #F85050;font-size: 40rpx;font-weight: bold;"><span>团购价:</span>3888 <span style="color: #B3B3B3;font-size: 24rpx;text-decoration: line-through;font-weight: 400;margin-left: 20rpx;">4205</span></view> <view class="mar-s20 shop-price" v-if="isNei!=3"><span v-if="isNei==0">:</span><span v-if="isNei==1">:</span>{{detailObj.price/100}} <span v-if="isNei!=10">{{detailObj.original_price/100}}</span></view>
<view class="mar-s20" style="color: #F85050;font-size: 40rpx;font-weight: bold;"><span>拼团价:</span>3888 <span style="color: #B3B3B3;font-size: 24rpx;text-decoration: line-through;font-weight: 400;margin-left: 20rpx;">4205</span></view> <view class="mar-s20 shop-price" v-else>{{detailObj.score}}</view>
<view class="disjbac" style="align-items: flex-end;margin-top: -20rpx;padding-bottom: 20rpx;"> <view class="disjbac shar-box" style="align-items: flex-end;">
<view class="disac"> <view>
<image class="flexs" src="/static/public/huiy.png" style="width: 42rpx;height: 30rpx;" mode="aspectFill"></image> <view class="disac" v-if="detailObj.level_text!=''">
<view class="fon24 col9">黄金会员可购买</view> <image class="flexs" src="/static/public/huiy.png" mode="aspectFill"></image>
<view class="fon24 col9">{{detailObj.level_text}}</view>
</view>
</view> </view>
<view class="disac flexs"> <view class="disac flexs">
<view @tap="shareEv" class="disac fc mar-zy36 posir"> <view @tap="shareEv" class="disac fc mar-zy36 posir">
<image src="/static/public/weix.png" style="width: 42rpx;height: 42rpx;" mode=""></image> <image src="/static/public/weix.png" class="wh42" mode=""></image>
<view class="fon24 col9">分享</view> <view class="fon24 col9">分享</view>
<button class="posia" open-type="share" style="top: 0;right: 0;left: 0;bottom: 0;opacity: 0;">分享</button> <button class="posia-op" open-type="share">分享</button>
<!-- <button v-if="haveImg" class="posia" open-type="share" style="top: 0;right: 0;left: 0;bottom: 0;opacity: 0;"></button> -->
</view> </view>
<view class="disac fc" @tap="tapConllection"> <view class="disac fc" @tap="tapConllection">
<image v-if="isDetailConllection" src="/static/public/yconllection.png" style="width: 44rpx;height: 44rpx;" mode=""></image> <image v-if="isDetailConllection" src="/static/public/yconllection.png" class="wh44" mode=""></image>
<image v-else src="/static/public/conllection.png" style="width: 44rpx;height: 44rpx;" mode=""></image> <image v-else src="/static/public/conllection.png" class="wh44" mode=""></image>
<view class="fon24 col9">收藏</view> <view class="fon24 col9">收藏</view>
</view> </view>
</view> </view>
</view> </view>
<view class="pad-x30 pad-s10" style="border-bottom: 2rpx solid #E6E6E6;"> <view class="pad-x30 pad-s10 borbot" v-if="isNei==2">
<view class="fon36 colf bold pbackc tc pad-sx20" style="border-radius: 45rpx;">倒计时25小时35分26秒</view> <view class="fon36 colf bold pbackc tc pad-sx20 radius45">倒计时25小时35分26秒</view>
</view> </view>
<!-- 规格 --> <!-- 规格 -->
<view class="disjbac tc mar-s20"> <view class="disjbac tc mar-s20">
<view class="disjcac fon28 col3">规格</view> <view class="disjcac fon28 col3">规格</view>
<view> <view>
<view class="fon26 col3 mar-x20">上市时间</view> <view class="fon26 col3 mar-x20">上市时间</view>
<view class="fon24" style="color: #B3B3B3;">2021.02.01</view> <view class="fon24 colB3">2021.02.01</view>
</view> </view>
<view> <view>
<view class="fon26 col3 mar-x20">有效期</view> <view class="fon26 col3 mar-x20">有效期</view>
<view class="fon24" style="color: #B3B3B3;">三个月</view> <view class="fon24 colB3">三个月</view>
</view> </view>
<view> <view>
<view class="fon26 col3 mar-x20">可用时间</view> <view class="fon26 col3 mar-x20">可用时间</view>
<view class="fon24" style="color: #B3B3B3;">正常使用</view> <view class="fon24 colB3">正常使用</view>
</view> </view>
<view> <view>
<view class="fon26 col3 mar-x20">术前须知</view> <view class="fon26 col3 mar-x20">术前须知</view>
<view class="fon24" style="color: #B3B3B3;"></view> <view class="fon24 colB3"></view>
</view> </view>
</view> </view>
</view> </view>
@ -77,60 +82,32 @@
<view class="pad20 bacf mar-zy20 radius20 mar-s20"> <view class="pad20 bacf mar-zy20 radius20 mar-s20">
<view class="fon28 disjbac"> <view class="fon28 disjbac">
<view class="col3">销量</view> <view class="col3">销量</view>
<view style="color: #B3B3B3;">已售30</view> <view class="colB3">已售{{detailObj.amount}}</view>
</view> </view>
<view class="fon28 disjbac mar-s40"> <view class="fon28 disjbac mar-s40">
<view class="col3">库存</view> <view class="col3">库存</view>
<view style="color: #B3B3B3;">剩余3000</view> <view class="colB3">剩余{{detailObj.stock}}</view>
</view> </view>
</view> </view>
<!-- 拼团 --> <!-- 拼团 -->
<view class="pad20 bacf mar-zy20 radius20 mar-s20"> <view v-if="isNei==1" class="pad20 bacf mar-zy20 radius20 mar-s20">
<view class="fon28 col3">2人正在拼团可以直接参与</view> <view class="fon28 col3">{{len}}人正在拼团可以直接参与</view>
<swiper :autoplay="true" :interval="3000" :duration="1000" circular="true" vertical="true" style="height: 176px;"> <swiper :autoplay="true" :interval="3000" :duration="1000" circular="true" class="shop-swiper" vertical="true">
<swiper-item> <swiper-item v-for="(item,index) in pingArr" :key="index">
<view class="disjbac posir pad-sx20"> <view class="disjbac posir pad-x20" v-for="(itemt,indext) in item" :key="indext">
<image src="/static/public/like.png" mode="aspectFill" class="flexs" style="width: 70rpx;height: 70rpx; border-radius: 100%;"></image> <image :src="itemt.imgSrc" mode="aspectFill" class="flexs big-img"></image>
<view class="disjbac width100 mar-z20 pad-sx20"> <view class="disjbac width100 mar-z20 pad-sx20">
<view class="fon28 col3" style="width: 45%;">廖恒利</view> <view class="fon28 col3 width45">{{itemt.name}}</view>
<view class="fon28 disjbac" style="color: #7D7D7D;width: 55%;"> <view class="fon28 disjbac width100 col7D">
<view> <view class="flexs">
<view>还差1人拼成</view> <view>还差1人拼成</view>
<view style="margin-top: 7rpx;">剩余19:47:28</view> <view style="margin-top: 7rpx;">{{itemt.time_text}}</view>
</view> </view>
<view @tap="comeTuan" class="colf bold" style="width: 140rpx;height: 80rpx;line-height: 80rpx;text-align: center;background: #F85050;border-radius: 20rpx;">去拼单</view> <view @tap="comeTuan(itemt.id,index,indext)" class="colf bold flexs">去拼单</view>
</view>
</view>
<view style="border-bottom: 2rpx solid #E6E6E6;position: absolute;bottom: 0;width: 87%;right: 0;"></view>
</view>
<view class="disjbac posir pad-sx20">
<image src="/static/public/like.png" mode="aspectFill" class="flexs" style="width: 70rpx;height: 70rpx; border-radius: 100%;"></image>
<view class="disjbac width100 mar-z20 pad-sx20">
<view class="fon28 col3" style="width: 45%;">廖恒利</view>
<view class="fon28 disjbac" style="color: #7D7D7D;width: 55%;">
<view>
<view>还差1人拼成</view>
<view style="margin-top: 7rpx;">剩余19:47:28</view>
</view>
<view @tap="comeTuan" class="colf bold" style="width: 140rpx;height: 80rpx;line-height: 80rpx;text-align: center;background: #F85050;border-radius: 20rpx;">去拼单</view>
</view>
</view>
<!-- <view style="border-bottom: 2rpx solid #E6E6E6;position: absolute;bottom: 0;width: 87%;right: 0;"></view> -->
</view>
</swiper-item>
<swiper-item>
<view class="disjbac posir pad-sx20">
<image src="/static/public/like.png" mode="aspectFill" class="flexs" style="width: 70rpx;height: 70rpx; border-radius: 100%;"></image>
<view class="disjbac width100 mar-z20 pad-sx20">
<view class="fon28 col3" style="width: 45%;">廖恒利</view>
<view class="fon28 disjbac" style="color: #7D7D7D;width: 55%;">
<view>
<view>还差1人拼成</view>
<view style="margin-top: 7rpx;">剩余19:47:28</view>
</view>
<view @tap="comeTuan" class="colf bold" style="width: 140rpx;height: 80rpx;line-height: 80rpx;text-align: center;background: #F85050;border-radius: 20rpx;">去拼单</view>
</view> </view>
</view> </view>
<!-- 短线 -->
<view class="duan-xian"></view>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
@ -146,24 +123,24 @@
<view class="pad20 bacf mar-zy20 radius20 mar-s20"> <view class="pad20 bacf mar-zy20 radius20 mar-s20">
<view class="fon28 col3 bold">医生</view> <view class="fon28 col3 bold">医生</view>
<view class="disjbac posir pad-sx20"> <view class="disjbac posir pad-sx20">
<image src="/static/public/like.png" mode="aspectFill" class="flexs" style="width: 70rpx;height: 70rpx; border-radius: 100%;"></image> <image src="/static/public/like.png" mode="aspectFill" class="flexs big-img"></image>
<view class="disjbac width100 mar-z20 pad-sx20"> <view class="disjbac width100 mar-z20 pad-sx20">
<view class="fon28 col3" style="width: 50%;">廖恒利医生</view> <view class="fon28 col3 width50">廖恒利医生</view>
<view class="fon24" style="color: #7D7D7D;width: 50%;">擅长毛发种植</view> <view class="fon24 width50 col7D">擅长毛发种植</view>
</view> </view>
<view style="border-bottom: 2rpx solid #E6E6E6;position: absolute;bottom: 0;width: 87%;right: 0;"></view> <view class="duan-xian"></view>
</view> </view>
<view class="disjbac pad-sx20"> <view class="disjbac pad-sx20">
<image src="/static/public/like.png" mode="aspectFill" class="flexs" style="width: 70rpx;height: 70rpx; border-radius: 100%;"></image> <image src="/static/public/like.png" mode="aspectFill" class="flexs big-img"></image>
<view class="disjbac width100 mar-z20 pad-sx20"> <view class="disjbac width100 mar-z20 pad-sx20">
<view class="fon28 col3" style="width: 50%;">廖恒利医生</view> <view class="fon28 col3 width50">廖恒利医生</view>
<view class="fon24" style="color: #7D7D7D;width: 50%;">擅长毛发种植</view> <view class="fon24 width50 col7D">擅长毛发种植</view>
</view> </view>
</view> </view>
</view> </view>
<!-- 产品推荐 --> <!-- 产品推荐 -->
<view class="fon30 bold mar-s40 mar-x10 pad-zy50" style="color: #3875F6;">产品推荐</view> <view class="fon30 bold mar-s40 mar-x10 pad-zy50 pcol">产品推荐</view>
<shopList></shopList> <shopList :dataList="dataList" v-if="dataList.length!=0"></shopList>
</view> </view>
</view> </view>
<!-- 底部导航 --> <!-- 底部导航 -->
@ -172,89 +149,91 @@
<image @tap="backHome" class="posia backH" src="/static/public/back-home.png" mode="aspectFill"></image> <image @tap="backHome" class="posia backH" src="/static/public/back-home.png" mode="aspectFill"></image>
</view> </view>
<view class="disac fon26 colf"> <view class="disac fon26 colf">
<view @tap="showTK=true" class="disjcac lianShare" style="background-color: #3875F6; border-top-left-radius: 51rpx;border-bottom-left-radius: 51rpx;">加入购物车</view> <view @tap="chooseShop" class="disjcac lianShare addCart-btn">加入购物车</view>
<view @tap="showTK=true" class="disjcac lianShare" style="background-color: #F85050;border-top-right-radius: 51rpx;border-bottom-right-radius: 51rpx;">立即购买</view> <view @tap="chooseShop" class="disjcac lianShare mai-btn">立即购买</view>
</view> </view>
</view> </view>
<!-- 购物车 --> <!-- 购物车 -->
<navigator url="/pagesA/shopCart/shopCart" hover-class="none"> <view @tap="goShopCart" class="detail-cart-box">
<view style="position: fixed;right: 30rpx;bottom: 300rpx;"> <view class="posir">
<view class="posir" style="width: 112rpx;height: 112rpx;"> <image src="/static/public/cart.png" mode="aspectFill"></image>
<image src="/static/public/cart.png" mode="aspectFill" style="width: 112rpx;height: 112rpx;"></image> <view class="posia"><view>99</view></view>
<view class="posia" style="background: #F85050;width: 28rpx;height: 28rpx;border-radius: 100%;color: #FFFFFF;font-size: 24rpx;text-align: center;line-height: 28rpx;top: 20rpx;right: 20rpx;"><view style="transform: scale(.8);">99</view></view>
</view> </view>
</view> </view>
</navigator>
<!-- 客服 --> <!-- 客服 -->
<view style="position: fixed;right: 16rpx;bottom: 140rpx;"> <view style="position: fixed;right: 16rpx;bottom: 140rpx;">
<view class="posir" style="width: 142rpx;height: 142rpx;"> <view class="posir" style="width: 142rpx;height: 142rpx;">
<image src="/static/public/kf-logo.png" mode="aspectFill" style="width: 142rpx;height: 142rpx;"></image> <image src="/static/public/kf-logo.png" mode="aspectFill" style="width: 142rpx;height: 142rpx;"></image>
<button open-type="share" class="posia syxzo"></button> <button open-type="share" class="posia-op"></button>
</view> </view>
</view> </view>
<!-- 立即购买加入购物车弹框 --> <!-- 立即购买加入购物车弹框 -->
<view v-if="showTK" class="posAll" @tap="showTK=false"> <view v-if="showTK" class="posAll" @tap="showTK=false">
<view class="bacf posixzy" @tap.stop="showTK=true" style="border-radius: 40rpx 40rpx 0rpx 0rpx;"> <view class="bacf posixzy bottom-popu" @tap.stop="showTK=true">
<view class="disjb pad-zy50"> <view class="disjb pad-zy50">
<image src="/static/public/like.png" mode="aspectFill" style="width: 214rpx;height: 214rpx;border-radius: 15rpx;bottom: 0;flex-shrink: 0;margin-top: -107rpx;margin-right: 30rpx;"></image> <image :src="zhuImg" mode="aspectFill"></image>
<view class="disjb width100"> <view class="disjbac width100">
<view> <view v-if="isNei!=3">
<view class="fon40 mar-sx10" style="color: #F85050;">3888</view> <view class="fon40 mar-sx10 colf8">{{skuDetail.price/100}}</view>
<view><span style="color: #B3B3B3;font-size: 24rpx;text-decoration: line-through;font-weight: 400;">4205</span></view> <view v-if="isNei!=10"><span class="yuan-price">{{skuDetail.original_price/100}}</span></view>
</view> </view>
<image @tap.stop="showTK=false" src="../../static/public/cha-close.png" style="width: 24px;height: 24px;margin-top: 20rpx;" mode=""></image> <view v-else><view class="fon40 mar-sx10 colf8">积分{{skuDetail.score}}</view></view>
<image @tap.stop="showTK=false" src="/static/public/cha-close.png" style="margin-right: 0rpx;" mode=""></image>
</view> </view>
</view> </view>
<!-- 标题 --> <!-- 标题 -->
<view class="fon36 col3 bold clips3 pad-zy30 mar-s20"> <view class="fon36 col3 bold clips3 pad-zy30 mar-s20 shop-title-box line-h50">
<span class="radius10 colf fon20" style="padding: 6rpx 10rpx;" :style="{background:publicColor}">秃顶种植</span> <view style="margin-top: -8rpx;margin-right: 10rpx;">
<span class="radius10 colf fon20 mar-z10" style="padding: 6rpx 10rpx;background: #F85050;">团购</span> <span class="radius15 colf fon20" :style="{background:publicColor}">{{detailObj.disease_name}}</span>
<span class="radius10 colf fon20 mar-z10" style="padding: 6rpx 10rpx;background: #F85050;">拼团活动</span> <span class="radius15 colf fon20 mar-z10" v-if="isNei==0"></span>
<span class="radius10 colf fon20 mar-z10" style="padding: 6rpx 10rpx;background: #F85050;">促销活动</span> <span class="radius15 colf fon20 mar-z10" v-if="isNei==1"></span>
<span style="line-height: 50rpx;">99皮皮节种植发际线1000单位FUE技术案例招募门美人尖/头顶加密/微针/纤维/脱发</span> <span class="radius15 colf fon20 mar-z10" v-if="isNei==2"></span>
</view>
<span>{{skuDetail.title}}</span>
</view> </view>
<view class="disjbac mar-sx40 pad-zy30 col3"> <view class="disjbac mar-sx40 pad-zy30 col3">
<view class="fon28">类型</view> <view class="fon28">类型</view>
<view class="fon26 disac"> <view class="fon26 disac">
<view @tap="chooselei(indexl)" v-for="(item,indexl) in leiList" :key="indexl" :class="leiIndex==indexl?'activelei':'molei'" :style="{background:leiIndex==indexl?publicColor:'#F2F2F2'}">{{item}}</view> <view @tap="chooselei(indexl)" v-for="(item,indexl) in allRes.sku" :key="indexl" :class="leiIndex==indexl?'activelei':'molei'" :style="{background:leiIndex==indexl?publicColor:'#F2F2F2'}">{{item.title}}</view>
</view> </view>
</view> </view>
<view class="disjbac mar-sx40 pad-zy30 fon28"> <view class="disjbac mar-sx40 pad-zy30 fon28">
<view class="col3">库存</view> <view class="col3">库存</view>
<view class="fon26 col3" style="color: #5B5B5B;">1000</view> <view class="fon26 col3" style="color: #5B5B5B;">{{skuDetail.stock}}</view>
</view> </view>
<view class="disjbac mar-sx40 pad-zy30 fon28"> <view class="disjbac mar-sx40 pad-zy30 fon28">
<view class="col3">购买数量</view> <view class="col3">购买数量</view>
<view class="fon26 col3 disac bold"> <view class="fon26 col3 disac bold">
<image src="../../static/public/del.png" mode="" style="width: 65rpx;height: 30px;"></image> <image @tap="buyNum!=1?buyNum--:''" src="/static/public/del.png" class="del-btn" mode=""></image>
<input type="text" value="1" style="width: 100rpx;height: 28px;text-align: center;border-top: 2rpx solid #3875F6;border-bottom: 2rpx solid #3875F6;"/> <input type="text" v-model="buyNum" class="num-input"/>
<image src="../../static/public/add.png" mode="" style="width: 65rpx;height: 30px;"></image> <image @tap="buyNum++" src="/static/public/add.png" class="add-btn" mode=""></image>
</view> </view>
</view> </view>
<!-- 加入购物车立即购买 --> <!-- 加入购物车立即购买 -->
<view class="disjbac pad-zy30 colf fon28 mar-x20"> <view v-if="isNei!=1" class="disjbac pad-zy30 colf fon28 mar-x20">
<view style="width: 294rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 10rpx; background: #3875F6;">加入购物车</view> <view @tap="addCart" class="ev-btn pbackc">加入购物车</view>
<view style="width: 294rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 10rpx; background: #F85050;">立即购买</view> <view v-if="isNei!=3" @tap.stop="goGetReadyDan" class="ev-btn bcf8"></view>
<view v-else @tap.stop="goGetReadyDan" class="ev-btn bcf8">立即兑换</view>
</view> </view>
<!-- 单独购买立即拼团 --> <!-- 单独购买立即拼团 -->
<view class="disjbac pad-zy30 colf fon28 mar-x20"> <view v-else class="disjbac pad-zy30 colf fon28 mar-x20">
<view style="width: 294rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 10rpx; background: #C8C8C8;">单独购买</view> <view class="ev-btn" style="background: #C8C8C8;">单独购买</view>
<view style="width: 294rpx;height: 70rpx;line-height: 70rpx;text-align: center;border-radius: 10rpx; background: #F85050;">立即拼团</view> <view class="ev-btn bcf8">立即拼团</view>
</view> </view>
</view> </view>
</view> </view>
<!-- 去拼单弹框 --> <!-- 去拼单弹框 -->
<view v-if="showPD" @tap.stop="showPD=false" style="position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 6;background: rgba(0,0,0,.54);display: flex;justify-content: center;align-items: center;"> <view v-if="showPD" class="pd-tk-box" @tap.stop="showPD=false">
<view class="bacf radius20 width100 posir" @tap.stop="showPD=true" style="font-weight: 500;text-align: center;margin: 0 85rpx;height: 458rpx;"> <view class="bacf radius20 width100 posir" @tap.stop="showPD=true">
<view class="fon28 col3" style="margin: 34rpx 0 27rpx 0;">参与廖恒利的拼单</view> <view class="fon28 col3">参与{{pinInfo.name}}的拼单</view>
<view class="fon24 col3" style="margin-bottom: 63rpx;">仅剩1个名额19:05:28后结束</view> <view class="fon24 col3">仅剩1个名额{{pinInfo.time_text.slice(3)}}后结束</view>
<view class="disjcac" style="margin-bottom: 77rpx;"> <view class="disjcac">
<image src="/static/public/like.png" mode="" style="width: 100rpx;height: 100rpx;border-radius: 100%;"></image> <image :src="pinInfo.imgSrc" mode="aspectFill"></image>
<image src="/static/public/pin-jie.png" mode="" style="width: 42rpx;height: 42rpx;margin: 0 47rpx;"></image> <image src="/static/public/pin-jie.png" mode=""></image>
<image src="/static/public/weiz.png" mode="" style="width: 100rpx;height: 100rpx;border-radius: 100%;"></image> <image src="/static/public/weiz.png" mode=""></image>
</view> </view>
<view style="width: 464rpx;height: 60rpx;line-height: 60rpx;color: #FFFFFF;background: #F85050;border-radius: 10rpx;margin: 0 auto;font-size: 28rpx;">参与拼单</view> <view>参与拼单</view>
<image @tap.stop="showPD=false" src="../../static/public/pin-close.png" class="posia" style="width: 77rpx;height: 77rpx;right: -30rpx;top: -30rpx;" mode=""></image> <image @tap.stop="showPD=false" src="/static/public/pin-close.png" class="posia" mode=""></image>
</view> </view>
</view> </view>
<!-- 返回顶部 --> <!-- 返回顶部 -->
@ -281,7 +260,7 @@
<script> <script>
import listDoctor from '@/components/list-doctor.vue'; import listDoctor from '@/components/list-doctor.vue';
import swiperPu from '@/components/swiper-pu.vue'; import swiperPu from '@/components/swiper-pu.vue';
import {collectionEV,cancleCollectionEV} from '@/jsFile/publicAPI.js'; import {cancleCollectionShopEV,collectionShopEV} from '@/jsFile/publicAPI.js';
import empower from '@/components/empower.vue'; import empower from '@/components/empower.vue';
import shopList from '@/components/shop-list.vue'; import shopList from '@/components/shop-list.vue';
export default { export default {
@ -294,95 +273,58 @@
data() { data() {
return { return {
statusBarHeight:uni.getSystemInfoSync().statusBarHeight, statusBarHeight:uni.getSystemInfoSync().statusBarHeight,
isLoading:true, isLoading:false,
vision:false, vision:false,
statusHNH:uni.getStorageSync('statusHNH'), statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor') || '#3875F6',// publicColor:uni.getStorageSync('publicColor') || '#3875F6',//
cateCurrent:0, cateCurrent:0,
haveImg:true, haveImg:true,
cateList:[ cateList:[{
{
id:1, id:1,
title:'商品详情', title:'商品详情',
pid:11, pid:11,
sort:4 sort:4
},{
id:2,
title:'问题',
pid:22,
sort:4
},{
id:3,
title:'案例日记',
pid:33,
sort:4
},{
id:4,
title:'效果模拟',
pid:33,
sort:4
},{
id:5,
title:'科普视频',
pid:33,
sort:4
}], }],
bannerList:[ bannerList:[],//
{imgSrc:'/static/public/banner.png',url:'',isVideo:true,poster:''}, //
{imgSrc:'/static/public/banner.png',url:'',isVideo:false,poster:''} xgList:[],
],// //
xgList:[// dataList:[],
],
dataList:[//
],
showTop:false, showTop:false,
isDetailConllection:false,// isDetailConllection:false,//
isNum:0, isNum:0,
listArrone:[],// listArrone:[],//
listArrtwo:[// //
], listArrtwo:[],
listArrthree:[// //
], listArrthree:[],
listArrfour:[// //
], listArrfour:[],
detailObj:{},// detailObj:{},//
detailInfo:'',// detailInfo:'',//
category_id:'',//ID category_id:'',//ID
active:'',// active:'',//
// jieDuan:false,
share_id:0, share_id:0,
invite_code:'', invite_code:'',
isShowP:false, isShowP:false,
showTK:false, showTK:false,
leiIndex:0, leiIndex:0,
leiList:['体验装','正式装'], showPD:false,
showPD:false orderId:'',//ID
isNei:'',//
pingArr:[],//
len:0,//
pinInfo:{},//
allRes:{},//
zhuImg:'',//cover
skuDetail:{},//sku
buyNum:1,//
isScore:''
} }
}, },
onPageScroll(e) { onPageScroll(e) {
e.scrollTop > 360 ? this.showTop = true : this.showTop = false e.scrollTop > 360 ? this.showTop = true : this.showTop = false
}, },
onReachBottom() {//
// for (let i = 0; i < 4; i++) {
// if(this.cateCurrent==0) {
// let obj = {status:false,main_img:'',title:'',content:'',head_img:'/static/public/like.png',name:'',isCate:0}
// this.listArrone.push(obj)
// }
// if(this.cateCurrent==1) {
// let obj = {status:false,main_img:'',title:'',content:'',head_img:'/static/public/like.png',name:'',isCate:1}
// this.listArrtwo.push(obj)
// }
// if(this.cateCurrent==2) {
// let obj = {status:false,main_img:'',title:'',content:'',head_img:'/static/public/like.png',name:'',isCate:2}
// this.listArrthree.push(obj)
// }
// if(this.cateCurrent==3) {
// let obj = {status:false,main_img:'',title:'',content:'',head_img:'/static/public/like.png',name:'',isCate:3}
// this.listArrfour.push(obj)
// }
// }
},
onShareTimeline() {},
onShareAppMessage(res) { onShareAppMessage(res) {
var ya = this; var ya = this;
this.$requst.post('user/record',{type:'content',action:'share',id:this.detailObj.id}).then(res=>{console.log('分享成功:',res);},error=>{}) this.$requst.post('user/record',{type:'content',action:'share',id:this.detailObj.id}).then(res=>{console.log('分享成功:',res);},error=>{})
@ -392,9 +334,10 @@
t:new Date().getTime()// t:new Date().getTime()//
} }
this.$toolAll.tools.maiDian(maiOjb) this.$toolAll.tools.maiDian(maiOjb)
if(ya.detailObj.share_img==null) ya.detailObj.share_img = ya.detailObj.cover;
var shareObj = { var shareObj = {
     title: `${ya.detailObj.title}`, // (slogan)      title: `${ya.detailObj.name}`, // (slogan)
     path: `/pagesB/problemDetail/problemDetail?id=${this.detailObj.id}&category_id=${this.category_id}&share_id=${uni.getStorageSync('userId')}&invite_code=${uni.getStorageSync('invite_code')}`, // /      path: `/pagesB/shopDetail/shopDetail?id=${this.detailObj.id}&category_id=${this.category_id}&share_id=${uni.getStorageSync('userId')}&invite_code=${uni.getStorageSync('invite_code')}`, // /
     imageUrl: ya.$http + ya.detailObj.share_img//PNGJPG imageUrl 使 5:4      imageUrl: ya.$http + ya.detailObj.share_img//PNGJPG imageUrl 使 5:4
  };   };
  return shareObj;   return shareObj;
@ -439,14 +382,53 @@
c:this.conid*1, c:this.conid*1,
t:new Date().getTime()// t:new Date().getTime()//
} }
this.$toolAll.tools.maiDian(maiOjb) this.$toolAll.tools.maiDian(maiOjb);
this.orderId = options.id;
if(options.isText=='团购') this.isNei = 0;
if(options.isText=='拼团') this.isNei = 1;
if(options.isText=='限时') this.isNei = 2;
if(options.isText=='积分') this.isNei = 3;
if(options.isText=='') this.isNei = 10;
this.checkDetail(this.orderId);
}, },
methods: { methods: {
comeTuan(){// goGetReadyDan(){//
this.showTK = false;
// {id:1,imgSrc:'/static/tabbar/mya.png',title:'99线',price:3888,num:1,isActive:false},
let nprice = '';
if(this.isNei==3) {
nprice = this.detailObj.score;
} else nprice = this.skuDetail.price/100;
let params = {
id:this.skuDetail.id,
imgSrc:this.$http + this.detailObj.cover,
coding:this.skuDetail.coding,
price:nprice,
num:this.buyNum,
title:this.detailObj.name,
is_score:this.detailObj.is_score
}
let newList = [params];
uni.setStorageSync('orderList',newList);
uni.navigateTo({
url:`/pagesA/getReadyDan/getReadyDan?isNei=${this.isNei}`
})
},
addCart(){//
this.$requst.post('order/shopping-cart-add',{sku_id:this.skuDetail.id,num:this.buyNum}).then(res=>{
if(res.code==0) {
this.showTK = false;
this.$toolAll.tools.showToast('添加购物车成功(*^▽^*)');
}
})
},
comeTuan(pinId,index,index2){//
this.showPD = true; this.showPD = true;
this.pinInfo = this.pingArr[index][index2];
}, },
chooselei(index){// chooselei(index){//
this.leiIndex = index this.leiIndex = index
this.skuDetail = this.allRes.sku[index];
}, },
moveHandle(){// moveHandle(){//
return false return false
@ -465,7 +447,6 @@
} }
}, },
chooseLike(e){// chooseLike(e){//
// console.log(this.dataList[e].is_collected);
let cateId = '' let cateId = ''
let newArr = [] let newArr = []
if(this.cateCurrent==0) { if(this.cateCurrent==0) {
@ -487,7 +468,7 @@
if(newArr[e].is_collected==0){ if(newArr[e].is_collected==0){
newArr[e].is_collected = 1 newArr[e].is_collected = 1
// //
collectionEV({action:'collect',archive_id:cateId}) collectionShopEV({action:'collect',id:cateId})
} }
}, },
comfirmev(e){// comfirmev(e){//
@ -510,20 +491,20 @@
} }
this.$toolAll.tools.showToast('正在取消...','loading') this.$toolAll.tools.showToast('正在取消...','loading')
// //
cancleCollectionEV({action:'collect',archive_id:cateId}) cancleCollectionShopEV({action:'collect',id:cateId})
}, },
chooseLikex(e){// chooseLikex(e){//
if(this.xgList[e].is_collected==0){ if(this.xgList[e].is_collected==0){
this.xgList[e].is_collected = 1 this.xgList[e].is_collected = 1
// //
collectionEV({action:'collect',archive_id:this.xgList[e].id}) collectionShopEV({action:'collect',id:this.xgList[e].id})
} }
}, },
comfirmevx(e){// comfirmevx(e){//
this.xgList[e].is_collected = 0 this.xgList[e].is_collected = 0
this.$toolAll.tools.showToast('正在取消...','loading') this.$toolAll.tools.showToast('正在取消...','loading')
// //
cancleCollectionEV({action:'collect',archive_id:this.xgList[e].id}) cancleCollectionShopEV({action:'collect',id:this.xgList[e].id})
}, },
buttonH(e){// buttonH(e){//
this.haveImg = e this.haveImg = e
@ -545,114 +526,145 @@
this.vision = true this.vision = true
} }
}, },
// checkDetail(newId){ checkDetail(newId){
// this.$requst.post('archives/detail',{id:newId,share_id:this.share_id}).then(res=>{ this.$requst.post('spu/detail',{id:newId}).then(res=>{
// // console.log('',res); // console.log('',res);
// if(res.code==0){ if(res.code==0){
// this.isLoading=true this.allRes = res.data;
// // this.zhuImg = this.$http + res.data.detail.cover;
// if(res.data.category.length!=0){ // sku
// res.data.category.forEach((item,index)=>{ if(res.data.sku.length!=0){
// let cateObj = { res.data.sku.forEach(item=>{
// id:item.id,//ID if(item.is_default==1) {
// title:item.title,// this.skuDetail = item;
// active:item.active,// }
// model_id:item.model_id,//ID })
// model_name:item.model_name,// }
// sort:item.sort this.isLoading = true;
// } //
// this.cateList.push(cateObj) if(res.data.category.length!=0){
// // res.data.category.forEach((item,index)=>{
// if(item.active==1) this.active = this.cateCurrent = index let cateObj = {
// // id:item.id,//ID
// if(this.category_id==item.id) this.isNum = index title:item.title,//
// }) active:item.active,//
// } model_id:item.model_id,//ID
// if(this.invite_code!='' && this.invite_code!=undefined){ model_name:item.model_name,//
// const query = wx.createSelectorQuery() sort:item.sort
// query.select('.statusHNH').boundingClientRect((rect) => { }
// // console.log('+',rect); this.cateList.push(cateObj)
// this.statusHNH = rect.height //
// // console.log(this.statusHNH ); if(item.active==1) this.active = this.cateCurrent = index
// }).exec() //
// } if(this.category_id==item.id) this.isNum = index
// // })
// this.detailObj = res.data.detail }
// let maiOjb = { if(this.invite_code!='' && this.invite_code!=undefined){
// e:1,//访 const query = wx.createSelectorQuery()
// c:this.detailObj.id*1, query.select('.statusHNH').boundingClientRect((rect) => {
// t:new Date().getTime()// // console.log('+',rect);
// } this.statusHNH = rect.height
// this.$toolAll.tools.maiDian(maiOjb) // console.log(this.statusHNH );
// // }).exec()
// // }
// let arrImg = this.detailObj.images.split(',') //
// arrImg.forEach(item=>{ this.detailObj = res.data.detail
// let newImgObj = { let maiOjb = {
// imgSrc:this.$http + item, e:1,//访
// url:'', c:this.detailObj.id*1,
// isVideo:false, t:new Date().getTime()//
// poster:'', }
// } this.$toolAll.tools.maiDian(maiOjb)
// // //
// this.bannerList.push(newImgObj) //
// }) let arrImg = this.detailObj.images.split(',')
// // arrImg.forEach(item=>{
// if(this.detailObj.video!=''){ let newImgObj = {
// this.bannerList[0] = { imgSrc:this.$http + item,
// imgSrc:this.$http + arrImg[0], url:'',
// url:this.$http + this.detailObj.video, isVideo:false,
// isVideo:true, poster:'',
// poster:'', }
// } //
// } this.bannerList.push(newImgObj)
// // })
// if(this.detailObj.is_collected==0) this.isDetailConllection = false //
// if(this.detailObj.is_collected==1) this.isDetailConllection = true if(this.detailObj.video!=''){
// // this.bannerList[0] = {
// this.detailInfo = this.$toolAll.tools.escape2Html(this.detailObj.content) imgSrc:this.$http + arrImg[0],
// // xgList url:this.$http + this.detailObj.video,
// if(res.data.diary.length!=0){ isVideo:true,
// res.data.diary.forEach(item=>{ poster:'',
// let tObj = { }
// category_id:item.category_id,//ID }
// id:item.id, //
// is_collected:item.is_collected,// if(this.detailObj.is_collected==0) this.isDetailConllection = false
// collects:item.collects,// if(this.detailObj.is_collected==1) this.isDetailConllection = true
// views:item.views,// //
// main_img:this.$http + item.cover,// this.detailInfo = this.$toolAll.tools.escape2Html(this.detailObj.content)
// video:this.$http + item.video,// //
// title:item.title,// if(this.isNei==1 && this.detailObj.activity_going.length!=0) {
// content:item.subtitle,// this.detailObj.activity_going.forEach(item=>{
// head_img:'/static/public/logo.png',// let pObj = {
// name:'',// id:item.id,
// isVideo:item.video.includes(".mp4")// imgSrc:this.$http + item.cover,
// } name:item.name,
// if(item.cover!='' && item.video==''){ num:item.num,//
// this.xgList.push(tObj) time:item.time,//
// } time_text:item.time_text//
// }) }
// } this.pingArr.push(pObj);
// // })
// if(res.data.doctor.length!=0){ this.len = this.pingArr.length;
// res.data.doctor.forEach(item=>{ let n = 2; //2
// let doObj = { let lineNum = this.len % 2 === 0 ? this.len / 2 : Math.floor( (this.len / 2) + 2 );
// id:item.id, let newPArr = [];
// imgSrc: item.headimg!=null ? item.headimg : '', for (let i = 0; i < lineNum; i++) {
// name:item.name, let temp = this.pingArr.slice(i*n, i*n+n);
// cyear:parseFloat(item.work_time), newPArr.push(JSON.parse(JSON.stringify(temp)));
// bmen:item.dept_name, }
// zcheng:'', this.pingArr = newPArr;
// goodAt:item.diseases, //
// show_detail:item.show_detail if(res.data.product.length!=0){
// } res.data.product.forEach(item=>{
// this.dataList.push(doObj) let tuan = false,ping = false,xian = false,integral = false;
// }) if(item.activity_type=='group_make') ping = true;
// } if(item.activity_type=='group_buy') tuan = true;
// this.choosecateEv(this.cateCurrent) if(item.activity_type=='limit_time') xian = true;
// } let obj = {
// },error=>{}) id:item.id,
// }, imgSrc: this.$http + item.cover,
title: item.name,
zhePrice:item.price/100,
yuanPrice:item.original_price/100,
integral:'',
isTuan:tuan,
isPing:ping,
isXian:xian,
isIntegral:integral,
grade:'',
disease_name:item.disease_name,//
disease_id:item.disease_id,//ID
activity_end_at:'',//
activity_group_cover:[],//
activity_group_num:''//
}
this.dataList.push(obj)
})
}
}
}
},error=>{})
},
chooseShop(){//
this.showTK = true;
},
goShopCart(){//
if(this.isNei==3) this.isScore = 'score';
uni.navigateTo({
url:`/pagesA/shopCart/shopCart?isScore=${this.isScore}`
})
},
choosecateEv(e){ choosecateEv(e){
this.cateCurrent = e this.cateCurrent = e
this.$requst.post('archives/category',{category_id:this.cateList[e].id,keyword:''}).then(res=>{ this.$requst.post('archives/category',{category_id:this.cateList[e].id,keyword:''}).then(res=>{
@ -694,16 +706,11 @@
}, },
tapConllection(){// tapConllection(){//
let isLikeCon = 'collect' let isLikeCon = 'collect'
// if(!this.jieDuan){
// let isAuth = this.$toolAll.tools.returnAuth()
// if(!isAuth){
// //
if(!this.isDetailConllection) collectionEV({action:isLikeCon,archive_id:this.detailObj.id}) if(!this.isDetailConllection) collectionShopEV({action:isLikeCon,id:this.detailObj.id})
// //
else cancleCollectionEV({action:isLikeCon,archive_id:this.detailObj.id}) else cancleCollectionShopEV({action:isLikeCon,id:this.detailObj.id})
this.isDetailConllection = !this.isDetailConllection this.isDetailConllection = !this.isDetailConllection
// } else this.jieDuan = true
// }
}, },
backTop(){// backTop(){//
uni.pageScrollTo({ uni.pageScrollTo({

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

BIN
static/public/address60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/public/dai-fa60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 B

BIN
static/public/dai-fu60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/public/dang-quan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
static/public/day60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 B

BIN
static/public/kong60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/public/member.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

BIN
static/public/phone-02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
static/public/quan-over.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/public/quan-use.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/public/quan60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/public/ren60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 B

BIN
static/public/ru-hui50.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
static/public/scor60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/public/sign-01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
static/public/sign-02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
static/public/sign-03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/public/signIn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

BIN
static/public/staff-qro.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
static/public/te-quan50.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
static/public/wan-60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More