!2463 新增:门板/抽屉/格子抽/酒格/矩形变层立板增加房间、柜体、板件材料选择选项

pull/2434/MERGE
黄诗津 5 months ago committed by ChenX
parent 01d7457f72
commit 706ee78185

@ -40,6 +40,11 @@ const option: IWineRackOption = {
brThick2: 18,
isExtendsBH2: false,
followNarrow: false,
boardMatName: "",
material: "",
color: "",
roomName: "",
cabinetName: ""
};
describe("酒格功能测试", () =>

@ -84,7 +84,7 @@ export class DrawDoorTool
let doorInfos = this.doorInfos;
//全部的模板id
let tempIds: Set<string> = new Set();
let tempIds: Map<string, string> = new Map();
for (let info of doorInfos)
{
@ -93,7 +93,7 @@ export class DrawDoorTool
{
if (info.tempInfo.hasOwnProperty(tempKey) && info.tempInfo[tempKey].id)
{
tempIds.add(info.tempInfo[tempKey].id);
tempIds.set(tempKey, info.tempInfo[tempKey].id);
}
}
@ -103,7 +103,7 @@ export class DrawDoorTool
this.surroundOption = spaceParse.Boards.length > 0 ? spaceParse.Boards[0].BoardProcessOption : undefined;
for (let id of [...tempIds])
for (let [tempKey, id] of tempIds)
{
let temp = await GetOnlineTemplate(id);
if (!temp) continue;
@ -135,7 +135,7 @@ export class DrawDoorTool
{
en.HardwareOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName];
en.HardwareOption[EBoardKeyList.CabinetName] = this.surroundOption[EBoardKeyList.CabinetName];
if (this.option.isModifyHardwareMaterial)
if (this.option.isModifyHardwareMaterial && tempKey === "temp")
{
en.HardwareOption[EBoardKeyList.Mat] = this.surroundOption[EBoardKeyList.Mat];
en.HardwareOption[EBoardKeyList.Color] = this.surroundOption[EBoardKeyList.Color];
@ -144,6 +144,31 @@ export class DrawDoorTool
}
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = option;
for (let en of ens)
{
if (en instanceof Board)
{
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
else if (en instanceof HardwareCompositeEntity)
{
en.HardwareOption[EBoardKeyList.RoomName] = roomName;
en.HardwareOption[EBoardKeyList.CabinetName] = cabinetName;
if (this.option.isModifyHardwareMaterial && tempKey === "temp")
{
en.HardwareOption[EBoardKeyList.Mat] = material;
en.HardwareOption[EBoardKeyList.Color] = color;
}
}
}
}
this._idTempMap.set(id, temp);
}
@ -820,7 +845,9 @@ export class DrawDoorTool
br.BoardProcessOption.backDrill = false;
}
if (this.surroundOption && this.option.useBoardProcessOption)
if (this.option.useBoardProcessOption)
{
if (this.surroundOption)
{
br.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName];
br.BoardProcessOption[EBoardKeyList.CabinetName] = this.surroundOption[EBoardKeyList.CabinetName];
@ -828,6 +855,16 @@ export class DrawDoorTool
br.BoardProcessOption[EBoardKeyList.BrMat] = this.surroundOption[EBoardKeyList.BrMat];
br.BoardProcessOption[EBoardKeyList.Color] = this.surroundOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this.option;
br.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
br.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
br.BoardProcessOption[EBoardKeyList.Mat] = material;
br.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
br.BoardProcessOption[EBoardKeyList.Color] = color;
}
br.Name =
info.openDir === DoorOpenDir.None ? "门板" :
openDirTitle[info.openDir] + "开门板";

@ -74,7 +74,9 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool
en.BoardProcessOption.drillType = DrillType.More;
else if (drillSet.size === 1)
en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0];
if (this.surroundOption && useBoardProcessOption)
if (useBoardProcessOption)
{
if (this.surroundOption)
{
en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName];
en.BoardProcessOption[EBoardKeyList.CabinetName] = this.surroundOption[EBoardKeyList.CabinetName];
@ -82,6 +84,16 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool
en.BoardProcessOption[EBoardKeyList.BrMat] = this.surroundOption[EBoardKeyList.BrMat];
en.BoardProcessOption[EBoardKeyList.Color] = this.surroundOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this.option;
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
layBoardIds.push(...layTemp.Objects);
}
}
@ -107,7 +119,9 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool
en.BoardProcessOption.drillType = DrillType.More;
else if (drillSet.size === 1)
en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0];
if (this.surroundOption && useBoardProcessOption)
if (useBoardProcessOption)
{
if (this.surroundOption)
{
en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName];
en.BoardProcessOption[EBoardKeyList.CabinetName] = this.surroundOption[EBoardKeyList.CabinetName];
@ -116,6 +130,16 @@ export class DrawLeftRightOpenDoor extends DrawDoorTool
en.BoardProcessOption[EBoardKeyList.Color] = this.surroundOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this.option;
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
}
templateSpace.Children.push(verTemp.Id);
}
}

@ -74,7 +74,9 @@ export class DrawUpDownOpenDoor extends DrawDoorTool
en.BoardProcessOption.drillType = DrillType.More;
else if (drillSet.size === 1)
en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0];
if (this.surroundOption && useBoardProcessOption)
if (useBoardProcessOption)
{
if (this.surroundOption)
{
en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName];
en.BoardProcessOption[EBoardKeyList.CabinetName] = this.surroundOption[EBoardKeyList.CabinetName];
@ -82,6 +84,16 @@ export class DrawUpDownOpenDoor extends DrawDoorTool
en.BoardProcessOption[EBoardKeyList.BrMat] = this.surroundOption[EBoardKeyList.BrMat];
en.BoardProcessOption[EBoardKeyList.Color] = this.surroundOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this.option;
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
verBoardIds.push(...verTemp.Objects);
}
}
@ -108,7 +120,9 @@ export class DrawUpDownOpenDoor extends DrawDoorTool
en.BoardProcessOption.drillType = DrillType.More;
else if (drillSet.size === 1)
en.BoardProcessOption.drillType = en.BoardProcessOption.highDrill[0];
if (this.surroundOption && useBoardProcessOption)
if (useBoardProcessOption)
{
if (this.surroundOption)
{
en.BoardProcessOption[EBoardKeyList.RoomName] = this.surroundOption[EBoardKeyList.RoomName];
en.BoardProcessOption[EBoardKeyList.CabinetName] = this.surroundOption[EBoardKeyList.CabinetName];
@ -117,6 +131,16 @@ export class DrawUpDownOpenDoor extends DrawDoorTool
en.BoardProcessOption[EBoardKeyList.Color] = this.surroundOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this.option;
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
}
templateSpace.Children.push(layerTemp.Id);
}
}

@ -101,7 +101,10 @@ export class DrawDrawrer implements Command
continue;
}
let ens = temp.Db.ModelSpace.Entitys;
if (surroundOption && store.m_Option.useBoardProcessOption)
if (store.m_Option.useBoardProcessOption)
{
if (surroundOption)
{
for (let en of ens)
{
if (en instanceof Board)
@ -116,10 +119,27 @@ export class DrawDrawrer implements Command
{
en.HardwareOption[EBoardKeyList.RoomName] = surroundOption[EBoardKeyList.RoomName];
en.HardwareOption[EBoardKeyList.CabinetName] = surroundOption[EBoardKeyList.CabinetName];
if (store.m_Option.isModifyHardwareMaterial)
}
}
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = store.m_Option;
for (let en of ens)
{
if (en instanceof Board)
{
en.HardwareOption[EBoardKeyList.Mat] = surroundOption[EBoardKeyList.Mat];
en.HardwareOption[EBoardKeyList.Color] = surroundOption[EBoardKeyList.Color];
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
else if (en instanceof HardwareCompositeEntity)
{
en.HardwareOption[EBoardKeyList.RoomName] = roomName;
en.HardwareOption[EBoardKeyList.CabinetName] = cabinetName;
}
}
}
@ -206,15 +226,27 @@ export class DrawDrawrer implements Command
{
let verTemp = this.GetVerticalTemp(size.z, size.y - offset, store.m_Option);
vertialsBoards.push(verTemp.Objects[0].Object as Board);
if (surroundOption && store.m_Option.useBoardProcessOption)
{
let en = verTemp.Objects[0].Object as Board;
if (store.m_Option.useBoardProcessOption)
{
if (surroundOption)
{
en.BoardProcessOption[EBoardKeyList.RoomName] = surroundOption[EBoardKeyList.RoomName];
en.BoardProcessOption[EBoardKeyList.CabinetName] = surroundOption[EBoardKeyList.CabinetName];
en.BoardProcessOption[EBoardKeyList.Mat] = surroundOption[EBoardKeyList.Mat];
en.BoardProcessOption[EBoardKeyList.BrMat] = surroundOption[EBoardKeyList.BrMat];
en.BoardProcessOption[EBoardKeyList.Color] = surroundOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = store.m_Option;
en.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
en.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
en.BoardProcessOption[EBoardKeyList.Mat] = material;
en.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
en.BoardProcessOption[EBoardKeyList.Color] = color;
}
templateSpace.Children.push(verTemp.Id);
}
}

@ -46,7 +46,9 @@ export class DrawWineRackTool extends Singleton
protected GetBoardProcessOption(br: Board)
{
//获取空间周围的板件数据
if (this.space.Boards.length > 0 && this._config.useBoardProcessOption)
if (this._config.useBoardProcessOption)
{
if (this.space.Boards.length > 0)
{
let refProcessData = this.space.Boards[0].BoardProcessOption;
br.BoardProcessOption[EBoardKeyList.RoomName] = refProcessData[EBoardKeyList.RoomName];
@ -56,6 +58,16 @@ export class DrawWineRackTool extends Singleton
br.BoardProcessOption[EBoardKeyList.Color] = refProcessData[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this._config;
br.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
br.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
br.BoardProcessOption[EBoardKeyList.Mat] = material;
br.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
br.BoardProcessOption[EBoardKeyList.Color] = color;
}
}
/**分析高级封边数据 */
protected ParseHighSealing(br: Board, leftSealed: number, rightSealed: number, topSealed: number, downSealed: number, isLeft: boolean)
{

@ -1,4 +1,4 @@
import { Button, Card, H5, Intent } from '@blueprintjs/core';
import { Button, Card, Checkbox, H5, Intent } from '@blueprintjs/core';
import { observer } from 'mobx-react';
import React, { Component } from 'react';
import { begin } from 'xaop';
@ -6,7 +6,7 @@ import { app } from '../../../ApplicationServices/Application';
import { CheckObjectType } from '../../../Common/CheckoutVaildValue';
import { CommandNames } from '../../../Common/CommandNames';
import { KeyBoard } from '../../../Common/KeyEnum';
import { Input5Or4Component, Notes, SetBoardDataBlock } from '../../../UI/Components/Board/BoardCommon';
import { Input5Or4Component, Notes, RoomAndBoardMaterialInfo, SetBoardDataBlock } from '../../../UI/Components/Board/BoardCommon';
import { BoardModalType } from "../../../UI/Components/Board/BoardModalType";
import { Config_ModalType } from '../../../UI/Components/Board/UserConfigComponent';
import { CommonModal } from '../../../UI/Components/Modal/ModalContainer';
@ -92,6 +92,15 @@ export class R2b2Panel extends Component<{ store: R2B2Store; }>
option={store.option}
uiOption={store.UIOption}
/>
<Checkbox
checked={store.option.useBoardProcessOption}
label="使用周围的板件数据"
onChange={() => { store.OnHandleUseBoardProcessOptionChange(); }}
/>
<RoomAndBoardMaterialInfo
data={store.option}
vertical={true}
/>
<H5></H5>
<SelectDrillType
option={store.option}

@ -1,4 +1,4 @@
import { observable, toJS } from "mobx";
import { action, observable, toJS } from "mobx";
import { begin } from "xaop";
import { CheckObjectType, CheckoutValid } from "../../Common/CheckoutVaildValue";
import { DataAdapter } from "../../Common/DataAdapter";
@ -51,6 +51,15 @@ export class R2B2Store implements IConfigStore
}
UpdateOption(conf: IConfigOption<IRect2Br2Option>)
{
if (conf.option.version < 2)
{
conf.option.version = 2;
conf.option.boardMatName = DefaultR2b2Option.boardMatName;
conf.option.material = DefaultR2b2Option.material;
conf.option.color = DefaultR2b2Option.color;
conf.option.roomName = DefaultR2b2Option.roomName;
conf.option.cabinetName = DefaultR2b2Option.cabinetName;
}
Object.assign(this.option, conf.option);
if (this.uiOption)
Object.assign(this.uiOption, DataAdapter.ConvertUIData(conf.option));
@ -60,6 +69,11 @@ export class R2B2Store implements IConfigStore
{
return CheckoutValid.HasInvailValue(this.UIOption, CheckObjectType.R2B);
}
@action
OnHandleUseBoardProcessOptionChange()
{
this.option.useBoardProcessOption = !this.option.useBoardProcessOption;
}
}
export const r2b2Store = new R2B2Store();

@ -101,4 +101,10 @@ export interface IRect2Br2Option extends IBaseOption
[EBoardKeyList.LeftSealed]: string;
[EBoardKeyList.RightSealed]: string;
remarks: [string, string][];
useBoardProcessOption?: boolean; //使用周围的板件数据
boardMatName: string;//板材名
material: string;//材料
color: string;//颜色
roomName: string;//房名
cabinetName: string;//柜名
}

@ -111,11 +111,32 @@ class Rect2BoardTool2
const size = spaceParse.Size;
const depth = safeEval(option.depthExpr, { L: size.x, W: size.y, H: size.z });
totalBrs.push(...this.DrawBoard([pl], depth));
const brs = this.DrawBoard([pl], depth);
for (const br of brs)
{
if (option.useBoardProcessOption)
{
if (spaceParse.Boards.length)
{
br.BoardProcessOption[EBoardKeyList.CabinetName] = spaceParse.Boards[0].BoardProcessOption[EBoardKeyList.CabinetName];
br.BoardProcessOption[EBoardKeyList.RoomName] = spaceParse.Boards[0].BoardProcessOption[EBoardKeyList.RoomName];
br.BoardProcessOption[EBoardKeyList.Mat] = spaceParse.Boards[0].BoardProcessOption[EBoardKeyList.Mat];
br.BoardProcessOption[EBoardKeyList.BrMat] = spaceParse.Boards[0].BoardProcessOption[EBoardKeyList.BrMat];
br.BoardProcessOption[EBoardKeyList.Color] = spaceParse.Boards[0].BoardProcessOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = option;
br.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
br.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
br.BoardProcessOption[EBoardKeyList.Mat] = material;
br.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
br.BoardProcessOption[EBoardKeyList.Color] = color;
}
app.Database.ModelSpace.Append(br);
}
}
totalBrs.forEach(b => app.Database.ModelSpace.Append(b));
}
/**

@ -615,6 +615,12 @@ export namespace CheckoutValid
return "数值必须大于0";
case "followNarrow"://这是个布尔值 不校验它.
return "";
case "boardMatName":
case "material":
case "color":
case "roomName":
case "cabinetName":
return "";
default:
if (!isNum(v))
{
@ -651,9 +657,12 @@ export namespace CheckoutValid
if (safeEval(v) < 0)
return "数值不能小于0";
return "";
default:
case "downDist":
case "space":
case "grooveAddWidth":
if (!(isNum(v)))
return "数值不能为空且必须为数字";
default:
return "";
}
}

@ -54,9 +54,11 @@ export class TemplateLatticeRecord extends TemplateRecord
let nbrs = tool.Draw(space, this.Option);
if (sbrs.length > 0 && this.option.useBoardProcessOption)
{
for (let br of nbrs)
{
if (this.option.useBoardProcessOption)
{
if (sbrs.length)
{
br.BoardProcessOption[EBoardKeyList.CabinetName] = sbrs[0].BoardProcessOption[EBoardKeyList.CabinetName];
br.BoardProcessOption[EBoardKeyList.RoomName] = sbrs[0].BoardProcessOption[EBoardKeyList.RoomName];
@ -65,6 +67,16 @@ export class TemplateLatticeRecord extends TemplateRecord
br.BoardProcessOption[EBoardKeyList.Color] = sbrs[0].BoardProcessOption[EBoardKeyList.Color];
}
}
else
{
const { roomName, cabinetName, boardMatName, material, color } = this.option;
br.BoardProcessOption[EBoardKeyList.RoomName] = roomName;
br.BoardProcessOption[EBoardKeyList.CabinetName] = cabinetName;
br.BoardProcessOption[EBoardKeyList.Mat] = material;
br.BoardProcessOption[EBoardKeyList.BrMat] = boardMatName;
br.BoardProcessOption[EBoardKeyList.Color] = color;
}
}
for (let i = nbrs.length; i < this.Objects.length; i++)
@ -125,11 +137,19 @@ export class TemplateLatticeRecord extends TemplateRecord
{
this.option.useBoardProcessOption = file.Read();
}
if (ver > 3)
{
this.option.boardMatName = file.Read();
this.option.material = file.Read();
this.option.color = file.Read();
this.option.roomName = file.Read();
this.option.cabinetName = file.Read();
}
}
//对象将自身数据写入到文件.
WriteFile(file: CADFiler)
{
file.Write(3);
file.Write(4);
super.WriteFile(file);
file.Write(this.option.arrayType);
file.Write(this.option.gripWidth);
@ -157,6 +177,12 @@ export class TemplateLatticeRecord extends TemplateRecord
file.Write(this.option.linesType);
file.Write(this.option.useBoardProcessOption);
file.Write(this.option.boardMatName);
file.Write(this.option.material);
file.Write(this.option.color);
file.Write(this.option.roomName);
file.Write(this.option.cabinetName);
}
//#endregion
}

@ -123,11 +123,19 @@ export class TemplateWineRackRecord extends TemplateRecord
if (ver > 2)
this.option.wineRackStyle = file.Read();
if (ver > 3)
{
this.option.boardMatName = file.Read();
this.option.material = file.Read();
this.option.color = file.Read();
this.option.roomName = file.Read();
this.option.cabinetName = file.Read();
}
}
//对象将自身数据写入到文件.
WriteFile(file: CADFiler)
{
file.Write(3);
file.Write(4);
super.WriteFile(file);
file.Write(this.option.type);
file.Write(this.option.arrayType);
@ -161,6 +169,12 @@ export class TemplateWineRackRecord extends TemplateRecord
file.Write(this.option.followNarrow);
file.Write(this.option.wineRackStyle);
file.Write(this.option.boardMatName);
file.Write(this.option.material);
file.Write(this.option.color);
file.Write(this.option.roomName);
file.Write(this.option.cabinetName);
}
//#endregion
}

@ -85,7 +85,7 @@ export const DefaultBehindBoardConfig: BehindBoardOption = {
Object.freeze(DefaultBehindBoardConfig);
export const DefaultWineRackConfig: IWineRackOption = {
version: 5,
version: 6,
type: EWineRackType.Oblique,
wineRackStyle: EWineRackStyle.WholeLattice,
arrayType: EWRackArrayType.ByWidth,
@ -115,7 +115,12 @@ export const DefaultWineRackConfig: IWineRackOption = {
brThick2: 18,
isExtendsBH2: false,
followNarrow: false,
useBoardProcessOption: true
useBoardProcessOption: true,
boardMatName: "",//板材名
material: "",//材料
color: "",//颜色
roomName: "",//房名
cabinetName: "",//柜名
};
Object.freeze(DefaultWineRackConfig);
@ -422,7 +427,7 @@ export const DefaultBoardFindOption: IBoardFindOption = {
Object.freeze(DefaultBoardFindOption);
export const DefaultLatticOption: ILatticeOption = {
version: 3,
version: 4,
arrayType: ELatticeArrayType.ByWidth,
gripWidth: 100,
gripDepth: 100,
@ -445,11 +450,16 @@ export const DefaultLatticOption: ILatticeOption = {
downCut: 4,
linesType: LinesType.Reverse,
useBoardProcessOption: true,
boardMatName: "",//板材名
material: "",//材料
color: "",//颜色
roomName: "",//房名
cabinetName: "",//柜名
};
Object.freeze(DefaultLatticOption);
export const DefaultDoorOption: IDoorConfigOption = {
version: 9,
version: 10,
col: 2,
row: 1,
isAllSelect: true,
@ -502,7 +512,12 @@ export const DefaultDoorOption: IDoorConfigOption = {
lbHightDrillOption: { up: "", down: "", left: "", right: "" },
useBoardProcessOption: true,
isModifyHardwareMaterial: false,
deviation: 100 //偏移量
deviation: 100,//偏移量
boardMatName: "",//板材名
material: "",//材料
color: "",//颜色
roomName: "",//房名
cabinetName: "",//柜名
};
Object.freeze(DefaultDoorOption);
export const DefaultHingeOption: IHingeConfigOption = {
@ -514,7 +529,7 @@ export const DefaultHingeOption: IHingeConfigOption = {
};
Object.freeze(DefaultHingeOption);
export const DefaultDrawerOption: IDrawerConfigOption = {
version: 8,
version: 9,
col: 1,
row: 1,
isAllSelect: true,
@ -556,6 +571,11 @@ export const DefaultDrawerOption: IDrawerConfigOption = {
lbHightDrillOption: { up: "", down: "", left: "", right: "" },
useBoardProcessOption: true,
isModifyHardwareMaterial: false,
boardMatName: "",//板材名
material: "",//材料
color: "",//颜色
roomName: "",//房名
cabinetName: "",//柜名
};
Object.freeze(DefaultDrawerOption);
@ -602,7 +622,12 @@ export const DefaultLatticeConfig: ILatticeOption = {
upCut: 0,
downCut: 4,
linesType: LinesType.Reverse,
useBoardProcessOption: true
useBoardProcessOption: true,
boardMatName: "",//板材名
material: "",//材料
color: "",//颜色
roomName: "",//房名
cabinetName: "",//柜名
};
Object.freeze(DefaultLatticeConfig);
@ -903,7 +928,7 @@ export const DefaultR2bOption: IRec2BrOption = {
};
Object.freeze(DefaultR2bOption);
export const DefaultR2b2Option: IRect2Br2Option = {
version: 1,
version: 2,
depthExpr: "W",
drillType: "",
sealedDown: "1",
@ -914,6 +939,12 @@ export const DefaultR2b2Option: IRect2Br2Option = {
maxThickness: 20,
layerShrink: 0,
vertialShrink: 0,
useBoardProcessOption: true,
boardMatName: "",//板材名
material: "",//材料
color: "",//颜色
roomName: "",//房名
cabinetName: "",//柜名
};
Object.freeze(DefaultR2b2Option);

@ -2,6 +2,7 @@ import { Button, Checkbox, Classes, HTMLSelect, Label, Position, Radio, RadioGro
import { observable } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
import { useRef } from 'react';
import { DrillType } from "../../../Add-on/DrawDrilling/DrillType";
import { app } from '../../../ApplicationServices/Application';
import { EBoardKeyList } from '../../../Common/BoardKeyList';
@ -14,6 +15,8 @@ import { BoardOpenDir, BoardType, BrRelativePos } from '../../../DatabaseService
import { PromptStatus } from '../../../Editor/PromptResult';
import { TempEditor } from '../../../Editor/TempEditor';
import { userConfig } from '../../../Editor/UserConfig';
import { IGoodInfo } from '../../MaterialEditor/GoodsList';
import { GoodsListDiv } from '../../MaterialEditor/GoodsListDiv';
import { BoardProcessOption } from "../../Store/OptionInterface/BoardProcessOption";
import { AnyObject, BoardConfigOption, IBaseOption, IDrawBoardAutoCutOption, IHightDrillOption, IUiOption, TBBoardOption } from "../../Store/OptionInterface/IOptionInterface";
import { RightPanelStore } from '../../Store/RightPanelStore/RightPanelStore';
@ -865,6 +868,91 @@ interface IAutoCutCheckboxProps
isFlex?: boolean;
onChangeCallback?: () => void;
}
interface IRoomAndBoardMaterialInfo extends IBoardMaterialInfo
{
data: IBoardMaterialData & {
roomName: string,
cabinetName: string;
};
vertical?: boolean;
}
export const RoomAndBoardMaterialInfo = observer((props: IRoomAndBoardMaterialInfo) =>
{
const { data, vertical } = props;
return (
<div className={vertical ? 'flexCol' : 'flex-between'}>
<div className="room-brmat-info">
<SetBoardDataItem
type={CheckObjectType.BR}
optKey="roomName"
option={data}
title="房间名"
placeHolder="输入房间名"
/>
<SetBoardDataItem
type={CheckObjectType.BR}
optKey="cabinetName"
option={data}
title="柜名"
placeHolder="输入柜名"
/>
</div>
<BoardMaterialInfo
data={data}
/>
</div>
);
});
interface IBoardMaterialData extends IBaseOption
{
boardMatName: string;
material: string;
color: string;
}
interface IBoardMaterialInfo
{
data: IBoardMaterialData;
}
export const BoardMaterialInfo = observer((props: IBoardMaterialInfo) =>
{
const { data } = props;
const showShopsRef = useRef(observable.box(false));
const matPars = [
["boardMatName", "板材名"], ["material", "材料"], ["color", "颜色"]
];
const selectGoods = (good: IGoodInfo) =>
{
data.boardMatName = good.name;
data.material = good.material;
data.color = good.color;
showShopsRef.current.set(false);
};
return (
<div className="flex br-mat brmat-info">
<SetBoardDataBlock
type={CheckObjectType.BR}
pars={matPars}
option={data}
isInline={true}
/>
<button
className="bp3-button bp3-intent-success"
style={{ width: "2rem" }}
onClick={() => { showShopsRef.current.set(true); }}
></button>
{
showShopsRef.current.get() && <GoodsListDiv
open={showShopsRef.current}
select={selectGoods}
/>
}
</div>
);
});
@observer
export class AutoCutCheckbox extends React.Component<IAutoCutCheckboxProps, {}>

@ -168,22 +168,6 @@ export class DoorConfigModal extends React.Component<{ store?: DoorDrawerStore;
/>
</div>
</div>
<div className='flex'>
<Tooltip content={"使用空间拾取板的房名,柜名,板材名,材料,颜色"}>
<Checkbox
checked={store.m_Option.useBoardProcessOption}
label="使用周围的板件数据"
onChange={() => { store.OnHandleUseBoardProcessOptionChange(); }}
/>
</Tooltip>
<Checkbox
checked={store.m_Option.isModifyHardwareMaterial}
disabled={!store.m_Option.useBoardProcessOption}
label="修改复合实体材料颜色属性"
style={{ marginLeft: 10 }}
onChange={() => { store.OnHandleIsModifyHardwareMaterialChange(); }}
/>
</div>
<Divider />
<div className='flex-between'>
<SetBoardDataItem
@ -362,23 +346,6 @@ export class DoorConfigModal extends React.Component<{ store?: DoorDrawerStore;
disabled={store.m_Option.isAuto}
/>
</Tooltip>
<Tooltip content={"使用空间拾取板的房名,柜名,板材名,材料,颜色"}>
<Checkbox
checked={store.m_Option.useBoardProcessOption}
label="使用周围的板件数据"
style={{ marginLeft: 10, marginBottom: 0 }}
onChange={() => { store.OnHandleUseBoardProcessOptionChange(); }}
/>
</Tooltip>
</div>
<div className='flex'>
<Checkbox
checked={store.m_Option.isModifyHardwareMaterial}
disabled={!store.m_Option.useBoardProcessOption}
label="修改复合实体材料颜色属性"
style={{ marginBottom: 0 }}
onChange={() => { store.OnHandleIsModifyHardwareMaterialChange(); }}
/>
</div>
</div>
<Divider />

@ -1,4 +1,4 @@
import { Button, Classes, H5 } from '@blueprintjs/core';
import { Button, Checkbox, Classes, Divider, H5, Tooltip } from '@blueprintjs/core';
import { observable } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
@ -12,6 +12,7 @@ import { DisableChangeParName } from '../../../Store/DoorInterface';
import { ModalState } from '../../Modal/ModalInterface';
import { TemplateDetail } from '../../Template/TemplateDetail';
import { TemplateSelect } from '../../Template/TemplateSelect';
import { RoomAndBoardMaterialInfo } from '../BoardCommon';
import { BoardModalType } from "../BoardModalType";
import { Config_ModalType, UserConfigComponent } from '../UserConfigComponent';
import { ModalFooter, ModalHeader } from './../../Modal/ModalContainer';
@ -92,6 +93,27 @@ export class DoorModal extends React.Component<{ store: DoorDrawerStore, type: B
</div> */}
</div>
<div className={Classes.CARD} style={{ minWidth: 350 }}>
<div style={{ marginBottom: 10 }}>
<div className='flex'>
<Tooltip content={"使用空间拾取板的房名,柜名,板材名,材料,颜色"}>
<Checkbox
checked={store.m_Option.useBoardProcessOption}
label="使用周围的板件数据"
onChange={() => { store.OnHandleUseBoardProcessOptionChange(); }}
/>
</Tooltip>
{
isDoor && <Checkbox
checked={store.m_Option.isModifyHardwareMaterial}
label="修改复合实体材料颜色属性"
style={{ marginLeft: 10 }}
onChange={() => { store.OnHandleIsModifyHardwareMaterialChange(); }}
/>
}
</div>
<RoomAndBoardMaterialInfo data={store.m_Option} />
</div>
<Divider />
<DoorPreviewComponent store={this.props.store} />
</div>
<div className={Classes.CARD} style={{ width: 250, overflow: "scroll" }}>

@ -19,7 +19,7 @@ import { WineRackStore } from '../../Store/WineRackStore';
import { GetCompoentObjectIdString } from '../ComponentObjectId';
import { CommonModal } from '../Modal/ModalContainer';
import { AppToaster, ToasterValueError } from '../Toaster';
import { Input5Or4Component, SetBoardDataBlock, SetBoardDataItem } from './BoardCommon';
import { Input5Or4Component, RoomAndBoardMaterialInfo, SetBoardDataBlock, SetBoardDataItem } from './BoardCommon';
import { BoardModalType } from "./BoardModalType";
import { Config_ModalType } from './UserConfigComponent';
@ -201,7 +201,11 @@ export class WineRackModal extends React.Component<{ store?: WineRackStore; }, {
label="使用周围的板件数据"
onChange={() => { store.OnHandleUseBoardProcessOptionChange(); }}
/>
<div className="flexWrap">
<RoomAndBoardMaterialInfo
data={m_Option}
vertical={true}
/>
<div className="flexWrap" style={{ marginTop: 10 }}>
{
[["heightCount", "高个数"], ["widthCount", "宽个数"]].map(([k, v]) =>
{

@ -10,7 +10,7 @@ import { KeyBoard } from '../../Common/KeyEnum';
import { LinesType } from '../../DatabaseServices/Entity/BoardInterface';
import { LatticeDrawerStore } from '../Store/LatticeDrawerStore';
import { ELatticeArrayType } from '../Store/LatticeInterface';
import { Input5Or4Component, SetBoardDataBlock, SetBoardDataItem } from './Board/BoardCommon';
import { Input5Or4Component, RoomAndBoardMaterialInfo, SetBoardDataBlock, SetBoardDataItem } from './Board/BoardCommon';
import { BoardModalType } from "./Board/BoardModalType";
import { Config_ModalType } from './Board/UserConfigComponent';
import { GetCompoentObjectIdString } from './ComponentObjectId';
@ -164,6 +164,10 @@ export class LatticeDrawer extends React.Component<{ store?: LatticeDrawerStore;
label="使用周围的板件数据"
onChange={() => { store.OnHandleUseBoardProcessOptionChange(); }}
/>
<RoomAndBoardMaterialInfo
data={m_Option}
vertical={true}
/>
</div>
<div style={{ width: 220 }}>
<H5></H5>

@ -367,3 +367,23 @@
padding: 2px 20px;
}
}
#commonModal{
.brmat-info {
position: relative;
input {
width: 6.5rem;
}
.br-set:last-child {
margin: 0;
}
}
.room-brmat-info{
input {
width: 6.5rem;
}
}
}

@ -40,7 +40,7 @@
.pre-canvas {
position: relative;
margin: 4rem auto 0 auto;
margin: 3rem auto 0 auto;
width: 350px;
height: 350px;
max-height: 500px;

@ -224,6 +224,15 @@ export class DoorStore extends DoorDrawerStore
cof.option.version = 9;
cof.option.isModifyHardwareMaterial = DefaultDoorOption.isModifyHardwareMaterial;
}
if (opt.version < 10)
{
cof.option.version = 10;
cof.option.boardMatName = DefaultDoorOption.boardMatName;
cof.option.material = DefaultDoorOption.material;
cof.option.color = DefaultDoorOption.color;
cof.option.roomName = DefaultDoorOption.roomName;
cof.option.cabinetName = DefaultDoorOption.cabinetName;
}
}
get UIRule()
{

@ -99,6 +99,7 @@ export class DrawerStore extends DoorDrawerStore
if (opt.version < 7)
{
opt.version = 7;
//抽屉现在不引用这个功能了
opt.isModifyHardwareMaterial = DefaultDrawerOption.isModifyHardwareMaterial;
}
if (opt.version < 8)
@ -106,6 +107,15 @@ export class DrawerStore extends DoorDrawerStore
opt.version = 8;
opt.isFloor50 = DefaultDrawerOption.isFloor50;
}
if (opt.version < 9)
{
opt.version = 9;
cof.option.boardMatName = DefaultDrawerOption.boardMatName;
cof.option.material = DefaultDrawerOption.material;
cof.option.color = DefaultDrawerOption.color;
cof.option.roomName = DefaultDrawerOption.roomName;
cof.option.cabinetName = DefaultDrawerOption.cabinetName;
}
}
SetDrawerDepth()
{

@ -39,6 +39,11 @@ export interface IDoorAndDrawerConfigOption extends IBaseOption
lbHightDrillOption: IHightDrillOption; //立板高级排钻
useBoardProcessOption?: boolean; //使用周围板件数据
isModifyHardwareMaterial: boolean; //使用周围板件数据时五金是否应用
boardMatName: string;//板材名
material: string;//材料
color: string;//颜色
roomName: string;//房名
cabinetName: string;//柜名
}
/**

@ -29,12 +29,20 @@ export class LatticeDrawerStore extends BoardStore
cof.option.version = 2;
cof.option.linesType = DefaultLatticOption.linesType;
}
if (ver < 3)
{
cof.option.version = 3;
cof.option.useBoardProcessOption = DefaultLatticOption.useBoardProcessOption;
}
if (ver < 4)
{
cof.option.version = 4;
cof.option.boardMatName = DefaultLatticOption.boardMatName;
cof.option.material = DefaultLatticOption.material;
cof.option.color = DefaultLatticOption.color;
cof.option.roomName = DefaultLatticOption.roomName;
cof.option.cabinetName = DefaultLatticOption.cabinetName;
}
Object.assign(this.m_Option, cof.option);
if (this.m_UiOption)

@ -30,4 +30,9 @@ export interface ILatticeOption extends IBaseOption
downCut: number;
linesType: number; //纹路
useBoardProcessOption?: boolean; //使用周围的板件数据
boardMatName: string;//板材名
material: string;//材料
color: string;//颜色
roomName: string;//房名
cabinetName: string;//柜名
}

@ -68,6 +68,11 @@ export interface IWineRackOption extends IBaseOption
isExtendsBH2: boolean;//是否继承
followNarrow: boolean;//酒格补板前缩跟随
useBoardProcessOption?: boolean; //使用周围的板件数据
boardMatName: string;//板材名
material: string;//材料
color: string;//颜色
roomName: string;//房名
cabinetName: string;//柜名
}
export interface IR2WROption

@ -50,6 +50,15 @@ export class WineRackStore extends BoardStore<IWineRackOption>
cof.option.version = 5;
cof.option.useBoardProcessOption = DefaultWineRackConfig.useBoardProcessOption;
}
if (cof.option.version < 6)
{
cof.option.version = 6;
cof.option.boardMatName = DefaultWineRackConfig.boardMatName;
cof.option.material = DefaultWineRackConfig.material;
cof.option.color = DefaultWineRackConfig.color;
cof.option.roomName = DefaultWineRackConfig.roomName;
cof.option.cabinetName = DefaultWineRackConfig.cabinetName;
}
Object.assign(this.m_Option, cof.option);
if (this.m_UiOption)

Loading…
Cancel
Save