| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873 |
- let locationBtn = null;
- let createBtn = null;
- let cancleBtn = null;
- let missBtn = null;
- let incdCfrmBtn = null;
- let incdInfoCfrmBtn = null;
- let refreshBtn = null;
- let incdEndBtn = null;
- let prcdIncdTable = null;
- let newIncdTable = null;
- let endIncdTable = null;
- let commonUri = '/api/manage/incident';
- let autoIncdTable = null;
- let prcdLinkBtn = null;
- let searchBtn = null;
- let closeBtn = null;
- let vmsListBtn = null;
- const pageMsg = '돌발';
- //신규 돌발 등록 관련
- let newIncdOccrId = null;
- let newRgstDt = null;
- let newIncdOrgnCd = null;
- let newOcrrLctnNm = null;
- let newIncdExpl = null;
- let newCmtrGradCd = null;
- let newIfmrNm = null;
- let newIncdCnfmMthdCd = null;
- let newIncdSernCd = null;
- let newIncdTypeCd = null;
- let newIncdCnfmDt = null;
- let newIncdTypeClsfCd = null;
- let newIncdTitl = null;
- let newIncdStrtDt = null;
- let newIncdEndPrarDt = null;
- let newIncdData = [];
- let autoIncdData = [];
- //돌발 진행상황 처리 관련
- let prcdIncdOccrId = null;
- let prcdRgstDt = null;
- let prcdIncdOrgnCd = null;
- let prcdOcrrLctnNm = null;
- let prcdIncdExpl = null;
- let prcdCmtrGradCd = null;
- let prcdIfmrNm = null;
- let prcdIncdCnfmMthdCd = null;
- let prcdIncdSernCd = null;
- let prcdIncdTypeCd = null;
- let prcdIncdTypeClsfCd = null;
- let prcdIncdTitl = null;
- let prcdIncdStrtDt = null;
- let prcdIncdEndPrarDt = null;
- let prcdLinkId = null;
- let prcdXcrdn = null;
- let prcdYcrdn = null;
- let prcdVmsDsplYn = null;
- let prcdStrtLctnNm = null;
- let prcdEndLctnNm = null;
- let prcdVmsIncdTypeCd = null;
- let prcdVmsIncdDetlTypeCd = null;
- let prcdIncdOcrrLane0 = null;
- let prcdIncdOcrrLane1 = null;
- let prcdIncdOcrrLane2 = null;
- let prcdIncdOcrrLane3 = null;
- let prcdIncdOcrrLane4 = null;
- let prcdIncdOcrrLane5 = null;
- let prcdIncdClsrLane0 = null;
- let prcdIncdClsrLane1 = null;
- let prcdIncdClsrLane2 = null;
- let prcdIncdClsrLane3 = null;
- let prcdIncdClsrLane4 = null;
- let prcdIncdClsrLane5 = null;
- let prcdSmltVhclUnum = null;
- let prcdMdltVhclUnum = null;
- let prcdInjrPnum = null;
- let prcdFtltPnum = null;
- let prcdDelyLngt = null;
- let prcdIncdLngt = null;
- let prcdWthrCd = null;
- let prcdRespLvlCd = null;
- let prcdTrubVhclYn = null;
- let prcdFaltYn = null;
- let prcdFrwtYn = null;
- let procData = [];
- let incdOcrrLaneArr = [];
- let incdClsrLaneArr = [];
- //돌발 종료 처리 관련
- let endIncdOccrId = null;
- let endRgstDt = null;
- let endIncdOrgnCd = null;
- let endOcrrLctnNm = null;
- let endIncdExpl = null;
- let endCmtrGradCd = null;
- let endIfmrNm = null;
- let endIncdCnfmMthdCd = null;
- let endIncdSernCd = null;
- let endIncdTypeCd = null;
- let endIncdTypeClsfCd = null;
- let endIncdTitl = null;
- let endIncdStrtDt = null;
- let endIncdEndPrarDt = null;
- let endLinkId = null;
- let endXcrdn = null;
- let endYcrdn = null;
- let endRespLvlCd = null;
- let endIncdEndCnfmMthdCd = null;
- let endIncdEndDt = null;
- let endRecrCont = null;
- let endMblzEqpmCont = null;
- let endMblzPnum = null;
- let endRecrPerd = null;
- let endData = [];
- //코드 관련
- let incdOrgnCdData = [];
- let cmtrGradCdData = [];
- let incdCnfmMthdCdData = [];
- let incdSernCdData = [];
- let incdTypeCdData = [];
- let incdTypeClsfCdData = [];
- let respLvlCdData = [];
- let wthrCdData = [];
- let incdEndCnfmMthdCdData = [];
- let trvlLmntTypeCdData = [];
- let vmsCdData = [];
- let vmsClsfCdData = [];
- //이력조회 관련
- let historyCheck = null;
- let historyStrtDt = null;
- let historyStrtTime = null;
- let historyEndDt = null;
- let historyEndTime = null;
- let historySearchBtn = null;
- //pop-up
- const listOption = 'width = 800, height = 900, top = 40, left = 500, resizable=yes, scrollbars=no';
- const vmsListOption = 'width = 600, height = 600, top = 200, left = 660, resizable=yes, scrollbars=no';
- const mapOption = 'width = 1700, height = 900, top = 40, left = 100, resizable=yes, scrollbars=no';
- const _multiSelct = false;
- const _linkLevel = 1;
- const getParam = {
- MultiSelect : _multiSelct,
- LinkLevel : _linkLevel,
- LinkInfo : [],
- };
- //데이트 컬럼
- const dateColumns = ['rgst_dt','incd_end_prar_dt', 'incd_cnfm_dt', 'incd_strt_dt', 'incd_end_dt', 'detc_dt'];
- incdOrgnCdData = getCodeData( incdOrgnCdData, '/ist');
- cmtrGradCdData = getCodeData( cmtrGradCdData, '/ltcu');
- incdCnfmMthdCdData = getCodeData( incdCnfmMthdCdData, '/icm');
- incdSernCdData = getCodeData( incdSernCdData, '/srlu');
- incdTypeClsfCdData = getCodeData( incdTypeClsfCdData, '/idtu');
- if(incdTypeClsfCdData.length > 0) incdTypeCdData = getCodeData(incdTypeCdData, '/idtu/' + incdTypeClsfCdData[0].code);
- respLvlCdData = getCodeData(respLvlCdData, '/rsl');
- wthrCdData = getCodeData(wthrCdData, '/wetu');
- incdEndCnfmMthdCdData = getCodeData(incdEndCnfmMthdCdData, '/icm');
- trvlLmntTypeCdData = getCodeData(trvlLmntTypeCdData, '/prtu');
- vmsClsfCdData = getCodeData( vmsClsfCdData, '/vit');
- //신규 돌발 등록 input
- const newInputArr = [
- //돌발 ID
- newIncdOccrId = {
- box : null,
- type : 'text',
- column : 'incd_ocrr_id',
- readOnly : true,
- width : 200,
- },
- //등록일시
- newRgstDt = {
- box : null,
- type : 'datetime',
- column : 'rgst_dt',
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- readOnly : true,
- width : 200,
- },
- //돌발구분코드
- newIncdOrgnCd = {
- box : null,
- type : 'select',
- column : 'incd_orgn_cd',
- width : 180,
- items : incdOrgnCdData,
- max : 100,
- },
- //발생위치설명
- newOcrrLctnNm = {
- box : null,
- type : 'text',
- column : 'ocrr_lctn_nm',
- width : 500,
- must : '발생위치설명',
- max : 100,
- },
- //돌발상황설명
- newIncdExpl = {
- box : null,
- type : 'text',
- column : 'incd_expl',
- width : 500,
- must : '돌발상황설명',
- max : 600,
- },
- //소통상황코드
- newCmtrGradCd = {
- box : null,
- type : 'select',
- column : 'cmtr_grad_cd',
- items : cmtrGradCdData,
- width : 300,
- },
- //제보자명
- newIfmrNm = {
- box : null,
- type : 'text',
- column : 'ifmr_nm',
- width : 250,
- max : 20,
- },
- //확인방법 코드
- newIncdCnfmMthdCd = {
- box : null,
- type : 'select',
- column : 'incd_cnfm_mthd_cd',
- items : incdCnfmMthdCdData,
- width : 250,
- },
- //심각도 코드
- newIncdSernCd = {
- box : null,
- column : 'incd_sern_cd',
- items : incdSernCdData,
- type : 'select',
- width : 250,
- },
- //돌발 세부 유형 코드
- newIncdTypeCd = {
- box : null,
- column : 'incd_type_cd',
- items : incdTypeCdData,
- type : 'select',
- width : 180,
- },
- //돌발확인시각
- newIncdCnfmDt = {
- box : null,
- type : 'datetime',
- column : 'incd_cnfm_dt',
- width : 170,
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- value : new Date()
- },
- //돌발 유형 코드
- newIncdTypeClsfCd = {
- box : null,
- column : 'incd_type_clsf_cd',
- items : incdTypeClsfCdData,
- type : 'select',
- width : 180,
- method : function(){
- incdTypeCdData = setDetailCd( incdTypeCdData, newIncdTypeCd, newIncdTypeClsfCd, 'idtu');
- }
- },
- //돌발제목
- newIncdTitl = {
- box : null,
- column : 'incd_titl',
- type : 'text',
- width : 500,
- max : 400,
- must : '돌발제목',
- },
- //돌발시작시각
- newIncdStrtDt = {
- box : null,
- type : 'datetime',
- column : 'incd_strt_dt',
- width : 170,
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- value : new Date()
- },
- //종료예정시각
- newIncdEndPrarDt = {
- box : null,
- type : 'datetime',
- column : 'incd_end_prar_dt',
- width : 170,
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- value : new Date(new Date().setDate(new Date().getDate()+1)),
- },
- ]
- //진행상황처리
- const prcdInputArr = [
- //돌발 ID
- prcdIncdOccrId = {
- box : null,
- type : 'text',
- column : 'incd_ocrr_id',
- readOnly : true,
- width : 200,
- },
- //등록일시
- prcdRgstDt = {
- box : null,
- type : 'datetime',
- column : 'rgst_dt',
- readOnly : true,
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- width : 200,
- },
- //돌발구분코드
- prcdIncdOrgnCd = {
- box : null,
- type : 'select',
- column : 'incd_orgn_cd',
- width : 180,
- items : incdOrgnCdData,
- must : '돌발구분',
- },
- //발생위치설명
- prcdOcrrLctnNm = {
- box : null,
- type : 'text',
- column : 'ocrr_lctn_nm',
- width : 500,
- must : '발생위치설명',
- max : 100,
- },
- //돌발상황설명
- prcdIncdExpl = {
- box : null,
- type : 'text',
- column : 'incd_expl',
- width : 600,
- must : '돌발상황설명',
- max : 600,
- },
- //소통상황코드
- prcdCmtrGradCd = {
- box : null,
- type : 'select',
- column : 'cmtr_grad_cd',
- items : cmtrGradCdData,
- width : 180,
- },
- //제보자명
- prcdIfmrNm = {
- box : null,
- type : 'text',
- column : 'ifmr_nm',
- width : 250,
- max : 20,
- },
- //확인방법 코드
- prcdIncdCnfmMthdCd = {
- box : null,
- type : 'select',
- column : 'incd_cnfm_mthd_cd',
- items : incdCnfmMthdCdData,
- width : 250,
- must : '확인방법',
- },
- //심각도 코드
- prcdIncdSernCd = {
- box : null,
- column : 'incd_sern_cd',
- items : incdSernCdData,
- type : 'select',
- width : 250,
- must : '심각도',
- },
- //돌발 세부 유형 코드
- prcdIncdTypeCd = {
- box : null,
- column : 'incd_type_cd',
- items : incdTypeCdData,
- type : 'select',
- width : 200,
- must : '돌발세부유형',
- },
- //돌발 유형 코드
- prcdIncdTypeClsfCd = {
- box : null,
- column : 'incd_type_clsf_cd',
- items : incdTypeClsfCdData,
- type : 'select',
- width : 200,
- must : '돌발유형',
- method : function(){
- incdTypeCdData = setDetailCd( incdTypeCdData, prcdIncdTypeCd, prcdIncdTypeClsfCd, 'idtu');
- }
- },
- //돌발제목
- prcdIncdTitl = {
- box : null,
- column : 'incd_titl',
- type : 'text',
- width : 600,
- must : '돌발제목',
- max : 400,
- },
- //돌발시작시각
- prcdIncdStrtDt = {
- box : null,
- type : 'datetime',
- column : 'incd_strt_dt',
- width : 170,
- displayFormat : 'yyyy-MM-dd',
- must : '돌발시작시각',
- },
- //종료예정시각
- prcdIncdEndPrarDt = {
- box : null,
- type : 'datetime',
- column : 'incd_end_prar_dt',
- width : 170,
- displayFormat : 'yyyy-MM-dd',
- must : '종료예정시각',
- },
- //링크ID
- prcdLinkId = {
- box : null,
- type : 'text',
- column : 'link_id',
- width : 280,
- readOnly : true,
- must : '발생구간(링크)',
- },
- //x좌표
- prcdXcrdn = {
- box : null,
- type : 'text',
- column : 'x_crdn',
- width : 170,
- value : '0.000000',
- must : '발생좌표(X)',
- max : 11,
- method : function(text){
- crdnChanges(text, 3);
- },
- },
- //y좌표
- prcdYcrdn = {
- box : null,
- type : 'text',
- column : 'y_crdn',
- width : 170,
- value : '0.000000',
- must : '발생좌표(Y)',
- max : 10,
- method : function(text){
- crdnChanges(text, 2);
- },
- },
- //vms 표출여부
- prcdVmsDsplYn = {
- box : null,
- type : 'check',
- value : false,
- column : 'vms_dspl_yn',
- text : 'VMS 표출',
- width : 170,
- method : function(){
- const checkYn = getValue(prcdVmsDsplYn.box)
- vmsListBtn.option('disabled', !checkYn);
- prcdStrtLctnNm.box.option('disabled', !checkYn);
- prcdEndLctnNm.box.option('disabled', !checkYn);
- prcdVmsIncdTypeCd.box.option('disabled', !checkYn);
- prcdVmsIncdDetlTypeCd.box.option('disabled', !checkYn);
- }
- },
- //vms 시점명
- prcdStrtLctnNm = {
- box : null,
- type : 'text',
- column : 'strt_lctn_nm',
- width : 120,
- placeholder : '시점명',
- max : 10,
- },
- //vms 종점명
- prcdEndLctnNm = {
- box : null,
- type : 'text',
- column : 'end_lctn_nm',
- width : 120,
- placeholder : '종점명',
- max : 10,
- },
- //vms 돌발유형
- prcdVmsIncdTypeCd = {
- box : null,
- type : 'select',
- items : vmsClsfCdData,
- column : 'vms_incd_type_cd',
- width : 150,
- method : function(){
- vmsCdData = setDetailCd( vmsCdData, prcdVmsIncdDetlTypeCd, prcdVmsIncdTypeCd, 'vit');
- }
- },
- //vms 돌발 세부유형
- prcdVmsIncdDetlTypeCd = {
- box : null,
- type : 'select',
- items : [],
- column : 'vms_incd_detl_type_cd',
- width : 150,
- },
- //발생차로 갓길
- prcdIncdOcrrLane0 = {
- box : null,
- type : 'check',
- column : 'incd_ocrr_lane_0',
- value : false,
- width : 170,
- text : '갓길'
- },
- //발생차로 1
- prcdIncdOcrrLane1 = {
- box : null,
- type : 'check',
- column : 'incd_ocrr_lane_1',
- value : false,
- width : 170,
- text : '1'
- },
- //발생차로 2
- prcdIncdOcrrLane2 = {
- box : null,
- type : 'check',
- column : 'incd_ocrr_lane_2',
- value : false,
- width : 170,
- text : '2'
- },
- //발생차로 3
- prcdIncdOcrrLane3 = {
- box : null,
- type : 'check',
- column : 'incd_ocrr_lane_3',
- value : false,
- width : 170,
- text : '3'
- },
- //발생차로 4
- prcdIncdOcrrLane4 = {
- box : null,
- type : 'check',
- column : 'incd_ocrr_lane_4',
- value : false,
- width : 4,
- text : '4'
- },
- //발생차로 5
- prcdIncdOcrrLane5 = {
- box : null,
- type : 'check',
- column : 'incd_ocrr_lane_5',
- value : false,
- width : 5,
- text : '5'
- },
- //폐쇄차로 갓길
- prcdIncdClsrLane0 = {
- box : null,
- type : 'check',
- column : 'incd_clsr_lane_0',
- value : false,
- text : '갓길'
- },
- //폐쇄차로 1
- prcdIncdClsrLane1 = {
- box : null,
- type : 'check',
- column : 'incd_clsr_lane_1',
- value : false,
- text : '1'
- },
- //폐쇄차로 2
- prcdIncdClsrLane2 = {
- box : null,
- type : 'check',
- column : 'incd_clsr_lane_2',
- value : false,
- text : '2'
- },
- //폐쇄차로 3
- prcdIncdClsrLane3 = {
- box : null,
- type : 'check',
- column : 'incd_clsr_lane_3',
- value : false,
- text : '3'
- },
- //폐쇄차로 4
- prcdIncdClsrLane4 = {
- box : null,
- type : 'check',
- column : 'incd_clsr_lane_4',
- value : false,
- text : '4'
- },
- //폐쇄차로 5
- prcdIncdClsrLane5 = {
- box : null,
- type : 'check',
- column : 'incd_clsr_lane_5',
- value : false,
- text : '5'
- },
- //소형차량대수
- prcdSmltVhclUnum = {
- box : null,
- type : 'number',
- column : 'smlt_vhcl_unum',
- value : '0',
- width : 80,
- },
- //중대형차량대수
- prcdMdltVhclUnum = {
- box : null,
- type : 'number',
- column : 'mdlt_vhcl_unum',
- value : '0',
- width : 80,
- },
- //부상자수
- prcdInjrPnum = {
- box : null,
- type : 'number',
- column : 'injr_pnum',
- value : '0',
- width : 80,
- },
- //사망자수
- prcdFtltPnum = {
- box : null,
- type : 'number',
- column : 'ftlt_pnum',
- value : '0',
- width : 80,
- },
- //지체길이
- prcdDelyLngt = {
- box : null,
- type : 'number',
- column : 'dely_lngt',
- value : '0',
- width : 90,
- },
- //발생길이
- prcdIncdLngt = {
- box : null,
- type : 'number',
- column : 'incd_lngt',
- value : '0',
- width : 90,
- },
- //기상조건 코드
- prcdWthrCd = {
- box : null,
- type : 'select',
- column : 'wthr_cd',
- items : wthrCdData,
- width : 110,
- },
- //대응수준 코드
- prcdRespLvlCd = {
- box : null,
- type : 'select',
- column : 'resp_lvl_cd',
- items : respLvlCdData,
- width : 110,
- },
- //고장차량여부
- prcdTrubVhclYn = {
- box : null,
- type : 'check',
- column : 'trub_vhcl_yn',
- value : false,
- width : 100,
- text : '고장차량'
- },
- //낙하물여부
- prcdFaltYn = {
- box : null,
- type : 'check',
- column : 'falt_yn',
- value : false,
- width : 100,
- text : '낙하물'
- },
- //화재위험물여부
- prcdFrwtYn = {
- box : null,
- type : 'check',
- column : 'frwt_yn',
- value : false,
- width : 100,
- text : '화재위험물'
- },
- ]
- //돌빌 종료 처리 input
- const endInputArr = [
- //돌발 ID
- endIncdOccrId = {
- box : null,
- type : 'text',
- column : 'incd_ocrr_id',
- readOnly : true,
- width : 200,
- },
- //등록일시
- endRgstDt = {
- box : null,
- type : 'datetime',
- column : 'rgst_dt',
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- readOnly : true,
- width : 200,
- },
- //돌발구분코드
- endIncdOrgnCd = {
- box : null,
- type : 'select',
- column : 'incd_orgn_cd',
- readOnly : true,
- width : 180,
- items : incdOrgnCdData,
- },
- //발생위치설명
- endOcrrLctnNm = {
- box : null,
- type : 'text',
- readOnly : true,
- column : 'ocrr_lctn_nm',
- width : 500,
- },
- //돌발상황설명
- endIncdExpl = {
- box : null,
- type : 'text',
- readOnly : true,
- column : 'incd_expl',
- width : 600,
- },
- //소통상황코드
- endCmtrGradCd = {
- box : null,
- type : 'select',
- column : 'cmtr_grad_cd',
- readOnly : true,
- items : cmtrGradCdData,
- width : 180,
- },
- //대응수준코드
- endRespLvlCd = {
- box : null,
- type : 'select',
- column : 'resp_lvl_cd',
- readOnly : true,
- items : respLvlCdData,
- width : 180,
- },
- //링크ID
- endLinkId = {
- box : null,
- type : 'text',
- column : 'link_id',
- readOnly : true,
- width : 280,
- readOnly : true,
- },
- //x좌표
- endXcrdn = {
- box : null,
- type : 'text',
- column : 'x_crdn',
- readOnly : true,
- width : 170,
- value : '0.000000',
- },
- //y좌표
- endYcrdn = {
- box : null,
- type : 'text',
- column : 'y_crdn',
- readOnly : true,
- width : 170,
- value : '0.000000',
- },
- //제보자명
- endIfmrNm = {
- box : null,
- type : 'text',
- column : 'ifmr_nm',
- readOnly : true,
- width : 250,
- },
- //확인방법 코드
- endIncdCnfmMthdCd = {
- box : null,
- type : 'select',
- column : 'incd_cnfm_mthd_cd',
- readOnly : true,
- items : incdCnfmMthdCdData,
- width : 250,
- },
- //심각도 코드
- endIncdSernCd = {
- box : null,
- column : 'incd_sern_cd',
- readOnly : true,
- items : incdSernCdData,
- type : 'select',
- width : 250,
- },
- //돌발 세부 유형 코드
- endIncdTypeCd = {
- box : null,
- column : 'incd_type_cd',
- readOnly : true,
- items : incdTypeCdData,
- type : 'select',
- width : 200,
- },
- //돌발 유형 코드
- endIncdTypeClsfCd = {
- box : null,
- column : 'incd_type_clsf_cd',
- readOnly : true,
- items : incdTypeClsfCdData,
- type : 'select',
- width : 200,
- method : function(){
- incdTypeCdData = setDetailCd( incdTypeCdData, endIncdTypeCd, endIncdTypeClsfCd, 'idtu');
- }
- },
- //돌발제목
- endIncdTitl = {
- box : null,
- column : 'incd_titl',
- readOnly : true,
- type : 'text',
- width : 500,
- },
- //돌발시작시각
- endIncdStrtDt = {
- box : null,
- type : 'datetime',
- column : 'incd_strt_dt',
- width : 170,
- readOnly : true,
- displayFormat : 'yyyy-MM-dd',
- },
- //종료예정시각
- endIncdEndPrarDt = {
- box : null,
- type : 'datetime',
- column : 'incd_end_prar_dt',
- width : 170,
- readOnly : true,
- displayFormat : 'yyyy-MM-dd',
- },
- //돌발 종료 확인 방법 코드
- endIncdEndCnfmMthdCd = {
- box : null,
- column : 'incd_end_cnfm_mthd_cd',
- items : incdEndCnfmMthdCdData,
- type : 'select',
- must : '돌발종료확인방법',
- width : 250,
- },
- //돌발종료시각
- endIncdEndDt = {
- box : null,
- type : 'datetime',
- column : 'incd_end_dt',
- width : 250,
- must : '돌발종료시각',
- displayFormat : 'yyyy-MM-dd HH:mm:ss',
- },
- //출동장비내용
- endMblzEqpmCont = {
- box : null,
- column : 'mblz_eqpm_cont',
- type : 'text',
- width : 500,
- },
- //복구 내용
- endRecrCont = {
- box : null,
- column : 'recr_cont',
- type : 'text',
- width : 500,
- },
- //출동 인원수
- endMblzPnum = {
- box : null,
- type : 'number',
- column : 'mblz_pnum',
- width : 80,
- value : '0'
- },
- //복구기간
- endRecrPerd = {
- box : null,
- type : 'number',
- column : 'recr_perd',
- width : 80,
- value : '0'
- },
- ]
- //버튼 배열
- const btnArr = [
- locationBtn = {
- box : null,
- text : '위치보기',
- class : 'location-btn',
- icon : 'globe',
- new : {
- visible : true,
- disabled : true,
- click : {visible:true, disabled:true},
- cancle : {visible:true, disabled:true},
- },
- prcd : {
- visible : true,
- disabled : true,
- },
- end : {
- visible : true,
- disabled : true,
- },
- },
- createBtn = {
- box : null,
- text : '신규등록',
- icon : 'plus',
- new : {
- visible : true,
- disabled : false,
- click : {visible:false, disabled:false},
- cancle : {visible:true, disabled:false},
- },
- prcd : {
- visible : false,
- disabled : false,
- },
- end : {
- visible : false,
- disabled : false,
- },
- class : 'create-btn',
- method : function(){
- //id 조회 필요
- let newId =[];
- getData('/api/manage/incident/new-id', newId);
- setValue(newIncdOccrId.box, newId[0].incd_ocrr_id)
- setValue(newRgstDt.box, new Date());
-
- btnArr.map((item)=>{
- if(item.new.click){
- item.box.option('disabled', item.new.click.disabled);
- item.box.option('visible', item.new.click.visible);
- }
- })
-
- eventOn( newInputArr );
- }
- },
- cancleBtn = {
- box : null,
- text : '등록취소',
- icon : 'undo',
- new : {
- visible : false,
- disabled : false,
- click : {visible:true, disabled:false},
- cancle : {visible:false, disabled:false},
- },
- prcd : {
- visible : false,
- disabled : false,
- },
- end : {
- visible : false,
- disabled : false,
- },
- class : 'cancle-btn',
- method : function(){
- eventOff(newInputArr);
- btnArr.map((item)=>{
- if(item.new.cancle){
- item.box.option('visible', item.new.cancle.visible);
- item.box.option('disabled', item.new.cancle.disabled);
- }
- })
- }
- },
- missBtn = {
- box : null,
- text : '오보판정',
- icon : 'edit',
- class : 'miss-btn',
- new : {
- visible : true,
- disabled : true,
- click : {visible:true, disabled:true},
- cancle : {visible:true, disabled:true},
- },
- prcd : {
- visible : true,
- disabled : true,
- click : {visible:true, disabled:false},
- cancle : {visible:true, disabled:true},
- },
- end : {
- visible : false,
- disabled : true,
- },
- },
- incdCfrmBtn = {
- box : null,
- text : '돌발확정',
- icon : 'save',
- new : {
- visible : true,
- disabled : true,
- click : {visible:true, disabled:false},
- cancle : {visible:true, disabled:true},
- },
- prcd : {
- visible : false,
- disabled : true,
- },
- end : {
- visible : false,
- disabled : true,
- },
- class : 'incd-cfrm-btn',
- method : function(){
- let updateData = {};
- for(idx in newInputArr){
- if(newInputArr[idx].must && nullChecker(getValue(newInputArr[idx].box)).trim() === ""){
- alertWarning('입력되지 않은 정보가 있습니다. [' + newInputArr[idx].must + ']', null, newInputArr[idx].box);
- return false;
- }
- updateData[newInputArr[idx].column] = getValue(newInputArr[idx].box);
- }
- updateData['incd_prgr_step_cd'] = 'ISS2';
- updateData['utis_cnct_yn'] = 'N';
-
- sendDateFormat(updateData);
- let result = postInsertUpdate(commonUri + '/' + getValue(newIncdOccrId.box), updateData);
- if (result > 0) {
- insResultMsg('신규' + pageMsg);
- refreshIncd();
-
- eventOff(newInputArr);
- }
- }
- },
- incdInfoCfrmBtn = {
- box : null,
- text : '정보등록',
- icon : 'save',
- new : {
- visible : false,
- disabled : false,
- },
- prcd : {
- visible : true,
- disabled : true,
- },
- end : {
- visible : false,
- disabled : false,
- },
- class : 'incd-info-cfrm-btn',
- method : function(){
- const vmsData = [
- 'cmtr_grad_cd',
- 'end_lctn_nm',
- 'incd_end_prar_dt',
- 'incd_ocrr_id',
- 'incd_prgr_step_cd',
- 'incd_strt_dt',
- 'link_id',
- 'ocrr_lctn_nm',
- 'strt_lctn_nm',
- 'vms_incd_detl_type_cd',
- 'vms_incd_type_cd',
- 'vms_dspl_yn',
- ];
-
- let error = false;
- let updateCheck = [ 'falt_yn', 'frwt_yn', 'trub_vhcl_yn', 'vms_dspl_yn' ];
- let vmsUpdateData = {};
- let updateData = {...getInstance(prcdIncdTable).getSelectedRowsData()[0]};
- for(idx in prcdInputArr){
- const input = prcdInputArr[idx];
- const value = getValue(input.box);
- switch (true) {
- case input.must && nullChecker(value).trim() === "":
- alertWarning('입력되지 않은 정보가 있습니다. [' + input.must + ']', null, input.box);
- error = true;
- break;
- case input.type === 'check' :
- if (updateCheck.includes(input.column))updateData[input.column] = getCheckData(input.box);
- if (vmsData.includes(input.column))vmsUpdateData[input.column] = getCheckData(input.box);
- break;
- case input.type !== 'check':
- updateData[input.column] = value;
- if (vmsData.includes(input.column))vmsUpdateData[input.column] = value;
- break;
- default:
- break;
- }
- }
- if (error) return false;
- updateData['incd_ocrr_lane'] = getLaneVal(incdOcrrLaneArr);
- updateData['incd_clsr_lane'] = getLaneVal(incdClsrLaneArr);
- vmsUpdateData['incd_clsr_lane'] = updateData['incd_clsr_lane'];
- if (isNaN(updateData.link_id)){
- updateData.link_id = Number(updateData.link_id.substring(updateData.link_id.indexOf('[')+1,updateData.link_id.indexOf(']')));
- vmsUpdateData.link_id = updateData.link_id
- };
- updateData = sendDateFormat(updateData);
- vmsUpdateData = sendDateFormat(vmsUpdateData);
- let resultCnt = 0;
-
- if (updateData.vms_dspl_yn){
- resultCnt = postInsertUpdate(commonUri + '/vms/incd/'+ vmsUpdateData.incd_ocrr_id, vmsUpdateData);
- }
-
- resultCnt += postInsertUpdate(commonUri + '/' + updateData.incd_ocrr_id, updateData);
- if (resultCnt > 0) {
- insResultMsg(pageMsg + '진행상황');
- refreshIncd();
- eventOff(prcdInputArr);
- }
- }
- },
- refreshBtn = {
- box : null,
- text : '초기화',
- icon : 'refresh',
- new : {
- visible : false,
- disabled : false,
- },
- prcd : {
- visible : true,
- disabled : true,
- },
- end : {
- visible : true,
- disabled : true,
- },
- class : 'refresh-btn',
- },
- incdEndBtn = {
- box : null,
- text : '돌발종료',
- icon : 'save',
- new : {
- visible : false,
- disabled : false,
- },
- prcd : {
- visible : false,
- disabled : false,
- },
- end : {
- visible : true,
- disabled : true,
- },
- class : 'incd-end-btn',
- method : function(){
- let updateData = {...getInstance(endIncdTable).getSelectedRowsData()[0]};
- let endColumns = [
- 'incd_end_dt',
- 'incd_end_cnfm_mthd_cd',
- 'mblz_eqpm_cont',
- 'recr_cont',
- 'mblz_pnum',
- 'recr_perd'
- ];
-
- for(idx in endInputArr){
- const input = endInputArr[idx];
- const value = getValue(input.box);
- if(input.must && nullChecker(value).trim() === "") {
- alertWarning('입력되지 않은 정보가 있습니다. [' + input.must + ']', null, input.box);
- return false;
- }
- else if(endColumns.includes(input.column)){
- updateData[input.column] = value;
- }
- }
- updateData['incd_prgr_step_cd'] = 'ISS3';
- if (isNaN(updateData.link_id)){
- updateData.link_id = Number(updateData.link_id.substring(updateData.link_id.indexOf('[')+1, updateData.link_id.indexOf(']')));
- };
- updateData = sendDateFormat(updateData);
- let resultCnt = 0;
- resultCnt += postInsertUpdate(commonUri + '/' + updateData.incd_ocrr_id, updateData);
-
- if (resultCnt > 0) {
- insResultMsg(pageMsg + '종료 처리');
- refreshIncd();
- eventOff(endInputArr);
- }
- }
- },
-
- ]
- //이력 조회 배열
- const historyArr = [
- historyCheck = {
- class : 'history-check',
- box : null,
- text : '이력조회',
- disabled : false,
- type : 'check',
- method : function(e){
- historyArr.map((item)=>{
- if(item.class !== 'history-check') item.box.option('disabled', !item.box.option('disabled'));
- })
- if(!getValue(historyCheck.box)) endIncdTable.dxDataGrid('instance').option('dataSource', procData[0]);
- }
- },
- historyStrtDt = {
- class : 'history-strt-dt',
- type : 'date',
- width : 120,
- box : null,
- displayFormat : 'yyyy-MM-dd',
- value : new Date().setMonth( new Date().getMonth() - 1),
- },
- historyStrtTime = {
- class : 'history-strt-time',
- type : 'time',
- displayFormat : 'HH',
- width : 70,
- interval : 60,
- value : firstSettingTime,
- box : null,
- },
- historyEndDt = {
- class : 'history-end-dt',
- type : 'date',
- width : 120,
- box : null,
- displayFormat : 'yyyy-MM-dd',
- value : new Date(),
- },
- historyEndTime = {
- class : 'history-end-time',
- box : null,
- width : 70,
- type : 'time',
- displayFormat : 'HH',
- value : new Date().getTime(),
- interval : 60,
- },
- historySearchBtn = {
- class : 'history-search-btn',
- box : null,
- icon : 'refresh',
- type : 'button',
- text : '조회',
- method : function(){
- if(!validationCheck(historyStrtDt.box, historyEndDt.box, historyStrtTime.box, historyEndTime.box)) return false;
- let FROM_DT = getDate(getValue(historyStrtDt.box),getValue(historyStrtTime.box)).substring(0,10);
- let TO_DT = getDate(getValue(historyEndDt.box),getValue(historyEndTime.box)).substring(0,10);
- let searchData = {};
- searchData['FROM_DT'] = FROM_DT;
- searchData['TO_DT'] = TO_DT;
- let historyData = [];
- historyData = formatData('', historyData, searchData);
- endIncdTable.dxDataGrid('instance').option('dataSource',historyData[0]);
- }
- },
- ]
- const toggleArr = [
- {
- box : null,
- formNm : 'new',
- formToggle : 'toggle-down',
- tabToggle : 'toggle'
- },
- {
- box : null,
- formNm : 'prcd',
- formToggle : 'toggle-down',
- tabToggle : 'toggle'
- },
- {
- box : null,
- formNm : 'end',
- formToggle : 'end-toggle-down',
- tabToggle : 'end-toggle'
- }
- ]
- autoIncdData = formatData( '/auto', autoIncdData );
- procData = formatData( '/progress', procData );
- newIncdData = formatData( '/registered', newIncdData );
- $(()=>{
- init();
- $('body').on('click',function(){
- $(".add-select-btn").addClass('dpl-none');
- })
- //추가 버튼 목록에서 선택
- $(".add-select-btn > div:nth-child(1)").on('click',function(){
- event.stopPropagation();
- window.open('./incident-popup-link.html', '목록 구간', listOption);
- $(".add-select-btn").addClass('dpl-none');
- })
-
- //추가 버튼 맵에서 선택
- $(".add-select-btn > div:nth-child(2)").on('click',function(){
- event.stopPropagation();
- window.open('./incident-popup-map.html', '지도 구간', mapOption);
- $(".add-select-btn").addClass('dpl-none');
- })
- })
- function init(){
- //화면 텍스트 상자 세팅
- setViewInputArray( newInputArr, 'new' );
- setViewInputArray( prcdInputArr, 'prcd' );
- setViewInputArray( endInputArr, 'end' );
-
- //차로 정보 Array
- incdOcrrLaneArr.push(prcdIncdOcrrLane0, prcdIncdOcrrLane1, prcdIncdOcrrLane2, prcdIncdOcrrLane3, prcdIncdOcrrLane4, prcdIncdOcrrLane5);
- incdClsrLaneArr.push(prcdIncdClsrLane0, prcdIncdClsrLane1, prcdIncdClsrLane2, prcdIncdClsrLane3, prcdIncdClsrLane4, prcdIncdClsrLane5);
-
- //이력 정보 세팅
- historyArr.map((item)=>{
- switch (item.type) {
- case 'date':
- item.box = $("." + item.class).dxDateBox({
- width : item.width,
- stylingMode : 'outlined',
- height : 25,
- type : item.type,
- readOnly : item.readOnly,
- displayFormat : item.displayFormat,
- value : item.value,
- disabled : true,
- }).dxDateBox('instance');
- break;
- case 'time':
- item.box = $("." + item.class).dxDateBox({
- width : item.width,
- stylingMode : 'outlined',
- height : 25,
- type : item.type,
- readOnly : item.readOnly,
- displayFormat : item.displayFormat,
- value : item.value,
- interval : item.interval,
- disabled : true,
- }).dxDateBox('instance');
- break;
- case 'button':
- item.box = $("." + item.class).dxButton({
- stylingMode : 'outlined',
- icon : item.icon,
- height : 27,
- disabled : true,
- text : item.text,
- onClick(){
- if(item.method){
- item.method();
- }
- }
- }).dxButton('instance');
- break;
- case 'check':
- item.box = $("." + item.class).dxCheckBox({
- stylingMode : 'outlined',
- text : item.text,
- onValueChanged(){
- if(item.method){
- item.method();
- }
- }
- }).dxCheckBox('instance');
- break;
- default:
- break;
- }
- })
- prcdLinkBtn = $(".prcd-link-btn").dxButton({
- text : '선택',
- icon : 'todo',
- stylingMode : 'outlined',
- disabled : true,
- onClick(){
- event.stopPropagation();
- $('.add-select-btn').toggleClass('dpl-none');
- }
- }).dxButton('instance');
- searchBtn = $(".search-btn").dxButton({
- stylingMode : 'outlined',
- text : '조회',
- icon : 'refresh',
- onClick(){
- refreshIncd();
- }
- }).dxButton('instance');
- closeBtn = $(".close-btn").dxButton({
- stylingMode : 'outlined',
- text : '닫기',
- icon : 'close',
- onClick(){
- window.close();
- }
- }).dxButton('instance');
- vmsListBtn = $(".vms-list-btn").dxButton({
- stylingMode : 'outlined',
- text : 'VMS 목록',
- disabled : true,
- onClick(){
- window.open('./incident-popup-vms.html', '돌발구간 VMS 정보', vmsListOption);
- }
- }).dxButton('instance');
-
- btnArr.map((item)=>{
- item.box = $('.' + item.class).dxButton({
- stylingMode : 'outlined',
- text : item.text,
- icon : item.icon,
- visible : item.new.visible,
- disabled : item.new.disabled,
- onClick(){
- if(item.method){
- item.method();
- }
- }
- }).dxButton('instance');
- });
- locationBtn.box.on('click', () => lookLocation(newIncdTable));
- missBtn.box.on('click', () => missEvent(newIncdTable));
-
- prcdIncdTable = $('<div class="prcd-incd-table b1 b2 b3 b4">').width('100%').height('100%').dxDataGrid({
- dataSource : procData[0],
- allowColumnReordering : true,
- showColumnLines : true,
- allowColumnResizing : true,
- showBorders : true,
- rowAlternationEnabled : true,
- noDataText : '표출할 정보가 없습니다.',
- columnAutoWidth : true,
- selection: {
- mode: 'single',
- },
- filterRow: {
- visible: true,
- applyFilter: 'auto',
- },
- headerFilter: {
- visible: true,
- },
- grouping: {
- autoExpandAll: true,
- },
- groupPanel:{
- visible: true,
- emptyPanelText:"그룹 지을 항목을 여기에 끌어다 놓으세요"
- },
- columns:[
- {
- dataField : "incd_ocrr_id",
- caption : "ID",
- alignment : "center",
- sortIndex : 0,
- cssClass : 'padding-5'
- },
- {
- dataField : "rgst_dt",
- caption : "등록 일시",
- alignment : "center",
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss',
- cssClass : 'padding-5'
- },
- {
- dataField : "incd_orgn_cd",
- caption : "돌발상황 구분",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : incdOrgnCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "incd_titl",
- caption : "돌발상황 제목",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_type_clsf_desc",
- caption : "돌발유형",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_type_desc",
- caption : "돌발세부유형",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "ocrr_lctn_nm",
- caption : "발생 위치 설명",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_expl",
- caption : "돌발상황 상황 설명",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "cmtr_grad_cd",
- caption : "소통 등급",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : cmtrGradCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "ifmr_nm",
- caption : "제보자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_cnfm_mthd_cd",
- caption : "돌발상황 확인 방법",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : incdCnfmMthdCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "incd_sern_desc",
- caption : "심각도",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_cnfm_dt",
- caption : "돌발상황 확인일시",
- alignment : "center",
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss',
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_strt_dt",
- caption : "시작 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "incd_end_prar_dt",
- caption : "종료 예정 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "link_id",
- caption : "구간 ID",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "x_crdn",
- caption : "X 좌표",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "y_crdn",
- caption : "Y 좌표",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "incd_ocrr_lane",
- caption : "발생 차로",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "incd_clsr_lane",
- caption : "차단 차로",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "dely_lngt",
- caption : "지체 길이",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "incd_lngt",
- caption : "돌발상황 길이",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "smlt_vhcl_unum",
- caption : "소형 차량 대수",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "mdlt_vhcl_unum",
- caption : "중대형 차량 대수",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "injr_pnum",
- caption : "부상자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "ftlt_pnum",
- caption : "사망자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "wthr_cd",
- caption : "기상 상태",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : wthrCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "resp_lvl_cd",
- caption : "대응수준",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : respLvlCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "utis_cnct_yn",
- caption : "UTIS연계여부",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "trub_vhcl_yn",
- caption : "고장차량여부",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "falt_yn",
- caption : "낙하물여부",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "frwt_yn",
- caption : "화재위험물여부",
- cssClass : 'padding-5',
- alignment : "center",
- },
- {
- dataField : "trvl_lmnt_type_cd",
- caption : "통행제한유형",
- cssClass : 'padding-5',
- alignment : "center",
- lookup : {
- dataSource : trvlLmntTypeCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "vms_dspl_yn",
- caption : "VMS표출여부",
- cssClass : 'padding-5',
- alignment : "center",
- },
- ],
- onRowDblClick(e){
- console.log(e.data);
- let linkVal = "";
- let linkData = [];
- let cdData = [];
- cdData = getCodeData(cdData,'/idtu/' + e.data.incd_type_clsf_cd);
- prcdIncdTypeCd.box.option('items', cdData);
-
- if (e.data.link_id !== null) getData('/api/database/link/' + e.data.link_id, linkData );
- if (linkData.length > 0) linkVal = '[' + linkData[0].link_id + '] ' + linkData[0].from_node + ' > ' + linkData[0].to_node
- prcdInputArr.map((item)=>{
- if (item.type !== 'check'){
- let data = e.data[item.column];
- if ( linkVal !== "" && item.column === 'link_id') return item.box.option('value', linkVal);
- setValue(item.box, data);
- return
- }
- if ( e.data[item.column] === 'Y' ) return setValue(item.box, true);
- if ( e.data[item.column] === 'N' ) return setValue(item.box, false);;
- })
- let vmsData = [];
- vmsCdData = [];
- getData(commonUri + '/vms/incd/' + e.data.incd_ocrr_id, vmsData);
- if (vmsData.length > 0){
- setValue(prcdStrtLctnNm.box, vmsData[0].strt_lctn_nm);
- setValue(prcdEndLctnNm.box, vmsData[0].end_lctn_nm);
- setValue(prcdVmsIncdTypeCd.box, vmsData[0].vms_incd_type_cd);
- vmsCdData = setDetailCd( vmsCdData, prcdVmsIncdDetlTypeCd, prcdVmsIncdTypeCd, 'vit');
- setValue(prcdVmsIncdDetlTypeCd.box, vmsData[0].vms_incd_detl_type_cd)
- }
-
- setLaneVal(e.data.incd_ocrr_lane, incdOcrrLaneArr);
- setLaneVal(e.data.incd_clsr_lane, incdClsrLaneArr);
- eventOn(prcdInputArr);
- if (!getValue(prcdVmsDsplYn.box)){
- dsblOnBtn(prcdVmsIncdDetlTypeCd.box);
- dsblOnBtn(prcdVmsIncdTypeCd.box);
- dsblOnBtn(prcdStrtLctnNm.box);
- dsblOnBtn(prcdEndLctnNm.box);
- }
- }
- });
- newIncdTable = $('<div class="b1 b2 b3 b4">').width('100%').height('100%').dxDataGrid({
- dataSource : newIncdData[0],
- allowColumnReordering : true,
- showColumnLines : true,
- allowColumnResizing : true,
- showBorders : true,
- rowAlternationEnabled : true,
- columnAutoWidth : true,
- noDataText : '표출할 정보가 없습니다.',
- selection: {
- mode: 'single',
- },
- filterRow: {
- visible: true,
- applyFilter: 'auto',
- },
- headerFilter: {
- visible: true,
- },
- grouping: {
- autoExpandAll: true,
- },
- groupPanel:{
- visible: true,
- emptyPanelText:"그룹 지을 항목을 여기에 끌어다 놓으세요"
- },
- columns:[
- {
- dataField : "incd_ocrr_id",
- caption : "ID",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "date",
- caption : "등록 일시",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_orgn_cd",
- caption : "돌발상황 구분",
- alignment : "center",
- cssClass : 'padding-5',
- lookup :{
- dataSource : incdOrgnCdData,
- displayExpr : 'desc',
- value : 'code',
- }
- },
- {
- dataField : "ocrr_lctn_nm",
- caption : "발생 위치 설명",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_expl",
- caption : "돌발 상황 설명",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "cmtr_grad_cd",
- caption : "소통 등급",
- alignment : "center",
- cssClass : 'padding-5',
- lookup :{
- dataSource : cmtrGradCdData,
- displayExpr : 'desc',
- value : 'code',
- }
- },
- {
- dataField : "ifmr_nm",
- caption : "제보자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_cnfm_mthd_cd",
- caption : "돌발상황 확인 방법",
- alignment : "center",
- cssClass : 'padding-5',
- lookup :{
- dataSource : incdCnfmMthdCdData,
- displayExpr : 'desc',
- value : 'code',
- }
- },
- {
- dataField : "incd_sern_cd",
- caption : "심각도",
- alignment : "center",
- cssClass : 'padding-5',
- lookup :{
- dataSource : incdSernCdData,
- displayExpr : 'desc',
- value : 'code',
- }
- },
- {
- dataField : "incd_type_clsf_desc",
- caption : "돌발상황 유형 분류",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_type_desc",
- caption : "돌발상황 유형 세부 분류",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_cnfm_dt",
- caption : "돌발상황 확인일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss',
- },
- {
- dataField : "incd_strt_dt",
- caption : "시작 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss',
- },
- {
- dataField : "incd_end_prar_dt",
- caption : "종료 예정 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss',
- },
- ],
- onRowClick(){
- rowClickEvent('new');
- }
- });
- autoIncdTable = $('<div class="b1 b2 b3 b4">').width('100%').height('100%').dxDataGrid({
- dataSource : autoIncdData[0],
- allowColumnReordering : true,
- showColumnLines : true,
- allowColumnResizing : true,
- showBorders : true,
- rowAlternationEnabled : true,
- columnAutoWidth : true,
- visible : false,
- noDataText : '표출할 정보가 없습니다.',
- selection: {
- mode: 'single',
- },
- filterRow: {
- visible: true,
- applyFilter: 'auto',
- },
- headerFilter: {
- visible: true,
- },
- grouping: {
- autoExpandAll: true,
- },
- groupPanel:{
- visible: true,
- emptyPanelText:"그룹 지을 항목을 여기에 끌어다 놓으세요"
- },
- columns:[
- {
- dataField : "link_id",
- caption : "링크 ID",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "detc_dt",
- caption : "검지 시각",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss',
- },
- {
- dataField : "clct_sped_avrg",
- caption : "수집 평균 속도",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "estm_sped_avrg",
- caption : "예상 평균 속도",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "road_name",
- caption : "도로명",
- cssClass : 'padding-5',
- alignment : "center",
- cellTemplate(c,e){
- c.css('text-align','left');
- c.text(e.displayValue);
- }
- },
- {
- dataField : "from_node",
- caption : "시점명",
- cssClass : 'padding-5',
- alignment : "center",
- cellTemplate(c,e){
- c.css('text-align','left');
- c.text(e.displayValue);
- }
- },
- {
- dataField : "to_node",
- caption : "종점명",
- cssClass : 'padding-5',
- alignment : "center",
- cellTemplate(c,e){
- c.css('text-align','left');
- c.text(e.displayValue);
- }
- },
- ],
- onRowClick(){
- rowClickEvent('new');
- }
- });
- endIncdTable = $('<div class="b1 b2 b3 b4">').width('100%').height('100%').dxDataGrid({
- dataSource : procData[0],
- allowColumnReordering : true,
- showColumnLines : true,
- allowColumnResizing : true,
- showBorders : true,
- rowAlternationEnabled : true,
- columnAutoWidth : true,
- noDataText : '표출할 정보가 없습니다.',
- selection: {
- mode: 'single',
- },
- filterRow: {
- visible: true,
- applyFilter: 'auto',
- },
- headerFilter: {
- visible: true,
- },
- grouping: {
- autoExpandAll: true,
- },
- groupPanel:{
- visible: true,
- emptyPanelText:"그룹 지을 항목을 여기에 끌어다 놓으세요"
- },
- columns:[
- {
- dataField : "incd_ocrr_id",
- caption : "ID",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "rgst_dt",
- caption : "등록 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "incd_orgn_desc",
- caption : "돌발상황 구분",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_titl",
- caption : "돌발상황 제목",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_type_clsf_desc",
- caption : "돌발유형",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_type_desc",
- caption : "돌발세부유형",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "ocrr_lctn_nm",
- caption : "발생 위치 설명",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_expl",
- caption : "돌발상황 상황 설명",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "cmtr_grad_cd",
- caption : "소통 등급",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : cmtrGradCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "ifmr_nm",
- caption : "제보자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_cnfm_mthd_cd",
- caption : "돌발상황 확인 방법",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : incdCnfmMthdCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "incd_sern_cd",
- caption : "심각도",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : incdSernCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "incd_cnfm_dt",
- caption : "돌발상황 확인일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "incd_strt_dt",
- caption : "시작 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "incd_end_prar_dt",
- caption : "종료 예정 일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "incd_end_cnfm_mthd_cd",
- caption : "돌발상황 종료 확인방법",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : incdEndCnfmMthdCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "incd_end_dt",
- caption : "돌발상황 종료일시",
- alignment : "center",
- cssClass : 'padding-5',
- dataType : 'datetime',
- format : 'yyyy-MM-dd HH:mm:ss'
- },
- {
- dataField : "mblz_eqpm_cont",
- caption : "출동장비내용",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "mblz_pnum",
- caption : "출동인원수",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "recr_cont",
- caption : "복구내용",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "recr_perd",
- caption : "복구기간(분)",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "link_id",
- caption : "구간 ID",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "x_crdn",
- caption : "X 좌표",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "y_crdn",
- caption : "Y 좌표",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_ocrr_lane",
- caption : "발생 차로",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_clsr_lane",
- caption : "차단 차로",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "dely_lngt",
- caption : "지체 길이",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "incd_lngt",
- caption : "돌발상황 길이",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "smlt_vhcl_unum",
- caption : "소형 차량 대수",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "mdlt_vhcl_unum",
- caption : "중대형 차량 대수",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "injr_pnum",
- caption : "부상자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "ftlt_pnum",
- caption : "사망자",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "wthr_cd",
- caption : "기상 상태",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "resp_lvl_cd",
- caption : "대응수준",
- cssClass : 'padding-5',
- alignment : "center",
- lookup : {
- dataSource : respLvlCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "utis_cnct_yn",
- caption : "UTIS연계여부",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "trub_vhcl_yn",
- caption : "고장차량여부",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "falt_yn",
- caption : "낙하물여부",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "frwt_yn",
- caption : "화재위험물여부",
- alignment : "center",
- cssClass : 'padding-5',
- },
- {
- dataField : "trvl_lmnt_type_cd",
- caption : "통행제한유형",
- alignment : "center",
- cssClass : 'padding-5',
- lookup : {
- dataSource : trvlLmntTypeCdData,
- displayExpr : 'desc',
- valueExpr : 'code',
- }
- },
- {
- dataField : "vms_dspl_yn",
- caption : "VMS표출여부",
- alignment : "center",
- cssClass : 'padding-5',
- },
- ],
- onRowDblClick(e){
- let cdData = [];
- let linkData = [];
- let linkVal = '';
- cdData = getCodeData(cdData, '/idtu/' + e.data.incd_type_clsf_cd);
- if (e.data.link_id !== null) getData('/api/database/link/' + e.data.link_id, linkData );
- if (linkData.length > 0) linkVal = '[' + linkData[0].link_id + '] ' + linkData[0].from_node + ' > ' + linkData[0].to_node
- endIncdTypeCd.box.option('items', cdData);
- endInputArr.map((item)=>{
- let data = e.data[item.column];
- if ( linkVal !== "" && item.column === 'link_id') return item.box.option('value', linkVal);
- if( data === 'Y') return setValue(item.box, true);
- if( data === 'N') return setValue(item.box, false);
- setValue(item.box, data);
- })
- endIncdEndDt.box.option('value', new Date());
- eventOn(endInputArr);
- },
- });
- const newContainer = $(`<div class='table-container'>
- <div class='table-tabs b1 b2 b3'>
- <div class='selected-tabs'>외부연계기관 돌발</div>
- <div>자동 돌발</div>
- </div>
- <div class='tab-table-box'>
- </div>
- </div>`);
- const newTbLctn = $(newContainer).children().eq(1);
- const pcrdCont = $('<div style="width:100%; height : calc(100% - 30px); padding:3px;"></div>');
- const EndCont = $('<div style="width:100%; height : calc(100% - 30px); padding:3px;"></div>');
- toggleArr.map((item)=>{
- item.box = setToggleBtn(item.formNm, item.formToggle, item.tabToggle);
- })
- $('.incident-tabs').dxTabPanel({
- dataSource:[
- {
- id : 'new',
- array : newInputArr,
- name : '신규 돌발 등록',
- title : '외부연계기관',
- table : [newIncdTable, autoIncdTable],
- form : $(".new-incd-form"),
- lctn : newTbLctn,
- container : newContainer,
- sizeClass : 'new-incd-height',
- click : true,
- },
- {
- id : 'prcd',
- array : prcdInputArr,
- name : '돌발 진행상황 처리',
- table : [prcdIncdTable],
- title : '등록된',
- form : $(".prcd-incd-form"),
- lctn : $(pcrdCont),
- container : pcrdCont,
- sizeClass : 'prcd-incd-height',
- click : false,
- },
- {
- id : 'end',
- array : endInputArr,
- name : '돌발 종료 처리',
- table : [endIncdTable],
- title : '등록된',
- container : EndCont,
- lctn : $(EndCont),
- form : $(".end-incd-form"),
- sizeClass : 'end-incd-height',
- click : false,
- },
- ],
- selectIndex:0,
- loop:false,
- animationEnabled: true,
- swipeEnabled: false,
- itemTitleTemplate: function(e){
- return $('<div style="height:29px; line-height:29px;">'+e.name+'</div>')
- },
- itemTemplate: function( e, idx, c ){
- c.css({width:'100%',height: '100%'})
- let div = $(`<div class="tab-serve-title b1 b2">${e.title} 돌발목록 (목록에서 더블클릭으로 돌발정보 선택)</div>`);
-
- e.table.map((item)=>{
- e.lctn.append(item);
- })
- e.container.append(e.lctn);
- c.append(div, e.container);
- if(e.click){
- tabEvent( e.container, div, 0, e.table[0], e.table[1]);
- tabEvent( e.container, div, 1, e.table[1], e.table[0]);
- }
-
- },
- onSelectionChanged(e){
- //화면 전환 인덱스
- $('.selected-index').text(e.component.option('selectedIndex') + 1);
-
- //토글 상태 초기화
- toggleInit();
-
- //선택 화면 데이터
- const selectItem = e.addedItems[0];
-
- //전 화면 데이터
- const beforeItem = e.removedItems[0];
-
- //탭 테이블
- const table = getInstance(selectItem.table[0]);
- //탭에 따른 폼 변경 및 높이 세팅
- beforeItem.form.css('display', 'none');
- selectItem.form.css('display', 'block');
- $('.incident-tabs').addClass(selectItem.sizeClass);
- $('.incident-tabs').removeClass(beforeItem.sizeClass);
- //첫번째 탭일때 탭 내부 탭 초기화
- if( selectItem.click ){
- selectItem.container.children().eq(0).children().eq(0).click();
- }
- //탭에 따른 버튼 보이기/감추기
- btnArr.map((item)=>{
- item.box.option('visible', item[selectItem.id].visible);
- item.box.option('disabled', item[selectItem.id].disabled);
- })
- //이벤트 초기화
- eventOff(selectItem.array);
- setDetailCd(incdTypeCdData, newIncdTypeCd, newIncdTypeClsfCd, 'idtu' );
- setBtnEvent(table, selectItem.array);
- table.clearSelection();
- },
- }).dxTabPanel('instance');
- }
- function getInstance(box){
- return box.dxDataGrid('instance');
- }
- function arrayInit(array){
- array.map((item)=>{
- item.box.option('value', item.value);
- });
- }
- function eventOn(array){
- array.map((item)=>{
- item.box.option('disabled', false);
- });
- dsblOffBtn(prcdLinkBtn);
- if(array === newInputArr){
- btnArr.map((item)=>{
- if(item.new.click){
- item.box.option('visible', item.new.click.visible);
- item.box.option('disabled', item.new.click.disabled);
- }
- })
- return false;
- }
- btnArr.map((item)=>{
- item.box.option('disabled', false);
- })
- }
- function eventOff(array){
- array.map((item)=>{
- item.box.option('disabled', true);
- })
- arrayInit(array);
- dsblOnBtn(prcdLinkBtn);
- if(array === newInputArr){
- btnArr.map((item)=>{
- if(item.new.cancle){
- item.box.option('visible', item.new.cancle.visible);
- item.box.option('disabled', item.new.cancle.disabled);
- }
- })
- return false;
- }
- btnArr.map((item)=>{
- item.box.option('disabled', true);
- })
- }
- function codeSorting(array){
- array.sort(function(a, b) {
- if(!isNaN(a.code))return Number(a.code) < Number(b.code) ? -1 : Number(a.code) > Number(b.code) ? 1 : 0;
- return a.code < b.code ? -1 : a.code > b.code ? 1 : 0;
- });
- }
- function getCodeData(array, uri){
- getData( commonUri + '/code' + uri, array);
- if(array.length > 0 ){
- codeSorting(array[0]);
- return array[0];
- }
- return array
- }
- function setViewInputArray( array, classNm ){
- array.map((item)=>{
- switch (item.type) {
- case 'text':
- item.box = $("." + classNm + "_" + item.column).dxTextBox({
- width : item.width,
- height : 30,
- stylingMode : 'outlined',
- readOnly : item.readOnly,
- value : item.value,
- placeholder : item.placeholder,
- disabled : true,
- maxLength : item.max,
- onValueChanged(e){
- if(item.method){
- item.method(e);
- }
- }
- }).dxTextBox('instance');
- break;
- case 'datetime':
- item.box = $("." + classNm + "_" + item.column).dxDateBox({
- width : item.width,
- stylingMode : 'outlined',
- height : 30,
- type : item.type,
- readOnly : item.readOnly,
- displayFormat : item.displayFormat,
- value : item.value,
- disabled : true,
- }).dxDateBox('instance');
- break;
- case 'select':
- item.box = $("." + classNm + "_" + item.column).dxSelectBox({
- width : item.width,
- stylingMode : 'outlined',
- height : 30,
- readOnly : item.readOnly,
- items : item.items,
- displayExpr : 'desc',
- valueExpr : 'code',
- disabled : true,
- }).dxSelectBox('instance')
-
- if(item.items.length > 0) item.box.option('value',item.items[0].code);
- if(item.method)item.box.on('itemClick',()=>{
- item.method();
- })
- break;
- case 'number':
- item.box = $("." + classNm + "_" + item.column).dxNumberBox({
- stylingMode : 'outlined',
- showSpinButtons : true,
- readOnly : item.readOnly,
- width : item.width,
- mode : "text",
- height : 30,
- disabled : true,
- min : 0,
- max : 99999,
- }).dxNumberBox('instance');
- item.box.on('valueChanged',(e)=>{
- if(e.value === null) setValue(e.component,'0')
- })
- break;
- case 'check':
- item.box = $("." + classNm + "_" + item.column).dxCheckBox({
- stylingMode : 'outlined',
- text : item.text,
- readOnly : item.readOnly,
- disabled : true,
- onValueChanged(){
- if(item.method){
- item.method();
- }
- }
- }).dxCheckBox('instance');
-
- break;
- default:
- break;
- }
- })
- }
- function setDetailCd( detailCdData, detailCdBox, cdBox, uri){
- detailCdData = [];
- detailCdData = getCodeData(detailCdData, '/' + uri + '/' + getValue(cdBox.box));
- detailCdBox.box.option('items', detailCdData);
- if(detailCdData.length > 0) setValue(detailCdBox.box, detailCdData[0].code);
- return detailCdData;
- }
- function refreshIncd(){
- autoIncdData = [];
- procData = [];
- newIncdData = [];
-
- autoIncdData = formatData( '/auto', autoIncdData );
- procData = formatData( '/progress', procData );
- newIncdData = formatData( '/registered', newIncdData );
- let newTb = getInstance(newIncdTable);
- let prcdTb = getInstance(prcdIncdTable);
- let endTb = getInstance(endIncdTable);
- let autoTb = getInstance(autoIncdTable);
-
- newTb.option('dataSource', newIncdData[0]);
- prcdTb.option('dataSource', procData[0]);
- endTb.option('dataSource', procData[0]);
- autoTb.option('dataSource', autoIncdData[0]);
-
- }
- function formatData(uri, data, param){
- getData(commonUri + uri, data, param);
- if(data.length > 0){
- data[0].map((item)=>{
- for(idx in dateColumns) {
- if(item[dateColumns[idx]])item[dateColumns[idx]] = new Date(getParseDateTime(item[dateColumns[idx]]));
- }
- })
- }
- return data;
- };
- function toggleInit(){
- toggleArr.map((item)=>{
- item.box.option('icon','chevrondown');
- $('.' + item.formNm + '-form').removeClass('dpl-none');
- $('.' + item.formNm + '-incd-form').removeClass(item.formToggle);
- $('.incident-tabs').removeClass(item.tabToggle);
- })
- }
- function setToggleBtn( frontNm, formToggle, tabToggle){
- let toggleBtn = $('.' + frontNm + '-toggle-btn').dxButton({
- icon : 'chevrondown',
- stylingMode : 'text',
- onClick(e){
- let icon = e.component.option('icon') === 'chevrondown'? 'chevronup':'chevrondown';
- e.component.option( 'icon', icon );
- $('.' + frontNm + '-incd-form').toggleClass(formToggle);
- $('.' + frontNm + '-form').toggleClass('dpl-none');
- $('.incident-tabs').toggleClass(tabToggle);
- }
- }).dxButton('instance');
- return toggleBtn
- }
- function tabEvent( container, div, num, showTb, hideTb){
- container.children().eq(0).children().eq(num).on('click',function(){
- div.html($(this).text() + '목록 (목록에서 더블클릭으로 돌발정보 선택)');
- $(this).addClass('selected-tabs');
- if(num === 0){
- $(this).next().removeClass('selected-tabs');
- setBtnEvent(newIncdTable);
- }
- else{
- $(this).prev().removeClass('selected-tabs');
- setBtnEvent(autoIncdTable);
- }
- showTb.dxDataGrid('instance').clearSelection();
- hideTb.dxDataGrid('instance').clearSelection();
- showBtn(showTb.dxDataGrid('instance'));
- hideBtn(hideTb.dxDataGrid('instance'));
- })
- }
- function setLaneVal(laneData, laneArr){
- if(laneData !== null && !isNaN(laneData)){
- const lane = laneData.split('');
- for(idx in lane){
- const value = lane[idx] === '1' ? true : false;
- laneArr[idx].box.option('value', value);
- }
- }
- }
- function lookLocation(table){
- const selectData = table.getSelectedRowsData();
- if(selectData.length <= 0) return alertWarning('돌발 정보를 선택해주세요');
- const xCrdn = selectData[0].x_crdn;
- const yCrdn = selectData[0].y_crdn;
- window.opener.icndLocation(xCrdn, yCrdn);
- }
- function sendDateFormat(data){
- for(idx in dateColumns) {
- if(data[dateColumns[idx]]) data[dateColumns[idx]] = getSendDate(data[dateColumns[idx]]);
- }
- return data;
- }
- function missEvent(table, array){
- data = [];
- let selectedData = table.getSelectedRowsData();
-
- if (selectedData <= 0) return notSelectMsg('돌발정보');
- id = selectedData[0].incd_ocrr_id;
- const result = postInsertUpdate(commonUri + '/mis-info/' + id)
-
- if (result > 0 ) {
- insResultMsg('오보 판정');
- refreshIncd();
- }
-
- if(array){
- eventOff(array);
- }
- }
- function setBtnEvent(table, array){
- refreshBtn.box.off('click');
- refreshBtn.box.on('click', () => {
- eventOff(array);
- table.clearSelection();
- });
-
- locationBtn.box.off('click');
- locationBtn.box.on('click', () => lookLocation(table));
-
- missBtn.box.off('click');
- missBtn.box.on('click', () => missEvent(table, array));
- }
- function rowClickEvent(type){
- btnArr.map((item)=>{
- if(item[type].visible){
- dsblOffBtn(item.box);
- }
- });
- }
- function getCheckData(box){
- return getValue(box)?'Y':'N';
- }
- function getLaneVal(array){
- let value = '';
- array.map((item)=>{
- let result = getValue(item.box) ? '1':'0'
- value += result;
- })
- return value;
- }
- function getParams(){
- const id = getValue(prcdLinkId.box)
- const xCrdn = getValue(prcdXcrdn.box)
- const yCrdn = getValue(prcdYcrdn.box)
- getParam.LinkInfo = [];
- getParam.LinkInfo.push({
- link_color : 1,
- id : id,
- coordX : xCrdn,
- coordY : yCrdn,
- });
- return getParam;
- }
- function inserLinkText(popupData){
- setValue(prcdLinkId.box, popupData[0].id);
- setValue(prcdXcrdn.box, popupData[0].coordX);
- setValue(prcdYcrdn.box, popupData[0].coordY);
- }
- function crdnChanges(text, num){
- let value = text.value;
- const textBox = text.component
- if(!value || isNaN(value)) return setValue(textBox, '0.0000000');
-
- value = value.toString();
-
- if(value.length <= num) return setValue(textBox, value + ".0000000");
-
- if (!value.includes(".")){
- let front = value.substr(0, num);
- let end = value.substr(num, value.length);
- let zero = "";
- if (end.length < 7) {
- for (let ii = 0; ii < 7 - end.length; ii++) {
- zero += "0";
- }
- }
- if (end.length > 7) end = end.substring(0, 7);
- setValue(textBox, front + "." + end + zero);
- }
- else{
- switch (true) {
- case value.substring(0, value.indexOf(".")) === "":
- setValue(textBox, "0" + value);
- break;
- case value.substring(value.indexOf("."), value.length) === "":
- setValue(textBox, value + "0000000");
- break;
- case value.substring(value.indexOf("."), value.length).length < 7:
- let zero = "";
- for (let ii = 0; ii < 7 - value.substring(value.indexOf(".") + 1, value.length).length; ii++) {
- zero += "0";
- }
- setValue(textBox, value.substring(0, value.indexOf(".")) + value.substring(value.indexOf("."), value.length) + zero);
- break;
- default:
- break;
- }
- }
-
- }
|