!459 模板智能识别房名柜名 fix #I10I8C

pull/459/MERGE
ZoeLeeFZ 5 years ago committed by ChenX
parent fd1db57d85
commit f8add5532c

@ -2,11 +2,13 @@ import { Command } from "../../Editor/CommandMachine";
import { app } from "../../ApplicationServices/Application";
import { ModalPosition } from "../../UI/Components/Modal/ModalsManage";
import { TemplateManage } from "../../UI/Components/Template/TemplateComponent";
import { TempalteEditorStore } from "../../UI/Store/TemplateEditorStore";
export class ShowTemplate implements Command
{
async exec()
{
app.Editor.ModalManage.RenderModeless(TemplateManage, ModalPosition.Center, {});
let store = TempalteEditorStore.GetInstance() as TempalteEditorStore;
app.Editor.ModalManage.RenderModeless(TemplateManage, ModalPosition.Center, { store });
}
}

@ -1,18 +1,27 @@
import * as React from 'react';
import { Label, Classes, Button, Intent } from '@blueprintjs/core';
import { Label, Classes, Button, Intent, Checkbox } from '@blueprintjs/core';
import { app } from '../../../ApplicationServices/Application';
import { Board } from '../../../DatabaseServices/Entity/Board';
import { PromptStatus } from '../../../Editor/PromptResult';
import { EBoardKeyList } from '../../../Common/BoardKeyList';
import { observer } from 'mobx-react';
export interface IGetRoomCabNameProps
export interface IGetRoomInfo
{
option: { roomName: string, cabName: string }
roomName: string;
cabName: string;
isAuto?: boolean;
withName?: boolean;
}
interface IGetRoomCabNameProps
{
option: IGetRoomInfo;
needBoardName?: boolean;
isAuto?: boolean;
}
@observer
export default class GetRoomCabName extends React.Component<IGetRoomCabNameProps> {
export class GetRoomCabName extends React.Component<IGetRoomCabNameProps> {
private getOption = async () =>
{
app.Editor.ModalManage.ToggleShow();
@ -56,7 +65,36 @@ export default class GetRoomCabName extends React.Component<IGetRoomCabNameProps
</Label>
</div>
<Button text="拾取" intent={Intent.SUCCESS} onClick={this.getOption} />
{/* <Checkbox label="智能拾取" inline /> */}
<div style={{
marginLeft: 10,
}}>
{
this.props.needBoardName &&
<Checkbox
label="柜名跟随"
defaultChecked={true}
onChange={e =>
{
if (this.props.option.withName !== undefined)
this.props.option.withName = e.currentTarget.checked;
}}
/>
}
{
(this.props.isAuto === undefined || this.props.isAuto) &&
<Checkbox
label="智能识别"
style={{ marginBottom: 0 }}
defaultChecked={true}
onChange={e =>
{
if (this.props.option.isAuto !== undefined)
this.props.option.isAuto = e.currentTarget.checked;
}}
/>
}
</div>
</div>
);
}

@ -23,8 +23,9 @@ import { MenuItem } from '../ContextMenu/MenuItem';
import { CommonPanel, IDirectoryProps } from '../SourceManage/CommonPanel';
import { HandleDirComponent } from '../SourceManage/HandleDirComponent';
import { AppToaster } from '../Toaster';
import GetRoomCabName from './GetRoomCabName';
import { GetRoomCabName, IGetRoomInfo } from './GetRoomCabName';
import { TemplateList } from './TemplateList';
import { TempalteEditorStore } from '../../Store/TemplateEditorStore';
export interface INeedUpdateParams
{
@ -35,10 +36,12 @@ export interface INeedUpdateParams
}
@observer
export class TemplateManage extends React.Component<{}, {}> {
@observable private option = {
export class TemplateManage extends React.Component<{ store: TempalteEditorStore }, {}> {
@observable private option: IGetRoomInfo = {
roomName: "",
cabName: "",
withName: true, //柜名跟随
isAuto: true, //智能识别
};
private canCreateTemplate = observable.box(false);
@observable private currentProps: INeedUpdateParams[] = [];
@ -46,6 +49,7 @@ export class TemplateManage extends React.Component<{}, {}> {
constructor(props)
{
super(props);
this.option.cabName = "标准柜" + this.props.store.cabNameIndex;
}
private renderNav = () =>
{
@ -203,13 +207,15 @@ export class TemplateManage extends React.Component<{}, {}> {
app.Editor.ModalManage.ToggleShow();
app.Editor.MaskManage.Clear();
CommandWrap(async () =>
await CommandWrap(async () =>
{
if (isByBasePt)
await this.handleInsertByBasePt();
else
await this.handleInsertBySpace();
}, "插入模块");
if (this.option.withName)
this.option.cabName = "标准柜" + (++this.props.store.cabNameIndex);
app.Editor.ModalManage.ToggleShow();
app.Editor.MaskManage.ShowMask();
app.Editor.MaskManage.OnFocusEvent();
@ -271,7 +277,7 @@ export class TemplateManage extends React.Component<{}, {}> {
let seleteBrs = parse.Boards.filter(b => b.Template !== undefined);
if (parse.Boards.length > 0)
if (parse.Boards.length > 0 && !this.option.roomName && this.option.isAuto)
{
let process = parse.Boards[0].BoardProcessOption;
for (let b of nents)
@ -280,6 +286,14 @@ export class TemplateManage extends React.Component<{}, {}> {
b.BoardProcessOption[EBoardKeyList.CabinetName] = process[EBoardKeyList.CabinetName];
}
}
else
{
for (let b of nents)
{
b.BoardProcessOption[EBoardKeyList.RoomName] = this.option.roomName;
b.BoardProcessOption[EBoardKeyList.CabinetName] = this.option.cabName;
}
}
if (parse instanceof ClampSpaceParse)
{
@ -358,6 +372,7 @@ export class TemplateManage extends React.Component<{}, {}> {
isRename={this.canCreateTemplate}
currentProps={this.currentProps}
info={this.currentTemplateInfo}
option={this.option}
/>
{
this.canCreateTemplate.get() && <HandleDirComponent
@ -373,6 +388,8 @@ export class TemplateManage extends React.Component<{}, {}> {
<div className={Classes.DIALOG_FOOTER} >
<GetRoomCabName
option={this.option}
needBoardName
isAuto={this.option.roomName === ""}
/>
<div className={Classes.DIALOG_FOOTER_ACTIONS}>
<Button

@ -8,6 +8,7 @@ import { TemplateDetail } from './TemplateDetail';
import { ContextMenu, Menu, MenuItem, Popover, Position, Card, Button, Classes, Intent, Checkbox } from '@blueprintjs/core';
import { MouseKey } from '../../../Common/KeyEnum';
import { INeedUpdateParams } from './TemplateComponent';
import { IGetRoomInfo } from './GetRoomCabName';
export interface ITemplateListProps
{
@ -18,6 +19,7 @@ export interface ITemplateListProps
currentProps: INeedUpdateParams[];
isRename: IObservableValue<boolean>;
info: { id: string, name: string };
option: IGetRoomInfo;
}
@observer
@ -105,6 +107,8 @@ export class TemplateList extends React.Component<ITemplateListProps> {
}
else
{
if (!this.props.option.withName)
this.props.option.cabName = temp.name;
let pars = TemplateParamsIn(JSON.parse(inflate(temp.props)));
this._params = pars;
observable(this.props.currentProps).replace(pars.map(p =>

@ -16,7 +16,7 @@ import { MoveMatrix } from '../../../Geometry/GeUtils';
import { CommonPanel, IDirectoryProps } from '../SourceManage/CommonPanel';
import { HandleDirComponent } from '../SourceManage/HandleDirComponent';
import { AppToaster } from '../Toaster';
import GetRoomCabName from './GetRoomCabName';
import { GetRoomCabName } from './GetRoomCabName';
import { ToplineList } from './ToplineList';
interface ITopllineManageProps

@ -0,0 +1,19 @@
import { Singleton } from "../../Common/Singleton";
import { IConfigOption } from "../Components/Board/UserConfig";
import { IConfigStore } from "./BoardStore";
export class TempalteEditorStore extends Singleton implements IConfigStore
{
cabNameIndex = 0;
UpdateOption(cof: IConfigOption)
{
}
SaveConfig()
{
//新的配置
let newConfig: IConfigOption = {};
return newConfig;
}
}
Loading…
Cancel
Save