#
Junjie
2024-07-02 d4f427bf7c0ff1cf0ed1ac420bba8a063f9ef840
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));
@@ -777,7 +779,7 @@
                continue;
            }
            sb.append("        {\n")
                    .append("            title: '").append(column.getComment()).append("',\n")
                    .append("            title: formatMessage('db.").append(table).append(".").append(column.getName()).append("', '").append(column.getComment()).append("'),").append("\n")
                    .append("            dataIndex: '");
            if ("Date".equals(column.getType()) || !Cools.isEmpty(column.getEnums()) || !Cools.isEmpty(column.getForeignKeyMajor())){
                // 时间、枚举  格式化  主键修饰
@@ -786,7 +788,8 @@
                sb.append(column.getHumpName());
            }
            sb.append("',\n")
                    .append("            width: 140,\n");
                    .append("            width: 140,\n")
                    .append("            ellipsis: true,\n");
//            if (!Cools.isEmpty(column.getEnums())) {
//                sb.append("                customRender: (column) => {\n");
//                sb.append("                  let typeMap = {");
@@ -847,7 +850,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")
@@ -856,7 +862,7 @@
            }
            sb.append("                    <a-form-item \n");
            sb.append("                      label=\"").append(column.getComment()).append("\" \n");
            sb.append("                      :label=\"formatMessage('db.").append(table).append(".").append(column.getName()).append("', '").append(column.getComment()).append("') ").append("\" \n");
            sb.append("                      name=\"").append(column.getHumpName()).append("\" \n");
            sb.append("                      style=\"width: 250px;\" \n");
@@ -879,31 +885,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();
    }