!1581 拆单增加字符串长度校验

pull/310/MERGE
cf-erp 3 years ago committed by ChenX
parent 4cc0aaef75
commit 0bccddc57b

@ -20,9 +20,11 @@ import { BoardStore } from "../../UI/Store/BoardStore";
import { ErpView } from "./ErpView";
import { ExceedMind } from "./ExceedBlocksMind";
import { OrderDataBlock, WaveType } from "./Models/CadBlock";
import { OrderDataObject } from './Models/CadObject';
import { ErpRouteInfo } from "./Models/ErpRouteInfo";
import { ErpRoutes } from "./Models/ErpRoutes";
import { ErpParseData } from "./ParseData";
import { CheckResult, FiledRule, RuleType, Validate } from "./Validate";
export class ChaiDan implements Command
{
@ -265,6 +267,17 @@ async function ExecChaiDan(chaiDanRoute: ErpRoutes)
return;
}
}
//校验拆单数据
let check = CheckData(parseData);
if (check.result === false)
{
AppToaster.show({
message: `拆单数据校验错误:${check.msg}`,
intent: Intent.DANGER,
timeout: 3000,
});
return;
}
app.Editor.ModalManage.RenderModal(ErpView, {
erpRoute: routeInfo,
session: localStorage.getItem(StoreageKeys.PlatSession),
@ -273,6 +286,38 @@ async function ExecChaiDan(chaiDanRoute: ErpRoutes)
store: store,
});
}
function CheckData(parseData: any): CheckResult
{
let blockCheck = checkBlocks(parseData.blockList);
if (blockCheck.result === false) return blockCheck;
return checkObjects(parseData.objectList);
}
function checkBlocks(blockList: OrderDataBlock[]): CheckResult
{
let blockRules: FiledRule[] = [];
blockRules.push({ filed: 'RoomName', name: '房名', [RuleType.Required]: true, [RuleType.Maxlength]: 50 });
blockRules.push({ filed: 'BoxName', name: '柜名', [RuleType.Required]: true, [RuleType.Maxlength]: 50 });
blockRules.push({ filed: 'BoardName', name: '板名称', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
blockRules.push({ filed: 'Material', name: '材料', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
blockRules.push({ filed: 'MaterialName', name: '材料名称', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
blockRules.push({ filed: 'Color', name: '颜色', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
let blockResult = Validate.CheckData(blockList, blockRules);
return blockResult;
}
function checkObjects(objectList: OrderDataObject[]): CheckResult
{
let objRules: FiledRule[] = [];
objRules.push({ filed: 'RoomName', name: '房名', [RuleType.Required]: true, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'BoxName', name: '柜名', [RuleType.Required]: true, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'Name', name: '名称', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'Model', name: '型号', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'Spec', name: '规格', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'Brand', name: '品牌', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'Factory', name: '厂家', [RuleType.Required]: false, [RuleType.Maxlength]: 50 });
objRules.push({ filed: 'Remark', name: '备注', [RuleType.Required]: false, [RuleType.Maxlength]: 150 });
let objResult = Validate.CheckData(objectList, objRules);
return objResult;
}
async function DecomposeObject()
{
let selction = await GetProductsEntitys();

@ -0,0 +1,55 @@
export enum RuleType { Required = 'Required', Maxlength = 'Maxlength' }
export interface FiledRule
{
filed: string;
name: string;
[RuleType.Required]: boolean;
[RuleType.Maxlength]: number;
}
export interface CheckResult
{
result: boolean;
msg: string;
}
export class Validate
{
static CheckData(dataList: any[], filedRules: FiledRule[]): CheckResult
{
let result = { result: true, msg: '' };
for (const value of dataList)
{
for (const r of filedRules)
{
if (r.Required)
{
result = this.CheckRequired(value, r);
if (result.result == false) return result;
}
if (r.Maxlength > 0)
{
result = this.CheckMaxLength(value, r);
if (result.result == false) return result;
}
}
}
return result;
}
private static CheckRequired(value: any, filedRule: FiledRule): CheckResult
{
if (!value[filedRule.filed])
{
return { result: false, msg: `${filedRule.name}不能为空!` };
}
return { result: true, msg: '' };
}
private static CheckMaxLength(value: any, filedRule: FiledRule)
{
if (value[filedRule.filed] && value[filedRule.filed].length > filedRule.Maxlength)
{
return { result: false, msg: `${filedRule.name}:[${value[filedRule.filed]}],超过长度限制:${filedRule.Maxlength}!` };
}
return { result: true, msg: '' };
}
}
Loading…
Cancel
Save