From c5b31b6d10108839895be7ea49c684f9495a9f6a Mon Sep 17 00:00:00 2001 From: Young Date: Wed, 8 Jul 2020 14:44:38 +0800 Subject: [PATCH] =?UTF-8?q?BI-67919=20refactor:=20BI.config=20=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E7=AC=AC=E4=B8=89=E4=B8=AA=E5=8F=82=E6=95=B0=20config?= =?UTF-8?q?=20widget=20=E5=8F=AF=E9=80=89=E6=98=AF=E5=90=A6=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=9C=80=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/inject.js | 6 +++--- src/core/platform/web/config.js | 32 ++++++++++++++++---------------- src/core/plugin.js | 6 ++++-- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/core/inject.js b/src/core/inject.js index 6f0dd5168..f49334e89 100644 --- a/src/core/inject.js +++ b/src/core/inject.js @@ -48,7 +48,7 @@ }; var configFunctions = {}; - BI.config = function (type, configFn) { + BI.config = function (type, configFn, opt) { if (BI.initialized) { if (constantInjection[type]) { return (constantInjection[type] = configFn(constantInjection[type])); @@ -63,7 +63,7 @@ } return configFn(providers[type]); } - return BI.Plugin.configWidget(type, configFn); + return BI.Plugin.configWidget(type, configFn, opt); } if (!configFunctions[type]) { configFunctions[type] = []; @@ -281,4 +281,4 @@ return BI.Providers.getProvider(type, config); } }; -})(); \ No newline at end of file +})(); diff --git a/src/core/platform/web/config.js b/src/core/platform/web/config.js index 079b56e83..40a655000 100644 --- a/src/core/platform/web/config.js +++ b/src/core/platform/web/config.js @@ -13,7 +13,7 @@ BI.prepares.push(function () { } return _isSupportFlex; }; - BI.Plugin.registerWidget("bi.horizontal", function (ob) { + BI.Plugin.configWidget("bi.horizontal", function (ob) { var isIE = BI.isIE(), supportFlex = isSupportFlex(), isLessIE8 = isIE && BI.getIEVersion() < 8; // center_adapt if (ob.verticalAlign === BI.VerticalAlign.Middle && ob.horizontalAlign === BI.HorizontalAlign.Center) { @@ -44,7 +44,7 @@ BI.prepares.push(function () { } return ob; }); - BI.Plugin.registerWidget("bi.center_adapt", function (ob) { + BI.Plugin.configWidget("bi.center_adapt", function (ob) { var isIE = BI.isIE(), supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1); if (!isIE && supportFlex && justOneItem) { // 有滚动条的情况下需要用到flex_scrollable_center_adapt布局 @@ -60,7 +60,7 @@ BI.prepares.push(function () { } return ob; }); - BI.Plugin.registerWidget("bi.vertical_adapt", function (ob) { + BI.Plugin.configWidget("bi.vertical_adapt", function (ob) { var isIE = BI.isIE(), supportFlex = isSupportFlex(); if (!isIE && supportFlex) { // 有滚动条的情况下需要用到flex_scrollable_center_adapt布局 @@ -72,13 +72,13 @@ BI.prepares.push(function () { } return BI.extend(ob, {type: "bi.inline_vertical_adapt"}); }); - BI.Plugin.registerWidget("bi.horizontal_adapt", function (ob) { + BI.Plugin.configWidget("bi.horizontal_adapt", function (ob) { if (ob.items && ob.items.length <= 1) { return BI.extend(ob, {type: "bi.horizontal_auto"}); } return ob; }); - BI.Plugin.registerWidget("bi.float_center_adapt", function (ob) { + BI.Plugin.configWidget("bi.float_center_adapt", function (ob) { if (!BI.isIE() && isSupportFlex()) { // 有滚动条的情况下需要用到flex_scrollable_center_adapt布局 if (ob.scrollable === true || ob.scrollx === true || ob.scrolly === true) { @@ -90,60 +90,60 @@ BI.prepares.push(function () { return BI.extend(ob, {type: "bi.inline_center_adapt"}); }); - BI.Plugin.registerWidget("bi.flex_horizontal", function (ob) { + BI.Plugin.configWidget("bi.flex_horizontal", function (ob) { if (ob.scrollable === true || ob.scrolly === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_horizontal"}); } }); - BI.Plugin.registerWidget("bi.flex_vertical", function (ob) { + BI.Plugin.configWidget("bi.flex_vertical", function (ob) { if (ob.scrollable === true || ob.scrollx === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_vertical"}); } }); - BI.Plugin.registerWidget("bi.flex_horizontal_adapt", function (ob) { + BI.Plugin.configWidget("bi.flex_horizontal_adapt", function (ob) { if (ob.scrollable === true || ob.scrollx === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_horizontal_adapt"}); } }); - BI.Plugin.registerWidget("bi.flex_vertical_adapt", function (ob) { + BI.Plugin.configWidget("bi.flex_vertical_adapt", function (ob) { if (ob.scrollable === true || ob.scrolly === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_vertical_adapt"}); } }); - BI.Plugin.registerWidget("bi.flex_horizontal_center_adapt", function (ob) { + BI.Plugin.configWidget("bi.flex_horizontal_center_adapt", function (ob) { if (ob.scrollable === true || ob.scrollx === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_horizontal_adapt"}); } }); - BI.Plugin.registerWidget("bi.flex_vertical_center_adapt", function (ob) { + BI.Plugin.configWidget("bi.flex_vertical_center_adapt", function (ob) { if (ob.scrollable === true || ob.scrolly === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_vertical_adapt"}); } }); - BI.Plugin.registerWidget("bi.flex_center_adapt", function (ob) { + BI.Plugin.configWidget("bi.flex_center_adapt", function (ob) { if (ob.scrollable === true || ob.scrolly === true || ob.scrollx === true) { return BI.extend({}, ob, {type: "bi.flex_scrollable_center_adapt"}); } }); - BI.Plugin.registerWidget("bi.radio", function (ob) { + BI.Plugin.configWidget("bi.radio", function (ob) { if (BI.isIE() && BI.getIEVersion() < 9) { return BI.extend(ob, {type: "bi.image_radio"}); } return ob; }); - BI.Plugin.registerWidget("bi.checkbox", function (ob) { + BI.Plugin.configWidget("bi.checkbox", function (ob) { if (BI.isIE() && BI.getIEVersion() < 9) { return BI.extend(ob, {type: "bi.image_checkbox"}); } return ob; }); - BI.Plugin.registerWidget("bi.half_icon_button", function (ob) { + BI.Plugin.configWidget("bi.half_icon_button", function (ob) { if (BI.isIE() && BI.getIEVersion() < 9) { return ob; } return BI.extend(ob, {type: "bi.half_button"}); }); -}); \ No newline at end of file +}); diff --git a/src/core/plugin.js b/src/core/plugin.js index 069a1ceac..5938feb17 100644 --- a/src/core/plugin.js +++ b/src/core/plugin.js @@ -39,13 +39,15 @@ BI.Plugin = BI.Plugin || {}; __GlobalObjectConfigFns = __GlobalObjectConfigFns.concat(_.isArray(objectConfigFn) ? objectConfigFn : [objectConfigFn]); }, - configWidget: function (type, fn) { - if (!_ConfigPlugin[type]) { + configWidget: function (type, fn, opt) { + // opt.single: true 最后一次注册有效 + if (!_ConfigPlugin[type] || (opt && opt.single)) { _ConfigPlugin[type] = []; } _ConfigPlugin[type].push(fn); }, + // Deprecated registerWidget: function (type, fn) { if (!_WidgetsPlugin[type]) { _WidgetsPlugin[type] = [];