From 53b20fd991ac14502efbf107329376fc1ed749f0 Mon Sep 17 00:00:00 2001 From: ChenX Date: Thu, 8 Nov 2018 15:55:02 +0800 Subject: [PATCH] =?UTF-8?q?!188=20=E4=BF=9D=E5=AD=98=E9=80=A0=E5=9E=8B?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20Merge=20pull=20request=20!188=20from=20Zoe?= =?UTF-8?q?LeeFZ/modeConfig=5Fpr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/UI/Components/Board/UserConfig.tsx | 51 +++++++++++-------- src/UI/Components/Modal/ModalStyle/Modal.less | 4 ++ src/UI/Components/RightPanel/Modeling.less | 1 + .../RightPanel/ModelingComponent.tsx | 3 ++ src/UI/Store/BoardStore.ts | 6 +-- src/UI/Store/RightPanelStore.ts | 20 +++++++- 6 files changed, 59 insertions(+), 26 deletions(-) diff --git a/src/UI/Components/Board/UserConfig.tsx b/src/UI/Components/Board/UserConfig.tsx index 18ed9984e..ee5f2cf8a 100644 --- a/src/UI/Components/Board/UserConfig.tsx +++ b/src/UI/Components/Board/UserConfig.tsx @@ -1,17 +1,17 @@ -import { Button, InputGroup, Menu, MenuItem, Popover } from '@blueprintjs/core'; +import { Button, InputGroup, Intent, Menu, MenuItem, Popover, Position } from '@blueprintjs/core'; import { observer } from 'mobx-react'; import * as React from 'react'; import { arrayLast } from '../../../Common/ArrayExt'; import { IndexedDbStore, StoreName } from '../../../IndexedDb/IndexedDbStore'; -import { BoardOption, BoardProcessOption, LayerNailOption, TBBoardOption } from '../../Store/BoardInterface'; +import { BoardProcessOption, LayerNailOption, TBBoardOption } from '../../Store/BoardInterface'; import { AppToaster } from '../Toaster'; -import { BoardModalProps } from './BoardModal'; +import { BoardModalProps, BoardModalType } from './BoardModal'; import { DrillingOption } from './drillInterface'; //保存的配置 export interface IConfigOption { - boardData?: BoardOption; + option?: Object; nailData?: LayerNailOption; topBoardData?: TBBoardOption; bottomBoardData?: TBBoardOption; @@ -25,6 +25,12 @@ interface UserConfigState configs: Map, } +interface IConfigPRops +{ + type: BoardModalType; + store: { SaveConfig: Function, UpdateOption: Function } +} + /** *用户配置 * @@ -33,7 +39,7 @@ interface UserConfigState * @extends {React.Component} */ @observer -export class UserConfig extends React.Component{ +export class UserConfig extends React.Component{ constructor(props) { @@ -144,7 +150,7 @@ export class UserConfig extends React.Component + ) } diff --git a/src/UI/Components/Modal/ModalStyle/Modal.less b/src/UI/Components/Modal/ModalStyle/Modal.less index 70af459a5..a911914b9 100644 --- a/src/UI/Components/Modal/ModalStyle/Modal.less +++ b/src/UI/Components/Modal/ModalStyle/Modal.less @@ -119,6 +119,10 @@ top:1px; } +.input-select{ + width: 40%; +} + @import (less) "LightModal.less"; @import (less) "BoardModal.less"; @import (less) "ArrayModal.less"; diff --git a/src/UI/Components/RightPanel/Modeling.less b/src/UI/Components/RightPanel/Modeling.less index 63e3c1db7..e58a8a307 100644 --- a/src/UI/Components/RightPanel/Modeling.less +++ b/src/UI/Components/RightPanel/Modeling.less @@ -7,6 +7,7 @@ height: 100%; } .modeling{ + margin-bottom: 2rem; width: 100%; &>li:first-child>label{ text-align: center; diff --git a/src/UI/Components/RightPanel/ModelingComponent.tsx b/src/UI/Components/RightPanel/ModelingComponent.tsx index c3b28902f..c5d1a07ef 100644 --- a/src/UI/Components/RightPanel/ModelingComponent.tsx +++ b/src/UI/Components/RightPanel/ModelingComponent.tsx @@ -4,6 +4,8 @@ import * as React from 'react'; import { ColorMaterial } from '../../../Common/ColorPalette'; import { PXLFaceType } from '../../Store/BoardInterface'; import { RightPanelStore } from '../../Store/RightPanelStore'; +import { UserConfig } from '../Board/UserConfig'; +import { BoardModalType } from '../Board/BoardModal'; export interface IModelingItem { @@ -101,6 +103,7 @@ export class ModelingComponent extends React.Component<{ store?: RightPanelStore }) } + ) } diff --git a/src/UI/Store/BoardStore.ts b/src/UI/Store/BoardStore.ts index 1bb4d5c06..957c785cd 100644 --- a/src/UI/Store/BoardStore.ts +++ b/src/UI/Store/BoardStore.ts @@ -75,15 +75,15 @@ export class BoardStore { //新的配置 let newConfig: IConfigOption = {}; - newConfig.boardData = toJS(this.m_Option); + newConfig.option = toJS(this.m_Option); newConfig.processData = toJS(this.m_BoardProcessOption); return newConfig; } UpdateOption(cof: IConfigOption) { - Object.assign(this.m_Option, cof.boardData); + Object.assign(this.m_Option, cof.option); if (this.m_UiOption) - Object.assign(this.m_UiOption, DataAdapter.ConvertUIData(cof.boardData)); + Object.assign(this.m_UiOption, DataAdapter.ConvertUIData(cof.option)); Object.assign(this.m_BoardProcessOption, cof.processData); } HasInvailValue() diff --git a/src/UI/Store/RightPanelStore.ts b/src/UI/Store/RightPanelStore.ts index da38a22b5..e85792620 100644 --- a/src/UI/Store/RightPanelStore.ts +++ b/src/UI/Store/RightPanelStore.ts @@ -1,7 +1,8 @@ -import { observable, computed } from "mobx"; +import { observable, computed, toJS } from "mobx"; import { IModelingItem } from "../Components/RightPanel/ModelingComponent"; import { PXLFaceType } from "./BoardInterface"; import { IModeling } from "../../DatabaseServices/Board"; +import { IConfigOption } from "../Components/Board/UserConfig"; export class RightPanelStore { @@ -41,4 +42,21 @@ export class RightPanelStore this.modelingItems[index].dir = data.dir; this.UIModelingItems[index]["dir"] = data.dir; } + SaveConfig() + { + //新的配置 + let newConfig: IConfigOption = {}; + newConfig.option = toJS(this.modelingItems); + return newConfig; + } + UpdateOption(cof: IConfigOption) + { + observable(this.modelingItems).replace(cof.option as IModelingItem[]); + for (let i = 0; i < this.modelingItems.length; i++) + { + this.UIModelingItems[i].height = this.modelingItems[i].height.toString(); + this.UIModelingItems[i].rad = this.modelingItems[i].rad.toString(); + this.UIModelingItems[i].length = this.modelingItems[i].length.toString(); + } + } }