ソースを参照

加入 服务绑定功能

wuxw 6 年 前
コミット
b7d06e0d47

+ 40 - 0
WebService/src/main/java/com/java110/web/components/service/ChooseServiceComponent.java

@@ -0,0 +1,40 @@
+package com.java110.web.components.service;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.service.IListServicesSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName ChooseServiceComponent
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2019/7/20 16:39
+ * @Version 1.0
+ * add by wuxw 2019/7/20
+ **/
+@Component("chooseService")
+public class ChooseServiceComponent {
+
+    @Autowired
+    private IListServicesSMO listServicesSMOImpl;
+
+    /**
+     * 查询服务列表
+     *
+     * @param pd 页面数据封装
+     * @return 返回 ResponseEntity 对象
+     */
+    public ResponseEntity<String> list(IPageData pd) {
+        return listServicesSMOImpl.listServices(pd);
+    }
+
+    public IListServicesSMO getListServicesSMOImpl() {
+        return listServicesSMOImpl;
+    }
+
+    public void setListServicesSMOImpl(IListServicesSMO listServicesSMOImpl) {
+        this.listServicesSMOImpl = listServicesSMOImpl;
+    }
+}

+ 14 - 8
WebService/src/main/java/com/java110/web/core/VcCreateProcessor.java

@@ -58,7 +58,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
         //将组建名称写入组建HTML 第一个标签中
         addDataComponent(elements, componentName);
 
-       htmlModel.addModel(modelFactory.parse(context.getTemplateData(), doc.body().children().toString()));
+        htmlModel.addModel(modelFactory.parse(context.getTemplateData(), doc.body().children().toString()));
 
         String css = VueComponentTemplate.findTemplateByComponentCode(componentName + "." + VueComponentTemplate.COMPONENT_CSS);
         if (css != null) {
@@ -86,7 +86,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
     /**
      * 加入组件名称到 HTML中 方便定位问题
      *
-     * @param elements        页面节点
+     * @param elements      页面节点
      * @param componentCode 组件编码
      */
     private void addDataComponent(Elements elements, String componentCode) {
@@ -99,7 +99,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
      * 处理js
      *
      * @param tag 页面元素
-     * @param js      js文件内容
+     * @param js  js文件内容
      * @return js 文件内容
      */
     private String dealJs(String js, IProcessableElementTag tag) {
@@ -117,14 +117,20 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
             return js;
         }
 
-        String[] tmpType = tmpProTypes.split(",");
+        String[] tmpType = tmpProTypes.contains("\r\n")
+                        ? tmpProTypes.split("\r\n")
+                        : tmpProTypes.split(",");
         StringBuffer propsJs = new StringBuffer("\nvar $props = {};\n");
         for (String type : tmpType) {
             if (StringUtils.isEmpty(type) || !type.contains(":")) {
                 continue;
             }
             String[] types = type.split(":");
-            String attrKey = types[0].replace(" ", "")
+            String attrKey = "";
+            if (types[0].contains("//")) {
+                attrKey = types[0].substring(0, types[0].indexOf("//"));
+            }
+            attrKey = types[0].replace(" ", "")
                     .replace("\n", "")
                     .replace("\r", "");
             if (!tag.hasAttribute(attrKey)) {
@@ -133,7 +139,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
                 throw new TemplateProcessingException("组件[" + componentName + "]未配置组件属性" + attrKey);
             }
             String vcType = tag.getAttributeValue(attrKey);
-            if (types[1].equals("vc.propTypes.string")) {
+            if (types[1].contains("vc.propTypes.string")) {
                 vcType = "'" + vcType + "'";
             }
             propsJs.append("$props." + attrKey + "=" + vcType + ";\n");
@@ -154,10 +160,10 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
      * 处理js 变量和 方法都加入 组件编码
      *
      * @param tag 页面元素
-     * @param js      js文件内容
+     * @param js  js文件内容
      * @return js 文件内容
      */
-    private String dealJsAddComponentCode(String js,IProcessableElementTag tag) {
+    private String dealJsAddComponentCode(String js, IProcessableElementTag tag) {
 
         if (!tag.hasAttribute("code")) {
             return js;

+ 11 - 0
WebService/src/main/resources/components/add-app/addApp.js

@@ -1,6 +1,10 @@
 (function(vc){
 
     vc.extends({
+        propTypes: {
+               callBackListener:vc.propTypes.string, //父组件名称
+               callBackFunction:vc.propTypes.string //父组件监听方法
+        },
         data:{
             addAppInfo:{
                 name:'',
@@ -79,6 +83,13 @@ remark:'',
 
                 vc.component.addAppInfo.communityId = vc.getCurrentCommunity().communityId;
 
+                //不提交数据将数据 回调给侦听处理
+                if(vc.notNull($props.callBackListener)){
+                    vc.emit($props.callBackListener,$props.callBackFunction,vc.component.addAppInfo);
+                    $('#addAppModel').modal('hide');
+                    return ;
+                }
+
                 vc.http.post(
                     'addApp',
                     'save',

+ 10 - 1
WebService/src/main/resources/components/add-service/addService.js

@@ -1,6 +1,10 @@
 (function(vc){
 
     vc.extends({
+        propTypes: {
+                   callBackListener:vc.propTypes.string, //父组件名称
+                   callBackFunction:vc.propTypes.string //父组件监听方法
+        },
         data:{
             addServiceInfo:{
                 name:'',
@@ -166,7 +170,12 @@ provideAppId:'8000418002',
                 }
 
                 vc.component.addServiceInfo.communityId = vc.getCurrentCommunity().communityId;
-
+                //不提交数据将数据 回调给侦听处理
+                if(vc.notNull($props.callBackListener)){
+                    vc.emit($props.callBackListener,$props.callBackFunction,vc.component.addServiceInfo);
+                    $('#addServiceModel').modal('hide');
+                    return ;
+                }
                 vc.http.post(
                     'addService',
                     'save',

+ 4 - 1
WebService/src/main/resources/components/app-manage/appManage.html

@@ -59,7 +59,10 @@
         </div>
     </div>
 
-    <vc:create name="addApp"></vc:create>
+    <vc:create name="addApp"
+               callBackListener=""
+               callBackFunction=""
+    ></vc:create>
     <vc:create name="editApp"></vc:create>
     <vc:create name="deleteApp"></vc:create>
 

+ 64 - 0
WebService/src/main/resources/components/choose-service/chooseService.html

@@ -0,0 +1,64 @@
+<div id = "chooseServiceModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="chooseServiceModelLabel" aria-hidden="true" >
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h3 class="modal-title" id="chooseServiceModelLabel">选择服务</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="输入服务名称" type="text" v-model="chooseServiceInfo._currentServiceName" class="form-control form-control-sm">
+                                        <span class="input-group-append">
+                                                <button type="button" class="btn btn-sm btn-primary" v-on:click="queryServices()">查询</button>
+                                            </span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="table-responsive" style="margin-top:15px">
+                                <table class="table table-striped">
+                                    <thead>
+                                        <tr>
+                                            <th class="text-center">服务ID</th>
+                                            <th class="text-center">服务名称</th>
+                                            <th class="text-center">服务编码</th>
+                                            <th class="text-center">序列</th>
+                                            <th class="text-center">消息队列</th>
+                                            <th class="text-center">调用地址</th>
+                                            <th class="text-center">调用方式</th>
+                                            <th>操作</th>
+                                        </tr>
+                                    </thead>
+                                    <tbody>
+                                        <tr v-for="service in chooseServiceInfo.services">
+                                            <td class="text-center">{{service.serviceId}}</td>
+                                            <td class="text-center">{{service.name}}</td>
+                                            <td class="text-center">{{service.serviceCode}}</td>
+                                            <td class="text-center">{{service.seq}}</td>
+                                            <td class="text-center">{{service.messageQueueName}}</td>
+                                            <td class="text-center">{{service.url}}</td>
+                                            <td class="text-center">{{service.method}}</td>
+                                            <td>
+                                                <button class="btn btn-primary btn-xs" v-on:click="chooseService(service)">选择</button>
+                                            </td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </div>
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 62 - 0
WebService/src/main/resources/components/choose-service/chooseService.js

@@ -0,0 +1,62 @@
+(function(vc){
+    vc.extends({
+        propTypes: {
+           emitChooseService:vc.propTypes.string,
+           emitLoadData:vc.propTypes.string
+        },
+        data:{
+            chooseServiceInfo:{
+                services:[],
+                _currentServiceName:'',
+            }
+        },
+        _initMethod:function(){
+        },
+        _initEvent:function(){
+            vc.on('chooseService','openChooseServiceModel',function(_param){
+                console.log("打开业主成员界面")
+                $('#chooseServiceModel').modal('show');
+                vc.component._refreshChooseServiceInfo();
+                vc.component._loadAllServiceInfo(1,10,'');
+            });
+        },
+        methods:{
+            _loadAllServiceInfo:function(_page,_row,_name){
+                var param = {
+                    params:{
+                        page:_page,
+                        row:_row,
+                        communityId:vc.getCurrentCommunity().communityId,
+                        name:_name
+                    }
+                };
+
+                //发送get请求
+               vc.http.get('chooseService',
+                            'list',
+                             param,
+                             function(json){
+                                var _serviceInfo = JSON.parse(json);
+                                vc.component.chooseServiceInfo.services = _serviceInfo.services;
+                             },function(){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            chooseService:function(_service){
+                vc.emit($props.emitChooseService,'chooseService',_service);
+                vc.emit($props.emitLoadData,'listServiceData',{
+                    serviceId:_service.serviceId
+                });
+                $('#chooseServiceModel').modal('hide');
+            },
+            queryServices:function(){
+                vc.component._loadAllServiceInfo(1,10,vc.component.chooseServiceInfo._currentServiceName);
+            },
+            _refreshChooseServiceInfo:function(){
+                vc.component.chooseServiceInfo._currentServiceName = "";
+            }
+        }
+
+    });
+})(window.vc);

+ 4 - 2
WebService/src/main/resources/components/service-binding/serviceBinding.html

@@ -5,7 +5,7 @@
     </div>
 
     <!-- 选择 应用信息 -->
-    <div v-if="serviceBindingInfo.index == 0">
+    <div v-if="serviceBindingInfo.index == 0 || serviceBindingInfo.index == 2">
         <vc:create name="viewAppInfo"
                    callBackListener="serviceBinding"
                    callBackFunction="notify"
@@ -13,8 +13,10 @@
     </div>
 
     <!-- 选择 应用信息 -->
-    <div v-if="serviceBindingInfo.index == 1">
+    <div v-if="serviceBindingInfo.index == 1 || serviceBindingInfo.index == 2">
         <vc:create name="viewServiceInfo"
+                   callBackListener="serviceBinding"
+                   callBackFunction="notify"
         ></vc:create>
     </div>
 

+ 4 - 1
WebService/src/main/resources/components/service-manage/serviceManage.html

@@ -89,7 +89,10 @@
         </div>
     </div>
 
-    <vc:create name="addService"></vc:create>
+    <vc:create name="addService"
+               callBackListener=""
+               callBackFunction=""
+    ></vc:create>
     <vc:create name="editService"></vc:create>
     <vc:create name="deleteService"></vc:create>
 

+ 4 - 5
WebService/src/main/resources/components/view-app-info/viewAppInfo.html

@@ -60,15 +60,14 @@
         </div>
     </div>
 
-    <vc:create name="addApp"></vc:create>
+    <vc:create name="addApp"
+               callBackListener="viewAppInfo"
+               callBackFunction="chooseApp"
+    ></vc:create>
 
 
     <vc:create name="chooseApp"
                emitChooseApp="viewAppInfo"
                emitLoadData="viewAppInfo"
     ></vc:create>
-    <!--<vc:create name="searchOwner"
-               emitChooseOwner="sellRoomSelectOwner"
-               emitLoadData="sellRoomOther"
-    ></vc:create>-->
 </div>

+ 6 - 3
WebService/src/main/resources/components/view-service-info/viewServiceInfo.html

@@ -81,11 +81,14 @@
         </div>
     </div>
 
-    <vc:create name="addService"></vc:create>
+    <vc:create name="addService"
+               callBackListener="viewServiceInfo"
+               callBackFunction="chooseService"
+    ></vc:create>
 
 
-  <!--  <vc:create name="chooseService"
+    <vc:create name="chooseService"
                emitChooseService="viewServiceInfo"
                emitLoadData="viewServiceInfo"
-    ></vc:create>-->
+    ></vc:create>
 </div>

+ 5 - 2
WebService/src/main/resources/components/view-service-info/viewServiceInfo.js

@@ -4,7 +4,10 @@
 (function(vc){
 
     vc.extends({
-
+        propTypes: {
+           callBackListener:vc.propTypes.string, //父组件名称
+           callBackFunction:vc.propTypes.string //父组件监听方法
+        },
         data:{
             viewServiceInfo:{
                 serviceId:"",
@@ -22,7 +25,7 @@
         _initEvent:function(){
             vc.on('viewServiceInfo','chooseService',function(_service){
                 vc.component.viewServiceInfo = _service;
-                //vc.emit($props.callBackComponent,'notify',_owner);
+                vc.emit($props.callBackListener,$props.callBackFunction,_service);
             });
 
         },

+ 7 - 0
WebService/src/main/resources/static/js/core.js

@@ -240,6 +240,13 @@
           }
          return str.join("&");
     }
+    //空判断 true 为非空 false 为空
+    vc.notNull = function(_paramObj){
+        if(_paramObj == null || _paramObj == undefined || _paramObj == ''){
+            return false;
+        }
+        return true;
+    }