重构代码:合并公共脚本如tooltop/popover/datetimepicker
This commit is contained in:
parent
26581b6b3b
commit
b33266e162
|
@ -210,11 +210,6 @@ $(function () {
|
||||||
$('body').toggleClass('sidebar-open');
|
$('body').toggleClass('sidebar-open');
|
||||||
});
|
});
|
||||||
|
|
||||||
$('[data-toggle="dropdown"].dropdown-select').dropdown('select');
|
|
||||||
|
|
||||||
// tooltip
|
|
||||||
$('[data-toggle="tooltip"]').tooltip();
|
|
||||||
|
|
||||||
// load widget data
|
// load widget data
|
||||||
$('.header .nav').reloadWidget().notifi({
|
$('.header .nav').reloadWidget().notifi({
|
||||||
url: 'NotiHub',
|
url: 'NotiHub',
|
||||||
|
|
|
@ -21,20 +21,6 @@
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.date').datetimepicker({
|
|
||||||
language: 'zh-CN',
|
|
||||||
weekStart: 1,
|
|
||||||
todayBtn: 1,
|
|
||||||
autoclose: 1,
|
|
||||||
todayHighlight: 1,
|
|
||||||
startView: 2,
|
|
||||||
minView: 2,
|
|
||||||
forceParse: 0,
|
|
||||||
format: 'yyyy-mm-dd',
|
|
||||||
pickerPosition: 'bottom-left',
|
|
||||||
fontAwesome: true
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#btn_view').on('click', function (row) {
|
$('#btn_view').on('click', function (row) {
|
||||||
$.bc({
|
$.bc({
|
||||||
url: Exceptions.url, method: "post",
|
url: Exceptions.url, method: "post",
|
||||||
|
|
|
@ -15,18 +15,4 @@
|
||||||
{ title: "备注", field: "ClientAgent", sortable: false }
|
{ title: "备注", field: "ClientAgent", sortable: false }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.date').datetimepicker({
|
|
||||||
language: 'zh-CN',
|
|
||||||
weekStart: 1,
|
|
||||||
todayBtn: 1,
|
|
||||||
autoclose: 1,
|
|
||||||
todayHighlight: 1,
|
|
||||||
startView: 2,
|
|
||||||
minView: 2,
|
|
||||||
forceParse: 0,
|
|
||||||
format: 'yyyy-mm-dd',
|
|
||||||
pickerPosition: 'bottom-left',
|
|
||||||
fontAwesome: true
|
|
||||||
});
|
|
||||||
});
|
});
|
|
@ -286,6 +286,39 @@
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
lgbDatePicker: function (options) {
|
||||||
|
if (!$.isFunction(this.datetimepicker)) return this;
|
||||||
|
var option = $.extend({
|
||||||
|
language: 'zh-CN',
|
||||||
|
weekStart: 1,
|
||||||
|
todayBtn: 1,
|
||||||
|
autoclose: 1,
|
||||||
|
todayHighlight: 1,
|
||||||
|
startView: 2,
|
||||||
|
minView: 2,
|
||||||
|
forceParse: 0,
|
||||||
|
format: 'yyyy-mm-dd',
|
||||||
|
pickerPosition: 'bottom-left',
|
||||||
|
fontAwesome: true
|
||||||
|
}, options);
|
||||||
|
this.datetimepicker(option);
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
lgbInfo: function (option) {
|
||||||
|
this.each(function () {
|
||||||
|
var $element = $(this);
|
||||||
|
$element.append($.format('<a href="#" tabindex="-1" role="button" data-toggle="popover"><i class="fa fa-question-circle"></i></a>'));
|
||||||
|
});
|
||||||
|
var container = $(this).parent().attr('data-container') || '#dialogNew';
|
||||||
|
this.find('[data-toggle="popover"]').popover($.extend({
|
||||||
|
title: function () {
|
||||||
|
return $(this).parent().text();
|
||||||
|
}, content: function () {
|
||||||
|
return $(this).parent().attr('data-content');
|
||||||
|
}, trigger: 'focus', html: true, container: container
|
||||||
|
}, option));
|
||||||
|
return this;
|
||||||
|
},
|
||||||
notifi: function (options) {
|
notifi: function (options) {
|
||||||
var op = $.extend({ url: '', method: 'rev', callback: false }, options);
|
var op = $.extend({ url: '', method: 'rev', callback: false }, options);
|
||||||
var connection = new signalR.HubConnectionBuilder().withUrl($.formatUrl(op.url)).build();
|
var connection = new signalR.HubConnectionBuilder().withUrl($.formatUrl(op.url)).build();
|
||||||
|
@ -319,6 +352,14 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
$('[data-toggle="dropdown"].dropdown-select').dropdown('select');
|
||||||
|
$('[data-toggle="tooltip"]').tooltip();
|
||||||
|
$('[data-toggle="popover"]').popover();
|
||||||
|
$('[data-toggle="lgbinfo"]').lgbInfo();
|
||||||
|
$('.date').lgbDatePicker();
|
||||||
|
});
|
||||||
|
|
||||||
// Roles
|
// Roles
|
||||||
Role = {
|
Role = {
|
||||||
url: 'api/Roles',
|
url: 'api/Roles',
|
||||||
|
|
|
@ -352,6 +352,19 @@
|
||||||
});
|
});
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
getTextByValue: function (key, value) {
|
||||||
|
// 通过Key指定一个下拉框,通过value获得下拉框value值的text属性
|
||||||
|
if (this.length !== 1) throw 'element must be one';
|
||||||
|
var ele = this.get(0);
|
||||||
|
if (!ele[key]) {
|
||||||
|
ele[key] = {};
|
||||||
|
var that = ele;
|
||||||
|
$.each($('#' + key).children(), function (index, element) {
|
||||||
|
that[key][$(element).attr('value')] = $(element).text();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return ele[key][value];
|
||||||
|
},
|
||||||
lgbInfo: function (option) {
|
lgbInfo: function (option) {
|
||||||
this.each(function () {
|
this.each(function () {
|
||||||
var $element = $(this);
|
var $element = $(this);
|
||||||
|
@ -367,87 +380,18 @@
|
||||||
}, option));
|
}, option));
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
getTextByValue: function (key, value) {
|
notifi: function (options) {
|
||||||
// 通过Key指定一个下拉框,通过value获得下拉框value值的text属性
|
var op = $.extend({ url: '', method: 'rev', callback: false }, options);
|
||||||
if (this.length !== 1) throw 'element must be one';
|
var connection = new signalR.HubConnectionBuilder().withUrl($.formatUrl(op.url)).build();
|
||||||
var ele = this.get(0);
|
var that = this;
|
||||||
if (!ele[key]) {
|
connection.on(op.method, function () {
|
||||||
ele[key] = {};
|
if ($.isFunction(op.callback)) {
|
||||||
var that = ele;
|
op.callback.apply(that, arguments);
|
||||||
$.each($('#' + key).children(), function (index, element) {
|
|
||||||
that[key][$(element).attr('value')] = $(element).text();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return ele[key][value];
|
|
||||||
},
|
|
||||||
msgHandler: function (options) {
|
|
||||||
var settings = {
|
|
||||||
url: 'api/WS',
|
|
||||||
interval: 10000,
|
|
||||||
sendMessage: '',
|
|
||||||
timerHandler: null,
|
|
||||||
onopen: function (e) { },
|
|
||||||
onmessage: function (e) { },
|
|
||||||
onclose: function (e) { },
|
|
||||||
errorHandler: function (e) { if (toastr && $.isFunction(toastr.error)) toastr.error("连接服务器失败!", "系统错误"); },
|
|
||||||
loop: function () {
|
|
||||||
var that = this;
|
|
||||||
var uri = window.location.protocol + "//" + window.location.host + $.formatUrl(settings.url);
|
|
||||||
$.bc({
|
|
||||||
url: uri,
|
|
||||||
id: this.sendMessage,
|
|
||||||
method: "post",
|
|
||||||
callback: function (result) {
|
|
||||||
if (!result) {
|
|
||||||
that.errorHandler.call(that.target);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
that.onmessage.call(that.target, { data: JSON.stringify(result) });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.timerHandler !== null) clearTimeout(this.timerHandler);
|
|
||||||
this.timerHandler = setTimeout(function () { that.loop(); }, that.interval);
|
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
$.extend(settings, options, { target: this });
|
connection.start().catch(function (err) {
|
||||||
settings.loop();
|
return console.error(err.toString());
|
||||||
return this;
|
});
|
||||||
},
|
|
||||||
socketHandler: function (options) {
|
|
||||||
// WebSocket消息处理方法
|
|
||||||
var settings = {
|
|
||||||
url: 'WS',
|
|
||||||
interval: 30000,
|
|
||||||
sendMessage: 'keepalive',
|
|
||||||
timerHandler: null,
|
|
||||||
onopen: function (e) { },
|
|
||||||
onerror: function (e) { },
|
|
||||||
errorHandler: function (e) { if (window.toastr && $.isFunction(window.toastr.error)) toastr.error("连接服务器失败!", "系统错误"); },
|
|
||||||
onmessage: function (e) { },
|
|
||||||
onclose: function (e) { },
|
|
||||||
loop: function (socket) {
|
|
||||||
var that = this;
|
|
||||||
if (socket.readyState === 1) {
|
|
||||||
socket.send(this.sendMessage);
|
|
||||||
if (this.timerHandler !== null) clearTimeout(this.timerHandler);
|
|
||||||
this.timerHandler = setTimeout(function () { that.loop(socket); }, that.interval);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this.errorHandler();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
$.extend(settings, options, { target: this });
|
|
||||||
var uri = "ws://" + window.location.host + $.formatUrl(settings.url);
|
|
||||||
var socket = new WebSocket(uri);
|
|
||||||
socket.onopen = function (e) { settings.onopen.call(settings.target, e); settings.loop(socket); };
|
|
||||||
socket.onerror = function (e) {
|
|
||||||
settings.onerror.call(settings.target, e);
|
|
||||||
settings.target.msgHandler(options);
|
|
||||||
};
|
|
||||||
socket.onmessage = function (e) { settings.onmessage.call(settings.target, e); };
|
|
||||||
socket.onclose = function (e) { settings.onclose.call(settings.target, e); };
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue