package com.java110.code.web; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.code.back.BaseGenerator; public class GeneratorViewComponent extends BaseGenerator { public void generator(JSONObject data) { //处理组件 generatorComponentHtml(data); generatorComponentJs(data); } /** * 生成 html js java 类 * * @param data */ private void generatorComponentHtml(JSONObject data) { StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/view/viewInfo.html").getFile()); String fileContext = sb.toString(); fileContext = super.replaceTemplateContext(fileContext, data); // 处理 th 信息 StringBuffer thSb = new StringBuffer(); JSONArray columns = data.getJSONArray("columns"); JSONArray cols = new JSONArray(); JSONObject col = new JSONObject(); col.put("cnCode", data.getString("templateKeyName")); col.put("code", data.getString("templateKey")); cols.addAll(columns); for (int columnIndex = 0; columnIndex < cols.size(); columnIndex++) { JSONObject column = cols.getJSONObject(columnIndex); if(columnIndex % 3 == 0){ thSb.append("
\n"); } thSb.append("
\n" + "
\n" + " \n" + " \n" + "
\n" + "
\n"); if(columnIndex % 3 == 2 || columnIndex == columns.size() -1){ thSb.append("
\n"); } } fileContext = fileContext.replace("@@viewInfo@@", thSb.toString()); String writePath = this.getClass().getResource("/").getPath() + "out/web/component/"+data.getString("templateCode")+"Package/view-" + data.getString("templateCode") + "-info/view" + toUpperCaseFirstOne(data.getString("templateCode")) + "Info.html"; System.out.printf("writePath: " + writePath); writeFile(writePath, fileContext); } /** * 生成 html js java 类 * * @param data */ private void generatorComponentJs(JSONObject data) { StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/view/viewInfo.js").getFile()); String fileContext = sb.toString(); fileContext = super.replaceTemplateContext(fileContext, data); //替换 变量@@templateCodeColumns@@ JSONArray columns = data.getJSONArray("columns"); StringBuffer variable = new StringBuffer(); String defaultValue = ""; for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) { JSONObject column = columns.getJSONObject(columnIndex); variable.append(column.getString("code") + ":'',\n"); } fileContext = fileContext.replace("@@templateCodeColumns@@", variable.toString()); // 替换 数据校验部分代码 String writePath = this.getClass().getResource("/").getPath() + "out/web/component/"+data.getString("templateCode")+"Package/view-" + data.getString("templateCode") + "-info/view" + toUpperCaseFirstOne(data.getString("templateCode")) + "Info.js"; System.out.printf("writePath: " + writePath); writeFile(writePath, fileContext); } }