!2800 02190. 查找修改功能,增加支持备注信息模糊查询

pull/2768/MERGE
彭泽 3 months ago committed by 林三
parent 5aea7ae83c
commit 1b18102911

@ -19,6 +19,7 @@ import { PromptStatus } from "../Editor/PromptResult";
import { SelectSetBase } from "../Editor/SelectBase";
import { equaln } from "../Geometry/GeUtils";
import { IHardwareType, Production } from "../Production/Product";
import { FindModifyStyle } from "../UI/Components/Board/BoardFindInterface";
import BoardFindModifyModal from "../UI/Components/Board/BoardFindModify";
import { DRILL_KEYS, ECompareType, EFindType, IBoardFindOption, IFindCondition } from "../UI/Store/BoardFindInterface";
import { BoardFindStore } from "../UI/Store/BoardFindModifyStore";
@ -269,26 +270,69 @@ export class BoardFindModify implements Command
isVail = true;
break;
case "useKeyWord":
let findModifyStyle = option.query;
let brRemarks = br.BoardProcessOption.remarks;
let remarks: [string, string][] = [];
for (let d of option.remarks)
{
if (d[0] && d[1])
if (d[0] || d[1])
remarks.push([d[0], d[1]]);
}
//备注全空
if (!remarks.length && !brRemarks.length)
{
isVail = true;
break;
}
for (let r of brRemarks)
{
for (let r2 of remarks)
{
if (r[0] === r2[0] && r[1] === r2[1])
switch (findModifyStyle)
{
isVail = true;
break;
case FindModifyStyle.PreciseQuery:
if (r2[0] || r2[1])
{
//两者都有值时 需都相等
if (r2[0] && r2[1])
{
if (r[0] === r2[0] && r[1] === r2[1])
{
isVail = true;
break;
}
}
//其中一个有值时
else if (r2[0])
{
if (r[0] === r2[0])
{
isVail = true;
break;
}
}
else
{
if (r[1] === r2[1])
{
isVail = true;
break;
}
}
}
break;
case FindModifyStyle.FuzzyQuery:
if (CompareIsEqual(r[0], r2[0], ECompareType.Include) && CompareIsEqual(r[1], r2[1], ECompareType.Include))
{
isVail = true;
break;
}
break;
}
}
}
break;
case "useChaidan":
isVail = br.IsChaiDan === option.isChaidan;

@ -5,6 +5,7 @@ import { EBoardKeyList } from "../Common/BoardKeyList";
import { BoardOpenDir, BoardType, BrRelativePos, ComposingType, LinesType } from "../DatabaseServices/Entity/BoardInterface";
import { SpaceParseOption } from "../Geometry/SpaceParse/SpaceParseStore";
import { RenderType } from "../GraphicsSystem/RenderType";
import { FindModifyStyle } from "../UI/Components/Board/BoardFindInterface";
import { IUpdateBoardInfosOption } from "../UI/Components/Board/UpdateBoardInfointerface";
import { EMetalsType, ICompHardwareOption, ICylMetalsOption, IExtMetalsOption, IToplineOption } from "../UI/Components/RightPanel/RightPanelInterface";
import { IKuGangDrawOption } from "../UI/Components/Template/TemplateInterface";
@ -334,7 +335,7 @@ export const DefaultClosingStripOption: ClosingStripOption = {
Object.freeze(DefaultClosingStripOption);
export const DefaultBoardFindOption: IBoardFindOption = {
version: 9,
version: 10,
condition: {
// layer: false, //这个KEY看起来没用了
height: false,
@ -392,7 +393,6 @@ export const DefaultBoardFindOption: IBoardFindOption = {
composingFace: ECompareType.Equal,
openDir: ECompareType.Equal,
[EBoardKeyList.KnifeRad]: ECompareType.Equal,
},
tolerance: {
height: "",
@ -432,6 +432,7 @@ export const DefaultBoardFindOption: IBoardFindOption = {
edgeRemarkDown: "",
edgeRemarkLeft: "",
edgeRemarkRight: "",
query: FindModifyStyle.FuzzyQuery
};
Object.freeze(DefaultBoardFindOption);

@ -0,0 +1,5 @@
export enum FindModifyStyle
{
FuzzyQuery = 0,//模糊匹配
PreciseQuery = 1, //精确匹配
}

@ -1,4 +1,4 @@
import { Button, Card, Checkbox, Classes, H5, HTMLSelect, Intent, Popover, Position, Tooltip } from '@blueprintjs/core';
import { Button, Card, Checkbox, Classes, H5, HTMLSelect, Intent, Popover, Position, Radio, RadioGroup, Tooltip } from '@blueprintjs/core';
import { observable } from 'mobx';
import { inject, observer } from 'mobx-react';
import * as React from 'react';
@ -17,6 +17,7 @@ import { CommonModal } from '../Modal/ModalContainer';
import { ModalState } from '../Modal/ModalInterface';
import { Notes, openDirOptions } from './BoardCommon';
import { BoardFindItem, BoardFindSelectItem, MatColorCom, SealDrillCom } from './BoardFindCommon';
import { FindModifyStyle } from './BoardFindInterface';
import { BoardModalType } from "./BoardModalType";
import { Config_ModalType } from './UserConfigComponent';
@ -30,7 +31,8 @@ interface IBoardFindState
@inject('store')
@observer
export default class BoardFindModifyModal extends React.Component<{ store?: BoardFindStore; }, IBoardFindState> {
export default class BoardFindModifyModal extends React.Component<{ store?: BoardFindStore; }, IBoardFindState>
{
private event: Function;
@observable _brNameList: [string, boolean][] = [
["左侧板", false], ["右侧板", false], ["顶板", false], ["底板", false],
@ -634,6 +636,18 @@ export default class BoardFindModifyModal extends React.Component<{ store?: Boar
onClosed={el => el.onkeydown = null}
content={
<Card tabIndex={-1} >
<h5 style={{ margin: "5px" }}></h5>
<RadioGroup
inline={true}
selectedValue={store.m_Option.query}
onChange={(e) =>
{
store.m_Option.query = parseInt(e.currentTarget.value);
}}
>
<Radio label="模糊匹配" value={FindModifyStyle.FuzzyQuery} />
<Radio label="精确匹配" value={FindModifyStyle.PreciseQuery} />
</RadioGroup>
<Notes
remarks={store.m_Option.remarks}
/>

@ -1,6 +1,7 @@
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
import { EBoardKeyList } from "../../Common/BoardKeyList";
import { BoardOpenDir, ComposingType, LinesType } from "../../DatabaseServices/Entity/BoardInterface";
import { FindModifyStyle } from "../Components/Board/BoardFindInterface";
import { IBaseOption } from "./OptionInterface/IOptionInterface";
export const DRILL_KEYS = ["downDrill", "rightDrill", "upDrill", "leftDrill"]; //这个顺序不能变
@ -38,6 +39,7 @@ export interface IBoardFindOption extends IBaseOption
upDownDrill: [boolean, boolean];
isClose: boolean;
remarks: [string, string][];
query: FindModifyStyle;
extraRemarks: [string, string][];
isChaidan: boolean;
[EBoardKeyList.KnifeRad]: string;

@ -6,6 +6,7 @@ import { DataAdapter } from "../../Common/DataAdapter";
import { BoardOpenDir } from "../../DatabaseServices/Entity/BoardInterface";
import { DefaultBoardFindOption } from "../../Editor/DefaultConfig";
import { userConfig } from "../../Editor/UserConfig";
import { FindModifyStyle } from "../Components/Board/BoardFindInterface";
import { IConfigOption } from "../Components/Board/UserConfigComponent";
import { ModalState } from "../Components/Modal/ModalInterface";
import { ToasterValueError } from "../Components/Toaster";
@ -139,7 +140,11 @@ export class BoardFindStore extends BoardStore
cof.option.condition.edgeRemarkLeft = false;
cof.option.condition.edgeRemarkRight = false;
}
if (cof.option.version < 10)
{
cof.option.version = 10;
cof.option.query = FindModifyStyle.FuzzyQuery;
}
Object.assign(this.m_Option, cof.option);
if (this.m_UiOption)
Object.assign(this.m_UiOption, DataAdapter.ConvertUIData(cof.option));

Loading…
Cancel
Save