From 80fbf18b10333979e2cd0e267cef3c4027fa0d2e Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 01 七月 2024 18:31:33 +0800
Subject: [PATCH] #

---
 zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java |   48 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java b/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java
index 3fe2222..2adb39a 100644
--- a/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java
+++ b/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java
@@ -73,6 +73,7 @@
     private String itemName;
     private String tableColumns;
     private String formEditColumns;
+    private String formEditForeignKeyColumns;
 
     public void build() throws Exception {
         init();
@@ -217,6 +218,7 @@
                     .replaceAll("@\\{SYSTEMPACKAGE}",systemPackage)
                     .replaceAll("@\\{TABLECOLUMNS}", tableColumns)
                     .replaceAll("@\\{FORMEDITCOLUMNS}", formEditColumns)
+                    .replaceAll("@\\{FORMEDITFOREIGNKEYCOLUMNS}", formEditForeignKeyColumns)
             ;
             writerFile.createNewFile();
             BufferedWriter writer=new BufferedWriter(new FileWriter(writerFile));
@@ -847,7 +849,10 @@
 
     private String createFormEditColumns() {
         StringBuilder sb = new StringBuilder();
+        StringBuilder sb2 = new StringBuilder();
+        ArrayList<String> foreignKeyContains = new ArrayList<>();
         for (Column column : columns) {
+            boolean has = true;
             if (column.isPrimaryKey()
                     || column.getHumpName().equals("deleted")
                     || column.getHumpName().equals("hostId")
@@ -879,31 +884,60 @@
                 sb.append("                            ]\"\n");
                 sb.append("                        >\n");
                 sb.append("                    </a-select>\n");
+                has = false;
             }
 
             // 鏃堕棿
             if ("Date".equals(column.getType())) {
-                sb.append("                    <a-select \n");
+                sb.append("                    <a-date-picker \n");
                 sb.append("                        v-model:value=\"formData.").append(column.getHumpName()).append("\" \n");
                 sb.append("                        show-time \n");
                 sb.append("                        format=\"YYYY-MM-DD HH:mm:ss\" \n");
                 sb.append("                        value-format=\"YYYY-MM-DD HH:mm:ss\" \n");
                 sb.append("                     /> \n");
+                has = false;
             }
 
             // 鍏宠仈琛�
             if (!Cools.isEmpty(column.getForeignKey())) {
-//                sb.append("                            showSearch\n")
-//                        .append("                            debounceTime={300}\n")
-//                        .append("                            request={async ({ keyWords }) => {\n")
-//                        .append("                                const resp = await Http.doPostForm('api/").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("/query', { condition: keyWords });\n")
-//                        .append("                                return resp.data;\n")
-//                        .append("                            }}\n");
+                if (!foreignKeyContains.contains(column.getForeignKey())) {
+                    sb2.append("const ").append(column.getForeignKey()).append("QueryList = ref(null); \n");
+                    sb2.append(column.getForeignKey()).append("Query();\n");
+                    sb2.append("function ").append(column.getForeignKey()).append("Query() { \n");
+                    sb2.append("    postForm('/api/").append(column.getForeignKey().toLowerCase()).append("/query', {}).then(resp => { \n");
+                    sb2.append("        let result = resp.data;\n");
+                    sb2.append("        ").append(column.getForeignKey()).append("QueryList.value = result.data;\n");
+                    sb2.append("    })\n");
+                    sb2.append("}\n");
+
+                    foreignKeyContains.add(column.getForeignKey());
+                }
+
+                sb.append("                    <a-select \n");
+                sb.append("                        v-model:value=\"formData.").append(column.getHumpName()).append("\" \n");
+                sb.append("                        placeholder=\"Select users\" \n");
+                sb.append("                        style=\"width: 100%\" \n");
+                sb.append("                        show-search \n");
+                sb.append("                        :options=\"").append(column.getForeignKey()).append("QueryList\" \n");
+                sb.append("                        optionFilterProp=\"label\" \n");
+                sb.append("                        optionLabelProp=\"label\" \n");
+                sb.append("                     > \n");
+                sb.append("                    </a-select>\n");
+                has = false;
+            }
+
+            if (has) {
+                sb.append("                    <a-input \n");
+                sb.append("                        v-model:value=\"formData.").append(column.getHumpName()).append("\" \n");
+                sb.append("                     /> \n");
+                has = false;
             }
 
             sb.append("                        </a-form-item>\n");
 
         }
+
+        formEditForeignKeyColumns = sb2.toString();
         return sb.toString();
     }
 

--
Gitblit v1.9.1