| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722 |
- "use strict";
- //{(function(){objectPicker(
- //"ffry",
- //"null",
- //"testRy",
- //"true",
- //"env.rycx",
- //"null",
- //"{'input':'true','visible':'xm','invisible':'ryid','name':'ffry','codebook':'env.rycx','object':'testRy'}",
- //"/service?token=7548c1572b6149cfb1e03f7cc4675cc2",
- //"null",
- //"null");})()}
- var wd=window.wd;
- if (!wd) {
- var wd = {};
- }
- if(!wd.edit){
- wd.edit={};
- }
- if(!wd.edit.objectPicker){
- wd.edit.objectPicker={};
- }
- if(!wd.edit.objectPicker.instance){
- wd.edit.objectPicker.instance={};
- }
- if(!wd.edit.objectPicker.activeInstance){
- wd.edit.objectPicker.activeInstance={};
- }
- if(!wd.edit.objectPicker.tipWinList){
- wd.edit.objectPicker.tipWinList=[];
- //绑定清除元素时间
- $(window).unload(function(){
- if(wd.edit.objectPicker.tipWinList.length==0)return;
- var removeId="";
- $(wd.edit.objectPicker.tipWinList).each(function(index,ele){
- removeId+="#"+ele+",";
- })
- removeId=removeId.substring(0,removeId.length-1);
- wd.topWindow.window.$(removeId).remove();
- })
-
- }
- if(!wd.edit.objectPicker.getInstance){
- wd.edit.objectPicker.getInstance=function(name){
- return wd.edit.objectPicker.instance[name];
- };
- }
- if(!wd.topWindow){
- wd.topWindow=window;
- }
- if(!wd.edit.objectPicker.setValue)
- wd.edit.objectPicker.setValue=function(objectID){
- // console.log(objectID);
- wd.topWindow.objectPickerObject.initValueWithOption(objectID)
- wd.topWindow.objectPickerObject=null;
- wd.display.closeDialog();
- }
- if(!wd.edit.objectPicker.getDisplayValue)
- wd.edit.objectPicker.getDisplayValue=function(dataElement){
- return dataElement.objectPickerBody.getElementValue();
- }
- if(!wd.edit.objectPicker.isObjectPicker)
- wd.edit.objectPicker.isObjectPicker=function(dataElement){
- if(!dataElement)return false
- return dataElement.objectPickerBody?true:false;
- }
- if(!wd.edit.objectPicker.bodyClick){
- wd.edit.objectPicker.bodyClick=function(e){
- for(var key in wd.edit.objectPicker.activeInstance){
- var aa=wd.edit.objectPicker.activeInstance[key];
- if(!aa)continue;
- aa.elementBlurFunction(e);
- }
-
- }
- $("body").on("click",window.wd.edit.objectPicker.bodyClick);
- $(".content-div,.list-div").scroll(wd.edit.objectPicker.bodyClick);
-
- $(function(){
- //app用
- setTimeout(function(){
- $("#app").on("click",window.wd.edit.objectPicker.bodyClick);
- $("#app").scroll(wd.edit.objectPicker.bodyClick);
- },3000)
- })
- }
- if(!wd.edit.objectPicker.hideAllOptions){
- wd.edit.objectPicker.hideAllOptions=function(e){
- for(var key in wd.edit.objectPicker.activeInstance){
- var aa=wd.edit.objectPicker.activeInstance[key];
- if(!aa)continue;
- aa.hiddenOptions(e);
- }
-
- }
- }
- if(typeof wd.edit.objectPicker.initScrollId =="undefined")
- wd.edit.objectPicker.initScrollId=null;
-
- if(typeof wd.edit.objectPicker.addButtonClickName =="undefined")
- wd.edit.objectPicker.addButtonClickName=null;
-
- if(!wd.edit.cascading)
- wd.edit.cascading={}
- if(!wd.edit.cascading.instance)
- wd.edit.cascading.instance={}
- if(!wd.edit.cascading.display)
- wd.edit.cascading.display=function(data){
- var data=eval("("+data+")");
- // console.log(data);
- for(var key in data){
- $("[name="+key+"]").hide().after("<span>"+data[key]+"</span>")
-
- }
- }
- if(!wd.edit.cascading.getInstance)
- wd.edit.cascading.getInstance=function(name){
- //console.log("cascading "+name);
- var s=wd.edit.cascading.instance[name];
- if(!s)return ;
- var casFunction= function(){
- this.param={
- cascadingInputsRule:null,
- cascadingLevel:null,
- cascadingInputsName:null,
- cascadingInputsElement:null
- };
-
- // this.extension={
- // onchange:null,
- // getValue:null,
- // getDisplayValue:null,
- // getDisplayElement:null,
- // validation:null,
- // passValidation:null,
- // failValidation:null,
- // getName:null,
- // refreshOption:null,
- // initValue:null,
- // getOptionsSize:null
- // }
-
- this.init=function(param){
- this.param=param;
- return this;
- }
- this.setValue=function(val){
- //console.log("cascading value :"+val)
- val+="";
- var values=[]
- for(var i=0;i<this.param.cascadingLevel.length;i++){
- var level=(i+1);
- var v="";
- //112233
- for(var j=0;j<this.param.cascadingInputsRule.length;j++){
- var rulNum=parseInt( this.param.cascadingInputsRule.substr(j,1));
- if(level>=rulNum){
- v+=val.substr(j,1);
- }else{
- v+="0";
- }
- }
- values.push(v);
- }
-
- for(var i=0;i<this.param.cascadingLevel.length;i++){
- var cas=this.param.cascadingLevel[i];
-
- wd.edit.objectPicker.getInstance(cas).refreshElementDisplay({value:values[i]});
-
- // wd.edit.objectPicker.getInstance(cas).initValue(values[i],{refreshCascadingOption:false});
- // if(i==(this.param.cascadingLevel.length-1))
- // wd.edit.objectPicker.getInstance(cas).refreshCascadingInputsValue();
- }
-
-
-
- // console.log(values);
- return values;
- }
- }
-
- return new casFunction().init(s);
- }
- if(!wd.edit.objectPicker.showHelp){
- wd.edit.objectPicker.showHelpid=null;
- var dialog=wd.topWindow.$("#objectpicker_helptip");
-
- if(dialog.length==0){
- dialog=wd.topWindow.$("<div id=\"objectpicker_helptip\" class=\"flashMsg-div\" style=\"position: absolute;z-index: 1014;opacity:1;\" class=\"flashMsg-div\">"
- // +"<style>.help-size-l{width: 700px;}.help-size-m{width: 500px;}.help-size-s{width: 300px;}</style>"
- // + ((data.helpSize.toLowerCase() == "l") ? "" : "<div class=\"triangle smallHelp-div-triangle\"><span></span></div>")
- +"<div class=\"arrowup flashMsg-up\"></div>"
- +"<div class=\"arrowdown flashMsg-down\"></div>"
- +"<div class=\"flashMsg-title\">"
- +" <div title=\"帮助标题\" class=\"title\"></div>"
- // +" <div title=\"复制代码\" class=\"copy invertIcon-key\" ></div>"
- +" <div title=\"已锁定\" class=\"pin invertIcon-unpin\" ></div>"
- +" <div title=\"关闭\" class=\"close invertIcon-close\" ></div>"
- +"</div>"
- +"<div class=\"content\"></div>"
- +"</div>"
- ).appendTo("body");
-
- dialog.on("click",".pin",function(){
- dialog.find(".pin").hide();
- dialog.find(".close").show();
- clearTimeout(wd.edit.objectPicker.showHelpid);
- })
-
- dialog.on("click",".close",function(){
- wd.edit.objectPicker.hideHelp();
- })
-
- }
-
-
- wd.edit.objectPicker.showHelp=function(element,data){
-
- dialog.find(".content").html(data.content);
- dialog.find(".pin").show();
- dialog.find(".close").hide();
- var bounding=element.getBoundingClientRect();
- var left=bounding.left+bounding.width;
- var top=bounding.top+bounding.height;
- dialog.show();
-
-
- if(top+dialog.outerHeight()>wd.topWindow.innerHeight){
- top=bounding.top-dialog.outerHeight();
- dialog.find(".arrowup").hide();
- dialog.find(".arrowdown").show();
- }else{
- dialog.find(".arrowup").show();
- dialog.find(".arrowdown").hide();
- }
- dialog.css({left:left+"px",top:top+"px"});
-
- clearTimeout(wd.edit.objectPicker.showHelpid);
- wd.edit.objectPicker.showHelpid=setTimeout(function(){
- wd.edit.objectPicker.hideHelp();
- },3000);
-
-
- }
-
- wd.edit.objectPicker.hideHelp=function(){
- dialog.hide();
- }
-
-
-
-
- }
- //根据查找id或name查找元素,可传入多个参数一起查找, 返回找到的第一个
- if(!wd.edit.objectPicker.getElementByIdOrByName){
- wd.edit.objectPicker.getElementByIdOrByName=function(val){
- var result;
- for(var a=0;a<arguments.length ;a++){
- //name属性优先,再到id
-
- if(!result){
- result=document.querySelector("[id='objectPicker_"+arguments[a]+"']")||document.querySelector("[name='"+arguments[a]+"']")
- }
- }
- return result;
- }
- }
- wd.edit.objectPicker.initMobileSelectOption = function (id) {
- wd.topWindow.$("#" + id).remove();
- var ele = $("<div id=\"" + id + "\" class=\"mobilePopup-div hLine-highlightBlod\" >"
- + "<div class=\"scrollbar\" style=\"max-height:250px;overflow-x:auto;padding-right:16px;\"></div>"
- + "</div>")[0];
- wd.topWindow.document.body.appendChild(ele);
- return ele
- }
- wd.edit.objectPicker.buildMobileSelectOption = function (dom, datalist, valueKey, nameKey, selectValue, hasNullOption) {
- var ul = dom.childNodes[0];
-
- var st=''
-
- if (datalist && datalist.length > 0) {
- var listr = hasNullOption ? '<div class=\"mobilePopupList\" style=\"'+st+'\" status="noitem"> </div>' : '';
- for (var i = 0; i < datalist.length; i++) {
- var name = datalist[i][nameKey];
- var value = datalist[i][valueKey];
- listr += '<div class=\"' + (value == selectValue ? ' selected ' : '') + 'mobilePopupList\" style=\"'+st+'\" status="people" value="' + value + '"' + 'index="' + i + '">' + name + '</div>';
- }
- ul.innerHTML = listr;
- } else {
- ul.innerHTML = hasNullOption ? '<div class=\"mobilePopupList\" style=\"'+st+'\" status="noitem">找不到相关项</div>' : '';
- }
- }
- if(!wd.edit.objectPicker.body)
- wd.edit.objectPicker.body=function(){
- var THIS=this;
- this.service=null;
-
- this.IS_MOBILE=false;
-
- //最小输入触发长度,大于等于
- this.MINIMUM_INPUT_SIZE=1;
- //是否每个输入都要查询
- this.REAL_TIME_SEARCH=true;
-
-
- //输入停止后触发搜索延迟时间,毫秒
- this.SEARCH_DELAY_TIME=1000;
- //延迟显示详细信息时间 毫秒
- this.SHOW_DELAY_TIME=1000;
-
- this.VIEW_OBJECT_NAME=null;
-
- this.MODIFYABLE=true;
-
- //搜索服务,显示服务
- this.searchService=null;
- this.previewService=null;
-
- this.name=null;//种子
-
- //唯一标识
- this.ID=null;
-
- this.initparam=null//初始化参数
-
- this.OTHER_PARAM={}; //其他参数
-
-
- this.element=null;
- this.dataElement=null;
- this.playElement=null;
-
- //表面要显示的数据
- this.face_name=null;
- //背后隐藏的数据
- this.back_name=null;
- this.helptip_name=null;
- this.tipWin=null;
- this.tipWin_option=null;
- this.tipWin_button=null;
- this.tipWin_detail=null;
-
-
- this.selectOption
-
- // 搜索结果
- this.searchResult=null;
- this.staticResult=null;
-
- this.firstClick=true;
- //已经输入过
- this.haveComfirm=true;
-
- // ajax请求时的参数
- this.CONNECT_PARAM=null;
- this.QUERY_PARAM={};
- this.wins=null;
-
- //弹窗选择器
- this.dialogFinderButton=null
-
- this.input=false;
-
- this.cascadingLevel=null;
- this.cascadingInputsRule=null;
- this.cascadingInputsName=null;
- this.cascadingInputsElement=null;
-
- this.addButton=null;
- this.WINDOWS=null;
-
- this.instantSearch=null;
- this.dropdown=null;
-
- // this.$objectPickerNameDiv=$("<span class=\"objectpicker-nameDiv-value\"></span>"+"<span class=\"objectpicker-nameDiv-placeholder form-insideLabel\"></span>")
- this.placeholder=null;
-
-
-
-
- this.GrowHeightInstance=null;
- this.filterField=null;
- this.getCascadingInputsValue=function(){
- if(!this.cascadingInputsElement)return
- return this.cascadingInputsElement.value
- }
-
- this.setCascadingInputsValue=function(){
- if(!this.cascadingInputsElement)return
- //112233
- var rule=this.cascadingInputsRule+"";
-
- var vs=[];
- for(var i=0;i<this.cascadingLevel.length;i++){
- var instance=wd.edit.objectPicker.getInstance(this.cascadingLevel[i]);
- var thisValue=instance.getValue()
- vs.push(thisValue);
- }
-
- var result="";
- for(var i=0;i<rule.length;i++){
- var num=parseInt(rule.substr(i,1))-1;
- if(num<0||num>(rule.length-1)||!vs[num]){
- result+="0"
- }else{
- result+=vs[num].substr(i,1);
- }
-
-
- }
-
-
- if(result.replace(/0+/,"").length==0)
- result="";
-
-
- // if(!v){
- //
- // var preObjectPickerName=this.getPreCascadingName();
- // var preObjectPicker=wd.edit.objectPicker.getInstance(preObjectPickerName);
- //
- // if(preObjectPicker){
- // v=preObjectPicker.getValue();
- // }else{
- // v=""
- // }
- // }
- //
- this.cascadingInputsElement.value=result;
-
- try{
- //校验器
- // $(this.cascadingInputsElement).trigger("blur").trigger("focus").trigger("keyup");
- $(this.cascadingInputsElement).trigger("keyup")
- }catch(e){
- console.log(e);
- }
-
- }
-
-
-
- //外部调用
- this.extension={
- onchange:null,
- getValue:null,
- getDisplayValue:null,
- getDisplayElement:null,
- validation:null,
- passValidation:null,
- failValidation:null,
- getName:null,
- refreshOption:null,
- initValue:null,
- getOptionsSize:null,
- getOptions:null,
- refreshCascadingInputsValue:null,
- refreshElementDisplay:null,
- setwdCloseWindowParamData:null,
- setQueryParam:null,
- copyObjectPicker:null,
- focus:null,
- modify:null
- }
-
- this.extension.onchange=null;
- this.extension.getValue=function getDataElementValue(){
- return THIS.getDataElementValue();
- }
- this.extension.getDisplayValue=function(){
- return THIS.getElementValue();
- }
- this.extension.passValidation=function(){
- return THIS.passValidation()
- }
- this.extension.failValidation=function(){
- return THIS.failValidation()
- }
- this.extension.getName=function(){
- return THIS.name;
- }
-
- this.extension.refreshOption=function(args){
- var setting=$.extend({},{refreshCascadingOption:true,refreshCascadingName:""},args);
- THIS.receiveData({async:true,callback:function(){
- THIS.showOptions();
- THIS.buildOptions();
- THIS.setDataElementValue("");
- if(!THIS.isCascading()){
- THIS.initElementValue();
- THIS.showOptions();
- }else{
-
- //THIS.initElementValue();
- // THIS.confirmOption(true);
- THIS.setDataElementValue("");
- THIS.setElementValue("");
- THIS.setCascadingInputsValue(THIS.getDataElementValue());
- THIS.hiddenOptions();
- THIS.hiddenDetail();
- THIS.changeFinish(setting);
-
- if(THIS.getOptionsSize()>0&&setting.refreshCascadingName==THIS.name){
-
- THIS.showOptions();
- }
- }
- }});
-
-
- }
- this.extension.initValue=function(v,args){
- THIS.setDataElementValue(v);
- THIS.initElementValue();
- THIS.changeFinish(args);
- }
-
-
- this.extension.getDisplayElement=function(){
- return THIS.getElement();
- }
-
-
- this.extension.getOptionsSize=function(){
- return THIS.getAllData().length;
- }
- this.extension.refreshCascadingInputsValue=function(){
- return THIS.setCascadingInputsValue();
- }
-
-
- this.extension.refreshElementDisplay=function(args){
- if(args.value)
- THIS.setDataElementValue(args.value);
- THIS.initElementDisplay(args);
- //THIS.changeFinish(args);
- }
- this.extension.setwdCloseWindowParamData=function(datas){
- THIS.setwdCloseWindowParamData(datas);
- THIS.WINDOWS.wd.edit.objectPicker.addButtonClickName=null;
- }
- this.extension.setQueryParam=function(name,v){
- console.log(THIS.QUERY_PARAM);
- THIS.QUERY_PARAM[name]=v;
- }
-
- this.extension.copyObjectPicker=function(name){
- //不支持级联
- var newinitparam=$.extend({},THIS.initparam,{name:name});
- new wd.edit.objectPicker.body().init(newinitparam);
- }
-
- this.extension.focus=function(){
- THIS.elementInputFunction();
- }
- this.extension.modify=function(canModify){
- THIS.MODIFYABLE=canModify?true:false;
- THIS.$objectPickerSelectTriangle.css("opacity",canModify?1:0);
-
- }
-
- this.extension.getOptions=function(){
- var setting={refreshCascadingOption:false};
- THIS.receiveData({async:false,callback:function(){
-
-
- }});
- return THIS.getAllData();
-
- }
-
-
- //初始化
- this.init=function(initparam){
- this.name=initparam.name;
- this.input=initparam.input;
- this.IS_MOBILE=initparam.isMobile
- var name=this.name;
- var placeholder="";
-
- //目标输入元素
- var elem,hiddenElem,playElem,$elem,$elem_mobile;
-
- hiddenElem=wd.edit.objectPicker.getElementByIdOrByName(name,name+"m",name+"id",name+"Id",name+"ID");
- playElem=wd.edit.objectPicker.getElementByIdOrByName(name+"Play");
-
- $elem=$("<div name='"+name+"NameDiv' id=\"objectPickergrowheight"+name+"\" class=\"objectPickerNameDiv-"+name+" input-div\"></div>");
- $elem_mobile=$("<div class=\"mobileInput-div input-s\" name='"+name+"NameDiv' ><textarea class=\"form-text smallScrollbar border-textarea\" style=\"resize:none\"></textarea></div>");
-
- elem=wd.edit.objectPicker.getElementByIdOrByName(name+"name",name+"Name",name+"NAME");
- var cssElement;
- cssElement=elem||hiddenElem;
-
- if(cssElement.getAttribute("placeholder")){
- placeholder=cssElement.getAttribute("placeholder");
- $elem.attr("placeholder",placeholder);
- $elem_mobile.attr("placeholder",placeholder);
- }
- $elem.attr("style",cssElement.getAttribute("style"));
- $elem_mobile.attr("style",cssElement.getAttribute("style"));
- if(playElem){
- playElem.setAttribute("style",cssElement.getAttribute("style"));
- playElem.style.display="inline-block";
- }
- if(cssElement.getAttribute("width")){
- $elem.css({width:cssElement.getAttribute("width")});
- $elem_mobile.css({width:cssElement.getAttribute("width")});
- }
-
- this.placeholder=placeholder;
- hiddenElem.setAttribute("type","hidden");
- if(elem){
- $(elem).remove();
- }
-
-
- var GrowHeightInstance;
-
- if(this.IS_MOBILE){
- $(hiddenElem).before($elem_mobile);
- var $elem_mobile_textarea=$($elem_mobile).find("textarea");
- this.GrowHeightInstance={val:function(v){
- if(typeof v=="undefined"){
- return $elem_mobile_textarea.val()||'';
- }
- $elem_mobile_textarea.val(v);
- }};
-
- if(!this.input){
- $elem_mobile_textarea.attr("disabled",true);
- }
-
-
- elem=$elem_mobile[0];
- }else{
-
- $(hiddenElem).before($elem);
- var thisid=$elem.attr("id");
-
- try{
- if(!window.getGrowHeight||!wd.edit.initGrowHigh){
- $("head").append("<script type=\"text/javascript\" src=\"/ss/js/edit.js\"></script>")
- $("head").append("<script type=\"text/javascript\" src=\"/ss/js/growHeight.js\"></script>")
- }
- if(window.growHeightList&&window.growHeightList[thisid]){
- $(window.growHeightList[thisid].container.parentNode).remove();
- delete window.growHeightList[thisid];
- }
- wd.edit.initGrowHigh(thisid,'null',{});
- GrowHeightInstance=window.growHeightList[thisid];
- elem=GrowHeightInstance.getInputElement().parentNode;
- if(!this.input){
- GrowHeightInstance.getInputElement().setAttribute("disabled",true);
- }
- this.GrowHeightInstance=GrowHeightInstance;
- }catch(e){
- console.log(e);
- return;
- }
- }
-
- // target:elem,
- // datatarget:hiddenElem,
- // playElem:playElem,
- //////this.element=initparam.target;
- //////this.dataElement=initparam.datatarget
- //////this.playElement=initparam.playElem;
- this.element=elem;
- this.dataElement=hiddenElem;
- this.playElement=playElem
-
-
-
-
-
-
-
- ///////////////////////////////////////
- if(!wd.topWindow)wd.topWindow=top
- this.WINDOWS=window;
-
- // console.log(initparam);
- this.wins=window;
- /////this.GrowHeightInstance=initparam.GrowHeightInstance;
- // this.ID=initparam.ID;
- this.initparam=initparam
- ////this.element=initparam.target;
- ////this.dataElement=initparam.datatarget
- ////this.playElement=initparam.playElem;
-
- this.element.objectPickerBody=this;
- this.dataElement.objectPickerBody=this;
-
- this.elementValue=null
- this.dataElementValue=null
-
- this.searchService=initparam.search
- this.previewService=initparam.preview
- this.face_name=initparam.facename;
- this.back_name=initparam.backname;
- this.helptip_name=initparam.helptipname;
- // this.tipWin_button=initparam.okbutton//按钮
- this.VIEW_OBJECT_NAME=initparam.viewobject;
-
- //eval+stringify复制这个对象
- this.OTHER_PARAM=initparam.otherparam;
-
- ////this.placeholder=initparam.placeholder;
- this.addButton=initparam.addButton;
- this.instantSearch=initparam.instantSearch;
- this.dropdown=initparam.dropdown;
- this.filterField=initparam.filterField;
-
-
- var p=initparam.connectparam;
-
-
- this.CONNECT_PARAM=JSON.stringify(initparam.connectparam);
- this.cascadingLevel=initparam.cascadingLevel;
- this.cascadingInputsRule=initparam.cascadingInputsRule;
- this.cascadingInputsName=initparam.cascadingInputsName;
- if(this.cascadingInputsName){
- this.cascadingInputsElement=document.querySelector("[name="+this.cascadingInputsName+"]");
- if(this.cascadingInputsElement){
- wd.edit.cascading.instance[this.cascadingInputsName]={}
- wd.edit.cascading.instance[this.cascadingInputsName]["cascadingInputsRule"]=this.cascadingInputsRule;
- wd.edit.cascading.instance[this.cascadingInputsName]["cascadingLevel"]=this.cascadingLevel;
- wd.edit.cascading.instance[this.cascadingInputsName]["cascadingInputsName"]=this.cascadingInputsName;
- wd.edit.cascading.instance[this.cascadingInputsName]["cascadingInputsElement"]=this.cascadingInputsName;
- }
- }
-
-
- // this.helptip_name="meow";
- initparam.helptipData=initparam.helptipData||{};
- //初始化转换数据
- if(initparam.codebookData){ // {1: '男性', 2: '女性'}。Lin
- this.searchResult=[];
- for(var i=0;i<initparam.codebookData.length;i++){
- for(var key in initparam.codebookData[i]){
- var aa={};
- aa[this.face_name]=initparam.codebookData[i][key]; // "mc"。Lin
- aa[this.back_name]=key; // "xbm"。Lin
-
- // initparam.helptipData[key]="咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕";
- if(this.helptip_name&&initparam.helptipData&&initparam.helptipData[key]){
- aa[this.helptip_name]=initparam.helptipData[key];
- }
-
-
- this.searchResult.push(aa); // {mc: '男性', xbm: '1'}, {mc: '女性', xbm: '2'}。Lin
- }
- }
-
- }
-
-
-
- this.createTipWin();
-
-
- this.hiddenOptions();
- this.hiddenDetail();
-
-
-
- this.dialogFinderButton=wd.edit.objectPicker.getElementByIdOrByName(this.name+"selector",this.name+"Selector",this.name+"SELECTOR");
-
-
- this.initdialogFinderButton();
- var THIS=this;
-
- if(this.playElement)
- this.element.style.display="none";
-
-
- // if(!this.input){
- // $(this.objectPickerSelectTriangle).appendTo(this.element);
- // $("<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABeSURBVDhPtcvRCcAgEAPQ7r+Bo7mCS1joRdFQT8UY8iHm3pPHCTHhNcgE+/4ONun7C7iVVgx91JhYLeYmUkyAiqMSHabT3+L0iwjTkVMADaZ5WlPHmIbFHmP62mhML1ikLSQ2ZIrUAAAAAElFTkSuQmCC'></img>").insertAfter(this.element);
- // console.log(this.element);
- // }
-
-
- // console.log(this.extension);
- wd.edit.objectPicker.instance[this.name]=this.extension
-
-
-
-
- this.initElementDisplay({isInit:true,triggerChange:false});
-
- // this.initElementValue();//初始化姓名
- return this;
- }
-
-
- this.initdialogFinderButton=function(){
- if(!this.dialogFinderButton)return;
- var THIS=this;
- $(this.dialogFinderButton).on("click",(function(){
- return function(){
- // console.log(THIS);
- wd.topWindow.objectPickerObject=THIS
- }
-
- })())
-
-
-
- }
-
- this.initElementDisplay=function(args){
- var setting=$.extend({},{iteration:false,isInit:false,triggerChange:true},args);
- this.setElementValue("");
-
- var receive=false;
- if(setting.iteration){
- receive=true;
- }else if(this.isCascading()){
-
- //级联从最后一级往上初始化
- receive=!THIS.getNextCascadingName()
-
- if(setting.isInit){
- // 根据rule填充值
- var cascadingV=this.calCascadingInputValue();
- if(cascadingV)
- this.setDataElementValue(cascadingV);
- }
- if(receive){
- args={refreshPreCascading:true,iteration:true,triggerChange:false};
- }
-
-
-
- }else if(this.getDataElementValue()){
- receive=true;
- }
-
-
- if(receive){//单独picker
- this.receiveData({async:true,searchValue:true,dataValue:this.getDataElementValue(),callback:function(){
- var thisData=null;
- for(var i=0;THIS.searchResult&&i<THIS.searchResult.length;i++){
- if(THIS.searchResult[i][THIS.back_name]==THIS.getDataElementValue()){ // "1" == "1".Lin
- thisData=THIS.searchResult[i]; // mc:"居民身份证", sfzjlbm:"1"。Lin
- THIS.setElementValue(THIS.searchResult[i][THIS.face_name]); // "居民身份证"。Lin
- break;
- }
- }
- THIS.changeFinish(args);
- }});
- }
- // else if(setting.isInit&&!this.getDataElementValue()&&!this.isCascading()){
- // THIS.receiveData({searchAll:true,async:true,callback:function(){
- //
- // if(THIS.searchResult.length==1){
- // var thisData=THIS.searchResult[0];
- // THIS.setDataElementValue(thisData[THIS.back_name]);
- // THIS.setElementValue(thisData[THIS.face_name]);
- // THIS.changeFinish(args);
- // }
- // }});
- // }
-
-
- }
-
-
- //初始化
- this.initElementValue=function(){
-
- var v=this.getDataElementValue()||"";
- this.setElementValue("");
- //当隐藏元素长度为0是不需要初始化
- if(v.length==0){return}
-
- this.receiveData({searchValue:true,dataValue:v});
-
- if(!this.searchResult)
- console.log("初始化找不到查询结果"+v)
-
-
- var thisData=this.findDataByValue(v);
- if(thisData){
- this.setElementValue(thisData[this.face_name]);
- }
- // for(var i=0;this.searchResult&&i<this.searchResult.length;i++){
- // if(this.searchResult[i][this.back_name]==v){
- // thisData=this.searchResult[i];
- // this.setElementValue(this.searchResult[i][this.face_name]);
- // break;
- // }
- // }
-
- // if(thisData){
- // var preObjectPickerName=this.getPreCascadingName();
- // var preObjectPicker=wd.edit.objectPicker.getInstance(preObjectPickerName);
- //
- // if(preObjectPicker){
- // var n=preObjectPicker.getName();
- // if(thisData[n]){
- // preObjectPicker.initValue(thisData[n]);
- // }
- // }
- // }
-
-
- return thisData?true:false;
-
- }
-
- /**
- * 使用id初始化,数值不会马上填入隐藏字段,
- * 先生成一个只有一个选项的下拉,显示ok按钮,按ok后设置数值
- */
- this.initValueWithOption=function(id){
- var v=id||"";
- THIS.setDataElementValue(v);
- THIS.initElementDisplay();
-
-
- // var v=id||"";
- //
- // this.setDataElementValue(v);
- //
- // this.receiveData({searchValue:true,dataValue:v});
- //
- // if(this.searchResult&&this.searchResult.length==1){
- // var elementvalue=this.searchResult[0][this.face_name]
- //
- // this.setElementValue(elementvalue);
- // var data=null;
- //
- // this.showOptions();
- // this.receiveData({callback:this.buildOptions});
- //
- // }else{
- // this.setElementValue("");
- //
- // }
-
-
-
- }
-
-
-
-
-
- //创建输入提示主题最外层
- this.createTipWin=function(){
- // var old=wd.topWindow.document.querySelector(".objectpicker");
- // if(old){
- // old.parentNode.removeChild(old)
- // }
- this.tipWin=document.createElement("div");
-
- // var options_Width=this.element.offsetWidth+"px"
- //下拉
- // var content="<div class=\"objectPickerOption\" style='border:1px solid #ccc;position:absolute;overflow-x: auto;max-height:250px;background:#ffffff;z-index:1003;z-index:1013;width:"+(options_Width*3)+"px;'>"
- // +"<div>"
- // +"<button class='close_option'>关闭</button>"
- //// +"<button class='show_all_option'>全部</button>"
- // +"</div>"
- // +"<div><ul style='padding:0 0;margin: 0 0'></ul></div>"
-
-
- // var content="<div class=\"objectPickerOption popup-div hLine-highlightBlod\" >"
- // +"<div class=\"scrollbar\" style=\"max-height:250px;overflow-x:auto;padding-right:16px;\"></div>"
- // +"</div>"
- var content=""
-
-
- //详细信息
- +"<div class=\"objectPickerMinniPlay\" style='position:absolute;left:600px;z-index:1003;top:200px;'>"
- // +"<div style='border: 20px solid transparent;border-right-color: #ccc;width: 26px;border-top-right-radius: 5px;float:left;'></div>"
- +"<div class='detail_body' style='float:left;border: 1px solid #ccc;border-radius: 10px;width: auto;top: -10px;height: auto;background-color: #ffffff;'></div>"
- +"</div>"
-
- //确认按钮
- // position:absolute;left:10px;top:10px;display:none;z-index:1003;
- +"<div class=\"objectPickerButton\" style='display:none;'>"
-
- // +"<div class='button'><button>OK</button></div>"
-
- +"<input title=\"确认\" style=\"padding:0 0;margin: 0 0;height: inherit;display:inline-block\" type=\"button\" class=\"bottom-button\" value=\"OK\"/>"
-
- +"</div>"
-
-
-
-
-
- try{
- this.ID="objectPickerBody_"+this.name.replace(/\./,'');
- var usableId=this.ID;
- var count=1;
- var exitTopWin=wd.topWindow.$("#"+usableId);
- while(exitTopWin.length>0){
- var opw=exitTopWin[0].objectpickerwindow;
- if(opw&&opw.closed===true){//清除无用的div
- exitTopWin.remove();
- break;
- }
-
- count++;
- usableId=THIS.ID+"_"+count;
- exitTopWin=wd.topWindow.$("#"+usableId)
- }
-
-
- this.ID=usableId;
-
- this.tipWin.setAttribute("class"," objectPickerBody");
- this.tipWin.setAttribute("id",this.ID);
-
- // $(window).unload(function(){
- // wd.topWindow.window.$("#"+THIS.ID).remove();
- // })
- this.tipWin.objectpickerwindow=window;
- // wd.topWindow.window.$("."+this.ID).remove();
- wd.topWindow.document.body.appendChild(this.tipWin);
- wd.edit.objectPicker.tipWinList.push(this.ID);
- }catch(e){
- console.log(e)
- }
-
- this.tipWin.innerHTML=content
-
- var initSelectOption=this.IS_MOBILE?wd.edit.objectPicker.initMobileSelectOption:wd.display.initSelectOption;
- this.tipWin.appendChild(initSelectOption(this.ID+"_selectOption"))
- // console.log(this.tipWin.childNodes)
- this.tipWin_option=this.tipWin.childNodes[2]
- $(this.tipWin_option).addClass("objectPickerOption");
- this.tipWin_detail=this.tipWin.childNodes[0]
-
- if(this.IS_MOBILE){
- this.$objectPickerSelectTriangle=$("<span class=\"mobileSmallButton icon-down\"></span><span class=\"mobileIcon-down\"></span>");
- this.tipWin_option_list_class="mobilePopupList";
- }else{
- this.$objectPickerSelectTriangle=$("<span class=\"smallButton icon-down\"></span><span class=\"icon-down\"></span>");
- this.tipWin_option_list_class="popupList";
- }
-
-
- if(!this.dropdown){
- this.$objectPickerSelectTriangle.hide();
- }else if(this.input){
- this.$objectPickerSelectTriangle.last().hide();
-
- }else{
- this.$objectPickerSelectTriangle.first().hide();
- }
- this.$objectPickerSelectTriangle.appendTo(this.element);
- $(this.element).find("textarea").css("width","calc(100% - "+(this.$objectPickerSelectTriangle.width()+4)+"px)");
-
- // //确认按钮可能已经在页面设置好
- // if(!this.tipWin_button){
- // console.log("找不到ok按钮")
- // this.tipWin_button=this.tipWin.childNodes[1]
- // }
- $(this.tipWin_option).on("mouseover","."+this.tipWin_option_list_class,this.tipWinOptionMouseOverFun)
- $(this.tipWin_option).on("mouseout","."+this.tipWin_option_list_class,this.tipWinOptionMouseOutFun)
- $(this.tipWin_option).on("click",this.tipWinOptionClickFun);
- $(this.tipWin_option).on("contextmenu",function(){return false});
- $(this.tipWin_option).on("mousedown","."+this.tipWin_option_list_class,this.tipWinOptionRightClickFun);
- //关闭按钮\n
- // $(this.tipWin_option).on("click",".close_option",this.tipWinOptionCloseFun());
- //显示全部按钮
- // $(this.tipWin_option).on("click",".show_all_option",this.tipWinOptionShowAllFun());
-
- //$(this.tipWin_button).on("click",this.tipWinButtonClickFun).insertAfter(this.element);
- // $(this.tipWin_button).on("mouseover","button,input[type=button]",this.tipWinButtonMouseOverFun())
- // $(this.tipWin_button).on("mouseout","button,input[type=button]",this.tipWinButtonMouseOutFun())
-
- // $(this.element).on("contextmenu",function(){return false});
- // $(this.element).on("mouseover",this.elementMouseoverFunction);
- // $(this.element).on("mouseout",this.elementMouseOutFunction);
- if(this.input){
- if(this.instantSearch){
- $(this.element).find("textarea").on("input",this.elementInputFunction);
- }else{
- $(this.element).find("textarea").on("keyup",this.elementEnterKeyFunction);
- }
- // $(this.element).find("input").on("keyup",this.keyupAndDownFunction());
- $(this.element).find("textarea").focus(this.elementFocusFunction).blur(this.elementFocusToBlurFunction);
- }else{
- $(this.element).on("click",this.elementInputFunction);
- }
-
- this.$objectPickerSelectTriangle.on("click",this.triangleClickFunction);
-
-
-
- // try{
- // wd.topWindow.$("body").on("click",this.elementBlurFunction);
- // }catch(e){
- // console.log(e)
- // }
- //
- // //$(".content-div,.list-div").scroll(this.elementBlurFunction);
-
-
- }
-
-
-
-
-
- this.tipWinOptionMouseOutFun=function(){
- if(THIS.selectOneOption){
- THIS.uncheckOption(THIS.selectOneOption);
- }
- THIS.selectOneOption=null;
- }
- this.selectOneOption=null;
- //列表上预览信息
- this.tipWinOptionMouseOverFun=function(){
- //console.log(this);
-
- var lis=THIS.tipWin_option.querySelectorAll("."+THIS.tipWin_option_list_class)
- THIS.selectOneOption=this;
- THIS.checkOption(this)
-
- for(var i=0;i<lis.length;i++){
- if(lis[i]!=this){
- THIS.uncheckOption(lis[i]);
- }
- }
- var index=this.getAttribute("index");
- if(index){ // "1"。Lin
-
- if(THIS.previewService&&"null"!=THIS.previewService){
- $(this).addClass("cursor-help");
- }
-
- if(THIS.searchResult[index]&&THIS.searchResult[index][THIS.helptip_name]){ // mc: '女性', xbm: '2'。Lin
- $(this).addClass("cursor-help");
- }
- }
-
- // if(this.getAttribute("status")=="people"){
- // var bounding=this.getBoundingClientRect()
- // // var left=bounding.left+bounding.width
- // var left=THIS.tipWin_option.getBoundingClientRect().left+THIS.tipWin_option.getBoundingClientRect().width
- // var top=bounding.top;
- //
- //
- // var li=THIS.tipWin_option.querySelector("[checkstate=selected]")
- // var index=li.getAttribute("index");
- //// var xy=THIS.recursionIframe();
- //
- // THIS.showDetail(left,top,index);
- //
- //
- // var searchResult=THIS.searchResult[index];
- //
- // if(searchResult[THIS.helptip_name]){
- // THIS.WINDOWS.wd.edit.objectPicker.showHelp(this,{title:this.innerHTML,content:searchResult[THIS.helptip_name]});
- // }else{
- // THIS.WINDOWS.wd.edit.objectPicker.hideHelp();
- // }
- //
- //
- //
- //
- //
- //
- // }else{
- // THIS.hiddenDetail()
- // }
-
- }
- this.tipWinOptionRightClickFun=function(){
- var e=window.event;
- if(e.which!=3){
- return ;
- }
- var index=this.getAttribute("index");
- if(index){
- if(THIS.previewService&&"null"!=THIS.previewService){
- var bounding=this.getBoundingClientRect();
- var left=THIS.tipWin_option.getBoundingClientRect().left+THIS.tipWin_option.getBoundingClientRect().width
- var top=bounding.top;
-
- THIS.showDetail(left,top,index);
- }else{
- var searchResult=THIS.searchResult[index];
-
- if(searchResult[THIS.helptip_name]){
- THIS.WINDOWS.wd.edit.objectPicker.showHelp(this,{title:this.innerHTML,content:searchResult[THIS.helptip_name]});
- }else{
- THIS.WINDOWS.wd.edit.objectPicker.hideHelp();
- }
- }
- return false;
- }
- }
-
- this.checkOption=function(ele,scroll){
- if(!ele)return
- if(scroll){
- var op=this.tipWin_option;
-
-
- var index=parseInt( ele.getAttribute("index"));
- var boundingOp=op.getBoundingClientRect();
- var boundingEle=ele.getBoundingClientRect();
-
- var capacity= parseInt (boundingOp.height/boundingEle.height)
- var current=boundingEle.height*index;
-
- //位置在上边界
- if(current<op.scrollTop){
- op.scrollTop=boundingEle.height*(index)
- //位置在下边界
- }else if(current>op.scrollTop+boundingEle.height*capacity){
- op.scrollTop=boundingEle.height*(index-capacity)
- }
-
- // //新位置看不到,滚动到底部
- // if(ele.offsetHeight*index>op.getBoundingClientRect().height){
- // op.scrollTop=ele.offsetHeight*(index+capacity)
- // }
- }
- ele.setAttribute("checkstate","selected");
- // ele.style.backgroundColor="#ccc"
- // ele.style.border="1px solid"
- }
- //根据提供字符串的相识度选中最高的下拉
- this.checkMatchingOption=function(inputValue){
- var op=this.tipWin_option;
-
- var all=op.querySelectorAll("."+this.tipWin_option_list_class+"[status=people]")
- //完全匹配
- var ferfectMatch=false;
- for(var i=0;i<all.length;i++){
- var li=all[i];
- var index=parseInt(li.getAttribute("index"));
- var data=this.searchResult[index];
-
- if(data[this.face_name]==inputValue){
- this.checkOption(li,true);
- ferfectMatch=true
- break;
- }
- }
- //包含匹配
- var includeMatch=false
- if(!ferfectMatch&&inputValue){
- for(var i=0;i<all.length;i++){
- var li=all[i];
- var index=parseInt(li.getAttribute("index"));
- var data=this.searchResult[index];
-
- if(data[this.face_name].indexOf(inputValue)!=-1){
- this.checkOption(li,true);
- includeMatch=true;
- break;
- }
- }
- }
- //未完成,相似度计算
- var similarityMatch=false
- if(!includeMatch){
-
-
- }
-
-
- }
-
-
- this.uncheckOption=function(ele){
-
- ele.setAttribute("checkstate","unselected");
- // ele.style.backgroundColor="";
- }
-
- // 鼠标选中点击
- this.tipWinOptionClickFun=function(){
-
- THIS.checkOption(window.event.srcElement);
- var nextCascadingName=THIS.getNextCascadingName();
- THIS.confirmOption(true,{refreshCascadingName:nextCascadingName});
- }
- // this.tipWinButtonMouseOverFun=function(){
- // var THIS=this;
- // return function(){
- //
- // if(false&&THIS.searchResult){
- // var bounding=this.getBoundingClientRect()
- // var left=bounding.left+50
- // var top=bounding.top;
- //
- // var li=THIS.tipWin_option.querySelector("li[status=people].selected")
- // var index=li.getAttribute("index");
- // THIS.showDetail(left,top,index);
- //
- //
- // }else{
- //// THIS.hiddenDetail()
- // }
- // }
- // }
- // this.tipWinButtonMouseOutFun=function(){
- // var THIS=this;
- // return function(){
- //// THIS.hiddenDetail()
- // }
- // }
-
-
- // 确定按钮确认
- this.tipWinButtonClickFun=function(){
- // console.log("OK")
- }
-
- this.confirmOption=function(cannull,args){
-
- var newdata={};
-
- newdata[THIS.face_name]="";
- newdata[THIS.back_name]="";
-
- var li=this.tipWin_option.querySelector("."+this.tipWin_option_list_class+"[checkstate=selected][status=people]")
- if(li){
- var value=li.getAttribute("value");
- var data=this.findDataByValue(value);
- if(data){
- newdata[THIS.face_name]=data[THIS.face_name];
- newdata[THIS.back_name]=data[THIS.back_name];
- }
- }
- THIS.confirmOptionData(cannull,args,newdata);
- }
- this.confirmOptionData=function(cannull,args,newdata){
-
- var setting=$.extend({},{refreshCascadingOption:true,refreshCascadingName:""},args);
-
-
- var name=newdata[THIS.face_name];
- var value=newdata[THIS.back_name];
-
-
- if(cannull){
- this.setDataElementValue(value);
- this.setElementValue(name);
- }else{
-
- if(value){
- this.setDataElementValue(value);
- this.setElementValue(name);
- }
- }
-
-
- this.setCascadingInputsValue(this.getDataElementValue());
-
-
- this.hiddenOptions();
- this.hiddenDetail()
- this.changeFinish(setting);
- }
-
-
-
-
- // 显示详细信息
- this.showDetail=function(left,top,index){
-
- if(this.previewService&&"null"!=this.previewService){
-
- }else{
- return
- }
- this.tipWin_detail.style.display="";
- this.tipWin_detail.style.left=(left)+"px";
- this.tipWin_detail.style.top=(top)+"px";
- var data=this.searchResult[index];
- this.buildDetailContent(data)
- }
- this.showDetailByValue=function(left,top,value){
-
- if(this.previewService&&"null"!=this.previewService){
-
- }else{
- return
- }
- this.tipWin_detail.style.display="";
- this.tipWin_detail.style.left=(left)+"px";
- this.tipWin_detail.style.top=(top)+"px";
-
- var p={}
- p[this.back_name]=value
-
- this.buildDetailContent(p)
- }
-
-
-
- this.hiddenDetail=function(){
- this.tipWin_detail.style.display="none"
- }
- this.buildDetailContentTimeOutId=null
- this.buildDetailData=null;//当前回显的数据
- this.buildDetailContent=function(data){
-
- if(this.previewService&&"null"!=this.previewService){
- if(this.buildDetailContentTimeOutId)clearTimeout(this.buildDetailContentTimeOutId);
- this.buildDetailData=data;
- this.buildDetailContentTimeOutId=setTimeout(function(){
- var div= THIS.tipWin_detail.getElementsByClassName("detail_body")[0]
- div.style.display="";
- var content="<table>";
- content+="<iframe src='"+THIS.previewService+"&"+THIS.back_name+"="+THIS.buildDetailData[THIS.back_name]+"'>";
- content+="</table>";
- div.innerHTML=content;
- },1000)
-
- }else{
- // div.style.display="none";
-
- }
- }
-
-
-
-
-
- this.tipWinOptionShowAllFun=function(){
- var THIS=this;
- return function(){
- console.log("开发中")
- }
- }
- this.tipWinOptionCloseFun=function(){
- var THIS=this;
- return function(){
-
- THIS.hiddenDetail();
- THIS.hiddenOptions();
- }
- }
-
- this.hiddenButton=function(){
- // this.tipWin_button.style.display="none";
- $(this.tipWin_button).hide();
- }
- this.showButton=function(){
- var xy=this.recursionIframe()
- var bounding= this.element.getBoundingClientRect();
-
- //确认按钮先显示,先可以获取宽度
- // if(false&&this.input)
- // this.tipWin_button.style.display="none";
- if(false&&this.input)
- $(this.tipWin_button).show();
-
-
- // this.tipWin_button.style.display="";
- // this.tipWin_button.style.left=xy.left+bounding.left+bounding.width-this.tipWin_button.clientWidth+"px";
- // var correction=1;//偏差修正值
- // this.tipWin_button.style.top=xy.top+bounding.top+correction+"px";
- //
- // this.tipWin_button.style.height=bounding.height-correction+"px";
-
- // $(this.tipWin_button).children("input").insertAfter(this.element).css({height:(bounding.height-correction)});
-
-
- }
-
-
-
- this._optionishidden=false;
- this.optionisHidden=function(){
- return this._optionishidden;
- }
-
- this.showOptions=function(){
- this._optionishidden=false;
- this.tipWin_option.style.display=""
- wd.edit.objectPicker.activeInstance[this.name]=this;
-
- if(this.IS_MOBILE){
-
-
- }else{
-
- //减少调用次数
- if(wd.edit.objectPicker.initScrollId){
- window.clearTimeout(wd.edit.objectPicker.initScrollId)
- }
- wd.edit.objectPicker.initScrollId=setTimeout(function(){
- try{
- if(wd.topWindow.initNiceScorll)
- wd.topWindow.initNiceScorll();
- }catch(e){
- console.log(e);
- }
- },1000)
-
- }
- }
-
- this.hiddenOptions=function(){
- this._optionishidden=true
- this.tipWin_option.style.display="none"
- wd.edit.objectPicker.activeInstance[this.name]=null;
- wd.edit.objectPicker.hideHelp();
- }
- this.elementKeyUpFunction=function(){
- var THIS=this;
- return function(){
-
- }
- }
-
-
- this.showLeftSpan=function(){
- // console.log(this);
- var leftSpan=document.getElementById(this.name+"Span");
- if(!leftSpan){
- leftSpan=document.createElement("span");
- leftSpan.setAttribute("id",this.name+"Span");
- leftSpan.setAttribute("class","border-input-error");
- this.getElement().parentNode.insertBefore(leftSpan,this.getElement());
- }
-
- leftSpan.style.display= "";
-
- }
-
- this.hideLeftSpan=function(){
- var leftSpan=document.getElementById(this.name+"Span");
- if(!leftSpan)return;
- leftSpan.style.display= "none";
-
- }
-
-
- this.lastInputValue=null;
-
- this.keyupAndDownFunction=function(){
- var THIS=this;
- return function(){
-
- var keycode=window.event.keyCode;
- //按下键盘上,键盘下
- // console.log(keycode)
- if(keycode==38||keycode==40||keycode==13){
- window.event.stopPropagation()
- //UP
- if(keycode==38){
- THIS.nextOption(-1)
- }
-
- //DOWN
- if(keycode==40){
- THIS.nextOption(1)
- }
- //ENTER
- if(keycode==13){
- THIS.confirmOption(true)
- }
-
- return true
- }
- }
-
- }
- this.elementInputTimeOutId=null;
- this.elementInputFunction=function(){
- //wd.topWindow.$(".objectPickerOption").css({display:"none"});
- wd.edit.objectPicker.hideAllOptions();
- var inputValue=THIS.getElementValue();//当前数值
- if(!THIS.MODIFYABLE|| THIS.input&&!inputValue)return
-
- THIS.haveComfirm=false;
- THIS.showOptions();
-
- if(!THIS.searchResult||THIS.REAL_TIME_SEARCH){
- if(THIS.input){//延时请求
-
- if(THIS.elementInputTimeOutId){
- clearTimeout(THIS.elementInputTimeOutId);
- THIS.elementInputTimeOutId=null;
- }
- THIS.elementInputTimeOutId=setTimeout(function(){
- THIS.receiveData({callback:function(){
- //查询出结果集之后,如果只有一个值就自动选中
- if(THIS.searchResult.length==1){
- var nextCascadingName=THIS.getNextCascadingName();
- THIS.confirmOptionData(true,{refreshCascadingName:nextCascadingName},THIS.searchResult[0]);
- }else{
- THIS.buildOptions();
- }
-
- },async:true});
- },THIS.SEARCH_DELAY_TIME)
- }else{
- THIS.receiveData({callback:THIS.buildOptions,async:true});
- }
- }
-
- THIS.lastInputValue=inputValue;
- return false;
- }
- this.elementEnterKeyFunction=function(){
- if(window.event.keyCode===13){
- THIS.elementInputFunction();
- return false;
- }
- }
- this.triangleClickFunction=function(){
- if(!THIS.MODIFYABLE||!THIS.optionisHidden()){
- THIS.hiddenOptions();
- return false
- }
-
- //wd.topWindow.$(".objectPickerOption").css({display:"none"});
- wd.edit.objectPicker.hideAllOptions();
- var inputValue=THIS.getElementValue();//当前数值
-
- THIS.haveComfirm=false;
- THIS.showOptions();
-
- if(!THIS.searchResult||THIS.REAL_TIME_SEARCH){
- THIS.receiveData({callback:THIS.buildOptions,searchAll:true,async:true});
- }
-
- THIS.lastInputValue=inputValue;
- return false;
- }
-
-
- this.calCascadingInputValue=function(){
- if(!this.cascadingInputsRule)return null;
- var inputsV=this.getCascadingInputsValue();
- if(!inputsV)return null;
- if(inputsV.length!=this.cascadingInputsRule.length)return null;
- var index=0;
- var inIt=false;
- for(var i=0;i<this.cascadingLevel.length;i++){
- if(this.cascadingLevel[i]==this.name){
- index=i;
- inIt=true;
- break;
- }
- }
- if(!inIt)return null;
- index++;
-
- var result="";
- for(var i=0;i<this.cascadingInputsRule.length;i++){
- var cv=parseInt(this.cascadingInputsRule.substr(i,1));
- if(index>=cv){
- result+=inputsV.substr(i,1)
- }else{
- result+="0"
- }
- }
-
- return result;
-
-
-
-
-
-
-
- }
-
- //是否级联
- this.isCascading=function(){
- return (!this.cascadingLevel||this.cascadingLevel.length==0)?false:true;
- }
- this.getPreCascadingName=function(searchname){
- if(!this.isCascading())return null;
- if(!searchname)
- searchname=this.name;
- var index=0;
- for(var i=0;i<this.cascadingLevel.length;i++){
- if(this.cascadingLevel[i]==searchname){
- index=i;
- break;
- }
- }
- if(index==0)return null;
-
- return this.cascadingLevel[index-1]
-
-
- }
-
- this.getNextCascadingName=function(){
- if(!this.isCascading())return null;
-
- var index=0;
- for(var i=0;i<this.cascadingLevel.length;i++){
- if(this.cascadingLevel[i]==this.name){
- index=i;
- break;
- }
- }
- if(index==(this.cascadingLevel.length-1))return null;
-
- return this.cascadingLevel[index+1]
-
- }
- this.parsefilterField=function(param){
- if(THIS.filterField){
- var ff=THIS.filterField.split(",");
- for(var i=0;i<ff.length;i++){
- try{
- var name=ff[i];
- var box=THIS.WINDOWS.wd.display.getInputBox(name);
- param[name]=box?box.getValue():$("[name="+name+"]").val();
- }catch(e){
- console.log(e);
- }
- }
- }
- }
-
- //结束ajax数据
- this.receiveData=function(args){
- // searchValue,callback,searchAll,async
- var receiveDataDefault={
- searchValue:false,
- callback:null,
- searchAll:false,
- async:false,
- dataValue:null
- }
-
- var setting=$.extend({},receiveDataDefault,args)
- var THIS=this;
-
- var param=$.extend({},THIS.QUERY_PARAM);
-
- var requestData=THIS.searchService?true:false;
- //全局数据
-
- param["objectpickerparam"]=THIS.CONNECT_PARAM;
-
- THIS.parsefilterField(param);
-
-
- if(THIS.input)
- param["objectpickerinput"]=THIS.getElementValue();
-
- param["objectpickertype"]=1;
-
- //回显数值
- if(setting.searchValue){
- param["objectpickervalue"]=setting.dataValue;
- param["objectpickertype"]=2;
- if(requestData)
- requestData=param["objectpickervalue"]?true:false;//没值不连接服务器
- }
- if(setting.searchAll)
- param["objectpickersearchAll"]=1;
-
-
- if(THIS.isCascading()){//级联查询数据,参数填充上级值
- var preObjectPickerName,preObjectPicker;
- preObjectPickerName=this.name;
- var count=0;//防止死循环
- while(THIS.getPreCascadingName(preObjectPickerName)!=null){
- if(count>10)break;
- count++;
-
- preObjectPickerName=THIS.getPreCascadingName(preObjectPickerName);
- // console.log(preObjectPickerName)
- preObjectPicker=wd.edit.objectPicker.getInstance(preObjectPickerName);
- if(preObjectPicker){
- var v=preObjectPicker.getValue();
- param[preObjectPickerName]=v;
-
- if(!param["upperValue"])
- param["upperValue"]=v;
-
- }else{
- break;
- }
- }
- }
-
- if(setting.searchAll){
- param["objectpickerinput"]="";
- }
-
-
-
-
-
-
- if(requestData){
- if(THIS.IS_MOBILE){
-
- }else{
- wd.display.showLoad();
- }
-
- $.ajax({
- url:this.searchService,
- data:param,
- dataType:'json',
- async:setting.async,
- timeout:10000,
- error:function(data){
-
- if(THIS.IS_MOBILE){
-
- }else{
- if("timeout"==data.statusText){
- wd.display.alert("网络连接超时!");
- }else{
- wd.display.alert("网络连接失败!");
- }
-
- wd.display.closeLoad();
-
-
- }
-
- return false;
- },
- success:function(data){
- ///// 再增加,增加错误处理 -- 统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
- /* 再去掉,改为 (data.ssCode != 0) 后一直显示 "undefined" 错误信息 -- data.ssMsg 值为 "undefined"。Lin
- * ObjpServ.loadOptByA() 还没有使用 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData
- * data.ssCode 为 undefined 时,之前写的 (data.ssCode == 0) 为 false,改为 (data.ssCode != 0) 则为 true -- ssCode,把 0 = 错误、1 = 成功 改为 0 = 成功,1 = 错误
- if (data.ssCode != 0) {
- /// * 再改,要用 alert(,要有弹出窗口 -- 一闪而过,以为没错。Lin
- // wd.display.alert(data.msg); // 不用 alert( -- 有弹出窗口。Lin
- /// *
- alert(data.ssMsg);
- return;
- }
- */
- /////
- if(THIS.IS_MOBILE){
-
-
- }else{
-
- wd.display.closeLoad();
- if(data.errmsg){
- console.log(data.errmsg);
- wd.display.alert(data.errmsg);
- return false;
- }
- }
- /* 再改 data.result(List<Map<String, Object>>) 为 Map<String, String>。Lin
- * 原 List<Map<"xbm":"1","mc":"男">,Map<"xbm":"2","mc":"女">> 改为 Map<"1":"男","2":"女">
- * 在这再转回 List<Map<"1":Map<"xbm":"1","mc":"男">,Map<"xbm":"2","mc":"女">> -- 先把 Java 改好,不改 JS 先
- * 先不支持 Tips 内容,用到再弄
- THIS.searchResult=data.result;
- */
- /// 抄自 init( 里的。Lin
- //初始化转换数据
- if (data.result) { // {1:'男性', 2:'女性'}。Lin
- THIS.searchResult = [];
- for (var key in data.result) {
- var aa = {};
- aa[data.invisiable] = key; // "xbm"。Lin
- aa[data.visiable] = data.result[key]; // "mc"。Lin
- THIS.searchResult.push(aa); // {mc: '男性', xbm: '1'}, {mc: '女性', xbm: '2'}。Lin
- }
- }
- ///
- if(data.visiable)
- THIS.face_name=data.visiable;
- if(data.invisiable)
- THIS.back_name=data.invisiable;
-
- if(data.helptip_name)
- THIS.helptip_name=data.helptip_name
- if(typeof THIS.searchResult=="string"){
- THIS.searchResult=eval("("+THIS.searchResult+")")
- }
- if(setting.callback){
- //定时器
- setting.callback.apply(THIS)
- }
-
- }
- })
- }else{
- if(setting.callback){
- //定时器
- setting.callback.apply(THIS)
- }
-
- }
- }
-
-
- this.getOptionsSize=function(){
- var op=this.tipWin_option;
- var queryselector=op.querySelectorAll("."+this.tipWin_option_list_class);
- return queryselector.length-1;
- }
-
- this.getAllData=function(){
- var result=[];
- if(this.staticResult){
- result=result.concat(this.staticResult); // null。Lin
- }
- if(this.searchResult){
- result=result.concat(this.searchResult); // {mc: '男性', xbm: '1'}, {mc: '女性', xbm: '2'}。Lin
- }
- return result;
- }
-
- this.findDataByValue=function(v){
- var alldata=this.getAllData();
- for(var i=0;i<alldata.length;i++){
- if(alldata[i][this.back_name]==v){
- return alldata[i];
- }
-
- }
- return null;
- }
-
- this.setStaticData=function(optionList){
- this.staticResult=[];
- for(var i=0;i<optionList.length;i++){
- for(var key in optionList[i]){
- var aa={};
- aa[this.face_name]=optionList[i][key];
- aa[this.back_name]=key;
- this.staticResult.push(aa);
- }
- }
- }
-
- this.setwdCloseWindowParamData=function(data){
- if(!data||!data.option){
- return
- }
- var optionList=data.option;
- this.staticResult=[];
- for(var i=0;i<optionList.length;i++){
- var aa={};
- aa[this.face_name]=optionList[i]["name"];
- aa[this.back_name]=optionList[i]["id"];;
- this.staticResult.push(aa);
-
- this.setElementValue(aa[this.face_name]);
- this.setDataElementValue(aa[this.back_name]);
- }
- this.changeFinish();
- }
-
-
- // this.getStaticData=function(){
- // this.staticResult=[];
- // var aaa={};
- // aaa[this.face_name]="aaaaaaaaaaaaaaaaaaaaaaaaaaa";
- // aaa[this.back_name]="99";
- // this.staticResult.push(aaa);
- // return this.staticResult
- // }
- //生成下拉,并且选中匹配值
- this.buildOptions=function(){
- // console.log(this.getStaticData());
- // console.log(this.tipWin_option)
- var op=this.tipWin_option
- var ul=op.childNodes[0];
- var inputValue=this.getElementValue();//当前数值
-
-
- // style="list-style-type:none; height: 30px;line-height: 30px;width: 100%;color: #666;padding-left: 5px;border-bottom: 1px solid #ccc;box-sizing: border-box;cursor: pointer;"
-
- // if(this.searchResult.length>0){
- // this.hideLeftSpan();
- //
- // var listr = '<div class=\"'+this.tipWin_option_list_class+'\" status="noitem">请选择</div>',arr = this.searchResult;
- // for(var i = 0;i<arr.length;i++){
- // listr+= '<div class=\"'+(arr[i][this.back_name]==this.getDataElementValue()?' selected ':'')+ this.tipWin_option_list_class+'\" status="people" value="'+arr[i][this.back_name]+'"'+'index="'+i+'">'+arr[i][this.face_name]+'</div>';
- // }
- // ul.innerHTML=listr;
- //// this.checkMatchingOption(inputValue)
- // }else{
- // this.showLeftSpan();
- // ul.innerHTML='<div class=\"'+this.tipWin_option_list_class+'\" status="noitem">找不到相关项</div>'
- // }
- // console.log(this.addButton);
- var buildSelectOption=THIS.IS_MOBILE?wd.edit.objectPicker.buildMobileSelectOption:wd.display.buildSelectOption;
- buildSelectOption(this.tipWin_option,this.getAllData(),this.back_name,this.face_name,this.getDataElementValue(),true)
- if(this.addButton)
- $('<div class="icon-add popupList button cursor-click" style="padding: unset;margin: 0px 0px 3px 3px;background-position-y: center;float: right;"></div>').appendTo(ul).on("click",function(){
- THIS.WINDOWS.wd.edit.objectPicker.addButtonClickName=THIS.name;
- THIS.hiddenOptions();
- eval(THIS.addButton);
- })
-
- if(this.searchResult.length>0){
- this.hideLeftSpan();
- }else{
- this.showLeftSpan();
- }
-
-
- //定位位置
- var bounding=this.element.getBoundingClientRect();
- var xy=this.recursionIframe();
- var left=bounding.left+xy.left;
- var top;
- if(THIS.IS_MOBILE){
- top=bounding.top+bounding.height;
- }else{
- top=bounding.top+xy.top+bounding.height;
- }
-
-
-
- this.tipWin_option.style.left=left+"px";
- this.tipWin_option.style.top=top+"px";
-
-
- this.tipWin_option.style.minWidth=this.element.offsetWidth+"px";
- this.tipWin_option.style.maxWidth=`calc(100vw - ${bounding.left}px - 18px)`;
- ul.style.minWidth=this.element.offsetWidth-18+"px";
- this.tipWin_option.style.width="auto";
- ul.style.width="auto";
- ul.style.maxWidth=`calc(100vw - ${bounding.left}px - 18px)`;
- if(top+this.tipWin_option.offsetHeight>wd.topWindow.innerHeight){
- var options=$(ul).children().detach();
- for(var i=options.length-1;i>=0;i--){
- $(options[i]).appendTo(ul);
- }
-
- top=bounding.top+xy.top-this.tipWin_option.offsetHeight
- this.tipWin_option.style.top=top+"px";
- ul.scrollTop=ul.scrollHeight;
- }
-
- }
-
- //计算字符串相似度
- this.calSimilarity=function(s1,s2){
-
-
- }
- this.inputMouseUpAndDown_Interaval_ID=null;
-
-
- //向上选择
- this.nextOption=function(step){
-
- var op=this.tipWin_option;
-
- // if(op.querySelectorAll("li[status=noitem]").length>0){return}
-
- var index=null;
- var queryselector=op.querySelectorAll("."+this.tipWin_option_list_class);
- var selection=null;
- var index=0;
- var all=op.querySelectorAll("."+this.tipWin_option_list_class+"[status=people]");
-
- if(queryselector.length>0){
- selection= queryselector[0]
- this.uncheckOption(selection)
- index=parseInt(selection.getAttribute("index"));
- index+=step;
- }
-
- if(index<0){
- index=0;
- }else if(index>all.length){
- index=all.length
- }
-
- var nextselection=all[index];
-
- this.checkOption(nextselection,true)
-
-
- var bounding=this.tipWin_option.getBoundingClientRect()
-
-
- var xy=this.recursionIframe();
- // this.showDetail(xy.left+bounding.left+bounding.width,xy.top+bounding.top,index);
-
- }
-
-
-
- // this.oneclickhiddendetail=false;
- //
- //
- // this.elementMouseoverFunction=function(){
- //
- // if(THIS.optionisHidden()&&THIS.haveComfirm&& THIS.getDataElementValue()){
- // var xy=THIS.recursionIframe();
- // var bounding=this.getBoundingClientRect();
- //
- // var left=bounding.left+xy.left;
- // var top=bounding.top+bounding.height+xy.top;
- //
- // THIS.showDetailByValue(left,top,THIS.getDataElementValue())
- //
- // if(!THIS.oneclickhiddendetail){
- // $(document).one("click",function(){
- // THIS.oneclickhiddendetail=false;
- // THIS.hiddenDetail()
- // })
- // THIS.oneclickhiddendetail=true;
- // }
- //
- //
- //
- // }else{
- // THIS.hiddenDetail()
- // }
- // return false;
- // }
- //
- //
- //
- // this.elementMouseOutFunction=function(){
- //
- // THIS.hiddenDetail();
- // return false;
- // }
- this.elementFocusFunction=function(){
- console.log("elementFocusFunction");
- if(THIS.getElementValue().length>=THIS.MINIMUM_INPUT_SIZE){
- THIS.showOptions();
- THIS.receiveData({callback:THIS.buildOptions,async:true});
- }
- if(THIS.IS_MOBILE){
- $(THIS.element).addClass("mobileInput-div-selected input-s");
- }else{
- $(THIS.element).addClass("input-div-selected input-s");
- }
-
- }
-
- this.elementFocusToBlurFunction=function(){
- if(THIS.getElementValue()!=THIS.elementValue){
- THIS.setElementValue(THIS.elementValue);
- }
- $(THIS.element).removeClass("mobileInput-div-selected input-div-selected input-s");
- return false;
- }
-
- this.elementBlurFunction=function(e){
- if(THIS.optionisHidden()){
- return
- }else{
- if(THIS.cascadingInputsRule){
-
- }
- }
- if(!e)e=window.event;
- if(!e)return;
- if(e.target&&(e.target==THIS.element))return;
- if(e.target&&$(THIS.element).children().is(e.target))return;
- if($(e.target).parents(".objectPickerBody").length>0)return;
-
- THIS.refreshElementValue();
- THIS.hiddenOptions();
- THIS.hiddenDetail();
- return false;
- }
- this.recursionIframe=function(win){
-
- if(!win){
- win=this.wins;
- }
-
- function getTop (e){
- var offset=e.offsetTop;
- if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
- return offset;
- }
- function getLeft (e){
- var offset=e.offsetLeft;
- if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
- return offset;
- }
-
-
- if(win.parent==top&&win.parent==win){
- return {"left": 0, "top": 0 };
- }
-
-
-
- var winPar = win.parent;// .opener
- var iframeArr = winPar.document.getElementsByTagName('IFRAME');
- var targetIframe;
-
-
-
- var iframeArr1 = win.document.getElementsByTagName('IFRAME');
- for(var i=0;i<iframeArr1.length;i++){
- var iframeElem = iframeArr1[i];
- if(iframeElem.contentWindow==win){
- targetIframe = iframeElem;
- break;
- }
- }
-
-
-
-
- for(var i=0;i<iframeArr.length;i++){
- var iframeElem = iframeArr[i];
- if(iframeElem.contentWindow==win){
- targetIframe = iframeElem;
- break;
- }
- }
-
-
-
- var xy={left:getLeft(targetIframe),top:getTop(targetIframe)}
-
- if(winPar.parent!=winPar){
- var xy2 =this.recursionIframe(winPar);
- xy.left += xy2.left;
- xy.top += xy2.top;
- }
-
- return xy
- }
-
- this.getElement=function(){
- return this.element;
- }
-
- this.getElementValue=function(){
- return this.GrowHeightInstance.val();
- // return $(this.element).find("textarea").val();
- // if(this.input){
- // return this.element.querySelector("input").value
- // }else{
- // var c=this.element.querySelector("span");
- // if(!c)return "";
- // if(c.getAttribute("class")=="objectpicker-nameDiv-placeholder")return ""
- //
- // return c.innerHTML;
- //
- //
- // }
- }
-
- this.refreshElementValue=function(){
- this.GrowHeightInstance.val(this.elementValue);
- }
- this.setElementValue=function(v){
- this.elementValue=v;
- //console.log(this.GrowHeightInstance);
- this.GrowHeightInstance.val(v);
-
- // $(this.element).find("textarea").val(v).attr("placeholder",this.placeholder);
-
- // if(this.input){
- // $(this.element).find("input").addClass("form-insideLabel").val(v).attr("placeholder",this.placeholder);
- //// this.element.querySelector("input").setAttribute("placeholder",this.placeholder);
- //// this.element.querySelector("input").value=v;
- // }else{
- //
- //// if(!v){
- //// this.element.innerHTML="<span class=\"objectpicker-nameDiv-placeholder\">"+this.placeholder+"</span>"
- //// +this.objectPickerSelectTriangle;
- //// }else{
- //// this.element.innerHTML="<span class=\"objectpicker-nameDiv-value\">"+v+"</span>"
- //// +this.objectPickerSelectTriangle;
- //// }
- // if(!v){
- // this.$objectPickerNameDiv.last().show().html(this.placeholder);
- // this.$objectPickerNameDiv.first().hide();
- // }else{
- // this.$objectPickerNameDiv.last().hide();
- // this.$objectPickerNameDiv.first().show().html(v);;
- // }
- //
- // }
- if(this.playElement)
- this.playElement.innerHTML=v;
-
- // var $triangle=$(this.element.childNodes[1]);
- // this.element.childNodes[0].style.maxWidth=$(this.element).width()-$triangle.width()-parseInt($triangle.css('marginLeft'));
- //
-
- }
-
- this.getDataElement=function(){
- return this.dataElement;
- }
- this.getDataElementValue=function(){
- return this.dataElement.value;
- }
-
- this.setDataElementValue=function(v){
- $(this.dataElement).val(v);
- this.dataElementValue=v;
-
- }
-
- this.changeFinish=function(args){
- //console.log("change fish "+this.name);
-
- var setting=$.extend({},{triggerChange:true,refreshCascadingOption:false,refreshPreCascading:false,refreshNextCascading:false},args);
-
-
- if(setting.refreshCascadingOption){//刷新下一个选项卡选项
- var nextCascadingName=this.getNextCascadingName();
- var nextCascading=wd.edit.objectPicker.getInstance(nextCascadingName);
- if(nextCascading){
- nextCascading.refreshOption(args);
- }
- }
-
- //刷新上一个级联
- if(setting.refreshPreCascading){
- var preCascadingName=this.getPreCascadingName();
- //console.log("preCascadingName:"+preCascadingName);
- var preCascading=wd.edit.objectPicker.getInstance(preCascadingName);
- if(preCascading){
- preCascading.refreshElementDisplay(args);
- }else{
- this.setCascadingInputsValue()
-
- }
- }
-
- //刷新下一个级联
- if(setting.refreshNextCascading){
- var nextCascadingName=this.getNextCascadingName();
- var nextCascading=wd.edit.objectPicker.getInstance(preCascadingName);
- if(nextCascading){
- nextCascading.refreshElementDisplay(args);
- }
- }
-
- if(setting.triggerChange){
- $(this.element).trigger("change");
- $(this.dataElement).trigger("change").trigger("keyup");
- if(this.extension.onchange){
- this.extension.onchange.call(this.extension,this.extension);
- }
- }
- }
- this.passValidation=function(){
-
- this.getElement().style.border="";
- }
- this.failValidation=function(){
- this.getElement().style.border="red 1px solid";
- }
-
-
-
-
-
-
-
-
- }
- if(!wd.edit.objectPicker.createObjectPicker)
- wd.edit.objectPicker.createObjectPicker=function(name,field,viewobject,input,defaultValue,param,sservice,miniPlay,codebookData,addButton,instantSearch,dropdown,filterField,helptipData,isMobile_){
-
- // var parentRoot;
- // //根据查找id或name查找元素,可传入多个参数一起查找, 返回找到的第一个
- // function getElementByIdOrByName(val){
- // var result;
- // for(var a=0;a<arguments.length ;a++){
- // //name属性优先,再到id
- //// if(!result&&parentRoot){
- //// result=parentRoot.querySelector("#objectPicker_"+arguments[a])||parentRoot.querySelector("[name="+arguments[a]+"]")
- ////
- //// }
- // if(!result){
- // result=document.querySelector("#objectPicker_"+arguments[a])||document.querySelector("[name="+arguments[a]+"]")
- // }
- // }
- // return result;
- // }
-
- //不可输入转态
- // if((function(){
- // if(param&¶m.indexOf("visible")==-1){
- // return true;
- // }else{
- // return false;
- // }
- //
- // })()&&( !input||"false"==input)){
- //
- //// window.addEventListener("load",function(){
- // var root=getElementByIdOrByName(name)
- // if(!root){console.log("找不到"+name+"元素");return true}
- // var wdValue=root.getAttribute("wdValue");
- // //解析codebook
- // codebookData=codebookData?eval("("+codebookData+")"):[];
- //
- //
- //// console.log(codebookData)
- // if(root.tagName=="INPUT"&&"text"==root.getAttribute("type")){
- // //<select>
- // var selectElement=document.createElement("select");
- // selectElement.setAttribute("name",name);
- //
- // //nulloption
- // var nulloption=document.createElement("option");
- // selectElement.appendChild(nulloption)
- //
- // //<option>
- // for(var i=0 ;i<codebookData.length;i++){
- // for(var key in codebookData[i]){
- // var optionElement=document.createElement("option");
- // optionElement.value=key;
- // if(key==root.value){
- // optionElement.selected="selected";
- // }
- // optionElement.innerHTML=codebookData[i][key];
- // selectElement.appendChild(optionElement);
- // }
- //
- // }
- //
- // var moves=["id","class","name","wdValue"]
- // for(var key in moves){
- // var n=moves[key];
- // var v=root.getAttribute(n);
- // if(v){
- // selectElement.setAttribute(n,v);
- // }
- // }
- // root.parentNode.replaceChild(selectElement,root);
- //
- // }else{
- // console.log(root);
- // console.log("需要有标签:<input name="+name+" type=\"text\" value=\"\"/>")
- // }
- //
- //
- //
- //
- // return true;
- // }
- //
- //
-
-
- //可输入状态
-
- var facename=field;//显示搜索结果优先名称
- var backname=name+"id";//隐藏字段名称
- // var ID=name+"_"+backname+"_"+backname+(wd.display.getwdDialogId()||1);
- var inputType=(("true"==input)?true:false);
- //undefined设置为true
- var instantSearchType=typeof instantSearch=="undefined"||"true"==instantSearch;
- var dropdownType=typeof dropdown=="undefined"||"true"==dropdown;
- var helptipname;
-
- if(!codebookData)codebookData=[];
-
- if(typeof codebookData=="string"){
- codebookData=eval("("+codebookData+")");
- }
-
- if(typeof helptipData=="string"){
- helptipData=eval("("+helptipData+")");
- }
-
- //弹窗选择器
- // var dialogFinderButton=wd.edit.objectPicker.getElementByIdOrByName(name+"selector",name+"Selector",name+"SELECTOR");
- //搜索服务
- var searchService=sservice;
- if(searchService&&searchService.indexOf("null")!=-1)
- searchService=null;
-
-
- var cascadingLevel=null;
- var cascadingInputsName=null;
- var cascadingInputsRule=null;
- //预览服务
- var previewService=miniPlay
- var otherparam={}
- if(param){
- otherparam=eval("("+param+")")
- if(!otherparam)otherparam={}
-
- //显示的字段名称
- if(otherparam["visible"]){
- facename=otherparam["visible"]
- }
- //隐藏数据的字段名
- if(otherparam["invisible"]){
- backname=otherparam["invisible"]
- }
- //帮助提示
- if(otherparam["helptip"]){
- helptipname=otherparam["helptip"]
- }
-
-
-
- if(otherparam["cascadingLevel"])
- cascadingLevel=otherparam["cascadingLevel"].split(/\,/);
-
- if(otherparam["cascadingInputsName"]){
- cascadingInputsName=otherparam["cascadingInputsName"]
- }
-
- if(otherparam["cascadingInputsRule"]){
- cascadingInputsRule=otherparam["cascadingInputsRule"]
- }
-
- }
- // console.log(name+","+backname+","+backname);
-
- //每个后台请求都会发送的数据
- var connectparam={}
- //复制otherparam
- for(var key in otherparam){
- connectparam[key]=otherparam[key];
- }
- // if(!inputType){
- // facename="v1"
- // backname="v2"
- // }
- var isMobile="true"==isMobile_?true:false;
-
-
-
- var args={name:name,
- facename:facename,
- backname:backname,
- // target:elem,
- // datatarget:hiddenElem,
- // playElem:playElem,
- search:searchService,
- preview:previewService,
- viewobject:viewobject,
- otherparam:otherparam,
- connectparam:connectparam,
- input:inputType,
- codebookData:codebookData,
- cascadingLevel:cascadingLevel,
- cascadingInputsRule:cascadingInputsRule,
- cascadingInputsName:cascadingInputsName,
- // placeholder:placeholder,
- // GrowHeightInstance:GrowHeightInstance,
- addButton:addButton,
- instantSearch:instantSearchType,
- dropdown:dropdownType,
- filterField:filterField,
- helptipData:helptipData,
- helptipname:helptipname,
- isMobile:isMobile
- }
-
- new wd.edit.objectPicker.body().init(args);
-
- }
-
- //初始化
-
- ////
- //$("[name=dwlbm]").on("change",function(){
- // console.log("change!!!1111111111");
- // console.log(wd.edit.objectPicker.getDisplayValue(this));
- //})
- //$("[name=dwlbm]").on("change",function(){
- // var objectPickerObj= wd.edit.objectPicker.getInstance("dwlbm");
- // console.log(objectPickerObj.getValue());
- // console.log(objectPickerObj.getDisplayValue());
- //})
- //$(function(){
- // var objectPickerObj= wd.edit.objectPicker.getInstance("dwlbm");
- // if(objectPickerObj){
- // objectPickerObj.onchange=function(obj){
- // console.log(obj);
- // console.log(this);
- // console.log(obj.getValue());
- // console.log(obj.getDisplayValue());
- //
- // }
- // }
- //
- //
- //
- //})
|