Blame view

src/pages/order3/TacklingCarModels/index.tsx 6.1 KB
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
1
2
3
4
5
6
  import React, { useState, useEffect } from 'react';
  import { PageHeaderWrapper } from '@ant-design/pro-layout';
  import { Card, Table, Button, Row, DatePicker, Col, InputNumber, message } from 'antd';
  import { getTackList, ListItem, saveHandelTack, ShopTaskList, save, saveParams } from './api';
  import EModal from './component/Modal';
  import moment from 'moment';
2ee855e8   舒述军   零售任务和攻坚车任务调整
7
  import ApproveModal from '@/pages/order3/Common/ApproveModal';
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  
  const { Column } = Table;
  
  const day = new Date();
  const month = day.getMonth() + 1;
  const year = day.getFullYear();
  const strtime = year + '-' + month;
  let newDate = new Date(strtime);
  const newDay = newDate.getTime();
  
  export default function TacklingCarModels() {
    const [visible, setVisible] = useState<boolean>(false);
    const [loading, setLoading] = useState<boolean>(false);
    const [current, setCurrent] = useState<ShopTaskList>({});
    const [confirmLoading, setConfirmLoading] = useState<boolean>(false);
    const [saveLoading, setSaveLoading] = useState<boolean>(false);
    const [date, setDate] = useState<number>(newDay);
    const [edit, setEdit] = useState<boolean>(false);
    const [list, setList] = useState<ListItem>({});
    const [orginDara, setOrginDara] = useState<ListItem>({});
    let index;
2ee855e8   舒述军   零售任务和攻坚车任务调整
29
    const [approveOpen, setApproveOpen] = useState<boolean>(false);
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  
    useEffect(() => {
      getList(newDay);
    }, []);
  
    function setReset() {
      setList({...orginDara});
      setEdit(false);
      getList(newDay);
    }
  
    //查询列表
    function getList(date: number) {
      const params = {
        taskDate: date.valueOf(),
        autoAssign: false,
      };
      getTackList(params).then(res => {
        setLoading(false);
        const data = res.data;
        setOrginDara(data || {});
        setList(data || {});
        message.success('请求成功!');
      }).catch(e => {
        setLoading(false);
        message.warning(e.message);
      });
    }
  
    function _ChangeMoth(date: any) {
      setLoading(true);
      setDate(date.valueOf());
      getList(date);
    }
    function _onChange(e: number, index: number) {
      const data = list;
      data.shopTaskList![index].taskCount = e;
      setList({ ...data });
    }
    //保存
    function handleClick() {
      setLoading(true);
      const params = {
        id: list.id,
        shopTaskList: list.shopTaskList
      };
      handleSave(params);
    }
    //提交审批
2ee855e8   舒述军   零售任务和攻坚车任务调整
79
    function saveClick(params?: any) {
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
80
81
      setLoading(true);
      setSaveLoading(true);
2ee855e8   舒述军   零售任务和攻坚车任务调整
82
      save({...params, id: list.id}).then(() => {
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
83
84
85
86
87
88
89
90
91
92
        setSaveLoading(false);
        setLoading(false);
        setList({ ...list, canModified: false });
        message.success('提交成功!');
      }).catch(e => {
        setLoading(false);
        message.warning(e.message);
        setSaveLoading(false);
      });
    }
2ee855e8   舒述军   零售任务和攻坚车任务调整
93
  
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
    //手动提交
    function handleSave(params: saveParams) {
      setConfirmLoading(true);
      saveHandelTack(params).then(() => {
        message.success('提交成功!');
        getList(date);
        setConfirmLoading(false);
        setEdit(false);
      }).catch(e => {
        message.warning(e.message);
        setLoading(false);
        setConfirmLoading(false);
      });
    }
  
2ee855e8   舒述军   零售任务和攻坚车任务调整
109
110
111
112
    function handleOpenApprove() {
      setApproveOpen(true);
    }
  
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
    return (
      <PageHeaderWrapper title="攻坚车任务手动调整">
        <Card>
          <Row style={{ marginTop: 20, marginBottom: 20 }}>
            <Col span={4}><DatePicker defaultValue={moment(newDay)} picker="month" onChange={_ChangeMoth} /></Col>
          </Row>
          <Table
            dataSource={list.shopTaskList}
            loading={loading}
            rowKey="shopId"
            pagination={false}
            summary={pageData => {
              let total = 0;
              pageData.forEach(({ taskCount }) => {
                total += taskCount || 0;
              });
              return (
                <>
2ee855e8   舒述军   零售任务和攻坚车任务调整
131
132
                  {total == 0 ? null : (
                    <Table.Summary.Row>
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
133
134
135
136
                      <Table.Summary.Cell index={1}><span style={{ display: 'block', textAlign: 'center' }}>合计</span></Table.Summary.Cell>
                      <Table.Summary.Cell index={2}>
                        <span style={{ display: 'block', textAlign: 'center' }}>{total}</span>
                      </Table.Summary.Cell>
2ee855e8   舒述军   零售任务和攻坚车任务调整
137
                      <Table.Summary.Cell index={3} />
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
138
                    </Table.Summary.Row>
2ee855e8   舒述军   零售任务和攻坚车任务调整
139
                  )}
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
140
141
142
143
144
                </>
              );
            }}
          >
            <Column title="门店" dataIndex="shopName" width={400} align="center" />
2ee855e8   舒述军   零售任务和攻坚车任务调整
145
146
147
148
            <Column
              title="攻坚车型任务(台)"
              dataIndex="taskCount"
              align="center"
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
149
150
              render={(value, record, index) => {
                if (edit) {
2ee855e8   舒述军   零售任务和攻坚车任务调整
151
                  return <InputNumber min={0} value={value} onChange={(e: any) => _onChange(e, index)} />;
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
152
                } else {
2ee855e8   舒述军   零售任务和攻坚车任务调整
153
                  return <span>{value}</span>;
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
154
155
156
                }
              }}
            />
2ee855e8   舒述军   零售任务和攻坚车任务调整
157
158
159
160
            <Column
              title="操作"
              align="center"
              render={(value, record, _index) => (
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
161
                <>
2ee855e8   舒述军   零售任务和攻坚车任务调整
162
                  <Button type="link" onClick={() => { setVisible(true); setCurrent(value); index = _index; }}>销售顾问任务</Button>
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
163
164
165
166
167
168
                </>
              )}
            />
          </Table>
          <EModal setVisible={setVisible} visible={visible} current={current} index={index} setList={setList} list={list} setCurrent={setCurrent} isHandledit={edit} />
          <Row justify="center" style={{ marginTop: 15 }}>
2ee855e8   舒述军   零售任务和攻坚车任务调整
169
            {list.canModified ? (
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
170
171
172
              <>
                {edit ?
                  <Button style={{ width: 110 }} type="primary" onClick={handleClick} loading={confirmLoading}>确定</Button> :
2ee855e8   舒述军   零售任务和攻坚车任务调整
173
                  <Button style={{ width: 110 }} type="primary" onClick={handleOpenApprove} loading={saveLoading}>提交审批</Button>}
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
174
175
176
                <Button style={{ width: 110, marginLeft: 15, backgroundColor: '#FFF' }} type="default" onClick={() => setEdit(true)}>手动编辑</Button>
                {edit ?
                  <Button style={{ width: 110, marginLeft: 15 }} type="default" onClick={setReset} loading={confirmLoading}>取消</Button> :
2ee855e8   舒述军   零售任务和攻坚车任务调整
177
178
179
                  null}
              </>
            ) : null}
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
180
181
          </Row>
        </Card>
2ee855e8   舒述军   零售任务和攻坚车任务调整
182
183
184
        <ApproveModal callback={saveClick} open={approveOpen} setOpen={setApproveOpen} />
      </PageHeaderWrapper>
    );
cc26d1fc   张志伟   🎉 重新构建项目,解决项目过大的问题
185
  }