Browse Source

Merge pull request #983 in VISUAL/fineui from ~WINDY/fineui:master to master

* commit '3590e340c2428ad3b1cea2b44ab7bb1c5b8d5e2c':
  BI-47035 fix: 单独使用color_popup没有最近使用颜色
  BI-46499 refactor: 减少复选下拉的请求次数
es6
guy 5 years ago
parent
commit
ae5d3928e8
  1. 6
      src/case/colorchooser/colorchooser.js
  2. 52
      src/case/colorchooser/colorchooser.popup.js
  3. 4
      src/widget/multiselect/multiselect.combo.js
  4. 4
      src/widget/multiselect/multiselect.insert.combo.js
  5. 4
      src/widget/multiselect/multiselect.insert.combo.nobar.js
  6. 8
      src/widget/multiselect/trigger/switcher.checkselected.js

6
src/case/colorchooser/colorchooser.js

@ -64,12 +64,6 @@ BI.ColorChooser = BI.inherit(BI.Widget, {
var fn = function () { var fn = function () {
var color = self.colorPicker.getValue(); var color = self.colorPicker.getValue();
self.trigger.setValue(color); self.trigger.setValue(color);
var colors = BI.string2Array(BI.Cache.getItem("colors") || "");
var que = new BI.Queue(8);
que.fromArray(colors);
que.remove(color);
que.unshift(color);
BI.Cache.setItem("colors", BI.array2String(que.toArray()));
}; };
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
self.colorPicker.setStoreColors(BI.string2Array(BI.Cache.getItem("colors") || "")); self.colorPicker.setStoreColors(BI.string2Array(BI.Cache.getItem("colors") || ""));

52
src/case/colorchooser/colorchooser.popup.js

@ -24,43 +24,21 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, {
this.colorEditor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () { this.colorEditor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () {
self.setValue(this.getValue()); self.setValue(this.getValue());
self._dealStoreColors();
self.fireEvent(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, arguments); self.fireEvent(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, arguments);
}); });
this.storeColors = BI.createWidget({ this.storeColors = BI.createWidget({
type: "bi.color_picker", type: "bi.color_picker",
cls: "bi-border-bottom bi-border-right", cls: "bi-border-bottom bi-border-right",
items: [[{ items: [this._digestStoreColors(BI.string2Array(BI.Cache.getItem("colors") || ""))],
value: "",
disabled: true
}, {
value: "",
disabled: true
}, {
value: "",
disabled: true
}, {
value: "",
disabled: true
}, {
value: "",
disabled: true
}, {
value: "",
disabled: true
}, {
value: "",
disabled: true
}, {
value: "",
disabled: true
}]],
width: 210, width: 210,
height: 24, height: 24,
value: o.value value: o.value
}); });
this.storeColors.on(BI.ColorPicker.EVENT_CHANGE, function () { this.storeColors.on(BI.ColorPicker.EVENT_CHANGE, function () {
self.setValue(this.getValue()[0]); self.setValue(this.getValue()[0]);
self._dealStoreColors();
self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments); self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
}); });
@ -73,6 +51,7 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, {
this.colorPicker.on(BI.ColorPicker.EVENT_CHANGE, function () { this.colorPicker.on(BI.ColorPicker.EVENT_CHANGE, function () {
self.setValue(this.getValue()[0]); self.setValue(this.getValue()[0]);
self._dealStoreColors();
self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments); self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
}); });
@ -120,6 +99,7 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, {
break; break;
case 1: case 1:
self.setValue(self.customColorChooser.getValue()); self.setValue(self.customColorChooser.getValue());
self._dealStoreColors();
self.more.hideView(); self.more.hideView();
self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments); self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
break; break;
@ -193,8 +173,19 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, {
this.mask.setVisible(!enable); this.mask.setVisible(!enable);
}, },
setStoreColors: function (colors) { _dealStoreColors: function () {
if (BI.isArray(colors)) { var color = this.getValue();
var colors = BI.string2Array(BI.Cache.getItem("colors") || "");
var que = new BI.Queue(8);
que.fromArray(colors);
que.remove(color);
que.unshift(color);
var array = que.toArray();
BI.Cache.setItem("colors", BI.array2String(array));
this.setStoreColors(array);
},
_digestStoreColors: function (colors) {
var items = BI.map(colors, function (i, color) { var items = BI.map(colors, function (i, color) {
return { return {
value: color value: color
@ -206,7 +197,12 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, {
disabled: true disabled: true
}); });
}); });
this.storeColors.populate([items]); return items;
},
setStoreColors: function (colors) {
if (BI.isArray(colors)) {
this.storeColors.populate([this._digestStoreColors(colors)]);
} }
}, },

4
src/widget/multiselect/multiselect.combo.js

@ -123,7 +123,9 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, {
self.fireEvent(BI.MultiSelectCombo.EVENT_CLICK_ITEM); self.fireEvent(BI.MultiSelectCombo.EVENT_CLICK_ITEM);
}); });
this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW, function () { this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW, function () {
this.getCounter().setValue(self.storeValue); // counter的值随点击项的改变而改变, 点击counter的时候不需要setValue(counter会请求刷新计数)
// 只需要更新查看面板的selectedValue用以请求已选数据
this.getCounter().updateSelectedValue(self.storeValue);
}); });
this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK, function () { this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) { if (!self.combo.isViewVisible()) {

4
src/widget/multiselect/multiselect.insert.combo.js

@ -116,7 +116,9 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, {
self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CLICK_ITEM); self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CLICK_ITEM);
}); });
this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW, function () { this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW, function () {
this.getCounter().setValue(self.storeValue); // counter的值随点击项的改变而改变, 点击counter的时候不需要setValue(counter会请求刷新计数)
// 只需要更新查看面板的selectedValue用以请求已选数据
this.getCounter().updateSelectedValue(self.storeValue);
}); });
this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK, function () { this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) { if (!self.combo.isViewVisible()) {

4
src/widget/multiselect/multiselect.insert.combo.nobar.js

@ -113,7 +113,9 @@ BI.MultiSelectInsertNoBarCombo = BI.inherit(BI.Single, {
} }
}); });
this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW, function () { this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW, function () {
this.getCounter().setValue(self.storeValue); // counter的值随点击项的改变而改变, 点击counter的时候不需要setValue(counter会请求刷新计数)
// 只需要更新查看面板的selectedValue用以请求已选数据
this.getCounter().updateSelectedValue(self.storeValue);
}); });
this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK, function () { this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK, function () {
if (!self.combo.isViewVisible()) { if (!self.combo.isViewVisible()) {

8
src/widget/multiselect/trigger/switcher.checkselected.js

@ -42,6 +42,9 @@ BI.MultiSelectCheckSelectedSwitcher = BI.inherit(BI.Widget, {
onClickContinueSelect: function () { onClickContinueSelect: function () {
self.switcher.hideView(); self.switcher.hideView();
}, },
ref: function (_ref) {
self.checkPane = _ref;
},
value: o.value value: o.value
}, o.popup), }, o.popup),
adapter: o.adapter, adapter: o.adapter,
@ -82,6 +85,11 @@ BI.MultiSelectCheckSelectedSwitcher = BI.inherit(BI.Widget, {
this.switcher.setValue(v); this.switcher.setValue(v);
}, },
// 与setValue的区别是只更新查看已选面板的的selectedValue, 不会更新按钮的计数
updateSelectedValue: function (v) {
this.checkPane.setValue(v);
},
setButtonChecked: function (v) { setButtonChecked: function (v) {
this.button.setValue(v); this.button.setValue(v);
}, },

Loading…
Cancel
Save