|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
import { Button, Checkbox, Intent } from '@blueprintjs/core';
|
|
|
|
|
import { Button, Checkbox, H5, Intent } from '@blueprintjs/core';
|
|
|
|
|
import { observable, toJS } from 'mobx';
|
|
|
|
|
import { observer } from 'mobx-react';
|
|
|
|
|
import * as React from 'react';
|
|
|
|
@ -8,6 +8,7 @@ import { EBoardKeyList } from '../Common/BoardKeyList';
|
|
|
|
|
import { ConfigUrls } from '../Common/HostUrl';
|
|
|
|
|
import { PostJson, RequestStatus } from '../Common/Request';
|
|
|
|
|
import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCompositeEntity";
|
|
|
|
|
import { ProcessingGroupRecord } from '../DatabaseServices/ProcessingGroup/ProcessingGroupRecord';
|
|
|
|
|
import { Command } from "../Editor/CommandMachine";
|
|
|
|
|
import { PromptStatus } from "../Editor/PromptResult";
|
|
|
|
|
import { CommonModal } from '../UI/Components/Modal/ModalContainer';
|
|
|
|
@ -22,6 +23,19 @@ interface IBrushOption
|
|
|
|
|
name: boolean;
|
|
|
|
|
factory: boolean;
|
|
|
|
|
comments: boolean;
|
|
|
|
|
isSplite: boolean;
|
|
|
|
|
actualExpr: boolean;
|
|
|
|
|
isSplitePrice: boolean;
|
|
|
|
|
isHole: boolean;
|
|
|
|
|
brand: boolean;
|
|
|
|
|
model: boolean;
|
|
|
|
|
spec: boolean;
|
|
|
|
|
count: boolean;
|
|
|
|
|
unit: boolean;
|
|
|
|
|
ProcessingGroupList: boolean;
|
|
|
|
|
material: boolean;
|
|
|
|
|
color: boolean;
|
|
|
|
|
DataList: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class CombinatAttributeBrush implements Command
|
|
|
|
@ -55,6 +69,19 @@ export class CombinatAttributeBrush implements Command
|
|
|
|
|
name: false,
|
|
|
|
|
factory: false,
|
|
|
|
|
comments: false,
|
|
|
|
|
isSplite: false,
|
|
|
|
|
actualExpr: false,
|
|
|
|
|
isSplitePrice: false,
|
|
|
|
|
isHole: false,
|
|
|
|
|
brand: false,
|
|
|
|
|
model: false,
|
|
|
|
|
spec: false,
|
|
|
|
|
count: false,
|
|
|
|
|
unit: false,
|
|
|
|
|
ProcessingGroupList: false,
|
|
|
|
|
material: false,
|
|
|
|
|
color: false,
|
|
|
|
|
DataList: false,
|
|
|
|
|
});
|
|
|
|
|
if (appCache.has(BrushModal.name))
|
|
|
|
|
{
|
|
|
|
@ -91,22 +118,36 @@ export class CombinatAttributeBrush implements Command
|
|
|
|
|
en.HardwareOption = { ...orgEn.HardwareOption };
|
|
|
|
|
en.DataList = [...orgEn.DataList.map(d => [d[0], d[1]])] as [string, string][];
|
|
|
|
|
}
|
|
|
|
|
if (option.ProcessingGroupList)
|
|
|
|
|
{
|
|
|
|
|
// 复制加工组
|
|
|
|
|
[...orgEn.ProcessingGroupList].map(item =>
|
|
|
|
|
{
|
|
|
|
|
let pg = new ProcessingGroupRecord;
|
|
|
|
|
pg.Name = (item?.Object as ProcessingGroupRecord).Name;
|
|
|
|
|
pg.Objects = [en.Id];
|
|
|
|
|
if (en.ProcessingGroupList.some(pgId => pg.Name === (pgId?.Object as ProcessingGroupRecord)?.Name))
|
|
|
|
|
return;
|
|
|
|
|
app.Database.ProcessingGroupTable.Add(pg);
|
|
|
|
|
en.ProcessingGroupList.push(pg.Id);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (option.roomName)
|
|
|
|
|
en.HardwareOption[EBoardKeyList.RoomName] = orgEn.HardwareOption[EBoardKeyList.RoomName];
|
|
|
|
|
|
|
|
|
|
if (option.name)
|
|
|
|
|
en.HardwareOption.name = orgEn.HardwareOption.name;
|
|
|
|
|
|
|
|
|
|
if (option.cabName)
|
|
|
|
|
for (const k in option)
|
|
|
|
|
{
|
|
|
|
|
if (option[k])
|
|
|
|
|
{
|
|
|
|
|
if (k === 'cabName')
|
|
|
|
|
en.HardwareOption[EBoardKeyList.CabinetName] = orgEn.HardwareOption[EBoardKeyList.CabinetName];
|
|
|
|
|
|
|
|
|
|
if (option.factory)
|
|
|
|
|
en.HardwareOption.factory = orgEn.HardwareOption.factory;
|
|
|
|
|
else if (k === 'DataList')
|
|
|
|
|
en.DataList = [...orgEn.DataList.map(d => [d[0], d[1]])] as [string, string][];
|
|
|
|
|
|
|
|
|
|
if (option.comments)
|
|
|
|
|
en.HardwareOption.comments = orgEn.HardwareOption.comments;
|
|
|
|
|
else
|
|
|
|
|
en.HardwareOption[k] = orgEn.HardwareOption[k];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -121,10 +162,24 @@ const PARS: [string, keyof IBrushOption][] = [
|
|
|
|
|
["拷贝房间名称", "roomName"],
|
|
|
|
|
["拷贝厂家", "factory"],
|
|
|
|
|
["拷贝备注", "comments"],
|
|
|
|
|
["拷贝拆解", "isSplite"],
|
|
|
|
|
["拷贝拆解价格", "isSplitePrice"],
|
|
|
|
|
["拷贝挖孔", "isHole"],
|
|
|
|
|
["拷贝品牌", "brand"],
|
|
|
|
|
["拷贝型号", "model"],
|
|
|
|
|
["拷贝规格", "spec"],
|
|
|
|
|
["拷贝数量", "count"],
|
|
|
|
|
["拷贝单位", "unit"],
|
|
|
|
|
["拷贝价格", "actualExpr"],
|
|
|
|
|
["拷贝材质", "material"],
|
|
|
|
|
["拷贝颜色", "color"],
|
|
|
|
|
["拷贝特殊备注", "DataList"],
|
|
|
|
|
["追加加工组", "ProcessingGroupList"],
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
@observer
|
|
|
|
|
export class BrushModal extends React.Component<{ option: IBrushOption; }> {
|
|
|
|
|
export class BrushModal extends React.Component<{ option: IBrushOption; }>
|
|
|
|
|
{
|
|
|
|
|
public render()
|
|
|
|
|
{
|
|
|
|
|
const option = this.props.option;
|
|
|
|
@ -142,13 +197,25 @@ export class BrushModal extends React.Component<{ option: IBrushOption; }> {
|
|
|
|
|
</>
|
|
|
|
|
}
|
|
|
|
|
>
|
|
|
|
|
<H5 style={{ padding: "10px 0 0 35px" }}>基本属性</H5>
|
|
|
|
|
<div style={{ columnCount: 2, margin: '12px 35px 0 35px', }}>
|
|
|
|
|
<div>
|
|
|
|
|
{
|
|
|
|
|
PARS.map(([t, k]) =>
|
|
|
|
|
<Checkbox style={{ marginLeft: 50 }} label={t} checked={option[k]} onChange={() => option[k] = !option[k]} key={t} />
|
|
|
|
|
k !== 'ProcessingGroupList' &&
|
|
|
|
|
<Checkbox style={{ marginLeft: 20 }} label={t} checked={option[k]} onChange={() => option[k] = !option[k]} key={t} />
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style={{ paddingLeft: "35px" }} >
|
|
|
|
|
<H5>加工组</H5>
|
|
|
|
|
{
|
|
|
|
|
<div style={{ width: "40%" }}>
|
|
|
|
|
<Checkbox style={{ marginLeft: 20 }} label={"追加加工组"} checked={option["ProcessingGroupList"]} onChange={() => option["ProcessingGroupList"] = !option["ProcessingGroupList"]} key={"追加加工组"} />
|
|
|
|
|
</div>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
</CommonModal>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|