import { operationExpReg } from "./Utils"; export enum CheckObjectType { BR = "board", DR = "drill", AR = "array", } export namespace CheckoutValid { export function HasInvailValue(obj: Object, objType: CheckObjectType) { switch (objType) { case CheckObjectType.BR: return !Object.keys(obj).every(k => CheckoutBoardOption(k, obj[k]) === "" ) case CheckObjectType.AR: return !Object.keys(obj).every(k => CheckoutArrayOption(k, obj[k]) === "" ) } } export function CheckOption(type: CheckObjectType, k: string, v: string) { switch (type) { case CheckObjectType.BR: return CheckoutBoardOption(k, v); case CheckObjectType.DR: return CheckoutDrillOption(k, v); case CheckObjectType.AR: return CheckoutArrayOption(k, v); } } export function CheckoutBoardOption(k: string, v: string): string { switch (k) { case "calcHeight": case "calcWidth": if (!operationExpReg.test(v.replace(/["H"|"L"|]/, "1"))) return "表达式错误"; return ""; case "name": case "boardPosition": case "boardRelative": case "type": case "roomName": case "cabinetName": case "boardName": case "material": case "color": case "striptype": case "spliteHeight": case "spliteWidth": case "spliteThickness": return ""; case "height": case "width": case "count": case "thickness": case "footThickness": case "sealedUp": case "sealedDown": case "sealedLeft": case "sealedRight": if (!isNaN(parseFloat(v)) && parseFloat(v) <= 0) return "数值必须大于0"; default: if (v === "" || isNaN(Number(v))) { return "数值不能为空且必须为数字" } } return ""; } export function CheckoutDrillOption(k: string, v: string): string { switch (k) { case "ljgPos": case "woodPinPos": if (!operationExpReg.test(v.replace(/["H"|"L"|]/, "1"))) return "表达式错误"; return ""; case "name": case "spacing": return ""; case "pxlOffset": case "collsionDist": case "tHoleOffset": if (v === "") return "不能为空"; return ""; case "pxlRad": case "pxlDepth": case "ljgRad": case "ljgLength": case "ymjRad": case "ymjDepth": case "wbHoleRad": case "wbHoleDepth": case "wsHoleLength": case "wdepth": case "originDist": case "retDist": if (!isNaN(parseFloat(v)) && parseFloat(v) === 0) return "数值必须大于0"; default: if (v === "" || isNaN(Number(v))) { return "数值不能为空且必须为数字"; } if (!isNaN(parseFloat(v)) && parseFloat(v) < 0) return "数值必须大于0"; } return ""; } export function CheckoutArrayOption(k: string, v: string): string { switch (k) { case "type": case "method": case "isCorrect": return ""; case "row": case "col": if (parseFloat(v) > 32767 || parseFloat(v) < 1 || parseFloat(v) % 1 !== 0) return "请输入1-32767间的整数"; else if (v === "" || isNaN(Number(v)))//break不会经过default return "数值不能为空且必须为数字"; break; case "itemTotal": if (parseFloat(v) > 32767 || parseFloat(v) < 2 || parseFloat(v) % 1 !== 0) return "请输入2-32767间整数"; else if (v === "" || isNaN(Number(v))) return "数值不能为空且必须为数字"; break; case "betweenAngle": if (!isNaN(parseFloat(v)) && parseFloat(v) < 0) return "数值不可小于0"; case "fillAngle": if (!isNaN(parseFloat(v)) && parseFloat(v) === 0) return "数值不可等于0"; case "arrayAngle": if (Math.abs(parseFloat(v)) > 360) return "角度不可大于360"; // case "": // case "": // case "": // case "": default: if (v === "" || isNaN(Number(v))) { return "数值不能为空且必须为数字"; } } return ""; } }