Commit a3b4a681c73a65ac0244f3f819370266bf84af28

Authored by 莫红玲
1 parent 50d3e44c

优惠券配置售后作业项加筛选条件

src/pages/coupon/CouponConfig/components/UsesceneItems/PreDecoration/Components/WorkItemLimit.tsx
... ... @@ -6,9 +6,9 @@ import * as API from '../api';
6 6 import * as IF from '../interface';
7 7 import usePagination from '@/hooks/usePagination';
8 8 import { deRepetition } from '@/components/Condition/SeriesSelector/components/utils';
9   -import useDebounce from '@/hooks/useDebounce';
10 9 import useInitial from '@/hooks/useInitail';
11   -import { getBrandFilterApi } from '@/common/api';
  10 +import { getBrandFilterApi, getSeriesApi } from '@/common/api';
  11 +import { debounce } from 'lodash';
12 12  
13 13 const st = require('@/pages/coupon/CouponConfig/style.less');
14 14  
... ... @@ -30,19 +30,23 @@ function PartItem(props: Props, ref?: Ref<any>) {
30 30 const params = useScene === 1 ? { workTypes: "1,2,5,9" } : { workType: useScene };
31 31 const { loading, setLoading, list, setParams, paginationConfig, innerParams } = usePagination(API.fetchListApi, params);
32 32 const { data: brandList } = useInitial(getBrandFilterApi, [], {});
  33 + const [seriesList, setSeriesList] = useState<CommonApi.OptionVO[]>([]);
33 34 const [visible, setVisible] = useState(false);
34 35 const [listData, setListData] = useState<IF.ListVO[]>([]);
35   - const [keyWords, setKeyWords] = useState<string>('');
36   - const keyWordsTerm = useDebounce<string>(keyWords, 800);
37 36  
38 37 useEffect(() => {
39 38 value && setListData(value.map((v: any) => ({ itemCode: v.applyValue, itemName: v.applyName })));
40 39 }, []);
41 40  
42   - useEffect(() => {
43   - setParams({ keywords: keyWordsTerm || undefined, current: 1 }, true);
44   - }, [keyWordsTerm]);
  41 + function getSeries(brandId: number) {
  42 + getSeriesApi(brandId).then((res) => {
  43 + setSeriesList(res.data || []);
  44 + }).catch((err) => {
  45 + message.error(err.message);
  46 + });
  47 + }
45 48  
  49 + const onFilter = debounce((params) => setParams({ ...innerParams, ...params }, true), 600);
46 50 function selectedItems(value: any[]) {
47 51 const partIds = value.length && value.map((i: any) => i.applyValue).toString();
48 52 API.fetItemsApi({ partIds }).then(res => {
... ... @@ -93,7 +97,7 @@ function PartItem(props: Props, ref?: Ref&lt;any&gt;) {
93 97 width="20%"
94 98 render={(text, record: IF.ListVO) => {
95 99 return (
96   - <a onClick={() => remove(record.itemCode)}>删除</a>
  100 + <a onClick={() => remove(record.itemCode!)}>删除</a>
97 101 );
98 102 }}
99 103 />
... ... @@ -120,16 +124,38 @@ function PartItem(props: Props, ref?: Ref&lt;any&gt;) {
120 124 showSearch
121 125 allowClear
122 126 placeholder="搜索品牌"
123   - style={{ width: 200, marginRight: 15 }}
124   - onChange={(value) => setParams({ ...innerParams, brandId: value }, true)}
  127 + style={{ width: 200, margin: 5 }}
  128 + onChange={(value) => {
  129 + setParams({ ...innerParams, brandId: value }, true);
  130 + getSeries(value);
  131 + }}
125 132 >
126 133 {brandList.map((item) => <Select.Option key={item.id} value={item.id}>{item.name}</Select.Option>)}
127 134 </Select>,
  135 + <Select
  136 + optionFilterProp="children"
  137 + mode="multiple"
  138 + showSearch
  139 + allowClear
  140 + placeholder="搜索车系"
  141 + style={{ width: 200, margin: 5 }}
  142 + onChange={(v) => { console.log(v); setParams({ ...innerParams, seriesIds: v.join(',') }, true); }}
  143 + >
  144 + {seriesList.map((item) => <Select.Option key={item.id} value={item.id}>{item.name}</Select.Option>)}
  145 + </Select>,
128 146 <Search
129 147 allowClear
130   - value={keyWords}
  148 + value={innerParams.keywords}
  149 + style={{ margin: 5 }}
131 150 placeholder="搜索作业名称/代码"
132   - onChange={(e) => setKeyWords(e.target.value)}
  151 + onChange={(e) => onFilter({ keywords: e.target.value })}
  152 + />,
  153 + <Search
  154 + allowClear
  155 + value={innerParams.specCode}
  156 + style={{ margin: 5 }}
  157 + placeholder="搜索整车代码"
  158 + onChange={(e) => onFilter({ specCode: e.target.value })}
133 159 />
134 160 ]}
135 161 />
... ...
src/pages/coupon/CouponConfig/components/UsesceneItems/PreDecoration/interface.d.ts
... ... @@ -3,7 +3,8 @@ export interface QueryList {
3 3 workType?: number, //作业项类型 1:机修 2:电器 3:钣喷 4:装潢 5:基础保养 6:贴膜
4 4 workTypes?: string, //多个作业项组合参数
5 5 keywords?: string, //关键词
6   - specGroupCode?: string, //车型分组代码
  6 + seriesIds?:string, //车系id集合,查询多个车系
  7 + specCode?: string, //整车代码
7 8 current?: number,
8 9 pageSize?: number,
9 10 seriesId?: number,
... ... @@ -48,51 +49,51 @@ export interface PartListVO {
48 49  
49 50 /**查询保养套餐卡列表通用接口 */
50 51 export interface MpList {
51   - id: number, //null
52   - maintainId: number, //套餐卡配置ID
53   - name: string, //套餐卡名称
54   - remark: string, // 备注
55   - times: number, // 套餐次数
56   - validity: number, // 有效期(年)
57   - mainItemCode: string, //机油项编码
58   - mainItemName: string, // 机油项名称
59   - groupId: number, //集团id
60   - brandName: string, //品牌名称
61   - seriesName: string, //车系名称
62   - status: number, //状态 1待发布 2已发布 3已下架
  52 + id: number, //null
  53 + maintainId: number, //套餐卡配置ID
  54 + name: string, //套餐卡名称
  55 + remark: string, // 备注
  56 + times: number, // 套餐次数
  57 + validity: number, // 有效期(年)
  58 + mainItemCode: string, //机油项编码
  59 + mainItemName: string, // 机油项名称
  60 + groupId: number, //集团id
  61 + brandName: string, //品牌名称
  62 + seriesName: string, //车系名称
  63 + status: number, //状态 1待发布 2已发布 3已下架
63 64 }
64 65  
65 66 /**保养套餐卡查询条件 */
66 67 export interface Params {
67   - mpName?: string, // 套餐名称
68   - startDate?: number, // 创建日期开始
69   - endDate?: number, // 创建日期结束
  68 + mpName?: string, // 套餐名称
  69 + startDate?: number, // 创建日期开始
  70 + endDate?: number, // 创建日期结束
70 71 brandId?: string, //品牌ID
71   - status?: number, // 状态 1:待发布 4:已发
  72 + status?: number, // 状态 1:待发布 4:已发
72 73 current?: number,
73 74 pageSize?: number,
74 75 }
75 76  
76 77 /**查询集团VIP卡列表 */
77 78 export interface VipList {
78   - id: number, //null
79   - warrantyId: number, // 质保卡id
80   - name: string, // 质保卡名称
81   - price: number, // 价格
82   - remark: string, //备注
83   - groupId: number, //集团id
84   - brandId: number, //品牌id
85   - brandName: string, //品牌名称
86   - seriesId: number, //车系id
87   - seriesName: string, // 车系名称
88   - status: number, //状态 1 待上架 2 已上架 2 已下架
  79 + id: number, //null
  80 + warrantyId: number, // 质保卡id
  81 + name: string, // 质保卡名称
  82 + price: number, // 价格
  83 + remark: string, //备注
  84 + groupId: number, //集团id
  85 + brandId: number, //品牌id
  86 + brandName: string, //品牌名称
  87 + seriesId: number, //车系id
  88 + seriesName: string, // 车系名称
  89 + status: number, //状态 1 待上架 2 已上架 2 已下架
89 90 }
90 91  
91 92 /**vip卡查询条件 */
92 93 export interface VipParams {
93   - brandId?: number, // 品牌ID
94   - status?: number, // 状态 1:待发布 4:已发
  94 + brandId?: number, // 品牌ID
  95 + status?: number, // 状态 1:待发布 4:已发
95 96 current?: number,
96 97 pageSize?: number,
97   - name?: number, //质保卡名称
  98 + name?: number, //质保卡名称
98 99 }
... ...