From 0a8a3f71f2e50f0603077197d9b1971431a64b36 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 28 八月 2024 23:24:33 +0800
Subject: [PATCH] 条码规则更新

---
 src/views/tigerprojects/bas/checkrule/checkrule.data.ts |   97 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 87 insertions(+), 10 deletions(-)

diff --git a/src/views/tigerprojects/bas/checkrule/checkrule.data.ts b/src/views/tigerprojects/bas/checkrule/checkrule.data.ts
index 0dd63c3..071f55e 100644
--- a/src/views/tigerprojects/bas/checkrule/checkrule.data.ts
+++ b/src/views/tigerprojects/bas/checkrule/checkrule.data.ts
@@ -1,7 +1,7 @@
 import { BasicColumn } from '/@/components/Table';
 import { FormSchema } from '/@/components/Table';
 import { useI18n } from '/@/hooks/web/useI18n';
-import { isEmpty, isNullOrEmpty, isNullOrUnDef, isObject, isString } from '/@/utils/is';
+import { isEmpty, isNullOrEmpty, isNullOrUnDef, isNumber, isObject, isString } from '/@/utils/is';
 import { h } from 'vue';
 import { Tag } from 'ant-design-vue';
 import { useMessage } from '/@/hooks/web/useMessage';
@@ -90,7 +90,7 @@
           text = record.DATA_VALUE;
           break;
         case Data_Types.SerialCode:
-          text = `${PrefixInteger(record.SERIAL_MIN,record.CHECK_LENGTH)}-${PrefixInteger(record.SERIAL_MAX,record.CHECK_LENGTH)}`;
+          text = `${PrefixInteger(record.SERIAL_MIN, record.CHECK_LENGTH)}-${PrefixInteger(record.SERIAL_MAX, record.CHECK_LENGTH)}`;
           break;
       }
       return h(Tag, { color: color }, () => text);
@@ -235,7 +235,10 @@
             formModel.CHECK_LENGTH = '';
           }
           if (e == Data_Types.DbCheck || e == Data_Types.NoCheck) {
-            formModel.DATA_REGEX = formModel.CHECK_LENGTH>0? `(.{${formModel.CHECK_LENGTH}}){${formModel.REPEAT_TIMES}}`: `(.*){${formModel.REPEAT_TIMES}}`;
+            formModel.DATA_REGEX =
+              formModel.CHECK_LENGTH > 0
+                ? `(.{${formModel.CHECK_LENGTH}}){${formModel.REPEAT_TIMES}}`
+                : `(.*){${formModel.REPEAT_TIMES}}`;
           }
           if (e == Data_Types.SerialCode) {
             formModel.DATA_REGEX = `([0-9]{${formModel.CHECK_LENGTH}}){${formModel.REPEAT_TIMES}}`;
@@ -540,6 +543,10 @@
               // return Math.max(maxLength, str.length);
             }, 0);
             formModel.CHECK_LENGTH = _length;
+            if (formModel.FIXED_NOTLIKE == 'Y') {
+              formModel.DATA_RANGE = `${val}`;
+              formModel.DATA_REGEX = `([^${e.target.value.replace(new RegExp(',', 'g'), '|')}]{${formModel.CHECK_LENGTH}}){${formModel.REPEAT_TIMES}}`;
+            }
           }
         },
       };
@@ -660,14 +667,13 @@
             }
           }
           //formModel.CHECK_LENGTH>0? `(.{${formModel.CHECK_LENGTH}}){${formModel.REPEAT_TIMES}}`: `(.*){${formModel.REPEAT_TIMES}}`;
-          if (
-            formModel.DATA_TYPE == Data_Types.DbCheck
-          ) {
-            formModel.DATA_REGEX = val>0? `(.{${val}}){${formModel.REPEAT_TIMES}}`: `(.*){${formModel.REPEAT_TIMES}}`;
+          if (formModel.DATA_TYPE == Data_Types.DbCheck) {
+            formModel.DATA_REGEX =
+              val > 0
+                ? `(.{${val}}){${formModel.REPEAT_TIMES}}`
+                : `(.*){${formModel.REPEAT_TIMES}}`;
           }
-          if (
-            formModel.DATA_TYPE == Data_Types.NoCheck
-          ) {
+          if (formModel.DATA_TYPE == Data_Types.NoCheck) {
             formModel.DATA_REGEX = `(.{${val}}){${formModel.REPEAT_TIMES}}`;
           }
           if (formModel.DATA_TYPE == Data_Types.SerialCode) {
@@ -883,6 +889,77 @@
     ifShow: ({ values }) => isSerial(values.DATA_TYPE),
   },
   {
+    field: 'FIXED_NOTLIKE',
+    label: '鏄惁涓嶅寘鍚浐瀹氬��',
+    required: true,
+    component: 'Select',
+    colProps: { span: 12 },
+    componentProps: ({ schema, tableAction, formActionType, formModel }) => {
+      return {
+        options: [
+          {
+            label: '鏄�',
+            value: 'Y',
+          },
+          {
+            label: '鍚�',
+            value: 'N',
+          },
+        ],
+        onChange: (e) => {
+          if (isFixed(formModel.DATA_TYPE)) {
+            var val = typeof e == 'object' && e != null ? e.target.value : e;
+            formModel.DATA_RANGE =val == 'N'? formModel.DATA_VALUE: `${formModel.DATA_VALUE}`;
+            formModel.DATA_REGEX =
+              val == 'N'
+                ? `(${formModel.DATA_VALUE.replace(new RegExp(',', 'g'), '|')}){${formModel.REPEAT_TIMES}}`
+                : `([^${formModel.DATA_VALUE.replace(new RegExp(',', 'g'), '|')}]{${formModel.CHECK_LENGTH}}){${formModel.REPEAT_TIMES}}`;
+          }
+        },
+      };
+    },
+    ifShow: ({ values }) => isFixed(values.DATA_TYPE),
+  },
+  {
+    field: 'SERIAL_INTERVAL',
+    label: '娴佹按鍙峰彇鍙烽棿闅�',
+    component: 'Input',
+    dynamicRules: ({ values }) => {
+      return [
+        {
+          required: true,
+          validator: (_, value) => {
+            if (!value) {
+              return Promise.reject('娴佹按鍙峰彇鍙烽棿闅斾笉鑳戒负绌�!');
+            }
+            if (!isNumber(value)) {
+              return Promise.reject('璇疯緭鍏ユ暟瀛�!');
+            }
+            if (Number(value) < 0) {
+              return Promise.reject('蹇呴渶杈撳叆澶т簬0鐨勬暟瀛�!');
+            }
+            return Promise.resolve();
+          },
+        },
+      ];
+    },
+    show: true,
+    colProps: { span: 12 },
+    dynamicDisabled: ({ values }) => {
+      return false;
+    },
+    ifShow: ({ values }) => isSerial(values.DATA_TYPE),
+  },
+  {
+    field: 'SERIAL_IGNORE',
+    label: '娴佹按鍙疯烦鍙�',
+    component: 'Input',
+    // required: true,
+    show: true,
+    colProps: { span: 24 },
+    ifShow: ({ values }) => isSerial(values.DATA_TYPE),
+  },
+  {
     field: 'DATA_RANGE',
     label: '鏍¢獙鑼冨洿',
     component: 'Input',

--
Gitblit v1.9.3