From 0ab8c82c603f14cf69396b54b0471112b9de947b Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期三, 11 九月 2024 10:32:14 +0800 Subject: [PATCH] update 会员优惠券等 --- sub_pages/customer/self/member-center.vue | 123 ++++++++++++++++++-- sub_pages/customer/trade/list.vue | 2 pages/home/home.vue | 69 ++++++---- static/images/customer/coupon/member/icon-member-info-1.png | 0 sub_pages/customer/coupon/coupon-self.vue | 18 ++ common/global.scss | 13 + sub_pages/customer/self/history.vue | 2 sub_pages/customer/coupon/good-all.vue | 6 pages/home/components/home-top-flow.vue | 2 sub_pages/customer/trade/detail.vue | 6 static/images/customer/coupon/member/icon-member-info-2.png | 0 sub_pages/customer/coupon/coupon.scss | 27 +++ sub_pages/supplier/flower-manage/flower-add.vue | 23 ++- sub_pages/customer/self/collect.vue | 2 sub_pages/customer/shop/shop.vue | 2 sub_pages/customer/shopping/confirm.vue | 11 + components/banner3d/banner3d.vue | 2 sub_pages/customer/coupon/good-self.vue | 6 18 files changed, 233 insertions(+), 81 deletions(-) diff --git a/common/global.scss b/common/global.scss index 8dd0225..e4868e2 100644 --- a/common/global.scss +++ b/common/global.scss @@ -56,19 +56,26 @@ } .component-price-old{ text-decoration: line-through; + color: #9a9da2 !important; + font-size: 22rpx !important; } .component-price-new{ position: relative; .tip{ font-size: 22rpx; display: inline-block; - margin-left: 10rpx; + margin-right: 10rpx; } - + .p{ + font-size: 40rpx; + font-weight: 600; + } .component-price-old{ position: absolute; - left: 0rpx; + // left: 0rpx; top: 40rpx; + right: 0rpx; + color: #9a9da2 !important; } } .component-line-vert{ diff --git a/components/banner3d/banner3d.vue b/components/banner3d/banner3d.vue index 7b4773a..a4004cf 100644 --- a/components/banner3d/banner3d.vue +++ b/components/banner3d/banner3d.vue @@ -39,7 +39,7 @@ <view class="desc"> <span v-if="bannerList[i].point.end">{{bannerList[i].point.current || 0}}/{{bannerList[i].point.end}},升级还需{{bannerList[i].point.end-bannerList[i].point.current}}成长值</span> - <span v-else>成长值:{{bannerList[i].point.current || 0}}</span> + <span v-else>当前成长值:{{bannerList[i].point.current || 0}}</span> </view> </view> </view> diff --git a/pages/home/components/home-top-flow.vue b/pages/home/components/home-top-flow.vue index dcbc634..a94f900 100644 --- a/pages/home/components/home-top-flow.vue +++ b/pages/home/components/home-top-flow.vue @@ -16,7 +16,7 @@ <!-- #ifdef PUB_CUSTOMER_DEV --> <view class="price component-price-new"> - ¥{{item.priceMember||item.price}}/扎<span class="tip">会员价</span> + <span class="tip">会员价</span>¥<span class="p">{{item.priceMember||item.price}}</span>/扎 <view class="component-price-old"> ¥{{item.price}}/扎 </view> diff --git a/pages/home/home.vue b/pages/home/home.vue index 9cd7764..ec93edd 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -31,28 +31,28 @@ </view> <!-- banner --> - <!-- <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner" + <!-- <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner" :mode="'dot'" :dots-styles="dotsStyles[0]" field="content"> --> - <swiper class="swiper-box" @change="changeBanner" :interval="10000" :circular="true" :current="0" - v-if="banners&&banners.length>0" :autoplay="true"> - <swiper-item v-for="(item, index) in banners" :key="index"> - <view class="swiper-item" :class="'swiper-item' + index"> - <!-- @click="previewImg(item.url||item.image)" --> - <image class="home-banner-image" mode="scaleToFill" @click="clickBanner(item)" - :src="item.url||item.image"> - </image> - </view> - </swiper-item> - </swiper> - <swiper class="swiper-box" @change="changeBanner" :current="0" v-if="!banners||banners.length==0"> - <swiper-item v-for="(item, index) in 1" :key="index"> - <view class="swiper-item" :class="'swiper-item' + index"> - <image class="home-banner-image" mode="scaleToFill" - src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png"> - </image> - </view> - </swiper-item> - </swiper> + <swiper class="swiper-box" @change="changeBanner" :interval="10000" :circular="true" :current="0" + v-if="banners&&banners.length>0" :autoplay="true"> + <swiper-item v-for="(item, index) in banners" :key="index"> + <view class="swiper-item" :class="'swiper-item' + index"> + <!-- @click="previewImg(item.url||item.image)" --> + <image class="home-banner-image" mode="scaleToFill" @click="clickBanner(item)" + :src="item.url||item.image"> + </image> + </view> + </swiper-item> + </swiper> + <swiper class="swiper-box" @change="changeBanner" :current="0" v-if="!banners||banners.length==0"> + <swiper-item v-for="(item, index) in 1" :key="index"> + <view class="swiper-item" :class="'swiper-item' + index"> + <image class="home-banner-image" mode="scaleToFill" + src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png"> + </image> + </view> + </swiper-item> + </swiper> <!-- </uni-swiper-dot> --> <!-- tip --> <view class="m-t-12" @click="getNoticeMore"> @@ -74,6 +74,8 @@ <view style="min-height:140rpx"> </view> <common-footer flg="0"></common-footer> + + <uni-popup ref="coupon_home" type="bottom" border-radius="10px 10px 0 0">底部弹出 Popup 自定义圆角</uni-popup> </view> </template> @@ -188,12 +190,12 @@ path: url, } }, - onReachBottom() { - console.log('onReachBottom') - if(this.$refs&&this.$refs.home_top_flow){ - // console.log(this.$refs.home_top_flow) - this.$refs.home_top_flow.fun_GetMore() - } + onReachBottom() { + console.log('onReachBottom') + if (this.$refs && this.$refs.home_top_flow) { + // console.log(this.$refs.home_top_flow) + this.$refs.home_top_flow.fun_GetMore() + } }, onLoad(options) { // if(options.partnerUserId){ @@ -335,7 +337,18 @@ } }) - + // let tmp = this + // //首页优惠券 + // this.$http.request('get', '/api/v2/coupon/app' + `/home/list`).then(res => { + // if (res.code == 0) { + // var list = res.data || [] + // var dto = list.length >= 1 ? list[0] : undefined + // if (dto) { + // // 显示弹窗图片 + // tmp.$refs.coupon_home.open() + // } + // } + // }) }, methods: { clickBanner(item) { diff --git a/static/images/customer/coupon/member/icon-member-info-1.png b/static/images/customer/coupon/member/icon-member-info-1.png new file mode 100644 index 0000000..c027563 --- /dev/null +++ b/static/images/customer/coupon/member/icon-member-info-1.png Binary files differ diff --git a/static/images/customer/coupon/member/icon-member-info-2.png b/static/images/customer/coupon/member/icon-member-info-2.png new file mode 100644 index 0000000..45971e8 --- /dev/null +++ b/static/images/customer/coupon/member/icon-member-info-2.png Binary files differ diff --git a/sub_pages/customer/coupon/coupon-self.vue b/sub_pages/customer/coupon/coupon-self.vue index 6039b35..23a6e2b 100644 --- a/sub_pages/customer/coupon/coupon-self.vue +++ b/sub_pages/customer/coupon/coupon-self.vue @@ -20,9 +20,12 @@ <view class="info flex1"> <view class="title"> {{item.couponName||'-'}} + <radio :checked="cache_coupon.id===item.id" v-if="source==='shopping'" class="select-coupon"></radio> + </view> <view class="time"> - {{item.usageEndDate&&('有效期至:'+item.usageEndDate) || '长久有效'}} + {{item.effectiveStart&&(item.effectiveStart+' 生效,') || ''}} + {{item.effectiveEnd&&('有效期至 '+item.effectiveEnd) || '长久有效'}} </view> </view> </view> @@ -38,6 +41,9 @@ </template> <script> + import { + mapState + } from 'vuex' export default { data() { return { @@ -119,6 +125,16 @@ uni.stopPullDownRefresh() }, + computed: { + ...mapState({ + cache_coupon: state => { + return state.cache.coupon || {} + }, + cache_goods: state => { + return state.cache.goods || [] + }, + }), + } } </script> diff --git a/sub_pages/customer/coupon/coupon.scss b/sub_pages/customer/coupon/coupon.scss index 09cf692..2c5896b 100644 --- a/sub_pages/customer/coupon/coupon.scss +++ b/sub_pages/customer/coupon/coupon.scss @@ -45,7 +45,7 @@ padding: 16rpx 16rpx 16rpx 0rpx; height: 220rpx; position: relative; - + .info-price { width: 180rpx; padding-top: 40rpx; @@ -70,7 +70,7 @@ } .info { - padding-top: 40rpx; + padding-top: 30rpx; .title { font-weight: 600; @@ -78,7 +78,12 @@ color: #333333; line-height: 50rpx; text-align: left; - + position: relative; + .select-coupon{ + position: absolute; + right: 10rpx; + top: -6rpx; + } } .time { @@ -87,7 +92,7 @@ color: #666666; line-height: 40rpx; text-align: left; - margin-top: 40rpx; + margin-top: 20rpx; } } @@ -102,9 +107,18 @@ margin-top: 20rpx; .container { + .info { + + padding-top: 20rpx; + position: relative; + .title{ + + } .time { margin-top: 0rpx; + font-size:24rpx; + min-height: 44rpx; } .button { @@ -118,7 +132,10 @@ color: rgba(68, 119, 90, 1); line-height: 46rpx; text-align: center; - margin-top: 10rpx; + // margin-top: 10rpx; + position: absolute; + right: 10rpx; + bottom: 30rpx; } } } diff --git a/sub_pages/customer/coupon/good-all.vue b/sub_pages/customer/coupon/good-all.vue index 7647cb4..65dbaee 100644 --- a/sub_pages/customer/coupon/good-all.vue +++ b/sub_pages/customer/coupon/good-all.vue @@ -78,13 +78,13 @@ {{item.couponName||'-'}} </view> <view class="time"> - 领取后{{item.usageTimeNum||''}}{{item.usageTimeTypeName||''}}有效 + {{item.getStartDate||'领取后'}}{{item.getEndDate&&(' 至 ' + item.getEndDate )||''}}有效 </view> <view class="flex"> <view class="t-red"> {{item.point||'0'}}积分 </view> - <view class="button m-l-a m-r-0" @click="exchange('coupon',item)"> + <view class="button m-l-a m-r-15" @click="exchange('coupon',item)"> 兑换 </view> </view> @@ -207,6 +207,8 @@ </script> <style lang="scss" scoped> + @import './coupon.scss'; + .good-list-container { .good-container { .good-item { diff --git a/sub_pages/customer/coupon/good-self.vue b/sub_pages/customer/coupon/good-self.vue index a2abe80..161a778 100644 --- a/sub_pages/customer/coupon/good-self.vue +++ b/sub_pages/customer/coupon/good-self.vue @@ -16,6 +16,8 @@ <view class="info flex1"> <view class="title"> {{item.name||''}} + <radio :checked="isIngood(item)" @click.stop="updateSelectGood(item)" v-if="source==='shopping'" class="select-coupon"></radio> + </view> <view class="time word-e"> {{item.description||''}} @@ -23,9 +25,9 @@ <view class="button" @click="getPointGood(item)" v-if="source!=='shopping'"> 查看详情 </view> - <view class="button" @click="updateSelectGood(item)" v-if="source=='shopping'"> + <!-- <view class="button" @click="updateSelectGood(item)" v-if="source=='shopping'"> {{isIngood(item)?'移除':'添加'}} - </view> + </view> --> </view> </view> <!-- <view class="tip"> diff --git a/sub_pages/customer/self/collect.vue b/sub_pages/customer/self/collect.vue index 1c3c90d..ad4929f 100644 --- a/sub_pages/customer/self/collect.vue +++ b/sub_pages/customer/self/collect.vue @@ -248,7 +248,7 @@ <!-- #ifdef PUB_CUSTOMER_DEV --> <view class="price m-l-a m-r-0 component-price-new"> - ¥{{ dto.priceMember || dto.price || '-' }}/扎<span class="tip">会员价</span> + <span class="tip">会员价</span>¥<span class="p">{{ dto.priceMember || dto.price || '-' }}</span>/扎 <view class="component-price-old"> ¥{{dto.price}}/扎 </view> diff --git a/sub_pages/customer/self/history.vue b/sub_pages/customer/self/history.vue index cd67edd..5b9e6dd 100644 --- a/sub_pages/customer/self/history.vue +++ b/sub_pages/customer/self/history.vue @@ -236,7 +236,7 @@ <!-- #ifdef PUB_CUSTOMER_DEV --> <view class="price m-l-a m-r-0 component-price-new"> - ¥{{ dto.priceMember || dto.price || '-' }}/扎<span class="tip">会员价</span> + <span class="tip">会员价</span>¥<span class="p">{{ dto.priceMember || dto.price || '-' }}</span>/扎 <view class="component-price-old"> ¥{{dto.price}}/扎 </view> diff --git a/sub_pages/customer/self/member-center.vue b/sub_pages/customer/self/member-center.vue index 6d5edd4..38305bd 100644 --- a/sub_pages/customer/self/member-center.vue +++ b/sub_pages/customer/self/member-center.vue @@ -6,7 +6,7 @@ <banner3d ref="banner3d" v-if="init" :banner-list="bannerList" :swiper-config="swiperConfig"></banner3d> </view> <view class="p20" style="padding-top: 0rpx;"> - <view class="info bg-white p20"> + <!-- <view class="info bg-white p20"> <view class="flex"> <view>成长值规则</view> <view class="m-l-a m-r-0 text-right desc-gray" @click="goto('/pages/help/content?id=会员协议',false)"> @@ -14,33 +14,50 @@ </view> </view> - </view> - <view class="info bg-white p20 m-t-20" + </view> --> + <view class="member-infos info bg-white p20 " v-if="currentInfo.customerDTO&¤tInfo.customerDTO.userGrowthRecord &¤tInfo.customerDTO.userGrowthRecord.targetMemberInfos&¤tInfo.customerDTO.userGrowthRecord.targetMemberInfos.length>=1"> - <view class="text-center desc-gray"> - ———————— 会员权益 ———————— + <view class="text-center w-fit flex m-auto top-title "> + <view class="left-line"></view> + <view class="title">会员权益</view> + <view class="right-line"></view> </view> - <view> - <view class="m-t-12">积分达到 - {{currentInfo.customerDTO.userGrowthRecord.targetMemberInfos[0].targetStartPoint || '-'}} + <view class="desc-info flex m-t-12" style="padding: 42rpx;"> + <view class="m-t-12 flex1"> + <image class="m-auto icon img100 " mode="scaleToFill" + src="../../../static/images/customer/coupon/member/icon-member-info-1.png"></image> + <view class="desc"> + 积分达到{{currentInfo.customerDTO.userGrowthRecord.targetMemberInfos[0].targetStartPoint || '-'}} + </view> </view> - <view class="m-t-12">优惠 - {{currentInfo.customerDTO.userGrowthRecord.targetMemberInfos[0].targetDiscountAmount || '-'}}元/扎 + <view class="m-t-12 flex1"> + <image class="m-auto icon img100" mode="scaleToFill" + src="../../../static/images/customer/coupon/member/icon-member-info-2.png"></image> + + <view class="desc"> + 优惠 + {{currentInfo.customerDTO.userGrowthRecord.targetMemberInfos[0].targetDiscountAmount || '-'}}元/扎 + </view> </view> </view> - </view> - <view class="info bg-white p20 m-t-20"> - <view class="text-center desc-gray"> - ————— 成长值获取规则 ————— + <!-- </view> + <view class="info bg-white p20 m-t-20 member-infos"> --> + <view class="text-center w-fit flex m-auto top-title m-t-20"> + <view class="left-line"></view> + <view class="title">成长值获取规则</view> + <view class="right-line"></view> </view> - <view class="m-t-12"> + <view class="m-t-12 desc-info"> 每消费1元,即可获得1成长值。 成长值将在订单交易完成后,根据实际交易金额进行赠送。 消费越多,获得的成长值越多,享受更高等级的会员权益。 快来参与消费,累积成长值,解锁更多专属福利吧! </view> + </view> + <view class="protocol" @click="goto('/pages/help/content?id=会员协议',false)">会员协议 <uni-icons type="right" + size="16" color="#AD790F"></uni-icons> </view> </view> </view> @@ -175,6 +192,82 @@ .member-center { position: relative; + .member-infos { + // width: 670rpx; + padding: 32rpx 58rpx; + background: linear-gradient(213deg, #F7ECC6 0%, #EEE5CE 100%); + border-radius: 16rpx; + + .desc-info { + background: #FFFFFF; + border-radius: 16rpx; + opacity: 0.55; + font-size: 24rpx; + color: #AD790F; + line-height: 34rpx; + text-align: left; + font-style: normal; + padding: 24rpx; + + .icon { + width: 78rpx; + height: 78rpx; + margin: auto; + display: block; + margin-bottom: 10rpx; + + } + .desc{ + text-align: center; + + } + } + + .top-title { + .left-line { + min-width: 54rpx; + height: 6rpx; + background: linear-gradient(270deg, rgba(226, 157, 17, 0) 0%, #E39D10 100%); + border-radius: 4rpx; + display: inline-block; + margin-right: 20rpx; + vertical-align: middle; + margin-top: 23rpx; + } + + .right-line { + min-width: 54rpx; + height: 6rpx; + background: linear-gradient(270deg, rgba(226, 157, 17, 0) 0%, #E39D10 100%); + border-radius: 4rpx; + margin-left: 20rpx; + display: inline-block; + vertical-align: middle; + margin-top: 23rpx; + + + } + + .title { + font-weight: 600; + font-size: 36rpx; + color: #AD790F; + line-height: 50rpx; + text-align: left; + font-style: normal; + } + } + } + + .protocol { + font-weight: 400; + font-size: 24rpx; + color: #AD790F; + line-height: 34rpx; + text-align: center; + margin-top: 32rpx; + } + .banner { position: relative; z-index: 10; diff --git a/sub_pages/customer/shop/shop.vue b/sub_pages/customer/shop/shop.vue index 407070c..dc097ed 100644 --- a/sub_pages/customer/shop/shop.vue +++ b/sub_pages/customer/shop/shop.vue @@ -107,7 +107,7 @@ {{item.name}} <!-- #ifdef PUB_CUSTOMER_DEV --> <view class="price component-price-new"> - ¥{{item.priceMember||item.price}}/扎<span class="tip">会员价</span> + <span class="tip">会员价</span>¥<span class="p">{{item.priceMember||item.price}}</span>/扎 <view class="component-price-old"> ¥{{item.price}}/扎 </view> diff --git a/sub_pages/customer/shopping/confirm.vue b/sub_pages/customer/shopping/confirm.vue index dfb1796..81b83ad 100644 --- a/sub_pages/customer/shopping/confirm.vue +++ b/sub_pages/customer/shopping/confirm.vue @@ -242,10 +242,7 @@ }) tmp.$message.hideLoading() if (code === 0) { - //清空优惠券 - this.$store.dispatch('cache_coupon_select', {}) - this.$store.dispatch('cache_goods_select', []) - + //提交信息 console.log('pay,', data) // /api/pub/init/callback?orderId= @@ -275,6 +272,10 @@ // tmp.$message.showToast('支付成功') //返回上一页 await tmp.$store.dispatch('sign_add', 'shopping') + //清空优惠券 + this.$store.dispatch('cache_coupon_select', {}) + this.$store.dispatch('cache_goods_select', []) + tmp.$message.showToast('支付成功') setTimeout(() => { uni.navigateBack() @@ -332,7 +333,7 @@ style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ item.name || '-' }} </view> <view class="price"> - {{ item.price || 0 }}*{{ item.num }}扎 + {{ item.priceMember || item.price || 0 }}*{{ item.num }}扎 </view> <view class="desc m-t-12"> <view class="m-r-15">每扎重量:{{ item.weight || 0 }}</view> diff --git a/sub_pages/customer/trade/detail.vue b/sub_pages/customer/trade/detail.vue index 5dbc3e5..32e7c41 100644 --- a/sub_pages/customer/trade/detail.vue +++ b/sub_pages/customer/trade/detail.vue @@ -75,8 +75,8 @@ <!-- #ifdef PUB_CUSTOMER_DEV --> <view> <view class="price m-r-a component-price-new"> - <span class="num">{{ dto.priceMember || dto.price || '-' }}</span> - 元/扎<span class="tip">会员价</span> + <span class="tip">会员价</span><span class="num p">{{ dto.priceMember || dto.price || '-' }}</span> + 元/扎 </view> <view class="price m-r-a component-price-old"> <span class="num">{{ dto.price || '-' }}</span> @@ -119,7 +119,7 @@ </view> <view class="info-detail" v-if="dto.params"> <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">详情</view> - <view class="flex m-t-8" v-for="(param,index) of dto.params" :key="index"> + <view class="flex flex-wrap-normal m-t-8" v-for="(param,index) of dto.params" :key="index"> <view class="label">{{ param.name}}:</view> <view class="value">{{ param.value || '-'}}</view> </view> diff --git a/sub_pages/customer/trade/list.vue b/sub_pages/customer/trade/list.vue index b43d3f7..0909deb 100644 --- a/sub_pages/customer/trade/list.vue +++ b/sub_pages/customer/trade/list.vue @@ -76,7 +76,7 @@ <!-- #ifdef PUB_CUSTOMER_DEV --> <view class="price component-price-new"> - ¥{{item.priceMember||item.price}}/扎<span class="tip">会员价</span> + <span class="tip">会员价</span>¥<span class="p">{{item.priceMember||item.price}}</span>/扎 <view class="component-price-old"> ¥{{item.price}}/扎 </view> diff --git a/sub_pages/supplier/flower-manage/flower-add.vue b/sub_pages/supplier/flower-manage/flower-add.vue index a7dca75..cfd84fe 100644 --- a/sub_pages/supplier/flower-manage/flower-add.vue +++ b/sub_pages/supplier/flower-manage/flower-add.vue @@ -148,8 +148,17 @@ </view> <view class="line-gray-big"></view> + <view class="form-item before-line"> + <view class="label">商品描述</view> + <view class="m-l-a m-r-0 flex"> - <view class="form-item before-line"> + </view> + </view> + <view style="min-width: 500rpx;margin-left: 20rpx;margin-right: 20rpx;margin-top: 20rpx;"> + <u--textarea v-model="dto.description" autoHeight placeholder="请输入商品描述"></u--textarea> + </view> + + <view class="form-item bottom-border-no"> <view class="label">商品视频</view> <view class="m-l-a m-r-0 flex"> <!-- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}" --> @@ -162,18 +171,10 @@ <view v-if="dto.video"> <video :src="dto.video" :auto-pause-if-navigate="true" style="display: block;margin: 0 auto;"></video> </view> - <view class="form-item bottom-border-no"> - <view class="label">商品描述</view> - <view class="m-l-a m-r-0 flex"> - - </view> - </view> - <view style="min-width: 500rpx;margin-left: 20rpx;margin-right: 20rpx;margin-top: 20rpx;"> - <u--textarea v-model="dto.description" autoHeight placeholder="请输入商品描述"></u--textarea> - </view> - <view style="min-height: 200rpx;"> + + <view style="min-height: 240rpx;"> </view> <view class="button-green-1 m-t-20 button-fixed-bottom " @click="submit" v-if="!dto.id"> -- Gitblit v1.9.3