Browse Source

Merge pull request #299 in FUI/fineui from ~WINDY/fui:master to master

* commit '4d385c2f0c71a424e1f765c1342a71927c56a69f':
  BI-17245 年月区间控件
  BI-17050 multi_layer_single_tree
es6
guy 7 years ago
parent
commit
77516dd07f
  1. 4
      demo/js/config/widget.js
  2. 16
      demo/js/widget/tree/demo.multilayer_single_level_tree.js
  3. 45
      demo/js/widget/yearmonthinterval/demo.year_month_interval.js
  4. 7
      dist/base.js
  5. 10
      dist/bundle.css
  6. 252
      dist/bundle.js
  7. 66
      dist/demo.js
  8. 10
      dist/fineui.css
  9. 10
      dist/widget.css
  10. 245
      dist/widget.js
  11. 7
      src/base/tree/customtree.js
  12. 4
      src/css/widget/timeinterval/timeinterval.css
  13. 6
      src/css/widget/yearmonthinterval/yearmonthinterval.css
  14. 2
      src/less/widget/timeinterval/timeinterval.less
  15. 10
      src/less/widget/yearmonthinterval/yearmonthinterval.less
  16. 6
      src/widget/dynamic/year/combo.year.js
  17. 1
      src/widget/dynamic/year/popup.year.js
  18. 26
      src/widget/dynamic/yearmonth/combo.yearmonth.js
  19. 1
      src/widget/dynamic/yearmonth/popup.yearmonth.js
  20. 14
      src/widget/dynamic/yearmonth/trigger.yearmonth.js
  21. 6
      src/widget/dynamic/yearquarter/combo.yearquarter.js
  22. 1
      src/widget/dynamic/yearquarter/popup.yearquarter.js
  23. 4
      src/widget/dynamicdate/dynamicdate.combo.js
  24. 5
      src/widget/multilayersingletree/multilayersingletree.leveltree.js
  25. 180
      src/widget/yearmonthinterval/yearmonthinterval.js

4
demo/js/config/widget.js

@ -198,6 +198,10 @@ Demo.WIDGET_CONFIG = [{
pId: 412, pId: 412,
text: "bi.time_interval", text: "bi.time_interval",
value: "demo.time_interval" value: "demo.time_interval"
}, {
pId: 412,
text: "bi.year_month_interval",
value: "demo.year_month_interval"
}, { }, {
pId: 4, pId: 4,
id: 413, id: 413,

16
demo/js/widget/tree/demo.multilayer_single_level_tree.js

@ -7,23 +7,23 @@ Demo.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
render: function () { render: function () {
var self = this; var self = this;
var tree = BI.createWidget({ this.tree = BI.createWidget({
type: "bi.multilayer_single_level_tree", type: "bi.multilayer_single_level_tree",
items: BI.deepClone(Demo.CONSTANTS.TREE), items: [],
value: "第级文件1" value: "第级文件1"
}); });
return { return {
type: "bi.vtape", type: "bi.vtape",
items: [{ items: [{
el: tree el: this.tree
}, { }, {
el: { el: {
type: "bi.button", type: "bi.button",
height: 25, height: 25,
text: "getValue", text: "getValue",
handler: function () { handler: function () {
BI.Msg.alert("", JSON.stringify(tree.getValue())); BI.Msg.alert("", JSON.stringify(self.tree.getValue()));
} }
}, },
height: 25 height: 25
@ -33,7 +33,7 @@ Demo.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
height: 25, height: 25,
text: "setValue (第二级文件1)", text: "setValue (第二级文件1)",
handler: function () { handler: function () {
tree.setValue(["第二级文件1"]); self.tree.setValue(["第二级文件1"]);
} }
}, },
height: 25 height: 25
@ -41,6 +41,10 @@ Demo.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
width: 500, width: 500,
hgap: 300 hgap: 300
}; };
},
mounted: function () {
this.tree.populate(BI.deepClone(Demo.CONSTANTS.TREE));
} }
}); });

45
demo/js/widget/yearmonthinterval/demo.year_month_interval.js

@ -0,0 +1,45 @@
Demo.YearMonthInterval = BI.inherit(BI.Widget, {
props: {
baseCls: ""
},
render: function () {
var self = this;
return {
type: "bi.horizontal_auto",
items: [{
type: "bi.year_month_interval",
ref: function (_ref) {
self.interval = _ref;
},
value: {
start: {
type: 2,
value: {
year: -1,
month: 1
}
},
end: {
type: 1,
value: {
year: 2018,
month: 0
}
}
},
width: 400
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.interval.getValue()));
},
width: 300
}],
vgap: 20
};
}
});
BI.shortcut("demo.year_month_interval", Demo.YearMonthInterval);

7
dist/base.js vendored

@ -34237,12 +34237,13 @@ BI.CustomTree = BI.inherit(BI.Widget, {
if (BI.isNotEmptyArray(node.children) || node.isParent === true) { if (BI.isNotEmptyArray(node.children) || node.isParent === true) {
var item = BI.extend({ var item = BI.extend({
type: "bi.expander", type: "bi.expander",
el: {}, el: {
value: node.value
},
popup: {type: "bi.custom_tree"} popup: {type: "bi.custom_tree"}
}, BI.deepClone(o.expander), { }, BI.deepClone(o.expander), {
id: node.id, id: node.id,
pId: node.pId, pId: node.pId
value: node.value
}); });
var el = BI.stripEL(node); var el = BI.stripEL(node);
if (!BI.isWidget(el)) { if (!BI.isWidget(el)) {

10
dist/bundle.css vendored

@ -5088,10 +5088,10 @@ ul.ztree.zTreeDragUL {
-moz-border-radius: 3px; -moz-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
} }
.bi-param-time-interval.time-error .bi-input { .bi-time-interval.time-error .bi-input {
color: #ff4949; color: #ff4949;
} }
.bi-param-time-interval.time-error .sign-editor-text { .bi-time-interval.time-error .sign-editor-text {
color: #ff4949; color: #ff4949;
} }
.bi-year-popup .year-popup-navigation { .bi-year-popup .year-popup-navigation {
@ -5134,6 +5134,12 @@ ul.ztree.zTreeDragUL {
-moz-border-radius: 2px; -moz-border-radius: 2px;
border-radius: 2px; border-radius: 2px;
} }
.bi-year-month-interval.time-error .bi-input {
color: #ff4949;
}
.bi-year-month-interval.time-error .sign-editor-text {
color: #ff4949;
}
html, html,
button, button,
input, input,

252
dist/bundle.js vendored

@ -69498,12 +69498,13 @@ BI.CustomTree = BI.inherit(BI.Widget, {
if (BI.isNotEmptyArray(node.children) || node.isParent === true) { if (BI.isNotEmptyArray(node.children) || node.isParent === true) {
var item = BI.extend({ var item = BI.extend({
type: "bi.expander", type: "bi.expander",
el: {}, el: {
value: node.value
},
popup: {type: "bi.custom_tree"} popup: {type: "bi.custom_tree"}
}, BI.deepClone(o.expander), { }, BI.deepClone(o.expander), {
id: node.id, id: node.id,
pId: node.pId, pId: node.pId
value: node.value
}); });
var el = BI.stripEL(node); var el = BI.stripEL(node);
if (!BI.isWidget(el)) { if (!BI.isWidget(el)) {
@ -89485,7 +89486,7 @@ BI.shortcut("bi.static_year_card", BI.StaticYearCard);BI.DynamicYearCombo = BI.i
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -89595,7 +89596,7 @@ BI.shortcut("bi.static_year_card", BI.StaticYearCard);BI.DynamicYearCombo = BI.i
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -89609,7 +89610,7 @@ BI.shortcut("bi.static_year_card", BI.StaticYearCard);BI.DynamicYearCombo = BI.i
switch (type) { switch (type) {
case BI.DynamicYearCombo.Dynamic: case BI.DynamicYearCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -89731,7 +89732,6 @@ BI.DynamicYearPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },
@ -90180,14 +90180,14 @@ BI.shortcut("bi.dynamic_year_month_card", BI.DynamicYearMonthCard);BI.StaticYear
} }
}); });
BI.StaticYearMonthCard.EVENT_CHANGE = "EVENT_CHANGE"; BI.StaticYearMonthCard.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, { BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearMonthCombo = BI.inherit(BI.Single, {
props: { props: {
baseCls: "bi-year-month-combo bi-border", baseCls: "bi-year-month-combo bi-border",
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -90208,6 +90208,10 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
}); });
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () { this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () {
self.combo.isViewVisible() && self.combo.hideView(); self.combo.isViewVisible() && self.combo.hideView();
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_ERROR);
});
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_VALID, function () {
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_VALID);
}); });
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () { this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () {
if (self.combo.isViewVisible()) { if (self.combo.isViewVisible()) {
@ -90216,6 +90220,9 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
self.storeValue = self.trigger.getValue(); self.storeValue = self.trigger.getValue();
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM);
}); });
this.trigger.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () {
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_FOCUS);
});
this.combo = BI.createWidget({ this.combo = BI.createWidget({
type: "bi.combo", type: "bi.combo",
@ -90288,7 +90295,7 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -90302,7 +90309,7 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
switch (type) { switch (type) {
case BI.DynamicYearMonthCombo.Dynamic: case BI.DynamicYearMonthCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -90313,6 +90320,10 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
} }
}, },
hideView: function () {
this.combo.hideView();
},
setValue: function (v) { setValue: function (v) {
this.storeValue = v; this.storeValue = v;
this.trigger.setValue(v); this.trigger.setValue(v);
@ -90321,9 +90332,16 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
getValue: function () { getValue: function () {
return this.storeValue; return this.storeValue;
},
getKey: function () {
return this.trigger.getKey();
} }
}); });
BI.DynamicYearMonthCombo.EVENT_ERROR = "EVENT_ERROR";
BI.DynamicYearMonthCombo.EVENT_VALID = "EVENT_VALID";
BI.DynamicYearMonthCombo.EVENT_FOCUS = "EVENT_FOCUS";
BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo); BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo);
@ -90424,7 +90442,6 @@ BI.DynamicYearMonthPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },
@ -90652,6 +90669,15 @@ BI.shortcut("bi.dynamic_year_month_popup", BI.DynamicYearMonthPopup);BI.DynamicY
editor.on(BI.SignEditor.EVENT_ERROR, function () { editor.on(BI.SignEditor.EVENT_ERROR, function () {
self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR); self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR);
}); });
editor.on(BI.SignEditor.EVENT_VALID, function () {
var year = self.yearEditor.getValue();
var month = self.monthEditor.getValue();
if(BI.isNotEmptyString(year) && BI.isNotEmptyString(month)) {
if(BI.isPositiveInteger(year) && month >= 1 && month <= 12 && !BI.checkDateVoid(year, month, 1, o.min, o.max)[0]) {
self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_VALID);
}
}
});
editor.on(BI.SignEditor.EVENT_CHANGE, function () { editor.on(BI.SignEditor.EVENT_CHANGE, function () {
if(isYear) { if(isYear) {
self._autoSwitch(editor.getValue()); self._autoSwitch(editor.getValue());
@ -90720,8 +90746,13 @@ BI.shortcut("bi.dynamic_year_month_popup", BI.DynamicYearMonthPopup);BI.DynamicY
getValue: function () { getValue: function () {
return this.storeValue; return this.storeValue;
},
getKey: function () {
return this.yearEditor.getValue() + "-" + this.monthEditor.getValue();
} }
}); });
BI.DynamicYearMonthTrigger.EVENT_VALID = "EVENT_FOCUS";
BI.DynamicYearMonthTrigger.EVENT_FOCUS = "EVENT_FOCUS"; BI.DynamicYearMonthTrigger.EVENT_FOCUS = "EVENT_FOCUS";
BI.DynamicYearMonthTrigger.EVENT_ERROR = "EVENT_ERROR"; BI.DynamicYearMonthTrigger.EVENT_ERROR = "EVENT_ERROR";
BI.DynamicYearMonthTrigger.EVENT_START = "EVENT_START"; BI.DynamicYearMonthTrigger.EVENT_START = "EVENT_START";
@ -90917,7 +90948,7 @@ BI.shortcut("bi.static_year_quarter_card", BI.StaticYearQuarterCard);BI.DynamicY
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -91018,7 +91049,7 @@ BI.shortcut("bi.static_year_quarter_card", BI.StaticYearQuarterCard);BI.DynamicY
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -91032,7 +91063,7 @@ BI.shortcut("bi.static_year_quarter_card", BI.StaticYearQuarterCard);BI.DynamicY
switch (type) { switch (type) {
case BI.DynamicYearQuarterCombo.Dynamic: case BI.DynamicYearQuarterCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -91147,7 +91178,6 @@ BI.extend(BI.DynamicYearQuarterCombo, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearQuarterCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },
@ -91847,7 +91877,7 @@ BI.extend(BI.DynamicDateCard, {
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, { }, {
type: "bi.absolute", type: "bi.absolute",
items: [{ items: [{
@ -92032,7 +92062,7 @@ BI.extend(BI.DynamicDateCard, {
switch (type) { switch (type) {
case BI.DynamicDateCombo.Dynamic: case BI.DynamicDateCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -96954,7 +96984,10 @@ BI.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
}, },
getValue: function () { getValue: function () {
return BI.uniq(this.tree.getValue()); return BI.filter(BI.uniq(this.tree.getValue()), function (idx, value) {
return BI.isNotNull(value);
});
}, },
getAllLeaves: function () { getAllLeaves: function () {
@ -108365,7 +108398,186 @@ BI.YearMonthCombo = BI.inherit(BI.Widget, {
}); });
BI.YearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.YearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.year_month_combo", BI.YearMonthCombo);/** BI.shortcut("bi.year_month_combo", BI.YearMonthCombo);BI.YearMonthInterval = BI.inherit(BI.Single, {
constants: {
height: 25,
width: 25,
lgap: 15,
offset: -15,
timeErrorCls: "time-error",
DATE_MIN_VALUE: "1900-01-01",
DATE_MAX_VALUE: "2099-12-31"
},
props: {
extraCls: "bi-year-month-interval"
},
_init: function () {
var self = this, o = this.options;
BI.YearMonthInterval.superclass._init.apply(this, arguments);
o.value = o.value || {};
this.left = this._createCombo(o.value.start);
this.right = this._createCombo(o.value.end);
this.label = BI.createWidget({
type: "bi.label",
height: this.constants.height,
width: this.constants.width,
text: "-"
});
BI.createWidget({
element: self,
type: "bi.center",
hgap: 15,
height: this.constants.height,
items: [{
type: "bi.absolute",
items: [{
el: self.left,
left: this.constants.offset,
right: 0,
top: 0,
bottom: 0
}]
}, {
type: "bi.absolute",
items: [{
el: self.right,
left: 0,
right: this.constants.offset,
top: 0,
bottom: 0
}]
}]
});
BI.createWidget({
type: "bi.horizontal_auto",
element: this,
items: [
self.label
]
});
},
_createCombo: function (v) {
var self = this;
var combo = BI.createWidget({
type: "bi.dynamic_year_month_combo",
value: v
});
combo.on(BI.DynamicYearMonthCombo.EVENT_ERROR, function () {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
});
combo.on(BI.DynamicYearMonthCombo.EVENT_VALID, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
BI.Bubbles.show("error", BI.i18nText("BI-Time_Interval_Error_Text"), self, {
offsetStyle: "center"
});
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
} else {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
}
});
combo.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
BI.Bubbles.show("error", BI.i18nText("BI-Time_Interval_Error_Text"), self, {
offsetStyle: "center"
});
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
} else {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
}
});
combo.on(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW, function () {
self.left.hideView();
self.right.hideView();
});
combo.on(BI.DynamicYearMonthCombo.EVENT_CONFIRM, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
}else{
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_CHANGE);
}
});
return combo;
},
_dateCheck: function (date) {
return BI.parseDateTime(date, "%Y-%x").print("%Y-%x") === date || BI.parseDateTime(date, "%Y-%X").print("%Y-%X") === date;
},
// 判是否在最大最小之间
_checkVoid: function (obj) {
return !BI.checkDateVoid(obj.year, obj.month, 1, this.constants.DATE_MIN_VALUE, this.constants.DATE_MAX_VALUE)[0];
},
// 判格式合法
_check: function (smallDate, bigDate) {
var smallObj = smallDate.match(/\d+/g), bigObj = bigDate.match(/\d+/g);
return this._dateCheck(smallDate) && BI.checkDateLegal(smallDate) && this._checkVoid({
year: smallObj[0],
month: smallObj[1],
day: 1
}) && this._dateCheck(bigDate) && BI.checkDateLegal(bigDate) && this._checkVoid({
year: bigObj[0],
month: bigObj[1],
day: 1
});
},
_compare: function (smallDate, bigDate) {
smallDate = BI.parseDateTime(smallDate, "%Y-%X").print("%Y-%X");
bigDate = BI.parseDateTime(bigDate, "%Y-%X").print("%Y-%X");
return BI.isNotNull(smallDate) && BI.isNotNull(bigDate) && smallDate > bigDate;
},
_setTitle: function (v) {
this.left.setTitle(v);
this.right.setTitle(v);
this.label.setTitle(v);
},
_clearTitle: function () {
this.left.setTitle("");
this.right.setTitle("");
this.label.setTitle("");
},
setValue: function (date) {
date = date || {};
this.left.setValue(date.start);
this.right.setValue(date.end);
},
getValue: function () {
return {start: this.left.getValue(), end: this.right.getValue()};
}
});
BI.YearMonthInterval.EVENT_VALID = "EVENT_VALID";
BI.YearMonthInterval.EVENT_ERROR = "EVENT_ERROR";
BI.YearMonthInterval.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.year_month_interval", BI.YearMonthInterval);/**
* 年份 + 月份下拉框 * 年份 + 月份下拉框
* *
* @class BI.YearQuarterCombo * @class BI.YearQuarterCombo

66
dist/demo.js vendored

@ -5852,6 +5852,10 @@ Demo.FIX_CONFIG = [{
pId: 412, pId: 412,
text: "bi.time_interval", text: "bi.time_interval",
value: "demo.time_interval" value: "demo.time_interval"
}, {
pId: 412,
text: "bi.year_month_interval",
value: "demo.year_month_interval"
}, { }, {
pId: 4, pId: 4,
id: 413, id: 413,
@ -14231,23 +14235,23 @@ Demo.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
render: function () { render: function () {
var self = this; var self = this;
var tree = BI.createWidget({ this.tree = BI.createWidget({
type: "bi.multilayer_single_level_tree", type: "bi.multilayer_single_level_tree",
items: BI.deepClone(Demo.CONSTANTS.TREE), items: [],
value: "第级文件1" value: "第级文件1"
}); });
return { return {
type: "bi.vtape", type: "bi.vtape",
items: [{ items: [{
el: tree el: this.tree
}, { }, {
el: { el: {
type: "bi.button", type: "bi.button",
height: 25, height: 25,
text: "getValue", text: "getValue",
handler: function () { handler: function () {
BI.Msg.alert("", JSON.stringify(tree.getValue())); BI.Msg.alert("", JSON.stringify(self.tree.getValue()));
} }
}, },
height: 25 height: 25
@ -14257,7 +14261,7 @@ Demo.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
height: 25, height: 25,
text: "setValue (第二级文件1)", text: "setValue (第二级文件1)",
handler: function () { handler: function () {
tree.setValue(["第二级文件1"]); self.tree.setValue(["第二级文件1"]);
} }
}, },
height: 25 height: 25
@ -14265,6 +14269,10 @@ Demo.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
width: 500, width: 500,
hgap: 300 hgap: 300
}; };
},
mounted: function () {
this.tree.populate(BI.deepClone(Demo.CONSTANTS.TREE));
} }
}); });
@ -14508,7 +14516,51 @@ Demo.YearMonthCombo = BI.inherit(BI.Widget, {
} }
}); });
BI.shortcut("demo.year_month_combo", Demo.YearMonthCombo);/** BI.shortcut("demo.year_month_combo", Demo.YearMonthCombo);Demo.YearMonthInterval = BI.inherit(BI.Widget, {
props: {
baseCls: ""
},
render: function () {
var self = this;
return {
type: "bi.horizontal_auto",
items: [{
type: "bi.year_month_interval",
ref: function (_ref) {
self.interval = _ref;
},
value: {
start: {
type: 2,
value: {
year: -1,
month: 1
}
},
end: {
type: 1,
value: {
year: 2018,
month: 0
}
}
},
width: 400
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.interval.getValue()));
},
width: 300
}],
vgap: 20
};
}
});
BI.shortcut("demo.year_month_interval", Demo.YearMonthInterval);/**
* Created by Dailer on 2017/7/13. * Created by Dailer on 2017/7/13.
*/ */
Demo.YearQuarterCombo = BI.inherit(BI.Widget, { Demo.YearQuarterCombo = BI.inherit(BI.Widget, {

10
dist/fineui.css vendored

@ -5088,10 +5088,10 @@ ul.ztree.zTreeDragUL {
-moz-border-radius: 3px; -moz-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
} }
.bi-param-time-interval.time-error .bi-input { .bi-time-interval.time-error .bi-input {
color: #ff4949; color: #ff4949;
} }
.bi-param-time-interval.time-error .sign-editor-text { .bi-time-interval.time-error .sign-editor-text {
color: #ff4949; color: #ff4949;
} }
.bi-year-popup .year-popup-navigation { .bi-year-popup .year-popup-navigation {
@ -5134,6 +5134,12 @@ ul.ztree.zTreeDragUL {
-moz-border-radius: 2px; -moz-border-radius: 2px;
border-radius: 2px; border-radius: 2px;
} }
.bi-year-month-interval.time-error .bi-input {
color: #ff4949;
}
.bi-year-month-interval.time-error .sign-editor-text {
color: #ff4949;
}
html, html,
button, button,
input, input,

10
dist/widget.css vendored

@ -612,10 +612,10 @@
-moz-border-radius: 3px; -moz-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
} }
.bi-param-time-interval.time-error .bi-input { .bi-time-interval.time-error .bi-input {
color: #ff4949; color: #ff4949;
} }
.bi-param-time-interval.time-error .sign-editor-text { .bi-time-interval.time-error .sign-editor-text {
color: #ff4949; color: #ff4949;
} }
.bi-year-popup .year-popup-navigation { .bi-year-popup .year-popup-navigation {
@ -658,3 +658,9 @@
-moz-border-radius: 2px; -moz-border-radius: 2px;
border-radius: 2px; border-radius: 2px;
} }
.bi-year-month-interval.time-error .bi-input {
color: #ff4949;
}
.bi-year-month-interval.time-error .sign-editor-text {
color: #ff4949;
}

245
dist/widget.js vendored

@ -3016,7 +3016,7 @@ BI.shortcut("bi.static_year_card", BI.StaticYearCard);BI.DynamicYearCombo = BI.i
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -3126,7 +3126,7 @@ BI.shortcut("bi.static_year_card", BI.StaticYearCard);BI.DynamicYearCombo = BI.i
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -3140,7 +3140,7 @@ BI.shortcut("bi.static_year_card", BI.StaticYearCard);BI.DynamicYearCombo = BI.i
switch (type) { switch (type) {
case BI.DynamicYearCombo.Dynamic: case BI.DynamicYearCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -3262,7 +3262,6 @@ BI.DynamicYearPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },
@ -3711,14 +3710,14 @@ BI.shortcut("bi.dynamic_year_month_card", BI.DynamicYearMonthCard);BI.StaticYear
} }
}); });
BI.StaticYearMonthCard.EVENT_CHANGE = "EVENT_CHANGE"; BI.StaticYearMonthCard.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, { BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearMonthCombo = BI.inherit(BI.Single, {
props: { props: {
baseCls: "bi-year-month-combo bi-border", baseCls: "bi-year-month-combo bi-border",
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -3739,6 +3738,10 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
}); });
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () { this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () {
self.combo.isViewVisible() && self.combo.hideView(); self.combo.isViewVisible() && self.combo.hideView();
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_ERROR);
});
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_VALID, function () {
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_VALID);
}); });
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () { this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () {
if (self.combo.isViewVisible()) { if (self.combo.isViewVisible()) {
@ -3747,6 +3750,9 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
self.storeValue = self.trigger.getValue(); self.storeValue = self.trigger.getValue();
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM);
}); });
this.trigger.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () {
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_FOCUS);
});
this.combo = BI.createWidget({ this.combo = BI.createWidget({
type: "bi.combo", type: "bi.combo",
@ -3819,7 +3825,7 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -3833,7 +3839,7 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
switch (type) { switch (type) {
case BI.DynamicYearMonthCombo.Dynamic: case BI.DynamicYearMonthCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -3844,6 +3850,10 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
} }
}, },
hideView: function () {
this.combo.hideView();
},
setValue: function (v) { setValue: function (v) {
this.storeValue = v; this.storeValue = v;
this.trigger.setValue(v); this.trigger.setValue(v);
@ -3852,9 +3862,16 @@ BI.shortcut("bi.static_year_month_card", BI.StaticYearMonthCard);BI.DynamicYearM
getValue: function () { getValue: function () {
return this.storeValue; return this.storeValue;
},
getKey: function () {
return this.trigger.getKey();
} }
}); });
BI.DynamicYearMonthCombo.EVENT_ERROR = "EVENT_ERROR";
BI.DynamicYearMonthCombo.EVENT_VALID = "EVENT_VALID";
BI.DynamicYearMonthCombo.EVENT_FOCUS = "EVENT_FOCUS";
BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo); BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo);
@ -3955,7 +3972,6 @@ BI.DynamicYearMonthPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },
@ -4183,6 +4199,15 @@ BI.shortcut("bi.dynamic_year_month_popup", BI.DynamicYearMonthPopup);BI.DynamicY
editor.on(BI.SignEditor.EVENT_ERROR, function () { editor.on(BI.SignEditor.EVENT_ERROR, function () {
self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR); self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR);
}); });
editor.on(BI.SignEditor.EVENT_VALID, function () {
var year = self.yearEditor.getValue();
var month = self.monthEditor.getValue();
if(BI.isNotEmptyString(year) && BI.isNotEmptyString(month)) {
if(BI.isPositiveInteger(year) && month >= 1 && month <= 12 && !BI.checkDateVoid(year, month, 1, o.min, o.max)[0]) {
self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_VALID);
}
}
});
editor.on(BI.SignEditor.EVENT_CHANGE, function () { editor.on(BI.SignEditor.EVENT_CHANGE, function () {
if(isYear) { if(isYear) {
self._autoSwitch(editor.getValue()); self._autoSwitch(editor.getValue());
@ -4251,8 +4276,13 @@ BI.shortcut("bi.dynamic_year_month_popup", BI.DynamicYearMonthPopup);BI.DynamicY
getValue: function () { getValue: function () {
return this.storeValue; return this.storeValue;
},
getKey: function () {
return this.yearEditor.getValue() + "-" + this.monthEditor.getValue();
} }
}); });
BI.DynamicYearMonthTrigger.EVENT_VALID = "EVENT_FOCUS";
BI.DynamicYearMonthTrigger.EVENT_FOCUS = "EVENT_FOCUS"; BI.DynamicYearMonthTrigger.EVENT_FOCUS = "EVENT_FOCUS";
BI.DynamicYearMonthTrigger.EVENT_ERROR = "EVENT_ERROR"; BI.DynamicYearMonthTrigger.EVENT_ERROR = "EVENT_ERROR";
BI.DynamicYearMonthTrigger.EVENT_START = "EVENT_START"; BI.DynamicYearMonthTrigger.EVENT_START = "EVENT_START";
@ -4448,7 +4478,7 @@ BI.shortcut("bi.static_year_quarter_card", BI.StaticYearQuarterCard);BI.DynamicY
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -4549,7 +4579,7 @@ BI.shortcut("bi.static_year_quarter_card", BI.StaticYearQuarterCard);BI.DynamicY
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -4563,7 +4593,7 @@ BI.shortcut("bi.static_year_quarter_card", BI.StaticYearQuarterCard);BI.DynamicY
switch (type) { switch (type) {
case BI.DynamicYearQuarterCombo.Dynamic: case BI.DynamicYearQuarterCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -4678,7 +4708,6 @@ BI.extend(BI.DynamicYearQuarterCombo, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearQuarterCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },
@ -5378,7 +5407,7 @@ BI.extend(BI.DynamicDateCard, {
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, { }, {
type: "bi.absolute", type: "bi.absolute",
items: [{ items: [{
@ -5563,7 +5592,7 @@ BI.extend(BI.DynamicDateCard, {
switch (type) { switch (type) {
case BI.DynamicDateCombo.Dynamic: case BI.DynamicDateCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -10485,7 +10514,10 @@ BI.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
}, },
getValue: function () { getValue: function () {
return BI.uniq(this.tree.getValue()); return BI.filter(BI.uniq(this.tree.getValue()), function (idx, value) {
return BI.isNotNull(value);
});
}, },
getAllLeaves: function () { getAllLeaves: function () {
@ -21896,7 +21928,186 @@ BI.YearMonthCombo = BI.inherit(BI.Widget, {
}); });
BI.YearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.YearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.year_month_combo", BI.YearMonthCombo);/** BI.shortcut("bi.year_month_combo", BI.YearMonthCombo);BI.YearMonthInterval = BI.inherit(BI.Single, {
constants: {
height: 25,
width: 25,
lgap: 15,
offset: -15,
timeErrorCls: "time-error",
DATE_MIN_VALUE: "1900-01-01",
DATE_MAX_VALUE: "2099-12-31"
},
props: {
extraCls: "bi-year-month-interval"
},
_init: function () {
var self = this, o = this.options;
BI.YearMonthInterval.superclass._init.apply(this, arguments);
o.value = o.value || {};
this.left = this._createCombo(o.value.start);
this.right = this._createCombo(o.value.end);
this.label = BI.createWidget({
type: "bi.label",
height: this.constants.height,
width: this.constants.width,
text: "-"
});
BI.createWidget({
element: self,
type: "bi.center",
hgap: 15,
height: this.constants.height,
items: [{
type: "bi.absolute",
items: [{
el: self.left,
left: this.constants.offset,
right: 0,
top: 0,
bottom: 0
}]
}, {
type: "bi.absolute",
items: [{
el: self.right,
left: 0,
right: this.constants.offset,
top: 0,
bottom: 0
}]
}]
});
BI.createWidget({
type: "bi.horizontal_auto",
element: this,
items: [
self.label
]
});
},
_createCombo: function (v) {
var self = this;
var combo = BI.createWidget({
type: "bi.dynamic_year_month_combo",
value: v
});
combo.on(BI.DynamicYearMonthCombo.EVENT_ERROR, function () {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
});
combo.on(BI.DynamicYearMonthCombo.EVENT_VALID, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
BI.Bubbles.show("error", BI.i18nText("BI-Time_Interval_Error_Text"), self, {
offsetStyle: "center"
});
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
} else {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
}
});
combo.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
BI.Bubbles.show("error", BI.i18nText("BI-Time_Interval_Error_Text"), self, {
offsetStyle: "center"
});
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
} else {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
}
});
combo.on(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW, function () {
self.left.hideView();
self.right.hideView();
});
combo.on(BI.DynamicYearMonthCombo.EVENT_CONFIRM, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
}else{
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_CHANGE);
}
});
return combo;
},
_dateCheck: function (date) {
return BI.parseDateTime(date, "%Y-%x").print("%Y-%x") === date || BI.parseDateTime(date, "%Y-%X").print("%Y-%X") === date;
},
// 判是否在最大最小之间
_checkVoid: function (obj) {
return !BI.checkDateVoid(obj.year, obj.month, 1, this.constants.DATE_MIN_VALUE, this.constants.DATE_MAX_VALUE)[0];
},
// 判格式合法
_check: function (smallDate, bigDate) {
var smallObj = smallDate.match(/\d+/g), bigObj = bigDate.match(/\d+/g);
return this._dateCheck(smallDate) && BI.checkDateLegal(smallDate) && this._checkVoid({
year: smallObj[0],
month: smallObj[1],
day: 1
}) && this._dateCheck(bigDate) && BI.checkDateLegal(bigDate) && this._checkVoid({
year: bigObj[0],
month: bigObj[1],
day: 1
});
},
_compare: function (smallDate, bigDate) {
smallDate = BI.parseDateTime(smallDate, "%Y-%X").print("%Y-%X");
bigDate = BI.parseDateTime(bigDate, "%Y-%X").print("%Y-%X");
return BI.isNotNull(smallDate) && BI.isNotNull(bigDate) && smallDate > bigDate;
},
_setTitle: function (v) {
this.left.setTitle(v);
this.right.setTitle(v);
this.label.setTitle(v);
},
_clearTitle: function () {
this.left.setTitle("");
this.right.setTitle("");
this.label.setTitle("");
},
setValue: function (date) {
date = date || {};
this.left.setValue(date.start);
this.right.setValue(date.end);
},
getValue: function () {
return {start: this.left.getValue(), end: this.right.getValue()};
}
});
BI.YearMonthInterval.EVENT_VALID = "EVENT_VALID";
BI.YearMonthInterval.EVENT_ERROR = "EVENT_ERROR";
BI.YearMonthInterval.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.year_month_interval", BI.YearMonthInterval);/**
* 年份 + 月份下拉框 * 年份 + 月份下拉框
* *
* @class BI.YearQuarterCombo * @class BI.YearQuarterCombo

7
src/base/tree/customtree.js

@ -44,12 +44,13 @@ BI.CustomTree = BI.inherit(BI.Widget, {
if (BI.isNotEmptyArray(node.children) || node.isParent === true) { if (BI.isNotEmptyArray(node.children) || node.isParent === true) {
var item = BI.extend({ var item = BI.extend({
type: "bi.expander", type: "bi.expander",
el: {}, el: {
value: node.value
},
popup: {type: "bi.custom_tree"} popup: {type: "bi.custom_tree"}
}, BI.deepClone(o.expander), { }, BI.deepClone(o.expander), {
id: node.id, id: node.id,
pId: node.pId, pId: node.pId
value: node.value
}); });
var el = BI.stripEL(node); var el = BI.stripEL(node);
if (!BI.isWidget(el)) { if (!BI.isWidget(el)) {

4
src/css/widget/timeinterval/timeinterval.css

@ -1,6 +1,6 @@
.bi-param-time-interval.time-error .bi-input { .bi-time-interval.time-error .bi-input {
color: #ff4949; color: #ff4949;
} }
.bi-param-time-interval.time-error .sign-editor-text { .bi-time-interval.time-error .sign-editor-text {
color: #ff4949; color: #ff4949;
} }

6
src/css/widget/yearmonthinterval/yearmonthinterval.css

@ -0,0 +1,6 @@
.bi-year-month-interval.time-error .bi-input {
color: #ff4949;
}
.bi-year-month-interval.time-error .sign-editor-text {
color: #ff4949;
}

2
src/less/widget/timeinterval/timeinterval.less

@ -1,6 +1,6 @@
@import "../../index"; @import "../../index";
.bi-param-time-interval{ .bi-time-interval{
&.time-error .bi-input{ &.time-error .bi-input{
color:@color-bi-text-failure color:@color-bi-text-failure
} }

10
src/less/widget/yearmonthinterval/yearmonthinterval.less

@ -0,0 +1,10 @@
@import "../../index";
.bi-year-month-interval{
&.time-error .bi-input{
color:@color-bi-text-failure
}
&.time-error .sign-editor-text{
color:@color-bi-text-failure
}
}

6
src/widget/dynamic/year/combo.year.js

@ -5,7 +5,7 @@ BI.DynamicYearCombo = BI.inherit(BI.Widget, {
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -115,7 +115,7 @@ BI.DynamicYearCombo = BI.inherit(BI.Widget, {
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -129,7 +129,7 @@ BI.DynamicYearCombo = BI.inherit(BI.Widget, {
switch (type) { switch (type) {
case BI.DynamicYearCombo.Dynamic: case BI.DynamicYearCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:

1
src/widget/dynamic/year/popup.year.js

@ -91,7 +91,6 @@ BI.DynamicYearPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },

26
src/widget/dynamic/yearmonth/combo.yearmonth.js

@ -1,11 +1,11 @@
BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, { BI.DynamicYearMonthCombo = BI.inherit(BI.Single, {
props: { props: {
baseCls: "bi-year-month-combo bi-border", baseCls: "bi-year-month-combo bi-border",
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -26,6 +26,10 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, {
}); });
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () { this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () {
self.combo.isViewVisible() && self.combo.hideView(); self.combo.isViewVisible() && self.combo.hideView();
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_ERROR);
});
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_VALID, function () {
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_VALID);
}); });
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () { this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () {
if (self.combo.isViewVisible()) { if (self.combo.isViewVisible()) {
@ -34,6 +38,9 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, {
self.storeValue = self.trigger.getValue(); self.storeValue = self.trigger.getValue();
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM);
}); });
this.trigger.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () {
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_FOCUS);
});
this.combo = BI.createWidget({ this.combo = BI.createWidget({
type: "bi.combo", type: "bi.combo",
@ -106,7 +113,7 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, {
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -120,7 +127,7 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, {
switch (type) { switch (type) {
case BI.DynamicYearMonthCombo.Dynamic: case BI.DynamicYearMonthCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:
@ -131,6 +138,10 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, {
} }
}, },
hideView: function () {
this.combo.hideView();
},
setValue: function (v) { setValue: function (v) {
this.storeValue = v; this.storeValue = v;
this.trigger.setValue(v); this.trigger.setValue(v);
@ -139,9 +150,16 @@ BI.DynamicYearMonthCombo = BI.inherit(BI.Widget, {
getValue: function () { getValue: function () {
return this.storeValue; return this.storeValue;
},
getKey: function () {
return this.trigger.getKey();
} }
}); });
BI.DynamicYearMonthCombo.EVENT_ERROR = "EVENT_ERROR";
BI.DynamicYearMonthCombo.EVENT_VALID = "EVENT_VALID";
BI.DynamicYearMonthCombo.EVENT_FOCUS = "EVENT_FOCUS";
BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo); BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo);

1
src/widget/dynamic/yearmonth/popup.yearmonth.js

@ -91,7 +91,6 @@ BI.DynamicYearMonthPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },

14
src/widget/dynamic/yearmonth/trigger.yearmonth.js

@ -113,6 +113,15 @@ BI.DynamicYearMonthTrigger = BI.inherit(BI.Trigger, {
editor.on(BI.SignEditor.EVENT_ERROR, function () { editor.on(BI.SignEditor.EVENT_ERROR, function () {
self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR); self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_ERROR);
}); });
editor.on(BI.SignEditor.EVENT_VALID, function () {
var year = self.yearEditor.getValue();
var month = self.monthEditor.getValue();
if(BI.isNotEmptyString(year) && BI.isNotEmptyString(month)) {
if(BI.isPositiveInteger(year) && month >= 1 && month <= 12 && !BI.checkDateVoid(year, month, 1, o.min, o.max)[0]) {
self.fireEvent(BI.DynamicYearMonthTrigger.EVENT_VALID);
}
}
});
editor.on(BI.SignEditor.EVENT_CHANGE, function () { editor.on(BI.SignEditor.EVENT_CHANGE, function () {
if(isYear) { if(isYear) {
self._autoSwitch(editor.getValue()); self._autoSwitch(editor.getValue());
@ -181,8 +190,13 @@ BI.DynamicYearMonthTrigger = BI.inherit(BI.Trigger, {
getValue: function () { getValue: function () {
return this.storeValue; return this.storeValue;
},
getKey: function () {
return this.yearEditor.getValue() + "-" + this.monthEditor.getValue();
} }
}); });
BI.DynamicYearMonthTrigger.EVENT_VALID = "EVENT_FOCUS";
BI.DynamicYearMonthTrigger.EVENT_FOCUS = "EVENT_FOCUS"; BI.DynamicYearMonthTrigger.EVENT_FOCUS = "EVENT_FOCUS";
BI.DynamicYearMonthTrigger.EVENT_ERROR = "EVENT_ERROR"; BI.DynamicYearMonthTrigger.EVENT_ERROR = "EVENT_ERROR";
BI.DynamicYearMonthTrigger.EVENT_START = "EVENT_START"; BI.DynamicYearMonthTrigger.EVENT_START = "EVENT_START";

6
src/widget/dynamic/yearquarter/combo.yearquarter.js

@ -5,7 +5,7 @@ BI.DynamicYearQuarterCombo = BI.inherit(BI.Widget, {
behaviors: {}, behaviors: {},
min: "1900-01-01", // 最小日期 min: "1900-01-01", // 最小日期
max: "2099-12-31", // 最大日期 max: "2099-12-31", // 最大日期
height: 25 height: 24
}, },
_init: function () { _init: function () {
@ -106,7 +106,7 @@ BI.DynamicYearQuarterCombo = BI.inherit(BI.Widget, {
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, this.combo] }, this.combo]
}); });
this._checkDynamicValue(o.value); this._checkDynamicValue(o.value);
@ -120,7 +120,7 @@ BI.DynamicYearQuarterCombo = BI.inherit(BI.Widget, {
switch (type) { switch (type) {
case BI.DynamicYearQuarterCombo.Dynamic: case BI.DynamicYearQuarterCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:

1
src/widget/dynamic/yearquarter/popup.yearquarter.js

@ -84,7 +84,6 @@ BI.DynamicYearQuarterPopup = BI.inherit(BI.Widget, {
var self = this, o = this.options; var self = this, o = this.options;
return { return {
type: "bi.tab", type: "bi.tab",
showIndex: BI.DynamicYearQuarterCombo.Static,
ref: function () { ref: function () {
self.dateTab = this; self.dateTab = this;
}, },

4
src/widget/dynamicdate/dynamicdate.combo.js

@ -31,7 +31,7 @@ BI.DynamicDateCombo = BI.inherit(BI.Single, {
self.changeIcon = this; self.changeIcon = this;
} }
}, },
width: 30 width: 24
}, { }, {
type: "bi.absolute", type: "bi.absolute",
items: [{ items: [{
@ -216,7 +216,7 @@ BI.DynamicDateCombo = BI.inherit(BI.Single, {
switch (type) { switch (type) {
case BI.DynamicDateCombo.Dynamic: case BI.DynamicDateCombo.Dynamic:
this.changeIcon.setVisible(true); this.changeIcon.setVisible(true);
this.comboWrapper.attr("items")[0].width = 30; this.comboWrapper.attr("items")[0].width = 24;
this.comboWrapper.resize(); this.comboWrapper.resize();
break; break;
default: default:

5
src/widget/multilayersingletree/multilayersingletree.leveltree.js

@ -112,7 +112,10 @@ BI.MultiLayerSingleLevelTree = BI.inherit(BI.Widget, {
}, },
getValue: function () { getValue: function () {
return BI.uniq(this.tree.getValue()); return BI.filter(BI.uniq(this.tree.getValue()), function (idx, value) {
return BI.isNotNull(value);
});
}, },
getAllLeaves: function () { getAllLeaves: function () {

180
src/widget/yearmonthinterval/yearmonthinterval.js

@ -0,0 +1,180 @@
BI.YearMonthInterval = BI.inherit(BI.Single, {
constants: {
height: 25,
width: 25,
lgap: 15,
offset: -15,
timeErrorCls: "time-error",
DATE_MIN_VALUE: "1900-01-01",
DATE_MAX_VALUE: "2099-12-31"
},
props: {
extraCls: "bi-year-month-interval"
},
_init: function () {
var self = this, o = this.options;
BI.YearMonthInterval.superclass._init.apply(this, arguments);
o.value = o.value || {};
this.left = this._createCombo(o.value.start);
this.right = this._createCombo(o.value.end);
this.label = BI.createWidget({
type: "bi.label",
height: this.constants.height,
width: this.constants.width,
text: "-"
});
BI.createWidget({
element: self,
type: "bi.center",
hgap: 15,
height: this.constants.height,
items: [{
type: "bi.absolute",
items: [{
el: self.left,
left: this.constants.offset,
right: 0,
top: 0,
bottom: 0
}]
}, {
type: "bi.absolute",
items: [{
el: self.right,
left: 0,
right: this.constants.offset,
top: 0,
bottom: 0
}]
}]
});
BI.createWidget({
type: "bi.horizontal_auto",
element: this,
items: [
self.label
]
});
},
_createCombo: function (v) {
var self = this;
var combo = BI.createWidget({
type: "bi.dynamic_year_month_combo",
value: v
});
combo.on(BI.DynamicYearMonthCombo.EVENT_ERROR, function () {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
});
combo.on(BI.DynamicYearMonthCombo.EVENT_VALID, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
BI.Bubbles.show("error", BI.i18nText("BI-Time_Interval_Error_Text"), self, {
offsetStyle: "center"
});
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
} else {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
}
});
combo.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
BI.Bubbles.show("error", BI.i18nText("BI-Time_Interval_Error_Text"), self, {
offsetStyle: "center"
});
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
} else {
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
}
});
combo.on(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW, function () {
self.left.hideView();
self.right.hideView();
});
combo.on(BI.DynamicYearMonthCombo.EVENT_CONFIRM, function () {
BI.Bubbles.hide("error");
var smallDate = self.left.getKey(), bigDate = self.right.getKey();
if (self._check(smallDate, bigDate) && self._compare(smallDate, bigDate)) {
self._setTitle(BI.i18nText("BI-Time_Interval_Error_Text"));
self.element.addClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_ERROR);
}else{
self._clearTitle();
self.element.removeClass(self.constants.timeErrorCls);
self.fireEvent(BI.YearMonthInterval.EVENT_CHANGE);
}
});
return combo;
},
_dateCheck: function (date) {
return BI.parseDateTime(date, "%Y-%x").print("%Y-%x") === date || BI.parseDateTime(date, "%Y-%X").print("%Y-%X") === date;
},
// 判是否在最大最小之间
_checkVoid: function (obj) {
return !BI.checkDateVoid(obj.year, obj.month, 1, this.constants.DATE_MIN_VALUE, this.constants.DATE_MAX_VALUE)[0];
},
// 判格式合法
_check: function (smallDate, bigDate) {
var smallObj = smallDate.match(/\d+/g), bigObj = bigDate.match(/\d+/g);
return this._dateCheck(smallDate) && BI.checkDateLegal(smallDate) && this._checkVoid({
year: smallObj[0],
month: smallObj[1],
day: 1
}) && this._dateCheck(bigDate) && BI.checkDateLegal(bigDate) && this._checkVoid({
year: bigObj[0],
month: bigObj[1],
day: 1
});
},
_compare: function (smallDate, bigDate) {
smallDate = BI.parseDateTime(smallDate, "%Y-%X").print("%Y-%X");
bigDate = BI.parseDateTime(bigDate, "%Y-%X").print("%Y-%X");
return BI.isNotNull(smallDate) && BI.isNotNull(bigDate) && smallDate > bigDate;
},
_setTitle: function (v) {
this.left.setTitle(v);
this.right.setTitle(v);
this.label.setTitle(v);
},
_clearTitle: function () {
this.left.setTitle("");
this.right.setTitle("");
this.label.setTitle("");
},
setValue: function (date) {
date = date || {};
this.left.setValue(date.start);
this.right.setValue(date.end);
},
getValue: function () {
return {start: this.left.getValue(), end: this.right.getValue()};
}
});
BI.YearMonthInterval.EVENT_VALID = "EVENT_VALID";
BI.YearMonthInterval.EVENT_ERROR = "EVENT_ERROR";
BI.YearMonthInterval.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.year_month_interval", BI.YearMonthInterval);
Loading…
Cancel
Save