From 31604411ed7c880c53fc0ce0c11f4772e2dac171 Mon Sep 17 00:00:00 2001 From: Zoe Date: Tue, 24 Jul 2018 16:39:05 +0800 Subject: [PATCH] =?UTF-8?q?UI=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Geometry/SpaceParse/GeneralSpaceParse.ts | 6 ++-- src/UI/Components/Board/BehindBoardModal.tsx | 5 ++-- src/UI/Components/Board/BoardCommon.tsx | 2 +- src/UI/Components/Board/BoardModal.tsx | 22 ++++++++++---- src/UI/Components/Modal/Modal.less | 11 +++---- src/UI/Components/Modal/ModalsManage.tsx | 4 +-- src/UI/Store/BoardStore.ts | 30 +++++++++++++------- 7 files changed, 50 insertions(+), 30 deletions(-) diff --git a/src/Geometry/SpaceParse/GeneralSpaceParse.ts b/src/Geometry/SpaceParse/GeneralSpaceParse.ts index a245b9611..5fc44f038 100644 --- a/src/Geometry/SpaceParse/GeneralSpaceParse.ts +++ b/src/Geometry/SpaceParse/GeneralSpaceParse.ts @@ -8,7 +8,7 @@ import { SpaceParse } from "./SpaceParse"; /** *通用空间分析;类 - *TODO:暂不考虑板件不平行,板件旋转的情况 + *TODO:暂不考虑板件不平行 * @export * @class GeneralSpaceParse * @extends {SpaceParse} @@ -29,7 +29,7 @@ export class GeneralSpaceParse extends SpaceParse let boards = this.boardMap.get(key); if (boards.length > 1) { - this.parseBoards(boards, unionBoxes, spliteBoxes); + this.parseBoards(boards, unionBoxes); } else if (boards.length === 1) { @@ -147,7 +147,7 @@ export class GeneralSpaceParse extends SpaceParse return new Box3Ext(b1.min.add(vec1), b1.max.add(vec2)); } //分析多块板 - private parseBoards(boards: Board[], uniSpaces: Box3Ext[], spliteSPs: Box3Ext[]) + private parseBoards(boards: Board[], uniSpaces: Box3Ext[]) { let boxMap: Map = new Map(); diff --git a/src/UI/Components/Board/BehindBoardModal.tsx b/src/UI/Components/Board/BehindBoardModal.tsx index 98c2dc7f4..00fef340a 100644 --- a/src/UI/Components/Board/BehindBoardModal.tsx +++ b/src/UI/Components/Board/BehindBoardModal.tsx @@ -45,14 +45,15 @@ export class BehindBoardModal extends React.Component<{ store?: BehindBoardStore { let value = e.currentTarget.value as BehindHeightPositon store.m_BoardOption.boardPosition = value; + let height = store.m_BoardOption.height; if (value === BehindHeightPositon.ForTop) { this.moveDir = "上移"; - store.m_BoardOption.height = "0" + store.m_BoardOption.height = height === "H" ? "0" : height } else if (value === BehindHeightPositon.ForBottom) { - store.m_BoardOption.height = "0" + store.m_BoardOption.height = height === "H" ? "0" : height this.moveDir = "下移"; } else diff --git a/src/UI/Components/Board/BoardCommon.tsx b/src/UI/Components/Board/BoardCommon.tsx index b4ab1ada8..8f22e8f9e 100644 --- a/src/UI/Components/Board/BoardCommon.tsx +++ b/src/UI/Components/Board/BoardCommon.tsx @@ -35,7 +35,7 @@ export const SetBoardDataItem2 = observer(({ k, opt, title }: { k: string, title ); -export const SetBoardDataBlock = observer(({ pars, opt, className, isInline = false }: { pars: Map, className?: string, isInline: boolean, opt: any }) => +export const SetBoardDataBlock = observer(({ pars, opt, className, isInline = false }: { pars: Map, className?: string, isInline?: boolean, opt: any }) =>
{ Array.from(pars.keys()).map(k => diff --git a/src/UI/Components/Board/BoardModal.tsx b/src/UI/Components/Board/BoardModal.tsx index d04ccd680..651eebd65 100644 --- a/src/UI/Components/Board/BoardModal.tsx +++ b/src/UI/Components/Board/BoardModal.tsx @@ -8,6 +8,7 @@ import { LeftRightBoardModal } from './leftRightBoardModal'; import { TopBottomBoardModal } from './TopBottomBoardModal'; import { VerticalBoardModal } from './VerticalBoardModal'; import { BoardInfo, Notes } from './BoardCommon'; +import { KeyBoard } from '../../../Common/KeyEnum'; export enum BoardModalType { @@ -163,6 +164,19 @@ export class BoardModal extends React.Component + { + let store = this.props.store; + if (e.keyCode === KeyBoard.Enter) + { + store.OnOk(ModalState.Ok); + } + else if (e.keyCode === KeyBoard.Escape) + { + store.OnOk(ModalState.Cancel) + } + e.stopPropagation() + } render() { let store = this.props.store; @@ -170,7 +184,7 @@ export class BoardModal extends React.Component e.stopPropagation()} > + onKeyDown={e => this.handleKeydown(e)} >
- { - e.stopPropagation(); - } - }> + >
{ diff --git a/src/UI/Components/Modal/Modal.less b/src/UI/Components/Modal/Modal.less index 382e141f4..b99b99b10 100644 --- a/src/UI/Components/Modal/Modal.less +++ b/src/UI/Components/Modal/Modal.less @@ -142,21 +142,22 @@ justify-content: space-between; align-items: center; } +@selectWidth:10rem; #boardModal .bp3-dialog-footer .bp3-label{ margin: 0; } +#boardModal .bp3-dialog-footer .bp3-input{ + width: @selectWidth; +} #boardModal .bp3-dialog-footer .cf-select{ vertical-align: middle; display: inline-block; } -#boardModal .bp3-dialog-footer .cf-select>input{ - width: 60px; - height: 30px; -} #boardModal .input-select{ display: inline-block; - width: 8rem; + width: @selectWidth; } + #boardModal .input-select>input, #boardModal .input-select span { margin: 0; } diff --git a/src/UI/Components/Modal/ModalsManage.tsx b/src/UI/Components/Modal/ModalsManage.tsx index d0ff2d662..4e48e40ce 100644 --- a/src/UI/Components/Modal/ModalsManage.tsx +++ b/src/UI/Components/Modal/ModalsManage.tsx @@ -24,8 +24,8 @@ export class ModalManage this.m_ed = ed; this.m_ModalContainer = document.createElement("div"); this.m_ModalContainer.id = "modal"; - document.getElementById("Webgl").parentNode.appendChild(this.m_ModalContainer); + this.RegisterEvent(); } // 注册事件 @@ -37,6 +37,7 @@ export class ModalManage { this.Clear(); } + e.stopPropagation(); }) xaop.end(this.m_ed.m_MouseCtrl, this.m_ed.m_MouseCtrl.onDBMouseDown, () => { @@ -96,7 +97,6 @@ export class ModalManage let downHeight = document.getElementById("DownPanel").offsetHeight; let topHeight = 40; - dragArea.onmousedown = (e) => { //底部边界 diff --git a/src/UI/Store/BoardStore.ts b/src/UI/Store/BoardStore.ts index a04750c7f..b1ed62a7a 100644 --- a/src/UI/Store/BoardStore.ts +++ b/src/UI/Store/BoardStore.ts @@ -28,22 +28,28 @@ export class BoardStore m_ConfigPars = new Map( [["spaceSize", "空间"], ["count", "板数"], ["thickness", "板厚"]]); m_BoardOption = {}; - constructor() + //事件 + events = []; + registerEvent() { - xaop.end(app.m_Editor.m_KeyCtrl, app.m_Editor.m_KeyCtrl.OnKeyDown, (e: KeyboardEvent) => - { - if (e.keyCode === KeyBoard.Enter) - { - this.OnOk(ModalState.Ok); - } - else if (e.keyCode === KeyBoard.Escape) + this.events.push( + xaop.end(app.m_Editor.m_KeyCtrl, app.m_Editor.m_KeyCtrl.OnKeyDown, (e: KeyboardEvent) => { - this.OnOk(ModalState.Cancel); - } - }) + if (e.keyCode === KeyBoard.Enter || e.keyCode === KeyBoard.Space) + { + this.OnOk(ModalState.Ok); + } + else if (e.keyCode === KeyBoard.Escape) + { + this.OnOk(ModalState.Cancel); + } + e.stopPropagation(); + }) + ) } async GetBoardOption() { + this.registerEvent(); return new Promise((res) => { this.m_PromisRes = res; @@ -51,6 +57,8 @@ export class BoardStore } OnOk(state: number) { + this.events.forEach(f => f()) + this.events.length = 0; app.m_Editor.m_ModalManage.Clear(); if (this.m_PromisRes) this.m_PromisRes(state); }