doum
14 小时以前 6d350a0ff5078ad9a5556695e598217715ac2d59
经销商管理
已添加2个文件
381 ■■■■■ 文件已修改
mini-program/pagesA/pages/rich-text-page/rich-text-page.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mini-program/pagesA/pages/shop_points/shop_points.vue 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mini-program/pagesA/pages/rich-text-page/rich-text-page.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
<template>
    <view class="u-content">
        <u-parse :content="content"></u-parse>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                flag:1,
                title:'',
                content: ''
            };
        },
        onLoad(options) {
            console.log(options)
            var flag = options.flag
            this.flag = flag
            this.content =''
            switch(flag){
                case '1':
                    this.title = '服务介绍'
                    break;
                case '2':
                    this.title = '收费标准'
                    break;
                case '3':
                    this.title = '关于我们'
                    break;
                case '4':
                    this.title = '用户协议'
                    break;
                case '5':
                    this.title = '隐私协议政策'
                    break;
                default:
                    this.flag= 3
                    this.title = '关于我们'
                    break;
            }
            uni.setNavigationBarTitle({
                title:this.title
            })
            this.getContnet()
        },
        methods:{
            getContnet() {
                var that = this;
                this.$u.api.getPlatformAboutUs({}).then(res =>{
                    if (res&&res.code ===200) {
                        if(this.flag == 1){
                            that.content = res.data.serverIntroduce||''
                        }else if(this.flag == 2){
                            that.content = res.data.feeStandards||''
                        }  else if(this.flag == 4){
                            that.content = res.data.userAgreement||''
                        } else if(this.flag == 5){
                            that.content = res.data.privacyAgreement||''
                        } else{
                            that.content = res.data.aboutUs||''
                        }
                    }
                })
            },
        }
    }
</script>
<style lang="scss" scoped>
    .u-content {
        padding: 30rpx;
    }
</style>
mini-program/pagesA/pages/shop_points/shop_points.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,308 @@
<template>
    <view class="points">
        <view class="info-rule">积分规则</view>
        <view class="head" :style="{ backgroundImage: 'url(' + backImage + ')', height: 'calc(' + (navHeight + statusbarHeight + 'px + 376rpx)') }">
            <view :style="{ width: '100%', height: navHeight + statusbarHeight + 'px' }"></view>
            <view class="head-bar" :style="{ height: navHeight + statusbarHeight + 'px' }">
                <view :style="{ width: '100%', height: statusbarHeight + 'px' }"></view>
                <view class="head-bar-nav" :style="{ height: navHeight + 'px' }" @click="openLoacing">
                    <image src="/static/icon/nav_ic_bac@2x.png" mode="widthFix"></image>
                    <text>我的积分</text>
                    <image src="/static/icon/nav_ic_bac@2x.png" mode="widthFix" style="opacity: 0;"></image>
                </view>
            </view>
            <view class="info">
                <view class="info-a">当前积分</view>
                <view class="info-b">{{countData.surplusIntegral || 0}}</view>
                <view class="info-c">
                    <image src="/static/icon/ic_tixing@2x.png" mode="widthFix"></image>
                    <text>{{countData.expiredIntegral || 0}}积分即将过期</text>
                </view>
            </view>
            <view class="list">
                <view class="list-title">
                    <view class="list-title-name">积分明细</view>
                    <view class="list-title-cate">
                        <view  :class="'list-title-cate-row '+(active ==0?'active':'')" @click="changeActive(0)"  >全部</view>
                        <view  :class="'list-title-cate-row '+(active ==1?'active':'')" @click="changeActive(1)">获得</view>
                        <view  :class="'list-title-cate-row '+(active ==2?'active':'')" @click="changeActive(2)">扣除</view>
                    </view>
                </view>
                <view class="list-item">
                    <view class="list-item-left">
                        <text>购买商品,获得100积分</text>
                        <text>2025-11-21 09:00:00</text>
                    </view>
                    <view class="list-item-num">+100</view>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    import { mapState } from 'vuex'
    export default {
        computed: {
            ...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken'])
        },
        data() {
            return {
                currentPage:1,
                total:0,
                shop:{},
                active:0,
                hasNext:true,
                dataList:[],
                countData:{},
                backImage: require('@/static/images/jifen_bg@2x.png')
            };
        },
        onReachBottom(){
            this.getDataList( );
        },
        onShow() {
             this.shop  ={}
             this.checkShopLogin()
             this.active=0
             this.shop = this.shopInfo || {}
             this.getCountData()
             this.currentPage = 0
             this.getDataList()
        },
        methods:{
            changeActive(index){
                this.getCountData(index)
            },
            showRule(){
                 console.log("==================================",this.showPhone)
            },
            async  getCountData(){
                    var that =this
                    let res = await that.$u.api.getIntegralData({  userType: 1, tokenType:1  })
                    if (res.code === 200) {
                        this.countData = res.data
                    }
            },
            async  getDataList(){
                    if(this.loading || !this.hasNext){
                        return
                    }
                    this.loading=true
                    this.currentPage =   this.currentPage+1
                    if(this.currentPage == 1){
                        this.hasNext =true
                        this.dataList=[]
                    }
                    var that =this
                    let res = await that.$u.api.shopOrderPage({
                            capacity:10,
                            model: {
                                receiveType: 1,
                                status: 1
                            },
                            page:this.currentPage
                        });
                        console.log(res)
                    if (res.code === 200 ) {
                        if ( res.data && res.data.page ===this.currentPage) {
                            res.data.records = res.data.records||[]
                             that.dataList.push(...res.data.records)
                             that.total=res.data.total
                             if( this.currentPage >= res.data.pageCount||0){
                                 that.hasNext=false
                             }else{
                                 that.hasNext=true
                             }
                        }
                    }
                    this.loading=false
            },
            jumpService(flag) {
                uni.navigateTo({
                    url: '/pagesA/rich-text-page/rich-text-page?flag='+2
                })
            },
            checkShopLogin(){
                var that =this
                if( this.shopInfo ==null || this.shopInfo.id==null ||  this.shopToken==null || this.shopToken==''){
                    uni.navigateTo({
                        url: '/pages/login/login'
                    })
                }
            }
        }
    }
</script>
<style>
    page {
        background-color: #F9F9FB;
    }
</style>
<style lang="scss" scoped>
    .points {
        width: 100%;
        .info-rule{
            float: right;
            margin-top:214rpx;
            width: 140rpx;
            // height: 52rpx;
            padding: 5px 0;
            background: #FFFFFF;
            border-radius: 36rpx 0rpx 0rpx 36rpx;
            font-family: PingFangSC, PingFang SC;
            font-weight: 400;
            font-size: 24rpx;
            color: #333333;
            line-height: 34rpx;
            text-align: center;
            font-style: normal;
        }
        .head {
            width: 100%;
            height: 424rpx;
            padding: 0 30rpx;
            box-sizing: border-box;
            background-repeat: no-repeat;
            background-size: 100% 100%;
            .list {
                width: 100%;
                display: flex;
                flex-direction: column;
                background: #FFFFFF;
                border-radius: 16rpx;
                margin-top: 30rpx;
                padding: 34rpx 30rpx;
                box-sizing: border-box;
                .list-title {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    .list-title-name {
                        font-weight: 600;
                        font-size: 32rpx;
                        color: #222222;
                    }
                    .active {
                        color: #004096 !important;
                        background: #F8F9FB !important;
                    }
                    .list-title-cate {
                        display: flex;
                        align-items: center;
                        .list-title-cate-row {
                            width: 96rpx;
                            height: 56rpx;
                            line-height: 56rpx;
                            text-align: center;
                            background: #F8F9FB;
                            border-radius: 28rpx;
                            font-weight: 400;
                            font-size: 24rpx;
                            color: #333333;
                            margin-left: 20rpx;
                        }
                    }
                }
                .list-item {
                    width: 100%;
                    height: 154rpx;
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    border-bottom: 1rpx solid #E5E5E5;
                    .list-item-left {
                        flex: 1;
                        height: 100%;
                        display: flex;
                        flex-direction: column;
                        justify-content: space-evenly;
                        text {
                            &:nth-child(1) {
                                font-weight: 400;
                                font-size: 28rpx;
                                color: #222222;
                            }
                            &:nth-child(2) {
                                font-weight: 400;
                                font-size: 24rpx;
                                color: #999999;
                            }
                        }
                    }
                    .list-item-num {
                        flex-shrink: 0;
                        margin-left: 30rpx;
                        font-weight: 500;
                        font-size: 32rpx;
                        color: #222222;
                    }
                }
            }
            .info {
                width: 100%;
                padding: 30rpx 0;
                box-sizing: border-box;
                .info-a {
                    font-weight: 400;
                    font-size: 26rpx;
                    color: #333333;
                }
                .info-b {
                    font-weight: bold;
                    font-size: 72rpx;
                    color: #222222;
                }
                .info-c {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    margin-top: 20rpx;
                    image {
                        width: 28rpx;
                        height: 28rpx;
                        margin-right: 10rpx;
                    }
                    text {
                        font-weight: 400;
                        font-size: 24rpx;
                        color: #777777;
                    }
                }
            }
            .head-bar {
                width: 100%;
                position: fixed;
                padding: 0 30rpx;
                box-sizing: border-box;
                top: 0;
                left: 0;
                z-index: 999;
                .head-bar-nav {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    image {
                        width: 44rpx;
                        height: 44rpx;
                    }
                    text {
                        font-weight: 500;
                        font-size: 32rpx;
                        color: #111111;
                    }
                }
            }
        }
    }
</style>