Commit 60a070328d24c4d59b2169b8ce453bbaf1e70631

Authored by 杜志良
1 parent 0a450031

fix(cas): 厂家索赔提报和确认,配件数量展示优化

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 &#39;@/pages/cas/utils&#39;;
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 +}
... ...