diff --git a/src/pages/report/index.tsx b/src/pages/report/index.tsx
index 9eb3d22..11bb94d 100644
--- a/src/pages/report/index.tsx
+++ b/src/pages/report/index.tsx
@@ -16,26 +16,18 @@ import TopContent from './components/TopContent';
// 核心代码
import { useSearchParams } from 'react-router-dom'
import {getRoundNumber} from "@/utils";
+import 'twin.macro';
+import {Meter04KvType} from "@/shared/model-park";
-function getAmount(amount: string, loss: string, refund: string, price: string): string {
- return `${
- getRoundNumber(
- Number(
- getRoundNumber(
- Number(
- (Number(
- (Number(amount) + Number(loss)
- )
- ) -
- Number(refund)
- )
- )
- )
- ) * Number(price)
- )}`
+function getNestAmount(arr: string[] = []): string {
+ if (!arr.length) {
+ return "0"
+ }
+ return arr?.reduce((prev, next) => {
+ return getRoundNumber(Number(prev || 0) + Number(next || 0))
+ })
}
-
export const UserReport: FC = () => {
const [searchParams] = useSearchParams()
const tid = searchParams.get("tenement");
@@ -83,23 +75,165 @@ export const UserReport: FC = () => {
const renderTable = useCallback(() => {
return data?.meters?.map((item, index) => {
- const finalAmount = Number(item?.overall?.amount || 0) + Number(item?.loss?.amount || 0) + Number(item?.publicAmount || 0)
+ // const finalAmount = Number(item?.overall?.amount || 0) + Number(item?.loss?.amount || 0) + Number(item?.publicAmount || 0)
return (
- {item?.meterNo} |
{item?.address} |
- {outputWithPrecision(item?.startNumber, 2, '-')} |
- {outputWithPrecision(item?.endNumber, 2, '-')} |
- {outputWithPrecision(item?.displayRatio, 2, '-')} |
- {outputWithPrecision(item?.overall?.amount, 2, '-')} |
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(item?.startNumber, 2, '-')} | :
+
+ 尖:{item?.startSharp}
+ 峰:{item?.startPeak}
+ 平:{item?.startFlat}
+ 谷:{item?.startValley}
+ |
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(item?.endNumber, 2, '-')} | :
+
+ 尖:{item?.endSharp}
+ 峰:{item?.endPeak}
+ 平:{item?.endFlat}
+ 谷:{item?.endValley}
+ |
+ }
+
+ {outputWithPrecision(item?.ratio, 2, '-')} |
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {item?.refundAmount} | :
+
+ 尖:{item?.refundSharp}
+ 峰:{item?.refundPeak}
+ 平:{item?.refundFlat}
+ 谷:{item?.refundValley}
+ |
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {item?.nestOverall} | :
+
+ 尖:{item?.nestSharp}
+ 峰:{item?.nestPeak}
+ 平:{item?.nestFlat}
+ 谷:{item?.nestValley}
+ |
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(item?.overall?.amount, 2, '-')} | :
+
+ 尖:{item?.critical?.amount}
+ 峰:{item?.peak?.amount}
+ 平:{item?.flat?.amount}
+ 谷:{item?.valley?.amount}
+ |
+ }
+
{/* {outputWithPrecision(item?.finalTotal ? (1 / (1 - Number(item?.loss?.amount) / Number(item?.finalTotal)) - 1) * 100 : undefined, 2, '-')} % | */}
- {outputWithPrecision(item?.loss?.amount, 2, '-')} |
- {outputWithPrecision(item?.publicAmount, 2, '-')} |
- {outputWithPrecision(finalAmount, 2, '-')} |
+ {
+ data?.tenement?.feeType === 3 ? null : (
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(item?.loss?.amount, 2, '-')} | :
+
+ 尖:{item?.lossSharp}
+ 峰:{item?.lossPeak}
+ 平:{item?.lossFlat}
+ 谷:{item?.lossValley}
+ |
+
+ )
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(item?.publicAmount, 2, '-')} | :
+
+ 尖:{item?.poolSharp || 0}
+ 峰:{item?.poolPeak || 0}
+ 平:{item?.poolFlat || 0}
+ 谷:{item?.poolValley || 0}
+ |
+ }
+
+
+ {outputWithPrecision(item?.finalAmount, 2, '-')} |
- )
+ )
})
- }, [data?.meters])
+ }, [data?.meters, data?.park?.meter04kvType])
+
+ const renderTableSum = useCallback(() => {
+ if (data?.meters?.length < 2) {
+ return null;
+ }
+ return
+ 总计 |
+ - |
+ - |
+ - |
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {data?.comprehensive?.refundOverall} | :
+
+ 尖:{data?.comprehensive?.refundSharp}
+ 峰:{data?.comprehensive?.refundPeak}
+ 平:{data?.comprehensive?.refundFlat}
+ 谷:{data?.comprehensive?.refundValley}
+ |
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {getNestAmount(data?.meters?.map(item => item?.nestOverall))} | :
+
+ 尖:{getNestAmount(data?.meters?.map(item => item?.nestSharp))}
+ 峰:{getNestAmount(data?.meters?.map(item => item?.nestPeak))}
+ 平:{getNestAmount(data?.meters?.map(item => item?.nestFlat))}
+ 谷:{getNestAmount(data?.meters?.map(item => item?.nestValley))}
+ |
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(data?.comprehensive?.consumption, 2, '-')} | :
+
+ 尖:{data?.comprehensive?.sharpAmount}
+ 峰:{data?.comprehensive?.peakAmount}
+ 平:{data?.comprehensive?.flatAmount}
+ 谷:{data?.comprehensive?.valleyAmount}
+ |
+ }
+
+ {/* {outputWithPrecision(item?.finalTotal ? (1 / (1 - Number(item?.loss?.amount) / Number(item?.finalTotal)) - 1) * 100 : undefined, 2, '-')} % | */}
+ {
+ data?.tenement?.feeType === 3 ? null : (
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(data?.comprehensive?.lossAmount, 2, '-')} | :
+
+ 尖:{data?.comprehensive?.lossSharp}
+ 峰:{data?.comprehensive?.lossPeak}
+ 平:{data?.comprehensive?.lossFlat}
+ 谷:{data?.comprehensive?.lossValley}
+ |
+
+ )
+ }
+ {
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ?
+ {outputWithPrecision(data?.comprehensive?.publicAmount, 2, '-')} | :
+
+ 尖:{data?.comprehensive?.poolSharp || 0}
+ 峰:{data?.comprehensive?.poolPeak || 0}
+ 平:{data?.comprehensive?.poolFlat || 0}
+ 谷:{data?.comprehensive?.poolValley || 0}
+ |
+ }
+
+
+ {outputWithPrecision(
+ `${(data?.park?.meter04kvType === 0 ? amount?.current : data?.comprehensive?.finalAmount) || 0}`, 2, '-')} |
+
+ }, [data?.meters, data?.park?.meter04kvType, data?.comprehensive])
return (
<>
@@ -109,16 +243,20 @@ export const UserReport: FC = () => {
td {
padding: 0.2cm
}
- tr td:nth-child(1) {
- width: 3.5cm;
+ ${
+ data?.park?.meter04kvType === Meter04KvType.DisableValley ? ` tr td:nth-child(1) {
+
+ width: 4.5cm;
+ }` : ` tr td:nth-child(1) {
+ width: 2cm;
+
+ }`
+ }
+
+ tr td:nth-child(2), tr td:nth-child(3), tr td:nth-child(4) {
+ width: 1.5cm;
}
- tr td:nth-child(2) {
- width: 4.5cm;
- }
- tr td:nth-child(3), tr td:nth-child(4), tr td:nth-child(5) {
- width: 1.8cm;
- }
- tr td:nth-child(6), tr td:nth-child(7), tr td:nth-child(8), tr td:nth-child(9) {
+ tr td:nth-child(5), tr td:nth-child(6), tr td:nth-child(7), tr td:nth-child(8), tr td:nth-child(9), tr td:nth-child(10) {
width: 2cm;
}
#content, .ant-col {
@@ -215,9 +353,13 @@ export const UserReport: FC = () => {
合计电量:
{
outputWithPrecision(
- `${Number(amount.current || 0)}`, 2, '-')} 千瓦时
+ `${Number((data?.park?.meter04kvType === 0 ? amount?.current : data?.comprehensive?.finalAmount) || 0)}`, 2, '-')} 千瓦时
+
+ 合计电费:
+ {outputWithPrecision(data?.comprehensive?.total, 2, '-')} 元
+