Browse Source

BI-133648 feat:日期过滤控件加预览模式

research/test
chenzeyu 12 months ago
parent
commit
69cbd37288
  1. 65
      packages/fineui/src/widget/datepane/datepane.js
  2. 4
      packages/fineui/src/widget/dynamicdate/dynamicdate.combo.js
  3. 8
      packages/fineui/src/widget/dynamicdate/dynamicdate.popup.js
  4. 4
      packages/fineui/src/widget/dynamicdatetime/dynamicdatetime.combo.js
  5. 8
      packages/fineui/src/widget/dynamicdatetime/dynamicdatetime.popup.js
  6. 4
      packages/fineui/src/widget/timeinterval/dateinterval.js
  7. 4
      packages/fineui/src/widget/timeinterval/timeinterval.js
  8. 4
      packages/fineui/src/widget/year/combo.year.js
  9. 8
      packages/fineui/src/widget/year/popup.year.js
  10. 4
      packages/fineui/src/widget/yearmonth/combo.yearmonth.js
  11. 8
      packages/fineui/src/widget/yearmonth/popup.yearmonth.js
  12. 4
      packages/fineui/src/widget/yearmonthinterval/yearmonthinterval.js
  13. 4
      packages/fineui/src/widget/yearquarter/combo.yearquarter.js
  14. 8
      packages/fineui/src/widget/yearquarter/popup.yearquarter.js

65
packages/fineui/src/widget/datepane/datepane.js

@ -30,7 +30,7 @@ export class DynamicDatePane extends Widget {
minDate: "1900-01-01", minDate: "1900-01-01",
maxDate: "2099-12-31", maxDate: "2099-12-31",
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
render() { render() {
@ -196,7 +196,7 @@ export class DynamicDatePane extends Widget {
} }
created() { created() {
this.setValue(this.options.value, true); this._initValue(this.options.value);
} }
_checkValueValid(value) { _checkValueValid(value) {
@ -213,6 +213,45 @@ export class DynamicDatePane extends Widget {
} }
} }
_initValue(v) {
v = v || {};
const type = v.type || DynamicDateCombo.Static;
const value = v.value || v;
const { isPreview } = this.options;
let date;
// 如果是初始化且是预览状态 直接打开静态页面
this.switcher.setValue(isPreview ? DynamicDateCombo.Static : type);
this.dateTab.setSelect(isPreview ? DynamicDateCombo.Static : type);
switch (type) {
case DynamicDateCombo.Dynamic:
if (isPreview) {
date = DynamicDateHelper.getCalculation(value);
this.ymd.setValue({
year: date.getFullYear(),
month: date.getMonth() + 1,
day: date.getDate(),
});
} else {
this.dynamicPane.setValue(value);
}
break;
case DynamicDateCombo.Static:
default:
if (this._checkValueValid(value)) {
const date = getDate();
this.ymd.setValue({
year: date.getFullYear(),
month: date.getMonth() + 1,
});
} else {
this.ymd.setValue(value);
}
break;
}
}
setMinDate(minDate) { setMinDate(minDate) {
if (this.options.minDate !== minDate) { if (this.options.minDate !== minDate) {
this.options.minDate = minDate; this.options.minDate = minDate;
@ -227,29 +266,15 @@ export class DynamicDatePane extends Widget {
} }
} }
setValue(v, isCreated = false) { setValue(v) {
v = v || {}; v = v || {};
const type = v.type || DynamicDateCombo.Static; const type = v.type || DynamicDateCombo.Static;
const value = v.value || v; const value = v.value || v;
this.switcher.setValue(type);
const { isShow } = this.options; this.dateTab.setSelect(type);
let date;
// 如果是初始化且是预览状态 直接打开静态页面
this.switcher.setValue(isShow && isCreated ? DynamicDateCombo.Static : type);
this.dateTab.setSelect(isShow && isCreated ? DynamicDateCombo.Static : type);
switch (type) { switch (type) {
case DynamicDateCombo.Dynamic: case DynamicDateCombo.Dynamic:
if (isShow && isCreated) { this.dynamicPane.setValue(value);
date = DynamicDateHelper.getCalculation(value);
this.ymd.setValue({
year: date.getFullYear(),
month: date.getMonth() + 1,
day: date.getDate(),
});
} else {
this.dynamicPane.setValue(value);
}
break; break;
case DynamicDateCombo.Static: case DynamicDateCombo.Static:
default: default:

4
packages/fineui/src/widget/dynamicdate/dynamicdate.combo.js

@ -53,7 +53,7 @@ export class DynamicDateCombo extends Single {
}, },
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false, isNeedAdjustWidth: false,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
_init() { _init() {
@ -201,7 +201,7 @@ export class DynamicDateCombo extends Single {
popup: { popup: {
el: { el: {
type: DynamicDatePopup.xtype, type: DynamicDatePopup.xtype,
isShow: opts.isShow, isPreview: opts.isPreview,
width: opts.isNeedAdjustWidth ? opts.width : undefined, width: opts.isNeedAdjustWidth ? opts.width : undefined,
supportDynamic: opts.supportDynamic, supportDynamic: opts.supportDynamic,
behaviors: opts.behaviors, behaviors: opts.behaviors,

8
packages/fineui/src/widget/dynamicdate/dynamicdate.popup.js

@ -34,7 +34,7 @@ export class DynamicDatePopup extends Widget {
baseCls: "bi-dynamic-date-popup", baseCls: "bi-dynamic-date-popup",
width: 272, width: 272,
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static EVENT_CHANGE = "EVENT_CHANGE"; static EVENT_CHANGE = "EVENT_CHANGE";
@ -283,14 +283,14 @@ export class DynamicDatePopup extends Widget {
v = v || {}; v = v || {};
const type = v.type || DynamicDateCombo.Static; const type = v.type || DynamicDateCombo.Static;
const value = v.value || v; const value = v.value || v;
const { isShow } = this.options; const { isPreview } = this.options;
let date; let date;
// 如果是预览状态 直接打开静态页面 // 如果是预览状态 直接打开静态页面
this.dateTab.setSelect(isShow ? DynamicDateCombo.Static : type); this.dateTab.setSelect(isPreview ? DynamicDateCombo.Static : type);
switch (type) { switch (type) {
case DynamicDateCombo.Dynamic: case DynamicDateCombo.Dynamic:
if (isShow) { if (isPreview) {
date = DynamicDateHelper.getCalculation(value); date = DynamicDateHelper.getCalculation(value);
this.ymd.setValue({ this.ymd.setValue({
year: date.getFullYear(), year: date.getFullYear(),

4
packages/fineui/src/widget/dynamicdatetime/dynamicdatetime.combo.js

@ -44,7 +44,7 @@ export class DynamicDateTimeCombo extends Single {
}, },
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false, isNeedAdjustWidth: false,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static EVENT_KEY_DOWN = "EVENT_KEY_DOWN"; static EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
@ -208,7 +208,7 @@ export class DynamicDateTimeCombo extends Single {
popup: { popup: {
el: { el: {
type: DynamicDateTimePopup.xtype, type: DynamicDateTimePopup.xtype,
isShow: opts.isShow, isPreview: opts.isPreview,
timeSelectTypes: opts.timeSelectTypes, timeSelectTypes: opts.timeSelectTypes,
width: opts.isNeedAdjustWidth ? opts.width : undefined, width: opts.isNeedAdjustWidth ? opts.width : undefined,
supportDynamic: opts.supportDynamic, supportDynamic: opts.supportDynamic,

8
packages/fineui/src/widget/dynamicdatetime/dynamicdatetime.popup.js

@ -36,7 +36,7 @@ export class DynamicDateTimePopup extends Widget {
baseCls: "bi-dynamic-date-time-popup", baseCls: "bi-dynamic-date-time-popup",
width: 272, width: 272,
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static EVENT_CHANGE = "EVENT_CHANGE"; static EVENT_CHANGE = "EVENT_CHANGE";
@ -293,14 +293,14 @@ export class DynamicDateTimePopup extends Widget {
v = v || {}; v = v || {};
const type = v.type || DynamicDateCombo.Static; const type = v.type || DynamicDateCombo.Static;
const value = v.value || v; const value = v.value || v;
const { isShow } = this.options; const { isPreview } = this.options;
let date; let date;
// 如果是预览状态 直接打开静态页面 // 如果是预览状态 直接打开静态页面
this.dateTab.setSelect(isShow ? DynamicDateCombo.Static : type); this.dateTab.setSelect(isPreview ? DynamicDateCombo.Static : type);
switch (type) { switch (type) {
case DynamicDateCombo.Dynamic: case DynamicDateCombo.Dynamic:
if (isShow) { if (isPreview) {
date = DynamicDateHelper.getCalculation(value); date = DynamicDateHelper.getCalculation(value);
this.ymd.setValue({ this.ymd.setValue({
year: date.getFullYear(), year: date.getFullYear(),

4
packages/fineui/src/widget/timeinterval/dateinterval.js

@ -23,7 +23,7 @@ export class DateInterval extends Single {
lgap: 15, lgap: 15,
offset: 0, offset: 0,
timeErrorCls: "time-error", timeErrorCls: "time-error",
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static EVENT_VALID = "EVENT_VALID"; static EVENT_VALID = "EVENT_VALID";
@ -79,7 +79,7 @@ export class DateInterval extends Single {
const o = this.options; const o = this.options;
const combo = createWidget({ const combo = createWidget({
type: DynamicDateCombo.xtype, type: DynamicDateCombo.xtype,
isShow: o.isShow, isPreview: o.isPreview,
supportDynamic: o.supportDynamic, supportDynamic: o.supportDynamic,
minDate: o.minDate, minDate: o.minDate,
maxDate: o.maxDate, maxDate: o.maxDate,

4
packages/fineui/src/widget/timeinterval/timeinterval.js

@ -23,7 +23,7 @@ export class TimeInterval extends Single {
lgap: 15, lgap: 15,
offset: 0, offset: 0,
timeErrorCls: "time-error", timeErrorCls: "time-error",
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static EVENT_VALID = "EVENT_VALID"; static EVENT_VALID = "EVENT_VALID";
@ -77,7 +77,7 @@ export class TimeInterval extends Single {
const o = this.options; const o = this.options;
const combo = createWidget({ const combo = createWidget({
type: DynamicDateTimeCombo.xtype, type: DynamicDateTimeCombo.xtype,
isShow: o.isShow, isPreview: o.isPreview,
timeSelectTypes: o.timeSelectTypes, timeSelectTypes: o.timeSelectTypes,
simple: o.simple, simple: o.simple,
supportDynamic: o.supportDynamic, supportDynamic: o.supportDynamic,

4
packages/fineui/src/widget/year/combo.year.js

@ -27,7 +27,7 @@ export class DynamicYearCombo extends Widget {
maxDate: "2099-12-31", // 最大日期 maxDate: "2099-12-31", // 最大日期
height: 24, height: 24,
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
_init() { _init() {
@ -96,7 +96,7 @@ export class DynamicYearCombo extends Widget {
el: { el: {
type: DynamicYearPopup.xtype, type: DynamicYearPopup.xtype,
supportDynamic: o.supportDynamic, supportDynamic: o.supportDynamic,
isShow: o.isShow, isPreview: o.isPreview,
ref: _ref => { ref: _ref => {
this.popup = _ref; this.popup = _ref;
}, },

8
packages/fineui/src/widget/year/popup.year.js

@ -30,7 +30,7 @@ export class DynamicYearPopup extends Widget {
max: "2099-12-31", max: "2099-12-31",
width: 180, width: 180,
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
constants = { constants = {
tabHeight: 40, tabHeight: 40,
@ -267,13 +267,13 @@ export class DynamicYearPopup extends Widget {
v = v || {}; v = v || {};
const type = v.type || DynamicDateCombo.Static; const type = v.type || DynamicDateCombo.Static;
const value = v.value || v; const value = v.value || v;
const { isShow } = this.options; const { isPreview } = this.options;
// 如果是预览状态 直接打开静态页面 // 如果是预览状态 直接打开静态页面
this.dateTab.setSelect(isShow ? DynamicDateCombo.Static : type); this.dateTab.setSelect(isPreview ? DynamicDateCombo.Static : type);
switch (type) { switch (type) {
case DynamicDateCombo.Dynamic: case DynamicDateCombo.Dynamic:
isShow isPreview
? this.year.setValue({ year: DynamicDateHelper.getCalculation(value).getFullYear() }) ? this.year.setValue({ year: DynamicDateHelper.getCalculation(value).getFullYear() })
: this.dynamicPane.setValue(value); : this.dynamicPane.setValue(value);
this._setInnerValue(); this._setInnerValue();

4
packages/fineui/src/widget/yearmonth/combo.yearmonth.js

@ -38,7 +38,7 @@ export class DynamicYearMonthCombo extends Single {
supportDynamic: true, supportDynamic: true,
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false, isNeedAdjustWidth: false,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
_init() { _init() {
@ -107,7 +107,7 @@ export class DynamicYearMonthCombo extends Single {
type: DynamicYearMonthPopup.xtype, type: DynamicYearMonthPopup.xtype,
width: o.isNeedAdjustWidth ? o.width : undefined, width: o.isNeedAdjustWidth ? o.width : undefined,
supportDynamic: o.supportDynamic, supportDynamic: o.supportDynamic,
isShow: o.isShow, isPreview: o.isPreview,
ref: _ref => { ref: _ref => {
this.popup = _ref; this.popup = _ref;
}, },

8
packages/fineui/src/widget/yearmonth/popup.yearmonth.js

@ -31,7 +31,7 @@ export class DynamicYearMonthPopup extends Widget {
max: "2099-12-31", max: "2099-12-31",
width: 180, width: 180,
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE"; static BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE";
@ -263,14 +263,14 @@ export class DynamicYearMonthPopup extends Widget {
v = v || {}; v = v || {};
const type = v.type || DynamicDateCombo.Static; const type = v.type || DynamicDateCombo.Static;
const value = v.value || v; const value = v.value || v;
const { isShow } = this.options; const { isPreview } = this.options;
let date; let date;
// 如果是预览状态 直接打开静态页面 // 如果是预览状态 直接打开静态页面
this.dateTab.setSelect(isShow ? DynamicDateCombo.Static : type); this.dateTab.setSelect(isPreview ? DynamicDateCombo.Static : type);
switch (type) { switch (type) {
case DynamicDateCombo.Dynamic: case DynamicDateCombo.Dynamic:
if (isShow) { if (isPreview) {
date = DynamicDateHelper.getCalculation(value); date = DynamicDateHelper.getCalculation(value);
this.year.setValue({ this.year.setValue({
year: date.getFullYear(), year: date.getFullYear(),

4
packages/fineui/src/widget/yearmonthinterval/yearmonthinterval.js

@ -34,7 +34,7 @@ export class YearMonthInterval extends Single {
supportDynamic: true, supportDynamic: true,
height: 24, height: 24,
simple: false, simple: false,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
render() { render() {
@ -72,7 +72,7 @@ export class YearMonthInterval extends Single {
const o = this.options; const o = this.options;
const combo = createWidget({ const combo = createWidget({
type: DynamicYearMonthCombo.xtype, type: DynamicYearMonthCombo.xtype,
isShow: o.isShow, isPreview: o.isPreview,
simple: o.simple, simple: o.simple,
supportDynamic: o.supportDynamic, supportDynamic: o.supportDynamic,
height: o.height, height: o.height,

4
packages/fineui/src/widget/yearquarter/combo.yearquarter.js

@ -33,7 +33,7 @@ export class DynamicYearQuarterCombo extends Widget {
supportDynamic: true, supportDynamic: true,
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false, isNeedAdjustWidth: false,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static EVENT_CONFIRM = "EVENT_CONFIRM"; static EVENT_CONFIRM = "EVENT_CONFIRM";
@ -110,7 +110,7 @@ export class DynamicYearQuarterCombo extends Widget {
type: DynamicYearQuarterPopup.xtype, type: DynamicYearQuarterPopup.xtype,
width: o.isNeedAdjustWidth ? o.width : undefined, width: o.isNeedAdjustWidth ? o.width : undefined,
supportDynamic: o.supportDynamic, supportDynamic: o.supportDynamic,
isShow: o.isShow, isPreview: o.isPreview,
ref: _ref => { ref: _ref => {
this.popup = _ref; this.popup = _ref;
}, },

8
packages/fineui/src/widget/yearquarter/popup.yearquarter.js

@ -32,7 +32,7 @@ export class DynamicYearQuarterPopup extends Widget {
max: "2099-12-31", max: "2099-12-31",
width: 180, width: 180,
supportDynamic: true, supportDynamic: true,
isShow: false, // 是否是预览状态 isPreview: false, // 是否是预览状态
}; };
static BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE"; static BUTTON_CLEAR_EVENT_CHANGE = "BUTTON_CLEAR_EVENT_CHANGE";
@ -305,14 +305,14 @@ export class DynamicYearQuarterPopup extends Widget {
v = v || {}; v = v || {};
const type = v.type || DynamicDateCombo.Static; const type = v.type || DynamicDateCombo.Static;
const value = v.value || v; const value = v.value || v;
const { isShow } = this.options; const { isPreview } = this.options;
let date; let date;
// 如果是预览状态 直接打开静态页面 // 如果是预览状态 直接打开静态页面
this.dateTab.setSelect(isShow ? DynamicDateCombo.Static : type); this.dateTab.setSelect(isPreview ? DynamicDateCombo.Static : type);
switch (type) { switch (type) {
case DynamicDateCombo.Dynamic: case DynamicDateCombo.Dynamic:
if (isShow) { if (isPreview) {
date = DynamicDateHelper.getCalculation(value); date = DynamicDateHelper.getCalculation(value);
this.year.setValue({ this.year.setValue({
year: date.getFullYear(), year: date.getFullYear(),

Loading…
Cancel
Save