|
|
|
@ -1,12 +1,13 @@
|
|
|
|
|
import { Button, Checkbox, Classes, HTMLSelect, Intent, Radio, RadioGroup } from '@blueprintjs/core';
|
|
|
|
|
import { Button, Checkbox, Classes, HTMLSelect, Intent, Label, Radio, RadioGroup } from '@blueprintjs/core';
|
|
|
|
|
import { observer } from 'mobx-react';
|
|
|
|
|
import * as React from 'react';
|
|
|
|
|
import { app } from '../../../ApplicationServices/Application';
|
|
|
|
|
import { EBoardKeyList } from '../../../Common/BoardKeyList';
|
|
|
|
|
import { CheckObjectType } from '../../../Common/CheckoutVaildValue';
|
|
|
|
|
import { safeEval } from '../../../Common/eval';
|
|
|
|
|
import { GetEntity } from '../../../Common/Utils';
|
|
|
|
|
import { FixedNotZero, GetEntity } from '../../../Common/Utils';
|
|
|
|
|
import { Board } from '../../../DatabaseServices/Entity/Board';
|
|
|
|
|
import { PromptStatus } from '../../../Editor/PromptResult';
|
|
|
|
|
import { TempEditor } from '../../../Editor/TempEditor';
|
|
|
|
|
import { userConfig } from '../../../Editor/UserConfig';
|
|
|
|
|
import { AnyObject, BoardConfigOption, BoardProcessOption, BoardType, BrRelativePos, DrillType, IBaseOption, IDrawBoardAutoCutOption, IHightDrillOption, IUiOption, TBBoardOption } from '../../Store/BoardInterface';
|
|
|
|
@ -51,6 +52,7 @@ interface ISetBlockOption
|
|
|
|
|
}
|
|
|
|
|
interface TBProps
|
|
|
|
|
{
|
|
|
|
|
par: string[][];
|
|
|
|
|
pars: string[][];
|
|
|
|
|
option: TBBoardOption;
|
|
|
|
|
uiOption: Object;
|
|
|
|
@ -114,6 +116,22 @@ export const SetBoardDataBlock = observer(
|
|
|
|
|
export const TBBoardDataBlock = observer(
|
|
|
|
|
(props: TBProps) =>
|
|
|
|
|
{
|
|
|
|
|
let getSizeValue = async (optKey: string) =>
|
|
|
|
|
{
|
|
|
|
|
app.Editor.ModalManage.ToggleShow();
|
|
|
|
|
app.Editor.MaskManage.Clear();
|
|
|
|
|
let distRes = await app.Editor.GetDistance({
|
|
|
|
|
Msg: "点取距离或者输入"
|
|
|
|
|
});
|
|
|
|
|
if (distRes.Status === PromptStatus.OK)
|
|
|
|
|
{
|
|
|
|
|
let dist = distRes.Distance;
|
|
|
|
|
props.option[optKey] = parseFloat(dist.toFixed(2));
|
|
|
|
|
(props.uiOption as TBBoardOption)[optKey] = parseFloat(dist.toFixed(2));
|
|
|
|
|
}
|
|
|
|
|
app.Editor.ModalManage.ToggleShow();
|
|
|
|
|
app.Editor.MaskManage.ShowMask();
|
|
|
|
|
};
|
|
|
|
|
return (
|
|
|
|
|
<div className="pt-card pt-elevation-0 tb-br">
|
|
|
|
|
<Checkbox
|
|
|
|
@ -135,13 +153,39 @@ export const TBBoardDataBlock = observer(
|
|
|
|
|
<Radio className="widthHalf" label={props.istop ? "侧包顶" : "侧包底"} value="0" />
|
|
|
|
|
<Radio className="widthHalf" label={props.istop ? "顶包侧" : "底包侧"} value="1" />
|
|
|
|
|
</RadioGroup>
|
|
|
|
|
<div className="flexWrap">
|
|
|
|
|
<div >
|
|
|
|
|
<>
|
|
|
|
|
<div className="pick-br">
|
|
|
|
|
{
|
|
|
|
|
props.pars.map(([k, v]) =>
|
|
|
|
|
props.par.map(([k, v]) =>
|
|
|
|
|
{
|
|
|
|
|
if (k === "offset" && !props.istop)
|
|
|
|
|
v = "下留";
|
|
|
|
|
return (
|
|
|
|
|
<Label >
|
|
|
|
|
<SetBoardDataItem
|
|
|
|
|
type={CheckObjectType.BR}
|
|
|
|
|
optKey={k}
|
|
|
|
|
option={props.option}
|
|
|
|
|
uiOption={props.uiOption}
|
|
|
|
|
title={v}
|
|
|
|
|
isDisabled={k === "offset" && props.option.isWrapSide}
|
|
|
|
|
/>
|
|
|
|
|
<Button
|
|
|
|
|
icon="arrow-right"
|
|
|
|
|
onClick={() => getSizeValue(k)}
|
|
|
|
|
disabled={k === "offset" && props.option.isWrapSide}
|
|
|
|
|
/>
|
|
|
|
|
</Label>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="flexWrap">
|
|
|
|
|
{
|
|
|
|
|
props.pars.map(([k, v]) =>
|
|
|
|
|
{
|
|
|
|
|
return (
|
|
|
|
|
|
|
|
|
|
<SetBoardDataItem
|
|
|
|
|
type={CheckObjectType.BR}
|
|
|
|
|
title={v}
|
|
|
|
@ -149,13 +193,12 @@ export const TBBoardDataBlock = observer(
|
|
|
|
|
key={k}
|
|
|
|
|
option={props.option}
|
|
|
|
|
uiOption={props.uiOption}
|
|
|
|
|
isDisabled={
|
|
|
|
|
((k === "rightExt" || k === "leftExt") && !props.option.isWrapSide) ||
|
|
|
|
|
(k === "offset" && props.option.isWrapSide)
|
|
|
|
|
} />
|
|
|
|
|
isDisabled={(k === "rightExt" || k === "leftExt") && !props.option.isWrapSide}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})}
|
|
|
|
|
</div>
|
|
|
|
|
</>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
@ -181,8 +224,7 @@ interface BroadPosProps
|
|
|
|
|
|
|
|
|
|
@observer
|
|
|
|
|
export class BoardRePosBlock extends React.Component<BroadPosProps> {
|
|
|
|
|
private pars =
|
|
|
|
|
[["calcSpaceSize", "空间"], ["count", "板数"], ["thickness", "板厚"]];
|
|
|
|
|
private pars = [["calcSpaceSize", "空间"], ["thickness", "板厚"]];
|
|
|
|
|
private spaceSizeInputEl: HTMLInputElement;
|
|
|
|
|
private countInputEl: HTMLInputElement;
|
|
|
|
|
private updateFocus = (k: string) =>
|
|
|
|
@ -224,6 +266,34 @@ export class BoardRePosBlock extends React.Component<BroadPosProps> {
|
|
|
|
|
}
|
|
|
|
|
}, 0);
|
|
|
|
|
};
|
|
|
|
|
private getSizeValue = async (optKey: string) =>
|
|
|
|
|
{
|
|
|
|
|
app.Editor.ModalManage.ToggleShow();
|
|
|
|
|
app.Editor.MaskManage.Clear();
|
|
|
|
|
let distRes = await app.Editor.GetDistance({
|
|
|
|
|
Msg: "点取距离或者输入"
|
|
|
|
|
});
|
|
|
|
|
if (distRes.Status === PromptStatus.OK)
|
|
|
|
|
{
|
|
|
|
|
let option = this.props.option;
|
|
|
|
|
let uiOption = this.props.uiOption;
|
|
|
|
|
let dist: number;
|
|
|
|
|
if (optKey === "calcSpaceSize")
|
|
|
|
|
{
|
|
|
|
|
dist = distRes.Distance;
|
|
|
|
|
option.calcSpaceSize = dist.toFixed(2);
|
|
|
|
|
uiOption.calcSpaceSize = FixedNotZero(dist, 2);
|
|
|
|
|
}
|
|
|
|
|
else if (optKey === "thickness")
|
|
|
|
|
{
|
|
|
|
|
dist = Math.abs(distRes.Distance);
|
|
|
|
|
option.thickness = parseFloat(dist.toFixed(2));
|
|
|
|
|
uiOption.thickness = option.thickness.toString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
app.Editor.ModalManage.ToggleShow();
|
|
|
|
|
app.Editor.MaskManage.ShowMask();
|
|
|
|
|
};
|
|
|
|
|
componentDidMount()
|
|
|
|
|
{
|
|
|
|
|
setTimeout(() =>
|
|
|
|
@ -249,16 +319,16 @@ export class BoardRePosBlock extends React.Component<BroadPosProps> {
|
|
|
|
|
}
|
|
|
|
|
<Radio label="等分" value={BrRelativePos.Div} />
|
|
|
|
|
</RadioGroup>
|
|
|
|
|
<div className="flexWrap">
|
|
|
|
|
<div >
|
|
|
|
|
<div className="pick-br">
|
|
|
|
|
{
|
|
|
|
|
this.pars.map(([k, v]) =>
|
|
|
|
|
<Label>
|
|
|
|
|
<SetBoardDataItem
|
|
|
|
|
inputRef={el =>
|
|
|
|
|
{
|
|
|
|
|
if (k === "calcSpaceSize")
|
|
|
|
|
this.spaceSizeInputEl = el;
|
|
|
|
|
else if (k === 'count')
|
|
|
|
|
this.countInputEl = el;
|
|
|
|
|
}}
|
|
|
|
|
type={CheckObjectType.BR}
|
|
|
|
|
key={k}
|
|
|
|
@ -269,9 +339,28 @@ export class BoardRePosBlock extends React.Component<BroadPosProps> {
|
|
|
|
|
isDisabled={(k === "calcSpaceSize" && this.props.option.boardRelative === BrRelativePos.Div)}
|
|
|
|
|
mounted={() => this.updateFocus(k)}
|
|
|
|
|
/>
|
|
|
|
|
<Button
|
|
|
|
|
icon="arrow-right"
|
|
|
|
|
onClick={() => this.getSizeValue(k)}
|
|
|
|
|
disabled={(k === "calcSpaceSize" && this.props.option.boardRelative === BrRelativePos.Div)}
|
|
|
|
|
/>
|
|
|
|
|
</Label>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<SetBoardDataItem
|
|
|
|
|
inputRef={el => { this.countInputEl = el; }}
|
|
|
|
|
type={CheckObjectType.BR}
|
|
|
|
|
key={"count"}
|
|
|
|
|
optKey={"count"}
|
|
|
|
|
uiOption={this.props.uiOption}
|
|
|
|
|
option={this.props.option}
|
|
|
|
|
title={"数量"}
|
|
|
|
|
mounted={() => this.updateFocus("count")}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|