Blame view

src/pages/pms/partPlan/PlanShipping/index.tsx 5.91 KB
38e3fe2f   baiyun   配件计划
1
  import React, { useState } from "react";
79c03b69   jiangwei   发运增加下载模板和发运导入确认增加...
2
3
  import { Card, ConfigProvider, DatePicker, Divider, Table, Dropdown, Menu } from 'antd';
  import { DownOutlined } from '@ant-design/icons';
38e3fe2f   baiyun   配件计划
4
5
  import { PageHeaderWrapper } from '@ant-design/pro-layout';
  import usePagination from "@/hooks/usePagination";
2d451216   baiyun   配件计划联调
6
  import DetailModal from './components/ConfirmDetailModal';
38e3fe2f   baiyun   配件计划
7
8
9
10
11
12
  import { getList, Item } from './api';
  import st from './style.less';
  import zhCN from "antd/lib/locale-provider/zh_CN";
  import moment from 'moment';
  import useInitial from '@/hooks/useInitail';
  import * as API from '@/common/api';
38e3fe2f   baiyun   配件计划
13
  import UploadExcel from './components/UploadExcel';
b4b59dc8   jiangwei   配件系统选择器增加搜索功能
14
15
  import PmsSelect from '@/pages/pms/comonents/PmsSelect';
  import * as api from "@/pages/pms/storage/partShop/api";
38e3fe2f   baiyun   配件计划
16
17
18
19
20
21
  
  const { Column } = Table;
  export default function PartPriceCoefficient() {
    const { list, paginationConfig, loading, setParams, innerParams } = usePagination<Item>(getList, {});
    const { data: brands } = useInitial(API.getBrandFilterApi, [], {});
    const [importVisible, setImportVisible] = useState(false);
26e052d0   baiyun   配件发运
22
    const [visibleConfirm, setVisibleConfirm] = useState(false);
2d451216   baiyun   配件计划联调
23
    const [confirm, setConfirm] = useState(false);
38e3fe2f   baiyun   配件计划
24
    const [item, setItem] = useState<Item>({});
b4b59dc8   jiangwei   配件系统选择器增加搜索功能
25
    const { data: shops } = useInitial<PmsStoragePartShop.Option[], {}>(api.getShopApi, [], {});
38e3fe2f   baiyun   配件计划
26
  
79c03b69   jiangwei   发运增加下载模板和发运导入确认增加...
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    const menu = (
      <Menu
        items={
        [
          {
            label: <a href="/api/pms/erp/part/template/shipping">通用模板</a>,
            key: '0',
          },
          {
            label: <a href="/api/pms/erp/part/template/shipping/ca">长安模板</a>,
            key: '1',
          },
        ]
      }
      />
  );
  
38e3fe2f   baiyun   配件计划
44
45
46
47
48
    return (
      <PageHeaderWrapper title="发运单">
        <ConfigProvider locale={zhCN}>
          <Card className={st.page}>
            <div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginBottom: 20 }}>
2d451216   baiyun   配件计划联调
49
              <div style={{ display: 'flex', flexDirection: 'row'}}>
38e3fe2f   baiyun   配件计划
50
                <DatePicker
83c24292   jiangwei   日期选择fix
51
                  value={innerParams.month == undefined ? moment(new Date().toLocaleDateString(), 'YYYY-MM') : moment(innerParams.month)}
38e3fe2f   baiyun   配件计划
52
                  picker="month"
83c24292   jiangwei   日期选择fix
53
                  allowClear={false}
38e3fe2f   baiyun   配件计划
54
55
56
                  style={{ marginRight: 20 }}
                  onChange={(v) => setParams({...innerParams, month: v && v.valueOf(), current: 1}, true)}
                />
b4b59dc8   jiangwei   配件系统选择器增加搜索功能
57
                <PmsSelect
38e3fe2f   baiyun   配件计划
58
                  placeholder="请选择品牌"
38e3fe2f   baiyun   配件计划
59
                  showSearch
38e3fe2f   baiyun   配件计划
60
61
62
                  style={{ width: 200, marginRight: 20 }}
                  value={innerParams.brandId}
                  onChange={brandId => setParams({ ...innerParams, brandId, current: 1 }, true)}
b4b59dc8   jiangwei   配件系统选择器增加搜索功能
63
64
65
66
67
68
69
70
71
72
73
74
                  options={brands.map((i: any) => ({value: i.id, label: i.name}))}
                />
                <PmsSelect
                  style={{ width: 200}}
                  allowClear
                  value={innerParams.shopId}
                  onChange={value => {
                    setParams({ ...innerParams, current: 1, shopId: value}, true);
                  }}
                  placeholder="请选择服务站"
                  options={shops.map((item: PmsStoragePartShop.Option) => ({value: item.id, label: item.name}))}
                />
38e3fe2f   baiyun   配件计划
75
              </div>
2d451216   baiyun   配件计划联调
76
              <div style={{ display: 'flex', flexDirection: 'row'}}>
79c03b69   jiangwei   发运增加下载模板和发运导入确认增加...
77
78
79
80
                <Dropdown overlay={menu} trigger={['click']} placement="bottomLeft" arrow overlayStyle={{width: 120}}>
                  <a style={{display: 'flex', alignItems: 'center'}}>导入模板<DownOutlined style={{fontSize: 14, marginLeft: 3}} /></a>
                </Dropdown>
                <div style={{marginLeft: 20}}><a onClick={() => { setImportVisible(true); }}>导入数据</a></div>
2d451216   baiyun   配件计划联调
81
              </div>
38e3fe2f   baiyun   配件计划
82
83
84
85
86
87
            </div>
            <Table
              size="small"
              loading={loading}
              pagination={paginationConfig}
              dataSource={list}
2d451216   baiyun   配件计划联调
88
              rowKey={(item: Item) => `${item.shippingNo}`}
38e3fe2f   baiyun   配件计划
89
90
              onChange={(_pagination) => setParams({ ..._pagination }, true)}
            >
6ff8f39f   jiangwei   数据展示界面调整
91
              <Column title="发运单号" dataIndex="shippingNo" />
2d451216   baiyun   配件计划联调
92
93
              <Column title="品牌" dataIndex="brandName" />
              <Column title="供应商" dataIndex="supplierName" />
a0efb707   baiyun   发运单展示库房信息
94
95
              <Column title="库房" dataIndex="storageName" />
              <Column title="门店" dataIndex="shopName" />
55a01e03   by1642146903   发运调整
96
              <Column title="结算商家" dataIndex="settleDealerName" />
2d451216   baiyun   配件计划联调
97
98
99
100
101
              <Column title="总金额(元)" dataIndex="totalAmount" render={(t: number) => t.toFixed(2) || 0} />
              <Column title="导入时间" dataIndex="shippingDate" render={(t: number) => t && moment(t).format('YYYY-MM-DD HH:mm')} />
              <Column title="导入人员" dataIndex="importUserName" />
              <Column title="入库人员" dataIndex="inStorageUserName" render={t => t || '--'} />
              <Column title="状态" dataIndex="status" render={(t: number) => ['待确认', '待入库', '已完成'][t]} />
38e3fe2f   baiyun   配件计划
102
103
              <Column
                title="操作"
6ff8f39f   jiangwei   数据展示界面调整
104
                className={st.edit}
38e3fe2f   baiyun   配件计划
105
106
                render={(text, _item: Item) => (
                  <>
2d451216   baiyun   配件计划联调
107
108
109
110
111
112
113
                    <a onClick={() => { setVisibleConfirm(true); setConfirm(false); setItem(_item); }}>查看</a>
                    {_item.status == 0 && (
                      <>
                        <Divider type="vertical" />
                        <a onClick={() => { setVisibleConfirm(true); setConfirm(true); setItem(_item); }}>导入确认</a>
                      </>
                    )}
38e3fe2f   baiyun   配件计划
114
115
116
117
118
119
                  </>
                )}
              />
            </Table>
          </Card>
          <DetailModal
26e052d0   baiyun   配件发运
120
121
            visible={visibleConfirm}
            item={item}
2d451216   baiyun   配件计划联调
122
            confirm={confirm}
26e052d0   baiyun   配件发运
123
            onCancel={() => setVisibleConfirm(false)}
dae4c757   baiyun   配件计划进度
124
            fetchList={() => setParams({ current: 1 }, true)}
26e052d0   baiyun   配件发运
125
          />
38e3fe2f   baiyun   配件计划
126
127
128
          <UploadExcel
            importVisible={importVisible}
            setImportVisible={setImportVisible}
2d451216   baiyun   配件计划联调
129
            brands={brands}
38e3fe2f   baiyun   配件计划
130
131
132
133
134
135
            getList={() => setParams({ current: 1 }, true)}
          />
        </ConfigProvider>
      </PageHeaderWrapper>
    );
  }