|
|
|
import { shortcut, extend } from "@/core";
|
|
|
|
import { Single, Label } from "@/base";
|
|
|
|
import { TimeCombo } from "../time";
|
|
|
|
|
|
|
|
@shortcut()
|
|
|
|
export class TimePeriods extends Single {
|
|
|
|
static xtype = "bi.time_periods"
|
|
|
|
|
|
|
|
props = {
|
|
|
|
extraCls: "bi-time-interval",
|
|
|
|
value: {},
|
|
|
|
};
|
|
|
|
|
|
|
|
static EVENT_CONFIRM = "EVENT_CONFIRM"
|
|
|
|
static EVENT_CHANGE = "EVENT_CHANGE"
|
|
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
const o = this.options;
|
|
|
|
|
|
|
|
return {
|
|
|
|
type: "bi.horizontal_fill",
|
|
|
|
columnSize: ["fill", "", "fill"],
|
|
|
|
items: [{
|
|
|
|
el: extend({
|
|
|
|
ref: _ref => {
|
|
|
|
this.left = _ref;
|
|
|
|
},
|
|
|
|
}, this._createCombo(o.value.start, o.watermark?.start)),
|
|
|
|
}, {
|
|
|
|
el: {
|
|
|
|
type: Label.xtype,
|
|
|
|
height: o.height,
|
|
|
|
hgap: 5,
|
|
|
|
text: "-",
|
|
|
|
ref: _ref => {
|
|
|
|
this.label = _ref;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}, {
|
|
|
|
el: extend({
|
|
|
|
ref: _ref => {
|
|
|
|
this.right = _ref;
|
|
|
|
},
|
|
|
|
}, this._createCombo(o.value.end, o.watermark?.end)),
|
|
|
|
}],
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
_createCombo(v, watermark) {
|
|
|
|
const o = this.options;
|
|
|
|
|
|
|
|
return {
|
|
|
|
type: TimeCombo.xtype,
|
|
|
|
value: v,
|
|
|
|
height: o.height,
|
|
|
|
watermark,
|
|
|
|
listeners: [{
|
|
|
|
eventName: TimeCombo.EVENT_BEFORE_POPUPVIEW,
|
|
|
|
action: () => {
|
|
|
|
this.left.hidePopupView();
|
|
|
|
this.right.hidePopupView();
|
|
|
|
},
|
|
|
|
}, {
|
|
|
|
eventName: TimeCombo.EVENT_CHANGE,
|
|
|
|
action: () => {
|
|
|
|
this.fireEvent(TimePeriods.EVENT_CHANGE);
|
|
|
|
},
|
|
|
|
}, {
|
|
|
|
eventName: TimeCombo.EVENT_CONFIRM,
|
|
|
|
action: () => {
|
|
|
|
this.fireEvent(TimePeriods.EVENT_CONFIRM);
|
|
|
|
},
|
|
|
|
}],
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
setValue(date) {
|
|
|
|
date = date || {};
|
|
|
|
this.left.setValue(date.start);
|
|
|
|
this.right.setValue(date.end);
|
|
|
|
}
|
|
|
|
|
|
|
|
getValue() {
|
|
|
|
return {
|
|
|
|
start: this.left.getValue(),
|
|
|
|
end: this.right.getValue(),
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|