Merge branch 'develop'

pull/128/MERGE
13621160019@163.com 2022-02-23 18:02:21 +08:00
commit 6e27e1843a
12 changed files with 156 additions and 70 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,7 @@
border-radius: 6px; border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.17); box-shadow: 0 0 4px rgba(0, 0, 0, 0.17);
white-space: nowrap; white-space: nowrap;
z-index: 2000;
} }
.rc-cascader-menus-hidden { .rc-cascader-menus-hidden {
display: none; display: none;
@ -158,4 +159,38 @@
transform-origin: 0% 100%; transform-origin: 0% 100%;
transform: scaleY(0.8); transform: scaleY(0.8);
} }
} }
.rs-picker-has-value,
.rs-btn,
.rs-picker-toggle-value,
.rs-picker-has-value,
.rs-picker-toggle,
.rs-picker-toggle-value{color:$gray-300 !important;}
.rs-picker-toggle-textbox {color: $gray-800;background-color: $white !important;}
.rs-picker-toggle-value{font-size: 1rem;line-height: 1.3;color: $gray-900!important;}
.rs-picker-has-value,
.rs-btn,
.rs-picker-toggle-value,
.rs-picker-has-value,
.rs-picker-toggle,
.rs-picker-toggle-value{color: $gray-900 !important;}
.rs-picker-default,
.rs-picker-toggle,
.rs-picker-input,
.rs-picker-input,
.rs-picker-toggle {--rs-input-bg:$white;background-color: $white;border: 1px solid $white !important;}
.rs-picker-default:not(.rs-picker-disabled),
.rs-btn-active,
.rs-picker-default:not(.rs-picker-disabled),
.rs-btn:focus, .rs-picker-default:not(.rs-picker-disabled),
.rs-btn:hover, .rs-picker-default:not(.rs-picker-disabled),
.rs-picker-toggle-active, .rs-picker-default:not(.rs-picker-disabled),
.rs-picker-toggle:focus, .rs-picker-default:not(.rs-picker-disabled),
.rs-picker-toggle:hover {border-color: $white !important;}

View File

@ -22,4 +22,4 @@
background-color: $light; background-color: $light;
} }
} }
} }

View File

@ -67,8 +67,7 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
const [periodType, setPeriodType] = useState('daily'); const [periodType, setPeriodType] = useState('daily');
const [basePeriodBeginsDatetime, setBasePeriodBeginsDatetime] = useState(current_moment.clone().subtract(1, 'months').startOf('month')); const [basePeriodBeginsDatetime, setBasePeriodBeginsDatetime] = useState(current_moment.clone().subtract(1, 'months').startOf('month'));
const [basePeriodEndsDatetime, setBasePeriodEndsDatetime] = useState(current_moment.clone().subtract(1, 'months')); const [basePeriodEndsDatetime, setBasePeriodEndsDatetime] = useState(current_moment.clone().subtract(1, 'months'));
const [basePeriodBeginsDatetimeDisabled, setBasePeriodBeginsDatetimeDisabled] = useState(true); const [basePeriodDatetimeDisabled, setBasePeriodDatetimeDisabled] = useState(true);
const [basePeriodEndsDatetimeDisabled, setBasePeriodEndsDatetimeDisabled] = useState(true);
const [reportingPeriodBeginsDatetime, setReportingPeriodBeginsDatetime] = useState(current_moment.clone().startOf('month')); const [reportingPeriodBeginsDatetime, setReportingPeriodBeginsDatetime] = useState(current_moment.clone().startOf('month'));
const [reportingPeriodEndsDatetime, setReportingPeriodEndsDatetime] = useState(current_moment); const [reportingPeriodEndsDatetime, setReportingPeriodEndsDatetime] = useState(current_moment);
const [cascaderOptions, setCascaderOptions] = useState(undefined); const [cascaderOptions, setCascaderOptions] = useState(undefined);
@ -96,6 +95,25 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
const [detailedDataTableData, setDetailedDataTableData] = useState([]); const [detailedDataTableData, setDetailedDataTableData] = useState([]);
const [excelBytesBase64, setExcelBytesBase64] = useState(undefined); const [excelBytesBase64, setExcelBytesBase64] = useState(undefined);
const [values, setValues] = useState([reportingPeriodBeginsDatetime.toDate(), reportingPeriodEndsDatetime.toDate()]); const [values, setValues] = useState([reportingPeriodBeginsDatetime.toDate(), reportingPeriodEndsDatetime.toDate()]);
const [baseValues, setBaseValues] = useState([current_moment.clone().subtract(1, 'months').startOf('month').toDate(),
current_moment.clone().subtract(1, 'months').toDate()]);
const local = {
sunday: t('sunday'),
monday: t('monday'),
tuesday: t('tuesday'),
wednesday: t('wednesday'),
thursday: t('thursday'),
friday: t('friday'),
saturday: t('friday'),
ok: t('ok'),
today: t('today'),
yesterday: t('yesterday'),
hours: t('hours'),
minutes: t('minutes'),
seconds: t('seconds'),
last7Days: t('last7Days')
};
const styles = { display: 'block', zIndex: 10};
useEffect(() => { useEffect(() => {
let isResponseOK = false; let isResponseOK = false;
@ -218,23 +236,24 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
console.log(target.value); console.log(target.value);
setComparisonType(target.value); setComparisonType(target.value);
if (target.value === 'year-over-year') { if (target.value === 'year-over-year') {
setBasePeriodBeginsDatetimeDisabled(true); setBasePeriodDatetimeDisabled(true);
setBasePeriodEndsDatetimeDisabled(true);
setBasePeriodBeginsDatetime(moment(reportingPeriodBeginsDatetime).subtract(1, 'years')); setBasePeriodBeginsDatetime(moment(reportingPeriodBeginsDatetime).subtract(1, 'years'));
setBasePeriodEndsDatetime(moment(reportingPeriodEndsDatetime).subtract(1, 'years')); setBasePeriodEndsDatetime(moment(reportingPeriodEndsDatetime).subtract(1, 'years'));
setBaseValues([moment(reportingPeriodBeginsDatetime).subtract(1, 'years').toDate(),
moment(reportingPeriodEndsDatetime).subtract(1, 'years').toDate()]);
} else if (target.value === 'month-on-month') { } else if (target.value === 'month-on-month') {
setBasePeriodBeginsDatetimeDisabled(true); setBasePeriodDatetimeDisabled(true);
setBasePeriodEndsDatetimeDisabled(true);
setBasePeriodBeginsDatetime(moment(reportingPeriodBeginsDatetime).subtract(1, 'months')); setBasePeriodBeginsDatetime(moment(reportingPeriodBeginsDatetime).subtract(1, 'months'));
setBasePeriodEndsDatetime(moment(reportingPeriodEndsDatetime).subtract(1, 'months')); setBasePeriodEndsDatetime(moment(reportingPeriodEndsDatetime).subtract(1, 'months'));
setBaseValues([moment(reportingPeriodBeginsDatetime).subtract(1, 'months').toDate(),
moment(reportingPeriodEndsDatetime).subtract(1, 'months').toDate()]);
} else if (target.value === 'free-comparison') { } else if (target.value === 'free-comparison') {
setBasePeriodBeginsDatetimeDisabled(false); setBasePeriodDatetimeDisabled(false);
setBasePeriodEndsDatetimeDisabled(false);
} else if (target.value === 'none-comparison') { } else if (target.value === 'none-comparison') {
setBaseValues([]);
setBasePeriodBeginsDatetime(undefined); setBasePeriodBeginsDatetime(undefined);
setBasePeriodEndsDatetime(undefined); setBasePeriodEndsDatetime(undefined);
setBasePeriodBeginsDatetimeDisabled(true); setBasePeriodDatetimeDisabled(true);
setBasePeriodEndsDatetimeDisabled(true);
} }
}; };
@ -255,29 +274,34 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
}; };
}; };
let onBasePeriodBeginsDatetimeChange = (newDateTime) => { let onBasePeriodChange = (DateRange) => {
setBasePeriodBeginsDatetime(newDateTime); if(DateRange == null){
}; setBaseValues([]);
}
let onBasePeriodEndsDatetimeChange = (newDateTime) => { let startDate = moment(DateRange[0]);
setBasePeriodEndsDatetime(newDateTime); let endDate = moment(DateRange[1]);
setBaseValues([DateRange[0], DateRange[1]]);
setBasePeriodBeginsDatetime(startDate);
setBasePeriodEndsDatetime(endDate);
}; };
let onChange = (DateRange) => { let onChange = (DateRange) => {
if(DateRange == null){
setValues([]);
}
let startDate = moment(DateRange[0]); let startDate = moment(DateRange[0]);
let endDate = moment(DateRange[1]); let endDate = moment(DateRange[1]);
setValues([DateRange[0], DateRange[1]]); setValues([DateRange[0], DateRange[1]]);
setReportingPeriodBeginsDatetime(startDate); setReportingPeriodBeginsDatetime(startDate);
if (comparisonType === 'year-over-year') {
setBasePeriodBeginsDatetime(startDate.clone().subtract(1, 'years'));
} else if (comparisonType === 'month-on-month') {
setBasePeriodBeginsDatetime(startDate.clone().subtract(1, 'months'));
}
setReportingPeriodEndsDatetime(endDate); setReportingPeriodEndsDatetime(endDate);
if (comparisonType === 'year-over-year') { if (comparisonType === 'year-over-year') {
setBasePeriodBeginsDatetime(startDate.clone().subtract(1, 'years'));
setBasePeriodEndsDatetime(endDate.clone().subtract(1, 'years')); setBasePeriodEndsDatetime(endDate.clone().subtract(1, 'years'));
setBaseValues([basePeriodBeginsDatetime.toDate(), basePeriodEndsDatetime.toDate()]);
} else if (comparisonType === 'month-on-month') { } else if (comparisonType === 'month-on-month') {
setBasePeriodBeginsDatetime(startDate.clone().subtract(1, 'months'));
setBasePeriodEndsDatetime(endDate.clone().subtract(1, 'months')); setBasePeriodEndsDatetime(endDate.clone().subtract(1, 'months'));
setBaseValues([basePeriodBeginsDatetime.toDate(), basePeriodEndsDatetime.toDate()]);
} }
}; };
@ -285,20 +309,8 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
setValues([]); setValues([]);
}; };
var getValidBasePeriodBeginsDatetimes = function (currentDate) { let onBaseClean = event => {
return currentDate.isBefore(moment(basePeriodEndsDatetime, 'MM/DD/YYYY, hh:mm:ss a')); setValues([]);
};
var getValidBasePeriodEndsDatetimes = function (currentDate) {
return currentDate.isAfter(moment(basePeriodBeginsDatetime, 'MM/DD/YYYY, hh:mm:ss a'));
};
var getValidReportingPeriodBeginsDatetimes = function (currentDate) {
return currentDate.isBefore(moment(reportingPeriodEndsDatetime, 'MM/DD/YYYY, hh:mm:ss a'));
};
var getValidReportingPeriodEndsDatetimes = function (currentDate) {
return currentDate.isAfter(moment(reportingPeriodBeginsDatetime, 'MM/DD/YYYY, hh:mm:ss a'));
}; };
// Handler // Handler
@ -540,27 +552,20 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
<Col xs={6} sm={3}> <Col xs={6} sm={3}>
<FormGroup className="form-group"> <FormGroup className="form-group">
<Label className={labelClasses} for="basePeriodBeginsDatetime"> <Label className={labelClasses} for="basePeriodBeginsDatetime">
{t('Base Period Begins')}{t('(Optional)')} {t('Base Period')}{t('(Optional)')}
</Label> </Label>
<Datetime id='basePeriodBeginsDatetime' <DateRangePicker
value={basePeriodBeginsDatetime} readOnly={basePeriodDatetimeDisabled}
inputProps={{ disabled: basePeriodBeginsDatetimeDisabled }} format="MM/dd/yyyy hh:mm aa"
onChange={onBasePeriodBeginsDatetimeChange} value={baseValues}
isValidDate={getValidBasePeriodBeginsDatetimes} onChange={onBasePeriodChange}
closeOnSelect={true} /> size="md"
</FormGroup> style={styles}
</Col> onClean={onBaseClean}
<Col xs={6} sm={3}> locale={local}
<FormGroup className="form-group"> showMeridian
<Label className={labelClasses} for="basePeriodEndsDatetime"> placeholder={"~"}
{t('Base Period Ends')}{t('(Optional)')} />
</Label>
<Datetime id='basePeriodEndsDatetime'
value={basePeriodEndsDatetime}
inputProps={{ disabled: basePeriodEndsDatetimeDisabled }}
onChange={onBasePeriodEndsDatetimeChange}
isValidDate={getValidBasePeriodEndsDatetimes}
closeOnSelect={true} />
</FormGroup> </FormGroup>
</Col> </Col>
<Col xs={6} sm={3}> <Col xs={6} sm={3}>
@ -570,17 +575,19 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
<DateRangePicker <DateRangePicker
format="MM/dd/yyyy hh:mm aa" format="MM/dd/yyyy hh:mm aa"
value={values} value={values}
size="sm" size="md"
style={styles}
onChange={onChange} onChange={onChange}
showMeridian showMeridian
placeholder="Select Date Range" placeholder="Select Date Range"
onClean={onClean} onClean={onClean}
locale={local}
/> />
</FormGroup> </FormGroup>
</Col> </Col>
<Col xs="auto"> <Col xs="auto">
<FormGroup> <FormGroup>
<br></br> <br/>
<ButtonGroup id="submit"> <ButtonGroup id="submit">
<Button color="success" disabled={submitButtonDisabled} >{t('Submit')}</Button> <Button color="success" disabled={submitButtonDisabled} >{t('Submit')}</Button>
</ButtonGroup> </ButtonGroup>
@ -646,4 +653,4 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
); );
}; };
export default withTranslation()(withRedirect(MeterEnergy)); export default withTranslation()(withRedirect(MeterEnergy));

View File

@ -786,7 +786,21 @@ const resources = {
'API.VIRTUAL_POINT_SHOULD_BE_ANALOG_VALUE': 'Virtual point should be analog value', 'API.VIRTUAL_POINT_SHOULD_BE_ANALOG_VALUE': 'Virtual point should be analog value',
'API.WEB_MESSAGE_NOT_FOUND': 'Web message not found', 'API.WEB_MESSAGE_NOT_FOUND': 'Web message not found',
'API.WECHAT_MESSAGE_NOT_FOUND': 'Wechat message not found', 'API.WECHAT_MESSAGE_NOT_FOUND': 'Wechat message not found',
//DateRangePicker
'sunday': 'Su',
'monday': 'Mo',
'tuesday': 'Tu',
'wednesday': 'We',
'thursday': 'Th',
'friday': 'Fr',
'saturday': 'Sa',
'ok': 'OK',
'today': 'Today',
'yesterday': 'Yesterday',
'hours': 'Hours',
'minutes': 'Minutes',
'seconds': 'Seconds',
'last7Days': 'Last 7 Days'
} }
}, },
de: { de: {
@ -1582,6 +1596,21 @@ const resources = {
'API.VIRTUAL_POINT_SHOULD_BE_ANALOG_VALUE': 'Virtual point should be analog value', 'API.VIRTUAL_POINT_SHOULD_BE_ANALOG_VALUE': 'Virtual point should be analog value',
'API.WEB_MESSAGE_NOT_FOUND': 'Web message not found', 'API.WEB_MESSAGE_NOT_FOUND': 'Web message not found',
'API.WECHAT_MESSAGE_NOT_FOUND': 'Wechat message not found', 'API.WECHAT_MESSAGE_NOT_FOUND': 'Wechat message not found',
//DateRangePicker
'sunday': 'So',
'monday': 'Mo',
'tuesday': 'Di',
'wednesday': 'Mi',
'thursday': 'Do',
'friday': 'Fr',
'saturday': 'Sa',
'ok': 'OKAY',
'today': 'Heute',
'yesterday': 'Gestern',
'hours': 'Stunden',
'minutes': 'Protokoll',
'seconds': 'Nachschlag',
'last7Days': 'Letzte 7 Tage'
} }
}, },
zh_CN: { zh_CN: {
@ -2349,7 +2378,22 @@ const resources = {
'API.VIRTUAL_METER_OF_VARIABLE_NOT_FOUND': 'Virtual meter of variable not found', 'API.VIRTUAL_METER_OF_VARIABLE_NOT_FOUND': 'Virtual meter of variable not found',
'API.VIRTUAL_POINT_SHOULD_BE_ANALOG_VALUE': 'Virtual point should be analog value', 'API.VIRTUAL_POINT_SHOULD_BE_ANALOG_VALUE': 'Virtual point should be analog value',
'API.WEB_MESSAGE_NOT_FOUND': 'Web message not found', 'API.WEB_MESSAGE_NOT_FOUND': 'Web message not found',
'API.WECHAT_MESSAGE_NOT_FOUND': 'Wechat message not found' 'API.WECHAT_MESSAGE_NOT_FOUND': 'Wechat message not found',
//DateRangePicker
'sunday': '',
'monday': '',
'tuesday': '',
'wednesday': '',
'thursday': '',
'friday': '',
'saturday': '',
'ok': '确定',
'today': '今天',
'yesterday': '昨天',
'hours': '',
'minutes': '',
'seconds': '',
'last7Days': '最近七天',
} }
} }
}; };