Commit 303bdbddfa5ad0d94c7560c6d2e68ba4f6fe5256
Merge remote-tracking branch 'origin/master' into dealer
Showing
21 changed files
with
204 additions
and
280 deletions
build/admin.tar.gz
No preview for this file type
config/routers/ehr.ts
1 | 1 | /* |
2 | 2 | * @Date: 2020-10-12 11:02:39 |
3 | 3 | * @LastEditors: wangqiang@feewee.cn |
4 | - * @LastEditTime: 2022-05-27 10:38:01 | |
4 | + * @LastEditTime: 2022-06-16 14:17:13 | |
5 | 5 | */ |
6 | 6 | export default [ |
7 | 7 | // 人力资源管理系统 |
... | ... | @@ -170,4 +170,8 @@ export default [ |
170 | 170 | path: "/ehr/mobileWhite", // 手机号预缴白名单 |
171 | 171 | component: "./ehr/MobileWhite", |
172 | 172 | }, |
173 | + { | |
174 | + path: "/ehr/insurance/settings", // 五险一金商业险基本配置 | |
175 | + component: "./ehr/Insurance/Settings", | |
176 | + }, | |
173 | 177 | ]; | ... | ... |
src/pages/cas/AccessoryReplacement/components/Filter.tsx
... | ... | @@ -62,7 +62,7 @@ export default function Filter({ onChange, innerParams }: Props) { |
62 | 62 | <Search |
63 | 63 | enterButton |
64 | 64 | allowClear |
65 | - placeholder="搜索配件名称" | |
65 | + placeholder="搜索配件编码" | |
66 | 66 | onChange={(e) => fetchListByNo(e.target.value)} |
67 | 67 | onSearch={handleSearchByNo} |
68 | 68 | style={{ maxWidth: 260 }} | ... | ... |
src/pages/cas/MaintenanceCard/MPList/components/List.tsx
... | ... | @@ -46,7 +46,7 @@ export default function List(props: Props) { |
46 | 46 | <Column |
47 | 47 | title="发动机排量" |
48 | 48 | dataIndex="exhaust" |
49 | - render={(text) => <div>{text ? `${text}T` : "--"}</div>} | |
49 | + render={(text) => <div>{text || "--"}</div>} | |
50 | 50 | /> |
51 | 51 | <Column title="适用范围" dataIndex="brandName" /> |
52 | 52 | <Column title="有效期" dataIndex="validity" /> | ... | ... |
src/pages/cas/MaintenanceCard/Upsert/components/CarModal.tsx
src/pages/cas/MaintenanceCard/Upsert/components/Step1.tsx
... | ... | @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; |
2 | 2 | import { Input, Card, Select, InputNumber, Button } from "antd"; |
3 | 3 | import * as IF from "../interface"; |
4 | 4 | import Form, { FormInstance } from "antd/lib/form"; |
5 | -import { getShopList } from "../api"; | |
5 | +import { getShopList, getSpecListApi} from "../api"; | |
6 | 6 | import { formItemLayout } from "../entity"; |
7 | 7 | import CasSpceCodeSelector from "@/components/CasSpceCodeSelector"; |
8 | 8 | import { Store } from "antd/lib/form/interface"; |
... | ... | @@ -19,10 +19,12 @@ interface Props { |
19 | 19 | onChange: (data: IF.DetailVO) => any; |
20 | 20 | disabled: boolean; |
21 | 21 | onValuesChange: (changedValues: Store, values: Store) => void; |
22 | + setOil?: (value: any) => any | |
22 | 23 | } |
23 | 24 | |
24 | 25 | export default function Step1(props: Props) { |
25 | - const { detail, onNext, form, onChange, disabled, onValuesChange } = props; | |
26 | + const { detail, onNext, form, onChange, disabled, onValuesChange, setOil } = | |
27 | + props; | |
26 | 28 | const [shops, setShops] = useState<IF.ShopItem[]>([]); |
27 | 29 | //@ts-ignore |
28 | 30 | const { data: specs } = useInitial(getSeriesApi, [], detail.brandId); // 车系数据 |
... | ... | @@ -33,6 +35,26 @@ export default function Step1(props: Props) { |
33 | 35 | fetchShops(); |
34 | 36 | }, []); |
35 | 37 | |
38 | + const isFinish = () => { | |
39 | + const _obj = form.getFieldsValue(); | |
40 | + console.log(_obj); | |
41 | + if (_obj.inhaleType && _obj.series && _obj.exhaust) { | |
42 | + getSpecListApi({ | |
43 | + brandId: detail.brandId, | |
44 | + seriesId: form.getFieldValue("series").value, | |
45 | + exhaust: form.getFieldValue("exhaust"), | |
46 | + inhaleType: form.getFieldValue("inhaleType"), | |
47 | + }) | |
48 | + .then((res) => { | |
49 | + const _data = res.data; | |
50 | + const _oil = | |
51 | + _data && _data.length > 0 ? _data[0].motorOil : undefined; | |
52 | + setOil && setOil(_oil); | |
53 | + }) | |
54 | + .catch((e) => console.log(e.message)) | |
55 | + } | |
56 | + }; | |
57 | + | |
36 | 58 | function fetchShops() { |
37 | 59 | getShopList(detail.brandId) |
38 | 60 | .then((res) => { |
... | ... | @@ -119,6 +141,7 @@ export default function Step1(props: Props) { |
119 | 141 | showSearch |
120 | 142 | filterOption={filterDealer} |
121 | 143 | disabled={disabled} |
144 | + onSelect={() => isFinish()} | |
122 | 145 | // onSelect={(e: any) => onSelectCode(e)} |
123 | 146 | > |
124 | 147 | {specs.map((item: any, index: number) => ( |
... | ... | @@ -130,11 +153,12 @@ export default function Step1(props: Props) { |
130 | 153 | </Form.Item> |
131 | 154 | <Form.Item |
132 | 155 | {...formItemLayout} |
133 | - label="发动机排量(T)" | |
156 | + label="发动机排量" | |
134 | 157 | name="exhaust" |
135 | 158 | rules={[{ required: true }]} |
159 | + | |
136 | 160 | > |
137 | - <InputNumber style={{ width: "60%" }} min={0} disabled={disabled} /> | |
161 | + <InputNumber onChange={() => isFinish()} style={{ width: "60%" }} min={0} disabled={disabled} /> | |
138 | 162 | </Form.Item> |
139 | 163 | <Form.Item |
140 | 164 | {...formItemLayout} |
... | ... | @@ -148,7 +172,8 @@ export default function Step1(props: Props) { |
148 | 172 | showSearch |
149 | 173 | filterOption={filterDealer} |
150 | 174 | // onSelect={(e: any) => onSelectCode(e)} |
151 | - disabled={disabled} | |
175 | + disabled={disabled} | |
176 | + onSelect={() => isFinish()} | |
152 | 177 | > |
153 | 178 | <Option value={1}>自然吸气</Option> |
154 | 179 | <Option value={2}>涡轮增压</Option> | ... | ... |
src/pages/cas/MaintenanceCard/Upsert/components/Step2.tsx
... | ... | @@ -16,14 +16,20 @@ interface Props { |
16 | 16 | form: FormInstance, |
17 | 17 | disabled: boolean |
18 | 18 | onValuesChange: (changedValues: Store, values: Store) => void |
19 | + oil?: number | |
19 | 20 | } |
20 | 21 | |
21 | 22 | export default function Step2(props: Props) { |
22 | - const { onNext, form, onBack, loading, disabled, detail, onValuesChange } = props; | |
23 | + const { onNext, form, onBack, loading, disabled, detail, onValuesChange, oil } = props; | |
23 | 24 | |
24 | 25 | useEffect(() => { |
25 | 26 | }, [detail]); |
26 | 27 | |
28 | + useEffect(() => { | |
29 | + console.log('oil', oil) | |
30 | + form.setFieldsValue({ oilDosage: oil }); | |
31 | + }, [oil]); | |
32 | + | |
27 | 33 | function engineOilValidator(rule: any, value: PartItem[]) { |
28 | 34 | const _value = value; |
29 | 35 | if (!_value || value.length < 1) { |
... | ... | @@ -66,7 +72,7 @@ export default function Step2(props: Props) { |
66 | 72 | }, |
67 | 73 | ]} |
68 | 74 | > |
69 | - <InputNumber disabled={disabled} /> | |
75 | + <InputNumber disabled /> | |
70 | 76 | </Form.Item> |
71 | 77 | |
72 | 78 | <Form.Item | ... | ... |
src/pages/cas/MaintenanceCard/Upsert/index.tsx
... | ... | @@ -6,13 +6,11 @@ import { ConnectProps } from "@/typing/common"; |
6 | 6 | import Step1 from './components/Step1'; |
7 | 7 | import Step2 from './components/Step2'; |
8 | 8 | import Step3 from './components/Step3'; |
9 | -import { getDetail, saveDetail } from './api'; | |
9 | +import { getDetail, saveDetail, getSpecListApi } from './api'; | |
10 | 10 | import { FormProps } from 'antd/lib/form'; |
11 | 11 | import SubTitle from './components/SubTitle'; |
12 | 12 | import { transformFormData, transformDTO } from './entity'; |
13 | 13 | import { StatusEnum } from '@/pages/cas/MaintenanceCard/MPList/entity'; |
14 | -import useFormStorage from '@/hooks/useFormStorage'; | |
15 | -import useStorage from '@/hooks/useStorage'; | |
16 | 14 | |
17 | 15 | const { Step } = Steps; |
18 | 16 | const { TabPane } = Tabs; |
... | ... | @@ -30,6 +28,7 @@ const Create = (props: Prop) => { |
30 | 28 | const [disabled, setDisabled] = useState<boolean>(false); |
31 | 29 | const [saveResult, setSaveResult] = useState<IF.SaveResult>({}); |
32 | 30 | const [form] = Form.useForm(); |
31 | + const [oil, setOil] = useState<number>(); | |
33 | 32 | |
34 | 33 | // const { setFormStorage, removeFormStorage, hasFormStorage } = useFormStorage(`form/cas/MaintenancePackageCard/list/upsert/${brandId}/${maintainId}/${isCopy}`, form); |
35 | 34 | // const { removeStorage } = useStorage(`/cas/MaintenancePackageCard/list/upsert/${brandId}/${maintainId}/${isCopy}`, { |
... | ... | @@ -60,7 +59,25 @@ const Create = (props: Prop) => { |
60 | 59 | function loadData() { |
61 | 60 | getDetail(maintainId).then(res => { |
62 | 61 | const _data = res.data || {}; |
62 | + // 查油量 | |
63 | + if (_data.inhaleType && _data.seriesId && _data.exhaust) { | |
64 | + getSpecListApi({ | |
65 | + brandId: detail.brandId, | |
66 | + seriesId: _data.seriesId, | |
67 | + exhaust: _data.exhaust, | |
68 | + inhaleType: _data.inhaleType, | |
69 | + }) | |
70 | + .then((res) => { | |
71 | + const _res = res.data; | |
72 | + const _oil = _res && _res.length > 0 ? _res[0].motorOil : undefined; | |
73 | + // form.setFieldsValue({ oilDosage: _oil }); | |
74 | + // _data.oilDosage = _oil; | |
75 | + setOil(_oil); | |
76 | + }) | |
77 | + .catch((e) => console.log(e.message)) | |
78 | + } | |
63 | 79 | _data.series = {value: res.data!.seriesId, label: res.data!.seriesName} |
80 | + // _data.oilDosage = oil | |
64 | 81 | if (isCopy) { |
65 | 82 | _data.maintainId = undefined; |
66 | 83 | _data.status = undefined; |
... | ... | @@ -76,6 +93,7 @@ const Create = (props: Prop) => { |
76 | 93 | } |
77 | 94 | |
78 | 95 | function _onChange(cur: number) { |
96 | + console.log('cccc', cur) | |
79 | 97 | if (cur == 2) { |
80 | 98 | return; |
81 | 99 | } |
... | ... | @@ -151,6 +169,7 @@ const Create = (props: Prop) => { |
151 | 169 | detail={detail} |
152 | 170 | onChange={(data: IF.DetailVO) => setDetail(data)} |
153 | 171 | onNext={() => _onChange(current + 1)} |
172 | + setOil={setOil} | |
154 | 173 | /> |
155 | 174 | </TabPane> |
156 | 175 | <TabPane key="1"> |
... | ... | @@ -162,6 +181,7 @@ const Create = (props: Prop) => { |
162 | 181 | loading={submitLoading} |
163 | 182 | onNext={() => _save()} |
164 | 183 | onBack={() => setCurrent(0)} |
184 | + oil={oil} | |
165 | 185 | /> |
166 | 186 | </TabPane> |
167 | 187 | <TabPane key="2"> | ... | ... |
src/pages/cas/UserToCar/index.tsx
... | ... | @@ -35,6 +35,8 @@ export default function OrderManage() { |
35 | 35 | pagination={paginationConfig} |
36 | 36 | rowKey="id" |
37 | 37 | > |
38 | + <Column title="会员id" dataIndex="memberId" align="center" /> | |
39 | + <Column title="会员名称" dataIndex="memberName" align="center" /> | |
38 | 40 | <Column title="车主" dataIndex="name" align="center" /> |
39 | 41 | <Column |
40 | 42 | title="车牌号" | ... | ... |
src/pages/cas/YunweiOrderManage/index.tsx
... | ... | @@ -92,7 +92,7 @@ export default function OrderManage() { |
92 | 92 | <Button type="ghost" danger size="small" style={{ marginLeft: 10 }}>完工</Button> |
93 | 93 | </Popconfirm> |
94 | 94 | )} */} |
95 | - <Button type="ghost" size="small" onClick={() => setModalData({ visible: true, detail: row })}>车型代码</Button> | |
95 | + {/* <Button type="ghost" size="small" onClick={() => setModalData({ visible: true, detail: row })}>车型代码</Button> */} | |
96 | 96 | {![OrderStatusEnum["已完成"], OrderStatusEnum["已取消"]].includes(row.status || OrderStatusEnum["已取消"]) && ( |
97 | 97 | <Popconfirm title={`确认直接结束【${row.orderNo}】?`} onConfirm={() => endOrder(row)}> |
98 | 98 | <Button danger type="ghost" style={{ marginLeft: 10 }} size="small">结束</Button> | ... | ... |
src/pages/cas/afterSaleConfiguration/maintainConfig/components/OilDetail/index.tsx
1 | 1 | import React, { useState, useEffect } from 'react'; |
2 | 2 | import { Table, Modal, Button, message, Switch } from 'antd'; |
3 | -import { getDetailApi } from '../../subpages/MaintainEdit/api'; | |
3 | +import { getDetailApi, getSpecListApi } from '../../subpages/MaintainEdit/api'; | |
4 | 4 | import Oil from './components/Oil'; |
5 | 5 | import Energy from "./components/Energy"; |
6 | 6 | |
... | ... | @@ -18,19 +18,38 @@ export default function OilDetailModal({ visible, onCancel, rowId }: Props) { |
18 | 18 | if (visible) { |
19 | 19 | setLoading(true); |
20 | 20 | getDetailApi(rowId).then(res => { |
21 | - const _data = res.data; | |
21 | + const _data = res.data || {}; | |
22 | 22 | if (_data && _data.newEnergy) { |
23 | 23 | setDetail(res.data); |
24 | 24 | } else { |
25 | - const _lsit = _data && _data.oilGroups && _data.oilGroups.map((item) => ({ | |
26 | - ...item, | |
27 | - recommend: item.defaultUse, | |
28 | - oils: (item.oils || []).map((oil) => ({ | |
29 | - ...oil, | |
30 | - partNumber: oil.quantity, | |
31 | - })), | |
32 | - })); | |
33 | - setDetail({..._data, oilGroups: _lsit}); | |
25 | + // 查油量 | |
26 | + if (_data.inhaleType && _data.seriesId && _data.exhaust) { | |
27 | + getSpecListApi({ | |
28 | + brandId: _data.brandId, | |
29 | + seriesId: _data.seriesId, | |
30 | + exhaust: _data.exhaust, | |
31 | + inhaleType: _data.inhaleType, | |
32 | + }) | |
33 | + .then((res) => { | |
34 | + const _res = res.data; | |
35 | + const _oil = | |
36 | + _res && _res.length > 0 ? _res[0].motorOil : undefined; | |
37 | + setDetail({..._data, oilDosage: _oil}) | |
38 | + }) | |
39 | + .catch((e) => console.log(e.message)); | |
40 | + } | |
41 | + const _lsit = | |
42 | + _data && | |
43 | + _data.oilGroups && | |
44 | + _data.oilGroups.map((item) => ({ | |
45 | + ...item, | |
46 | + recommend: item.defaultUse, | |
47 | + oils: (item.oils || []).map((oil) => ({ | |
48 | + ...oil, | |
49 | + partNumber: oil.quantity, | |
50 | + })), | |
51 | + })); | |
52 | + setDetail({ ..._data, oilGroups: _lsit }); | |
34 | 53 | } |
35 | 54 | }).catch(e => { |
36 | 55 | message.error(e.message); | ... | ... |
src/pages/cas/afterSaleConfiguration/maintainConfig/index.tsx
... | ... | @@ -106,7 +106,7 @@ export default function maintainConfig() { |
106 | 106 | dataIndex="inhaleType" |
107 | 107 | align="center" |
108 | 108 | width="15%" |
109 | - render={(text) => <div>{text ? `${Way[text]}` : "--"}</div>} | |
109 | + render={(text) => <div>{text || "--"}</div>} | |
110 | 110 | /> |
111 | 111 | <Column |
112 | 112 | title="基础保养项目" | ... | ... |
src/pages/cas/afterSaleConfiguration/maintainConfig/interface.d.ts
src/pages/cas/afterSaleConfiguration/maintainConfig/subpages/MaintainEdit/components/EngineOilSelector/index.tsx
... | ... | @@ -17,7 +17,7 @@ export interface EngineOilSelectorValue { |
17 | 17 | oilBrandId?: number; |
18 | 18 | oilBrandName?: string; |
19 | 19 | oils: Maintain.oilGroup[]; |
20 | - [key: string]: any; | |
20 | + oil?:number | |
21 | 21 | } |
22 | 22 | |
23 | 23 | // export interface EngineOilSelectorElseValue extends Maintain.oilGroup { |
... | ... | @@ -38,17 +38,23 @@ export interface Props { |
38 | 38 | oringPriceType?: boolean; |
39 | 39 | hasRecommendSwitch?: boolean; |
40 | 40 | oilConsumption?: number; |
41 | + oil?:number | |
41 | 42 | } |
42 | 43 | |
43 | 44 | function EngineOilSelector(props: Props) { |
44 | 45 | const {fuelcar} = props; |
45 | - const { value = fuelcar.oildata, elsevalue = fuelcar.filterdata, onChange, disabled, hasRecommendSwitch, priceType, brandId, oringPriceType, onOil, oilConsumption} = props; | |
46 | + const { value = fuelcar.oildata, elsevalue = fuelcar.filterdata, onChange, disabled, hasRecommendSwitch, priceType, brandId, oringPriceType, onOil, oilConsumption, oil} = props; | |
46 | 47 | const [visible, setVisible] = useState<boolean>(false); |
47 | 48 | // const [elsevisible, setElseVisible] = useState<boolean>(false); |
48 | 49 | |
49 | 50 | //编辑行 |
50 | 51 | const [form] = Form.useForm(); |
51 | 52 | |
53 | + useEffect(() => { | |
54 | + console.log("oil", oil); | |
55 | + form.setFieldsValue({ oilConsumption: oil }); | |
56 | + }, [oil]); | |
57 | + | |
52 | 58 | useEffect(() => { |
53 | 59 | if (oilConsumption) { |
54 | 60 | form.setFieldsValue({ |
... | ... | @@ -274,6 +280,7 @@ function EngineOilSelector(props: Props) { |
274 | 280 | style={{ marginRight: 10 }} |
275 | 281 | onChange={(e) => onOli(e)} |
276 | 282 | defaultValue={oilConsumption} |
283 | + disabled | |
277 | 284 | /> |
278 | 285 | </Form.Item> |
279 | 286 | </Form> | ... | ... |
src/pages/cas/afterSaleConfiguration/maintainConfig/subpages/MaintainEdit/components/SpecModal/index.tsx
... | ... | @@ -39,6 +39,11 @@ export default function SpecModal({ |
39 | 39 | pagination={false} |
40 | 40 | scroll={{ y: 500 }} |
41 | 41 | > |
42 | + <Column | |
43 | + title="整车型号代码名称" | |
44 | + dataIndex="specCodeName" | |
45 | + align="center" | |
46 | + /> | |
42 | 47 | <Column title="整车型号代码" dataIndex="specCode" align="center" /> |
43 | 48 | </Table> |
44 | 49 | </Modal> | ... | ... |
src/pages/cas/afterSaleConfiguration/maintainConfig/subpages/MaintainEdit/index.tsx
... | ... | @@ -42,7 +42,8 @@ export default function SaveModal({ match, location }: Props) { |
42 | 42 | const [loading, setLoading] = useState(false); |
43 | 43 | const [specVisible, setSpecVisible] = useState(false); |
44 | 44 | const [current, setCurrent] = useState<any>(); |
45 | - // const [groupSpec, setGroupSpec] = useState<Maintain.SpecCode[]>([]); | |
45 | + const [oil, setOil] = useState<number>(); | |
46 | + | |
46 | 47 | //使用范围 |
47 | 48 | //使用范围 |
48 | 49 | const [scope, setScope] = useState<Scope>({ |
... | ... | @@ -71,102 +72,39 @@ export default function SaveModal({ match, location }: Props) { |
71 | 72 | // fetchGroupList(); |
72 | 73 | }, []); |
73 | 74 | |
74 | - //根据 车型代码查范围 | |
75 | - // const onSelectCode = (e: any) => { | |
76 | - // api | |
77 | - // .getEnergyCar(e) | |
78 | - // .then((res) => { | |
79 | - // setNewEnergyHidden(false); | |
80 | - // if (res.data) { | |
81 | - // setCar(2); | |
82 | - // } else { | |
83 | - // setCar(1); | |
84 | - // } | |
85 | - // }) | |
86 | - // .catch((err) => { | |
87 | - // setNewEnergyHidden(true); | |
88 | - // //message.error(err.message); | |
89 | - // }); | |
90 | - // // const _data = groupSpec.filter((v: any) => v.code === e); | |
91 | - // api | |
92 | - // .getGroupSpecSelectCar(e) | |
93 | - // .then((res) => setScope({ | |
94 | - // hidden: true, | |
95 | - // data: { | |
96 | - // // codename: _data.length > 0 ? _data[0].name : e, | |
97 | - // codelength: res.data?.length, | |
98 | - // codedata: res.data || [], | |
99 | - // }, | |
100 | - // }) | |
101 | - // ) | |
102 | - // .catch((err) => message.error(err.message)); | |
103 | - // }; | |
104 | - | |
105 | 75 | function _fetchDetail() { |
106 | 76 | setLoading(true); |
107 | 77 | api |
108 | 78 | .getDetailApi(id) |
109 | 79 | .then((res) => { |
110 | 80 | const { data } = res; |
111 | - // data && onSelectCode(data.specGroupCode); | |
81 | + const _data = res.data || {}; | |
82 | + // 查油量 | |
83 | + if (_data.inhaleType && _data.seriesId && _data.exhaust) { | |
84 | + api.getSpecListApi({ | |
85 | + brandId, | |
86 | + seriesId: _data.seriesId, | |
87 | + exhaust: _data.exhaust, | |
88 | + inhaleType: _data.inhaleType, | |
89 | + }) | |
90 | + .then((res) => { | |
91 | + const _res = res.data; | |
92 | + const _oil = | |
93 | + _res && _res.length > 0 ? _res[0].motorOil : undefined; | |
94 | + setOil(_oil); | |
95 | + }) | |
96 | + .catch((e) => console.log(e.message)); | |
97 | + } | |
112 | 98 | const datas = (data && data.oilGroups) || []; |
113 | 99 | // const _datas = (data && data.engineGroups) || []; |
114 | 100 | setOilConsumption(data?.oilDosage); |
115 | 101 | form.setFieldsValue({ |
116 | 102 | ...data, |
117 | - // newEnergy: data?.newEnergy === true ? "true" : 'false' | |
118 | - // oilGroups: | |
119 | - // datas && | |
120 | - // datas.map((item: Maintain.oilGroup) => ({ | |
121 | - // ...item, | |
122 | - // recommend: item.defaultUse, | |
123 | - // oils: (item.oils || []).map((oil) => ({ | |
124 | - // ...oil, | |
125 | - // partNumber: oil.quantity, | |
126 | - // })), | |
127 | - // })), | |
128 | 103 | }); |
129 | 104 | setFuelCar({ |
130 | 105 | oildata: datas, |
131 | 106 | filterdata: [], |
132 | 107 | }); |
133 | - // if (data?.newEnergy == false) { | |
134 | - // setCar(1) | |
135 | - // setFuelCar({ | |
136 | - // oildata: datas.map((item: any) => ({ | |
137 | - // ...item, | |
138 | - // recommend: item.defaultUse, | |
139 | - // oils: (item.oils || []).map((oil: any) => ({ | |
140 | - // ...oil, | |
141 | - // partNumber: oil.quantity, | |
142 | - // })), | |
143 | - // })), | |
144 | - // filterdata: _datas[0].engineParts.map((e: any) => { | |
145 | - // return { | |
146 | - // ...e, | |
147 | - // partNumber: e.quantity, | |
148 | - // recommend: e.defaultUse, | |
149 | - // }; | |
150 | - // }), | |
151 | - // }); | |
152 | - // } | |
153 | - // if (data?.newEnergy == true) { | |
154 | - // setCar(2); | |
155 | - // const _data = data.engineGroups?.map((e:any, index:number) => { | |
156 | - // return { | |
157 | - // title: e.name, | |
158 | - // list: e.engineParts.map((e: any) => { | |
159 | - // return { | |
160 | - // ...e, | |
161 | - // partNumber: e.quantity, | |
162 | - // recommend: e.defaultUse, | |
163 | - // }; | |
164 | - // }), | |
165 | - // key: `index_${index}`, | |
166 | - // }; | |
167 | - // }); | |
168 | - // setEnergyData(_data || []); | |
169 | - // } | |
170 | 108 | }) |
171 | 109 | .catch((e) => { |
172 | 110 | message.error(e.message); |
... | ... | @@ -176,19 +114,6 @@ export default function SaveModal({ match, location }: Props) { |
176 | 114 | }); |
177 | 115 | } |
178 | 116 | |
179 | - /**车辆分组代码查询 */ | |
180 | - // function fetchGroupList() { | |
181 | - // api | |
182 | - // .getGroupSpec(brandId) | |
183 | - // .then((res) => { | |
184 | - // const { data } = res; | |
185 | - // setGroupSpec(data || []); | |
186 | - // }) | |
187 | - // .catch((e) => { | |
188 | - // message.error(e.message); | |
189 | - // }); | |
190 | - // } | |
191 | - | |
192 | 117 | function filterDealer(value: string, option: any) { |
193 | 118 | return ( |
194 | 119 | value && |
... | ... | @@ -205,36 +130,8 @@ export default function SaveModal({ match, location }: Props) { |
205 | 130 | seriesId: fieldsValue.seriesId, |
206 | 131 | exhaust: fieldsValue.exhaust, |
207 | 132 | inhaleType: fieldsValue.inhaleType, |
208 | - // brandName: fieldsValue.brandName, | |
209 | - // newEnergy: newEnergyHidden ? fieldsValue.newEnergy === "true" : car === 2, | |
210 | - // specGroupCode: fieldsValue.specGroupCode, | |
211 | - // oilDosage: oilConsumption, | |
212 | 133 | oilGroups: fuelcar.oildata, |
213 | - // engineGroups: [ | |
214 | - // { | |
215 | - // name: "机滤及升级配件", | |
216 | - // engineParts: fuelcar.filterdata.map(e => { return {...e, quantity: e.partNumber, defaultUse: e.recommend} }), | |
217 | - // }, | |
218 | - // ], | |
219 | 134 | }; |
220 | - //电动参数 | |
221 | - // const _data = energyData.map((e: any) => { | |
222 | - // return { | |
223 | - // name: e.title, | |
224 | - // engineParts: e.list.map((e:any) => { | |
225 | - // return { ...e, quantity: e.partNumber, defaultUse: e.recommend }; | |
226 | - // }), | |
227 | - // }; | |
228 | - // }) | |
229 | - // const _params = { | |
230 | - // id: id ? Number(id) : undefined, | |
231 | - // brandId: brandId ? Number(brandId) : undefined, | |
232 | - // brandName: fieldsValue.brandName, | |
233 | - // newEnergy: newEnergyHidden ? fieldsValue.newEnergy === "true" : car === 2, | |
234 | - // specGroupCode: fieldsValue.specGroupCode, | |
235 | - // engineGroups: _data, | |
236 | - // }; | |
237 | - // console.log("xxxxxxxxx", _params); | |
238 | 135 | setConfirmLoading(true); |
239 | 136 | api |
240 | 137 | .saveItems(params) |
... | ... | @@ -249,6 +146,26 @@ export default function SaveModal({ match, location }: Props) { |
249 | 146 | }); |
250 | 147 | } |
251 | 148 | |
149 | + const isFinish = () => { | |
150 | + const _obj = form.getFieldsValue(); | |
151 | + console.log(_obj); | |
152 | + if (_obj.inhaleType && _obj.seriesId && _obj.exhaust) { | |
153 | + api.getSpecListApi({ | |
154 | + brandId, | |
155 | + seriesId: form.getFieldValue("seriesId"), | |
156 | + exhaust: form.getFieldValue("exhaust"), | |
157 | + inhaleType: form.getFieldValue("inhaleType"), | |
158 | + }) | |
159 | + .then((res) => { | |
160 | + const _data = res.data; | |
161 | + const _oil = | |
162 | + _data && _data.length > 0 ? _data[0].motorOil : undefined; | |
163 | + setOil && setOil(_oil); | |
164 | + }) | |
165 | + .catch((e) => console.log(e.message)); | |
166 | + } | |
167 | + }; | |
168 | + | |
252 | 169 | return ( |
253 | 170 | <PageHeaderWrapper title="基础保养配置"> |
254 | 171 | <Card> |
... | ... | @@ -271,7 +188,7 @@ export default function SaveModal({ match, location }: Props) { |
271 | 188 | style={{ width: "60%" }} |
272 | 189 | showSearch |
273 | 190 | filterOption={filterDealer} |
274 | - // onSelect={(e: any) => onSelectCode(e)} | |
191 | + onSelect={() => isFinish()} | |
275 | 192 | > |
276 | 193 | {specs.map((item: any, index: number) => ( |
277 | 194 | <Option value={item.id} key={item.id}> |
... | ... | @@ -281,11 +198,15 @@ export default function SaveModal({ match, location }: Props) { |
281 | 198 | </Select> |
282 | 199 | </FormItem> |
283 | 200 | <FormItem |
284 | - label="发动机排量(T)" | |
201 | + label="发动机排量" | |
285 | 202 | name="exhaust" |
286 | 203 | rules={[{ required: true }]} |
287 | 204 | > |
288 | - <InputNumber style={{ width: "60%" }} min={0} /> | |
205 | + <InputNumber | |
206 | + style={{ width: "60%" }} | |
207 | + min={0} | |
208 | + onChange={() => isFinish()} | |
209 | + /> | |
289 | 210 | </FormItem> |
290 | 211 | <FormItem |
291 | 212 | label="发动机进气方式" |
... | ... | @@ -297,7 +218,7 @@ export default function SaveModal({ match, location }: Props) { |
297 | 218 | style={{ width: "60%" }} |
298 | 219 | showSearch |
299 | 220 | filterOption={filterDealer} |
300 | - // onSelect={(e: any) => onSelectCode(e)} | |
221 | + onSelect={() => isFinish()} | |
301 | 222 | > |
302 | 223 | <Option value={1}>自然吸气</Option> |
303 | 224 | <Option value={2}>涡轮增压</Option> |
... | ... | @@ -320,70 +241,8 @@ export default function SaveModal({ match, location }: Props) { |
320 | 241 | 查看 |
321 | 242 | </Button> |
322 | 243 | </FormItem> |
323 | - {/* <FormItem | |
324 | - name="specGroupCode" | |
325 | - label="车辆分组代码" | |
326 | - rules={[{ required: true, message: "该选项为必填项" }]} | |
327 | - > | |
328 | - <Select | |
329 | - placeholder="请选择车辆分组代码" | |
330 | - style={{ width: "60%" }} | |
331 | - showSearch | |
332 | - filterOption={filterDealer} | |
333 | - onSelect={(e: any) => onSelectCode(e)} | |
334 | - > | |
335 | - {groupSpec.map((item: any, index: number) => ( | |
336 | - <Option value={item.code} key={item.code}> | |
337 | - {`${item.code}-${item.name}`} | |
338 | - </Option> | |
339 | - ))} | |
340 | - </Select> | |
341 | - </FormItem> */} | |
342 | - {/* {scope.hidden && ( | |
343 | - <FormItem label="适用范围"> | |
344 | - <div style={{ display: "flex" }}> | |
345 | - {scope.data.codename}下 | |
346 | - <div | |
347 | - style={{ color: "#409EFF", cursor: "pointer" }} | |
348 | - onClick={() => setVisible(true)} | |
349 | - > | |
350 | - {scope.data.codelength} | |
351 | - </div> | |
352 | - 款车型 | |
353 | - </div> | |
354 | - </FormItem> | |
355 | - )} */} | |
356 | - {/* {newEnergyHidden && ( | |
357 | - <FormItem name="newEnergy" label="汽车类型"> | |
358 | - <Radio.Group | |
359 | - onChange={(e) => (e.target.value === "true" ? setCar(2) : setCar(1))} | |
360 | - > | |
361 | - <Radio value="false">燃油</Radio> | |
362 | - <Radio value="true">电动</Radio> | |
363 | - </Radio.Group> | |
364 | - </FormItem> | |
365 | - )} */} | |
366 | - <FormItem | |
367 | - name="oilGroups" | |
368 | - {...formItemLayout} | |
369 | - label="配置机油组" | |
370 | - // rules={[ | |
371 | - // { | |
372 | - // required: true, | |
373 | - // min: 1, | |
374 | - // message: "必须配置机油配件", | |
375 | - // type: "array", | |
376 | - // }, | |
377 | - // ]} | |
378 | - > | |
244 | + <FormItem name="oilGroups" {...formItemLayout} label="配置机油组"> | |
379 | 245 | <EngineOilSelector |
380 | - // onChange={(data, key) => { | |
381 | - // if (key === 2) { | |
382 | - // setFuelCar({ ...fuelcar, filterdata: data }); | |
383 | - // } else { | |
384 | - // setFuelCar({ ...fuelcar, oildata: data }); | |
385 | - // } | |
386 | - // }} | |
387 | 246 | onChange={(data) => setFuelCar({ ...fuelcar, oildata: data })} |
388 | 247 | fuelcar={fuelcar} |
389 | 248 | onOil={(e) => setOilConsumption(e)} |
... | ... | @@ -391,31 +250,8 @@ export default function SaveModal({ match, location }: Props) { |
391 | 250 | priceType |
392 | 251 | brandId={brandId} |
393 | 252 | oilConsumption={oilConsumption} |
253 | + oil={oil} | |
394 | 254 | /> |
395 | - {/* {car === 1 ? ( | |
396 | - <EngineOilSelector | |
397 | - onChange={(data, key) => { | |
398 | - if (key === 2) { | |
399 | - setFuelCar({ ...fuelcar, filterdata: data }); | |
400 | - } else { | |
401 | - setFuelCar({ ...fuelcar, oildata: data }); | |
402 | - } | |
403 | - }} | |
404 | - fuelcar={fuelcar} | |
405 | - onOil={(e) => setOilConsumption(e)} | |
406 | - hasRecommendSwitch | |
407 | - priceType | |
408 | - brandId={brandId} | |
409 | - oilConsumption={oilConsumption} | |
410 | - /> | |
411 | - ) : ( | |
412 | - <EnergySelector | |
413 | - hasRecommendSwitch | |
414 | - brandId={brandId} | |
415 | - setEnergyData={setEnergyData} | |
416 | - energyData={energyData} | |
417 | - /> | |
418 | - )} */} | |
419 | 255 | </FormItem> |
420 | 256 | <FormItem style={{ textAlign: "center" }}> |
421 | 257 | <Button | ... | ... |
src/pages/cas/afterSaleConfiguration/recommendCreate/index.tsx
... | ... | @@ -7,7 +7,7 @@ import { ConnectProps } from "@/typing/common"; |
7 | 7 | import { PageHeaderWrapper } from '@ant-design/pro-layout'; |
8 | 8 | import * as API from './api'; |
9 | 9 | import EditTable from './components/EditTable'; |
10 | -// import { getBrand } from '../recommendItem/api'; | |
10 | +import { getBrand } from '../recommendItem/api'; | |
11 | 11 | import { getSeriesApi } from "@/common/api"; |
12 | 12 | import useInitial from "@/hooks/useInitail"; |
13 | 13 | import List from "./components/List"; |
... | ... | @@ -62,6 +62,10 @@ export default function RecommendCreate(props: Props) { |
62 | 62 | } |
63 | 63 | }, [id]); |
64 | 64 | |
65 | + useEffect(() => { | |
66 | + fetchBrand(); | |
67 | + }, [brand]); | |
68 | + | |
65 | 69 | function fetchDetail() { |
66 | 70 | setLoading(true); |
67 | 71 | API.getDetailApi(id) |
... | ... | @@ -130,17 +134,17 @@ export default function RecommendCreate(props: Props) { |
130 | 134 | } |
131 | 135 | |
132 | 136 | /**品牌 */ |
133 | - // function fetchBrand() { | |
134 | - // getBrand() | |
135 | - // .then((res) => { | |
136 | - // const { data } = res; | |
137 | - // setBrandList(data || []); | |
138 | - // form.setFieldsValue({ brandId: Number(brand) }); | |
139 | - // }) | |
140 | - // .catch((e) => { | |
141 | - // message.error(e.message); | |
142 | - // }); | |
143 | - // } | |
137 | + function fetchBrand() { | |
138 | + getBrand() | |
139 | + .then((res) => { | |
140 | + const { data } = res; | |
141 | + setBrandList(data || []); | |
142 | + form.setFieldsValue({ brandId: Number(brand) }); | |
143 | + }) | |
144 | + .catch((e) => { | |
145 | + message.error(e.message); | |
146 | + }); | |
147 | + } | |
144 | 148 | // function filterDealer(value: string, option: any) { |
145 | 149 | // return ( |
146 | 150 | // value && | ... | ... |
src/pages/ehr/Insurance/InsuranceAndProvidentFund/components/Settings/style.less deleted
src/pages/ehr/Insurance/InsuranceAndProvidentFund/index.tsx
1 | 1 | /* |
2 | 2 | * @Date: 2021-07-13 14:26:59 |
3 | 3 | * @LastEditors: wangqiang@feewee.cn |
4 | - * @LastEditTime: 2022-05-11 17:20:31 | |
4 | + * @LastEditTime: 2022-06-16 14:25:14 | |
5 | 5 | */ |
6 | 6 | import React from "react"; |
7 | -import { Card, Button, Row, ConfigProvider, Select, DatePicker, Divider } from "antd"; | |
7 | +import { Card, Button, Row, ConfigProvider, Select, DatePicker } from "antd"; | |
8 | 8 | import zhCN from "antd/lib/locale-provider/zh_CN"; |
9 | 9 | import { PageHeaderWrapper } from "@ant-design/pro-layout"; |
10 | 10 | import { PlusOutlined, DownloadOutlined } from "@ant-design/icons"; |
11 | 11 | import { createStore } from "@/hooks/moz"; |
12 | 12 | import store from "./store"; |
13 | 13 | import { EHR_HOST } from "@/utils/host"; |
14 | -import Settings from "./components/Settings"; | |
15 | 14 | import List from "./components/List"; |
16 | 15 | import EditModal from "./components/Modal"; |
17 | 16 | import SubmitModal from "./components/SubmitModal"; |
... | ... | @@ -31,8 +30,6 @@ function InsuranceAndProvidentFund() { |
31 | 30 | <PageHeaderWrapper title="五险一金"> |
32 | 31 | <ConfigProvider locale={zhCN}> |
33 | 32 | <Card bordered={false}> |
34 | - <Settings /> | |
35 | - <Divider /> | |
36 | 33 | <Row justify="space-between" style={{ marginBottom: 20 }}> |
37 | 34 | <div |
38 | 35 | style={{ | ... | ... |
src/pages/ehr/Insurance/InsuranceAndProvidentFund/components/Settings/api.ts renamed to src/pages/ehr/Insurance/Settings/api.ts
src/pages/ehr/Insurance/InsuranceAndProvidentFund/components/Settings/index.tsx renamed to src/pages/ehr/Insurance/Settings/index.tsx
... | ... | @@ -2,13 +2,22 @@ |
2 | 2 | * @Author: wangqiang@feewee.cn |
3 | 3 | * @Date: 2022-05-11 16:04:19 |
4 | 4 | * @LastEditors: wangqiang@feewee.cn |
5 | - * @LastEditTime: 2022-05-27 17:14:30 | |
5 | + * @LastEditTime: 2022-06-16 14:25:51 | |
6 | 6 | */ |
7 | 7 | import React, { useEffect, useState } from "react"; |
8 | -import { Button, Card, Collapse, Form, Input, message, Radio } from "antd"; | |
8 | +import { | |
9 | + Button, | |
10 | + Card, | |
11 | + ConfigProvider, | |
12 | + Form, | |
13 | + Input, | |
14 | + message, | |
15 | + Radio, | |
16 | +} from "antd"; | |
17 | +import zhCN from "antd/lib/locale-provider/zh_CN"; | |
18 | +import { PageHeaderWrapper } from "@ant-design/pro-layout"; | |
9 | 19 | import { getSettingsDetailApi, saveSettingsDetailApi } from "./api"; |
10 | 20 | import { validatorNumber } from "@/utils/validate"; |
11 | -import "./style.less"; | |
12 | 21 | |
13 | 22 | export default function EHrInsuranceAndProvidentFundSettings() { |
14 | 23 | const [info, setInfo] = useState<{ |
... | ... | @@ -92,18 +101,10 @@ export default function EHrInsuranceAndProvidentFundSettings() { |
92 | 101 | }; |
93 | 102 | |
94 | 103 | return ( |
95 | - <Collapse defaultActiveKey="五险一金商业险设置"> | |
96 | - <Collapse.Panel | |
97 | - header="五险一金商业险设置" | |
98 | - key="五险一金商业险设置" | |
99 | - extra={genExtra} | |
100 | - > | |
101 | - <Card | |
102 | - className="EHrInsuranceAndProvidentFundSettingCard" | |
103 | - bordered={false} | |
104 | - loading={info.loading} | |
105 | - > | |
106 | - <Form form={form} layout="inline" onFinish={submit}> | |
104 | + <PageHeaderWrapper title="五险一金商业险基本配置"> | |
105 | + <ConfigProvider locale={zhCN}> | |
106 | + <Card bordered={false} loading={info.loading} extra={genExtra}> | |
107 | + <Form form={form} onFinish={submit}> | |
107 | 108 | <Form.Item |
108 | 109 | name="buyFund" |
109 | 110 | label="购买公积金" |
... | ... | @@ -182,7 +183,7 @@ export default function EHrInsuranceAndProvidentFundSettings() { |
182 | 183 | </Form.Item> |
183 | 184 | </Form> |
184 | 185 | </Card> |
185 | - </Collapse.Panel> | |
186 | - </Collapse> | |
186 | + </ConfigProvider> | |
187 | + </PageHeaderWrapper> | |
187 | 188 | ); |
188 | 189 | } | ... | ... |