forked from fanruan/fineui
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.5 KiB
82 lines
2.5 KiB
BI.Plugin = BI.Plugin || {}; |
|
!(function () { |
|
var _WidgetsPlugin = {}; |
|
var _ObjectPlugin = {}; |
|
var _ConfigPlugin = {}; |
|
var _GlobalWidgetConfigFn, _GlobalObjectConfigFn; |
|
BI.extend(BI.Plugin, { |
|
|
|
getWidget: function (type, options) { |
|
if (_GlobalWidgetConfigFn) { |
|
_GlobalWidgetConfigFn(type, options); |
|
} |
|
if (_ConfigPlugin[type]) { |
|
for (var i = _ConfigPlugin[type].length - 1; i >= 0; i--) { |
|
_ConfigPlugin[type][i](options); |
|
} |
|
} |
|
if (_WidgetsPlugin[type]) { |
|
var res; |
|
for (var i = _WidgetsPlugin[type].length - 1; i >= 0; i--) { |
|
if (res = _WidgetsPlugin[type][i](options)) { |
|
return res; |
|
} |
|
} |
|
} |
|
return options; |
|
}, |
|
|
|
config: function (widgetConfigFn, objectConfigFn) { |
|
_GlobalWidgetConfigFn = widgetConfigFn; |
|
_GlobalObjectConfigFn = objectConfigFn; |
|
}, |
|
|
|
configWidget: function (type, fn) { |
|
if (!_ConfigPlugin[type]) { |
|
_ConfigPlugin[type] = []; |
|
} |
|
_ConfigPlugin[type].push(fn); |
|
}, |
|
|
|
registerWidget: function (type, fn) { |
|
if (!_WidgetsPlugin[type]) { |
|
_WidgetsPlugin[type] = []; |
|
} |
|
if (_WidgetsPlugin[type].length > 0) { |
|
console.log("组件已经注册过了!"); |
|
} |
|
_WidgetsPlugin[type].push(fn); |
|
}, |
|
|
|
relieveWidget: function (type) { |
|
delete _WidgetsPlugin[type]; |
|
}, |
|
|
|
getObject: function (type, object) { |
|
if (_GlobalObjectConfigFn) { |
|
_GlobalObjectConfigFn(type, object); |
|
} |
|
if (_ObjectPlugin[type]) { |
|
var res; |
|
for (var i = 0, len = _ObjectPlugin[type].length; i < len; i++) { |
|
res = _ObjectPlugin[type][i](object); |
|
} |
|
} |
|
return res || object; |
|
}, |
|
|
|
registerObject: function (type, fn) { |
|
if (!_ObjectPlugin[type]) { |
|
_ObjectPlugin[type] = []; |
|
} |
|
if (_ObjectPlugin[type].length > 0) { |
|
console.log("对象已经注册过了!"); |
|
} |
|
_ObjectPlugin[type].push(fn); |
|
}, |
|
|
|
relieveObject: function (type) { |
|
delete _ObjectPlugin[type]; |
|
} |
|
}); |
|
})(); |