|
|
|
@ -5,9 +5,9 @@ import * as React from 'react';
|
|
|
|
|
import { AutoCutting } from '../../../Add-on/BoardCutting/AutoCuttingReactor';
|
|
|
|
|
import { DrillType } from "../../../Add-on/DrawDrilling/DrillType";
|
|
|
|
|
import { IsDoor, IsHandle, IsHinge } from '../../../Add-on/HideSelect/HideSelectUtils';
|
|
|
|
|
import { ITempTagProps, templateTagCommand } from '../../../Add-on/Template/TemplateTagCommand';
|
|
|
|
|
import { R2bReplaceProps } from '../../../Add-on/twoD2threeD/R2bConfigComponent';
|
|
|
|
|
import { templateTagCommand } from '../../../Add-on/Template/TemplateTagCommand';
|
|
|
|
|
import { app } from '../../../ApplicationServices/Application';
|
|
|
|
|
import { equalArray } from '../../../Common/ArrayExt';
|
|
|
|
|
import { EBoardKeyList } from '../../../Common/BoardKeyList';
|
|
|
|
|
import { TemplateUrls } from '../../../Common/HostUrl';
|
|
|
|
|
import { DirectoryId, PostJson, RequestStatus } from '../../../Common/Request';
|
|
|
|
@ -38,10 +38,9 @@ import { PointSelectSpaceClamp } from '../../../Geometry/SpaceParse/PointSelectS
|
|
|
|
|
import { arrayRemoveOnce } from '../../../Nest/Common/ArrayExt';
|
|
|
|
|
import { IDrawerDoorTempInfo } from '../../Store/DoorInterface';
|
|
|
|
|
import { kuGanStore } from '../../Store/KuGanStore';
|
|
|
|
|
import { IBaseOption, IDrawBoardAutoCutOption } from "../../Store/OptionInterface/IOptionInterface";
|
|
|
|
|
import { IDir } from '../../Store/OptionInterface/TemplateManageOption';
|
|
|
|
|
import { IDrawBoardAutoCutOption } from "../../Store/OptionInterface/IOptionInterface";
|
|
|
|
|
import { IDir, IHasAutoCutOption, ITemplateManage, ITemplateManageOption, TemplateManageOption } from '../../Store/OptionInterface/TemplateManageOption';
|
|
|
|
|
import { ITemplateParam } from "../../Store/RightPanelStore/ITemplateParam";
|
|
|
|
|
import { TempalteEditorStore } from '../../Store/TemplateEditorStore';
|
|
|
|
|
import { tempalteManageStore } from '../../Store/TemplateManageStore';
|
|
|
|
|
import { AutoCutCheckbox } from '../Board/BoardCommon';
|
|
|
|
|
import { MenuItem } from '../ContextMenu/MenuItem';
|
|
|
|
@ -60,34 +59,6 @@ import { TemplateDrawHandleTool } from './TemplateDrawHandleTool';
|
|
|
|
|
import { TemplateDrawHingeTool } from './TemplateDrawHingeTool';
|
|
|
|
|
import { TemplateList } from './TemplateList';
|
|
|
|
|
|
|
|
|
|
export interface ITemplateManage
|
|
|
|
|
{
|
|
|
|
|
store?: TempalteEditorStore;
|
|
|
|
|
currentTag?: ITempTagProps;
|
|
|
|
|
R2bReplace?: R2bReplaceProps;
|
|
|
|
|
type: "Administration" | "Collection"; //模板管理和收藏
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface TemplateManageUiOption
|
|
|
|
|
{
|
|
|
|
|
navigationWidth: string,
|
|
|
|
|
showTag: boolean;
|
|
|
|
|
};
|
|
|
|
|
export interface ITemplateManageOption extends IBaseOption
|
|
|
|
|
{
|
|
|
|
|
option: IGetRoomInfo;
|
|
|
|
|
autoCutOption: IDrawBoardAutoCutOption;
|
|
|
|
|
uiOption: TemplateManageUiOption;
|
|
|
|
|
perPageCount: number;
|
|
|
|
|
useOverallOption: boolean;
|
|
|
|
|
dirData?: IDir[];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface IHasAutoCutOption extends IDir
|
|
|
|
|
{
|
|
|
|
|
autoCutOption?: IDrawBoardAutoCutOption;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@observer
|
|
|
|
|
export class TemplateManage extends React.Component<ITemplateManage, {}> {
|
|
|
|
|
private option: IGetRoomInfo = {
|
|
|
|
@ -107,8 +78,10 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
|
|
|
|
|
};
|
|
|
|
|
@observable autoCutOption: IDrawBoardAutoCutOption = { isAutoCut: false, isRelevance: false };
|
|
|
|
|
private uiOption = { navigationWidth: "25%", showTag: true };
|
|
|
|
|
//初始模板管理UI的option
|
|
|
|
|
private InitialOptionData: any[] = [];
|
|
|
|
|
@observable templateManageOption: ITemplateManageOption = {
|
|
|
|
|
version: 2,
|
|
|
|
|
version: 3,
|
|
|
|
|
option: this.option,
|
|
|
|
|
autoCutOption: toJS(this.autoCutOption),
|
|
|
|
|
uiOption: this.uiOption,
|
|
|
|
@ -1145,19 +1118,41 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
|
|
|
|
|
return currentItem;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GetOptionConfig(m_Option: ITemplateManageOption, autoCutOption: IDrawBoardAutoCutOption)
|
|
|
|
|
{
|
|
|
|
|
const autoCutOpt = m_Option.useOverallOption ? m_Option.autoCutOption : autoCutOption;
|
|
|
|
|
//由于之前保存的数据就是展开的,所以这里也只能跟着展开保存
|
|
|
|
|
let opt = {
|
|
|
|
|
version: m_Option.version,
|
|
|
|
|
...m_Option.option,
|
|
|
|
|
...autoCutOpt,
|
|
|
|
|
...m_Option.uiOption,
|
|
|
|
|
perPageCount: m_Option.perPageCount,
|
|
|
|
|
useOverallOption: m_Option.useOverallOption,
|
|
|
|
|
dirData: toJS(m_Option.dirData)
|
|
|
|
|
} as TemplateManageOption;
|
|
|
|
|
return toJS(opt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async componentDidMount()
|
|
|
|
|
{
|
|
|
|
|
//分离配置实现,但保持原来的实现方式(通过传参修改),这里的option引用太多了本来只需要保存roomName和useCabName,但他已经把option所有配置都保存了,没办法
|
|
|
|
|
await tempalteManageStore.UpdateOption(this.templateManageOption, this.autoCutOption);
|
|
|
|
|
|
|
|
|
|
this.InitialOptionData = tempalteManageStore.WriteFlie(this.templateManageOption, this.autoCutOption);
|
|
|
|
|
this.noUseOverAllOptionsChange();
|
|
|
|
|
|
|
|
|
|
document.addEventListener('keyup', this.handleHotKey);
|
|
|
|
|
}
|
|
|
|
|
componentWillUnmount()
|
|
|
|
|
{
|
|
|
|
|
templateTagCommand.UploadTagList();
|
|
|
|
|
tempalteManageStore.SaveConfig(this.templateManageOption, this.autoCutOption); //保存模板管理配置
|
|
|
|
|
|
|
|
|
|
let newConfigData = tempalteManageStore.WriteFlie(this.templateManageOption, this.autoCutOption);
|
|
|
|
|
if (!equalArray(newConfigData, this.InitialOptionData))
|
|
|
|
|
{
|
|
|
|
|
let newConfig = this.GetOptionConfig(this.templateManageOption, this.autoCutOption);
|
|
|
|
|
tempalteManageStore.SaveConfig(newConfig); //保存模板管理配置
|
|
|
|
|
}
|
|
|
|
|
this.InitialOptionData = [];
|
|
|
|
|
document.removeEventListener('keyup', this.handleHotKey);
|
|
|
|
|
}
|
|
|
|
|
public render()
|
|
|
|
|