(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",
)