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);
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);
if (store) {
pushTarget(store);
needPop = true;
}
this.store = this._store();
this.store = (this._store || this.options._store)();
this.store && (this.store._widget = this);
needPop && popTarget();
needPop = false;

54
examples/useContext.html

@ -25,7 +25,7 @@
cssScale: 2.0
};
},
childContext: ["text"],
childContext: ["text", "cssScale"],
computed: {
text: function () {
@ -41,10 +41,20 @@
});
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;
BI.pixFormat = function (pix, border) {
var context = BI.useContext("cssScale");
if (!context) {
if (!context || context.model.cssScale <=1) {
return oldFormat.apply(this, arguments);
}
if (!BI.isNumber(pix)) {
@ -59,8 +69,8 @@
var oldPix = BI.toPix;
BI.toPix = function (pix, border) {
var context = BI.useContext("cssScale");
if (!context) {
return oldPix.apply(this, arguments);
if (!context || context.model.cssScale <=1) {
return oldFormat.apply(this, arguments);
}
if (!BI.isNumber(pix)) {
return pix;
@ -130,6 +140,42 @@
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,
icon: item.icon,
cls: item.cls,
iconCls1: item.iconCls1,
iconCls1: item.iconCls1,
value: item.value
};
}
@ -25,7 +25,7 @@
});
return result;
}
/**
* Created by roy on 15/8/14.
*/
@ -41,16 +41,17 @@
container: null,
stopPropagation: false,
el: {},
popup: {},
minWidth: 140,
maxHeight: 1000,
destroyWhenHide: false
});
},
_init: function () {
BI.DownListCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options;
this.downlistcombo = BI.createWidget({
element: this,
type: "bi.combo",
@ -63,12 +64,13 @@
belowMouse: o.belowMouse,
stopPropagation: o.stopPropagation,
destroyWhenHide: o.destroyWhenHide,
el: BI.createWidget(o.el, {
el: {
type: "bi.icon_trigger",
extraCls: o.iconCls,
width: o.width,
height: o.height
}),
height: o.height,
...o.el
},
popup: {
el: {
type: "bi.down_list_popup",
@ -94,39 +96,40 @@
},
stopPropagation: o.stopPropagation,
maxHeight: o.maxHeight,
minWidth: o.minWidth
minWidth: o.minWidth,
...o.popup
}
});
this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
self.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW);
});
},
hideView: function () {
this.downlistcombo.hideView();
},
showView: function (e) {
this.downlistcombo.showView(e);
},
populate: function (items) {
this.popupView.populate(items);
},
setValue: function (v) {
this.popupView.setValue(v);
},
getValue: function () {
return this.popupView.getValue();
},
adjustWidth: function () {
this.downlistcombo.adjustWidth();
},
adjustHeight: function () {
this.downlistcombo.adjustHeight();
}
@ -134,6 +137,6 @@
BI.DownListCombo.EVENT_CHANGE = "EVENT_CHANGE";
BI.DownListCombo.EVENT_SON_VALUE_CHANGE = "EVENT_SON_VALUE_CHANGE";
BI.DownListCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.down_list_combo", BI.DownListCombo);
}());

Loading…
Cancel
Save