From a637cdb04ab7e0954196ad0d8e7cc24ae22ee93a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 10 三月 2026 13:22:22 +0800
Subject: [PATCH] #

---
 src/main/resources/templates/Js.txt |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/templates/Js.txt b/src/main/resources/templates/Js.txt
index ca4c8d2..e101d34 100644
--- a/src/main/resources/templates/Js.txt
+++ b/src/main/resources/templates/Js.txt
@@ -2,9 +2,43 @@
     var simpleEntityName = '@{SIMPLEENTITYNAME}';
     var entityName = '@{ENTITYNAME}';
     var primaryKeyField = '@{PRIMARYKEYCOLUMN0}';
-    var fieldMeta = [
+    var fieldMeta = dedupeFieldMeta([
 @{VUEFIELDMETA}
-    ];
+    ]);
+
+    function formatFieldLabel(field) {
+        var raw = field && field.label ? String(field.label).trim() : '';
+        if (raw) {
+            return raw;
+        }
+        raw = field && field.columnName ? field.columnName : (field && field.field ? field.field : '');
+        if (!raw) {
+            return '';
+        }
+        raw = String(raw)
+            .replace(/\$/g, '')
+            .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
+            .replace(/_/g, ' ')
+            .replace(/\s+/g, ' ')
+            .trim();
+        return raw.replace(/\b[a-z]/g, function (letter) {
+            return letter.toUpperCase();
+        });
+    }
+
+    function dedupeFieldMeta(list) {
+        var result = [];
+        var seen = {};
+        (list || []).forEach(function (field) {
+            if (!field || !field.field || seen[field.field]) {
+                return;
+            }
+            field.label = formatFieldLabel(field);
+            seen[field.field] = true;
+            result.push(field);
+        });
+        return result;
+    }
 
     function isEmptyValue(value) {
         return value === null || value === undefined || value === '';
@@ -165,6 +199,9 @@
                 }
                 return;
             }
+            if (field.kind === 'date' && isEmptyValue(value)) {
+                return;
+            }
             if (field.kind === 'foreign' && isEmptyValue(value)) {
                 value = null;
             }

--
Gitblit v1.9.1