فهرست منبع

查询中增加视图

unknown 5 سال پیش
والد
کامیت
8812113446

+ 43 - 23
o2web/source/x_component_query_Query/Statement.js

@@ -21,6 +21,8 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
         this.app = app;
 
         this.container = $(container);
+
+        debugger;
         this.json = json || {};
 
         this.parentMacro = parentMacro;
@@ -50,6 +52,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
     init: function(callback){
         if (this.json.view){
             this.viewJson = JSON.decode(this.json.view);
+            this.statementJson = this.json;
             if (callback) callback();
         }else{
             this.getView(callback);
@@ -571,23 +574,27 @@ MWF.xApplication.query.Query.Statement.Item = new Class({
 
         this.view.fireEvent("postLoadItemRow", [null, this]);
     },
+    getDataByPath : function( obj, path ){
+        var pathList = path.split(".");
+        for (var i = 0; i < pathList.length; i++) {
+            var p = pathList[i];
+            if ((/(^[1-9]\d*$)/.test(p))) p = p.toInt();
+            if (obj[p]) {
+                obj = obj[p];
+            } else {
+                obj = "";
+                break;
+            }
+        }
+        return obj
+    },
     getText : function(c, k, td){
         var path = c.path, code = c.code, obj = this.data;
         if( !path ){
             return ""
         }else if( path === "$all" ){
         }else{
-            var pathList = path.split(".");
-            for (var i = 0; i < pathList.length; i++) {
-                var p = pathList[i];
-                if ((/(^[1-9]\d*$)/.test(p))) p = p.toInt();
-                if (obj[p]) {
-                    obj = obj[p];
-                } else {
-                    obj = "";
-                    break;
-                }
-            }
+            obj = this.getDataByPath(obj, path);
         }
 
         if( code && code.trim())obj = this.view.Macro.exec( code, {"value": obj,  "data": this.data, "entry": c, "node" : td, "json" : c, "row" : this});
@@ -634,19 +641,32 @@ MWF.xApplication.query.Query.Statement.Item = new Class({
                 ev.stopPropagation();
                 return result;
             }.bind(this));
-        }else{
-            // if (this.view.json.type==="cms"){
-            //     td.addEvent("click", function(ev){
-            //         this.openCms(ev)
-            //         ev.stopPropagation();
-            //     }.bind(this));
-            // }else{
-            td.addEvent("click", function(ev){
-                this.openWorkAndCompleted(ev)
-                ev.stopPropagation();
-            }.bind(this));
-            // }
+        }else if( this.view.statementJson.entityCategory==="official" && column.idPath ){
+            var id = this.getDataByPath(this.data, column.idPath );
+            if( id ){
+                if (this.view.statementJson.entityClassName==="com.x.cms.core.entity.Document"){
+                    td.addEvent("click", function(ev){
+                        this.openCms(ev, id);
+                        ev.stopPropagation();
+                    }.bind(this));
+                }else{
+                    td.addEvent("click", function(ev){
+                        this.openWork(ev, id);
+                        ev.stopPropagation();
+                    }.bind(this));
+                }
+            }
         }
+    },
+    openCms: function(e, id){
+        var options = {"documentId": id};
+        this.view.fireEvent("openDocument", [options, this]); //options 传入的事件
+        layout.desktop.openApplication(e, "cms.Document", options);
+    },
+    openWork: function(e, id){
+        var options = {"workId": id};
+        this.view.fireEvent("openDocument", [options, this]); //options 传入的事件
+        layout.desktop.openApplication(e, "process.Work", options);
     }
 });
 

+ 15 - 2
o2web/source/x_component_query_StatementDesigner/$Statement/column.html

@@ -17,9 +17,15 @@
                 <td class="editTableTitle">打开文档:</td>
                 <td class="editTableValue">
                     <input class="editTableRadio" name="allowOpen" text{($.allowOpen===true)?'checked':''} type="radio" value="true"
-                           onclick="if(this.checked){ $('text{$.pid}clickCodeTr').setStyle('display', '');}"/>是
+                           onclick="if(this.checked){
+                               $('text{$.pid}clickCodeTr').setStyle('display', '');
+                               $('text{$.pid}idPathTr').setStyle('display', '');
+                           }"/>是
                     <input class="editTableRadio" name="allowOpen" text{($.allowOpen!==true)?'checked':''} type="radio" value="false"
-                           onclick="if(this.checked){ $('text{$.pid}clickCodeTr').setStyle('display', 'none');}"/>否
+                           onclick="if(this.checked){
+                               $('text{$.pid}clickCodeTr').setStyle('display', 'none');
+                               $('text{$.pid}idPathTr').setStyle('display', 'none');
+                           }"/>否
                 </td>
             </tr>
             <tr id="text{$.pid}clickCodeTr" style="display:text{($.allowOpen===true)?'':'none'}">
@@ -27,6 +33,13 @@
                     <div class="MWFFormulaArea" name="clickCode" title="打开文档脚本(S)"></div>
                 </td>
             </tr>
+            <tr id="text{$.pid}idPathTr" style="display:text{($.allowOpen===true)?'':'none'}">
+                <td class="editTableTitle">cms文档/流程work id路径:</td>
+                <td class="editTableValue">
+                    <input type="text" name="idPath" value="text{$.idPath}" class="editTableInput"/>
+                    <div style="line-height: 20px;color:#999;">注:指Id相对单条数据的路径。</div>
+                </td>
+            </tr>
         </table>
 
         <div style="border-top: 1px solid #999; margin-top:10px">