!2619 优化:复合实体格式刷功能改进

pull/2566/MERGE
钱若寒 5 months ago committed by ChenX
parent d567d3ad75
commit b072fbb931

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

Loading…
Cancel
Save