Kaynağa Gözat

优化框架 命名空间的问题

wuxw 6 yıl önce
ebeveyn
işleme
d643119902

+ 3 - 3
WebService/src/main/resources/components/floorPackage/floor-select2/floorSelect2.js

@@ -20,7 +20,7 @@
             }
         },
         _initMethod:function(){
-                vc.component._initFloorSelect2();
+            this._initFloorSelect2();
         },
         _initEvent:function(){
             //监听 modal 打开
@@ -68,8 +68,8 @@
                     //这里是选中触发的事件
                     //evt.params.data 是选中项的信息
                     console.log('select',evt);
-                    vc.component.floorSelect2Info.floorId = evt.params.data.id;
-                    vc.component.floorSelect2Info.floorName = evt.params.data.text;
+                    this.floorSelect2Info.floorId = evt.params.data.id;
+                    this.floorSelect2Info.floorName = evt.params.data.text;
                 });
 
                 $('.floorSelector').on("select2:unselect", function (evt) {

+ 25 - 3
java110-front/src/main/java/com/java110/front/core/VcCreateProcessor.java

@@ -59,7 +59,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(), dealHtmlThis(tag, doc.body().children().toString())));
 
         String css = VueComponentTemplate.findTemplateByComponentCode(componentName + "." + VueComponentTemplate.COMPONENT_CSS);
         if (css != null) {
@@ -74,7 +74,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
             js = dealNameSpace(js, tag);
             js = dealJsAddComponentCode(js, tag);
             js = "<script type=\"text/javascript\" " + DIV_PROPERTY_COMPONENT + "=\"" + componentName + "\">//<![CDATA[ \n" + js + "//]]>\n</script>";
-            htmlModel.add(modelFactory.createText(js));
+            htmlModel.add(modelFactory.createText(dealHtmlJs(tag, js)));
         }
 
         logger.debug("解析完成组件{},{}", componentName, new Date().getTime());
@@ -82,6 +82,28 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
 
     }
 
+    private String dealHtmlThis(IProcessableElementTag tag, String html) {
+
+        if (!tag.hasAttribute("namespace")) {
+            return html;
+        }
+
+        String namespace = tag.getAttributeValue("namespace");
+
+        return html.replace("this.", namespace + "@");
+    }
+
+    private String dealHtmlJs(IProcessableElementTag tag, String js) {
+
+        if (!tag.hasAttribute("namespace")) {
+            return js;
+        }
+
+        String namespace = tag.getAttributeValue("namespace");
+
+        return js.replace("this.", "vc.component."+namespace + "@");
+    }
+
 
     /**
      * 加入组件名称到 HTML中 方便定位问题
@@ -207,7 +229,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
         String namespace = "";
         if (!tag.hasAttribute("namespace")) {
             namespace = DEFAULT_NAMESPACE;
-        }else {
+        } else {
             namespace = tag.getAttributeValue("namespace");
         }