Commit 6a1b51da4fbf7bfe190a846b39e3f3c6b0b1f6f2
1 parent
4a6c3427
颜色选择可以修改板数
Showing
1 changed file
with
66 additions
and
11 deletions
src/mes/common/commonModelComponent/index.js
| @@ -2621,17 +2621,28 @@ const CommonTableComponent = props => { | @@ -2621,17 +2621,28 @@ const CommonTableComponent = props => { | ||
| 2621 | // 拆分为C、M、Y、K四个单独选项 | 2621 | // 拆分为C、M、Y、K四个单独选项 |
| 2622 | const colors = item.sName.split("+"); | 2622 | const colors = item.sName.split("+"); |
| 2623 | colors.forEach(color => { | 2623 | colors.forEach(color => { |
| 2624 | + // 根据颜色获取对应的板数值,如果没有保存过则默认为1 | ||
| 2625 | + let plateNum = 1; | ||
| 2626 | + if (color === 'C' && item.cPlateNum !== undefined) plateNum = item.cPlateNum; | ||
| 2627 | + else if (color === 'M' && item.mPlateNum !== undefined) plateNum = item.mPlateNum; | ||
| 2628 | + else if (color === 'Y' && item.yPlateNum !== undefined) plateNum = item.yPlateNum; | ||
| 2629 | + else if (color === 'K' && item.kPlateNum !== undefined) plateNum = item.kPlateNum; | ||
| 2630 | + | ||
| 2624 | processedColorList.push({ | 2631 | processedColorList.push({ |
| 2625 | ...item, | 2632 | ...item, |
| 2626 | sId: `${item.sId}_${color}`, // 生成唯一ID | 2633 | sId: `${item.sId}_${color}`, // 生成唯一ID |
| 2627 | sName: color, | 2634 | sName: color, |
| 2628 | - dColor: 1, // 每个颜色板数为1 | 2635 | + dColor: plateNum, // 使用保存的板数值 |
| 2629 | bSelected: item.bSelected || false, | 2636 | bSelected: item.bSelected || false, |
| 2630 | isSplitFromCMYK: true // 标记为从CMYK拆分 | 2637 | isSplitFromCMYK: true // 标记为从CMYK拆分 |
| 2631 | }); | 2638 | }); |
| 2632 | }); | 2639 | }); |
| 2633 | } else { | 2640 | } else { |
| 2634 | - processedColorList.push(item); | 2641 | + // 非CMYK颜色,使用保存的dColor值,如果没有则默认为1 |
| 2642 | + processedColorList.push({ | ||
| 2643 | + ...item, | ||
| 2644 | + dColor: item.dColor !== undefined ? item.dColor : 1 | ||
| 2645 | + }); | ||
| 2635 | } | 2646 | } |
| 2636 | }); | 2647 | }); |
| 2637 | 2648 | ||
| @@ -3488,11 +3499,16 @@ const SisColorChooseComponent = props => { | @@ -3488,11 +3499,16 @@ const SisColorChooseComponent = props => { | ||
| 3488 | originalColorList.forEach(item => { | 3499 | originalColorList.forEach(item => { |
| 3489 | if (item.sName === 'C+M+Y+K') { | 3500 | if (item.sName === 'C+M+Y+K') { |
| 3490 | // 处理CMYK颜色 | 3501 | // 处理CMYK颜色 |
| 3491 | - // 检查C、M、Y、K是否被选中 | ||
| 3492 | - const cSelected = rightData.some(item => item.sName === 'C' && item.isSplitFromCMYK); | ||
| 3493 | - const mSelected = rightData.some(item => item.sName === 'M' && item.isSplitFromCMYK); | ||
| 3494 | - const ySelected = rightData.some(item => item.sName === 'Y' && item.isSplitFromCMYK); | ||
| 3495 | - const kSelected = rightData.some(item => item.sName === 'K' && item.isSplitFromCMYK); | 3502 | + // 检查C、M、Y、K是否被选中,并获取对应的dColor值 |
| 3503 | + const cItem = rightData.find(item => item.sName === 'C' && item.isSplitFromCMYK); | ||
| 3504 | + const mItem = rightData.find(item => item.sName === 'M' && item.isSplitFromCMYK); | ||
| 3505 | + const yItem = rightData.find(item => item.sName === 'Y' && item.isSplitFromCMYK); | ||
| 3506 | + const kItem = rightData.find(item => item.sName === 'K' && item.isSplitFromCMYK); | ||
| 3507 | + | ||
| 3508 | + const cSelected = !!cItem; | ||
| 3509 | + const mSelected = !!mItem; | ||
| 3510 | + const ySelected = !!yItem; | ||
| 3511 | + const kSelected = !!kItem; | ||
| 3496 | 3512 | ||
| 3497 | // 计算选中的CMYK颜色数量 | 3513 | // 计算选中的CMYK颜色数量 |
| 3498 | const selectedCount = [cSelected, mSelected, ySelected, kSelected].filter(Boolean).length; | 3514 | const selectedCount = [cSelected, mSelected, ySelected, kSelected].filter(Boolean).length; |
| @@ -3505,14 +3521,21 @@ const SisColorChooseComponent = props => { | @@ -3505,14 +3521,21 @@ const SisColorChooseComponent = props => { | ||
| 3505 | cSelected, | 3521 | cSelected, |
| 3506 | mSelected, | 3522 | mSelected, |
| 3507 | ySelected, | 3523 | ySelected, |
| 3508 | - kSelected | 3524 | + kSelected, |
| 3525 | + // 保存每个颜色的板数 | ||
| 3526 | + cPlateNum: cItem?.dColor || 0, | ||
| 3527 | + mPlateNum: mItem?.dColor || 0, | ||
| 3528 | + yPlateNum: yItem?.dColor || 0, | ||
| 3529 | + kPlateNum: kItem?.dColor || 0, | ||
| 3509 | }); | 3530 | }); |
| 3510 | } else { | 3531 | } else { |
| 3511 | // 处理非CMYK的颜色 | 3532 | // 处理非CMYK的颜色 |
| 3512 | - const i = rightData.findIndex(rightItem => rightItem.sId === item.sId); | 3533 | + const rightItem = rightData.find(rightItem => rightItem.sId === item.sId); |
| 3513 | colorList.push({ | 3534 | colorList.push({ |
| 3514 | ...item, | 3535 | ...item, |
| 3515 | - bSelected: i > -1 | 3536 | + bSelected: !!rightItem, |
| 3537 | + // 保存板数到JSON中 | ||
| 3538 | + dColor: rightItem?.dColor || item.dColor || 0 | ||
| 3516 | }); | 3539 | }); |
| 3517 | } | 3540 | } |
| 3518 | }); | 3541 | }); |
| @@ -3596,8 +3619,40 @@ const SisColorChooseComponent = props => { | @@ -3596,8 +3619,40 @@ const SisColorChooseComponent = props => { | ||
| 3596 | }, | 3619 | }, |
| 3597 | ]; | 3620 | ]; |
| 3598 | 3621 | ||
| 3622 | + const handlePlateNumChange = (value, record) => { | ||
| 3623 | + const newData = rightData.map(item => { | ||
| 3624 | + if (item.sId === record.sId) { | ||
| 3625 | + return { ...item, dColor: Number(value) || 0 }; | ||
| 3626 | + } | ||
| 3627 | + return item; | ||
| 3628 | + }); | ||
| 3629 | + setRightData(newData); | ||
| 3630 | + }; | ||
| 3631 | + | ||
| 3599 | const rightColumns = [ | 3632 | const rightColumns = [ |
| 3600 | - ...baseColumns.map(col => ({ ...col })), | 3633 | + ...baseColumns.map(col => { |
| 3634 | + if (col.dataIndex === 'dColor') { | ||
| 3635 | + return { | ||
| 3636 | + ...col, | ||
| 3637 | + render: (text, record) => ( | ||
| 3638 | + <input | ||
| 3639 | + type="number" | ||
| 3640 | + min={0} | ||
| 3641 | + value={text || 0} | ||
| 3642 | + onChange={(e) => handlePlateNumChange(e.target.value, record)} | ||
| 3643 | + style={{ | ||
| 3644 | + width: '80px', | ||
| 3645 | + padding: '4px 8px', | ||
| 3646 | + border: '1px solid #d9d9d9', | ||
| 3647 | + borderRadius: '4px', | ||
| 3648 | + fontSize: '14px' | ||
| 3649 | + }} | ||
| 3650 | + /> | ||
| 3651 | + ) | ||
| 3652 | + }; | ||
| 3653 | + } | ||
| 3654 | + return { ...col }; | ||
| 3655 | + }), | ||
| 3601 | { | 3656 | { |
| 3602 | title: '操作', | 3657 | title: '操作', |
| 3603 | key: 'action', | 3658 | key: 'action', |