Răsfoiți Sursa

视图增加全选选项

unknown 5 ani în urmă
părinte
comite
8b976db22c

+ 270 - 33
o2web/source/x_component_query_Query/Viewer.js

@@ -53,6 +53,7 @@ MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({
 
 
         this.items = [];
+
         this.selectedItems = [];
         this.hideColumns = [];
         this.openColumns = [];
@@ -277,6 +278,12 @@ MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({
             this.lookup(data, callback);
         }
     },
+    getSelectFlag : function(){
+        if( this.json.select === "single" || this.json.select === "multi" )return this.json.select;
+        if( this.viewJson.select === "single" || this.viewJson.select === "multi" )return this.viewJson.select;
+        if( this.options.select === "single" || this.options.select === "multi"  )return this.options.select;
+        return "none";
+    },
     isSelectTdHidden :function(){
         if( !this.viewJson.firstTdHidden ){
             return false;
@@ -479,8 +486,9 @@ MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({
             if(callback)callback();
         }.bind(this), null, async === false ? false : true );
     },
-
-
+    getMode : function(){
+        return this.viewJson.group.column ? "group" : "item";
+    },
     loadData: function(){
         if (this.gridJson.length){
             // if( !this.options.paging ){
@@ -533,19 +541,50 @@ MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({
         }
     },
     loadGroupData: function(){
+        if( this.getSelectFlag() === "multi" && this.viewJson.allowSelectAll ){
+            if (this.selectTitleCell && !this.selectTitleCell.retrieve("selectAllLoaded") ){
+                if( this.viewJson.viewStyles && this.viewJson.viewStyles["checkboxNode"] ){
+                    this.selectAllNode = new Element("span", {
+                        styles : this.viewJson.viewStyles["checkboxNode"]
+                    }).inject( this.selectTitleCell );
+                    // this.selectTitleCell.setStyle("cursor", "pointer");
+                }else{
+                    this.selectAllNode = new Element("span",{
+                        html : "<img src='../x_component_query_Query/$Viewer/"+this.options.style+"/icon/checkbox.png'/>"+"</span>",
+                        style : "font-family: Webdings"
+                    }).inject( this.selectTitleCell );
+                }
+                this.selectAllNode.setStyle("cursor", "pointer");
+                this.selectAllNode.addEvent("click", function () {
+                    if( this.getSelectAllStatus() === "all" ){
+                        this.unSelectAll("view")
+                    }else{
+                        this.selectAll("view");
+                    }
+                }.bind(this));
+                this.selectTitleCell.store("selectAllLoaded", true);
+            }
+        }
+
+
         if (this.selectTitleCell && !this.selectTitleCell.retrieve("expandLoaded") ){
             if( this.viewJson.viewStyles && this.viewJson.viewStyles["groupCollapseNode"] ){
                 this.expandAllNode = new Element("span", {
                     styles : this.viewJson.viewStyles["groupCollapseNode"]
                 }).inject( this.selectTitleCell );
-                this.selectTitleCell.setStyle("cursor", "pointer");
+                // this.selectTitleCell.setStyle("cursor", "pointer");
             }else{
-                this.selectTitleCell.set("html", "<span style='font-family: Webdings'>"+"<img src='../x_component_query_Query/$Viewer/"+this.options.style+"/icon/expand.png'/>"+"</span>");
+                // this.selectTitleCell.set("html", "<span style='font-family: Webdings'>"+"<img src='../x_component_query_Query/$Viewer/"+this.options.style+"/icon/expand.png'/>"+"</span>");
+                this.expandAllNode = new Element("span",{
+                    html : "<img src='../x_component_query_Query/$Viewer/"+this.options.style+"/icon/expand.png'/>"+"</span>",
+                    style : "font-family: Webdings"
+                }).inject( this.selectTitleCell );
             }
-            this.selectTitleCell.setStyle("cursor", "pointer");
-            this.selectTitleCell.addEvent("click", this.expandOrCollapseAll.bind(this));
+            this.expandAllNode.setStyle("cursor", "pointer");
+            this.expandAllNode.addEvent("click", this.expandOrCollapseAll.bind(this));
             this.selectTitleCell.store("expandLoaded", true);
         }
+
         this.expandAll = false;
 
         if (this.gridJson.length){
@@ -1225,37 +1264,98 @@ MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({
     getSelectedData : function(){
         return this.getData();
     },
+    getSelectAllStatus : function(){
+        if( this.getSelectFlag()!=="multi")return;
+        if( !this.items.length )return "none";
+        var flag = "all";
+        var allFlag = true, noneFlag = true;
+        for( var i=0; i<this.items.length; i++ ){
+            var item = this.items[i];
+            if( item.clazzType === "item" ){
+                item.isSelected ? ( noneFlag = false ) : (allFlag = false);
+            }else{
+                var f = item.getSelectAllStatus();
+                if( f === "none" ){
+                    allFlag = false;
+                }else if( f === "all" ){
+                    noneFlag = false;
+                }else if(f==="some"){
+                    allFlag = false;
+                    noneFlag = false;
+                }
+            }
+            if( !allFlag && !noneFlag )return "some"
+        }
+        if( allFlag )return "all";
+        if( noneFlag )return "none";
+        return "some";
+    },
+    checkSelectAllStatus : function(){
+        if(!this.selectAllNode)return;
+       var status = this.getSelectAllStatus();
+       if( status === "all" ){
+           this.setSelectAllStyle()
+       }else{
+           this.setUnSelectAllStyle()
+       }
+    },
+    setSelectAllStyle : function () {
+        if(!this.selectAllNode)return;
+        if( this.viewJson.viewStyles && this.viewJson.viewStyles["checkedCheckboxNode"] ){
+            this.selectAllNode.setStyles( this.viewJson.viewStyles["checkedCheckboxNode"] );
+        }else {
+            this.selectAllNode.getElement("img").set("src",
+                '../x_component_query_Query/$Viewer/" + this.options.style + "/icon/checkbox_checked.png' )
+        }
+    },
+    setUnSelectAllStyle : function () {
+        if(!this.selectAllNode)return;
+        if( this.viewJson.viewStyles && this.viewJson.viewStyles["checkboxNode"] ){
+            this.selectAllNode.setStyles( this.viewJson.viewStyles["checkboxNode"] );
+        }else {
+            this.selectAllNode.getElement("img").set("src",
+                '../x_component_query_Query/$Viewer/" + this.options.style + "/icon/checkbox.png' )
+        }
+    },
     selectAll : function(){
-        var flag = this.json.select || this.viewJson.select ||  "none";
-        if ( flag==="multi"){
+        // var flag = this.json.select || this.viewJson.select ||  "none";
+        if ( this.getSelectFlag()==="multi"){
             this.items.each( function (item) {
                 if( item.clazzType === "item" ){
-                    item.selected();
+                    item.selected("view");
                 }else{
-                    item.expand();
-                    if( item.items ){
-                        item.items.each( function (it) {
-                            it.selected();
-                        })
-                    }
+                    item.selectAll("view");
+                    // item.expand();
+                    // if( item.items ){
+                    //     item.items.each( function (it) {
+                    //         it.selected();
+                    //     })
+                    // }
                 }
             })
+            if( this.viewJson.allowSelectAll ) {
+                this.setSelectAllStyle();
+            }
         }
     },
     unSelectAll : function(){
-        var flag = this.json.select || this.viewJson.select ||  "none";
-        if ( flag==="multi"){
+        // var flag = this.json.select || this.viewJson.select ||  "none";
+        if ( this.getSelectFlag()==="multi"){
             this.items.each( function (item) {
                 if( item.clazzType === "item" ){
-                    item.unSelected();
+                    item.unSelected("view");
                 }else{
-                    if(item.items){
-                        item.items.each( function (it) {
-                            it.unSelected();
-                        })
-                    }
+                    item.unSelectAll("view");
+                    // if(item.items){
+                    //     item.items.each( function (it) {
+                    //         it.unSelected();
+                    //     })
+                    // }
                 }
             })
+            if( this.viewJson.allowSelectAll ) {
+                this.setUnSelectAllStyle();
+            }
         }
     },
     setFilter : function( filter, callback ){
@@ -1302,11 +1402,12 @@ MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({
 });
 
 MWF.xApplication.query.Query.Viewer.Item = new Class({
-    initialize: function(view, data, prev, i){
+    initialize: function(view, data, prev, i, category){
         this.view = view;
         this.data = data;
         this.css = this.view.css;
         this.isSelected = false;
+        this.category = category;
         this.prev = prev;
         this.idx = i;
         this.clazzType = "item";
@@ -1332,6 +1433,24 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
         this.selectTd = new Element("td", { "styles": viewContentTdNode }).inject(this.node);
         this.selectTd.setStyles({"cursor": "pointer"});
         if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
+
+        //var selectFlag = this.view.json.select || this.view.viewJson.select ||  "none";
+        var selectFlag = this.view.getSelectFlag();
+        if (this.view.viewJson.selectBoxShow==="always") {
+            var viewStyles = this.view.viewJson.viewStyles;
+            if (viewStyles) {
+                if (selectFlag === "single") {
+                    this.selectTd.setStyles(viewStyles["radioNode"]);
+                } else {
+                    this.selectTd.setStyles(viewStyles["checkboxNode"]);
+                }
+            } else {
+                var iconName = "checkbox";
+                if (selectFlag === "single") iconName = "radiobox";
+                this.selectTd.setStyles({"background": "url(" + "../x_component_query_Query/$Viewer/default/icon/" + iconName + ".png) center center no-repeat"});
+            }
+        }
+
         if( this.view.isSelectTdHidden() ){
             this.selectTd.hide();
         }
@@ -1594,11 +1713,11 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
     },
 
     setEvent: function(){
-        var flag = this.view.json.select || this.view.viewJson.select ||  "none";
+        var flag = this.view.getSelectFlag();
         if ( flag ==="single" || flag==="multi"){
             this.node.addEvents({
                 "mouseover": function(){
-                    if (!this.isSelected){
+                    if (!this.isSelected && this.view.viewJson.selectBoxShow !=="always" ){
                         var viewStyles = this.view.viewJson.viewStyles;
                         if( viewStyles ){
                             if( flag === "single" ){
@@ -1614,7 +1733,7 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
                     }
                 }.bind(this),
                 "mouseout": function(){
-                    if (!this.isSelected) this.selectTd.setStyles({"background": "transparent"});
+                    if (!this.isSelected && this.view.viewJson.selectBoxShow !=="always") this.selectTd.setStyles({"background": "transparent"});
                 }.bind(this),
                 "click": function(){this.select();}.bind(this)
             });
@@ -1622,7 +1741,8 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
     },
 
     select: function(  force ){
-        var flag = force || this.view.json.select || this.view.viewJson.select ||  "none";
+        // var flag = force || this.view.json.select || this.view.viewJson.select ||  "none";
+        var flag = force || this.view.getSelectFlag();
         if (this.isSelected){
             if (flag==="single"){
                 this.unSelectedSingle();
@@ -1639,7 +1759,7 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
         this.view.fireEvent("select"); //options 传入的事件
     },
 
-    selected: function(){
+    selected: function( from ){
         this.view.selectedItems.push(this);
         var viewStyles = this.view.viewJson.viewStyles;
         if( viewStyles ){
@@ -1650,18 +1770,34 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
             this.node.setStyles(this.css.viewContentTrNode_selected);
         }
         this.isSelected = true;
+        if( from !== "view" && from !=="category" && this.view.viewJson.allowSelectAll ){
+            this.view.checkSelectAllStatus();
+            if( this.category )this.category.checkSelectAllStatus();
+        }
         this.view.fireEvent("selectRow", [this]);
     },
-    unSelected: function(){
+    unSelected: function( from ){
         this.view.selectedItems.erase(this);
-        this.selectTd.setStyles({"background": "transparent"});
         var viewStyles = this.view.viewJson.viewStyles;
+        if( this.view.viewJson.selectBoxShow !=="always" ){
+            this.selectTd.setStyles({"background": "transparent"});
+        }else{
+            if (viewStyles) {
+                this.selectTd.setStyles(viewStyles["checkboxNode"]);
+            }else{
+                this.selectTd.setStyles({"background": "url(" + "../x_component_query_Query/$Viewer/default/icon/checkbox.png) center center no-repeat"});
+            }
+        }
         if( viewStyles ){
             this.node.setStyles( viewStyles["contentTr"] );
         }else{
             this.node.setStyles(this.css.viewContentTrNode);
         }
         this.isSelected = false;
+        if( from !== "view" && from !=="category" && this.view.viewJson.allowSelectAll ){
+            this.view.checkSelectAllStatus();
+            if( this.category )this.category.checkSelectAllStatus();
+        }
         this.view.fireEvent("unselectRow", [this]);
     },
     selectedSingle: function(){
@@ -1682,8 +1818,16 @@ MWF.xApplication.query.Query.Viewer.Item = new Class({
     unSelectedSingle: function(){
         this.view.selectedItems = [];
         this.view.currentSelectedItem = null;
-        this.selectTd.setStyles({"background": "transparent"});
         var viewStyles = this.view.viewJson.viewStyles;
+        if( this.view.viewJson.selectBoxShow !=="always" ){
+            this.selectTd.setStyles({"background": "transparent"});
+        }else{
+            if (viewStyles) {
+                this.selectTd.setStyles(viewStyles["radioNode"]);
+            }else{
+                this.selectTd.setStyles({"background": "url(" + "../x_component_query_Query/$Viewer/default/icon/radiobox.png) center center no-repeat"});
+            }
+        }
         if( viewStyles ){
             this.node.setStyles( viewStyles["contentTr"] );
         }else{
@@ -1718,6 +1862,28 @@ MWF.xApplication.query.Query.Viewer.ItemCategory = new Class({
         //if (this.view.json.select==="single" || this.view.json.select==="multi"){
         this.selectTd = new Element("td", {"styles": viewContentCategoryTdNode}).inject(this.node);
         if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
+
+        if( this.view.getSelectFlag() === "multi" && this.view.viewJson.allowSelectAll ){
+            if( this.viewJson.viewStyles && this.viewJson.viewStyles["checkboxNode"] ){
+                this.selectAllNode = new Element("span", {
+                    styles : this.viewJson.viewStyles["checkboxNode"]
+                }).inject( this.selectTd );
+            }else{
+                this.selectAllNode = new Element("span",{
+                    html : "<img src='../x_component_query_Query/$Viewer/"+this.options.style+"/icon/checkbox.png'/>"+"</span>",
+                    style : "font-family: Webdings"
+                }).inject( this.selectTd );
+            }
+            this.selectAllNode.setStyle("cursor", "pointer");
+            this.selectAllNode.addEvent("click", function () {
+                if( this.getSelectAllStatus() === "all" ){
+                    this.unSelectAll("category")
+                }else{
+                    this.selectAll("category");
+                }
+            }.bind(this));
+        }
+
         // if( this.view.isSelectTdHidden() ){
         //     this.selectTd.hide();
         // }
@@ -1784,6 +1950,77 @@ MWF.xApplication.query.Query.Viewer.ItemCategory = new Class({
 
         this.view.fireEvent("postLoadCategoryRow", [null, this]);
     },
+    getSelectAllStatus : function(){
+        if ( this.view.getSelectFlag()!=="multi")return;
+        if( !this.items.length )return "none";
+        var flag = "all";
+        var allFlag = true, noneFlag = true;
+        for( var i=0; i<this.items.length; i++ ){
+            var item = this.items[i];
+            item.isSelected ? ( noneFlag = false ) : (allFlag = false);
+            if( !allFlag && !noneFlag )return "some"
+        }
+        if( allFlag )return "all";
+        if( noneFlag )return "none";
+        return "some";
+    },
+    checkSelectAllStatus : function(){
+        if( !this.selectAllNode )return;
+        var status = this.getSelectAllStatus();
+        if( status === "all" ){
+            this.setSelectAllStyle()
+        }else{
+            this.setUnSelectAllStyle()
+        }
+    },
+    setSelectAllStyle : function () {
+        if( !this.selectAllNode )return;
+        if( this.viewJson.viewStyles && this.viewJson.viewStyles["checkedCheckboxNode"] ){
+            this.selectAllNode.setStyles( this.viewJson.viewStyles["checkedCheckboxNode"] );
+        }else {
+            this.selectAllNode.getElement("img").set("src",
+                '../x_component_query_Query/$Viewer/" + this.options.style + "/icon/checkbox_checked.png' )
+        }
+    },
+    setUnSelectAllStyle : function () {
+        if( !this.selectAllNode )return;
+        if( this.viewJson.viewStyles && this.viewJson.viewStyles["checkboxNode"] ){
+            this.selectAllNode.setStyles( this.viewJson.viewStyles["checkboxNode"] );
+        }else {
+            this.selectAllNode.getElement("img").set("src",
+                '../x_component_query_Query/$Viewer/" + this.options.style + "/icon/checkbox.png' )
+        }
+    },
+    selectAll : function( from ){
+        // var flag = this.json.select || this.viewJson.select ||  "none";
+        if ( this.view.getSelectFlag()==="multi"){
+            this.expand();
+            this.items.each( function (item) {
+                item.selected( from );
+            })
+            if( this.view.viewJson.allowSelectAll ){
+                this.setSelectAllStyle();
+                if( from !== "view" ){
+                    this.view.checkSelectAllStatus();
+                }
+            }
+        }
+
+    },
+    unSelectAll : function( from ){
+        // var flag = this.json.select || this.viewJson.select ||  "none";
+        if ( this.view.getSelectFlag()==="multi"){
+            this.items.each( function (item) {
+                item.unSelected( from );
+            })
+            if( this.view.viewJson.allowSelectAll ) {
+                this.setUnSelectAllStyle();
+                if (from !== "view") {
+                    this.view.checkSelectAllStatus();
+                }
+            }
+        }
+    },
     setEvent: function(){
         //if (this.selectTd){
         this.node.addEvents({
@@ -1829,7 +2066,7 @@ MWF.xApplication.query.Query.Viewer.ItemCategory = new Class({
             //window.setTimeout(function(){
             this.data.list.each(function(line, i){
                 var s = this.idx+i;
-                this.lastItem = new MWF.xApplication.query.Query.Viewer.Item(this.view, line, (this.lastItem || this), s);
+                this.lastItem = new MWF.xApplication.query.Query.Viewer.Item(this.view, line, (this.lastItem || this), s, this);
                 this.items.push(this.lastItem);
             }.bind(this));
             this.loadChild = true;

+ 119 - 119
o2web/source/x_component_query_ViewDesigner/$View/view.html

@@ -85,8 +85,8 @@
             <tr id="text{$.id}selectBoxShowTr" style="display: text{($.data.select=='single' || $.data.select=='multi')?'':'none'}">
                 <td class="editTableTitle">选择框显示:</td>
                 <td class="editTableValue">
-                    <input class="editTableRadio" name="data.selectBoxShow" text{($.data.selectBoxShow==='always')?'checked':''} type="radio" value="mouseover"/>一直显示
-                    <input class="editTableRadio" name="data.selectBoxShow" text{($.data.selectBoxShow!=='always')?'checked':''} type="radio" value="always"/>鼠标经过时
+                    <input class="editTableRadio" name="data.selectBoxShow" text{($.data.selectBoxShow==='always')?'checked':''} type="radio" value="always"/>一直显示
+                    <input class="editTableRadio" name="data.selectBoxShow" text{($.data.selectBoxShow!=='always')?'checked':''} type="radio" value="mouseover"/>鼠标经过时
                 </td>
             </tr>
             <tr id="text{$.id}allowSelectAllTr" style="display: text{($.data.select=='multi')?'':'none'}">
@@ -157,124 +157,8 @@
 
 
     <div title="范围"  class="MWFTab">
-        <div style="height:24px; text-align: center; line-height: 24px; background-color: #EEE; border-top: 1px solid #999; font-weight: bold">范围</div>
-        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
-            <tr>
-                <td class="editTableValue" colspan="2" align="center">
-                    <input class="editTableRadio" onclick="
-                    if (this.checked){
-                        $('text{$.id}dateRangeType_process').setStyle('display', 'block');
-                        $('text{$.id}dateRangeType_cms').setStyle('display', 'none');
-                        $$('.text{$.id}dataPathSelectedProcessArea').setStyle('display', '');
-                        $$('.text{$.id}dataPathSelectedCMSArea').setStyle('display', 'none');
-                    }" name="text{$.id}*type" text{($.type!='cms')?'checked':''} type="radio" value="process"/>流程平台数据
-                    <input class="editTableRadio" onclick="
-                    if (this.checked){
-                        $('text{$.id}dateRangeType_process').setStyle('display', 'none');
-                        $('text{$.id}dateRangeType_cms').setStyle('display', 'block');
-                        $$('.text{$.id}dataPathSelectedProcessArea').setStyle('display', 'none');
-                        $$('.text{$.id}dataPathSelectedCMSArea').setStyle('display', '');
-                     }" name="text{$.id}*type" text{($.type=='cms')?'checked':''} type="radio" value="cms"/>内容管理数据
-                </td>
-            </tr>
-        </table>
-
-        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
-            <tr>
-                <td class="editTableTitle">权限:</td>
-                <td class="editTableValue">
-                    <input class="editTableRadio" name="text{$.id}*data.where.accessible" text{($.data.where.accessible)?'checked':''} type="radio" value="true"/>带权限
-                    <input class="editTableRadio" name="text{$.id}*data.where.accessible" text{(!$.data.where.accessible)?'checked':''} type="radio" value="false"/>忽略
-                </td>
-            </tr>
-        </table>
-        <div id="text{$.id}dateRangeType_process" style="display: text{($.type!='cms')?'block':'none'}">
-            <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
-                <tr>
-                    <td class="editTableTitle">流转状态:</td>
-                    <td class="editTableValue">
-                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope!='workCompleted' && $.data.where.scope!='all' && $.data.where.scope!='cms_info' && $.data.where.scope!='cms_data')?'checked':''} type="radio" value="work"/>流转中
-                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='workCompleted')?'checked':''} type="radio" value="workCompleted"/>已完成
-                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='all')?'checked':''} type="radio" value="all"/>全部
-                    </td>
-                </tr>
-                <tr>
-                    <td class="editTableValue" colspan="2">取应用和流程的并集</td>
-                </tr>
-                <tr>
-                    <td class="editTableTitle">选择应用:</td>
-                    <td class="editTableValue">
-                        <div class="MWFSelectApplication" name="data.where.applicationList"></div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="editTableTitle">选择流程:</td>
-                    <td class="editTableValue">
-                        <div class="MWFSelectProcess" name="data.where.processList"></div>
-                    </td>
-                </tr>
-            </table>
-        </div>
-        <div id="text{$.id}dateRangeType_cms" style="display: text{($.type=='cms')?'block':'none'}">
-            <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
-                <tr>
-                    <td class="editTableTitle">数据类型:</td>
-                    <td class="editTableValue">
-                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope!='cms_data' && $.data.where.scope!='all' && $.data.where.scope!='workCompleted' && $.data.where.scope!='work')?'checked':''} type="radio" value="cms_info"/>信息类
-                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='cms_data')?'checked':''} type="radio" value="cms_data"/>数据类
-                        <!--                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='all')?'checked':''} type="radio" value="all"/>全部-->
-                    </td>
-                </tr>
-                <tr>
-                    <td class="editTableTitle">返回草稿:</td>
-                    <td class="editTableValue">
-                        <input class="editTableRadio" name="text{$.id}*data.where.draft" text{($.data.where.draft)?'checked':''} type="radio" value="true"/>是
-                        <input class="editTableRadio" name="text{$.id}*data.where.draft" text{(!$.data.where.draft)?'checked':''} type="radio" value="false"/>否
-                    </td>
-                </tr>
-                <tr>
-                    <td class="editTableValue" colspan="2">取栏目和分类的并集:</td>
-                </tr>
-                <tr>
-                    <td class="editTableTitle">选择栏目:</td>
-                    <td class="editTableValue">
-                        <div class="MWFSelectCMSApplication" name="data.where.appInfoList"></div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="editTableTitle">选择分类:</td>
-                    <td class="editTableValue">
-                        <div class="MWFSelecCMStCategory" name="data.where.categoryInfoList"></div>
-                    </td>
-                </tr>
-            </table>
-        </div>
-        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
-            <tr>
-                <td class="editTableValue" colspan="2">取组织、人员和身份的并集:</td>
-            </tr>
-            <tr>
-                <td class="editTableTitle">拟稿组织:</td>
-                <td class="editTableValue">
-                    <div class="MWFSelectUnit" name="data.where.creatorUnitList"></div>
-                </td>
-            </tr>
-            <tr>
-                <td class="editTableTitle">拟稿人员:</td>
-                <td class="editTableValue">
-                    <div class="MWFSelectPerson" name="data.where.creatorPersonList"></div>
-                </td>
-            </tr>
-            <tr>
-                <td class="editTableTitle">拟稿身份:</td>
-                <td class="editTableValue">
-                    <div class="MWFSelectIdentity" name="data.where.creatorIdentityList"></div>
-                </td>
-            </tr>
-        </table>
-
-
         <div style="height:24px; text-align: center; line-height: 24px; background-color: #EEE; border-top: 1px solid #999; font-weight: bold">时段</div>
+        <div style="height:24px; line-height: 24px; padding:5px;border-bottom: 1px dashed rgb(204, 204, 204);">注:建议设定时间范围有助于提高效率!</div>
         <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
             <tr><td class="editTableTitle">时段类型:</td><td class="editTableValue">
                 <input class="editTableRadio" name="text{$.id}*data.where.dateRange.dateRangeType"
@@ -451,6 +335,122 @@
                 </tr>
             </table>
         </div>
+
+        <div style="height:24px; text-align: center; line-height: 24px; background-color: #EEE; border-top: 1px solid #999; font-weight: bold">范围</div>
+        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
+            <tr>
+                <td class="editTableValue" colspan="2" align="center">
+                    <input class="editTableRadio" onclick="
+                    if (this.checked){
+                        $('text{$.id}dateRangeType_process').setStyle('display', 'block');
+                        $('text{$.id}dateRangeType_cms').setStyle('display', 'none');
+                        $$('.text{$.id}dataPathSelectedProcessArea').setStyle('display', '');
+                        $$('.text{$.id}dataPathSelectedCMSArea').setStyle('display', 'none');
+                    }" name="text{$.id}*type" text{($.type!='cms')?'checked':''} type="radio" value="process"/>流程平台数据
+                    <input class="editTableRadio" onclick="
+                    if (this.checked){
+                        $('text{$.id}dateRangeType_process').setStyle('display', 'none');
+                        $('text{$.id}dateRangeType_cms').setStyle('display', 'block');
+                        $$('.text{$.id}dataPathSelectedProcessArea').setStyle('display', 'none');
+                        $$('.text{$.id}dataPathSelectedCMSArea').setStyle('display', '');
+                     }" name="text{$.id}*type" text{($.type=='cms')?'checked':''} type="radio" value="cms"/>内容管理数据
+                </td>
+            </tr>
+        </table>
+
+        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
+            <tr>
+                <td class="editTableTitle">权限:</td>
+                <td class="editTableValue">
+                    <input class="editTableRadio" name="text{$.id}*data.where.accessible" text{($.data.where.accessible)?'checked':''} type="radio" value="true"/>带权限
+                    <input class="editTableRadio" name="text{$.id}*data.where.accessible" text{(!$.data.where.accessible)?'checked':''} type="radio" value="false"/>忽略
+                </td>
+            </tr>
+        </table>
+        <div id="text{$.id}dateRangeType_process" style="display: text{($.type!='cms')?'block':'none'}">
+            <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
+                <tr>
+                    <td class="editTableTitle">流转状态:</td>
+                    <td class="editTableValue">
+                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope!='workCompleted' && $.data.where.scope!='all' && $.data.where.scope!='cms_info' && $.data.where.scope!='cms_data')?'checked':''} type="radio" value="work"/>流转中
+                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='workCompleted')?'checked':''} type="radio" value="workCompleted"/>已完成
+                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='all')?'checked':''} type="radio" value="all"/>全部
+                    </td>
+                </tr>
+                <tr>
+                    <td class="editTableValue" colspan="2">取应用和流程的并集:</td>
+                </tr>
+                <tr>
+                    <td class="editTableTitle">选择应用:</td>
+                    <td class="editTableValue">
+                        <div class="MWFSelectApplication" name="data.where.applicationList"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="editTableTitle">选择流程:</td>
+                    <td class="editTableValue">
+                        <div class="MWFSelectProcess" name="data.where.processList"></div>
+                    </td>
+                </tr>
+            </table>
+        </div>
+        <div id="text{$.id}dateRangeType_cms" style="display: text{($.type=='cms')?'block':'none'}">
+            <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
+                <tr>
+                    <td class="editTableTitle">数据类型:</td>
+                    <td class="editTableValue">
+                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope!='cms_data' && $.data.where.scope!='all' && $.data.where.scope!='workCompleted' && $.data.where.scope!='work')?'checked':''} type="radio" value="cms_info"/>信息类
+                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='cms_data')?'checked':''} type="radio" value="cms_data"/>数据类
+                        <!--                        <input class="editTableRadio" name="text{$.id}*data.where.scope" text{($.data.where.scope=='all')?'checked':''} type="radio" value="all"/>全部-->
+                    </td>
+                </tr>
+                <tr>
+                    <td class="editTableTitle">返回草稿:</td>
+                    <td class="editTableValue">
+                        <input class="editTableRadio" name="text{$.id}*data.where.draft" text{($.data.where.draft)?'checked':''} type="radio" value="true"/>是
+                        <input class="editTableRadio" name="text{$.id}*data.where.draft" text{(!$.data.where.draft)?'checked':''} type="radio" value="false"/>否
+                    </td>
+                </tr>
+                <tr>
+                    <td class="editTableValue" colspan="2">取栏目和分类的并集:</td>
+                </tr>
+                <tr>
+                    <td class="editTableTitle">选择栏目:</td>
+                    <td class="editTableValue">
+                        <div class="MWFSelectCMSApplication" name="data.where.appInfoList"></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="editTableTitle">选择分类:</td>
+                    <td class="editTableValue">
+                        <div class="MWFSelecCMStCategory" name="data.where.categoryInfoList"></div>
+                    </td>
+                </tr>
+            </table>
+        </div>
+        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
+            <tr>
+                <td class="editTableValue" colspan="2">取组织、人员和身份的并集:</td>
+            </tr>
+            <tr>
+                <td class="editTableTitle">拟稿组织:</td>
+                <td class="editTableValue">
+                    <div class="MWFSelectUnit" name="data.where.creatorUnitList"></div>
+                </td>
+            </tr>
+            <tr>
+                <td class="editTableTitle">拟稿人员:</td>
+                <td class="editTableValue">
+                    <div class="MWFSelectPerson" name="data.where.creatorPersonList"></div>
+                </td>
+            </tr>
+            <tr>
+                <td class="editTableTitle">拟稿身份:</td>
+                <td class="editTableValue">
+                    <div class="MWFSelectIdentity" name="data.where.creatorIdentityList"></div>
+                </td>
+            </tr>
+        </table>
     </div>
 
     <div title="过滤"  class="MWFTab">