MWF.xApplication.query=MWF.xApplication.query||{};MWF.xApplication.query.Query=MWF.xApplication.query.Query||{};MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.xScript.Macro",null,false);MWF.xDesktop.requireApp("query.Query","lp.zh-cn",null,false);MWF.xApplication.query.Query.Viewer=MWF.QViewer=new Class({Implements:[Options,Events],Extends:MWF.widget.Common,options:{style:"default",resizeNode:true,paging:"scroll",perPageCount:50,isload:"true",export:false},initialize:function(container,json,options){this.setOptions(options);this.path="/x_component_query_Query/$Viewer/";this.cssPath="/x_component_query_Query/$Viewer/"+this.options.style+"/css.wcss";this._loadCss();this.lp=MWF.xApplication.query.Query.LP;this.container=$(container);this.json=json;this.viewJson=null;this.filterItems=[];this.searchStatus="none";this.items=[];this.selectedItems=[];this.hideColumns=[];this.openColumns=[];this.gridJson=null;if(this.options.isload){this.init(function(){this.load()}.bind(this))}},loadView:function(){if(this.viewJson){this.reload()}else{this.init(function(){this.load()}.bind(this))}},init:function(callback){debugger;if(this.json.data){this.viewJson=JSON.decode(this.json.data);if(callback)callback()}else{this.getView(callback)}},load:function(){this.loadLayout();this.createExportNode();this.createSearchNode();this.createViewNode({filterList:this.json.filter?this.json.filter.clone():null});if(this.options.resizeNode){this.setContentHeightFun=this.setContentHeight.bind(this);this.container.addEvent("resize",this.setContentHeightFun);this.setContentHeightFun()}},loadLayout:function(){this.node=new Element("div",{styles:this.css.node}).inject(this.container);if(this.options.export)this.exportAreaNode=new Element("div",{styles:this.css.exportAreaNode}).inject(this.node);this.searchAreaNode=new Element("div",{styles:this.css.searchAreaNode}).inject(this.node);this.viewAreaNode=new Element("div",{styles:this.css.viewAreaNode}).inject(this.node)},createExportNode:function(){if(this.options.export){MWF.require("MWF.widget.Toolbar",function(){this.toolbar=new MWF.widget.Toolbar(this.exportAreaNode,{style:"simple"},this);var actionNode=new Element("div",{id:"",MWFnodetype:"MWFToolBarButton",MWFButtonImage:this.path+""+this.options.style+"/icon/export.png",title:this.lp.exportExcel,MWFButtonAction:"exportView",MWFButtonText:this.lp.exportExcel}).inject(this.exportAreaNode);this.toolbar.load()}.bind(this))}},exportView:function(){debugger;var action=MWF.Actions.get("x_query_assemble_surface");var filterData=this.json.filter?this.json.filter.clone():[];if(this.filterItems.length){this.filterItems.each(function(filter){filterData.push(filter.data)}.bind(this))}action.exportViewWithQuery(this.json.viewName,this.json.application,{filterList:filterData},function(json){var uri=action.action.actions.getViewExcel.uri;uri=uri.replace("{flag}",json.data.id);uri=action.action.address+uri;var a=new Element("a",{href:uri,target:"_blank"});a.click();a.destroy()}.bind(this))},createSearchNode:function(){if(this.viewJson.customFilterList&&this.viewJson.customFilterList.length){this.searchStatus="default";this.loadFilterSearch()}else{this.loadSimpleSearch()}},loadSimpleSearch:function(){this.searchSimpleNode=new Element("div",{styles:this.css.searchSimpleNode}).inject(this.searchAreaNode);this.searchSimpleButtonNode=new Element("div",{styles:this.css.searchSimpleButtonNode}).inject(this.searchSimpleNode);this.searchSimpleInputNode=new Element("input",{type:"text",styles:this.css.searchSimpleInputNode,value:this.lp.searchKeywork}).inject(this.searchSimpleNode);this.searchSimpleButtonNode.addEvent("click",function(){this.search()}.bind(this));this.searchSimpleInputNode.addEvents({focus:function(){if(this.searchSimpleInputNode.get("value")===this.lp.searchKeywork)this.searchSimpleInputNode.set("value","")}.bind(this),blur:function(){if(!this.searchSimpleInputNode.get("value"))this.searchSimpleInputNode.set("value",this.lp.searchKeywork)}.bind(this),keydown:function(e){if(e.code===13)this.search()}.bind(this)})},search:function(){if(this.gridJson){var key=this.searchSimpleInputNode.get("value");var rows=this.viewTable.rows;var first=this.json.isTitle!=="no"?1:0;for(var i=first;iscrollHeight){if(!this.isItemsLoaded)this.loadDataByPaging()}}.bind(this);this.isSetedScroll=true;this.contentAreaNode.addEvent("scroll",this.scrollContainerFun)}},loadDataByPaging:function(){if(this.isItemsLoading)return;if(!this.isItemsLoaded){var from=Math.min(this.pageNumber*this.options.perPageCount,this.gridJson.length);var to=Math.min((this.pageNumber+1)*this.options.perPageCount+1,this.gridJson.length);this.isItemsLoading=true;for(var i=from;i"+""+"");this.selectTitleCell.setStyle("cursor","pointer");this.selectTitleCell.addEvent("click",this.expandOrCollapseAll.bind(this))}if(this.gridJson.length){this.gridJson.each(function(data){this.items.push(new MWF.xApplication.query.Query.Viewer.ItemCategory(this,data))}.bind(this));if(this.json.isExpand=="yes")this.expandOrCollapseAll()}},expandOrCollapseAll:function(){var icon=this.selectTitleCell.getElement("span");if(icon.get("html").indexOf("expand.png")===-1){this.items.each(function(item){item.collapse();icon.set("html","")}.bind(this))}else{this.items.each(function(item,i){window.setTimeout(function(){item.expand()}.bind(this),10*i+5);icon.set("html","")}.bind(this))}},getView:function(callback){this.getLookupAction(function(){if(this.json.application){this.lookupAction.getView(this.json.viewName,this.json.application,function(json){this.viewJson=JSON.decode(json.data.data);this.json=Object.merge(this.json,json.data);if(callback)callback()}.bind(this))}else{this.lookupAction.getViewById(this.json.viewId,function(json){this.viewJson=JSON.decode(json.data.data);this.json.application=json.data.query;this.json=Object.merge(this.json,json.data);if(callback)callback()}.bind(this))}}.bind(this))},getLookupAction:function(callback){if(!this.lookupAction){this.lookupAction=MWF.Actions.get("x_query_assemble_surface");if(callback)callback()}else{if(callback)callback()}},hide:function(){this.node.setStyle("display","none")},reload:function(){this.node.setStyle("display","block");if(this.loadingAreaNode)this.loadingAreaNode.setStyle("display","block");this.filterItems.each(function(filter){filter.destroy()}.bind(this));this.filterItems=[];if(this.viewSearchInputNode)this.viewSearchInputNode.set("text",this.lp.searchKeywork);this.closeCustomSearch();this.viewAreaNode.empty();this.createViewNode({filterList:this.json.filter?this.json.filter.clone():null})},getFilter:function(){debugger;var filterData=[];if(this.searchStatus==="custom"){if(this.filterItems.length){this.filterItems.each(function(filter){filterData.push(filter.data)}.bind(this))}}if(this.searchStatus==="default"){var key=this.viewSearchInputNode.get("value");if(key&&key!==this.lp.searchKeywork){this.viewJson.customFilterList.each(function(entry){if(entry.formatType==="textValue"){var d={path:entry.path,value:key,formatType:entry.formatType,logic:"or",comparison:"like"};filterData.push(d)}if(entry.formatType==="numberValue"){var v=key.toFloat();if(!isNaN(v)){var d={path:entry.path,value:v,formatType:entry.formatType,logic:"or",comparison:"like"};filterData.push(d)}}}.bind(this))}}return filterData.length?filterData:null},getData:function(){if(this.selectedItems.length){var arr=[];this.selectedItems.each(function(item){arr.push(item.data)});return arr}else{return[]}}});MWF.xApplication.query.Query.Viewer.Item=new Class({initialize:function(view,data,prev,i){this.view=view;this.data=data;this.css=this.view.css;this.isSelected=false;this.prev=prev;this.load()},load:function(){this.node=new Element("tr",{styles:this.css.viewContentTrNode});if(this.prev){this.node.inject(this.prev.node,"after")}else{this.node.inject(this.view.viewTable)}this.selectTd=new Element("td",{styles:this.css.viewContentTdNode}).inject(this.node);this.selectTd.setStyles({cursor:"pointer"});if(this.view.json.itemStyles)this.selectTd.setStyles(this.view.json.itemStyles);Object.each(this.view.entries,function(c,k){var cell=this.data.data[k];if(cell===undefined)cell="";if(this.view.hideColumns.indexOf(k)===-1){var td=new Element("td",{styles:this.css.viewContentTdNode}).inject(this.node);if(k!==this.view.viewJson.group.column){var v=this.view.entries[k].code?MWF.Macro.exec(this.view.entries[k].code,{value:cell,gridData:this.view.gridJson,data:this.view.viewData,entry:this.data}):cell;td.set("text",v)}if(this.view.openColumns.indexOf(k)!==-1){this.setOpenWork(td)}if(this.view.json.itemStyles)td.setStyles(this.view.json.itemStyles)}}.bind(this));this.setEvent()},setOpenWork:function(td){td.setStyle("cursor","pointer");td.addEvent("click",this.openWorkAndCompleted.bind(this))},openWorkAndCompleted:function(e){debugger;MWF.Actions.get("x_processplatform_assemble_surface").listWorkByJob(this.data.bundle,function(json){var workCompletedCount=json.data.workCompletedList.length;var workCount=json.data.workList.length;var count=workCount+workCompletedCount;if(count===1){if(workCompletedCount){this.openWorkCompleted(json.data.workCompletedList[0].id,e)}else{this.openWork(json.data.workList[0].id,e)}}else if(count>1){var worksAreaNode=this.createWorksArea();json.data.workCompletedList.each(function(work){this.createWorkCompletedNode(work,worksAreaNode)}.bind(this));json.data.workList.each(function(work){this.createWorkNode(work,worksAreaNode)}.bind(this));this.showWorksArea(worksAreaNode,e)}else{}}.bind(this))},createWorkNode:function(work,worksAreaNode){var worksAreaContentNode=worksAreaNode.getLast();var node=new Element("div",{styles:this.css.workAreaNode}).inject(worksAreaContentNode);var actionNode=new Element("div",{styles:this.css.workAreaActionNode,text:this.view.lp.open}).inject(node);actionNode.store("workId",work.id);actionNode.addEvent("click",function(e){this.openWork(e.target.retrieve("workId"),e);this.mask.hide();worksAreaNode.destroy()}.bind(this));var areaNode=new Element("div",{styles:this.css.workAreaLeftNode}).inject(node);var titleNode=new Element("div",{styles:this.css.workAreaTitleNode,text:work.title}).inject(areaNode);var contentNode=new Element("div",{styles:this.css.workAreaContentNode}).inject(areaNode);new Element("div",{styles:this.css.workAreaContentTitleNode,text:this.view.lp.activity+": "}).inject(contentNode);new Element("div",{styles:this.css.workAreaContentTextNode,text:work.activityName}).inject(contentNode);var taskUsers=[];MWF.Actions.get("x_processplatform_assemble_surface").listTaskByWork(work.id,function(json){json.data.taskList.each(function(task){taskUsers.push(MWF.name.cn(task.person))}.bind(this));new Element("div",{styles:this.css.workAreaContentTitleNode,text:this.view.lp.taskPeople+": "}).inject(contentNode);new Element("div",{styles:this.css.workAreaContentTextNode,text:taskUsers.join(", ")}).inject(contentNode)}.bind(this))},createWorkCompletedNode:function(work,worksAreaNode){var worksAreaContentNode=worksAreaNode.getLast();var node=new Element("div",{styles:this.css.workAreaNode}).inject(worksAreaContentNode);var actionNode=new Element("div",{styles:this.css.workAreaActionNode,text:this.view.lp.open}).inject(node);actionNode.store("workId",work.id);actionNode.addEvent("click",function(e){this.mask.hide();worksAreaNode.destroy();this.openWorkCompleted(e.target.retrieve("workId"),e)}.bind(this));var areaNode=new Element("div",{styles:this.css.workAreaLeftNode}).inject(node);var titleNode=new Element("div",{styles:this.css.workAreaTitleNode,text:work.title}).inject(areaNode);var contentNode=new Element("div",{styles:this.css.workAreaContentNode}).inject(areaNode);new Element("div",{styles:this.css.workAreaContentTitleNode,text:this.view.lp.activity+": "}).inject(contentNode);new Element("div",{styles:this.css.workAreaContentTextNode,text:this.view.lp.processCompleted}).inject(contentNode)},createWorksArea:function(){var worksAreaNode=new Element("div",{styles:this.css.worksAreaNode});var worksAreaTitleNode=new Element("div",{styles:this.css.worksAreaTitleNode}).inject(worksAreaNode);var worksAreaTitleCloseNode=new Element("div",{styles:this.css.worksAreaTitleCloseNode}).inject(worksAreaTitleNode);worksAreaTitleCloseNode.addEvent("click",function(e){this.mask.hide();e.target.getParent().getParent().destroy()}.bind(this));var worksAreaContentNode=new Element("div",{styles:this.css.worksAreaContentNode}).inject(worksAreaNode);return worksAreaNode},showWorksArea:function(node,e){this.mask=new MWF.widget.Mask({style:"desktop",loading:false});this.mask.loadNode(this.view.container);node.inject(this.view.node);this.setWorksAreaPosition(node,e.target)},setWorksAreaPosition:function(node,td){var p=td.getPosition(this.view.container);var containerS=this.view.container.getSize();var containerP=this.view.container.getPosition(this.view.container.getOffsetParent());var s=node.getSize();var offX=p.x+s.x-containerS.x;offX=offX>0?offX+20:0;var offY=p.y+s.y-containerS.y;offY=offY>0?offY+5:0;node.position({relativeTo:td,position:"lefttop",edge:"lefttop",offset:{x:0-offX,y:0-offY}})},openWork:function(id,e){var options={workId:id};this.view.fireEvent("openDocument",[options,this]);layout.desktop.openApplication(e,"process.Work",options)},openWorkCompleted:function(id,e){var options={workCompletedId:id};this.view.fireEvent("openDocument",[options,this]);layout.desktop.openApplication(e,"process.Work",options)},setEvent:function(){if(this.view.json.select==="single"||this.view.json.select==="multi"){this.node.addEvents({mouseover:function(){if(!this.isSelected){var iconName="checkbox";if(this.view.json.select==="single")iconName="radiobox";this.selectTd.setStyles({background:"url("+"/x_component_query_Query/$Viewer/default/icon/"+iconName+".png) center center no-repeat"})}}.bind(this),mouseout:function(){if(!this.isSelected)this.selectTd.setStyles({background:"transparent"})}.bind(this),click:function(){this.select()}.bind(this)})}},select:function(){if(this.isSelected){if(this.view.json.select==="single"){this.unSelectedSingle()}else{this.unSelected()}}else{if(this.view.json.select==="single"){this.selectedSingle()}else{this.selected()}}this.view.fireEvent("select")},selected:function(){this.view.selectedItems.push(this);this.selectTd.setStyles({background:"url("+"/x_component_query_Query/$Viewer/default/icon/checkbox_checked.png) center center no-repeat"});this.node.setStyles(this.css.viewContentTrNode_selected);this.isSelected=true},unSelected:function(){this.view.selectedItems.erase(this);this.selectTd.setStyles({background:"transparent"});this.node.setStyles(this.css.viewContentTrNode);this.isSelected=false},selectedSingle:function(){if(this.view.currentSelectedItem)this.view.currentSelectedItem.unSelectedSingle();this.view.selectedItems=[this];this.view.currentSelectedItem=this;this.selectTd.setStyles({background:"url("+"/x_component_query_Query/$Viewer/default/icon/radiobox_checked.png) center center no-repeat"});this.node.setStyles(this.css.viewContentTrNode_selected);this.isSelected=true},unSelectedSingle:function(){this.view.selectedItems=[];this.view.currentSelectedItem=null;this.selectTd.setStyles({background:"transparent"});this.node.setStyles(this.css.viewContentTrNode);this.isSelected=false}});MWF.xApplication.query.Query.Viewer.ItemCategory=new Class({initialize:function(view,data){this.view=view;this.data=data;this.css=this.view.css;this.items=[];this.loadChild=false;this.load()},load:function(){this.node=new Element("tr",{styles:this.css.viewContentTrNode}).inject(this.view.viewTable);this.selectTd=new Element("td",{styles:this.css.viewContentCategoryTdNode}).inject(this.node);if(this.view.json.itemStyles)this.selectTd.setStyles(this.view.json.itemStyles);this.categoryTd=new Element("td",{styles:this.css.viewContentCategoryTdNode,colspan:this.view.viewJson.selectList.length}).inject(this.node);this.groupColumn=null;for(var c=0;c "+text);if(this.view.json.itemStyles)this.categoryTd.setStyles(this.view.json.itemStyles);this.setEvent()},setEvent:function(){this.node.addEvents({click:function(){this.expandOrCollapse()}.bind(this)})},expandOrCollapse:function(){var t=this.node.getElement("span").get("html");if(t.indexOf("expand.png")===-1){this.collapse()}else{this.expand()}},collapse:function(){this.items.each(function(item){item.node.setStyle("display","none")}.bind(this));this.node.getElement("span").set("html","")},expand:function(){this.items.each(function(item){item.node.setStyle("display","table-row")}.bind(this));this.node.getElement("span").set("html",""); if(!this.loadChild){this.data.list.each(function(line){this.items.push(new MWF.xApplication.query.Query.Viewer.Item(this.view,line,this))}.bind(this));this.loadChild=true}}});MWF.xApplication.query.Query.Viewer.Filter=new Class({initialize:function(viewer,data,node){this.viewer=viewer;this.data=data;this.css=this.viewer.css;this.content=node;this.load()},load:function(){this.node=new Element("div",{styles:this.css.viewSearchFilterNode}).inject(this.content);if(this.viewer.filterItems.length){this.logicNode=new Element("div",{styles:this.css.viewSearchFilterSelectAreaNode}).inject(this.node);this.logicSelectNode=new Element("div",{styles:this.css.viewSearchFilterSelectNode,text:this.viewer.lp.and,value:"and"}).inject(this.logicNode);this.logicSelectButtonNode=new Element("div",{styles:this.css.viewSearchFilterSelectButtonNode}).inject(this.logicNode);this.logicNode.addEvents({click:function(){var v=this.logicSelectNode.get("value");if(v==="and"){this.logicSelectButtonNode.setStyle("float","left");this.logicSelectNode.setStyle("float","right");this.logicSelectNode.set({text:this.viewer.lp.or,value:"or"});this.data.logic="or"}else{this.logicSelectButtonNode.setStyle("float","right");this.logicSelectNode.setStyle("float","left");this.logicSelectNode.set({text:this.viewer.lp.and,value:"and"});this.data.logic="and"}this.viewer.searchCustomView()}.bind(this)})}this.titleNode=new Element("div",{styles:this.css.viewSearchFilterTextNode,text:this.data.title}).inject(this.node);this.comparisonTitleNode=new Element("div",{styles:this.css.viewSearchFilterTextNode,text:this.data.comparisonTitle}).inject(this.node);this.valueNode=new Element("div",{styles:this.css.viewSearchFilterTextNode,text:'"'+this.data.value+'"'}).inject(this.node);this.deleteNode=new Element("div",{styles:this.css.viewSearchFilterDeleteNode}).inject(this.node);this.node.addEvents({mouseover:function(){this.node.setStyles(this.css.viewSearchFilterNode_over);this.deleteNode.setStyles(this.css.viewSearchFilterDeleteNode_over)}.bind(this),mouseout:function(){this.node.setStyles(this.css.viewSearchFilterNode);this.deleteNode.setStyles(this.css.viewSearchFilterDeleteNode)}.bind(this)});this.deleteNode.addEvent("click",function(){this.viewer.searchViewRemoveFilter(this)}.bind(this))},destroy:function(){this.node.destroy();MWF.release(this)}});