137 lines
3.8 KiB
JavaScript
137 lines
3.8 KiB
JavaScript
/**
|
|
* UI v1.1.0
|
|
* Copyright 2017-2018 Muyao
|
|
* Licensed under the Muyao License 1.0
|
|
*/
|
|
(function (window, document, $) {
|
|
'use strict';
|
|
|
|
// 父级dom节点
|
|
$.parentFrame = $(window.parent.document);
|
|
|
|
// 父级方法&属性
|
|
var parentFrame = window.parentFrame = window.parent;
|
|
|
|
// 项目名称
|
|
$.ctx = parentFrame.$.ctx;
|
|
|
|
// 配置颜色获取方法
|
|
$.colors = parentFrame.$.colors;
|
|
|
|
// 注册组件默认配置参数获取方法
|
|
$.po = parentFrame.$.po;
|
|
|
|
// 本地存储对象操作
|
|
$.storage = parentFrame.$.storage;
|
|
$.sessionStorage = parentFrame.$.sessionStorage;
|
|
|
|
// 网址基础设置对象
|
|
$.site = parentFrame.$.site;
|
|
if ($.site && $.site.contentTabs)
|
|
$.site.contentTabs.ifameTabs(document);
|
|
|
|
// 配置信息存储管理
|
|
$.configs = parentFrame.$.configs;
|
|
|
|
// 注册组件初始化
|
|
if (parentFrame.$.components)
|
|
parentFrame.$.components.init(document, window);
|
|
|
|
// 公用对象
|
|
window.Breakpoints = parentFrame.Breakpoints;
|
|
window.toastr = parentFrame.toastr;
|
|
window.layer = parentFrame.layer;
|
|
window.haoutil = parentFrame.haoutil;
|
|
window.notifyFn = parentFrame.$.notifyFn;
|
|
|
|
// 自定义扩展对象
|
|
var _objExtend = _objExtend || {};
|
|
|
|
$.extend(_objExtend, {
|
|
_queue: {
|
|
prepare: [],
|
|
run: [],
|
|
complete: []
|
|
},
|
|
run: function () {
|
|
var self = this;
|
|
this._dequeue('prepare', function () {
|
|
self._trigger('before.run', self);
|
|
});
|
|
|
|
this._dequeue('run', function () {
|
|
self._dequeue('complete', function () {
|
|
self._trigger('after.run', self);
|
|
});
|
|
});
|
|
},
|
|
_dequeue: function (name, done) { // 队列当前状态离队,进行下一步操作
|
|
var self = this,
|
|
queue = this._getQueue(name),
|
|
fn = queue.shift(),
|
|
next = function () {
|
|
self._dequeue(name, done);
|
|
};
|
|
|
|
if (fn) {
|
|
fn.call(this, next);
|
|
} else if ($.isFunction(done)) {
|
|
done.call(this);
|
|
}
|
|
},
|
|
_getQueue: function (name) { // 获取队列状态信息
|
|
if (!$.isArray(this._queue[name])) {
|
|
this._queue[name] = [];
|
|
}
|
|
|
|
return this._queue[name];
|
|
},
|
|
extend: function (obj) { // 公用模块对象扩展方法
|
|
$.each(this._queue, function (name, queue) {
|
|
if ($.isFunction(obj[name])) {
|
|
queue.unshift(obj[name]);
|
|
|
|
delete obj[name];
|
|
}
|
|
});
|
|
$.extend(this, obj);
|
|
return this;
|
|
},
|
|
_trigger: function (name, data, $el) { // 离队状态执行动作
|
|
|
|
if (typeof name === 'undefined') {
|
|
return;
|
|
}
|
|
if (typeof $el === 'undefined') {
|
|
$el = $("#admui-pageContent");
|
|
}
|
|
|
|
$el.trigger(name + '.app', data);
|
|
}
|
|
});
|
|
|
|
// 通用功能对象(可配置增加,也可扩展)
|
|
var _app = {
|
|
pageAside: function () { // 小屏幕下侧边栏(展开&收起)操作
|
|
var pageAside = $(".page-aside"),
|
|
isOpen = pageAside.hasClass('open');
|
|
|
|
pageAside.toggleClass('open', !isOpen);
|
|
},
|
|
run: function (next) {
|
|
var self = this;
|
|
|
|
// 侧边栏开关
|
|
$(document).on('click', '.page-aside-switch', function (e) {
|
|
self.pageAside();
|
|
e.stopPropagation();
|
|
});
|
|
|
|
next();
|
|
}
|
|
};
|
|
|
|
window.App = $.extend({}, _objExtend);
|
|
App.extend(_app);
|
|
|
|
})(window, document, jQuery); |