diff --git a/src/Add-on/showModal/GroovesModifyModal.tsx b/src/Add-on/showModal/GroovesModifyModal.tsx index 7b65b447a..b62ff281a 100644 --- a/src/Add-on/showModal/GroovesModifyModal.tsx +++ b/src/Add-on/showModal/GroovesModifyModal.tsx @@ -3,17 +3,18 @@ import { observable } from "mobx"; import { observer } from "mobx-react"; import React from "react"; import { app } from "../../ApplicationServices/Application"; -import { safeEval } from "../../Common/eval"; import { KeyBoard } from "../../Common/KeyEnum"; import { UpdateDraw } from "../../Common/Status"; +import { safeEval } from "../../Common/eval"; import { Board } from "../../DatabaseServices/Entity/Board"; +import { Entity } from "../../DatabaseServices/Entity/Entity"; import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude"; import { CommandWrap } from "../../Editor/CommandMachine"; import { ICommonOptionProps } from "../../UI/Components/Board/CommonBoardOption"; import { CommonModal } from "../../UI/Components/Modal/ModalContainer"; -import "./groove.less"; import { GrooveInfo } from "./GrooveInfo"; import { GroovesModal } from "./GroovesModal"; +import "./groove.less"; interface BoardProps { @@ -60,7 +61,7 @@ export class GroovesModifyModal extends React.Component[][]) + _ModifyOfPart(grooves: GrooveInfo[][], inputEls: React.RefObject[][], needUpdateEnts: Set) { let i = 0; for (let gs of grooves) @@ -82,9 +83,9 @@ export class GroovesModifyModal extends React.Component + _ModifyOfCheck = (e: GrooveInfo[][], needUpdateEnts: Set) => { for (let grooves of e) for (let gs of grooves) @@ -111,9 +112,9 @@ export class GroovesModifyModal extends React.Component { - this._ModifyOfPart(this._GrooveInfo, this._InputEls); //先遍历执行 手动修改过的值 + let needUpdateEnts = new Set; //更新 + + this._ModifyOfPart(this._GrooveInfo, this._InputEls, needUpdateEnts); //先遍历执行 手动修改过的值 if (this._InputEl1.current.value || this._InputEl2.current.value || this._InputEl3.current.value || this._InputEl4.current.value) { - this._ModifyOfCheck(this._GrooveInfo); //再修改打勾部分(打勾为批量修改 打勾部分的凹槽值改成 底下批量修改输入框里面的值) + this._ModifyOfCheck(this._GrooveInfo, needUpdateEnts); //再修改打勾部分(打勾为批量修改 打勾部分的凹槽值改成 底下批量修改输入框里面的值) } + + for (let ent of needUpdateEnts) + { + if (ent instanceof Board) + ent.Update(); + else + ent.Update(UpdateDraw.None); + } + }, "修改属性"); app.Editor.ModalManage.Destory(); };