zhaojs
2023-06-28 9ea0383c303620cd019d0776ecbb47f52bcef805
Merge branch 'feature/1.1.3版本开发' into develop

# Conflicts:
# uniapp/App.vue
# uniapp/components/indexPage.vue
# uniapp/pages/index/index.vue
# uniapp/pages/login/wxlogin.vue
# uniapp/uniCloud-aliyun/cloudfunctions/getPhoneNumber/index.js
已添加6个文件
已修改18个文件
1052 ■■■■ 文件已修改
uniapp/App.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/colGoods.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/colGoodsImg.vue 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/components/indexPage.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/active/dysearch.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/active/jdSearch.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/active/pddsearch.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/active/tmsearch.vue 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/active/vipsearch.vue 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/goods/goodsDetail.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/index/launchPage.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/login/bindingPhone.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/login/login.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/login/setInviteCode.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/rankinglist/common_act.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/pages/rankinglist/fengqiang.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/uni_modules/m-start-ad/changelog.md 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/uni_modules/m-start-ad/components/m-start-ad/m-start-ad.vue 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/uni_modules/m-start-ad/package.json 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/uni_modules/m-start-ad/readme.md 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/utils/config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/utils/getClipboard.js 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/utils/utils.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uniapp/App.vue
@@ -91,6 +91,7 @@
            uni.getSystemInfo({
                success: e => {
                    // #ifdef APP-PLUS
                    console.log(e)
                    if (e.platform == 'android') {
                        this.globalData.platform = 'android'
                        this.globalData.systemLevel = e.system
@@ -138,6 +139,7 @@
            ifwt: 0,
            hasinit:false,
            hasbcinit:false,
            isLaunch:false
            
        },
        onShow: function() {
@@ -150,12 +152,14 @@
                            content: '检测到网络权限可能设置为关闭,您可以在“设置”中检查无线数据及蜂窝移动网络'
                        })
                    }else{
                        console.log("是否请求过:"+that.globalData.hasinit)
                        if(!that.globalData.hasinit)
                        {
                            that.getAppInfo();
                        }
                        if(!that.globalData.hasbcinit)
                        {
                            console.log("初始化百川插件")
                            that.bcInit();
                        }
                        /* let appInfo = utils.getCacheSync('appInfo')
@@ -187,6 +191,7 @@
                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就是初始化成功
@@ -196,12 +201,19 @@
                        }
                    });
                }
                else{
                    that.globalData.hasbcinit=true;
                }
            },
            getAppInfo: function() {
                var that = this;
                that.globalData.hasinit=true;
                this.$u.api.comminInt({}).then(e => {
                    if (e.code != 0) return that.$alert(e.msg)
                    that.globalData.hasinit=true;
                    if (e.code != 0)
                    {
                        that.globalData.hasinit=false;
                        return that.$alert(e.msg)
                    }
                    that.globalData.appinfo = e.data.basic
                    utils.setCache('appInfo', e.data.basic)
                    utils.setCache('baseUrl', this.$u.http.config.baseUrl)
@@ -220,7 +232,6 @@
                                that.globalData.ifwt = 0
                            }
                        }
                        console.log(that.globalData.ifwt);
                    } else {
                        if (plus.runtime.isApplicationExist({pname:'com.tencent.mm',
                                action: 'weixin://'
@@ -233,8 +244,7 @@
                        }
                    }
                    // #endif
                }).catch(function(err) {})
                }).catch(function(err) {that.globalData.hasinit=false;})
                
            },
            
uniapp/components/colGoods.vue
@@ -55,6 +55,8 @@
        props: {
            items: Object
        },
        created(){
        },
        data() {
            return {
uniapp/components/colGoodsImg.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
<template>
    <swiper style="height: 100%;" 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" style="width: 100%;height: 100%;" @click="goUrl(items)">
                <image :src="items.image" mode="aspectFit"></image>
            </view>
        </swiper-item>
    </swiper>
    <!-- <view class="swiper-container swiper-box swiper-item">
    </view> -->
</template>
<script>
    import utils from '@/utils/utils.js'
    export default {
        props: {
            popBannerSList: Array
        },
        data() {
            return {
            }
        },
        created()
        {
            console.log(this.popBannerSList);
        },
        methods:
        {
            goUrl(info)
            {
                console.log(info);
                utils.goUrl(info, this)
            }
        }
}
</script>
<style>
        .swiper-box {
            width: 100%;
            height: 100%;
            .swiper-item {
                width: 100%;
                height: 100%;
            }
        }
</style>
uniapp/components/indexPage.vue
@@ -595,7 +595,7 @@
            },
            onRestore() {
                this.swpidx = 0
                //console.log('下拉被终止');
                console.log('下拉被终止');
            },
            pagescroll(e) {
                this.$emit('scrollNum', e.detail.scrollTop)
@@ -630,19 +630,20 @@
                    var res = e.data.info;
                    if(res.topBannerList&&res.topBannerList.length>0)
                    {
                        that.topBannerList = res.topBannerList;
                        that.headerColor = that.topBannerList[0].colour;
                        this.topBannerList = res.topBannerList;
                        this.headerColor = this.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;
                    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;
                    setTimeout(() => {
                        that.triggeredstate = false;
                        that._freshing = false;
                        this.triggeredstate = false;
                        this._freshing = false;
                    }, 300)
                }).catch(function(err) {
                    console.log(err)
@@ -698,7 +699,6 @@
                    pageSize: 10,
                    type: type
                }).then(e => {
                   // console.log(e)
                    if (e.code != 0) return that.$alert(e.msg)
                    var res = e.data.list;
                    if (res.length < 10) {
uniapp/pages.json
@@ -4,6 +4,9 @@
        "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
    },
    "pages": [
        {
            "path": "pages/index/launchPage"
        },
        //首页
        {
            "path": "pages/index/index",
uniapp/pages/active/dysearch.vue
@@ -65,7 +65,8 @@
            <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>
                          <colGoodsImg v-if="index==0&&popBannerSList&&popBannerSList.length>0" :popBannerSList="popBannerSList"></colGoodsImg>
                        <colGoods v-else :items="items"></colGoods>
                    </view>
                    <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
                </view>
@@ -76,12 +77,15 @@
<script>
    import colGoods from '../../components/colGoods.vue'
    import colGoodsImg from '../../components/colGoodsImg.vue'
    export default {
        components:{
            colGoods
            colGoods,
            colGoodsImg
        },
        data() {
            return {
                popBannerSList:[],
                pageTop: 0,
                nowCurrent: 0,
                scrollTop: 0,
@@ -96,7 +100,8 @@
            }
        },
        onLoad() {
            this.getNav()
            this.getNav();
            this.getPageImg();
        },
        onPageScroll(e) {
            this.scrollTop = e.scrollTop
@@ -117,6 +122,24 @@
            }).exec();
        },
        methods: {
            getPageImg()
            {
                 var that=this;
                this.$u.api.getBanner({
                    type: '11,18'
                }).then(e => {
                    console.log(e)
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    this.popBannerSList=res.dyImg;
                    if(res.dyImg&&res.dyImg.length>0)
                    {
                        that.goodsList.unshift(res[0]);
                    }
                }).catch(function(err) {
                    console.log(err)
                })
            },
            getNav() {
                var that = this;
                this.$u.api.getHdkCategoryList({type:4}).then(e => {
@@ -193,9 +216,12 @@
            },
            goDetail(info) {
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
                if(info&&info!=undefined)
                {
                    uni.navigateTo({
                        url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                    })
                }
            },
            goback() {
uniapp/pages/active/jdSearch.vue
@@ -65,7 +65,8 @@
            <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>
                         <colGoodsImg v-if="index==0&&popBannerSList&&popBannerSList.length>0" :popBannerSList="popBannerSList"></colGoodsImg>
                        <colGoods v-else :items="items"></colGoods>
                    </view>
                    <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
                </view>
@@ -77,12 +78,15 @@
<script>
    import colGoods from '../../components/colGoods.vue'
    import colGoodsImg from '../../components/colGoodsImg.vue'
    export default {
        components:{
            colGoods
            colGoods,
            colGoodsImg
        },
        data() {
            return {
                popBannerSList:[],
                pageTop: 0,
                nowCurrent: 0,
                scrollTop: 0,
@@ -97,7 +101,8 @@
            }
        },
        onLoad() {
            this.getNav()
            this.getNav();
            this.getPageImg();
        },
        onPageScroll(e) {
            this.scrollTop = e.scrollTop
@@ -118,6 +123,24 @@
            }).exec();
        },
        methods: {
            getPageImg()
            {
                 var that=this;
                this.$u.api.getBanner({
                    type: '11,17'
                }).then(e => {
                    console.log(e);
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    this.popBannerSList=res.jdImg;
                    if(res.jdImg&&res.jdImg.length>0)
                    {
                        that.goodsList.unshift(res[0]);
                    }
                }).catch(function(err) {
                    console.log(err)
                })
            },
            getNav() {
                var that = this;
                this.$u.api.getTopCalss({ctype:3}).then(e => {
@@ -164,9 +187,12 @@
            },
            goDetail(info) {
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
                if(info&&info!=undefined)
                {
                    uni.navigateTo({
                        url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                    })
                }
            },
            goback() {
uniapp/pages/active/pddsearch.vue
@@ -65,7 +65,8 @@
            <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>
                          <colGoodsImg v-if="index==0&&popBannerSList&&popBannerSList.length>0" :popBannerSList="popBannerSList"></colGoodsImg>
                        <colGoods v-else :items="items"></colGoods>
                    </view>
                    <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
                </view>
@@ -76,17 +77,19 @@
<script>
    import colGoods from '../../components/colGoods.vue'
    import colGoodsImg from '../../components/colGoodsImg.vue'
    export default {
        components:{
            colGoods
            colGoods,
            colGoodsImg
        },
        data() {
            return {
                popBannerSList:[],
                pageTop: 0,
                nowCurrent: 0,
                scrollTop:0,
                navList: [],
                fiexdHeight:'',
                fiexdtop:'',
                goodsList: [],
@@ -96,7 +99,8 @@
            }
        },
        onLoad() {
            this.getNav()
            this.getNav();
            this.getPageImg();
        },
        onPageScroll(e) {
            this.scrollTop = e.scrollTop
@@ -117,6 +121,23 @@
            }).exec();
        },
        methods: {
            getPageImg()
            {
                 var that=this;
                this.$u.api.getBanner({
                    type: '11,19'
                }).then(e => {
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    this.popBannerSList=res.pddImg;
                    if(res.pddImg&&res.pddImg.length>0)
                    {
                        that.goodsList.unshift(res[0]);
                    }
                }).catch(function(err) {
                    console.log(err)
                })
            },
            getNav() {
                var that = this;
                this.$u.api.getTopCalss({ctype:2}).then(e => {
@@ -180,10 +201,12 @@
            },
            
            goDetail(info) {
                console.log(info);
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
                if(info&&info!=undefined)
                {
                    uni.navigateTo({
                        url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                    })
                }
            },
            
            goback() {
uniapp/pages/active/tmsearch.vue
@@ -1,5 +1,5 @@
<template>
    <view class="pddsearch-wrapper wrapperLayer borderBox">
    <view class="pddsearch-wrapper wrapperLayer borderBox"  style="background: #fff;">
        <view class="topbarbox"></view>
        <view class="fixed-container colCen">
            <view class="topbarbox"></view>
@@ -61,11 +61,28 @@
                    </block>
                </scroll-view>
            </view>
            <!--二级搜索-->
            <view class="scrangeList-container rowCen" :class="scrollTop>fiexdtop?'tofixed':''" :style="'top:'+(scrollTop>fiexdtop?fiexdHeight:'0')+'px;'">
                <scroll-view class="scrollview-content" scroll-x scroll-with-animation="true">
                    <block v-for="(items,index) in secrendSearch" :key="index">
                        <view class="rangeItem" :class="nowsec==items.id?'rangeItem-active':''" @tap="changeSeRange(items.id)">
                            <view class="boxcontent colCenCen">
                                <view class="nameBox">
                                    {{items.name}}
                                </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 class="goods-items borderBox" v-for="(items,index) in goodsList" :key='index' @click="goDetail(items)">
                        <!-- <colGoodsImg :popBannerSList="popBannerSList"></colGoodsImg> -->
                          <colGoodsImg v-if="index==0&&popBannerSList&&popBannerSList.length>0" :popBannerSList="popBannerSList"></colGoodsImg>
                            <colGoods v-else :items="items"></colGoods>
                    </view>
                    <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
                </view>
@@ -76,27 +93,63 @@
<script>
    import colGoods from '../../components/colGoods.vue'
    import colGoodsImg from '../../components/colGoodsImg.vue'
    export default {
        components:{
            colGoods
            colGoods,
            colGoodsImg
        },
        data() {
            return {
                popBannerSList:[],
                pageTop: 0,
                nowCurrent: 0,
                scrollTop: 0,
                navList: [],
                fiexdHeight: '',
                fiexdtop: '',
                goodsList: [],
                pageCurrent: 1,
                canloadmore: false,
                loadstatus: 'loading'
                loadstatus: 'loading',
                nowsec:0,
                isinsert:false,
                secrendSearch:[
                    {
                        id:0,
                        name:'综合'
                    },
                    {
                        id:1,
                        name:'60天最低价'
                    },
                    {
                        id:2,
                        name:'聚划算'
                    },
                    {
                        id:3,
                        name:'淘抢购'
                    },
                    {
                        id:4,
                        name:'多买多送'
                    },
                    {
                        id:5,
                        name:'限量抢购'
                    },
                    {
                        id:6,
                        name:'额外满减'
                    }
                ]
            }
        },
        onLoad() {
            this.getNav()
            this.getNav();
            this.getPageImg();
        },
        onPageScroll(e) {
            this.scrollTop = e.scrollTop
@@ -108,11 +161,9 @@
        },
        mounted() {
            uni.createSelectorQuery().in(this).select('.fixed-container').boundingClientRect(data => {
                console.log(data.top);
                this.fiexdHeight = data.height
            }).exec();
            uni.createSelectorQuery().in(this).select('.rangeList-container').boundingClientRect(data => {
                console.log(data.top);
                this.fiexdtop = data.top - this.fiexdHeight
            }).exec();
        },
@@ -120,7 +171,6 @@
            getNav() {
                var that = this;
                this.$u.api.getTopCalss({ctype:1,parentId:0}).then(e => {
                    console.log(e);
                    if(e.code != 0)return that.$alert(e.msg)
                    e.data.list.unshift({cid:"-1",cname:"天猫超市",ctype:"1"});
                    e.data.list.unshift({cid:"0",cname:"全部",ctype:"1"});
@@ -139,9 +189,9 @@
                    cateId: cateid,
                    page: this.pageCurrent,
                    pageSize: 10,
                    tchaoshi:tchaoshi
                    tchaoshi:tchaoshi,
                    secrend_search:this.nowsec
                }).then(e => {
                    console.log(e);
                    if (e.code != 0) return that.$alert(e.msg)
                    var res = e.data;
                    uni.stopPullDownRefresh();
@@ -156,8 +206,30 @@
                        that.loadstatus = 'loading'
                        that.pageCurrent ++
                    }
                    /* if(!that.isinsert&&res&&res.length>0)
                    {
                        that.goodsList.unshift(res[0]);
                        that.isinsert=true;
                    } */
                    that.goodsList = that.goodsList.concat(res)
                }).catch(function(err) {})
            },
            getPageImg()
            {
                 var that=this;
                this.$u.api.getBanner({
                    type: '11,16'
                }).then(e => {
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    this.popBannerSList=res.tmImg;
                    if(res.tmImg&&res.tmImg.length>0)
                    {
                        that.goodsList.unshift(res[0]);
                    }
                }).catch(function(err) {
                    console.log(err)
                })
            },
            changeRange(id) {
                this.pageCurrent = 1
@@ -167,11 +239,23 @@
                this.goodsList = []
                this.getData()
            },
            changeSeRange(id) {
                this.pageCurrent = 1
                this.canloadmore = false
                this.nowsec = id
                this.loadstatus = 'loading'
                this.goodsList = []
                this.getData()
            },
            goDetail(info) {
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
                if(info&&info!=undefined)
                {
                    uni.navigateTo({
                        url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                    })
                }
            },
            goback() {
@@ -303,6 +387,50 @@
                    }
                }
            }
            .scrangeList-container {
                width: 100%;
                height: 80rpx;
                padding-left: 32rpx;
                z-index: 101;
                .scrollview-content {
                    width: 100%;
                    height: 100%;
                    white-space: nowrap;
                    .rangeItem {
                        display: inline-flex;
                        margin-right: 45rpx;
                        height: 100%;
                        .boxcontent {
                            height: 100%;
                            .nameBox {
                            }
                            .border {
                                width: 60%;
                                height: 2rpx;
                                background: transparent;
                            }
                        }
                    }
                    .rangeItem-active {
                        .boxcontent {
                            .nameBox {
                                font-size: 32rpx;
                                color:#F97B24;
                            }
                        }
                    }
                }
            }
            .rangeList-container {
                width: 100%;
uniapp/pages/active/vipsearch.vue
@@ -29,7 +29,6 @@
                        </view>
                    </view>
                </view>
                <view class="searchContent rowCenBet" @tap="gosearch()">
                    <view class="leftcontent rowCen">
                        <view class="search-icon iconfont">
@@ -46,7 +45,6 @@
            </view>
            <view class="emptybar" :style="'width:100%;height:'+(scrollTop>fiexdtop?'90':'0')+'rpx;'">
            </view>
            <view class="rangeList-container rowCen" :class="scrollTop>fiexdtop?'tofixed':''" :style="'top:'+(scrollTop>fiexdtop?fiexdHeight:'0')+'px;'">
                <scroll-view class="scrollview-content" scroll-x scroll-with-animation="true">
                    <block v-for="(items,index) in navList" :key="index">
@@ -61,11 +59,12 @@
                    </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>
                         <colGoodsImg v-if="index==0&&popBannerSList&&popBannerSList.length>0" :popBannerSList="popBannerSList"></colGoodsImg>
                        <colGoods v-else :items="items"></colGoods>
                    </view>
                    <aLoadMore :status="loadstatus" mode="loading3" :showTitle='true' color="#999999"></aLoadMore>
                </view>
@@ -76,12 +75,15 @@
<script>
    import colGoods from '../../components/colGoods.vue'
    import colGoodsImg from '../../components/colGoodsImg.vue'
    export default {
        components:{
            colGoods
            colGoods,
            colGoodsImg
        },
        data() {
            return {
                popBannerSList:[],
                pageTop: 0,
                nowCurrent: 0,
                scrollTop:0,
@@ -96,7 +98,8 @@
            }
        },
        onLoad() {
            this.getNav()
            this.getNav();
            this.getPageImg();
        },
        onPageScroll(e) {
            this.scrollTop = e.scrollTop
@@ -115,6 +118,24 @@
            }).exec();
        },
        methods: {
            getPageImg()
            {
                 var that=this;
                this.$u.api.getBanner({
                    type: '11,20'
                }).then(e => {
                    if (e.code == 1) return that.$alert(e.msg);
                    var res = e.data.info;
                    that.popBannerSList=res.wphImg;
                    console.log(that.popBannerSList);
                    if(res.wphImg&&res.wphImg.length>0)
                    {
                        that.goodsList.unshift(res[0]);
                    }
                }).catch(function(err) {
                    console.log(err)
                })
            },
            getNav() {
                var that = this;
                this.$u.api.getTopCalss({ctype:9}).then(e => {
@@ -127,6 +148,7 @@
            },
            getData() {
                var that = this;
                console.log(this.nowCurrent)
                this.$u.api.wphGoodsList({
                    cate: this.nowCurrent,
                    pageSize: 10,
@@ -134,6 +156,13 @@
                }).then(e => {
                    if(e.code != 0)return that.$alert(e.msg)
                    var res = e.data;
                    if(res.list==null)
                    {
                        that.pageCurrent++
                        that.canloadmore = false
                        that.loadstatus = 'nomarl'
                        return;
                    }
                    if (res.list < 10) {
                        that.pageCurrent++
                        that.canloadmore = false
@@ -144,7 +173,9 @@
                        that.pageCurrent ++
                    }
                    that.goodsList = that.goodsList.concat(res.list)
                    console.log(that.goodsList)
                }).catch(function (err) {
                    console.log(err)
                })
            },
            
@@ -158,9 +189,12 @@
            },
            
            goDetail(info) {
                uni.navigateTo({
                    url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                })
                if(info&&info!=undefined)
                {
                    uni.navigateTo({
                        url: '../goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(info))
                    })
                }
            },
            
            goback() {
@@ -358,6 +392,8 @@
                    flex-wrap: wrap;
                    
                    .goods-items{
                        width: 350rpx;
                        height: 546rpx;
                        margin-bottom: 20rpx;
                    }
                }
uniapp/pages/goods/goodsDetail.vue
@@ -28,8 +28,8 @@
        <view class="pagetopBar-container colCen">
          <view class="topbarbox"></view>
        </view>
        <view class="currentbox rowCenCen" v-if="optionsInfo.imageList || pageInfo.showImgs">
          <view>{{currentIndex+1}}/{{pageType=='jd'?optionsInfo.imgs.length:pageInfo.showImgs.length}}</view>
        <view class="currentbox rowCenCen" v-if="pageInfo.imgs&&pageInfo.imgs.length>0">
          <view>{{currentIndex+1}}/{{pageInfo.imgs.length}}</view>
        </view>
      </view>
    </view>
@@ -333,10 +333,8 @@
      
      if(!getApp().globalData.hasinit)
      {
          console.log("初始化")
          getApp().getAppInfo();
      }
      //console.log("2222222222222222-"+getApp().globalData.hasbcinit);
      if(!getApp().globalData.hasbcinit)
      {
          getApp().bcInit();
@@ -357,8 +355,19 @@
        this.pageType = this.optionsInfo.sourceType ? this.optionsInfo.sourceType : 'tb';
        this.faction = this.optionsInfo.faction ? this.optionsInfo.faction : 't';
      } else {
        this.optionsInfo = JSON.parse(options.info);
        this.pageInfo = JSON.parse(options.info);
        console.log(options);
        if(options.sourcefrom)
        {
            this.optionsInfo = JSON.parse(decodeURIComponent(options.info));
            this.pageInfo = JSON.parse(decodeURIComponent(options.info));
            console.log(this.optionsInfo)
        }
        else
        {
            this.optionsInfo = JSON.parse(options.info);
            this.pageInfo = JSON.parse(options.info);
        }
        this.pageType = this.optionsInfo.sourceType;
        if (!this.optionsInfo.faction) {
          if (this.pageType == 'tb' || this.pageType == 'tm' || this.pageType == 'tmshop') this.faction = 't';
@@ -397,6 +406,10 @@
      } else if (this.pageType == 'wph') {
      }
      else if(this.pageType=='dy')
      {
          //this.optionsInfo.imgs=[]
      }
    },
    methods: {
      closeMdl() {
@@ -406,11 +419,15 @@
      getPageInfo(e) {
        var that = this;
        if (this.faction == 'j') {
            var loinf={
            goodsId: this.optionsInfo.goodsId,
            goods: JSON.stringify(this.optionsInfo)
          }
            console.log(loinf)
          this.$u.api.getJdsDetail({
            goodsId: this.optionsInfo.goodsId,
            goods: JSON.stringify(this.optionsInfo)
          }).then(e => {
            console.log(e);
            var res = e.data.detailPics;
            this.JdDetails = that.JdDetails.concat(res)
            that.$forceUpdate()
@@ -420,19 +437,16 @@
          this.$u.api.getGoodsDetail({
            goodsId: this.optionsInfo.goodsId
          }).then(e => {
            console.log(e)
            if (e.code != 0) return that.$alert(e.msg)
            var res = e.data.info;
            this.pageInfo = res
            this.pageInfo.showImgs = []
            console.log(this.pageInfo)
            this.pageInfo.imgs.map(items => {
              var a = {}
              a.url = items
              this.pageInfo.showImgs.push(a)
            })
            this.optionsInfo = res
            console.log(this.pageInfo);
          }).catch(function(err) {})
        } else if (this.faction == 'p') {
          var that = this;
@@ -456,13 +470,14 @@
              a.url = items
              this.pageInfo.showImgs.push(a)
            })
            console.log(this.pageInfo);
          })
        }else if(this.faction == 'd'){
            console.log(this.optionsInfo.goodsId);
            var that = this;
            this.$u.api.getDyGoodsDetail({
              goodsId: this.optionsInfo.goodsId
            }).then(e => {
                console.log(e);
              var res = e.data.info;
              this.pageInfo = res
              that.optionsInfo.imgs = that.pageInfo.imgs;
@@ -579,12 +594,10 @@
      },
      
      updataUser() {
        console.log('更新')
        var that = this;
        this.$u.api.getUserInfo({}).then(e => {
          utils.setCache('userInfo', e.data.userinfo)
          that.user = e.data.userinfo;
          console.log(that.user)
        }).catch(function(err) {})
      },
@@ -594,7 +607,6 @@
          goodsId: this.optionsInfo.goodsId,
          type: 0
        }).then(e => {
            console.log(e)
          if (e.code != 0) return that.$alert(e.msg)
          if(that.frompage=='freebuy')
          {//0元购的记录商品id
uniapp/pages/index/launchPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
<template>
    <view v-if="list&&list.length>0">
         <m-start-ad :list="list" v-on:pgoUrl="goUrl" :time="time" url="/pages/index/index" />
    </view>
</template>
<script>
 import utils from "../../utils/utils.js"
    export default {
        data() {
            return {
                list:[],
                time:5
            };
        },
        onShow: function () {
            var first = getApp().globalData.isLaunch;
            if(first){
                uni.reLaunch({
                    url: "/pages/index/index"
                });
            } else {
                getApp().globalData.isLaunch=true;
                var that = this;
                this.$u.api.getBanner({
                    type: '1,15'
                }).then(e => {
                    console.log(e)
                    if (e.code == 1)
                    {//返回失败,直接跳首页
                        this.t_index();
                        return;
                    }
                    var res = e.data.info;
                    if(res&&res.launchpic&&res.launchpic.length>0)
                    {
                        that.list=res.launchpic;
                    }
                    else{
                        console.log("跳转")
                        this.t_index();
                    }
                }).catch(function(err) {
                    console.log(err);
                    this.t_index();
                })
                }
        },
        methods: {
            goUrl(info) {
                if (info.url_type == 1&&info.parameter_json.url=="/pages/index/index")
                {
                    uni.reLaunch({
                        url: './index'
                    })
                }
                else{
                    utils.goUrl(info, this)
                }
            },
            t_index()
            {
                 setTimeout(()=>{
                    uni.reLaunch({
                        url: "/pages/index/index"
                    });
                }, 500);
            }
        }
    }
</script>
uniapp/pages/login/bindingPhone.vue
@@ -201,11 +201,11 @@
                            url: './setInviteCode'
                        })
                    }
                    else if (e.data.userinfo.isPwd == 'N') {
                    /* else if (e.data.userinfo.isPwd == 'N') {
                        uni.redirectTo({
                            url: './setPass'
                        })
                    } else {
                    } */else {
                        uni.switchTab({
                            url: '../index/index'
                        })
uniapp/pages/login/login.vue
@@ -211,11 +211,11 @@
                            url: './setInviteCode'
                        })
                    }
                    else if (e.data.userinfo.isPwd == 'N') {
                    /* else if (e.data.userinfo.isPwd == 'N') {
                        uni.redirectTo({
                            url: './setPass'
                        })
                    } else {
                    } */else {
                        uni.switchTab({
                            url: '../index/index'
                        })
uniapp/pages/login/setInviteCode.vue
@@ -150,7 +150,10 @@
                this.$u.api.getUserInfo({}).then(e => {
                    console.log(e)
                    util.setCache('userInfo', e.data.userinfo);
                    if (e.data.userinfo.isPwd == 'N') {
                    uni.switchTab({
                      url: '../index/index'
                    })
                    /* if (e.data.userinfo.isPwd == 'N') {
                        uni.redirectTo({
                            url: './setPass'
                        })
@@ -158,7 +161,7 @@
                        uni.switchTab({
                          url: '../index/index'
                        })
                    }
                     */}
                }).catch(function (err) {
                    console.log(err)
                })
uniapp/pages/rankinglist/common_act.vue
@@ -1,7 +1,6 @@
<template>
    <view>
        <web-view :webview-styles="webviewStyles" :src="webviewUrl" @message='received'></web-view>
    </view>
    
</template>
uniapp/pages/rankinglist/fengqiang.vue
@@ -48,7 +48,7 @@
            else{
                const value = uni.getStorageSync('userInfo');
                console.log(value);
                this.webviewUrl = encodeURI('http://dfgapp.ushopvip.com/html/fengqiangbang.html?token='+value.token);
                this.webviewUrl = encodeURI('http://appapitest.ushopvip.com/html/fengqiangbang.html?token='+value.token);
            }
            
        },
uniapp/uni_modules/m-start-ad/changelog.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
## 1.0.1(2022-11-11)
修改文档描述
## 1.0.0(2022-11-11)
初次版本发布
uniapp/uni_modules/m-start-ad/components/m-start-ad/m-start-ad.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,232 @@
<template>
    <view class="start" v-if="show">
        <view class="skip" :style="skipPositionStyle" @click="onSkip">跳过 {{time2}}</view>
        <swiper class="swiper" :interval="interval" @change="onChangeSwiper">
            <swiper-item v-for="(item, index) in list" :key="index">
                <view class="swiper-item" :style="'background:'+ item.colour +';'" @click="goUrl(item)">
                    <image class="image" :src="item.image" mode="widthFix"></image>
                    <view class="after" :style="afterStyle"></view>
                </view>
            </swiper-item>
            <!-- autoplay -->
        </swiper>
        <view class="swiper-dot" v-if="list.length>1">
            <view class="view" :style="index === current ? currentStyle : ''" :class="{'active': index === current}"
                v-for="(item, index) in list" :key="index" />
        </view>
    </view>
</template>
<script>
    export default {
        props: {
            list: {
                type: Array,
                default () {
                    return []
                },
                required: true
            },
            hasTabbar: {
                type: Boolean,
                default: false,
            },
            hasNavbar: {
                type: Boolean,
                default: false,
            },
            interval: {
                type: Number,
                default: 3000
            },
            time: {
                type: Number,
                default: 3
            },
            url: {
                type: String,
                default: ''
            },
            bgColor: {
                type: String,
                default: '#BB1219'
            },
            afterColor: {
                type: String,
                default: ''
            },
            currentColor: {
                type: String,
                default: '#BB1219'
            }
        },
        data() {
            return {
                current: 0,
                show: true,
                timer: null,
                time2: this.time
            }
        },
        watch: {
            time2(val) {
                if (val <= 0) {
                    this.onSkip()
                }
            }
        },
        computed: {
            bgStyle() {
                return this.obj2strStyle({
                    'background-color': this.bgColor
                })
            },
            afterStyle() {
                return this.obj2strStyle({
                    'background-color': this.afterColor
                })
            },
            currentStyle() {
                return this.obj2strStyle({
                    'background-color': this.currentColor
                })
            },
            skipPositionStyle() {
                const {
                    statusBarHeight
                } = uni.getSystemInfoSync()
                if (!this.hasNavbar) {
                    return this.obj2strStyle({
                        'top': `${statusBarHeight*2 + 88 + 30}rpx`
                    })
                }
                return this.obj2strStyle({
                    'top': '30rpx'
                })
            }
        },
        mounted() {
            if (this.hasTabbar) {
                uni.hideTabBar()
            }
            this.timer = setInterval(() => {
                this.time2--
            }, 1000)
        },
        methods: {
            obj2strStyle(obj) {
                let style = ''
                for (let key in obj) {
                    style += `${key}:${obj[key]};`
                }
                return style
            },
            goUrl(item)
            {
                this.$emit("pgoUrl",item);
            },
            onSkip() {
                const {
                    url,
                    hasTabbar,
                    timer
                } = this
                clearTimeout(timer)
                this.show = false
                if (hasTabbar) {
                    uni.showTabBar()
                }
                if (url) {
                    uni.reLaunch({
                        url: url,
                    })
                }
            },
            onChangeSwiper(e) {
                this.current = e.detail.current
            }
        }
    }
</script>
<style scoped>
    /* $nav-height: 44px; */
    .start {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9999;
    }
    .skip {
        position: absolute;
        z-index: 2;
        background-color: rgba(0, 0, 0, 0.1);
        color: #fff;
        right: 30rpx;
        font-size: 28rpx;
        width: 133rpx;
        height: 60rpx;
        border-radius: 44rpx;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .swiper {
        height: 100vh;
        width: 100vw;
    }
    .swiper-item {
        height: 100vh;
        width: 100vw;
        display: flex;
        justify-content: center;
        align-items: center;
        overflow: hidden;
        background-color: transparent;
    }
    .swiper-item .after {
        width: 100vw;
        height: 500rpx;
        position: absolute;
        left: 0;
        bottom: 0;
        z-index: 1;
    }
    .swiper-item .image {
        height: 100vh;
        width: 100vw;
        display: block;
        position: relative;
        z-index: 2;
    }
    .swiper-dot {
        position: absolute;
        width: 100vw;
        left: 0;
        bottom: 100rpx;
        z-index: 3;
        display: flex;
        justify-content: center;
    }
    .swiper-dot .view {
        width: 16rpx;
        height: 16rpx;
        border-radius: 100%;
        background-color: rgba(0, 0, 0, 0.2);
        margin: 0 12rpx;
    }
    .swiper-dot .view.active {
        width: 30rpx;
        border-radius: 24rpx;
    }
</style>
uniapp/uni_modules/m-start-ad/package.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
{
  "id": "m-start-ad",
  "displayName": "start-ad开屏广告",
  "version": "1.0.1",
  "description": "自定义开屏广告",
  "keywords": [
    "start、开屏、开屏广告"
],
  "repository": "",
  "engines": {
    "HBuilderX": "^3.2.12"
  },
  "dcloudext": {
    "type": "component-vue",
    "sale": {
      "regular": {
        "price": "0.00"
      },
      "sourcecode": {
        "price": "0.00"
      }
    },
    "contact": {
      "qq": ""
    },
    "declaration": {
      "ads": "无",
      "data": "无",
      "permissions": "无"
    },
    "npmurl": ""
  },
  "uni_modules": {
    "dependencies": [],
    "encrypt": [],
    "platforms": {
      "cloud": {
        "tcb": "y",
        "aliyun": "y"
      },
      "client": {
        "Vue": {
          "vue2": "y",
          "vue3": "y"
        },
        "App": {
          "app-vue": "y",
          "app-nvue": "y"
        },
        "H5-mobile": {
          "Safari": "y",
          "Android Browser": "y",
          "微信浏览器(Android)": "y",
          "QQ浏览器(Android)": "y"
        },
        "H5-pc": {
          "Chrome": "y",
          "IE": "y",
          "Edge": "y",
          "Firefox": "y",
          "Safari": "y"
        },
        "小程序": {
          "微信": "y",
          "阿里": "y",
          "百度": "y",
          "字节跳动": "y",
          "QQ": "y",
          "钉钉": "y",
          "快手": "y",
          "飞书": "y",
          "京东": "y"
        },
        "快应用": {
          "华为": "y",
          "联盟": "y"
        }
      }
    }
  }
}
uniapp/uni_modules/m-start-ad/readme.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
# m-start-ad
快速制作一个自定义开屏广告,支持轮播
### å±žæ€§è¯´æ˜Ž
| å±žæ€§å | ç±»åž‹ | é»˜è®¤å€¼ | å¿…å¡« | è¯´æ˜Ž |
| ------- | ------- | ------- | ------- | ------- |
|  list       |  Array       |    []    |    true     |  å¼€å±å›¾ç‰‡åˆ—表  |
|  hasTabbar  |  Boolean       |    false    |    false     |  é¡µé¢å­˜åœ¨åŽŸç”Ÿtabbar,组件会自动判断隐藏tabbar  |
|  hasNavbar       |  Boolean       |    false    |    false     |  é¡µé¢æ˜¯å¦åŒ…含navbar  |
|  interval       |  Number       |    3000     |      false     |  è½®æ’­è‡ªåŠ¨æ’­æ”¾æ—¶é—´ï¼ˆå¤šå›¾æ—¶å¯ç”¨ï¼‰  |
| time     |  Number   |   3  |   false  |   å€’计时跳过 |
| url      |  String  |   ''  |   false  |   æ—¶é—´å€’计时结束后跳转地址,如果是tabbar页面,可为空 |
| bgColor  | String  |   '#BB1219' |   false |   é¡µé¢çš„背景颜色, å¼€å±å›¾ç‰‡ä¸ºè‡ªåŠ¨åž‚ç›´å±…ä¸­ï¼Œåœ¨å¤§å±å¹•æ‰‹æœºä¸‹ï¼Œæœ‰äº›æ—¶å€™é«˜åº¦ä¸å¤Ÿçš„æƒ…å†µä¸‹ï¼Œä¼šé€ æˆä¸Šä¸‹ç•™ç™½ï¼Œä½¿ç”¨æ­¤å±žæ€§å¯ä»¥å¡«å……èƒŒæ™¯è‰² |
| afterColor  | String  |     ''  |   false  |   é¡µé¢åº•部背景色填充,有些时候设置会设计渐变色图片,如果只使用bgcolor无法解决需求,此时定义此属性,可在最下面填充颜色,以达到颜色过度效果 |
| currentColor  | String   |     '#BB1219'  |   false  |  å®šä¹‰dot当前状态颜色, list长度大于1可见 |
### å¦‚何做自定义开屏界面
#### æ–¹å¼ä¸€
1、新建一个新页面 pages/start
2、修改pages.js配置文件,把start地址放在最前
```
{
    "pages": [
        {
            "path" : "pages/start", //page第一页就是开屏第一个页面
            "style" :
            {
                "navigationBarTitleText": "",
                "navigationStyle": "custom"  //取消默认导航做到满屏效果
            }
        }
    ]
}
```
3、页面引入组件,传入list, url
### ä½¿ç”¨æ–¹å¼
```
<template>
    <m-start-ad :list="list" url="pages/index/index" />
</template>
```
#### æ–¹å¼äºŒ
1、页面关闭原生导航
```
{
    "pages": [
        {
            "path" : "pages/index/index",
            "style" :
            {
                "navigationBarTitleText": "",
                "navigationStyle": "custom"  //取消默认导航做到满屏效果
            }
        }
    ]
}
```
1、页面直接使用
```
<m-start-ad :list="list" />
```
2、倒计时结束后,自动隐藏组件(无需操作)
### æ–¹å¼å¯¹æ¯”
 |对比  | ä¼˜ç‚¹  | ç¼ºç‚¹  |
 | -------  | -------  |-------  |
 | æ–¹å¼ä¸€  |  æ‰€æœ‰é¡µé¢éƒ½å¯ä»¥å…¬ç”¨  | å¦‚果内页需要tabbar,需要自定义 |
 | æ–¹å¼äºŒ  |  æŒ‰éœ€é…ç½®   | æ— æ³•控制navbar,需要自定义   |
uniapp/utils/config.js
@@ -1,6 +1,6 @@
//const httpUrl = ""; // æŽ¥å£åŸŸå
//const httpUrl = "http://appapitest.ushopvip.com"; // æµ‹è¯•环境接口域名
const httpUrl = "http://dfgapp.ushopvip.com"; // ç”Ÿäº§çŽ¯å¢ƒæŽ¥å£åŸŸå
const httpUrl = "http://appapitest.ushopvip.com"; // æµ‹è¯•环境接口域名
//const httpUrl = "http://dfgapp.ushopvip.com"; // ç”Ÿäº§çŽ¯å¢ƒæŽ¥å£åŸŸå
const salt = ""; 
export default {
    httpUrl:httpUrl,
uniapp/utils/getClipboard.js
@@ -5,7 +5,8 @@
    
  function getclick(callback) {
    uni.getClipboardData({
  uni.getClipboardData({
      success: res => {
        console.log(res, '======================================================');
        var nowClipData = res.data
@@ -18,11 +19,6 @@
            callback(res)
          }).catch(function (err) {
          })
          // request.post("tb/parseContent", {
          //  content: nowClipData
          // }, 'application/json').then(res => {
          //  callback(res)
          // });
        }else{
          getApp().globalData.hasMode = false
          console.log('内部复制');
@@ -417,11 +413,31 @@
          },
          position: {
            top: uni.upx2px(580) + "px",
            left: uni.upx2px(115) + "px",
            left: uni.upx2px(85) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(24) + "px",
          }
        },
        {
          tag: 'font',
          id: 'dytxt',
          text: '抖音',
          textStyles: {
            size: uni.upx2px(24) + "px",
            color: "#333333",
            align: "center",
            weight: "normal",
            whiteSpace: "nowrap",
            overflow: 'ellipsis',
            verticalAlign: 'middle'
          },
          position: {
              top: uni.upx2px(580) + "px",
              left: uni.upx2px(185) + "px",
              width: uni.upx2px(74) + "px",
              height: uni.upx2px(24) + "px",
          }
        },
        {
          tag: 'font',
          id: 'pddtxt',
@@ -437,7 +453,7 @@
          },
          position: {
            top: uni.upx2px(580) + "px",
            left: uni.upx2px(225) + "px",
            left: uni.upx2px(285) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(24) + "px",
          }
@@ -457,44 +473,57 @@
          },
          position: {
            top: uni.upx2px(580) + "px",
            left: uni.upx2px(335) + "px",
            left: uni.upx2px(385) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(24) + "px",
          }
        },
        {
          src: './static/images/app/jd.png',
          src: 'https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/index_icon/%E4%BA%AC%E4%B8%9C.png',
          tag: 'img',
          id: 'jd',
          position: {
            top: uni.upx2px(490) + "px",
            left: uni.upx2px(115) + "px",
            left: uni.upx2px(85) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(74) + "px",
          }
        },
        {
          src: 'https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/index_icon/%E6%8A%96.png',
          tag: 'img',
          id: 'dy',
          position: {
            top: uni.upx2px(490) + "px",
            left: uni.upx2px(185) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(74) + "px",
          }
        },
        {
          src: './static/images/app/pdd.png',
          src: 'https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/index_icon/%E6%8B%BC.png',
          tag: 'img',
          id: 'pdd',
          position: {
            top: uni.upx2px(490) + "px",
            left: uni.upx2px(225) + "px",
            left: uni.upx2px(285) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(74) + "px",
          }
        },
        {
          src: './static/images/app/vph.png',
          src: 'https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/index_icon/%E5%94%AF.png',
          tag: 'img',
          id: 'vph',
          position: {
            top: uni.upx2px(490) + "px",
            left: uni.upx2px(335) + "px",
            left: uni.upx2px(385) + "px",
            width: uni.upx2px(74) + "px",
            height: uni.upx2px(74) + "px",
          }
        },
      ];
      nogoodsIdwrap.drawRect({
@@ -570,13 +599,14 @@
        let icontop = uni.upx2px(490)
        let iconbtm = uni.upx2px(600)
        let jdleft = uni.upx2px(115)
        let jdrgt = uni.upx2px(190)
        let pddleft = uni.upx2px(225)
        let pddrgt = uni.upx2px(300)
        let vphleft = uni.upx2px(335)
        let vphrgt = uni.upx2px(410)
        let jdleft = uni.upx2px(85)
        let jdrgt = uni.upx2px(160)
        let pddleft = uni.upx2px(285)
        let pddrgt = uni.upx2px(360)
        let vphleft = uni.upx2px(385)
        let vphrgt = uni.upx2px(460)
        let dyleft= uni.upx2px(185)
        let dyrgt= uni.upx2px(260)
        if (e.clientY > icontop && e.clientY < iconbtm) {
          if (e.clientX < jdrgt && e.clientX > jdleft) {
            console.log('去jd');
@@ -588,7 +618,16 @@
            uni.setStorageSync('clipboard',dataInfo.goods_url)
            getApp().globalData.hasMode = false
          }
          if(e.clientX < dyrgt && e.clientX > dyleft) {
                console.log('去dy');
                maskLayers.hide();
                nogoodsIdwrap.hide();
                uni.navigateTo({
                  url: '/pages/search/searchResult?storetype=4&searchText=' + dataInfo.goods_url
                })
                uni.setStorageSync('clipboard',dataInfo.goods_url)
                getApp().globalData.hasMode = false
          }
          if (e.clientX < pddrgt && e.clientX > pddleft) {
            console.log('去pdd');
            const value = uni.getStorageSync('userInfo');
uniapp/utils/utils.js
@@ -57,6 +57,7 @@
            })
        } else if (info.url_type == 1) {
            let url = info.parameter_json.url == undefined ? '' : info.parameter_json.url;
            console.log(url)
            if(url == '') return false;
            uni.navigateTo({
                url: url