/* eslint-disable */ import React, { Component, useState, useRef, useEffect } from "react"; import { Form } from "@ant-design/compatible"; // import '@ant-design/compatible/assets/index.css'; import { Row, Col, Checkbox, Layout, Spin, Tabs, Dropdown, Avatar, Button, Menu, Table, Upload } from "antd-v4"; import { message } from "@/utils/common/message"; import { DownOutlined, UploadOutlined } from "@ant-design/icons"; import CommonNewSales from "@/components/Common/CommonNewBillEvent"; /* 继承销售模块业务功能 */ import * as commonFunc from "@/components/Common/commonFunc"; /* 通用单据方法 */ /* 通用单据方法 */ import Toolbar from "@/components/Common/ToolBar/ToolBarNew"; import StaticEditTable from "@/components/Common/CommonTable"; /* 可编辑表格 */ import styles from "@/index.less"; import AssignmentField from "./AssignmentField"; import CommonView from "@/components/Common/CommonView"; import CommonViewTable from "@/components/Common/CommonViewTable"; import CommonBase from "@/components/Common/CommonBase"; /* 获取配置及数据 */ import * as commonBusiness from "@/components/Common/commonBusiness"; /* 单据业务功能 */ import commonConfig from "@/utils/config"; import * as commonUtils from "@/utils/utils"; /* 通用方法 */ import * as commonServices from "@/services/services"; /* 服务类 */ import AddIcon from "@/assets/add.svg"; import DisableAddIcon from "@/assets/disableadd.svg"; import CopyIcon from "@/assets/copy.svg"; import CopyAllIcon from "@/assets/copyall.svg"; import DisableCopyIcon from "@/assets/disablecopy.svg"; import DisableCopyAllIcon from "@/assets/disablecopyall.svg"; import DelIcon from "@/assets/delete.svg"; import DisableDelIcon from "@/assets/disabledelete.svg"; /* 获取配置及数据 */ import AntdDraggableModal from "@/components/Common/AntdDraggableModal"; import CommonListSelect from "./CommonListSelect"; import WorkCalendar from "@/components/Common/WorkCalendar/WorkCalendar"; import ContextMenuModal from "@/components/Common/ContextMenuModal"; import CommonViewDragable from "@/components/Common/CommonViewDragable"; import CommonExamInfo from "@/components/Common/CommonExamInfo"; import JsonFormatter from "@/components/Common/Json/JsonFormatter"; import lodash from "lodash"; import userImgs from "@/assets/user.svg"; // import ProcessIcon from '../../assets/process.svg'; // import DisableProcessIcon from '../../assets/disableprocess.svg'; // import MateriallIcon from '../../assets/material.svg'; // import DisableMateriallIcon from '../../assets/disablematerial.svg'; // import SlaveMemo from './SlaveMemo'; const width = "18px"; const height = "18px"; const setAdd = { title: "增加", width: { width }, height: { height }, img: 添加, disableimg: 删除, }; const setCopy = { title: "复制", width: { width }, height: { height }, img: 复制, disableimg: 复制, }; const setCopyAll = { title: "复制部件", width: { width }, height: { height }, img: 复制部件, disableimg: 复制部件, }; const setDelete = { title: "删除", width: { width }, height: { height }, img: 删除, disableimg: 删除, }; // const setProcess = { // title: '工序', // width: { width }, // height: { height }, // img: 选择工序, // disableimg: 删除, // }; // const setMaterial = { // title: '材料', // width: { width }, // height: { height }, // img: 选择材料, // disableimg: 选择材料, // }; // console.log('btn; ', setAdd, setDelete, setCopy); const { Header, Content } = Layout; const { TabPane } = Tabs; let _this = {}; // const { confirm } = Modal; class CommonNewBill extends Component { constructor(props) { super(props); this.state = { currentTab: "", }; _this = this; } componentDidUpdate() { // 没有默认页签情况下, 非编辑状态进入,展示第一个tab const { enabled, masterConfig } = this.props; // 获取默认展开tab const defaultTabConfig = masterConfig && masterConfig.gdsconfigformslave.find( item => ["MainContent", "zMaterials", "zCheck", ...new Array(10).fill("").map((_, index) => `zSlaveInfo${index}`)].includes(item.sControlName) && item.sDefault ); if (!enabled && !this.firstLoaded && commonUtils.isEmptyObject(defaultTabConfig)) { clearTimeout(this.timer); this.timer = setTimeout(() => { this.firstLoaded = true; if (this.slaveTabsRef) { const oFirstTab = this.slaveTabsRef.querySelector(".ant-tabs-nav-list")?.querySelector(".ant-tabs-tab"); if (oFirstTab) { // 创建一个自定义的 click 事件 const clickEvent = new Event("click", { bubbles: true, cancelable: true }); // 触发该元素的 click 事件 oFirstTab.dispatchEvent(clickEvent); } } }, 500); } } /** 行选择 */ onRowClick = (name, record) => { if (name === "control") { this.props.onTableSelectRowChange(name, [record.sId]); } }; onChange = checkedValues => { this.props.onSaveState({ dataPersonArray: checkedValues, }); }; getMenuStatus = menu => { if (menu.sControlName === "BtnImport") { return !this.props.enabled; } }; /** 上传后执行函数 */ // handleUploadChange = (info) => { // const { file } = info; // console.log(info, 'infoinfoinfoinfoinfoinfoinfoinfoinfo'); // const { masterData, sModelsId, slaveConfig } = this.props; // if (file.response) { // if (file.response.code === 1) { // /* 数据查询成功 */ // const errorInfo = file.response.dataset.rows[0].nocanbeInsert; // if (commonUtils.isNotEmptyObject(errorInfo)) { // message.error(errorInfo[0].sReason); // return; // } // const returnData = file.response.dataset.rows[0].canbeInsert; // returnData.forEach(async (tableDataRow) => { // tableDataRow.handleType = 'add'; // tableDataRow.sId = commonUtils.createSid(); // tableDataRow.sParentId = masterData.sId; // tableDataRow.key = tableDataRow.sId; // for (const child of Object.keys(tableDataRow)) { // const index = child.indexOf('_sRealValue_'); // if (index > -1) { // const property = child.substring(0, child.length - 12); // tableDataRow[property] = tableDataRow[child]; // } // } // // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductId'); // let productIdDropDown; // const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductId'); // if (slaveIndex > -1) { // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]); // productIdDropDown = sqlDropDownData.dropDownData; // } // if (productIdDropDown !== undefined) { // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); // if (iProductIdIndex === -1) { // tableDataRow.sProductInfo = JSON.stringify({ // sProductId: tableDataRow.sProductName, // sProductName: tableDataRow.sProductName, // sProductStyle: tableDataRow.sProductStyle, // sProductUnit: tableDataRow.sProductUnit, // sProductNo: tableDataRow.sProductNo, // sCustomerProductNo: tableDataRow.sCustomerProductNo, // sProductClassifyId: tableDataRow.sProductClassifyId, // sProductClassifyName: tableDataRow.sProductClassifyName, // }); // } // } // }); // this.props.onSaveState({ slaveData: returnData }); // } else { /* 失败 */ // this.props.getServiceError(file.response); // } // } // }; /** 图片上传后执行函数 */ handleUploadChange = (info, name) => { const { file } = info; if (file.response && file.response.code === 1) { const sPicturePath = file.response.dataset.rows[0].savePathStr; const uploadInfo = { sPicturePath, sFileName: file.name, }; const tableDataRow = this.props.onDataRowAdd(name, true); const { [`${name}Column`]: tableColumn, masterData, [`${name}Data`]: tableData } = this.props; tableColumn.forEach(slaveChild => { const ckey = slaveChild.dataIndex; if (ckey === "sProductNo" || ckey === "sProductName") { tableDataRow[ckey] = masterData[ckey] !== undefined ? masterData[ckey] : ""; } else if (ckey === "iOrder") { tableDataRow[ckey] = ""; } else if (file.response && file.response.code === 1) { if (uploadInfo[ckey] !== undefined) { tableDataRow[ckey] = uploadInfo[ckey]; } } }); tableData.push(tableDataRow); this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true }); } else if (file.response && file.response.code === -1) { message.error(file.response.msg); } }; handleUploadPropsSales = () => { const { masterData, sModelsType } = this.props; if (commonUtils.isNotEmptyObject(masterData)) { const sCustomerId = commonUtils.isEmptyStr(masterData.sCustomerId) ? undefined : masterData.sCustomerId; let existCustomerId = false; if (sModelsType.includes("sales/") && commonUtils.isNotEmptyStr(sCustomerId)) { existCustomerId = true; } else if (!sModelsType.includes("sales/")) { existCustomerId = true; } return { disabled: !this.props.enabled || !existCustomerId /* 是否可用 */, style: { display: commonUtils.convertBooleanToDisplayBlock(true) } /* 是否显示 */, }; } }; handleOk = async (flag, tmpCheck, isWait) => { const { sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig } = this.props; const { currentPane } = app; const bCkxTmpCheck = app.systemData.filter(item => item.sName === "CkxTmpCheck")[0].sValue; if (bCkxTmpCheck === "1") { const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait); if (returnData.code === 1) { if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) { this.props.onGetData(masterConfig, slaveConfig, checkConfig); message.success(returnData.msg); } else { message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn); } } else { /* 失败 */ this.props.getServiceError(returnData); } } else { const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray; if (commonUtils.isEmptyObject(dataPersonArray)) { checkPersonData.forEach(item => { dataPersonArray.push(item.sUserId); }); } const dataPersonString = dataPersonArray.join(","); const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; const value = { sProName: "Sp_System_AutoSendCheckMsg", paramsMap: { sFormGuid: sModelsId, sBillKey: currentPane.sProcName, sTbName: masterConfig.sTbName, sGuid: masterData.sId, sBillNo: masterData.sBillNo, sCheckCondition: checkConditions, sMemo: "", sCheckModelGuid: sCheckModelId, sCheckPerson: dataPersonString, }, }; const returnData = (await commonServices.postValueService(app.token, value, url)).data; if (returnData.code === 1) { const noCheckMsg = commonFunc.showMessage(app.commonConst, "NoCheckMsg"); /* 您有消息待审核 */ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) { this.props.handleSendSocketMessage("examine", "showImg", currentId, dataPersonString, noCheckMsg, null); const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`; const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId }; const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data; if (returnCanCheckBill.code === 1) { if (returnCanCheckBill.dataset.rows[0].iCount === 1) { this.props.onDataAudit(1, 1); this.props.onSaveState({ visible: false, }); return; } } else { /* 失败 */ this.props.getServiceError(returnCanCheckBill); } this.props.handleSendSocketMessage("reflush", "showImg", currentId, dataPersonString, noCheckMsg, null); message.success(returnData.msg); } else { message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn); } } else { /* 失败 */ this.props.getServiceError(returnData); } } this.props.onSaveState({ visible: false, }); }; handleCancel = () => { this.props.onSaveState({ visible: false, }); }; handleTableModal = async () => { const { sModelsId, controlData, masterData, slaveData, controlConfig, slaveSelectedRowKeys, enabled, slaveConfig } = this.props; const addState = {}; if (this.props.sModelsType === "sales/salesOrder") { const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); const iIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]); if (iIndex === -1 && iSlaveIndex > -1 && enabled) { const allTableData = {}; allTableData.master = masterData; allTableData.slaveData = slaveData; // let dropdownProductClassifyId = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductClassifyId'); let dropdownProductClassifyId; const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyId"); if (slaveIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "slave", slaveConfig.gdsconfigformslave[slaveIndex]); dropdownProductClassifyId = sqlDropDownData.dropDownData; } if (commonUtils.isEmptyArr(dropdownProductClassifyId)) { const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName"); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "slave", slaveConfig.gdsconfigformslave[iIndex]); dropdownProductClassifyId = sqlDropDownData.dropDownData; } // dropdownProductClassifyId = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductClassifyName'); } if (commonUtils.isNotEmptyArr(dropdownProductClassifyId)) { const iProductClassifyIdIndex = dropdownProductClassifyId.findIndex(item => item.sId === slaveData[iSlaveIndex].sProductClassifyId); if (commonUtils.isNotEmptyObject(dropdownProductClassifyId[iProductClassifyIdIndex])) { const sAllPartsName = dropdownProductClassifyId[iProductClassifyIdIndex].sAllPartsName; if (commonUtils.isNotEmptyStr(sAllPartsName)) { const sAssignFieldObj = sAllPartsName.split(","); for (const child of sAssignFieldObj) { const tableDataRowAdd = commonFunc.getDefaultData(controlConfig, allTableData); tableDataRowAdd.handleType = "add"; tableDataRowAdd.sId = commonUtils.createSid(); tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRowAdd.sSlaveId = slaveSelectedRowKeys[0]; tableDataRowAdd.key = tableDataRowAdd.sId; tableDataRowAdd.bDefault = false; tableDataRowAdd.iOrder = 0; tableDataRowAdd.sPartsName = child; tableDataRowAdd.dPartsQty = slaveData[iSlaveIndex].dProductQty; controlData.push(tableDataRowAdd); } } } } addState.controlData = controlData; } if (controlData !== undefined) { const iControlIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]); if (iControlIndex > -1) { addState.controlSelectedRowKeys = [controlData[iControlIndex].sId]; } } } this.props.onSaveState({ visibleModal: true, ...addState, }); }; handleTableChooseProcess = () => { const { processConfig } = this.props; const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess"); if (iIndex > -1) { this.props.onBtnChoose("process", "BtnChooseProcess", processConfig.gdsconfigformslave[iIndex]); } }; handleCancelModal = modelVisible => { this.props.onSaveState({ [modelVisible]: false, }); }; handleOkModal = () => { const { controlData, slave0Data, processData, sModelsId, slaveData, slaveSelectedRowKeys, materialsConfig, processConfig } = this.props; const ctData = controlData.filter(item => item.handleType !== "del" && item.sSlaveId === slaveSelectedRowKeys[0]); const mtData = slave0Data.filter(item => item.handleType !== "del" && item.sSlaveId === slaveSelectedRowKeys[0]); const pData = processData.filter(item => item.handleType !== "del" && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType === "2"); if (commonUtils.isNotEmptyArr(ctData)) { let mDetail = ""; let pDetail = ""; const slaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); ctData.forEach(async (controlItem, n) => { if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) { const qz = n === 0 ? "" : " "; if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) { const yDetail = `${mDetail}${qz}#${controlItem.sPartsName}:`; const gDetail = `${pDetail}${qz}#${controlItem.sPartsName}:`; let imDetail = ""; let ipDetail = ""; const materials = mtData.filter(materialsItem => materialsItem.sControlId === controlItem.sId); // const materialsIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'materials', 'sMaterialsName'); let materialsIdDropDown; const materialsIndex = materialsConfig.gdsconfigformslave.findIndex(item => item.sName === "sMaterialsName"); if (materialsIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "materials", materialsConfig.gdsconfigformslave[materialsIndex]); materialsIdDropDown = sqlDropDownData.dropDownData; } materials.forEach((mItem, i) => { const fh = i === 0 ? "" : ","; if (materialsIdDropDown) { const materialsIdIndex = materialsIdDropDown.findIndex(item => item.sId === mItem.sMaterialsId); if (materialsIdIndex > -1) { imDetail = `${imDetail}${fh} ${materialsIdDropDown[materialsIdIndex].sMaterialsName}`; } } }); // processPropsType const process = pData.filter(processItem => processItem.sControlId === controlItem.sId); // const processIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName'); let processIdDropDown; const processIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName"); if (processIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "process", processConfig.gdsconfigformslave[processIndex]); processIdDropDown = sqlDropDownData.dropDownData; } process.forEach((pItem, i) => { const fh = i === 0 ? "" : ","; if (processIdDropDown) { const processIdIndex = processIdDropDown.findIndex(item => item.sId === pItem.sProcessId); if (processIdIndex > -1) { ipDetail = `${ipDetail}${fh} ${processIdDropDown[processIdIndex].sProcessName}`; } } }); if (commonUtils.isNotEmptyObject(imDetail)) { mDetail = `${yDetail}${imDetail}`; } if (commonUtils.isNotEmptyObject(ipDetail)) { pDetail = `${gDetail}${ipDetail}`; } } } }); slaveData[slaveIndex].sMaterialsMemo = mDetail; slaveData[slaveIndex].sProcessMemo = pDetail; slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? "update" : slaveData[slaveIndex].handleType; } else if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmptyArr(ctData)) { const sSlaveId = controlData[0].sSlaveId; const slaveIndex = slaveData.findIndex(item => item.sId === sSlaveId); slaveData[slaveIndex].sMaterialsMemo = ""; slaveData[slaveIndex].sProcessMemo = ""; slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? "update" : slaveData[slaveIndex].handleType; } this.props.onSaveState({ visibleModal: false, controlData, slave0Data, processData, slaveData, }); }; /** 控制选择控制表时,显示部件工序与成品工序 */ handleFilterSlaveData = (name, dataIndex, value, record) => { return commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(value.toLowerCase()); }; /** 控制选择控制表时,显示部件工序与成品工序 */ // eslint-disable-next-line no-unused-vars handleFilterData = (name, dataIndex, value, record) => { return true; // const { slaveSelectedRowKeys } = this.props; // if (name === 'process') { // return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3' && // commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) || // (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) && // commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())); // } else { // return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2' && // commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) || // (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) && // commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())); // } // (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase())); }; /* 控制表过滤材料表 工序表数据 */ handleGetFilterData = name => { const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props; if (data !== undefined) { const newArr = data.filter(item => { if (name === "control") { return commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString()); } else { return ( commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()) && commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString()) ); } }); return newArr.length; } }; /** 添加表格空行 */ handleTableAdd = async (name, flag) => { /* 外置处理业务 */ const { sModelsId, sModelsType, gdsformconst, slaveData, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData, slaveSelectedRowKeys, slaveConfig, } = this.props; let tableDataRow = {}; if (name === "control") { tableDataRow = this.props.onDataRowAdd(name, true); if (commonUtils.isEmptyObject(tableDataRow)) { return; } let dPartsQty = 0; if (commonUtils.isNotEmptyArr(slaveData)) { slaveData.forEach(item => { dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); }); // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); let productIdDropDown; const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductName"); if (slaveIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "slave", slaveConfig.gdsconfigformslave[slaveIndex]); productIdDropDown = sqlDropDownData.dropDownData; } if (productIdDropDown) { const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId); if (iProductIdIndex > -1) { tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName; } } } const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); if (iSlaveIndex > -1) { if (sModelsType === "sales/salesOrder") { if (!commonUtils.isEmpty(slaveData[iSlaveIndex].dProductQty)) { tableDataRow.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0); } } else { tableDataRow.dPartsQty = dPartsQty; } tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId; } tableData.push(tableDataRow); this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }); } else if (name === "materials" || name === "process") { tableDataRow = this.props.onDataRowAdd(name, true); if (commonUtils.isEmptyArr(controlSelectedRowKeys)) { const msg = commonFunc.showMessage(gdsformconst, "pleaseChooseParts"); message.warn(msg === "" ? "请选择部件" : msg); // 请选择部件 return; } const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); if (iIndex > -1 && iSlaveIndex > -1) { if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === "") { message.warn(commonFunc.showMessage(gdsformconst, "partsNameNotNull")); // 部件名称不能为空 return; } tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId; tableDataRow.sControlId = controlData[iIndex].sId; tableDataRow.sPartsName = controlData[iIndex].sPartsName; } tableData.push(tableDataRow); this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }); } else { this.props.onDataRowAdd(name, flag); } }; /** 删除表格数据 */ otherTableDel = (name, tableSelectedRowKeys) => { const tableData = this.props[`${name}Data`]; let tableDelData = this.props[`${name}DelData`]; tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; for (const sId of tableSelectedRowKeys) { /* 看看删除集合和从表中是否都存在该条数据 */ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId); while (tableDataIndex > -1) { /* 删除从表中的数据并存入删除集合中 */ const slaveDataFilter = tableData[tableDataIndex]; tableData.splice(tableDataIndex, 1); slaveDataFilter.handleType = "del"; tableDelData.push(slaveDataFilter); tableDataIndex = tableData.findIndex(item => item.sControlId === sId); } } return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] }; }; /** 删除表格数据 */ handleTableDel = (name, isWait, tableSelectedRowKeys) => { const { slaveSelectedRowKeys, slaveData, slaveConfig, sModelsId, masterData } = this.props; if (name === "control") { const tableSelectedRowKeys = this.props[`${name}SelectedRowKeys`]; if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) { const materialsReturnData = this.otherTableDel("materials", tableSelectedRowKeys); const processReturnData = this.otherTableDel("process", tableSelectedRowKeys); const controlReturnData = this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); this.props.onSaveState({ ...materialsReturnData, ...processReturnData, ...controlReturnData, }); return true; } else { return false; } } else if (name === "slave") { /* 删除子表 */ if (slaveConfig.sTableType === "single") { /* 单表删除 */ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { let slaveSelectedRowNewKeys = slaveSelectedRowKeys; const newSelectedRowKeys = this.handleDelSlaveChild(slaveData, slaveSelectedRowKeys[0], slaveSelectedRowKeys); if (commonUtils.isNotEmptyArr(newSelectedRowKeys)) { slaveSelectedRowNewKeys = newSelectedRowKeys; } const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowNewKeys); this.props.onSaveState({ ...slaveReturnData, }); return true; } } else if (sModelsId === "12710101117000994807090") { /* 从表删除 更新主表入仓数量 */ const slaveReturnData = this.props.onDataRowDel(name, true, slaveSelectedRowKeys); if ( commonUtils.isNotEmptyObject(slaveReturnData) && commonUtils.isNotEmptyArr(slaveReturnData.slaveData) && commonUtils.isNotEmptyObject(masterData) ) { let dSumProductQty = 0; slaveReturnData.slaveData.forEach((item, index) => { dSumProductQty = commonUtils.convertFixNum( commonUtils.convertFixNum(commonUtils.isNull(dSumProductQty, 0), 6) + commonUtils.convertFixNum(commonUtils.isNull(item.dSampleQty), 6), 6 ); }); masterData.dInspectQty = commonUtils.convertFixNum(dSumProductQty * 10000, 6); masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType; slaveReturnData.masterData = masterData; } this.props.onSaveState({ ...slaveReturnData, }); return true; } else { const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowKeys); this.props.onSaveState({ ...slaveReturnData, }); return true; } } else { return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); } }; /* 迭代删除从表子表数据 */ handleDelSlaveChild = (tableData, sId, tableSelectedKeys) => { const filterData = tableData.filter(item => item.sFatherSlaveId === sId); filterData.forEach(item => { tableSelectedKeys.push(item.sId); this.handleDelSlaveChild(tableData, item.sId, tableSelectedKeys); }); return tableSelectedKeys; }; /** 销售订单删除从表数据时也删除控制材料工序表数据 */ handleSlaveTableDel = (name, isWait, tableSelectedRowKeys) => { const { sModelsType, controlData, processData, materialsData } = this.props; if (sModelsType === "sales/salesOrder" && name === "slave") { const controlDataDel = controlData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]); const controlDataSelectedRowKeys = []; if (!commonUtils.isEmpty(controlDataDel)) { for (const item of controlDataDel) { const materialsDataSelectedRowKey = item.sId; controlDataSelectedRowKeys.push(materialsDataSelectedRowKey); } if (commonUtils.isNotEmptyArr(controlDataSelectedRowKeys)) { this.props.onDataRowDel("control", isWait, controlDataSelectedRowKeys, true); } const materialsDataDel = materialsData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]); const materialsDataSelectedRowKeys = []; if (!commonUtils.isEmpty(materialsDataDel)) { for (const item of materialsDataDel) { const materialsDataSelectedRowKey = item.sId; materialsDataSelectedRowKeys.push(materialsDataSelectedRowKey); } } if (commonUtils.isNotEmptyArr(materialsDataSelectedRowKeys)) { this.props.onDataRowDel("materials", isWait, materialsDataSelectedRowKeys, true); } const processDataDel = processData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]); const processDataSelectedRowKeys = []; if (!commonUtils.isEmpty(processDataDel)) { for (const item of processDataDel) { const processDataSelectedRowKey = item.sId; processDataSelectedRowKeys.push(processDataSelectedRowKey); } } if (commonUtils.isNotEmptyArr(processDataSelectedRowKeys)) { this.props.onDataRowDel("process", isWait, processDataSelectedRowKeys, true); } } } return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); }; handleSelect = async (name, selectConfig, selectData) => { const { [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterData, masterConfig, controlSelectedRowKeys, sModelsId, token, app, } = this.props; const tableSelectedRowKeys = []; if (name === "productProcessInfo") { if (commonUtils.isNotEmptyArr(selectData)) { let slaveData = []; let controlData = []; let materialsData = []; let processData = []; let sConfigMasterIdSlave = ""; let sConfigMasterIdControl = ""; let sConfigMasterIdMaterials = ""; let sConfigMasterIdProcess = ""; const selectRowData = selectData[0]; const sConfigIdString = masterConfig.gdsconfigformslave.filter(item => item.sName === "sConfigId")[0].showDropDown; if (commonUtils.isNotEmptyStr(sConfigIdString)) { const sConfigId = JSON.parse(sConfigIdString); sConfigMasterIdSlave = sConfigId.sConfigMasterIdSlave; sConfigMasterIdControl = sConfigId.sConfigMasterIdControl; sConfigMasterIdMaterials = sConfigId.sConfigMasterIdMaterials; sConfigMasterIdProcess = sConfigId.sConfigMasterIdProcess; } if (commonUtils.isEmptyStr(sConfigMasterIdSlave)) { message.warning(commonFunc.showMessage(app.commonConst, "slaveParameterErro")); } if (commonUtils.isEmptyStr(sConfigMasterIdControl)) { message.warning(commonFunc.showMessage(app.commonConst, "controlParameterErro")); } if (commonUtils.isEmptyStr(sConfigMasterIdMaterials)) { message.warning(commonFunc.showMessage(app.commonConst, "materialsParameterErro")); } if (commonUtils.isEmptyStr(sConfigMasterIdProcess)) { message.warning(commonFunc.showMessage(app.commonConst, "processParameterErro")); } const slaveUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdSlave}?sModelsId=${sModelsId}`; const value = { sSqlCondition: { sParentId: selectRowData.sId } }; const slaveReturnData = (await commonServices.postValueService(token, value, slaveUrl)).data; if (slaveReturnData.code === 1) { slaveData = slaveReturnData.dataset.rows[0].dataSet; slaveData.forEach(item => { item.handleType = "add"; item.sId = commonUtils.createSid(); item.sParentId = masterData.sId; }); } else { this.props.getServiceError(slaveReturnData); } const controlUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdControl}?sModelsId=${sModelsId}`; const controlReturnData = (await commonServices.postValueService(token, value, controlUrl)).data; if (controlReturnData.code === 1) { controlData = controlReturnData.dataset.rows[0].dataSet; controlData.forEach(item => { item.handleType = "add"; item.sId = commonUtils.createSid(); item.sParentId = masterData.sId; }); } else { this.props.getServiceError(controlReturnData); } const materialsUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdMaterials}?sModelsId=${sModelsId}`; const materialsReturnData = (await commonServices.postValueService(token, value, materialsUrl)).data; if (materialsReturnData.code === 1) { materialsData = materialsReturnData.dataset.rows[0].dataSet; materialsData.forEach(item => { item.handleType = "add"; item.sId = commonUtils.createSid(); item.sParentId = masterData.sId; }); } else { this.props.getServiceError(materialsReturnData); } const processUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdProcess}?sModelsId=${sModelsId}`; const processReturnData = (await commonServices.postValueService(token, value, processUrl)).data; if (processReturnData.code === 1) { processData = processReturnData.dataset.rows[0].dataSet; processData.forEach(item => { item.handleType = "add"; item.sId = commonUtils.createSid(); item.sParentId = masterData.sId; }); } else { this.props.getServiceError(processReturnData); } this.props.onSaveState({ processData, materialsData, controlData, slaveData, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, }); } } else { const { controlData, slaveData, slaveSelectedRowKeys } = this.props; const iIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; if (commonUtils.isNotEmptyArr(selectData)) { selectData.forEach(item => { const newCopyTo = {}; newCopyTo.master = masterData; if (iIndex > -1) { newCopyTo.control = controlData[iIndex]; } let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 tableDataRow.handleType = "add"; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData.sId; if (this.props.sModelsType === "sales/salesOrder") { const iSlaveIndex = commonUtils.isNotEmptyArr(slaveSelectedRowKeys) ? slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]) : -1; if (iSlaveIndex > -1) { tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId; } } if (iIndex > -1 && tableDataRow.sType !== "3") { tableDataRow.sControlId = controlData[iIndex].sId; tableDataRow.sPartsName = controlData[iIndex].sPartsName; tableData.push(tableDataRow); } else if (tableDataRow.sType === "3") { tableData.push(tableDataRow); } tableSelectedRowKeys.push(tableDataRow.sId); }); } const tableDataNew = this.sortData(controlData, tableData); this.props.onSaveState({ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys }); } }; sortData = (tableData, processData) => { processData.sort((g1, g2) => { const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId); let sPartOrder1 = `0000${iIndex1}`; sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3); let sOrder1 = `000${g1.iOrder}`; sOrder1 = sOrder1.substring(sOrder1.length - 3); const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId); let sPartOrder2 = `0000${iIndex2}`; sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3); let sOrder2 = `000${g2.iOrder}`; sOrder2 = sOrder2.substring(sOrder2.length - 3); return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10); }); return processData; }; /** 上传后执行函数 */ handleBeforeUpload = () => { // const isLt10M = file.size / 1024 / 1024 < 10; // if (!isLt10M) { // message.error(commonFunc.showMessage(this.props.app.commonConst, 'picMax'));/* 图片大小需小于10MB! */ // } }; handleTabChange = key => { setTimeout(() => { this.setState({ currentTab: key, }); }, 0); }; handleMenuClick = e => { let { sId } = this.props.masterData; const Type = e.key; const { token } = this.props.app; const { sType } = this.props.app.userinfo; if (Type === "formSlave") { /* 根据从表勾选数据 生成从表数据 */ const { slaveSelectedRowKeys } = this.props; if (commonUtils.isEmptyObject(slaveSelectedRowKeys)) { message.warn("请选择数据"); return; } sId = slaveSelectedRowKeys; } const downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=${Type}&sId=${sId}&token=${token}&sType=${sType}`; window.open(downloadUrl); this.props.onSaveState({ downloadUrl, }); }; handleSlaveInit = async name => { const { app, masterData, [`${name}Data`]: slaveData } = this.props; if (masterData.sName !== null && masterData.sName !== undefined) { message.warn("该节点不能初始化!"); return; } // const comfiled = service.service_path.filter(item => (item.route === // app.currentPane.route)).length <= 0 ? {} : // service.service_path.filter(item => (item.route === // app.currentPane.route))[0]; const comfiled = { path: "gdsconfigform", pathTwo: "Gdsconfigformmaster", pathSlave: "Gdsconfigformslave", pathCustom: "Customslave", pathInit: "GdsconfigformslaveByMaster", pathSlaveSelect: "gdsmodule", pathSlaveSelectTwo: "SelectFormData", }; const url = `${commonConfig.server_host}${comfiled.path}/get${comfiled.pathInit}?sParentId=${masterData.sId}&sTbName=${masterData.sTbName}&sType=${masterData.sType}`; const dataReturn = (await commonServices.getService(this.props.app.token, url)).data; if (dataReturn.code === 1) { /* 数据查询成功 */ if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) { const tempData = dataReturn.dataset.rows; const initData = []; tempData.forEach(item => { item.handleType = "add"; initData.push(item); }); const newData = [...slaveData, ...initData]; this.props.onSaveState({ slaveData: newData, enabled: true }); message.success("初始化成功!"); } else { message.warn("当前表格无需初始化!"); } } else { /* 失败 */ this.props.getServiceError(dataReturn); } }; handleCopyRow = (name, toname) => { this.props.onCopyRow(name, toname); }; handleCopy2Custom = () => { let toname = "slave2"; for (let i = 0; i < 10; i++) { const slaveConfigName = `slave${i}Config`; const slaveConfig = this.props[slaveConfigName]; if (slaveConfig && commonUtils.isNotEmptyObject(slaveConfig)) { if (slaveConfig.sTbName === "gdsconfigformcustomslave") { toname = `slave${i}`; break; } } } this.props.onCopyRow("slave", toname); }; /** 添加行 */ handleAddRow = (name, index) => { this.props.onDataRowAdd(name, null, index); }; /** 删除行 */ handleDelRow = name => { const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props; if (this.props.onDataRowDel(name, false, tableSelectedRowKeys)) { message.success("删除成功!"); } }; /* 字段双击弹出 */ handleFieldDoubleClick = (sValue, showConfig, tbName) => { const { [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, [`${tbName}Data`]: tableData } = this.props; if (commonUtils.isNotEmptyObject(showConfig) && showConfig.sName === "sAssignField") { let tableDataRow = {}; if (commonUtils.isNotEmptyArr(tableData)) { const tableFilterData = tableData.filter(item => tableSelectedRowKeys.includes(item.sId)); if (commonUtils.isNotEmptyArr(tableFilterData)) { tableDataRow = tableFilterData[0]; } } const sAssignFieldColumn = [ { sId: commonUtils.createSid(), sParentId: tableDataRow.sId, dataIndex: "sNewName", title: "现字段", width: "220px", editable: true, bNotSort: true, }, { sId: commonUtils.createSid(), sParentId: tableDataRow.sId, dataIndex: "sOldName", title: "源字段", width: "220px", editable: true, bNotSort: true, }, ]; const sAssignFieldData = []; if (commonUtils.isNotEmptyObject(tableDataRow) && commonUtils.isNotEmptyObject(sValue)) { const selectedRowKeys = []; const sAssignFieldDataTemp = sValue.split(","); sAssignFieldDataTemp.forEach(index => { const aAssignFieldObj = {}; const splitData = index.split(":"); if (commonUtils.isNotEmptyArr(splitData)) { aAssignFieldObj.sId = commonUtils.createSid(); aAssignFieldObj.sNewName = splitData[0]; aAssignFieldObj.sOldName = splitData[1]; sAssignFieldData.push(aAssignFieldObj); } selectedRowKeys[0] = sAssignFieldData[0].sId; }); const { enabled } = this.props; this.props.onSaveState({ sAssignFieldColumn, visibleAssignmentField: true, sAssignFieldData, sAssignFieldName: tbName, sAssignFieldRowId: tableDataRow.sId /* 选中行的sId */, enabled, }); } else { this.props.onSaveState({ sAssignFieldColumn, visibleAssignmentField: true, sAssignFieldData: [], sAssignFieldName: tbName, sAssignFieldRowId: tableDataRow.sId /* 选中行的sId */, }); } } else if (showConfig?.sName === "sInstruct") { /* 指令集弹窗 */ // const sInstructJsonString = sValue; // this.props.onSaveState({ // visibleInstructField: true, // sInstructJsonString, // }); } }; /* 拿到赋值字段 */ handleGetsAssignField = (data, sFieldName) => { if (sFieldName === "sAssignField") { const { sAssignFieldRowId, sAssignFieldName } = this.props; /* 双击弹出赋值窗体的行ID */ const { [`${sAssignFieldName}Data`]: tableData } = this.props; if (commonUtils.isNotEmptyArr(tableData)) { const iIndex = tableData.findIndex(item => item.sId === sAssignFieldRowId); const newData = {}; /* 将数组变成赋值字符串 */ let sAssignFieldStr = ""; const len = data.length; data.forEach((item, index) => { sAssignFieldStr += `${item.sNewName}:${item.sOldName}`; if (index !== len - 1) { sAssignFieldStr += ","; } }); newData.sAssignField = sAssignFieldStr; newData.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? "update" : tableData[iIndex].handleType; tableData[iIndex] = { ...tableData[iIndex], ...newData }; this.props.onSaveState({ [`${sAssignFieldName}Data`]: tableData }); } } }; handleUploadPropsSales = () => { const { masterData, sModelsType } = this.props; if (commonUtils.isNotEmptyObject(masterData)) { const sCustomerId = commonUtils.isEmptyStr(masterData.sCustomerId) ? undefined : masterData.sCustomerId; let existCustomerId = false; if (sModelsType.includes("sales/") && commonUtils.isNotEmptyStr(sCustomerId)) { existCustomerId = true; } else if (!sModelsType.includes("sales/")) { existCustomerId = true; } return { disabled: !this.props.enabled || !existCustomerId /* 是否可用 */, style: { display: commonUtils.convertBooleanToDisplayBlock(true) } /* 是否显示 */, }; } }; handleUploadChangeFile = async info => { const { file } = info; const { formData = [] } = this.props; const templateData = formData.filter(item => item.sGrd === 'importTemplate'); const name = commonUtils.isNotEmptyArr(templateData) ? templateData[0].sTableAlias : 'slave' const { masterData, sModelsId, app, token, sModelsType, [`${name}Config`]: slaveConfig, [`${name}Data`]: slaveData } = this.props; if (file.response) { if (file.response.code === 1) { if (file.response.dataset.rows.length > 1) { const addState = {}; for (let i = 0; i < file.response.dataset.rows.length; i++) { const row = file.response.dataset.rows[i]; /* 数据查询成功 */ const errorInfo = row.nocanbeInsert; if (commonUtils.isNotEmptyObject(errorInfo)) { const importErrorData = errorInfo; this.props.onSaveState({ showImportErrorVisible: true, importData: importErrorData, }); return; } const tableName = ["", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] .filter(item => { const name = `slave${item}Config`; const config = this.props[name] || {}; return config.sGrd === row.sGrd || config.sTableName === row.sTableName; }) .map(item => `slave${item}`)[0]; if (!tableName) continue; const tableDelData = []; const { [`${tableName}Data`]: tableData = [], [`${tableName}Config`]: tableConfig } = this.props; /* 把之前存放的数据删除 */ addState[`${tableName}DelData`] = []; tableData.forEach(item => { if (item.handleType !== "add") { item.handleType = "del"; tableDelData.push(item); } }); const returnData = row.canbeInsert; let iCount = 0; let productIdDropDown; if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) { /* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */ const iIndex = tableConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductName"); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData( sModelsId, tableName, tableConfig.gdsconfigformslave[iIndex], returnData[0] ); productIdDropDown = sqlDropDownData.dropDownData; } } await returnData.forEach(async tableDataRow => { tableDataRow.handleType = "add"; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData.sId; tableDataRow.key = tableDataRow.sId; /* 若导入模板没有序号,则序号从1自增 */ if (commonUtils.isEmptyObject(tableDataRow.iOrder)) { iCount += 1; tableDataRow.iOrder = iCount; } for (const child of Object.keys(tableDataRow)) { const index = child.indexOf("_sRealValue_"); if (index > -1) { const property = child.substring(0, child.length - 12); tableDataRow[property] = tableDataRow[child]; } } if (productIdDropDown !== undefined) { const iProductIdIndex = productIdDropDown.findIndex( item => (item.sId === tableDataRow.sProductId || item.sNId === tableDataRow.sProductId) && item.sProductStyle === tableDataRow.sProductStyle ); if (iProductIdIndex === -1 && commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes("sales/salesOrder")) { /* 只有销售模块生成新产品 盘点 ,期间 不生成新的产品 */ tableDataRow.sProductId = tableDataRow.sProductName; tableDataRow.sProductInfo = JSON.stringify({ sProductId: tableDataRow.sProductName, sProductName: tableDataRow.sProductName, sProductStyle: tableDataRow.sProductStyle, sProductUnit: tableDataRow.sProductUnit, sProductNo: tableDataRow.sProductNo, sCustomerProductNo: tableDataRow.sCustomerProductNo, sProductClassifyId: tableDataRow.sProductClassifyId, sProductClassifyName: tableDataRow.sProductClassifyName, }); } } // if (!tableDataRow.dNProductPrice) { // tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice; // } // const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; // if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { // tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, 'dAuxiliaryQty', app, token, models); // tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow); // } else { // tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow); // } }); addState[`${tableName}Data`] = returnData; addState[`${tableName}DelData`] = tableDelData; } this.props.onSaveState(addState); } else { /* 数据查询成功 */ const errorInfo = file.response.dataset.rows[0].nocanbeInsert; if (commonUtils.isNotEmptyObject(errorInfo)) { // message.error(errorInfo[0].sReason); const importErrorData = errorInfo; this.props.onSaveState({ showImportErrorVisible: true, importData: importErrorData, }); return; } /* 把之前存放的数据删除 */ const slaveDelData = []; if (commonUtils.isNotEmptyArr(slaveData)) { slaveData.forEach(item => { if (commonUtils.isEmptyObject(item.handleType)) { item.handleType = "del"; slaveDelData.push(item); } }); } const returnData = file.response.dataset.rows[0].canbeInsert; let iCount = 0; let productIdDropDown; if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) { /* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductName"); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "slave", slaveConfig.gdsconfigformslave[iIndex], returnData[0]); productIdDropDown = sqlDropDownData.dropDownData; } } await returnData.forEach(async tableDataRow => { tableDataRow.handleType = "add"; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData.sId; tableDataRow.key = tableDataRow.sId; /* 若导入模板没有序号,则序号从1自增 */ if (commonUtils.isEmptyObject(tableDataRow.iOrder)) { iCount += 1; tableDataRow.iOrder = iCount; } for (const child of Object.keys(tableDataRow)) { const index = child.indexOf("_sRealValue_"); if (index > -1) { const property = child.substring(0, child.length - 12); tableDataRow[property] = tableDataRow[child]; } } if (productIdDropDown !== undefined) { const iProductIdIndex = productIdDropDown.findIndex( item => (item.sId === tableDataRow.sProductId || item.sNId === tableDataRow.sProductId) && item.sProductStyle === tableDataRow.sProductStyle ); if (iProductIdIndex === -1 && commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes("sales/salesOrder")) { /* 只有销售模块生成新产品 盘点 ,期间 不生成新的产品 */ tableDataRow.sProductId = tableDataRow.sProductName; tableDataRow.sProductInfo = JSON.stringify({ sProductId: tableDataRow.sProductName, sProductName: tableDataRow.sProductName, sProductStyle: tableDataRow.sProductStyle, sProductUnit: tableDataRow.sProductUnit, sProductNo: tableDataRow.sProductNo, sCustomerProductNo: tableDataRow.sCustomerProductNo, sProductClassifyId: tableDataRow.sProductClassifyId, sProductClassifyName: tableDataRow.sProductClassifyName, }); } } if (!tableDataRow.dNProductPrice) { tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice; } const models = sModelsType.includes("sales/") || sModelsType.includes("manufacture/") || sModelsType.includes("quotation/") || sModelsType.includes("productStock/") ? "Product" : "Materials"; if ( sModelsType.includes("purchase/") || sModelsType.includes("quotation/") || sModelsType.includes("manufacture/") || sModelsType.includes("materialsStock/") || sModelsType.includes("outside/") ) { tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, "dAuxiliaryQty", app, token, models); tableDataRow = commonBusiness.getCalculateAllMoney(app, models, "dAuxiliaryQty", masterData, tableDataRow); } else { tableDataRow = commonBusiness.getCalculateAllMoney(app, models, "dProductQty", masterData, tableDataRow); } }); this.props.onSaveState({ slaveData: returnData, slaveDelData }); } } else { /* 失败s */ this.props.getServiceError(file.response); } } }; handleSetTabNumList = tabNumList => { this.tabNumList = tabNumList; }; /** 通用下载 */ handleDownload = (name, flag, tableSelectedRowKeys) => { const { [`${name}Data`]: tableData, sModelsId, app } = this.props; if (tableSelectedRowKeys === undefined || tableSelectedRowKeys.length !== 1) { message.warn(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo")); /* 请先选择一条数据 */ return; } const dataSelect = tableData.filter(item => item.sId === tableSelectedRowKeys[0]); const { token } = this.props.app; const { sPicturePath } = dataSelect[0]; const urlPrint = `${commonConfig.file_host}file/download?sModelsId=${sModelsId}&token=${token}&savePathStr=${sPicturePath}`; window.open(urlPrint); }; handleJSONModalOk = value => { const { masterData } = this.props; const textAreaValue = value; // 获取 textarea 的值 const handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType; const newMasterData = { ...masterData, sInstruct: textAreaValue, handleType }; // 更新 masterData.sInstruct this.props.onSaveState({ masterData: newMasterData, visibleInstructField: false }); // 关闭弹窗 }; // ----------------------------数据修改回带wend ---------------------------- // render() { const { pageLoading, visible, checkConditions, checkPersonData, app } = this.props; const checkCondition = commonFunc.showMessage(app.commonConst, "checkCondition"); /* 审核条件 */ const checkSmemo = commonFunc.showMessage(app.commonConst, "checkSmemo"); /* 备注 */ const columns = [ { title: checkCondition, dataIndex: "condition", key: "condition", }, { title: checkSmemo, dataIndex: "sMemo", key: "sMemo", }, ]; const btnSure = commonFunc.showMessage(app.commonConst, "btnSure"); /* 确认 */ const check = commonFunc.showMessage(app.commonConst, "check"); /* 审核 */ const BtnClose = commonFunc.showMessage(app.commonConst, "BtnClose"); /* 关闭 */ const checkPerson = commonFunc.showMessage(app.commonConst, "checkPerson"); /* 审核人 */ return (
this.tabNumList} onSetTabNumList={this.handleSetTabNumList} onDataRowDownload={this.handleDownload} onDelRow={this.handleTableDel} onJsonModalOk={this.handleJSONModalOk} /> {visible ? ( {BtnClose} , , ]} >
{checkPerson}
{commonUtils.isNotEmptyObject(checkPersonData) ? checkPersonData.map(item => { return (
{item.sUserName} ); }) : ""} ) : ( "" )} ); } } const BillComponent = Form.create({ mapPropsToFields(props) { const { masterData, masterConfig } = props; const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig); return obj; }, })(props => { const { form, onReturnForm, AutoTableHeight, onlySlave, onlySlave0, onlySlave1, onlyslave2, onlyslave3, onlyslave4, onlyslave5, onlyslave6, onlyslave7, onlyslave8, onlyslave9, onlyslave10, slaveData, slave0Data, slave1Data, slave2Data, slave3Data, slave4Data, slave5Data, slave6Data, slave7Data, slave8Data, slave9Data, slave10Data, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config, slaveSelectedRowKeys, slave0SelectedRowKeys, slave1SelectedRowKeys, slave2SelectedRowKeys, slave3SelectedRowKeys, slave4SelectedRowKeys, app, slavePagination, slave0Pagination, slave1Pagination, slave2Pagination, slave3Pagination, slave4Pagination, slave5Pagination, slave6Pagination, slave7Pagination, slave8Pagination, slave9Pagination, slave10Pagination, slavePageSize, slave0PageSize, slave1PageSize, slave2PageSize, slave3PageSize, slave4PageSize, slave5PageSize, slave6PageSize, slave7PageSize, slave8PageSize, slave9PageSize, slave10PageSize, sModelsType, sModelsId, bDelegate, sInstructJsonString = "", } = props; const masterConfig = props.onMergeMasterConfig(); const masterConfigOld = { ...masterConfig }; /* 回带表单 */ onReturnForm(form); const autoHeight = `calc( ${AutoTableHeight} - 96px)`; const isSmall = false; let pageSize = commonConfig.pageSize; if (props.slaveConfig && props.slaveConfig.iPageSize) { pageSize = props.slaveConfig.iPageSize; } const { currentPane } = app; let bFlow = currentPane?.bFlow; /* 是否需要展示审批流程信息 */ if (bDelegate) { bFlow = false; } const bPagination = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.bPagination : false; const bPagination0 = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.bPagination : false; const bPagination1 = commonUtils.isNotEmptyObject(slave1Config) ? slave1Config.bPagination : false; const bPagination2 = commonUtils.isNotEmptyObject(slave2Config) ? slave2Config.bPagination : false; const bPagination3 = commonUtils.isNotEmptyObject(slave3Config) ? slave3Config.bPagination : false; const bPagination4 = commonUtils.isNotEmptyObject(slave4Config) ? slave4Config.bPagination : false; const bPagination5 = commonUtils.isNotEmptyObject(slave5Config) ? slave5Config.bPagination : false; const bPagination6 = commonUtils.isNotEmptyObject(slave6Config) ? slave6Config.bPagination : false; const bPagination7 = commonUtils.isNotEmptyObject(slave7Config) ? slave7Config.bPagination : false; const bPagination8 = commonUtils.isNotEmptyObject(slave8Config) ? slave8Config.bPagination : false; const bPagination9 = commonUtils.isNotEmptyObject(slave9Config) ? slave9Config.bPagination : false; const bPagination10 = commonUtils.isNotEmptyObject(slave10Config) ? slave10Config.bPagination : false; const pagination = !bPagination ? false : { pageSize, total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length, current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current, ...slavePagination, // showQuickJumper: true, hideOnSinglePage: false, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination0 = !bPagination0 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave0PageSize) && slave0PageSize !== 0 ? slave0PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave0Data) ? 0 : slave0Data.length, current: commonUtils.isEmptyObject(slave0Pagination) ? 1 : slave0Pagination.current, ...slave0Pagination, // showQuickJumper: true, hideOnSinglePage: false, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination1 = !bPagination1 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave1PageSize) && slave1PageSize !== 0 ? slave1PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave1Data) ? 0 : slave1Data.length, current: commonUtils.isEmptyObject(slave1Pagination) ? 1 : slave1Pagination.current, ...slave1Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination2 = !bPagination2 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave2PageSize) && slave2PageSize !== 0 ? slave2PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave2Data) ? 0 : slave2Data.length, current: commonUtils.isEmptyObject(slave2Pagination) ? 1 : slave2Pagination.current, ...slave2Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination3 = !bPagination3 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave3PageSize) && slave3PageSize !== 0 ? slave3PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave3Data) ? 0 : slave3Data.length, current: commonUtils.isEmptyObject(slave3Pagination) ? 1 : slave3Pagination.current, ...slave3Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination4 = !bPagination4 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave4PageSize) && slave4PageSize !== 0 ? slave4PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave4Data) ? 0 : slave4Data.length, current: commonUtils.isEmptyObject(slave4Pagination) ? 1 : slave4Pagination.current, ...slave4Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination5 = !bPagination5 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave5PageSize) && slave5PageSize !== 0 ? slave5PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave5Data) ? 0 : slave5Data.length, current: commonUtils.isEmptyObject(slave5Pagination) ? 1 : slave5Pagination.current, ...slave5Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination6 = !bPagination6 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave6PageSize) && slave6PageSize !== 0 ? slave6PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave6Data) ? 0 : slave6Data.length, current: commonUtils.isEmptyObject(slave6Pagination) ? 1 : slave6Pagination.current, ...slave6Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination7 = !bPagination7 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave7PageSize) && slave7PageSize !== 0 ? slave7PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave7Data) ? 0 : slave7Data.length, current: commonUtils.isEmptyObject(slave7Pagination) ? 1 : slave7Pagination.current, ...slave7Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination8 = !bPagination8 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave8PageSize) && slave8PageSize !== 0 ? slave8PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave8Data) ? 0 : slave8Data.length, current: commonUtils.isEmptyObject(slave8Pagination) ? 1 : slave8Pagination.current, ...slave8Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination9 = !bPagination9 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave9PageSize) && slave9PageSize !== 0 ? slave9PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave9Data) ? 0 : slave9Data.length, current: commonUtils.isEmptyObject(slave9Pagination) ? 1 : slave9Pagination.current, ...slave9Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; const pagination10 = !bPagination10 ? false : { pageSize: commonUtils.isNotEmptyNumber(slave10PageSize) && slave10PageSize !== 0 ? slave10PageSize : commonConfig.pageSize, total: commonUtils.isEmptyArr(slave10Data) ? 0 : slave10Data.length, current: commonUtils.isEmptyObject(slave10Pagination) ? 1 : slave10Pagination.current, ...slave10Pagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall, }; /* 表1-commonView显示区域 */ const ableConfigs = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1) : []; /* 选中行 */ let showAll = true; /* 只显示表格 */ let bShowLeft = true; /* 表格显示在左侧 */ let iColValueView = 12; let iColValueTable = 12; let slaveRow = {}; if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slaveRow = slaveData[iIndex]; } else { slaveRow = slaveData[0]; } } else if (commonUtils.isNotEmptyArr(slaveData)) { slaveRow = slaveData[0]; } if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) { const iIndexArea = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName !== "" && item.sControlName.includes("bShow")); if (iIndexArea > -1) { showAll = false; } if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) { const iShowLeft = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bShowLeft" && item.bVisible); const iShowRight = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bShowRight" && item.bVisible); if (iShowLeft > -1) { bShowLeft = true; iColValueTable = slaveConfig.gdsconfigformslave[iShowLeft].iColValue; } else if (iShowRight > -1) { bShowLeft = false; iColValueTable = slaveConfig.gdsconfigformslave[iShowRight].iColValue; } } } iColValueView = commonUtils.isNotEmptyNumber(iColValueTable) ? 24 - iColValueTable : 12; const iShowOrder = bShowLeft ? 1 : 100; /* 表2-commonView显示区域 */ const ableConfigs0 = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1) : []; let showAll0 = true; /* 只显示表格 */ let bShowLeft0 = true; /* 表格显示在左侧 */ let iColValueView0 = 12; let iColValueTable0 = 12; let slave0Row = {}; if (commonUtils.isNotEmptyArr(slave0SelectedRowKeys)) { const iIndex = slave0Data.findIndex(item => slave0SelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slave0Row = slave0Data[iIndex]; } else { slave0Row = slave0Data[0]; } } else if (commonUtils.isNotEmptyArr(slave0Data)) { slave0Row = slave0Data[0]; } if (commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyArr(slave0Config.gdsconfigformslave)) { const iIndexArea = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName !== "" && item.sControlName.includes("bShow")); if (iIndexArea > -1) { showAll0 = false; } if (commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyArr(slave0Config.gdsconfigformslave)) { const iShowLeft0 = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowLeft" && item.bVisible); const iShowRight0 = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowRight" && item.bVisible); if (iShowLeft0 > -1) { bShowLeft0 = true; iColValueTable0 = slave0Config.gdsconfigformslave[iShowLeft0].iColValue; } else if (iShowRight0 > -1) { bShowLeft0 = false; iColValueTable0 = slave0Config.gdsconfigformslave[iShowRight0].iColValue; } } } iColValueView0 = commonUtils.isNotEmptyNumber(iColValueTable0) ? 24 - iColValueTable0 : 12; const iShowOrder0 = bShowLeft0 ? 1 : 100; /* 表3-commonView显示区域 */ const ableConfigs1 = commonUtils.isNotEmptyObject(slave1Config) ? slave1Config.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1) : []; let showAll1 = true; /* 只显示表格 */ let bShowLeft1 = true; /* 表格显示在左侧 */ let iColValueView1 = 12; let iColValueTable1 = 12; let slave1Row = {}; if (commonUtils.isNotEmptyArr(slave1SelectedRowKeys)) { const iIndex = slave1Data.findIndex(item => slave1SelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slave1Row = slave1Data[iIndex]; } else { slave1Row = slave1Data[0]; } } else if (commonUtils.isNotEmptyArr(slave1Data)) { slave1Row = slave1Data[0]; } if (commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyArr(slave1Config.gdsconfigformslave)) { const iIndexArea = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName !== "" && item.sControlName.includes("bShow")); if (iIndexArea > -1) { showAll1 = false; } if (commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyArr(slave1Config.gdsconfigformslave)) { const iShowLeft1 = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowLeft" && item.bVisible); const iShowRight1 = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowRight" && item.bVisible); if (iShowLeft1 > -1) { bShowLeft1 = true; iColValueTable1 = slave1Config.gdsconfigformslave[iShowLeft1].iColValue; } else if (iShowRight1 > -1) { bShowLeft1 = false; iColValueTable1 = slave1Config.gdsconfigformslave[iShowRight1].iColValue; } } } iColValueView1 = commonUtils.isNotEmptyNumber(iColValueTable1) ? 24 - iColValueTable1 : 12; const iShowOrder1 = bShowLeft1 ? 1 : 100; /* 表4-commonView显示区域 */ const ableConfigs2 = commonUtils.isNotEmptyObject(slave2Config) ? slave2Config.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1) : []; let showAll2 = true; /* 只显示表格 */ let bShowLeft2 = true; /* 表格显示在左侧 */ let iColValueView2 = 12; let iColValueTable2 = 12; let slave2Row = {}; if (commonUtils.isNotEmptyArr(slave2SelectedRowKeys)) { const iIndex = slave2Data.findIndex(item => slave2SelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slave2Row = slave2Data[iIndex]; } else { slave2Row = slave2Data[0]; } } else if (commonUtils.isNotEmptyArr(slave2Data)) { slave2Row = slave2Data[0]; } if (commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyArr(slave2Config.gdsconfigformslave)) { const iIndexArea = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName !== "" && item.sControlName.includes("bShow")); if (iIndexArea > -1) { showAll2 = false; } if (commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyArr(slave2Config.gdsconfigformslave)) { const iShowLeft2 = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowLeft" && item.bVisible); const iShowRight2 = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowRight" && item.bVisible); if (iShowLeft2 > -1) { bShowLeft2 = true; iColValueTable2 = slave2Config.gdsconfigformslave[iShowLeft2].iColValue; } else if (iShowRight2 > -1) { bShowLeft2 = false; iColValueTable2 = slave2Config.gdsconfigformslave[iShowRight2].iColValue; } } } iColValueView2 = commonUtils.isNotEmptyNumber(iColValueTable2) ? 24 - iColValueTable2 : 12; if (slave2Config && slave2Config.sChinese === "上批对比") { iColValueView2 = iColValueView1; } const iShowOrder2 = bShowLeft2 ? 1 : 100; /* 表5-commonView显示区域 */ const ableConfigs3 = commonUtils.isNotEmptyObject(slave3Config) ? slave3Config.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1) : []; let showAll3 = true; /* 只显示表格 */ let bShowLeft3 = true; /* 表格显示在左侧 */ let iColValueView3 = 12; let iColValueTable3 = 12; let slave3Row = {}; if (commonUtils.isNotEmptyArr(slave3SelectedRowKeys)) { const iIndex = slave3Data.findIndex(item => slave3SelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slave3Row = slave3Data[iIndex]; } else { slave3Row = slave3Data[0]; } } else if (commonUtils.isNotEmptyArr(slave3Data)) { slave3Row = slave3Data[0]; } if (commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyArr(slave3Config.gdsconfigformslave)) { const iIndexArea = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName !== "" && item.sControlName.includes("bShow")); if (iIndexArea > -1) { showAll3 = false; } if (commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyArr(slave3Config.gdsconfigformslave)) { const iShowLeft3 = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowLeft" && item.bVisible); const iShowRight3 = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowRight" && item.bVisible); if (iShowLeft3 > -1) { bShowLeft3 = true; iColValueTable3 = slave3Config.gdsconfigformslave[iShowLeft3].iColValue; } else if (iShowRight3 > -1) { bShowLeft3 = false; iColValueTable3 = slave3Config.gdsconfigformslave[iShowRight3].iColValue; } } } iColValueView3 = commonUtils.isNotEmptyNumber(iColValueTable3) ? 24 - iColValueTable3 : 12; const iShowOrder3 = bShowLeft3 ? 1 : 100; /* 表6-commonView显示区域 */ const ableConfigs4 = commonUtils.isNotEmptyObject(slave4Config) ? slave4Config.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1) : []; let showAll4 = true; /* 只显示表格 */ let bShowLeft4 = true; /* 表格显示在左侧 */ let iColValueView4 = 12; let iColValueTable4 = 12; let slave4Row = {}; if (commonUtils.isNotEmptyArr(slave4SelectedRowKeys)) { const iIndex = slave4Data.findIndex(item => slave4SelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slave4Row = slave4Data[iIndex]; } else { slave4Row = slave4Data[0]; } } else if (commonUtils.isNotEmptyArr(slave4Data)) { slave4Row = slave4Data[0]; } if (commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyArr(slave4Config.gdsconfigformslave)) { const iIndexArea = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName !== "" && item.sControlName.includes("bShow")); if (iIndexArea > -1) { showAll4 = false; } if (commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyArr(slave4Config.gdsconfigformslave)) { const iShowLeft4 = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowLeft" && item.bVisible); const iShowRight4 = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName === "bShowRight" && item.bVisible); if (iShowLeft4 > -1) { bShowLeft4 = true; iColValueTable4 = slave4Config.gdsconfigformslave[iShowLeft4].iColValue; } else if (iShowRight4 > -1) { bShowLeft4 = false; iColValueTable4 = slave4Config.gdsconfigformslave[iShowRight4].iColValue; } } } iColValueView4 = commonUtils.isNotEmptyNumber(iColValueTable4) ? 24 - iColValueTable4 : 12; const iShowOrder4 = bShowLeft4 ? 1 : 100; const listType = "commonMultiList"; const bCheck = commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.sTbName === "sysbillcheckresult" ? true : false; const bSingleTree = commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.sTableType === "single"; /* 单表数据 */ const bShowTreeAddChild = commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes("BtnAddChildNode") && item.bVisible)) ? true : false; /* 是否是树形的单据 */ const bSlaveSort = slaveConfig?.gdsconfigformslave?.find(item => item.sControlName === "handleSort")?.bVisible || false; const slaveTableProps = { ...commonBusiness.getTableTypes("slave", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, bShowTreeAddChild: bShowTreeAddChild, pagination, onChange: props.onTitleChange.bind(this, "slave"), dragTableHeight:344 }, noVlistTable: bPagination, onDelRow: props.onDelRow, data: bSingleTree && commonUtils.isNotEmptyArr(slaveData) ? commonUtils.genTreeByArr(slaveData, "sId", "sFatherSlaveId") : slaveData, onTreeAddChild: props.onDataRowAddChild, customConfig: props.customConfig, isDragAndDrop: bSlaveSort, onMoveRow: props.onMoveRow, isSettingFunctions:true }; const bCheck0 = commonUtils.isNotEmptyObject(slave0Config) && slave0Config.sTbName === "sysbillcheckresult" ? true : false; const slave0TableProps = { ...commonBusiness.getTableTypes("slave0", props), tableBelone: sModelsType === listType || bCheck ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination0, onChange: props.onTitleChange.bind(this, "slave0"), }, }; const bCheck1 = commonUtils.isNotEmptyObject(slave1Config) && slave1Config.sTbName === "sysbillcheckresult" ? true : false; const slave1TableProps = { ...commonBusiness.getTableTypes("slave1", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination1, onChange: props.onTitleChange.bind(this, "slave1"), }, }; const bCheck2 = commonUtils.isNotEmptyObject(slave2Config) && slave2Config.sTbName === "sysbillcheckresult" ? true : false; const slave2TableProps = { ...commonBusiness.getTableTypes("slave2", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination2, onChange: props.onTitleChange.bind(this, "slave2"), }, }; const slave3TableProps = { ...commonBusiness.getTableTypes("slave3", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination3, onChange: props.onTitleChange.bind(this, "slave3"), }, }; const slave4TableProps = { ...commonBusiness.getTableTypes("slave4", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination4, onChange: props.onTitleChange.bind(this, "slave4"), }, }; const slave5TableProps = { ...commonBusiness.getTableTypes("slave5", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination5, onChange: props.onTitleChange.bind(this, "slave5"), }, }; const slave6TableProps = { ...commonBusiness.getTableTypes("slave6", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination6, onChange: props.onTitleChange.bind(this, "slave6"), }, }; const slave7TableProps = { ...commonBusiness.getTableTypes("slave7", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination7, onChange: props.onTitleChange.bind(this, "slave7"), }, }; const slave8TableProps = { ...commonBusiness.getTableTypes("slave8", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination8, onChange: props.onTitleChange.bind(this, "slave8"), }, }; const slave9TableProps = { ...commonBusiness.getTableTypes("slave9", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination9, onChange: props.onTitleChange.bind(this, "slave9"), }, }; const slave10TableProps = { ...commonBusiness.getTableTypes("slave10", props), tableBelone: sModelsType === listType ? "list" : "" /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */, tableProps: { setAdd, setCopy, setCopyAll, setDelete, pagination: pagination10, onChange: props.onTitleChange.bind(this, "slave10"), }, }; /* 从表view */ const slaveViewProps = { ...props, viewConfigs: ableConfigs, tableConfig: slaveConfig, iColValueView, viewRow: slaveRow, tableName: "slave", handleFieldDoubleClick: props.handleFieldDoubleClick, }; /* 第二张表 */ const slave0ViewProps = { ...props, viewConfigs: ableConfigs0, tableConfig: slave0Config, iColValueView: iColValueView0, viewRow: slave0Row, tableName: "slave0", }; /* */ const slave1ViewProps = { ...props, viewConfigs: ableConfigs1, tableConfig: slave1Config, iColValueView: iColValueView1, viewRow: slave1Row, tableName: "slave1", }; /* 从表view */ const slave2ViewProps = { ...props, viewConfigs: ableConfigs2, tableConfig: slave2Config, iColValueView: iColValueView2, viewRow: slave2Row, tableName: "slave2", }; /* pack表view */ const slave3ViewProps = { ...props, viewConfigs: ableConfigs3, tableConfig: slave3Config, iColValueView: iColValueView3, viewRow: slave3Row, tableName: "slave3", }; const slave4ViewProps = { ...props, viewConfigs: ableConfigs4, tableConfig: slave4Config, iColValueView: iColValueView4, viewRow: slave4Row, tableName: "slave4", }; /* 获取AssignmentField中的props */ const assignmentFieldProps = { visibleAssignmentField: props.visibleAssignmentField /* 是否展示 */, sAssignFieldData: props.sAssignFieldData /* 数据 */, sAssignFieldColumn: props.sAssignFieldColumn /* 表头 */, selectedRowKeys: props.selectedRowKeys /* 选中 */, sAssignFieldSelectedRowKeys: props.selectedRowKeys /* 选中 */, onSaveState: props.onSaveState /* 保存数据方法 */, onDataRowAdd: props.handleAddRow.bind(this, "sAssignField"), onDataRowDel: props.handleDelRow.bind(this, "sAssignField"), onDataRowCopy: props.handleCopyRow.bind(this, "sAssignField"), // onRowClick: props.handleRowClick.bind(this, 'sAssignField'), config: props.config, app: props.app, enabled: props.enabled, onDataChange: props.onChange, onGetsAssignField: props.onGetsAssignField, handleFieldDoubleClick: props.handleFieldDoubleClick, }; // const slaveInfo = commonFunc.showMessage(app.commonConst, 'MainContent'); /* 从表信息 */ // const materialsInfo = commonFunc.showMessage(app.commonConst, 'zMaterials'); /* 材料表 */ // const checkInfo = commonFunc.showMessage(app.commonConst, 'zCheck'); /* 审核表 */ // const slaveInfo0 = commonFunc.showMessage(app.commonConst, 'zSlaveInfo0'); /* 工序表 */ // const slaveInfo1 = commonFunc.showMessage(app.commonConst, 'zSlaveInfo1'); /* 表二 */ // const slaveInfo2 = commonFunc.showMessage(app.commonConst, 'zSlaveInfo2'); /* 表三 */ let slaveInfo = ""; let materialsInfo = ""; let checkInfo = ""; let slaveInfo0 = ""; let slaveInfo1 = ""; let slaveInfo2 = ""; let slaveInfo3 = ""; let slaveInfo4 = ""; let slaveInfo5 = ""; let slaveInfo6 = ""; let slaveInfo7 = ""; let slaveInfo8 = ""; let defaultTab = ""; if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave)) { slaveInfo = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "MainContent")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "MainContent")[0].showName : commonFunc.showMessage(app.commonConst, "MainContent"); /* 从表信息 */ materialsInfo = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zMaterials")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zMaterials")[0].showName : commonFunc.showMessage(app.commonConst, "zMaterials"); /* 表一 */ checkInfo = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zCheck")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zCheck")[0].showName : commonFunc.showMessage(app.commonConst, "zCheck"); /* 表二 */ slaveInfo0 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo0")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo0")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo0"); /* 表三 */ slaveInfo1 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo1")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo1")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo1"); /* 表四 */ slaveInfo2 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo2")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo2")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo2"); /* 表五 */ slaveInfo3 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo3")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo3")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo3"); /* 表六 */ slaveInfo4 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo4")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo4")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo4"); /* 表七 */ slaveInfo5 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo5")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo5")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo5"); /* 表八 */ slaveInfo6 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo6")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo6")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo6"); /* 表九 */ slaveInfo7 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo7")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo7")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo7"); /* 表十 */ slaveInfo8 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo8")) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === "zSlaveInfo8")[0].showName : commonFunc.showMessage(app.commonConst, "zSlaveInfo8"); /* 表十一 */ // 获取默认展开tab const defaultTabConfig = masterConfig.gdsconfigformslave.find( item => ["MainContent", "zMaterials", "zCheck", ...new Array(10).fill("").map((_, index) => `zSlaveInfo${index}`)].includes(item.sControlName) && item.sDefault ); if (defaultTabConfig) { if (defaultTabConfig.sControlName === "MainContent") { defaultTab = "10"; } else if (defaultTabConfig.sControlName === "zMaterials") { defaultTab = "20"; } else if (defaultTabConfig.sControlName === "zCheck") { defaultTab = "30"; } else { try { defaultTab = `${Number(defaultTabConfig.sControlName.split("zSlaveInfo")[1]) * 10 + 40}`; } catch (error) {} } } if (defaultTab && props.currentTab === "") { props.onTabChange(defaultTab); } } let productProcessInfoType = {}; let productProcessInfoConfig = {}; let processCardSearchResult = commonFunc.showMessage(app.commonConst, "processCardSearchResult"); /* 复制从工艺卡查询结果 */ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) { const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey; const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey); if (iIndex > -1) { productProcessInfoConfig = masterConfig.gdsconfigformslave[iIndex]; processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult; } productProcessInfoType = { app: { ...props.app, currentPane: { name: "productProcessInfo", config: productProcessInfoConfig, conditonValues: props.getSqlCondition(productProcessInfoConfig), title: props.productProcessInfoChooseData.sMenuName, route: props.productProcessInfoChooseData.sName, formId: props.productProcessInfoChooseData.sId, key: props.sModelsId + props.productProcessInfoChooseData.sId, sModelsType: props.productProcessInfoChooseData.sModelType, select: props.onSelect, selectCancel: props.onSelectCancel, }, }, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), }; } let isSysSetting = false; if ( props && props.app && props.app.currentPane && props.app.currentPane.title && props.app.currentPane && props.app.currentPane.title === "功能模块界面设置单据" ) { isSysSetting = true; } const templateProps = props.formData.filter(item => item.sGrd === "importTemplate")[0]; let gdsconfigformmasterId = ""; if (templateProps !== undefined) { gdsconfigformmasterId = templateProps.sId; } const sNotEmpty = "sParentId,sProductId"; let uploadUrl = `${commonConfig.server_host}import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&token=${app.token}`; /* 送货单需要传客户id */ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType === "sales/salesSgoods" && commonUtils.isNotEmptyObject(masterData)) { const sCustomerId = masterData.sCustomerId; if (commonUtils.isNotEmptyObject(sCustomerId)) { uploadUrl = `${commonConfig.server_host}import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&sCustomerId=${sCustomerId}&token=${app.token}`; } } const outProps = { action: uploadUrl, onChange: props.onUploadChangeFile /* 文件上传 */, accept: "xls/*", showUploadList: false, beforeUpload: () => { /* 查看时不可上传 */ if (!props.enabled) return false; }, }; const uploadPropsSales = props.onUploadPropsSales(); const BtnimportData = commonFunc.showMessage(app.commonConst, "importData"); /* 导入数据 */ const ImportData = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes("ImportData") && item.bVisible) : ""; /* 后台是否配置导入 */ /* 显示导入报错信息 */ let importExcelProps = {}; let importExcelTitle = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, "processCardSearchResult")) ? commonFunc.showMessage(app.commonConst, "importErrorMsg") : "导入校验信息"; /* 导入校验信息 */ if (commonUtils.isNotEmptyObject(props)) { importExcelProps = { ...commonBusiness.getTableTypes("import", props), tableProps: { pagination: null, AutoTableHeight: 400, }, // data: bSingleTree && commonUtils.isNotEmptyArr(slaveData) ? commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId') : slaveData, onDelRow: props.onDelRow, onKeyDown: props.onKeyDown, onContextMenu: props.onContextMenu, masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息) tableBelone: "list", }; } const sProcessParams = commonFunc.showMessage(app.commonConst, "sProcessParams"); /* 选择工艺参数标题 */ const sProcessParamsNew = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, "sProcessParamsNew")) ? commonFunc.showMessage(app.commonConst, "sProcessParamsNew") : "选择新的工艺参数"; /* 选择工艺参数标题 */ /* 新方式的工艺参数 */ const sParamProps = { ...commonBusiness.getTableTypes("sParam", props), tableProps: { rowKey: "sId", // pagination, onChange: props.onTitleChange, sModelsType, AutoTableHeight: 350, }, bRowClick: true, enabled: false, }; const sParamNewProps = { ...commonBusiness.getTableTypes("sParamNew", props), tableProps: { rowKey: "sId", // pagination, onChange: props.onTitleChange, sModelsType, AutoTableHeight: 350, }, bRowClick: true, }; // // const menu = ( // // 生成主表当前数据(完全) // 生成整表当前数据(完全) // 生成从表当前数据 // // ); /* 取 masterConfig中有多少个Tab页签配置 */ const masterShowConfig = commonUtils.isNotEmptyObject(masterConfigOld) ? masterConfigOld.gdsconfigformslave.filter(item => item.bVisible && item.sName !== "") : []; const diliverConfigTypeArr = []; /* 有Tab的配置 */ masterShowConfig.forEach(child => { if (child.sControlName.indexOf("_") > -1) { const tableType = child.sControlName.split("_")[1]; const isIndex = diliverConfigTypeArr.findIndex(item => item === tableType); if (isIndex === -1) { diliverConfigTypeArr.push(tableType); } } }); /* 主表页签+表格页签排序规则,表格页签以10位一个间隔,10,20,30,40,50,60,如果想进行排序 则页签顺序介入其间即可 */ /* 找到各个主表页签Tab所处的区间 */ let diliverConfigTypeArr1 = []; let diliverConfigTypeArr2 = []; let diliverConfigTypeArr3 = []; let diliverConfigTypeArr4 = []; let diliverConfigTypeArr5 = []; let diliverConfigTypeArr6 = []; for (const item of diliverConfigTypeArr) { let numStr = item.replace(/[^\d]/g, "").trim(); let num = Number(numStr); if (!commonUtils.isEmpty(num)) { if (num < 10) { /* 0- 10 */ diliverConfigTypeArr1.push(item); } else if (num < 20) { /* 10- 20 */ diliverConfigTypeArr2.push(item); } else if (num < 30) { /* 20- 30 */ diliverConfigTypeArr3.push(item); } else if (num < 40) { /* 30- 40 */ diliverConfigTypeArr4.push(item); } else if (num < 50) { /* 40- 50 */ diliverConfigTypeArr5.push(item); } else if (num < 60) { /* 50- 60 */ diliverConfigTypeArr6.push(item); } } } const tabNumList = [ ...diliverConfigTypeArr1, onlySlave ? "10" : "", ...diliverConfigTypeArr2, onlySlave0 ? "20" : "", ...diliverConfigTypeArr3, onlySlave1 ? "30" : "", ...diliverConfigTypeArr4, onlyslave2 ? "40" : "", ...diliverConfigTypeArr5, onlyslave3 ? "50" : "", ...diliverConfigTypeArr6, onlyslave4 ? "60" : "", onlyslave5 ? "70" : "", onlyslave6 ? "80" : "", onlyslave7 ? "90" : "", onlyslave8 ? "100" : "", onlyslave9 ? "110" : "", onlyslave10 ? "150" : "", ].filter(item => item); const { enabled } = props.masterData || {}; if (enabled) { // 只有修改状态才会根据数据改变tab页 const tabNumListOld = props.onGetTabNumList(tabNumList); if (tabNumListOld && JSON.stringify(tabNumListOld) !== JSON.stringify(tabNumList)) { const addData = tabNumList.find(item => tabNumListOld.indexOf(item) === -1); props.onSetTabNumList(tabNumList); if (addData) { const activeKey = addData.replace(/[^\d]/g, "").trim(); props.onTabChange(activeKey); } else if (!tabNumList.some(item => props.currentTab === item.replace(/[^\d]/g, "").trim())) { const activeKey = tabNumList[0].replace(/[^\d]/g, "").trim(); props.onTabChange(activeKey); } } } if (!defaultTab && props.currentTab === "" && commonUtils.isNotEmptyArr(tabNumList)) { const activeKey = tabNumList[0].replace(/[^\d]/g, "").trim(); props.onSetTabNumList(tabNumList); props.onTabChange(activeKey); } // 组件展示是否单独Tab页 let bControlSeparateTab = false; let bControlSeparateTab0 = false; let bControlSeparateTab1 = false; let bControlSeparateTab2 = false; let bControlSeparateTab3 = false; let bControlSeparateTab4 = false; let bControlSeparateTab5 = false; let bControlSeparateTab6 = false; let bControlSeparateTab7 = false; let bControlSeparateTab8 = false; let bControlSeparateTab9 = false; let bControlSeparateTab10 = false; let separateTabName, separateTabName0, separateTabName1, separateTabName2, separateTabName3, separateTabName4, separateTabName5, separateTabName6, separateTabName7, separateTabName8, separateTabName9, separateTabName10; if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) { const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slaveConfig.gdsconfigformslave[iIndex]; bControlSeparateTab = true; separateTabName = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyArr(slave0Config.gdsconfigformslave)) { const iIndex = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave0Config.gdsconfigformslave[iIndex]; bControlSeparateTab0 = true; separateTabName0 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyArr(slave1Config.gdsconfigformslave)) { const iIndex = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave1Config.gdsconfigformslave[iIndex]; bControlSeparateTab1 = true; separateTabName1 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyArr(slave2Config.gdsconfigformslave)) { const iIndex = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave2Config.gdsconfigformslave[iIndex]; bControlSeparateTab2 = true; separateTabName2 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyArr(slave3Config.gdsconfigformslave)) { const iIndex = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave3Config.gdsconfigformslave[iIndex]; bControlSeparateTab3 = true; separateTabName3 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyArr(slave4Config.gdsconfigformslave)) { const iIndex = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave4Config.gdsconfigformslave[iIndex]; bControlSeparateTab4 = true; separateTabName4 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave5Config) && commonUtils.isNotEmptyArr(slave5Config.gdsconfigformslave)) { const iIndex = slave5Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave5Config.gdsconfigformslave[iIndex]; bControlSeparateTab5 = true; separateTabName5 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave6Config) && commonUtils.isNotEmptyArr(slave6Config.gdsconfigformslave)) { const iIndex = slave6Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave6Config.gdsconfigformslave[iIndex]; bControlSeparateTab6 = true; separateTabName6 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave7Config) && commonUtils.isNotEmptyArr(slave7Config.gdsconfigformslave)) { const iIndex = slave7Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave7Config.gdsconfigformslave[iIndex]; bControlSeparateTab7 = true; separateTabName7 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave8Config) && commonUtils.isNotEmptyArr(slave8Config.gdsconfigformslave)) { const iIndex = slave8Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave8Config.gdsconfigformslave[iIndex]; bControlSeparateTab8 = true; separateTabName8 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave9Config) && commonUtils.isNotEmptyArr(slave9Config.gdsconfigformslave)) { const iIndex = slave9Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave9Config.gdsconfigformslave[iIndex]; bControlSeparateTab9 = true; separateTabName9 = separateTabConfig.showName; } } if (commonUtils.isNotEmptyObject(slave10Config) && commonUtils.isNotEmptyArr(slave10Config.gdsconfigformslave)) { const iIndex = slave10Config.gdsconfigformslave.findIndex(item => item.sControlName === "bControlSeparateTab"); if (iIndex !== -1) { const separateTabConfig = slave10Config.gdsconfigformslave[iIndex]; bControlSeparateTab10 = true; separateTabName10 = separateTabConfig.showName; } } const flexRowStyle = bFlow ? { display: "flex", flexDirection: "row" } : {}; const flexContentStyle = bFlow ? { width: "75%" } : {}; // 设置初始宽度 const [containerWidth, setContainerWidth] = useState(410); const containerRef = useRef(null); const dividerRef = useRef(null); const [isDragging, setIsDragging] = useState(false); const [startX, setStartX] = useState(0); const [initialWidth, setInitialWidth] = useState(0); const handleMouseDown = e => { setIsDragging(true); setStartX(e.clientX); if (containerRef.current) { setInitialWidth(containerRef.current.offsetWidth); } }; const handleMouseMove = e => { if (!isDragging) return; // 当前鼠标移动位置 const currentX = e.clientX; // 移动距离 const diffX = currentX - startX; const newWidth = initialWidth + diffX; // 限制宽度在一定范围内最小宽度为200 if (newWidth < 200) { setContainerWidth(200); return; } setContainerWidth(newWidth); }; const handleMouseUp = () => { setIsDragging(false); document.removeEventListener("mousemove", handleMouseMove); document.removeEventListener("mouseup", handleMouseUp); }; useEffect(() => { document.addEventListener("mousemove", handleMouseMove); document.addEventListener("mouseup", handleMouseUp); return () => { document.removeEventListener("mousemove", handleMouseMove); document.removeEventListener("mouseup", handleMouseUp); }; }, [isDragging]); return (
{commonUtils.isNotEmptyArr(ImportData) ? (
{BtnimportData}
) : ( "" )}
{ ["contacts"].includes(props.sModelsType) && ( { event.target.src = userImgs; }} /> ) }
{props.sModelsType === "element/workcalendar" ? (
) : (
{ _this.slaveTabsRef = ref; }} >
{props.imgSrc && }
{commonUtils.isNotEmptyArr(diliverConfigTypeArr1) ? diliverConfigTypeArr1.map(item => { // 匹配数字 // eslint-disable-next-line no-unused-vars let num = item.replace(/[^\d]/g, "").trim(); let tabName = item.replace(/\d+/g, ""); /* 从主表配置 找到控件名=tabName,否则取他的showName */ const tableConfigArr = masterConfig?.gdsconfigformslave.filter(row => row.sControlName === item.trim()); if (commonUtils.isNotEmptyArr(tableConfigArr)) { tabName = tableConfigArr[0].showName; } return (
); }) : ""} {onlySlave ? ( <>
{app.currentPane.title !== "功能模块界面设置单据" ? (
{!bControlSeparateTab && } ) : (
{!bControlSeparateTab && }
)}
{bControlSeparateTab && ( )} ) : ( "" )} {commonUtils.isNotEmptyArr(diliverConfigTypeArr2) ? diliverConfigTypeArr2.map(item => { // 匹配数字 // eslint-disable-next-line no-unused-vars let num = item.replace(/[^\d]/g, "").trim(); let tabName = item.replace(/\d+/g, ""); /* 从主表配置 找到控件名=tabName,否则取他的showName */ const tableConfigArr = masterConfig?.gdsconfigformslave.filter(row => row.sControlName === item.trim()); if (commonUtils.isNotEmptyArr(tableConfigArr)) { tabName = tableConfigArr[0].showName; } return (
); }) : ""} {onlySlave0 ? ( <>
{app.currentPane.title !== "功能模块界面设置单据" ? (
{!bControlSeparateTab0 && } {getChildTableComponent(props, "slave0")} ) : (
{!bControlSeparateTab0 && }
)}
{bControlSeparateTab0 && ( )} ) : ( "" )} {commonUtils.isNotEmptyArr(diliverConfigTypeArr3) ? diliverConfigTypeArr3.map(item => { // 匹配数字 // eslint-disable-next-line no-unused-vars let num = item.replace(/[^\d]/g, "").trim(); let tabName = item.replace(/\d+/g, ""); /* 从主表配置 找到控件名=tabName,否则取他的showName */ const tableConfigArr = masterConfig?.gdsconfigformslave.filter(row => row.sControlName === item.trim()); if (commonUtils.isNotEmptyArr(tableConfigArr)) { tabName = tableConfigArr[0].showName; } return (
); }) : ""} {onlySlave1 ? ( <>
{props.app.currentPane.title !== "功能模块界面设置单据" ? (
{!bControlSeparateTab1 && } {getChildTableComponent(props, "slave1")} {/* {slave2Config && slave2Config.sChinese === '上批对比' && } */} ) : (
{!bControlSeparateTab1 && }
)}
{bControlSeparateTab1 && ( )} ) : ( "" )} {commonUtils.isNotEmptyArr(diliverConfigTypeArr4) ? diliverConfigTypeArr4.map(item => { // 匹配数字 // eslint-disable-next-line no-unused-vars let num = item.replace(/[^\d]/g, "").trim(); let tabName = item.replace(/\d+/g, ""); /* 从主表配置 找到控件名=tabName,否则取他的showName */ const tableConfigArr = masterConfig?.gdsconfigformslave.filter(row => row.sControlName === item.trim()); if (commonUtils.isNotEmptyArr(tableConfigArr)) { tabName = tableConfigArr[0].showName; } return (
); }) : ""} {onlyslave2 ? ( <>
{!bControlSeparateTab2 && } {getChildTableComponent(props, "slave2")} {bControlSeparateTab2 && ( )} ) : ( "" )} {commonUtils.isNotEmptyArr(diliverConfigTypeArr5) ? diliverConfigTypeArr5.map(item => { // 匹配数字 // eslint-disable-next-line no-unused-vars let num = item.replace(/[^\d]/g, "").trim(); let tabName = item.replace(/\d+/g, ""); /* 从主表配置 找到控件名=tabName,否则取他的showName */ const tableConfigArr = masterConfig?.gdsconfigformslave.filter(row => row.sControlName === item.trim()); if (commonUtils.isNotEmptyArr(tableConfigArr)) { tabName = tableConfigArr[0].showName; } return (
); }) : ""} {onlyslave3 ? ( <>
{!bControlSeparateTab3 && } {getChildTableComponent(props, "slave3")} {bControlSeparateTab3 && ( )} ) : ( "" )} {commonUtils.isNotEmptyArr(diliverConfigTypeArr6) ? diliverConfigTypeArr6.map(item => { // 匹配数字 // eslint-disable-next-line no-unused-vars let num = item.replace(/[^\d]/g, "").trim(); let tabName = item.replace(/\d+/g, ""); /* 从主表配置 找到控件名=tabName,否则取他的showName */ const tableConfigArr = masterConfig?.gdsconfigformslave.filter(row => row.sControlName === item.trim()); if (commonUtils.isNotEmptyArr(tableConfigArr)) { tabName = tableConfigArr[0].showName; } return (
); }) : ""} {onlyslave4 ? ( <>
{!bControlSeparateTab4 && } {getChildTableComponent(props, "slave4")} {bControlSeparateTab4 && ( )} ) : ( "" )} {onlyslave5 ? ( <>
) : ( "" )} {onlyslave6 ? ( <>
) : ( "" )} {onlyslave7 ? ( <>
) : ( "" )} {onlyslave8 ? ( <>
) : ( "" )} {onlyslave9 ? ( <>
) : ( "" )} {onlyslave10 ? ( <>
) : ( "" )} )} {bFlow ? (
) : ( "" )} {props.productProcessInfoChooseVisible ? ( ) : ( "" )} {props.showImportErrorVisible ? ( ) : ( "" )} {false && props.sParamsModalVisible ? (
) : ( "" )} {false && props.sParamsNewModalVisible ? (
) : ( "" )} {props.contextMenuModalVisible ? : ""} {props.visibleInstructField ? (
) : ( "" )}
); }); // 函数式组件 const CommonEffectEvent = props => { const { masterData = {} } = props; const { sBmRule } = masterData; const [watchFields, setWatchFields] = useState([]); const preValue = useRef(""); useEffect(() => { if (!sBmRule) { setWatchFields([]); preValue.current = ""; return; } const sBmRuleObj = commonUtils.convertStrToObj(sBmRule); const { showName = "" } = sBmRuleObj; setWatchFields(showName.split(",")); }, [sBmRule]); useEffect(() => { if (!watchFields.length) return; const newValue = watchFields.map(key => masterData[key] || "").join(""); if (preValue.current === newValue) return; preValue.current = newValue; const sBmRuleObj = commonUtils.convertStrToObj(sBmRule); const addState = Object.keys(sBmRuleObj).filter(key => key !== "showName").reduce((result, key) => { const list = sBmRuleObj[key]?.split("+") || []; result[key] = list.map(item => item.trim().replace(/\'/g, '')).map(item => { if (item !== '.' && item?.includes('.')) { const [tableName, sFieldName] = item.split('.'); return props[`${tableName}Data`]?.[sFieldName] || ""; } return item; }).join(''); return result; }, {}); props.onSaveState({ masterData: { ...masterData, ...addState, handleType: masterData.handleType || 'update', } }); }, [watchFields, masterData]); return null; } // 工艺参数弹窗 const ModalComponent = props => { if (!props.sParamsModalVisible && !props.sParamsNewModalVisible) return ""; const sProcessParams = props.sParamsModalVisible ? "原工艺参数" : "工艺参数新"; const bVisible = props.sParamsModalVisible || props.sParamsNewModalVisible; return bVisible ? ( { props.onSaveState({ sParamsModalVisible: false, sParamsNewModalVisible: false, }); }} footer={ //
//
// // // // //
//
// //
//
} > {[""].map(() => { const commonViewDragableProps = { ...props, hideTabsNav: true, comparedTableId: props.processTableId, sParamData: [ { sParamType: "sWorkOrder", sParamName: "工单参数", }, ], tableName: "slave", }; // 如果是工艺参数新 if (props.sParamsNewModalVisible) { const { slaveData = [] } = props; const slaveDataNew = lodash.cloneDeep(slaveData); slaveDataNew.forEach(item => { item.handleType = commonUtils.isEmpty(item.handleType) ? "update" : item.handleType; item.sParams = item.sParamsNew; item.sWorkOrderParams = item.sWorkOrderParamsNew; }); commonViewDragableProps.slaveData = slaveDataNew; commonViewDragableProps.onCostomSaveData = tableData => { const slaveDataTemp = lodash.cloneDeep(slaveData); slaveDataTemp.forEach(item => { const rowData = tableData.find(i => i.sId === item.sId); item.handleType = commonUtils.isEmpty(item.handleType) ? "update" : item.handleType; item.sParamsNew = rowData.sParams; item.sWorkOrderParamsNew = rowData.sWorkOrderParams; }); props.onSaveState({ slaveData: slaveDataTemp }); }; } return ; })}
) : ( "" ); }; /** * 加载子从表格组件 */ const getChildTableComponent = (props, tableName) => { const { sModelsType, addStateMap, bHasChildSlave, slaveChildOrder, salveIColValue, [`${tableName}Config`]: fatherConfig, masterData, masterConfig = [], slaveConfig, slaveSelectedRowKeys, slaveData, } = props; if (commonUtils.isEmptyStr(tableName)) { return null; } let slaveRow = {}; if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slaveRow = slaveData[iIndex]; } else { slaveRow = slaveData[0]; } } else if (commonUtils.isNotEmptyArr(slaveData)) { slaveRow = slaveData[0]; } // 是否有表单字段 const bHasViewConfigs = fatherConfig.gdsconfigformslave.some(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1); /* 找到父层下面有多少子级 */ const slaveChildNameArr = Object.keys(addStateMap).filter( key => commonUtils.isNotEmptyObject(fatherConfig.sChildTableName) && fatherConfig.sChildTableName.split(",").includes(addStateMap[key].sGrd) ); if (slaveChildNameArr.length === 0) { return null; // 如果没有有效配置,返回 null 避免渲染 } return slaveChildNameArr.map(slaveChildName => { let viewConfigs = []; // 是否展示操作按钮 const config = props[`${slaveChildName}`]; const { gdsconfigformslave = [] } = config; if (commonUtils.isNotEmptyArr(gdsconfigformslave)) { viewConfigs = gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1); if (viewConfigs.length === 0) { return null; // 如果没有有效配置,返回 null 避免渲染 } } /* 从表view */ const tableViewProps = { ...props, viewConfigs, tableConfig: config, iColValueView: 24, viewRow: slaveRow, tableName: slaveChildName, // handleFieldDoubleClick: props.handleFieldDoubleClick }; /* 区分TabPane1 还是单纯的commonView */ return ( // 新增标题行和子 CommonViewTable
上批数据
); }); }; export default CommonBase(CommonNewSales(CommonNewBill));