From 8099042b51891d1e58d6066f0247ba423f4457bd Mon Sep 17 00:00:00 2001
From: yyg1378265336 <1378265336@qq.com>
Date: 星期四, 27 二月 2025 09:27:17 +0800
Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/BS/TigerAdmin_2024

---
 src/views/tigerprojects/bas/checkrule/checkrule.data.ts |  145 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 134 insertions(+), 11 deletions(-)

diff --git a/src/views/tigerprojects/bas/checkrule/checkrule.data.ts b/src/views/tigerprojects/bas/checkrule/checkrule.data.ts
index 21f0591..cdda900 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';
@@ -19,6 +19,49 @@
   {
     title: '鏄庣粏鎻忚堪',
     dataIndex: 'DESCRIPTION',
+  },
+  {
+    title: '鏁版嵁绫诲瀷',
+    dataIndex: 'DATA_TYPE',
+    customRender: ({ record }) => {
+      const type = record.DATA_TYPE;
+      var text = '';
+      var color = 'blue';
+      switch (type) {
+        case Data_Types.Character:
+          text = '绾瓧姣�';
+          break;
+        case Data_Types.Numeric:
+          text = '绾暟瀛�';
+          color = 'yellow';
+          break;
+        case Data_Types.DateCode:
+          text = '鏃ユ湡';
+          color = 'orange';
+          break;
+        case Data_Types.TimeCode:
+          text = '鏃堕棿';
+          color = '#bfbfbf';
+          break;
+        case Data_Types.DbCheck:
+          text = '鍏宠仈鏍¢獙';
+          color = '#0b9da9';
+          break;
+        case Data_Types.FixedCode:
+          text = '鍥哄畾鍊�';
+          color = 'green';
+          break;
+        case Data_Types.SerialCode:
+          text = '娴佹按鍙�';
+          color = '#b442df';
+          break;
+      }
+      return h(Tag, { color: color }, () => text);
+    },
+  },
+  {
+    title: '鏍¢獙浣嶆暟',
+    dataIndex: 'CHECK_LENGTH',
   },
   {
     title: '鏍¢獙浣嶆暟',
@@ -47,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);
@@ -192,7 +235,10 @@
             formModel.CHECK_LENGTH = '';
           }
           if (e == Data_Types.DbCheck || e == Data_Types.NoCheck) {
-            formModel.DATA_REGEX = `(.{${formModel.CHECK_LENGTH}}){${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}}`;
@@ -497,12 +543,16 @@
               // 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}}`;
+            }
           }
         },
       };
     },
     rules: [
-      {
+      {                                                                                                                                
         required: true,
         // @ts-ignore
         validator: async (rule, value) => {
@@ -616,10 +666,14 @@
               formModel.DATA_REGEX = `(${_regex}){${formModel.REPEAT_TIMES}}`;
             }
           }
-          if (
-            formModel.DATA_TYPE == Data_Types.DbCheck ||
-            formModel.DATA_TYPE == Data_Types.NoCheck
-          ) {
+          //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.NoCheck) {
             formModel.DATA_REGEX = `(.{${val}}){${formModel.REPEAT_TIMES}}`;
           }
           if (formModel.DATA_TYPE == Data_Types.SerialCode) {
@@ -835,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',
@@ -932,9 +1057,7 @@
     label: '鏉$爜闀垮害',
     component: 'Input',
     colProps: { span: 8 },
-    dynamicDisabled: ({ values }) => {
-      return true;
-    },
+    dynamicDisabled: true,
   },
   {
     field: 'CHECK_TYPE',

--
Gitblit v1.9.3