浏览代码

choose view 组件代码生成完成

wuxw 7 年之前
父节点
当前提交
538dffa810

+ 2 - 2
java110-code-generator/src/main/java/com/java110/code/web/GeneratorAddComponent.java

@@ -106,7 +106,7 @@ public class GeneratorAddComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/add-" + data.getString("templateCode") + "/add" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html";
+                + "out/web/component/"+data.getString("templateCode")+"Package/add-" + data.getString("templateCode") + "/add" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);
@@ -165,7 +165,7 @@ public class GeneratorAddComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/add-" + data.getString("templateCode") + "/add" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js";
+                + "out/web/component/"+data.getString("templateCode")+"Package/add-" + data.getString("templateCode") + "/add" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);

+ 112 - 0
java110-code-generator/src/main/java/com/java110/code/web/GeneratorChooseComponent.java

@@ -0,0 +1,112 @@
+package com.java110.code.web;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.code.BaseGenerator;
+
+/**
+ * @ClassName GeneratorChooseComponent
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2019/7/27 10:26
+ * @Version 1.0
+ * add by wuxw 2019/7/27
+ **/
+public class GeneratorChooseComponent extends BaseGenerator {
+    public void generator(JSONObject data) {
+
+        //处理组件
+        generatorComponentHtml(data);
+        generatorComponentJs(data);
+        generatorComponentJava(data);
+
+    }
+
+
+    /**
+     * 生成 html js java 类
+     *
+     * @param data
+     */
+    private void generatorComponentHtml(JSONObject data) {
+
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/choose/choose.html").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        // 处理 th 信息
+
+        StringBuffer thSb = new StringBuffer();
+        StringBuffer tdSb = new StringBuffer();
+        thSb.append("                            <th class=\"text-center\">" + data.getString("templateKeyName") + "</th>\n");
+
+        tdSb.append("                            <td class=\"text-center\">{{" + data.getString("templateCode") + "." + data.getString("templateKey") + "}}</td>\n");
+
+        JSONArray columns = data.getJSONArray("columns");
+        for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+            JSONObject column = columns.getJSONObject(columnIndex);
+            thSb.append("                            <th class=\"text-center\">" + column.getString("cnCode") + "</th>\n");
+
+            tdSb.append("                            <td class=\"text-center\">{{" + data.getString("templateCode") + "." + column.getString("code") + "}}</td>\n");
+        }
+        thSb.append("                            <th class=\"text-center\">操作</th>\n");
+
+        fileContext = fileContext.replace("@@columnsCnCode@@", thSb.toString())
+                .replace("@@columnsName@@", tdSb.toString());
+
+
+
+        String writePath = this.getClass().getResource("/").getPath()
+                +"out/web/component/"+data.getString("templateCode")+"Package/choose-"+data.getString("templateCode")+"/choose"+toUpperCaseFirstOne(data.getString("templateCode"))+".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/choose/choose.js").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                +"out/web/component/"+data.getString("templateCode")+"Package/choose-"+data.getString("templateCode")+"/choose"+toUpperCaseFirstOne(data.getString("templateCode"))+".js";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+
+
+    }
+
+    /**
+     * 生成 html js java 类
+     *
+     * @param data
+     */
+    private void generatorComponentJava(JSONObject data) {
+
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/choose/ChooseComponent.java").getFile());
+        String fileContext = sb.toString();
+
+        fileContext = super.replaceTemplateContext(fileContext, data);
+
+        String writePath = this.getClass().getResource("/").getPath()
+                +"out/web/component/java/"+data.getString("templateCode")+"/Choose"+toUpperCaseFirstOne(data.getString("templateCode"))+"Component.java";
+        System.out.printf("writePath: " + writePath);
+        writeFile(writePath,
+                fileContext);
+
+
+    }
+
+
+}

+ 2 - 2
java110-code-generator/src/main/java/com/java110/code/web/GeneratorDeleteComponent.java

@@ -37,7 +37,7 @@ public class GeneratorDeleteComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/delete-" + data.getString("templateCode") + "/delete" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html";
+                + "out/web/component/"+data.getString("templateCode")+"Package/delete-" + data.getString("templateCode") + "/delete" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);
@@ -62,7 +62,7 @@ public class GeneratorDeleteComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/delete-" + data.getString("templateCode") + "/delete" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js";
+                + "out/web/component/"+data.getString("templateCode")+"Package/delete-" + data.getString("templateCode") + "/delete" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);

+ 2 - 2
java110-code-generator/src/main/java/com/java110/code/web/GeneratorEditComponent.java

@@ -86,7 +86,7 @@ public class GeneratorEditComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/edit-" + data.getString("templateCode") + "/edit" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html";
+                + "out/web/component/"+data.getString("templateCode")+"Package/edit-" + data.getString("templateCode") + "/edit" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);
@@ -153,7 +153,7 @@ public class GeneratorEditComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                + "out/web/component/edit-" + data.getString("templateCode") + "/edit" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js";
+                + "out/web/component/"+data.getString("templateCode")+"Package/edit-" + data.getString("templateCode") + "/edit" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);

+ 2 - 2
java110-code-generator/src/main/java/com/java110/code/web/GeneratorManagerComponent.java

@@ -64,7 +64,7 @@ public class GeneratorManagerComponent extends BaseGenerator {
 
 
         String writePath = this.getClass().getResource("/").getPath()
-                +"out/web/component/"+data.getString("templateCode")+"-manage/"+data.getString("templateCode")+"Manage.html";
+                +"out/web/component/"+data.getString("templateCode")+"Package/"+data.getString("templateCode")+"-manage/"+data.getString("templateCode")+"Manage.html";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);
@@ -85,7 +85,7 @@ public class GeneratorManagerComponent extends BaseGenerator {
         fileContext = super.replaceTemplateContext(fileContext, data);
 
         String writePath = this.getClass().getResource("/").getPath()
-                +"out/web/component/"+data.getString("templateCode")+"-manage/"+data.getString("templateCode")+"Manage.js";
+                +"out/web/component/"+data.getString("templateCode")+"Package/"+data.getString("templateCode")+"-manage/"+data.getString("templateCode")+"Manage.js";
         System.out.printf("writePath: " + writePath);
         writeFile(writePath,
                 fileContext);

+ 7 - 2
java110-code-generator/src/main/java/com/java110/code/web/GeneratorStart.java

@@ -21,7 +21,6 @@ public class GeneratorStart extends BaseGenerator {
 
 
         //添加功能开发完成
-
         GeneratorAddComponent addComponent = new GeneratorAddComponent();
         addComponent.generator(data);
 
@@ -30,8 +29,14 @@ public class GeneratorStart extends BaseGenerator {
         editComponent.generator(data);
 
         //删除功能开发完成
-
         GeneratorDeleteComponent deleteComponent = new GeneratorDeleteComponent();
         deleteComponent.generator(data);
+
+        //生成选择功能组件
+        GeneratorChooseComponent generatorChooseComponent = new GeneratorChooseComponent();
+        generatorChooseComponent.generator(data);
+
+        GeneratorViewComponent generatorViewComponent = new GeneratorViewComponent();
+        generatorViewComponent.generator(data);
     }
 }

+ 107 - 0
java110-code-generator/src/main/java/com/java110/code/web/GeneratorViewComponent.java

@@ -0,0 +1,107 @@
+package com.java110.code.web;
+
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.code.BaseGenerator;
+import org.springframework.util.StringUtils;
+
+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");
+        for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+            JSONObject column = columns.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\" >"+column.getString("cnCode")+":</label>\n" +
+                    "                            <label class=\"\">{{view"+toUpperCaseFirstOne(column.getString("code"))+"Info."+column.getString("code")+"Id}}</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/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);
+
+
+    }
+
+
+}

+ 41 - 0
java110-code-generator/src/main/resources/web/choose/ChooseComponent.java

@@ -0,0 +1,41 @@
+package com.java110.web.components.@@templateCode@@;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.@@templateCode@@.IList@@TemplateCode@@sSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 应用组件管理类
+ * <p>
+ * add by wuxw
+ * <p>
+ * 2019-06-29
+ */
+@Component("choose@@TemplateCode@@")
+public class Choose@@TemplateCodeComponent {
+
+    @Autowired
+    private IList@@TemplateCode@@sSMO list@@TemplateCode@@sSMOImpl;
+
+    /**
+     * 查询应用列表
+     *
+     * @param pd 页面数据封装
+     * @return 返回 ResponseEntity 对象
+     */
+    public ResponseEntity<String> list(IPageData pd) {
+        return list@@TemplateCode@@sSMOImpl.list@@TemplateCode@@s(pd);
+    }
+
+    public IList@@TemplateCode@@sSMO getList@@TemplateCode@@sSMOImpl() {
+        return list@@TemplateCode@@sSMOImpl;
+    }
+
+    public void setList@@TemplateCode@@sSMOImpl(IList@@TemplateCode@@sSMO list@@TemplateCode@@sSMOImpl) {
+        this.list@@TemplateCode@@sSMOImpl = list@@TemplateCode@@sSMOImpl;
+    }
+}

+ 51 - 0
java110-code-generator/src/main/resources/web/choose/choose.html

@@ -0,0 +1,51 @@
+<div id = "choose@@TemplateCode@@Model" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="choose@@TemplateCode@@ModelLabel" aria-hidden="true" >
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h3 class="modal-title" id="choose@@TemplateCode@@ModelLabel">选择@@templateName@@</h3>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <div class=" row">
+                    <div class="col-lg-12">
+                        <div class="ibox ">
+                            <div class="row">
+
+                                <div class="col-sm-7 m-b-xs">
+                                </div>
+                                <div class="col-sm-5">
+                                    <div class="input-group">
+                                        <input placeholder="输入@@templateName@@名称" type="text" v-model="choose@@TemplateCode@@Info._current@@TemplateCode@@Name" class="form-control form-control-sm">
+                                        <span class="input-group-append">
+                                                <button type="button" class="btn btn-sm btn-primary" v-on:click="query@@TemplateCode@@s()">查询</button>
+                                            </span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="table-responsive" style="margin-top:15px">
+                                <table class="table table-striped">
+                                    <thead>
+                                        <tr>
+                                            @@columnsCnCode@@
+                                        </tr>
+                                    </thead>
+                                    <tbody>
+                                        <tr v-for="@@templateCode@@ in choose@@TemplateCode@@Info.@@templateCode@@s">
+                                            @@columnsName@@
+                                            <td>
+                                                <button class="btn btn-primary btn-xs" v-on:click="choose@@TemplateCode@@(@@templateCode@@)">选择</button>
+                                            </td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </div>
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 61 - 0
java110-code-generator/src/main/resources/web/choose/choose.js

@@ -0,0 +1,61 @@
+(function(vc){
+    vc.extends({
+        propTypes: {
+           emitChoose@@TemplateCode@@:vc.propTypes.string,
+           emitLoadData:vc.propTypes.string
+        },
+        data:{
+            choose@@TemplateCode@@Info:{
+                @@templateCode@@s:[],
+                _current@@TemplateCode@@Name:'',
+            }
+        },
+        _initMethod:function(){
+        },
+        _initEvent:function(){
+            vc.on('choose@@TemplateCode@@','openChoose@@TemplateCode@@Model',function(_param){
+                $('#choose@@TemplateCode@@Model').modal('show');
+                vc.component._refreshChoose@@TemplateCode@@Info();
+                vc.component._loadAll@@TemplateCode@@Info(1,10,'');
+            });
+        },
+        methods:{
+            _loadAll@@TemplateCode@@Info:function(_page,_row,_name){
+                var param = {
+                    params:{
+                        page:_page,
+                        row:_row,
+                        communityId:vc.getCurrentCommunity().communityId,
+                        name:_name
+                    }
+                };
+
+                //发送get请求
+               vc.http.get('choose@@TemplateCode@@',
+                            'list',
+                             param,
+                             function(json){
+                                var _@@templateCode@@Info = JSON.parse(json);
+                                vc.component.choose@@TemplateCode@@Info.@@templateCode@@s = _@@templateCode@@Info.@@templateCode@@s;
+                             },function(){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            choose@@TemplateCode@@:function(_@@templateCode@@){
+                vc.emit($props.emitChoose@@TemplateCode@@,'choose@@TemplateCode@@',_@@templateCode@@);
+                vc.emit($props.emitLoadData,'list@@TemplateCode@@Data',{
+                    @@templateCode@@Id:_@@templateCode@@.@@templateCode@@Id
+                });
+                $('#choose@@TemplateCode@@Model').modal('hide');
+            },
+            query@@TemplateCode@@s:function(){
+                vc.component._loadAll@@TemplateCode@@Info(1,10,vc.component.choose@@TemplateCode@@Info._current@@TemplateCode@@Name);
+            },
+            _refreshChoose@@TemplateCode@@Info:function(){
+                vc.component.choose@@TemplateCode@@Info._current@@TemplateCode@@Name = "";
+            }
+        }
+
+    });
+})(window.vc);

+ 30 - 0
java110-code-generator/src/main/resources/web/view/viewInfo.html

@@ -0,0 +1,30 @@
+<div class="row">
+    <div class="col-lg-12">
+        <div class="ibox ">
+            <div class="ibox-title">
+                <h5>@@templateName@@信息</h5>
+                <div class="ibox-tools" style="top:10px;">
+                    <button type="button" v-if="view@@TemplateCode@@Info.index != 2" class="btn btn-primary btn-sm" style="margin-right:10px;"  v-on:click="_openSelect@@TemplateCode@@InfoModel()">
+                        <i class="glyphicon glyphicon-search"></i> 选择@@templateName@@</button>
+
+                    <button type="button" v-if="view@@TemplateCode@@Info.index != 2" class="btn btn-primary btn-sm" v-on:click="_openAdd@@TemplateCode@@InfoModel()">
+                        <i class="glyphicon glyphicon-plus"></i> 添加@@templateName@@</button>
+                </div>
+            </div>
+            <div class="ibox-content">
+                @@viewInfo@@
+            </div>
+        </div>
+    </div>
+
+    <vc:create name="add@@TemplateCode@@"
+               callBackListener="view@@TemplateCode@@Info"
+               callBackFunction="choose@@TemplateCode@@"
+    ></vc:create>
+
+
+    <vc:create name="choose@@TemplateCode@@"
+               emitChoose@@TemplateCode@@="view@@TemplateCode@@Info"
+               emitLoadData="view@@TemplateCode@@Info"
+    ></vc:create>
+</div>

+ 47 - 0
java110-code-generator/src/main/resources/web/view/viewInfo.js

@@ -0,0 +1,47 @@
+/**
+    @@templateName@@ 组件
+**/
+(function(vc){
+
+    vc.extends({
+        propTypes: {
+           callBackListener:vc.propTypes.string, //父组件名称
+           callBackFunction:vc.propTypes.string //父组件监听方法
+        },
+        data:{
+            view@@TemplateCode@@Info:{
+                index:0,
+                flowComponent:'@@TemplateCode@@',
+                @@templateCodeColumns@@
+            }
+        },
+        _initMethod:function(){
+            //根据请求参数查询 查询 业主信息
+            vc.component._load@@TemplateCode@@InfoData();
+        },
+        _initEvent:function(){
+            vc.on('view@@TemplateCode@@Info','choose@@TemplateCode@@',function(_app){
+                vc.copyObject(_app, vc.component.view@@TemplateCode@@Info);
+                vc.emit($props.callBackListener,$props.callBackFunction,vc.component.view@@TemplateCode@@Info);
+            });
+
+            vc.on('view@@TemplateCode@@Info', 'onIndex', function(_index){
+                vc.component.view@@TemplateCode@@Info.index = _index;
+            });
+
+        },
+        methods:{
+
+            _openSelect@@TemplateCode@@InfoModel(){
+                vc.emit('choose@@TemplateCode@@','openChoose@@TemplateCode@@Model',{});
+            },
+            _openAdd@@TemplateCode@@InfoModel(){
+                vc.emit('add@@TemplateCode@@','openAdd@@TemplateCode@@Modal',{});
+            },
+            _load@@TemplateCode@@InfoData:function(){
+
+            }
+        }
+    });
+
+})(window.vc);