Commit dd2a1e3ef55be930f7df139d59fff181a36b9fb5

Authored by Min
1 parent 10114102

1.工艺卡增加删除全部,删除选中功能

src/components/Common/CommonListEvent.js
... ... @@ -1527,7 +1527,7 @@ export default (ChildComponent) => {
1527 1527 }
1528 1528  
1529 1529 /* 单据页复制到 */
1530   - handleCopyTo = async (name, sActiveId) => {
  1530 + handleCopyTo = async (name, sActiveId, iFlag) => {
1531 1531 /* 待用数据声明 */
1532 1532 const {
1533 1533 slaveConfig, slaveSelectedData, token, app, sModelsId, formRoute, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition,
... ... @@ -1859,6 +1859,23 @@ export default (ChildComponent) => {
1859 1859 sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
1860 1860 }
1861 1861 }
  1862 + } else if (dataReturn.code === -7) {
  1863 + // eslint-disable-next-line no-underscore-dangle
  1864 + const _this = this;
  1865 + confirm({
  1866 + title: '是否继续', /* 防呆校验 */
  1867 + content: dataReturn.msg,
  1868 + onOk() {
  1869 + iFlag = 1;
  1870 + _this.handleCopyTo(name,sActiveId, iFlag);
  1871 + },
  1872 + onCancel() {
  1873 + },
  1874 + });
  1875 + this.props.onSaveState({
  1876 + loading: false,
  1877 + });
  1878 + return true;
1862 1879 } else {
1863 1880 this.props.getServiceError(dataReturn);
1864 1881 }
... ...
src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
... ... @@ -17,6 +17,7 @@ import CommonView from "@/components/Common/CommonView";
17 17 import StaticEditTable from "@/components/Common/CommonTable";
18 18 import CommonViewDragable from "@/components/Common/CommonViewDragable";
19 19 import styles from "./index.less";
  20 +import { Button, Space } from "antd";
20 21  
21 22 const { Panel } = Collapse;
22 23  
... ... @@ -3679,29 +3680,32 @@ const materialsProps = props => {
3679 3680 returnProps.onDataRowDel = ({ name, tableSelectedRowKeys }) => {
3680 3681 if (name === "materials0") {
3681 3682 /* 删除全部材料时 对应删除替代料 */
3682   - const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materials0Data } = props;
3683   - if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
  3683 + const { materials0Data } = props;
  3684 + const selectedRowAllKeys = tableSelectedRowKeys || props[`${name}SelectedRowKeys`] ;
  3685 + console.log('删除数据:', selectedRowAllKeys);
  3686 +
  3687 + if (commonUtils.isEmptyArr(selectedRowAllKeys)) {
3684 3688 message.error("请选择数据!");
3685 3689 return;
3686 3690 }
3687 3691 if (commonUtils.isNotEmptyArr(materials0Data)) {
3688   - const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId));
  3692 + const materials0ChildData = materials0Data.filter(item => selectedRowAllKeys.includes(item.sParentMaterialsId));
3689 3693 if (commonUtils.isNotEmptyArr(materials0ChildData)) {
3690 3694 materials0ChildData.forEach(item => {
3691   - tableSelectedRowKeys.push(item.sId);
  3695 + selectedRowAllKeys.push(item.sId);
3692 3696 });
3693 3697 }
3694 3698  
3695 3699 /* 删除子墨 */
3696   - const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId));
  3700 + const materials0InkData = materials0Data.filter(item => selectedRowAllKeys.includes(item.sInkFatherMaterialsTbId));
3697 3701 if (commonUtils.isNotEmptyArr(materials0InkData)) {
3698 3702 materials0InkData.forEach(item => {
3699   - tableSelectedRowKeys.push(item.sId);
  3703 + selectedRowAllKeys.push(item.sId);
3700 3704 });
3701 3705 }
3702 3706  
3703   - const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys, "sId"); /* 全部材料删除 */
3704   - const materials0ChildReturnData = props.otherTableDel("materials0Child", tableSelectedRowKeys, "sId"); /* 替代料删除 */
  3707 + const materials0ReturnData = props.otherTableDel("materials0", selectedRowAllKeys, "sId"); /* 全部材料删除 */
  3708 + const materials0ChildReturnData = props.otherTableDel("materials0Child", selectedRowAllKeys, "sId"); /* 替代料删除 */
3705 3709 props.onSaveState({
3706 3710 ...materials0ReturnData,
3707 3711 ...materials0ChildReturnData,
... ... @@ -4271,6 +4275,144 @@ const OtherComponent = props => {
4271 4275 }
4272 4276 return str;
4273 4277 };
  4278 + // 删除材料方法
  4279 + const handleDelAllMaterials = (filterData, bPartDel) => {
  4280 + console.log("handleDelAllMaterials", filterData, bPartDel);
  4281 + console.log('sss', props);
  4282 + const { materials0SelectedRowKeys = [], materials0Data = [] } = props;
  4283 +
  4284 + // 如果是撤销操作 (bPartDel === 7)
  4285 + if (bPartDel === 7) {
  4286 + const undo = async () => {
  4287 + try {
  4288 + const { masterData, sModelsId, token, slaveData, controlData = [], controlSelectedRowKeys = [],
  4289 + slaveSelectedRowKeys = [],
  4290 + processData = [],
  4291 + materialsConfig
  4292 + } = props;
  4293 + const controlRow = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ?
  4294 + controlData.find(item => controlSelectedRowKeys.includes(item.sId)) : controlData[0];
  4295 + const sCombineMemoObj = commonUtils.isNotEmptyObject(controlRow?.sCombinedMemo) && commonUtils.isJSON(controlRow.sCombinedMemo) ?
  4296 + JSON.parse(controlRow.sCombinedMemo) : [] ;
  4297 + console.log(sCombineMemoObj, controlRow, 's');
  4298 + let slaveObj = slaveData.find(item =>
  4299 + sCombineMemoObj?.some(obj => obj.sProductNo === item.sProductNo)
  4300 + );
  4301 + if(commonUtils.isNotEmptyObject(slaveObj)){
  4302 + if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){
  4303 + slaveObj = slaveData.find(item => slaveSelectedRowKeys.includes(item.sId))
  4304 + } else{
  4305 + slaveObj = slaveData[0];
  4306 + }
  4307 + }
  4308 +
  4309 + const btnRoveObj = materialsConfig?.gdsconfigformslave.find(item => item.sControlName?.includes('BtnRevoke'));
  4310 + const materialsAssignField = btnRoveObj?.materialsAssignField;
  4311 + const dataUrl = `${commonConfig.server_host}salesorder/getMaterialsCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
  4312 + const sRowData = commonUtils.isNotEmptyObject(slaveObj) ? [slaveObj] : [];
  4313 + const condition = { sRowData };
  4314 + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
  4315 + if (dataReturn.code === 1) {
  4316 + message.success("撤销成功!");
  4317 + const returnData = dataReturn.dataset.rows[0];
  4318 + const materialsReturnData = returnData?.materialsData || [];
  4319 + const newCopyTo = { control: controlRow }
  4320 + if (commonUtils.isNotEmptyArr(materialsReturnData)) {
  4321 + materialsReturnData.filter(item => item.sType !== '2').forEach((materialsItem) => {
  4322 + const newSid = commonUtils.createSid();
  4323 + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值
  4324 + if(materialsAssignField) {
  4325 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) };
  4326 + }
  4327 + // materialsRow = {...materialsItem};
  4328 + materialsRow.handleType = 'add';
  4329 + materialsRow.sId = newSid;
  4330 + materialsRow.sParentId = masterData.sId;
  4331 + materialsRow.sControlId = controlRow.sId;
  4332 + materialsRow.sPartsName = controlRow.sPartsName;
  4333 + materialsRow.sSlaveId = slaveObj?.sId;
  4334 + materialsRow.sOriginalId = materialsItem.sId;
  4335 + materialsRow.sZmldlt = materialsItem.sZmldlt;
  4336 + materialsRow.sProcessId = materialsItem.sProcessId;
  4337 + materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
  4338 + // 材料对应工序的ID要变化
  4339 + if (commonUtils.isNotEmptyArr(processData)) {
  4340 + const iProcessIndex = processData.findIndex(prow => prow.sControlId === controlRow.sId
  4341 + && materialsRow.sProcessId === prow.sProcessId
  4342 + );
  4343 + if (iProcessIndex > -1) {
  4344 + materialsRow.sProcessTbId = processData[iProcessIndex].sId;
  4345 + }
  4346 + }
  4347 + materials0Data.push(materialsRow);
  4348 + });
  4349 + }
  4350 +
  4351 + // 这里可以根据返回的数据更新界面
  4352 + console.log("撤销返回数据:", materialsReturnData);
  4353 + console.log("汇总:", materials0Data);
  4354 + props.onSaveState({materials0Data})
  4355 + } else {
  4356 + message.error(dataReturn.msg || "撤销失败!");
  4357 + }
  4358 + } catch (error) {
  4359 + message.error(error + "撤销操作失败!");
  4360 + }
  4361 + };
  4362 +
  4363 + Modal.confirm({
  4364 + title: "确认要撤销操作吗?",
  4365 + onOk() {
  4366 + undo();
  4367 + },
  4368 + okText: '确定',
  4369 + cancelText: '取消'
  4370 + });
  4371 + return;
  4372 + }
  4373 +
  4374 + // 原有的删除逻辑
  4375 + const partFilterData = filterData.filter(item => item.bMark);
  4376 + console.log('ffff', partFilterData);
  4377 + if (bPartDel) {
  4378 + if (!partFilterData.length) {
  4379 + message.info("请先选择要删除的数据!");
  4380 + return;
  4381 + }
  4382 + }
  4383 +
  4384 + const delAll = () => {
  4385 + const sIds = filterData.map(item => item.sId);
  4386 + // 尝试调用删除方法 - 参数需要匹配 CommonBase 的 handleTableDel 方法签名
  4387 + if (props.onDataRowDel && typeof props.onDataRowDel === 'function') {
  4388 + console.log('删除全部材料sId222集合', sIds);
  4389 + props.onDataRowDel("materials0", false, sIds, undefined);
  4390 + } else {
  4391 + console.error("onDataRowDel 方法不存在或不是函数");
  4392 + message.error("删除错误");
  4393 + }
  4394 + }
  4395 +
  4396 + const delPart = () => {
  4397 + const sIds = partFilterData.map(item => item.sId);
  4398 + // 尝试调用删除方法 - 参数需要匹配 CommonBase 的 handleTableDel 方法签名
  4399 + if (props.onDataRowDel && typeof props.onDataRowDel === 'function') {
  4400 + props.onDataRowDel("materials0", false, sIds, undefined);
  4401 + } else {
  4402 + console.error("onDataRowDel 方法不存在或不是函数");
  4403 + message.error("删除功能不可用");
  4404 + }
  4405 + }
  4406 +
  4407 + Modal.confirm({
  4408 + title: `确认要删除${bPartDel ? "选中" : "全部"}吗?`,
  4409 + onOk() {
  4410 + bPartDel ? delPart() : delAll();
  4411 + },
  4412 + okText: '确定',
  4413 + cancelText: '取消'
  4414 + });
  4415 + };
4274 4416  
4275 4417 const [activeKey, setActiveKey] = useState(["process", "material", "color", "vision", ...materialsChildInfoList]);
4276 4418 const getHeaderIcon = tablename => (
... ... @@ -4293,7 +4435,7 @@ const OtherComponent = props => {
4293 4435 </Panel>
4294 4436  
4295 4437 <Panel collapsible="header" header={getHeaderIcon("material")} showArrow={false} extra={panelExtra("material")} key="material">
4296   - <MaterialsComponent {...props} materialsTabValue={materialsTabValue} />
  4438 + <MaterialsComponent {...props} materialsTabValue={materialsTabValue} onDelAllMaterials={handleDelAllMaterials}/>
4297 4439 </Panel>
4298 4440 {materialsChildInfoListFilter.map(tablename => {
4299 4441 const { showName } = props[`${tablename}Config`];
... ... @@ -4501,20 +4643,33 @@ const MaterialsComponent = props =&gt; {
4501 4643 <div className="dlhStyle">
4502 4644 <div style={{ position: "relative", width: sWidth }}>
4503 4645 <StaticEditTable {...materialsOtherPropsType} />
4504   - {/* {index === 0 && (
  4646 + {true && (
4505 4647 <div className={styles.delAll}>
4506   - <Button
4507   - type="primary"
4508   - disabled={!props.enabled}
4509   - // onClick={props.onDeleteAllMaterials.bind(
4510   - // this,
4511   - // materialsOtherPropsType.data
4512   - // )}
4513   - >
4514   - 删除全部
4515   - </Button>
  4648 + <Space>
  4649 + <Button
  4650 + type="primary"
  4651 + disabled={!props.enabled || commonUtils.isEmptyArr(materialsOtherPropsType.data)}
  4652 + onClick={() => props.onDelAllMaterials?.(materialsOtherPropsType.data, false)}
  4653 + >
  4654 + 删除全部
  4655 + </Button>
  4656 + {/*<Button*/}
  4657 + {/* type="primary"*/}
  4658 + {/* disabled={!props.enabled || commonUtils.isNotEmptyArr(materialsOtherPropsType.data)}*/}
  4659 + {/* onClick={() => props.onDelAllMaterials?.(materialsOtherPropsType.data, 7)}*/}
  4660 + {/*>*/}
  4661 + {/* 撤销*/}
  4662 + {/*</Button>*/}
  4663 + <Button
  4664 + type="primary"
  4665 + disabled={!props.enabled || commonUtils.isEmptyArr(materialsOtherPropsType.data)}
  4666 + onClick={() => props.onDelAllMaterials?.(materialsOtherPropsType.data, true)}
  4667 + >
  4668 + 删除选中
  4669 + </Button>
  4670 + </Space>
4516 4671 </div>
4517   - )} */}
  4672 + )}
4518 4673 </div>
4519 4674 {materialsChildTableProps ? (
4520 4675 <div style={{ width: sRightWidth, position: "relative" }}>
... ...