diff --git a/src/components/Common/CommonComponent/index.js b/src/components/Common/CommonComponent/index.js index cc372bb..bd057ae 100644 --- a/src/components/Common/CommonComponent/index.js +++ b/src/components/Common/CommonComponent/index.js @@ -762,7 +762,7 @@ export default class CommonComponent extends Component { } else { // 没有配置列宽,就根据字符数算宽度 // 获取中文字数、非中文字数, 中文12px,其它8px const titleStr = title; - const totalStringLen = titleStr.length; + const totalStringLen = titleStr?.length; const otherStrLen = titleStr.replace(/[^\x00-\xff]/g, '').length; // eslint-disable-line const chineseStrLen = totalStringLen - otherStrLen; const defaultWidth = (chineseStrLen * 20) + (otherStrLen * 12); diff --git a/src/mes/common/commonOperationBarComponent/MesToolbar.js b/src/mes/common/commonOperationBarComponent/MesToolbar.js index f119466..efd2bc6 100644 --- a/src/mes/common/commonOperationBarComponent/MesToolbar.js +++ b/src/mes/common/commonOperationBarComponent/MesToolbar.js @@ -122,7 +122,7 @@ const ToolbarFun = async (props) => { } else { props.onBtnCancelExamine(0); } - } else if (['btnevent', 'btnsubmit', 'btnsubmitcancel'].includes(btnName) || sButtonParam) { + } else if (['btnevent', 'btnsubmit', 'btnsubmitcancel'].includes(btnName)) { const { slaveSelectedRowKeys, slaveData, @@ -278,6 +278,52 @@ const ToolbarFun = async (props) => { loading: false, }); } + } else if (btnName.includes('btnrepair')) { + if (btnName.toLowerCase().endsWith("choosedate")) { + handleForceComplete(props,btnName, "chooseDate"); + } else if (btnName.includes("btnrepairgroup") || btnName.includes("btnrepairuser")) { + /* 复制组权限单独处理 */ + props.onButtonClick(btnName); + } else { + /* 根据接口返回是之前调用还是之后调用 */ + if (false) { + const beforeInterfaceArr = interfaceArr.filter(item => item.sInterfaceCallMethod === "1"); + const afterInterfaceArr = interfaceArr.filter(item => item.sInterfaceCallMethod === "2"); + if (commonUtils.isNotEmptyArr(beforeInterfaceArr)) { + /* 之前调用 */ + + let flag = 0; + const asyncFunc = async () => { + for (let i = 0; i < beforeInterfaceArr.length; i++) { + const data = await handleInterfaceCall(beforeInterfaceArr[i]); + if (!data) { + flag += 1; + return; + } + } + }; + await asyncFunc(); + if (flag == 0) { + handleForceComplete(key); + } + } + if (commonUtils.isNotEmptyArr(afterInterfaceArr)) { + /* 之后调用 */ + const result = await handleForceComplete(key); + if (result !== -5) { + /* 只有审核成功 才能调用接口 -5代表审核失败 */ + const asyncFunc = async () => { + for (let i = 0; i < afterInterfaceArr.length; i++) { + await handleInterfaceCall(afterInterfaceArr[i], true); + } + }; + await asyncFunc(); + } + } + } else { + handleForceComplete(props,btnName); + } + } } @@ -757,6 +803,156 @@ const handleInterfaceCall = async (props, obj, showTip, key, ids, slaveSelectedR } return bResult; }; +const handleForceComplete = (props, name, createDate) => { + let sysLogData = {}; + const slaveMemoConfigOld = []; + const { slaveSelectedRowKeys, slaveInfoSelectedRowKeys, app, masterConfig, slaveInfoData, masterData, slaveData, gdsformconst } = props; + const btnConfig = + commonUtils.isNotEmptyObject(masterConfig) && + commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === name)) + ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === name)[0] + : {}; // sButtonEnabled sButtonParam + const bNoMemo = btnConfig.sDefault === "noMemo"; + if (createDate !== "chooseDate") { + let target = ""; + if (btnConfig.sActiveKey) { + target = btnConfig.sActiveKey.split(",")[0].split(".")[0]; + } + if (target === "slave" && commonUtils.isEmptyArrNew(slaveSelectedRowKeys)) { + message.warn(commonFunc.showMessage(app.commonConst, "pleaseChooseData")); // 请选择记录 + } else if (target === "slaveInfo" && commonUtils.isEmptyArrNew(slaveInfoSelectedRowKeys)) { + message.warn(commonFunc.showMessage(app.commonConst, "pleaseChooseData")); // 请选择记录 + } else if (target === "slaveInfo" && !Array.isArray(slaveInfoData)) { + message.warn("请展开详情并选择数据。"); // 请选择记录 + } else { + let btnConfigNameArr = []; + let singleConfig = {}; + let singleRow = {}; /* 选中行的数据 */ + if (name.indexOf("BtnRepair") > -1) { + if (!commonUtils.isEmpty(btnConfig.sActiveKey)) { + btnConfigNameArr = btnConfig.sActiveKey.split(","); + } + if (commonUtils.isNotEmptyArr(btnConfigNameArr)) { + // eslint-disable-next-line array-callback-return + btnConfigNameArr.map(i => { + let sIndex = -1; + if (target === "slaveInfo") { + sIndex = props.slaveInfoConfig.gdsconfigformslave.findIndex(item => item.sName === i.split(".")[1]); + const iSlaveIndex = slaveInfoData.findIndex(item => slaveInfoSelectedRowKeys.includes(item.sSlaveId)); + if (iSlaveIndex > -1) { + singleRow = slaveInfoData[iSlaveIndex]; + } + } else if (target === "master") { + sIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sName === i.split(".")[1]); + singleRow = masterData; + } else { + if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.slaveConfig)) { + sIndex = props.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === i); + const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sSlaveId)); + if (iSlaveIndex > -1) { + singleRow = slaveData[iSlaveIndex]; + } + } + } + console.log("singleRow:", singleRow); + if (sIndex > -1) { + if (target === "slaveInfo") { + singleConfig = props.slaveInfoConfig.gdsconfigformslave[sIndex]; + } else if (target === "master") { + singleConfig = props.masterConfig.gdsconfigformslave[sIndex]; + } else { + singleConfig = props.slaveConfig.gdsconfigformslave[sIndex]; + } + if (masterData && commonUtils.isNotEmptyObject(singleRow)) { + masterData[singleConfig.sName] = singleRow[singleConfig.sName]; + } + // if (masterData && commonUtils.isNotEmptyObject(singleConfig)) { + // masterData[singleConfig.sName] = undefined; + // } + slaveMemoConfigOld.push(singleConfig); + } + }); + } + } + /* 时间格式的字段 若默认值为空 则取当前时间 */ + const activeKeyData = commonUtils.isNotEmptyObject(btnConfig.sActiveKey) ? btnConfig.sActiveKey.split(",") : []; + if (activeKeyData.length > 1) { + /* 当多字段时候 若时间格式的字段 若默认值为空 则取当前时间 */ + const filterData = activeKeyData.filter(item => item.substring(0, 1) === "t"); + if (commonUtils.isNotEmptyArr(filterData)) { + filterData.forEach(item => { + let currentDate = moment().format("YYYY-MM-DD HH:mm:ss"); + + // 如果默认值为0 则不设置默认时间 + const itemConfigIndex = masterConfig.gdsconfigformslave.findIndex(config => config.sName === item); + if (itemConfigIndex !== -1 && masterConfig.gdsconfigformslave[itemConfigIndex].sDefault === "0") { + currentDate = null; + } + if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isEmpty(masterData[item])) { + masterData[item] = currentDate; + } + }); + } + } else { + if (commonUtils.isNotEmptyObject(btnConfig.sActiveKey) && btnConfig.sActiveKey.substring(0, 1) === "t") { + if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isEmpty(masterData[btnConfig.sActiveKey])) { + masterData[btnConfig.sActiveKey] = moment().format("YYYY-MM-DD HH:mm:ss"); + } + } + } + // if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys === null) { + // message.warn('请选择数据!'); + // return; + // } + sysLogData = commonUtils.isNotEmptyArr(slaveSelectedRowKeys) ? { sId: slaveSelectedRowKeys.toString() } : {}; + props.onSaveState({ + slaveMemoConfig: slaveMemoConfigOld, + masterData: commonUtils.isNotEmptyObject(masterData) + ? lodash.cloneDeep(masterData) + : {} /* 将选中行数据深拷贝 变成两个互不相扰的独立数据源 */, + sCurrMemoProps: { + bVisibleMemo: true, + sMemoField: "sReason", + sRecord: sysLogData, + dataSource: sysLogData, + btnName: name, + bNoMemo, + }, + }); + } + } else { + /* 从系统常量中找到pChooseDate的sName */ + let pChooseDateName = "生成凭证"; + if (commonUtils.isNotEmptyArr(gdsformconst)) { + const iIndex = gdsformconst.findIndex(item => item.sName === "pChooseDate"); + if (iIndex > -1) { + pChooseDateName = gdsformconst[iIndex].showName; + } + } + const chooseDateConfig = { + sId: commonUtils.createSid(), + sName: "pChooseDate", + sDropDownType: "sql", + bNotEmpty: false, + iVisCount: 1, + dropDownData: [], + showName: pChooseDateName, + sDateFormat: btnConfig && btnConfig.sDateFormat ? btnConfig.sDateFormat : "YYYY-MM-DD", + }; + slaveMemoConfigOld.push(chooseDateConfig); + props.onSaveState({ + slaveMemoConfig: slaveMemoConfigOld, + sCurrMemoProps: { + bVisibleMemo: true, + sMemoField: "sReason", + sRecord: sysLogData, + dataSource: sysLogData, + btnName: name, + bNoMemo, + }, + }); + } +}; // 新增 const handleAdd = (props) => { const { slaveConfig } = props;