From 333a93571452073a9e628c6256044d345099aa50 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 02 四月 2026 08:19:55 +0800
Subject: [PATCH] #

---
 rsf-framework/src/main/java/com/vincent/rsf/framework/generators/RsfDesignGenerator.java |   38 ++++++++++++++++++++++++++++----------
 1 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/rsf-framework/src/main/java/com/vincent/rsf/framework/generators/RsfDesignGenerator.java b/rsf-framework/src/main/java/com/vincent/rsf/framework/generators/RsfDesignGenerator.java
index c805452..3d428e3 100644
--- a/rsf-framework/src/main/java/com/vincent/rsf/framework/generators/RsfDesignGenerator.java
+++ b/rsf-framework/src/main/java/com/vincent/rsf/framework/generators/RsfDesignGenerator.java
@@ -186,7 +186,7 @@
         writeTemplate("TableColumns", pageDirectory, simpleEntityName + "Table.columns.js");
         writeTemplate("Search", modulesDirectory, kebabEntityName + "-search.vue");
         writeTemplate("EditDialog", modulesDirectory, kebabEntityName + "-edit-dialog.vue");
-        writeTemplate("Api", resolveFrontendApiDirectory(), normalizedFrontendApiModule + ".js");
+        writeTemplate("Api", resolveFrontendApiDirectory(), resolveFrontendApiFileName());
     }
 
     private String resolveControllerDirectory() {
@@ -207,6 +207,14 @@
             return directory;
         }
         return directory + normalizedFrontendApiModule.substring(0, index + 1);
+    }
+
+    private String resolveFrontendApiFileName() {
+        int index = normalizedFrontendApiModule.lastIndexOf('/');
+        if (index < 0) {
+            return normalizedFrontendApiModule + ".js";
+        }
+        return normalizedFrontendApiModule.substring(index + 1) + ".js";
     }
 
     private void writeTemplate(String templateName, String directory, String fileName) throws IOException {
@@ -677,14 +685,6 @@
                         .append("StatusMeta(row.statusBool ?? row.status)),\n");
                 continue;
             }
-            if (isNumericColumn(column)) {
-                sb.append("    createNumberColumn('")
-                        .append(column.getHumpName())
-                        .append("', '")
-                        .append(escapeJs(resolveFieldLabel(column)))
-                        .append("', 120),\n");
-                continue;
-            }
             if (isDisplayTextColumn(column)) {
                 sb.append("    createTextColumn('")
                         .append(column.getHumpName())
@@ -695,6 +695,14 @@
                         .append("),\n");
                 continue;
             }
+            if (isNumericColumn(column)) {
+                sb.append("    createNumberColumn('")
+                        .append(column.getHumpName())
+                        .append("', '")
+                        .append(escapeJs(resolveFieldLabel(column)))
+                        .append("', 120),\n");
+                continue;
+            }
             sb.append("    createTextColumn('")
                     .append(column.getHumpName())
                     .append("', '")
@@ -703,7 +711,7 @@
                     .append(resolveTextColumnWidth(column))
                     .append("),\n");
         }
-        return trimTrailingLineBreak(sb);
+        return trimTrailingLineBreakKeepComma(sb);
     }
 
     private String buildExportRowContent() {
@@ -898,6 +906,16 @@
         return sb.toString();
     }
 
+    private String trimTrailingLineBreakKeepComma(StringBuilder sb) {
+        if (sb.length() == 0) {
+            return "";
+        }
+        while (sb.length() > 0 && (sb.charAt(sb.length() - 1) == '\n' || sb.charAt(sb.length() - 1) == '\r')) {
+            sb.deleteCharAt(sb.length() - 1);
+        }
+        return sb.toString();
+    }
+
     private String safeText(String value) {
         return value == null ? "" : value.trim();
     }

--
Gitblit v1.9.1