添加保存配置功能

pull/93/head
Zoe 6 years ago
parent 652b874151
commit 7ddd0ced0c

18
package-lock.json generated

@ -4504,7 +4504,7 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"safer-buffer": "^2.1.0" "safer-buffer": "2.1.2"
} }
}, },
"ignore-walk": { "ignore-walk": {
@ -4609,9 +4609,9 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"debug": "^2.1.2", "debug": "2.6.9",
"iconv-lite": "^0.4.4", "iconv-lite": "0.4.21",
"sax": "^1.2.4" "sax": "1.2.4"
} }
}, },
"node-pre-gyp": { "node-pre-gyp": {
@ -4807,9 +4807,9 @@
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "1.1.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "1.0.0",
"strip-ansi": "^3.0.0" "strip-ansi": "3.0.1"
} }
}, },
"string_decoder": { "string_decoder": {
@ -4818,7 +4818,7 @@
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
"safe-buffer": "~5.1.0" "safe-buffer": "5.1.1"
} }
}, },
"strip-ansi": { "strip-ansi": {
@ -4826,7 +4826,7 @@
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "2.1.1"
} }
}, },
"strip-json-comments": { "strip-json-comments": {

@ -14,17 +14,17 @@ export class DrawBehindBoard extends DrawSingleBoard
let newBox = box.clone(); let newBox = box.clone();
//判断延伸 //判断延伸
let leftExt = parseFloat(opt.leftExt) / 100; let leftExt = parseFloat(opt.leftExt);
let rightExt = parseFloat(opt.rightExt) / 100; let rightExt = parseFloat(opt.rightExt);
let topExt = parseFloat(opt.topExt) / 100; let topExt = parseFloat(opt.topExt);
let bottomExt = parseFloat(opt.bottomExt) / 100; let bottomExt = parseFloat(opt.bottomExt);
newBox.max.add(new Vector3(leftExt + rightExt, 0, topExt + bottomExt)); newBox.max.add(new Vector3(leftExt + rightExt, 0, topExt + bottomExt));
newBox.translate(new Vector3(-leftExt, 0, -bottomExt)); newBox.translate(new Vector3(-leftExt, 0, -bottomExt));
//获取背板高度 //获取背板高度
let size = newBox.getSize(new Vector3()); let size = newBox.getSize(new Vector3());
let height = opt.height === "H" ? size.z : parseFloat(opt.height) / 100; let height = opt.height === "H" ? size.z : parseFloat(opt.height);
let moveDist = parseFloat(opt.moveDist) / 100; let moveDist = parseFloat(opt.moveDist);
//判断背板位置,更新背板高度 //判断背板位置,更新背板高度
switch (opt.boardPosition) switch (opt.boardPosition)
@ -43,8 +43,8 @@ export class DrawBehindBoard extends DrawSingleBoard
//相对位置 //相对位置
let relPos = opt.boardRelative; let relPos = opt.boardRelative;
//单层空间宽度 //单层空间宽度
let spaceSize = parseFloat(opt.spaceSize) / 100; let spaceSize = parseFloat(opt.spaceSize);
let thickness = parseFloat(opt.thickness) / 100; let thickness = parseFloat(opt.thickness);
let board = Board.CreateBoard(height, size.x, thickness, BoardType.Behind); let board = Board.CreateBoard(height, size.x, thickness, BoardType.Behind);

@ -12,14 +12,14 @@ export class DrawLayerBoard extends DrawSingleBoard
protected buildBoard(box: Box3Ext, opt: LayerBoardOption, ro: Matrix4) protected buildBoard(box: Box3Ext, opt: LayerBoardOption, ro: Matrix4)
{ {
let size = box.getSize(new Vector3()); let size = box.getSize(new Vector3());
let width = opt.isTotalLength ? size.y : parseFloat(opt.length) / 100; let width = opt.isTotalLength ? size.y : parseFloat(opt.length);
let count = parseInt(opt.count); let count = parseInt(opt.count);
let type = opt.boardRelative; let type = opt.boardRelative;
let spaceSize = parseFloat(opt.spaceSize) / 100; let spaceSize = parseFloat(opt.spaceSize);
let frontShrink = parseFloat(opt.frontShrink) / 100; let frontShrink = parseFloat(opt.frontShrink);
let leftShrink = parseFloat(opt.leftShrink) / 100; let leftShrink = parseFloat(opt.leftShrink);
let rightShrink = parseFloat(opt.rightShrink) / 100; let rightShrink = parseFloat(opt.rightShrink);
let thickness = parseFloat(opt.thickness) / 100; let thickness = parseFloat(opt.thickness);
let board = Board.CreateBoard(size.x - leftShrink - rightShrink, width, thickness, BoardType.Layer); let board = Board.CreateBoard(size.x - leftShrink - rightShrink, width, thickness, BoardType.Layer);

@ -21,11 +21,11 @@ export class DrawLeftRight implements Command
if (state === ModalState.Ok) if (state === ModalState.Ok)
{ {
let data = store.boardOption; let data = store.m_BoardOption;
let lenght = data.lenght ? parseFloat(data.lenght) / 100 : 0; let lenght = data.lenght ? parseFloat(data.lenght) : 0;
let width = data.width ? parseFloat(data.width) / 100 : 0; let width = data.width ? parseFloat(data.width) : 0;
let thickness = data.thickness ? parseFloat(data.thickness) / 100 : 0; let thickness = data.thickness ? parseFloat(data.thickness) : 0;
let spacing = data.spacing ? parseFloat(data.spacing) / 100 : 0; let spacing = data.spacing ? parseFloat(data.spacing) : 0;
let leftBarod = Board.CreateBoard(lenght, width, thickness, BoardType.Vertical) let leftBarod = Board.CreateBoard(lenght, width, thickness, BoardType.Vertical)
let rightBoard = Board.CreateBoard(lenght, width, thickness, BoardType.Vertical); let rightBoard = Board.CreateBoard(lenght, width, thickness, BoardType.Vertical);

@ -14,18 +14,18 @@ export class DrawVerticalBoard extends DrawSingleBoard
{ {
let size = box.getSize(new Vector3()); let size = box.getSize(new Vector3());
let frontShrink = parseFloat(opt.frontShrink) / 100; let frontShrink = parseFloat(opt.frontShrink);
let bottomShink = parseFloat(opt.bottomShrink) / 100; let bottomShink = parseFloat(opt.bottomShrink);
let width = opt.isTotalWidth ? size.y : parseFloat(opt.width) / 100; let width = opt.isTotalWidth ? size.y : parseFloat(opt.width);
let length = opt.isTotalLength ? size.z : parseFloat(opt.length) / 100; let length = opt.isTotalLength ? size.z : parseFloat(opt.length);
width -= frontShrink; width -= frontShrink;
length -= bottomShink; length -= bottomShink;
let count = parseInt(opt.count); let count = parseInt(opt.count);
let type = opt.posType; let type = opt.posType;
let spaceSize = parseFloat(opt.spaceSize) / 100; let spaceSize = parseFloat(opt.spaceSize);
let thickness = parseFloat(opt.thickness) / 100; let thickness = parseFloat(opt.thickness);
let board = Board.CreateBoard(length, width, thickness, BoardType.Vertical); let board = Board.CreateBoard(length, width, thickness, BoardType.Vertical);

@ -12,7 +12,8 @@ export enum StoreName
Texture = "Texture", Texture = "Texture",
Dwg = "Dwg", Dwg = "Dwg",
Data = "Data", Data = "Data",
FileId = "fileId" FileId = "fileId",
ConfigData = "configData"
} }
export class IndexedDbStore export class IndexedDbStore
@ -92,6 +93,11 @@ export class IndexedDbStore
(db: IDBDatabase) => (db: IDBDatabase) =>
{ {
db.createObjectStore(StoreName.FileId); db.createObjectStore(StoreName.FileId);
},
// ver5.
(db: IDBDatabase) =>
{
db.createObjectStore(StoreName.ConfigData);
} }
]; ];
} }

@ -1,9 +1,9 @@
import { inject, observer } from 'mobx-react'; import { inject, observer } from 'mobx-react';
import * as React from 'react'; import * as React from 'react';
import { Radio, RadioGroup, Checkbox } from '../../../../node_modules/@blueprintjs/core'; import { Classes, Radio, RadioGroup } from '../../../../node_modules/@blueprintjs/core';
import { BehindBoardStore, BehindHeightPositon, BoardRelativePositon } from '../../Store/BoardStore';
import { SetBoardDataItem, SetBoardDataItem2, BoardModel, SetBoardDataBlock, BoardConfigBlock } from './BoardCommon';
import { observable } from '../../../../node_modules/mobx'; import { observable } from '../../../../node_modules/mobx';
import { BehindBoardStore, BehindHeightPositon, BoardRelativePositon } from '../../Store/BoardStore';
import { BoardConfigBlock, BoardModel, SetBoardDataBlock, SetBoardDataItem, SetBoardDataItem2 } from './BoardCommon';
@inject("store") @inject("store")
@observer @observer
@ -28,11 +28,11 @@ export class BehindBoardModal extends React.Component<{ store?: BehindBoardStore
let store = this.props.store; let store = this.props.store;
return ( return (
<div> <div className="behind-board">
<div className="pt-card"> <div className="bp3-card">
<div className="flex"> <div className="flex">
<div className="process-data" style={{ width: "40%" }}> <div className="process-data" style={{ width: "40%" }}>
<h6></h6> <h6 className={Classes.HEADING}></h6>
<SetBoardDataBlock <SetBoardDataBlock
pars={this.m_ScaleParameter} pars={this.m_ScaleParameter}
opt={store.m_BoardOption} opt={store.m_BoardOption}
@ -40,7 +40,7 @@ export class BehindBoardModal extends React.Component<{ store?: BehindBoardStore
/> />
</div> </div>
<div style={{ width: "60%" }}> <div style={{ width: "60%" }}>
<h6></h6> <h6 className={Classes.HEADING}></h6>
<div className="boardSize center"> <div className="boardSize center">
<SetBoardDataItem2 title="上延伸" k="topExt" opt={store.m_BoardOption} /> <SetBoardDataItem2 title="上延伸" k="topExt" opt={store.m_BoardOption} />
<div> <div>
@ -53,7 +53,7 @@ export class BehindBoardModal extends React.Component<{ store?: BehindBoardStore
</div> </div>
</div> </div>
<div> <div>
<h6></h6> <h6 className={Classes.HEADING}></h6>
<RadioGroup <RadioGroup
className="boardRadio" className="boardRadio"
onChange={e => onChange={e =>

@ -1,6 +1,6 @@
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import * as React from 'react'; import * as React from 'react';
import { RadioGroup, Radio } from '../../../../node_modules/@blueprintjs/core'; import { RadioGroup, Radio, Classes } from '../../../../node_modules/@blueprintjs/core';
import { BoardRelativePositon } from '../../Store/BoardStore'; import { BoardRelativePositon } from '../../Store/BoardStore';
//设置板件数据组件 //设置板件数据组件
@ -10,7 +10,7 @@ export const SetBoardDataItem = observer(({ k, opt, title, isDisabled = false })
{title}: {title}:
</span> </span>
<input <input
className="pt-input" className="bp3-input"
value={opt[k]} value={opt[k]}
disabled={isDisabled} disabled={isDisabled}
onChange={e => onChange={e =>
@ -22,10 +22,10 @@ export const SetBoardDataItem = observer(({ k, opt, title, isDisabled = false })
); );
//设置板件数据组件 //设置板件数据组件
export const SetBoardDataItem2 = observer(({ k, opt, title }) => export const SetBoardDataItem2 = observer(({ k, opt, title }) =>
<label className="pt-label pt-inline"> <label className="bp3-label bp3-inline">
{title} {title}
<input <input
className="pt-input" className="bp3-input"
type="number" type="number"
value={opt[k]} value={opt[k]}
onChange={e => onChange={e =>
@ -65,7 +65,7 @@ export const BoardModel = () =>
export const BoardConfigBlock = observer(({ opt, pars, opt1 }: { opt: any, pars: Map<string, string>, opt1: Map<BoardRelativePositon, string> }) => export const BoardConfigBlock = observer(({ opt, pars, opt1 }: { opt: any, pars: Map<string, string>, opt1: Map<BoardRelativePositon, string> }) =>
<div> <div>
<div> <div>
<h6 ></h6> <h6 className={Classes.HEADING}></h6>
<RadioGroup <RadioGroup
className="boardRadio" className="boardRadio"
onChange={e => onChange={e =>

@ -1,16 +1,7 @@
import { Button, Dialog } from '@blueprintjs/core'; import { Button, InputGroup, Menu, MenuItem, Popover } from '@blueprintjs/core';
import * as React from 'react'; import * as React from 'react';
import { IndexedDbStore, StoreName } from '../../../IndexedDb/IndexedDbStore';
import import { BehindBoardStore, BoardStore, LayerBoardStore, ModalState, SideBoardStore, TopBottomBoardStore, VerticalBoardStore } from '../../Store/BoardStore';
{
BehindBoardStore,
BoardStore,
LayerBoardStore,
ModalState,
SideBoardStore,
TopBottomBoardStore,
VerticalBoardStore,
} from '../../Store/BoardStore';
import { BehindBoardModal } from './BehindBoardModal'; import { BehindBoardModal } from './BehindBoardModal';
import { LayerBoardModal } from './LayerBoardModal'; import { LayerBoardModal } from './LayerBoardModal';
import { LeftRightBoardModal } from './leftRightBoardModal'; import { LeftRightBoardModal } from './leftRightBoardModal';
@ -19,11 +10,11 @@ import { VerticalBoardModal } from './VerticalBoardModal';
export enum BoardModalType export enum BoardModalType
{ {
LR = "lr", LR = "lr",//左右侧板
TB = "tb", TB = "tb",//顶底板
Be = "be", Be = "be",//背板
Ly = "ly", Ly = "ly",//层板
Ve = "ve" Ve = "ve"//立板
} }
interface BoardModalProps interface BoardModalProps
@ -31,6 +22,17 @@ interface BoardModalProps
type: string, type: string,
store: BoardStore store: BoardStore
} }
interface BoardModalState
{
configName: string,
configs: Map<string, any>
}
interface configOption
{
boardData: any,
nailData?: any
}
/** /**
* *
@ -38,84 +40,213 @@ interface BoardModalProps
* @param {BoardModalProps} props * @param {BoardModalProps} props
* @returns * @returns
*/ */
export const BoardModal = (props: BoardModalProps) => export class BoardModal extends React.Component<BoardModalProps, BoardModalState>
{ {
let configs = new Map([["lr", []]]); allConfigs: Map<string, Map<string, configOption>[]> = new Map();
m_ModalMap: Map<BoardModalType, any>;
constructor(props: BoardModalProps)
{
super(props);
let store = this.props.store;
this.m_ModalMap = new Map([
[BoardModalType.LR, <LeftRightBoardModal store={store as SideBoardStore} />],
[BoardModalType.TB, <TopBottomBoardModal store={store as TopBottomBoardStore} />],
[BoardModalType.Be, <BehindBoardModal store={store as BehindBoardStore} />],
[BoardModalType.Ly, <LayerBoardModal store={store as LayerBoardStore} />],
[BoardModalType.Ve, <VerticalBoardModal store={store as VerticalBoardStore} />],
])
this.state = {
configName: "默认",
configs: new Map()
}
}
//保存配置
handleSaveConfig = async () =>
{
let name = this.state.configName;
let dbstore = await IndexedDbStore.CADStore();
let brStore = this.props.store;
let type = this.props.type;
let store = props.store; //新的配置
//模态框字典 let newConfig: configOption = {
const m_ModalMap = new Map([ boardData: brStore.m_BoardOption
[BoardModalType.LR, <LeftRightBoardModal store={store as SideBoardStore} />], }
[BoardModalType.TB, <TopBottomBoardModal store={store as TopBottomBoardStore} />], if (type === BoardModalType.Ly)
[BoardModalType.Be, <BehindBoardModal store={store as BehindBoardStore} />], {
[BoardModalType.Ly, <LayerBoardModal store={store as LayerBoardStore} />], newConfig.nailData = (brStore as LayerBoardStore).layerNailOption;
[BoardModalType.Ve, <VerticalBoardModal store={store as VerticalBoardStore} />], }
])
return (
<div
className="pt-dialog-container"
id="boardModal"
onKeyDown={(e) => e.stopPropagation()} >
<div className="pt-dialog">
<div
className="pt-dialog-header"
data-id="dragArea"
>
<span className="pt-icon-large pt-icon-column-layout"></span>
<h5 className="pt-dialog-header-title">{store.title}</h5>
<button
aria-label="Close" className="pt-dialog-close-button pt-icon-small-cross"
onClick={() => store.OnOk(ModalState.Cancel)}
></button>
</div>
<div
className="pt-dialog-body"
onKeyDown={e =>
{
e.stopPropagation();
}
}>
{
m_ModalMap.get(props.type as BoardModalType)
}
</div>
<div className="pt-dialog-footer">
<label className="pt-label pt-inline .modifier">
<div className="cf-select">
<label></label>
<input list="configs" />
<datalist id="configs">
<option value="Chrome" />>
<option value="Firefox" />>
<option value="Internet Explorer" />
<option value="Opera" />>
<option value="Safari" />>
<option value="Microsoft Edge" />>
</datalist>
</div>
<button type="button" className="pt-button pt-intent-success"></button>
<button type="button" className="pt-button pt-intent-danger"></button>
</label>
<div className="pt-dialog-footer-actions"> //获取数据库中对应板类型的配置
<Button let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption> || new Map();
className="LeftRightBtn pt-intent-success"
text="确定" let isContinue = true;
onClick={() => if (brDataMap.get(name))
{ {
store.OnOk(ModalState.Ok); isContinue = confirm("该名字存在,是否覆盖值");
}} /> }
if (isContinue)
{
// 配置添加到数据库
brDataMap.set(name, newConfig);
dbstore.Put(StoreName.ConfigData, type, brDataMap);
this.setState({ configs: brDataMap });
}
}
//删除配置
handleDeleteConfig = async () =>
{
let configs = this.state.configs;
let currentName = this.state.configName;
configs.delete(currentName);
this.setState({ configs });
let dbstore = await IndexedDbStore.CADStore();
let type = this.props.type;
let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption>;
brDataMap.delete(currentName);
dbstore.Put(StoreName.ConfigData, type, brDataMap);
<Button className="LeftRightBtn pt-intent-danger" text="取消" onClick={() => this.setState({ configName: "默认" });
await this.changeBoardOption("默认");
}
//更新配置
changeBoardOption = async (k: string) =>
{
this.setState({ configName: k });
let brOpt = this.props.store.m_BoardOption;
let dbstore = await IndexedDbStore.CADStore();
let type = this.props.type;
let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption>;
let opt = brDataMap.get(k);
if (brDataMap && opt)
{
Object.assign(brOpt, opt.boardData);
if (type === BoardModalType.Ly)
{
let nailData = (this.props.store as LayerBoardStore).layerNailOption;
Object.assign(nailData, opt.nailData);
}
}
}
async componentWillMount()
{
let dbstore = await IndexedDbStore.CADStore();
let type = this.props.type;
let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption> || new Map();
this.setState({ configs: brDataMap });
console.log(this.state.configs.size);
}
render()
{
let store = this.props.store;
return (
<div
className="bp3-dialog-container"
id="boardModal"
onKeyDown={(e) => e.stopPropagation()} >
<div className="bp3-dialog">
<div
className="bp3-dialog-header"
data-id="dragArea"
>
<span className="bp3-icon-large bp3-icon-inbox"></span>
<h4 className="bp3-heading">{store.title}</h4>
<button
aria-label="Close" className="bp3-dialog-close-button bp3-icon-small-cross"
onClick={() => store.OnOk(ModalState.Cancel)}
></button>
</div>
<div
className="bp3-dialog-body"
onKeyDown={e =>
{
e.stopPropagation();
}
}>
{ {
store.OnOk(ModalState.Cancel); this.m_ModalMap.get(this.props.type as BoardModalType)
}} /> }
</div>
<div className="bp3-dialog-footer">
<label className="bp3-label pt-inline .modifier">
<div className="cf-select">
<label></label>
<InputGroup
className="input-select"
value={this.state.configName}
onChange={e =>
{
this.setState({ configName: e.target.value })
}}
rightElement={
< Popover
autoFocus={true}
modifiers={{
arrow: { enabled: false },
flip: { enabled: true },
keepTogether: { enabled: true },
preventOverflow: { enabled: true, boundariesElement: "scrollParent" }
}}
// position="bottom"
content={
<Menu>
{
Array.from(this.state.configs.keys())
.map((k, i) =>
<MenuItem
onClick={e => this.changeBoardOption(e.currentTarget.text)}
text={k}
key={i} />)
}
</Menu>}
target={
<Button
minimal={true}
rightIcon="caret-down"
disabled={this.state.configs.size === 0}>
</Button>} />}
/>
</div>
<button
type="button"
className="bp3-button bp3-intent-success"
onClick={async () =>
{
await this.handleSaveConfig();
}}
></button>
<button
type="button"
className="bp3-button bp3-intent-danger"
onClick={async () =>
{
await this.handleDeleteConfig();
}}
></button>
</label>
<div className="bp3-dialog-footer-actions">
<Button
className="LeftRightBtn bp3-intent-success"
text="确定"
onClick={() =>
{
store.OnOk(ModalState.Ok);
}} />
<Button className="LeftRightBtn bp3-intent-danger" text="取消" onClick={() =>
{
store.OnOk(ModalState.Cancel);
}} />
</div>
</div> </div>
</div> </div>
</div> </div>
</div> );
); }
} }

@ -1,4 +1,4 @@
import { Checkbox } from '@blueprintjs/core'; import { Checkbox, Classes } from '@blueprintjs/core';
import { inject, observer } from 'mobx-react'; import { inject, observer } from 'mobx-react';
import * as React from 'react'; import * as React from 'react';
import { BoardRelativePositon, LayerBoardStore } from '../../Store/BoardStore'; import { BoardRelativePositon, LayerBoardStore } from '../../Store/BoardStore';
@ -28,7 +28,7 @@ export const LayerBoardModal =
dir="auto" /> dir="auto" />
</label> </label>
<div> <div>
<h6></h6> <h6 className={Classes.HEADING}></h6>
<div className="flex" style={{ alignItems: "center" }}> <div className="flex" style={{ alignItems: "center" }}>
<div className="flexWrap"> <div className="flexWrap">
{ {
@ -70,7 +70,7 @@ export const LayerBoardModal =
</div> </div>
</div> </div>
<div> <div>
<h6></h6> <h6 className={Classes.HEADING}></h6>
<div> <div>
<Checkbox <Checkbox
checked={nailOpt.isDraw} checked={nailOpt.isDraw}

@ -1,4 +1,4 @@
import { Checkbox, Radio, RadioGroup } from '@blueprintjs/core'; import { Checkbox, Radio, RadioGroup, Classes } from '@blueprintjs/core';
import { inject, observer } from 'mobx-react'; import { inject, observer } from 'mobx-react';
import * as React from 'react'; import * as React from 'react';
import { VerticalBoardStore, BoardRelativePositon } from '../../Store/BoardStore'; import { VerticalBoardStore, BoardRelativePositon } from '../../Store/BoardStore';
@ -75,7 +75,7 @@ export const VerticalBoardModal =
return ( return (
<div> <div>
<div> <div>
<h6></h6> <h6 className={Classes.HEADING}></h6 >
<div className="flex" style={{ alignItems: "center" }}> <div className="flex" style={{ alignItems: "center" }}>
<div className="flexWrap"> <div className="flexWrap">
{ {

@ -9,6 +9,6 @@ export const LeftRightBoardModal =
(observer((props: { store?: SideBoardStore }) => ( (observer((props: { store?: SideBoardStore }) => (
<SetBoardDataBlock <SetBoardDataBlock
pars={props.store.m_Parameter} pars={props.store.m_Parameter}
opt={props.store.boardOption} opt={props.store.m_BoardOption}
/> />
))) )))

@ -1,21 +1,21 @@
#modal{ #modal{
position: fixed; position: fixed;
} }
#modal .pt-dialog{ #modal .bp3-dialog{
width: auto; width: auto;
} }
#lightModal h5{ #lightModal h5{
color: #CCCCCC; color: #CCCCCC;
} }
#modal .bp3-dialog{ #lightModal .bp3-dialog{
background: #444444; background: #444444;
color: #CCCCCC; color: #CCCCCC;
font-size: 16px; font-size: 16px;
} }
#modal .bp3-dialog-header{ #lightModal .bp3-dialog-header{
background: #394b59 background: #394b59
} }
#modal .bp3-dialog>.bp3-dialog-body>div{ #modal .bp3-dialog>.behind-board>div{
margin:10px 0; margin:10px 0;
text-align: right; text-align: right;
} }
@ -57,7 +57,7 @@
width: 50%; width: 50%;
line-height: 15px; line-height: 15px;
} }
#boardModal .flexWrap>div .pt-input{ #boardModal .flexWrap>div .bp3-input{
padding:0 0 0 5px; padding:0 0 0 5px;
width: 60px; width: 60px;
} }
@ -69,15 +69,15 @@
vertical-align: middle; vertical-align: middle;
margin: 10px; margin: 10px;
} }
#boardModal .boardSize .pt-label{ #boardModal .boardSize .bp3-label{
display: inline-block; display: inline-block;
margin: 0 5px; margin: 0 5px;
} }
#boardModal .boardSize .pt-inline{ #boardModal .boardSize .bp3-inline{
line-height: 15px; line-height: 15px;
} }
#boardModal .boardSize .pt-label>.pt-input{ #boardModal .boardSize .bp3-label>.bp3-input{
display: block; display: block;
padding: 0; padding: 0;
width: 50px; width: 50px;
@ -90,11 +90,11 @@
#boardModal .process-data .br-set>input{ #boardModal .process-data .br-set>input{
display: block; display: block;
} }
#boardModal .pt-dialog{ #boardModal .bp3-dialog{
padding: 0; padding: 0;
} }
#boardModal .pt-dialog-footer{ #boardModal .bp3-dialog-footer{
box-shadow: 0 0 0 1px rgba(16, 22, 26, 0.15); box-shadow: 0 0 0 1px rgba(16, 22, 26, 0.15);
background: #ffffff; background: #ffffff;
margin: 0; margin: 0;
@ -104,16 +104,21 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
#boardModal .pt-dialog-footer .pt-label{ #boardModal .bp3-dialog-footer .bp3-label{
margin: 0; margin: 0;
} }
#boardModal .pt-dialog-footer .cf-select{ #boardModal .bp3-dialog-footer .cf-select{
vertical-align: middle; vertical-align: middle;
display: inline-block; display: inline-block;
} }
#boardModal .pt-dialog-footer .cf-select>input{ #boardModal .bp3-dialog-footer .cf-select>input{
width: 60px; width: 60px;
height: 30px; height: 30px;
} }
#boardModal .input-select{
display: inline-block;
width: 8rem;
}
#boardModal .input-select>input #boardModal .input-select span {
margin: 0;
}

@ -27,6 +27,7 @@ export class BoardStore
title: string; title: string;
m_ConfigPars = new Map( m_ConfigPars = new Map(
[["spaceSize", "空间"], ["count", "板数"], ["thickness", "板厚"]]); [["spaceSize", "空间"], ["count", "板数"], ["thickness", "板厚"]]);
m_BoardOption = {};
constructor() constructor()
{ {
xaop.end(app.m_Editor.m_KeyCtrl, app.m_Editor.m_KeyCtrl.OnKeyDown, (e: KeyboardEvent) => xaop.end(app.m_Editor.m_KeyCtrl, app.m_Editor.m_KeyCtrl.OnKeyDown, (e: KeyboardEvent) =>
@ -58,7 +59,7 @@ export class BoardStore
export class SideBoardStore extends BoardStore export class SideBoardStore extends BoardStore
{ {
//板数据 //板数据
@observable boardOption: SideBoardOption = { @observable m_BoardOption: SideBoardOption = {
lenght: "1200", lenght: "1200",
width: "600", width: "600",
thickness: "18", thickness: "18",
@ -77,24 +78,24 @@ export class SideBoardStore extends BoardStore
export class TopBottomBoardStore extends BoardStore export class TopBottomBoardStore extends BoardStore
{ {
@observable topBoardOption = { @observable topBoardOption = {
thickness: "0.18", thickness: "18",
forwardDistance: "0", forwardDistance: "0",
behindDistance: "-0.18", behindDistance: "-18",
isWrapSide: false, isWrapSide: false,
leftExt: "0", leftExt: "0",
rightExt: "0", rightExt: "0",
offset: "0", offset: "0",
footThickness: "0.18" footThickness: "18"
}; };
@observable bottomBoardOption = { @observable bottomBoardOption = {
thickness: "0.18", thickness: "18",
forwardDistance: "0", forwardDistance: "0",
behindDistance: "-0.18", behindDistance: "-18",
isWrapSide: false, isWrapSide: false,
leftExt: "0", leftExt: "0",
rightExt: "0", rightExt: "0",
offset: "0.8", offset: "80",
footThickness: "0.18" footThickness: "18"
}; };
m_Parameter = new Map([ m_Parameter = new Map([
["thickness", "板厚"], ["forwardDistance", "前距"], ["behindDistance", "后距"], ["thickness", "板厚"], ["forwardDistance", "前距"], ["behindDistance", "后距"],

Loading…
Cancel
Save