diff --git a/src/Add-on/DrawBoard/DrawDoorDrawer/DrawLeftRightOpenDoor.ts b/src/Add-on/DrawBoard/DrawDoorDrawer/DrawLeftRightOpenDoor.ts index bc8a4eeae..5dfaddd25 100644 --- a/src/Add-on/DrawBoard/DrawDoorDrawer/DrawLeftRightOpenDoor.ts +++ b/src/Add-on/DrawBoard/DrawDoorDrawer/DrawLeftRightOpenDoor.ts @@ -10,6 +10,7 @@ import { TemplateRecord } from "../../../DatabaseServices/Template/TemplateRecor import { TemplateSplitType } from "../../../DatabaseServices/Template/TemplateType"; import { AppToaster } from "../../../UI/Components/Toaster"; import { DoorOpenDir, IDoorInfo } from "../../../UI/Store/DoorInterface"; +import { DrillType } from "../../DrawDrilling/DrillType"; import { DrawDoorTool } from "./DrawDoorTool"; export class DrawLeftRightOpenDoor extends DrawDoorTool @@ -30,6 +31,15 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool let isWarnHingeRules = false;//铰链已经干涉 + const { + lbSealedUp, lbSealedDown, lbSealedRight, lbSealedLeft, + topBrSeal, bottomBrSeal, leftBrSeal, rightBrSeal, + verticalBoardName, layerBoardName, + offset, thickness, isAuto, + lbHightDrillOption: { down: lbDrillDown, up: lbDrillUp, left: lbDrillLeft, right: lbDrillRight }, + cbHightDrillOption: { down: cbDrillDown, up: cbDrillUp, left: cbDrillLeft, right: cbDrillRight }, + } = this.option; + for (let i = 0; i < col; i++) { let lValue = this.colWidths[i]; @@ -50,15 +60,22 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool { if (this.isDrawLayBrS[j + 1]) { - let layTemp = this.GetLayerTemp(size.x, size.y, this.option.thickness, i !== 0, this.option.isAuto); + let layTemp = this.GetLayerTemp(size.x, size.y, thickness, i !== 0, isAuto); colTemp.Children.push(layTemp.Id); if (layTemp.Objects.length > 0) { let en = layTemp.Objects[0].Object as Board; - en.BoardProcessOption[EBoardKeyList.UpSealed] = this.option.topBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.DownSealed] = this.option.bottomBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.LeftSealed] = this.option.leftBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.RightSealed] = this.option.rightBrSeal.toString(); + en.Name = layerBoardName; + en.BoardProcessOption[EBoardKeyList.UpSealed] = topBrSeal.toString(); + en.BoardProcessOption[EBoardKeyList.DownSealed] = bottomBrSeal.toString(); + en.BoardProcessOption[EBoardKeyList.LeftSealed] = leftBrSeal.toString(); + en.BoardProcessOption[EBoardKeyList.RightSealed] = rightBrSeal.toString(); + en.BoardProcessOption.highDrill = [cbDrillDown, cbDrillRight, cbDrillUp, cbDrillLeft]; + let drillSet = new Set(en.BoardProcessOption.highDrill); + if (drillSet.size > 1) + en.BoardProcessOption.drillType = DrillType.More; + else if (drillSet.size === 1) + en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0]; if (this.surroundOption) { en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName]; @@ -73,15 +90,22 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool templateSpace.Children.push(colTemp.Id); if (i < col - 1) { - let verTemp = this.GetVerticalTemp(size.z, size.y - this.option.offset, this.option.thickness, !this.isDrawVerBrS[i], this.option.isAuto); + let verTemp = this.GetVerticalTemp(size.z, size.y - offset, thickness, !this.isDrawVerBrS[i], isAuto); if (verTemp.Objects.length > 0) { verBoardIds.push(...verTemp.Objects); let en = verTemp.Objects[0].Object as Board; - en.BoardProcessOption[EBoardKeyList.UpSealed] = this.option.topBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.DownSealed] = this.option.bottomBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.LeftSealed] = this.option.leftBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.RightSealed] = this.option.rightBrSeal.toString(); + en.Name = verticalBoardName; + en.BoardProcessOption[EBoardKeyList.UpSealed] = lbSealedUp.toString(); + en.BoardProcessOption[EBoardKeyList.DownSealed] = lbSealedDown.toString(); + en.BoardProcessOption[EBoardKeyList.LeftSealed] = lbSealedLeft.toString(); + en.BoardProcessOption[EBoardKeyList.RightSealed] = lbSealedRight.toString(); + en.BoardProcessOption.highDrill = [lbDrillDown, lbDrillRight, lbDrillUp, lbDrillLeft]; + let drillSet = new Set(en.BoardProcessOption.highDrill); + if (drillSet.size > 1) + en.BoardProcessOption.drillType = DrillType.More; + else if (drillSet.size === 1) + en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0]; if (this.surroundOption) { en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName]; diff --git a/src/Add-on/DrawBoard/DrawDoorDrawer/DrawUpDownOpenDoor.ts b/src/Add-on/DrawBoard/DrawDoorDrawer/DrawUpDownOpenDoor.ts index bc639eb59..47556b881 100644 --- a/src/Add-on/DrawBoard/DrawDoorDrawer/DrawUpDownOpenDoor.ts +++ b/src/Add-on/DrawBoard/DrawDoorDrawer/DrawUpDownOpenDoor.ts @@ -10,6 +10,7 @@ import { TemplateRecord } from "../../../DatabaseServices/Template/TemplateRecor import { TemplateSplitType } from "../../../DatabaseServices/Template/TemplateType"; import { AppToaster } from "../../../UI/Components/Toaster"; import { DoorOpenDir, IDoorInfo } from "../../../UI/Store/DoorInterface"; +import { DrillType } from "../../DrawDrilling/DrillType"; import { DrawDoorTool } from "./DrawDoorTool"; export class DrawUpDownOpenDoor extends DrawDoorTool @@ -28,6 +29,14 @@ export class DrawUpDownOpenDoor extends DrawDoorTool let layBoardIds: ObjectId[] = []; let isWarnHingeRules = false; + const { + lbSealedUp, lbSealedDown, lbSealedRight, lbSealedLeft, + topBrSeal, bottomBrSeal, leftBrSeal, rightBrSeal, + verticalBoardName, layerBoardName, + thickness, isAuto, + lbHightDrillOption: { down: lbDrillDown, up: lbDrillUp, left: lbDrillLeft, right: lbDrillRight }, + cbHightDrillOption: { down: cbDrillDown, up: cbDrillUp, left: cbDrillLeft, right: cbDrillRight }, + } = this.option; for (let i = 0; i < row; i++) { @@ -50,15 +59,22 @@ export class DrawUpDownOpenDoor extends DrawDoorTool { if (this.isDrawVerBrS[j]) { - let verTemp = this.GetVerticalTemp(size.z, size.y, this.option.thickness, i !== 0, this.option.isAuto); + let verTemp = this.GetVerticalTemp(size.z, size.y, thickness, i !== 0, isAuto); rowTemp.Children.push(verTemp.Id); if (verTemp.Objects.length > 0) { let en = verTemp.Objects[0].Object as Board; - en.BoardProcessOption[EBoardKeyList.UpSealed] = this.option.topBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.DownSealed] = this.option.bottomBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.LeftSealed] = this.option.leftBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.RightSealed] = this.option.rightBrSeal.toString(); + en.Name = verticalBoardName; + en.BoardProcessOption[EBoardKeyList.UpSealed] = lbSealedUp.toString(); + en.BoardProcessOption[EBoardKeyList.DownSealed] = lbSealedDown.toString(); + en.BoardProcessOption[EBoardKeyList.LeftSealed] = lbSealedLeft.toString(); + en.BoardProcessOption[EBoardKeyList.RightSealed] = lbSealedRight.toString(); + en.BoardProcessOption.highDrill = [lbDrillDown, lbDrillRight, lbDrillUp, lbDrillLeft]; + let drillSet = new Set(en.BoardProcessOption.highDrill); + if (drillSet.size > 1) + en.BoardProcessOption.drillType = DrillType.More; + else if (drillSet.size === 1) + en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0]; if (this.surroundOption) { en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName]; @@ -74,15 +90,22 @@ export class DrawUpDownOpenDoor extends DrawDoorTool if (i < row - 1) { - let layerTemp = this.GetLayerTemp(size.y, size.x, this.option.thickness, !this.isDrawLayBrS[i + 1], this.option.isAuto); + let layerTemp = this.GetLayerTemp(size.y, size.x, thickness, !this.isDrawLayBrS[i + 1], isAuto); if (layerTemp.Objects.length > 0) { layBoardIds.push(...layerTemp.Objects); let en = layerTemp.Objects[0].Object as Board; - en.BoardProcessOption[EBoardKeyList.UpSealed] = this.option.topBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.DownSealed] = this.option.bottomBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.LeftSealed] = this.option.leftBrSeal.toString(); - en.BoardProcessOption[EBoardKeyList.RightSealed] = this.option.rightBrSeal.toString(); + en.Name = layerBoardName; + en.BoardProcessOption[EBoardKeyList.UpSealed] = topBrSeal.toString(); + en.BoardProcessOption[EBoardKeyList.DownSealed] = bottomBrSeal.toString(); + en.BoardProcessOption[EBoardKeyList.LeftSealed] = leftBrSeal.toString(); + en.BoardProcessOption[EBoardKeyList.RightSealed] = rightBrSeal.toString(); + en.BoardProcessOption.highDrill = [cbDrillDown, cbDrillRight, cbDrillUp, cbDrillLeft]; + let drillSet = new Set(en.BoardProcessOption.highDrill); + if (drillSet.size > 1) + en.BoardProcessOption.drillType = DrillType.More; + else if (drillSet.size === 1) + en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0]; if (this.surroundOption) { en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName]; diff --git a/src/Add-on/DrawBoard/DrawDrawer.ts b/src/Add-on/DrawBoard/DrawDrawer.ts index c6a749de7..04d03140a 100644 --- a/src/Add-on/DrawBoard/DrawDrawer.ts +++ b/src/Add-on/DrawBoard/DrawDrawer.ts @@ -26,6 +26,7 @@ import { DoorModal } from "../../UI/Components/Board/Door/DoorModal"; import { DrawerStore } from "../../UI/Store/DoorDrawerStore/DrawerStore"; import { DisableChangeParName, HandleHorPos, HandleVePos, IDrawerConfigOption, IDrawerInfo } from "../../UI/Store/DoorInterface"; import { ITemplateParam } from "../../UI/Store/RightPanelStore/ITemplateParam"; +import { DrillType } from "../DrawDrilling/DrillType"; export class DrawDrawrer implements Command { @@ -62,8 +63,6 @@ export class DrawDrawrer implements Command //内偏移 let offset = store.m_Option.offset; - let thickness = store.m_Option.thickness; - //抽屉信息排序从左下角那块板开始 let doorInfos = toJS(store.doorDrawersInfo); @@ -197,7 +196,7 @@ export class DrawDrawrer implements Command templateSpace.Children.push(colTemp.Id); if (i < col - 1) { - let verTemp = this.GetVerticalTemp(size.z, size.y - offset, thickness); + let verTemp = this.GetVerticalTemp(size.z, size.y - offset, store.m_Option); vertialsBoards.push(verTemp.Objects[0].Object as Board); if (surroundOption) { @@ -509,12 +508,28 @@ export class DrawDrawrer implements Command return rowTemplate; } - private GetVerticalTemp(width: number, height: number, thickness: number) + private GetVerticalTemp(width: number, height: number, option: IDrawerConfigOption) { + const { + verticalBoardName, thickness, + lbSealedUp, lbSealedDown, lbSealedLeft, lbSealedRight, + lbHightDrillOption: { down: lbDrillDown, up: lbDrillUp, left: lbDrillLeft, right: lbDrillRight }, + } = option; let verTemp = new TemplateSizeBoard().InitBaseParams(); verTemp.Name = "立板"; app.Database.TemplateTable.Append(verTemp); let br = Board.CreateBoard(width, height, thickness, BoardType.Vertical); + br.Name = verticalBoardName; + br.BoardProcessOption[EBoardKeyList.UpSealed] = lbSealedUp.toString(); + br.BoardProcessOption[EBoardKeyList.DownSealed] = lbSealedDown.toString(); + br.BoardProcessOption[EBoardKeyList.LeftSealed] = lbSealedLeft.toString(); + br.BoardProcessOption[EBoardKeyList.RightSealed] = lbSealedRight.toString(); + br.BoardProcessOption.highDrill = [lbDrillDown, lbDrillRight, lbDrillUp, lbDrillLeft]; + let drillSet = new Set(br.BoardProcessOption.highDrill); + if (drillSet.size > 1) + br.BoardProcessOption.drillType = DrillType.More; + else if (drillSet.size === 1) + br.BoardProcessOption.drillType = br.BoardProcessOption.highDrill[0]; app.Database.ModelSpace.Append(br); verTemp.Objects = [br.Id]; verTemp.LParam.expr = "_LBH"; //应用立板厚 diff --git a/src/Common/CheckoutVaildValue.ts b/src/Common/CheckoutVaildValue.ts index ecfe8f4c8..fc6fc3435 100644 --- a/src/Common/CheckoutVaildValue.ts +++ b/src/Common/CheckoutVaildValue.ts @@ -167,6 +167,10 @@ export namespace CheckoutValid case "sealedDown": case "sealedLeft": case "sealedRight": + case "lbSealedUp": + case "lbSealedDown": + case "lbSealedLeft": + case "lbSealedRight": case "divCount": case "startDist": case "endDist": diff --git a/src/Editor/DefaultConfig.ts b/src/Editor/DefaultConfig.ts index ba51d229e..fb763fc91 100644 --- a/src/Editor/DefaultConfig.ts +++ b/src/Editor/DefaultConfig.ts @@ -418,7 +418,7 @@ export const DefaultLatticOption: ILatticeOption = { Object.freeze(DefaultLatticOption); export const DefaultDoorOption: IDoorConfigOption = { - version: 5, + version: 6, col: 2, row: 1, isAllSelect: true, @@ -446,6 +446,7 @@ export const DefaultDoorOption: IDoorConfigOption = { rightBrSeal: 1, topDoorSeal: 1, bottomDoorSeal: 1, + cbHightDrillOption: { up: "", down: "", left: "", right: "" }, leftDoorSeal: 1, rightDoorSeal: 1, handleAngle: 0, @@ -461,6 +462,13 @@ export const DefaultDoorOption: IDoorConfigOption = { useRule: false, changeTemplateBoardNameOfOpenDir: true, frontAndBackDrill: false, + verticalBoardName: "立板", + layerBoardName: "层板", + lbSealedUp: 1, + lbSealedDown: 1, + lbSealedLeft: 1, + lbSealedRight: 1, + lbHightDrillOption: { up: "", down: "", left: "", right: "" }, }; Object.freeze(DefaultDoorOption); export const DefaultHingeOption: IHingeConfigOption = { @@ -471,7 +479,7 @@ export const DefaultHingeOption: IHingeConfigOption = { }; Object.freeze(DefaultHingeOption); export const DefaultDrawerOption: IDrawerConfigOption = { - version: 4, + version: 5, col: 1, row: 1, isAllSelect: true, @@ -504,6 +512,12 @@ export const DefaultDrawerOption: IDrawerConfigOption = { isLockBottomOffset: false, downOffsetExpr: "0", upOffsetExpr: "0", + verticalBoardName: "立板", + lbSealedUp: 1, + lbSealedDown: 1, + lbSealedLeft: 1, + lbSealedRight: 1, + lbHightDrillOption: { up: "", down: "", left: "", right: "" }, }; Object.freeze(DefaultDrawerOption); diff --git a/src/UI/Components/Board/BoardCommon.tsx b/src/UI/Components/Board/BoardCommon.tsx index b94b13a89..5e3a95c13 100644 --- a/src/UI/Components/Board/BoardCommon.tsx +++ b/src/UI/Components/Board/BoardCommon.tsx @@ -491,27 +491,31 @@ export class Input5Or4Component extends React.Component render() { const options = [...userConfig.DrillConfigs.keys(), "不排"]; - const isShow = this.props.isShowEditor && this.props.highDrillOption; + const { highDrillOption, isShowEditor, type, + upKey, leftKey, downKey, rightKey, centerKey, + option, uiOption, showDirectionIcon, hasCenter, + onChange } = this.props; + const isShow = isShowEditor && highDrillOption; return (
{ isShow && { - this.props.highDrillOption.up = e.currentTarget.value; + highDrillOption.up = e.currentTarget.value; }} /> } @@ -523,54 +527,54 @@ export class Input5Or4Component extends React.Component }}>
{ isShow && { - this.props.highDrillOption.left = e.currentTarget.value; + highDrillOption.left = e.currentTarget.value; }} /> }
{ - this.props.showDirectionIcon && + showDirectionIcon && } { - this.props.hasCenter && }
{ isShow && { - this.props.highDrillOption.right = e.currentTarget.value; + highDrillOption.right = e.currentTarget.value; }} /> } @@ -578,21 +582,21 @@ export class Input5Or4Component extends React.Component
{ isShow && { - this.props.highDrillOption.down = e.currentTarget.value; + highDrillOption.down = e.currentTarget.value; }} /> } diff --git a/src/UI/Components/Board/Door/DoorConfigModal.tsx b/src/UI/Components/Board/Door/DoorConfigModal.tsx index 6fd3a4b33..da9ed3ce2 100644 --- a/src/UI/Components/Board/Door/DoorConfigModal.tsx +++ b/src/UI/Components/Board/Door/DoorConfigModal.tsx @@ -26,14 +26,79 @@ export class DoorConfigModal extends React.Component<{ store?: DoorDrawerStore; store.SetDrawerDepth(); } }; - UNSAFE_componentWillMount() + /** + *渲染拉手 + */ + renderHandle = () => { - this.uiOption = this.props.store.UIOption as IUiOption; - this.isDoor = this.props.store instanceof DoorStore; - } - render() + const { store } = this.props; + return ( + <> +
拉手
+
+ +
+ + { + store.m_Option.handleHorPos = safeEval(e.currentTarget.value) as HandleHorPos; + }} + > + + + + + +
+
+ + { + store.m_Option.handleVePos = safeEval(e.currentTarget.value) as HandleVePos; + }} + > + + + + + +
+
+ + ); + }; + + /** + *渲染门板 + */ + renderDoor = () => { - const store = this.props.store; + const { store } = this.props; + const { m_Option } = store as DoorStore; return ( <> -
+
+
+ + { + if (store.m_Option.doorPosType === DoorPosType.In) + { + store.m_Option.offset = (store.m_Option as IDoorConfigOption).doorThickness; + this.uiOption.offset = this.uiOption.doorThickness; + } + }} + /> +
+ (store as DoorStore).m_Option.frontAndBackDrill = !(store as DoorStore).m_Option.frontAndBackDrill} + /> +
+
+ (store as DoorStore).m_Option.changeTemplateBoardNameOfOpenDir = !(store as DoorStore).m_Option.changeTemplateBoardNameOfOpenDir} + /> +
+
+
+
门板封边
+ +
+
+ +
+
+ + + { + store.m_Option.isAuto = !store.m_Option.isAuto; + if (store.m_Option.isAuto) + { + store.m_Option.depth = store.totalDepth; + this.uiOption.depth = store.totalDepth.toString(); + } + }} + /> +
+
+
+ + +
+
+
+
立板封边/排钻
+ +
+
+
层板封边/排钻
+ +
+
+ + {this.renderHandle()} + + + + + ); + }; + + /** + *渲染抽屉 + */ + renderDrawer = () => + { + const { store } = this.props; + return ( + <> + + + + + + +
@@ -80,177 +316,82 @@ export class DoorConfigModal extends React.Component<{ store?: DoorDrawerStore; store.m_Option.isAuto = !store.m_Option.isAuto; if (store.m_Option.isAuto) { - if (this.isDoor) - { - store.m_Option.depth = store.totalDepth; - this.uiOption.depth = store.totalDepth.toString(); - } - else - { - this.handleDrawerDepth(); - } + this.handleDrawerDepth(); } }} /> - { - !this.isDoor && - { - this.handleDrawerDepth(); - }} - /> - } -
- -
+ { + this.handleDrawerDepth(); + }} /> - { - this.isDoor && + +
+
+ - { - if (store.m_Option.doorPosType === DoorPosType.In) - { - store.m_Option.offset = (store.m_Option as IDoorConfigOption).doorThickness; - this.uiOption.offset = this.uiOption.doorThickness; - } - }} + title="立板名称" + inline /> - } - -
- - { - this.isDoor &&
-
-
层板立板封边
- -
-
-
门板封边
- -
- } -
拉手
-
-
- - { - store.m_Option.handleHorPos = safeEval(e.currentTarget.value) as HandleHorPos; - }} - > - - - - -
- - { - store.m_Option.handleVePos = safeEval(e.currentTarget.value) as HandleVePos; - }} - > - - - - - 立板封边/排钻 +
- { - this.isDoor && - } - { - this.isDoor &&
(store as DoorStore).m_Option.frontAndBackDrill = !(store as DoorStore).m_Option.frontAndBackDrill} - /> -
- } - { - this.isDoor &&
(store as DoorStore).m_Option.changeTemplateBoardNameOfOpenDir = !(store as DoorStore).m_Option.changeTemplateBoardNameOfOpenDir} - /> -
- } + + {this.renderHandle()} + + ); + }; + + UNSAFE_componentWillMount() + { + this.uiOption = this.props.store.UIOption as IUiOption; + this.isDoor = this.props.store instanceof DoorStore; + } + render() + { + return ( + <> + {this.isDoor ? this.renderDoor() : this.renderDrawer()} ); } diff --git a/src/UI/Components/Board/Door/DoorModal.tsx b/src/UI/Components/Board/Door/DoorModal.tsx index 5b22f341b..7991034d4 100644 --- a/src/UI/Components/Board/Door/DoorModal.tsx +++ b/src/UI/Components/Board/Door/DoorModal.tsx @@ -83,16 +83,16 @@ export class DoorModal extends React.Component<{ store: DoorDrawerStore, type: B
-
+
{/*
- -
*/} + +
*/}
-
+
{isDoor ? "板件属性" : "抽屉属性"}
{ diff --git a/src/UI/Components/Board/Door/HingeRule.tsx b/src/UI/Components/Board/Door/HingeRule.tsx index df2180e27..7ab3fa9c8 100644 --- a/src/UI/Components/Board/Door/HingeRule.tsx +++ b/src/UI/Components/Board/Door/HingeRule.tsx @@ -71,6 +71,7 @@ export class HingeRules extends React.Component { targetTitle="配置" //onOpening={() => this.onOpening(store)} onClosing={() => this.onClosing(store)} + usePortal={true} >
铰链配置规则
@@ -138,6 +139,7 @@ export class HingeRules extends React.Component { { store.rules.map((rule, index) =>
  • diff --git a/src/UI/Components/Common/PopoverContent.tsx b/src/UI/Components/Common/PopoverContent.tsx index b22f0996e..2384e622a 100644 --- a/src/UI/Components/Common/PopoverContent.tsx +++ b/src/UI/Components/Common/PopoverContent.tsx @@ -12,15 +12,17 @@ interface IPopOverContentProps style?: React.CSSProperties; className?: string; intent?: Intent; + usePortal?: boolean; onClosing?: () => void; onOpening?: () => void; } export class PopoverContent extends React.Component { private cancelBtn: HTMLButtonElement; - static defaultProps = { + static defaultProps: Partial = { position: Position.TOP, - intent: Intent.PRIMARY + intent: Intent.PRIMARY, + usePortal: false, }; public render() { @@ -28,6 +30,7 @@ export class PopoverContent extends React.Component { { if (this.props.onOpening) diff --git a/src/UI/Components/Modal/ModalStyle/DoorModal.less b/src/UI/Components/Modal/ModalStyle/DoorModal.less index f3cdec314..b6c65df40 100644 --- a/src/UI/Components/Modal/ModalStyle/DoorModal.less +++ b/src/UI/Components/Modal/ModalStyle/DoorModal.less @@ -27,31 +27,38 @@ } } + .verticalBoardName, + .layerBoardName { + &>span { + width: 54px; + } + } + .br-name input { width: 10rem; } .pre-canvas { - position : relative; - margin : 4rem auto 0 auto; - width : 350px; - height : 350px; - max-height : 500px; - display : flex; + position: relative; + margin: 4rem auto 0 auto; + width: 350px; + height: 350px; + max-height: 500px; + display: flex; justify-content: flex-start; - align-content : flex-end; - flex-wrap : wrap; - background : #fff; - text-align : center; - color : #000; - font-weight : 500; - background : #5c5c5c; + align-content: flex-end; + flex-wrap: wrap; + background: #fff; + text-align: center; + color: #000; + font-weight: 500; + background: #5c5c5c; &>ul { - position : absolute; - top : -20px; - left : 0; - display : flex; + position: absolute; + top: -20px; + left: 0; + display: flex; text-align: center; &>li:nth-child(n+2) { @@ -83,26 +90,26 @@ } .pre-item { - outline : none; + outline: none; position: relative; &>span.opendir { - position : absolute; - font-size : 12px; - left : -10px; - top : 0; - bottom : 0; + position: absolute; + font-size: 12px; + left: -10px; + top: 0; + bottom: 0; margin-left: 50%; - width : 20px; - height : 16px; + width: 20px; + height: 16px; } } .pre-set { - padding : 20px 10px; - outline : none; - display : flex; + padding: 20px 10px; + outline: none; + display: flex; justify-content: space-between; &>div:first-child { @@ -111,24 +118,24 @@ } .bp3-input-action { - top : -4px; + top: -4px; right: 0; svg { - width : 14px; + width: 14px; height: 14px; } } .row-input { width: 80%; - left : 10%; - top : -25px; + left: 10%; + top: -25px; .bp3-input-action .bp3-checkbox { position: absolute; - top : 6px; - left : 32px; + top: 6px; + left: 32px; } input { @@ -137,24 +144,24 @@ } .col-input { - position : absolute; - top : -8px; - text-align : left; + position: absolute; + top: -8px; + text-align: left; transform-origin: 0% 100%; - transform : rotateZ(90deg) translateY(18px); + transform: rotateZ(90deg) translateY(18px); .bp3-input-action .bp3-checkbox { position: absolute; - top : 6px; + top: 6px; } } .col-span { - position : absolute; - top : calc(~'50% - 28px'); - left : 0; + position: absolute; + top: calc(~'50% - 28px'); + left: 0; transform-origin: 0% 100%; - transform : rotateZ(90deg); + transform: rotateZ(90deg); } @@ -165,21 +172,21 @@ .row-check { position: absolute; - right : -20px; - top : -20px; - padding : 0; + right: -20px; + top: -20px; + padding: 0; } .col-check { position: absolute; - left : 8px; - bottom : -20px; - padding : 0; + left: 8px; + bottom: -20px; + padding: 0; } .row-check-new { padding: 0; - width : 18px; + width: 18px; .bp3-control-indicator { margin-left: 0; @@ -188,21 +195,21 @@ .col-list { transform-origin: 0 100%; - top : -18px; - transform : rotateZ(90deg) translateY(18px); - justify-content : flex-end; - left : 0; + top: -18px; + transform: rotateZ(90deg) translateY(18px); + justify-content: flex-end; + left: 0; } .bp3-html-select { position: absolute; - top : 0; - bottom : 0; - left : 15px; - right : 0; - margin : auto; - width : 80%; - height : 18px; + top: 0; + bottom: 0; + left: 15px; + right: 0; + margin: auto; + width: 80%; + height: 18px; .bp3-icon { top: 3px; @@ -210,14 +217,14 @@ } .sm-temp-name { - list-style : none; - position : absolute; + list-style: none; + position: absolute; width: 100%; height: 70%; right: 0; bottom: 0; - padding : 0; - margin : 0; + padding: 0; + margin: 0; white-space: nowrap; display: -webkit-box; -webkit-box-orient: vertical; @@ -230,12 +237,12 @@ -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; - list-style : none; - position : absolute; + list-style: none; + position: absolute; width: 80%; - left : 10%; - top : 15px; - padding : 0; + left: 10%; + top: 15px; + padding: 0; white-space: nowrap; } @@ -257,7 +264,7 @@ } .tb-offset { - position : relative; + position: relative; align-items: center; &>span { @@ -273,21 +280,22 @@ @height: 20px; .lkbtn { - min-height : @height; - height : @height; + min-height: @height; + height: @height; line-height: @height; - padding : 0; + padding: 0; } .slk, .xlk { position: absolute; - left : 47px; - top : 20px; + left: 47px; + top: 20px; } } } -.hinge-rule{ + +.hinge-rule { display: flex; flex-direction: row; } @@ -296,8 +304,8 @@ width: 550px; .bp3-input { - width : 50px; - height : 20px; + width: 50px; + height: 20px; line-height: 20px; } } diff --git a/src/UI/Store/DoorDrawerStore/DoorStore.ts b/src/UI/Store/DoorDrawerStore/DoorStore.ts index 2825c3eb1..97d2d9f23 100644 --- a/src/UI/Store/DoorDrawerStore/DoorStore.ts +++ b/src/UI/Store/DoorDrawerStore/DoorStore.ts @@ -3,6 +3,7 @@ import { observable, toJS } from "mobx"; import { CheckObjectType, CheckoutValid } from "../../../Common/CheckoutVaildValue"; import { DataAdapter } from "../../../Common/DataAdapter"; import { DefaultDoorOption } from "../../../Editor/DefaultConfig"; +import { userConfig } from "../../../Editor/UserConfig"; import { IConfigOption } from "../../Components/Board/UserConfigComponent"; import { AppConfirm } from "../../Components/Common/Confirm"; import { AppToaster } from "../../Components/Toaster"; @@ -129,6 +130,9 @@ export class DoorStore extends DoorDrawerStore InitOption() { Object.assign(this.m_Option, DefaultDoorOption); + let drilltypes = [...userConfig.DrillConfigs.keys(), "不排"]; + Object.assign(this.m_Option.lbHightDrillOption, { up: drilltypes[0], down: drilltypes[0], left: drilltypes[0], right: drilltypes[0] }); + Object.assign(this.m_Option.cbHightDrillOption, { up: drilltypes[0], down: drilltypes[0], left: drilltypes[0], right: drilltypes[0] }); super.InitOption(); this.InitInfos(); Object.assign(this.currentRule, { @@ -173,23 +177,38 @@ export class DoorStore extends DoorDrawerStore FixErrorDataConfig(opt, DefaultDoorOption); } - if (opt.version <= 2) + if (opt.version < 3) { opt.version = 3; opt.upOffsetExpr = opt.topOffset.toString(); opt.downOffsetExpr = opt.bottomOffset.toString(); this.UpdateDoorDrawerVersionInfo(cof); } - else if (opt.version <= 3) + if (opt.version < 4) { opt.version = 4; opt.useRule = false; } - else if (opt.version <= 4) + if (opt.version < 5) { opt.version = 5; opt.frontAndBackDrill = false; } + if (opt.version < 6) + { + opt.version = 6; + opt.verticalBoardName = "立板"; + opt.layerBoardName = "层板"; + opt.lbSealedUp = 1; + opt.lbSealedDown = 1; + opt.lbSealedLeft = 1; + opt.lbSealedRight = 1; + opt.lbHightDrillOption = { up: "", down: "", left: "", right: "" }; + opt.cbHightDrillOption = { up: "", down: "", left: "", right: "" }; + let drilltypes = [...userConfig.DrillConfigs.keys(), "不排"]; + Object.assign(opt.lbHightDrillOption, { up: drilltypes[0], down: drilltypes[0], left: drilltypes[0], right: drilltypes[0] }); + Object.assign(opt.cbHightDrillOption, { up: drilltypes[0], down: drilltypes[0], left: drilltypes[0], right: drilltypes[0] }); + } } get UIRule() { diff --git a/src/UI/Store/DoorDrawerStore/DrawerStore.ts b/src/UI/Store/DoorDrawerStore/DrawerStore.ts index c8fba6d6d..e8e6fb388 100644 --- a/src/UI/Store/DoorDrawerStore/DrawerStore.ts +++ b/src/UI/Store/DoorDrawerStore/DrawerStore.ts @@ -1,6 +1,7 @@ import { observable } from "mobx"; import { safeEval } from "../../../Common/eval"; import { DefaultDrawerOption } from "../../../Editor/DefaultConfig"; +import { userConfig } from "../../../Editor/UserConfig"; import { IConfigOption } from "../../Components/Board/UserConfigComponent"; import { FixErrorDataConfig } from "../BoardStore"; import { IDrawerConfigOption } from "../DoorInterface"; @@ -45,6 +46,8 @@ export class DrawerStore extends DoorDrawerStore InitOption() { Object.assign(this.m_Option, DefaultDrawerOption); + let drilltypes = [...userConfig.DrillConfigs.keys(), "不排"]; + Object.assign(this.m_Option.lbHightDrillOption, { up: drilltypes[0], down: drilltypes[0], left: drilltypes[0], right: drilltypes[0] }); super.InitOption(); this.InitInfos(); } @@ -62,19 +65,32 @@ export class DrawerStore extends DoorDrawerStore opt.isLockTopOffset = false; opt.isLockBottomOffset = false; } - if (opt.version <= 2) + if (opt.version < 3) { opt.version = 3; FixErrorDataConfig(opt, DefaultDrawerOption); } - if (opt.version <= 3) + if (opt.version < 4) { opt.version = 4; opt.upOffsetExpr = opt.topOffset.toString(); opt.downOffsetExpr = opt.bottomOffset.toString(); this.UpdateDoorDrawerVersionInfo(cof); } + + if (opt.version < 5) + { + opt.version = 5; + opt.verticalBoardName = "立板"; + opt.lbSealedUp = 1; + opt.lbSealedDown = 1; + opt.lbSealedLeft = 1; + opt.lbSealedRight = 1; + opt.lbHightDrillOption = { up: "", down: "", left: "", right: "" }; + let drilltypes = [...userConfig.DrillConfigs.keys(), "不排"]; + Object.assign(opt.lbHightDrillOption, { up: drilltypes[0], down: drilltypes[0], left: drilltypes[0], right: drilltypes[0] }); + } } SetDrawerDepth() { diff --git a/src/UI/Store/DoorInterface.ts b/src/UI/Store/DoorInterface.ts index 88355b7e1..632f74ce7 100644 --- a/src/UI/Store/DoorInterface.ts +++ b/src/UI/Store/DoorInterface.ts @@ -1,4 +1,4 @@ -import { IBaseOption } from "./OptionInterface/IOptionInterface"; +import { IBaseOption, IHightDrillOption } from "./OptionInterface/IOptionInterface"; import { ITemplateParam } from "./RightPanelStore/ITemplateParam"; export interface IDoorAndDrawerConfigOption extends IBaseOption @@ -19,6 +19,7 @@ export interface IDoorAndDrawerConfigOption extends IBaseOption leftSpace: number;//左预留间隙 rightSpace: number;//右预留间隙 midSpace: number;//中预留间隙 + verticalBoardName: string; //立板名称 thickness: number; //立板厚度 depth: number; //立板深度 isAuto: boolean; //智能识别 @@ -30,6 +31,11 @@ export interface IDoorAndDrawerConfigOption extends IBaseOption veSpacing: number; upOffsetExpr: string; downOffsetExpr: string; + lbSealedUp: number;//立板封边上下左右 + lbSealedDown: number; + lbSealedLeft: number; + lbSealedRight: number; + lbHightDrillOption: IHightDrillOption; //立板高级排钻 } /** @@ -52,6 +58,8 @@ export interface IDoorConfigOption extends IDoorAndDrawerConfigOption useRule: boolean; changeTemplateBoardNameOfOpenDir: boolean;//使用模块时,修改板件名称 frontAndBackDrill: boolean; //正反面排孔 + layerBoardName: string; + cbHightDrillOption: IHightDrillOption; //层板高级排钻 } /**