Merge branch 'develop'

pull/128/MERGE
13621160019@163.com 2022-02-18 22:02:26 +08:00
commit d710472825
4 changed files with 1663 additions and 110 deletions

1687
web/package-lock.json generated vendored

File diff suppressed because it is too large Load Diff

3
web/package.json vendored
View File

@ -74,7 +74,8 @@
"react-typed": "^1.2.0", "react-typed": "^1.2.0",
"reactstrap": "^8.6.0", "reactstrap": "^8.6.0",
"slick-carousel": "^1.8.1", "slick-carousel": "^1.8.1",
"uuid": "^3.4.0" "uuid": "^3.4.0",
"rsuite": "^5.6.1"
}, },
"scripts": { "scripts": {
"start": "react-scripts --openssl-legacy-provider start", "start": "react-scripts --openssl-legacy-provider start",

View File

@ -2,10 +2,12 @@ import React from 'react';
import { BrowserRouter as Router } from 'react-router-dom'; import { BrowserRouter as Router } from 'react-router-dom';
import Layout from './layouts/Layout'; import Layout from './layouts/Layout';
import 'rsuite/dist/rsuite.min.css';
import 'react-toastify/dist/ReactToastify.min.css'; import 'react-toastify/dist/ReactToastify.min.css';
import 'react-datetime/css/react-datetime.css'; import 'react-datetime/css/react-datetime.css';
import 'react-image-lightbox/style.css'; import 'react-image-lightbox/style.css';
const App = () => { const App = () => {
return ( return (
<Router basename={process.env.PUBLIC_URL}> <Router basename={process.env.PUBLIC_URL}>

View File

@ -30,6 +30,7 @@ import ButtonIcon from '../../common/ButtonIcon';
import { APIBaseURL } from '../../../config'; import { APIBaseURL } from '../../../config';
import { periodTypeOptions } from '../common/PeriodTypeOptions'; import { periodTypeOptions } from '../common/PeriodTypeOptions';
import { comparisonTypeOptions } from '../common/ComparisonTypeOptions'; import { comparisonTypeOptions } from '../common/ComparisonTypeOptions';
import { DateRangePicker } from 'rsuite';
const DetailedDataTable = loadable(() => import('../common/DetailedDataTable')); const DetailedDataTable = loadable(() => import('../common/DetailedDataTable'));
@ -94,6 +95,7 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
const [detailedDataTableColumns, setDetailedDataTableColumns] = useState([{dataField: 'startdatetime', text: t('Datetime'), sort: true}]); const [detailedDataTableColumns, setDetailedDataTableColumns] = useState([{dataField: 'startdatetime', text: t('Datetime'), sort: true}]);
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()]);
useEffect(() => { useEffect(() => {
let isResponseOK = false; let isResponseOK = false;
@ -261,22 +263,26 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
setBasePeriodEndsDatetime(newDateTime); setBasePeriodEndsDatetime(newDateTime);
}; };
let onReportingPeriodBeginsDatetimeChange = (newDateTime) => { let onChange = (DateRange) => {
setReportingPeriodBeginsDatetime(newDateTime); let startDate = moment(DateRange[0]);
let endDate = moment(DateRange[1]);
setValues([DateRange[0], DateRange[1]]);
setReportingPeriodBeginsDatetime(startDate);
if (comparisonType === 'year-over-year') { if (comparisonType === 'year-over-year') {
setBasePeriodBeginsDatetime(newDateTime.clone().subtract(1, 'years')); setBasePeriodBeginsDatetime(startDate.clone().subtract(1, 'years'));
} else if (comparisonType === 'month-on-month') { } else if (comparisonType === 'month-on-month') {
setBasePeriodBeginsDatetime(newDateTime.clone().subtract(1, 'months')); setBasePeriodBeginsDatetime(startDate.clone().subtract(1, 'months'));
}
setReportingPeriodEndsDatetime(endDate);
if (comparisonType === 'year-over-year') {
setBasePeriodEndsDatetime(endDate.clone().subtract(1, 'years'));
} else if (comparisonType === 'month-on-month') {
setBasePeriodEndsDatetime(endDate.clone().subtract(1, 'months'));
} }
}; };
let onReportingPeriodEndsDatetimeChange = (newDateTime) => { let onClean = event => {
setReportingPeriodEndsDatetime(newDateTime); setValues([]);
if (comparisonType === 'year-over-year') {
setBasePeriodEndsDatetime(newDateTime.clone().subtract(1, 'years'));
} else if (comparisonType === 'month-on-month') {
setBasePeriodEndsDatetime(newDateTime.clone().subtract(1, 'months'));
}
}; };
var getValidBasePeriodBeginsDatetimes = function (currentDate) { var getValidBasePeriodBeginsDatetimes = function (currentDate) {
@ -559,26 +565,17 @@ const MeterEnergy = ({ setRedirect, setRedirectUrl, t }) => {
</Col> </Col>
<Col xs={6} sm={3}> <Col xs={6} sm={3}>
<FormGroup className="form-group"> <FormGroup className="form-group">
<Label className={labelClasses} for="reportingPeriodBeginsDatetime"> <Label className={labelClasses}>{t('Reporting Period')}</Label>
{t('Reporting Period Begins')} <br/>
</Label> <DateRangePicker
<Datetime id='reportingPeriodBeginsDatetime' format="MM/dd/yyyy hh:mm aa"
value={reportingPeriodBeginsDatetime} value={values}
onChange={onReportingPeriodBeginsDatetimeChange} size="sm"
isValidDate={getValidReportingPeriodBeginsDatetimes} onChange={onChange}
closeOnSelect={true} /> showMeridian
</FormGroup> placeholder="Select Date Range"
</Col> onClean={onClean}
<Col xs={6} sm={3}> />
<FormGroup className="form-group">
<Label className={labelClasses} for="reportingPeriodEndsDatetime">
{t('Reporting Period Ends')}
</Label>
<Datetime id='reportingPeriodEndsDatetime'
value={reportingPeriodEndsDatetime}
onChange={onReportingPeriodEndsDatetimeChange}
isValidDate={getValidReportingPeriodEndsDatetimes}
closeOnSelect={true} />
</FormGroup> </FormGroup>
</Col> </Col>
<Col xs="auto"> <Col xs="auto">