Преглед изворни кода

调整验证方式, 新增检验log

kindring пре 1 година
родитељ
комит
2202bf3a25
4 измењених фајлова са 44 додато и 12 уклоњено
  1. 1 0
      lib/formVerify.d.ts
  2. 1 1
      lib/formVerify.d.ts.map
  3. 42 11
      lib/formVerify.js
  4. 0 0
      lib/formVerify.js.map

+ 1 - 0
lib/formVerify.d.ts

@@ -34,6 +34,7 @@ declare class FormVerify {
      * @param { formObject } formObject 表单对象
      */
     static initFormItemData(formObject: formObject): void;
+    onLog: (msg: string) => void;
     /**
      * 检查表单项是否符合要求
      * @param {formObject} form 表单对象

+ 1 - 1
lib/formVerify.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"formVerify.d.ts","sourceRoot":"","sources":["../src/formVerify.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,cAAc,CAAC;AAStC;;;;;;GAMG;AACH,cAAM,UAAU;IACZ,QAAQ,EAAC,UAAU,GAAG,IAAI,CAAQ;IAElC,UAAU,EAAC,UAAU,CAAC;IAGtB,aAAa,EAAE,gBAAgB,CAE9B;IACD,MAAM,EAAE,gBAAgB,CAEtB;IAEF,OAAc,iBAAiB,EAAE,MAAM,CAAC;IACxC,OAAc,cAAc,EAAE,MAAM,CAAC;IACrC,OAAc,iBAAiB,EAAE,MAAM,CAAC;IAExC,iBAAiB,EAAE,MAAM,CAAK;IAC9B,cAAc,EAAE,MAAM,CAAK;IAC3B,iBAAiB,EAAE,MAAM,CAAK;gBAElB,UAAU,EAAC,UAAU,EAAE,UAAU,CAAC,EAAC,UAAU,EAAE,MAAM,CAAC,EAAC,gBAAgB;IAiBnF,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAC,GAAG;IAIxB;;;;;;;;OAQG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,OAAO;IA8G7C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAG,UAAU,EAAE,UAAU;IAYhD;;;;;OAKG;IACI,SAAS,CAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;IAmGlE;;;OAGG;IACI,KAAK,CAAE,WAAW,GAAC,OAAe,GAAI,OAAO;CAIvD;AAED,eAAe,UAAU,CAAC"}
+{"version":3,"file":"formVerify.d.ts","sourceRoot":"","sources":["../src/formVerify.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,cAAc,CAAC;AAStC;;;;;;GAMG;AACH,cAAM,UAAU;IACZ,QAAQ,EAAC,UAAU,GAAG,IAAI,CAAQ;IAElC,UAAU,EAAC,UAAU,CAAC;IAGtB,aAAa,EAAE,gBAAgB,CAE9B;IACD,MAAM,EAAE,gBAAgB,CAEtB;IAEF,OAAc,iBAAiB,EAAE,MAAM,CAAC;IACxC,OAAc,cAAc,EAAE,MAAM,CAAC;IACrC,OAAc,iBAAiB,EAAE,MAAM,CAAC;IAExC,iBAAiB,EAAE,MAAM,CAAK;IAC9B,cAAc,EAAE,MAAM,CAAK;IAC3B,iBAAiB,EAAE,MAAM,CAAK;gBAElB,UAAU,EAAC,UAAU,EAAE,UAAU,CAAC,EAAC,UAAU,EAAE,MAAM,CAAC,EAAC,gBAAgB;IAiBnF,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAC,GAAG;IAIxB;;;;;;;;OAQG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,OAAO;IA8G7C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAG,UAAU,EAAE,UAAU;IAazC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAElC;IAED;;;;;OAKG;IACI,SAAS,CAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;IAsIlE;;;OAGG;IACI,KAAK,CAAE,WAAW,GAAC,OAAe,GAAI,OAAO;CAIvD;AAED,eAAe,UAAU,CAAC"}

+ 42 - 11
lib/formVerify.js

@@ -28,6 +28,10 @@ class FormVerify {
         this.formState_default = 0;
         this.formState_pass = 1;
         this.formState_notPass = 2;
+        // onLog函数
+        this.onLog = (msg) => {
+            console.log(msg);
+        };
         this.fieldCheck = fieldCheck || new fieldCheck_1.default();
         // 合并配置项
         this.option = Object.assign(this.defaultOption, option);
@@ -168,9 +172,21 @@ class FormVerify {
     checkForm(form, isMustMatch) {
         let r = true;
         let n_checkPass = 0, n_checkTotal = 0;
+        let tmpOption = {};
         let msg = '';
+        let logStr = '';
+        let logHandle = (_str) => {
+            try {
+                this.onLog(_str);
+            }
+            catch (e) {
+                console.log(_str);
+                console.error(e);
+            }
+        };
         for (const fieldKey in form) {
             let formItem = form[fieldKey];
+            logStr = '';
             if (!formItem) {
                 continue;
             }
@@ -185,6 +201,7 @@ class FormVerify {
             if (formItem.disables) {
                 if (formItem.disables.find(item => item === formItem.val)) {
                     formItem.msg = '该项内容不合法';
+                    formItem.state = this.formState_notPass;
                     r = false;
                 }
             }
@@ -192,19 +209,24 @@ class FormVerify {
             if (formItem.options) {
                 // 有枚举字段,只判断是否在枚举中
                 // console.log(`检测枚举字段:${checkField},值:${formItem.val}`);
-                tmpInd = formItem.options.findIndex(item => item.value == formItem.val);
-                if (tmpInd === -1) {
-                    console.log(`检测枚举字段:${checkField},值:${formItem.val}不在范围内`);
-                    formItem.msg = '选项不在范围内';
-                    formItem.state = 1;
-                    r = false;
-                }
-                else {
-                    // 判断值是否为禁用项
-                    if (formItem.options[tmpInd].disabled) {
+                tmpOption = formItem.options.find(item => item.value == formItem.val);
+                // tmpInd = formItem.options.findIndex(item=>item.value == formItem.val);
+                if (tmpOption) {
+                    if (tmpOption.disabled) {
+                        logStr = `项${fieldKey} 检测枚举字段:${checkField},值:${formItem.val}被禁用`;
                         formItem.msg = '该选项已经被禁用';
+                        formItem.state = this.formState_notPass;
                         r = false;
                     }
+                    // 检查通过
+                    formItem.state = this.formState_pass;
+                }
+                else {
+                    logStr = `项${fieldKey} 检测枚举字段:${checkField},值:${formItem.val}不在范围内`;
+                    this.onLog(`检测枚举字段:${checkField},值:${formItem.val}不在范围内`);
+                    formItem.msg = '选项不在范围内';
+                    formItem.state = this.formState_notPass;
+                    r = false;
                 }
                 // 枚举值判断完毕,继续下一个字段
                 n_checkPass++;
@@ -217,6 +239,7 @@ class FormVerify {
                     // 依赖的对象有枚举类型,检查该枚举类型是否有有检测值
                     let optionItem = depend.options.find(item => item.value == formItem.val);
                     if (!optionItem) {
+                        logStr = `检测依赖字段:${depend},但是选项${formItem.val}不在范围内`;
                         depend.msg = '选项不在范围内';
                         formItem.msg = '该值依赖项输入异常';
                         r = false;
@@ -229,22 +252,30 @@ class FormVerify {
                     }
                 }
                 else {
+                    logStr = `项${fieldKey} 依赖表单项:${depend},没有对应 options 内容`;
                     r = false;
                 }
                 if (!r) {
+                    logStr = `项${fieldKey} 检测依赖字段:${depend},但是选项${formItem.val}不在范围内`;
                     depend.msg = '该项依赖项输入异常';
                     formItem.msg = '该值依赖项输入异常';
+                    formItem.state = this.formState_notPass;
                 }
             }
             // 使用验证规则进行
             formItem.msg = this.fieldCheck.verify({
                 [checkField]: formItem.val,
             });
-            if (formItem.msg)
+            if (formItem.msg) {
                 r = false;
+                logStr = `检测字段:${checkField},值:${formItem.val}不符合规则,${formItem.msg}`;
+            }
+            if (logStr)
+                logHandle(logStr);
             if (r) {
                 n_checkPass++;
                 formItem.state = this.formState_pass;
+                formItem.msg = '';
             }
             else {
                 formItem.state = this.formState_notPass;

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
lib/formVerify.js.map


Неке датотеке нису приказане због велике количине промена