|
|
@ -3,17 +3,18 @@ import { observable } from "mobx";
|
|
|
|
import { observer } from "mobx-react";
|
|
|
|
import { observer } from "mobx-react";
|
|
|
|
import React from "react";
|
|
|
|
import React from "react";
|
|
|
|
import { app } from "../../ApplicationServices/Application";
|
|
|
|
import { app } from "../../ApplicationServices/Application";
|
|
|
|
import { safeEval } from "../../Common/eval";
|
|
|
|
|
|
|
|
import { KeyBoard } from "../../Common/KeyEnum";
|
|
|
|
import { KeyBoard } from "../../Common/KeyEnum";
|
|
|
|
import { UpdateDraw } from "../../Common/Status";
|
|
|
|
import { UpdateDraw } from "../../Common/Status";
|
|
|
|
|
|
|
|
import { safeEval } from "../../Common/eval";
|
|
|
|
import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
|
|
|
|
import { Entity } from "../../DatabaseServices/Entity/Entity";
|
|
|
|
import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude";
|
|
|
|
import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude";
|
|
|
|
import { CommandWrap } from "../../Editor/CommandMachine";
|
|
|
|
import { CommandWrap } from "../../Editor/CommandMachine";
|
|
|
|
import { ICommonOptionProps } from "../../UI/Components/Board/CommonBoardOption";
|
|
|
|
import { ICommonOptionProps } from "../../UI/Components/Board/CommonBoardOption";
|
|
|
|
import { CommonModal } from "../../UI/Components/Modal/ModalContainer";
|
|
|
|
import { CommonModal } from "../../UI/Components/Modal/ModalContainer";
|
|
|
|
import "./groove.less";
|
|
|
|
|
|
|
|
import { GrooveInfo } from "./GrooveInfo";
|
|
|
|
import { GrooveInfo } from "./GrooveInfo";
|
|
|
|
import { GroovesModal } from "./GroovesModal";
|
|
|
|
import { GroovesModal } from "./GroovesModal";
|
|
|
|
|
|
|
|
import "./groove.less";
|
|
|
|
|
|
|
|
|
|
|
|
interface BoardProps
|
|
|
|
interface BoardProps
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -60,7 +61,7 @@ export class GroovesModifyModal extends React.Component<BoardProps, ICommonOptio
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//各部分 手动修改
|
|
|
|
//各部分 手动修改
|
|
|
|
_ModifyOfPart(grooves: GrooveInfo[][], inputEls: React.RefObject<any>[][])
|
|
|
|
_ModifyOfPart(grooves: GrooveInfo[][], inputEls: React.RefObject<any>[][], needUpdateEnts: Set<Entity>)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let i = 0;
|
|
|
|
let i = 0;
|
|
|
|
for (let gs of grooves)
|
|
|
|
for (let gs of grooves)
|
|
|
@ -82,9 +83,9 @@ export class GroovesModifyModal extends React.Component<BoardProps, ICommonOptio
|
|
|
|
g.groove.KnifeRadius = parseFloat(inputEls[i][3].current.value);
|
|
|
|
g.groove.KnifeRadius = parseFloat(inputEls[i][3].current.value);
|
|
|
|
|
|
|
|
|
|
|
|
if (g.isRelation)//如果是关联切割 更新另一个实体时也会更新我们自身(通过反应器)
|
|
|
|
if (g.isRelation)//如果是关联切割 更新另一个实体时也会更新我们自身(通过反应器)
|
|
|
|
g.groove.Update(UpdateDraw.None);
|
|
|
|
needUpdateEnts.add(g.groove); //g.groove.Update(UpdateDraw.None);
|
|
|
|
else
|
|
|
|
else
|
|
|
|
g.parentBoard.Update();
|
|
|
|
needUpdateEnts.add(g.parentBoard); //g.parentBoard.Update();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -92,7 +93,7 @@ export class GroovesModifyModal extends React.Component<BoardProps, ICommonOptio
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//打钩的部分参与批量修改
|
|
|
|
//打钩的部分参与批量修改
|
|
|
|
_ModifyOfCheck = (e: GrooveInfo[][]) =>
|
|
|
|
_ModifyOfCheck = (e: GrooveInfo[][], needUpdateEnts: Set<Entity>) =>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for (let grooves of e)
|
|
|
|
for (let grooves of e)
|
|
|
|
for (let gs of grooves)
|
|
|
|
for (let gs of grooves)
|
|
|
@ -111,9 +112,9 @@ export class GroovesModifyModal extends React.Component<BoardProps, ICommonOptio
|
|
|
|
gs.groove.KnifeRadius = parseFloat(this._InputEl4.current.value);
|
|
|
|
gs.groove.KnifeRadius = parseFloat(this._InputEl4.current.value);
|
|
|
|
|
|
|
|
|
|
|
|
if (gs.isRelation)//如果是关联切割 更新另一个实体时也会更新我们自身(通过反应器)
|
|
|
|
if (gs.isRelation)//如果是关联切割 更新另一个实体时也会更新我们自身(通过反应器)
|
|
|
|
gs.groove.Update(UpdateDraw.None);
|
|
|
|
needUpdateEnts.add(gs.groove); //gs.groove.Update(UpdateDraw.None);
|
|
|
|
else
|
|
|
|
else
|
|
|
|
gs.parentBoard.Update();
|
|
|
|
needUpdateEnts.add(gs.parentBoard); //gs.parentBoard.Update();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -121,12 +122,23 @@ export class GroovesModifyModal extends React.Component<BoardProps, ICommonOptio
|
|
|
|
{
|
|
|
|
{
|
|
|
|
await CommandWrap(() =>
|
|
|
|
await CommandWrap(() =>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this._ModifyOfPart(this._GrooveInfo, this._InputEls); //先遍历执行 手动修改过的值
|
|
|
|
let needUpdateEnts = new Set<Entity>; //更新
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this._ModifyOfPart(this._GrooveInfo, this._InputEls, needUpdateEnts); //先遍历执行 手动修改过的值
|
|
|
|
|
|
|
|
|
|
|
|
if (this._InputEl1.current.value || this._InputEl2.current.value || this._InputEl3.current.value || this._InputEl4.current.value)
|
|
|
|
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();
|
|
|
|
app.Editor.ModalManage.Destory();
|
|
|
|
};
|
|
|
|
};
|
|
|
|