index.js 4.28 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;
  });

  const renderItems = [];

  memoListFilter.forEach(function(item, index) {
    const title = item.showName;
    console.log('nihaoaoaoao ', title, item);
    const dataValueNew = viewRow[item.sName] || "";
    const child = {
      sId: commonUtils.createSid(),
      sName: item.sName,
      sControlName: item.sControlName,
      bVisible: true,
      showName: title
    };
    const showTypeProps = {
      app: app,
      className: styles.showType,
      iColValue: item.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;
    renderItems.push(
      React.createElement("div", { key: key },
        React.createElement("div", { className: styles.title }, title),
        React.createElement("div", { className: styles.content },
          React.createElement(ShowType, showTypeProps)
        )
      )
    );
  });

  return React.createElement("div", { className: styles.prenatalReminderInfo }, renderItems);
};

export default PrenatalReminderInfo;