Blame view

src/pages/pms/partPlan/PlanPool/components/StoragePartTable.tsx 4.86 KB
5246686f   jiangwei   配件流水明细
1
  import {Table, Popconfirm, Divider, Modal, Input, Button, message, Form} from 'antd';
ca0a8559   jiangwei   计划池新增编辑删除功能
2
  import React, {useEffect, useState} from 'react';
f33cc9f7   by1642146903   计划池
3
4
5
  import useInitial from "@/hooks/useInitail";
  import {getList, ListVO} from "@/pages/pms/partPlan/PlanPool/api";
  import {useStore} from "@/pages/pms/partPlan/PlanPool";
ca0a8559   jiangwei   计划池新增编辑删除功能
6
  import {deleteApi, editApi} from '../api';
f33cc9f7   by1642146903   计划池
7
8
  
  const { Column } = Table;
5246686f   jiangwei   配件流水明细
9
  const {Item} = Form;
f33cc9f7   by1642146903   计划池
10
11
12
13
14
  interface Props {
    // eslint-disable-next-line react/no-unused-prop-types
    type?: number, // 类型1区域库2库房3车系4车型5配件
  }
  export default function Index(props: Props = {}) {
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
15
    const { dfParams, key, setItem, setOutVisible, setCustVisible } = useStore();
5246686f   jiangwei   配件流水明细
16
    const [form] = Form.useForm();
48df7798   jiangwei   计划池展示信息优化
17
    const { data: parts, setParams, loading } = useInitial(getList, [], dfParams);
ca0a8559   jiangwei   计划池新增编辑删除功能
18
    const [visible, setVisible] = useState(false);
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
19
    const [itemPrice, setItemPrice] = useState<ListVO>();
f33cc9f7   by1642146903   计划池
20
21
22
23
24
25
26
  
    useEffect(() => {
      if (key == props.type) {
        setParams(dfParams, true);
      }
    }, [dfParams, key]);
  
ca0a8559   jiangwei   计划池新增编辑删除功能
27
    useEffect(() => {
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
28
29
      if (visible && itemPrice?.poolId) {
        form.setFieldsValue({ cnt: itemPrice.cnt});
5246686f   jiangwei   配件流水明细
30
31
      } else {
        form.resetFields;
ca0a8559   jiangwei   计划池新增编辑删除功能
32
33
34
      }
    }, [visible]);
  
f33cc9f7   by1642146903   计划池
35
36
    return (
      <div>
48df7798   jiangwei   计划池展示信息优化
37
        <Table rowKey={(v: ListVO) => `${v.poolId}`} scroll={{y: 500, x: 3000}} dataSource={parts || []} pagination={false} loading={loading}>
f33cc9f7   by1642146903   计划池
38
          <Column title="配件编码" dataIndex="code" fixed="left" />
5f69c1aa   jiangwei   样式交互优化
39
40
          <Column title="配件名称" dataIndex="name" fixed="left" />
          <Column title="本次计划数量(个)" dataIndex="cnt" fixed="left" />
8bd72c50   by1642146903   展示滚动90天出库信息
41
          <Column
ca0a8559   jiangwei   计划池新增编辑删除功能
42
            title="操作"
5f69c1aa   jiangwei   样式交互优化
43
            fixed="left"
ca0a8559   jiangwei   计划池新增编辑删除功能
44
45
            render={r => (
              <>
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
46
                <a onClick={() => { setVisible(true); setItemPrice(r); }}>编辑</a>
ca0a8559   jiangwei   计划池新增编辑删除功能
47
48
49
50
                <Divider type="vertical" />
                <Popconfirm
                  title="确认删除?"
                  onConfirm={() => {
5f69c1aa   jiangwei   样式交互优化
51
                    deleteApi({ poolId: r.poolId }).then(res => {
ca0a8559   jiangwei   计划池新增编辑删除功能
52
53
54
55
56
57
58
59
60
61
                      message.success("操作成功");
                      setParams({}, true);
                    }).catch(e => message.error(e.message));
                  }}
                >
                  <a>删除</a>
                </Popconfirm>
              </>
            )}
          />
5f69c1aa   jiangwei   样式交互优化
62
63
64
          <Column title="库房名称" dataIndex="storageName" />
          <Column title="门店名称" dataIndex="shopName" />
          <Column title="来源类型" dataIndex="typeName" />
c8dc9e64   jiangwei   配件类型
65
          <Column title="配件类型" dataIndex="partTypeName" />
5f69c1aa   jiangwei   样式交互优化
66
67
68
69
70
          
          <Column title="计划前库销比" dataIndex="ratio" render={t => (t || 0).toFixed(2)} />
          <Column title="计划后库销比" dataIndex="planeRatio" render={t => (t || 0).toFixed(2)} />
          
          <Column title="本次计划金额(元)" dataIndex="thisTimeAmount" />
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
71
          <Column title="客户订件数量(个)" render={r => <a onClick={() => { setCustVisible(true); setItem(r); }}>{r.buyCnt}</a>} />
5f69c1aa   jiangwei   样式交互优化
72
73
74
75
          <Column title="客户订件金额(元)" dataIndex="buyAmount" />
          <Column title="在途未锁(个)" dataIndex="onTheWayUnlockCnt" />
          <Column title="在库未锁(个)" dataIndex="storageUnlockCnt" />
          <Column title="在库已锁(个)" dataIndex="storageLockedCnt" />
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
76
          <Column title="滚动90天出库(个)" render={r => <a onClick={() => { setOutVisible(true); setItem(r); }}>{r.outStockCnt}</a>} />
5f69c1aa   jiangwei   样式交互优化
77
          
f33cc9f7   by1642146903   计划池
78
        </Table>
ca0a8559   jiangwei   计划池新增编辑删除功能
79
80
81
82
83
84
85
        <Modal
          title="编辑采购数量"
          visible={visible}
          maskClosable={false}
          onCancel={() => setVisible(false)}
          footer={[
            <Button key="cancel" onClick={() => setVisible(false)}>取消</Button>,
8bd72c50   by1642146903   展示滚动90天出库信息
86
87
88
            <Button
              key="ok"
              type="primary"
ca0a8559   jiangwei   计划池新增编辑删除功能
89
              style={{marginLeft: 10}}
5246686f   jiangwei   配件流水明细
90
              htmlType="submit"
ca0a8559   jiangwei   计划池新增编辑删除功能
91
              onClick={() => {
5246686f   jiangwei   配件流水明细
92
                form.validateFields().then(fields => {
57b51c35   jiangwei   配件计划池增加查看90天出库详情和...
93
                  editApi({ poolId: itemPrice?.poolId, partCnt: fields.cnt}).then(res => {
5246686f   jiangwei   配件流水明细
94
95
96
                    setVisible(false);
                    message.success("操作成功");
                    setParams({}, true);
8bd72c50   by1642146903   展示滚动90天出库信息
97
98
99
                    }).catch(e => {
                      message.error(e.message);
                      setVisible(false);
5246686f   jiangwei   配件流水明细
100
101
                    });
                  });
ca0a8559   jiangwei   计划池新增编辑删除功能
102
103
104
105
106
                }}
            >保存
            </Button>
          ]}
        >
5246686f   jiangwei   配件流水明细
107
108
109
110
111
          <Form
            form={form}
            labelCol={{span: 7}}
            wrapperCol={{span: 10}}
          >
8bd72c50   by1642146903   展示滚动90天出库信息
112
113
114
            <Item
              label="配件采购数量"
              name="cnt"
5246686f   jiangwei   配件流水明细
115
              rules={[
8bd72c50   by1642146903   展示滚动90天出库信息
116
                {required: true},
5246686f   jiangwei   配件流水明细
117
118
119
120
121
122
123
124
125
126
127
128
129
                () => ({
                  validator(_, value) {
                    if (value > 0) {
                      return Promise.resolve();
                    }
                    return Promise.reject(new Error('配件采购数量不能低于0'));
                  },
                }),
              ]}
            >
              <Input placeholder="请输入配件采购数量" />
            </Item>
          </Form>
ca0a8559   jiangwei   计划池新增编辑删除功能
130
        </Modal>
f33cc9f7   by1642146903   计划池
131
132
133
      </div>
    );
  }