index.js 4.32 KB
import React, { useEffect } from "react";
import * as commonUtils from "@/utils/utils";
import useCommonBase from "@/components/Common/CommonHooks/useCommonBase";
import ShowType from "@/components/Common/CommonComponent";
import styles from "./index.less";

const usePrenatalReminderInfoEvent = function(props) {
  const formData = props.formData;

  useEffect(
    async function() {
      if (commonUtils.isNotEmptyArr(formData)) {
        const result = await handleGetData(formData[0]);
        const result1 = await handleGetData(formData[1], 1);
        const result2 = await handleGetData(formData[2], 2);
        props.onSaveState({
          ...result,
          ...result1,
          ...result2,
          slaveConfig: formData[0],
          slave1Config: formData[1],
          slave2Config: formData[2],
          bFinish: true
        });
      }
    },
    [formData]
  );

  const handleGetData = async function(config, index) {
    if (index === undefined) index = "";
    const app = props.app;
    const userinfo = app.userinfo || {};
    const globalData = commonUtils.convertStrToObj(localStorage.xlybusinessglobalData);
    const sWorkshopId = userinfo.sWorkshopId;
    const currentSelectedMachineTaskDataRow = globalData.currentSelectedMachineTaskDataRow || {};
    const sOrderId = currentSelectedMachineTaskDataRow.sOrderId;
    const conditonValues = props.onGetSqlConditionValues(config);
    const addState =
      (await props.onGetDataSet({
        name: "slave" + index,
        configData: config,
        condition: {
          sSqlCondition: {
            ...conditonValues,
            sWorkshopId,
            sOrderId
          }
        },
        isWait: true
      })) || {};
    return addState;
  };

  return { ...props };
};

const PrenatalReminderInfo = function(baseProps) {
  const props = usePrenatalReminderInfoEvent(useCommonBase(baseProps));
  const bFinish = props.bFinish;
  if (!bFinish) return "";

  const app = props.app;
  const slaveData = props.slaveData;
  const slave1Data = props.slave1Data;
  const slave2Data = props.slave2Data;
  const slaveConfig = props.slaveConfig;

  const viewRow1 = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0] : {};
  const viewRow2 = commonUtils.isNotEmptyArr(slave1Data) ? slave1Data[0] : {};
  const viewRow3 = commonUtils.isNotEmptyArr(slave2Data) ? slave2Data[0] : {};
  const viewRow = { ...viewRow1, ...viewRow2, ...viewRow3 };
  const tableName = "slave";

  const gdsconfigformslave = slaveConfig ? (slaveConfig.gdsconfigformslave || []) : [];
  const memoListFilter = gdsconfigformslave.filter(function(item) {
    return item && item.sControlName && item.sControlName.includes("_") && item.bVisible;
  });



  return (
    <div className={styles.prenatalReminderInfo}>
      {memoListFilter.map(function(item, index) {
        const title = item.showName;
        let dataValueNew = viewRow[item.sName] || "";
        dataValueNew = dataValueNew.replace(/\\n,?/g, '\n');
        const child = {
          sId: commonUtils.createSid(),
          sName: item.sName,
          sControlName: item.sControlName,
          bVisible: true,
          showName: title
        };
        const showTypeProps = {
          app: app,
          className: styles.showType,
          iColValue: 24,
          name: tableName,
          record: viewRow,
          sId: commonUtils.createSid(),
          getSqlDropDownData: props.getSqlDropDownData,
          getSqlCondition: props.getSqlCondition,
          handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
          getFloatNum: props.getFloatNum,
          onChange: props.onDataChange,
          showConfig: child,
          slaveConfig: props[tableName + "Config"],
          formItemLayout: { labelCol: { span: 0 }, wrapperCol: { span: 24 } },
          textArea: true,
          enabled: false,
          dataValue: dataValueNew,
          bTable: true,
          bViewTable: true,
          formRoute: props.formRoute,
          getDateFormat: props.getDateFormat
        };

        const key = item.iIncrement !== undefined ? item.iIncrement : index;
        return (
          <div key={key}>
            <div className={styles.title}>{title}</div>
            <div className={styles.content}>
              <ShowType {...showTypeProps} />
            </div>
          </div>
        );
      })}
    </div>
  );
};

export default PrenatalReminderInfo;