OrderPrintModal.tsx 9.22 KB
import '@/pages/OrderPrint/index.less';
import { Modal } from 'antd';
import printJS from 'print-js';

export default ({ mainOrder, subOrders, onClose }) => {
  console.log(mainOrder);
  console.log(subOrders);

  let columns = [];
  for (let i = 0; i < subOrders.length; i++) {
    let subOrder = subOrders[i];
    columns.push(
      <tr height="30" style={{ height: '15.00pt' }}>
        <td height="30" style={{ height: '15.00pt' }}></td>
        <td className="xl72">{i + 1}</td>
        <td className="xl72">{subOrder.id}</td>
        <td className="xl72">{subOrder.productName}</td>
        <td className="xl72">{subOrder.parameters}</td>
        <td className="xl72">{subOrder.unit}</td>
        <td className="xl72">{subOrder.quantity}</td>
        <td className="xl72">{subOrder.notes}</td>
      </tr>,
    );
  }

  //补充空白行,使表格不少于六行
  for (let i = subOrders.length; i < 6; i++) {
    columns.push(
      <tr height="30" style={{ height: '15.00pt' }}>
        <td height="30" style={{ height: '15.00pt' }}></td>
        <td className="xl72"></td>
        <td className="xl72"></td>
        <td className="xl72"></td>
        <td className="xl72"></td>
        <td className="xl72"></td>
        <td className="xl72"></td>
        <td className="xl72"></td>
      </tr>,
    );
  }

  return (
    <Modal
      title="打印出货单"
      centered
      open
      onOk={() => {
        //printJS打印出货单
        printJS({
          printable: 'printArea', // 元素id,不支持多个
          type: 'html',
          targetStyle: ['* '],
          targetStyles: ['*'],
          style:
            '@page{size:auto; margin: 0;}' +
            '@media print { @page {size: landscape } }', // landscape  默认横向打印
        });

        onClose();
      }}
      onCancel={() => onClose()}
      width={1000}
    >
      <div
        id="printArea"
        className="flex items-center justify-center bg-gray-100"
      >
        <div className="w-full max-w-4xl p-10 my-10 bg-white border border-gray-300">
          <table
            className="p-10"
            width="846"
            border={0}
            cellPadding={0}
            cellSpacing={0}
            style={{
              width: '423.00pt',
              borderCollapse: 'collapse',
              tableLayout: 'fixed',
            }}
          >
            <col
              width="25.50"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 544 }}
            />
            <col
              width="52.50"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 1120 }}
            />
            <col
              width="115.50"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 2464 }}
            />
            <col
              width="169.50"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 3616 }}
            />
            <col
              width="165"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 3520 }}
            />
            <col
              width="96"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 2048 }}
            />
            <col
              width="114"
              style={{ msoWidthSource: 'userset', msoWidthAlt: 2432 }}
            />
            <col width="108" style={{ width: '54.00pt' }} />
            <tr height="42" style={{ height: '21.00pt' }}>
              <td height="42" style={{ height: '21.00pt' }}></td>
              <td
                className="xl65"
                colSpan="7"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                科 路 得
              </td>
            </tr>
            <tr height="30" style={{ height: '15.00pt' }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td
                className="xl66"
                colSpan="7"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                网址:www.canrd.com
              </td>
            </tr>
            <tr height="35" style={{ height: '17.50pt' }}>
              <td height="35" style={{ height: '17.50pt' }}></td>
              <td
                className="xl67"
                colSpan="7"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                销售出货单
              </td>
            </tr>
            <tr height="30" style={{ height: '15.00pt' }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td
                className="xl69"
                colSpan="4"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                单位名称:{mainOrder.institution}
              </td>
              <td
                className="xl69"
                colSpan="3"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                单号:{mainOrder.id}
              </td>
            </tr>
            <tr height="30" style={{ height: '15.00pt' }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td
                className="xl69"
                colSpan="4"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                联系人:{mainOrder.customerName}
              </td>
              <td
                className="xl69"
                colSpan="3"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                开单日期:{mainOrder.createTime}
              </td>
            </tr>
            <tr height="30" style={{ height: '15.00pt' }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td
                className="xl69"
                colSpan="4"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                联系电话:{mainOrder.customerContactNumber}
              </td>
              <td
                className="xl70"
                colSpan={2}
                style={{ msoIgnore: 'colSpan' }}
              ></td>
              <td className="xl70"></td>
            </tr>
            <tr height="30" style={{ height: '15.00pt' }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td
                className="xl69"
                colSpan="7"
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                送货地址:{mainOrder.customerShippingAddress}
              </td>
            </tr>
            <tr height="30" style={{ height: '15.00pt' }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td className="xl71">序号</td>
              <td className="xl71">订单号</td>
              <td className="xl71">货品名称</td>
              <td className="xl71">规格</td>
              <td className="xl71">单位</td>
              <td className="xl71">数量</td>
              <td className="xl71">备注</td>
            </tr>

            {columns}

            <tr style={{ height: '19.00pt' }}>
              <td style={{ height: '19.00pt' }}></td>
              <td className="xl73">销货单位</td>
              <td
                className="xl74"
                colSpan="3"
                style={{
                  borderRight: '0.5pt solid windowtext',
                  borderBottom: '0.5pt solid windowtext',
                }}
              >
                发货地址:广东省东莞市厚街镇锦丰路9号科路得产业园
              </td>
              <td className="xl73">开户银行及账号</td>
              <td
                className="xl74"
                colSpan={2}
                style={{
                  borderRight: '0.5pt solid windowtext',
                  borderBottom: '0.5pt solid windowtext',
                }}
              >
                招商银行股份有限公司东莞东骏路支行
                <br />
                账号:769906437110802
              </td>
            </tr>
            <tr style={{ height: 30 }}>
              <td height="30" style={{ height: '15.00pt' }}></td>
              <td className="xl76" colSpan={2} style={{ msoIgnore: 'colSpan' }}>
                客户签名:
              </td>
              <td className="xl76">核准:屠亚辉</td>
              <td
                className="xl78"
                colSpan={2}
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                业务员:Peter
              </td>
              <td
                className="xl78"
                colSpan={2}
                style={{ borderRight: 'none', borderBottom: 'none' }}
              >
                开单人:张玉红
              </td>
            </tr>
            <tr style={{ display: 'none', width: 0 }}>
              <td width="26" style={{ width: 13 }}></td>
              <td width="53" style={{ width: 26 }}></td>
              <td width="116" style={{ width: 58 }}></td>
              <td width="170" style={{ width: 85 }}></td>
              <td width="165" style={{ width: 83 }}></td>
              <td width="96" style={{ width: 48 }}></td>
              <td width="114" style={{ width: 57 }}></td>
            </tr>
          </table>
        </div>
      </div>
    </Modal>
  );
};