You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.9 KiB
97 lines
2.9 KiB
/** |
|
* 月份展示面板 |
|
* |
|
* Created by GUY on 2015/9/2. |
|
* @class BI.MonthPopup |
|
* @extends BI.Trigger |
|
*/ |
|
BI.MonthPopup = BI.inherit(BI.Widget, { |
|
|
|
_defaultConfig: function () { |
|
return BI.extend(BI.MonthPopup.superclass._defaultConfig.apply(this, arguments), { |
|
baseCls: "bi-month-popup", |
|
behaviors: {} |
|
}); |
|
}, |
|
|
|
_init: function () { |
|
BI.MonthPopup.superclass._init.apply(this, arguments); |
|
var self = this, o = this.options; |
|
|
|
this.selectedMonth = BI.getDate().getMonth() + 1; |
|
|
|
this.month = BI.createWidget({ |
|
type: "bi.button_group", |
|
element: this, |
|
behaviors: o.behaviors, |
|
items: BI.createItems(this._getItems(o.allowMonths), {}), |
|
layouts: [BI.LogicFactory.createLogic("table", BI.extend({ |
|
dynamic: true |
|
}, { |
|
columns: 2, |
|
rows: 6, |
|
columnSize: [1 / 2, 1 / 2], |
|
rowSize: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT + 1 |
|
})), { |
|
type: "bi.center_adapt", |
|
vgap: 2, |
|
}], |
|
value: o.value |
|
}); |
|
|
|
this.month.on(BI.Controller.EVENT_CHANGE, function (type, value) { |
|
self.selectedMonth = value; |
|
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); |
|
if (type === BI.Events.CLICK) { |
|
self.fireEvent(BI.MonthPopup.EVENT_CHANGE); |
|
} |
|
}); |
|
}, |
|
|
|
_getItems: function(m) { |
|
// 纵向排列月 |
|
var month = [1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 6, 12]; |
|
var items = []; |
|
items.push(month.slice(0, 2)); |
|
items.push(month.slice(2, 4)); |
|
items.push(month.slice(4, 6)); |
|
items.push(month.slice(6, 8)); |
|
items.push(month.slice(8, 10)); |
|
items.push(month.slice(10, 12)); |
|
items = BI.map(items, function (i, item) { |
|
return BI.map(item, function (j, td) { |
|
return { |
|
type: "bi.text_item", |
|
cls: "bi-border-radius bi-list-item-select", |
|
textAlign: "center", |
|
whiteSpace: "nowrap", |
|
once: false, |
|
forceSelected: true, |
|
height: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT - 1, |
|
width: 30, |
|
value: td, |
|
text: td, |
|
disabled: !BI.contains(m, td) |
|
}; |
|
}); |
|
}); |
|
|
|
return items; |
|
}, |
|
|
|
populate: function(months) { |
|
this.month.populate(this._getItems(months)); |
|
}, |
|
|
|
getValue: function () { |
|
return this.selectedMonth; |
|
}, |
|
|
|
setValue: function (v) { |
|
v = BI.parseInt(v); |
|
this.selectedMonth = v; |
|
this.month.setValue([v]); |
|
} |
|
}); |
|
BI.MonthPopup.EVENT_CHANGE = "EVENT_CHANGE"; |
|
BI.shortcut("bi.month_popup", BI.MonthPopup); |