/* eslint-disable */
import React, { useRef, useState, useEffect } from "react";
import { Tabs, Button, message } from "antd-v4";
import { CompressOutlined, ExpandOutlined } from "@ant-design/icons";
import * as commonUtils from "@/utils/utils";
import * as commonFunc from "@/components/Common/commonFunc";
import * as commonBusiness from "@/components/Common/commonBusiness";
import * as commonServices from "@/services/services";
import CommonBase from "@/components/Common/CommonBase";
import AntdDraggableModal from "@/components/Common/AntdDraggableModal";
import CommonViewTable from "@/components/Common/CommonViewTable";
import StaticEditTable from "@/components/Common/CommonTable";
import jsPreviewPdf from "@js-preview/pdf";
import commonConfig from "@/utils/config";
import styles from "./index.less";
const MakeUpPDFEvent = props => {
const addState = {};
const { formData = [], selectData = [], masterData, makeUpPDFRecord = {} } = props;
const [activeKey, setActiveKey] = useState("100");
useEffect(
() => {
if (!formData.length) return;
const getInitData = async () => {
const [masterConfig, slaveConfig] = formData;
const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
const { sId, sMakeUpId = sId } = makeUpPDFRecord;
let resultData = {};
let masterDefaultData = {};
if (sMakeUpId) {
resultData = await props.handleGetDataOne({ name: "master", configData: masterConfig, condition: { sId: sMakeUpId }, isWait: true });
const sParentId = resultData?.masterData?.sId;
resultData = {
...resultData,
...(await props.handleGetDataSet({
name: "slave",
configData: slaveConfig,
condition: { sSqlCondition: { sParentId } },
clearSelectData: true,
isWait: true,
})),
};
} else {
const defaultData = commonFunc.getDefaultData(masterConfig);
const { sPageMaterialsId, sPageMaterialsName, sPageMaterialsNo } = selectData[0];
masterDefaultData = {
...defaultData,
dTimes: selectData.length * 20,
sPageMaterialsId,
sPageMaterialsName,
sPageMaterialsNo,
};
}
props.onSaveState({
masterConfig,
masterData: { handleType: "add", ...commonFunc.getDefaultData(masterConfig), ...masterDefaultData },
// masterData: { sId: commonUtils.createSid(), handleType: "add", ...commonFunc.getDefaultData(masterConfig) },
slaveConfig,
slaveColumn,
slaveData: selectData,
...resultData,
});
};
getInitData();
},
[formData.length]
);
const handleResult = async (url, body) => {
const { app } = props;
let { masterData } = props;
const dataReturn = (await commonServices.postValueService(app.token, body, url)).data;
if (dataReturn.code === 1) {
/* 成功 */
const [masterNewData] = dataReturn.dataset.rows[0].dataSet;
masterData = { ...masterData, ...masterNewData };
if (commonUtils.isNotEmptyObject(masterData)) {
props.onSaveState({
masterData,
});
}
} else {
/* 失败 */
message.error(dataReturn.msg);
return false;
}
};
/* 生成拼版任务 */
addState.onSend = () => {
props.onSaveState({ bRefreshTable: true });
setActiveKey("200");
setMakeUpProcessList([]);
const { app, masterData, slaveData } = props;
const { userinfo } = app;
const url = `${commonConfig.server_host}makeup/makeupcreate`;
const body = {
...userinfo,
sUserId: userinfo.sId,
sMakePerson: userinfo.sUserName,
masterData: [masterData],
slaveData,
};
handleResult(url, body);
// commonServices.postValueService(app.token, body, url);
};
/* 暂停 */
addState.onStop = () => {
setActiveKey("200");
const { app, masterData, slaveData } = props;
const { userinfo } = app;
const url = `${commonConfig.server_host}makeup/makeupstop`;
const body = {
...userinfo,
sUserId: userinfo.sId,
sMakePerson: userinfo.sUserName,
sBillNo: commonUtils.isNotEmptyObject(masterData) ? masterData.sBillNo : "",
sId: commonUtils.isNotEmptyObject(masterData) ? masterData.sId : "",
sOrderSlaveId: slaveData[0].sOrderSlaveId,
};
handleResult(url, body);
};
/* 生产工单 */
addState.onCreateWorkOrder = () => {
setActiveKey("200");
const { app, masterData, slaveData } = props;
const { userinfo } = app;
let sId = masterData?.sId;
if (commonUtils.isEmptyObject(sId)) {
message.warn("拼版还未完成,请等待...");
return;
}
const url = `${commonConfig.server_host}makeup/makeuptowork`;
const body = {
...userinfo,
sUserId: userinfo.sId,
sMakePerson: userinfo.sUserName,
sBillNo: commonUtils.isNotEmptyObject(masterData) ? masterData.sBillNo : "",
sId,
sOrderSlaveId: slaveData[0].sOrderSlaveId,
};
handleResult(url, body);
};
const [makeUpProcessList, setMakeUpProcessList] = useState([]);
const [makeUpData, setMakeUpData] = useState({});
const [slaveDataNew, setSlaveDataNew] = useState([]);
// 获取ws消息
useEffect(() => {
window.tempWsAction = ({ data } = {}) => {
const { msg, action } = commonUtils.convertStrToObj(data);
console.log("=====data", data);
if (action === "showMakeUpProcess") {
setMakeUpProcessList(pre => [...pre, msg]);
} else if (action === "showMakeUpView") {
setMakeUpData(pre => ({ ...pre, sViewPdf: msg }));
} else if (action === "sendMakeUpData") {
setMakeUpData(pre => ({ ...pre, ...msg }));
} else if (action === "sendMakeUpSlaveData") {
setSlaveDataNew(msg);
}
};
return () => {
window.tempWsAction = null;
};
}, []);
useEffect(
() => {
props.onSaveState({
masterData: { ...masterData, ...makeUpData },
});
},
[makeUpData]
);
useEffect(
() => {
if (!slaveDataNew.length) return;
const slaveData = props.slaveData.map(item => {
const extraData = slaveDataNew.find(i => i.sOrderSlaveId === item.sOrderSlaveId) || {};
return {
...item,
...extraData,
};
});
props.onSaveState({ slaveData });
},
[slaveDataNew]
);
return {
...props,
...addState,
activeKey,
setActiveKey,
makeUpProcessList,
};
};
const MakeUpPDF = baseProps => {
const { pdfMakeUpVisible } = baseProps;
if (!pdfMakeUpVisible) return "";
const props = MakeUpPDFEvent(baseProps);
const { onCancel, onOk, title, app, masterConfig, masterData = {}, bFullScreen } = props;
if (!masterConfig) return "";
const ableConfigs = masterConfig.gdsconfigformslave.filter(item => item.sName && item.bVisible && !item.sControlName);
const viewProps = {
...props,
viewConfigs: ableConfigs,
tableConfig: masterConfig,
iColValueView: 24,
viewRow: masterData,
tableName: "master",
onDataChange: props.onChange,
onViewClick: (...args) => {
props.onViewClick(...args);
props.onCancel();
},
};
const tabsConfig = masterConfig.gdsconfigformslave.filter(item => item.sName && item.bVisible && item.sControlName);
const tabOrderInfomation = commonFunc.showLocalMessage(props, "tabOrderInfomation", "订单信息");
const tabPlatemakingProgress = commonFunc.showLocalMessage(props, "tabPlatemakingProgress", "拼版进度");
return (
;
}
})(),
};
}),
]}
/>