ソースを参照

开发服务功能开发完成

wuxw 7 年 前
コミット
52a2a3d44a
共有17 個のファイルを変更した948 個の追加190 個の削除を含む
  1. 49 6
      Api/src/main/java/com/java110/api/listener/serviceProvide/SaveServiceProvideListener.java
  2. 34 0
      WebService/src/main/java/com/java110/web/components/devServiceProvide/DevServiceProvideBindingComponent.java
  3. 19 0
      WebService/src/main/java/com/java110/web/smo/devServiceProvide/IDevServiceProvideBindingSMO.java
  4. 65 0
      WebService/src/main/java/com/java110/web/smo/devServiceProvide/impl/DevServiceProvideBindingSMOImpl.java
  5. 2 2
      WebService/src/main/java/com/java110/web/smo/serviceProvide/impl/AddServiceProvideSMOImpl.java
  6. 68 55
      WebService/src/main/resources/components/serviceProvidePackage/add-serviceProvide/addServiceProvide.html
  7. 41 0
      WebService/src/main/resources/components/serviceProvidePackage/devServiceProvide/devServiceProvide.html
  8. 93 0
      WebService/src/main/resources/components/serviceProvidePackage/devServiceProvide/devServiceProvide.js
  9. 57 0
      WebService/src/main/resources/components/serviceProvidePackage/devServiceProvideView/devServiceProvideView.html
  10. 107 0
      WebService/src/main/resources/components/serviceProvidePackage/devServiceProvideView/devServiceProvideView.js
  11. 51 32
      WebService/src/main/resources/components/serviceProvidePackage/serviceProvide-manage/serviceProvideManage.html
  12. 3 1
      WebService/src/main/resources/components/serviceProvidePackage/serviceProvide-manage/serviceProvideManage.js
  13. 22 0
      WebService/src/main/resources/components/serviceProvidePackage/serviceProvideRemarkView/serviceProvideRemarkView.html
  14. 57 0
      WebService/src/main/resources/components/serviceProvidePackage/serviceProvideRemarkView/serviceProvideRemarkView.js
  15. 38 0
      WebService/src/main/resources/views/devServiceProvideFlow.html
  16. 83 94
      java110-code-generator/src/main/resources/relationship/template_1.json
  17. 159 0
      java110-code-generator/src/main/resources/relationship/template_configMenu.json

+ 49 - 6
Api/src/main/java/com/java110/api/listener/serviceProvide/SaveServiceProvideListener.java

@@ -7,6 +7,7 @@ import com.java110.common.constant.ResponseConstant;
 import com.java110.common.exception.ListenerExecuteException;
 import com.java110.common.util.Assert;
 import com.java110.common.util.BeanConvertUtil;
+import com.java110.common.util.StringUtil;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.service.IServiceInnerServiceSMO;
@@ -39,26 +40,40 @@ public class SaveServiceProvideListener extends AbstractServiceApiListener {
 
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
+        JSONArray infos = reqJson.getJSONArray("data");
 
-        Assert.hasKeyAndValue(reqJson, "name", "必填,请填写服务名称");
-        Assert.hasKeyAndValue(reqJson, "serviceCode", "必填,请填写服务编码");
-        Assert.hasKeyAndValue(reqJson, "params", "必填,请填写参数");
-        Assert.hasKeyAndValue(reqJson, "queryModel", "必填,请选择是否显示菜单");
+        Assert.hasKeyByFlowData(infos, "Service", "name", "必填,请填写服务名称");
+        Assert.hasKeyByFlowData(infos, "Service", "serviceCode", "必填,请填写服务编码");
+        Assert.hasKeyByFlowData(infos, "devServiceProvideView", "queryModel", "必填,请选择是否显示菜单");
+        Assert.hasKeyByFlowData(infos, "devServiceProvideView", "params", "必填,请填写参数");
 
     }
 
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
-        ServiceProvideDto serviceProvideDto = BeanConvertUtil.covertBean(reqJson, ServiceProvideDto.class);
+        JSONArray infos = reqJson.getJSONArray("data");
+
+
+        JSONObject viewServiceInfo = getObj(infos, "viewServiceInfo");
+        JSONObject devServiceProvideView = getObj(infos, "devServiceProvideView");
+        JSONObject serviceProvideRemarkView = getObj(infos, "serviceProvideRemarkView");
+
+
+        ServiceProvideDto serviceProvideDto = BeanConvertUtil.covertBean(viewServiceInfo, ServiceProvideDto.class);
+
+        serviceProvideDto = BeanConvertUtil.covertBean(devServiceProvideView, serviceProvideDto);
+
+        serviceProvideDto = BeanConvertUtil.covertBean(serviceProvideRemarkView, serviceProvideDto);
 
         int count = serviceInnerServiceSMOImpl.saveServiceProvide(serviceProvideDto);
         if (count < 1) {
             throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "保存数据失败");
         }
 
-        ResponseEntity<String> responseEntity = new ResponseEntity<String>("", HttpStatus.OK);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(viewServiceInfo.toJSONString(), HttpStatus.OK);
 
         context.setResponseEntity(responseEntity);
     }
@@ -86,4 +101,32 @@ public class SaveServiceProvideListener extends AbstractServiceApiListener {
     public void setServiceInnerServiceSMOImpl(IServiceInnerServiceSMO serviceInnerServiceSMOImpl) {
         this.serviceInnerServiceSMOImpl = serviceInnerServiceSMOImpl;
     }
+
+    private boolean hasKey(JSONObject info, String key) {
+        if (!info.containsKey(key)
+                || StringUtil.isEmpty(info.getString(key))
+                || info.getString(key).startsWith("-")) {
+            return false;
+        }
+        return true;
+
+    }
+
+    private JSONObject getObj(JSONArray infos, String flowComponent) {
+
+        JSONObject serviceInfo = null;
+
+        for (int infoIndex = 0; infoIndex < infos.size(); infoIndex++) {
+
+            Assert.hasKeyAndValue(infos.getJSONObject(infoIndex), "flowComponent", "未包含服务流程组件名称");
+
+            if (flowComponent.equals(infos.getJSONObject(infoIndex).getString("flowComponent"))) {
+                serviceInfo = infos.getJSONObject(infoIndex);
+                Assert.notNull(serviceInfo, "未包含服务信息");
+                return serviceInfo;
+            }
+        }
+
+        throw new IllegalArgumentException("未找到组件编码为【" + flowComponent + "】数据");
+    }
 }

+ 34 - 0
WebService/src/main/java/com/java110/web/components/devServiceProvide/DevServiceProvideBindingComponent.java

@@ -0,0 +1,34 @@
+package com.java110.web.components.devServiceProvide;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.devServiceProvide.IDevServiceProvideBindingSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 添加开发服务提供组件
+ */
+@Component("devServiceProvideBinding")
+public class DevServiceProvideBindingComponent {
+
+    @Autowired
+    private IDevServiceProvideBindingSMO devServiceProvideBindingSMOImpl;
+
+    /**
+     * 添加开发服务提供数据
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> binding(IPageData pd){
+        return devServiceProvideBindingSMOImpl.bindingDevServiceProvide(pd);
+    }
+
+    public IDevServiceProvideBindingSMO getDevServiceProvideBindingSMOImpl() {
+        return devServiceProvideBindingSMOImpl;
+    }
+
+    public void setDevServiceProvideBindingSMOImpl(IDevServiceProvideBindingSMO devServiceProvideBindingSMOImpl) {
+        this.devServiceProvideBindingSMOImpl = devServiceProvideBindingSMOImpl;
+    }
+}

+ 19 - 0
WebService/src/main/java/com/java110/web/smo/devServiceProvide/IDevServiceProvideBindingSMO.java

@@ -0,0 +1,19 @@
+package com.java110.web.smo.devServiceProvide;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 添加开发服务提供接口
+ *
+ * add by wuxw 2019-06-30
+ */
+public interface IDevServiceProvideBindingSMO {
+
+    /**
+     * 添加开发服务提供
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    ResponseEntity<String> bindingDevServiceProvide(IPageData pd);
+}

+ 65 - 0
WebService/src/main/java/com/java110/web/smo/devServiceProvide/impl/DevServiceProvideBindingSMOImpl.java

@@ -0,0 +1,65 @@
+package com.java110.web.smo.devServiceProvide.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.PrivilegeCodeConstant;
+import com.java110.common.constant.ServiceConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.context.IPageData;
+import com.java110.web.core.AbstractComponentSMO;
+import com.java110.web.smo.devServiceProvide.IDevServiceProvideBindingSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+
+/**
+ * 添加小区服务实现类
+ * add by wuxw 2019-06-30
+ */
+@Service("devServiceProvideBindingSMOImpl")
+public class DevServiceProvideBindingSMOImpl extends AbstractComponentSMO implements IDevServiceProvideBindingSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        //super.validatePageInfo(pd);
+        JSONArray infos = paramIn.getJSONArray("data");
+        //Assert.hasKeyAndValue(paramIn, "xxx", "xxx");
+        Assert.hasKeyByFlowData(infos, "devServiceProvideView", "queryModel", "必填,请选择是否显示菜单");
+        Assert.hasKeyByFlowData(infos, "devServiceProvideView", "params", "必填,请填写参数");
+
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.SERVICE_PROVIDE);
+
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+        ResponseEntity<String> responseEntity = null;
+        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/serviceProvide.saveServiceProvide",
+                HttpMethod.POST);
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> bindingDevServiceProvide(IPageData pd) {
+        return super.businessProcess(pd);
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 2 - 2
WebService/src/main/java/com/java110/web/smo/serviceProvide/impl/AddServiceProvideSMOImpl.java

@@ -45,9 +45,9 @@ public class AddServiceProvideSMOImpl extends AbstractComponentSMO implements IA
         ResponseEntity<String> responseEntity = null;
         super.validateStoreStaffCommunityRelationship(pd, restTemplate);
 
-        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+        /*responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                 ServiceConstant.SERVICE_API_URL + "/api/serviceProvide.saveServiceProvide",
-                HttpMethod.POST);
+                HttpMethod.POST);*/
         return responseEntity;
     }
 

+ 68 - 55
WebService/src/main/resources/components/serviceProvidePackage/add-serviceProvide/addServiceProvide.html

@@ -1,4 +1,5 @@
-<div id = "addServiceProvideModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" >
+<div id="addServiceProvideModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
+     aria-hidden="true">
     <div class="modal-dialog modal-lg">
         <div class="modal-content">
             <div class="modal-body">
@@ -20,62 +21,74 @@
                             </div>-->
 
                             <div class="form-group row">
-         <label class="col-sm-2 col-form-label">服务名称</label>
-         <div class="col-sm-10">
-           <input v-model="addServiceProvideInfo.name"                   type="text" placeholder="必填,请填写服务名称" class="form-control">
-         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">服务编码</label>
-         <div class="col-sm-10">
-           <input v-model="addServiceProvideInfo.serviceCode"                   type="text" placeholder="必填,请填写服务编码" class="form-control">
-         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">参数</label>
-         <div class="col-sm-10">
-           <input v-model="addServiceProvideInfo.params"                   type="text" placeholder="必填,请填写参数" class="form-control">
-         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">实现方式</label>
-         <div class="col-sm-10">
-<select class="custom-select" v-model="addServiceProvideInfo.queryModel">
-         <option selected  disabled value="">必填,请选择实现方式</option>
-         <option  value="1">sql方式</option>
-<option  value="3">java方式</option>
-<option  value="2">存储过程方式</option>
-  </select>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">sql</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写sql" class="form-control" v-model="addServiceProvideInfo.sql"></textarea>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">输出模板</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写输出模板" class="form-control" v-model="addServiceProvideInfo.template"></textarea>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">存储过程</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写存储过程" class="form-control" v-model="addServiceProvideInfo.proc"></textarea>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">java</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写java" class="form-control" v-model="addServiceProvideInfo.javaScript"></textarea>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">描述</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写描述" class="form-control" v-model="addServiceProvideInfo.remark"></textarea>         </div>
-</div>
+                                <label class="col-sm-2 col-form-label">服务名称</label>
+                                <div class="col-sm-10">
+                                    <input v-model="addServiceProvideInfo.name" type="text" placeholder="必填,请填写服务名称"
+                                           class="form-control">
+                                </div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">服务编码</label>
+                                <div class="col-sm-10">
+                                    <input v-model="addServiceProvideInfo.serviceCode" type="text"
+                                           placeholder="必填,请填写服务编码" class="form-control">
+                                </div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">参数</label>
+                                <div class="col-sm-10">
+                                    <input v-model="addServiceProvideInfo.params" type="text" placeholder="必填,请填写参数"
+                                           class="form-control">
+                                </div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">实现方式</label>
+                                <div class="col-sm-10">
+                                    <select class="custom-select" v-model="addServiceProvideInfo.queryModel">
+                                        <option selected disabled value="">必填,请选择实现方式</option>
+                                        <option value="1">sql方式</option>
+                                        <option value="3">java方式</option>
+                                        <option value="2">存储过程方式</option>
+                                    </select></div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">sql</label>
+                                <div class="col-sm-10">
+                                    <textarea placeholder="选填,请填写sql" class="form-control"
+                                              v-model="addServiceProvideInfo.sql"></textarea></div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">输出模板</label>
+                                <div class="col-sm-10">
+                                    <textarea placeholder="选填,请填写输出模板" class="form-control"
+                                              v-model="addServiceProvideInfo.template"></textarea></div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">存储过程</label>
+                                <div class="col-sm-10">
+                                    <textarea placeholder="选填,请填写存储过程" class="form-control"
+                                              v-model="addServiceProvideInfo.proc"></textarea></div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">java</label>
+                                <div class="col-sm-10">
+                                    <textarea placeholder="选填,请填写java" class="form-control"
+                                              v-model="addServiceProvideInfo.javaScript"></textarea></div>
+                            </div>
+                            <div class="form-group row">
+                                <label class="col-sm-2 col-form-label">描述</label>
+                                <div class="col-sm-10">
+                                    <textarea placeholder="选填,请填写描述" class="form-control"
+                                              v-model="addServiceProvideInfo.remark"></textarea></div>
+                            </div>
 
                             <div class="ibox-content">
-                                <button class="btn btn-primary float-right" type="button" v-on:click="saveServiceProvideInfo()" ><i class="fa fa-check"></i>&nbsp;保存</button>
-                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">取消</button>
+                                <button class="btn btn-primary float-right" type="button"
+                                        v-on:click="saveServiceProvideInfo()"><i class="fa fa-check"></i>&nbsp;保存
+                                </button>
+                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
+                                        data-dismiss="modal">取消
+                                </button>
                             </div>
                         </div>
                     </div>

+ 41 - 0
WebService/src/main/resources/components/serviceProvidePackage/devServiceProvide/devServiceProvide.html

@@ -0,0 +1,41 @@
+<div id="component">
+
+    <div class="java110_step">
+        <div id="step"></div>
+    </div>
+
+    <!-- 选择 应用信息 -->
+    <div v-if="devServiceProvideInfo.index == 0">
+        <vc:create name="viewServiceInfo"
+                   callBackListener="devServiceProvide"
+                   callBackFunction="notify"
+        ></vc:create>
+    </div>
+    <div v-if="devServiceProvideInfo.index == 1">
+        <vc:create name="devServiceProvideView"
+                   callBackListener="devServiceProvide"
+                   callBackFunction="notify"
+        ></vc:create>
+    </div>
+    <div v-if="devServiceProvideInfo.index == 2">
+        <vc:create name="serviceProvideRemarkView"
+                   callBackListener="devServiceProvide"
+                   callBackFunction="notify"
+        ></vc:create>
+    </div>
+
+
+    <div class="row">
+        <div class="col-md-10"></div>
+        <div class="col-md-2 " style="margin-bottom:10px; text-align:right">
+            <button type="button" class="btn btn-secondary" v-on:click="_prevStep()">上一步</button>
+            <button v-if="devServiceProvideInfo.index != 2" type="button" class="btn btn-primary"
+                    style="margin-left:10px;" v-on:click="_nextStep()">下一步
+            </button>
+            <button v-if="devServiceProvideInfo.index == 2" type="button" class="btn btn-primary"
+                    style="margin-left:10px;" v-on:click="_finishStep()">完成
+            </button>
+        </div>
+    </div>
+
+</div>

+ 93 - 0
WebService/src/main/resources/components/serviceProvidePackage/devServiceProvide/devServiceProvide.js

@@ -0,0 +1,93 @@
+/**
+    入驻小区
+**/
+(function(vc){
+    vc.extends({
+        data:{
+            devServiceProvideInfo:{
+                $step:{},
+                index:0,
+                infos:[]
+            }
+        },
+        _initMethod:function(){
+            vc.component._initStep();
+        },
+        _initEvent:function(){
+            vc.on("devServiceProvide", "notify", function(_info){
+                vc.component.devServiceProvideInfo.infos[vc.component.devServiceProvideInfo.index] = _info;
+            });
+
+        },
+        methods:{
+            _initStep:function(){
+                vc.component.devServiceProvideInfo.$step = $("#step");
+                vc.component.devServiceProvideInfo.$step.step({
+                    index: 0,
+                    time: 500,
+                    title: ["选择服务","开发服务实现","备注信息"]
+                });
+                vc.component.devServiceProvideInfo.index = vc.component.devServiceProvideInfo.$step.getIndex();
+            },
+            _prevStep:function(){
+                vc.component.devServiceProvideInfo.$step.prevStep();
+                vc.component.devServiceProvideInfo.index = vc.component.devServiceProvideInfo.$step.getIndex();
+
+                vc.emit('viewServiceInfo', 'onIndex', vc.component.devServiceProvideInfo.index);
+vc.emit('devServiceProvideView', 'onIndex', vc.component.devServiceProvideInfo.index);
+vc.emit('serviceProvideRemarkView', 'onIndex', vc.component.devServiceProvideInfo.index);
+
+            },
+            _nextStep:function(){
+                var _currentData = vc.component.devServiceProvideInfo.infos[vc.component.devServiceProvideInfo.index];
+                if( _currentData == null || _currentData == undefined){
+                    vc.message("请选择或填写必选信息");
+                    return ;
+                }
+                vc.component.devServiceProvideInfo.$step.nextStep();
+                vc.component.devServiceProvideInfo.index = vc.component.devServiceProvideInfo.$step.getIndex();
+
+                 vc.emit('viewServiceInfo', 'onIndex', vc.component.devServiceProvideInfo.index);
+vc.emit('devServiceProvideView', 'onIndex', vc.component.devServiceProvideInfo.index);
+vc.emit('serviceProvideRemarkView', 'onIndex', vc.component.devServiceProvideInfo.index);
+
+            },
+            _finishStep:function(){
+
+
+                var _currentData = vc.component.devServiceProvideInfo.infos[vc.component.devServiceProvideInfo.index];
+                if( _currentData == null || _currentData == undefined){
+                    vc.message("请选择或填写必选信息");
+                    return ;
+                }
+
+                var param = {
+                    data:vc.component.devServiceProvideInfo.infos
+                }
+
+               vc.http.post(
+                   'devServiceProvideBinding',
+                   'binding',
+                   JSON.stringify(param),
+                   {
+                       emulateJSON:true
+                    },
+                    function(json,res){
+                       if(res.status == 200){
+
+                           vc.message('处理成功',true);
+                           //关闭model
+                           vc.jumpToPage("/flow/devServiceProvideFlow?" + vc.objToGetParam(JSON.parse(json)));
+                           return ;
+                       }
+                       vc.message(json);
+                    },
+                    function(errInfo,error){
+                       console.log('请求失败处理');
+
+                       vc.message(errInfo);
+                    });
+            }
+        }
+    });
+})(window.vc);

+ 57 - 0
WebService/src/main/resources/components/serviceProvidePackage/devServiceProvideView/devServiceProvideView.html

@@ -0,0 +1,57 @@
+<div class="row">
+    <div class="col-lg-12">
+        <div class="ibox">
+            <div class="ibox-title">
+                <h5>开发服务</h5>
+                <div class="ibox-tools" style="top:10px;">
+
+                </div>
+            </div>
+            <div class="ibox-content">
+
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">实现方式</label>
+                    <div class="col-sm-10">
+                        <select class="custom-select" v-model="devServiceProvideViewInfo.queryModel">
+                            <option selected disabled value="">必填,请选择实现方式</option>
+                            <option value="1">sql方式</option>
+                            <option value="3">java方式</option>
+                            <option value="2">存储过程方式</option>
+                        </select></div>
+                </div>
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">参数</label>
+                    <div class="col-sm-10">
+                        <input v-model="devServiceProvideViewInfo.params" type="text" placeholder="必填,请填写参数"
+                               class="form-control">
+                    </div>
+                </div>
+                <div class="form-group row" v-if="addServiceProvideInfo.queryModel==1">
+                    <label class="col-sm-2 col-form-label">sql</label>
+                    <div class="col-sm-10">
+                        <textarea rows="15" placeholder="选填,请填写sql" class="form-control"
+                                  v-model="devServiceProvideViewInfo.sql"></textarea></div>
+                </div>
+                <div class="form-group row" v-if="addServiceProvideInfo.queryModel==1">
+                    <label class="col-sm-2 col-form-label">输出模板</label>
+                    <div class="col-sm-10">
+                        <textarea cols="5" placeholder="选填,请填写输出模板" class="form-control"
+                                  v-model="devServiceProvideViewInfo.template"></textarea></div>
+                </div>
+                <div class="form-group row" v-if="addServiceProvideInfo.queryModel==2">
+                    <label class="col-sm-2 col-form-label">存储过程</label>
+                    <div class="col-sm-10">
+                        <textarea cols="5" placeholder="选填,请填写存储过程" class="form-control"
+                                  v-model="devServiceProvideViewInfo.proc"></textarea></div>
+                </div>
+                <div class="form-group row" v-if="addServiceProvideInfo.queryModel==3">
+                    <label class="col-sm-2 col-form-label">java</label>
+                    <div class="col-sm-10">
+                        <textarea rows="20" placeholder="选填,请填写java" class="form-control"
+                                  v-model="devServiceProvideViewInfo.javaScript"></textarea></div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+</div>

+ 107 - 0
WebService/src/main/resources/components/serviceProvidePackage/devServiceProvideView/devServiceProvideView.js

@@ -0,0 +1,107 @@
+(function(vc){
+
+    vc.extends({
+        propTypes: {
+           callBackListener:vc.propTypes.string, //父组件名称
+           callBackFunction:vc.propTypes.string //父组件监听方法
+        },
+        data:{
+            devServiceProvideViewInfo:{
+                flowComponent:'devServiceProvideView',
+                queryModel:'',
+params:'',
+sql:'',
+template:'',
+proc:'',
+javaScript:'',
+
+            }
+        },
+        watch:{
+            devServiceProvideViewInfo:{
+                deep: true,
+                handler:function(){
+                    vc.component.saveDevServiceProvideInfo();
+                }
+             }
+        },
+         _initMethod:function(){
+
+         },
+         _initEvent:function(){
+
+            vc.on('devServiceProvideViewInfo', 'onIndex', function(_index){
+                vc.component.devServiceProvideViewInfo.index = _index;
+            });
+        },
+        methods:{
+            devServiceProvideValidate(){
+                return vc.validate.validate({
+                    devServiceProvideViewInfo:vc.component.devServiceProvideViewInfo
+                },{
+                    'devServiceProvideViewInfo.queryModel':[
+{
+                            limit:"required",
+                            param:"",
+                            errInfo:"实现方式不能为空"
+                        },
+ {
+                            limit:"maxin",
+                            param:"1,12",
+                            errInfo:"实现方式错误"
+                        },
+                    ],
+'devServiceProvideViewInfo.params':[
+{
+                            limit:"required",
+                            param:"",
+                            errInfo:"参数不能为空"
+                        },
+ {
+                            limit:"maxLength",
+                            param:"500",
+                            errInfo:"参数内容不能超过200"
+                        },
+                    ],
+'devServiceProvideViewInfo.sql':[
+ {
+                            limit:"maxLength",
+                            param:"2000",
+                            errInfo:"sql不能超过2000"
+                        },
+                    ],
+'devServiceProvideViewInfo.template':[
+ {
+                            limit:"maxLength",
+                            param:"2000",
+                            errInfo:"输出模板不能超过2000"
+                        },
+                    ],
+'devServiceProvideViewInfo.proc':[
+ {
+                            limit:"maxLength",
+                            param:"200",
+                            errInfo:"存储过程不能超过200"
+                        },
+                    ],
+'devServiceProvideViewInfo.javaScript':[
+ {
+                            limit:"maxLength",
+                            param:"2000",
+                            errInfo:"java不能超过2000"
+                        },
+                    ],
+
+                });
+            },
+            saveDevServiceProvideInfo:function(){
+                if(vc.component.devServiceProvideValidate()){
+                    //侦听回传
+                    vc.emit($props.callBackListener,$props.callBackFunction, vc.component.devServiceProvideViewInfo);
+                    return ;
+                }
+            }
+        }
+    });
+
+})(window.vc);

+ 51 - 32
WebService/src/main/resources/components/serviceProvidePackage/serviceProvide-manage/serviceProvideManage.html

@@ -5,33 +5,47 @@
                 <div class="ibox-title">
                     <h5>查询条件</h5>
                     <div class="ibox-tools" style="top:10px;">
-                        <button type="button"  class="btn btn-link btn-sm" style="margin-right:10px;"  v-on:click="_moreCondition()">更多</button>
+                        <button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"
+                                v-on:click="_moreCondition()">更多
+                        </button>
                     </div>
                 </div>
                 <div class="ibox-content">
                     <div class="row">
-<div class="col-sm-4" >
-<div class="form-group">
-                                <input type="text" placeholder="请输入提供ID" v-model="serviceProvideManageInfo.conditions.id" class=" form-control">
-                            </div>                        </div><div class="col-sm-4" >
-<div class="form-group">
-                                <input type="text" placeholder="请输入服务编码" v-model="serviceProvideManageInfo.conditions.serviceCode" class=" form-control">
-                            </div>                        </div><div class="col-sm-3" >
-<div class="form-group">
-                                <input type="text" placeholder="请输入服务名称" v-model="serviceProvideManageInfo.conditions.name" class=" form-control">
-                            </div>                        </div><div class="col-sm-1">
-                            <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryServiceProvideMethod()">
-                                    <i class="glyphicon glyphicon-search"></i> 查询
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入提供ID"
+                                       v-model="serviceProvideManageInfo.conditions.id" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入服务编码"
+                                       v-model="serviceProvideManageInfo.conditions.serviceCode" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-3">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入服务名称"
+                                       v-model="serviceProvideManageInfo.conditions.name" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-1">
+                            <button type="button" class="btn btn-primary btn-sm"
+                                    v-on:click="_queryServiceProvideMethod()">
+                                <i class="glyphicon glyphicon-search"></i> 查询
                             </button>
-                        </div></div>
-<div class="row">
-<div class="col-sm-4" v-if="serviceProvideManageInfo.moreCondition == true">
-<select class="custom-select" v-model="serviceProvideManageInfo.conditions.queryModel">
-         <option selected  value="">请选择实现方式</option>
-         <option  value="1">sql方式</option>
-<option  value="3">java方式</option>
-<option  value="2">存储过程方式</option>
-  </select>                        </div></div>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-sm-4" v-if="serviceProvideManageInfo.moreCondition == true">
+                            <select class="custom-select" v-model="serviceProvideManageInfo.conditions.queryModel">
+                                <option selected value="">请选择实现方式</option>
+                                <option value="1">sql方式</option>
+                                <option value="3">java方式</option>
+                                <option value="2">存储过程方式</option>
+                            </select></div>
+                    </div>
 
 
                 </div>
@@ -46,7 +60,7 @@
                     <div class="ibox-tools" style="top:10px;">
                         <button type="button" class="btn btn-primary btn-sm" v-on:click="_openAddServiceProvideModal()">
                             <i class="glyphicon glyphicon-plus"></i>
-                            添加服务提供
+                            开发服务
                         </button>
                     </div>
                 </div>
@@ -57,7 +71,7 @@
                     >
                         <thead>
                         <tr>
-                                                        <th class="text-center">提供ID</th>
+                            <th class="text-center">提供ID</th>
                             <th class="text-center">服务名称</th>
                             <th class="text-center">服务编码</th>
                             <th class="text-center">参数</th>
@@ -69,17 +83,23 @@
                         </thead>
                         <tbody>
                         <tr v-for="serviceProvide in serviceProvideManageInfo.serviceProvides">
-                                                        <td class="text-center">{{serviceProvide.id}}</td>
+                            <td class="text-center">{{serviceProvide.id}}</td>
                             <td class="text-center">{{serviceProvide.name}}</td>
                             <td class="text-center">{{serviceProvide.serviceCode}}</td>
                             <td class="text-center">{{serviceProvide.params}}</td>
                             <td class="text-center">{{serviceProvide.queryModel}}</td>
-                            <td class="text-center"><div class="btn-group">
-                                    <button class="btn-white btn btn-xs" v-on:click="_openEditServiceProvideModel(serviceProvide)">修改</button>
+                            <td class="text-center">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs"
+                                            v-on:click="_openEditServiceProvideModel(serviceProvide)">修改
+                                    </button>
                                 </div>
                                 <div class="btn-group">
-                                    <button class="btn-white btn btn-xs" v-on:click="_openDeleteServiceProvideModel(serviceProvide)">删除</button>
-                                </div></td>
+                                    <button class="btn-white btn btn-xs"
+                                            v-on:click="_openDeleteServiceProvideModel(serviceProvide)">删除
+                                    </button>
+                                </div>
+                            </td>
 
                         </tr>
                         </tbody>
@@ -98,12 +118,11 @@
         </div>
     </div>
 
-    
 
-    <vc:create name="addServiceProvide"
+   <!-- <vc:create name="addServiceProvide"
                callBackListener=""
                callBackFunction=""
-    ></vc:create>
+    ></vc:create>-->
     <vc:create name="editServiceProvide"></vc:create>
     <vc:create name="deleteServiceProvide"></vc:create>
 

+ 3 - 1
WebService/src/main/resources/components/serviceProvidePackage/serviceProvide-manage/serviceProvideManage.js

@@ -22,6 +22,7 @@ queryModel:'',
             }
         },
         _initMethod:function(){
+            vc.component.serviceProvideManageInfo.conditions.serviceCode = vc.getParam("serviceCode");
             vc.component._listServiceProvides(DEFAULT_PAGE, DEFAULT_ROWS);
         },
         _initEvent:function(){
@@ -61,7 +62,8 @@ queryModel:'',
                            );
             },
             _openAddServiceProvideModal:function(){
-                vc.emit('addServiceProvide','openAddServiceProvideModal',{});
+                //vc.emit('addServiceProvide','openAddServiceProvideModal',{});
+                vc.jumpToPage("/flow/devServiceProvideFlow");
             },
             _openEditServiceProvideModel:function(_serviceProvide){
                 vc.emit('editServiceProvide','openEditServiceProvideModal',_serviceProvide);

+ 22 - 0
WebService/src/main/resources/components/serviceProvidePackage/serviceProvideRemarkView/serviceProvideRemarkView.html

@@ -0,0 +1,22 @@
+<div class="row">
+    <div class="col-lg-12">
+        <div class="ibox">
+            <div class="ibox-title">
+                <h5>开发服务提供</h5>
+                <div class="ibox-tools" style="top:10px;">
+
+                </div>
+            </div>
+            <div class="ibox-content">
+
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">描述</label>
+                    <div class="col-sm-10">
+                        <textarea rows="10" placeholder="选填,请填写描述" class="form-control"
+                                  v-model="serviceProvideRemarkViewInfo.description"></textarea></div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+</div>

+ 57 - 0
WebService/src/main/resources/components/serviceProvidePackage/serviceProvideRemarkView/serviceProvideRemarkView.js

@@ -0,0 +1,57 @@
+(function(vc){
+
+    vc.extends({
+        propTypes: {
+           callBackListener:vc.propTypes.string, //父组件名称
+           callBackFunction:vc.propTypes.string //父组件监听方法
+        },
+        data:{
+            serviceProvideRemarkViewInfo:{
+                flowComponent:'serviceProvideRemarkView',
+                remark:'',
+
+            }
+        },
+        watch:{
+            serviceProvideRemarkViewInfo:{
+                deep: true,
+                handler:function(){
+                    vc.component.saveServiceProvideRemarkInfo();
+                }
+             }
+        },
+         _initMethod:function(){
+
+         },
+         _initEvent:function(){
+
+            vc.on('serviceProvideRemarkViewInfo', 'onIndex', function(_index){
+                vc.component.serviceProvideRemarkViewInfo.index = _index;
+            });
+        },
+        methods:{
+            serviceProvideRemarkValidate(){
+                return vc.validate.validate({
+                    serviceProvideRemarkViewInfo:vc.component.serviceProvideRemarkViewInfo
+                },{
+                    'serviceProvideRemarkViewInfo.remark':[
+ {
+                            limit:"maxLength",
+                            param:"200",
+                            errInfo:"备注内容不能超过200"
+                        },
+                    ],
+
+                });
+            },
+            saveServiceProvideRemarkInfo:function(){
+                if(vc.component.serviceProvideRemarkValidate()){
+                    //侦听回传
+                    vc.emit($props.callBackListener,$props.callBackFunction, vc.component.serviceProvideRemarkViewInfo);
+                    return ;
+                }
+            }
+        }
+    });
+
+})(window.vc);

+ 38 - 0
WebService/src/main/resources/views/devServiceProvideFlow.html

@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"
+      xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org"
+      xmlns:vc="http://www.thymeleaf.org">
+<head>
+    <meta charset="UTF-8"/>
+    <title>开发服务提供|java110</title>
+    <vc:create name="commonTop"></vc:create>
+    <link href="/css/jquery.step.css" rel="stylesheet"/>
+    <script src="/js/jquery.step.min.js" ></script>
+</head>
+<body>
+<vc:create name="bodyTop"></vc:create>
+<div id="wrapper">
+    <vc:create name="menu"></vc:create>
+
+
+    <div id="page-wrapper" class="gray-bg dashbard-1">
+        <div class="row border-bottom">
+            <vc:create name="nav"></vc:create>
+        </div>
+        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
+            <vc:create name="breadcrumb"></vc:create>
+        </div>
+        <!-- id="component" -->
+        <div class="wrapper wrapper-content animated fadeInRight">
+            <vc:create name="devServiceProvide"></vc:create>
+        </div>
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 83 - 94
java110-code-generator/src/main/resources/relationship/template_1.json

@@ -1,145 +1,134 @@
 {
-  "templateName":"配置菜单",
-  "templateCode":"configMenu",
-  "templateKey":"mId",
-  "templateKeyName":"菜单ID",
-  "package": "menuPackage",
-  "successUrl": "/flow/menuFlow",
+  "templateName":"开发服务提供",
+  "templateCode":"devServiceProvide",
+  "templateKey":"id",
+  "templateKeyName":"提供ID",
+  "package": "serviceProvidePackage",
+  "successUrl": "/flow/devServiceProvideFlow",
   "needAffirm": false,
   "flows":[
     {
       "index": 0,
-      "code":"menuGroup",
-      "flowKey": "gId",
-      "cnCode":"选择菜单组",
-      "vcName":"viewMenuGroupInfo",
-      "businessName": "businessMenuGroup",
-      "businessType": "BUSINESS_TYPE_SAVE_MENU_GROUP_INFO",
+      "code":"service",
+      "flowKey": "serviceId",
+      "cnCode":"选择服务",
+      "vcName":"viewServiceInfo",
+      "businessName": "businessService",
+      "businessType": "BUSINESS_TYPE_SAVE_SERVICE_INFO",
       "existsComponent": true
     },
     {
       "index": 1,
-      "code":"menu",
-      "flowKey": "mId",
-      "cnCode":"菜单信息",
-      "vcName":"addMenuView",
-      "businessName": "businessMenu",
-      "businessType": "BUSINESS_TYPE_SAVE_MENU_INFO",
+      "code":"devServiceProvide",
+      "flowKey": "devId",
+      "cnCode":"开发服务实现",
+      "vcName":"devServiceProvideView",
+      "businessName": "businessDev",
+      "businessType": "BUSINESS_TYPE_SAVE_DEV_INFO",
       "existsComponent": false
     },
     {
       "index": 2,
-      "code":"privilege",
-      "flowKey": "pId",
-      "cnCode":"权限信息",
-      "vcName":"addPrivilegeView",
-      "businessName": "businessPrivilege",
-      "businessType": "BUSINESS_TYPE_SAVE_PRIVILEGE_INFO",
+      "code":"serviceProvideRemark",
+      "flowKey": "remarkId",
+      "cnCode":"备注信息",
+      "vcName":"serviceProvideRemarkView",
+      "businessName": "businessServiceProvideRemark",
+      "businessType": "BUSINESS_TYPE_SAVE_REMARK_INFO",
       "existsComponent": false
     }
   ],
   "components": {
-      "addMenuView": {
-        "templateName":"菜单信息",
-        "templateCode":"addMenu",
-        "package": "menuPackage",
+      "devServiceProvideView": {
+        "templateName":"开发服务实现",
+        "templateCode":"devServiceProvide",
+        "package": "serviceProvidePackage",
         "columns":[
           {
-            "code":"name",
-            "cnCode":"菜单名称",
-            "desc":"必填,请填写菜单名称",
+            "code":"queryModel",
+            "cnCode":"实现方式",
+            "desc":"必填,请选择是否显示菜单",
             "required":true,
             "hasDefaultValue":false,
-            "inputType":"input",
+            "inputType":"select",
+            "selectValue":"1,3,2",
+            "selectValueName":"sql方式,java方式,存储过程方式",
             "limit":"maxin",
-            "limitParam":"2,10",
-            "limitErrInfo":"菜单名称必须在2至10字符之间",
+            "limitParam":"1,12",
+            "limitErrInfo":"实现方式错误",
             "show": true
           },
           {
-            "code":"url",
-            "cnCode":"菜单地址",
-            "desc":"必填,请菜单菜单地址",
+            "code":"params",
+            "cnCode":"参数",
+            "desc":"必填,请填写参数",
             "required":true,
             "hasDefaultValue":false,
             "inputType":"input",
-            "limit":"maxin",
-            "limitParam":"2,10",
-            "limitErrInfo":"菜单名称必须在2至10字符之间",
+            "limit":"maxLength",
+            "limitParam":"500",
+            "limitErrInfo":"参数内容不能超过200",
             "show": true
           },
           {
-            "code":"seq",
-            "cnCode":"序列",
-            "desc":"必填,请填写序列",
-            "required":true,
+            "code":"sql",
+            "cnCode":"sql",
+            "desc":"可填,请填写sql",
+            "required":false,
             "hasDefaultValue":false,
-            "inputType":"input",
-            "limit":"num",
-            "limitParam":"",
-            "limitErrInfo":"序列必须为整数",
-            "show": true
+            "defaultValue":"",
+            "inputType":"textarea",
+            "limit":"maxLength",
+            "limitParam":"2000",
+            "limitErrInfo":"sql不能超过2000",
+            "show": false
           },
           {
-            "code":"isShow",
-            "cnCode":"菜单显示",
-            "desc":"必填,请选择是否显示菜单",
-            "required":true,
+            "code":"template",
+            "cnCode":"输出模板",
+            "desc":"可填,请填写输出模板",
+            "required":false,
             "hasDefaultValue":false,
-            "inputType":"select",
-            "selectValue":"Y,N",
-            "selectValueName":"显示菜单,不显示菜单",
-            "limit":"maxin",
-            "limitParam":"1,12",
-            "limitErrInfo":"菜单显示错误",
-            "show": true
+            "defaultValue":"",
+            "inputType":"textarea",
+            "limit":"maxLength",
+            "limitParam":"2000",
+            "limitErrInfo":"输出模板不能超过2000",
+            "show": false
           },
           {
-            "code":"description",
-            "cnCode":"描述",
-            "desc":"可填,请填写描述",
+            "code":"proc",
+            "cnCode":"存储过程",
+            "desc":"可填,请填写存储过程",
             "required":false,
             "hasDefaultValue":false,
             "defaultValue":"",
             "inputType":"textarea",
             "limit":"maxLength",
             "limitParam":"200",
-            "limitErrInfo":"备注内容不能超过200",
+            "limitErrInfo":"存储过程不能超过200",
+            "show": false
+          },
+          {
+            "code":"javaScript",
+            "cnCode":"java",
+            "desc":"可填,请填写java语句",
+            "required":false,
+            "hasDefaultValue":false,
+            "defaultValue":"",
+            "inputType":"textarea",
+            "limit":"maxLength",
+            "limitParam":"2000",
+            "limitErrInfo":"java不能超过2000",
             "show": false
           }
         ]
       },
-    "addPrivilegeView": {
-      "templateName":"权限信息",
-      "templateCode":"addPrivilege",
-      "package": "privilegePackage",
+    "serviceProvideRemarkView": {
+      "templateName":"备注信息",
+      "templateCode":"serviceProvideRemark",
+      "package": "serviceProvidePackage",
       "columns":[
-        {
-          "code":"name",
-          "cnCode":"权限名称",
-          "desc":"必填,请填写权限名称",
-          "required":true,
-          "hasDefaultValue":false,
-          "inputType":"input",
-          "limit":"maxin",
-          "limitParam":"2,10",
-          "limitErrInfo":"权限名称必须在2至10字符之间",
-          "show": true
-        },
-        {
-          "code":"domain",
-          "cnCode":"商户类型",
-          "desc":"必填,请选择商户类型",
-          "required":true,
-          "hasDefaultValue":false,
-          "inputType":"select",
-          "selectValue":"800900000001,800900000002,800900000003,800900000000",
-          "selectValueName":"运营团队,代理商,物业,开发团队",
-          "limit":"maxin",
-          "limitParam":"1,12",
-          "limitErrInfo":"商户类型错误",
-          "show": true
-        },
         {
           "code":"description",
           "cnCode":"描述",

+ 159 - 0
java110-code-generator/src/main/resources/relationship/template_configMenu.json

@@ -0,0 +1,159 @@
+{
+  "templateName":"配置菜单",
+  "templateCode":"configMenu",
+  "templateKey":"mId",
+  "templateKeyName":"菜单ID",
+  "package": "menuPackage",
+  "successUrl": "/flow/menuFlow",
+  "needAffirm": false,
+  "flows":[
+    {
+      "index": 0,
+      "code":"menuGroup",
+      "flowKey": "gId",
+      "cnCode":"选择菜单组",
+      "vcName":"viewMenuGroupInfo",
+      "businessName": "businessMenuGroup",
+      "businessType": "BUSINESS_TYPE_SAVE_MENU_GROUP_INFO",
+      "existsComponent": true
+    },
+    {
+      "index": 1,
+      "code":"menu",
+      "flowKey": "mId",
+      "cnCode":"菜单信息",
+      "vcName":"addMenuView",
+      "businessName": "businessMenu",
+      "businessType": "BUSINESS_TYPE_SAVE_MENU_INFO",
+      "existsComponent": false
+    },
+    {
+      "index": 2,
+      "code":"privilege",
+      "flowKey": "pId",
+      "cnCode":"权限信息",
+      "vcName":"addPrivilegeView",
+      "businessName": "businessPrivilege",
+      "businessType": "BUSINESS_TYPE_SAVE_PRIVILEGE_INFO",
+      "existsComponent": false
+    }
+  ],
+  "components": {
+      "addMenuView": {
+        "templateName":"菜单信息",
+        "templateCode":"addMenu",
+        "package": "menuPackage",
+        "columns":[
+          {
+            "code":"name",
+            "cnCode":"菜单名称",
+            "desc":"必填,请填写菜单名称",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"maxin",
+            "limitParam":"2,10",
+            "limitErrInfo":"菜单名称必须在2至10字符之间",
+            "show": true
+          },
+          {
+            "code":"url",
+            "cnCode":"菜单地址",
+            "desc":"必填,请菜单菜单地址",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"maxin",
+            "limitParam":"2,10",
+            "limitErrInfo":"菜单名称必须在2至10字符之间",
+            "show": true
+          },
+          {
+            "code":"seq",
+            "cnCode":"序列",
+            "desc":"必填,请填写序列",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"num",
+            "limitParam":"",
+            "limitErrInfo":"序列必须为整数",
+            "show": true
+          },
+          {
+            "code":"isShow",
+            "cnCode":"菜单显示",
+            "desc":"必填,请选择是否显示菜单",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"select",
+            "selectValue":"Y,N",
+            "selectValueName":"显示菜单,不显示菜单",
+            "limit":"maxin",
+            "limitParam":"1,12",
+            "limitErrInfo":"菜单显示错误",
+            "show": true
+          },
+          {
+            "code":"description",
+            "cnCode":"描述",
+            "desc":"可填,请填写描述",
+            "required":false,
+            "hasDefaultValue":false,
+            "defaultValue":"",
+            "inputType":"textarea",
+            "limit":"maxLength",
+            "limitParam":"200",
+            "limitErrInfo":"备注内容不能超过200",
+            "show": false
+          }
+        ]
+      },
+    "addPrivilegeView": {
+      "templateName":"权限信息",
+      "templateCode":"addPrivilege",
+      "package": "privilegePackage",
+      "columns":[
+        {
+          "code":"name",
+          "cnCode":"权限名称",
+          "desc":"必填,请填写权限名称",
+          "required":true,
+          "hasDefaultValue":false,
+          "inputType":"input",
+          "limit":"maxin",
+          "limitParam":"2,10",
+          "limitErrInfo":"权限名称必须在2至10字符之间",
+          "show": true
+        },
+        {
+          "code":"domain",
+          "cnCode":"商户类型",
+          "desc":"必填,请选择商户类型",
+          "required":true,
+          "hasDefaultValue":false,
+          "inputType":"select",
+          "selectValue":"800900000001,800900000002,800900000003,800900000000",
+          "selectValueName":"运营团队,代理商,物业,开发团队",
+          "limit":"maxin",
+          "limitParam":"1,12",
+          "limitErrInfo":"商户类型错误",
+          "show": true
+        },
+        {
+          "code":"description",
+          "cnCode":"描述",
+          "desc":"可填,请填写描述",
+          "required":false,
+          "hasDefaultValue":false,
+          "defaultValue":"",
+          "inputType":"textarea",
+          "limit":"maxLength",
+          "limitParam":"200",
+          "limitErrInfo":"备注内容不能超过200",
+          "show": false
+        }
+      ]
+    }
+  }
+}