xuxueyang
2024-09-11 0ab8c82c603f14cf69396b54b0471112b9de947b
update 会员优惠券等
已修改16个文件
已添加2个文件
314 ■■■■ 文件已修改
common/global.scss 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/banner3d/banner3d.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/components/home-top-flow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/home.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/customer/coupon/member/icon-member-info-1.png 补丁 | 查看 | 原始文档 | blame | 历史
static/images/customer/coupon/member/icon-member-info-2.png 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/coupon/coupon-self.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/coupon/coupon.scss 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/coupon/good-all.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/coupon/good-self.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/self/collect.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/self/history.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/self/member-center.vue 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/shop/shop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/shopping/confirm.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/trade/detail.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/trade/list.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/supplier/flower-manage/flower-add.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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{
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>
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>
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) {
static/images/customer/coupon/member/icon-member-info-1.png
static/images/customer/coupon/member/icon-member-info-2.png
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>
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;
                }
            }
        }
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 {
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">
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>
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>
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&&currentInfo.customerDTO.userGrowthRecord
            &&currentInfo.customerDTO.userGrowthRecord.targetMemberInfos&&currentInfo.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;
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>
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>
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>
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>
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;">
                &nbsp;
            </view>
            <view class="button-green-1 m-t-20 button-fixed-bottom " @click="submit" v-if="!dto.id">