MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.widget.JsonTemplate",null,false);MWF.xApplication.query.ViewDesigner.Property=MWF.FVProperty=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",path:"/x_component_query_FormDesigner/property/property.html"},initialize:function(module,propertyNode,designer,options){this.setOptions(options);this.module=module;this.view=module.view;this.data=module.json;this.data.pid=this.view.json.id+this.data.id;this.htmlPath=this.options.path;this.designer=designer;this.propertyNode=propertyNode},load:function(){if(this.fireEvent("queryLoad")){MWF.getRequestText(this.htmlPath,function(responseText,responseXML){this.htmlString=responseText;this.fireEvent("postLoad")}.bind(this))}this.propertyNode.addEvent("keydown",function(e){e.stopPropagation()})},editProperty:function(td){},getHtmlString:function(callback){if(!this.htmlString){MWF.getRequestText(this.htmlPath,function(responseText,responseXML){this.htmlString=responseText;if(callback)callback()}.bind(this))}else{if(callback)callback()}},show:function(){if(!this.propertyContent){this.getHtmlString(function(){if(this.htmlString){this.JsonTemplate=new MWF.widget.JsonTemplate(this.data,this.htmlString);this.propertyContent=new Element("div",{styles:{overflow:"hidden"}}).inject(this.propertyNode);this.propertyContent.set("html",this.JsonTemplate.load());this.setEditNodeEvent();this.setEditNodeStyles(this.propertyContent);this.loadPropertyTab();this.loadPersonInput();this.loadPersonSelectInput();this.loadViewFilter();this.loadScriptArea();this.loadColumnExportEditor();this.loadJSONArea()}}.bind(this))}else{this.propertyContent.setStyle("display","block")}},hide:function(){if(this.propertyContent)this.propertyContent.setStyle("display","none")},loadJSONArea:function(){var jsonNode=this.propertyContent.getElement(".MWFJSONArea");if(jsonNode){this.propertyTab.pages.each(function(page){if(page.contentNode==jsonNode.parentElement){page.setOptions({onShow:function(){jsonNode.empty();MWF.require("MWF.widget.JsonParse",function(){this.json=new MWF.widget.JsonParse(this.module.json,jsonNode,null);this.json.load()}.bind(this))}.bind(this)})}}.bind(this))}},loadPropertyTab:function(){var tabNodes=this.propertyContent.getElements(".MWFTab");if(tabNodes.length){var tmpNode=this.propertyContent.getFirst();var tabAreaNode=new Element("div",{styles:this.view.css.propertyTabNode}).inject(tmpNode,"before");MWF.require("MWF.widget.Tab",function(){var tab=new MWF.widget.Tab(tabAreaNode,{style:"formPropertyList"});tab.load();var tabPages=[];tabNodes.each(function(node){var page=tab.addTab(node,node.get("title"),false);tabPages.push(page);this.setScrollBar(page.contentNodeArea,"small",null,null)}.bind(this));tabPages[0].showTab();this.propertyTab=tab;this.designer.resizeNode()}.bind(this),false)}},setEditNodeEvent:function(){var property=this;var inputs=this.propertyContent.getElements("input");inputs.each(function(input){var jsondata=input.get("name");if(jsondata&&jsondata.substr(0,1)!="_"){if(this.module){var id=this.module.json.id;input.set("name",id+jsondata)}if(jsondata){var inputType=input.get("type").toLowerCase();switch(inputType){case"radio":input.addEvent("change",function(e){property.setRadioValue(jsondata,this)});input.addEvent("blur",function(e){property.setRadioValue(jsondata,this)});input.addEvent("keydown",function(e){e.stopPropagation()});property.setRadioValue(jsondata,input);break;case"checkbox":input.addEvent("change",function(e){property.setCheckboxValue(jsondata,this)});input.addEvent("click",function(e){property.setCheckboxValue(jsondata,this)});input.addEvent("keydown",function(e){e.stopPropagation()});break;default:input.addEvent("change",function(e){property.setValue(jsondata,this.value,this)});input.addEvent("blur",function(e){property.setValue(jsondata,this.value,this)});input.addEvent("keydown",function(e){if(e.code==13){property.setValue(jsondata,this.value,this)}e.stopPropagation()});if(input.hasClass("editTableInputDate")){this.loadCalendar(input)}}}}}.bind(this));var selects=this.propertyContent.getElements("select");selects.each(function(select){var jsondata=select.get("name");if(jsondata){select.addEvent("change",function(e){property.setSelectValue(jsondata,this)})}});var textareas=this.propertyContent.getElements("textarea");textareas.each(function(input){var jsondata=input.get("name");if(jsondata){input.addEvent("change",function(e){property.setValue(jsondata,this.value)});input.addEvent("blur",function(e){property.setValue(jsondata,this.value)});input.addEvent("keydown",function(e){e.stopPropagation()})}}.bind(this))},loadCalendar:function(node){MWF.require("MWF.widget.Calendar",function(){this.calendar=new MWF.widget.Calendar(node,{style:"xform",isTime:false,target:this.module.designer.content,format:"%Y-%m-%d",onComplate:function(){}.bind(this)})}.bind(this))},changeStyle:function(name){this.module.setPropertiesOrStyles(name)},changeData:function(name,input,oldValue){var i=name.lastIndexOf("*");var n=i!=-1?name.substr(i+1,name.length):name;this.module._setEditStyle(n,input,oldValue)},changeJsonDate:function(key,value){if(typeOf(key)!="array")key=[key];var o=this.data;var len=key.length-1;key.each(function(n,i){if(!o[n])o[n]={};if(i逻辑"+"路径"+"比较"+"值";tr.set("html",html);var addActionNode=new Element("div",{styles:this.module.css.filterAddActionNode}).inject(tr.getFirst("th"));addActionNode.addEvent("click",function(){this.addFilter(table)}.bind(this));if(this.data.filterList){this.data.filterList.each(function(op){new MWF.xApplication.query.ViewDesigner.Property.Filter(op,table,this)}.bind(this))}}.bind(this))},addFilter:function(table){op={logic:"and",comparison:"",value:""};if(!this.data.filterList)this.data.filterList=[];this.data.filterList.push(op);var filter=new MWF.xApplication.query.ViewDesigner.Property.Filter(op,table,this);filter.editMode()}});MWF.xApplication.query.ViewDesigner.Property.Filter=new Class({Implements:[Events],initialize:function(json,table,property){this.property=property;this.module=property.module;this.table=table;this.data=json;this.load()},load:function(){this.node=new Element("tr",{styles:this.module.css.filterTableTd}).inject(this.table);var html=""+""+this.data.logic+""+"列值"+""+this.data.comparison+""+""+this.data.value+"";this.node.set("html",html);var tds=this.node.getElements("td");this.delActionNode=new Element("div",{styles:this.module.css.filterDelActionNode}).inject(tds[0]);this.delActionNode.addEvent("click",function(e){this.delFilter(e);e.stopPropagation()}.bind(this));this.logicNode=tds[1];this.comparisonNode=tds[3];this.valueNode=tds[4];this.node.addEvent("click",function(){if(!this.isEditMode)this.editMode()}.bind(this));this.node.addEvent("blur",function(){if(this.isEditMode)this.readMode()}.bind(this))},delFilter:function(e){var _self=this;this.property.designer.confirm("warn",e,MWF.APPDVD.LP.notice.deleteFilterTitle,MWF.APPDVD.LP.notice.deleteFilter,300,120,function(){_self.node.destroy();_self.property.data.filterList.erase(_self.data);MWF.release(_self);this.close()},function(){this.close()},null)},editMode:function(){if(this.property.editModeFilter){if(this.property.editModeFilter!=this)this.property.editModeFilter.readMode()}var width=this.logicNode.getSize().x-9;this.logicNode.empty();var logicSelect=new Element("select",{styles:{width:"90%"}}).inject(this.logicNode);var html="";if(this.data.logic=="and"){html=''}else{html=''}logicSelect.set("html",html);logicSelect.addEvent("change",function(){this.data.logic=logicSelect.options[logicSelect.selectedIndex].value}.bind(this));width=this.comparisonNode.getSize().x-9;this.comparisonNode.empty();var comparisonSelect=new Element("select",{styles:{width:"90%"}}).inject(this.comparisonNode);html="";switch(this.property.data.type){case"text":html+=""+""+"";break;case"date":html+=""+""+""+"";break;case"number":html+=""+""+""+""+""+"";break;case"boolean":html+=""+"";break}comparisonSelect.set("html",html);comparisonSelect.addEvent("change",function(){this.data.comparison=comparisonSelect.options[comparisonSelect.selectedIndex].value}.bind(this));width=this.valueNode.getSize().x-9;this.valueNode.empty();var type="text";switch(this.property.data.type){case"date":var valueInput=new Element("input",{styles:{width:"90%"},type:"text",value:this.data.value}).inject(this.valueNode);MWF.require("MWF.widget.Calendar",function(){this.calendar=new MWF.widget.Calendar(valueInput,{style:"xform",isTime:true,target:this.property.designer.content,format:"%Y-%m-%d %H:%M:%S"})}.bind(this));break;case"number":var valueInput=new Element("input",{styles:{width:"90%"},type:"number",value:this.data.value}).inject(this.valueNode);break;case"boolean":var valueInput=new Element("select",{styles:{width:""+width+"px"},html:'"}).inject(this.valueNode);break;default:var valueInput=new Element("input",{styles:{width:"90%"},type:"text",value:this.data.value}).inject(this.valueNode)}if(valueInput.tagName.toLowerCase()=="select"){valueInput.addEvent("change",function(){var v=valueInput.options[valueInput.selectedIndex].value;this.data.value=(v="true")?true:false}.bind(this))}else{valueInput.addEvent("change",function(e){this.data.value=valueInput.get("value")}.bind(this));valueInput.addEvent("blur",function(e){this.data.value=valueInput.get("value")}.bind(this));valueInput.addEvent("keydown",function(e){if(e.code==13){this.data.value=valueInput.get("value");this.readMode()}e.stopPropagation()}.bind(this))}this.isEditMode=true;this.property.editModeFilter=this},readMode:function(){if(this.isEditMode){var logicSelect=this.logicNode.getElement("select");this.data.logic=logicSelect.options[logicSelect.selectedIndex].value;var comparisonSelect=this.comparisonNode.getElement("select");this.data.comparison=comparisonSelect.options[comparisonSelect.selectedIndex].value;var valueInput=this.valueNode.getFirst();if(valueInput.tagName.toLowerCase()=="select"){var v=valueInput.options[valueInput.selectedIndex].value;this.data.value=(v="true")?true:false}else{this.data.value=valueInput.get("value")}this.logicNode.empty();this.comparisonNode.empty();this.valueNode.empty();this.logicNode.set("text",this.data.logic);this.comparisonNode.set("text",this.data.comparison);this.valueNode.set("text",this.data.value);this.isEditMode=false;this.property.editModeFilter=null}}});