From dd2a1e3ef55be930f7df139d59fff181a36b9fb5 Mon Sep 17 00:00:00 2001
From: pengm <674192343@qq.com>
Date: Mon, 8 Jun 2026 11:08:50 +0800
Subject: [PATCH] 1.工艺卡增加删除全部,删除选中功能
---
src/components/Common/CommonListEvent.js | 19 ++++++++++++++++++-
src/components/Manufacture/ProcessCardPackTableTreeNew/index.js | 197 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
2 files changed, 194 insertions(+), 22 deletions(-)
diff --git a/src/components/Common/CommonListEvent.js b/src/components/Common/CommonListEvent.js
index 8279640..e872ebc 100644
--- a/src/components/Common/CommonListEvent.js
+++ b/src/components/Common/CommonListEvent.js
@@ -1527,7 +1527,7 @@ export default (ChildComponent) => {
}
/* 单据页复制到 */
- handleCopyTo = async (name, sActiveId) => {
+ handleCopyTo = async (name, sActiveId, iFlag) => {
/* 待用数据声明 */
const {
slaveConfig, slaveSelectedData, token, app, sModelsId, formRoute, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition,
@@ -1859,6 +1859,23 @@ export default (ChildComponent) => {
sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
}
}
+ } else if (dataReturn.code === -7) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this;
+ confirm({
+ title: '是否继续', /* 防呆校验 */
+ content: dataReturn.msg,
+ onOk() {
+ iFlag = 1;
+ _this.handleCopyTo(name,sActiveId, iFlag);
+ },
+ onCancel() {
+ },
+ });
+ this.props.onSaveState({
+ loading: false,
+ });
+ return true;
} else {
this.props.getServiceError(dataReturn);
}
diff --git a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
index 01a4814..5fe0d36 100644
--- a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
+++ b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
@@ -17,6 +17,7 @@ import CommonView from "@/components/Common/CommonView";
import StaticEditTable from "@/components/Common/CommonTable";
import CommonViewDragable from "@/components/Common/CommonViewDragable";
import styles from "./index.less";
+import { Button, Space } from "antd";
const { Panel } = Collapse;
@@ -3679,29 +3680,32 @@ const materialsProps = props => {
returnProps.onDataRowDel = ({ name, tableSelectedRowKeys }) => {
if (name === "materials0") {
/* 删除全部材料时 对应删除替代料 */
- const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materials0Data } = props;
- if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ const { materials0Data } = props;
+ const selectedRowAllKeys = tableSelectedRowKeys || props[`${name}SelectedRowKeys`] ;
+ console.log('删除数据:', selectedRowAllKeys);
+
+ if (commonUtils.isEmptyArr(selectedRowAllKeys)) {
message.error("请选择数据!");
return;
}
if (commonUtils.isNotEmptyArr(materials0Data)) {
- const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId));
+ const materials0ChildData = materials0Data.filter(item => selectedRowAllKeys.includes(item.sParentMaterialsId));
if (commonUtils.isNotEmptyArr(materials0ChildData)) {
materials0ChildData.forEach(item => {
- tableSelectedRowKeys.push(item.sId);
+ selectedRowAllKeys.push(item.sId);
});
}
/* 删除子墨 */
- const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId));
+ const materials0InkData = materials0Data.filter(item => selectedRowAllKeys.includes(item.sInkFatherMaterialsTbId));
if (commonUtils.isNotEmptyArr(materials0InkData)) {
materials0InkData.forEach(item => {
- tableSelectedRowKeys.push(item.sId);
+ selectedRowAllKeys.push(item.sId);
});
}
- const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys, "sId"); /* 全部材料删除 */
- const materials0ChildReturnData = props.otherTableDel("materials0Child", tableSelectedRowKeys, "sId"); /* 替代料删除 */
+ const materials0ReturnData = props.otherTableDel("materials0", selectedRowAllKeys, "sId"); /* 全部材料删除 */
+ const materials0ChildReturnData = props.otherTableDel("materials0Child", selectedRowAllKeys, "sId"); /* 替代料删除 */
props.onSaveState({
...materials0ReturnData,
...materials0ChildReturnData,
@@ -4271,6 +4275,144 @@ const OtherComponent = props => {
}
return str;
};
+ // 删除材料方法
+ const handleDelAllMaterials = (filterData, bPartDel) => {
+ console.log("handleDelAllMaterials", filterData, bPartDel);
+ console.log('sss', props);
+ const { materials0SelectedRowKeys = [], materials0Data = [] } = props;
+
+ // 如果是撤销操作 (bPartDel === 7)
+ if (bPartDel === 7) {
+ const undo = async () => {
+ try {
+ const { masterData, sModelsId, token, slaveData, controlData = [], controlSelectedRowKeys = [],
+ slaveSelectedRowKeys = [],
+ processData = [],
+ materialsConfig
+ } = props;
+ const controlRow = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ?
+ controlData.find(item => controlSelectedRowKeys.includes(item.sId)) : controlData[0];
+ const sCombineMemoObj = commonUtils.isNotEmptyObject(controlRow?.sCombinedMemo) && commonUtils.isJSON(controlRow.sCombinedMemo) ?
+ JSON.parse(controlRow.sCombinedMemo) : [] ;
+ console.log(sCombineMemoObj, controlRow, 's');
+ let slaveObj = slaveData.find(item =>
+ sCombineMemoObj?.some(obj => obj.sProductNo === item.sProductNo)
+ );
+ if(commonUtils.isNotEmptyObject(slaveObj)){
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){
+ slaveObj = slaveData.find(item => slaveSelectedRowKeys.includes(item.sId))
+ } else{
+ slaveObj = slaveData[0];
+ }
+ }
+
+ const btnRoveObj = materialsConfig?.gdsconfigformslave.find(item => item.sControlName?.includes('BtnRevoke'));
+ const materialsAssignField = btnRoveObj?.materialsAssignField;
+ const dataUrl = `${commonConfig.server_host}salesorder/getMaterialsCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const sRowData = commonUtils.isNotEmptyObject(slaveObj) ? [slaveObj] : [];
+ const condition = { sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ message.success("撤销成功!");
+ const returnData = dataReturn.dataset.rows[0];
+ const materialsReturnData = returnData?.materialsData || [];
+ const newCopyTo = { control: controlRow }
+ if (commonUtils.isNotEmptyArr(materialsReturnData)) {
+ materialsReturnData.filter(item => item.sType !== '2').forEach((materialsItem) => {
+ const newSid = commonUtils.createSid();
+ let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值
+ if(materialsAssignField) {
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) };
+ }
+ // materialsRow = {...materialsItem};
+ materialsRow.handleType = 'add';
+ materialsRow.sId = newSid;
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sSlaveId = slaveObj?.sId;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sZmldlt = materialsItem.sZmldlt;
+ materialsRow.sProcessId = materialsItem.sProcessId;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(prow => prow.sControlId === controlRow.sId
+ && materialsRow.sProcessId === prow.sProcessId
+ );
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materials0Data.push(materialsRow);
+ });
+ }
+
+ // 这里可以根据返回的数据更新界面
+ console.log("撤销返回数据:", materialsReturnData);
+ console.log("汇总:", materials0Data);
+ props.onSaveState({materials0Data})
+ } else {
+ message.error(dataReturn.msg || "撤销失败!");
+ }
+ } catch (error) {
+ message.error(error + "撤销操作失败!");
+ }
+ };
+
+ Modal.confirm({
+ title: "确认要撤销操作吗?",
+ onOk() {
+ undo();
+ },
+ okText: '确定',
+ cancelText: '取消'
+ });
+ return;
+ }
+
+ // 原有的删除逻辑
+ const partFilterData = filterData.filter(item => item.bMark);
+ console.log('ffff', partFilterData);
+ if (bPartDel) {
+ if (!partFilterData.length) {
+ message.info("请先选择要删除的数据!");
+ return;
+ }
+ }
+
+ const delAll = () => {
+ const sIds = filterData.map(item => item.sId);
+ // 尝试调用删除方法 - 参数需要匹配 CommonBase 的 handleTableDel 方法签名
+ if (props.onDataRowDel && typeof props.onDataRowDel === 'function') {
+ console.log('删除全部材料sId222集合', sIds);
+ props.onDataRowDel("materials0", false, sIds, undefined);
+ } else {
+ console.error("onDataRowDel 方法不存在或不是函数");
+ message.error("删除错误");
+ }
+ }
+
+ const delPart = () => {
+ const sIds = partFilterData.map(item => item.sId);
+ // 尝试调用删除方法 - 参数需要匹配 CommonBase 的 handleTableDel 方法签名
+ if (props.onDataRowDel && typeof props.onDataRowDel === 'function') {
+ props.onDataRowDel("materials0", false, sIds, undefined);
+ } else {
+ console.error("onDataRowDel 方法不存在或不是函数");
+ message.error("删除功能不可用");
+ }
+ }
+
+ Modal.confirm({
+ title: `确认要删除${bPartDel ? "选中" : "全部"}吗?`,
+ onOk() {
+ bPartDel ? delPart() : delAll();
+ },
+ okText: '确定',
+ cancelText: '取消'
+ });
+ };
const [activeKey, setActiveKey] = useState(["process", "material", "color", "vision", ...materialsChildInfoList]);
const getHeaderIcon = tablename => (
@@ -4293,7 +4435,7 @@ const OtherComponent = props => {