Commit 3e16682419abae2bbc87aa5b594f586047e4ed9d
Merge branch 'd-cas' into 'master'
fix(cas): 厂家索赔提报和确认,配件数量展示优化 See merge request !761
Showing
6 changed files
with
49 additions
and
8 deletions
src/pages/cas/ClaimConfirmation/components/DetailModal.tsx
... | ... | @@ -131,7 +131,7 @@ export default function DetailMOdal({ current, visible, setVisible, setLoading: |
131 | 131 | dataIndex: 'partCnt', |
132 | 132 | title: '配件数量', |
133 | 133 | align: 'center', |
134 | - render: (partCnt: number, record: any) => formatPartCnt(record.divisionRate, partCnt, record.capacity), | |
134 | + render: (partCnt: number, record: any) => formatPartCnt(record.divisionRate, partCnt, record.capacity, record.oilUnit), | |
135 | 135 | }, |
136 | 136 | { |
137 | 137 | dataIndex: 'partCode', | ... | ... |
src/pages/cas/ClaimConfirmation/components/SpecialFeeConfirm.tsx
... | ... | @@ -108,7 +108,7 @@ export default function SpecialFeeDetail({ current, visible, setVisible, setLoad |
108 | 108 | { |
109 | 109 | dataIndex: 'partCnt', |
110 | 110 | title: '配件数量', |
111 | - render: (partCnt: number, record: any) => formatPartCnt(record.divisionRate, partCnt, record.capacity), | |
111 | + render: (partCnt: number, record: any) => formatPartCnt(record.divisionRate, partCnt, record.capacity, record.oilUnit), | |
112 | 112 | }, |
113 | 113 | { |
114 | 114 | dataIndex: 'unitPrice', | ... | ... |
src/pages/cas/ClaimFiling/api.ts
... | ... | @@ -41,6 +41,10 @@ export interface Parts { |
41 | 41 | unitPrice: number; //配件单价 |
42 | 42 | partCnt: number; //配件数量 |
43 | 43 | totalPrice: number; //配件总价 |
44 | + divisionRate?: 1 | 100; // 机油出库方式 | |
45 | + capacity?: number; // 容量 | |
46 | + oilUnit?: string; // 容量单位 | |
47 | + unit?: string; // 单位 | |
44 | 48 | } |
45 | 49 | |
46 | 50 | export interface Items { | ... | ... |
src/pages/cas/ClaimFiling/components/DetailModal.tsx
... | ... | @@ -47,7 +47,7 @@ export default function DetailMOdal({ current, visible, setVisible, setLoading: |
47 | 47 | |
48 | 48 | // let position = 0; // 表格合并的位置,哪一行需要展示 |
49 | 49 | // let workposition = 0; |
50 | - const optRecordsColums: ColumnsType<any> = [ | |
50 | + const optRecordsColums: ColumnsType<Detail> = [ | |
51 | 51 | { |
52 | 52 | dataIndex: 'itemName', |
53 | 53 | title: '作业项', |
... | ... | @@ -98,7 +98,7 @@ export default function DetailMOdal({ current, visible, setVisible, setLoading: |
98 | 98 | dataIndex: 'partCnt', |
99 | 99 | title: '配件数量', |
100 | 100 | align: 'center', |
101 | - render: (partCnt: number, record: any) => formatPartCnt(record.divisionRate, partCnt, record.capacity), | |
101 | + render: (partCnt: number, record: Parts) => formatPartCnt(record.divisionRate, partCnt, record.capacity, record.oilUnit), | |
102 | 102 | }, |
103 | 103 | { |
104 | 104 | dataIndex: 'partCode', |
... | ... | @@ -278,6 +278,8 @@ export default function DetailMOdal({ current, visible, setVisible, setLoading: |
278 | 278 | }); |
279 | 279 | } |
280 | 280 | |
281 | + console.log('log=>optRecords', optRecords); | |
282 | + | |
281 | 283 | return ( |
282 | 284 | <Modal |
283 | 285 | title="厂家索赔提报" | ... | ... |
src/pages/cas/ClaimFiling/components/SpecialFeeSubmit.tsx
... | ... | @@ -12,7 +12,7 @@ import { formatPartCnt } from '@/pages/cas/utils'; |
12 | 12 | |
13 | 13 | import { getUnitCompanyListApi } from '@/common/api'; |
14 | 14 | import { getSpecialFeeDetail, SpecialFee, SpecialItem } from '@/pages/cas/ClaimConfirmation/api'; |
15 | -import { authToShopApi, saveApi } from '../api'; | |
15 | +import {authToShopApi, Parts, saveApi} from '../api'; | |
16 | 16 | |
17 | 17 | import st from '../style.less'; |
18 | 18 | |
... | ... | @@ -173,7 +173,7 @@ export default function DetailMOdal({ current, visible, setVisible, setLoading: |
173 | 173 | dataIndex: 'partCnt', |
174 | 174 | title: '配件数量', |
175 | 175 | align: 'center', |
176 | - render: (partCnt: number, record: any) => formatPartCnt(record.divisionRate, partCnt, record.capacity), | |
176 | + render: (partCnt: number, record: Parts) => formatPartCnt(record.divisionRate, partCnt, record.capacity, record.oilUnit), | |
177 | 177 | }, |
178 | 178 | { |
179 | 179 | dataIndex: 'partCode', | ... | ... |
src/pages/cas/utils.ts
... | ... | @@ -39,9 +39,10 @@ export function calculateOilUnit(type: OilOutType, partCnt: number, capacity?: n |
39 | 39 | * |
40 | 40 | * @param rate 1:capacity 不为空,按桶、否则为配件数量,100:机油按升计算 |
41 | 41 | * @param partCnt |
42 | - * @param capacity | |
42 | + * @param capacity 容量 | |
43 | + * @param capacityUnit 容量单位 | |
43 | 44 | */ |
44 | -export function formatPartCnt(rate: 1 | 100 = 1, partCnt: number, capacity?: number) { | |
45 | +export function formatPartCnt(rate: 1 | 100 = 1, partCnt: number, capacity?: number, capacityUnit?: string) { | |
45 | 46 | // 1. 按桶计算 |
46 | 47 | if (rate === 1) { |
47 | 48 | // 有容量,展示为桶 |
... | ... | @@ -60,6 +61,10 @@ export function formatPartCnt(rate: 1 | 100 = 1, partCnt: number, capacity?: num |
60 | 61 | } |
61 | 62 | return `${partCnt}${OilOutTypeName[1]}`; |
62 | 63 | } |
64 | + // 有容量单位,则展示对应单位,否则走后面逻辑,按通/L展示 | |
65 | + if (capacityUnit) { | |
66 | + return `${partCnt / 100}${capacityUnit}`; | |
67 | + } | |
63 | 68 | // 按升出库,机油用量转换为 L |
64 | 69 | const perAmount = currency(partCnt).divide(100).value; |
65 | 70 | // 使用量小于容量: 展示 x L |
... | ... | @@ -75,3 +80,33 @@ export function formatPartCnt(rate: 1 | 100 = 1, partCnt: number, capacity?: num |
75 | 80 | return `${partCnt / 100}${OilOutTypeName[2]} (${currency(currency(perAmount).subtract(remain).value).divide(capacity).value}桶 + ${remain}L)`; |
76 | 81 | } |
77 | 82 | } |
83 | + | |
84 | +/** | |
85 | + * 格式化配件价格单位 | |
86 | + * @param rate | |
87 | + * @param capacity | |
88 | + * @param capacityUnit | |
89 | + * @param unit (后期若需要展示对应配件单位时再做处理) | |
90 | + */ | |
91 | +export function formatPriceUnit(rate: 1 | 100 = 1, capacity?: number, capacityUnit?: string, unit?: string) { | |
92 | + if (rate === 1) { | |
93 | + if (capacity && capacity > 0) { | |
94 | + return '元/桶'; | |
95 | + } | |
96 | + return '元'; | |
97 | + } | |
98 | + if (rate === 100 && capacityUnit) { | |
99 | + return `元/${capacityUnit}`; | |
100 | + } | |
101 | + return '元/L'; // unit | |
102 | +} | |
103 | + | |
104 | +/** | |
105 | + * 格式化普通配件容量及单位 | |
106 | + * @param capacity 容量 | |
107 | + * @param oilUnit 容量单位 | |
108 | + * @param unit 配件单位 | |
109 | + */ | |
110 | +export function formatCommonPartCapacity(capacity?: number, oilUnit?: string, unit?: string) { | |
111 | + return `${capacity}${oilUnit || ''}/${unit || ''}`; | |
112 | +} | ... | ... |