From 1237bc855d1a4f352ba690a17441b54add41353c Mon Sep 17 00:00:00 2001
From: chenxt <10125295+chen-xintao97@user.noreply.gitee.com>
Date: Wed, 10 Jun 2026 16:42:26 +0800
Subject: [PATCH] 弹窗复制到
---
src/mes/common/commonModelComponent/index.js | 84 +++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------
src/mes/common/commonOperationBarComponent/index.js | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
2 files changed, 127 insertions(+), 51 deletions(-)
diff --git a/src/mes/common/commonModelComponent/index.js b/src/mes/common/commonModelComponent/index.js
index 0c4498d..1afe368 100644
--- a/src/mes/common/commonModelComponent/index.js
+++ b/src/mes/common/commonModelComponent/index.js
@@ -264,7 +264,6 @@ const useCommonModelEvent = props => {
// 初始化事件
useEffect(
async () => {
-
if (commonUtils.isNotEmptyArr(formData)) {
let pageLayout = [];
let addState = {};
@@ -285,10 +284,10 @@ const useCommonModelEvent = props => {
const [tableList, tabConfig] = pageLayout;
const colunmData = handleGetColumnData(tableList, true);
let result = {};
- if(!noGetData && sModelsId === '17211911815017669983448000'){
+ if (!noGetData && sModelsId === '17211911815017669983448000') {
result = await handleGetDataPop(tableList, true, true)
} else if (!commonUtils.isEmptyObject(copyTo)) {
- result = await handleGetData(tableList, true, true);
+ result = await handleGetData(tableList, true, true, copyTo);
} else if (noGetData) {
result = await handleGetData(
tableList.filter(
@@ -785,7 +784,7 @@ const useCommonModelEvent = props => {
};
// 获取数据集
- const handleGetData = async (tableList = [], isWait, bInit) => {
+ const handleGetData = async (tableList = [], isWait, bInit, copyTo) => {
let addState = {};
const currentIds = currentId ? currentId : props?.parentProps?.record?.sId
for (let i = 0; i < tableList.length; i++) {
@@ -982,6 +981,16 @@ const useCommonModelEvent = props => {
if (tableName === "tableS0" && props.sSReserve1) {
addState.sSReserve1 = undefined;
}
+
+ }
+ if (!commonUtils.isEmptyObject(copyTo)) {
+ tableList.forEach((item, index) => {
+ addState = {
+ ...addState,
+ [`${tableList[index]}Data`]: index === 0 ? copyTo.masterData : copyTo['slave' + (index - 1 === 0 ? '' : index - 1) + 'Data'],
+ }
+ })
+
}
props.setTempRef({}, true);
@@ -1937,6 +1946,7 @@ const CommonModelComponent = props => {
tableBtnsConfig, // 表格按钮配置
bFirstComponent: level === 0 && index === -1
};
+
const commonDivHeight = useComputedCommonDivHeight(componentProps);
return (
{
// showSizeChanger: !isSmall,
// showQuickJumper: !isSmall,
// };
- const { mesTotalCount , mesPageSize, mesPageNum, isPagination } = baseProps?.parentProps || {};
- const tableProps = {
- ...baseProps,
- tableBtnsConfig: btnsConfig,
- // tableBtnsWidth: '100px',
- // tableBtnsConfig: (params) => {
- // console.log('=====params', params);
- // return btnsConfig;
- // },
- onTableBtnClick,
- tableProps: {
- onChange: () => { },
- rowKey: baseProps?.config?.sId === "17091154460006421964039036672000" || baseProps?.config?.sName?.includes('/indexPage/commonList') ? 'sSlaveId' : 'sId',
- mesTotalCount,
- mesPageSize,
- mesPageNum,
- isPagination,
- // AutoTableHeight: 200
- },
- onViewClick: (tableName, sFieldName, record, index, config) => {
- // 异常事件提报-提报信息-事件类型字段点击事件
- if (tableName === "slave" && sFieldName === "sClassifyName") {
- props.onTableBtnClick({
- name: tableName,
- record,
- config
- });
- }
- },
- onViewChoose: (tableName, sFieldName, record, index, isColor) => {
- handleViewChoose(tableName, sFieldName, record, index, isColor);
-
+ const { mesTotalCount, mesPageSize, mesPageNum, isPagination } = baseProps?.parentProps || {};
+ const tableProps = {
+ ...baseProps,
+ tableBtnsConfig: btnsConfig,
+ // tableBtnsWidth: '100px',
+ // tableBtnsConfig: (params) => {
+ // console.log('=====params', params);
+ // return btnsConfig;
+ // },
+ onTableBtnClick,
+ tableProps: {
+ onChange: () => { },
+ rowKey: baseProps?.config?.sId === "17091154460006421964039036672000" || baseProps?.config?.sName?.includes('/indexPage/commonList') ? 'sSlaveId' : 'sId',
+ mesTotalCount,
+ mesPageSize,
+ mesPageNum,
+ isPagination,
+ // AutoTableHeight: 200
+ },
+ onViewClick: (tableName, sFieldName, record, index, config) => {
+ // 异常事件提报-提报信息-事件类型字段点击事件
+ if (tableName === "slave" && sFieldName === "sClassifyName") {
+ props.onTableBtnClick({
+ name: tableName,
+ record,
+ config
+ });
}
- };
+ },
+ onViewChoose: (tableName, sFieldName, record, index, isColor) => {
+ handleViewChoose(tableName, sFieldName, record, index, isColor);
+
+ }
+ };
const handleViewChoose = (tableName, sFieldName, record, index, isColor) => {
if (isColor) {
const { sId } = record; /* 控制表主键 */
diff --git a/src/mes/common/commonOperationBarComponent/index.js b/src/mes/common/commonOperationBarComponent/index.js
index e440d36..6728214 100644
--- a/src/mes/common/commonOperationBarComponent/index.js
+++ b/src/mes/common/commonOperationBarComponent/index.js
@@ -79,7 +79,7 @@ const useCommonOperationBarComponentEvent = props => {
// 按钮点击事件
const clickRef = useRef(null);
- const handleBtnClick = async (config, searchField) => {
+ const handleBtnClick = async (config, searchField, btnLeftConfig) => {
// 限制半秒内只能点一次
if (clickRef.current) return;
clickRef.current = true;
@@ -306,7 +306,7 @@ const useCommonOperationBarComponentEvent = props => {
// 弹窗
if (sActiveId) {
- handleOpenCommonModal(config);
+ handleOpenCommonModal(config, btnLeftConfig);
}
if (["BtnLeft.setUpStart"].includes(sControlName)) {
@@ -551,15 +551,14 @@ const useCommonOperationBarComponentEvent = props => {
};
// 弹窗
- const handleOpenCommonModal = config => {
+ const handleOpenCommonModal = async (config, btnLeftConfig) => {
const { sActiveId, sActiveName } = config;
- const copyTo = handleGetCopyTo(config);
-
- // 获取sqlCondition值
+ const copyTo = await handleGetCopyTo(config, btnLeftConfig);
+ // // 获取sqlCondition值
const sParentConditions = props.getSqlCondition(config);
- // 弹窗展示
+ // // 弹窗展示
props.onOpenCommonModal({
type: "commonModal",
sActiveId,
@@ -578,8 +577,67 @@ const useCommonOperationBarComponentEvent = props => {
};
// 获取copyTo数据
- const handleGetCopyTo = config => {
- const copyTo = {};
+ const handleGetCopyTo = async (config, btnLeftConfig) => {
+ let copyTo = {};
+ const { sModelsId, sName, token, app } = props
+ const name = config?.sControlName
+ const copyToConfig = btnLeftConfig.filter(x => x.sControlName.includes(config?.sControlName))
+ const allReturnMap = {};
+ let copyToData = props[sName + 'Data'] || []
+ if (commonUtils.isNotEmptyObject(config?.sControlName) && config?.sControlName.toLowerCase().includes('btncopyto.tmpinfobysql')) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const sConfigformId = commonUtils.isEmpty(copyToConfig) ? '' : copyToConfig[0]?.sParentId;
+ const sControlName = commonUtils.isNotEmptyObject(config?.sControlName) ? config?.sControlName : 'BtnCopyTo.TmpInfoBySql';
+ const selectedRowKeys = props[sName + 'SelectedRowKeys']?.[0] || ''
+ const slaveSelectedData = props[sName + 'Data'] || []
+ const sRowData = slaveSelectedData.filter(x => x.sId === selectedRowKeys)
+ /* 塞原始数据 */
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ copyTo.masterData = slaveSelectedData[0];
+ copyTo.slaveData = slaveSelectedData;
+ }
+ const values = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ if (commonUtils.isNotEmptyObject(returnData)) {
+ for (const key of Object.keys(returnData)) {
+ const sName = `${key}Data`;
+ const sDelName = `${key}DelData`;
+ const sAssignField = copyToConfig.find(x => x.sControlName.includes(key))?.sAssignField
+ const keyData = returnData[key];
+ let newData = []
+ if (commonUtils.isNotEmptyArr(keyData)) {
+ keyData.forEach(item => {
+ let tableRow = {};
+ tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, item) }; // 取赋值字段
+ tableRow.sId = commonUtils.createSid();
+ tableRow.sParentId = slaveSelectedData[0].sId;
+ tableRow.handleType = 'add';
+ newData.push(tableRow);
+ })
+ }
+ allReturnMap[sName] = newData;
+
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.masterData) && Array.isArray(copyTo.masterData)) {
+ copyTo.masterData = copyTo.masterData[0];
+ }
+ const configName = copyToConfig[0].sControlName.split(".").pop();
+ copyTo = {
+ ...copyTo,
+ ...allReturnMap
+ }
+ if (configName && allReturnMap[configName]) {
+ copyTo.masterData = allReturnMap[configName]
+ }
+ }
+ } else {
+ message.error(dataReturn.msg);
+ }
+ }
+
return copyTo;
};
@@ -613,11 +671,11 @@ const useCommonOperationBarComponentEvent = props => {
};
// 获取按钮配置
- const handleGetBtnPropps = (config, searchField) => {
+ const handleGetBtnPropps = (config, searchField, btnLeftConfig) => {
const defaultProps = {
type: "primary",
size: "large",
- onClick: handleBtnClick.bind(this, config, searchField)
+ onClick: handleBtnClick.bind(this, config, searchField, btnLeftConfig)
};
const { sDefault, sControlName } = config;
@@ -955,9 +1013,17 @@ const CommonOperationBarComponent = basProps => {
props.setExtraBtns(extraBtns);
}
- const btnLeftConfig = gdsconfigformslave.filter(
+ const originalData = gdsconfigformslave.filter(
item => item.bVisible && item.sControlName.includes("BtnLeft.")
);
+ const btnLeftConfig = originalData.filter(item => {
+ const str = item.sControlName;
+ if (!str.includes("BtnCopyTo")) {
+ return true;
+ }
+
+ return /BtnCopyTo\.[^.]*$/.test(str);
+ });
// 将扫码上料放到最后
const scanCodeToLoadMaterialsIndex = btnLeftConfig.findIndex(
@@ -1408,7 +1474,7 @@ const CommonOperationBarComponent = basProps => {
}
return (
-