Blame view

src/pages/pms/partPlan/PlanManage/subpages/Detail/index.tsx 4.47 KB
da356727   jiangwei   配件计划调整
1
  import { Card, ConfigProvider, Spin, Upload } from 'antd';
12f15fa6   by1642146903   fix
2
  import { PageHeaderWrapper } from '@ant-design/pro-layout';
bbc8cff2   by1642146903   配件计划管理调整
3
  import React, {useState} from "react";
12f15fa6   by1642146903   fix
4
  import useInitial from "@/hooks/useInitail";
da356727   jiangwei   配件计划调整
5
  import { getDetail, Item, Params, SupplierVO, StorageVO, PartVO, DetailVO } from "./api";
12f15fa6   by1642146903   fix
6
7
8
9
10
  import zhCN from "antd/lib/locale-provider/zh_CN";
  import st from "@/pages/pms/partPlan/PlanManage/style.less";
  import StepBnt from "@/pages/pms/comonents/StepBnt";
  // @ts-ignore
  import {common} from "@/typing/common";
bbc8cff2   by1642146903   配件计划管理调整
11
12
13
  import {flattenDeep} from "@/pages/pms/entity";
  import {sum} from "lodash";
  import PartDetailModal from './components/PartDetailModal';
12f15fa6   by1642146903   fix
14
  
12f15fa6   by1642146903   fix
15
16
  export default function Index({ match }: common.ConnectProps) {
    const { planId } = match.params;
da356727   jiangwei   配件计划调整
17
    const { data, loading } = useInitial<Item, Params>(getDetail, {}, {planId});
bbc8cff2   by1642146903   配件计划管理调整
18
19
    const [visiblePart, setVisiblePart] = useState(false);
    const [parts, setParts] = useState<PartVO[]>([]);
12f15fa6   by1642146903   fix
20
21
22
  
    return (
      <PageHeaderWrapper title="配件计划详情">
5f69c1aa   jiangwei   样式交互优化
23
24
25
        <Spin spinning={loading}>
          <ConfigProvider locale={zhCN}>
            <Card className={st.page}>
da356727   jiangwei   配件计划调整
26
              {data.list?.map((dealer: DetailVO = {}) => (
5f69c1aa   jiangwei   样式交互优化
27
28
29
                <div key={`dealer${dealer.settleDealerName}`} style={{ marginTop: 10 }}>
                  <div style={{ fontWeight: "bold" }}>{`商家: ${dealer.settleDealerName || ''}`}</div>
                  {(dealer.suppliers || []).map((supplier: SupplierVO = {}) => {
bbc8cff2   by1642146903   配件计划管理调整
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
                  const paList: any[] = flattenDeep((supplier.storages || []).map((st: any) => (st.parts || [])));
                  return (
                    <div key={`supplier${supplier.supplierName}`} style={{ marginTop: 10, marginLeft: 40 }}>
                      <div style={{ fontWeight: "bold" }}>{`供应商: ${supplier.supplierName || ''}`}</div>
                      <div style={{display: 'flex', marginLeft: 40, marginTop: 10}}>
                        <div style={{marginRight: 20}}>
                          {`总金额: ${sum(paList.map((it: any) => (it.price || 0) * (it.partCnt || 0))).toFixed(2)}元`}
                        </div>
                        <div>{`品种数: ${paList.length}种`}</div>
                      </div>
                      {(supplier.storages || []).map((storage: StorageVO) => (
                        <div key={`storage${storage.storageName}`} style={{ marginTop: 10, marginLeft: 60 }}>
                          <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center'}}>
                            <div style={{ fontWeight: "bold" }}>{`发运库房: ${storage.storageName || ''}`}</div>
                            <div style={{marginLeft: 20}}>{`总金额: ${sum((storage.parts || []).map((it: any) => (it.price || 0) * (it.partCnt || 0))).toFixed(2)}元`}</div>
                            <div style={{marginLeft: 20}}>{`品种数: ${(storage.parts || []).length}种`}</div>
                            <a style={{marginLeft: 20}} onClick={() => { setVisiblePart(true); setParts(storage.parts || []); }}>
                              查看配件
                            </a>
6a7ce3bf   by1642146903   导出计划
49
50
51
                            <a style={{marginLeft: 20}} href={`/api/pms/erp/part/plan/export/plan/list?id=${storage.planGroupId}`}>
                              导出
                            </a>
bbc8cff2   by1642146903   配件计划管理调整
52
53
54
55
56
57
                          </div>
                        </div>
                      ))}
                    </div>
                  );
                })}
5f69c1aa   jiangwei   样式交互优化
58
                </div>
12f15fa6   by1642146903   fix
59
            ))}
da356727   jiangwei   配件计划调整
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
              <div style={{ display: 'flex', alignItems: 'flex-start', marginBottom: 20 }}>
                <span style={{ marginRight: 10 }}>备注:{data.remark}</span>
              </div>
              <div style={{ display: 'flex', alignItems: 'flex-start' }}>
                <span style={{ marginRight: 10 }}>附件:</span>
                <div style={{display: 'flex'}}>
                  {data.fids?.split(',').map(i => (
                    <Upload
                      listType="picture-card"
                      fileList={[{
                      uid: '-1',
                      name: i,
                      status: 'done',
                      url: `/api/file/show?fid=${i}`,
                  }]}
                      disabled
                    />
                  ))}  
                </div>
              </div>
5f69c1aa   jiangwei   样式交互优化
80
81
82
83
84
85
86
87
88
              <PartDetailModal visible={visiblePart} onCancel={() => setVisiblePart(false)} parts={parts} />
              <StepBnt
                disable={false}
                bntLoading={false}
                close={() => history.back()}
              />
            </Card>
          </ConfigProvider>
        </Spin>
12f15fa6   by1642146903   fix
89
90
91
      </PageHeaderWrapper>
    );
  }