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 titleTranslations = { sChinese: { '技术评审汇签': '技术评审汇签', '客户投诉': '客户投诉', '本批生产注意事项': '本批生产注意事项', '不合格报告': '不合格报告', '车间产前提醒(品管)': '车间产前提醒(品管)', '制程异常': '制程异常', '质检反馈': '质检反馈', '二维码提醒': '二维码提醒', '车间产前提醒': '车间产前提醒' }, sEnglish: { '技术评审汇签': 'Technical Review', '客户投诉': 'Customer Complaint', '本批生产注意事项': 'Production Notes', '不合格报告': 'Nonconformance Report', '车间产前提醒(品管)': 'Pre-production Reminder(QC)', '制程异常': 'Process Exception', '质检反馈': 'Quality Feedback', '二维码提醒': 'QR Code Reminder', '车间产前提醒': 'Pre-production Reminder' }, sBig5: { '技术评审汇签': '技術評審匯簽', '客户投诉': '客戶投訴', '本批生产注意事项': '本批生產注意事項', '不合格报告': '不合格報告', '车间产前提醒(品管)': '車間產前提醒(品管)', '制程异常': '製程異常', '质检反馈': '質檢反饋', '二维码提醒': '二維碼提醒', '车间产前提醒': '車間產前提醒' } }; const usePrenatalReminderInfoEvent = props => { const { formData } = props; useEffect( async () => { 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 (config, index = "") => { const { app } = props; const { userinfo = {} } = app; const globalData = commonUtils.convertStrToObj( localStorage.xlybusinessglobalData ); const { sWorkshopId } = userinfo; const { currentSelectedMachineTaskDataRow = {} } = globalData; const { sOrderId } = currentSelectedMachineTaskDataRow; 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 getTranslatedTitle = (app, originalTitle) => { const language = app?.userinfo?.sLanguage || 'sChinese'; return titleTranslations[language]?.[originalTitle] || originalTitle; }; const PrenatalReminderInfo = baseProps => { const props = usePrenatalReminderInfoEvent(useCommonBase(baseProps)); const { bFinish } = props; if (!bFinish) return ""; const { app, slaveData, slave1Data, slave2Data, slave2Config } = props; 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 memoListFilter = slave2Config?.gdsconfigformslave .filter(item => item.bVisible) .map(({ sName, showName }) => ({ sName, showName })) || []; const leftSize = Math.ceil(memoListFilter.length / 2); const rightSize = memoListFilter.length - leftSize; const leftMemoList = memoListFilter.slice(0, leftSize); const rightMemoList = memoListFilter.slice(leftSize, memoListFilter.length); return (
{[ "技术评审汇签", "客户投诉", "本批生产注意事项", "不合格报告", "车间产前提醒(品管)", "制程异常", "质检反馈", "二维码提醒", "车间产前提醒" ].map((title, index) => { const translatedTitle = getTranslatedTitle(app, title); let dataValueNew = ""; const child = { sId: commonUtils.createSid(), sName: `sTempMemo${index}`, sControlName: "", bVisible: true, showName: title }; const memoList = new Array(20) .fill("") .map((_, i) => viewRow[`sNoteMemo${i + 1}`]); const getMemoValue = (from, to) => { const tempList = memoList .slice(from, to) .filter(item => item !== undefined) .map((item, i) => `${i + 1}) ${item}`); return tempList.join("\n"); }; if (title === "客户投诉") { dataValueNew = getMemoValue(0, 4); } else if (title === "不合格报告") { dataValueNew = getMemoValue(4, 8); } else if (title === "制程异常") { dataValueNew = getMemoValue(8, 12); } else if (title === "质检反馈") { dataValueNew = getMemoValue(12, 16); } else if (title === "车间产前提醒(品管)") { dataValueNew = viewRow.sMemo; } else if (title === "本批生产注意事项") { dataValueNew = getMemoValue(16, 20); } else if (title === "技术评审汇签") { const dataValue1 = leftMemoList .map( ({ sName, showName }) => `${showName}:${viewRow[sName] || ""}` ) .join("\n"); const dataValue2 = rightMemoList .map( ({ sName, showName }) => `${showName}:${viewRow[sName] || ""}` ) .join("\n"); const showTypeProps1 = { 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, costomStyle: styles.hideRightBorder, showName: getTranslatedTitle(app, child.showName) }, slaveConfig: props[`${tableName}Config`], formItemLayout: { labelCol: { span: 0 }, wrapperCol: { span: 24 } }, textArea: true, enabled: false, dataValue: dataValue1, bTable: true, bViewTable: true, formRoute: props.formRoute, getDateFormat: props.getDateFormat }; const showTypeProps2 = { 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, costomStyle: styles.hideLeftBorder, showName: getTranslatedTitle(app, child.showName) }, slaveConfig: props[`${tableName}Config`], formItemLayout: { labelCol: { span: 0 }, wrapperCol: { span: 24 } }, textArea: true, enabled: false, dataValue: dataValue2, bTable: true, bViewTable: true, formRoute: props.formRoute, getDateFormat: props.getDateFormat }; return (
{translatedTitle}
); }else if(title === '车间产前提醒'){ dataValueNew = viewRow?.sCjMemo }else if(title === '二维码提醒'){ dataValueNew = viewRow?.sBarcodeMemo } const showTypeProps = { 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, showName: getTranslatedTitle(app, child.showName) }, 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 }; return (
{translatedTitle}
); })}
); }; export default PrenatalReminderInfo;