forked from fanruan/fineui
windy
7 years ago
37 changed files with 25107 additions and 29817 deletions
@ -0,0 +1,110 @@ |
|||||||
|
/** |
||||||
|
* 年份展示面板 |
||||||
|
* |
||||||
|
* Created by GUY on 2015/9/2. |
||||||
|
* @class BI.YearPopup |
||||||
|
* @extends BI.Trigger |
||||||
|
*/ |
||||||
|
BI.YearPopup = BI.inherit(BI.Widget, { |
||||||
|
|
||||||
|
_defaultConfig: function () { |
||||||
|
return BI.extend(BI.YearPopup.superclass._defaultConfig.apply(this, arguments), { |
||||||
|
baseCls: "bi-year-popup", |
||||||
|
behaviors: {}, |
||||||
|
min: "1900-01-01", // 最小日期
|
||||||
|
max: "2099-12-31" // 最大日期
|
||||||
|
}); |
||||||
|
}, |
||||||
|
|
||||||
|
_createYearCalendar: function (v) { |
||||||
|
var o = this.options, y = this._year; |
||||||
|
|
||||||
|
var calendar = BI.createWidget({ |
||||||
|
type: "bi.year_calendar", |
||||||
|
behaviors: o.behaviors, |
||||||
|
min: o.min, |
||||||
|
max: o.max, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
year: y + v * 12 |
||||||
|
}); |
||||||
|
calendar.setValue(this._year); |
||||||
|
return calendar; |
||||||
|
}, |
||||||
|
|
||||||
|
_init: function () { |
||||||
|
BI.YearPopup.superclass._init.apply(this, arguments); |
||||||
|
var self = this, o = this.options; |
||||||
|
|
||||||
|
this.selectedYear = this._year = BI.getDate().getFullYear(); |
||||||
|
|
||||||
|
var backBtn = BI.createWidget({ |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "pre-page-h-font", |
||||||
|
width: 25, |
||||||
|
height: 25, |
||||||
|
value: -1 |
||||||
|
}); |
||||||
|
|
||||||
|
var preBtn = BI.createWidget({ |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "next-page-h-font", |
||||||
|
width: 25, |
||||||
|
height: 25, |
||||||
|
value: 1 |
||||||
|
}); |
||||||
|
|
||||||
|
this.navigation = BI.createWidget({ |
||||||
|
type: "bi.navigation", |
||||||
|
element: this, |
||||||
|
single: true, |
||||||
|
logic: { |
||||||
|
dynamic: true |
||||||
|
}, |
||||||
|
tab: { |
||||||
|
cls: "year-popup-navigation bi-high-light bi-border-top", |
||||||
|
height: 25, |
||||||
|
items: [backBtn, preBtn] |
||||||
|
}, |
||||||
|
cardCreator: BI.bind(this._createYearCalendar, this), |
||||||
|
|
||||||
|
afterCardShow: function () { |
||||||
|
this.setValue(self.selectedYear); |
||||||
|
var calendar = this.getSelectedCard(); |
||||||
|
backBtn.setEnable(!calendar.isFrontYear()); |
||||||
|
preBtn.setEnable(!calendar.isFinalYear()); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
this.navigation.on(BI.Navigation.EVENT_CHANGE, function () { |
||||||
|
self.selectedYear = this.getValue(); |
||||||
|
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); |
||||||
|
self.fireEvent(BI.YearPopup.EVENT_CHANGE, self.selectedYear); |
||||||
|
}); |
||||||
|
|
||||||
|
if(BI.isKey(o.value)){ |
||||||
|
this.setValue(o.value); |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
getValue: function () { |
||||||
|
return this.selectedYear; |
||||||
|
}, |
||||||
|
|
||||||
|
setValue: function (v) { |
||||||
|
var o = this.options; |
||||||
|
if (BI.checkDateVoid(v, 1, 1, o.min, o.max)[0]) { |
||||||
|
v = BI.getDate().getFullYear(); |
||||||
|
this.selectedYear = ""; |
||||||
|
this.navigation.setSelect(BI.YearCalendar.getPageByYear(v)); |
||||||
|
this.navigation.setValue(""); |
||||||
|
} else { |
||||||
|
this.selectedYear = v; |
||||||
|
this.navigation.setSelect(BI.YearCalendar.getPageByYear(v)); |
||||||
|
this.navigation.setValue(v); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.YearPopup.EVENT_CHANGE = "EVENT_CHANGE"; |
||||||
|
BI.shortcut("bi.year_popup", BI.YearPopup); |
@ -1,114 +1,140 @@ |
|||||||
/** |
BI.DynamicDatePane = BI.inherit(BI.Widget, { |
||||||
* Created by zcf on 2017/2/20. |
|
||||||
*/ |
|
||||||
BI.DatePaneWidget = BI.inherit(BI.Widget, { |
|
||||||
_defaultConfig: function () { |
|
||||||
var conf = BI.DatePaneWidget.superclass._defaultConfig.apply(this, arguments); |
|
||||||
return BI.extend(conf, { |
|
||||||
baseCls: "bi-date-pane", |
|
||||||
min: "1900-01-01", // 最小日期
|
|
||||||
max: "2099-12-31", // 最大日期
|
|
||||||
selectedTime: null |
|
||||||
}); |
|
||||||
}, |
|
||||||
_init: function () { |
|
||||||
BI.DatePaneWidget.superclass._init.apply(this, arguments); |
|
||||||
var self = this, o = this.options; |
|
||||||
|
|
||||||
this.today = BI.getDate(); |
|
||||||
this._year = this.today.getFullYear(); |
|
||||||
this._month = this.today.getMonth(); |
|
||||||
|
|
||||||
this.selectedTime = o.selectedTime || { |
|
||||||
year: this._year, |
|
||||||
month: this._month |
|
||||||
}; |
|
||||||
|
|
||||||
this.datePicker = BI.createWidget({ |
|
||||||
type: "bi.date_picker", |
|
||||||
min: o.min, |
|
||||||
max: o.max |
|
||||||
}); |
|
||||||
this.datePicker.on(BI.DatePicker.EVENT_CHANGE, function () { |
|
||||||
self.selectedTime = self.datePicker.getValue(); |
|
||||||
self.calendar.setSelect(BI.Calendar.getPageByDateJSON(self.selectedTime)); |
|
||||||
}); |
|
||||||
|
|
||||||
this.calendar = BI.createWidget({ |
|
||||||
direction: "top", |
|
||||||
element: this, |
|
||||||
logic: { |
|
||||||
dynamic: false |
|
||||||
}, |
|
||||||
type: "bi.navigation", |
|
||||||
tab: this.datePicker, |
|
||||||
cardCreator: BI.bind(this._createNav, this) |
|
||||||
}); |
|
||||||
this.calendar.on(BI.Navigation.EVENT_CHANGE, function () { |
|
||||||
self.selectedTime = self.calendar.getValue(); |
|
||||||
self.calendar.empty(); |
|
||||||
self.setValue(self.selectedTime); |
|
||||||
self.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE); |
|
||||||
}); |
|
||||||
this.setValue(o.selectedTime); |
|
||||||
|
|
||||||
}, |
|
||||||
|
|
||||||
_createNav: function (v) { |
props: { |
||||||
var date = BI.Calendar.getDateJSONByPage(v); |
baseCls: "bi-dynamic-date-pane" |
||||||
var calendar = BI.createWidget({ |
|
||||||
type: "bi.calendar", |
|
||||||
logic: { |
|
||||||
dynamic: false |
|
||||||
}, |
|
||||||
min: this.options.min, |
|
||||||
max: this.options.max, |
|
||||||
year: date.year, |
|
||||||
month: date.month, |
|
||||||
day: this.selectedTime.day |
|
||||||
}); |
|
||||||
return calendar; |
|
||||||
}, |
}, |
||||||
|
|
||||||
_getNewCurrentDate: function () { |
render: function () { |
||||||
var today = BI.getDate(); |
var self = this; |
||||||
return { |
return { |
||||||
year: today.getFullYear(), |
type: "bi.vtape", |
||||||
month: today.getMonth() |
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.linear_segment", |
||||||
|
cls: "bi-border-bottom", |
||||||
|
height: 30, |
||||||
|
items: BI.createItems([{ |
||||||
|
text: BI.i18nText("BI-Multi_Date_YMD"), |
||||||
|
value: BI.DynamicDatePane.Static |
||||||
|
}, { |
||||||
|
text: BI.i18nText("BI-Basic_Dynamic_Title"), |
||||||
|
value: BI.DynamicDatePane.Dynamic |
||||||
|
}], { |
||||||
|
textAlign: "center" |
||||||
|
}), |
||||||
|
listeners: [{ |
||||||
|
eventName: BI.ButtonGroup.EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
var value = this.getValue()[0]; |
||||||
|
self.dateTab.setSelect(value); |
||||||
|
switch (value) { |
||||||
|
case BI.DynamicDatePane.Static: |
||||||
|
var date = BI.DynamicDateHelper.getCalculation(self.dynamicPane.getValue()); |
||||||
|
self.ymd.setValue({ |
||||||
|
year: date.getFullYear(), |
||||||
|
month: date.getMonth(), |
||||||
|
day: date.getDate() |
||||||
|
}); |
||||||
|
break; |
||||||
|
case BI.DynamicDatePane.Dynamic: |
||||||
|
self.dynamicPane.setValue({ |
||||||
|
year: 0 |
||||||
|
}); |
||||||
|
break; |
||||||
|
default: |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
}], |
||||||
|
ref: function () { |
||||||
|
self.switch = this; |
||||||
|
} |
||||||
|
}, |
||||||
|
height: 30 |
||||||
|
}, { |
||||||
|
type: "bi.tab", |
||||||
|
ref: function () { |
||||||
|
self.dateTab = this; |
||||||
|
}, |
||||||
|
showIndex: BI.DynamicDatePane.Static, |
||||||
|
cardCreator: function (v) { |
||||||
|
switch (v) { |
||||||
|
case BI.DynamicDatePane.Static: |
||||||
|
return { |
||||||
|
type: "bi.static_date_pane_card", |
||||||
|
listeners: [{ |
||||||
|
eventName: "EVENT_CHANGE", |
||||||
|
action: function () { |
||||||
|
self.fireEvent("EVENT_CHANGE"); |
||||||
|
} |
||||||
|
}], |
||||||
|
ref: function () { |
||||||
|
self.ymd = this; |
||||||
|
} |
||||||
|
}; |
||||||
|
case BI.DynamicDatePane.Dynamic: |
||||||
|
default: |
||||||
|
return { |
||||||
|
type: "bi.dynamic_date_card", |
||||||
|
listeners: [{ |
||||||
|
eventName: "EVENT_CHANGE", |
||||||
|
action: function () { |
||||||
|
self.fireEvent("EVENT_CHANGE"); |
||||||
|
} |
||||||
|
}], |
||||||
|
ref: function () { |
||||||
|
self.dynamicPane = this; |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
||||||
|
}] |
||||||
}; |
}; |
||||||
}, |
}, |
||||||
|
|
||||||
_setCalenderValue: function (date) { |
mounted: function () { |
||||||
this.calendar.setSelect(BI.Calendar.getPageByDateJSON(date)); |
this.setValue(this.options.value); |
||||||
this.calendar.setValue(date); |
|
||||||
this.selectedTime = date; |
|
||||||
}, |
}, |
||||||
|
|
||||||
_setDatePicker: function (timeOb) { |
_checkValueValid: function (value) { |
||||||
if (BI.isNull(timeOb) || BI.isNull(timeOb.year) || BI.isNull(timeOb.month)) { |
return BI.isNull(value) || BI.isEmptyObject(value) || BI.isEmptyString(value); |
||||||
this.datePicker.setValue(this._getNewCurrentDate()); |
|
||||||
} else { |
|
||||||
this.datePicker.setValue(timeOb); |
|
||||||
} |
|
||||||
}, |
}, |
||||||
|
|
||||||
_setCalendar: function (timeOb) { |
setValue: function (v) { |
||||||
if (BI.isNull(timeOb) || BI.isNull(timeOb.day)) { |
v = v || {}; |
||||||
this.calendar.empty(); |
var type = v.type || BI.DynamicDateCombo.Static; |
||||||
this._setCalenderValue(this._getNewCurrentDate()); |
var value = v.value || v; |
||||||
} else { |
this.switch.setValue(type); |
||||||
this._setCalenderValue(timeOb); |
this.dateTab.setSelect(type); |
||||||
|
switch (type) { |
||||||
|
case BI.DynamicDateCombo.Dynamic: |
||||||
|
this.dynamicPane.setValue(value); |
||||||
|
break; |
||||||
|
case BI.DynamicDateCombo.Static: |
||||||
|
default: |
||||||
|
if (this._checkValueValid(value)) { |
||||||
|
var date = BI.getDate(); |
||||||
|
this.ymd.setValue({ |
||||||
|
year: date.getFullYear(), |
||||||
|
month: date.getMonth() |
||||||
|
}); |
||||||
|
} else { |
||||||
|
this.ymd.setValue(value); |
||||||
|
} |
||||||
|
break; |
||||||
} |
} |
||||||
}, |
}, |
||||||
|
|
||||||
setValue: function (timeOb) { |
|
||||||
this._setDatePicker(timeOb); |
|
||||||
this._setCalendar(timeOb); |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
getValue: function () { |
||||||
return this.selectedTime; |
return { |
||||||
|
type: this.dateTab.getSelect(), |
||||||
|
value: this.dateTab.getValue() |
||||||
|
}; |
||||||
} |
} |
||||||
|
|
||||||
}); |
}); |
||||||
BI.shortcut("bi.date_pane", BI.DatePaneWidget); |
BI.shortcut("bi.dynamic_date_pane", BI.DynamicDatePane); |
||||||
|
|
||||||
|
BI.extend(BI.DynamicDatePane, { |
||||||
|
Static: 1, |
||||||
|
Dynamic: 2 |
||||||
|
}); |
@ -1,140 +0,0 @@ |
|||||||
BI.DynamicDatePane = BI.inherit(BI.Widget, { |
|
||||||
|
|
||||||
props: { |
|
||||||
baseCls: "bi-dynamic-date-pane" |
|
||||||
}, |
|
||||||
|
|
||||||
render: function () { |
|
||||||
var self = this; |
|
||||||
return { |
|
||||||
type: "bi.vtape", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.linear_segment", |
|
||||||
cls: "bi-border-bottom", |
|
||||||
height: 30, |
|
||||||
items: BI.createItems([{ |
|
||||||
text: BI.i18nText("BI-Multi_Date_YMD"), |
|
||||||
value: BI.DynamicDatePane.Static |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Basic_Dynamic_Title"), |
|
||||||
value: BI.DynamicDatePane.Dynamic |
|
||||||
}], { |
|
||||||
textAlign: "center" |
|
||||||
}), |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.ButtonGroup.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
var value = this.getValue()[0]; |
|
||||||
self.dateTab.setSelect(value); |
|
||||||
switch (value) { |
|
||||||
case BI.DynamicDatePane.Static: |
|
||||||
var date = BI.DynamicDateHelper.getCalculation(self.dynamicPane.getValue()); |
|
||||||
self.ymd.setValue({ |
|
||||||
year: date.getFullYear(), |
|
||||||
month: date.getMonth(), |
|
||||||
day: date.getDate() |
|
||||||
}); |
|
||||||
break; |
|
||||||
case BI.DynamicDatePane.Dynamic: |
|
||||||
self.dynamicPane.setValue({ |
|
||||||
year: 0 |
|
||||||
}); |
|
||||||
break; |
|
||||||
default: |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
||||||
}], |
|
||||||
ref: function () { |
|
||||||
self.switch = this; |
|
||||||
} |
|
||||||
}, |
|
||||||
height: 30 |
|
||||||
}, { |
|
||||||
type: "bi.tab", |
|
||||||
ref: function () { |
|
||||||
self.dateTab = this; |
|
||||||
}, |
|
||||||
showIndex: BI.DynamicDatePane.Static, |
|
||||||
cardCreator: function (v) { |
|
||||||
switch (v) { |
|
||||||
case BI.DynamicDatePane.Static: |
|
||||||
return { |
|
||||||
type: "bi.static_date_pane_card", |
|
||||||
listeners: [{ |
|
||||||
eventName: "EVENT_CHANGE", |
|
||||||
action: function () { |
|
||||||
self.fireEvent("EVENT_CHANGE"); |
|
||||||
} |
|
||||||
}], |
|
||||||
ref: function () { |
|
||||||
self.ymd = this; |
|
||||||
} |
|
||||||
}; |
|
||||||
case BI.DynamicDatePane.Dynamic: |
|
||||||
default: |
|
||||||
return { |
|
||||||
type: "bi.dynamic_date_card", |
|
||||||
listeners: [{ |
|
||||||
eventName: "EVENT_CHANGE", |
|
||||||
action: function () { |
|
||||||
self.fireEvent("EVENT_CHANGE"); |
|
||||||
} |
|
||||||
}], |
|
||||||
ref: function () { |
|
||||||
self.dynamicPane = this; |
|
||||||
} |
|
||||||
}; |
|
||||||
} |
|
||||||
} |
|
||||||
}] |
|
||||||
}; |
|
||||||
}, |
|
||||||
|
|
||||||
mounted: function () { |
|
||||||
this.setValue(this.options.value); |
|
||||||
}, |
|
||||||
|
|
||||||
_checkValueValid: function (value) { |
|
||||||
return BI.isNull(value) || BI.isEmptyObject(value) || BI.isEmptyString(value); |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
v = v || {}; |
|
||||||
var type = v.type || BI.DynamicDateCombo.Static; |
|
||||||
var value = v.value || v; |
|
||||||
this.switch.setValue(type); |
|
||||||
this.dateTab.setSelect(type); |
|
||||||
switch (type) { |
|
||||||
case BI.DynamicDateCombo.Dynamic: |
|
||||||
this.dynamicPane.setValue(value); |
|
||||||
break; |
|
||||||
case BI.DynamicDateCombo.Static: |
|
||||||
default: |
|
||||||
if (this._checkValueValid(value)) { |
|
||||||
var date = BI.getDate(); |
|
||||||
this.ymd.setValue({ |
|
||||||
year: date.getFullYear(), |
|
||||||
month: date.getMonth() |
|
||||||
}); |
|
||||||
} else { |
|
||||||
this.ymd.setValue(value); |
|
||||||
} |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
return { |
|
||||||
type: this.dateTab.getSelect(), |
|
||||||
value: this.dateTab.getValue() |
|
||||||
}; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.shortcut("bi.dynamic_date_pane", BI.DynamicDatePane); |
|
||||||
|
|
||||||
BI.extend(BI.DynamicDatePane, { |
|
||||||
Static: 1, |
|
||||||
Dynamic: 2 |
|
||||||
}); |
|
@ -1,161 +0,0 @@ |
|||||||
BI.DynamicYearCombo = BI.inherit(BI.Widget, { |
|
||||||
|
|
||||||
props: { |
|
||||||
baseCls: "bi-year-combo bi-border", |
|
||||||
behaviors: {}, |
|
||||||
min: "1900-01-01", // 最小日期
|
|
||||||
max: "2099-12-31", // 最大日期
|
|
||||||
height: 24 |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.DynamicYearCombo.superclass._init.apply(this, arguments); |
|
||||||
var self = this, o = this.options; |
|
||||||
this.storeValue = o.value; |
|
||||||
this.trigger = BI.createWidget({ |
|
||||||
type: "bi.dynamic_year_trigger", |
|
||||||
min: o.min, |
|
||||||
max: o.max, |
|
||||||
value: o.value || "" |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearTrigger.EVENT_FOCUS, function () { |
|
||||||
self.storeTriggerValue = this.getKey(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearTrigger.EVENT_START, function () { |
|
||||||
self.combo.isViewVisible() && self.combo.hideView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearTrigger.EVENT_STOP, function () { |
|
||||||
self.combo.showView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearTrigger.EVENT_ERROR, function () { |
|
||||||
self.combo.isViewVisible() && self.combo.hideView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearTrigger.EVENT_CONFIRM, function () { |
|
||||||
if (self.combo.isViewVisible()) { |
|
||||||
return; |
|
||||||
} |
|
||||||
if (this.getKey() && this.getKey() !== self.storeTriggerValue) { |
|
||||||
self.storeValue = self.trigger.getValue(); |
|
||||||
self.setValue(self.storeValue); |
|
||||||
} else if (!this.getKey()) { |
|
||||||
self.storeValue = null; |
|
||||||
self.setValue(); |
|
||||||
} |
|
||||||
self.fireEvent(BI.DynamicYearCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
|
|
||||||
this.combo = BI.createWidget({ |
|
||||||
type: "bi.combo", |
|
||||||
isNeedAdjustHeight: false, |
|
||||||
isNeedAdjustWidth: false, |
|
||||||
el: this.trigger, |
|
||||||
popup: { |
|
||||||
minWidth: 85, |
|
||||||
stopPropagation: false, |
|
||||||
el: { |
|
||||||
type: "bi.dynamic_year_popup", |
|
||||||
ref: function () { |
|
||||||
self.popup = this; |
|
||||||
}, |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.DynamicYearPopup.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicYearCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearPopup.BUTTON_CLEAR_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicYearCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearPopup.BUTTON_lABEL_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
var date = BI.getDate(); |
|
||||||
self.setValue({year: date.getFullYear()}); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearPopup.BUTTON_OK_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}], |
|
||||||
behaviors: o.behaviors, |
|
||||||
min: o.min, |
|
||||||
max: o.max |
|
||||||
}, |
|
||||||
value: o.value || "" |
|
||||||
} |
|
||||||
}); |
|
||||||
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { |
|
||||||
self.popup.setValue(self.storeValue); |
|
||||||
self.fireEvent(BI.DynamicYearCombo.EVENT_BEFORE_POPUPVIEW); |
|
||||||
}); |
|
||||||
|
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.htape", |
|
||||||
element: this, |
|
||||||
ref: function () { |
|
||||||
self.comboWrapper = this; |
|
||||||
}, |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "bi-trigger-icon-button date-change-h-font", |
|
||||||
width: 24, |
|
||||||
height: 24, |
|
||||||
ref: function () { |
|
||||||
self.changeIcon = this; |
|
||||||
} |
|
||||||
}, |
|
||||||
width: 24 |
|
||||||
}, this.combo] |
|
||||||
}); |
|
||||||
this._checkDynamicValue(o.value); |
|
||||||
}, |
|
||||||
|
|
||||||
_checkDynamicValue: function (v) { |
|
||||||
var type = null; |
|
||||||
if (BI.isNotNull(v)) { |
|
||||||
type = v.type; |
|
||||||
} |
|
||||||
switch (type) { |
|
||||||
case BI.DynamicYearCombo.Dynamic: |
|
||||||
this.changeIcon.setVisible(true); |
|
||||||
this.comboWrapper.attr("items")[0].width = 24; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
break; |
|
||||||
default: |
|
||||||
this.comboWrapper.attr("items")[0].width = 0; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
this.changeIcon.setVisible(false); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
this.storeValue = v; |
|
||||||
this.trigger.setValue(v); |
|
||||||
this._checkDynamicValue(v); |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
return this.storeValue; |
|
||||||
} |
|
||||||
|
|
||||||
}); |
|
||||||
BI.DynamicYearCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
|
||||||
BI.DynamicYearCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
|
||||||
BI.shortcut("bi.dynamic_year_combo", BI.DynamicYearCombo); |
|
||||||
|
|
||||||
BI.extend(BI.DynamicYearCombo, { |
|
||||||
Static: 1, |
|
||||||
Dynamic: 2 |
|
||||||
}); |
|
@ -1,206 +0,0 @@ |
|||||||
/** |
|
||||||
* 年份展示面板 |
|
||||||
* |
|
||||||
* Created by GUY on 2015/9/2. |
|
||||||
* @class BI.DynamicYearPopup |
|
||||||
* @extends BI.Trigger |
|
||||||
*/ |
|
||||||
BI.DynamicYearPopup = BI.inherit(BI.Widget, { |
|
||||||
constants: { |
|
||||||
tabHeight: 30 |
|
||||||
}, |
|
||||||
|
|
||||||
props: { |
|
||||||
baseCls: "bi-year-popup", |
|
||||||
behaviors: {}, |
|
||||||
min: "1900-01-01", // 最小日期
|
|
||||||
max: "2099-12-31", // 最大日期,
|
|
||||||
width: 180, |
|
||||||
height: 240 |
|
||||||
}, |
|
||||||
|
|
||||||
render: function () { |
|
||||||
var self = this, opts = this.options; |
|
||||||
this.storeValue = {type: BI.DynamicYearCombo.Static}; |
|
||||||
return { |
|
||||||
type: "bi.vtape", |
|
||||||
items: [{ |
|
||||||
el: this._getTabJson() |
|
||||||
}, { |
|
||||||
el: { |
|
||||||
type: "bi.grid", |
|
||||||
items: [[{ |
|
||||||
type: "bi.text_button", |
|
||||||
forceCenter: true, |
|
||||||
cls: "bi-border-top bi-high-light", |
|
||||||
shadow: true, |
|
||||||
text: BI.i18nText("BI-Basic_Clear"), |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.TextButton.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.fireEvent(BI.DynamicYearPopup.BUTTON_CLEAR_EVENT_CHANGE); |
|
||||||
} |
|
||||||
}] |
|
||||||
}, { |
|
||||||
type: "bi.text_button", |
|
||||||
forceCenter: true, |
|
||||||
cls: "bi-border-left bi-border-right bi-border-top", |
|
||||||
shadow: true, |
|
||||||
text: BI.i18nText("BI-Basic_Current_Year"), |
|
||||||
ref: function () { |
|
||||||
self.textButton = this; |
|
||||||
}, |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.TextButton.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.fireEvent(BI.DynamicYearPopup.BUTTON_lABEL_EVENT_CHANGE); |
|
||||||
} |
|
||||||
}] |
|
||||||
}, { |
|
||||||
type: "bi.text_button", |
|
||||||
forceCenter: true, |
|
||||||
cls: "bi-border-top bi-high-light", |
|
||||||
shadow: true, |
|
||||||
text: BI.i18nText("BI-Basic_OK"), |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.TextButton.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.fireEvent(BI.DynamicYearPopup.BUTTON_OK_EVENT_CHANGE); |
|
||||||
} |
|
||||||
}] |
|
||||||
}]] |
|
||||||
}, |
|
||||||
height: 24 |
|
||||||
}] |
|
||||||
}; |
|
||||||
}, |
|
||||||
|
|
||||||
_setInnerValue: function () { |
|
||||||
if (this.dateTab.getSelect() === BI.DynamicDateCombo.Static) { |
|
||||||
this.textButton.setValue(BI.i18nText("BI-Basic_Current_Year")); |
|
||||||
this.textButton.setEnable(true); |
|
||||||
} else { |
|
||||||
var date = BI.DynamicDateHelper.getCalculation(this.dynamicPane.getValue()); |
|
||||||
date = date.print("%Y"); |
|
||||||
this.textButton.setValue(date); |
|
||||||
this.textButton.setEnable(false); |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
_getTabJson: function () { |
|
||||||
var self = this, o = this.options; |
|
||||||
return { |
|
||||||
type: "bi.tab", |
|
||||||
ref: function () { |
|
||||||
self.dateTab = this; |
|
||||||
}, |
|
||||||
tab: { |
|
||||||
type: "bi.linear_segment", |
|
||||||
cls: "bi-border-bottom", |
|
||||||
height: this.constants.tabHeight, |
|
||||||
items: BI.createItems([{ |
|
||||||
text: BI.i18nText("BI-Basic_Year_Fen"), |
|
||||||
value: BI.DynamicYearCombo.Static |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Basic_Dynamic_Title"), |
|
||||||
value: BI.DynamicYearCombo.Dynamic |
|
||||||
}], { |
|
||||||
textAlign: "center" |
|
||||||
}) |
|
||||||
}, |
|
||||||
cardCreator: function (v) { |
|
||||||
switch (v) { |
|
||||||
case BI.DynamicYearCombo.Dynamic: |
|
||||||
return { |
|
||||||
type: "bi.dynamic_year_card", |
|
||||||
listeners: [{ |
|
||||||
eventName: "EVENT_CHANGE", |
|
||||||
action: function () { |
|
||||||
self._setInnerValue(self.year, v); |
|
||||||
} |
|
||||||
}], |
|
||||||
ref: function () { |
|
||||||
self.dynamicPane = this; |
|
||||||
} |
|
||||||
}; |
|
||||||
case BI.DynamicYearCombo.Static: |
|
||||||
default: |
|
||||||
return { |
|
||||||
type: "bi.static_year_card", |
|
||||||
behaviors: o.behaviors, |
|
||||||
min: self.options.min, |
|
||||||
max: self.options.max, |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.YearCard.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.fireEvent(BI.DynamicYearPopup.EVENT_CHANGE); |
|
||||||
} |
|
||||||
}], |
|
||||||
ref: function () { |
|
||||||
self.year = this; |
|
||||||
} |
|
||||||
}; |
|
||||||
} |
|
||||||
}, |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.Tab.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
var v = self.dateTab.getSelect(); |
|
||||||
switch (v) { |
|
||||||
case BI.DynamicYearCombo.Static: |
|
||||||
var date = BI.DynamicDateHelper.getCalculation(self.dynamicPane.getValue()); |
|
||||||
self.year.setValue({year: date.getFullYear()}); |
|
||||||
self._setInnerValue(); |
|
||||||
break; |
|
||||||
case BI.DynamicYearCombo.Dynamic: |
|
||||||
default: |
|
||||||
if(self.storeValue && self.storeValue.type === BI.DynamicYearCombo.Dynamic) { |
|
||||||
self.dynamicPane.setValue(self.storeValue.value); |
|
||||||
}else{ |
|
||||||
self.dynamicPane.setValue({ |
|
||||||
year: 0 |
|
||||||
}); |
|
||||||
} |
|
||||||
self._setInnerValue(); |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
||||||
}] |
|
||||||
}; |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
this.storeValue = v; |
|
||||||
var self = this; |
|
||||||
var type, value; |
|
||||||
v = v || {}; |
|
||||||
type = v.type || BI.DynamicDateCombo.Static; |
|
||||||
value = v.value || v; |
|
||||||
this.dateTab.setSelect(type); |
|
||||||
switch (type) { |
|
||||||
case BI.DynamicDateCombo.Dynamic: |
|
||||||
this.dynamicPane.setValue(value); |
|
||||||
self._setInnerValue(); |
|
||||||
break; |
|
||||||
case BI.DynamicDateCombo.Static: |
|
||||||
default: |
|
||||||
this.year.setValue(value); |
|
||||||
this.textButton.setValue(BI.i18nText("BI-Basic_Current_Year")); |
|
||||||
this.textButton.setEnable(true); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
return { |
|
||||||
type: this.dateTab.getSelect(), |
|
||||||
value: this.dateTab.getValue() |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
}); |
|
||||||
BI.DynamicYearPopup.BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE"; |
|
||||||
BI.DynamicYearPopup.BUTTON_lABEL_EVENT_CHANGE = "BUTTON_lABEL_EVENT_CHANGE"; |
|
||||||
BI.DynamicYearPopup.BUTTON_OK_EVENT_CHANGE = "BUTTON_OK_EVENT_CHANGE"; |
|
||||||
BI.DynamicYearPopup.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.dynamic_year_popup", BI.DynamicYearPopup); |
|
@ -1,146 +0,0 @@ |
|||||||
BI.DynamicYearTrigger = BI.inherit(BI.Trigger, { |
|
||||||
_const: { |
|
||||||
hgap: 4, |
|
||||||
vgap: 2, |
|
||||||
errorText: BI.i18nText("BI-Please_Input_Positive_Integer"), |
|
||||||
errorTextInvalid: BI.i18nText("BI-Year_Trigger_Invalid_Text") |
|
||||||
}, |
|
||||||
|
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.DynamicYearTrigger.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
extraCls: "bi-year-trigger", |
|
||||||
min: "1900-01-01", // 最小日期
|
|
||||||
max: "2099-12-31", // 最大日期
|
|
||||||
height: 24 |
|
||||||
}); |
|
||||||
}, |
|
||||||
_init: function () { |
|
||||||
BI.DynamicYearTrigger.superclass._init.apply(this, arguments); |
|
||||||
var self = this, o = this.options, c = this._const; |
|
||||||
this.editor = BI.createWidget({ |
|
||||||
type: "bi.sign_editor", |
|
||||||
height: o.height, |
|
||||||
validationChecker: function (v) { |
|
||||||
return v === "" || (BI.isPositiveInteger(v) && !BI.checkDateVoid(v, 1, 1, o.min, o.max)[0]); |
|
||||||
}, |
|
||||||
quitChecker: function (v) { |
|
||||||
return false; |
|
||||||
}, |
|
||||||
hgap: c.hgap, |
|
||||||
vgap: c.vgap, |
|
||||||
watermark: BI.i18nText("BI-Basic_Unrestricted"), |
|
||||||
allowBlank: true, |
|
||||||
errorText: function (v) { |
|
||||||
return !BI.isPositiveInteger(v) ? c.errorText : c.errorTextInvalid; |
|
||||||
} |
|
||||||
}); |
|
||||||
this.editor.on(BI.SignEditor.EVENT_FOCUS, function () { |
|
||||||
self.fireEvent(BI.DynamicYearTrigger.EVENT_FOCUS); |
|
||||||
}); |
|
||||||
this.editor.on(BI.SignEditor.EVENT_STOP, function () { |
|
||||||
self.fireEvent(BI.DynamicYearTrigger.EVENT_STOP); |
|
||||||
}); |
|
||||||
this.editor.on(BI.SignEditor.EVENT_CONFIRM, function () { |
|
||||||
var value = self.editor.getValue(); |
|
||||||
if (BI.isNotNull(value)) { |
|
||||||
self.editor.setValue(value); |
|
||||||
} |
|
||||||
if (BI.isNotEmptyString(value)) { |
|
||||||
self.storeValue = { |
|
||||||
type: BI.DynamicDateCombo.Static, |
|
||||||
value: { |
|
||||||
year: value |
|
||||||
} |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
self.fireEvent(BI.DynamicYearTrigger.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.editor.on(BI.SignEditor.EVENT_SPACE, function () { |
|
||||||
if (self.editor.isValid()) { |
|
||||||
self.editor.blur(); |
|
||||||
} |
|
||||||
}); |
|
||||||
this.editor.on(BI.SignEditor.EVENT_START, function () { |
|
||||||
self.fireEvent(BI.DynamicYearTrigger.EVENT_START); |
|
||||||
}); |
|
||||||
this.editor.on(BI.SignEditor.EVENT_ERROR, function () { |
|
||||||
self.fireEvent(BI.DynamicYearTrigger.EVENT_ERROR); |
|
||||||
}); |
|
||||||
BI.createWidget({ |
|
||||||
element: this, |
|
||||||
type: "bi.htape", |
|
||||||
items: [{ |
|
||||||
el: this.editor |
|
||||||
}, { |
|
||||||
el: { |
|
||||||
type: "bi.text_button", |
|
||||||
baseCls: "bi-trigger-year-text", |
|
||||||
text: BI.i18nText("BI-Multi_Date_Year"), |
|
||||||
width: o.height |
|
||||||
}, |
|
||||||
width: o.height |
|
||||||
}, { |
|
||||||
el: { |
|
||||||
type: "bi.trigger_icon_button", |
|
||||||
width: o.height |
|
||||||
}, |
|
||||||
width: o.height |
|
||||||
}] |
|
||||||
}); |
|
||||||
this.setValue(o.value); |
|
||||||
}, |
|
||||||
|
|
||||||
_getText: function (obj) { |
|
||||||
var value = ""; |
|
||||||
if(BI.isNotNull(obj.year) && obj.year !== 0) { |
|
||||||
value += Math.abs(obj.year) + BI.i18nText("BI-Basic_Year") + (obj.year < 0 ? BI.i18nText("BI-Basic_Front") : BI.i18nText("BI-Basic_Behind")); |
|
||||||
} |
|
||||||
return value; |
|
||||||
}, |
|
||||||
|
|
||||||
_setInnerValue: function (date, text) { |
|
||||||
var dateStr = date.print("%Y"); |
|
||||||
this.editor.setState(dateStr); |
|
||||||
this.editor.setValue(dateStr); |
|
||||||
this.setTitle(BI.isEmptyString(text) ? dateStr : (text + ":" + dateStr)); |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
var type, value; |
|
||||||
var date = BI.getDate(); |
|
||||||
this.storeValue = v; |
|
||||||
if (BI.isNotNull(v)) { |
|
||||||
type = v.type || BI.DynamicDateCombo.Static; |
|
||||||
value = v.value || v; |
|
||||||
} |
|
||||||
switch (type) { |
|
||||||
case BI.DynamicDateCombo.Dynamic: |
|
||||||
var text = this._getText(value); |
|
||||||
date = BI.DynamicDateHelper.getCalculation(value); |
|
||||||
this._setInnerValue(date, text); |
|
||||||
break; |
|
||||||
case BI.DynamicDateCombo.Static: |
|
||||||
default: |
|
||||||
value = value || {}; |
|
||||||
this.editor.setState(value.year); |
|
||||||
this.editor.setValue(value.year); |
|
||||||
this.editor.setTitle(value.year); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
return this.storeValue; |
|
||||||
}, |
|
||||||
|
|
||||||
getKey: function () { |
|
||||||
return this.editor.getValue() | 0; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.DynamicYearTrigger.EVENT_FOCUS = "EVENT_FOCUS"; |
|
||||||
BI.DynamicYearTrigger.EVENT_ERROR = "EVENT_ERROR"; |
|
||||||
BI.DynamicYearTrigger.EVENT_START = "EVENT_START"; |
|
||||||
BI.DynamicYearTrigger.EVENT_CONFIRM = "EVENT_CONFIRM"; |
|
||||||
BI.DynamicYearTrigger.EVENT_STOP = "EVENT_STOP"; |
|
||||||
BI.shortcut("bi.dynamic_year_trigger", BI.DynamicYearTrigger); |
|
@ -1,170 +0,0 @@ |
|||||||
BI.DynamicYearMonthCombo = BI.inherit(BI.Single, { |
|
||||||
|
|
||||||
props: { |
|
||||||
baseCls: "bi-year-month-combo bi-border", |
|
||||||
behaviors: {}, |
|
||||||
min: "1900-01-01", // 最小日期
|
|
||||||
max: "2099-12-31", // 最大日期
|
|
||||||
height: 24 |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.DynamicYearMonthCombo.superclass._init.apply(this, arguments); |
|
||||||
var self = this, o = this.options; |
|
||||||
this.storeValue = o.value; |
|
||||||
this.trigger = BI.createWidget({ |
|
||||||
type: "bi.dynamic_year_month_trigger", |
|
||||||
min: o.min, |
|
||||||
max: o.max, |
|
||||||
value: o.value || "" |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_START, function () { |
|
||||||
self.combo.isViewVisible() && self.combo.hideView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_STOP, function () { |
|
||||||
self.combo.showView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () { |
|
||||||
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 () { |
|
||||||
if (self.combo.isViewVisible()) { |
|
||||||
return; |
|
||||||
} |
|
||||||
self.storeValue = self.trigger.getValue(); |
|
||||||
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () { |
|
||||||
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_FOCUS); |
|
||||||
}); |
|
||||||
|
|
||||||
this.combo = BI.createWidget({ |
|
||||||
type: "bi.combo", |
|
||||||
isNeedAdjustHeight: false, |
|
||||||
isNeedAdjustWidth: false, |
|
||||||
el: this.trigger, |
|
||||||
popup: { |
|
||||||
minWidth: 85, |
|
||||||
stopPropagation: false, |
|
||||||
el: { |
|
||||||
type: "bi.dynamic_year_month_popup", |
|
||||||
ref: function () { |
|
||||||
self.popup = this; |
|
||||||
}, |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.DynamicYearMonthPopup.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearMonthPopup.BUTTON_CLEAR_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearMonthPopup.BUTTON_lABEL_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
var date = BI.getDate(); |
|
||||||
self.setValue({year: date.getFullYear()}); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearMonthPopup.BUTTON_OK_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}], |
|
||||||
behaviors: o.behaviors, |
|
||||||
min: o.min, |
|
||||||
max: o.max |
|
||||||
}, |
|
||||||
value: o.value || "" |
|
||||||
} |
|
||||||
}); |
|
||||||
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { |
|
||||||
self.popup.setValue(self.storeValue); |
|
||||||
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW); |
|
||||||
}); |
|
||||||
|
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.htape", |
|
||||||
element: this, |
|
||||||
ref: function () { |
|
||||||
self.comboWrapper = this; |
|
||||||
}, |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "bi-trigger-icon-button date-change-h-font", |
|
||||||
width: 24, |
|
||||||
height: 24, |
|
||||||
ref: function () { |
|
||||||
self.changeIcon = this; |
|
||||||
} |
|
||||||
}, |
|
||||||
width: 24 |
|
||||||
}, this.combo] |
|
||||||
}); |
|
||||||
this._checkDynamicValue(o.value); |
|
||||||
}, |
|
||||||
|
|
||||||
_checkDynamicValue: function (v) { |
|
||||||
var type = null; |
|
||||||
if (BI.isNotNull(v)) { |
|
||||||
type = v.type; |
|
||||||
} |
|
||||||
switch (type) { |
|
||||||
case BI.DynamicYearMonthCombo.Dynamic: |
|
||||||
this.changeIcon.setVisible(true); |
|
||||||
this.comboWrapper.attr("items")[0].width = 24; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
break; |
|
||||||
default: |
|
||||||
this.comboWrapper.attr("items")[0].width = 0; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
this.changeIcon.setVisible(false); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
hideView: function () { |
|
||||||
this.combo.hideView(); |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
this.storeValue = v; |
|
||||||
this.trigger.setValue(v); |
|
||||||
this._checkDynamicValue(v); |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
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_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
|
||||||
BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo); |
|
||||||
|
|
||||||
BI.extend(BI.DynamicYearMonthCombo, { |
|
||||||
Static: 1, |
|
||||||
Dynamic: 2 |
|
||||||
}); |
|
@ -1,152 +0,0 @@ |
|||||||
BI.DynamicYearQuarterCombo = BI.inherit(BI.Widget, { |
|
||||||
|
|
||||||
props: { |
|
||||||
baseCls: "bi-year-quarter-combo bi-border", |
|
||||||
behaviors: {}, |
|
||||||
min: "1900-01-01", // 最小日期
|
|
||||||
max: "2099-12-31", // 最大日期
|
|
||||||
height: 24 |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.DynamicYearQuarterCombo.superclass._init.apply(this, arguments); |
|
||||||
var self = this, o = this.options; |
|
||||||
this.storeValue = o.value; |
|
||||||
this.trigger = BI.createWidget({ |
|
||||||
type: "bi.dynamic_year_quarter_trigger", |
|
||||||
min: o.min, |
|
||||||
max: o.max, |
|
||||||
value: o.value || "" |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_START, function () { |
|
||||||
self.combo.isViewVisible() && self.combo.hideView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_STOP, function () { |
|
||||||
self.combo.showView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_ERROR, function () { |
|
||||||
self.combo.isViewVisible() && self.combo.hideView(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_CONFIRM, function () { |
|
||||||
if (self.combo.isViewVisible()) { |
|
||||||
return; |
|
||||||
} |
|
||||||
self.storeValue = self.trigger.getValue(); |
|
||||||
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
|
|
||||||
this.combo = BI.createWidget({ |
|
||||||
type: "bi.combo", |
|
||||||
isNeedAdjustHeight: false, |
|
||||||
isNeedAdjustWidth: false, |
|
||||||
el: this.trigger, |
|
||||||
popup: { |
|
||||||
minWidth: 85, |
|
||||||
stopPropagation: false, |
|
||||||
el: { |
|
||||||
type: "bi.dynamic_year_quarter_popup", |
|
||||||
ref: function () { |
|
||||||
self.popup = this; |
|
||||||
}, |
|
||||||
listeners: [{ |
|
||||||
eventName: BI.DynamicYearQuarterPopup.EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearQuarterPopup.BUTTON_CLEAR_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearQuarterPopup.BUTTON_lABEL_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
var date = BI.getDate(); |
|
||||||
self.setValue({year: date.getFullYear()}); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}, { |
|
||||||
eventName: BI.DynamicYearQuarterPopup.BUTTON_OK_EVENT_CHANGE, |
|
||||||
action: function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
|
||||||
} |
|
||||||
}], |
|
||||||
behaviors: o.behaviors, |
|
||||||
min: o.min, |
|
||||||
max: o.max |
|
||||||
}, |
|
||||||
value: o.value || "" |
|
||||||
} |
|
||||||
}); |
|
||||||
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { |
|
||||||
self.popup.setValue(self.storeValue); |
|
||||||
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_BEFORE_POPUPVIEW); |
|
||||||
}); |
|
||||||
|
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.htape", |
|
||||||
element: this, |
|
||||||
ref: function () { |
|
||||||
self.comboWrapper = this; |
|
||||||
}, |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "bi-trigger-icon-button date-change-h-font", |
|
||||||
width: 24, |
|
||||||
height: 24, |
|
||||||
ref: function () { |
|
||||||
self.changeIcon = this; |
|
||||||
} |
|
||||||
}, |
|
||||||
width: 24 |
|
||||||
}, this.combo] |
|
||||||
}); |
|
||||||
this._checkDynamicValue(o.value); |
|
||||||
}, |
|
||||||
|
|
||||||
_checkDynamicValue: function (v) { |
|
||||||
var type = null; |
|
||||||
if (BI.isNotNull(v)) { |
|
||||||
type = v.type; |
|
||||||
} |
|
||||||
switch (type) { |
|
||||||
case BI.DynamicYearQuarterCombo.Dynamic: |
|
||||||
this.changeIcon.setVisible(true); |
|
||||||
this.comboWrapper.attr("items")[0].width = 24; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
break; |
|
||||||
default: |
|
||||||
this.comboWrapper.attr("items")[0].width = 0; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
this.changeIcon.setVisible(false); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
this.storeValue = v; |
|
||||||
this.trigger.setValue(v); |
|
||||||
this._checkDynamicValue(v); |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
return this.storeValue; |
|
||||||
} |
|
||||||
|
|
||||||
}); |
|
||||||
BI.DynamicYearQuarterCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
|
||||||
BI.DynamicYearQuarterCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
|
||||||
BI.shortcut("bi.dynamic_year_quarter_combo", BI.DynamicYearQuarterCombo); |
|
||||||
|
|
||||||
BI.extend(BI.DynamicYearQuarterCombo, { |
|
||||||
Static: 1, |
|
||||||
Dynamic: 2 |
|
||||||
}); |
|
@ -1,151 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.MultiDateCard |
|
||||||
* @extends BI.Widget |
|
||||||
* @abstract |
|
||||||
*/ |
|
||||||
BI.MultiDateCard = BI.inherit(BI.Widget, { |
|
||||||
|
|
||||||
constants: { |
|
||||||
lgap: 80, |
|
||||||
itemHeight: 35, |
|
||||||
defaultEditorValue: "1" |
|
||||||
}, |
|
||||||
|
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.MultiDateCard.superclass._defaultConfig.apply(this, arguments), {}); |
|
||||||
}, |
|
||||||
|
|
||||||
dateConfig: function () { |
|
||||||
|
|
||||||
}, |
|
||||||
|
|
||||||
defaultSelectedItem: function () { |
|
||||||
|
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.MultiDateCard.superclass._init.apply(this, arguments); |
|
||||||
var self = this, opts = this.options; |
|
||||||
|
|
||||||
this.label = BI.createWidget({ |
|
||||||
type: "bi.label", |
|
||||||
height: this.constants.itemHeight, |
|
||||||
textAlign: "left", |
|
||||||
text: BI.i18nText("BI-Multi_Date_Relative_Current_Time"), |
|
||||||
cls: "bi-multidate-inner-label bi-tips" |
|
||||||
}); |
|
||||||
this.radioGroup = BI.createWidget({ |
|
||||||
type: "bi.button_group", |
|
||||||
chooseType: 0, |
|
||||||
items: BI.createItems(this.dateConfig(), { |
|
||||||
type: "bi.multidate_segment", |
|
||||||
height: this.constants.itemHeight |
|
||||||
}), |
|
||||||
layouts: [{ |
|
||||||
type: "bi.vertical" |
|
||||||
}] |
|
||||||
}); |
|
||||||
|
|
||||||
this.radioGroup.on(BI.Controller.EVENT_CHANGE, function (type) { |
|
||||||
if (type === BI.Events.CONFIRM) { |
|
||||||
self.fireEvent(BI.MultiDateCard.EVENT_CHANGE); |
|
||||||
} |
|
||||||
}); |
|
||||||
this.radioGroup.on(BI.ButtonGroup.EVENT_CHANGE, function () { |
|
||||||
self.setValue(self.getValue()); |
|
||||||
self.fireEvent(BI.MultiDateCard.EVENT_CHANGE); |
|
||||||
}); |
|
||||||
BI.createWidget({ |
|
||||||
element: this, |
|
||||||
type: "bi.center_adapt", |
|
||||||
lgap: this.constants.lgap, |
|
||||||
items: [{ |
|
||||||
type: "bi.vertical", |
|
||||||
items: [this.label, this.radioGroup] |
|
||||||
}] |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
getValue: function () { |
|
||||||
var button = this.radioGroup.getSelectedButtons()[0]; |
|
||||||
var type = button.getValue(), value = button.getInputValue(); |
|
||||||
return { |
|
||||||
type: type, |
|
||||||
value: value |
|
||||||
}; |
|
||||||
}, |
|
||||||
|
|
||||||
_isTypeAvaliable: function (type) { |
|
||||||
var res = false; |
|
||||||
BI.find(this.dateConfig(), function (i, item) { |
|
||||||
if (item.value === type) { |
|
||||||
res = true; |
|
||||||
return true; |
|
||||||
} |
|
||||||
}); |
|
||||||
return res; |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
var self = this; |
|
||||||
if (BI.isNotNull(v) && this._isTypeAvaliable(v.type)) { |
|
||||||
this.radioGroup.setValue(v.type); |
|
||||||
BI.each(this.radioGroup.getAllButtons(), function (i, button) { |
|
||||||
if (button.isEditorExist() === true && button.isSelected()) { |
|
||||||
button.setInputValue(v.value); |
|
||||||
} else { |
|
||||||
button.setInputValue(self.constants.defaultEditorValue); |
|
||||||
} |
|
||||||
}); |
|
||||||
} else { |
|
||||||
this.radioGroup.setValue(this.defaultSelectedItem()); |
|
||||||
BI.each(this.radioGroup.getAllButtons(), function (i, button) { |
|
||||||
button.setInputValue(self.constants.defaultEditorValue); |
|
||||||
}); |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
getCalculationValue: function () { |
|
||||||
var valueObject = this.getValue(); |
|
||||||
var type = valueObject.type, value = valueObject.value; |
|
||||||
switch (type) { |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV: |
|
||||||
return BI.getDate().getOffsetDate(-1 * value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER: |
|
||||||
return BI.getDate().getOffsetDate(value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY: |
|
||||||
return BI.getDate(); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV: |
|
||||||
return BI.getDate().getBeforeMultiMonth(value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER: |
|
||||||
return BI.getDate().getAfterMultiMonth(value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN: |
|
||||||
return BI.getDate(BI.getDate().getFullYear(), BI.getDate().getMonth(), 1); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END: |
|
||||||
return BI.getDate(BI.getDate().getFullYear(), BI.getDate().getMonth(), (BI.getDate().getLastDateOfMonth()).getDate()); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV: |
|
||||||
return BI.getDate().getBeforeMulQuarter(value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER: |
|
||||||
return BI.getDate().getAfterMulQuarter(value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN: |
|
||||||
return BI.getDate().getQuarterStartDate(); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END: |
|
||||||
return BI.getDate().getQuarterEndDate(); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV: |
|
||||||
return BI.getDate().getOffsetDate(-7 * value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER: |
|
||||||
return BI.getDate().getOffsetDate(7 * value); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV: |
|
||||||
return BI.getDate((BI.getDate().getFullYear() - 1 * value), BI.getDate().getMonth(), BI.getDate().getDate()); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER: |
|
||||||
return BI.getDate((BI.getDate().getFullYear() + 1 * value), BI.getDate().getMonth(), BI.getDate().getDate()); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN: |
|
||||||
return BI.getDate(BI.getDate().getFullYear(), 0, 1); |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END: |
|
||||||
return BI.getDate(BI.getDate().getFullYear(), 11, 31); |
|
||||||
} |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.MultiDateCard.EVENT_CHANGE = "EVENT_CHANGE"; |
|
@ -1,283 +0,0 @@ |
|||||||
/** |
|
||||||
* 日期控件 |
|
||||||
* @class BI.MultiDateCombo |
|
||||||
* @extends BI.Widget |
|
||||||
*/ |
|
||||||
BI.MultiDateCombo = BI.inherit(BI.Single, { |
|
||||||
constants: { |
|
||||||
popupHeight: 259, |
|
||||||
popupWidth: 270, |
|
||||||
comboAdjustHeight: 1, |
|
||||||
border: 1, |
|
||||||
DATE_MIN_VALUE: "1900-01-01", |
|
||||||
DATE_MAX_VALUE: "2099-12-31" |
|
||||||
}, |
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.MultiDateCombo.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-combo bi-border", |
|
||||||
height: 24 |
|
||||||
}); |
|
||||||
}, |
|
||||||
_init: function () { |
|
||||||
BI.MultiDateCombo.superclass._init.apply(this, arguments); |
|
||||||
var self = this, opts = this.options; |
|
||||||
this.storeTriggerValue = ""; |
|
||||||
var date = BI.getDate(); |
|
||||||
this.storeValue = opts.value; |
|
||||||
this.trigger = BI.createWidget({ |
|
||||||
type: "bi.date_trigger", |
|
||||||
min: this.constants.DATE_MIN_VALUE, |
|
||||||
max: this.constants.DATE_MAX_VALUE, |
|
||||||
value: opts.value |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_KEY_DOWN, function () { |
|
||||||
if (self.combo.isViewVisible()) { |
|
||||||
self.combo.hideView(); |
|
||||||
} |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_STOP, function () { |
|
||||||
if (!self.combo.isViewVisible()) { |
|
||||||
self.combo.showView(); |
|
||||||
} |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK, function () { |
|
||||||
self.combo.toggle(); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_FOCUS, function () { |
|
||||||
self.storeTriggerValue = self.trigger.getKey(); |
|
||||||
if (!self.combo.isViewVisible()) { |
|
||||||
self.combo.showView(); |
|
||||||
} |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_FOCUS); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_ERROR, function () { |
|
||||||
self.storeValue = { |
|
||||||
year: date.getFullYear(), |
|
||||||
month: date.getMonth() |
|
||||||
}; |
|
||||||
self.popup.setValue(); |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_ERROR); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_VALID, function () { |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_VALID); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_CHANGE, function () { |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_CHANGE); |
|
||||||
}); |
|
||||||
this.trigger.on(BI.DateTrigger.EVENT_CONFIRM, function () { |
|
||||||
if (self.combo.isViewVisible()) { |
|
||||||
return; |
|
||||||
} |
|
||||||
var dateStore = self.storeTriggerValue; |
|
||||||
var dateObj = self.trigger.getKey(); |
|
||||||
if (BI.isNotEmptyString(dateObj) && !BI.isEqual(dateObj, dateStore)) { |
|
||||||
self.storeValue = self.trigger.getValue(); |
|
||||||
self.setValue(self.trigger.getValue()); |
|
||||||
} else if (BI.isEmptyString(dateObj)) { |
|
||||||
self.storeValue = null; |
|
||||||
self.trigger.setValue(); |
|
||||||
} |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.popup = BI.createWidget({ |
|
||||||
type: "bi.multidate_popup", |
|
||||||
min: this.constants.DATE_MIN_VALUE, |
|
||||||
max: this.constants.DATE_MAX_VALUE, |
|
||||||
value: opts.value |
|
||||||
}); |
|
||||||
this.popup.on(BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE, function () { |
|
||||||
self.setValue(); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.popup.on(BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE, function () { |
|
||||||
var date = BI.getDate(); |
|
||||||
self.setValue({ |
|
||||||
year: date.getFullYear(), |
|
||||||
month: date.getMonth(), |
|
||||||
day: date.getDate() |
|
||||||
}); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.popup.on(BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE, function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.popup.on(BI.MultiDatePopup.CALENDAR_EVENT_CHANGE, function () { |
|
||||||
self.setValue(self.popup.getValue()); |
|
||||||
self.combo.hideView(); |
|
||||||
// self.fireEvent(BI.MultiDateCombo.EVENT_CHANGE);
|
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM); |
|
||||||
}); |
|
||||||
this.combo = BI.createWidget({ |
|
||||||
type: "bi.combo", |
|
||||||
toggle: false, |
|
||||||
isNeedAdjustHeight: false, |
|
||||||
isNeedAdjustWidth: false, |
|
||||||
el: this.trigger, |
|
||||||
adjustLength: this.constants.comboAdjustHeight, |
|
||||||
popup: { |
|
||||||
el: this.popup, |
|
||||||
width: this.constants.popupWidth, |
|
||||||
stopPropagation: false |
|
||||||
} |
|
||||||
}); |
|
||||||
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { |
|
||||||
self.popup.setValue(self.storeValue); |
|
||||||
self.fireEvent(BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW); |
|
||||||
}); |
|
||||||
|
|
||||||
var triggerBtn = BI.createWidget({ |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "bi-trigger-icon-button date-font", |
|
||||||
width: 24, |
|
||||||
height: 24 |
|
||||||
}); |
|
||||||
triggerBtn.on(BI.TriggerIconButton.EVENT_CHANGE, function () { |
|
||||||
if (self.combo.isViewVisible()) { |
|
||||||
self.combo.hideView(); |
|
||||||
} else { |
|
||||||
self.combo.showView(); |
|
||||||
} |
|
||||||
}); |
|
||||||
this.changeIcon = BI.createWidget({ |
|
||||||
type: "bi.icon_button", |
|
||||||
cls: "bi-trigger-icon-button date-change-h-font", |
|
||||||
width: 24, |
|
||||||
height: 24 |
|
||||||
}); |
|
||||||
|
|
||||||
|
|
||||||
var leftPart = BI.createWidget({ |
|
||||||
type: "bi.absolute", |
|
||||||
items: [{ |
|
||||||
el: this.combo, |
|
||||||
top: 0, |
|
||||||
left: 0, |
|
||||||
right: 0, |
|
||||||
bottom: 0 |
|
||||||
}, { |
|
||||||
el: triggerBtn, |
|
||||||
top: 0, |
|
||||||
left: 0 |
|
||||||
}] |
|
||||||
}); |
|
||||||
|
|
||||||
BI.createWidget({ |
|
||||||
type: "bi.htape", |
|
||||||
element: this, |
|
||||||
items: [leftPart, { |
|
||||||
el: this.changeIcon, |
|
||||||
width: 30 |
|
||||||
}], |
|
||||||
ref: function (_ref) { |
|
||||||
self.comboWrapper = _ref; |
|
||||||
} |
|
||||||
}); |
|
||||||
|
|
||||||
this._checkDynamicValue(opts.value); |
|
||||||
}, |
|
||||||
|
|
||||||
_checkDynamicValue: function (v) { |
|
||||||
var type = null; |
|
||||||
if (BI.isNotNull(v)) { |
|
||||||
type = v.type; |
|
||||||
} |
|
||||||
switch (type) { |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY: |
|
||||||
this.changeIcon.setVisible(true); |
|
||||||
this.comboWrapper.attr("items")[1].width = 30; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
break; |
|
||||||
default: |
|
||||||
this.comboWrapper.attr("items")[1].width = 0; |
|
||||||
this.comboWrapper.resize(); |
|
||||||
this.changeIcon.setVisible(false); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
this.storeValue = v; |
|
||||||
this.popup.setValue(v); |
|
||||||
this.trigger.setValue(v); |
|
||||||
this._checkDynamicValue(v); |
|
||||||
}, |
|
||||||
getValue: function () { |
|
||||||
return this.storeValue; |
|
||||||
}, |
|
||||||
getKey: function () { |
|
||||||
return this.trigger.getKey(); |
|
||||||
}, |
|
||||||
hidePopupView: function () { |
|
||||||
this.combo.hideView(); |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.shortcut("bi.multidate_combo", BI.MultiDateCombo); |
|
||||||
|
|
||||||
BI.MultiDateCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
|
||||||
BI.MultiDateCombo.EVENT_FOCUS = "EVENT_FOCUS"; |
|
||||||
BI.MultiDateCombo.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.MultiDateCombo.EVENT_VALID = "EVENT_VALID"; |
|
||||||
BI.MultiDateCombo.EVENT_ERROR = "EVENT_ERROR"; |
|
||||||
BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW = "BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW"; |
|
||||||
|
|
||||||
BI.extend(BI.MultiDateCombo, { |
|
||||||
MULTI_DATE_YMD_CARD: 1, |
|
||||||
MULTI_DATE_YEAR_CARD: 2, |
|
||||||
MULTI_DATE_QUARTER_CARD: 3, |
|
||||||
MULTI_DATE_MONTH_CARD: 4, |
|
||||||
MULTI_DATE_WEEK_CARD: 5, |
|
||||||
MULTI_DATE_DAY_CARD: 6 |
|
||||||
}); |
|
||||||
|
|
||||||
BI.extend(BI.MultiDateCombo, { |
|
||||||
DATE_TYPE: { |
|
||||||
MULTI_DATE_YEAR_PREV: 1, |
|
||||||
MULTI_DATE_YEAR_AFTER: 2, |
|
||||||
MULTI_DATE_YEAR_BEGIN: 3, |
|
||||||
MULTI_DATE_YEAR_END: 4, |
|
||||||
MULTI_DATE_MONTH_PREV: 5, |
|
||||||
MULTI_DATE_MONTH_AFTER: 6, |
|
||||||
MULTI_DATE_MONTH_BEGIN: 7, |
|
||||||
MULTI_DATE_MONTH_END: 8, |
|
||||||
MULTI_DATE_QUARTER_PREV: 9, |
|
||||||
MULTI_DATE_QUARTER_AFTER: 10, |
|
||||||
MULTI_DATE_QUARTER_BEGIN: 11, |
|
||||||
MULTI_DATE_QUARTER_END: 12, |
|
||||||
MULTI_DATE_WEEK_PREV: 13, |
|
||||||
MULTI_DATE_WEEK_AFTER: 14, |
|
||||||
MULTI_DATE_DAY_PREV: 15, |
|
||||||
MULTI_DATE_DAY_AFTER: 16, |
|
||||||
MULTI_DATE_DAY_TODAY: 17, |
|
||||||
MULTI_DATE_PARAM: 18, |
|
||||||
MULTI_DATE_CALENDAR: 19, |
|
||||||
YEAR_QUARTER: 20, |
|
||||||
YEAR_MONTH: 21, |
|
||||||
YEAR_WEEK: 22, |
|
||||||
YEAR_DAY: 23, |
|
||||||
MONTH_WEEK: 24, |
|
||||||
MONTH_DAY: 25, |
|
||||||
YEAR: 26, |
|
||||||
SAME_PERIOD: 27, |
|
||||||
LAST_SAME_PERIOD: 28 |
|
||||||
} |
|
||||||
}); |
|
@ -1,43 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.DayCard |
|
||||||
* @extends BI.MultiDateCard |
|
||||||
*/ |
|
||||||
BI.DayCard = BI.inherit(BI.MultiDateCard, { |
|
||||||
|
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.DayCard.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-daycard" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.DayCard.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
|
|
||||||
dateConfig: function () { |
|
||||||
return [{ |
|
||||||
isEditorExist: true, |
|
||||||
selected: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Day_Prev"), |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Day_Next"), |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: false, |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Today") |
|
||||||
}]; |
|
||||||
}, |
|
||||||
|
|
||||||
defaultSelectedItem: function () { |
|
||||||
return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.DayCard.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.daycard", BI.DayCard); |
|
@ -1,47 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.MonthCard |
|
||||||
* @extends BI.MultiDateCard |
|
||||||
*/ |
|
||||||
BI.MonthCard = BI.inherit(BI.MultiDateCard, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.MonthCard.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-monthcard" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.MonthCard.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
|
|
||||||
dateConfig: function () { |
|
||||||
return [{ |
|
||||||
selected: true, |
|
||||||
isEditorExist: true, |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Month_Prev") |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: true, |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Month_Next") |
|
||||||
}, |
|
||||||
{ |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN, |
|
||||||
isEditorExist: false, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Month_Begin") |
|
||||||
}, |
|
||||||
{ |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END, |
|
||||||
isEditorExist: false, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Month_End") |
|
||||||
}]; |
|
||||||
}, |
|
||||||
|
|
||||||
defaultSelectedItem: function () { |
|
||||||
return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.MonthCard.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.monthcard", BI.MonthCard); |
|
@ -1,317 +0,0 @@ |
|||||||
/** |
|
||||||
* 日期控件 |
|
||||||
* @class BI.MultiDatePopup |
|
||||||
* @extends BI.Widget |
|
||||||
*/ |
|
||||||
BI.MultiDatePopup = BI.inherit(BI.Widget, { |
|
||||||
constants: { |
|
||||||
tabHeight: 30, |
|
||||||
tabWidth: 42, |
|
||||||
titleHeight: 27, |
|
||||||
itemHeight: 30, |
|
||||||
triggerHeight: 24, |
|
||||||
buttonWidth: 90, |
|
||||||
buttonHeight: 25, |
|
||||||
cardHeight: 229, |
|
||||||
cardWidth: 270, |
|
||||||
popupHeight: 259, |
|
||||||
popupWidth: 270, |
|
||||||
comboAdjustHeight: 1, |
|
||||||
ymdWidth: 58, |
|
||||||
lgap: 2, |
|
||||||
border: 1 |
|
||||||
}, |
|
||||||
_defaultConfig: function () { |
|
||||||
return BI.extend(BI.MultiDatePopup.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-popup", |
|
||||||
height: 344 |
|
||||||
}); |
|
||||||
}, |
|
||||||
_init: function () { |
|
||||||
BI.MultiDatePopup.superclass._init.apply(this, arguments); |
|
||||||
var self = this, opts = this.options; |
|
||||||
this.storeValue = ""; |
|
||||||
this.textButton = BI.createWidget({ |
|
||||||
type: "bi.text_button", |
|
||||||
forceCenter: true, |
|
||||||
cls: "bi-multidate-popup-label bi-border-left bi-border-right bi-border-top", |
|
||||||
shadow: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Today") |
|
||||||
}); |
|
||||||
this.textButton.on(BI.TextButton.EVENT_CHANGE, function () { |
|
||||||
self.fireEvent(BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE); |
|
||||||
}); |
|
||||||
this.clearButton = BI.createWidget({ |
|
||||||
type: "bi.text_button", |
|
||||||
forceCenter: true, |
|
||||||
cls: "bi-multidate-popup-button bi-border-top", |
|
||||||
shadow: true, |
|
||||||
text: BI.i18nText("BI-Basic_Clear") |
|
||||||
}); |
|
||||||
this.clearButton.on(BI.TextButton.EVENT_CHANGE, function () { |
|
||||||
self.fireEvent(BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE); |
|
||||||
}); |
|
||||||
this.okButton = BI.createWidget({ |
|
||||||
type: "bi.text_button", |
|
||||||
forceCenter: true, |
|
||||||
cls: "bi-multidate-popup-button bi-border-top", |
|
||||||
shadow: true, |
|
||||||
text: BI.i18nText("BI-Basic_OK") |
|
||||||
}); |
|
||||||
this.okButton.on(BI.TextButton.EVENT_CHANGE, function () { |
|
||||||
self.fireEvent(BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE); |
|
||||||
}); |
|
||||||
this.dateTab = BI.createWidget({ |
|
||||||
type: "bi.tab", |
|
||||||
tab: { |
|
||||||
cls: "bi-border-bottom", |
|
||||||
height: this.constants.tabHeight, |
|
||||||
items: BI.createItems([{ |
|
||||||
text: BI.i18nText("BI-Multi_Date_YMD"), |
|
||||||
value: BI.MultiDateCombo.MULTI_DATE_YMD_CARD, |
|
||||||
width: this.constants.ymdWidth |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Multi_Date_Year"), |
|
||||||
value: BI.MultiDateCombo.MULTI_DATE_YEAR_CARD |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Multi_Date_Quarter"), |
|
||||||
value: BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Multi_Date_Month"), |
|
||||||
value: BI.MultiDateCombo.MULTI_DATE_MONTH_CARD |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Multi_Date_Week"), |
|
||||||
value: BI.MultiDateCombo.MULTI_DATE_WEEK_CARD |
|
||||||
}, { |
|
||||||
text: BI.i18nText("BI-Multi_Date_Day"), |
|
||||||
value: BI.MultiDateCombo.MULTI_DATE_DAY_CARD |
|
||||||
}], { |
|
||||||
width: this.constants.tabWidth, |
|
||||||
textAlign: "center", |
|
||||||
height: this.constants.itemHeight, |
|
||||||
cls: "bi-multidate-popup-item bi-list-item-active" |
|
||||||
}), |
|
||||||
layouts: [{ |
|
||||||
type: "bi.left" |
|
||||||
}] |
|
||||||
}, |
|
||||||
cardCreator: function (v) { |
|
||||||
switch (v) { |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_YMD_CARD: |
|
||||||
self.ymd = BI.createWidget({ |
|
||||||
type: "bi.date_calendar_popup", |
|
||||||
min: self.options.min, |
|
||||||
max: self.options.max |
|
||||||
}); |
|
||||||
self.ymd.on(BI.DateCalendarPopup.EVENT_CHANGE, function () { |
|
||||||
self.fireEvent(BI.MultiDatePopup.CALENDAR_EVENT_CHANGE); |
|
||||||
}); |
|
||||||
return self.ymd; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD: |
|
||||||
self.year = BI.createWidget({ |
|
||||||
type: "bi.yearcard" |
|
||||||
}); |
|
||||||
self.year.on(BI.MultiDateCard.EVENT_CHANGE, function (v) { |
|
||||||
self._setInnerValue(self.year, v); |
|
||||||
}); |
|
||||||
return self.year; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD: |
|
||||||
self.quarter = BI.createWidget({ |
|
||||||
type: "bi.quartercard" |
|
||||||
}); |
|
||||||
self.quarter.on(BI.MultiDateCard.EVENT_CHANGE, function (v) { |
|
||||||
self._setInnerValue(self.quarter, v); |
|
||||||
}); |
|
||||||
return self.quarter; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD: |
|
||||||
self.month = BI.createWidget({ |
|
||||||
type: "bi.monthcard" |
|
||||||
}); |
|
||||||
self.month.on(BI.MultiDateCard.EVENT_CHANGE, function (v) { |
|
||||||
self._setInnerValue(self.month, v); |
|
||||||
}); |
|
||||||
return self.month; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD: |
|
||||||
self.week = BI.createWidget({ |
|
||||||
type: "bi.weekcard" |
|
||||||
}); |
|
||||||
self.week.on(BI.MultiDateCard.EVENT_CHANGE, function (v) { |
|
||||||
self._setInnerValue(self.week, v); |
|
||||||
}); |
|
||||||
return self.week; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_DAY_CARD: |
|
||||||
self.day = BI.createWidget({ |
|
||||||
type: "bi.daycard" |
|
||||||
}); |
|
||||||
self.day.on(BI.MultiDateCard.EVENT_CHANGE, function (v) { |
|
||||||
self._setInnerValue(self.day, v); |
|
||||||
}); |
|
||||||
return self.day; |
|
||||||
} |
|
||||||
} |
|
||||||
}); |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD); |
|
||||||
this.cur = BI.MultiDateCombo.MULTI_DATE_YMD_CARD; |
|
||||||
this.dateTab.on(BI.Tab.EVENT_CHANGE, function () { |
|
||||||
var v = self.dateTab.getSelect(); |
|
||||||
switch (v) { |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_YMD_CARD: |
|
||||||
var date = this.getTab(self.cur).getCalculationValue(); |
|
||||||
self.ymd.setValue({ |
|
||||||
year: date.getFullYear(), |
|
||||||
month: date.getMonth(), |
|
||||||
day: date.getDate() |
|
||||||
}); |
|
||||||
self._setInnerValue(self.ymd); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD: |
|
||||||
self.year.setValue(self.storeValue); |
|
||||||
self._setInnerValue(self.year); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD: |
|
||||||
self.quarter.setValue(self.storeValue); |
|
||||||
self._setInnerValue(self.quarter); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD: |
|
||||||
self.month.setValue(self.storeValue); |
|
||||||
self._setInnerValue(self.month); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD: |
|
||||||
self.week.setValue(self.storeValue); |
|
||||||
self._setInnerValue(self.week); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_DAY_CARD: |
|
||||||
self.day.setValue(self.storeValue); |
|
||||||
self._setInnerValue(self.day); |
|
||||||
break; |
|
||||||
} |
|
||||||
self.cur = v; |
|
||||||
}); |
|
||||||
this.dateButton = BI.createWidget({ |
|
||||||
type: "bi.grid", |
|
||||||
items: [[this.clearButton, this.textButton, this.okButton]] |
|
||||||
}); |
|
||||||
BI.createWidget({ |
|
||||||
element: this, |
|
||||||
type: "bi.vtape", |
|
||||||
items: [{ |
|
||||||
el: this.dateTab |
|
||||||
}, { |
|
||||||
el: this.dateButton, |
|
||||||
height: 30 |
|
||||||
}] |
|
||||||
}); |
|
||||||
this.setValue(opts.value); |
|
||||||
}, |
|
||||||
_setInnerValue: function (obj) { |
|
||||||
if (this.dateTab.getSelect() === BI.MultiDateCombo.MULTI_DATE_YMD_CARD) { |
|
||||||
this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")); |
|
||||||
this.textButton.setEnable(true); |
|
||||||
} else { |
|
||||||
var date = obj.getCalculationValue(); |
|
||||||
date = date.print("%Y-%x-%e"); |
|
||||||
this.textButton.setValue(date); |
|
||||||
this.textButton.setEnable(false); |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
_checkValueValid: function (value) { |
|
||||||
return BI.isNull(value) || BI.isEmptyObject(value) || BI.isEmptyString(value); |
|
||||||
}, |
|
||||||
|
|
||||||
setValue: function (v) { |
|
||||||
this.storeValue = v; |
|
||||||
var self = this, date; |
|
||||||
var type, value; |
|
||||||
if (BI.isNotNull(v)) { |
|
||||||
type = v.type || BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_CALENDAR; |
|
||||||
value = v.value; |
|
||||||
if (BI.isNull(value)) { |
|
||||||
value = v; |
|
||||||
} |
|
||||||
} |
|
||||||
switch (type) { |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END: |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YEAR_CARD); |
|
||||||
this.year.setValue({type: type, value: value}); |
|
||||||
this.cur = BI.MultiDateCombo.MULTI_DATE_YEAR_CARD; |
|
||||||
self._setInnerValue(this.year); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END: |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD); |
|
||||||
this.cur = BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD; |
|
||||||
this.quarter.setValue({type: type, value: value}); |
|
||||||
self._setInnerValue(this.quarter); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END: |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_MONTH_CARD); |
|
||||||
this.cur = BI.MultiDateCombo.MULTI_DATE_MONTH_CARD; |
|
||||||
this.month.setValue({type: type, value: value}); |
|
||||||
self._setInnerValue(this.month); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER: |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_WEEK_CARD); |
|
||||||
this.cur = BI.MultiDateCombo.MULTI_DATE_WEEK_CARD; |
|
||||||
this.week.setValue({type: type, value: value}); |
|
||||||
self._setInnerValue(this.week); |
|
||||||
break; |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER: |
|
||||||
case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY: |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_DAY_CARD); |
|
||||||
this.cur = BI.MultiDateCombo.MULTI_DATE_DAY_CARD; |
|
||||||
this.day.setValue({type: type, value: value}); |
|
||||||
self._setInnerValue(this.day); |
|
||||||
break; |
|
||||||
default: |
|
||||||
if (this._checkValueValid(value)) { |
|
||||||
var date = BI.getDate(); |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD); |
|
||||||
this.ymd.setValue({ |
|
||||||
year: date.getFullYear(), |
|
||||||
month: date.getMonth(), |
|
||||||
day: date.getDate() |
|
||||||
}); |
|
||||||
this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")); |
|
||||||
} else { |
|
||||||
this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD); |
|
||||||
this.ymd.setValue(value); |
|
||||||
this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")); |
|
||||||
} |
|
||||||
this.textButton.setEnable(true); |
|
||||||
break; |
|
||||||
} |
|
||||||
}, |
|
||||||
getValue: function () { |
|
||||||
var tab = this.dateTab.getSelect(); |
|
||||||
switch (tab) { |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_YMD_CARD: |
|
||||||
return this.ymd.getValue(); |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD: |
|
||||||
return this.year.getValue(); |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD: |
|
||||||
return this.quarter.getValue(); |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD: |
|
||||||
return this.month.getValue(); |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD: |
|
||||||
return this.week.getValue(); |
|
||||||
case BI.MultiDateCombo.MULTI_DATE_DAY_CARD: |
|
||||||
return this.day.getValue(); |
|
||||||
} |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE = "BUTTON_OK_EVENT_CHANGE"; |
|
||||||
BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE = "BUTTON_lABEL_EVENT_CHANGE"; |
|
||||||
BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE"; |
|
||||||
BI.MultiDatePopup.CALENDAR_EVENT_CHANGE = "CALENDAR_EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.multidate_popup", BI.MultiDatePopup); |
|
@ -1,48 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.QuarterCard |
|
||||||
* @extends BI.MultiDateCard |
|
||||||
*/ |
|
||||||
BI.QuarterCard = BI.inherit(BI.MultiDateCard, { |
|
||||||
|
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.QuarterCard.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-quartercard" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.QuarterCard.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
|
|
||||||
dateConfig: function () { |
|
||||||
return [{ |
|
||||||
selected: true, |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV, |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Quarter_Prev") |
|
||||||
}, |
|
||||||
{ |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER, |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Quarter_Next") |
|
||||||
}, |
|
||||||
{ |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN, |
|
||||||
isEditorExist: false, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Quarter_Begin") |
|
||||||
}, |
|
||||||
{ |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END, |
|
||||||
isEditorExist: false, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Quarter_End") |
|
||||||
}]; |
|
||||||
}, |
|
||||||
|
|
||||||
defaultSelectedItem: function () { |
|
||||||
return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.QuarterCard.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.quartercard", BI.QuarterCard); |
|
@ -1,127 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.MultiDateSegment |
|
||||||
* @extends BI.Single |
|
||||||
*/ |
|
||||||
BI.MultiDateSegment = BI.inherit(BI.Single, { |
|
||||||
constants: { |
|
||||||
itemHeight: 24, |
|
||||||
maxGap: 15, |
|
||||||
minGap: 10, |
|
||||||
textWidth: 60, |
|
||||||
defaultEditorValue: "1" |
|
||||||
}, |
|
||||||
|
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.MultiDateSegment.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-segment", |
|
||||||
text: "", |
|
||||||
height: 30, |
|
||||||
isEditorExist: true, |
|
||||||
selected: false, |
|
||||||
defaultEditorValue: "1" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.MultiDateSegment.superclass._init.apply(this, arguments); |
|
||||||
var self = this, opts = this.options; |
|
||||||
this.radio = BI.createWidget({ |
|
||||||
type: "bi.radio", |
|
||||||
selected: opts.selected |
|
||||||
}); |
|
||||||
this.radio.on(BI.Controller.EVENT_CHANGE, function (v) { |
|
||||||
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); |
|
||||||
}); |
|
||||||
this.textEditor = BI.createWidget({ |
|
||||||
type: "bi.text_editor", |
|
||||||
value: this.constants.defaultEditorValue, |
|
||||||
title: function () { |
|
||||||
return self.textEditor.getValue(); |
|
||||||
}, |
|
||||||
tipType: "success", |
|
||||||
cls: "bi-multidate-editor", |
|
||||||
width: this.constants.textWidth, |
|
||||||
height: this.constants.itemHeight |
|
||||||
}); |
|
||||||
this.textEditor.on(BI.Controller.EVENT_CHANGE, function (v) { |
|
||||||
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); |
|
||||||
}); |
|
||||||
this.text = BI.createWidget({ |
|
||||||
type: "bi.label", |
|
||||||
textAlign: "left", |
|
||||||
cls: "bi-multidate-normal-label", |
|
||||||
text: opts.text, |
|
||||||
height: this.constants.itemHeight |
|
||||||
}); |
|
||||||
this._createSegment(); |
|
||||||
}, |
|
||||||
_createSegment: function () { |
|
||||||
if (this.options.isEditorExist === true) { |
|
||||||
return BI.createWidget({ |
|
||||||
element: this, |
|
||||||
type: "bi.left", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.center_adapt", |
|
||||||
items: [this.radio], |
|
||||||
height: this.constants.itemHeight |
|
||||||
}, |
|
||||||
lgap: 0 |
|
||||||
}, |
|
||||||
{ |
|
||||||
el: { |
|
||||||
type: "bi.center_adapt", |
|
||||||
items: [this.textEditor], |
|
||||||
widgetName: "textEditor" |
|
||||||
}, |
|
||||||
lgap: this.constants.maxGap |
|
||||||
}, |
|
||||||
{ |
|
||||||
el: this.text, |
|
||||||
lgap: this.constants.minGap |
|
||||||
}] |
|
||||||
}); |
|
||||||
} |
|
||||||
return BI.createWidget({ |
|
||||||
element: this, |
|
||||||
type: "bi.left", |
|
||||||
items: [{ |
|
||||||
el: { |
|
||||||
type: "bi.center_adapt", |
|
||||||
items: [this.radio], |
|
||||||
height: this.constants.itemHeight |
|
||||||
}, |
|
||||||
lgap: 0 |
|
||||||
}, |
|
||||||
{ |
|
||||||
el: this.text, |
|
||||||
lgap: this.constants.maxGap |
|
||||||
}] |
|
||||||
}); |
|
||||||
}, |
|
||||||
setSelected: function (v) { |
|
||||||
if (BI.isNotNull(this.radio)) { |
|
||||||
this.radio.setSelected(v); |
|
||||||
this.textEditor.setEnable(v); |
|
||||||
} |
|
||||||
}, |
|
||||||
isSelected: function () { |
|
||||||
return this.radio.isSelected(); |
|
||||||
}, |
|
||||||
getValue: function () { |
|
||||||
return this.options.value; |
|
||||||
}, |
|
||||||
getInputValue: function () { |
|
||||||
return this.textEditor.getValue() | 0; |
|
||||||
}, |
|
||||||
setInputValue: function (v) { |
|
||||||
this.textEditor.setValue(v); |
|
||||||
}, |
|
||||||
isEditorExist: function () { |
|
||||||
return this.options.isEditorExist; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.MultiDateSegment.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.multidate_segment", BI.MultiDateSegment); |
|
@ -1,37 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.WeekCard |
|
||||||
* @extends BI.MultiDateCard |
|
||||||
*/ |
|
||||||
BI.WeekCard = BI.inherit(BI.MultiDateCard, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.WeekCard.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-weekcard" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.WeekCard.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
|
|
||||||
dateConfig: function () { |
|
||||||
return [{ |
|
||||||
selected: true, |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Week_Prev"), |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Week_Next"), |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER |
|
||||||
}]; |
|
||||||
}, |
|
||||||
|
|
||||||
defaultSelectedItem: function () { |
|
||||||
return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.WeekCard.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.weekcard", BI.WeekCard); |
|
@ -1,47 +0,0 @@ |
|||||||
/** |
|
||||||
* 普通控件 |
|
||||||
* |
|
||||||
* @class BI.YearCard |
|
||||||
* @extends BI.MultiDateCard |
|
||||||
*/ |
|
||||||
BI.YearCard = BI.inherit(BI.MultiDateCard, { |
|
||||||
_defaultConfig: function () { |
|
||||||
return $.extend(BI.YearCard.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-multidate-yearcard" |
|
||||||
}); |
|
||||||
}, |
|
||||||
|
|
||||||
_init: function () { |
|
||||||
BI.YearCard.superclass._init.apply(this, arguments); |
|
||||||
}, |
|
||||||
|
|
||||||
dateConfig: function () { |
|
||||||
return [{ |
|
||||||
selected: true, |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Year_Prev"), |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: true, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Year_Next"), |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: false, |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Year_Begin") |
|
||||||
}, |
|
||||||
{ |
|
||||||
isEditorExist: false, |
|
||||||
value: BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END, |
|
||||||
text: BI.i18nText("BI-Multi_Date_Year_End") |
|
||||||
}]; |
|
||||||
}, |
|
||||||
|
|
||||||
defaultSelectedItem: function () { |
|
||||||
return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV; |
|
||||||
} |
|
||||||
}); |
|
||||||
BI.YearCard.EVENT_CHANGE = "EVENT_CHANGE"; |
|
||||||
BI.shortcut("bi.yearcard", BI.YearCard); |
|
@ -1,73 +1,170 @@ |
|||||||
/** |
BI.DynamicYearMonthCombo = BI.inherit(BI.Single, { |
||||||
* 年份 + 月份下拉框 |
|
||||||
* |
props: { |
||||||
* @class BI.YearMonthCombo |
baseCls: "bi-year-month-combo bi-border", |
||||||
* @extends BI.Widget |
behaviors: {}, |
||||||
*/ |
min: "1900-01-01", // 最小日期
|
||||||
BI.YearMonthCombo = BI.inherit(BI.Widget, { |
max: "2099-12-31", // 最大日期
|
||||||
_defaultConfig: function () { |
height: 24 |
||||||
return BI.extend(BI.YearMonthCombo.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-year-month-combo", |
|
||||||
yearBehaviors: {}, |
|
||||||
monthBehaviors: {}, |
|
||||||
height: 25 |
|
||||||
}); |
|
||||||
}, |
}, |
||||||
|
|
||||||
_init: function () { |
_init: function () { |
||||||
BI.YearMonthCombo.superclass._init.apply(this, arguments); |
BI.DynamicYearMonthCombo.superclass._init.apply(this, arguments); |
||||||
var self = this, o = this.options; |
var self = this, o = this.options; |
||||||
|
this.storeValue = o.value; |
||||||
o.value = o.value || {}; |
this.trigger = BI.createWidget({ |
||||||
|
type: "bi.dynamic_year_month_trigger", |
||||||
this.year = BI.createWidget({ |
min: o.min, |
||||||
type: "bi.year_combo", |
max: o.max, |
||||||
behaviors: o.yearBehaviors, |
value: o.value || "" |
||||||
value: o.value.year |
|
||||||
}); |
}); |
||||||
|
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_START, function () { |
||||||
this.month = BI.createWidget({ |
self.combo.isViewVisible() && self.combo.hideView(); |
||||||
type: "bi.month_combo", |
|
||||||
behaviors: o.monthBehaviors, |
|
||||||
value: o.value.month |
|
||||||
}); |
}); |
||||||
|
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_STOP, function () { |
||||||
this.year.on(BI.YearCombo.EVENT_CONFIRM, function () { |
self.combo.showView(); |
||||||
self.fireEvent(BI.YearMonthCombo.EVENT_CONFIRM); |
}); |
||||||
|
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_ERROR, function () { |
||||||
|
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.year.on(BI.YearCombo.EVENT_BEFORE_POPUPVIEW, function () { |
this.trigger.on(BI.DynamicYearMonthTrigger.EVENT_CONFIRM, function () { |
||||||
self.fireEvent(BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW); |
if (self.combo.isViewVisible()) { |
||||||
|
return; |
||||||
|
} |
||||||
|
self.storeValue = self.trigger.getValue(); |
||||||
|
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); |
||||||
|
}); |
||||||
|
this.trigger.on(BI.DynamicYearMonthCombo.EVENT_FOCUS, function () { |
||||||
|
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_FOCUS); |
||||||
}); |
}); |
||||||
|
|
||||||
this.month.on(BI.MonthCombo.EVENT_CONFIRM, function () { |
this.combo = BI.createWidget({ |
||||||
self.getValue(); |
type: "bi.combo", |
||||||
self.fireEvent(BI.YearMonthCombo.EVENT_CONFIRM); |
isNeedAdjustHeight: false, |
||||||
|
isNeedAdjustWidth: false, |
||||||
|
el: this.trigger, |
||||||
|
popup: { |
||||||
|
minWidth: 85, |
||||||
|
stopPropagation: false, |
||||||
|
el: { |
||||||
|
type: "bi.dynamic_year_month_popup", |
||||||
|
ref: function () { |
||||||
|
self.popup = this; |
||||||
|
}, |
||||||
|
listeners: [{ |
||||||
|
eventName: BI.DynamicYearMonthPopup.EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
self.setValue(self.popup.getValue()); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}, { |
||||||
|
eventName: BI.DynamicYearMonthPopup.BUTTON_CLEAR_EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
self.setValue(); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}, { |
||||||
|
eventName: BI.DynamicYearMonthPopup.BUTTON_lABEL_EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
var date = BI.getDate(); |
||||||
|
self.setValue({year: date.getFullYear()}); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}, { |
||||||
|
eventName: BI.DynamicYearMonthPopup.BUTTON_OK_EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
self.setValue(self.popup.getValue()); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}], |
||||||
|
behaviors: o.behaviors, |
||||||
|
min: o.min, |
||||||
|
max: o.max |
||||||
|
}, |
||||||
|
value: o.value || "" |
||||||
|
} |
||||||
}); |
}); |
||||||
this.month.on(BI.MonthCombo.EVENT_BEFORE_POPUPVIEW, function () { |
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { |
||||||
self.fireEvent(BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW); |
self.popup.setValue(self.storeValue); |
||||||
|
self.fireEvent(BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW); |
||||||
}); |
}); |
||||||
|
|
||||||
BI.createWidget({ |
BI.createWidget({ |
||||||
type: "bi.center", |
type: "bi.htape", |
||||||
element: this, |
element: this, |
||||||
hgap: 5, |
ref: function () { |
||||||
items: [this.year, this.month] |
self.comboWrapper = this; |
||||||
|
}, |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "bi-trigger-icon-button date-change-h-font", |
||||||
|
width: 24, |
||||||
|
height: 24, |
||||||
|
ref: function () { |
||||||
|
self.changeIcon = this; |
||||||
|
} |
||||||
|
}, |
||||||
|
width: 24 |
||||||
|
}, this.combo] |
||||||
}); |
}); |
||||||
|
this._checkDynamicValue(o.value); |
||||||
|
}, |
||||||
|
|
||||||
|
_checkDynamicValue: function (v) { |
||||||
|
var type = null; |
||||||
|
if (BI.isNotNull(v)) { |
||||||
|
type = v.type; |
||||||
|
} |
||||||
|
switch (type) { |
||||||
|
case BI.DynamicYearMonthCombo.Dynamic: |
||||||
|
this.changeIcon.setVisible(true); |
||||||
|
this.comboWrapper.attr("items")[0].width = 24; |
||||||
|
this.comboWrapper.resize(); |
||||||
|
break; |
||||||
|
default: |
||||||
|
this.comboWrapper.attr("items")[0].width = 0; |
||||||
|
this.comboWrapper.resize(); |
||||||
|
this.changeIcon.setVisible(false); |
||||||
|
break; |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
hideView: function () { |
||||||
|
this.combo.hideView(); |
||||||
}, |
}, |
||||||
|
|
||||||
setValue: function (v) { |
setValue: function (v) { |
||||||
v = v || {}; |
this.storeValue = v; |
||||||
this.month.setValue(v.month); |
this.trigger.setValue(v); |
||||||
this.year.setValue(v.year); |
this._checkDynamicValue(v); |
||||||
}, |
}, |
||||||
|
|
||||||
getValue: function () { |
getValue: function () { |
||||||
return { |
return this.storeValue; |
||||||
year: this.year.getValue(), |
}, |
||||||
month: this.month.getValue() |
|
||||||
}; |
getKey: function () { |
||||||
|
return this.trigger.getKey(); |
||||||
} |
} |
||||||
|
|
||||||
}); |
}); |
||||||
BI.YearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
BI.DynamicYearMonthCombo.EVENT_ERROR = "EVENT_ERROR"; |
||||||
BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
BI.DynamicYearMonthCombo.EVENT_VALID = "EVENT_VALID"; |
||||||
BI.shortcut("bi.year_month_combo", BI.YearMonthCombo); |
BI.DynamicYearMonthCombo.EVENT_FOCUS = "EVENT_FOCUS"; |
||||||
|
BI.DynamicYearMonthCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
||||||
|
BI.DynamicYearMonthCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
||||||
|
BI.shortcut("bi.dynamic_year_month_combo", BI.DynamicYearMonthCombo); |
||||||
|
|
||||||
|
BI.extend(BI.DynamicYearMonthCombo, { |
||||||
|
Static: 1, |
||||||
|
Dynamic: 2 |
||||||
|
}); |
@ -1,72 +1,152 @@ |
|||||||
/** |
BI.DynamicYearQuarterCombo = BI.inherit(BI.Widget, { |
||||||
* 年份 + 月份下拉框 |
|
||||||
* |
props: { |
||||||
* @class BI.YearQuarterCombo |
baseCls: "bi-year-quarter-combo bi-border", |
||||||
* @extends BI.Widget |
behaviors: {}, |
||||||
*/ |
min: "1900-01-01", // 最小日期
|
||||||
BI.YearQuarterCombo = BI.inherit(BI.Widget, { |
max: "2099-12-31", // 最大日期
|
||||||
_defaultConfig: function () { |
height: 24 |
||||||
return BI.extend(BI.YearQuarterCombo.superclass._defaultConfig.apply(this, arguments), { |
|
||||||
baseCls: "bi-year-quarter-combo", |
|
||||||
yearBehaviors: {}, |
|
||||||
quarterBehaviors: {}, |
|
||||||
height: 25 |
|
||||||
}); |
|
||||||
}, |
}, |
||||||
|
|
||||||
_init: function () { |
_init: function () { |
||||||
BI.YearQuarterCombo.superclass._init.apply(this, arguments); |
BI.DynamicYearQuarterCombo.superclass._init.apply(this, arguments); |
||||||
var self = this, o = this.options; |
var self = this, o = this.options; |
||||||
|
this.storeValue = o.value; |
||||||
o.value = o.value || {}; |
this.trigger = BI.createWidget({ |
||||||
|
type: "bi.dynamic_year_quarter_trigger", |
||||||
this.year = BI.createWidget({ |
min: o.min, |
||||||
type: "bi.year_combo", |
max: o.max, |
||||||
behaviors: o.yearBehaviors, |
value: o.value || "" |
||||||
value: o.value.year |
|
||||||
}); |
}); |
||||||
|
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_START, function () { |
||||||
this.quarter = BI.createWidget({ |
self.combo.isViewVisible() && self.combo.hideView(); |
||||||
type: "bi.quarter_combo", |
|
||||||
behaviors: o.quarterBehaviors, |
|
||||||
value: o.value.quarter |
|
||||||
}); |
}); |
||||||
|
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_STOP, function () { |
||||||
this.year.on(BI.YearCombo.EVENT_CONFIRM, function () { |
self.combo.showView(); |
||||||
self.fireEvent(BI.YearQuarterCombo.EVENT_CONFIRM); |
}); |
||||||
|
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_ERROR, function () { |
||||||
|
self.combo.isViewVisible() && self.combo.hideView(); |
||||||
}); |
}); |
||||||
this.year.on(BI.YearCombo.EVENT_BEFORE_POPUPVIEW, function () { |
this.trigger.on(BI.DynamicYearQuarterTrigger.EVENT_CONFIRM, function () { |
||||||
self.fireEvent(BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW); |
if (self.combo.isViewVisible()) { |
||||||
|
return; |
||||||
|
} |
||||||
|
self.storeValue = self.trigger.getValue(); |
||||||
|
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM); |
||||||
}); |
}); |
||||||
|
|
||||||
this.quarter.on(BI.QuarterCombo.EVENT_CONFIRM, function () { |
this.combo = BI.createWidget({ |
||||||
self.fireEvent(BI.YearQuarterCombo.EVENT_CONFIRM); |
type: "bi.combo", |
||||||
|
isNeedAdjustHeight: false, |
||||||
|
isNeedAdjustWidth: false, |
||||||
|
el: this.trigger, |
||||||
|
popup: { |
||||||
|
minWidth: 85, |
||||||
|
stopPropagation: false, |
||||||
|
el: { |
||||||
|
type: "bi.dynamic_year_quarter_popup", |
||||||
|
ref: function () { |
||||||
|
self.popup = this; |
||||||
|
}, |
||||||
|
listeners: [{ |
||||||
|
eventName: BI.DynamicYearQuarterPopup.EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
self.setValue(self.popup.getValue()); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}, { |
||||||
|
eventName: BI.DynamicYearQuarterPopup.BUTTON_CLEAR_EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
self.setValue(); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}, { |
||||||
|
eventName: BI.DynamicYearQuarterPopup.BUTTON_lABEL_EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
var date = BI.getDate(); |
||||||
|
self.setValue({year: date.getFullYear()}); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}, { |
||||||
|
eventName: BI.DynamicYearQuarterPopup.BUTTON_OK_EVENT_CHANGE, |
||||||
|
action: function () { |
||||||
|
self.setValue(self.popup.getValue()); |
||||||
|
self.combo.hideView(); |
||||||
|
self.fireEvent(BI.DynamicDateCombo.EVENT_CONFIRM); |
||||||
|
} |
||||||
|
}], |
||||||
|
behaviors: o.behaviors, |
||||||
|
min: o.min, |
||||||
|
max: o.max |
||||||
|
}, |
||||||
|
value: o.value || "" |
||||||
|
} |
||||||
}); |
}); |
||||||
this.quarter.on(BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW, function () { |
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { |
||||||
self.fireEvent(BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW); |
self.popup.setValue(self.storeValue); |
||||||
|
self.fireEvent(BI.DynamicYearQuarterCombo.EVENT_BEFORE_POPUPVIEW); |
||||||
}); |
}); |
||||||
|
|
||||||
BI.createWidget({ |
BI.createWidget({ |
||||||
type: "bi.center", |
type: "bi.htape", |
||||||
element: this, |
element: this, |
||||||
hgap: 5, |
ref: function () { |
||||||
items: [this.year, this.quarter] |
self.comboWrapper = this; |
||||||
|
}, |
||||||
|
items: [{ |
||||||
|
el: { |
||||||
|
type: "bi.icon_button", |
||||||
|
cls: "bi-trigger-icon-button date-change-h-font", |
||||||
|
width: 24, |
||||||
|
height: 24, |
||||||
|
ref: function () { |
||||||
|
self.changeIcon = this; |
||||||
|
} |
||||||
|
}, |
||||||
|
width: 24 |
||||||
|
}, this.combo] |
||||||
}); |
}); |
||||||
|
this._checkDynamicValue(o.value); |
||||||
|
}, |
||||||
|
|
||||||
|
_checkDynamicValue: function (v) { |
||||||
|
var type = null; |
||||||
|
if (BI.isNotNull(v)) { |
||||||
|
type = v.type; |
||||||
|
} |
||||||
|
switch (type) { |
||||||
|
case BI.DynamicYearQuarterCombo.Dynamic: |
||||||
|
this.changeIcon.setVisible(true); |
||||||
|
this.comboWrapper.attr("items")[0].width = 24; |
||||||
|
this.comboWrapper.resize(); |
||||||
|
break; |
||||||
|
default: |
||||||
|
this.comboWrapper.attr("items")[0].width = 0; |
||||||
|
this.comboWrapper.resize(); |
||||||
|
this.changeIcon.setVisible(false); |
||||||
|
break; |
||||||
|
} |
||||||
}, |
}, |
||||||
|
|
||||||
setValue: function (v) { |
setValue: function (v) { |
||||||
v = v || {}; |
this.storeValue = v; |
||||||
this.quarter.setValue(v.quarter); |
this.trigger.setValue(v); |
||||||
this.year.setValue(v.year); |
this._checkDynamicValue(v); |
||||||
}, |
}, |
||||||
|
|
||||||
getValue: function () { |
getValue: function () { |
||||||
return { |
return this.storeValue; |
||||||
year: this.year.getValue(), |
|
||||||
quarter: this.quarter.getValue() |
|
||||||
}; |
|
||||||
} |
} |
||||||
|
|
||||||
}); |
}); |
||||||
BI.YearQuarterCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
BI.DynamicYearQuarterCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; |
||||||
BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
BI.DynamicYearQuarterCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; |
||||||
BI.shortcut("bi.year_quarter_combo", BI.YearQuarterCombo); |
BI.shortcut("bi.dynamic_year_quarter_combo", BI.DynamicYearQuarterCombo); |
||||||
|
|
||||||
|
BI.extend(BI.DynamicYearQuarterCombo, { |
||||||
|
Static: 1, |
||||||
|
Dynamic: 2 |
||||||
|
}); |
Loading…
Reference in new issue