Browse Source

KERNEL-12033 feat: 复选列表添加itemFormatter属性,支持自定义节点类型

es6
zsmj 2 years ago
parent
commit
b37406b60d
  1. 2
      src/widget/multiselect/multiselect.combo.js
  2. 11
      src/widget/multiselect/multiselect.loader.js
  3. 10
      src/widget/multiselect/multiselect.loader.nobar.js
  4. 1
      src/widget/multiselect/multiselect.popup.view.js
  5. 1
      src/widget/multiselect/multiselect.popup.view.nobar.js
  6. 2
      src/widget/multiselect/search/multiselect.search.loader.js

2
src/widget/multiselect/multiselect.combo.js

@ -57,6 +57,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
},
},
valueFormatter: o.valueFormatter,
itemFormatter: o.itemFormatter,
itemsCreator: BI.bind(this._itemsCreator4Trigger, this),
itemHeight: o.itemHeight,
value: this.storeValue,
@ -162,6 +163,7 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
itemsCreator: o.itemsCreator,
itemHeight: o.itemHeight,
valueFormatter: o.valueFormatter,
itemFormatter: o.itemFormatter,
onLoaded: function () {
BI.nextTick(function () {
self.combo.adjustWidth();

11
src/widget/multiselect/multiselect.loader.js

@ -64,7 +64,6 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
value: v,
title: txt,
selected: self.storeValue.type === BI.Selection.Multi,
...opts.itemFormatter(v),
};
});
if (BI.isKey(self._startValue) && !BI.contains(self.storeValue.value, self._startValue)) {
@ -74,7 +73,6 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
value: startValue,
title: txt,
selected: true,
...opts.itemFormatter(startValue),
});
}
firstItems = self._createItems(json);
@ -111,13 +109,18 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
_createItems: function (items) {
var allSelected = this.isAllSelected();
return BI.createItems(items, {
var itemFormatter = this.options.itemFormatter;
return BI.map(items, (i, item) => {
return {
type: "bi.multi_select_item",
logic: this.options.logic,
cls: "bi-list-item-active",
height: this.options.itemHeight || BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT,
selected: allSelected,
iconWrapperWidth: 36
iconWrapperWidth: 36,
...item,
...itemFormatter(item),
};
});
},

10
src/widget/multiselect/multiselect.loader.nobar.js

@ -113,12 +113,16 @@ BI.MultiSelectNoBarLoader = BI.inherit(BI.Widget, {
},
_createItems: function (items) {
return BI.createItems(items, {
return BI.map(items, (index, item) => {
return {
type: "bi.multi_select_item",
cls: "bi-list-item-active",
logic: this.options.logic,
height: this.options.itemHeight || BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT,
iconWrapperWidth: 36
iconWrapperWidth: 36,
...item,
...this.options.itemFormatter(item),
};
});
},
@ -168,7 +172,7 @@ BI.MultiSelectNoBarLoader = BI.inherit(BI.Widget, {
},
resetHeight: function (h) {
this.button_group.element.css({"max-height": h / BI.pixRatio + BI.pixUnit});
this.button_group.element.css({ "max-height": h / BI.pixRatio + BI.pixUnit });
},
resetWidth: function () {

1
src/widget/multiselect/multiselect.popup.view.js

@ -27,6 +27,7 @@ BI.MultiSelectPopupView = BI.inherit(BI.Widget, {
itemsCreator: opts.itemsCreator,
itemHeight: opts.itemHeight,
valueFormatter: opts.valueFormatter,
itemFormatter: opts.itemFormatter,
onLoaded: opts.onLoaded,
value: opts.value
});

1
src/widget/multiselect/multiselect.popup.view.nobar.js

@ -27,6 +27,7 @@ BI.MultiSelectNoBarPopupView = BI.inherit(BI.Widget, {
itemsCreator: opts.itemsCreator,
itemHeight: opts.itemHeight,
valueFormatter: opts.valueFormatter,
itemFormatter: opts.itemFormatter,
onLoaded: opts.onLoaded,
value: opts.value
});

2
src/widget/multiselect/search/multiselect.search.loader.js

@ -128,7 +128,7 @@ BI.MultiSelectSearchLoader = BI.inherit(BI.Widget, {
title: v.text,
value: v.value,
selected: src.type === BI.Selection.All,
...o.itemFormatter(v.value),
...o.itemFormatter(v),
};
});
},

Loading…
Cancel
Save