service.search_wev8.js 18.3 KB
define("mService/search_html",function(){return'<div class="page-content wev-page-search">\t<div class="wev-header wev-ellipsis"></div>\t<div class="wev-content">\t\t<form disabledEnterSubmit class="wev-form"></form>\t</div>\t<div class="wev-footer">\t\t<div class="wev-btn-wrapper wev-btn-block">\t\t\t<div class="wev-btn wev-btn-reset"></div>\t\t\t<div class="wev-btn wev-btn-search"></div>\t\t</div>\t</div>\t<div class="wev-loading"></div></div>'}),define("mService/search",["mUtil","mService"],function(mUtil,mService){return{mounted:function($page,cfg){var getSearchParam=function(o){var v=[];return $(".wev-field",$page).each(function(){var e,t=$(this),a=t.attr("data-fieldType"),i=t.attr("data-fieldid"),l=(e="textarea"==a?$("textarea",t):$("input",t)).attr("name"),n="";if(1<e.length){var d=e.eq(0).val(),r=e.eq(1).val();""==d&&""==r||(n=d+","+r)}else n=e.val();var s={};s.fieldname=l,s.fieldvalue=n,s.fieldtype=a,s.fieldid=i,(o&&""!=n||!o)&&v.push(s)}),v},parseBrowser=function(a,e,t,i){var l=mUtil.getActionUrl("FBrowser",{action:"parseValues",values:i,typeid:e,identifie:t},this.pageid);mUtil.getJSON(l,function(e){var t=e.data;t&&setBrowserText(a,i,t)})},setBrowserText=function(e,t,a){var i=e.siblings(".text"),l=e.parent(),n=e.parent().parent(),d=e.siblings(".hiddenText"),r=e.parent().siblings(".wev-showall-btn");e.val(t).triggerHandler("change"),i.html(a),d.html(a),setTimeout(function(){i[0].clientWidth-64<d[0].scrollWidth?n.addClass("wev-expend"):(l.removeClass("showall"),n.removeClass("wev-expend"),r.removeClass("transform180"))},100)},initBrowser=function(e,f){e.each(function(){var d=$(this),r=d.closest(".wev-field"),e=d.parent(),t=d.parent().parent(),a=d.siblings(".text"),i=d.siblings(".hiddenText"),l=d.parent().siblings(".wev-clear-btn"),n=d.siblings(".wev-field-tip"),s=d.parent().siblings(".wev-showall-btn"),o=d.attr("value"),v=d.attr("bid"),c=d.attr("bname");parseBrowser(d,v,c,o),d.siblings("i.search, .text, .wev-field-tip").on("click",function(){var e="1"==d.attr("ismulti"),t=r.data("fieldid"),a=r.data("viewtype"),i="",l={selectedIds:d.val(),requestParams:{fieldid:t,viewtype:a},success:function(e,t){setBrowserText(d,e,t)}};if(1==v||17==v)$.extend(l,{browserType:v,isMulti:e}),i="hrmbrowser";else if(256==v||257==v)$.extend(l,{browserId:v,browserName:c,isMulti:e}),i="treebrowser";else if(-1<["4","57","167","168","164","194","169","170"].indexOf(v))i="deptbrowser",$.extend(l,{browserId:v,isMulti:e});else if(22==v)i="fnabrowser",$.extend(l,{browserId:v,isMulti:e});else{var n={};(getSearchParam()||[]).forEach(function(e){var t=e.fieldname.toLowerCase(),a=e.fieldtype,i=e.fieldvalue;"browser"!=a&&30<i.length&&(i=""),n["fieldname_"+t]=i}),$.extend(l,{browserId:v,browserName:c,relateParam:n,advancedSearch:f[c],isMulti:e}),f[c]&&$.extend(l,{timestamp:(new Date).valueOf()}),i="commonbrowser"}mService.show(i,l)}),d.change(function(){d.val()?(l.show(),n.hide()):(l.hide(),n.show())}),l.click(function(){d.val("").triggerHandler("change"),a.html(""),i.html(""),e.removeClass("showall"),t.removeClass("wev-expend"),s.removeClass("transform180")}),s.click(function(){t.hasClass("wev-expend")&&(e.toggleClass("showall"),$(this).toggleClass("transform180",e.hasClass("showall")))})})},defCfg={id:"",searchid:"",conditions:"",title:""};$.extend(defCfg,cfg),$(".wev-header",$page).html(defCfg.title);var datetimeTmpl=['<div class="wev-field wev-vertical wev-muti-field wev-quick-field" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}">','<div class="wev-field-label">${showname}</div>',"<div>",'<div class="wev-select-list">','<ul class="wev-clearfix">',"{@each quickItems as item}","{@if (!item.custom || item.isShow == 1) && quickItems.length > 1}",'<li {@if item.custom}data-custom="1" class="custom"{@/if} data-start="${item.start}" data-end="${item.end}">','<div class="wev-ellipsis">$${item.name}</div>',"</li>","{@/if}","{@/each}","</ul>","</div>",'<div class="custom-condition-wrapper" {@if quickItems && quickItems.length > 1}style="display: none;"{@/if}>','<div class="input-wrapper" style="width: 45%;">','<input type="text" style="display: none;" name="${fieldname}"/>','<span class="wev-field-view-span wev-field-view-tip" showname="#START#">#START#</span>','<div class="wev-clear-btn"></div>',"</div>",'<div style="width: 10%;color:#999;">~</div>','<div class="input-wrapper" style="width: 45%;">','<input type="text" style="display: none;" name="${fieldname}"/>','<span class="wev-field-view-span wev-field-view-tip" showname="#END#">#END#</span>','<div class="wev-clear-btn"></div>',"</div>","</div>","</div>","</div>"].join(""),templateHtml={select:['<div class="wev-field wev-vertical wev-quick-field wev-select-field open" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}" data-childfieldid="${childfieldid}" data-type="${type}">','<div class="wev-field-label toggle">${showname}</div>','<div class="wev-field-content">','<div class="wev-select-list">','<input type="hidden" name="${fieldname}"/>','<ul class="wev-clearfix">',"{@each data as item}",'<li data-value="${item.selectvalue}">','<div class="wev-ellipsis">$${item.selectname}</div>',"</li>","{@/each}","</ul>","</div>","</div>","</div>"].join(""),checkbox:['<div class="wev-field wev-vertical wev-quick-field" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}" data-type="${type}">','<div class="wev-field-label">${showname}</div>',"<div>",'<div class="wev-select-list">','<input type="hidden" name="${fieldname}"/>','<ul class="wev-clearfix">',"{@each data as item}",'<li data-value="${item.selectvalue}">','<div class="wev-ellipsis">$${item.selectname}</div>',"</li>","{@/each}","</ul>","</div>","</div>","</div>"].join(""),date:datetimeTmpl.replace(/START/g,"740").replace(/END/g,"741"),time:datetimeTmpl.replace(/START/g,"742").replace(/END/g,"743"),datetime:datetimeTmpl.replace(/START/g,"389164").replace(/END/g,"389165"),browser:['<div class="wev-field" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}" data-viewtype="${viewtype}">',"<div>${showname}</div>","<div>",'<a href="javascript:void(0);">','<div class="text"></div>','<div class="hiddenText"></div>','<div class="wev-field-tip">#386382#</div>','<i class="search"></i>','<input type="text" style="display: none;" name="${fieldname}" bid="${browserId}" value="${fieldvalue}"bname="${browserName}" ismulti="{@if isMulti}1{@else}0{@/if}"/>',"</a>",'<div class="wev-clear-btn"></div>','<div class="wev-showall-btn"></div>',"</div>","</div>"].join(""),check:['<div class="wev-field" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}">',"<div>${showname}</div>","<div>",'<input type="text" name="${fieldname}" style="display: none;"/>','<div class="wev-toggle">','<div class="wev-toggle-handle"></div>',"</div>","</div>","</div>"].join(""),textarea:['<div class="wev-field wev-vertical" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}">','<div class="wev-field-label">${showname}</div>',"<div>",'<textarea name="${fieldname}"></textarea>',"</div>","</div>"].join(""),text:['<div class="wev-field" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}">',"<div>${showname}</div>","<div>",'<div class="input-wrapper">','<input type="text" name="${fieldname}" placeholder="#83869#"/>','<div class="wev-clear-btn"></div>',"</div>","</div>","</div>"].join(""),number:['<div class="wev-field wev-vertical wev-muti-field wev-quick-field" data-fieldType="${fieldTypeFace}" data-fieldid="${fieldid}">','<div class="wev-field-label">${showname}</div>',"<div>",'<div class="wev-select-list">','<ul class="wev-clearfix">',"{@each quickItems as item}","{@if (!item.custom || item.isShow == 1) && quickItems.length > 1}",'<li {@if item.custom}data-custom="1" class="custom"{@/if} data-start="${item.start}" data-end="${item.end}">','<div class="wev-ellipsis">$${item.name}</div>',"</li>","{@/if}","{@/each}","</ul>","</div>",'<div class="custom-condition-wrapper" {@if quickItems && quickItems.length > 1}style="display: none;"{@/if}>','<div class="input-wrapper" style="width: 45%;">','<input type="number" name="${fieldname}"  onblur="if(this.value)this.value=Number(this.value)" placeholder="#383810#"/>','<div class="wev-clear-btn"></div>',"</div>",'<div style="width: 10%;color:#999;">~</div>','<div class="input-wrapper" style="width: 45%;">','<input type="number" name="${fieldname}"  onblur="if(this.value)this.value=Number(this.value)" placeholder="#383811#"/>','<div class="wev-clear-btn"></div>',"</div>","</div>","</div>","</div>"].join("")},labelCahe={83869:"请输入",386382:"请选择",740:"开始日期",741:"结束日期",742:"开始时间",743:"结束时间",389164:"开始日期时间",389165:"结束日期时间",383810:"大于等于",383811:"小于等于",384122:"重置",388113:"搜索",3408:"今天",4886:"明天",3409:"本周",3410:"本月",3412:"本季",3413:"本年",6204:"上午",6205:"下午",6206:"全天",3916:"自定义"},replaceTempi18nLabel=function(tmpl,labels){for(var labelIndex in labels)tmpl=tmpl.replace(eval("/#"+labelIndex+"#/g"),labels[labelIndex]);return tmpl},nowDate=new Date,nowDayOfWeek=nowDate.getDay(),nowDay=nowDate.getDate(),nowMonth=nowDate.getMonth(),nowYear=nowDate.getYear();nowYear+=nowYear<2e3?1900:0;var timeUtil={getMonthDays:function(e){var t=new Date(nowYear,e,1);return(new Date(nowYear,e+1,1)-t)/864e5},getYestodayDate:function(e){var t=new Date;return t.setTime(t.getTime()-864e5),mUtil.dateToStr(t,e)},getTomorrowDate:function(e){var t=new Date;return t.setTime(t.getTime()+864e5),mUtil.dateToStr(t,e)},getPrevWeekStartDate:function(e){var t=new Date(nowYear,nowMonth,nowDay-7-nowDayOfWeek);return mUtil.dateToStr(t,e)},getPrevWeekEndDate:function(e){var t=new Date(nowYear,nowMonth,nowDay-1-nowDayOfWeek);return mUtil.dateToStr(t,e)},getCurrWeekStartDate:function(e){var t=new Date(nowYear,nowMonth,nowDay-nowDayOfWeek);return mUtil.dateToStr(t,e)},getCurrWeekEndDate:function(e){var t=new Date(nowYear,nowMonth,nowDay+(6-nowDayOfWeek));return mUtil.dateToStr(t,e)},getNextWeekStartDate:function(e){var t=new Date(nowYear,nowMonth,nowDay+7-nowDayOfWeek);return mUtil.dateToStr(t,e)},getNextWeekEndDate:function(e){var t=new Date(nowYear,nowMonth,nowDay+(13-nowDayOfWeek));return mUtil.dateToStr(t,e)},getPrevMonthStartDate:function(e){var t=new Date(nowYear,nowMonth-1,1);return mUtil.dateToStr(t,e)},getPrevMonthEndDate:function(e){var t=new Date(nowYear,nowMonth-1,this.getMonthDays(nowMonth-1));return mUtil.dateToStr(t,e)},getCurrMonthStartDate:function(e){var t=new Date(nowYear,nowMonth,1);return mUtil.dateToStr(t,e)},getCurrMonthEndDate:function(e){var t=new Date(nowYear,nowMonth,this.getMonthDays(nowMonth));return mUtil.dateToStr(t,e)},getCurrSeasonStartMonth:function(){var e=0;return nowMonth<3&&(e=0),2<nowMonth&&nowMonth<6&&(e=3),5<nowMonth&&nowMonth<9&&(e=6),8<nowMonth&&(e=9),e},getCurrSeasonStartDate:function(e){var t=new Date(nowYear,this.getCurrSeasonStartMonth(),1);return mUtil.dateToStr(t,e)},getCurrSeasonEndDate:function(e){var t=this.getCurrSeasonStartMonth()+2,a=new Date(nowYear,t,this.getMonthDays(t));return mUtil.dateToStr(a,e)},getPrevYearStartDate:function(e){var t=new Date(nowYear-1,0,1);return mUtil.dateToStr(t,e)},getPrevYearEndDate:function(e){var t=new Date(nowYear-1,11,this.getMonthDays(11));return mUtil.dateToStr(t,e)},getCurrYearStartDate:function(e){var t=new Date(nowYear,0,1);return mUtil.dateToStr(t,e)},getCurrYearEndDate:function(e){var t=new Date(nowYear,11,this.getMonthDays(11));return mUtil.dateToStr(t,e)}},getDateQuickItems=function(e,t){t=t||[];var a="yyyy-MM-dd",i=e?" 00:00:00":"",l=e?" 23:59:59":"",n={YESTODAY:{start:timeUtil.getYestodayDate(a)+i,end:timeUtil.getYestodayDate(a)+l},TODAY:{start:mUtil.getCurrDate()+i,end:mUtil.getCurrDate()+l},TOMMOROW:{start:timeUtil.getTomorrowDate(a)+i,end:timeUtil.getTomorrowDate(a)+l},PREVWEEK:{start:timeUtil.getPrevWeekStartDate(a)+i,end:timeUtil.getPrevWeekEndDate(a)+l},CURRWEEK:{start:timeUtil.getCurrWeekStartDate(a)+i,end:timeUtil.getCurrWeekEndDate(a)+l},NEXTWEEK:{start:timeUtil.getNextWeekStartDate(a)+i,end:timeUtil.getNextWeekEndDate(a)+l},CURRMONTH:{start:timeUtil.getCurrMonthStartDate(a)+i,end:timeUtil.getCurrMonthEndDate(a)+l},CURRSEASON:{start:timeUtil.getCurrSeasonStartDate(a)+i,end:timeUtil.getCurrSeasonEndDate(a)+l},CURRYEAR:{start:timeUtil.getCurrYearStartDate(a)+i,end:timeUtil.getCurrYearEndDate(a)+l},PREVMONTH:{start:timeUtil.getPrevMonthStartDate(a)+i,end:timeUtil.getPrevMonthEndDate(a)+l},PREVYEAR:{start:timeUtil.getPrevYearStartDate(a)+i,end:timeUtil.getPrevYearEndDate(a)+l}};return t.map(function(e){var t=n[e.value];return!e.custom&&t&&(e=$.extend(e,t)),e})},getDefaultDateQuickItems=function(){return[{name:labelCahe[3408],value:"TODAY"},{name:labelCahe[4886],value:"TOMMOROW"},{name:labelCahe[3409],value:"CURRWEEK"},{name:labelCahe[3410],value:"CURRMONTH"},{name:labelCahe[3412],value:"CURRSEASON"},{name:labelCahe[3413],value:"CURRYEAR"}]},getTimeQuickItems=function(e){var a={AM:{start:"00:00",end:"11:59"},PM:{start:"12:00",end:"23:59"},ALL:{start:"00:00",end:"23:59"}};return(e=e||[]).map(function(e){var t=a[e.value];return!e.custom&&t&&(e=$.extend(e,t)),e})},getDefaultTimeQuickItems=function(){return[{name:labelCahe[6204],value:"AM"},{name:labelCahe[6205],value:"PM"},{name:labelCahe[6206],value:"ALL"}]},renderData=function(e,t){$(".wev-loading",$page).hide();for(var a="",i={},l=0;l<e.length;l++){var n=e[l],d=n.htmltype,r=n.fieldTypeFace;if("6"!=d&&"7"!=d){var s;s="thousandnumb"==r?templateHtml.number:templateHtml[r];var o=n.quickItems||[];if("date"==r?(o.length||(o=getDefaultDateQuickItems()),o=getDateQuickItems(!1,o)):"datetime"==r?(o.length||(o=getDefaultDateQuickItems()),o=getDateQuickItems(!0,o)):"time"==r&&(o.length||(o=getDefaultTimeQuickItems()),o=getTimeQuickItems(o)),n.quickItems=o,("number"==r||"date"==r||"datetime"==r||"time"==r)&&n.quickItems.length){var v=n.quickItems.filter(function(e){return e.custom})[0];v||(v={custom:!0,isShow:1,name:labelCahe[3916]},n.quickItems.push(v))}s&&(a+=mUtil.parseTemplate(replaceTempi18nLabel(s,t),n),"check"==n.fieldTypeFace&&require(["css!FCheck_css"]),n.advancedSearch&&(i[n.browserName]=n.advancedSearch))}}var g=$("form.wev-form",$page);g.html(a),Mobile_NS.datePicker($(".wev-field[data-fieldType='date'] input",$page),"date"),Mobile_NS.datePicker($(".wev-field[data-fieldType='time'] input",$page),"time"),Mobile_NS.datePicker($(".wev-field[data-fieldType='datetime'] input",$page),"datetime"),Mobile_NS.toggle($(".wev-field[data-fieldType='check'] input",$page)),initBrowser($(".wev-field[data-fieldType='browser'] input",$page),i),$(".wev-btn-reset",$page).html(t[384122]).click(function(){g[0].reset(),$("input",g).val("").triggerHandler("change"),$(".wev-field select",g).triggerHandler("change"),$(".wev-field .text, .wev-field .hiddenText",$page).html("").parent().removeClass("showall"),$(".wev-expend",$page).removeClass("wev-expend"),$(".wev-showall-btn",$page).removeClass("transform180"),$(".wev-field .wev-field-view-span",$page).each(function(){var e=$(this);e.html(e.attr("showname")).addClass("wev-field-view-tip")}),g.find(".wev-field li.checked").each(function(){var e=$(this);e.removeClass("checked"),e.hasClass("custom")&&e.closest(".wev-field").find(".custom-condition-wrapper").hide()})}),$(".wev-btn-search",$page).html(t[388113]).click(function(){var a=getSearchParam(!0)||[];defCfg.browser?require(["mService"],function(e){e.getService("commonbrowser").load().then(function(e,t){t.refresh(a,defCfg.fromPageId),Mobile_NS.backPage()})}):Mobile_NS.refreshSpecifiedList(defCfg.pageid,defCfg.id,"_asArray="+encodeURIComponent(JSON.stringify(a))).then(function(){Mobile_NS.backPage()})});var b=function(e,t){e.val(t).closest(".input-wrapper").toggleClass("wev-has-value",!!t);var a=e.siblings(".wev-field-view-span");a.length&&a[t?"removeClass":"addClass"]("wev-field-view-tip").html(t||a.attr("showname"))};g.find(".wev-select-list").on("click","li",function(){var e=$(this),t=e.parents(".wev-field"),a=e.parents(".wev-select-list"),i=e.hasClass("checked"),l=t.data("type"),n=e.data("custom"),d=t.data("fieldtype");(3==l||1==l||"number"===d||"date"===d||"datetime"===d||"time"===d)&&e.siblings("li").removeClass("checked"),e.toggleClass("checked",!i);var r=t.find(".custom-condition-wrapper");if(r.hide(),n&&r[i?"hide":"show"](),t.hasClass("wev-muti-field")){var s=e.attr("data-start"),o=e.attr("data-end"),v=t.find("input");if(!e.hasClass("checked")){var c=v[0]&&v.eq(0).val()||"",f=v[1]&&v.eq(1).val()||"";c==s&&f==o&&(o=s="")}v[0]&&b(v.eq(0),s),v[1]&&b(v.eq(1),o)}else{var m=[];if(t.find(".checked").each(function(){m.push($(this).attr("data-value"))}),$("input",a).val(m.join(",")),"select"===d&&1==l){var w=t.attr("data-childfieldid");if(0<Number(w)){var u=t.attr("data-fieldid"),h=g.find(".wev-field[data-fieldid='"+w+"'] .wev-select-list>ul"),p=mUtil.getActionUrl("service.MobileCommon",{action:"selectChange"});mUtil.getJSON(p,{fieldid:u,childfieldid:w,selectvalue:m.join(",")},function(e){var t=e.datas,a="";t&&t.length?$(t).each(function(e,t){a+='<li data-value="'+t.value+'"><div class="wev-ellipsis">'+t.text+"</div></li>"}):a+='<li style="display:none;" data-value=""><div class="wev-ellipsis"></div></li>',h.html(a).find("li").eq(0).click()})}}}}),g.find(".wev-field.wev-select-field .wev-field-label").on("click",function(){$(this).parent().toggleClass("open")}),g.find("input").on("input change",function(){var e=$(this),t=e.val();e.closest(".input-wrapper").toggleClass("wev-has-value",!!t),$(this).closest(".wev-field").find(".wev-select-list>ul>li.checked:not(.custom)").removeClass("checked")}),g.find(".wev-clear-btn").on("click",function(){$(this).closest(".input-wrapper").removeClass("wev-has-value").find("input").val("").trigger("change")})},fieldMapJson={},fieldMeta=defCfg.fieldsMeta;if(defCfg.customSearch)for(var customSearch=eval(decodeURIComponent(defCfg.customSearch)),j=0;j<customSearch.length;j++)fieldMapJson[customSearch[j].fieldid]=customSearch[j].fieldvalue;if(fieldMeta)for(var i=0;i<fieldMeta.length;i++)fieldMapJson.hasOwnProperty(fieldMeta[i].fieldid)&&(fieldMeta[i].fieldvalue=fieldMapJson[fieldMeta[i].fieldid]);mUtil.getMultiLabel(labelCahe,function(a){if(defCfg.browser)renderData(defCfg.fieldsMeta,a);else{var l=$.parseJSON(defCfg.conditions)||[],e=l.map(function(e){return{fieldid:e.fieldid,showname:e.showname}}),t=mUtil.jionActionUrl("com.api.mobilemode.web.mobile.service.MobileCommonAction","action=getSearchFieldMeta"),i={id:defCfg.id,searchid:defCfg.searchid,appid:window.__meta__&&window.__meta__.appid||"",conditions:JSON.stringify(e)};mUtil.ajax(t,i,function(e){var t=e.datas||[];t.forEach(function(i,e){l.every(function(e,t){var a=e.fieldid==i.fieldid;return a&&$.extend(i,e),!a})}),renderData(t,a)},{type:"POST",dataType:"json"})}})}}});