Property.min.js 18 KB

1
  1. MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.widget.JsonTemplate",null,false);MWF.xApplication.process.ViewDesigner.Property=MWF.FVProperty=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",path:"/x_component_process_FormDesigner/property/property.html"},initialize:function(t,e,i,n){this.setOptions(n);this.module=t;this.view=t.view;this.data=t.json;this.data.pid=this.view.json.id+this.data.id;this.htmlPath=this.options.path;this.designer=i;this.propertyNode=e},load:function(){if(this.fireEvent("queryLoad")){MWF.getRequestText(this.htmlPath,function(t,e){this.htmlString=t;this.fireEvent("postLoad")}.bind(this))}this.propertyNode.addEvent("keydown",function(t){t.stopPropagation()})},editProperty:function(t){},getHtmlString:function(t){if(!this.htmlString){MWF.getRequestText(this.htmlPath,function(e,i){this.htmlString=e;if(t)t()}.bind(this))}else{if(t)t()}},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 t=this.propertyContent.getElement(".MWFJSONArea");if(t){this.propertyTab.pages.each(function(e){if(e.contentNode==t.parentElement){e.setOptions({onShow:function(){t.empty();MWF.require("MWF.widget.JsonParse",function(){this.json=new MWF.widget.JsonParse(this.module.json,t,null);this.json.load()}.bind(this))}.bind(this)})}}.bind(this))}},loadPropertyTab:function(){var t=this.propertyContent.getElements(".MWFTab");if(t.length){var e=this.propertyContent.getFirst();var i=new Element("div",{styles:this.view.css.propertyTabNode}).inject(e,"before");MWF.require("MWF.widget.Tab",function(){var e=new MWF.widget.Tab(i,{style:"formPropertyList"});e.load();var n=[];t.each(function(t){var i=e.addTab(t,t.get("title"),false);n.push(i);this.setScrollBar(i.contentNodeArea,"small",null,null)}.bind(this));n[0].showTab();this.propertyTab=e;this.designer.resizeNode()}.bind(this),false)}},setEditNodeEvent:function(){var t=this;var e=this.propertyContent.getElements("input");e.each(function(e){var i=e.get("name");if(i&&i.substr(0,1)!="_"){if(this.module){var n=this.module.json.id;e.set("name",n+i)}if(i){var s=e.get("type").toLowerCase();switch(s){case"radio":e.addEvent("change",function(e){t.setRadioValue(i,this)});e.addEvent("blur",function(e){t.setRadioValue(i,this)});e.addEvent("keydown",function(t){t.stopPropagation()});t.setRadioValue(i,e);break;case"checkbox":e.addEvent("change",function(e){t.setCheckboxValue(i,this)});e.addEvent("click",function(e){t.setCheckboxValue(i,this)});e.addEvent("keydown",function(t){t.stopPropagation()});break;default:e.addEvent("change",function(e){t.setValue(i,this.value,this)});e.addEvent("blur",function(e){t.setValue(i,this.value,this)});e.addEvent("keydown",function(e){if(e.code==13){t.setValue(i,this.value,this)}e.stopPropagation()});if(e.hasClass("editTableInputDate")){this.loadCalendar(e)}}}}}.bind(this));var i=this.propertyContent.getElements("select");i.each(function(e){var i=e.get("name");if(i){e.addEvent("change",function(e){t.setSelectValue(i,this)})}});var n=this.propertyContent.getElements("textarea");n.each(function(e){var i=e.get("name");if(i){e.addEvent("change",function(e){t.setValue(i,this.value)});e.addEvent("blur",function(e){t.setValue(i,this.value)});e.addEvent("keydown",function(t){t.stopPropagation()})}}.bind(this))},loadCalendar:function(t){MWF.require("MWF.widget.Calendar",function(){this.calendar=new MWF.widget.Calendar(t,{style:"xform",isTime:false,target:this.module.designer.content,format:"%Y-%m-%d",onComplate:function(){}.bind(this)})}.bind(this))},changeStyle:function(t){this.module.setPropertiesOrStyles(t)},changeData:function(t,e,i){this.module._setEditStyle(t,e,i)},changeJsonDate:function(t,e){if(typeOf(t)!="array")t=[t];var i=this.data;var n=t.length-1;t.each(function(t,e){if(!i[t])i[t]={};if(e<n)i=i[t]}.bind(this));i[t[n]]=e},setRadioValue:function(t,e){if(e.checked){var i=t.indexOf("*");var n=i==-1?t.split("."):t.substr(i+1,t.length).split(".");var s=e.value;if(s=="false")s=false;if(s=="true")s=true;var o=this.data;for(var a=0;a<n.length;a++){if(!o[n[a]]){o=null;break}else{o=o[n[a]]}}this.changeJsonDate(n,s);this.changeData(t,e,o)}},setCheckboxValue:function(t,e){var i=this.module.json.id;var n=$$("input[name='"+i+t+"']");var s=[];n.each(function(t){if(t.get("checked")){s.push(t.value)}});var o=this.data[t];this.changeJsonDate(t,s);this.changeData(t,e,o)},setSelectValue:function(t,e){var i=e.selectedIndex;var n=e.getElements("option");var s="";if(n[i]){s=n[i].get("value")}var o=this.data[t];this.changeJsonDate(t,s);this.changeData(t,e,o)},setValue:function(t,e,i){var n=t.split(".");var s=this.data;for(var o=0;o<n.length;o++){if(!s[n[o]]){s=null;break}else{s=s[n[o]]}}this.changeJsonDate(n,e);this.changeData(t,i,s)},setEditNodeStyles:function(t){var e=t.getChildren();if(e.length){e.each(function(t){var e=t.get("class");if(e){if(this.view.css[e])t.setStyles(this.view.css[e])}this.setEditNodeStyles(t)}.bind(this))}},loadScriptArea:function(){debugger;var t=this.propertyContent.getElements(".MWFScriptArea");var e=this.propertyContent.getElements(".MWFFormulaArea");this.loadScriptEditor(t);this.loadScriptEditor(e,"formula")},loadScriptEditor:function(t,e){t.each(function(t){var i=t.get("title");var n=t.get("name");var s=this.data[n];MWF.require("MWF.widget.ScriptArea",function(){var o=new MWF.widget.ScriptArea(t,{title:i,maxObj:this.designer.editContentNode,onChange:function(){this.data[n]=o.toJson().code}.bind(this),onSave:function(){this.designer.saveView()}.bind(this),style:e||"default"});o.load({code:s})}.bind(this))}.bind(this))},loadPersonInput:function(){var t=this.propertyContent.getElements(".MWFPersonIdentity");var e=this.propertyContent.getElements(".MWFPersonUnit");MWF.xDesktop.requireApp("process.ProcessDesigner","widget.PersonSelector",function(){t.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"identity",names:this.data[t.get("name")],onChange:function(e){this.savePersonItem(t,e)}.bind(this)})}.bind(this));e.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"unit",names:this.data[t.get("name")],onChange:function(e){this.savePersonItem(t,e)}.bind(this)})}.bind(this))}.bind(this))},savePersonItem:function(t,e){var i=[];e.each(function(t){i.push(t.data.distinguishedName||t.data.id||t.data.name)}.bind(this));var n=t.get("name");key=n.split(".");var s=this.data;var o=key.length-1;key.each(function(t,e){if(!s[t])s[t]={};if(e<o)s=s[t]}.bind(this));s[key[o]]=i},loadPersonSelectInput:function(){var t=this.propertyContent.getElements(".MWFSelectApplication");var e=this.propertyContent.getElements(".MWFSelectProcess");var i=this.propertyContent.getElements(".MWFSelectPerson");var n=this.propertyContent.getElements(".MWFSelectIdentity");var s=this.propertyContent.getElements(".MWFSelectUnit");MWF.xDesktop.requireApp("process.ProcessDesigner","widget.PersonSelector",function(){t.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"application",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.applicationList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));e.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"process",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.processList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));s.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"unit",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.unitList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));i.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"person",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.personList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this));n.each(function(t){new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(t,this.view.designer,{type:"identity",names:this.data.data.restrictWhereEntry?this.data.data.restrictWhereEntry.identityList:[],onChange:function(e){this.savePersonSelectItem(t,e)}.bind(this)})}.bind(this))}.bind(this))},savePersonSelectItem:function(t,e){debugger;var i=[];e.each(function(t){i.push({name:t.data.distinguishedName||t.data.name,id:t.data.id})}.bind(this));var n=t.get("name");key=n.split(".");var s=this.data;var o=key.length-1;key.each(function(t,e){if(!s[t])s[t]={};if(e<o)s=s[t]}.bind(this));s[key[o]]=i},loadColumnExportEditor:function(){var t=this;var e=this.propertyContent.getElements(".MWFColumnExport");e.each(function(e){var i=e.getElement("select");var n=this.view.data.data.orderEntryList;n.each(function(t){if(t.column==this.data.column){if(t.orderType=="asc")i.options[1].set("selected",true);if(t.orderType=="desc")i.options[1].set("selected",false)}}.bind(this));i.addEvent("change",function(t){var e=i.options[i.selectedIndex].value;if(e!="none"){var s=false;n.each(function(t){if(t.column==this.data.column){s=true;t.orderType=i.options[i.selectedIndex].value}}.bind(this));if(!s)n.push({column:this.data.column,orderType:i.options[i.selectedIndex].value})}else{var o=null;n.each(function(t){if(t.column==this.data.column){o=t}}.bind(this));if(o)n.erase(o)}}.bind(this));var s=e.getElements("input");var o=this.view.data.data.group;if(o.column==this.data.column)s[0].set("checked",true);s.addEvent("click",function(e){if(this.checked){if(this.value=="true"){t.view.data.data.group.column=t.data.column;t.view.items.each(function(t){if(t.property){var e=t.property.propertyContent.getElement(".MWFColumnExportGroup").getElements("input");e.each(function(t){if(t.value=="true")t.set("checked",false);if(t.value=="false")t.set("checked",true)})}});this.set("checked",true)}else{if(o.column==t.data.column)t.view.data.data.group={}}}})}.bind(this))},loadViewFilter:function(){var t=this.propertyContent.getElements(".MWFViewFilter");var e=this.view.data.data.restrictFilterEntryList;var i=this.view.data.data.customFilterEntryList;t.each(function(t){MWF.xDesktop.requireApp("process.ViewDesigner","widget.ViewFilter",function(){var n=this;new MWF.xApplication.process.ViewDesigner.widget.ViewFilter(t,this.view.designer,{filtrData:e,customData:i},{onChange:function(t){debugger;var e=this.getData();n.changeJsonDate(["data","restrictFilterEntryList"],e.data);n.changeJsonDate(["data","customFilterEntryList"],e.customData)}})}.bind(this))}.bind(this))},loadColumnFilter:function(){var t=this.propertyContent.getElements(".MWFColumnFilter");t.each(function(t){this.module.filterAreaNode=t;var e=new Element("table",{styles:{width:"100%"},border:"0px",cellPadding:"0",cellSpacing:"0"}).inject(t);var i=new Element("tr",{styles:this.module.css.filterTableTitle}).inject(e);var n="<th style='width:24px;border-right:1px solid #CCC;border-bottom:1px solid #999;'></th>"+"<th style='border-right:1px solid #CCC;border-left:1px solid #FFF;border-bottom:1px solid #999;'>逻辑</th>"+"<th style='border-right:1px solid #CCC;border-left:1px solid #FFF;border-bottom:1px solid #999;'>路径</th>"+"<th style='border-right:1px solid #CCC;border-left:1px solid #FFF;border-bottom:1px solid #999;'>比较</th>"+"<th style='border-left:1px solid #FFF;border-bottom:1px solid #999;'>值</th>";i.set("html",n);var s=new Element("div",{styles:this.module.css.filterAddActionNode}).inject(i.getFirst("th"));s.addEvent("click",function(){this.addFilter(e)}.bind(this));if(this.data.filterList){this.data.filterList.each(function(t){new MWF.xApplication.process.ViewDesigner.Property.Filter(t,e,this)}.bind(this))}}.bind(this))},addFilter:function(t){op={logic:"and",comparison:"",value:""};if(!this.data.filterList)this.data.filterList=[];this.data.filterList.push(op);var e=new MWF.xApplication.process.ViewDesigner.Property.Filter(op,t,this);e.editMode()}});MWF.xApplication.process.ViewDesigner.Property.Filter=new Class({Implements:[Events],initialize:function(t,e,i){this.property=i;this.module=i.module;this.table=e;this.data=t;this.load()},load:function(){this.node=new Element("tr",{styles:this.module.css.filterTableTd}).inject(this.table);var t="<td style='widtd:24px;border-right:1px solid #CCC;border-bottom:1px solid #999;'></td>"+"<td style='padding:3px;border-right:1px solid #CCC;border-bottom:1px solid #999; width:60px'>"+this.data.logic+"</td>"+"<td style='padding:3px;border-right:1px solid #CCC;border-bottom:1px solid #999; width:30px'>列值</td>"+"<td style='padding:3px;border-right:1px solid #CCC;border-bottom:1px solid #999;'>"+this.data.comparison+"</td>"+"<td style='padding:3px;border-bottom:1px solid #999;'>"+this.data.value+"</td>";this.node.set("html",t);var e=this.node.getElements("td");this.delActionNode=new Element("div",{styles:this.module.css.filterDelActionNode}).inject(e[0]);this.delActionNode.addEvent("click",function(t){this.delFilter(t);t.stopPropagation()}.bind(this));this.logicNode=e[1];this.comparisonNode=e[3];this.valueNode=e[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(t){var e=this;this.property.designer.confirm("warn",t,MWF.APPVD.LP.notice.deleteFilterTitle,MWF.APPVD.LP.notice.deleteFilter,300,120,function(){e.node.destroy();e.property.data.filterList.erase(e.data);MWF.release(e);this.close()},function(){this.close()},null)},editMode:function(){if(this.property.editModeFilter){if(this.property.editModeFilter!=this)this.property.editModeFilter.readMode()}var t=this.logicNode.getSize().x-9;this.logicNode.empty();var e=new Element("select",{styles:{width:"90%"}}).inject(this.logicNode);var i="";if(this.data.logic=="and"){i='<option value="and" selected>and</option><option value="or">or</option>'}else{i='<option value="and">and</option><option value="or" selected>or</option>'}e.set("html",i);e.addEvent("change",function(){this.data.logic=e.options[e.selectedIndex].value}.bind(this));t=this.comparisonNode.getSize().x-9;this.comparisonNode.empty();var n=new Element("select",{styles:{width:"90%"}}).inject(this.comparisonNode);i="";switch(this.property.data.type){case"text":i+="<option value=''></option><option value='==' "+(this.data.comparison=="=="?"selected":"")+">等于(==)</option>"+"<option value='!=' "+(this.data.comparison=="!="?"selected":"")+">不等于(!=)</option>"+"<option value='@' "+(this.data.comparison=="@"?"selected":"")+">包含(@)</option>";break;case"date":i+="<option value=''></option><option value='&gt;' "+(this.data.comparison==">"?"selected":"")+">大于(&gt;)</option>"+"<option value='&lt;' "+(this.data.comparison=="<"?"selected":"")+">小于(&lt;)</option>"+"<option value='&gt;=' "+(this.data.comparison==">="?"selected":"")+">大于等于(&gt;=)</option>"+"<option value='&lt;=' "+(this.data.comparison=="<="?"selected":"")+">小于等于(&lt;=)</option>";break;case"number":i+="<option value=''></option><option value='==' "+(this.data.comparison=="=="?"selected":"")+">等于(==)</option>"+"<option value='!=' "+(this.data.comparison=="!="?"selected":"")+">不等于(!=)</option>"+"<option value='&gt;' "+(this.data.comparison==">"?"selected":"")+">大于(&gt;)</option>"+"<option value='&lt;' "+(this.data.comparison=="<"?"selected":"")+">小于(&lt;)</option>"+"<option value='&gt;=' "+(this.data.comparison==">="?"selected":"")+">大于等于(&gt;=)</option>"+"<option value='&lt;=' "+(this.data.comparison=="<="?"selected":"")+">小于等于(&lt;=)</option>";break;case"boolean":i+="<option value=''></option><option value='==' "+(this.data.comparison=="=="?"selected":"")+">等于(==)</option>"+"<option value='!=' "+(this.data.comparison=="!="?"selected":"")+">不等于(!=)</option>";break}n.set("html",i);n.addEvent("change",function(){this.data.comparison=n.options[n.selectedIndex].value}.bind(this));t=this.valueNode.getSize().x-9;this.valueNode.empty();var s="text";switch(this.property.data.type){case"date":var o=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(o,{style:"xform",isTime:true,target:this.property.designer.content,format:"%Y-%m-%d %H:%M:%S"})}.bind(this));break;case"number":var o=new Element("input",{styles:{width:"90%"},type:"number",value:this.data.value}).inject(this.valueNode);break;case"boolean":var o=new Element("select",{styles:{width:""+t+"px"},html:'<option value=""></option><option value="true" '+(this.data.value?"selected":"")+'>true</option><option value="false" '+(!this.data.value?"selected":"")+">false</option>"}).inject(this.valueNode);break;default:var o=new Element("input",{styles:{width:"90%"},type:"text",value:this.data.value}).inject(this.valueNode)}if(o.tagName.toLowerCase()=="select"){o.addEvent("change",function(){var t=o.options[o.selectedIndex].value;this.data.value=(t="true")?true:false}.bind(this))}else{o.addEvent("change",function(t){this.data.value=o.get("value")}.bind(this));o.addEvent("blur",function(t){this.data.value=o.get("value")}.bind(this));o.addEvent("keydown",function(t){if(t.code==13){this.data.value=o.get("value");this.readMode()}t.stopPropagation()}.bind(this))}this.isEditMode=true;this.property.editModeFilter=this},readMode:function(){if(this.isEditMode){var t=this.logicNode.getElement("select");this.data.logic=t.options[t.selectedIndex].value;var e=this.comparisonNode.getElement("select");this.data.comparison=e.options[e.selectedIndex].value;var i=this.valueNode.getFirst();if(i.tagName.toLowerCase()=="select"){var n=i.options[i.selectedIndex].value;this.data.value=(n="true")?true:false}else{this.data.value=i.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}}});