119 lines
5.0 KiB
JavaScript
Executable File
119 lines
5.0 KiB
JavaScript
Executable File
ClassBase.define({
|
||
init: function (param) {},
|
||
|
||
bindEvent (param) {
|
||
var _this = param.parent;
|
||
var type = param.type;
|
||
if (type == 'menu' && !_this.$('.menuBar .menu-dropdown-user .client-download').length) {
|
||
var html = '<li class="client-download ripple-item" target="_blank">\
|
||
<i class="font-icon ri-download-fill-2"></i>\
|
||
'+LNG['client.down.client']+'\
|
||
</li>';
|
||
_this.$('.menuBar .menu-dropdown-user li.copyright-show').after(html);
|
||
}
|
||
if (type == 'login' && !_this.$('.login-form form .client-download').length) {
|
||
var html = '<span class="client-download">\
|
||
<a class="url-link" href="javascript:void(0);">'+LNG['client.down.client']+'</a>\
|
||
</span>';
|
||
_this.$('.login-form form').append(html);
|
||
}
|
||
var self = this;
|
||
_this.$el.delegate('.client-download','click',function(e){
|
||
self.showDownDg();
|
||
});
|
||
_this.on('onRemove', function(){
|
||
var dgs = $.dialog.list;
|
||
_.each(dgs,function(dialog){
|
||
if (dialog && (dialog.$main.hasClass('dialog-client-download') || dialog.$main.hasClass('client-down-qrcode-dg'))) {
|
||
dialog.close();
|
||
}
|
||
});
|
||
});
|
||
Events.trigger('client.down.link.loaded',_this,type); // 菜单链接
|
||
},
|
||
|
||
showDownDg: function(){
|
||
var html = '<div class="dialog-copyright-content">\
|
||
<div class="title">\
|
||
<div class="logo logo-image hidden">'+LNG.logo('copyright')+'</div>\
|
||
<div class="logo-text client-down-text">'+LNG['client.down.client']+'</div>\
|
||
<div class="info hidden">'+(LNG['common.copyright.nameDesc'] || '')+'</div>\
|
||
</div>\
|
||
<div class="content size16">\
|
||
<div>'+LNG['client.down.client']+'</div>\
|
||
<div class="line"></div>\
|
||
<div>\
|
||
<span class="btn" app="win"><i class="ri-windows-fill"></i>Windows</span>\
|
||
<span class="btn" app="mac"><i class="ri-apple-fill"></i>Mac</span>\
|
||
</div>\
|
||
<div class="mt-15">'+LNG['client.down.app']+'</div>\
|
||
<div class="line"></div>\
|
||
<div>\
|
||
<span class="btn qrcode" app="android"><i class="ri-android-fill"></i>Android</span>\
|
||
<span class="btn qrcode" app="ios"><i class="ri-apple-fill"></i>IOS</span>\
|
||
</div>\
|
||
</div>\
|
||
</div>';
|
||
var dialog = $.dialog({
|
||
id:"dialog-client-download",
|
||
bottom:0,right:0,
|
||
simple:true,
|
||
resize:false,
|
||
disableTab:true,
|
||
className:"dialog-blur",
|
||
title:LNG['client.down.client'],
|
||
width:425,
|
||
padding:0,
|
||
fixed:true,
|
||
content:html
|
||
});
|
||
$('.dialog-client-download.artDialog').addClass('dialog-copyright');
|
||
this.clientLink(dialog.$main);
|
||
},
|
||
|
||
clientLink: function ($dialog) {
|
||
var setLink = function (result) {
|
||
Events.trigger('client.down.dialog.loaded',$dialog,result);
|
||
if (!result.code || !result.data) {
|
||
var html = '<div class="info-alert info-alert-yellow mt-50 size14">'+LNG['client.down.apiErr']+'</div>';
|
||
$dialog.find('.content').html(html);
|
||
return;
|
||
}
|
||
var data = result.data;
|
||
$dialog.delegate('.content .btn', 'click', function () {
|
||
var app = $(this).attr('app');
|
||
if (!app || !data[app]) return;
|
||
var link = data[app].link;
|
||
if (!link) return Tips.tips(LNG['client.down.linkErr'], 'warning', 3000);
|
||
if (!$(this).hasClass('qrcode')) {
|
||
return window.open(link);
|
||
}
|
||
var dg = core.qrcode(link);
|
||
if (dg && dg.$main) {
|
||
dg.$main.addClass('client-down-qrcode-dg');
|
||
var top = $('.dialog-client-download.artDialog').offset().top;
|
||
dg.$main.css({left: '50%',transform:'translate(-50%)',top:(top + 88)+'px'});
|
||
dg.$main.find('.aui-content>div').prepend('<p class="mb-5">'+LNG['client.down.webScan']+'</p>');
|
||
}
|
||
});
|
||
}
|
||
var key = 'kodbox.client.link';
|
||
var result = LocalData.get(key);
|
||
result = jsonDecode(result);
|
||
if (result && result.time && result.time > time()) {
|
||
return setLink(result);
|
||
}
|
||
$.ajax({
|
||
url: 'https://api.kodcloud.com/?app/version',
|
||
dataType:'jsonp',
|
||
success:function(result){
|
||
var tmpTime = 3600*2;
|
||
if(!result || !result.data) tmpTime = 60*5;
|
||
result.time = time()+tmpTime; // 过期时间:正常2小时,失败5分钟
|
||
LocalData.set(key, jsonEncode(result));
|
||
setLink(result);
|
||
}
|
||
});
|
||
}
|
||
|
||
}); |