Commit 303bdbddfa5ad0d94c7560c6d2e68ba4f6fe5256

Authored by 赵凤
2 parents 0f0151f0 4c9f7991

Merge remote-tracking branch 'origin/master' into dealer

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
... ... @@ -39,6 +39,7 @@ export default function CarModal({
39 39 pagination={false}
40 40 scroll={{ y: 500 }}
41 41 >
  42 + <Column title="整车型号代码名称" dataIndex="specCodeName" align="center" />
42 43 <Column title="整车型号代码" dataIndex="specCode" align="center" />
43 44 </Table>
44 45 </Modal>
... ...
src/pages/cas/MaintenanceCard/Upsert/components/Step1.tsx
... ... @@ -2,7 +2,7 @@ import React, { useEffect, useState } from &quot;react&quot;;
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 &quot;@/typing/common&quot;;
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) =&gt; {
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) =&gt; {
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) =&gt; {
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) =&gt; {
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) =&gt; {
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
... ... @@ -31,6 +31,8 @@ declare namespace Maintain {
31 31 oilQuantity?: number // 机油推荐里程
32 32 engineGroups?: any[] //其他配件
33 33 oilDosage?:number
  34 + exhaust?: number
  35 + inhaleType?: number
34 36 }
35 37  
36 38 interface oilGroup {
... ...
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 &quot;@/typing/common&quot;;
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
1   -.EHrInsuranceAndProvidentFundSettingCard {
2   - & > .ant-card-body {
3   - padding: 0;
4   - }
5   -}
6 0 \ No newline at end of file
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 }
... ...