Commit 4cbecaac1c14e38d829543b52534e1861242d516
1 parent
166b8697
添加商业险和装潢产值目标
Showing
3 changed files
with
70 additions
and
4 deletions
src/pages/order3/AddValueTaskConfig/api.ts
@@ -24,6 +24,8 @@ export interface ListResult { | @@ -24,6 +24,8 @@ export interface ListResult { | ||
24 | endTime?: number // 结束时间 | 24 | endTime?: number // 结束时间 |
25 | enable?: boolean // 启用/禁用 | 25 | enable?: boolean // 启用/禁用 |
26 | addedValueType?: number // 附加值类型 | 26 | addedValueType?: number // 附加值类型 |
27 | + vciOutputValueTask?: number // 商业险产值目标 | ||
28 | + decoOutputValueTask?: number // 装潢产值目标 | ||
27 | } | 29 | } |
28 | 30 | ||
29 | /** 查询附加值任务配置服务列表 */ | 31 | /** 查询附加值任务配置服务列表 */ |
src/pages/order3/AddValueTaskConfig/components/EditModal.tsx
1 | import React, { useState, useEffect } from 'react'; | 1 | import React, { useState, useEffect } from 'react'; |
2 | -import { Modal, Button, message, Form, InputNumber, DatePicker, Radio } from 'antd'; | 2 | +import { Modal, Button, message, Form, InputNumber, DatePicker, Radio, Row, Col } from 'antd'; |
3 | import {useStore} from '../index'; | 3 | import {useStore} from '../index'; |
4 | import {ListResult, saveConfigApi} from '../api'; | 4 | import {ListResult, saveConfigApi} from '../api'; |
5 | import { debounce, isNil } from 'lodash'; | 5 | import { debounce, isNil } from 'lodash'; |
@@ -57,7 +57,9 @@ export default function DetailModal() { | @@ -57,7 +57,9 @@ export default function DetailModal() { | ||
57 | decoOutputValueRatio: currentData.data?.decoOutputValueRatio, | 57 | decoOutputValueRatio: currentData.data?.decoOutputValueRatio, |
58 | shopList: currentData.data?.shopList?.map((v: any) => ({value: v.shopId, label: v.shopName})) || [], | 58 | shopList: currentData.data?.shopList?.map((v: any) => ({value: v.shopId, label: v.shopName})) || [], |
59 | rangeDate: [moment(currentData.data.beginTime), moment(currentData.data.endTime)], | 59 | rangeDate: [moment(currentData.data.beginTime), moment(currentData.data.endTime)], |
60 | - addedValueType: currentData?.data.addedValueType | 60 | + addedValueType: currentData?.data?.addedValueType, |
61 | + vciOutputValueTask: currentData?.data?.vciOutputValueTask, | ||
62 | + decoOutputValueTask: currentData?.data?.decoOutputValueTask | ||
61 | }); | 63 | }); |
62 | setType(currentData.data?.addedValueType || 2); | 64 | setType(currentData.data?.addedValueType || 2); |
63 | }; | 65 | }; |
@@ -75,7 +77,9 @@ export default function DetailModal() { | @@ -75,7 +77,9 @@ export default function DetailModal() { | ||
75 | shopList: params.shopList.map((v: any) => ({shopId: v.value, shopName: v.label})), | 77 | shopList: params.shopList.map((v: any) => ({shopId: v.value, shopName: v.label})), |
76 | beginTime: moment(params.rangeDate[0]).valueOf(), | 78 | beginTime: moment(params.rangeDate[0]).valueOf(), |
77 | endTime: moment(params.rangeDate[1]).valueOf(), | 79 | endTime: moment(params.rangeDate[1]).valueOf(), |
78 | - addedValueType: params.addedValueType | 80 | + addedValueType: params.addedValueType, |
81 | + vciOutputValueTask: params.vciOutputValueTask, | ||
82 | + decoOutputValueTask: params.decoOutputValueTask | ||
79 | }; | 83 | }; |
80 | saveConfigApi(_params) | 84 | saveConfigApi(_params) |
81 | .then(res => { | 85 | .then(res => { |
@@ -129,6 +133,54 @@ export default function DetailModal() { | @@ -129,6 +133,54 @@ export default function DetailModal() { | ||
129 | parser={(value: string) => value?.replace('元/台', '')} | 133 | parser={(value: string) => value?.replace('元/台', '')} |
130 | /> | 134 | /> |
131 | </Form.Item> | 135 | </Form.Item> |
136 | + <Row style={{marginLeft: 30}}> | ||
137 | + | ||
138 | + <Form.Item | ||
139 | + label={<span>其中:<span>商业险产值目标</span></span>} | ||
140 | + name="vciOutputValueTask" | ||
141 | + style={{width: '100%'}} | ||
142 | + rules={[({ getFieldValue }) => ({ | ||
143 | + validator(_, value) { | ||
144 | + if (isNil(value)) { | ||
145 | + return Promise.reject(new Error('请输入')); | ||
146 | + } | ||
147 | + return Promise.resolve(); | ||
148 | + }, | ||
149 | + })]} | ||
150 | + > | ||
151 | + <InputNumber | ||
152 | + style={{width: '100%'}} | ||
153 | + controls={false} | ||
154 | + min={0} | ||
155 | + formatter={(value: any) => `${value}元/台`} | ||
156 | + precision={2} | ||
157 | + parser={(value: string) => value?.replace('元/台', '')} | ||
158 | + /> | ||
159 | + </Form.Item> | ||
160 | + <Form.Item | ||
161 | + label={<span style={{textIndent: '42px'}}>装潢产值目标</span>} | ||
162 | + name="decoOutputValueTask" | ||
163 | + style={{width: '100%'}} | ||
164 | + rules={[({ getFieldValue }) => ({ | ||
165 | + validator(_, value) { | ||
166 | + if (isNil(value)) { | ||
167 | + return Promise.reject(new Error('请输入')); | ||
168 | + } | ||
169 | + return Promise.resolve(); | ||
170 | + }, | ||
171 | + })]} | ||
172 | + > | ||
173 | + <InputNumber | ||
174 | + style={{width: '100%'}} | ||
175 | + controls={false} | ||
176 | + min={0} | ||
177 | + formatter={(value: any) => `${value}元/台`} | ||
178 | + precision={2} | ||
179 | + parser={(value: string) => value?.replace('元/台', '')} | ||
180 | + /> | ||
181 | + </Form.Item> | ||
182 | + </Row> | ||
183 | + | ||
132 | <div className="addValue_wrapper"><span className="addvalue_text">*</span><span>产值构成:</span></div> | 184 | <div className="addValue_wrapper"><span className="addvalue_text">*</span><span>产值构成:</span></div> |
133 | <Form.Item | 185 | <Form.Item |
134 | label={type === 2 ? "1.计算保险毛利" : "1.计算保险产值:"} | 186 | label={type === 2 ? "1.计算保险毛利" : "1.计算保险产值:"} |
src/pages/order3/AddValueTaskConfig/components/List.tsx
@@ -43,13 +43,19 @@ export default function LargeList({addedValueType} : Props) { | @@ -43,13 +43,19 @@ export default function LargeList({addedValueType} : Props) { | ||
43 | rowKey="id" | 43 | rowKey="id" |
44 | pagination={paginationConfig} | 44 | pagination={paginationConfig} |
45 | > | 45 | > |
46 | - <Column | 46 | + <Column |
47 | title="单车附加值目标" | 47 | title="单车附加值目标" |
48 | dataIndex="addedValueTask" | 48 | dataIndex="addedValueTask" |
49 | align="left" | 49 | align="left" |
50 | render={(_text) => (isNil(_text) ? '-' : <span style={{color: "#FF921C", fontSize: '14px'}}>{_text}元<span style={{color: "#333"}}>/台</span></span>)} | 50 | render={(_text) => (isNil(_text) ? '-' : <span style={{color: "#FF921C", fontSize: '14px'}}>{_text}元<span style={{color: "#333"}}>/台</span></span>)} |
51 | /> | 51 | /> |
52 | <Column | 52 | <Column |
53 | + title="商业险产值目标" | ||
54 | + dataIndex="vciOutputValueTask" | ||
55 | + align="left" | ||
56 | + render={(_text) => (isNil(_text) ? '-' : <div style={{display: 'flex', flexDirection: 'column'}}><span style={{color: "#FF921C", fontSize: '14px'}}>{_text}元<span style={{color: "#333"}}>/台</span></span><span>(含驾意险)</span></div>)} | ||
57 | + /> | ||
58 | + <Column | ||
53 | title={addedValueType === 2 ? "计算保险毛利" : "计算保险产值"} | 59 | title={addedValueType === 2 ? "计算保险毛利" : "计算保险产值"} |
54 | dataIndex="addedValueTask" | 60 | dataIndex="addedValueTask" |
55 | align="left" | 61 | align="left" |
@@ -61,6 +67,12 @@ export default function LargeList({addedValueType} : Props) { | @@ -61,6 +67,12 @@ export default function LargeList({addedValueType} : Props) { | ||
61 | </div> | 67 | </div> |
62 | )} | 68 | )} |
63 | /> | 69 | /> |
70 | + <Column | ||
71 | + title="装潢产值目标" | ||
72 | + dataIndex="decoOutputValueTask" | ||
73 | + align="left" | ||
74 | + render={(_text) => (isNil(_text) ? '-' : <span style={{color: "#FF921C", fontSize: '14px'}}>{_text}元<span style={{color: "#333"}}>/台</span></span>)} | ||
75 | + /> | ||
64 | <Column | 76 | <Column |
65 | title={addedValueType === 2 ? "计算装潢毛利" : "计算装潢产值"} | 77 | title={addedValueType === 2 ? "计算装潢毛利" : "计算装潢产值"} |
66 | dataIndex="decoOutputValueRatio" | 78 | dataIndex="decoOutputValueRatio" |