From f9b58b8a562b976fa90cac2dd3ec6ba724c715e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AD=90=E6=B6=B5?= <2067519648@qq.com> Date: Mon, 4 Mar 2024 03:54:52 +0000 Subject: [PATCH] =?UTF-8?q?!2538=20=E4=BC=98=E5=8C=96:=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E6=9D=BF=E6=9D=90=E6=94=B9=E9=A2=9C=E8=89=B2=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E5=90=8E=E8=BF=98=E5=8E=9F=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BoardEditor/ChangeBoardColorByPBFace.ts | 4 ++ .../ChangeColorByMaterial.tsx | 13 +++- src/Add-on/ChangeColorByBoard/ResetColor.tsx | 71 +++++++++++++++++++ .../ChangeColorByRoomOrCabinet.tsx | 13 +++- 4 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 src/Add-on/ChangeColorByBoard/ResetColor.tsx diff --git a/src/Add-on/BoardEditor/ChangeBoardColorByPBFace.ts b/src/Add-on/BoardEditor/ChangeBoardColorByPBFace.ts index 38a3977f0..aba52feb0 100644 --- a/src/Add-on/BoardEditor/ChangeBoardColorByPBFace.ts +++ b/src/Add-on/BoardEditor/ChangeBoardColorByPBFace.ts @@ -6,6 +6,7 @@ import { ComposingType } from "../../DatabaseServices/Entity/BoardInterface"; import { Command } from "../../Editor/CommandMachine"; import { PromptStatus } from "../../Editor/PromptResult"; import { AppToaster } from "../../UI/Components/Toaster"; +import { ResetColor } from "../ChangeColorByBoard/ResetColor"; export class Command_ChangeBoardColorByPBFace implements Command { @@ -20,8 +21,10 @@ export class Command_ChangeBoardColorByPBFace implements Command let ssRes = await app.Editor.GetSelection({ Filter: { filterTypes: [Board] }, UseSelect: true }); if (ssRes.Status !== PromptStatus.OK) return; let ents = ssRes.SelectSet.SelectEntityList as Board[]; + const oldColorMap = new Map(); for (let br of ents) { + oldColorMap.set(br, br.ColorIndex); if (br.BoardProcessOption[EBoardKeyList.ComposingFace] === ComposingType.Positive) br.ColorIndex = 2; else if (br.BoardProcessOption[EBoardKeyList.ComposingFace] === ComposingType.Reverse) @@ -29,5 +32,6 @@ export class Command_ChangeBoardColorByPBFace implements Command else br.ColorIndex = 4; } + ResetColor(oldColorMap); } } diff --git a/src/Add-on/ChangeColorByBoard/ChangeColorByMaterial.tsx b/src/Add-on/ChangeColorByBoard/ChangeColorByMaterial.tsx index b7471b3b3..a8df6d0a0 100644 --- a/src/Add-on/ChangeColorByBoard/ChangeColorByMaterial.tsx +++ b/src/Add-on/ChangeColorByBoard/ChangeColorByMaterial.tsx @@ -20,6 +20,7 @@ import { DialogUserConfig } from '../../UI/Components/Board/UserConfigComponent' import { CommonModal } from '../../UI/Components/Modal/ModalContainer'; import { BoardInfoSelectPanel } from './BoardInfoSelectPanel'; import { ChangeColorByBoardMaterialStore } from './CalcBrThicknessConfigStore'; +import { ResetColor } from './ResetColor'; export class ChangeColorByMaterial implements Command { @@ -61,6 +62,7 @@ export class ChangeColorByMaterial implements Command let boardMap = new Map(); let option = store.m_Option; let colorIndex = 1; + const oldColorMap = new Map(); for (let br of brs) { let key: string = `板材料:${br.BoardProcessOption[EBoardKeyList.Mat] !== "" ? br.BoardProcessOption[EBoardKeyList.Mat] : "无"}`; @@ -86,6 +88,7 @@ export class ChangeColorByMaterial implements Command colorMap.set(key, colorIndex); colorIndex++; } + oldColorMap.set(br, br.ColorIndex); br.ColorIndex = colors[color]; let arr = boardMap.get(color); @@ -106,7 +109,7 @@ export class ChangeColorByMaterial implements Command boardMapArr.sort((b1, b2) => b1.mtl.localeCompare(b2.mtl)); - app.Editor.ModalManage.RenderModeless(BoardColorMaterialMapDialog, { data: boardMapArr }, { canMinimize: false }); + app.Editor.ModalManage.RenderModeless(BoardColorMaterialMapDialog, { data: boardMapArr, oldColorMap }, { canMinimize: false }); } } @@ -117,6 +120,7 @@ interface BoardColorMaterialMapDialogProps brs: Board[]; color: number; }[]; + oldColorMap: Map; } //用显示板材和板件的对应关系,命令根据板件材质改颜色的功能 @@ -188,6 +192,7 @@ export class BoardColorMaterialMapDialog extends React.Component app.Editor.ModalManage.Destory() - } + close={() => + { + app.Editor.ModalManage.Destory(); + }} >
    { diff --git a/src/Add-on/ChangeColorByBoard/ResetColor.tsx b/src/Add-on/ChangeColorByBoard/ResetColor.tsx new file mode 100644 index 000000000..8d3f50003 --- /dev/null +++ b/src/Add-on/ChangeColorByBoard/ResetColor.tsx @@ -0,0 +1,71 @@ +import React from "react"; +import { Intent } from "../../Common/Toaster"; +import { Board } from "../../DatabaseServices/Entity/Board"; +import { BoardOpenDir, BoardType } from "../../DatabaseServices/Entity/BoardInterface"; +import { CommandWrap } from "../../Editor/CommandMachine"; +import { CommandState } from "../../Editor/CommandState"; +import { AppToaster } from "../../UI/Components/Toaster"; + +/** 弹窗-是否要还原颜色 */ +export function ResetColor(colorMap: Map) +{ + const key = AppToaster.show({ + message: <> + 板的颜色被修改 + + + , + timeout: 60000, + }); +} + +function ResetDefaultColor(br: Board) +{ + let boardType = br.BoardType; + if (boardType === BoardType.Layer) + { + br.ColorIndex = 2; + } + else if (boardType === BoardType.Vertical) + { + br.ColorIndex = 11; + } + else + { + br.ColorIndex = br.OpenDir === BoardOpenDir.None ? 3 : 6; + } +} diff --git a/src/Add-on/ChangeColorByRoomOrCabinet/ChangeColorByRoomOrCabinet.tsx b/src/Add-on/ChangeColorByRoomOrCabinet/ChangeColorByRoomOrCabinet.tsx index 73a397bb2..19d7f3140 100644 --- a/src/Add-on/ChangeColorByRoomOrCabinet/ChangeColorByRoomOrCabinet.tsx +++ b/src/Add-on/ChangeColorByRoomOrCabinet/ChangeColorByRoomOrCabinet.tsx @@ -16,6 +16,7 @@ import { SelectSetBase } from '../../Editor/SelectBase'; import { BoardModalType } from '../../UI/Components/Board/BoardModalType'; import { DialogUserConfig } from '../../UI/Components/Board/UserConfigComponent'; import { CommonModal } from '../../UI/Components/Modal/ModalContainer'; +import { ResetColor } from '../ChangeColorByBoard/ResetColor'; import { BoardInfoSelectRoomCabinetPanel } from './BoardInfoSelectRoomCabinetPanel'; import { ChangeColorByRoomOrCabinetStore } from './ChangeColorByRoomOrCabinetStore'; @@ -59,6 +60,7 @@ export class ChangeColorByRoomCabinet implements Command let boardMap = new Map(); let option = store.m_Option; let colorIndex = 1; + const oldColorMap = new Map(); for (let br of brs) { let key: string = ""; @@ -78,6 +80,7 @@ export class ChangeColorByRoomCabinet implements Command colorMap.set(key, colorIndex); colorIndex++; } + oldColorMap.set(br, br.ColorIndex); br.ColorIndex = colors[color]; let arr = boardMap.get(color); @@ -98,7 +101,7 @@ export class ChangeColorByRoomCabinet implements Command boardMapArr.sort((b1, b2) => b1.mtl.localeCompare(b2.mtl)); - app.Editor.ModalManage.RenderModeless(BoardColorByRoomOrCabinetDialog, { data: boardMapArr }, { canMinimize: false }); + app.Editor.ModalManage.RenderModeless(BoardColorByRoomOrCabinetDialog, { data: boardMapArr, oldColorMap }, { canMinimize: false }); } } @@ -110,6 +113,7 @@ export class BoardColorByRoomOrCabinetDialog extends React.Component<{ brs: Board[]; color: number; }[]; + oldColorMap: Map; }, {}> { //当前选择的板材列表 @@ -173,6 +177,7 @@ export class BoardColorByRoomOrCabinetDialog extends React.Component<{ { for (let fun of this._RemoveFun) fun(); + ResetColor(this.props.oldColorMap); } public render() @@ -182,8 +187,10 @@ export class BoardColorByRoomOrCabinetDialog extends React.Component<{ className="boardColorMaterialMap" title="房间柜体列表" hasConfig={false} - close={() => app.Editor.ModalManage.Destory() - } + close={() => + { + app.Editor.ModalManage.Destory(); + }} >
      {