!1780 修改拆单五金价格超过最大值时,改为1

pull/1779/MERGE
cf-erp 3 years ago committed by ChenX
parent 8771b242fe
commit bb1b3ba1da

@ -1,47 +1,47 @@
import { FileRule, RuleBuilder, RuleNumRange, RuleRequired, RuleStringLength } from "./Validate";
import { FiledRule, RuleBuilder, RuleNumRange, RuleRequired, RuleStringLength } from "./Validate";
export const blockBuilder = new RuleBuilder();
blockBuilder.UseFiled(new FileRule('RoomName', '房名')
blockBuilder.UseFiled(new FiledRule('RoomName', '房名')
.AddRule(new RuleRequired())
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('BoxName', '柜名')
.UseFiled(new FiledRule('BoxName', '柜名')
.AddRule(new RuleRequired())
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('BoardName', '板名称')
.UseFiled(new FiledRule('BoardName', '板名称')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Material', '材料')
.UseFiled(new FiledRule('Material', '材料')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('MaterialName', '材料名称')
.UseFiled(new FiledRule('MaterialName', '材料名称')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Color', '颜色')
.UseFiled(new FiledRule('Color', '颜色')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('SealedLeft', '左封边')
.UseFiled(new FiledRule('SealedLeft', '左封边')
.AddRule(new RuleRequired()))
.UseFiled(new FileRule('SealedRight', '右封边')
.UseFiled(new FiledRule('SealedRight', '右封边')
.AddRule(new RuleRequired()))
.UseFiled(new FileRule('SealedUp', '上封边')
.UseFiled(new FiledRule('SealedUp', '上封边')
.AddRule(new RuleRequired()))
.UseFiled(new FileRule('SealedDown', '下封边')
.UseFiled(new FiledRule('SealedDown', '下封边')
.AddRule(new RuleRequired()));
export const objectBuilder = new RuleBuilder();
objectBuilder.UseFiled(new FileRule('RoomName', '房名')
objectBuilder.UseFiled(new FiledRule('RoomName', '房名')
.AddRule(new RuleRequired())
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('BoxName', '柜名')
.UseFiled(new FiledRule('BoxName', '柜名')
.AddRule(new RuleRequired())
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Name', '名称')
.UseFiled(new FiledRule('Name', '名称')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Model', '型号')
.UseFiled(new FiledRule('Model', '型号')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Spec', '规格')
.UseFiled(new FiledRule('Spec', '规格')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Brand', '品牌')
.UseFiled(new FiledRule('Brand', '品牌')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('Factory', '厂家')
.UseFiled(new FiledRule('Factory', '厂家')
.AddRule(new RuleStringLength(50)))
.UseFiled(new FileRule('SalePrice', '五金价格')
.AddRule(new RuleNumRange(0, 99999999)))
.UseFiled(new FileRule('Num', '五金数量')
.UseFiled(new FiledRule('SalePrice', '五金价格')
.AddRule(new RuleNumRange(0, 99999999, 1)))
.UseFiled(new FiledRule('Num', '五金数量')
.AddRule(new RuleNumRange(0, 99999)))
.UseFiled(new FileRule('Remark', '备注')
.UseFiled(new FiledRule('Remark', '备注')
.AddRule(new RuleStringLength(50)));

@ -21,8 +21,22 @@ switch (location.hostname)
if (location.hash != '')
{
let branch = location.hash.match(/cd=(.+)?&?/)[1];
let host = ErpURL.host;
if (branch)
{
const r = new RegExp(`${host}/branch=(.*?)`, 'g');
if (!r.test(branch))
{
if (location.hostname === 'localhost')
{
ErpURL.host = branch;
} else
{
ErpURL.host = host + `/branch=${branch}/`;
}
} else
{
ErpURL.host = branch;
}
}
}

@ -4,7 +4,7 @@ class RuleBase
Filed: string;
FiledName: string;
value: object;
IsValid(value)
IsValid(value, filed)
{
return true;
}
@ -16,10 +16,10 @@ class RuleBase
}
export class RuleRequired extends RuleBase
{
IsValid(value)
IsValid(row, filed)
{
this.value = value;
if (value == null || Object.is(value, NaN) || value.length == 0)
this.value = row[filed];
if (row[filed] == null || Object.is(row[filed], NaN) || row[filed].length == 0)
{
return false;
}
@ -38,10 +38,10 @@ export class RuleStringLength extends RuleBase
this.Maxlength = maxlength;
}
Maxlength: number;
IsValid(value)
IsValid(row, filed)
{
this.value = value;
if (value && value.length > this.Maxlength)
this.value = row[filed];
if (row[filed] && row[filed].length > this.Maxlength)
{
return false;
}
@ -55,19 +55,26 @@ export class RuleStringLength extends RuleBase
}
export class RuleNumRange extends RuleBase
{
constructor(min: number, max: number)
constructor(min: number, max: number, exceedValue: number | undefined = undefined)
{
super();
this.Min = min;
this.Max = max;
this.ExceedValue = exceedValue;
}
Min: number;
Max: number;
IsValid(value)
ExceedValue: number | undefined;
IsValid(row, filed)
{
this.value = value;
if (value && !(Number(value) >= this.Min && Number(value) <= this.Max))
this.value = row[filed];
if (row[filed] && !(Number(row[filed]) >= this.Min && Number(row[filed]) <= this.Max))
{
if (this.ExceedValue != undefined)
{
row[filed] = this.ExceedValue;
return true;
}
return false;
}
@ -83,7 +90,7 @@ export interface CheckResult
result: boolean;
msg: string;
}
export class FileRule
export class FiledRule
{
constructor(filed: string, filedName: string)
{
@ -93,7 +100,7 @@ export class FileRule
Filed: string;
FiledName: string;
RuleList: RuleBase[] = [];
AddRule(filedRule: RuleBase): FileRule
AddRule(filedRule: RuleBase): FiledRule
{
filedRule.Filed = this.Filed;
filedRule.FiledName = this.FiledName;
@ -103,8 +110,8 @@ export class FileRule
}
export class RuleBuilder
{
private FiledList: FileRule[] = [];
UseFiled(filedRule: FileRule): RuleBuilder
private FiledList: FiledRule[] = [];
UseFiled(filedRule: FiledRule): RuleBuilder
{
this.FiledList.push(filedRule);
return this;
@ -118,7 +125,7 @@ export class RuleBuilder
{
for (const r of fl.RuleList)
{
let res = r.IsValid(value[r.Filed]);
let res = r.IsValid(value, r.Filed);
if (res == false)
{
return { result: res, msg: r.FormatErrorMessage() };

Loading…
Cancel
Save