84860 京东双十一预约日历 redpacketsubscribe

(function () {
    var Toast = Fanli.Utility.Toast;
    var dialogPower = new FMU.UI.Dialog();
    dialogPower.$dialog = $('.J_dialog_power');
    dialogPower.setup();

    var $btn = $('.J_btn');
    var $btnOpen = $('.btn-open');
    var $btnCancel = $('.btn-cancel');
    var isSet = Number($('#J_set_boolean').val());
    var $btnText = $('#J_set_val').val();
    var $link = $('#J_btn_link').val();
    var $calendar_time = $('#J_calendar_time').val() * 1;
    var $calendar_title = $('#J_calendar_title').val();
    var $calendar_content = $('#J_calendar_content').val();

    UBT.track("page_name.h5.pty-pv~module-home~std-84860")

    if (!isSet) {
        var subscribeDom = $("#J_subscribe_count").val() + ' 人已预约';
        $(".subscribe-counter").text(subscribeDom);
    } else {
        $('.J_btn').addClass('btn-suceess-box');
        $('.J_btn').find('.btn').addClass('btn-success');
        $('.J_btn').find('.btn').text($btnText);
        if ($calendar_time) {
            var alarm_time = timestampToTime($calendar_time)
            $('.subscribe-counter').text(alarm_time + '将以日历形式提醒您')
        }
    }

    // 查询授权
    function queryLocationPower() {
        var that = this;

        return new Promise(function(resolve, reject) {
            Fanli.Utility.bridgeApp('ifanli://m.fanli.com/app/action/queryAccess?target=location&cb=' + Fanli.Utility.rebuildCallback(function(result, cd) {
                var res = JSON.parse(result);
                if(res[0].state == 1 || res[0].state == 0) {
                    addHandler();
                    resolve(true);
                } else {
                    dialogPower.load() // 弹起授权弹窗
                    reject(false);
                }
            }))   
        })
    }

    // 日历预约
    function addHandler() {
        var id = String(new Date().getTime());
        fanliApp.addCalendar({
            id: id,
            starttime: $calendar_time, // 秒级别的时间戳
            endtime: $calendar_time + 7200,
            alarmtime: $calendar_time,
            title: $calendar_title,
            content: $calendar_content,
            success: function (cd) {
                var setNotify = '//huodong.fanli.com/h5/redpacketsubscribe/ajaxSetNotify';
                $.get(setNotify, function (res) {
                    let result = JSON.parse(res);
                    if (result.status == 1) {
                        UBT.track("page_name.h5.pty-calendarresult~result-success~std-84860")
                        Fanli.Utility.Toast.open('预约日历成功!');
                        var alarm_time = timestampToTime($calendar_time)
                        $('.subscribe-counter').text(alarm_time + '将以日历形式提醒您')
                        $('.J_btn').addClass('btn-suceess-box');
                        $('.J_btn').find('.btn').addClass('btn-success');
                        $('.J_btn').find('.btn').text($btnText);
                        $('.btn-success').on('click', function () {
                            location.href = $link;
                        })
                        setTimeout(function() {
                            location.href = $link;
                        }, 4000)
                    } else {
                        Toast.open("预约失败,请稍候重试")
                    }
                })
            },
            fail: function (errorcode, cd) {
                UBT.track("page_name.h5.pty-calendarresult~result-fail~std-84860")
                //错误码: 1001: 添加失败;1002: 日历事件已经存在;1003:无日历权限;1004:尚未设定日历。
                if (errorcode == 1003) {
                    Toast.open("设置失败,请前往系统设置打开返利日历权限后重试");
                } else {
                    Toast.open("设置提醒失败,请稍后重试");
                }
            }
        });
    }

    function timestampToTime(timestamp) {
        var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
        var Y = date.getFullYear() + '-';
        var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
        var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' ';
        var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':';
        var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':';
        var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds());
        
        strDate = Y+M+D+h+m+s;
        return strDate;
        
    }

    function btnClick() {
        $btn.on('click', '.btn', function () {
            UBT.track("page_name.h5.pty-calendar~std-84860")
            if (!isSet) {
                queryLocationPower() // 查询是否开启日历权限
            } else {
                location.href = $link;
            }
        })
    }
    
    function cancelPowerDialog () {
        $btnCancel.on('click', function () {
            dialogPower.close()
        })
    }
    function confirmPowerDialog () {
        $btnOpen.on('click', function () {
            openPower();
        })
    }
    function openPower () {
        dialogPower.close();
        if(Fanli.Utility.isIos) {
            Fanli.Utility.bridgeApp('ifanli://m.fanli.com/app/action/ops?item=application&url=prefs%3Aroot%3DINTERNET_TETHERING');
        } else {
            Fanli.Utility.bridgeApp('ifanli://m.fanli.com/app/action/ops?item=application');
        }
    }

    var differTime = $("#J_time_start_left").val() * 1;

    function countTime() {
        var d, h, m, s;
        if (differTime > 0) {
            d = Math.floor(differTime  / 60 / 60 / 24);
            h = Math.floor((differTime  / 60 / 60 ) % 24);
            m = Math.floor((differTime / 60) % 60);
            s = Math.floor(differTime % 60);
            d = d < 10 ? ("0" + d) : d;
            h = h < 10 ? ("0" + h) : h;
            m = m < 10 ? ("0" + m) : m;
            s = s < 10 ? ("0" + s) : s;
            var timeDom = '距离开抢还剩' + '<span class="djs-bg">'+ d +'</span>' + '天' + '<span class="djs-bg">'+ h +'</span>' + '时' + '<span class="djs-bg">'+ m +'</span>' + '分' + '<span class="djs-bg">'+ s +'</span>' + '秒';
            $(".time-counter").html(timeDom);
        } else {
            $(".time-counter").text('活动已开始');
        }
    }
    countTime(differTime)
    setInterval(function(){
        differTime = differTime - 1
        countTime(differTime)
    }, 1000)

    function setUp() {
        btnClick();
        confirmPowerDialog();
        cancelPowerDialog();
        UBT.PlugIns.Exposure.init();
    }

    setUp();
})()

引用文件:

    'huodong-h5-redpacket-index-css' => array(
		"@webapp-base-css",
		"//common/libs/fmu/css/toast.css",
		"//common/libs/fmu/css/dialog.css",
		"//huodong/h5/redpacketsubscribe/css/index.css",
	),
	'huodong-h5-redpacket-index-js' => array(
		"@webapp-base-js",
		"//appsdk/js/fanliapp.js",
		"//common/libs/fmu/js/core/fmu.js",
		"//common/libs/fmu/js/core/widget.js",
		"//common/libs/fmu/js/widget/toast.js",
		"//common/libs/fmu/js/widget/dialog.js",
		"//common/libs/fmu/js/extend/jquery.extend.js",
		"//common/plugins/lazyload/jquery.lazyload-min.js",
		"//huodong/h5/redpacketsubscribe/js/index.js",
	)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值