Browse Source

Pull request #3373: KERNEL-14092 refactor: widget/time及解决parseDateTime的错误代码

Merge in VISUAL/fineui from ~ZHENFEI.LI/fineui:es6 to es6

* commit '5b33d1e9c3ea88840e99b3964b6302d4cb447727':
  KERNEL-14092  refactor: widget/time及解决parseDateTime的错误代码
es6
Zhenfei.Li-李振飞 2 years ago
parent
commit
3250dcb10a
  1. 12
      src/core/2.base.js
  2. 3
      src/widget/index.js
  3. 116
      src/widget/time/datetime.popup.js
  4. 3
      src/widget/time/index.js
  5. 278
      src/widget/time/time.combo.js
  6. 221
      src/widget/time/time.trigger.js

12
src/core/2.base.js

@ -1230,22 +1230,22 @@ export function parseDateTime(str, fmt) {
// if (!a[i]) { // if (!a[i]) {
// continue; // continue;
// } // }
if (isNaN(y)) { if (_global.isNaN(y)) {
y = today.getFullYear(); y = today.getFullYear();
} }
if (isNaN(m)) { if (_global.isNaN(m)) {
m = today.getMonth(); m = today.getMonth();
} }
if (isNaN(d)) { if (_global.isNaN(d)) {
d = today.getDate(); d = today.getDate();
} }
if (isNaN(hr)) { if (_global.isNaN(hr)) {
hr = today.getHours(); hr = today.getHours();
} }
if (isNaN(min)) { if (_global.isNaN(min)) {
min = today.getMinutes(); min = today.getMinutes();
} }
if (isNaN(sec)) { if (_global.isNaN(sec)) {
sec = today.getSeconds(); sec = today.getSeconds();
} }
if (y !== 0) { if (y !== 0) {

3
src/widget/index.js

@ -5,6 +5,7 @@ import * as datepane from "./datepane";
import * as datetime from "./datetime"; import * as datetime from "./datetime";
import * as datetimepane from "./datetimepane"; import * as datetimepane from "./datetimepane";
import * as dynamicdatetime from "./dynamicdatetime"; import * as dynamicdatetime from "./dynamicdatetime";
import * as time from "./time";
Object.assign(BI, { Object.assign(BI, {
Collapse, Collapse,
@ -14,6 +15,7 @@ Object.assign(BI, {
...datetime, ...datetime,
...datetimepane, ...datetimepane,
...dynamicdatetime, ...dynamicdatetime,
...time,
}); });
export * from "./date/calendar"; export * from "./date/calendar";
@ -22,6 +24,7 @@ export * from "./datepane";
export * from "./datetime"; export * from "./datetime";
export * from "./datetimepane"; export * from "./datetimepane";
export * from "./dynamicdatetime"; export * from "./dynamicdatetime";
export * from "./time";
export { export {
Collapse Collapse
}; };

116
src/widget/time/datetime.popup.js

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

3
src/widget/time/index.js

@ -0,0 +1,3 @@
export { TimePopup } from "./datetime.popup";
export { TimeCombo } from "./time.combo";
export { TimeTrigger } from "./time.trigger";

278
src/widget/time/time.combo.js

@ -1,69 +1,77 @@
/** import { shortcut, toPix, getDate, isNotEmptyString, isEqual, isEmptyString, AbsoluteLayout } from "@/core";
* 时间选择 import { Single, IconButton, Combo } from "@/base";
* qcc import { TimePopup } from "./datetime.popup";
* 2019/2/28
*/
!(function () { @shortcut()
BI.TimeCombo = BI.inherit(BI.Single, { export class TimeCombo extends Single {
constants: { static xtype = "bi.time_combo"
static EVENT_KEY_DOWN = "EVENT_KEY_DOWN"
static EVENT_CONFIRM = "EVENT_CONFIRM"
static EVENT_CHANGE = "EVENT_CHANGE"
static EVENT_VALID = "EVENT_VALID"
static EVENT_ERROR = "EVENT_ERROR"
static EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"
constants = {
popupHeight: 80, popupHeight: 80,
popupWidth: 240, popupWidth: 240,
comboAdjustHeight: 1, comboAdjustHeight: 1,
border: 1, border: 1,
iconWidth: 24 iconWidth: 24,
}, }
props: {
props = {
baseCls: "bi-time-combo", baseCls: "bi-time-combo",
height: 24, height: 24,
format: "", format: "",
allowEdit: false, allowEdit: false,
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false isNeedAdjustWidth: false,
}, };
_init: function () { _init() {
var o = this.options; super._init(...arguments);
BI.TimeCombo.superclass._init.apply(this, arguments); }
},
render: function () { render() {
var self = this, opts = this.options; const opts = this.options;
this.storeTriggerValue = ""; this.storeTriggerValue = "";
this.storeValue = opts.value; this.storeValue = opts.value;
var popup = { const popup = {
type: "bi.time_popup", type: "bi.time_popup",
value: opts.value, value: opts.value,
listeners: [{ listeners: [{
eventName: BI.TimePopup.BUTTON_CLEAR_EVENT_CHANGE, eventName: TimePopup.BUTTON_CLEAR_EVENT_CHANGE,
action: function () { action: () => {
self.setValue(); this.setValue();
self.hidePopupView(); this.hidePopupView();
self.fireEvent(BI.TimeCombo.EVENT_CONFIRM); this.fireEvent(TimeCombo.EVENT_CONFIRM);
} },
}, { }, {
eventName: BI.TimePopup.BUTTON_OK_EVENT_CHANGE, eventName: TimePopup.BUTTON_OK_EVENT_CHANGE,
action: function () { action: () => {
self.setValue(self.popup.getValue()); this.setValue(this.popup.getValue());
self.hidePopupView(); this.hidePopupView();
self.fireEvent(BI.TimeCombo.EVENT_CONFIRM); this.fireEvent(TimeCombo.EVENT_CONFIRM);
} },
}, { }, {
eventName: BI.TimePopup.BUTTON_NOW_EVENT_CHANGE, eventName: TimePopup.BUTTON_NOW_EVENT_CHANGE,
action: function () { action: () => {
self._setNowTime(); this._setNowTime();
} },
}], }],
ref: function (_ref) { ref: _ref => {
self.popup = _ref; this.popup = _ref;
} },
}; };
return { return {
type: "bi.absolute", type: AbsoluteLayout.xtype,
items: [{ items: [{
el: { el: {
type: "bi.combo", type: Combo.xtype,
cls: "bi-border bi-border-radius", cls: "bi-border bi-border-radius",
container: opts.container, container: opts.container,
toggle: false, toggle: false,
@ -72,103 +80,103 @@
el: { el: {
type: "bi.horizontal_fill", type: "bi.horizontal_fill",
columnSize: ["fill", this.constants.iconWidth], columnSize: ["fill", this.constants.iconWidth],
height: BI.toPix(opts.height, 2), height: toPix(opts.height, 2),
items: [{ items: [{
type: "bi.time_trigger", type: "bi.time_trigger",
height: BI.toPix(opts.height, 2), height: toPix(opts.height, 2),
allowEdit: opts.allowEdit, allowEdit: opts.allowEdit,
watermark: opts.watermark, watermark: opts.watermark,
format: opts.format, format: opts.format,
value: opts.value, value: opts.value,
ref: function (_ref) { ref: _ref => {
self.trigger = _ref; this.trigger = _ref;
}, },
listeners: [{ listeners: [{
eventName: "EVENT_KEY_DOWN", eventName: "EVENT_KEY_DOWN",
action: function () { action: () => {
if (self.combo.isViewVisible()) { if (this.combo.isViewVisible()) {
self.combo.hideView(); this.combo.hideView();
}
self.fireEvent(BI.TimeCombo.EVENT_KEY_DOWN, arguments);
} }
this.fireEvent(TimeCombo.EVENT_KEY_DOWN, arguments);
},
}, { }, {
eventName: "EVENT_STOP", eventName: "EVENT_STOP",
action: function () { action: () => {
if (!self.combo.isViewVisible()) { if (!this.combo.isViewVisible()) {
self.combo.showView(); this.combo.showView();
}
} }
},
}, { }, {
eventName: "EVENT_FOCUS", eventName: "EVENT_FOCUS",
action: function () { action: () => {
self.storeTriggerValue = self.trigger.getKey(); this.storeTriggerValue = this.trigger.getKey();
if (!self.combo.isViewVisible()) { if (!this.combo.isViewVisible()) {
self.combo.showView(); this.combo.showView();
}
self.fireEvent("EVENT_FOCUS");
} }
this.fireEvent("EVENT_FOCUS");
},
}, { }, {
eventName: "EVENT_BLUR", eventName: "EVENT_BLUR",
action: function () { action: () => {
self.fireEvent("EVENT_BLUR"); this.fireEvent("EVENT_BLUR");
} },
}, { }, {
eventName: "EVENT_ERROR", eventName: "EVENT_ERROR",
action: function () { action: () => {
var date = BI.getDate(); const date = getDate();
self.storeValue = { this.storeValue = {
hour: date.getHours(), hour: date.getHours(),
minute: date.getMinutes(), minute: date.getMinutes(),
second: date.getSeconds() second: date.getSeconds(),
}; };
self.fireEvent("EVENT_ERROR"); this.fireEvent("EVENT_ERROR");
} },
}, { }, {
eventName: "EVENT_VALID", eventName: "EVENT_VALID",
action: function () { action: () => {
self.fireEvent("EVENT_VALID"); this.fireEvent("EVENT_VALID");
} },
}, { }, {
eventName: "EVENT_CHANGE", eventName: "EVENT_CHANGE",
action: function () { action: () => {
self.fireEvent("EVENT_CHANGE"); this.fireEvent("EVENT_CHANGE");
} },
}, { }, {
eventName: "EVENT_CONFIRM", eventName: "EVENT_CONFIRM",
action: function () { action: () => {
if (self.combo.isViewVisible()) { if (this.combo.isViewVisible()) {
return; return;
} }
var dateStore = self.storeTriggerValue; const dateStore = this.storeTriggerValue;
var dateObj = self.trigger.getKey(); const dateObj = this.trigger.getKey();
if (BI.isNotEmptyString(dateObj) && !BI.isEqual(dateObj, dateStore)) { if (isNotEmptyString(dateObj) && !isEqual(dateObj, dateStore)) {
self.storeValue = self.trigger.getValue(); this.storeValue = this.trigger.getValue();
self.setValue(self.trigger.getValue()); this.setValue(this.trigger.getValue());
} else if (BI.isEmptyString(dateObj)) { } else if (isEmptyString(dateObj)) {
self.storeValue = null; this.storeValue = null;
self.trigger.setValue(); this.trigger.setValue();
} }
self.fireEvent("EVENT_CONFIRM"); this.fireEvent("EVENT_CONFIRM");
} },
}] }],
}, { }, {
el: { el: {
type: "bi.icon_button", type: IconButton.xtype,
cls: "bi-trigger-icon-button time-font", cls: "bi-trigger-icon-button time-font",
width: this.constants.iconWidth, width: this.constants.iconWidth,
listeners: [{ listeners: [{
eventName: BI.IconButton.EVENT_CHANGE, eventName: IconButton.EVENT_CHANGE,
action: function () { action: () => {
if (self.combo.isViewVisible()) { if (this.combo.isViewVisible()) {
// self.combo.hideView(); // this.combo.hideView();
} else { } else {
self.combo.showView(); this.combo.showView();
}
} }
},
}], }],
ref: function (_ref) { ref: _ref => {
self.triggerBtn = _ref; this.triggerBtn = _ref;
} },
}, },
}], }],
}, },
@ -176,72 +184,62 @@
popup: { popup: {
el: popup, el: popup,
width: opts.isNeedAdjustWidth ? opts.width : this.constants.popupWidth, width: opts.isNeedAdjustWidth ? opts.width : this.constants.popupWidth,
stopPropagation: false stopPropagation: false,
},
hideChecker: function (e) {
return self.triggerBtn.element.find(e.target).length === 0;
}, },
hideChecker: e => this.triggerBtn.element.find(e.target).length === 0,
listeners: [{ listeners: [{
eventName: BI.Combo.EVENT_BEFORE_POPUPVIEW, eventName: Combo.EVENT_BEFORE_POPUPVIEW,
action: function () { action: () => {
self.popup.setValue(self.storeValue); this.popup.setValue(this.storeValue);
self.fireEvent(BI.TimeCombo.EVENT_BEFORE_POPUPVIEW); this.fireEvent(TimeCombo.EVENT_BEFORE_POPUPVIEW);
} },
}], }],
ref: function (_ref) { ref: _ref => {
self.combo = _ref; this.combo = _ref;
} },
}, },
top: 0, top: 0,
left: 0, left: 0,
right: 0, right: 0,
bottom: 0 bottom: 0,
}] }],
}; };
}, }
setValue: function (v) { setValue(v) {
this.storeValue = v; this.storeValue = v;
this.trigger.setValue(v); this.trigger.setValue(v);
}, }
getValue: function () {
getValue() {
return this.storeValue; return this.storeValue;
}, }
hidePopupView: function () { hidePopupView() {
this.combo.hideView(); this.combo.hideView();
}, }
_setNowTime: function () { _setNowTime() {
var date = BI.getDate(); const date = getDate();
var nowTome = { const nowTome = {
hour: date.getHours(), hour: date.getHours(),
minute: date.getMinutes(), minute: date.getMinutes(),
second: date.getSeconds() second: date.getSeconds(),
}; };
this.setValue(nowTome); this.setValue(nowTome);
this.hidePopupView(); this.hidePopupView();
this.fireEvent(BI.TimeCombo.EVENT_CONFIRM); this.fireEvent(TimeCombo.EVENT_CONFIRM);
}, }
focus: function () { focus() {
this.trigger.focus(); this.trigger.focus();
}, }
blur: function () { blur() {
this.trigger.blur(); this.trigger.blur();
}, }
setWaterMark: function (v) { setWaterMark(v) {
this.trigger.setWaterMark(v); this.trigger.setWaterMark(v);
} }
}); }
BI.TimeCombo.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
BI.TimeCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.TimeCombo.EVENT_CHANGE = "EVENT_CHANGE";
BI.TimeCombo.EVENT_VALID = "EVENT_VALID";
BI.TimeCombo.EVENT_ERROR = "EVENT_ERROR";
BI.TimeCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.shortcut("bi.time_combo", BI.TimeCombo);
})();

221
src/widget/time/time.trigger.js

@ -1,202 +1,193 @@
!(function () { import { shortcut, i18nText, bind, isNotNull, isNotEmptyString, isEqual, AbsoluteLayout, any, print, parseDateTime, isEmptyObject, getDate, isNotEmptyObject } from "@/core";
BI.TimeTrigger = BI.inherit(BI.Trigger, { import { Trigger, Text } from "@/base";
import { SignEditor } from "@/case";
_const: { @shortcut()
export class TimeTrigger extends Trigger {
static xtype = "bi.time_trigger"
_const = {
COMPARE_FORMAT: "%H:%M:%S", COMPARE_FORMAT: "%H:%M:%S",
COMPLETE_COMPARE_FORMAT: "%Y-%M-%d %H:%M:%S %P", COMPLETE_COMPARE_FORMAT: "%Y-%M-%d %H:%M:%S %P",
FORMAT_ARRAY: [ FORMAT_ARRAY: ["%H:%M:%S", "%I:%M:%S", "%l:%M:%S", "%k:%M:%S", "%l:%M:%S %p", "%l:%M:%S %P", "%H:%M:%S %p", "%H:%M:%S %P", "%l:%M", "%k:%M", "%I:%M", "%H:%M", "%M:%S"],
"%H:%M:%S", // HH:mm:ss
"%I:%M:%S", // hh:mm:ss
"%l:%M:%S", // h:mm:ss
"%k:%M:%S", // H:mm:ss
"%l:%M:%S %p", // h:mm:ss a
"%l:%M:%S %P", // h:mm:ss a
"%H:%M:%S %p", // HH:mm:ss a
"%H:%M:%S %P", // HH:mm:ss a
"%l:%M", // h:mm
"%k:%M", // H:mm
"%I:%M", // hh:mm
"%H:%M", // HH:mm
"%M:%S" // mm:ss
],
DEFAULT_DATE_STRING: "2000-01-01", DEFAULT_DATE_STRING: "2000-01-01",
DEFAULT_HOUR: "00" DEFAULT_HOUR: "00",
}, };
props: () => ({ props() {
return {
extraCls: "bi-time-trigger", extraCls: "bi-time-trigger",
value: {}, value: {},
format: "", format: "",
allowEdit: false, allowEdit: false,
watermark: BI.i18nText("BI-Basic_Unrestricted"), watermark: i18nText("BI-Basic_Unrestricted"),
}), };
}
render: function () { render() {
var self = this, o = this.options; const o = this.options;
this.storeTriggerValue = ""; this.storeTriggerValue = "";
this.storeValue = o.value; this.storeValue = o.value;
return { return {
type: "bi.absolute", type: AbsoluteLayout.xtype,
items: [{ items: [{
el: { el: {
type: "bi.sign_editor", type: SignEditor.xtype,
height: o.height, height: o.height,
validationChecker: function (v) { validationChecker: v => this._dateCheck(v),
return self._dateCheck(v); quitChecker () {
},
quitChecker: function () {
return false; return false;
}, },
ref: function (_ref) { ref: _ref => {
self.editor = _ref; this.editor = _ref;
}, },
value: this._formatValue(o.value), value: this._formatValue(o.value),
hgap: 4, hgap: 4,
allowBlank: true, allowBlank: true,
watermark: o.watermark, watermark: o.watermark,
title: BI.bind(this._getTitle, this), title: bind(this._getTitle, this),
listeners: [{ listeners: [{
eventName: "EVENT_KEY_DOWN", eventName: "EVENT_KEY_DOWN",
action: function () { action: (...args) => {
self.fireEvent("EVENT_KEY_DOWN", arguments); this.fireEvent("EVENT_KEY_DOWN", ...args);
} },
}, { }, {
eventName: "EVENT_FOCUS", eventName: "EVENT_FOCUS",
action: function () { action: () => {
self.storeTriggerValue = self.getKey(); this.storeTriggerValue = this.getKey();
self.fireEvent("EVENT_FOCUS"); this.fireEvent("EVENT_FOCUS");
} },
}, { }, {
eventName: "EVENT_BLUR", eventName: "EVENT_BLUR",
action: function () { action: () => {
self.fireEvent("EVENT_BLUR"); this.fireEvent("EVENT_BLUR");
} },
}, { }, {
eventName: "EVENT_STOP", eventName: "EVENT_STOP",
action: function () { action: () => {
self.fireEvent("EVENT_STOP"); this.fireEvent("EVENT_STOP");
} },
}, { }, {
eventName: "EVENT_VALID", eventName: "EVENT_VALID",
action: function () { action: () => {
self.fireEvent("EVENT_VALID"); this.fireEvent("EVENT_VALID");
} },
}, { }, {
eventName: "EVENT_ERROR", eventName: "EVENT_ERROR",
action: function () { action: () => {
self.fireEvent("EVENT_ERROR"); this.fireEvent("EVENT_ERROR");
} },
}, { }, {
eventName: "EVENT_CONFIRM", eventName: "EVENT_CONFIRM",
action: function () { action: () => {
var value = self.editor.getValue(); const value = this.editor.getValue();
if (BI.isNotNull(value)) { if (isNotNull(value)) {
self.editor.setState(value); this.editor.setState(value);
} }
if (BI.isNotEmptyString(value) && !BI.isEqual(self.storeTriggerValue, self.getKey())) { if (isNotEmptyString(value) && !isEqual(this.storeTriggerValue, this.getKey())) {
var date = value.match(/\d+/g); const date = value.match(/\d+/g);
self.storeValue = { this.storeValue = {
hour: date[0] | 0, hour: date[0] | 0,
minute: date[1] | 0, minute: date[1] | 0,
second: date[2] | 0 second: date[2] | 0,
}; };
} }
self.fireEvent("EVENT_CONFIRM"); this.fireEvent("EVENT_CONFIRM");
} },
}, { }, {
eventName: "EVENT_START", eventName: "EVENT_START",
action: function () { action: () => {
self.fireEvent("EVENT_START"); this.fireEvent("EVENT_START");
} },
}, { }, {
eventName: "EVENT_CHANGE", eventName: "EVENT_CHANGE",
action: function () { action: () => {
self.fireEvent("EVENT_CHANGE"); this.fireEvent("EVENT_CHANGE");
} },
}] }],
}, },
left: 0, left: 0,
right: 0, right: 0,
top: 0, top: 0,
bottom: 0 bottom: 0,
}, { }, {
el: { el: {
type: "bi.text", type: Text.xtype,
invisible: o.allowEdit, invisible: o.allowEdit,
cls: "show-text", cls: "show-text",
title: BI.bind(this._getTitle, this), title: bind(this._getTitle, this),
hgap: 4 hgap: 4,
}, },
left: 0, left: 0,
right: 0, right: 0,
top: 0, top: 0,
bottom: 0 bottom: 0,
}] }],
}; };
}, }
_dateCheck: function (date) { _dateCheck(date) {
var c = this._const; const c = this._const;
var self = this;
return BI.any(c.FORMAT_ARRAY, function (idx, format) {
return BI.print(BI.parseDateTime(c.DEFAULT_DATE_STRING + " " + self._getCompleteHMS(date, format), c.COMPLETE_COMPARE_FORMAT), format) === date;
});
},
_getCompleteHMS: function (str, format) { return any(c.FORMAT_ARRAY, (idx, format) => print(parseDateTime(`${c.DEFAULT_DATE_STRING} ${this._getCompleteHMS(date, format)}`, c.COMPLETE_COMPARE_FORMAT), format) === date);
var c = this._const; }
_getCompleteHMS(str, format) {
const c = this._const;
switch (format) { switch (format) {
case "%M:%S": case "%M:%S":
str = c.DEFAULT_HOUR + ":" + str; str = `${c.DEFAULT_HOUR}:${str}`;
break; break;
default: default:
break; break;
} }
return str; return str;
}, }
_getTitle: function () { _getTitle() {
var storeValue = this.storeValue || {}; const storeValue = this.storeValue || {};
if (BI.isEmptyObject(storeValue)) { if (isEmptyObject(storeValue)) {
return this.options.watermark; return this.options.watermark;
} }
var date = BI.getDate(); const date = getDate();
return BI.print(BI.getDate(date.getFullYear(), 0, 1, storeValue.hour, storeValue.minute, storeValue.second), this._getFormatString());
}, return print(getDate(date.getFullYear(), 0, 1, storeValue.hour, storeValue.minute, storeValue.second), this._getFormatString());
}
_getFormatString: function () { _getFormatString() {
return this.options.format || this._const.COMPARE_FORMAT; return this.options.format || this._const.COMPARE_FORMAT;
}, }
_formatValue: function (v) { _formatValue(v) {
var now = BI.getDate(); const now = getDate();
return BI.isNotEmptyObject(v) ? BI.print(BI.getDate(now.getFullYear(), now.getMonth(), now.getDay(), v.hour, v.minute, v.second), this._getFormatString()) : "";
},
getKey: function () { return isNotEmptyObject(v) ? print(getDate(now.getFullYear(), now.getMonth(), now.getDay(), v.hour, v.minute, v.second), this._getFormatString()) : "";
}
getKey() {
return this.editor.getValue(); return this.editor.getValue();
}, }
setValue: function (v) { setValue(v) {
this.storeValue = v; this.storeValue = v;
this.editor.setValue(this._formatValue(v)); this.editor.setValue(this._formatValue(v));
}, }
getValue: function () { getValue() {
return this.storeValue; return this.storeValue;
}, }
focus: function () { focus() {
this.editor.focus(); this.editor.focus();
}, }
blur: function () { blur() {
this.editor.blur(); this.editor.blur();
}, }
setWaterMark: function (v) { setWaterMark(v) {
this.editor.setWaterMark(v); this.editor.setWaterMark(v);
} }
}); }
BI.shortcut("bi.time_trigger", BI.TimeTrigger);
})();

Loading…
Cancel
Save