Commit 074821f1fea9388d7637d1de0ac7f2741139f06c

Authored by jiangwei
1 parent 796981fb

运费目标设置fix

src/pages/pms/setting/FreightTarget/api.ts
... ... @@ -4,6 +4,7 @@ import { PMS_HOST } from '@/utils/host';
4 4  
5 5 export interface Item {
6 6 id?: number,
  7 + index?:number
7 8 amount?: any, //
8 9 startDays?: any
9 10 endDays?: any//
... ...
src/pages/pms/setting/FreightTarget/index.tsx
... ... @@ -8,10 +8,10 @@ import { DeleteOutlined } from '@ant-design/icons';
8 8  
9 9 const Index = () => {
10 10 const [disable, setDisable] = useState(false);
11   - const {data, setData, loading, setLoading} = useInitial<Item[], object>(getDetail, [], {});
  11 + const { data, setData, loading, setLoading } = useInitial<Item[], object>(getDetail, [{ startDays: 1, endDays: '', amount: '' }, { startDays: '', endDays: '', amount: '' }], {});
12 12  
13 13 const handleAdd = () => {
14   - setData([...data, { startDays: '', endDays: '', amount: '' }]);
  14 + setData([...data, { startDays: null, endDays: null, amount: null }]);
15 15 };
16 16  
17 17 const handleInputChange = (index: number, p: any) => {
... ... @@ -28,6 +28,7 @@ const Index = () =&gt; {
28 28 const handleDel = (event: any, index: number) => {
29 29 let arr = data;
30 30 arr.splice(index, 1);
  31 + arr[arr.length -1].startDays = arr[arr.length-2].endDays+1;
31 32 setData(arr);
32 33 };
33 34  
... ... @@ -43,28 +44,68 @@ const Index = () =&gt; {
43 44 <PageHeaderWrapper title="运费目标设置">
44 45 <Card loading={loading}>
45 46 {!!data?.length && data.map((it, index) => (
46   - <div key={index} style={{ display: 'flex', alignItems: 'center', marginBottom: 10 }}>
47   - <span style={{ marginRight: 10 }}>{index + 1}、</span>
48   - <>
49   - 缺件起始天数
50   - <InputNumber disabled={!disable} min={0} value={it.startDays} onChange={value => handleInputChange(index, { startDays: value })} style={{ width: 100, marginLeft: 10, marginRight: 20 }} />
51   - </>
52   - <>
53   - 缺件结束天数
54   - <InputNumber disabled={!disable} min={0} value={it.endDays} onChange={value => handleInputChange(index, { endDays: value })} style={{ width: 100, marginLeft: 10, marginRight: 20 }} />
55   - </>
56   - <>
57   - 运费统计增加
58   - <InputNumber disabled={!disable} value={it.amount} min={0} onChange={value => handleInputChange(index, { amount: value })} style={{ width: 100, marginLeft: 10, marginRight: 20 }} />
59   - </>
60   - {(index == data.length - 1 && disable) ? <Button onClick={(event: any) => handleDel(event, index)} shape="circle" icon={<DeleteOutlined />} /> : ''}
61   - </div>
  47 + index < data.length-1 ? (
  48 + <div key={index} style={{ display: 'flex', alignItems: 'center', marginBottom: 10 }}>
  49 + <span style={{ marginRight: 10 }}>{index + 1}、</span>
  50 + <>
  51 + 缺件起始天数
  52 + <InputNumber
  53 + disabled
  54 + min={index > 0 ? data[index - 1].endDays : 1}
  55 + value={index > 0 ? data[index - 1].endDays+1 : 1}
  56 + style={{ width: 100, marginLeft: 10, marginRight: 20 }}
  57 + />
  58 + </>
  59 + <>
  60 + 缺件结束天数
  61 + <InputNumber
  62 + disabled={!disable}
  63 + min={0}
  64 + value={it.endDays}
  65 + onChange={value => handleInputChange(index, { startDays: index > 0 ? data[index - 1].endDays + 1 : it.startDays, endDays: value })}
  66 + style={{ width: 100, marginLeft: 10, marginRight: 20 }}
  67 + />
  68 + </>
  69 + <>
  70 + 运费统计增加
  71 + <InputNumber
  72 + disabled={!disable}
  73 + addonAfter="元"
  74 + value={it.amount}
  75 + min={0}
  76 + onChange={value => handleInputChange(index, { amount: value })}
  77 + style={{ width: 100, marginLeft: 10, marginRight: 20 }}
  78 + />
  79 + </>
  80 + {(index == data.length - 2 && disable && index != 0) ? <Button onClick={(event: any) => handleDel(event, index)} shape="circle" icon={<DeleteOutlined />} /> : ''}
  81 + </div>
  82 + ) :
  83 + (
  84 + <div style={{ display: 'flex', alignItems: 'center', marginBottom: 10 }}>
  85 + <span style={{ marginRight: 10 }}>{data.length}、</span>
  86 + <div style={{ marginRight: 20 }}>
  87 + <InputNumber disabled min={0} value={data[data.length - 2].endDays + 1} style={{ width: 100, marginRight: 10 }} />
  88 + 天及以上
  89 + </div>
  90 + <>
  91 + 运费统计增加
  92 + <InputNumber
  93 + disabled={!disable}
  94 + addonAfter="元"
  95 + value={it.amount}
  96 + min={0}
  97 + onChange={value => handleInputChange(data.length - 1, { startDays: index > 0 ? data[index - 1].endDays + 1 : it.startDays, endDays: null, amount: value })}
  98 + style={{ width: 100, marginLeft: 10, marginRight: 20 }}
  99 + />
  100 + </>
  101 + </div>
  102 + )
62 103 ))}
63 104 <Button type="default" disabled={!disable} onClick={() => handleAdd()}>添加梯度</Button>
64 105 <ConfirmBnt
65 106 disable={disable}
66 107 onOk={() => svae()}
67   - onCancel={() => { setDisable(false); setData(data); }}
  108 + onCancel={() => { setDisable(false); setLoading(true); }}
68 109 onEdit={() => {
69 110 setDisable(true);
70 111 setData(data);
... ...
src/pages/pms/setting/PerTarget/components/AddModal.tsx
... ... @@ -3,9 +3,7 @@ import {Modal, Form, InputNumber, message} from &#39;antd&#39;;
3 3 import PmsSelsct from '@/pages/pms/comonents/PmsSelect';
4 4 import { getStoragePage } from '@/pages/pms/storage/StorageManage/api';
5 5 import usePagination from '@/hooks/usePagination';
6   -import useInitial from '@/hooks/useInitail';
7 6 import { saveApi } from '../api';
8   -import { getShopApi } from '@/common/api';
9 7  
10 8 const {Item} = Form;
11 9  
... ... @@ -20,14 +18,12 @@ export default function Index(props: Props) {
20 18 const { item, onCancel, visible, refesh } = props;
21 19 const [form] = Form.useForm();
22 20 const { list: storages } = usePagination<PartStorageSpace.PageVO>(getStoragePage, { pageSize: 1000 });
23   - const { data: shops } = useInitial<CommonApi.OptionVO[], object>(getShopApi, [], {});
24 21  
25 22 const OK = () => {
26 23 form.validateFields().then(fileds => {
27 24 const params = {
28 25 id: item?.id,
29 26 storageId: fileds.storageId,
30   - shopId: fileds.shopId,
31 27 days: fileds.days,
32 28 amount: fileds.amount
33 29 };
... ... @@ -67,12 +63,6 @@ export default function Index(props: Props) {
67 63 options={storages.map((item: PartStorageSpace.PageVO) => ({ value: item.id, label: item.storageName }))}
68 64 />
69 65 </Item>
70   - <Item name="shopId" label="门店" required rules={[{ required: true, message: '请选择门店' }]}>
71   - <PmsSelsct
72   - style={{width: 300}}
73   - options={shops.map((item: CommonApi.OptionVO) => ({ value: item.id, label: item.name }))}
74   - />
75   - </Item>
76 66 <Item name="days" label="订件时长目标" required rules={[{ required: true, message: '请输入' }]}>
77 67 <InputNumber style={{ width: 300 }} addonAfter="天" />
78 68 </Item>
... ...