zhaojs
2023-06-25 4ac3c2382e0733685f7612f8e9ca4e85d15c1411
Merge branch 'hotfix/苹果审核修改'

# Conflicts:
# uniapp/pages/goods/shareGoods.vue
已添加15个文件
已修改18个文件
4906 ■■■■■ 文件已修改
uniapp/.hbuilderx/launch.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/App.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/colGoods.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/indexPage.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/rowGoods.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/sh_page/findPage.vue 603 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/sh_page/indexCont.vue 1853 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/sh_page/indexNewPage.vue 612 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/sh_page/matherPage.vue 460 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/sh_page/minePage.vue 780 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/manifest.json 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages.json 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/find/findGoods.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/goods/goodsDetail.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/goods/shareGoods.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/index/index.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/login/bindingPhone.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/login/wxlogin.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/mine/mine.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/mine/setting/cancellation.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/rankinglist/fengqiang.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/rankinglist/xianbao.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_bend.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_bend_act.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_index.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_index_act.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_mine.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_mine_act.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_qiang.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_qiang_act.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_xb.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/static/images/tabBar/ne_xb_act.png 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/uniCloud-aliyun/cloudfunctions/getPhoneNumber/index.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/.hbuilderx/launch.json
@@ -14,7 +14,7 @@
            },
            "h5" : 
            {
                "launchtype" : "local"
                "launchtype" : "remote"
            },
            "mp-weixin" : 
            {
uniapp/App.vue
@@ -91,7 +91,6 @@
            uni.getSystemInfo({
                success: e => {
                    // #ifdef APP-PLUS
                    console.log(e)
                    if (e.platform == 'android') {
                        this.globalData.platform = 'android'
                        this.globalData.systemLevel = e.system
@@ -151,7 +150,6 @@
                            content: '检测到网络权限可能设置为关闭,您可以在“设置”中检查无线数据及蜂窝移动网络'
                        })
                    }else{
                        console.log("是否请求过:"+that.globalData.hasinit)
                        if(!that.globalData.hasinit)
                        {
                            that.getAppInfo();
@@ -173,7 +171,6 @@
                var route = routes[routes.length - 1].route
            }
            // #ifdef APP-PLUS
            console.log(this.globalData.canlisten)
            if (this.globalData.canlisten && route != 'pages/mine/tools/turnChain') {
                getClipboard()
            }
@@ -190,7 +187,6 @@
                if (uni.getSystemInfoSync().platform == 'ios')
                {
                    const plug = uni.requireNativePlugin('xiguazhu-baichuan');
                    console.log(plug)
                    plug.init({}, result => {
                        //console.log('1111111111111111111');
                        console.log(result);    // code等于0就是初始化成功
@@ -204,7 +200,6 @@
            getAppInfo: function() {
                var that = this;
                this.$u.api.comminInt({}).then(e => {
                    console.log(e)
                    if (e.code != 0) return that.$alert(e.msg)
                    that.globalData.hasinit=true;
                    that.globalData.appinfo = e.data.basic
@@ -225,6 +220,7 @@
                                that.globalData.ifwt = 0
                            }
                        }
                        console.log(that.globalData.ifwt);
                    } else {
                        if (plus.runtime.isApplicationExist({pname:'com.tencent.mm',
                                action: 'weixin://'
@@ -237,6 +233,7 @@
                        }
                    }
                    // #endif
                }).catch(function(err) {})
                
            },
uniapp/components/colGoods.vue
@@ -17,12 +17,12 @@
            </view>
            <view class="goodsPrice-goodSale colCen borderBox">
                <view class="couponInfo-bar rowCen">
                    <view class="couponbox rowCenCen" v-if="items.couponPrice>0 || items.faction=='w'">
                    <view class="couponbox rowCenCen" style="border: 1px solid #f50d49; color: #f50d49; background: none;" v-if="items.couponPrice>0 || items.faction=='w'">
                        <view>
                            {{items.faction=='w' ?(items.discount+'折'):items.couponPrice+'元券'}}
                        </view>
                    </view>
                    <view class="backPrice rowCenCen">
                    <view class="backPrice rowCenCen" style="background: #f50d49;">
                        <view>返{{items.fanli}}元</view>
                    </view>
                </view>
uniapp/components/indexPage.vue
@@ -595,7 +595,7 @@
            },
            onRestore() {
                this.swpidx = 0
                console.log('下拉被终止');
                //console.log('下拉被终止');
            },
            pagescroll(e) {
                this.$emit('scrollNum', e.detail.scrollTop)
@@ -626,21 +626,23 @@
                this.$u.api.getBanner({
                    type: '1,3,4,5,11,12,13,14'
                }).then(e => {
                    console.log(e)
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    this.topBannerList = res.topBannerList;
                    this.headerColor = this.topBannerList[0].colour;
                    this.singleLineList = res.singleLineList;
                    this.doubleLineList = res.doubleLineList;
                    this.bottomBannerList = res.bottomBannerList;
                    this.fastenter=res.indexbanner;
                    this.popBannerSList=res.popBannerSList;
                    this.enterTop=res.enterTop;
                    this.enterDown=res.enterDown;
                    if(res.topBannerList&&res.topBannerList.length>0)
                    {
                        that.topBannerList = res.topBannerList;
                        that.headerColor = that.topBannerList[0].colour;
                    }
                    that.singleLineList = res.singleLineList;
                    that.doubleLineList = res.doubleLineList;
                    that.bottomBannerList = res.bottomBannerList;
                    that.fastenter=res.indexbanner;
                    that.popBannerSList=res.popBannerSList;
                    that.enterTop=res.enterTop;
                    that.enterDown=res.enterDown;
                    setTimeout(() => {
                        this.triggeredstate = false;
                        this._freshing = false;
                        that.triggeredstate = false;
                        that._freshing = false;
                    }, 300)
                }).catch(function(err) {
                    console.log(err)
@@ -696,7 +698,7 @@
                    pageSize: 10,
                    type: type
                }).then(e => {
                    console.log(e)
                   // console.log(e)
                    if (e.code != 0) return that.$alert(e.msg)
                    var res = e.data.list;
                    if (res.length < 10) {
uniapp/components/rowGoods.vue
@@ -17,12 +17,12 @@
    
            <view class="cardbottom-container colCenEnd">
                <view class="discounts-container rowCen borderBox">
                    <view class="coupon-box rowCenCen" v-if="items.couponPrice>0 || items.sourceType=='wph'">
                    <view class="coupon-box rowCenCen" style="border: 1px solid #f50d49; color: #f50d49; background: none;" v-if="items.couponPrice>0 || items.sourceType=='wph'">
                        <view>
                            {{items.sourceType=='wph'?items.discount+'折':items.couponPrice+'元券'}}
                        </view>
                    </view>
                    <view class="back-box rowCenCen"  v-if="items.fanli">
                    <view class="back-box rowCenCen"  style="background: #f50d49;" v-if="items.fanli">
                        <view>
                            è¿”{{items.fanli}}元
                        </view>
@@ -89,21 +89,27 @@
    
            .goodsnameinfo-content {
                width: 100%;
                position: relative;
                .typeIcon-content {
                    width: 60rpx;
                    height: 24rpx;
                    margin-right: 5rpx;
                    position: absolute;
                    top: 7rpx;
                }
    
                .tradename {
                    flex: 1;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                    font-size: 28rpx;
                    font-weight: 500;
                    text-indent: 2.5em;
                    color: #333333;
                    text-overflow: -o-ellipsis-lastline;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    display: -webkit-box;
                    -webkit-line-clamp: 2;
                    line-clamp: 2;
                    -webkit-box-orient: vertical;
                }
            }
    
uniapp/components/sh_page/findPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,603 @@
<template>
    <view class="find-wrapper wrapperLayer">
        <view class="pageNavigationBar-container colCen">
            <view class="topbarbox"></view>
            <view class="headerNavigationbar rowCenBet borderBox">
                <view class="backIcon rowCenSta">
                </view>
                <view class="pageState rowCen">
                    <block v-for="(items,index) in titleStates" :key="index">
                        <view class="items-box rowCenCen" :class="stateCurrent==index?'itm-active':''" @tap="exchangeState(index)">
                            <view>{{items.title}}</view>
                        </view>
                    </block>
                </view>
                <view class="emptybox rowCenEnd">
                </view>
            </view>
        </view>
        <view class="topbarbox">
        </view>
        <view class="pagebottom-container colCen">
            <view class="warterfall_list" style="width: 100%;">
                <view class="list_container">
                    <view class="water-flow-column colCen" v-for="(col, c) in currentArray" :key="c">
                        <view class="fallitem colCen" :id="col.id" style="width: 100%;">
                            <block v-for="(itms, idx) in col.list" :key="idx">
                                <view class="first-item" v-if="c==0 && idx==0 && itms.blist">
                                    <swiper class="bannerswiper" :indicator-dots="true" :duration="1000">
                                        <swiper-item v-for="(swiperitm,swiperidx) in itms.blist">
                                            <view class="swiper-item" @tap='gobanersrc(swiperitm)'>
                                                <image class="gifpic" :src="swiperitm.image" mode="widthFix"></image>
                                            </view>
                                        </swiper-item>
                                    </swiper>
                                </view>
                                <view class="card-items" v-else @tap="gofindDetails(itms.album_id)">
                                    <view class="topimg-area colCen">
                                        <view class="bigimg defIcon">
                                            <image :src="itms.good_list_json[0].pic" mode="aspectFill"></image>
                                        </view>
                                        <view class="smallimgs rowCen">
                                            <image class="smimg" :src="itms.good_list_json[1].pic" mode="aspectFill"></image>
                                            <image class="smimg" :src="itms.good_list_json[2].pic" mode="aspectFill"></image>
                                        </view>
                                        <view class="imgsnum-box rowCenCen">
                                            <view>{{itms.goods_count}}款</view>
                                        </view>
                                    </view>
                                    <view class="info-area colCen">
                                        <view class="title">
                                            {{itms.title}}
                                        </view>
                                        <view class="tipsList-box">
                                            <!-- <block v-for="(tipsit,tipsid) in itms.tipsList" :key="tipsid"> -->
                                            <view class="tips-container rowCen">
                                                {{itms.label}}
                                            </view>
                                            <!-- </block> -->
                                        </view>
                                        <view class="userContent-likenum rowStaBet">
                                            <view class="left-headerbox rowSta">
                                                <image class="avator-img" :src="itms.anchor.head_img" mode="aspectFill"></image>
                                                <view class="name-time">
                                                    <view class="name">
                                                        å°å®˜ç²¾é€‰
                                                    </view>
                                                    <view class="time" v-text="getTimer(itms.update_time)">
                                                        <!-- {{getTimer(itms.updateTime)}} -->
                                                    </view>
                                                </view>
                                            </view>
                                            <view class="right-likebtn rowCen" @click.stop="like(c,idx)">
                                                <image class="heart" src="../../static/images/home/heartred.png" mode="aspectFill" v-if="itms.flag"></image>
                                                <image class="heart" src="../../static/images/home/heart.png" mode="aspectFill" v-else></image>
                                                <view class="likeNum" :style="itms.flag?'color:#FE3738':''">
                                                    {{itms.like_num}}
                                                </view>
                                            </view>
                                        </view>
                                    </view>
                                </view>
                            </block>
                        </view>
                    </view>
                </view>
                <aLoadMore :status="loadstate" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
            </view>
        </view>
    </view>
</template>
<script>
    import drawtab from '../../utils/mineTab.js'
    import util from '../../utils/utils.js'
    var a = 0
    export default {
        data() {
            return {
                stateCurrent: 1,
                titleStates: [{
                        title: '关注'
                    },
                    {
                        title: '发现'
                    }
                ],
                pageDateList: [], //视频列表
                refrenshColunmDataList: [], //缓存的数组
                internalDataList: [],
                currentArray: [{
                        id: 'water-fall-1',
                        list: []
                    },
                    {
                        id: 'water-fall-2',
                        list: []
                    }
                ],
                loginBack:false,
                loadstate: 'loading',
                pageCurrent: 1,
                canload: false
            }
        },
        watch: {
            pageDateList(nval, oval) {
                console.log(nval.length, '新的列表数据进来了~');
                this.canload = false
                if (nval.length > 0) {
                    this.$nextTick(() => {
                        for (var i = this.refrenshColunmDataList.length; i < nval.length; i++) {
                            this.internalDataList.push(nval[i])
                            if(i==nval.length-1){
                                console.log(nval.length);
                                console.log(this.refrenshColunmDataList.length);
                                if(nval.length-this.refrenshColunmDataList.length<20){
                                    this.canload = false
                                }else{
                                    this.canload = true
                                }
                            }else{
                                this.canload = false
                            }
                        }
                    })
                } else {
                    this.externalRefrensh()
                    this.internalDataList = []
                }
            },
            internalDataList(nval, oval) {
                this.getPushContainer();
            }
        },
        created() {
            this.getAlldata();
            if(this.loginBack){
                this.loginBack = false
                this.getAlldata()
            }
            drawtab.nativeView.show()
        },
        onHide() {
            drawtab.nativeView.hide()
        },
        onReachBottom() {
            if (this.canload) {
                if(this.stateCurrent==1){
                    this.getAlldata()
                }else{
                    this.getMyfollow()
                }
            }
        },
        methods: {
            like(a, b) {
                this.currentArray.forEach((items, index) => {
                    if (a == index) {
                        items.list.forEach((itm, idx) => {
                            if (b == idx) {
                                if (!itm.flag) {
                                    var that = this;
                                    this.$u.api.likeAlbum({
                                        album_id:itm.album_id
                                    }).then(e => {
                                        if(e.code != 0) return that.$alert(e.msg)
                                        itm.flag = true
                                        itm.like_num++
                                    }).catch(function (err) {
                                    })
                                }
                            }
                        })
                    }
                })
            },
            exchangeState(idx) {
                if (this.stateCurrent != idx) {
                    this.pageCurrent = 1
                    this.pageDateList = []
                    this.loadstate = 'loading'
                    this.canload = false
                    this.stateCurrent = idx
                    if(this.stateCurrent==1){
                        this.getAlldata()
                    }else{
                        this.getMyfollow()
                    }
                }
            },
            getAlldata() {
                var that = this;
                this.$u.api.getAlbum({
                    pageSize: 20,
                    page: this.pageCurrent,
                }).then(e => {
                    if(e.code != 0) return that.$alert(e.msg)
                    var res = e.data;
                    console.log(res)
                    uni.stopPullDownRefresh()
                    that.pageDateList = that.pageDateList.concat(res.list)
                    if (res.list.length < 20) {
                        that.loadstate = 'nomore';
                        that.canload = false;
                    } else {
                        that.loadstate = 'loading';
                        // this.canload = true;
                        that.pageCurrent ++;
                    }
                    if (res.banner.length > 0) {
                        var obj = {}
                        obj.blist = res.banner
                        that.pageDateList.unshift(obj)
                        console.log(that.pageDateList);
                    }
                }).catch(function (err) {
                })
            },
            getMyfollow(){
                var user = uni.getStorageSync('userInfo');
                if(user == ""){
                    uni.redirectTo({
                        url:"../login/wxlogin"
                    })
                }
                var that = this;
                this.$u.api.myFollowAlbum({
                    pageSize:20,
                    page:this.pageCurrent,
                }).then(e => {
                    if(e.code != 0) return that.$alert(e.msg)
                    var res = e.data.list;
                    console.log(res);
                    uni.stopPullDownRefresh()
                    that.pageDateList = that.pageDateList.concat(res)
                    if (res.length < 20) {
                        that.loadstate = 'nomore';
                        that.canload = false;
                    } else {
                        that.loadstate = 'loading';
                        that.canload = true;
                        that.pageCurrent ++;
                    }
                }).catch(function (err) {
                })
            },
            gofindDetails(id) {
                console.log(id)
                uni.navigateTo({
                    url: "/pages/find/findGoods?id=" + id
                })
            },
            gobanersrc(info){
                util.goUrl(info)
            },
            /**
             * èŽ·å–èŠ‚ç‚¹ä¿¡æ¯
             */
            getPushContainer() {
                let sortList = [];
                this.$nextTick(() => {
                    uni.createSelectorQuery().in(this)
                        .selectAll('.fallitem')
                        .boundingClientRect()
                        .exec(res => {
                            if (res) {
                                sortList = res[0];
                                sortList.sort((a, b) => {
                                    return a.height - b.height;
                                });
                                this.pushShiftData(sortList[0]);
                            }
                        });
                })
            },
            pushShiftData(pushObj) {
                //内部数据internalDataList
                if (this.internalDataList.length > 0) {
                    this.currentArray.forEach((items, index) => {
                        if (items.id == pushObj.id) {
                            items.list.push(this.internalDataList[0]);
                            let shiftObj = this.internalDataList.shift();
                            this.pushLoadData(shiftObj);
                        }
                    });
                }
            },
            //缓存数组
            pushLoadData(shiftObj) {
                this.refrenshColunmDataList.push(shiftObj)
            },
            externalRefrensh() {
                this.refrenshColunmDataList = [];
                console.log(this.currentArray);
                for (let i = 0; i < this.currentArray.length; i++) {
                    this.currentArray[i].list = [];
                }
            },
            getTimer(stringTime) {
                var minute = 1000 * 60;
                var hour = minute * 60;
                var day = hour * 24;
                var week = day * 7;
                var month = day * 30;
                var time1 = new Date().getTime(); //当前的时间戳
                var time2 = Date.parse(new Date((stringTime.replace(/\-/g, '/')))); //指定时间的时间戳
                var time = time1 - time2;
                var result = null;
                if (time < 0) {} else if (time / month >= 1) {
                    result = parseInt(time / month) + "月前";
                } else if (time / week >= 1) {
                    result = parseInt(time / week) + "周前";
                } else if (time / day >= 1) {
                    result = parseInt(time / day) + "天前";
                } else if (time / hour >= 1) {
                    result = parseInt(time / hour) + "小时前";
                } else if (time / minute >= 1) {
                    result = parseInt(time / minute) + "分钟前";
                } else {
                    result = "刚刚!";
                }
                return result;
            }
        },
        onPullDownRefresh() {
            this.pageCurrent = 1
            this.pageDateList = []
            this.loadstate = 'loading'
            this.canload = false
            if(this.stateCurrent==0){
                this.getMyfollow()
            }else{
                this.getAlldata()
            }
        }
    }
</script>
<style lang="scss">
    .find-wrapper {
        width: 100%;
        .pageNavigationBar-container {
            width: 100%;
            position: fixed;
            top: 0;
            left: 0;
            z-index: 100;
            background-color: #FFFFFF;
            .headerNavigationbar {
                width: 100%;
                height: 90rpx;
                padding: 0 32rpx;
                .backIcon {
                    width: 60rpx;
                    height: 32rpx;
                    z-index: 1;
                    image {
                        width: 17rpx;
                        height: 32rpx;
                    }
                }
                .pageState {
                    .items-box {
                        width: 170rpx;
                        font-size: 36rpx;
                        font-weight: 500;
                        color: #666666;
                    }
                    .itm-active {
                        font-size: 36rpx;
                        font-weight: bold;
                        color: #333333;
                    }
                }
                .emptybox {
                    width: 60rpx;
                    height: 32rpx;
                }
            }
        }
        .pagebottom-container {
            width: 100%;
            margin-top: 110rpx;
            padding: 0 20rpx;
            .warterfall_list {
                width: 100%;
                .list_container {
                    width: 100%;
                    display: flex;
                    justify-content: space-between;
                    .water-flow-column {
                        width: 346rpx;
                        .fallitem {
                            width: 100%;
                            .first-item {
                                width: 346rpx;
                                margin-bottom: 20rpx;
                                /deep/.bannerswiper {
                                    width: 100%;
                                    height: 500rpx;
                                    overflow: hidden;
                                    .gifpic {
                                        border-radius: 16rpx;
                                    }
                                    .uni-swiper-dot {
                                        box-sizing: border-box;
                                        width: 13rpx;
                                        height: 13rpx;
                                        border: 1rpx solid #FFFFFF;
                                        border-radius: 50%;
                                        background-color: transparent;
                                    }
                                    .uni-swiper-dot-active {
                                        width: 13rpx;
                                        height: 13rpx;
                                        background: #E75D00;
                                        border: none;
                                    }
                                }
                            }
                            .card-items {
                                width: 346rpx;
                                border-radius: 16rpx;
                                margin-bottom: 20rpx;
                                overflow: hidden;
                                background-color: #FFFFFF;
                                .topimg-area {
                                    width: 100%;
                                    position: relative;
                                    .bigimg {
                                        width: 100%;
                                        height: 346rpx;
                                    }
                                    .smallimgs {
                                        .smimg {
                                            width: 173rpx;
                                            height: 173rpx;
                                        }
                                    }
                                    .imgsnum-box {
                                        position: absolute;
                                        height: 40rpx;
                                        background: rgba(0, 0, 0, 0.6);
                                        padding: 0 6rpx;
                                        border-radius: 8rpx;
                                        z-index: 10;
                                        right: 20rpx;
                                        bottom: 20rpx;
                                        font-size: 24rpx;
                                        font-weight: 500;
                                        color: #FFFFFF;
                                    }
                                }
                                .info-area {
                                    width: 100%;
                                    padding: 10rpx;
                                    .title {
                                        width: 100%;
                                        font-size: 28rpx;
                                        font-weight: 500;
                                        color: #333333;
                                        overflow: hidden;
                                        text-overflow: ellipsis;
                                        white-space: nowrap;
                                        margin-bottom: 15rpx;
                                    }
                                    .tipsList-box {
                                        width: 100%;
                                        display: flex;
                                        flex-wrap: wrap;
                                        .tips-container {
                                            height: 34rpx;
                                            background: #FFF3F3;
                                            border-radius: 4rpx;
                                            font-size: 24rpx;
                                            font-weight: 500;
                                            color: #ED4015;
                                            margin-right: 10rpx;
                                            margin-bottom: 10rpx;
                                        }
                                    }
                                    .userContent-likenum {
                                        width: 100%;
                                        margin-top: 15rpx;
                                        .left-headerbox {
                                            .avator-img {
                                                width: 40rpx;
                                                height: 40rpx;
                                                border-radius: 50%;
                                            }
                                            .name-time {
                                                margin-left: 15rpx;
                                                .name {
                                                    font-size: 24rpx;
                                                    font-weight: 500;
                                                    color: #333333;
                                                }
                                                .time {
                                                    font-size: 20rpx;
                                                    font-weight: 500;
                                                    color: #999999;
                                                }
                                            }
                                        }
                                        .right-likebtn {
                                            .heart {
                                                width: 26rpx;
                                                height: 24rpx;
                                            }
                                            .likeNum {
                                                font-size: 24rpx;
                                                font-weight: 500;
                                                color: #333333;
                                                margin-left: 15rpx;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
</style>
uniapp/components/sh_page/indexCont.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1853 @@
<template>
    <view class="page-content">
        <scroll-view class="swiper-scroll" :refresher-background='headerColor' @scroll='pagescroll' scroll-y="true"
            :scroll-top='scrollindex' :scroll-anchoring='true' scroll-with-animation lower-threshold='500'
            @scrolltolower="getNextPage" :refresher-threshold='75' :refresher-triggered='triggeredstate'
            :refresher-enabled='canrefresh && canrefush' @refresherrefresh='refresh' @refresherrestore="onRestore"
            refresher-default-style='none' :bounce='false' @refresherpulling="pulling">
            <view class="indexbody-index-wrapper colCen borderBox">
                <view class="topheaderCard-container colCen borderBox">
                    <view class="ellipse" :style="'background:'+ headerColor +';'"></view>
                </view>
                <view class="loading-img rowCenCen" :style="'margin-top:'+(Topheight-77)+'px;'">
                    <view class="imgbox defIcon">
                        <image src="@/static/images/home/loading.gif" mode="aspectFill"></image>
                    </view>
                </view>
                <view class="pageBody-container colCen borderBox">
                    <view class="column-container">
                    <view class="bannerSwiper-container colCenCen borderBox" v-if="topBannerList.length>0">
                        <swiper class="swiper-box" :current="swpidx
                    " @change="changeColor" :autoplay="true" :interval="3000" :duration="500" :indicator-dots="true"
                            :indicator-active-color="'#fff'" circular>
                            <swiper-item v-for="(items,index) in topBannerList" :key='index'>
                                <view class="swiper-item defIcon" @click="goUrl(items)">
                                    <image :src="items.image" mode="aspectFit"></image>
                                </view>
                            </swiper-item>
                        </swiper>
                    </view>
                        <!-- é‡‘刚区 -->
                        <view class="navslider-box" v-if="navbarShowList.length > 0">
                            <swiper class="swiper-type swiper-nav"
                                :indicator-dots="navbarList.length > 10 ? true : false" indicator-color="#eaeaea"
                                indicator-active-color="#FE3A33" :duration="500" :style="sliderH">
                                <swiper-item v-for="(sliderItem, index) in navbarShowList" :key="index">
                                    <view class="slider_itemslist rowSta">
                                        <view class="item colCen" v-for="(item, idx) in sliderItem" :key="idx"
                                            @click="goUrl(item)">
                                            <image :src="item.image" :lazy-load="true" mode="aspectFit"></image>
                                            <view class="desc">{{ item.mname }}</view>
                                        </view>
                                    </view>
                                </swiper-item>
                            </swiper>
                        </view>
                        <!--单列图片-->
                    <!--     <view class="centerSwiper-container colCenCen borderBox" v-if="singleLineList.length>0">
                            <swiper class="swiper-box" :autoplay="true" :interval="5000" :duration="300" circular>
                                <swiper-item v-for="(items,index) in singleLineList" :key='index'>
                                    <view class="swiper-item defIcon" @click="goUrl(items)">
                                        <image :src="items.image" mode="aspectFit"></image>
                                    </view>
                                </swiper-item>
                            </swiper>
                        </view> -->
                        <!--快捷入口图标-->
                        <view class="c-loading-img rowCenCen">
                            <view class="imgbox defIcon" v-for="(eitem,index) in fastenter" :key="index" @click="goUrl(eitem)">
                                <image :src="eitem.image"></image>
                            </view>
                        </view>
                        <!--左轮播,右两行-->
                        <view class="centerflex f_contant">
                            <view class="f_centerSwiper-container swiper-box swiper-item f_left">
                                <swiper class="swiper-box" :autoplay="true" :interval="3000" :duration="300" :indicator-active-color="'#fff'" :indicator-dots="true" circular>
                                    <swiper-item v-for="(items,index) in popBannerSList" :key='index'>
                                        <view class="swiper-item defIcon" @click="goUrl(items)">
                                            <image :src="items.image" mode="aspectFit"></image>
                                        </view>
                                    </swiper-item>
                                </swiper>
                            </view>
                            <view class="f_right">
                                <view class="f_imgcon" v-if='enterTop.length>0' >
                                    <image :src="enterTop[0].image"  @click="goUrl(enterTop[0])"></image>
                                </view>
                                <view class="f_imgcon" v-if='enterDown.length>0'>
                                    <image :src="enterDown[0].image"  @click="goUrl(enterDown[0])"></image>
                                </view>
                            </view>
                        </view>
                        <!--双列图片-->
                        <view class="cardsList-container rowCenBet borderBox" v-if="doubleLineList.length>0">
                            <block v-for="(items,index) in doubleLineList" :key='index'>
                                <view class="card-items defIcon" @click="goUrl(items)">
                                    <image :src="items.image" mode="aspectFill" lazy-load="true"></image>
                                </view>
                            </block>
                        </view>
                    </view>
                </view>
                <view class="pagebottomBody-container colCen borderBox">
                    <view class="bottomSwiper-container colCenCen borderBox" v-if="bottomBannerList.length>0">
                        <swiper class="swiper-box" :autoplay="true" :interval="3000" :duration="300" circular>
                            <swiper-item v-for="(items,index) in bottomBannerList" :key='index'>
                                <view class="swiper-item defIcon" @click="goUrl(items)">
                                    <image :src="items.image" mode="widthFix"></image>
                                </view>
                            </swiper-item>
                        </swiper>
                    </view>
                </view>
                <view class="goods-bottom-List colCen borderBox">
                    <view class="bottomTypebar-container colCen borderBox">
                        <view class="typeList rowCenCen borderBox">
                            <block v-for="(items,index) in typedataList" :key='index'>
                                <view class="type-items-container colCenCen" @click="switchtype(items,index)"
                                    :class="bottomCurrent==index?'type-container-active':''">
                                    <view class="mainTitle">
                                        {{items.mainTitle}}
                                    </view>
                                    <view class="subtitle rowCenCen">
                                        <view>{{items.subTitle}}</view>
                                    </view>
                                </view>
                            </block>
                        </view>
                    </view>
                    <view class="bottomGoods-list-container rowCenBet borderBox"
                        v-if="bottomGoodsList.length>0">
                        <block v-for="(items,index) in bottomGoodsList" :key="index">
                            <view class="goods-items" @click="goDetails(items)">
                                <colGoods :items="items"></colGoods>
                            </view>
                        </block>
                        <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999">
                        </aLoadMore>
                    </view>
                </view>
            </view>
        </scroll-view>
        <slideTop v-if="scrollTop>1000" @toTop='scrolltoTops'></slideTop>
    </view>
</template>
<script>
    import utils from '@/utils/utils.js'
    import slideTop from '@/components/slideTop.vue'
    import colGoods from '@/components/colGoods.vue'
    import empowerModel from '@/components/empowerModel.vue'
    export default {
        props: {
            recomendType: {
                type: Number,
                default: 1
            },
            Topheight: {
                type: Number,
                default: 90
            },
            canrefush: {
                type: Boolean
            },
            fixedClass: {
                type: Boolean,
                default: false
            }
        },
        components: {
            slideTop,
            colGoods,
            empowerModel
        },
        data() {
            return {
                fallingList: [],
                pageHeight: '',
                headerColor: '',
                topBannerList: [],
                singleLineList: [],
                doubleLineList: [],
                bottomBannerList: [],
                navbarShowList: [],
                navbarList: [],
                sliderH: '',
                scrollTop: 0,
                scrollindex: 0,
                zdmList: [],
                phbList: [],
                dyList: [],
                rqList: [],
                typedataList: [
                    {
                        mainTitle: '京东',
                        subTitle: '官方保障',
                        type: 2
                    },
                    {
                        mainTitle: '抖音',
                        subTitle: '好物抢购',
                        type: 6
                    },
                    {
                        mainTitle: '拼多多',
                        subTitle: '百亿补贴',
                        type: 3
                    },
                    {
                        mainTitle: '唯品会',
                        subTitle: '大牌精选',
                        type: 4
                    }
                ],
                bottomType: 1,
                bottomCurrent: 0,
                bottomGoodsList: [],
                loadingState: false,
                currentPage: 1,
                loadstatus: 'loading',
                beanCurd: {
                    BaiYiBuTie: '',
                    JDMiaoSha: '',
                    LiveGoods: '',
                    PDDOne: ''
                },
                triggeredstate: true,
                swpidx: 0,
                canrefresh: true,
                fastenter:[],
                popBannerSList:[],
                enterTop:[],
                enterDown:[]
            }
        },
        watch: {
            recomendType(nval, oval){
                if(nval != oval)this.changeRecommend()
            },
            navbarList(nval, oval) {
                let index = 0;
                while (index < nval.length) {
                    this.navbarShowList.push(nval.slice(index, (index += 10)));
                }
                if (this.navbarList.length > 5) {
                    this.sliderH = 'height:345rpx;';
                } else {
                    this.sliderH = 'height:160rpx;';
                }
            },
            headerColor: {
                handler(nvl, ovl) {
                    this.$emit('passColor', nvl)
                },
                immediate: true
            }
        },
        created() {
            this._freshing = false;
            this.changeRecommend();
            uni.$emit('initpage')
            this.getBannerInfo();
            this.getHomeMenuList();
            this.getrecommendGoods();
            this.getbottomGoodsList(this.bottomType);
            this.getGOODSfalling();
            this.getRQList();
        },
        mounted() {
            this.$emit('scrolltoTop')
            this.fixedClass = false;
            setTimeout(() => {
                this.getfixedHeight()
            }, 1500)
        },
        methods: {
            changeRecommend(){
                var tmp_1 = {
                    mainTitle: '天猫',
                    subTitle: '天猫热销',
                    type: 5
                };
                var tmp_2 = {
                    mainTitle: '推荐',
                    subTitle: '为你推荐',
                    type: 1
                };
                var open_like_recommend = uni.getStorageSync('open_like_recommend');
                if(this.typedataList.length == 5)this.typedataList.shift()
                if(open_like_recommend == 1){
                    this.typedataList.unshift(tmp_2);
                    this.bottomType = tmp_2.type;
                }else{
                    this.typedataList.unshift(tmp_1);
                    this.bottomType = tmp_1.type;
                }
                this.currentPage = 1;
                this.getbottomGoodsList(this.bottomType);
            },
            getGOODSfalling() {
                var that = this;
                this.$u.api.superDiscountGoods({
                    page:1,
                    pageSize:10
                }).then(e => {
                    if(e.code != 0) return that.$alert(e.msg)
                    that.fallingList = e.data.list
                }).catch(function (err) {
                })
            },
            pulling(e) {},
            refresh(e) {
                this.triggeredstate = true
                if (this._freshing) return;
                this._freshing = true;
                this.getBannerInfo();
                this.getrecommendGoods();
                this.getGOODSfalling();
                this.getbottomGoodsList(this.bottomType);
                setTimeout(() => {
                    this.triggeredstate = false;
                    this._freshing = false;
                }, 8000)
            },
            goUrl1(e) {
                let url = e.currentTarget.dataset.url;
                console.log(url);
                uni.navigateTo({
                    url: url
                });
            },
            onRestore() {
                this.swpidx = 0
            },
            pagescroll(e) {
                this.$emit('scrollNum', e.detail.scrollTop)
                this.scrollTop = e.detail.scrollTop
                if (!e.detail.scrollTop > 0) {
                    setTimeout(() => {
                        this.canrefresh = true
                    })
                } else {
                    // this.canrefresh = false
                }
            },
            scrolltoTops() {
                this.scrollindex = this.scrollTop
                this.$nextTick(() => {
                    this.scrollindex = 0
                })
            },
            onAbort() {
                console.log('refushstop');
            },
            getBannerInfo() {
                // banner数据
                var that = this;
                this.$u.api.getBanner({
                    type: '1,3,4,5,11,12,13,14'
                }).then(e => {
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    console.log(res);
                    if(res.topBannerList&&res.topBannerList.length>0)
                    {
                        that.topBannerList = res.topBannerList;
                        //that.headerColor = that.topBannerList[0].colour;
                    }
                    that.singleLineList = res.singleLineList;
                    that.doubleLineList = res.doubleLineList;
                    that.bottomBannerList = res.bottomBannerList;
                    that.fastenter=res.indexbanner;
                    that.popBannerSList=res.popBannerSList;
                    that.enterTop=res.enterTop;
                    that.enterDown=res.enterDown;
                    setTimeout(() => {
                        that.triggeredstate = false;
                        that._freshing = false;
                    }, 300)
                }).catch(function(err) {
                    console.log(err)
                })
            },
            goTik() {
                uni.navigateTo({
                    url: '../active/tiktoklist'
                })
            },
            godydetails(itm) {
                const info = {}
                info.nowInfo = itm
                info.pageCurrent = 2
                info.type = 0
                info.storgeList = this.dyList
                utils.setCache('pathInfo', info)
                uni.navigateTo({
                    url: '../active/dyvideoDetails'
                })
            },
            getHomeMenuList() {
                var that = this;
                var datalist=[{"id":51,"mname":"淘宝返利","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E5%85%A8.png","parameter_json":{"appId":"","route":"","url":"/pages/active/tmsearch","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":3,"mname":"京东返利","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E7%BD%91.png","parameter_json":{"appId":"","route":"","url":"../active/jdSearch","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":49,"mname":"抖音返利","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E4%BC%98.png","parameter_json":{"appId":"","route":"","url":"/pages/active/dysearch","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":5,"mname":"拼多多返利","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E6%83%A0.png","parameter_json":{"appId":"","route":"","url":"../active/pddsearch","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":7,"mname":"唯品会返利","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E5%88%B8.png","parameter_json":{"appId":"","route":"","url":"/pages/active/vipsearch","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":10,"mname":"美团红包","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E8%B4%AD.png","parameter_json":{"appId":"","route":"","url":"/pages/mine/mt","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":11,"mname":"饿了么红包","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E7%89%A9.png","parameter_json":{"appId":"","route":"","url":"/pages/mine/elm","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":8,"mname":"电影7折","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E6%8B%BF.png","parameter_json":{"appId":"","route":"","url":"","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":"17"},"url_type":"11","is_top":"0"},{"id":2,"mname":"9.9包邮","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E8%BF%94.png","parameter_json":{"appId":"","route":"","url":"../active/specialOffer","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"},{"id":6,"mname":"大牌优选","group":"1","type":"1","image":"https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/%E5%88%A9.png","parameter_json":{"appId":"","route":"","url":"../active/brandSale","cmark":"","activityId":"","goodsId":"","goods_platform":"","template_id":"","jtk_act_id":""},"url_type":"1","is_top":"0"}];
                that.navbarList = datalist;
                // this.$u.api.getHomeMenu({
                //     type: 1
                // }).then(e => {
                //     console.log(e);
                //     if (e.code != 0) return that.$alert(e.msg)
                //     that.navbarList = e.data.list;
                // }).catch(function(err) {})
            },
            getrecommendGoods() {
                var that = this;
                this.$u.api.getMQD({}).then(e => {
                    if (e.code != 0) return that.$alert(e.msg)
                    that.zdmList = e.data.zdm;
                    that.phbList = e.data.phb;
                    that.dyList = e.data.dygoods;
                }).catch(function(err) {})
            },
            getbottomGoodsList(type) {
                var that = this;
                this.$u.api.getGoodThing({
                    deviceType: getApp().globalData.platform == 'android' ? (getApp().globalData.systemLevel < 10 ?
                        'IMEI' : 'OAID') : 'IDFA',
                    deviceValue: getApp().globalData.equipmentNumber,
                    pageId: 1,
                    pageSize: 10,
                    type: type
                }).then(e => {
                    if (e.code != 0) return that.$alert(e.msg)
                    var res = e.data.list;
                    if (res.length < 10) {
                        that.loadingState = false
                        that.loadstatus = 'normal'
                    } else {
                        that.currentPage++
                        that.loadstatus = 'loading'
                        that.loadingState = true
                    }
                    that.bottomGoodsList = res
                }).catch(function(err) {})
            },
            getNextPage() {
                if (this.loadingState) {
                    this.loadingState = false
                    var that = this;
                    this.$u.api.getGoodThing({
                        deviceType: getApp().globalData.platform == 'android' ? (getApp().globalData.systemLevel <
                            10 ? 'IMEI' : 'OAID') : 'IDFA',
                        deviceValue: getApp().globalData.equipmentNumber,
                        pageId: this.currentPage,
                        pageSize: 10,
                        type: this.bottomType
                    }).then(e => {
                        if (e.code != 0) return that.$alert(e.msg)
                        var res = e.data.list;
                        if (res.length < 10) {
                            that.loadingState = false
                            that.loadstatus = 'normal'
                        } else {
                            that.currentPage++
                            that.loadstatus = 'loading'
                            that.loadingState = true
                        }
                        that.bottomGoodsList = that.bottomGoodsList.concat(res)
                    }).catch(function(err) {})
                }
            },
            switchtype(info, idx) {
                if (this.bottomCurrent != idx) {
                    this.currentPage = 1;
                    this.bottomType = info.type;
                    this.getbottomGoodsList(this.bottomType);
                    this.$nextTick(() => {
                        this.$emit('scrolltoview')
                        this.bottomCurrent = idx;
                    })
                }
            },
            getfixedHeight(e) {
                uni.createSelectorQuery().in(this).select('.goods-bottom-List').boundingClientRect(data => {
                    this.$emit('pushfixed', data.top)
                }).exec();
            },
            changeColor(e) {
                this.swpidx = e.detail.current
                this.topBannerList.forEach((itm, idx) => {
                    if (idx == e.detail.current) {
                        this.headerColor = itm.colour
                    }
                })
            },
            goUrl(info) {
                utils.goUrl(info, this)
            },
            goFUrl(info)
            {
                uni.navigateTo({
                    url: info.url
                });
            },
            gojgqUrl(info) {
                if (info.urlType == '0') {
                    uni.navigateTo({
                        url: '../webView/webView?url=' + info.murl
                    })
                } else if (info.urlType == 1) {
                    uni.navigateTo({
                        url: info.murl
                    })
                } else if (info.urlType == '2') {
                    // #ifdef APP-PLUS
                    if (plus.os.name == 'Android') {
                        console.log(plus.os.name);
                        plus.runtime.openURL(info.murl, res => {
                            uni.navigateTo({
                                url: '../webView/webView?url=' + info.murl
                            })
                        }, 'com.taobao.taobao');
                    } else {
                        info.murl = info.murl.split('//')[1]
                        plus.runtime.openURL('taobao://' + info.murl, function(res) {
                            uni.navigateTo({
                                url: '../webView/webView?url=' + info.murl
                            })
                        }, 'taobao://');
                    }
                    // #endif
                }
            },
            goDetails(info) {
                //info.searchSource = 1
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
            },
            getRQList() {
                // é‡‘刚区
                var that = this;
                this.$u.api.getM({}).then(e => {
                    if (e.code != 0) return that.$alert(e.msg)
                    that.rqList = e.data;
                }).catch(function(err) {})
                // this.$http.post('tb/getM', 'application/json').then((res) => {
                //     console.log("rexiao========================" + JSON.stringify(res))
                //     this.rqList = res;
                // })
            },
            gorxb() {
                console.log("=======================" + JSON.stringify(this.rqList))
                uni.navigateTo({
                    url: '../webView/webView?url=' + this.rqList.fqbUrl
                })
            },
            goddq() {
                uni.navigateTo({
                    url: '../webView/webView?url=' + this.rqList.ddqUrl
                })
            }
        }
    }
</script>
<style lang="scss">
    .f_contant
    {
            display: flex;
            justify-content: space-between;
            width: 96%;
            height: 500rpx;
            flex-direction: row;
            padding: 20rpx 0;
            margin: auto;
            .f_left{
                width:49%;
                border-radius: 12rpx;
                background: #fff;
            }
            .f_right{
                width:49%;
                display: flex;
                flex-direction: column;
                justify-content: space-between;
            }
            .f_imgcon
            {
                height: 49%;
                border-radius: 12rpx;
                image
                {
                    width:100%;
                    border-radius: 12rpx;
                    height: 100%;
                }
            }
            .f_centerSwiper-container {
                .swiper-box {
                    width: 100%;
                    height: 100%;
                    .swiper-item {
                        width: 100%;
                        height: 100%;
                    }
                }
            }
    }
    .c-loading-img {
             width: 96%;
            height: 132rpx;
            background: #fff;
            margin: auto;
            margin-top: 20rpx;
            border-radius: 12rpx;
            justify-content:space-between;
            padding:5rpx;
        .imgbox {
            width: 158rpx;
            height: 105rpx;
            // max-height: 72rpx;
        }
    }
    .juan {
        height: 28rpx;
        background: linear-gradient(90deg, #ff8873 0, #ff4f4f 100%);
        border-radius: 4rpx;
        padding: 0 10rpx 0 2rpx;
        font-size: 19rpx;
        font-weight: 400;
        color: #fff;
        line-height: 28rpx;
    }
    .juan text {
        background: #fff;
        border-radius: 2rpx 0 0 2rpx;
        font-size: 20rpx;
        color: #FE3A33;
        margin: auto 10rpx auto 0;
        min-width: 24rpx;
        max-width: 24rpx;
        min-height: 24rpx;
        max-height: 24rpx;
        display: inline-block;
        line-height: 24rpx;
        text-align: center;
        vertical-align: middle;
        margin-top: -4rpx;
    }
    .loading-img {
        width: 100%;
        height: 150rpx;
        margin-bottom: 16rpx;
        .imgbox {
            width: 208rpx;
            height: 126rpx;
            // max-height: 72rpx;
        }
    }
    .swiper-scroll {
        width: 100%;
        height: 100vh;
    }
    .indexbody-index-wrapper {
        width: 100%;
        position: relative;
        .topheaderCard-container {
            width: 100%;
            height: 380rpx;
            position: absolute;
            .ellipse {
                width: 130%;
                height: 100%;
                border-radius: 0 0 50% 50%;
            }
        }
        .pageBody-container {
            width: 100%;
            //background-color: #FFFFFF;
            //margin-bottom: 16rpx;
            .column-container {
                width: 100%;
                z-index: 10;
                .bannerSwiper-container {
                    width: 100%;
                    height: 230rpx;
                    padding: 0 16rpx;
                    margin-bottom: 16rpx;
                    /deep/.swiper-box {
                        width: 100%;
                        height: 100%;
                        .swiper-item {
                            width: 100%;
                            height: 100%;
                            border-radius: 12rpx;
                            overflow: hidden;
                        }
                        .uni-swiper-dot {
                            width: 20rpx;
                            height: 6rpx;
                            border-radius: 3rpx;
                        }
                    }
                }
                .centerSwiper-container {
                    width: 100%;
                    height: 190rpx;
                    padding: 0 20rpx;
                    margin-bottom: 16rpx;
                    .swiper-box {
                        width: 100%;
                        height: 100%;
                        .swiper-item {
                            width: 100%;
                            height: 100%;
                        }
                    }
                }
                .cardsList-container {
                    width: 100%;
                    flex-wrap: wrap;
                    padding: 0 20rpx;
                    margin-bottom: 16rpx;
                    .card-items {
                        width: 340rpx;
                        height: 135rpx;
                        overflow: hidden;
                        border-radius: 8rpx;
                        margin-bottom: 10rpx;
                    }
                }
                /deep/.navslider-box {
                    margin: auto;
                    width: 96%;
                    background-color: #FFFFFF;
                    border-radius: 12rpx;
                    .swiper-type {
                        width: 100%;
                        .slider_itemslist {
                            width: 100%;
                            flex-wrap: wrap;
                            padding: 20rpx 0;
                            .item {
                                width: 20%;
                                margin-bottom: 30rpx;
                                image {
                                    width: 80rpx;
                                    height: 80rpx;
                                    margin-bottom: 10rpx;
                                }
                                .desc {
                                    font-size: 28rpx;
                                    font-weight: 400;
                                    color: #333333;
                                }
                            }
                        }
                    }
                    .uni-swiper-dot {
                        width: 20rpx;
                        height: 6rpx;
                        border-radius: none;
                    }
                }
            }
        }
        .pagebottomBody-container {
            width: 100%;
            padding: 0 20rpx;
            margin: 6rpx 0;
            .goodsFalling-container {
                width: 100%;
                height: 505rpx;
                background: #FFFFFF;
                border-radius: 16rpx;
                margin-bottom: 20rpx;
                .box-bar-content {
                    width: 100%;
                    height: 110rpx;
                    padding: 0 20rpx;
                    .title-text {
                        font-size: 32rpx;
                        font-weight: 500;
                        color: #333333;
                    }
                    .tips-txt {
                        height: 30rpx;
                        background: linear-gradient(-90deg, #7619EC, #A429F3);
                        border-radius: 15rpx 15rpx 15rpx 0px;
                        font-size: 24rpx;
                        font-weight: 500;
                        color: #FFFFFF;
                        margin-left: 20rpx;
                        padding: 0 20rpx;
                    }
                }
                .goodsScroll-container {
                    width: 100%;
                    height: 395rpx;
                    .scrollgoods-box {
                        width: 100%;
                        height: 100%;
                        .scrollList-content {
                            white-space: nowrap;
                            padding-left: 8rpx;
                            .goods-items {
                                display: inline-block;
                                width: 226rpx;
                                height: 390rpx;
                                border-radius: 8rpx;
                                overflow: hidden;
                                margin-right: 20rpx;
                                .items-container {
                                    width: 100%;
                                    height: 100%;
                                    .image-content {
                                        width: 226rpx;
                                        height: 226rpx;
                                        position: relative;
                                        border-radius: 8rpx;
                                        overflow: hidden;
                                        .spec-box {
                                            width: 100%;
                                            height: 30rpx;
                                            background: linear-gradient(86deg, #FD8E0E, #FFBD0A);
                                            border-radius: 0px 0px 8rpx 8rpx;
                                            font-size: 22rpx;
                                            font-weight: 500;
                                            color: #FFFFFF;
                                            position: absolute;
                                            bottom: 0;
                                        }
                                    }
                                    .goodsinfo-content {
                                        width: 100%;
                                        height: 160rpx;
                                        padding: 0 10rpx;
                                        .goodsName-box {
                                            width: 100%;
                                            line-height: 34rpx;
                                            white-space: nowrap;
                                            overflow: hidden;
                                            text-overflow: ellipsis;
                                            font-size: 24rpx;
                                            font-weight: 400;
                                            color: #444444;
                                            margin-top: 5rpx;
                                        }
                                        .price-info-container {
                                            width: 100%;
                                            .nowPrice-content {
                                                .rmbicon {
                                                    font-size: 24rpx;
                                                    font-weight: 400;
                                                    color: #FF4242;
                                                    line-height: 34rpx;
                                                }
                                                .nowprice {
                                                    font-size: 26rpx;
                                                    font-weight: bold;
                                                    color: #FF4242;
                                                    line-height: 34rpx;
                                                }
                                            }
                                            .oldPrice-content {
                                                margin-left: 10rpx;
                                                .oldprice {
                                                    text-decoration: line-through;
                                                    line-height: 34rpx;
                                                    font-size: 24rpx;
                                                    font-weight: 500;
                                                    color: #999999;
                                                }
                                            }
                                        }
                                        .saleNum-container {
                                            width: 100%;
                                            margin-top: 5rpx;
                                            .content-box {
                                                height: 30rpx;
                                                background: #FAE7AD;
                                                border-radius: 5rpx;
                                                overflow: hidden;
                                                .txt-tips {
                                                    font-size: 24rpx;
                                                    font-weight: 500;
                                                    color: #613309;
                                                    padding: 0 6rpx;
                                                }
                                                .salenum {
                                                    height: 30rpx;
                                                    background: linear-gradient(9deg, #F63F4E, #FC5F13);
                                                    padding: 0 14rpx;
                                                    font-size: 24rpx;
                                                    font-weight: 500;
                                                    color: #FFFFFF;
                                                    border-radius: 5rpx;
                                                }
                                            }
                                        }
                                        .likeNum-container {
                                            width: 100%;
                                            font-size: 24rpx;
                                            font-weight: 500;
                                            color: #FE3738;
                                            margin-top: 5rpx;
                                            .txt {
                                                color: #333333;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            .welfare-container {
                width: 100%;
                background: #FFFFFF;
                border-radius: 16rpx;
                margin-bottom: 20rpx;
                .titlebar-container {
                    width: 100%;
                    height: 110rpx;
                    padding: 0 20rpx;
                    .left-content {
                        .titletext {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #333333;
                        }
                    }
                    .right-arrowContent {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                }
                .goodsList-container {
                    width: 100%;
                    .goods-items-container {
                        width: 100%;
                        height: 260rpx;
                        padding-left: 10rpx;
                        padding-right: 35rpx;
                        background: #FFFFFF;
                        border-radius: 16rpx;
                        margin-bottom: 20rpx;
                        .left-imagecontent {
                            width: 220rpx;
                            height: 220rpx;
                            border-radius: 8rpx;
                            overflow: hidden;
                        }
                        .right-goodsinfo-container {
                            margin-left: 20rpx;
                            width: 420rpx;
                            height: 220rpx;
                            .top-content-box {
                                width: 100%;
                                .goodsnameinfo-content {
                                    width: 100%;
                                    margin-bottom: 12rpx;
                                    .typeIcon-content {
                                        width: 60rpx;
                                        height: 24rpx;
                                        margin-right: 5rpx;
                                        margin-top: 8rpx;
                                    }
                                    .tradename {
                                        width: 400rpx;
                                        overflow: hidden;
                                        text-overflow: ellipsis;
                                        white-space: nowrap;
                                        font-size: 28rpx;
                                        font-weight: 400;
                                        color: #333333;
                                    }
                                }
                                .desc-box {
                                    width: 100%;
                                    height: 60rpx;
                                    font-size: 24rpx;
                                    font-weight: 500;
                                    line-height: 30rpx;
                                    color: #999999;
                                    overflow: hidden;
                                    text-overflow: ellipsis;
                                    display: -webkit-box;
                                    -webkit-box-orient: vertical;
                                    -webkit-line-clamp: 2;
                                }
                            }
                            .btm-content-box {
                                width: 100%;
                                .discounts-container {
                                    width: 100%;
                                    margin-bottom: 15rpx;
                                    .coupon-box {
                                        width: 102rpx;
                                        height: 30rpx;
                                        background: url(@/static/images/goods/couponbac.png)no-repeat;
                                        background-size: 100% 100%;
                                        font-size: 20rpx;
                                        font-weight: 500;
                                        color: #FF4242;
                                    }
                                    .back-box {
                                        height: 30rpx;
                                        padding: 0 10rpx;
                                        background: linear-gradient(-90deg, #7619EC, #A429F3);
                                        border-radius: 5rpx;
                                        margin-left: 8rpx;
                                        font-size: 20rpx;
                                        font-weight: 500;
                                        color: #FFFFFF;
                                        white-space: nowrap;
                                    }
                                }
                                .price-saleNums-container {
                                    width: 100%;
                                    .left-price-box {
                                        .nowpirce {
                                            .rmb {
                                                font-size: 24rpx;
                                                font-weight: 600;
                                                color: #FF4242;
                                                line-height: 30rpx;
                                            }
                                            .num {
                                                font-size: 30rpx;
                                                line-height: 34rpx;
                                                font-weight: bold;
                                                color: #FF4242;
                                            }
                                        }
                                        .original-price {
                                            font-size: 24rpx;
                                            font-weight: 400;
                                            color: #999999;
                                            margin-left: 15rpx;
                                            line-height: 30rpx;
                                        }
                                    }
                                    .saleNum-content {
                                        font-size: 24rpx;
                                        font-weight: 500;
                                        color: #999999;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            .bottomSwiper-container {
                width: 100%;
                height: 160rpx;
                padding: 0 20rpx;
                background-color: #FFFFFF;
                .swiper-box {
                    width: 100%;
                    height: 100%;
                    .swiper-item {
                        width: 100%;
                        height: 100%;
                    }
                }
            }
            .van-row {
                width: 100%;
                .van-col {
                    float: left;
                    box-sizing: border-box;
                    min-height: 2rpx;
                    width: 50%;
                    .home-row {
                        background: #fff;
                        border-radius: 12rpx;
                        padding: 0 16rpx 0 16rpx;
                        margin-bottom: 16rpx;
                        .title {
                            display: flex;
                            align-items: center;
                            width: 100%;
                            justify-content: space-between;
                            height: 100rpx;
                            .name {
                                font-weight: 700;
                                font-size: 28rpx;
                                color: #333;
                            }
                            .tagg {
                                background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAAAcCAYAAADx5STqAAAAAXNSR0IArs4c6QAABYhJREFUeF7tnEtsFVUYx39n5j7m3tsCbWkpLYVizaUUKAIWAgoWLUoCiY8EjejK+CJGjVa78A0mxsREE+PCjTujJsTEJQkPdaEbFy4N7jXGleFRpPfeOeabc+b2XqiJkpmkZc4kJE2BkzPf95v/95jvjGKBS7+Nx3G0Aq3focxlJgiZAu7AZ5CQAaBjof970/4uBLr74JlPoLwJKAD6pr3d1G5McQm830H/htY/4KkzBJWflBqY1VqQQymlxNptl/xF2yWQquOEEayzHAFeQrPNeia1/S/qhT1gFti9Eyb3Q+fD4K8A6mLXRb31JbC5OZT6GdRHlEZOCqRaa+9aWNusrI/gq5M09AwbgU8J2dciG0K5uEyu7HhH7lTuPK/goSkYHIfOx8BfBjQyZYoEoY9DUTtTSn2Pr4+pYvUXrbWvlBIDtwPXVNJpDqD4HOizLpJFBdDswNnqEbnrq8CeMZjYDPRC35PgdTpQkyFX+BJgxdLC2Z/4PK6C6ulWZY3ga0L6KgfRfAMUrRf8ZPayRFcR60h07y3B/feBryE/AH1Pg98J2ilqwp4Vg/ooruJ5D6jg1lMxrKoJ6QwbCPkO6LfuySW8iaW73MFdsHYNXJ2FYAhWPQu55aBdjpqCU8WoOVB/4DcmVTB6PoI1UlSNYoYzaO52StqSFEnI39wPeyegEYKeg8JaWP2cAzUFQluWtMrqnaM0MqWUitoB6GkeRfGFzRXigindrSzm1cUqYqqKB4f2QiUwnShdg+IQDLwAuRVOUdP1oSm0FEdVufqlhP6AK5wlZI9T0xY1rQH7qlAdhrkaeL5R1OI6GHyxXVFV1P5L123ZW92qqvqRUu4epWfYT8jpKIk1upFti8dV/nAFJm8HbQtSZUENhmHda5DralFUDeHf2UMp3TuOWWzghQeUfoUTwJtOTa3VxTx5YGocujuhHho1ledXiqd8D/RIB6Bsn+sQ/C7oGM/8M54Ct0ZV8d5VeppzKPa7/NRyJgXU9lUwvh7mGvJCz/yJ285K1PNKVIHi5aF+AXofhMFjJofNeEBKGFabp6pvJfSfJ6Sa+bAf90x7fJjcAn5rTSmwCoP2vYekAfJzWINCL6x/Cwp9Jod1oCbJqgn/yvtVQv8lqW+TXH3JriVm2bsO+rugXjcwRmJqoW0WTQo8DxpXYOh56D0E9UsW5CV794t344rLDlRxT1xAVcuwfb3JS+NwH8PZDP/y73PQmIUVu2HkDVtwLV4/L/mdRaBmPfTHPdOygjvXQlA04EVqakO+iftWXeVnyU8D2PA+VEaNskZpgbsStkBL6HfFlBmJ2NEFIz1Qi9VUQT0e8hFI4/DvQ/0iDD0FQ09A/bKDNGE6W5ZrKaZce8rYZZUPRemV2lwg78FwN5Tytrtsh3ukX9oxBmMfGlVtDv6k560Mr2zbU+qEa/jHFMgoRJyvinlKMtq3EjqDFhZFVRuw8QPo3ucKqHSfoGsa/u4V6jygseHFRDLoONENHUUItS2g/oKBo1B93eSlzTnydD2W0dXbX6GKEdxQyjUoNEFdDpW8UVRR0kI/bPsMgn7TQ3U90zSfofahlAhUsfg0Z+0bKpsXpLmHRb52DOqOClQKRMccpR01+h4MPQK1CyBNf3elZYHrx/zc4PQCto5B3RZARwC1i7DyXtj6sX2B52Z30iJ0fmh/ocHp+OSpO4pi7B+DujUPZemnFmDnV7BsC9RnXTsqPUr//ShKs36IYXWH++ZBva0AhTm45WXYMG2U1TX2k8b0vx/ua8Lqjkub+khaVV1lGKvD8mHY9TXkSu4wX3KI3vhx6euUNasfoIjf+6/phzFg03FYfdiM87kCKjlU51f6/x+gaIU1s5/0ib+KMroFDh+DnrvM3Km7krHADX7S5x9NQ+SquvQhJAAAAABJRU5ErkJggg==);
                                background-size: 100% 100%;
                                display: flex;
                                align-items: center;
                                font-size: 22rpx;
                                height: 38rpx;
                                color: #FFFFFF;
                                width: 186rpx;
                                .ddq {
                                    text-align: center;
                                    display: inline-block;
                                    width: 76rpx;
                                    font-size: 22rpx;
                                    margin-left: 4rpx;
                                }
                                view {
                                    font-size: 24rpx;
                                    color: #ff6101;
                                    margin-left: 14rpx;
                                }
                            }
                            .tag {
                                background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIYAAAAcCAYAAACkhMe0AAAAAXNSR0IArs4c6QAAAydJREFUaEPtW0trU0EU/r5b+0BdNkHbBLqp4mPjwo0FoWJR3LvwH4iCIO4EEfwBbgSpiyqIdOHKrWiLG4X+AaH4BJtIG4VWbElqc4+c+4g3aRJuSiideAa6aJiZe853Ps5rZogmQ0Q8AEJSpFjcj/7qaQjPA5gAOQpgBCIHm6213xxFgFyHLy/h8TYzo4tsVENJQdIPyFEqXgZxE5BTEAw4qrKJnQ4BH4A6hE8gLtURQ0T6SFblR/EYfJkG5Kx6jmjfeKH+u41Q6b5ts/Y4AlsA9sHH85qBa57iZ2EKVXkGIAtAyaDEUCYZGfa4VbsmHrkeGLtGipVvF0HvBUQGAVQB9HXtY7aROwgoMWqkKBWOQvAGkEMAQpdio1cRiNODRv3UGfwLJSJClApzACbNU/QqF4II0C4liHJIfgXlQhhKSoUrEJmNcgpdbKO3EEgWDuXIzvUaBuUqXoP+XWbzHyjyZQilgTlAzpi36C02RNpo2CAE84A8BAffYmvr1zZNKxUfY2MV7V0FZad8X5pEH15FiWa4iY1eQSD0FOI9QvbwdW1FtFMsSCkAah+Lsrx0D8Qd8xa9woWaHmFVSSzgj3eOIyMbIqIFRUtyxN4i9BgrS/NR0pmMQz2H0n+oUOT95Qaz+QdKCpJabaYalFJhESJHokaWhZFUsDkzqQpPJjicX4jbEmklV2L8hsiBtAtsnlMIGDGcMtfuCGuhZHdwdu4rbZPPZKLZTDNLPp2zd0cCty1Xk/duGne1crUjnJ2cXN/g8obeoVxeRS63GVyxCHsX2ryoOz+xBpeTtu5Y6GQrogJwA5D3gD+DTP6ptsi3E8Na4h2j7OiCxkO0mCxPkFm9Sp7cVO9Ra4mrknaI5qipdy62hg0lhv71g7jFTO5+stcRX9SxY/edg+zyyshreJ+xtn6c4+OVWBm7qOOyWbslO7EJkRPM5j/G4cSu9nULXJf3aUWMIM+Inw0sF6ZAuwzssp07kL11KEluYs8HOoDU/amagOppa+vks4Ec9uDIfaOn0SDyFjKDzNq1puVq4y72RDENri7PYRnUBpdMYzj3OL4Dmmxy/QW0ErCCkfeAigAAAABJRU5ErkJggg==) no-repeat 50%;
                                background-size: 100% 100%;
                                display: flex;
                                align-items: center;
                                color: red;
                                font-size: 22rpx;
                                height: 38rpx;
                                width: 162rpx;
                                image {
                                    width: 22rpx;
                                    height: 18rpx;
                                    margin: 0 8rpx 0 12rpx;
                                }
                            }
                        }
                        .g-row {
                            display: flex;
                            margin: 0 -12rpx;
                            view {
                                margin: 0 4rpx;
                                overflow: hidden;
                                .pic {
                                    position: relative;
                                    border-radius: 12rpx;
                                    margin: 0;
                                    .num {
                                        background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAuFJREFUSEu9V01rFEEQfW8GFSR+oIKKoPiFiAgh5KDgQY1486bB6F2PuYiCCklAD4mIKIIoIiKaaKIIihcT4h+I4lnxKOIhXpKLxJ2S/pjZnp6endlEbAi7SXfXq3r1uqpC2CUCYnCAHBpKZKpnPVZEx4H4BES6IdwMJB3p2aV8MgMcPxWzd6IhH3pOgtEVAJ0ABIA5I+qrv9RW80h+VwDS3NOfZpcqMhIiM+eWYf7bNTRwUVshEojQ7jLFrR2d64vjK2UAEYeQyPSRYQvWMK4gzhn3AywxmN3JuEtzZiPUbE0dPo1ExiCSmPgtjTnGPAuaKofRKofsdcrksTVo/J4G0AVARWciS1OTpahdwLA3lMlDZ7CAZzmwFDEHGuCo4JSbhDLAdwdHIegDkACIaosiVa6rRP9yplCrVK3SNwe+gLIbopXph9E04T+LVOqtXobrQPYsXnfPIWL1ow6Joh06HEDRCgkZrJJ+S8CyHL7qslA1dZ2B+IqposDsUyY6QzXLmk11FNKTv6d+d5evP7NPebG/BeAiklRaamylkbF9/wiwnnOUp3v/M+CTPU5R9L2skmk7xTSl9PEuMQXGT7rKcAToeh4oQLV4KYqO8mhn+dWlBKglWezPlIfbFwdY0u8qRArKg20tAN0RoRaHTRGE2CHmKPe3ismTJxhdSJwcqjMFTbXYz981ZYn8Srm3xbheCMD7gx4EnOW3ntCQ1WxdVj0ySrm7SY1RRe+1AYeX8sZV58WbSYI8S7mzUfXBcLfIReTZ9XMUcsj43IAoMPmE5R1HKbc3lL/DOr63PqMg1U8ExH3s//mccmtd2hoDqnFzFojQpbwwEeiBTK0YEUfYP3tJj6Ryc60tbUsMxwCmEak0RXrkjDCClTuu8vzHBT10y43Vtt1XqDA4EoScpLKnJvXPYHydF369lHHE7DURU4Y72nzRpUzMA/gBYgaI3uLPqve8/H1W0YhBiPp3Qt38C/sjQ6T/3LUKAAAAAElFTkSuQmCC);
                                        background-size: 100% auto;
                                        position: absolute;
                                        top: 0;
                                        left: 0;
                                        z-index: 10;
                                        width: 32rpx;
                                        height: 32rpx;
                                        line-height: 32rpx;
                                        text-align: center;
                                        display: block;
                                        color: #fff;
                                    }
                                    .van-image {
                                        // position: relative;
                                        display: inline-block;
                                        border-radius: 12rpx;
                                        height: 140rpx;
                                        width: 140rpx;
                                        image {
                                            border-radius: 12rpx;
                                            width: 100%;
                                            height: 100%;
                                        }
                                    }
                                }
                                .time {
                                    text-align: center;
                                    height: 36rpx;
                                    background-image: linear-gradient(270deg, #ff7300, #ffb717);
                                    color: #fff;
                                    font-size: 20rpx;
                                    line-height: 36rpx;
                                    padding-left: 12rpx;
                                    border-radius: 12rpx;
                                    white-space: nowrap;
                                    text-overflow: ellipsis;
                                    overflow: hidden;
                                }
                                .my {
                                    height: 72rpx;
                                    display: flex;
                                    font-weight: 700;
                                    justify-content: center;
                                    align-items: center;
                                    font-size: 26rpx;
                                    color: #ff2b22;
                                }
                            }
                        }
                    }
                }
            }
            .everysBuying-container {
                width: 100%;
                height: 414rpx;
                border-radius: 16rpx;
                background-color: #FFFFFF;
                margin-bottom: 20rpx;
                .box-bar-content {
                    width: 100%;
                    padding: 0 20rpx;
                    .title-text {
                        font-size: 32rpx;
                        font-weight: 500;
                        color: #333333;
                        margin: 20rpx 0;
                    }
                    .tips-txt {
                        height: 30rpx;
                        background: linear-gradient(-90deg, #7619EC, #A429F3);
                        border-radius: 15rpx 15rpx 15rpx 0px;
                        font-size: 24rpx;
                        font-weight: 500;
                        color: #FFFFFF;
                        margin-left: 20rpx;
                        padding: 0 20rpx;
                    }
                }
                .goodsScroll-container {
                    width: 100%;
                    height: 310rpx;
                    margin-top: 20rpx;
                    .scrollgoods-box {
                        width: 100%;
                        height: 100%;
                        .scrollList-content {
                            white-space: nowrap;
                            padding-left: 8rpx;
                            .goods-items {
                                display: inline-block;
                                width: 220rpx;
                                height: 310rpx;
                                border-radius: 8rpx;
                                overflow: hidden;
                                .items-container {
                                    width: 100%;
                                    height: 100%;
                                    .image-content {
                                        width: 166rpx;
                                        height: 166rpx;
                                        margin-top: 10rpx;
                                    }
                                    .goodsinfo-content {
                                        width: 100%;
                                        height: 120rpx;
                                        padding: 0 10rpx;
                                        .goodsName-box {
                                            width: 100%;
                                            line-height: 34rpx;
                                            white-space: nowrap;
                                            overflow: hidden;
                                            text-overflow: ellipsis;
                                            font-size: 24rpx;
                                            font-weight: 400;
                                            color: #444444;
                                            margin-top: 5rpx;
                                        }
                                        .coupons-container {
                                            width: 100%;
                                            margin-top: 10rpx;
                                            .couponbac-content {
                                                width: 160rpx;
                                                height: 30rpx;
                                                background: url(@/static/images/goods/quanbg.png) no-repeat;
                                                background-size: 100% 100%;
                                                border-radius: 5rpx;
                                                .textsTip {
                                                    font-size: 20rpx;
                                                    font-weight: 400;
                                                    color: #FFFFFF;
                                                    margin-left: 10rpx;
                                                    white-space: nowrap;
                                                }
                                                .coupons-value {
                                                    font-size: 20rpx;
                                                    font-weight: 500;
                                                    color: #FF4242;
                                                    white-space: nowrap;
                                                    margin-left: 30rpx;
                                                }
                                            }
                                        }
                                        .price-info-container {
                                            width: 100%;
                                            margin-top: 10rpx;
                                            .nowPrice-content {
                                                .rmbicon {
                                                    font-size: 24rpx;
                                                    font-weight: 400;
                                                    color: #FF4242;
                                                    line-height: 34rpx;
                                                }
                                                .nowprice {
                                                    font-size: 26rpx;
                                                    font-weight: bold;
                                                    color: #FF4242;
                                                    line-height: 34rpx;
                                                }
                                            }
                                            .oldPrice-content {
                                                margin-left: 10rpx;
                                                .oldprice {
                                                    text-decoration: line-through;
                                                    line-height: 34rpx;
                                                    font-size: 24rpx;
                                                    font-weight: 500;
                                                    color: #999999;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            .looting-container {
                width: 100%;
                height: 600rpx;
                background: linear-gradient(-90deg, #7619EC, #A429F3);
                padding: 0 22rpx;
                .titlebar-container {
                    width: 100%;
                    .iconbar-content {
                        width: 500rpx;
                        height: 53rpx;
                        margin-top: 20rpx;
                        margin-bottom: 10rpx;
                    }
                    .title-text {
                        font-size: 32rpx;
                        font-weight: bold;
                        font-style: italic;
                        color: #FFFFFF;
                        margin-bottom: 25rpx;
                    }
                }
                .goodscontents {
                    width: 100%;
                    background: #F7F7F7;
                    .scrollgoods-box {
                        width: 100%;
                        height: 360rpx;
                        margin-top: 20rpx;
                        .scrollList-content {
                            height: 360rpx;
                            padding-left: 10rpx;
                            white-space: nowrap;
                            .goods-items {
                                width: 220rpx;
                                height: 360rpx;
                                margin-right: 10rpx;
                                border-radius: 8rpx;
                                display: inline-block;
                                overflow: hidden;
                                background-color: #FFFFFF;
                                .items-container {
                                    width: 100%;
                                    height: 100%;
                                    .image-content {
                                        width: 220rpx;
                                        height: 220rpx;
                                        margin-top: 10rpx;
                                    }
                                    .goodsinfo-content {
                                        width: 100%;
                                        height: 140rpx;
                                        padding: 0 10rpx;
                                        .goodsName-box {
                                            width: 100%;
                                            line-height: 34rpx;
                                            white-space: nowrap;
                                            overflow: hidden;
                                            text-overflow: ellipsis;
                                            font-size: 24rpx;
                                            font-weight: 400;
                                            color: #444444;
                                            margin-top: 5rpx;
                                        }
                                        .coupons-container {
                                            width: 100%;
                                            margin-top: 10rpx;
                                            .couponbac-content {
                                                width: 100rpx;
                                                height: 30rpx;
                                                background: url(@/static/images/goods/couponbac.png)no-repeat;
                                                background-size: 100% 100%;
                                                border-radius: 5rpx;
                                                .coupons-value {
                                                    font-size: 20rpx;
                                                    font-weight: 500;
                                                    color: #FF4242;
                                                    white-space: nowrap;
                                                }
                                            }
                                        }
                                        .price-info-container {
                                            width: 100%;
                                            .nowPrice-content {
                                                .rmbicon {
                                                    line-height: 34rpx;
                                                    font-size: 20rpx;
                                                    font-weight: 400;
                                                    color: #FF4242;
                                                }
                                                .nowprice {
                                                    font-size: 28rpx;
                                                    font-weight: 400;
                                                    color: #FF4242;
                                                }
                                            }
                                            .oldPrice-content {
                                                margin-left: 10rpx;
                                                .oldprice {
                                                    line-height: 34rpx;
                                                    text-decoration: line-through;
                                                    font-size: 20rpx;
                                                    font-weight: 400;
                                                    color: #999999;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    .moreGoods-bar {
                        width: 100%;
                        height: 60rpx;
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                }
            }
            .Tiktok-container {
                width: 100%;
                height: 475rpx;
                padding: 0 20rpx;
                background-color: #FFFFFF;
                .titlebar-container {
                    width: 100%;
                    height: 90rpx;
                    .left-content {
                        .titletext {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #333333;
                        }
                        .bubble-box {
                            width: 200rpx;
                            height: 25rpx;
                            margin-left: 5rpx;
                            background: linear-gradient(-90deg, #7619EC, #A429F3);
                            border-radius: 12rpx 12rpx 12rpx 0px;
                            font-size: 20rpx;
                            font-weight: 400;
                            color: #FFFFFF;
                        }
                    }
                    .right-arrowContent {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                }
                .goodsTopList {
                    width: 100%;
                    height: 340rpx;
                    .scrollgoods-box {
                        width: 100%;
                        height: 340rpx;
                        .scrollList-content {
                            height: 360rpx;
                            white-space: nowrap;
                            .goods-items {
                                width: 220rpx;
                                height: 340rpx;
                                border-radius: 8rpx;
                                margin-right: 10rpx;
                                overflow: hidden;
                                background-color: #FFFFFF;
                                display: inline-block;
                                .items-container {
                                    width: 100%;
                                    height: 100%;
                                    .image-content {
                                        width: 220rpx;
                                        height: 220rpx;
                                        position: relative;
                                        .playback-volume {
                                            position: absolute;
                                            z-index: 1;
                                            top: 14rpx;
                                            left: 14rpx;
                                            background: rgba(0, 0, 0, 0.5);
                                            padding: 5rpx 15rpx;
                                            border-radius: 15rpx;
                                            font-size: 20rpx;
                                            font-weight: 500;
                                            color: #FFFFFF;
                                            text {
                                                font-size: 28rpx;
                                            }
                                        }
                                        .suspend {
                                            position: absolute;
                                            top: 90;
                                            left: 90;
                                            width: 40rpx;
                                            height: 40rpx;
                                        }
                                    }
                                    .goodsinfo-content {
                                        width: 100%;
                                        height: 120rpx;
                                        .goodsName-box {
                                            width: 100%;
                                            line-height: 34rpx;
                                            white-space: nowrap;
                                            overflow: hidden;
                                            text-overflow: ellipsis;
                                            font-size: 24rpx;
                                            font-weight: 400;
                                            color: #444444;
                                            margin-top: 5rpx;
                                        }
                                        .coupons-container {
                                            width: 100%;
                                            margin-top: 10rpx;
                                            .couponbac-content {
                                                width: 100rpx;
                                                height: 30rpx;
                                                background: url(@/static/images/goods/couponbac.png)no-repeat;
                                                background-size: 100% 100%;
                                                .coupons-value {
                                                    font-size: 20rpx;
                                                    font-weight: 500;
                                                    color: #FF4242;
                                                    white-space: nowrap;
                                                }
                                            }
                                        }
                                        .price-info-container {
                                            width: 100%;
                                            .nowPrice-content {
                                                .rmbicon {
                                                    line-height: 34rpx;
                                                    font-size: 20rpx;
                                                    font-weight: 400;
                                                    color: #FF4242;
                                                }
                                                .nowprice {
                                                    font-size: 28rpx;
                                                    font-weight: 400;
                                                    color: #FF4242;
                                                }
                                            }
                                            .oldPrice-content {
                                                margin-left: 10rpx;
                                                .oldprice {
                                                    line-height: 34rpx;
                                                    text-decoration: line-through;
                                                    font-size: 20rpx;
                                                    font-weight: 400;
                                                    color: #999999;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        .goods-bottom-List {
            width: 100%;
            .bottomTypebar-container {
                width: 100%;
                height: 115rpx;
                .typeList {
                    width: 100%;
                    height: 100%;
                    .type-items-container {
                        width: 150rpx;
                        height: 100%;
                        .mainTitle {
                            font-size: 30rpx;
                            font-weight: 500;
                            color: #333333;
                            margin-bottom: 5rpx;
                        }
                        .subtitle {
                            width: 110rpx;
                            height: 36rpx;
                            background: transparent;
                            border-radius: 18rpx;
                            font-size: 24rpx;
                            font-weight: 500;
                            color: #666666;
                        }
                    }
                    .type-container-active {
                        .mainTitle {
                            color: #0f0f0f;
                        }
                        .subtitle {
                            background: #0f0f0f;
                            color: #FFFFFF;
                        }
                    }
                }
                .imbibition {
                    width: 100%;
                    height: 115rpx;
                    z-index: 600;
                    position: fixed;
                    background-color: #FFFFFF;
                }
            }
            .bottomGoods-list-container {
                width: 100%;
                padding: 0 20rpx;
                flex-wrap: wrap;
                .goods-items {
                    margin-bottom: 20rpx;
                }
            }
        }
    }
    @-webkit-keyframes fadeInOut {
        0% {
            opacity: 0;
        }
        25% {
            opacity: 0.5;
        }
        50% {
            opacity: 1;
        }
        75% {
            opacity: 1;
        }
    }
</style>
uniapp/components/sh_page/indexNewPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,612 @@
<template>
    <view style="background: #fff;" class="index-wrapper wrapperLayer borderBox">
        <view class="fixed-container colCen borderBox" style="background: #0f0f0f;">
            <view class="topbarbox"></view>
            <view class="headerSearch-container rowCenBet borderBox">
                <view class="leftgoSearchbox rowCen borderBox" @click="goPath('search')">
                    <view class="searchicon rowCenCen iconfont">
                        <view>&#xe616;</view>
                    </view>
                    <view class="hotSearchbox rowCenCen">
                        <view>输入商品名或粘贴宝贝标题搜索</view>
                    </view>
                </view>
                <view class="rightgoMsg rowCenCen iconfont searchImg" @click="goPath('turnChain')">
                    <image src="https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/zhuanlian.png"></image>
                </view>
                <view class="rightgoMsg rowCenCen iconfont" @click="goPath('officialNotice')">
                    <view>&#xe6e9;</view>
                    <u-badge v-show="isNewMessage" :is-dot="true" type="success"></u-badge>
                </view>
            </view>
            <view class="categoryNavbar-container rowCenBet">
                <scroll-view class="categoryScroll" scroll-x scroll-with-animation @scroll="rowscroll" :scroll-into-view="nowcurrentid" :scroll-left="scrollleftnum">
                    <block v-for="(items,index) in categoryList" :key='index'>
                        <view class="category-container">
                            <view class="category-items colCenCen" @click="cateChange(index)" :id="categoryCurrent==index?'category-items-active':''" :class="categoryCurrent==index?'category-items-active':''">
                                <view class="categoryname">
                                    {{items.cname}}
                                </view>
                                <view class="bottom-border"></view>
                            </view>
                        </view>
                    </block>
                </scroll-view>
                <view class="category-icon-box rowCenCen" @click="showCateModel()">
                    <view class="iconfont">&#xe618;</view>
                </view>
            </view>
        </view>
        <!-- å¼¹æ¡† -->
        <view class="categoryModel-wrapper" @touchmove.prevent>
            <view class="shadow" :class="cateModel?'showShadow':''" @click="closeModel()"></view>
            <view class="category-content" :style="'top:'+Topheight+'px'" :class="cateModel?'showcate':''">
                <view class="catelist-box colCen borderBox" v-if="cateModel">
                    <view class="titlebar rowCen">
                        <view>选择分类</view>
                    </view>
                    <view class="list-container borderBox rowCen">
                        <block v-for="(items,index) in categoryList" :key='index'>
                            <view class="cate-items colCen" v-if="index!=0" @click="changeCurrent(index,items.cid)">
                                <view class="picbox defIcon">
                                    <image :src="items.cpic" mode="aspectFill" :lazy-load="true"></image>
                                </view>
                                <view class="catename">
                                    {{items.cname}}
                                </view>
                            </view>
                        </block>
                    </view>
                </view>
            </view>
        </view>
        <view class="body-container colCen borderBox">
            <swiper class="pageSwiper" :disable-touch='canswiper' duration="200" :current='categoryCurrent' @change='changeCatepage' @transition='swipering' @animationfinish='stopswiper'>
                <swiper-item v-for="(items,index) in categoryList" :key='index' :current-item-id='items.cid'>
                    <view v-if='index==0'>
                        <indexPage ref='indexPage' :recomendType="recomendType" :canrefush='canrefush' :fixedClass='fixedClass' @scrolltoTop='scrolltoTop' @scrolltoview='scrolltoview'
                         @pushfixed='getfixed' @scrollNum='getScroll' :Topheight='Topheight' @passColor='getColor'></indexPage>
                    </view>
                    <view v-else>
                        <categoryPage v-if="index==categoryCurrent+1 || index==categoryCurrent-1 || index==categoryCurrent" :parentId='items.cid'
                         :Topheight='Topheight' :canrefush='canrefush' :canload='index==categoryCurrent'>
                        </categoryPage>
                    </view>
                </swiper-item>
            </swiper>
        </view>
        <!-- å¼¹æ¡† -->
        <view class="categoryModel-wrapper" @touchmove.prevent>
            <view class="shadow" :class="cateModel?'showShadow':''" @click="closeModel()"></view>
            <view class="category-content" :style="'top:'+Topheight+'px'" :class="cateModel?'showcate':''">
                <view class="catelist-box colCen borderBox" v-if="cateModel">
                    <view class="titlebar rowCen">
                        <view>选择分类</view>
                    </view>
                    <view class="list-container borderBox rowCen">
                        <block v-for="(items,index) in categoryList" :key='index'>
                            <view class="cate-items colCen" v-if="index!=0" @click="changeCurrent(index,items.cid)">
                                <view class="picbox defIcon">
                                    <image :src="items.cpic" mode="aspectFill" :lazy-load="true"></image>
                                </view>
                                <view class="catename">
                                    {{items.cname}}
                                </view>
                            </view>
                        </block>
                    </view>
                </view>
            </view>
        </view>
        <view class="body-container colCen borderBox">
            <swiper class="pageSwiper" :disable-touch='canswiper' duration="200" :current='categoryCurrent' @change='changeCatepage' @transition='swipering' @animationfinish='stopswiper'>
                <swiper-item v-for="(items,index) in categoryList" :key='index' :current-item-id='items.cid'>
                    <view v-if='index==0'>
                        <indexPage ref='indexPage' :recomendType="recomendType" :canrefush='canrefush' :fixedClass='fixedClass' @scrolltoTop='scrolltoTop' @scrolltoview='scrolltoview'
                         @pushfixed='getfixed' @scrollNum='getScroll' :Topheight='Topheight' @passColor='getColor'></indexPage>
                    </view>
                    <view v-else>
                        <categoryPage v-if="index==categoryCurrent+1 || index==categoryCurrent-1 || index==categoryCurrent" :parentId='items.cid'
                         :Topheight='Topheight' :canrefush='canrefush' :canload='index==categoryCurrent'>
                        </categoryPage>
                    </view>
                </swiper-item>
            </swiper>
        </view>
        <!-- å¼¹æ¡†å¹¿å‘Š -->
        <u-mask :show="showBulletFrame">
            <view class="warp">
                <!-- <view @tap.stop> -->
                    <image class="pic" :src="BulletFrameData.image" mode="aspectFit"  @tap.stop="goToShowBulletFrame(BulletFrameData)"/>
                <!-- </view> -->
                <view class="clone" @click="showBulletFrame = false">
                    <image class="image" width="64rpx" height="64rpx" src="/static/images/app/close.png"></image>
                </view>
            </view>
        </u-mask>
    </view>
</template>
<script>
    import utils from '@/utils/utils.js'
    import indexPage from '@/components/sh_page/indexCont.vue';
    import categoryPage from '@/components/categoryPage.vue';
    export default {
        props: {
            recomendType: {
                type: Number,
                default: 1
            },
            Topheight: {
                type: Number,
                default: 90
            },
            fixedClass: {
                type: Boolean,
                default: false
            }
        },
        components: {
            indexPage,
            categoryPage
        },
        data() {
            return {
                BulletFrameData:{},
                showBulletFrame:false, // ç”¨äºŽæŽ§åˆ¶å¼¹æ¡†å¹¿å‘Šçš„æ˜¾ç¤º
                isNewMessage:false,
                shareShow: false,
                bannerColor: '',
                cateModel: false,
                categoryCurrent: 0,
                current: 1,
                scrollTop: 0,
                categoryList: [],
                canswiper:false,
                scrollleftnum:0,
                rowLeft:0,
                canrefush:false,
                nowcurrentid:'',
            }
        },
        created() {
            this.getCategoryList();
            this.getPopBannerInfo();
            if(this.categoryList){
                this.getCategoryList();
            }
            this.getNewMessage();
            //this.$refs.indexPage.changeRecommend();
            var open_like_recommend = uni.getStorageSync('open_like_recommend');
            this.recomendType = open_like_recommend == "" ? 1 : open_like_recommend;
        },
        onShow() {
            var user= uni.getStorageSync('userInfo');
            console.log(user);
            if(!user.invitation_code)
            {
                setTimeout(function(){
                    uni.reLaunch({
                        url:"/pages/login/wxlogin"
                    })
                },1000);
                return;
            }
        },
        watch: {},
        methods: {
            goToShowBulletFrame(info){
                this.showBulletFrame = false
                utils.goUrl(info, this)
            },
            getPopBannerInfo() {
                // banner数据
                var that = this;
                this.$u.api.getBanner({
                    type: '7'
                }).then(e => {
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    if(res.length > 0){
                        this.showBulletFrame = true;
                        this.BulletFrameData = res[0]
                    }
                }).catch(function(err) {
                })
            },
            getNewMessage(){
                var that = this;
                this.$u.api.getTopMessId({}).then(e => {
                    if(e.code != 0)return that.$alert(e.msg)
                    if(e.data.id){
                        let oldId = uni.getStorageSync('topMessageId');
                        if(oldId != e.data.id)that.isNewMessage = true;
                    }
                }).catch(function (err) {
                })
            },
            rowscroll(e){
                this.rowLeft = e.scrollLeft
            },
            currentscroll(left){
                this.nowcurrentid = ''
                this.scrollleftnum = this.rowLeft
                this.$nextTick(()=>{
                    this.nowcurrentid = 'category-items-active'
                })
            },
            getCategoryList() {
                var that = this;
                this.$u.api.getTopCalss({ctype:1,parentId:0}).then(e => {
                    if(e.code != 0)return that.$alert(e.msg)
                    var obj = {}
                    obj.cname = '推荐';
                    obj.cid = 0;
                    obj.ctype = 0;
                    that.categoryList = e.data.list;
                    that.categoryList.unshift(obj);
                }).catch(function (err) {
                })
            },
            // é¡µé¢æ ·å¼å¤„理
            getColor(color) {
                this.bannerColor = color;
            },
            getfixed(e) {
                this.fixedHeight = e
            },
            changeCurrent(idx, cid) {
                this.categoryCurrent = idx
                this.canrefush = true
                this.closeModel()
            },
            scrolltoview() {
                this.scrollindex = this.scrollTop
                this.$nextTick(() => {
                    this.scrollindex = this.fixedHeight - (this.Topheight)
                });
            },
            scrolltoTop() {
                this.scrollindex = 0
            },
            scrollmorePage() {
                if (this.categoryCurrent == 0) {
                    this.$refs.indexPage[0].getNextPage()
                }
            },
            swipering(){
                this.canrefush = false
            },
            stopswiper(){
                this.canrefush = true
            },
            // è·¯ç”±è·³è½¬
            goPath(url) {
                if (url == 'search') {
                    uni.navigateTo({
                        url: '../search/search'
                    })
                } else if (url == 'officialNotice') {
                    uni.navigateTo({
                        url: './officialNotice'
                    })
                }
                else if(url=='turnChain')
                {
                    uni.navigateTo({
                        url: '../mine/tools/turnChain'
                    })
                }
            },
            gobanurl(info) {
                console.log(info);
                if (info.urlType == '0') {
                    uni.navigateTo({
                        url: '../webView/webView?url=' + info.url
                    })
                } else if (info.urlType == 1) {
                    console.log(info.murl);
                    uni.navigateTo({
                        url: info.murl
                    })
                }
            },
            showCateModel() {
                this.cateModel = !this.cateModel
            },
            closeModel() {
                this.cateModel = false
            },
            changeCatepage(e) {
                // æ»‘动切换
                 this.bannerColor = '#EE1B14'
                this.categoryCurrent = e.detail.current
                this.currentscroll()
            },
            cateChange(idx) {
                // åˆ†ç±»ç‚¹å‡»
                this.closeModel()
                this.categoryCurrent = idx
            },
            getTopheight() {
                // èŽ·å–é¡¶éƒ¨é«˜åº¦
                console.log("开始获取高度")
                uni.createSelectorQuery().in(this).select('.fixed-container').boundingClientRect(data => {
                    console.log("得到布局位置信息" + JSON.stringify(data));
                    this.Topheight = data.height
                }).exec();
            },
            goDetail(info) {
                console.log(info);
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
            },
            getScroll(e) {
                this.scrollTop = e
            },
            gotik(e) {
                uni.navigateTo({
                    url: '../active/tiktoklist'
                })
            }
        }
    }
</script>
<style lang="scss">
    .index-wrapper {
        height: 100vh;
        overflow: hidden;
        .body-container {
            width: 100%;
            .pageSwiper {
                width: 100%;
                overflow: hidden;
                height: 100vh;
                .swiper-scroll {
                    width: 100%;
                    overflow: hidden;
                    height: 100vh;
                }
            }
        }
        .fixed-container {
            width: 100%;
            position: fixed;
            top: 0;
            left: 0;
            padding: 0 32rpx;
            z-index: 600;
            background-color: #EE1B14;
            // transition: all 0.5s;
            .headerSearch-container {
                width: 100%;
                height: 100rpx;
                z-index: 100;
                .leftgoSearchbox {
                    width: 575rpx;
                    height: 70rpx;
                    background-color: #FFFFFF;
                    border: 1rpx solid #EDEDED;
                    border-radius: 35rpx;
                    .searchicon {
                        width: 28rpx;
                        height: 28rpx;
                        margin-left: 20rpx;
                        font-size: 30rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                    .hotSearchbox {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-left: 18rpx;
                    }
                }
                .rightgoMsg {
                    width: 40rpx;
                    height: 40rpx;
                    font-size: 50rpx;
                    color: #FFFFFF;
                }
            }
            .searchImg{
                image{
                    width: 40rpx;
                    height: 40rpx;
                    font-size: 50rpx;
                    color: #FFFFFF;
                }
            }
            .categoryNavbar-container {
                width: 100%;
                height: 80rpx;
                .categoryScroll {
                    width: 640rpx;
                    height: 60rpx;
                    white-space: nowrap;
                    display: flex;
                    .category-container {
                        display: inline-block;
                        .category-items {
                            margin-right: 30rpx;
                            .categoryname {
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #FFFFFF;
                            }
                            .bottom-border {
                                display: none;
                                background-color: #FFFFFF;
                                width: 65rpx;
                                height: 4rpx;
                                border-radius: 1rpx;
                                margin-top: 5rpx;
                            }
                        }
                        .category-items-active {
                            .categoryname {
                                font-size: 32rpx;
                                font-weight: 400;
                                color: #FFFFFF;
                            }
                            .bottom-border {
                                display: block;
                            }
                        }
                    }
                }
                .category-icon-box {
                    width: 32rpx;
                    height: 32rpx;
                    color: #FFFFFF;
                    font-size: 32rpx;
                    margin-bottom: 10rpx;
                }
            }
        }
        .categoryModel-wrapper {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            z-index: 100;
            .shadow {
                display: none;
            }
            .showShadow {
                width: 100%;
                height: 100vh;
                display: block;
                background: rgba(0, 0, 0, 0.3);
            }
            .category-content {
                width: 100%;
                background-color: #FFFFFF;
                border-bottom-left-radius: 24rpx;
                border-bottom-right-radius: 24rpx;
                z-index: 600;
                position: absolute;
                max-height: 0vh;
                .catelist-box {
                    width: 100%;
                    .titlebar {
                        width: 100%;
                        height: 60rpx;
                        font-size: 24rpx;
                        font-weight: 500;
                        color: #333333;
                        padding: 0 32rpx;
                    }
                    .list-container {
                        width: 100%;
                        margin-top: 30rpx;
                        padding: 0 5rpx;
                        flex-wrap: wrap;
                        .cate-items {
                            width: 185rpx;
                            margin-bottom: 40rpx;
                            .picbox {
                                width: 95rpx;
                                height: 95rpx;
                            }
                            .catename {
                                font-size: 24rpx;
                                font-weight: 400;
                                color: #333333;
                                margin-top: 20rpx;
                            }
                        }
                    }
                }
            }
            .showcate {
                transition: all 0.5s;
                max-height: 100vh;
            }
        }
    }
    .warp{
        position: relative;
        top:50%;
        left:50%;
        transform: translate(-50%, -50%);
        display:flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        .pic{
      //       width: 86.6%;
            // height: 100vw;
        }
    }
    .clone {
        position:absolute;
        bottom: -150rpx;
        transform: translate(calc(50% - 32rpx));
        .image {
            width: 64rpx;
            margin: 0 auto;
            height: 64rpx;
            display: block;
        }
    }
</style>
uniapp/components/sh_page/matherPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,460 @@
<template>
    <view class="spicyMother-wrapper wrapperLayer">
        <view class="topbarbox"></view>
        <view class="topbac-content">
            <view class="topbarbox"></view>
            <view class="colorContent defIcon">
                <image src="https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/inde_top_bg.png" mode="aspectFill"></image>
            </view>
        </view>
        <view class="fixed-content colCen">
            <view class="topbarbox"></view>
            <view class="barbac"></view>
            <view class="headerBar-container colCen">
                <view class="borderBox rowCenBet headerbox">
                    <view class="leftbackicon defIcon" @tap="goback()">
                        <image src="@/static/images/home/returnWhite.png" mode=""></image>
                    </view>
                    <view class="titleBox rowCen">
                        <view class="titleText">
                            è¾£å¦ˆä¼˜é€‰
                        </view>
                    </view>
                    <view class="rightEmpty">
                    </view>
                </view>
            </view>
        </view>
        <view class="pageContent-container colCen">
            <view class="adv-content defIcon">
                <image src="https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/lama.png" mode=""></image>
            </view>
            <view class="category-bar rowCen">
                <scroll-view class="categorybar-scroll" scroll-x :class="scrollTop>fiexdtop?'tofixed':''" :style="'top:'+(scrollTop>fiexdtop?fiexdHeight:'0')+'px;'">
                    <block v-for="(items,index) in navList" :key="index">
                        <view class="rangeItem" :class="nowCurrent==items.cid?'rangeItem-active':''" @tap="changeRange(items.cid)">
                            <view class="boxcontent colCenCen">
                                <view class="nameBox">
                                    {{items.cname}}
                                </view>
                                <view class="border"></view>
                            </view>
                        </view>
                    </block>
                </scroll-view>
            </view>
            <view class="goodsList-container colCen borderBox">
                <view class="goods-content rowStaBet">
                    <view class="goods-items borderBox colCen" v-for="(items,index) in goodsList" :key='index' @click="goDetail(items)">
                        <colGoods :items="items"></colGoods>
                    </view>
                    <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    import colGoods from '../../components/colGoods.vue'
    export default {
        components:{
            colGoods
        },
        data() {
            return {
                navList: [],
                nowCurrent: '',
                fiexdHeight:0,
                fiexdtop:0,
                scrollTop:0,
                goodsList: [],
                pageCurrent: 1,
                canloadmore: false,
                loadstatus: 'loading'
            }
        },
        created() {
            this.getNav()
        },
        onPageScroll(e) {
            this.scrollTop = e.scrollTop
        },
        onReachBottom() {
            if(this.canloadmore){
                this.getData()
            }
        },
        mounted() {
            setTimeout(()=>{
                uni.createSelectorQuery().in(this).select('.fixed-content').boundingClientRect(data => {
                    console.log(data);
                    this.fiexdHeight =data.height
                }).exec();
                uni.createSelectorQuery().in(this).select('.category-bar').boundingClientRect(data => {
                    console.log(data);
                    this.fiexdtop =data.top - this.fiexdHeight
                }).exec();
            })
        },
        methods: {
            getNav() {
                var that = this;
                this.$u.api.getTopCalss({ctype:7}).then(e => {
                    if(e.code != 0)return that.$alert(e.msg)
                    that.navList = e.data.list;
                    that.nowCurrent = that.navList[0].cid
                    that.getData()
                }).catch(function (err) {
                })
            },
            getData() {
                var that = this;
                this.$u.api.optimusMaterial({
                    materialId: this.nowCurrent,
                    pageSize: 20,
                    page: this.pageCurrent
                }).then(e => {
                    if(e.code != 0)return that.$alert(e.msg)
                    uni.stopPullDownRefresh();
                    var res = e.data;
                    console.log(res);
                    if (res.list < 10) {
                        that.pageCurrent++
                        that.canloadmore = false
                        that.loadstatus = 'nomarl'
                    } else {
                        that.canloadmore = true
                        that.loadstatus = 'loading'
                        that.pageCurrent++
                    }
                    that.goodsList = this.goodsList.concat(res.list)
                }).catch(function (err) {
                })
            },
            changeRange(id) {
                this.pageCurrent = 1
                this.canloadmore = false
                this.nowCurrent = id
                this.loadstatus = 'loading'
                this.goodsList = []
                this.getData()
            },
            goDetail(info) {
                console.log(info);
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
            },
            goback() {
                uni.navigateBack({
                    delta: 1
                })
            },
        },
        onPullDownRefresh() {
            this.pageCurrent = 1
            this.goodsList = []
            this.canloadmore = false
            this.getData()
        }
    }
</script>
<style lang="scss">
    .spicyMother-wrapper {
        width: 100%;
        position: relative;
        .topbac-content {
            width: 100%;
            height: 300rpx;
            position: absolute;
            top: 0;
            left: 0;
            .colorContent {
                width: 100%;
                height: 300rpx;
            }
        }
        .fixed-content {
            width: 100%;
            overflow: hidden;
            position: fixed;
            top: 0;
            left: 0;
            z-index: 100;
            .barbac {
                width: 100%;
                height: 300rpx;
                background: url('https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/inde_top_bg.png')no-repeat;
                background-size: 100% 100%;
                position: absolute;
                pointer-events: none;
                top: 0;
                left: 0;
            }
            .headerBar-container {
                width: 100%;
                height: 90rpx;
                z-index: 100;
                .headerbox {
                    width: 100%;
                    height: 90rpx;
                    padding: 0 32rpx;
                    .leftbackicon {
                        width: 32rpx;
                        height: 32rpx;
                        display: flex;
                        align-items: center;
                        justify-content: flex-start;
                        image {
                            width: 17rpx;
                            height: 32rpx;
                        }
                    }
                    .titleBox {
                        .titleIcon {
                            width: 46rpx;
                            height: 37rpx;
                        }
                        .titleText {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #FFFFFF;
                            margin-left: 15rpx;
                            z-index: 101;
                        }
                    }
                    .rightEmpty {
                        width: 32rpx;
                        height: 32rpx;
                    }
                }
            }
        }
        .pageContent-container {
            width: 100%;
            margin-top: 110rpx;
            .adv-content {
                width: 100%;
                height: 204rpx;
                border-radius: 12rpx;
                overflow: hidden;
                padding: 0 32rpx;
            }
            .category-bar {
                width: 100%;
                height: 95rpx;
                .categorybar-scroll {
                    width: 100%;
                    height: 95rpx;
                    white-space: nowrap;
                    padding-left: 32rpx;
                    .rangeItem {
                        display: inline-flex;
                        margin-right: 45rpx;
                        height: 100%;
                        .boxcontent {
                            height: 100%;
                            .nameBox {
                                font-size: 30rpx;
                                font-weight: 500;
                                color: #333333;
                            }
                            .border {
                                width: 60%;
                                height: 2rpx;
                                background: transparent;
                            }
                        }
                    }
                    .rangeItem-active {
                        .boxcontent {
                            .nameBox {
                                font-size: 32rpx;
                            }
                            .border {
                                background: #BF14FD;
                                margin-top: 8rpx;
                            }
                        }
                    }
                }
            }
            .goodsList-container {
                z-index: 1;
                width: 100%;
                padding: 0 32rpx;
                margin-top: 10rpx;
                .goods-content {
                    width: 100%;
                    flex-wrap: wrap;
                    .goods-items {
                        width: 336rpx;
                        height: 546rpx;
                        margin-bottom: 20rpx;
                        .items-container {
                            width: 336rpx;
                            height: 100%;
                            overflow: hidden;
                            border-radius: 8rpx;
                            background-color: #FFFFFF;
                            .image-container {
                                width: 100%;
                                height: 336rpx;
                            }
                            .goodsInfo {
                                width: 100%;
                                height: 190rpx;
                                margin-top: 10rpx;
                                padding: 0 10rpx 10rpx 10rpx;
                                .topgoodsname-box {
                                    width: 100%;
                                    .goodsName-box {
                                        width: 100%;
                                        .typeIcon-content {
                                            width: 60rpx;
                                            height: 24rpx;
                                            margin-right: 5rpx;
                                        }
                                        .goodsText {
                                            width: 250rpx;
                                            font-size: 28rpx;
                                            line-height: 34rpx;
                                            font-weight: 400;
                                            color: #333333;
                                            white-space: nowrap;
                                            overflow-x: hidden;
                                            text-overflow: ellipsis;
                                        }
                                    }
                                    .couponInfo-bar {
                                        width: 100%;
                                        margin-top: 20rpx;
                                        .couponbox {
                                            width: 100rpx;
                                            height: 30rpx;
                                            line-height: 30rpx;
                                            text-align: center;
                                            background: url(../../static/images/goods/couponbac.png)no-repeat;
                                            background-size: 100% 100%;
                                            font-size: 20rpx;
                                            font-weight: 500;
                                            color: #FF4242;
                                            margin-right: 10rpx;
                                        }
                                        .backPrice {
                                            width: 100rpx;
                                            height: 30rpx;
                                            background: linear-gradient(-90deg, #7619EC, #A429F3);
                                            border-radius: 5rpx;
                                            font-size: 20rpx;
                                            font-weight: 500;
                                            text-align: center;
                                            line-height: 30rpx;
                                            color: #FFFFFF;
                                        }
                                    }
                                }
                                .goodsPrice-goodSale {
                                    width: 100%;
                                    .goods-price {
                                        width: 100%;
                                        font-size: 20rpx;
                                        font-weight: 500;
                                        color: #999999;
                                        line-height: 34rpx;
                                        .font {
                                            font-weight: 500;
                                            color: #999999;
                                            line-height: 32rpx;
                                            margin-right: 10rpx;
                                        }
                                        .rmb {
                                            font-weight: bold;
                                            color: #FF4242;
                                            line-height: 32rpx;
                                        }
                                        .price {
                                            color: #FF4242;
                                            font-weight: 500;
                                            font-size: 28rpx;
                                        }
                                    }
                                    .saleNum-box {
                                        width: 100%;
                                        font-size: 20rpx;
                                        font-weight: 400;
                                        line-height: 34rpx;
                                        color: #999999;
                                    }
                                    .shopinfo-box {
                                        width: 100%;
                                        font-size: 20rpx;
                                        font-weight: 400;
                                        line-height: 34rpx;
                                        color: #999999;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .tofixed{
        position: fixed;
        z-index: 100;
        background-color: #FFFFFF;
    }
</style>
uniapp/components/sh_page/minePage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,780 @@
<template>
    <view class="minePage-wrapper">
        <view class="fixed-box colCen" style="background:#0f0f0f">
            <view class="topbarbox"></view>
            <view class="navigate-container rowCenBet">
                <view class="setting-box" style="opacity: 0;">
                    &#xe74b;
                </view>
                <view class="pagetitle" v-if="sct>0.5">
                    ä¸ªäººä¸­å¿ƒ
                </view>
                <view class="setting-box iconfont" @tap="goPage('./setting/setting')">
                    &#xe74b;
                </view>
            </view>
        </view>
        <view class="headerbox-container colCen">
            <view class="topbarbox"></view>
            <view class="headerbox-container rowCenEnd borderBox">
            </view>
            <view class="userInfo-content rowStaBet borderBox">
                <view class="leftuserInfo rowCen">
                    <view class="head-content defIcon">
                        <image  :src="user.avatar" mode="aspectFill"></image>
                        <view class="vipcard rowCenCen">
                            <view>{{user.level_name}}</view>
                        </view>
                    </view>
                    <view class="userName-inviteCode-container">
                        <view class="userNamebox">
                            {{user.nickname}}
                        </view>
                        <view class="under-container rowCen">
                            <view class="inviteCodebox rowCen" @tap='setcode()'>
                                {{user.invitation_code?'邀请码:' + user.invitation_code:'点击填写邀请码'}}
                            </view>
                            <view class="clipbtn" @tap="clipCode()" v-if="user.invitation_code">
                                <view>复制</view>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </view>
        <view class="mine-under-container colCen borderBox">
            <!-- <view class="swiper-container borderBox" v-if="bannerList.length>0">
                <swiper class="banerContent" :autoplay="true" :interval="3000" :duration="1000" circular>
                    <swiper-item v-for="(items,index) in bannerList" :key="index" @tap="goUrl(items)">
                        <view class="swiper-items defIcon">
                            <image :src="items.image" mode="aspectFit"></image>
                        </view>
                    </swiper-item>
                </swiper>
            </view> -->
            <view class="setting-wrapper wrapperLayer colCen">
                <view class="body-container colCen">
                    <view class="userSet-content infoContainer colCen">
                        <view v-for="(items,index) in alllist" :key="index" class="keyvalueBox rowCenBet borderBox" @tap="goUrl(items)">
                            <view class="leftKey">
                            <view style="margin-right: 40rpx;"><image style="width: 60rpx;height: 60rpx;" :src="items.image" mode="aspectFill"></image></view>
                                {{items.mname}}
                            </view>
                            <view class="rightvalue rowCen">
                                <view class="arrow-icon defIcon">
                                    <image src="@/static/images/goods/arrow.png" mode=""></image>
                                </view>
                            </view>
                        </view>
                        </view>
                        </view>
            </view>
            <u-toast ref="uToast" />
            <u-popup v-model="inviteCodeShow" mode="center" border-radius="32" :mask-close-able='true'>
                <inviteCodeModel @closeModel='closeinvite' @confirm='nextStep'></inviteCodeModel>
            </u-popup>
            <u-popup v-model="inviterShow" mode="center" border-radius="32" v-if="inviterShow" :mask-close-able='true'>
                <inviter-model ref='invitermodel' @rewrite='rewriteCode' @setInvite='setCodebtn'></inviter-model>
            </u-popup>
        </view>
    </view>
</template>
<script>
    import {
        mapMutations
    } from "vuex";
    import util from '@/utils/utils.js'
    import APPUpdate from "@/utils/appUpdate.js";
    import inviteCodeModel from '@/components/inviteCode.vue'
    import inviterModel from '@/components/inviterModel.vue'
    export default {
        props: {
        },
        components: {
            inviteCodeModel,
            inviterModel
        },
        data() {
            return {
                user: '',
                appInfo: '',
                dingdanList: '',
                wuLiaoList: '',
                bannerList: '',
                cygnList: '',
                xstgList: '',
                gongJuList: '',
                profit: '',
                platform: '',
                showtar: false,
                bbcList:'',
                sct: 0,
                inviteCodeShow:false,
                inviterShow:false,
                alllist:[]
            }
        },
        onPageScroll(e) {
            if (e.scrollTop < 50) {
                this.sct = e.scrollTop / 20
            }
        },
        onPullDownRefresh()
        {
            this.getuserInfo();
            this.centerInfo();
            this.getmoneyInfo();
            this.getInit();
            uni.stopPullDownRefresh();
        },
        created() {
            if(!this.hasLogin){
                uni.reLaunch({
                    url:"/pages/login/wxlogin"
                })
            }else{
                //getApp().watch(this.ifwtChange,'ifwt')
                this.centerInfo()
                this.getbanner()
            }
            if(this.hasLogin){
                this.getInit();
                this.getmoneyInfo()
                this.getuserInfo()
            }
        },
        methods: {
            getInit()
            {
                if(!getApp().globalData.hasinit)
                {
                    getApp().getAppInfo();
                    setTimeout(()=>{
                        this.getInit();
                    },2000)
                }
                // #ifdef APP-PLUS
                console.log(getApp().globalData.ifwt)
                this.appInfo = uni.getStorageSync('appInfo');
                this.showtar = getApp().globalData.ifwt == 1 ? false : true;
                this.platform = plus.os.name
                // #endif
            },
            getmoneyInfo() {
                var that = this;
                this.$u.api.getEstimateAmount({}).then(e => {
                    if(e.code == 1)return that.$alert(e.msg);
                    this.profit = e.data;
                }).catch(function (err) {
                })
            },
            golevelRules() {
             uni.navigateTo({
               url: '../goods/privilege'
             })
            },
            getuserInfo() {
                var that = this;
                this.$u.api.getUserInfo({}).then(e => {
                    that.user = e.data.userinfo;
                    util.setCache('userInfo', e.data.userinfo)
                }).catch(function (err) {
                    console.log(err)
                })
            },
            getbanner() {
                // banner数据
                var that = this;
                this.$u.api.getBanner({type:'2'}).then(e => {
                    if(e.code == 1)return that.$alert(e.msg);
                    console.log(e.data.info)
                    that.bannerList = e.data.info;
                }).catch(function (err) {
                })
            },
            centerInfo() {
                  this.user = uni.getStorageSync('userInfo');
                var that = this;
                this.$u.api.userHomemenu({}).then(e => {
                    var res = e.data.list;
                    console.log(res);
                    that.cygnList = res.cygnList
                    that.xstgList = res.xstgList
                    that.gongJuList = res.gongJuList
                    that.dingdanList = res.dingdanList
                    that.wuLiaoList = res.wuLiaoList
                    that.alllist=res.gongJuList;
                }).catch(function (err) {
                        console.log(err);
                })
                // this.$http.post('homeMenu/getPersonalCenter').then(res => {
                //     console.log(res,'数据sssssssssssss');
                //     this.dingdanList = res.dingdanList
                //     this.wuLiaoList = res.wuLiaoList
                //     this.wuLiaoList = res.wuLiaoList
                //     this.cygnList = res.cygnList
                //     this.xstgList = res.xstgList
                //     this.gongJuList = res.gongJuList
                // })
            },
            clipCode() {
                uni.setClipboardData({
                    data: this.user.invitation_code,
                    success: () => {
                        uni.showToast({
                            title: '复制成功',
                            duration: 2000,
                            icon: "none"
                        })
                        uni.setStorageSync('clipboard', this.user.invitation_code);
                    }
                })
            },
            goPage(url) {
                console.log(url);
                if (url == './inviteFriends' && !this.user.invitation_code) {
                    this.inviteCodeShow = true
                } else {
                    uni.navigateTo({
                        url: url
                    })
                }
            },
            goUrl(info) {
                console.log(info)
                if(info.url_type == 15)
                {//微信客服
                    let wechat = null
                    let parameter = info.parameter_json;
                    plus.share.getServices(res => {
                        wechat = res.find(i => i.id === 'weixin')
                        if (wechat) {
                            wechat.openCustomerServiceChat({
                                corpid: parameter.cmark, //企业ID
                                url: parameter.url, //客服地址
                            }, src => {
                                console.log("success:", JSON.stringify(src))
                            }, err => {
                                console.log("error:", JSON.stringify(err))
                            })
                        } else {
                            uni.showToast({
                                title: '当前环境不支持微信操作',
                                icon: "error"
                            });
                        }
                    }, function() {
                        uni.showToast({
                            title: "获取服务失败,不支持该操作。" + JSON.stringify(e),
                            icon: 'none'
                        })
                        });
                }
                else
                {
                    util.goUrl(info,this)
                }
            },
            cpr_version(a, b) {
                console.log(a);
                var _a = this.toNum(a),
                    _b = this.toNum(b);
                if (_a == _b) return false
                if (_a < _b) return false
                if (_a > _b) return true
            },
            toNum(a) {
                var a = a.toString();
                //也可以这样写 var c=a.split(/\./);
                var c = a.split('.');
                var num_place = ["", "0", "00", "000", "0000"],
                    r = num_place.reverse();
                for (var i = 0; i < c.length; i++) {
                    var len = c[i].length;
                    c[i] = r[len] + c[i];
                }
                var res = c.join('');
                return res;
            },
            shareApp() {
                // #ifdef APP-PLUS
                var txtdata
                if (plus.os.name == 'Android') {
                    txtdata = getApp().globalData.appinfo.appName + '的下载链接为:' + getApp().globalData.appinfo.appAndroidDownUrl +
                        '\n邀请码:' + this.user.inviteCode
                } else {
                    txtdata = getApp().globalData.appinfo.appName + '的下载链接为:' + getApp().globalData.appinfo.appIosDownUrl + '\n邀请码:' +
                        this.user.inviteCode
                }
                uni.setClipboardData({
                    data: txtdata,
                    success: res => {
                        console.log(res)
                        uni.showToast({
                            title: '下载链接已复制~快去分享给好友吧!',
                            icon: 'none'
                        })
                        uni.setStorageSync('clipboard', txtdata);
                    }
                });
                // #endif
            },
            setcode() {
                if (this.user.invitation_code == '' && this.user) {
                    this.inviteCodeShow = true
                }
            },
            closeinvite(){
                this.inviteCodeShow = false
            },
            nextStep(e){
                uni.setStorageSync('inviterInfo',e)
                this.inviteCodeShow = false
                this.inviterShow = true
            },
            rewriteCode(){
                this.inviteCodeShow = true
                this.inviterShow = false
            },
            setCodebtn(){
                this.inviteCodeShow = false
                this.inviterShow = false
                this.getuserInfo()
            }
        }
    }
</script>
<style lang="scss">
    .minePage-wrapper {
        width: 100%;
        .fixed-box {
            position: fixed;
            width: 100%;
            z-index: 1000;
            .navigate-container {
                width: 100%;
                height: 90rpx;
                padding: 0 30rpx;
                .setting-box {
                    font-size: 34rpx;
                    color: #FFFFFF;
                }
                .pagetitle {
                    font-size: 32rpx;
                    color: #FFFFFF;
                    font-weight: 500;
                }
            }
        }
        .headerbox-container {
            width: 100%;
            height: 426rpx;
            position: relative;
            background: #0f0f0f;
            .headerbox-container {
                width: 100%;
                height: 90rpx;
                padding: 0 32rpx;
            }
            .userInfo-content {
                width: 100%;
                .leftuserInfo {
                    margin-left: 30rpx;
                    .head-content {
                        width: 115rpx;
                        height: 115rpx;
                        position: relative;
                        .vipcard {
                            position: absolute;
                            width: 100%;
                            height: 36rpx;
                            border-radius: 18rpx;
                            background: linear-gradient(0deg, #F7C394, #EFE0D6);
                            font-size: 22rpx;
                            font-weight: 500;
                            color: #613309;
                            bottom: -15rpx;
                        }
                        image {
                            border-radius: 50%;
                        }
                    }
                    .userName-inviteCode-container {
                        margin-left: 25rpx;
                        .userNamebox {
                            font-size: 34rpx;
                            font-weight: bold;
                            color: #FFFFFF;
                        }
                        .under-container {
                            margin-top: 20rpx;
                            .inviteCodebox {
                                height: 36rpx;
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #0f0f0f;
                                padding: 0 18rpx;
                                background: #fff;
                                border-radius: 18rpx;
                            }
                            .clipbtn {
                                width: 80rpx;
                                height: 36rpx;
                                background: #FFFFFF;
                                border-radius: 18rpx;
                                text-align: center;
                                font-size: 24rpx;
                                font-weight: 400;
                                color: #0f0f0f;
                                margin-left: 20rpx;
                            }
                        }
                    }
                }
                .inviteBtn {
                    width: 176rpx;
                    height: 44rpx;
                    background: #E457FD;
                    border-radius: 22rpx 0px 0px 22rpx;
                    font-size: 24rpx;
                    font-weight: 500;
                    color: #FFFFFF;
                    margin-top: 30rpx;
                }
            }
            .profit-container {
                width: 100%;
                margin-top: 70rpx;
                .profit-items {
                    width: 25%;
                    color: #FFFFFF;
                    .price-num {
                        font-size: 28rpx;
                        font-weight: bold;
                    }
                    .price-txt {
                        font-size: 24rpx;
                        font-weight: 500;
                    }
                }
            }
            .account-assets-container {
                width: 100%;
                padding: 0 30rpx;
                position: absolute;
                bottom: -65rpx;
                .cardBac-container {
                    width: 100%;
                    height: 126rpx;
                    background: linear-gradient(4deg, #FEEEE1, #FBE0CF);
                    border-radius: 16rpx;
                    padding: 0 20rpx;
                    .left-content {
                        margin-top: 25rpx;
                        .balance {
                            font-size: 28rpx;
                            font-weight: 500;
                            color: #613309;
                        }
                        .notice-bar {
                            margin-top: 10rpx;
                            .iconfont {
                                font-size: 28rpx;
                                font-weight: 500;
                                color: #613309;
                            }
                            .noticeTxt {
                                max-width: 505rpx;
                                overflow: hidden;
                                text-overflow: ellipsis;
                                white-space: nowrap;
                                font-size: 24rpx;
                                font-weight: 500;
                                color: #613309;
                                margin-left: 20rpx;
                            }
                        }
                    }
                    .right-content {
                        margin-top: 18rpx;
                        .cashOut-btn {
                            width: 120rpx;
                            height: 50rpx;
                            background: #2F385B;
                            border-radius: 25rpx;
                            font-size: 26rpx;
                            font-weight: 500;
                            color: #FFFFFF;
                        }
                        .accumulations {
                            font-size: 22rpx;
                            font-weight: 500;
                            color: #613309;
                            margin-top: 20rpx;
                            line-height: 20rpx;
                            .arrow {
                                font-size: 18rpx;
                                line-height: 20rpx;
                                margin-top: 5rpx;
                            }
                        }
                    }
                }
            }
        }
        .vip-info-container {
          width: 100%;
          height: 60rpx;
          background: #FFF2CF;
         border-radius: 16rpx;
          padding: 0 20rpx;
          margin-bottom: 20rpx;
          .left-info {
            font-size: 24rpx;
            font-weight: 500;
            color: #593A0F;
          }
          .rt-btn {
            width: 152rpx;
            height: 44rpx;
            background-color: rgba(0, 0, 0, 0.6);
            border-radius: 22rpx;
            .vipimg {
              width: 27rpx;
              height: 24rpx;
            }
            .level-txt {
              font-size: 24rpx;
              font-weight: 500;
              color: #FFFFFF;
              margin-left: 10rpx;
            }
          }
        }
        .mine-under-container {
            width: 100%;
            margin-top: 0rpx;
            padding: 0 30rpx;
            .nav-container {
                width: 100%;
                height: 142rpx;
                background: #FFFFFF;
                border-radius: 16rpx;
                padding: 0 26rpx;
                margin-bottom: 20rpx;
                .nav-items {
                    .itemsicon {
                        width: 60rpx;
                        height: 60rpx;
                    }
                    .itemstxt {
                        font-size: 24rpx;
                        font-weight: 500;
                        color: #333333;
                        margin-top: 15rpx;
                    }
                }
            }
            .swiper-container {
                width: 100%;
                margin-bottom: 20rpx;
                .banerContent {
                    width: 100%;
                    height: 180rpx;
                    .swiper-items {
                        width: 100%;
                        height: 100%;
                    }
                }
            }
            .matter-tranform-container {
                width: 100%;
                height: 140rpx;
                background: #FFFFFF;
                border-radius: 16rpx;
                margin-bottom: 20rpx;
                .pushing-matter {
                    .leftIteminfo {
                        color: #333333;
                        .itemName {
                            font-size: 30rpx;
                            font-weight: bold;
                        }
                        .itemexplain {
                            font-size: 24rpx;
                            font-weight: 500;
                        }
                    }
                }
                .centerBorder {
                    width: 2rpx;
                    height: 92rpx;
                    background: #F1F1F1;
                    margin: 0 60rpx;
                }
            }
            .commonFunctions-container {
                width: 100%;
                background-color: #FFFFFF;
                border-radius: 16px;
                margin-bottom: 20rpx;
                .card-title {
                    width: 100%;
                    padding: 0 28rpx;
                    font-size: 30rpx;
                    font-weight: bold;
                    margin: 30rpx 0;
                    color: #333333;
                }
                .function-list {
                    width: 100%;
                    flex-wrap: wrap;
                    .function-items {
                        width: 25%;
                        margin-bottom: 30rpx;
                        .iconbox {
                            width: 60rpx;
                            height: 60rpx;
                        }
                        .itemName {
                            margin-top: 20rpx;
                            font-size: 24rpx;
                            font-weight: 500;
                            color: #333333;
                        }
                    }
                }
            }
        }
    }
    .setting-wrapper {
        .body-container {
            width: 100%;
            margin-top: 20rpx;
            .infoContainer {
                width: 100%;
                background-color: #FFFFFF;
                .keyvalueBox {
                    width: 100%;
                    height: 100rpx;
                    border-bottom: 1rpx solid #F2F2F2;
                    padding: 0 30rpx;
                    .leftKey {
                        font-size: 28rpx;
                        font-weight: 500;
                        color: #333333;
                        display:flex;
                        align-items:center;
                        span {
                            font-size: 24rpx;
                            font-weight: 500;
                            color: #999999;
                        }
                    }
                    .rightvalue {
                        .rightText {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #999999;
                            margin-right: 15rpx;
                        }
                        .arrow-icon {
                            width: 10rpx;
                            height: 18rpx;
                        }
                    }
                }
            }
            .logOut {
                width: 100%;
                height: 100rpx;
                margin-top: 20rpx;
                background-color: #FFFFFF;
                .outText {
                    font-size: 28rpx;
                    font-weight: 500;
                    color: #333333;
                }
            }
        }
    }
</style>
uniapp/manifest.json
@@ -2,8 +2,8 @@
    "name" : "大返官",
    "appid" : "__UNI__FC8858A",
    "description" : "大返官app",
    "versionName" : "1.1.3",
    "versionCode" : 113,
    "versionName" : "1.2.3",
    "versionCode" : 123,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
@@ -12,8 +12,8 @@
        "nvueCompiler" : "uni-app",
        "compilerVersion" : 3,
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "alwaysShowBeforeRender" : false,
            "waiting" : false,
            "autoclose" : true,
            "delay" : 0
        },
@@ -128,11 +128,14 @@
            "splashscreen" : {
                "androidStyle" : "default",
                "android" : {
                    "hdpi" : "E:/OPProject/发版用_勿删/开屏/开屏小.png",
                    "xhdpi" : "E:/OPProject/图片/开屏/开屏中.png",
                    "xxhdpi" : "E:/OPProject/图片/开屏/开屏大.png"
                    "hdpi" : "E:/OPProject/发版用_勿删/android/480X762.9.png",
                    "xhdpi" : "E:/OPProject/发版用_勿删/android/720X1242.9.png",
                    "xxhdpi" : "E:/OPProject/发版用_勿删/android/1080x1882.9.png"
                },
                "iosStyle" : "common"
                "iosStyle" : "storyboard",
                "ios" : {
                    "storyboard" : "E:/OPProject/发版用_勿删/ios/CustomStoryboard.zip"
                }
            },
            "icons" : {
                "android" : {
uniapp/pages.json
@@ -880,33 +880,33 @@
        // "height": "60px",
        "list": [{
                "pagePath": "pages/index/index",
                "iconPath": "static/images/tabBar/home.png",
                "selectedIconPath": "static/images/tabBar/homeActive.png",
                "iconPath": "static/images/tabBar/ne_index.png",
                "selectedIconPath": "static/images/tabBar/ne_index_act.png",
                "text": " é¦–页"
            },
            {
                "pagePath": "pages/rankinglist/fengqiang",
                "iconPath": "static/images/tabBar/fqbico_un.png",
                "selectedIconPath": "static/images/tabBar/fqbico_in.png",
                "iconPath": "static/images/tabBar/ne_qiang.png",
                "selectedIconPath": "static/images/tabBar/ne_qiang_act.png",
                "text": "疯抢榜"
            },
            {
                "pagePath": "pages/rankinglist/xianbao",
                "iconPath": "static/images/tabBar/find.png",
                "selectedIconPath": "static/images/tabBar/findactive.png",
                "iconPath": "static/images/tabBar/ne_xb.png",
                "selectedIconPath": "static/images/tabBar/ne_xb_act.png",
                "text": "线报"
            },
            {
                "pagePath": "pages/community/community",
                "iconPath": "static/images/tabBar/talentSay.png",
                "selectedIconPath": "static/images/tabBar/talentSayactive.png",
                "iconPath": "static/images/tabBar/ne_bend.png",
                "selectedIconPath": "static/images/tabBar/ne_bend_act.png",
                "text": "本地生活"
            }, 
             
            {
                "pagePath": "pages/mine/mine",
                "iconPath": "static/images/tabBar/mine.png",
                "selectedIconPath": "static/images/tabBar/mineActive.png",
                "iconPath": "static/images/tabBar/ne_mine.png",
                "selectedIconPath": "static/images/tabBar/ne_mine_act.png",
                "text": "我的"
            }
        ]
uniapp/pages/find/findGoods.vue
@@ -11,7 +11,7 @@
                    <image class="avator-img" :src="anchor.head_img" mode="aspectFill"></image>
                    <view class="author-name-box">
                        {{anchor.nickname}}
                        å°å®˜ç²¾é€‰
                    </view>
                    <view class="follow-btn rowCenCen" @tap='followFnc()'>
@@ -424,7 +424,7 @@
                            .snapUp-btn{
                                width: 104rpx;
                                height: 44rpx;
                                background: linear-gradient(0deg, #E00604, #F85C21);
                                background: #f50d49;
                                border-radius: 8rpx;
                                font-size: 28rpx;
                                font-weight: 500;
uniapp/pages/goods/goodsDetail.vue
@@ -75,25 +75,26 @@
        </view>
      </view>
      <view class="vip-info-container rowCenBet" v-if="!showtar || platform!='iOS'">
        <view class="left-info" v-if="user.level != 3">
          çŽ°åœ¨å‡çº§æˆä¸º{{pageInfo.topLevelName}},立即赚{{pageInfo.topFanli}}元
        </view>
        <view class="left-info" v-else>
          æ‚¨å·²ç»æ˜¯æœ€é«˜ç­‰çº§,快去邀请好友赚佣金吧!
        </view>
            <view class="left-info" v-if="user.level != 3">
              çŽ°åœ¨å‡çº§æˆä¸º{{pageInfo.topLevelName}},立即赚{{pageInfo.topFanli}}元
            </view>
            <view class="left-info" v-else>
              æ‚¨å·²ç»æ˜¯æœ€é«˜ç­‰çº§,快去邀请好友赚佣金吧!
            </view>
        <view class="rt-btn rowCenCen" @tap="golevelRules()" v-if="user.level != 3">
          <image class="vipimg" src="../../static/images/goods/vip.png" mode="aspectFill"></image>
          <view class="level-txt">
            ç«‹å³å‡çº§
          </view>
        </view>
        <view class="rt-btn rowCenCen" @tap="golevelRules()" v-else>
          <image class="vipimg" src="../../static/images/goods/vip.png" mode="aspectFill"></image>
          <view class="level-txt">
            ç«‹å³æŸ¥çœ‹
          </view>
        </view>
            <view class="rt-btn rowCenCen" @tap="golevelRules()" v-if="user.level != 3">
              <image class="vipimg" src="../../static/images/goods/vip.png" mode="aspectFill"></image>
              <view class="level-txt">
                ç«‹å³å‡çº§
              </view>
            </view>
            <view class="rt-btn rowCenCen" @tap="golevelRules()" v-else>
              <image class="vipimg" src="../../static/images/goods/vip.png" mode="aspectFill"></image>
              <view class="level-txt">
                ç«‹å³æŸ¥çœ‹
              </view>
         </view>
      </view>
      <view class="quanWrap" v-if="optionsInfo.couponPrice>0 || pageInfo.couponPrice>0">
        <image src="../../static/images/goods/qbg.png" mode='aspectFit' class="quanBg"></image>
@@ -186,10 +187,7 @@
          <image class="detailpic" :src="items" mode="widthFix"></image>
        </block>
      </view>
    </view>
    <view class="bottombox">
    </view>
    <view class="footerWrap rowSta">
@@ -215,7 +213,7 @@
          </view>
        </view>
        <view class="right-container rowCen borderBox">
       <!-- <view class="right-container rowCen borderBox" v-if="!showtar || platform!='iOS'">
          <view class="leftsharebox btnbox colCenCen" @tap="goPath()">
            <view class="priceText">
              ï¿¥{{optionsInfo.fanli}}
@@ -235,7 +233,29 @@
              è´­ä¹°è¿”
            </view>
          </view>
        </view>
        </view> -->
        <view class="right-container rowCen borderBox">
          <view class="leftsharebox btnbox colCenCen" style="background: #ffb030;" @tap="goPath()">
            <view class="priceText">
              ï¿¥{{optionsInfo.fanli}}
            </view>
            <view class="texttips">
              åˆ†äº«èµš
            </view>
          </view>
          <view class="rightbackbox btnbox colCenCen" style="background: #fe0350;" @tap="getCouponUrl()">
              <view v-if="frompage=='freebuy'" class="priceText">
                  ï¿¥{{optionsInfo.actualPrice}}
              </view>
            <view v-else class="priceText">
              ï¿¥{{optionsInfo.fanli}}
            </view>
            <view class="texttips">
              è´­ä¹°è¿”
            </view>
          </view>
        </view>
      </view>
    </view>
    <!-- taobao -->
@@ -987,7 +1007,7 @@
        border-radius: 5rpx;
        padding: 0 20rpx;
        margin-bottom: 20rpx;
        .left-info {
          font-size: 24rpx;
          font-weight: 500;
uniapp/pages/goods/shareGoods.vue
@@ -256,9 +256,10 @@
        onLoad(options) {
            this.appInfo = utils.getCacheSync('appInfo');
            console.log(this.appInfo)
          //  this.goodsInfo = JSON.parse(options.info);
            console.log(options.info)
            console.log(JSON.parse(options.info))
           this.goodsInfo = JSON.parse(options.info);
            this.imageList = this.goodsInfo.imgs
            this.getJumpUrl(this.goodsInfo)
            this.getuserInfo()
uniapp/pages/index/index.vue
@@ -1,5 +1,8 @@
<template>
    <view class="index-wrapper wrapperLayer borderBox">
    <view v-if="isshowtype">
        <indexnewPage :Topheight="Topheight" :recomendType="recomendType" :canrefush='canrefush' :fixedClass='fixedClass'></indexnewPage>
    </view>
    <view v-else class="index-wrapper wrapperLayer borderBox">
        <view class="fixed-container colCen borderBox" :style="'background:'+ (categoryCurrent>0?'#EE1B14':(scrollTop>30?'#EE1B14;':bannerColor) +';')">
            <view class="topbarbox"></view>
            <view class="headerSearch-container rowCenBet borderBox">
@@ -97,10 +100,12 @@
    import utils from '@/utils/utils.js'
    import indexPage from '../../components/indexPage.vue';
    import categoryPage from '../../components/categoryPage.vue';
    import indexnewPage from '../../components/sh_page/indexNewPage.vue';
    export default {
        components: {
            indexPage,
            categoryPage
            categoryPage,
            indexnewPage
        },
        data() {
            return {
@@ -121,15 +126,18 @@
                scrollleftnum:0,
                rowLeft:0,
                nowcurrentid:'',
                recomendType:1
                recomendType:1,
                isshowtype:false,
                hasshow:false,
            }
        },
        onLoad() {
            this.getCategoryList();
            this.getPopBannerInfo();
        },
        onShow() {
            if(!this.hasLogin){
            /* if(!this.hasLogin){
                setTimeout(function(){
                    
                    uni.reLaunch({
@@ -137,19 +145,24 @@
                    })
                },1000);
                return;
            }
            var user= uni.getStorageSync('userInfo');
            console.log(user);
            if(!user.invitation_code)
            } */
            if(!this.hasshow)
            {
                setTimeout(function(){
                    uni.reLaunch({
                        url:"/pages/login/wxlogin"
                    })
                },1000);
                return;
                this.shShow();
            }
        /*     var user= uni.getStorageSync('userInfo');
            console.log(user); */
            // if(!user.invitation_code)
            // {
            //     setTimeout(function(){
            //         uni.reLaunch({
            //             url:"/pages/login/wxlogin"
            //         })
            //     },1000);
            //     return;
            // }
            if(this.categoryList){
                this.getCategoryList();
            }
@@ -159,10 +172,47 @@
            this.recomendType = open_like_recommend == "" ? 1 : open_like_recommend;
        },
        onReady() {
            console.log("获取高低")
            this.getTopheight()
        },
        watch: {},
        methods: {
            shShow()
            {
                var that=this;
                this.$u.api.comminInt({}).then(e => {
                    that.hasshow=true;
                    // #ifdef APP-PLUS
                    if (plus.os.name == 'iOS') {
                        if (e.data.basic.iosExamine && plus.runtime.version == e.data.basic.IosExamineV) {
                            that.isshowtype=true;
                        } else {
                            that.isshowtype=false;
                            console.log("跳转");
                            if(!that.hasLogin){
                                uni.reLaunch({
                                    url:"/pages/login/wxlogin"
                                })
                            }
                            var user= uni.getStorageSync('userInfo');
                            if(!user.invitation_code)
                            {
                                setTimeout(function(){
                                    uni.reLaunch({
                                        url:"/pages/login/wxlogin"
                                    })
                                },1000);
                                return;
                            }
                        }
                        console.log(that.isshowtype);
                    }
                    // #endif
                }).catch(function(err) {
                    console.log(err);
                })
            },
            goToShowBulletFrame(info){
                this.showBulletFrame = false
                utils.goUrl(info, this)
@@ -175,7 +225,6 @@
                }).then(e => {
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    console.log(res)
                    if(res.length > 0){
                        this.showBulletFrame = true;
                        this.BulletFrameData = res[0]
@@ -257,7 +306,6 @@
            stopswiper(){
                this.canrefush = true
            },
            // è·¯ç”±è·³è½¬
            goPath(url) {
                if (url == 'search') {
@@ -311,7 +359,7 @@
            getTopheight() {
                // èŽ·å–é¡¶éƒ¨é«˜åº¦
                uni.createSelectorQuery().in(this).select('.fixed-container').boundingClientRect(data => {
                    console.log("得到布局位置信息" + JSON.stringify(data));
                    console.log(data.height+":----------------");
                    this.Topheight = data.height
                }).exec();
            },
uniapp/pages/login/bindingPhone.vue
@@ -5,28 +5,36 @@
            <view class="titleText">
                ç»‘定手机号
            </view>
            <view class="input-container colCen">
                <view class="outSidebox rowCen" :class="selectedInput=='phone'?'outSidebox-active':''">
                    <input type="number" data-type='phone' @focus="changeType" @blur="cleanActive" v-model="phone"
                        placeholder="请输入手机号" placeholder-class="input-placeHolder" />
                </view>
            <view v-if="iscanbind" class="goaccount rowCenCen" @tap="mobShow()">
                <view>本机手机号一键绑定</view>
            </view>
            <view class="input-container colCen">
                <view class="outSidebox rowCenBet" data-type='pass'
                    :class="selectedInput=='code'?'outSidebox-active':''">
                    <input @focus="changeType" @blur="cleanActive" data-type='code' type="number" v-model="code"
                        placeholder="请输入验证码" placeholder-class="input-placeHolder" />
                    <view class="getcodebox" :class="canGetCode?'colorTxt':''" @click="getCode()">
                        {{canGetCode?'获取验证码':second+'s后重新获取'}}
            <view v-else>
                <view class="input-container colCen">
                    <view class="outSidebox rowCen" :class="selectedInput=='phone'?'outSidebox-active':''">
                        <input type="number" data-type='phone' @focus="changeType" @blur="cleanActive" v-model="phone"
                            placeholder="请输入手机号" placeholder-class="input-placeHolder" />
                    </view>
                </view>
            </view>
            <view class="login-btn rowCenCen" :class="code&&phone?'colorfulbtn':''" @click="bindMobile()">
                <view class="btn-font">
                    ç»‘定
                <view class="input-container colCen">
                    <view class="outSidebox rowCenBet" data-type='pass'
                        :class="selectedInput=='code'?'outSidebox-active':''">
                        <input @focus="changeType" @blur="cleanActive" data-type='code' type="number" v-model="code"
                            placeholder="请输入验证码" placeholder-class="input-placeHolder" />
                        <view class="getcodebox" :class="canGetCode?'colorTxt':''" @click="getCode()">
                            {{canGetCode?'获取验证码':second+'s后重新获取'}}
                        </view>
                    </view>
                </view>
                <view class="login-btn rowCenCen" :class="code&&phone?'colorfulbtn':''" @click="bindMobile()">
                    <view class="btn-font">
                        ç»‘定
                    </view>
                </view>
                <view style="text-align: center; width: 100%;margin-top: 30rpx;" @click="mobShow()">
                    æœ¬æœºæ‰‹æœºå·ä¸€é”®ç»‘定
                </view>
            </view>
        </view>
@@ -51,6 +59,7 @@
    import MD5 from '../../utils/md5.js'
    import config from '../../utils/config.js'
    import utils from '../../utils/utils.js'
    const univerifyManager = uni.getUniverifyManager();
    export default {
        components: {
            inviteCodeModel,
@@ -72,7 +81,9 @@
                prevent: true,
                inviteCodeShow:false,
                inviterShow:false,
                wxUser:""
                wxUser:"",
                iscanbind:true,
                isyj:false
            };
        },
        onLoad(options) {
@@ -90,6 +101,77 @@
        },
        methods: {
            ...mapMutations(['login']),
            doMobileLogin(mobRes)
            {
                var that=this;
                uniCloud.callFunction({
                  name: 'getPhoneNumber', // ä½ çš„云函数名称
                  data: {
                    'access_token': mobRes.access_token, // å®¢æˆ·ç«¯ä¸€é”®ç™»å½•接口返回的access_token
                    'openid': mobRes.openid, // å®¢æˆ·ç«¯ä¸€é”®ç™»å½•接口返回的openid
                    'op_type':'getmob'
                  }
                }).then(res => {
                    console.log(res);
                    that.phone=res.result.mobile;
                    univerifyManager.close();
                    that.isyj=true;
                    that.bindMobile();
                }).catch(err=>{
                    // å¤„理错误
                    console.log(err)
                    that.iscanbind=false;
                    that.$alert('获取手机号码失败,请使用其他方式绑定')
                    setTimeout(function(){
                        univerifyManager.close();
                    },2000);
                    that.isyj=false;
                })
            },
            mobShow()
            {
                var that=this;
                univerifyManager.login({
                    provider: 'univerify',
                    univerifyStyle: { // è‡ªå®šä¹‰ç™»å½•框样式
                    "fullScreen":false,
                    "authButton":
                    {
                        "normalColor":"#F73314",
                        "highlightColor":"#F73314",
                        "title":"本机号码一键绑定"
                    },
                    "otherLoginButton":{
                        "title":"其他绑定方式"
                    },
                    "privacyTerms":{
                        "defaultCheckBoxState":false
                    }
                  },
                success(res){ // èŽ·å–æˆåŠŸ
                    console.log(res.authResult);
                     that.doMobileLogin(res.authResult);
                },
                fail(res){  // ç™»å½•失败
                    console.log(res)
                        if(res.errCode==30002)
                        {//切换登录方式
                            that.iscanbind=false;
                            univerifyManager.close();
                        }
                        else
                        {
                            that.$alert('获取手机号码失败,请使用其他方式绑定')
                            setTimeout(function(){
                                univerifyManager.close();
                            },2000);
                        }
                        that.iscanbind=false;
                    }
                })
            },
            backHome() {
                var pages = getCurrentPages();
                console.log(pages.length);
@@ -132,11 +214,14 @@
            },
            bindMobile(){
                var that = this;
                if(!this.hasLogin && this.wxUser != ""){
                console.log(this.hasLogin)
                console.log(this.wxUser)
                if(this.wxUser != ""){
                    this.$u.api.bindMobileLogin({
                        wxUser : encodeURIComponent(JSON.stringify(that.wxUser)),
                        mobile:this.phone,
                        captcha:this.code
                        captcha:this.code,
                        isyj:this.isyj
                    }).then(e => {
                        console.log(e)
                        if (e.code != 0) return that.$alert(e.msg)
@@ -161,7 +246,8 @@
                }else{
                    this.$u.api.changeMobile({
                        mobile:this.phone,
                        captcha:this.code
                        captcha:this.code,
                        isyj:this.isyj
                    }).then(e => {
                        if(e.code != 0) return that.$alert(e.msg)
                        that.$alert('绑定成功');
@@ -284,6 +370,17 @@
</script>
<style lang="scss">
    .goaccount {
        width: 100%;
        height: 100rpx;
        background: #FFFFFF;
        border: 1rpx solid #999999;
        border-radius: 50rpx;
        font-size: 30rpx;
        font-weight: 500;
        color: #333333;
        margin-top: 30rpx;
    }
    .login-wrapper {
        width: 100%;
        min-height: 100vh;
uniapp/pages/login/wxlogin.vue
@@ -4,7 +4,7 @@
        <view class="pageContent borderBox colCen">
            <image class="applogo" :src="appInfo.logo" mode="aspectFill"></image>
            <view class="wxlogoBtn rowCenCen" @tap="wxlogin()" v-if="haswxlogin">
            <view class="wxlogoBtn rowCenCen" @tap="wxlogin()" v-if="supportWx">
                <image class="logoIcon" src="../../static/images/mine/wxwhite.png" mode=""></image>
                <view>微信一键登录</view>
            </view>
@@ -47,19 +47,41 @@
                isread: false,
                haswxlogin: false,
                isSupportMob:false,
                isother:false
                isother:false,
                supportWx:true
            }
        },
        onLoad() {
            this.appInfo = uni.getStorageSync('appInfo')
            console.log(this.appInfo.iosExamine)
            console.log(getApp().globalData.ifwt)
            //this.haswxlogin = this.appInfo.iosExamine ? false : (getApp().globalData.ifwt == 1 ? true : false)
            this.haswxlogin = getApp().globalData.ifwt == 1 ? true :false;
            this.checkSupportWx();
            this.isSupportMoblie();
        },
        methods: {
            ...mapMutations(['login']),
            checkSupportWx()
            {
                // #ifdef APP-PLUS
                 if (plus.os.name == 'iOS') {
                    if (plus.runtime.isApplicationExist({
                            action: 'weixin://'
                        }) && plus.runtime.isApplicationExist({
                            action: 'taobao://'
                        })) {
                        this.supportWx = true //是否安装微信和淘宝 1代表安装
                    } else {
                        this.supportWx = false
                    }
                } else {
                    if (plus.runtime.isApplicationExist({pname:'com.tencent.mm',
                            action: 'weixin://'
                        })) {
                        this.supportWx = true //是否安装微信 1代表安装
                    } else {
                        this.supportWx = false
                    }
                }
                // #endif
            },
            backHome() {
                var pages = getCurrentPages();
                console.log(pages.length);
@@ -126,6 +148,9 @@
                        {
                            "normalColor":"#F73314",
                            "highlightColor":"#F73314"
                        },
                        "privacyTerms":{
                            "defaultCheckBoxState":false
                        }
                        
                      },
@@ -138,6 +163,7 @@
                            if(res.errCode==30002)
                            {//切换登录方式
                                that.isother=true;
                                univerifyManager.close();
                            }
                            else
                            {
@@ -146,6 +172,7 @@
                                    univerifyManager.close();
                                },2000);
                            }
                            that.isother=true;
                        }
                    })
uniapp/pages/mine/mine.vue
@@ -1,5 +1,8 @@
<template>
    <view class="minePage-wrapper">
    <view v-if="isshowtype">
        <minePage></minePage>
    </view>
    <view v-else class="minePage-wrapper">
        <view class="fixed-box colCen" style="background:linear-gradient(263deg, #D20CFC, #8905F6);">
            <view class="topbarbox"></view>
            <view class="navigate-container rowCenBet">
@@ -263,10 +266,12 @@
    import APPUpdate from "../../utils/appUpdate.js";
    import inviteCodeModel from '../../components/inviteCode.vue'
    import inviterModel from '../../components/inviterModel.vue'
    import minePage from '../../components/sh_page/minePage.vue'
    export default {
        components: {
            inviteCodeModel,
            inviterModel
            inviterModel,
            minePage,
        },
        data() {
            return {
@@ -284,7 +289,9 @@
                bbcList:'',
                sct: 0,
                inviteCodeShow:false,
                inviterShow:false
                inviterShow:false,
                isshowtype:false,
                hasshow:false
            }
        },
        onPageScroll(e) {
@@ -317,23 +324,47 @@
                this.getmoneyInfo()
                this.getuserInfo()
            }
            if(!this.hasshow)
            {
                this.shShow();
            }
        },
        methods: {
            shShow()
            {
                var that=this;
                this.$u.api.comminInt({}).then(e => {
                    that.hasshow=true;
                    // #ifdef APP-PLUS
                    if (plus.os.name == 'iOS') {
                        if (e.data.basic.iosExamine && plus.runtime.version == e.data.basic.IosExamineV) {
                            that.isshowtype=true;
                        } else {
                            that.isshowtype=false;
                        }
                    }
                    // #endif
                }).catch(function(err) {
                    console.log(err);
                })
            },
            getInit()
            {
                console.log(getApp().globalData)
                if(!getApp().globalData.hasinit)
                {
                    console.log('初始化1111')
                    getApp().getAppInfo();
                    setTimeout(()=>{
                        this.getInit();
                    },2000)
                }
                // #ifdef APP-PLUS
                console.log(getApp().globalData.ifwt)
                this.appInfo = uni.getStorageSync('appInfo');
                this.showtar = getApp().globalData.ifwt == 1 ? false : true;
                this.platform = plus.os.name
                this.platform = plus.os.name;
                // #endif
            },
            getmoneyInfo() {
@@ -363,7 +394,6 @@
                var that = this;
                this.$u.api.getBanner({type:'2'}).then(e => {
                    if(e.code == 1)return that.$alert(e.msg);
                    console.log(e.data.info)
                    that.bannerList = e.data.info;
                }).catch(function (err) {
                })
uniapp/pages/mine/setting/cancellation.vue
@@ -125,10 +125,13 @@
                if (this.prevent && this.canGetCode) {
                    this.prevent = false
                    var timerChuo = new Date().getTime()
                    console.log(this.userinfo.mobile);
                    console.log(this.userinfo);
                    this.$u.api.sendSms({
                        mobile: this.userinfo.mobile,
                        event: 'cancel'
                    }).then(e => {
                        console.log(e);
                        if(e.code != 0) return that.$alert(e.msg)
                        that.canGetCode = false
                        that.prevent = true
uniapp/pages/rankinglist/fengqiang.vue
@@ -1,15 +1,23 @@
<template>
    <view>
    <view v-if="isshowtype">
        <matherPage></matherPage>
    </view>
    <view v-else>
        <web-view :webview-styles="webviewStyles" :src="webviewUrl" @message='received'></web-view>
    </view>
</template>
<script>
        import matherPage from '@/components/sh_page/matherPage.vue';
    var wv
    export default {
        components:{
            matherPage
        },
        data() {
            return {
                webviewUrl: '',
                isshowtype:false,
                webviewStyles: {
                    progress: {
                        color: '#EE1B14'
@@ -17,6 +25,20 @@
                },
            }
        },
        onShow()
        {
            // #ifdef APP-PLUS
            var showtar = getApp().globalData.ifwt == 1 ? false : true;
            var platform = plus.os.name;
            //showtar&&platform=='iOS'
            if(showtar&&platform=='iOS')
            {//跳转new
                this.isshowtype=true;
                return;
            }
            // #endif
        },
        onLoad(options) {
            if(!this.hasLogin){
                uni.reLaunch({
uniapp/pages/rankinglist/xianbao.vue
@@ -1,15 +1,23 @@
<template>
    <view>
    <view v-if="isshowtype">
        <findPage></findPage>
    </view>
    <view v-else>
        <web-view :webview-styles="webviewStyles" :src="webviewUrl" @message='received'></web-view>
    </view>
</template>
<script>
    import findPage from '@/components/sh_page/findPage.vue';
    //var wv
    export default {
        components:{
            findPage
        },
        data() {
            return {
                webviewUrl: '',
                isshowtype:false,
                webviewStyles: {
                    progress: {
                        color: '#EE1B14'
@@ -17,17 +25,30 @@
                },
            }
        },
        onLoad(options) {
            if(!this.hasLogin){
                uni.reLaunch({
                    url:"/pages/login/wxlogin"
                })
            }
            else{
                const value = uni.getStorageSync('userInfo');
                this.webviewUrl = encodeURI('http://dfgapp.ushopvip.com/html/xianbao.html?token='+value.token);
            }
        onShow()
        {
            // #ifdef APP-PLUS
            
            var showtar = getApp().globalData.ifwt == 1 ? false : true;
            var platform = plus.os.name;
            //showtar&&platform=='iOS'
            if(showtar&&platform=='iOS')
            {//跳转new
                this.isshowtype=true;
            }
            else
            {
                if(!this.hasLogin){
                    uni.reLaunch({
                        url:"/pages/login/wxlogin"
                    })
                }
            }
            // #endif
        },
        onLoad(options) {
            const value = uni.getStorageSync('userInfo');
            this.webviewUrl = encodeURI('http://dfgapp.ushopvip.com/html/xianbao.html?token='+value.token);
        },
        onReady() {
          this.clearMuiBack();
uniapp/static/images/tabBar/ne_bend.png
uniapp/static/images/tabBar/ne_bend_act.png
uniapp/static/images/tabBar/ne_index.png
uniapp/static/images/tabBar/ne_index_act.png
uniapp/static/images/tabBar/ne_mine.png
uniapp/static/images/tabBar/ne_mine_act.png
uniapp/static/images/tabBar/ne_qiang.png
uniapp/static/images/tabBar/ne_qiang_act.png
uniapp/static/images/tabBar/ne_xb.png
uniapp/static/images/tabBar/ne_xb_act.png
uniapp/uniCloud-aliyun/cloudfunctions/getPhoneNumber/index.js
@@ -16,20 +16,31 @@
              msg:'获取手机号失败'
          }
      }
      var apiUrl='http://dfgapp.ushopvip.com/api/user/mobilelogin';
      const apiRes = await uniCloud.httpclient.request(apiUrl, {
          method: 'POST',
          data: {
            mobile: res.phoneNumber,
            captcha:'000',
            ismobouth:true
          },
          contentType: 'json', // æŒ‡å®šä»¥application/json发送data内的数据
          dataType: 'json' // æŒ‡å®šè¿”回值为json格式,自动进行parse
        })
      //console.log(res); // res里包含手机号
      // æ‰§è¡Œç”¨æˆ·ä¿¡æ¯å…¥åº“等操作,正常情况下不要把完整手机号返回给前端
      // å¦‚果数据库在uniCloud上,可以直接入库
      // å¦‚果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
      return apiRes
      if(event.op_type=='getmob')
      {//获取手机号
          return {
              code:0,
              mobile:res.phoneNumber
          }
      }
      else
      {//手机号一键登录
          var apiUrl='http://dfgapp.ushopvip.com/api/user/mobilelogin';
          const apiRes = await uniCloud.httpclient.request(apiUrl, {
              method: 'POST',
              data: {
                mobile: res.phoneNumber,
                      captcha:'000',
                      ismobouth:true
              },
              contentType: 'json', // æŒ‡å®šä»¥application/json发送data内的数据
              dataType: 'json' // æŒ‡å®šè¿”回值为json格式,自动进行parse
            })
          //console.log(res); // res里包含手机号
          // æ‰§è¡Œç”¨æˆ·ä¿¡æ¯å…¥åº“等操作,正常情况下不要把完整手机号返回给前端
          // å¦‚果数据库在uniCloud上,可以直接入库
          // å¦‚果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
          return apiRes
      }
};