ss
重庆迈尖科技有限公司
2020-06-15 607ad91b17f56cc16f287d34ec591764c1814f97
ss
8个文件已修改
6个文件已添加
1789 ■■■■ 已修改文件
AppInside/activityDetailTempPage/css/stylesheet.css 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/activityDetailTempPage/index.html 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/activityDetailTempPage/js/main.js 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/cloudPushOrderManage.html 282 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/css/base.css 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/css/cloudPushOrderManage.css 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/css/payCloudPushOrder.css 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/img/icon_delete.png 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/img/icon_goodsDelete.png 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/img/icon_payResult.png 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/openCloudPushOrder.html 405 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/openRecord.html 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/cloudPushOrder/payCloudPushOrder.html 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/teamBonus/css/load.css 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AppInside/activityDetailTempPage/css/stylesheet.css
@@ -15,6 +15,7 @@
    /* CSS3属性 */
    /* IOS点击阴影 */
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
}
body {
@@ -97,32 +98,32 @@
    position: relative;
}
.div_Link {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
.div_Link {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
    margin-top: 0.1rem;
    display: -webkit-flex;
    background-color: #F7F7F7;
    border-radius: 0.1rem;
    height: 0.8rem;
    border-radius: 0.1rem;
    height: 0.8rem;
    align-items: center;
}
.div_tag_bg {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
    background-color: #F7F7F7;
    height: 0.76rem;
    border-radius: 0.1rem;
    display: -webkit-flex;
    justify-content: space-between;
}
.div_top_tag_bg {
    height: 0.26rem;
}
}
.div_tag_bg {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
    background-color: #F7F7F7;
    height: 0.76rem;
    border-radius: 0.1rem;
    display: -webkit-flex;
    justify-content: space-between;
}
.div_top_tag_bg {
    height: 0.26rem;
}
.div_commit {
    background-color: #FFFFFF;
    position: fixed;
@@ -146,8 +147,8 @@
    display: -webkit-flex;
    align-items: center;
    justify-content: center;
}
}
.share {}
.share_title {
@@ -198,4 +199,4 @@
    display: -webkit-flex;
    align-items: center;
    justify-content: center;
}
}
AppInside/activityDetailTempPage/index.html
@@ -16,6 +16,11 @@
        <script src="http://img.flqapp.com/resource/js/app20200610.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script src="js/layer.js"></script>
        <link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.css">
        <link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css">
        <script src="https://unpkg.com/swiper/js/swiper.js"> </script>
        <script src="https://unpkg.com/swiper/js/swiper.min.js"> </script>
    </head>
    <body>
        <div id="root" style="display: none;">
@@ -130,11 +135,16 @@
                    </div>
                </div>
                <div style="height: 1px; background-color: #D0D0D0; margin-top: 0.37rem;"></div>
                <div style="height: 1px; background-color: #D0D0D0; margin-top: 0.37rem;display: -webkit-flex;align-items: center;justify-content: ce;"></div>
                <div class="div_cancel" onclick="cancelShare()">取消</div>
            </div>
        </div>
        <div class="imgshow" style="display: none; background-color: black;position: fixed;left: 0;top: 0;width: 7.5rem;height: 100%;z-index: 2019521">
            <div class="swiper-container">
                <div class="swiper-wrapper"></div>
            </div>
        </div>
    </body>
@@ -148,7 +158,6 @@
    </script>
    <script type="text/javascript">
        //var host = "http://api.flqapp.com";
        var host = "http://192.168.1.253:8080";
        var id = getQueryString('id');
@@ -162,6 +171,9 @@
        var app;
        $(function() {
            try {
                app = new Vue({
                    el: "#root",
@@ -298,13 +310,32 @@
                            if (parseInt(app.dataInfo.detailInfo.lineNum) == 2) {
                                smallImageBG.css('padding-right', '2.67rem');
                            }
                            var imgs = []
                            for (k = 0; k < imageSmall.length; k++) {
                                // <figure></figure>
                                smallImageBG.append(
                                    "<img style='margin-top: 0.12rem;margin-left: 0.12rem;width: 1.92rem;height: 1.92rem;border-radius: 0.1rem;background-color: #F3F3F3;' class='imgSmall'>"
                                    "<img style='margin-top: 0.12rem;margin-left: 0.12rem;width: 1.92rem;height: 1.92rem;border-radius: 0.1rem;background-color: #F3F3F3;object-fit: cover;' class='imgSmall'>"
                                );
                                smallImageBG.find('.imgSmall').eq(k).attr("src", imageSmall[k].url);
                                imgs.push(smallImageBG.find('.imgSmall').eq(k).attr('src'));
                                //yesApp.toast(imgs + '') imgshow
                                smallImageBG.find('.imgSmall').eq(k).click(function() {
                                    var nowImgurl = $(this).attr('src');
                                    $('.imgshow').css('display', 'block');
                                    for (var o = 0; o < imageSmall.length; o++) {
                                        var url = imageSmall[o].url
                                        // yesApp.toast(url + '')
                                        $('.imgshow .swiper-wrapper').append(
                                            '<div class="swiper-slide"><img style="width:7.5rem;heught:2rem" src="' +
                                            url + '"></div>')
                                    }
                                });
                            }
                            // yesApp.toast(JSON.stringify(arrayComments.length + ''))
@@ -437,9 +468,7 @@
                });
                app.fetchPushDetail();
                // function touchTag(url) {
                //     yesApp.toast(url);
                // }
                function copyCommentstContent() {
                    yesApp.showLoading();
@@ -480,6 +509,12 @@
            }
        });
        var mySwiper = new Swiper('.swiper-container', {
            slidesPerView: 'auto'
            // freeMode: true,
        })
        //关闭分享弹框
        function cancelShare() {
            layer.closeAll();
AppInside/activityDetailTempPage/js/main.js
New file
@@ -0,0 +1,143 @@
let initPhotoSwipeFromDOM = function(gallerySelector) {
    let parseThumbnailElements = function() {
        let all = document.querySelectorAll(gallerySelector);
        let items = [];
        let figureEl,
            linkEl,
            size,
            item;
        for (let i = 0; i < all.length; i++) {
            figureEl = all[i];
            if (figureEl.nodeType !== 1) {
                continue;
            }
            linkEl = figureEl.children[0];
            size = linkEl.getAttribute('data-size').split('x');
            item = {
                src: linkEl.getAttribute('href'),
                w: parseInt(size[0], 10),
                h: parseInt(size[1], 10),
                minZoom: 3
            };
            if (figureEl.children.length > 1) {
                item.title = figureEl.children[1].innerHTML;
            }
            if (linkEl.children.length > 0) {
                item.msrc = linkEl.children[0].getAttribute('src');
            }
            item.el = figureEl;
            items.push(item);
        }
        return items;
    };
    let closest = function closest(el, fn) {
        return el && (fn(el) ? el : closest(el.parentNode, fn));
    };
    let onThumbnailsClick = function(e) {
        e = e || window.event;
        e.preventDefault ? e.preventDefault() : e.returnValue = false;
        let eTarget = e.target || e.srcElement;
        let clickedListItem = closest(eTarget, function(el) {
            return (el.tagName && el.tagName.toUpperCase() === 'FIGURE');
        });
        if (!clickedListItem) {
            return;
        }
        let clickedGallery = clickedListItem.parentNode,
            childNodes = document.querySelectorAll(gallerySelector),
            numChildNodes = childNodes.length,
            nodeIndex = 0,
            index;
        for (let i = 0; i < numChildNodes; i++) {
            if (childNodes[i].nodeType !== 1) {
                continue;
            }
            if (childNodes[i] === clickedListItem) {
                index = nodeIndex;
                break;
            }
            nodeIndex++;
        }
        if (index >= 0) {
            openPhotoSwipe(index, clickedGallery);
        }
        return false;
    };
    let photoswipeParseHash = function() {
        let hash = window.location.hash.substring(1),
            params = {};
        if (hash.length < 5) {
            return params;
        }
        let vars = hash.split('&');
        for (let i = 0; i < vars.length; i++) {
            if (!vars[i]) {
                continue;
            }
            let pair = vars[i].split('=');
            if (pair.length < 2) {
                continue;
            }
            params[pair[0]] = pair[1];
        }
        if (params.gid) {
            params.gid = parseInt(params.gid, 10);
        }
        return params;
    };
    let openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) {
        let pswpElement = document.querySelectorAll('.pswp')[0],
            gallery,
            options,
            items;
        items = parseThumbnailElements(galleryElement);
        options = {
            maxSpreadZoom: 5,
            galleryUID: galleryElement.getAttribute('data-pswp-uid'),
            getThumbBoundsFn: function(index) {
                let thumbnail = items[index].el.getElementsByTagName('img')[0],
                    pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
                    rect = thumbnail.getBoundingClientRect();
                return {
                    x: rect.left,
                    y: rect.top + pageYScroll,
                    w: rect.width
                };
            },
            minZoom: 3
        };
        if (fromURL) {
            if (options.galleryPIDs) {
                for (let j = 0; j < items.length; j++) {
                    if (items[j].pid === index) {
                        options.index = j;
                        break;
                    }
                }
            } else {
                options.index = parseInt(index, 10) - 1;
            }
        } else {
            options.index = parseInt(index, 10);
        }
        if (isNaN(options.index)) {
            return;
        }
        if (disableAnimation) {
            options.showAnimationDuration = 0;
        }
        gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
        return gallery.init();
    };
    let galleryElements = document.querySelectorAll(gallerySelector);
    for (let i = 0, l = galleryElements.length; i < l; i++) {
        galleryElements[i].setAttribute('data-pswp-uid', i + 1);
        galleryElements[i].onclick = onThumbnailsClick;
    }
    let hashData = photoswipeParseHash();
    if (hashData.pid && hashData.gid) {
        openPhotoSwipe(hashData.pid, galleryElements[hashData.gid - 1], true, true);
    }
};
AppInside/cloudPushOrder/cloudPushOrderManage.html
@@ -15,7 +15,7 @@
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="http://img.flqapp.com/resource/js/app2019112217.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <link href="css/load.css" rel="stylesheet" />
        <link rel="stylesheet" type="text/css" href="css/load.css" />
        <style type="text/css">
            [v-cloak] {
                display: none !important;
@@ -55,8 +55,8 @@
                                开通时间:{{userInfo.openTime}} 剩余<span style="color: #E5005C;font-size: 0.36rem; font-weight: bold;">&nbsp;{{userInfo.countdown}}&nbsp;</span>天
                            </div>
                            <div v-if="!openState" class="openPushOrderManage" @click="openCloudPushOrder()">开通</div>
                            <div v-else class="openPushOrderManage">续费</div>
                            <div v-if="!openState" class="openPushOrderManage" @click="openCloudPushOrder(1)">开通</div>
                            <div v-else class="openPushOrderManage" @click="openCloudPushOrder(2)">续费</div>
                        </div>
                    </div>
                </div>
@@ -113,7 +113,7 @@
                            </div>
                        </div>
                        <div class="div_image_fmt">
                            <img :src="userInfo.head" class="image_fmt">
                            <img :src="userInfo.course.src" class="image_fmt" @click="touchCourse">
                        </div>
                    </div>
@@ -130,7 +130,7 @@
                                    {{userInfo.wxName}}
                                </div>
                            </div>
                            <div style="height: 1.54rem;display: -webkit-flex;align-items: center;">
                            <div style="height: 1.54rem;display: -webkit-flex;align-items: center;" @click="macloginOffline">
                                <p style="color: #FFFFFF; font-size: 0.24rem; background-color: #2BA245; width: 2rem;height: 0.5rem;border-radius: 0.25rem;display:-webkit-flex;align-items: center;justify-content: center;margin-right: 0.26rem;">
                                    退出登录
                                </p>
@@ -160,13 +160,17 @@
                        </div>
                        <div class="div_list">
                            <div class="div_item" v-for="(item, index) in listGroup">
                                <div style="height: 0.33rem;"></div>
                                <div class="div_item_content">
                                    <div>{{item.groupName}}</div>
                                    <div style=" display: -webkit-flex;flex-direction: row-reverse;align-items: center;">
                                        <img v-if="item.state" src="img/icon_on.png" @click="switchGroupState(item.id, false)">
                                        <img v-else src="img/icon_off.png" @click="switchGroupState(item.id, true)">
                                    <img v-if="item.state" src="img/icon_on.png" @click="switchGroupState(item.id, false)">
                                    <img v-else src="img/icon_off.png" @click="switchGroupState(item.id, true)">
                                        <img src="img/icon_delete.png" style="width: 0.5rem;height: 0.5rem;margin-right: 0.3rem;" @click="deleteGroup(item.id)">
                                    </div>
                                </div>
                                <div style="height: 0.01rem;background-color: #DEDEDE; margin-left: 0.16rem;margin-right: 0.16rem;"></div>
                            </div>
                        </div>
                        <div style="color: #999999; font-size: 0.22rem;height: 0.22rem;display: -webkit-flex;justify-content: center;align-items: center;margin-top: 0.51rem;">
@@ -191,9 +195,9 @@
                        </div>
                    </div>
                    <img v-if="!official" src="img/icon_off.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openGFRecomend">
                     @click="openGFRecomend(true)">
                    <img v-else src="img/icon_on.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openGFRecomend">
                     @click="openGFRecomend(false)">
                </div>
                <div class="div_goodsLibrary_content2">
@@ -206,13 +210,14 @@
                        </div>
                    </div>
                    <img v-if="!custom" src="img/icon_off.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openFSGoods">
                     @click="openFSGoods(true)">
                    <img v-else src="img/icon_on.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openFSGoods">
                     @click="openFSGoods(false)">
                </div>
                <div class="div_goodsLibraryList">
                    <div class="div_item_goodsLibrary" v-for="(item, index) in goodsList">
                        <img src="img/icon_goodsDelete.png" class="goodsDeleteImg" @click="deleteListGoods(index, item.id)">
                        <div class="div_goodsBG">
                            <img v-bind:src="item.goods.picUrl" class="goodsimg" />
@@ -236,8 +241,9 @@
                                <span v-else class="goods_title">{{item.goods.title}}</span>
                            </div>
                            <div v-if="item.goods.labels" class="div_goods_labels_bg">
                                <div class="div_goods_label1">&nbsp;{{item.goods.labels[0].content}}&nbsp;</div>
                                <div class="div_goods_label2">&nbsp;夏季爆款&nbsp;</div>
                                <div v-for="(cell, indexPath) in item.goods.labels" style="margin-left: 0.1rem;">
                                    <div class="div_goods_label1" :style="{color: cell.color, borderColor:cell.color}">&nbsp;{{cell.content}}&nbsp;</div>
                                </div>
                            </div>
                            <div class="div_store_bg">
@@ -271,13 +277,11 @@
                        </div>
                    </div>
                </div>
            </div>
            <div class="dialogmask_notOpen">
                <div class="dialog">
                    <img src="img/icon_close.png" @click="hiddenDialog()">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">未开通提醒</div>
                    <div class="dialog_content">云发单首先要登录微信,且需要购买云发单服务,完成设置后,才会自动发单/发圈。</div>
                    <div class="dialog_commit" @click="pushOpenVip">去开通</div>
@@ -286,16 +290,34 @@
            <div class="dialogmask_Tips">
                <div class="dialog">
                    <img src="img/icon_close.png" @click="hiddenDialog()">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">官方采集</div>
                    <div class="dialog_content">开启后30分钟内将会进行第一次发单,之后每1个小时发一个商品,你可随时关闭。</div>
                    <div class="dialog_commit" @click="commitAddTxRecord">知道了</div>
                    <div class="dialog_commit" @click="sureOpenGFSendOrder">知道了</div>
                </div>
            </div>
            <div class="dialogmask_delete">
                <div class="dialog_lelete">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">温馨提示</div>
                    <div class="dialog_content">请确认是否删除该群?</div>
                    <div style="display: -webkit-flex;color: #FFFFFF;font-size: 0.32rem;">
                        <div style="width: 2.3rem;height: 0.8rem;background-color: #E5005B;display: -webkit-flex;align-items: center;justify-content: center;border-radius: 0.4rem;margin-top: 0.45rem;margin-left: 0.4rem;"
                         @click="sureDelete">
                            确认
                        </div>
                        <div style="width: 2.3rem;height: 0.8rem;background-color: #E5005B;display: -webkit-flex;align-items: center;justify-content: center;border-radius: 0.4rem;margin-top: 0.45rem;margin-left: 0.2rem;"
                         @click="hiddenDialog()">
                            取消
                        </div>
                    </div>
                </div>
            </div>
            <div class="dialogmask_wx">
                <div class="dialog_wx">
                    <img src="img/icon_close.png" @click="hiddenDialog()">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">请使用手机微信扫描登录</div>
                    <div class="">
                        <img :src="qrCodeUrl" style="width: 4.46rem;height: 4.46rem;margin-left: 0.57rem;margin-top: 0.46rem;">
@@ -324,6 +346,7 @@
        var check = null;
        var wId = null;
        var isLoadProgress = true;
        var deleteIds = null;
        $(function() {
            var app = new Vue({
@@ -341,7 +364,11 @@
                    custom: false, // 优先发送自选商品库
                    official: false, // 自动采集官方推荐
                    count: 0,
                    goodsList: []
                    goodsList: [{
                        goods: {
                            labels: []
                        }
                    }]
                },
                watch: {
@@ -368,11 +395,12 @@
                        $('.dialogmask_notOpen').css('display', 'none')
                        $('.dialogmask_Tips').css('display', 'none')
                        $('.dialogmask_wx').css('display', 'none')
                        $('.dialogmask_delete').css('display', 'none')
                        app.stopMacloginCheck();
                    },
                    // 开通云发单
                    openCloudPushOrder: function() {
                        yesApp.jumpWeb(h5Url + '/flqFront/AppInside/cloudPushOrder/openCloudPushOrder.html', null);
                        window.location.href = "openCloudPushOrder.html";
                    },
                    // 登录微信
                    loginWX: function() {
@@ -380,22 +408,86 @@
                            app.fetchQrcodeMaclogin();
                        } else {
                            yesApp.jumpWeb(h5Url + '/flqFront/AppInside/cloudPushOrder/openCloudPushOrder.html', null);
                            window.location.href = "openCloudPushOrder.html";
                        }
                    },
                    openGFRecomend: function() {
                    touchCourse: function() {
                        yesApp.jumpPage(app.userInfo.course.jumpDetail, app.userInfo.course.params);
                    },
                    // 云商品状态切换 (官方)
                    openGFRecomend: function(state) {
                        if (app.openState) {
                            var states = null;
                            if (state == true) {
                                states = 1;
                                $('.dialogmask_Tips').css('display', 'block');
                            } else {
                                states = 0;
                                app.openGFRecomendSGoods(states, 1);
                            }
                        } else {
                            $('.dialogmask_notOpen').css('display', 'block')
                            $('.dialogmask_notOpen').css('display', 'block');
                        }
                    },
                    openFSGoods: function() {
                        if (app.openState) {
                    sureOpenGFSendOrder: function() {
                        $('.dialogmask_Tips').css('display', 'none');
                        var states = 1;
                        app.openGFRecomendSGoods(states, 1);
                    },
                    openGFRecomendSGoods: function(states, types) {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            type: types,
                            state: states
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/switchState",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    if (types == 1) {
                                        app.official = result.data.state;
                                    } else if (types == 2) {
                                        app.custom = result.data.state;
                                    }
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 云商品状态切换 (自选)
                    openFSGoods: function(state) {
                        if (app.openState) { // 是否开同了云发单
                            var states = null;
                            if (state == true) {
                                states = 1;
                            } else {
                                states = 0;
                            }
                            app.openGFRecomendSGoods(states, 2);
                        } else {
                            $('.dialogmask_notOpen').css('display', 'block')
@@ -404,11 +496,7 @@
                    pushOpenVip: function() {
                        $('.dialogmask_notOpen').css('display', 'none')
                        yesApp.jumpWeb(h5Url + '/flqFront/AppInside/cloudPushOrder/openCloudPushOrder.html', null);
                    },
                    commitAddTxRecord: function() {
                        window.location.href = "openCloudPushOrder.html";
                    },
                    fetchQrcodeMaclogin: function() {
@@ -533,6 +621,40 @@
                            }
                        });
                    },
                    // 推出微信登录
                    macloginOffline: function() {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/macloginOffline",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                if (result.code == 0) {
                                    yesApp.toast(result.data + '');
                                    isLoadProgress = false;
                                    app.fetcCloudInfo();
                                } else {
                                    yesApp.hideLoading();
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 云发单群搜索
                    searchGroup: function() {
                        yesApp.showLoading();
@@ -564,7 +686,7 @@
                            }
                        });
                    },
                    // 改变群发单状态
                    // 改变朋友圈发单状态
                    switchCircleState: function(state) {
                        var states = null;
                        if (state == true) {
@@ -604,6 +726,46 @@
                            }
                        });
                    },
                    // 删除群信息
                    deleteGroup: function(deleteId) {
                        $('.dialogmask_delete').css('display', 'block')
                        deleteIds = deleteId;
                    },
                    sureDelete: function() {
                        $('.dialogmask_delete').css('display', 'none')
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            id: deleteIds
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/deleteGroup",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    app.listGroup = result.data.listGroup;
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 改变群状态
                    switchGroupState: function(mId, state) {
                        var states = null;
@@ -628,12 +790,11 @@
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    isLoadProgress = false;
                                    app.fetcCloudInfo();
                                    app.listGroup = result.data.listGroup;
                                } else {
                                    yesApp.hideLoading();
                                    yesApp.toast(result.msg);
                                }
                            },
@@ -691,10 +852,59 @@
                                }
                            }
                        });
                    },
                    // 删除商品
                    deleteListGoods: function(indexpath, deleteId) {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            id: deleteId
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/deleteGoods",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    var list = app.goodsList;
                                    list.splice(indexpath, 1);
                                    app.goodsList = list;
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    }
                }
            });
            app.fetcCloudInfo();
            window.onscroll = function() {
                if (app.selectTabType == 2) {
                    if (Math.abs(getScrollHeight() - getDocumentTop() - getWindowHeight()) < 10) {
                        if (load.isLoading() || (app.page > 1 && app.count <= app.goodsList.length))
                            return;
                        load.show();
                        setTimeout(function() {
                            app.fetchGoodsList();
                        }, 300);
                    }
                }
            };
        });
        //(浏览器窗口上边界内容高度)
AppInside/cloudPushOrder/css/base.css
@@ -123,8 +123,7 @@
}
.div_goodsLibraryList {
    margin-top: 0.05rem;
    margin-top: 0.24rem;
}
.div_item_goodsLibrary {
@@ -134,20 +133,29 @@
    margin-right: 0.2rem;
    height: 2.94rem;
    border-radius: 0.16rem;
    display: -webkit-flex;
}
.div_goodsBG {
    position: relative;
    display: -webkit-flex;
    position: relative;
}
.topleftImg {
.goodsDeleteImg {
    position: absolute;
    width: 1.02rem;
    height: 1.02rem;
    top: 0.16rem;
    left: 0.16rem;
}
    width: 0.26rem;
    height: 0.26rem;
    right: -0.08rem;
    top: -0.1rem;
}
.div_goodsBG {
    position: relative;
}
.topleftImg {
    position: absolute;
    width: 1.02rem;
    height: 1.02rem;
    top: 0.16rem;
    left: 0.16rem;
}
.goodsimg {
    width: 2.6rem;
@@ -197,14 +205,15 @@
    align-items: center;
    font-size: 0.18rem;
    margin-top: 0.2rem;
    margin-left: -0.1rem;
}
.div_goods_label1 {
    display: -webkit-flex;
    align-items: center;
    justify-content: center;
    color: #FE0014;
    border: #FE0014 solid 0.01rem;
    /* color: #FE0014; */
    border: solid 1px;
    height: 0.26rem;
    border-radius: 0.06rem;
}
@@ -286,7 +295,7 @@
.div_payment_sales_bg :nth-child(2) {
    margin-top: -0.08rem;
    color: #E5005C;
    font-size: 0.4rem;
    font-size: 0.4rem;
    font-weight: bold;
}
@@ -301,9 +310,9 @@
    color: #AAAAAA;
    font-size: 0.24rem;
    margin-left: 0.19rem;
}
}
.dialogmask_notOpen {
    display: none;
    position: fixed;
@@ -313,8 +322,8 @@
    top: 0;
    left: 0;
    z-index: 1001;
}
}
.dialogmask_Tips {
    display: none;
    position: fixed;
@@ -324,8 +333,8 @@
    top: 0;
    left: 0;
    z-index: 1001;
}
}
.dialogmask_wx {
    display: none;
    position: fixed;
@@ -352,8 +361,8 @@
    top: 0;
    bottom: 0;
    max-height: 4.2rem;
}
}
.dialog_wx {
    width: 5.60rem;
    min-height: 1rem;
@@ -371,14 +380,35 @@
    max-height: 8.4rem;
}
.dialog>img {
    height: 0.5rem;
    right: 0.2rem;
    top: 0.2rem;
    position: absolute
}
.dialog_wx>img {
.dialogmask_delete {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    background: rgba(1, 1, 1, 0.5);
    top: 0;
    left: 0;
    z-index: 1001;
}
.dialog_lelete {
    width: 5.60rem;
    min-height: 1rem;
    background: #FFFFFF;
    border-radius: 0.1rem;
    z-index: 1000;
    display: block;
    height: auto;
    position: absolute;
    margin: auto;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    max-height: 3.4rem;
}
.closeImg {
    height: 0.5rem;
    right: 0.2rem;
    top: 0.2rem;
@@ -393,27 +423,27 @@
    align-items: center;
    justify-content: center;
    margin-top: 0.49rem;
}
.dialog_content {
    color: #333333;
    font-size: 0.3rem;
    text-align: center;
    margin-top: 0.44rem;
    margin-left: 0.3rem;
    margin-right: 0.3rem;
}
.dialog_commit {
    color: #FFFFFF;
    font-size: 0.32rem;
    background-color: #E5005C;
    border-radius: 0.4rem;
    margin-top: 0.4rem;
    margin-left: 0.42rem;
    margin-right: 0.42rem;
    height: 0.8rem;
    display: -webkit-flex;
    align-items: center;
    justify-content: center;
}
.dialog_content {
    color: #333333;
    font-size: 0.3rem;
    text-align: center;
    margin-top: 0.44rem;
    margin-left: 0.3rem;
    margin-right: 0.3rem;
}
.dialog_commit {
    color: #FFFFFF;
    font-size: 0.32rem;
    background-color: #E5005C;
    border-radius: 0.4rem;
    margin-top: 0.4rem;
    margin-left: 0.42rem;
    margin-right: 0.42rem;
    height: 0.8rem;
    display: -webkit-flex;
    align-items: center;
    justify-content: center;
}
AppInside/cloudPushOrder/css/cloudPushOrderManage.css
@@ -212,7 +212,8 @@
    display: -webkit-flex;
    align-items: center;
    justify-content: space-between;
    height: 0.62rem;
    height: 1rem;
}
.div_item_content {
@@ -231,5 +232,5 @@
.div_item_content img {
    width: 1.02rem;
    height: 0.62rem;
    margin-right: 0.27rem;
    margin-right: 0.16rem;
}
AppInside/cloudPushOrder/css/payCloudPushOrder.css
New file
@@ -0,0 +1,4 @@
body {
    background-color: white;
    font-family: Arial, "Microsoft YaHei";
}
AppInside/cloudPushOrder/img/icon_delete.png
AppInside/cloudPushOrder/img/icon_goodsDelete.png
AppInside/cloudPushOrder/img/icon_payResult.png
AppInside/cloudPushOrder/openCloudPushOrder.html
@@ -15,6 +15,7 @@
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="http://img.flqapp.com/resource/js/app2019112217.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <link rel="stylesheet" type="text/css" href="css/load.css" />
        <style type="text/css">
            [v-cloak] {
                display: none !important;
@@ -42,7 +43,7 @@
            </div>
            <!-- 云发单管理 -->
            <div class="div_cloudPushOrderManage">
            <div v-if="selectTabType==1" class="div_cloudPushOrderManage">
                <div class="div_top_header">
                    <div class="" style="display: -webkit-flex;">
                        <img :src="userInfo.portrait" class="headPortrait">
@@ -131,18 +132,142 @@
                    <div class="div_tips">
                        开通须知
                    </div>
                    <div style="color: #333333; font-size: 0.24rem;margin-top: 0.37rem;padding-left: 0.25rem;padding-right: 0.15rem;">
                        1.需要通过你的微信号登录云端ipad协议才能正常使用。<br>
                        2.由于微信规则的问题,如出现个人微信号封号问题,无法事先预料和提醒,且不可逆。<br>
                        3.已经开通,无法退款,请谨慎选择。<br>
                        4.确认开通代表你同意并知晓以上问题。
                    </div>
                    <div style="height: 0.4rem;"></div>
                </div>
                <div style="height: 0.2rem;"></div>
            </div>
            <!-- 发单商品库 -->
            <div v-if="selectTabType==2" class="div_goodsLibrary" v-cloak>
                <div class="div_goodsLibrary_content1">
                    <div>
                        <div style="color: #333333;font-size: 0.34rem;height: 0.34rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.23rem;">
                            自动采集官方推荐
                        </div>
                        <div style="color: #666666;font-size: 0.2rem;height: 0.22rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.14rem;">
                            官方精选1个小时内仅发送一个商品(9:00~21:00)
                        </div>
                    </div>
                    <img v-if="!official" src="img/icon_off.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openGFRecomend(true)">
                    <img v-else src="img/icon_on.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openGFRecomend(false)">
                </div>
                <div class="div_goodsLibrary_content2">
                    <div>
                        <div style="color: #333333;font-size: 0.34rem;height: 0.34rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.23rem;">
                            优先发送自选商品
                        </div>
                        <div style="color: #666666;font-size: 0.2rem;height: 0.22rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.14rem;">
                            即选即发,注重质量不追求数量,避免骚扰群友
                        </div>
                    </div>
                    <img v-if="!custom" src="img/icon_off.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openFSGoods(true)">
                    <img v-else src="img/icon_on.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openFSGoods(false)">
                </div>
                <div class="div_goodsLibraryList">
                    <div class="div_item_goodsLibrary" v-for="(item, index) in goodsList">
                        <img src="img/icon_goodsDelete.png" class="goodsDeleteImg" @click="deleteListGoods(index, item.id)">
                        <div class="div_goodsBG">
                            <img v-bind:src="item.goods.picUrl" class="goodsimg" />
                            <img v-if="item.goods.state==2" src="img/icon_send.png" class="topleftImg">
                            <img v-else-if="item.goods.state==1" src="img/icon_ydown.png" class="topleftImg">
                        </div>
                        <div class="div_item_rightBg">
                            <div class="div_goods_title_bg">
                                <img v-if="item.goods.shopType==10" src="img/icon_tb.png">
                                <img v-else-if="item.goods.shopType==11" src="img/icon_tm.png">
                                <img v-else-if="item.goods.shopType==20" src="img/icon_jd.png">
                                <img v-else-if="item.goods.shopType==30" src="img/icon_pdd.png" style="width: 0.81rem;">
                                <img v-else-if="item.goods.shopType==40" src="img/icon_wph.png" style="width: 0.9rem;">
                                <img v-else-if="item.goods.shopType==50" src="img/icon_sn.png" style="width: 1.12rem;">
                                <span v-if="item.goods.shopType==30" class="goods_title" style="text-indent: 0.93rem;">{{item.goods.title}}</span>
                                <span v-else-if="item.goods.shopType==40" class="goods_title" style="text-indent: 1.02rem;">{{item.goods.title}}</span>
                                <span v-else-if="item.goods.shopType==50" class="goods_title" style="text-indent: 1.24rem;">{{item.goods.title}}</span>
                                <span v-else class="goods_title">{{item.goods.title}}</span>
                            </div>
                            <div v-if="item.goods.labels" class="div_goods_labels_bg">
                                <div v-for="(cell, indexPath) in item.goods.labels" style="margin-left: 0.1rem;">
                                    <div class="div_goods_label1" :style="{color: cell.color, borderColor:cell.color}">&nbsp;{{cell.content}}&nbsp;</div>
                                </div>
                            </div>
                            <div class="div_store_bg">
                                <img v-if="item.goods.shopInfo" src="img/icon_store.png">
                                <div v-if="item.goods.shopInfo">{{item.goods.shopInfo.shopName}}</div>
                            </div>
                            <div class="div_coupon_bg">
                                <div v-if="item.goods.shopType!=40&&item.goods.hasCoupon" style="color: white;font-size: 0.24rem;font-weight: bold;width: 0.41rem;height: 0.36rem;background-color: #E5005C;display: flex;align-items: center;justify-content: center;border-radius: 0.06rem 0 0 0.06rem;">
                                    券
                                </div>
                                <div v-else-if="item.goods.shopType==40" style="color: white;font-size: 0.24rem;background-color: #E5005C;border-radius: 0.06rem;">
                                    &nbsp;&nbsp;{{item.goods.discount}}&nbsp;&nbsp;
                                </div>
                                <div v-if="item.goods.shopType!=40&&item.goods.hasCoupon" class="coupon_money">&nbsp;¥{{item.goods.couponInfo.amount}}
                                    &nbsp;</div>
                                <div class="fanli_title">&nbsp;&nbsp; 返{{item.goods.moneyInfo.fanliMoney}} &nbsp;&nbsp;</div>
                            </div>
                            <div class="div_payment_sales_bg">
                                <div>¥</div>
                                <div v-if="item.goods.couponPrice">{{item.goods.couponPrice}}</div>
                                <div v-else>{{item.goods.zkPrice}}</div>
                                <div>
                                    ¥{{item.goods.zkPrice}}
                                </div>
                                <div v-if="item.goods.shopType!=40">月销 {{item.goods.salesCount}}</div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="dialogmask_notOpen">
                <div class="dialog">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">未开通提醒</div>
                    <div class="dialog_content">云发单首先要登录微信,且需要购买云发单服务,完成设置后,才会自动发单/发圈。</div>
                    <div class="dialog_commit" @click="pushOpenVip">去开通</div>
                </div>
            </div>
            <div class="dialogmask_Tips">
                <div class="dialog">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">官方采集</div>
                    <div class="dialog_content">开启后30分钟内将会进行第一次发单,之后每1个小时发一个商品,你可随时关闭。</div>
                    <div class="dialog_commit" @click="sureOpenGFSendOrder">知道了</div>
                </div>
            </div>
            <div v-show="selectTabType==2" class="loading-more"></div>
        </div>
    </body>
    <script src="js/load.js"></script>
    <script>
        // "http://api.flqapp.com";
@@ -157,9 +282,18 @@
                    selectOpenPakeg: null,
                    isOpenCloud: false, //是否了开通云发单权限
                    isWxLogin: false, //是否登录了微信
                    openState: false, // 是否了开通云发单权限
                    userInfo: {},
                    dataList: [{}, {}],
                    listMenu: []
                    listMenu: [],
                    custom: false, // 优先发送自选商品库
                    official: false, // 自动采集官方推荐
                    page: 1,
                    count: 0,
                    goodsList: [{
                        goods: {
                            labels: []
                        }
                    }]
                },
                watch: {
@@ -172,23 +306,43 @@
                        $('.div_header_line_' + app.selectTabType).css('opacity', '0')
                        $('.div_header_' + app.selectTabType).css('color', '#000000')
                        app.selectTabType = type
                        document.body.scrollTop = document.documentElement.scrollTop = 0;
                        app.selectTabType = type;
                        if (type == 2) { //切换到发单商品库
                            app.page = 1;
                            app.fetchGoodsList();
                        }
                    },
                    hiddenDialog: function() {
                        $('.dialogmask_notOpen').css('display', 'none')
                        $('.dialogmask_Tips').css('display', 'none')
                    },
                    // 开通套餐
                    touchOpenPackage: function(item, index) {
                        var id = app.nameId(item, index);
                        if (app.selectOpenPakeg == id) return;
                        $('#' + id).css('opacity', '1')
                        $('#' + app.selectOpenPakeg).css('opacity', '0')
                        app.selectOpenPakeg = id;
                        if (app.selectOpenPakeg == id) {
                            $('#' + id).css('opacity', '0')
                            $('#' + app.selectOpenPakeg).css('opacity', '0')
                            app.selectOpenPakeg = null;
                        } else {
                            $('#' + id).css('opacity', '1')
                            $('#' + app.selectOpenPakeg).css('opacity', '0')
                            app.selectOpenPakeg = id;
                        }
                    },
                    nameId: function(item, index) {
                        return index;
                    },
                    // 切回开通页面
                    pushOpenVip: function() {
                        $('.dialogmask_notOpen').css('display', 'none')
                        app.selectTab(1);
                    },
                    // 开通云发单
                    openVIP: function() {
                        if (app.selectOpenPakeg == null) {
                            yesApp.toast('请选择开通时长');
@@ -213,7 +367,8 @@
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    if (result.data.link.length == 0 || result.data.link == null || result.data.link == '') return;
                                    yesApp.jumpWeb(result.data.link, null);
                                    window.location.href = result.data.link;
                                    // yesApp.jumpWeb(result.data.link, null);
                                } else {
                                    yesApp.toast(result.msg);
@@ -221,18 +376,17 @@
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                yesApp.toast('失败了')
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 去开通记录页面
                    openRecord: function() {
                        yesApp.jumpWeb(h5url + '/flqFront/AppInside/cloudPushOrder/openRecord.html', null);
                    },
                    // 云发单开通信息
                    fetcCloudInfo: function() {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
@@ -249,6 +403,12 @@
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    if (parseInt(result.data.openState) == 0) {
                                        app.openState = false;
                                    } else if (parseInt(result.data.openState) == 1) {
                                        app.openState = true;;
                                    }
                                    app.userInfo = result.data;
                                    app.listMenu = result.data.listMenu;
@@ -257,8 +417,168 @@
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.toast('失败了')
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 云商品状态切换 (官方)
                    openGFRecomend: function(state) {
                        if (app.openState) {
                            var states = null;
                            if (state == true) {
                                states = 1;
                                $('.dialogmask_Tips').css('display', 'block');
                            } else {
                                states = 0;
                                app.openGFRecomendSGoods(states, 1);
                            }
                        } else {
                            $('.dialogmask_notOpen').css('display', 'block');
                        }
                    },
                    sureOpenGFSendOrder: function() {
                        $('.dialogmask_Tips').css('display', 'none');
                        var states = 1;
                        app.openGFRecomendSGoods(states, 1);
                    },
                    openGFRecomendSGoods: function(states, types) {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            type: types,
                            state: states
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/switchState",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    if (types == 1) {
                                        app.official = result.data.state;
                                    } else if (types == 2) {
                                        app.custom = result.data.state;
                                    }
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 云商品状态切换 (自选)
                    openFSGoods: function(state) {
                        if (app.openState) { // 是否开同了云发单
                            var states = null;
                            if (state == true) {
                                states = 1;
                            } else {
                                states = 0;
                            }
                            app.openGFRecomendSGoods(states, 2);
                        } else {
                            $('.dialogmask_notOpen').css('display', 'block')
                        }
                    },
                    // 发单商品库
                    fetchGoodsList: function() {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            page: app.page
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/getGoodsList",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    app.custom = result.data.custom;
                                    app.official = result.data.official;
                                    if (app.page == 1) {
                                        app.goodsList = new Array();
                                    }
                                    app.page += 1;
                                    app.count = result.data.count;
                                    var list = app.goodsList.concat(result.data.list);
                                    app.goodsList = list;
                                    if (app.count <= app.goodsList.length) {
                                        load.noMore();
                                    }
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 删除商品
                    deleteListGoods: function(indexpath, deleteId) {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            id: deleteId
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/deleteGoods",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    var list = app.goodsList;
                                    list.splice(indexpath, 1);
                                    app.goodsList = list;
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
@@ -270,6 +590,63 @@
            });
            app.fetcCloudInfo();
            window.onscroll = function() {
                if (app.selectTabType == 2) {
                    if (Math.abs(getScrollHeight() - getDocumentTop() - getWindowHeight()) < 10) {
                        if (load.isLoading() || (app.page > 1 && app.count <= app.goodsList.length))
                            return;
                        load.show();
                        setTimeout(function() {
                            app.fetchGoodsList();
                        }, 300);
                    }
                }
            };
        });
        //(浏览器窗口上边界内容高度)
        function getDocumentTop() {
            var scrollTop = 0,
                bodyScrollTop = 0,
                documentScrollTop = 0;
            if (document.body) {
                bodyScrollTop = document.body.scrollTop;
            }
            if (document.documentElement) {
                documentScrollTop = document.documentElement.scrollTop;
            }
            scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
            console.log("scrollTop:" + scrollTop);
            return scrollTop;
        }
        //可视窗口高度(屏幕可以看见的高度)
        function getWindowHeight() {
            var windowHeight = 0;
            if (document.compatMode == "CSS1Compat") {
                windowHeight = document.documentElement.clientHeight;
            } else {
                windowHeight = document.body.clientHeight;
            }
            console.log("windowHeight:" + windowHeight);
            return windowHeight;
        }
        //滚动条滚动高度(即整个网页的高度)
        function getScrollHeight() {
            var scrollHeight = 0,
                bodyScrollHeight = 0,
                documentScrollHeight = 0;
            if (document.body) {
                bodyScrollHeight = document.body.scrollHeight;
            }
            if (document.documentElement) {
                documentScrollHeight = document.documentElement.scrollHeight;
            }
            scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
            console.log("scrollHeight:" + scrollHeight);
            return scrollHeight;
        }
    </script>
</html>
AppInside/cloudPushOrder/openRecord.html
@@ -23,7 +23,7 @@
        </style>
    </head>
    <body>
        <div id="root" style="display: none;">
        <div id="root" v-cloak>
            <div class="div_header">
                <div class="div_header_title">
                    <div class="div_header_1" @click="selectTab(1)">
@@ -42,10 +42,9 @@
                    <div class="div_header_line_2"></div>
                </div>
            </div>
            <div class="div_openRecord">开通记录</div>
            <div v-if="selectTabType==1" class="div_openRecord">开通记录</div>
            <!-- 云发单管理 -->
            <div class="div_cloudPushOrderManage_other">
            <div v-if="selectTabType==1" class="div_cloudPushOrderManage_other">
                <div class="div_list">
                    <div class="div_item" v-for="(item, index) in dataList">
                        <div class="div_item_left">
@@ -68,6 +67,122 @@
                </div>
            </div>
            <!-- 发单商品库 -->
            <div v-if="selectTabType==2" class="div_goodsLibrary" v-cloak>
                <div class="div_goodsLibrary_content1">
                    <div>
                        <div style="color: #333333;font-size: 0.34rem;height: 0.34rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.23rem;">
                            自动采集官方推荐
                        </div>
                        <div style="color: #666666;font-size: 0.2rem;height: 0.22rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.14rem;">
                            官方精选1个小时内仅发送一个商品(9:00~21:00)
                        </div>
                    </div>
                    <img v-if="!official" src="img/icon_off.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openGFRecomend(true)">
                    <img v-else src="img/icon_on.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openGFRecomend(false)">
                </div>
                <div class="div_goodsLibrary_content2">
                    <div>
                        <div style="color: #333333;font-size: 0.34rem;height: 0.34rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.23rem;">
                            优先发送自选商品
                        </div>
                        <div style="color: #666666;font-size: 0.2rem;height: 0.22rem; display: -webkit-flex;align-items: center;margin-left: 0.25rem;margin-top: 0.14rem;">
                            即选即发,注重质量不追求数量,避免骚扰群友
                        </div>
                    </div>
                    <img v-if="!custom" src="img/icon_off.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openFSGoods(true)">
                    <img v-else src="img/icon_on.png" style="width: 1.02rem;height: 0.62rem;margin-top: 0.27rem;margin-right: 0.2rem;"
                     @click="openFSGoods(false)">
                </div>
                <div class="div_goodsLibraryList">
                    <div class="div_item_goodsLibrary" v-for="(item, index) in goodsList">
                        <img src="img/icon_goodsDelete.png" class="goodsDeleteImg" @click="deleteListGoods(index, item.id)">
                        <div class="div_goodsBG">
                            <img v-bind:src="item.goods.picUrl" class="goodsimg" />
                            <img v-if="item.goods.state==2" src="img/icon_send.png" class="topleftImg">
                            <img v-else-if="item.goods.state==1" src="img/icon_ydown.png" class="topleftImg">
                        </div>
                        <div class="div_item_rightBg">
                            <div class="div_goods_title_bg">
                                <img v-if="item.goods.shopType==10" src="img/icon_tb.png">
                                <img v-else-if="item.goods.shopType==11" src="img/icon_tm.png">
                                <img v-else-if="item.goods.shopType==20" src="img/icon_jd.png">
                                <img v-else-if="item.goods.shopType==30" src="img/icon_pdd.png" style="width: 0.81rem;">
                                <img v-else-if="item.goods.shopType==40" src="img/icon_wph.png" style="width: 0.9rem;">
                                <img v-else-if="item.goods.shopType==50" src="img/icon_sn.png" style="width: 1.12rem;">
                                <span v-if="item.goods.shopType==30" class="goods_title" style="text-indent: 0.93rem;">{{item.goods.title}}</span>
                                <span v-else-if="item.goods.shopType==40" class="goods_title" style="text-indent: 1.02rem;">{{item.goods.title}}</span>
                                <span v-else-if="item.goods.shopType==50" class="goods_title" style="text-indent: 1.24rem;">{{item.goods.title}}</span>
                                <span v-else class="goods_title">{{item.goods.title}}</span>
                            </div>
                            <div v-if="item.goods.labels" class="div_goods_labels_bg">
                                <div v-for="(cell, indexPath) in item.goods.labels" style="margin-left: 0.1rem;">
                                    <div class="div_goods_label1" :style="{color: cell.color, borderColor:cell.color}">&nbsp;{{cell.content}}&nbsp;</div>
                                </div>
                            </div>
                            <div class="div_store_bg">
                                <img v-if="item.goods.shopInfo" src="img/icon_store.png">
                                <div v-if="item.goods.shopInfo">{{item.goods.shopInfo.shopName}}</div>
                            </div>
                            <div class="div_coupon_bg">
                                <div v-if="item.goods.shopType!=40&&item.goods.hasCoupon" style="color: white;font-size: 0.24rem;font-weight: bold;width: 0.41rem;height: 0.36rem;background-color: #E5005C;display: flex;align-items: center;justify-content: center;border-radius: 0.06rem 0 0 0.06rem;">
                                    券
                                </div>
                                <div v-else-if="item.goods.shopType==40" style="color: white;font-size: 0.24rem;background-color: #E5005C;border-radius: 0.06rem;">
                                    &nbsp;&nbsp;{{item.goods.discount}}&nbsp;&nbsp;
                                </div>
                                <div v-if="item.goods.shopType!=40&&item.goods.hasCoupon" class="coupon_money">&nbsp;¥{{item.goods.couponInfo.amount}}
                                    &nbsp;</div>
                                <div class="fanli_title">&nbsp;&nbsp; 返{{item.goods.moneyInfo.fanliMoney}} &nbsp;&nbsp;</div>
                            </div>
                            <div class="div_payment_sales_bg">
                                <div>¥</div>
                                <div v-if="item.goods.couponPrice">{{item.goods.couponPrice}}</div>
                                <div v-else>{{item.goods.zkPrice}}</div>
                                <div>
                                    ¥{{item.goods.zkPrice}}
                                </div>
                                <div v-if="item.goods.shopType!=40">月销 {{item.goods.salesCount}}</div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="dialogmask_notOpen">
                <div class="dialog">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">未开通提醒</div>
                    <div class="dialog_content">云发单首先要登录微信,且需要购买云发单服务,完成设置后,才会自动发单/发圈。</div>
                    <div class="dialog_commit" @click="pushOpenVip">去开通</div>
                </div>
            </div>
            <div class="dialogmask_Tips">
                <div class="dialog">
                    <img class="closeImg" src="img/icon_close.png" @click="hiddenDialog()">
                    <div class="dialog_title">官方采集</div>
                    <div class="dialog_content">开启后30分钟内将会进行第一次发单,之后每1个小时发一个商品,你可随时关闭。</div>
                    <div class="dialog_commit" @click="sureOpenGFSendOrder">知道了</div>
                </div>
            </div>
            <div class="loading-more"></div>
        </div>
    </body>
@@ -78,20 +193,29 @@
        // "http://api.flqapp.com";
        var host = "http://api.flqapp.com";
        var host1 = "http://192.168.1.114:8848";
        var page = 1;
        $(function() {
            var app = new Vue({
                el: '#root',
                data: {
                    selectTabType: 1,
                    dataList: [{}, {}],
                    count: 0
                    dataList: [],
                    pageRecord: 1,
                    countRecord: 0,
                    openState: false, // 是否了开通云发单权限
                    custom: false, // 优先发送自选商品库
                    official: false, // 自动采集官方推荐
                    page: 1,
                    count: 0,
                    goodsList: [{
                        goods: {
                            labels: []
                        }
                    }]
                },
                watch: {
                    dataList: function(val) {
                        $('#root').css('display', 'block');
                    }
                },
                methods: {
                    selectTab: function(type) {
@@ -101,16 +225,37 @@
                        $('.div_header_line_' + app.selectTabType).css('opacity', '0')
                        $('.div_header_' + app.selectTabType).css('color', '#000000')
                        document.body.scrollTop = document.documentElement.scrollTop = 0;
                        app.selectTabType = type
                        if (type == 1) { //切换到发单商品库
                            app.pageRecord = 1;
                            app.fetchOrderRecord();
                        } else if (type == 2) { //切换到发单商品库
                            app.page = 1;
                            app.fetchGoodsList();
                        }
                    },
                    hiddenDialog: function() {
                        $('.dialogmask_notOpen').css('display', 'none')
                        $('.dialogmask_Tips').css('display', 'none')
                    },
                    // 切回开通页面
                    pushOpenVip: function() {
                        $('.dialogmask_notOpen').css('display', 'none')
                        yesApp.finishPage();
                    },
                    // 获取开通记录
                    fetchOrderRecord: function() {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            page: page,
                            page: app.pageRecord,
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
@@ -123,19 +268,19 @@
                                load.hidden();
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    if (page == 1) {
                                    if (app.pageRecord == 1) {
                                        app.dataList = new Array();
                                    }
                                    page += 1;
                                    app.count = result.data.count;
                                    app.pageRecord += 1;
                                    app.countRecord = result.data.count;
                                    var list = app.dataList.concat(result.data.list);
                                    app.dataList = list;
                                    if (app.count <= app.dataList.length) {
                                    if (app.countRecord <= app.dataList.length) {
                                        load.noMore();
                                    }
                                    }
                                } else {
                                    yesApp.toast(result.msg);
                                }
@@ -149,9 +294,227 @@
                            }
                        });
                    },
                    // 云发单开通信息
                    fetcCloudInfo: function() {
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/getCloudInfo",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                if (result.code == 0) {
                                    if (parseInt(result.data.openState) == 0) {
                                        app.openState = false;
                                    } else if (parseInt(result.data.openState) == 1) {
                                        app.openState = true;;
                                    }
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 云商品状态切换 (官方)
                    openGFRecomend: function(state) {
                        if (app.openState) {
                            var states = null;
                            if (state == true) {
                                states = 1;
                                $('.dialogmask_Tips').css('display', 'block');
                            } else {
                                states = 0;
                                app.openGFRecomendSGoods(states, 1);
                            }
                        } else {
                            $('.dialogmask_notOpen').css('display', 'block');
                        }
                    },
                    sureOpenGFSendOrder: function() {
                        $('.dialogmask_Tips').css('display', 'none');
                        var states = 1;
                        app.openGFRecomendSGoods(states, 1);
                    },
                    openGFRecomendSGoods: function(states, types) {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            type: types,
                            state: states
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/switchState",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    if (types == 1) {
                                        app.official = result.data.state;
                                    } else if (types == 2) {
                                        app.custom = result.data.state;
                                    }
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 云商品状态切换 (自选)
                    openFSGoods: function(state) {
                        if (app.openState) { // 是否开同了云发单
                            var states = null;
                            if (state == true) {
                                states = 1;
                            } else {
                                states = 0;
                            }
                            app.openGFRecomendSGoods(states, 2);
                        } else {
                            $('.dialogmask_notOpen').css('display', 'block')
                        }
                    },
                    // 发单商品库
                    fetchGoodsList: function() {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            page: app.page
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/getGoodsList",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    app.custom = result.data.custom;
                                    app.official = result.data.official;
                                    if (app.page == 1) {
                                        app.goodsList = new Array();
                                    }
                                    app.page += 1;
                                    app.count = result.data.count;
                                    var list = app.goodsList.concat(result.data.list);
                                    app.goodsList = list;
                                    if (app.count <= app.goodsList.length) {
                                        load.noMore();
                                    }
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    },
                    // 删除商品
                    deleteListGoods: function(indexpath, deleteId) {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            id: deleteId
                        };
                        params = yesApp.getRequestBaseParams(params);
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/deleteGoods",
                            dataType: "jsonp",
                            async: false,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    var list = app.goodsList;
                                    list.splice(indexpath, 1);
                                    app.goodsList = list;
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown) {
                                yesApp.hideLoading();
                                if (textStatus === 'timeout') {
                                    setTimeout(function() {}, 2000);
                                }
                            }
                        });
                    }
                }
            });
            app.fetchOrderRecord();
            app.fetcCloudInfo();
            window.onscroll = function() {
                if (app.selectTabType == 1) {
                    if (Math.abs(getScrollHeight() - getDocumentTop() - getWindowHeight()) < 10) {
                        if (load.isLoading() || (app.pageRecord > 1 && app.countRecord <= app.dataList.length))
                            return;
                        load.show();
                        setTimeout(function() {
                            app.fetchOrderRecord();
                        }, 300);
                    }
                } else if (app.selectTabType == 2) {
                    if (Math.abs(getScrollHeight() - getDocumentTop() - getWindowHeight()) < 10) {
                        if (load.isLoading() || (app.page > 1 && app.count <= app.goodsList.length))
                            return;
                        load.show();
                        setTimeout(function() {
                            app.fetchGoodsList();
                        }, 300);
                    }
                }
            };
        });
        //(浏览器窗口上边界内容高度)
AppInside/cloudPushOrder/payCloudPushOrder.html
New file
@@ -0,0 +1,102 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>支付成功</title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <link rel="stylesheet" type="text/css" href="css/base.css" />
        <link rel="stylesheet" type="text/css" href="css/payCloudPushOrder.css" />
        <script>
            window.onresize = function() {
                document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + 'px';
            };
            window.onresize();
        </script>
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="http://img.flqapp.com/resource/js/app2019112217.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <style type="text/css">
            [v-cloak] {
                display: none !important;
            }
        </style>
    </head>
    <body>
        <div id="root" v-cloak>
            <img src="img/icon_payResult.png" style="width: 1.86rem;height: 1.71rem;margin-left: 2.82rem;margin-top: 3.6rem;">
            <div style="color: #333333;font-size: 0.4rem;height: 0.4rem;display: -webkit-flex;align-items: center;justify-content: center;margin-top: 0.1rem;">
                订单支付成功
            </div>
            <div style="color: #FF3535;font-size: 0.48rem;height: 0.4rem;display: -webkit-flex;align-items: center;justify-content: center;margin-top: 0.18rem;">
                <span style="font-size: 0.3rem;">¥</span>{{money}}
            </div>
            <div @click="back" style="color: #FFFFFF;font-size: 0.36rem;width: 5.02rem;height: 0.75rem;background-color: #178BF7;border-radius: 0.375rem;display: -webkit-flex;align-items: center;justify-content: center;margin-left: 1.23rem;margin-top: 0.86rem;">
                返回
            </div>
        </div>
    </body>
    <script type="text/javascript">
        function getQueryString(name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
            var r = window.location.search.substr(1).match(reg);
            if (r != null) return unescape(r[2]);
            return null;
        };
    </script>
    <script>
        // "http://api.flqapp.com";
        var host = "http://192.168.1.253:8080";
        var id = getQueryString('id');
        $(function() {
            var app = new Vue({
                el: '#root',
                data: {
                    money: '0.00'
                },
                watch: {
                },
                methods: {
                    back: function() {
                        yesApp.toast('s')
                        history.go(-2);
                    },
                    getInfo: function() {
                        yesApp.showLoading();
                        var uid = yesApp.getUid();
                        var params = {
                            uid: uid,
                            id: id
                        };
                        params = yesApp.getRequestBaseParams(params);
                        yesApp.showLoading();
                        $.ajax({
                            type: "GET",
                            data: JSON.parse(params),
                            url: host + "/fanli/api/v2/user/cloud/payEnd",
                            dataType: "jsonp",
                            async: true,
                            success: function(result) {
                                yesApp.hideLoading();
                                if (result.code == 0) {
                                    app.money = result.data.money;
                                } else {
                                    yesApp.toast(result.msg);
                                }
                            },
                            complete: function(e) {
                                yesApp.hideLoading();
                            }
                        });
                    }
                }
            });
            app.getInfo();
        });
    </script>
</html>
AppInside/teamBonus/css/load.css
@@ -1,70 +1,141 @@
            @keyframes rotate {
                from {
                    transform: rotate(0deg);
                }
                to {
                    transform: rotate(360deg);
                    transition: all 2s;
                }
@keyframes rotate {
                from {
                    transform: rotate(0deg);
                }
                to {
                    transform: rotate(360deg);
                    transition: all 2s;
                }
            }
            .loading {
                display: inline;
                height: 0.21rem;
                width: 0.21rem;
                margin-top: 0.15rem;
                position: relative;
            }
            .loading div {
                position: absolute;
                height: 0.05rem;
                transform-origin: left;
                border-radius: 0.5rem;
                display: flex;
            }
            .loading div .k {
                width: 0.08rem;
                height: 0.04rem;
            }
            .loading div .s {
                width: 0.13rem;
                height: 0.04rem;
                background: #BBBBBB;
                border-radius: 0.5rem;
            }
            .loading div:nth-child(2) {
                -webkit-transform: rotate(30deg);
            }
            .loading div:nth-child(3) {
                -webkit-transform: rotate(60deg);
            }
            .loading div:nth-child(4) {
                -webkit-transform: rotate(90deg);
            }
            .loading div:nth-child(5) {
                -webkit-transform: rotate(120deg);
            }
            .loading div:nth-child(6) {
                -webkit-transform: rotate(150deg);
            }
            .loading div:nth-child(7) {
                -webkit-transform: rotate(180deg);
            }
            .loading div:nth-child(8) {
                -webkit-transform: rotate(210deg);
            }
            .loading div:nth-child(9) {
                -webkit-transform: rotate(240deg);
            }
            .loading div:nth-child(10) {
                -webkit-transform: rotate(270deg);
            }
            .loading div:nth-child(11) {
                -webkit-transform: rotate(300deg);
            }
            .loading div:nth-child(12) {
                -webkit-transform: rotate(330deg);
            }
            @-webkit-keyframes load {
                0% {
                    opacity: 1;
                }
                100% {
                    opacity: 0;
                }
            }
            .loading div:nth-child(1) {
                -webkit-animation: load 1.2s linear 0s infinite;
            }
            .loading div:nth-child(2) {
                -webkit-animation: load 1.2s linear 0.1s infinite;
            }
            .loading div:nth-child(3) {
                -webkit-animation: load 1.2s linear 0.2s infinite;
            }
            .loading div:nth-child(4) {
                -webkit-animation: load 1.2s linear 0.3s infinite;
            }
            .loading div:nth-child(5) {
                -webkit-animation: load 1.2s linear 0.4s infinite;
            }
            .loading div:nth-child(6) {
                -webkit-animation: load 1.2s linear 0.5s infinite;
            }
            .loading div:nth-child(7) {
                -webkit-animation: load 1.2s linear 0.6s infinite;
            }
            .loading div:nth-child(8) {
                -webkit-animation: load 1.2s linear 0.7s infinite;
            }
            .loading div:nth-child(9) {
                -webkit-animation: load 1.2s linear 0.8s infinite;
            }
            .loading div:nth-child(10) {
                -webkit-animation: load 1.2s linear 0.9s infinite;
            }
            .loading div:nth-child(11) {
                -webkit-animation: load 1.2s linear 1s infinite;
            }
            .loading div:nth-child(12) {
                -webkit-animation: load 1.2s linear 1.1s infinite;
            }
            .loading{
                display: inline;
                height: 0.21rem;
                width: 0.21rem;
                margin-top: 0.15rem;
                position: relative;
            }
            .loading div{
                position: absolute;
                height: 0.05rem;
                transform-origin: left;
                border-radius: 0.5rem;
                display: flex;
            }
            .loading div .k{
                width: 0.08rem;
                height: 0.04rem;
            }
            .loading div .s{
                width: 0.13rem;
                height: 0.04rem;
                background: #BBBBBB;
                border-radius: 0.5rem;
            }
            .loading div:nth-child(2)  {-webkit-transform: rotate(30deg);}
            .loading div:nth-child(3)  {-webkit-transform: rotate(60deg);}
            .loading div:nth-child(4)  {-webkit-transform: rotate(90deg);}
            .loading div:nth-child(5)  {-webkit-transform: rotate(120deg);}
            .loading div:nth-child(6)  {-webkit-transform: rotate(150deg);}
            .loading div:nth-child(7)  {-webkit-transform: rotate(180deg);}
            .loading div:nth-child(8)  {-webkit-transform: rotate(210deg);}
            .loading div:nth-child(9)  {-webkit-transform: rotate(240deg);}
            .loading div:nth-child(10)  {-webkit-transform: rotate(270deg);}
            .loading div:nth-child(11)  {-webkit-transform: rotate(300deg);}
            .loading div:nth-child(12)  {-webkit-transform: rotate(330deg);}
            @-webkit-keyframes load{
                0%{opacity:1;}
                100%{opacity:0;}
            }
            .loading div:nth-child(1){-webkit-animation:load 1.2s linear 0s infinite;}
            .loading div:nth-child(2){-webkit-animation:load 1.2s linear 0.1s infinite;}
            .loading div:nth-child(3){-webkit-animation:load 1.2s linear 0.2s infinite;}
            .loading div:nth-child(4){-webkit-animation:load 1.2s linear 0.3s infinite;}
            .loading div:nth-child(5){-webkit-animation:load 1.2s linear 0.4s infinite;}
            .loading div:nth-child(6){-webkit-animation:load 1.2s linear 0.5s infinite;}
            .loading div:nth-child(7){-webkit-animation:load 1.2s linear 0.6s infinite;}
            .loading div:nth-child(8){-webkit-animation:load 1.2s linear 0.7s infinite;}
            .loading div:nth-child(9){-webkit-animation:load 1.2s linear 0.8s infinite;}
            .loading div:nth-child(10){-webkit-animation:load 1.2s linear 0.9s infinite;}
            .loading div:nth-child(11){-webkit-animation:load 1.2s linear 1s infinite;}
            .loading div:nth-child(12){-webkit-animation:load 1.2s linear 1.1s infinite;}