index.js 3.06 KB
import React, { useEffect } from "react";
import { Button } from "antd";
import { PlusCircleOutlined } from "@ant-design/icons";

import useCommonBase from "@/components/Common/CommonHooks/useCommonBase";
import * as commonFunc from "@/components/Common/commonFunc";
import * as commonBusiness from "@/components/Common/commonBusiness";
import StaticEditTable from "@/components/Common/CommonTable";
import SearchComponent from "@/components/Common/SearchComponent";

import styles from "./index.less";

const useVerifyScrapListEvent = props => {
  const { formData = [] } = props;

  useEffect(
    async () => {
      if (!formData.length) return;

      const slaveConfig = formData[0];
      const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);

      props.onSaveState({
        slaveConfig,
        slaveColumn,
        ...(await hanldeGetData()),
        bFinish: true
      });
    },
    [formData.length]
  );

  const hanldeGetData = async slaveFilter => {
    const slaveConfig = formData[0];
    const result =
      (await props.onGetDataSet({
        name: "slave",
        configData: slaveConfig,
        condition: {
          bFilter: slaveFilter
        },
        isWait: true
      })) || {};
    return result;
  };

  const hanldeGetData1 = async (config, slaveFilter) => {
    props.onSaveState(await hanldeGetData(slaveFilter));
  };

  return {
    ...props,
    onGetData: hanldeGetData1
  };
};
const VerifyScrapList = baseProps => {
  const sModelsId =
    location.pathname.split("/")[7] || "12710101117146353376860";
  const props = useVerifyScrapListEvent(
    useCommonBase({ ...baseProps, sModelsId })
  );

  const { bFinish, slaveTotalData = [] } = props;
  if (!bFinish) return "";

  const { dWayFPQty: dWayFPQtyTotal = 0 } = slaveTotalData[0] || {};

  const tableProps = {
    ...commonBusiness.getTableTypes("slave", props),
    fixedHeight: "calc(100% - 50px)",
    tableProps: {
      onChange: () => {}
    },
    onDoubleClickNew: ({ record }) => {
      props.onViewBill(record);
    },
    onGetTotalDiv: () => {
      return (
        <div className={styles.totalDiv}>
          <div className="total">合计</div>
          <div className="totalName">核检废品汇总数:</div>
          <div className="totalValue">{dWayFPQtyTotal}</div>
        </div>
      );
    }
  };

  const bCheckModel = sModelsId !== "12710101117146353376860";

  return (
    <div className={styles.verifyScrapList}>
      <div className={styles.toolBar}>
        <div className={styles.content}>检验列表</div>
        {bCheckModel ? (
          ""
        ) : (
          <div className={styles.tools}>
            <Button
              size="large"
              type="link"
              icon={<PlusCircleOutlined />}
              onClick={props.onAddBill}
            >
              新增
            </Button>
          </div>
        )}
      </div>
      <div className={styles.search}>
        <SearchComponent {...props} />
      </div>
      <div className={styles.table}>
        <StaticEditTable {...tableProps} />
      </div>
    </div>
  );
};

export default VerifyScrapList;