From 4f113d1862ee978e7d0756f31af79ad73b1dc6d7 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期四, 12 九月 2024 16:33:39 +0800 Subject: [PATCH] # --- zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java | 173 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 84 insertions(+), 89 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 23373e9..e04e49e 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 @@ -42,6 +42,7 @@ public String password; public String table; public String tableName; + public String rootPackagePath; public String packagePath; public boolean controller = true; public boolean service = true; @@ -73,6 +74,7 @@ private String itemName; private String tableColumns; private String formEditColumns; + private String formEditForeignKeyColumns; public void build() throws Exception { init(); @@ -120,12 +122,12 @@ break; case "Index": pass = vue; - directory = frontendPrefixPath + "/src/views/" + simpleEntityName + "/"; + directory = frontendPrefixPath + "/src/views/" + itemName + "/" + simpleEntityName + "/"; fileName = "index.vue"; break; case "Edit": pass = vue; - directory = frontendPrefixPath + "/src/views/" + simpleEntityName + "/"; + directory = frontendPrefixPath + "/src/views/" + itemName + "/" + simpleEntityName + "/"; fileName = "edit.vue"; break; default: @@ -200,6 +202,7 @@ .replaceAll("@\\{SIMPLEENTITYNAME}", simpleEntityName) .replaceAll("@\\{UENTITYNAME}", simpleEntityName) .replaceAll("@\\{COMPANYNAME}",packagePath) + .replaceAll("@\\{ROOTPACKAGEPATH}",rootPackagePath) .replaceAll("@\\{ITEMNAME}",itemName) // .replaceAll("@\\{XMLCONTENT}", xmlContent) .replaceAll("@\\{HTMLCONTENT}", htmlContent) @@ -217,6 +220,7 @@ .replaceAll("@\\{SYSTEMPACKAGE}",systemPackage) .replaceAll("@\\{TABLECOLUMNS}", tableColumns) .replaceAll("@\\{FORMEDITCOLUMNS}", formEditColumns) + .replaceAll("@\\{FORMEDITFOREIGNKEYCOLUMNS}", formEditForeignKeyColumns) ; writerFile.createNewFile(); BufferedWriter writer=new BufferedWriter(new FileWriter(writerFile)); @@ -777,28 +781,33 @@ 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: '"); + StringBuilder rowKey = new StringBuilder(); if ("Date".equals(column.getType()) || !Cools.isEmpty(column.getEnums()) || !Cools.isEmpty(column.getForeignKeyMajor())){ // 鏃堕棿銆佹灇涓� 鏍煎紡鍖� 涓婚敭淇グ - sb.append(column.getHumpName()).append("\\$"); + rowKey.append(column.getHumpName()).append("\\$"); } else { - sb.append(column.getHumpName()); + rowKey.append(column.getHumpName()); } + sb.append(rowKey); sb.append("',\n") - .append(" width: 140,\n"); - if (!Cools.isEmpty(column.getEnums())) { - sb.append(" customRender: (column) => {\n"); - sb.append(" let typeMap = {"); - for (Map<String, Object> map : column.getEnums()) { - for (Map.Entry<String, Object> entry : map.entrySet()){ - sb.append(" ").append(entry.getKey()).append(": "); - sb.append(" { text: '").append(entry.getValue()).append("'").append(" },\n"); - } - } - sb.append(" }\n"); - sb.append(" }\n"); - } + .append(" width: 140,\n") + .append(" ellipsis: true,\n") + .append(" ...getColumnSearchProps('").append(rowKey).append("'),\n"); +// if (!Cools.isEmpty(column.getEnums())) { +// sb.append(" customRender: (column) => {\n"); +// sb.append(" let typeMap = {"); +// for (Map<String, Object> map : column.getEnums()) { +// for (Map.Entry<String, Object> entry : map.entrySet()){ +// sb.append(" ").append(entry.getKey()).append(": "); +// sb.append(" { text: '").append(entry.getValue()).append("'").append(" },\n"); +// } +// } +// sb.append(" }\n"); +// sb.append(" return typeMap[column.value].text;"); +// sb.append(" }\n"); +// } sb.append(" },\n"); } return sb.toString(); @@ -846,109 +855,95 @@ private String createFormEditColumns() { StringBuilder sb = new StringBuilder(); - int times = 0; - boolean has = false;boolean init = false; + 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") ) { continue; } - if (times%2 == 0) { - sb.append(" <ProForm.Group>\n"); - has = true;init=true; - } - String itemType = "ProFormText"; - String precision = ""; - switch (column.getType()) { - case "Boolean": - itemType = "ProFormText"; - break; - case "Short": - itemType = "ProFormDigit"; - precision = "0"; - break; - case "Integer": - itemType = "ProFormDigit"; - precision = "0"; - break; - case "Long": - itemType = "ProFormDigit"; - precision = "0"; - break; - case "Double": - itemType = "ProFormDigit"; - precision = "2"; - break; - case "String": - itemType = "ProFormText"; - break; - case "Date": - itemType = "ProFormDateTimePicker"; - break; - default: - break; - } - if (!Cools.isEmpty(column.getEnums())) { - itemType = "ProFormSelect"; - } - if (!Cools.isEmpty(column.getForeignKey())) { - itemType = "ProFormSelect"; - } - - sb.append(" <").append(itemType).append("\n") - .append(" name=\"").append(column.getHumpName()).append("\"\n") - .append(" label=\"").append(column.getComment()).append("\"\n") - .append(" colProps={{ md: 12, xl: 12 }}\n"); - // 鏁板瓧灏忔暟鐐� - if (!Cools.isEmpty(precision) && Cools.isEmpty(column.getEnums())) { - sb.append(" fieldProps={{ precision: ").append(precision).append(" }}\n"); - } + sb.append(" <a-form-item \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"); // 闈炵┖ if (column.isNotNull()) { - sb.append(" rules={[{ required: true }]}\n"); + sb.append(" :rules=\"[{ required: true }]\"\n"); } + sb.append(" >\n"); // 鏋氫妇 if (!Cools.isEmpty(column.getEnums())) { - sb.append(" options={[\n"); + sb.append(" <a-select \n"); + sb.append(" v-model:value=\"formData.").append(column.getHumpName()).append("\" \n"); + sb.append(" :options=\"[\n"); for (Map<String, Object> map : column.getEnums()) { for (Map.Entry<String, Object> entry : map.entrySet()){ sb.append(" { label: '").append(entry.getValue()).append("', value: ").append(entry.getKey()).append(" },\n"); } } - sb.append(" ]}\n"); + sb.append(" ]\"\n"); + sb.append(" >\n"); + sb.append(" </a-select>\n"); + has = false; } // 鏃堕棿 if ("Date".equals(column.getType())) { - sb.append(" transform={(value) => moment(value).toISOString()}\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 (!Cools.isEmpty(column.getForeignKey$())) { + 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$()).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"); - sb.append(" />\n"); + foreignKeyContains.add(column.getForeignKey$()); + } - if (times%2 != 0) { - sb.append(" </ProForm.Group>\n"); + sb.append(" <a-select \n"); + sb.append(" v-model:value=\"formData.").append(column.getHumpName()).append("\" \n"); + sb.append(" :placeholder=\"formatMessage('common.select', '璇烽�夋嫨')\" \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; } - times++; + + 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"); + } - if (init && has) { - sb.append(" </ProForm.Group>\n"); - } + + formEditForeignKeyColumns = sb2.toString(); return sb.toString(); } -- Gitblit v1.9.1