fineui是帆软报表和BI产品线所使用的前端框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

102 lines
3.6 KiB

import { shortcut, Widget, i18nText, CenterAdaptLayout, GridLayout, isNull, isEmptyObject, isEmptyString } from "@/core";
import { TextButton } from "@/base";
import { DynamicDateTimeSelect } from "../dynamicdatetime";
@shortcut()
export class TimePopup extends Widget {
static xtype = "bi.time_popup"
props = {
baseCls: "bi-date-time-popup",
height: 68,
};
static BUTTON_OK_EVENT_CHANGE = "BUTTON_OK_EVENT_CHANGE"
static BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE"
static BUTTON_NOW_EVENT_CHANGE = "BUTTON_NOW_EVENT_CHANGE"
static CALENDAR_EVENT_CHANGE = "CALENDAR_EVENT_CHANGE"
render() {
const o = this.options;
return {
type: "bi.vtape",
items: [{
el: {
type: CenterAdaptLayout.xtype,
cls: "bi-split-top",
items: [{
type: DynamicDateTimeSelect.xtype,
value: o.value,
ref: _ref => {
this.timeSelect = _ref;
},
}],
},
hgap: 10,
height: 44,
}, {
el: {
type: GridLayout.xtype,
items: [
[{
type: TextButton.xtype,
cls: "bi-high-light bi-split-top",
shadow: true,
text: i18nText("BI-Basic_Clears"),
listeners: [{
eventName: TextButton.EVENT_CHANGE,
action: () => {
this.fireEvent(TimePopup.BUTTON_CLEAR_EVENT_CHANGE);
},
}],
}, {
type: TextButton.xtype,
cls: "bi-split-left bi-split-right bi-high-light bi-split-top",
shadow: true,
text: i18nText("BI-Basic_Now"),
listeners: [{
eventName: TextButton.EVENT_CHANGE,
action: () => {
this.fireEvent(TimePopup.BUTTON_NOW_EVENT_CHANGE);
},
}],
}, {
type: TextButton.xtype,
cls: "bi-high-light bi-split-top",
shadow: true,
text: i18nText("BI-Basic_OK"),
listeners: [{
eventName: TextButton.EVENT_CHANGE,
action: () => {
this.fireEvent(TimePopup.BUTTON_OK_EVENT_CHANGE);
},
}],
}]
],
},
height: 24,
}],
};
}
setValue(value) {
if (this._checkValueValid(value)) {
this.timeSelect.setValue();
} else {
this.timeSelect.setValue({
hour: value.hour,
minute: value.minute,
second: value.second,
});
}
}
getValue() {
return this.timeSelect.getValue();
}
_checkValueValid(value) {
return isNull(value) || isEmptyObject(value) || isEmptyString(value);
}
}