From 5ab1da9614bd450ef54f83948945ea0b0e1d75e9 Mon Sep 17 00:00:00 2001 From: windy <1374721899@qq.com> Date: Mon, 1 Jul 2019 14:41:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?BI-46499=20refactor:=20=E5=87=8F=E5=B0=91?= =?UTF-8?q?=E5=A4=8D=E9=80=89=E4=B8=8B=E6=8B=89=E7=9A=84=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widget/multiselect/multiselect.combo.js | 4 +++- src/widget/multiselect/multiselect.insert.combo.js | 4 +++- src/widget/multiselect/multiselect.insert.combo.nobar.js | 4 +++- src/widget/multiselect/trigger/switcher.checkselected.js | 8 ++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/widget/multiselect/multiselect.combo.js b/src/widget/multiselect/multiselect.combo.js index af2f24585..a3afda789 100644 --- a/src/widget/multiselect/multiselect.combo.js +++ b/src/widget/multiselect/multiselect.combo.js @@ -123,7 +123,9 @@ BI.MultiSelectCombo = BI.inherit(BI.Single, { self.fireEvent(BI.MultiSelectCombo.EVENT_CLICK_ITEM); }); 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 () { if (!self.combo.isViewVisible()) { diff --git a/src/widget/multiselect/multiselect.insert.combo.js b/src/widget/multiselect/multiselect.insert.combo.js index 1a6671c5b..291e3935a 100644 --- a/src/widget/multiselect/multiselect.insert.combo.js +++ b/src/widget/multiselect/multiselect.insert.combo.js @@ -116,7 +116,9 @@ BI.MultiSelectInsertCombo = BI.inherit(BI.Single, { self.fireEvent(BI.MultiSelectInsertCombo.EVENT_CLICK_ITEM); }); 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 () { if (!self.combo.isViewVisible()) { diff --git a/src/widget/multiselect/multiselect.insert.combo.nobar.js b/src/widget/multiselect/multiselect.insert.combo.nobar.js index f0b61ebb2..dede350d3 100644 --- a/src/widget/multiselect/multiselect.insert.combo.nobar.js +++ b/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.getCounter().setValue(self.storeValue); + // counter的值随点击项的改变而改变, 点击counter的时候不需要setValue(counter会请求刷新计数) + // 只需要更新查看面板的selectedValue用以请求已选数据 + this.getCounter().updateSelectedValue(self.storeValue); }); this.trigger.on(BI.MultiSelectInsertTrigger.EVENT_COUNTER_CLICK, function () { if (!self.combo.isViewVisible()) { diff --git a/src/widget/multiselect/trigger/switcher.checkselected.js b/src/widget/multiselect/trigger/switcher.checkselected.js index 4737bd0ac..c9b000ba7 100644 --- a/src/widget/multiselect/trigger/switcher.checkselected.js +++ b/src/widget/multiselect/trigger/switcher.checkselected.js @@ -42,6 +42,9 @@ BI.MultiSelectCheckSelectedSwitcher = BI.inherit(BI.Widget, { onClickContinueSelect: function () { self.switcher.hideView(); }, + ref: function (_ref) { + self.checkPane = _ref; + }, value: o.value }, o.popup), adapter: o.adapter, @@ -82,6 +85,11 @@ BI.MultiSelectCheckSelectedSwitcher = BI.inherit(BI.Widget, { this.switcher.setValue(v); }, + // 与setValue的区别是只更新查看已选面板的的selectedValue, 不会更新按钮的计数 + updateSelectedValue: function (v) { + this.checkPane.setValue(v); + }, + setButtonChecked: function (v) { this.button.setValue(v); }, From 3590e340c2428ad3b1cea2b44ab7bb1c5b8d5e2c Mon Sep 17 00:00:00 2001 From: windy <1374721899@qq.com> Date: Mon, 1 Jul 2019 15:12:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?BI-47035=20fix:=20=E5=8D=95=E7=8B=AC?= =?UTF-8?q?=E4=BD=BF=E7=94=A8color=5Fpopup=E6=B2=A1=E6=9C=89=E6=9C=80?= =?UTF-8?q?=E8=BF=91=E4=BD=BF=E7=94=A8=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/case/colorchooser/colorchooser.js | 6 -- src/case/colorchooser/colorchooser.popup.js | 70 ++++++++++----------- 2 files changed, 33 insertions(+), 43 deletions(-) diff --git a/src/case/colorchooser/colorchooser.js b/src/case/colorchooser/colorchooser.js index d1fc4a74d..b2e1f6999 100644 --- a/src/case/colorchooser/colorchooser.js +++ b/src/case/colorchooser/colorchooser.js @@ -64,12 +64,6 @@ BI.ColorChooser = BI.inherit(BI.Widget, { var fn = function () { var color = self.colorPicker.getValue(); 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 () { self.colorPicker.setStoreColors(BI.string2Array(BI.Cache.getItem("colors") || "")); diff --git a/src/case/colorchooser/colorchooser.popup.js b/src/case/colorchooser/colorchooser.popup.js index 5e4f0b87e..2931c80a0 100644 --- a/src/case/colorchooser/colorchooser.popup.js +++ b/src/case/colorchooser/colorchooser.popup.js @@ -24,43 +24,21 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, { this.colorEditor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () { self.setValue(this.getValue()); + self._dealStoreColors(); self.fireEvent(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, arguments); }); this.storeColors = BI.createWidget({ type: "bi.color_picker", cls: "bi-border-bottom bi-border-right", - items: [[{ - value: "", - disabled: true - }, { - value: "", - disabled: true - }, { - value: "", - disabled: true - }, { - value: "", - disabled: true - }, { - value: "", - disabled: true - }, { - value: "", - disabled: true - }, { - value: "", - disabled: true - }, { - value: "", - disabled: true - }]], + items: [this._digestStoreColors(BI.string2Array(BI.Cache.getItem("colors") || ""))], width: 210, height: 24, value: o.value }); this.storeColors.on(BI.ColorPicker.EVENT_CHANGE, function () { self.setValue(this.getValue()[0]); + self._dealStoreColors(); 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 () { self.setValue(this.getValue()[0]); + self._dealStoreColors(); self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments); }); @@ -120,6 +99,7 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, { break; case 1: self.setValue(self.customColorChooser.getValue()); + self._dealStoreColors(); self.more.hideView(); self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments); break; @@ -193,20 +173,36 @@ BI.ColorChooserPopup = BI.inherit(BI.Widget, { this.mask.setVisible(!enable); }, + _dealStoreColors: function () { + 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) { + return { + value: color + }; + }); + BI.count(colors.length, 8, function (i) { + items.push({ + value: "", + disabled: true + }); + }); + return items; + }, + setStoreColors: function (colors) { if (BI.isArray(colors)) { - var items = BI.map(colors, function (i, color) { - return { - value: color - }; - }); - BI.count(colors.length, 8, function (i) { - items.push({ - value: "", - disabled: true - }); - }); - this.storeColors.populate([items]); + this.storeColors.populate([this._digestStoreColors(colors)]); } },