2024-08-31 01:03:37 +08:00

119 lines
5.0 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
});
}
});