Showing
1 changed file
with
59 additions
and
5 deletions
1 | 1 | import { ref } from 'vue'; |
2 | 2 | import { BasicColumn, FormSchema } from '/@/components/Table'; |
3 | 3 | import type { FormSchema as QFormSchema } from '/@/components/Form/index'; |
4 | -import moment from 'moment'; | |
5 | 4 | import { getOrganizationList } from '/@/api/system/system'; |
6 | 5 | import { copyTransFun } from '/@/utils/fnUtils'; |
7 | 6 | import { findDictItemByCode } from '/@/api/system/dict'; |
... | ... | @@ -12,6 +11,7 @@ import { |
12 | 11 | getPacketIntervalByValue, |
13 | 12 | intervalOption, |
14 | 13 | } from '../../device/localtion/cpns/TimePeriodForm/helper'; |
14 | +import moment, { Moment } from 'moment'; | |
15 | 15 | |
16 | 16 | export enum QueryWay { |
17 | 17 | LATEST = 'latest', |
... | ... | @@ -433,16 +433,70 @@ export const formSchema: QFormSchema[] = [ |
433 | 433 | ifShow({ values }) { |
434 | 434 | return values[SchemaFiled.WAY] === QueryWay.TIME_PERIOD && !isFixedTime(values.executeWay); |
435 | 435 | }, |
436 | - componentProps: { | |
437 | - showTime: { | |
438 | - defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | |
439 | - }, | |
436 | + // componentProps: { | |
437 | + // showTime: { | |
438 | + // defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | |
439 | + // }, | |
440 | + // }, | |
441 | + componentProps({ formActionType }) { | |
442 | + const { setFieldsValue } = formActionType; | |
443 | + let dates: Moment[] = []; | |
444 | + return { | |
445 | + showTime: { | |
446 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | |
447 | + }, | |
448 | + onCalendarChange(value: Moment[]) { | |
449 | + dates = value; | |
450 | + }, | |
451 | + disabledDate(current: Moment) { | |
452 | + if (!dates || dates.length === 0 || !current) { | |
453 | + return false; | |
454 | + } | |
455 | + const diffDate = current.diff(dates[0], 'years', true); | |
456 | + return Math.abs(diffDate) > 1; | |
457 | + }, | |
458 | + onChange() { | |
459 | + dates = []; | |
460 | + setFieldsValue({ dateGroupGap: null }); | |
461 | + }, | |
462 | + getPopupContainer: () => document.body, | |
463 | + }; | |
440 | 464 | }, |
441 | 465 | colProps: { |
442 | 466 | span: 10, |
443 | 467 | }, |
444 | 468 | }, |
445 | 469 | { |
470 | + field: 'dateGroupGap', | |
471 | + label: '分组间隔', | |
472 | + component: 'Select', | |
473 | + dynamicRules: ({ model }) => { | |
474 | + return [ | |
475 | + { | |
476 | + required: model[SchemaFiled.AGG] !== AggregateDataEnum.NONE, | |
477 | + message: '分组间隔为必填项', | |
478 | + type: 'number', | |
479 | + }, | |
480 | + ]; | |
481 | + }, | |
482 | + ifShow({ values }) { | |
483 | + return values[SchemaFiled.WAY] === QueryWay.TIME_PERIOD && !isFixedTime(values.executeWay); | |
484 | + }, | |
485 | + componentProps({ formModel, formActionType }) { | |
486 | + const options = | |
487 | + formModel[SchemaFiled.WAY] === QueryWay.LATEST | |
488 | + ? getPacketIntervalByValue(formModel[SchemaFiled.START_TS]) | |
489 | + : getPacketIntervalByRange(formModel[SchemaFiled.DATE_RANGE]); | |
490 | + if (formModel[SchemaFiled.AGG] !== AggregateDataEnum.NONE) { | |
491 | + formActionType.setFieldsValue({ [SchemaFiled.LIMIT]: null }); | |
492 | + } | |
493 | + return { | |
494 | + options, | |
495 | + getPopupContainer: () => document.body, | |
496 | + }; | |
497 | + }, | |
498 | + }, | |
499 | + { | |
446 | 500 | field: SchemaFiled.START_TS, |
447 | 501 | label: '最近时间', |
448 | 502 | component: 'Select', | ... | ... |