zhaojs
2023-07-31 d4b1c654014f391ff69c04e6491d3e892e5551bf
public/html/compareprice.html
@@ -28,7 +28,6 @@
        {
            width: 95%;
            margin: 0 auto;
            min-height: 23rem;
            margin-top: 5.3rem;
            position:relative;
        }
@@ -104,7 +103,7 @@
            width: 100%;
            text-align: center;
            margin: 0 auto;
            line-height: 6.2rem;
            line-height: 1.2rem;
            color: #a69b9b;
            font-size: 14px;
        }
@@ -120,15 +119,15 @@
        }
        .detail___3ZQFW {
        background-color: #fff;
        height: 2.2rem;
        height: 2.6rem;
        border-radius: .16rem;
        padding: .1rem;
        position: relative;
        box-sizing: border-box;
    }
    .picture___r4a1j {
        height: 2rem;
        width: 2rem;
        height: 2.4rem;
        width: 2.4rem;
        border-radius: .1rem;
        position: absolute;
        left: .1rem;
@@ -138,8 +137,8 @@
        -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding-left: 2.2rem;
        height: 2rem;
        padding-left: 2.5rem;
        width: 100%;
        overflow: hidden;
        -webkit-align-items: flex-start;
@@ -162,7 +161,7 @@
        justify-content: flex-start;
        padding: 0;
        margin: 0;
        height: .4rem;
        height: .85rem;
        font-size: .28rem;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 400;
@@ -171,6 +170,7 @@
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        width: 100%;
    }
    .shoplabel___1_Nv0 img {
@@ -184,7 +184,7 @@
    .shoplabel___1_Nv0 {
        height: .26rem;
        float: left;
        display:inline-block;
        position: relative;
        top: .05rem;
    }
@@ -204,7 +204,7 @@
    }
    .coupon___2SVZi {
        margin-top: 6px;
        margin-top: 3px;
        height: .28rem;
        background: linear-gradient(
                90deg, #ff8873, #ff4f4f);
@@ -269,19 +269,18 @@
        line-height: .32rem;
    }
    .detail___3ZQFW .choiceInfo___3ZuEa .price___dfbCD {
        margin-bottom: .16rem;
        -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
        justify-content: flex-start;
        -webkit-align-items: baseline;
        -ms-flex-align: baseline;
        align-items: baseline;
        height: .24rem;
        font-size: .24rem;
        font-family: PingFangSC-Medium, PingFang SC;
        font-weight: 500;
        color: #fe3738;
        line-height: .24rem;
        line-height: .54rem;
    }
    .detail___3ZQFW .choiceInfo___3ZuEa .operation___3KazI {
@@ -296,55 +295,145 @@
    * {
        box-sizing: border-box;
    }
    .loading{
        display: flex;
        position: fixed;
        width: 100vw;
        height: 100vh;
        background: rgb(0 0 0 / 67%);
        top: 0;
        left: 0;
        z-index: 10;
        justify-content: center;
        align-items: center;
        font-size: .35rem;
        color: #fff;
        }
        .showshop
        {
            font-size: .26rem;
            color: #787070;
        }
        .goodtitle
        {
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
        }
        .price_font
        {
            font-size: .26rem;
            color: #787070;
        }
        .plat-div
        {
            font-size: 0.28rem;
            padding: 0.2rem;
            background: #fff;
            margin-bottom: 0.2rem;
            display: flex;
            border-radius: .16rem;
            align-items: center;
        }
        .plat-ite
        {
            width: 20%;
            text-align: center;
            margin-right: 0.1rem;
            border-radius: 0.1rem;
            color: #fff;
            display: flex;
            justify-content: center;
            align-items: center;
            background: #F79633;
            padding: 0.1rem;
        }
        .plat-unite
        {
            background: #fff;
            border:1px solid #F79633;
            color:#F79633;
            width: 20%;
            text-align: center;
            margin-right: 0.1rem;
            border-radius: 0.1rem;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 0.1rem;
        }
    </style>
</head>
<body style="background: #f5f5f9;">
    <div id="comprice">
        <div v-if="loading" class="loading">加载中...</div>
        <image class="top-content" src="https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/compareprice_topimg.png"></image>
        <div class="main-content">
            <div class="mid-content">
                <div class="mid-content-con">
                    <div class="content-tip" v-on:click="clear()">
                        清空
                    </div>
                    <div class="content-txtarea">
                        <textarea class="txtarea" v-model="txtareatxt" :placeholder='txtplaceholder'></textarea>
                        <textarea enterkeyhint="search" onkeydown="onTextareaKeyDown()" class="txtarea" v-model="txtareatxt" :placeholder='txtplaceholder'></textarea>
                        <span class="copytxt" v-on:click="fromcopy()">粘贴</span>
                    </div>
                    <div class="mid-button-content">
                        <div class="mid-button-content-img">
                        <div class="mid-button-content-img" v-on:click="search()">
                            <image style="width: 100%;" src="https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/compareprice_search.png"></image>
                        </div>
                    </div>
                </div>
                <div class="cont-title">
                    查询排行
                    {{showTxt}}
                </div>
                    <div v-if="goodsItem.length==0" class="mid-content-none">
                        暂无数据~
                    </div>
                    <div v-else class="ulist">
                        <div class="plat-div" v-if="issearch">
                            <span>平台:</span>
                            <div v-on:click="changeplat(item)" :class="item.choose?'plat-ite':'plat-unite'" v-for="item in plat">
                                <span class="plat-span" v-if="item.choose">
                                    √{{item.platname}}
                                </span>
                                <span class="plat-span" v-else>
                                    {{item.platname}}
                                </span>
                            </div>
                        </div>
                        <a v-for="g in goodsItem" :key="g.id" v-on:click="handleCdetailFavorite(g)">
                            <div class="detail___3ZQFW">
                                <img :src="g.pic"
                                <img :src="g.mainPic"
                                    class="fadeIn picture___r4a1j">
                                <div class="choiceInfo___3ZuEa">
                                    <div class="other___2Mv8Q">
                                        <h2>
                                            <div class="shoplabel___1_Nv0"><img
                                                    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAaCAYAAADIUm6MAAAE60lEQVRYw9WYbVBUVRjHz+gH/OCHdCY/WE1OGTNWU40ibIqSE6IGZpoGgrGUyAjrYkrI2yqIKGjN+FLONOk4aI6azZqZmu+ama9oElmOGApqvrK6KjBp8uvDc5a7d3eBJZsp78xv9p7/eZ7/8+y95yxnUEopRZ4tFIfdicPuxjGFoCnQODqKXdOhHDcOu5M8W6hqaTonw0VOBo8ILvJsoYqsdCfTJ/NIkZXuVNjT3NgnEZg0H9qLm/Qv01r9NLdi8kRMzMyFBw/+OWfPGF6VJ6GpEepqwbkebGnmWtVnAKCsxKzv3in6mi/w60+jmPgeJvJyeKjrbLXhVVVlnvthv+hfroWfK+HuXdGrq2Xs4fp10S9elHHpXHz7VCRbwZpsJiUlMA6HGNbVtR5jTYHkZMFqhdRUKJsPDY3Q3AxTbHDgQMcexpIlkGz1IhlF4gRaGN8OM/LEqLaONvMSA3DqlOQWzobsXJhXBnUXRCtfJWMPRytE37ZdxpMz/HwV4xIJmiy9jM7XBp8TPwFWrITGRsktKjHmDh6CK1fhw1xzzrqvRF+8tFVfxVsJ+BOv8dGnZkvxc7UEzvMhv0i+pPflKG7dv736Xihix2HiSAVU/WrmF03171K8qSnwvIdl5eK1co3EX7gEly7LfV4RrHNCzbngKSiG2He8GIci5m1MuG/z0Nem78QrNgE+WQax8VBxUuayC2Hnvo75FX+Eb5+KIaMxYcuBzHxhqsYz3uFVsHSRofuSlG72HJ4A1TWSN20mbN8r95+VQ4pdOHRMtKUrDO3Icb2h5+PbpyJyFEExaBTUeK3Xz1d7zb/pg5deUAqXrxp59nzYtkdv1I+NWM9DmbXA0HbtF62gzFxn0CgUEXFgaYUIjSUO8krFpEH/OtTfhOh4HTvSB52zeoPRcHOzfKbnwtbdcj9zgeG/Tb+F/DIjf4duPHeeX1+Kfm/QLjFJcL1eP6WFcPiE3G/Z03ZeUibccEHxIjiq13jqDNi8S+5dt+CPq0JjU+ta9lw/b8VLw2mTV8dA1WkxOHgcXh4Bce/DnQbRPl3Zdn7YSPk8Vinx1izYtKtjm3P6HD9fRZ+h0CdGM9TM4Hij6TPnYMBYWuJthXD/L73e18LzAfI9vBIHt/Sv1ZBE2KgPUcVLICoBosbDTn0MKFyktQTYfVC0zNk+njEoer9OQJKy4Io+7FSfB8tY/5hpc+HefYnZexgiAsQ8Fw3rt0pMRZVoX++Q8QclRtw3+i1kFhvaZr2JbUV+voqnh2DixTgo3yBHVIDvj0Lf0fjFeUiYJusS4MZNmFoCvfTcC7HwrS5+pwFGpIq+aqNoC8sNH89byJgt42ejoVK/7Xez/eoqeg6GnlEGx/Vh6N59mL8cnnzNPN8zCsnxou8Y2HfM68/6Yolbu0XGN90wxg5PRAmj7fJgmpvly15zQdOfEuu+A9fq4bY+8l68Ar2H+dVX9IikhccjIXUW/PgTRE6QcSC841u0QWCbA7/VQO8RMm8ZDwdOQP94THV6RMKUEqi/1famrDwNUdaA9RXdBrjpNgAzA/HXvHhME2iu+0D/uNbiuw+EXsPgmeH+PBXdVg9uRVeLk64WhAiN5T8i6PpORUh4KF3CXYT0xyDch/7tEGxcsP5tzHcJdxESrv+3EhIeSucwJ53C3HTqx/+TMDedw5yepv8GV1+TBUuIRhcAAAAASUVORK5CYII=">
                                            </div>
                                            <span>{{g.title}}</span></h2>
                                        <div class="coupon___2SVZi" style="float: left; margin-right:10px"><span>券</span>{{g.quanJine}}元</div>
                                        <div class="coupon___2SVZi" style="background: #A429F3;"><span style="color: #A429F3;">返</span>{{g.fanli}}元</div>
                                            <!-- <div class="shoplabel___1_Nv0"><img
                                                    :src="g.labelImg">
                                            </div> -->
                                            <div class="goodtitle">
                                                <img class="shoplabel___1_Nv0" :src="g.labelImg">
                                                {{g.title}}</div></h2>
                                        <div v-if="g.couponPrice" class="coupon___2SVZi" style="float: left; margin-right:10px"><span>券</span>{{g.couponPrice}}元</div>
                                        <div v-if="isshowfan" class="coupon___2SVZi" style="background: #A429F3;"><span style="color: #A429F3;">返</span>{{g.fanli}}元</div>
                                    </div>
                                    <div class="price___dfbCD">¥<span>{{g.jiage}}</span><u style="text-decoration:line-through">聚划算价 ¥{{g.yuanjia}}</u></div>
                                    <div class="operation___3KazI">
                                        <button>马上抢</button>
                                    </div>
                                    <div class="price___dfbCD">
                                        <span class="price_font" style="font-size: .26rem; font-weight: 500;">到手价</span><span style="padding: 0;">¥</span>
                                        <span v-if="isshowfan" style="padding: 0 .08rem 0 0;">{{(g.actualPrice-g.fanli).toFixed(2)}}</span>
                                        <span v-else style="padding: 0 .08rem 0 0;">{{g.actualPrice}}</span>
                                        <u v-if="g.sourceType=='tb'||g.sourceType=='tm'" style="text-decoration:line-through">¥{{g.originalPrice}}</u></div>
                                   <!--  <div class="operation___3KazI">
                                        <button>立即购买</button>
                                    </div> -->
                                    <div class="showshop">月销{{g.monthSales}}</div>
                                    <div class="showshop">{{g.shopName}}</div>
                                </div>
                            </div>
                        </a>
@@ -357,7 +446,8 @@
</body>
</html>
<script type="text/javascript" src="https://cdn.staticfile.org/vue/2.6.11/vue.min.js"></script>
<script type="text/javascript" src="./js/vue.js"></script>
<script type="text/javascript" src="./js/md5.js"></script>
<script>
(function () {
@@ -369,7 +459,21 @@
    })();
    function scanCode(str)
    {
        coptest(str);
        app.copytxt(str);
    }
    function likeDataGet(data)
    {
        app.likeDataGet(data);
    }
    function onTextareaKeyDown()
    {
        if (event.keyCode == 13)
        {
            app.search();
            document.activeElement.blur();
        }
    }
    Vue.use(VueLazyload, {
        preLoad: 1.3,//
@@ -377,24 +481,178 @@
        loading: 'https://sr.ffquan.cn/cms_pic/20200612/brhjkf76vrkcrfpi79eg0.png',
        attempt: 1
    })
    new Vue({
  var app=  new Vue({
        el: '#comprice',
        data:{
          //posturl:'http://dfg.shop.com',
          posturl:'https://appapitest.ushopvip.com',
         // posturl:'http://appapitest.ushopvip.com',
          //posturl:'http://dfgapp.ushopvip.com',
          goodsItem:[],
          loading:false,
          isshowfan:false,
          plat:[
            {
                'platname':'淘宝',
                'plat':'tb',
                'choose':true
            },
            {
                'platname':'京东',
                'plat':'jd',
                'choose':true
            },
            {
                'platname':'抖音',
                'plat':'dy',
                'choose':true
            },
            {
                'platname':'拼多多',
                'plat':'pdd',
                'choose':true
            },
          ],
          txtareatxt:'',
          txtplaceholder:'1、支持淘宝、天猫、京东、抖音、拼多多等多家电商 \r\n 2、请粘贴您需要转换的分享文案/链接和口令/商品链接;不支持券链接'
          issearch:false,
          showTxt:'猜你喜欢',
          txtplaceholder:'1、支持淘宝、天猫、京东、抖音、拼多多等平台\r\n2、请粘贴您需要转换的分享文案/链接和口令/商品链接;不支持券链接'
        },
        methods:{
            changeplat:function(item)
            {
                var index=this.plat.findIndex(i=>i.plat==item.plat);
                item.choose=!item.choose;
                this.plat[index]=item;
                this.search();
            },
            //查询
            search:function()
            {
                if(this.txtareatxt=='')
                {
                    return;
                }
                this.showTxt="查询结果";
                this.goodsItem=[];
                var that = this;
                this.loading = true
                var postData={
                        content:that.txtareatxt
                    };
                //查看不看的平台
                var cancelPlat=this.plat.filter(i=>!i.choose);
                if(cancelPlat&&cancelPlat.length>0)
                {
                    for(var i=0;i<cancelPlat.length;i++)
                    {
                        switch(cancelPlat[i].plat)
                        {
                            case "tb":
                                postData.exclude_tb=1;
                                break;
                            case "jd":
                                postData.exclude_jd=1;
                                break;
                            case "pdd":
                                postData.exclude_pdd=1;
                                break;
                            case "dy":
                                postData.exclude_dy=1;
                                break;
                        }
                    }
                }
                var header=this.getPostHeader(postData);
                $.ajax({
                    headers:header,
                    url:'/api/taoke/compare_good',
                    type:"post",
                    dataType:"json",
                    data:postData
                }).done(function(res){
                    that.loading = false;
                    that.issearch=true;
                    if(res.code == 0){
                        that.goodsItem=res.data.list;
                    }
                })
            },
            Infoformat: function(info){
                info = info.replace(/\%/g,"%25")
            info = info.replace(/\#/g,"%23")
            info = info.replace(/\&/g,"%26")
            info = info.replace(/\?/g,"%3F")
            return info;
            },
            handleCdetailFavorite:function(item)
            {
                if(this.isshowfan)
                {
                    switch(item.sourceType)
                    {
                        case "tb":
                        case "tm":
                            uni.navigateTo({
                                url: '/pages/goods/goodsDetail?id=' + item.goodsId+'&frompage=compareprice'
                            });
                            break;
                        default:
                            var itemsStr=this.Infoformat(JSON.stringify(item));
                            uni.navigateTo({
                                url: '/pages/goods/goodsDetail?sourcefrom=compareprice&info=' + itemsStr+'&frompage=compareprice'
                            });
                            break;
                    }
                }
                else{
                    var itemsStr=this.Infoformat(JSON.stringify(item));
                    uni.navigateTo({
                        url: '/pages/goodDetail/index?id=' + item.goodsId+'&info'+itemsStr
                    });
                }
            },
            likeDataGet:function(postData)
            {
                var _this=this;
                var data={
                        deviceType:postData.postData,
                        deviceValue:postData.deviceValue,
                        pageId:1,
                        pageSize:10,
                        type:1
                    };
                var header=this.getPostHeader(data);
                $.ajax({
                    headers:header,
                    url:'/api/taoke/get_goods_things',
                    type:"post",
                    dataType:"json",
                    async: false,
                    data:data
                }).done(function(res){
                    _this.goodsItem=res.data.list;
                    console.log(res);
                })
            },
            getLikeGoods:function()
            {
                uni.postMessage({
                    data: {
                        action: 'getlike'
                    }
                })
            },
            clear:function()
            {
                this.txtareatxt='';
            },
            coptest(str)
            copytxt(str)
            {
                alert(str);
                if(str&&str.data&&str.data.length>0)
                {
                    this.txtareatxt=str.data;
                }
            },
            fromcopy:function()
            {
@@ -402,28 +660,6 @@
                    data: {
                        action: 'copy'
                    }
                })
                /* navigator.clipboard.readText().then(function(clipText){
                alert(clipText);
               }) */
            },
            getCmsUrl:function(){
                var _this = this;
                _this.loading=true;
                $.ajax({
                    headers:{
                        "token":this.getUrlPar("token")
                    },
                    url:_this.posturl+'/api/activity/cmsGet',
                    type:"post",
                    dataType:"json",
                    async: false,
                    data:{
                    }
                }).done(function(res){
                })
            },
            getUrlPar:function(name)
@@ -433,31 +669,55 @@
                if(r !=null)return unescape(r[2]);
                 return null;
            },
            getGoodsList: function () {
                var that = this;
                this.loading = true
                $.ajax({
                    headers:{
                        "token":this.getUrlPar("token")
                    },
                    url:this.posturl+'/api/Activity/zsz_goods_list',
                    type:"post",
                    dataType:"json",
                    data:{
                        cid:0,
                        app_key: 'zsccir',
            getPostHeader(data)
            {
                var token=this.getUrlPar("token");
                if(token)
                {
                    return {
                        "token":token
                    }
                }).done(function(res){
                    if(res.code == 0){
                    that.goodsItem = res.data.data.data.list;
                    }
                })
            },
                }
                else{
                    token=this.getUrlPar("dfgtoken");
                    if(token)
                    {
                        let keysList=Object.keys(data);
                        let enstr="";
                        if(keysList&&keysList.length>0)
                        {
                            let curData=data;
                            keysList.forEach(function(value,index){
                                enstr+=value+ (JSON.stringify(data[value]).replace(/^\"|\"$/g,''));
                            })
                        }
                        enstr="dfg"+enstr+"apph5"+token;
                        enstr=hex_md5(enstr);
                        enstr+='.'+token
                        return {
                            "dfgsessionkey":enstr
                         }
                    }
                }
            }
        },
        mounted:function(){
            this.getGoodsList();
            var token=this.getUrlPar("token");
            if(token)
            {
                this.isshowfan=true;
                var that=this;
                    document.addEventListener('UniAppJSBridgeReady', function() {
                    that.getLikeGoods();
                });
            }
            else{
                var postData={
                    postData:'OAID',
                    deviceValue:''
                 };
                 this.likeDataGet(postData);
            }
        }
    })
</script>