Browse Source

KERNEL-13158: context跳过popup

es6
guy 2 years ago
parent
commit
43ecbf5be8
  1. 4
      dist/fix/fix.compact.js
  2. 54
      examples/useContext.html
  3. 37
      src/widget/downlist/combo.downlist.js

4
dist/fix/fix.compact.js vendored

@ -109,13 +109,13 @@
pushTarget(this.store); pushTarget(this.store);
return true; return true;
} }
if (this._store) { if (this._store || this.options._store) {
var store = BI.Widget.findStore(this.options.context || this._parent || this.options.element || this._context); var store = BI.Widget.findStore(this.options.context || this._parent || this.options.element || this._context);
if (store) { if (store) {
pushTarget(store); pushTarget(store);
needPop = true; needPop = true;
} }
this.store = this._store(); this.store = (this._store || this.options._store)();
this.store && (this.store._widget = this); this.store && (this.store._widget = this);
needPop && popTarget(); needPop && popTarget();
needPop = false; needPop = false;

54
examples/useContext.html

@ -25,7 +25,7 @@
cssScale: 2.0 cssScale: 2.0
}; };
}, },
childContext: ["text"], childContext: ["text", "cssScale"],
computed: { computed: {
text: function () { text: function () {
@ -41,10 +41,20 @@
}); });
BI.model("demo.model", Model); BI.model("demo.model", Model);
var TempModel = BI.inherit(BI.Model, {
state: function () {
return {
cssScale: 1.0
};
},
childContext: ["cssScale"],
});
BI.model("demo.temp_model", TempModel);
var oldFormat = BI.pixFormat; var oldFormat = BI.pixFormat;
BI.pixFormat = function (pix, border) { BI.pixFormat = function (pix, border) {
var context = BI.useContext("cssScale"); var context = BI.useContext("cssScale");
if (!context) { if (!context || context.model.cssScale <=1) {
return oldFormat.apply(this, arguments); return oldFormat.apply(this, arguments);
} }
if (!BI.isNumber(pix)) { if (!BI.isNumber(pix)) {
@ -59,8 +69,8 @@
var oldPix = BI.toPix; var oldPix = BI.toPix;
BI.toPix = function (pix, border) { BI.toPix = function (pix, border) {
var context = BI.useContext("cssScale"); var context = BI.useContext("cssScale");
if (!context) { if (!context || context.model.cssScale <=1) {
return oldPix.apply(this, arguments); return oldFormat.apply(this, arguments);
} }
if (!BI.isNumber(pix)) { if (!BI.isNumber(pix)) {
return pix; return pix;
@ -130,6 +140,42 @@
day: 15 day: 15
} }
} }
}, {
type: "bi.down_list_combo",
cls: "bi-border",
width: 24,
height: 24,
popup: {
_store: function () {
return BI.Models.getModel("demo.temp_model");
}
},
value: [{value: 2}, {value: 3, childValue: 4}],
items: [[{
text: "属于",
value: 1,
cls: "dot-e-font"
}, {
text: "不属于",
value: 2,
cls: "dot-e-font"
}], [{
el: {
text: "大于",
value: 3,
iconCls1: "dot-e-font"
},
value: 3,
children: [{
text: "固定值",
value: 4,
cls: "dot-e-font"
}, {
text: "平均值",
value: 5,
cls: "dot-e-font"
}]
}]]
}] }]
}; };
}; };

37
src/widget/downlist/combo.downlist.js

@ -17,7 +17,7 @@
text: item.text, text: item.text,
icon: item.icon, icon: item.icon,
cls: item.cls, cls: item.cls,
iconCls1: item.iconCls1, iconCls1: item.iconCls1,
value: item.value value: item.value
}; };
} }
@ -25,7 +25,7 @@
}); });
return result; return result;
} }
/** /**
* Created by roy on 15/8/14. * Created by roy on 15/8/14.
*/ */
@ -41,16 +41,17 @@
container: null, container: null,
stopPropagation: false, stopPropagation: false,
el: {}, el: {},
popup: {},
minWidth: 140, minWidth: 140,
maxHeight: 1000, maxHeight: 1000,
destroyWhenHide: false destroyWhenHide: false
}); });
}, },
_init: function () { _init: function () {
BI.DownListCombo.superclass._init.apply(this, arguments); BI.DownListCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options; var self = this, o = this.options;
this.downlistcombo = BI.createWidget({ this.downlistcombo = BI.createWidget({
element: this, element: this,
type: "bi.combo", type: "bi.combo",
@ -63,12 +64,13 @@
belowMouse: o.belowMouse, belowMouse: o.belowMouse,
stopPropagation: o.stopPropagation, stopPropagation: o.stopPropagation,
destroyWhenHide: o.destroyWhenHide, destroyWhenHide: o.destroyWhenHide,
el: BI.createWidget(o.el, { el: {
type: "bi.icon_trigger", type: "bi.icon_trigger",
extraCls: o.iconCls, extraCls: o.iconCls,
width: o.width, width: o.width,
height: o.height height: o.height,
}), ...o.el
},
popup: { popup: {
el: { el: {
type: "bi.down_list_popup", type: "bi.down_list_popup",
@ -94,39 +96,40 @@
}, },
stopPropagation: o.stopPropagation, stopPropagation: o.stopPropagation,
maxHeight: o.maxHeight, maxHeight: o.maxHeight,
minWidth: o.minWidth minWidth: o.minWidth,
...o.popup
} }
}); });
this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
self.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW); self.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW);
}); });
}, },
hideView: function () { hideView: function () {
this.downlistcombo.hideView(); this.downlistcombo.hideView();
}, },
showView: function (e) { showView: function (e) {
this.downlistcombo.showView(e); this.downlistcombo.showView(e);
}, },
populate: function (items) { populate: function (items) {
this.popupView.populate(items); this.popupView.populate(items);
}, },
setValue: function (v) { setValue: function (v) {
this.popupView.setValue(v); this.popupView.setValue(v);
}, },
getValue: function () { getValue: function () {
return this.popupView.getValue(); return this.popupView.getValue();
}, },
adjustWidth: function () { adjustWidth: function () {
this.downlistcombo.adjustWidth(); this.downlistcombo.adjustWidth();
}, },
adjustHeight: function () { adjustHeight: function () {
this.downlistcombo.adjustHeight(); this.downlistcombo.adjustHeight();
} }
@ -134,6 +137,6 @@
BI.DownListCombo.EVENT_CHANGE = "EVENT_CHANGE"; BI.DownListCombo.EVENT_CHANGE = "EVENT_CHANGE";
BI.DownListCombo.EVENT_SON_VALUE_CHANGE = "EVENT_SON_VALUE_CHANGE"; BI.DownListCombo.EVENT_SON_VALUE_CHANGE = "EVENT_SON_VALUE_CHANGE";
BI.DownListCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.DownListCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.down_list_combo", BI.DownListCombo); BI.shortcut("bi.down_list_combo", BI.DownListCombo);
}()); }());

Loading…
Cancel
Save