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("<div class=\"row\">\n");
|
}
|
|
thSb.append("<div class=\"col-sm-4\">\n" +
|
" <div class=\"form-group\">\n" +
|
" <label class=\"col-form-label\" > <span><vc:i18n='" + column.getString("cnCode") + "' namespace='view"+data.getString("templateCode")+"Info'></vc:i18n><span>:</label>\n" +
|
" <label class=\"\">{{view" + toUpperCaseFirstOne(data.getString("templateCode")) + "Info." + column.getString("code") + "}}</label>\n" +
|
" </div>\n" +
|
"</div>\n");
|
|
if (columnIndex % 3 == 2 || columnIndex == columns.size() - 1) {
|
thSb.append("</div>\n");
|
}
|
|
}
|
|
fileContext = fileContext.replace("@@viewInfo@@", thSb.toString());
|
|
|
String writePath = this.getClass().getResource("/").getPath()
|
+ "out/web/components/" + data.getString("directories") + "/view" + toUpperCaseFirstOne(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/components/" + data.getString("directories") + "/view"
|
+ toUpperCaseFirstOne(data.getString("templateCode")) + "Info/view" + toUpperCaseFirstOne(data.getString("templateCode")) + "Info.js";
|
System.out.printf("writePath: " + writePath);
|
writeFile(writePath,
|
fileContext);
|
|
|
}
|
|
|
}
|