| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001 |
- import { TMapMngr, TFclt } from "/js/vworld/map-mngr.js";
- import { LayerType, LayerIndex } from "/js/vworld/map-const.js";
- let _mapManager = null;
- let _selectFcltNmbr = null;
- const _lyrIdx = LayerIndex.Cctv;
- //우측 섹션 관련
- let _managerData = [];
- let _managerTable = null;
- let _idArr = [];
- let cctvNo = null;
- let cctvNm = null;
- let cctvId = null;
- let cctvX = null;
- let cctvY = null;
- let ctrlIp = null;
- let ctlrPort = null;
- let strmSvrIp = null;
- let strmSvrPort = null;
- let lctnNm = null;
- let strmSesnNm = null;
- let camNo = null;
- let outRstp = null;
- let intrHttp = null;
- let outHttp = null;
- let webRtcId = null;
- let webRtcIp = null;
- let webRtcPort = null;
- let rtcId = null;
- let rtcIp = null;
- let rtcPort = null;
- let saveBtn = null;
- let cancleBtn = null;
- let addBtn = null;
- let delBtn = null;
- let editBtn = null;
- let addNum = 0;
- let nmbrCheck = null;
- let homepageYn = null;
- let cctvCaptIp = null;
- const ipExpr = /^[0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}$/;
- const _updateColumns = {
- altt_imag_dspl_yn: "N",
- altt_imag_nmbr: 0,
- cctv_area_dvsn: "1",
- cctv_capt_ip : null,
- cctv_capt_port: null,
- cctv_ctlr_id: null,
- cctv_ctlr_ip: null,
- cctv_ctlr_local_no: 0,
- cctv_ctlr_nmbr: null,
- cctv_ctlr_port: null,
- cctv_id: null,
- cctv_nm: null,
- cctv_type_cd : null,
- fan_off_tmpr : 25,
- fan_on_tmpr : 30,
- hetr_off_tmpr : 10,
- hetr_on_tmpr : 5,
- del_yn : "N",
- intr_http_addr: null,
- istl_lctn_addr: null,
- istl_lctn_nm: null,
- link_id: null,
- node_id: null,
- strm_rtsp_addr: null,
- strm_http_addr: null,
- strm_sesn_nm: null,
- strm_svr_ip : null,
- strm_svr_port : null,
- syop_cntl_yn: "N",
- use_yn : "Y",
- rtc_id : null,
- rtc_svr_ip : null,
- rtc_svr_port: 0,
- x_crdn: 0,
- y_crdn: 0,
- homepage_yn: null,
- };
- //공통
- let commonUri = "/api/cctv/manager/info";
- const _pageName = 'CCTV 기본정보 관리';
- const pageMsg = "CCTV";
- const inputArr = [
- (cctvNo = {
- box : null,
- option : 80,
- disabled : true,
- label : "CCTV 관리번호",
- column : "cctv_ctlr_nmbr",
- max : 10,
- must : true,
- }),
- (cctvId = {
- box : null,
- option : 120,
- disabled : false,
- label : "제어기 ID",
- column : "cctv_ctlr_id",
- id : true,
- max : 10,
- must : true,
- }),
- (camNo = {
- box : null,
- option : 60,
- disabled : false,
- label : "카메라 번호",
- column : "cctv_ctlr_local_no",
- number : true,
- max : 5,
- must : true,
- }),
- (cctvNm = {
- box : null,
- option : 255,
- disabled : false,
- label : "CCTV 명칭",
- column : "cctv_nm",
- max : 40,
- must : true,
- }),
- (lctnNm = {
- box : null,
- option : 255,
- label : "위치명",
- must : true,
- disabled : false,
- column : "istl_lctn_nm",
- max : 40,
- }),
- (ctrlIp = {
- box : null,
- option : 140,
- label : "제어기 IP",
- disabled : false,
- must : true,
- expr : ipExpr,
- column : "cctv_ctlr_ip",
- max : 20,
- }),
- (ctlrPort = {
- box : null,
- option : 80,
- label : "제어기 PORT",
- disabled : false,
- must : true,
- number : true,
- column : "cctv_ctlr_port",
- max : 5,
- }),
- (cctvCaptIp = {
- box : null,
- option : 255,
- label : "카메라 IP",
- disabled : false,
- must : false,
- number : false,
- column : "cctv_capt_ip",
- max : 20,
- }),
- (cctvX = {
- box : null,
- option : 110,
- label : "X좌표",
- disabled : false,
- must : true,
- value : "0.00000000",
- method: function (e) {
- crdnChanges(e, 3);
- },
- column: "x_crdn",
- max: 12,
- }),
- (cctvY = {
- box : null,
- option : 110,
- disabled : false,
- label : "Y좌표",
- must : true,
- value : "0.00000000",
- method: function (e) {
- crdnChanges(e, 2);
- },
- column: "y_crdn",
- max: 11,
- }),
- (strmSvrIp = {
- box : null,
- option : 140,
- label : "분배서버 IP",
- disabled : false,
- must : true,
- expr : ipExpr,
- column : "strm_svr_ip",
- max : 20,
- }),
- (strmSvrPort = {
- box : null,
- option : 80,
- label : "분배서버 PORT",
- disabled : false,
- must : true,
- number : true,
- column : "strm_svr_port",
- max : 5,
- }),
- (strmSesnNm = {
- box : null,
- option : 255,
- label : "스트리밍 세션명",
- disabled : false,
- column : "strm_sesn_nm",
- max : 200,
- }),
- (outRstp = {
- class : "out-rstp",
- box : null,
- option : 255,
- label : "스트리밍 RSTP 주소",
- disabled : false,
- column : "strm_rtsp_addr",
- max : 200,
- }),
- // (intrHttp = {
- // box : null,
- // option : 255,
- // label : "인터넷 HLS 주소",
- // disabled : false,
- // column : "intr_http_addr",
- // max : 200,
- // }),
- // (outHttp = {
- // box : null,
- // option : 255,
- // label : "스트리밍 HTTP 주소",
- // disabled : false,
- // column : "strm_http_addr",
- // max : 200,
- // }),
- (webRtcId = {
- box : null,
- option : 255,
- label : "WEB RTC ID",
- disabled : false,
- column : "rtc_id",
- max : 56,
- }),
- (webRtcIp = {
- box : null,
- option : 140,
- label : "WEB RTC IP",
- disabled : false,
- column : "web_rtc_svr_ip",
- // expr : ipExpr,
- max : 30,
- }),
- (webRtcPort = {
- box : null,
- option : 80,
- label : "WEB RTC PORT",
- number : true,
- disabled : false,
- column : "web_rtc_svr_port",
- max : 5,
- }),
- (rtcId = {
- box : null,
- option : 255,
- label : "RTC ID",
- disabled : false,
- column : "web_rtc_id",
- max : 56,
- }),
- (rtcIp = {
- box : null,
- option : 140,
- label : "RTC IP",
- disabled : false,
- column : "rtc_svr_ip",
- expr : ipExpr,
- max : 20,
- }),
- (rtcPort = {
- box : null,
- option : 80,
- label : "RTC PORT",
- number : true,
- disabled : false,
- column : "rtc_svr_port",
- max : 5,
- }),
- (homepageYn = {
- box : null,
- option : 80,
- label : "홈페이지 영상표출",
- select : true,
- dataSource: ['Y', 'N'],
- disabled : false,
- column : 'homepage_yn'
- })
- ];
- const btnArr = [
- (editBtn = {
- class: "edit-btn",
- box: null,
- option: 80,
- visible: true,
- disabled: true,
- dbdsb: false,
- edit: {
- click: {
- visible: false,
- disabled: false,
- },
- cancle: {
- visible: true,
- disabled: false,
- },
- },
- add: {
- click: {
- visible: false,
- disabled: false,
- },
- selected: {
- visible: true,
- disabled: false,
- },
- unSelected: {
- visible: true,
- disabled: true,
- },
- },
- addvsb: false,
- icon: "edit",
- text: "편집",
- method: function () {
- editEvent();
- },
- }),
- (cancleBtn = {
- class: "cancle-btn",
- box: null,
- option: 80,
- visible: false,
- disabled: false,
- dbdsb: false,
- edit: {
- click: {
- visible: true,
- disabled: false,
- },
- cancle: {
- visible: false,
- disabled: false,
- },
- },
- add: {
- click: {
- visible: true,
- disabled: false,
- },
- selected: {
- visible: false,
- disabled: false,
- },
- unSelected: {
- visible: false,
- disabled: false,
- },
- },
- addvsb: true,
- icon: "close",
- text: "취소",
- }),
- (addBtn = {
- class: "add-btn",
- box: null,
- option: 80,
- disabled: false,
- visible: true,
- edit: {
- click: {
- visible: true,
- disabled: true,
- },
- cancle: {
- visible: true,
- disabled: false,
- },
- },
- add: {
- click: {
- visible: true,
- disabled: true,
- },
- selected: {
- visible: true,
- disabled: false,
- },
- unSelected: {
- visible: true,
- disabled: false,
- },
- },
- dbdsb: false,
- adddsb: true,
- icon: "plus",
- text: "추가",
- method: function () {
- addEvent();
- },
- }),
- (delBtn = {
- class: "del-btn",
- box: null,
- option: 80,
- disabled: true,
- visible: true,
- edit: {
- click: {
- visible: true,
- disabled: true,
- },
- cancle: {
- visible: true,
- disabled: false,
- },
- },
- add: {
- click: {
- visible: true,
- disabled: true,
- },
- selected: {
- visible: true,
- disabled: false,
- },
- unSelected: {
- visible: true,
- disabled: true,
- },
- },
- dbdsb: false,
- adddsb: true,
- icon: "minus",
- text: "삭제",
- method: function () {
- const cctvCtlrNmbr = _managerTable.getSelectedRowsData()[0].cctv_ctlr_nmbr;
- confirmMessage(pageMsg
- + "번호 : "
- + cctvCtlrNmbr
- + "<br>선택하신 " + pageMsg + " 정보를 삭제하시겠습니까?").done((yes)=>{
- if (yes === true) {
- const result = deleteData(commonUri, cctvCtlrNmbr);
- if (result > 0) {
- delResultMsg(pageMsg);
- boxInit();
- buttonReset("add", "unSelected");
- _managerTable.option("focusedRowKey", null);
- _managerData = [];
- getData(commonUri, _managerData);
- dataSorting(_managerData[0], 'cctv_ctlr_id');
- _managerTable.option('dataSource', _managerData[0]);
- deleteFcltObject(cctvCtlrNmbr);
- }
- }
- });
- },
- }),
- (saveBtn = {
- class: "save-btn",
- box: null,
- option: 80,
- disabled: true,
- dbdsb: true,
- edit: {
- click: {
- visible: true,
- disabled: false,
- },
- cancle: {
- visible: true,
- disabled: true,
- },
- },
- add: {
- click: {
- visible: true,
- disabled: false,
- },
- selected: {
- visible: true,
- disabled: true,
- },
- unSelected: {
- visible: true,
- disabled: true,
- },
- },
- adddsb: false,
- visible: true,
- icon: "save",
- text: "저장",
- }),
- ];
- let typeCd = null;
- //let useYn = null;
- $(() => {
- typeCd = new dxSelect($('.cctv_type_cd'), 'outlined', 140, 27, 'cctv_type_cd_desc', 'cctv_type_cd', true, 'cctv_type_cd', 'CCTV 유형코드');
- //상단 닫기 버튼
- $(".cancle-button")
- .dxButton({
- text: "닫기",
- icon: "close",
- height: "30px",
- width: "80px",
- stylingMode: "outlined",
- onClick() {
- window.close();
- },
- })
- .dxButton("instance");
- inputArr.map((item) => {
- if (item.select) {
- item.box = $("." + item.column)
- .dxSelectBox({
- width: item.option,
- stylingMode: "outlined",
- readOnly: true,
- height: 27,
- dataSource: item.dataSource,
- })
- .dxSelectBox("instance");
- }
- else {
- item.box = $("." + item.column)
- .dxTextBox({
- width: item.option,
- stylingMode: "outlined",
- readOnly: true,
- maxLength: item.max,
- height: 27,
- })
- .dxTextBox("instance");
- }
- if (item.value) {
- item.box.option("value", item.value);
- }
- if (item.method) {
- item.box.on("valueChanged", item.method);
- }
- });
- btnArr.map((item) => {
- item.box = $("." + item.class)
- .dxButton({
- icon: item.icon,
- width: item.option,
- text: item.text,
- visible: item.visible,
- disabled: item.disabled,
- focusStateEnabled: false,
- stylingMode: "outlined",
- onClick() {
- if (item.method) {
- item.method();
- }
- },
- })
- .dxButton("instance");
- });
- // 지도객체 생성
- doMap();
- // 시설물 정보를 읽어 온다.
- getData(commonUri, _managerData);
- if (_managerData[0].length > 0) {
- dataSorting(_managerData[0], 'cctv_ctlr_id');
- }
- updateIcon();
- //CCTV 제어기 목록
- let columns = [
- {
- dataField: "cctv_ctlr_id",
- caption: "CCTV ID",
- width: 120,
- alignment: "center",
- },
- {
- dataField: "istl_lctn_nm",
- caption: "설치 위치",
- alignment: "center",
- cellTemplate(c, e) {
- c.css("text-align", "left");
- return c.text(e.displayValue);
- },
- },
- ];
- _managerTable = initializedGrid($(".manager-table"), '100%', '100%', columns,
- _managerData[0], 'single', 'standard', 'cctv_ctlr_nmbr', false, true,
- false, 1000, false, false, false, '', true, '', null)
- .dxDataGrid("instance");
- _managerTable.on('rowDblClick', (e) => listDblClick(e));
- fetchTypeData();
- });
- /**
- * CCTV 유형 데이터 수신
- */
- function fetchTypeData(){
- getDataAsync(_codeUrl + '/CCTVT',(jsonData)=>{
- let typeCdData = [];
- jsonData.map((item)=>{
- typeCdData.push({
- cctv_type_cd : item.cmmn_cd,
- cctv_type_cd_desc : '[ ' + item.cmmn_cd +' ] ' + item.cmmn_cd_kor_nm,
- });
- })
- typeCd.setDataSource(typeCdData);
- typeCd.setValue(jsonData[0].cmmn_cd);
- });
- }
- /**
- * CCTV 목록 더블클릭
- * @param e 더블클릭 로우 정보
- */
- function listDblClick(e){
- _selectFcltNmbr = e.data.cctv_ctlr_nmbr;
- selectFcltObject(_selectFcltNmbr);
- inputArr.map((item) => {
- if (item.box) {
- item.box.option("value", e.data[item.column]);
- }
- });
- typeCd.setValue(e.data[typeCd.column]);
- btnArr.map((item) => {
- if (item.box) {
- item.box.option("disabled", item.dbdsb);
- }
- });
- }
- /**
- * 이벤트 활성화
- */
- function editEvent() {
- editFcltObject(_selectFcltNmbr, true);
- cancleBtn.box.off("click");
- cancleBtn.box.on("click", () => editCancel());
- eventOn();
-
- cctvId.box.option('readOnly', true);
- btnArr.map((item) => {
- if (item.box) {
- item.box.option("visible", item.edit.click.visible);
- item.box.option("disabled", item.edit.click.disabled);
- }
- });
- saveBtn.box.off('click');
- saveBtn.box.on('click', () => saveEvent('edit'));
- }
- /**
- * 이벤트 비활성화
- */
- function editCancel() {
- updateIcon();
- eventCancel();
- boxPull();
- buttonReset("edit", "cancle");
- }
- /**
- * CCTV ID 전체 값
- * @returns {*[]} CCTV ID 배열
- */
- function getIdArr(){
- let idArr = [];
- if (_managerData[0].length > 0) {
- _managerData[0].map((obj)=>{
- if(obj.cctv_ctlr_id)idArr.push(obj.cctv_ctlr_id);
- })
- }
- return idArr;
- }
- /**
- * 저장 버튼 클릭
- * @param type 편집 유형
- * @returns {boolean|*}
- */
- function saveEvent(type) {
- _idArr = getIdArr();
- for (let input of inputArr) {
- const box = input.box;
- if (box) {
- const value = getValue(box) === "" ? null : getValue(box);
- const max = input.max;
- const label = input.label;
- if (!nullChecker(value)) {
- if (input.must) {
- return alertWarning( "필수 항목을 입력해주세요. [ " + label +" ]", null, box);
- }
- }
- else {
- if (max && getByteLength(value) > max) {
- return alertWarning( max + " 바이트 이내로 입력해주세요. [ " + label +" ]", null, box);
- }
- if (input.expr && !input.expr.test(value)) {
- return alertWarning("IP 형식에 맞게 입력해주세요. [ " + label +" ]", null, box);
- }
- if (input.number && isNaN(value)) {
- return alertWarning("해당 항목은 숫자만 입력이 가능합니다. [ " + label + " ]", null, box);
- }
- if (input.id && _idArr.includes(value) && type === "add") {
- return alertWarning( "제어기 ID : " + value + "<br>이미 사용중인 제어기 ID 입니다.", null, box);
- }
- }
- }
- }
- let updateData = {..._updateColumns};
- if (type === 'edit') {
- // 수정모드일 경우에는....
- const rowData = _managerTable.getSelectedRowsData()[0];
- for (let key in updateData) {
- updateData[key] = rowData[key];
- }
- console.log('edit mode...')
- }
- // 수정모드인 경우와 추가 모드 비교해야함...
- inputArr.map((item) => {
- if (item.column && item.box) {
- const value = item.box.option("value");
- updateData[item.column] = value === "" ? null : value;
- }
- });
- updateData.cctv_type_cd = typeCd.getValue();
- //updateData.use_yn = useYn.getValue() ? "Y" : "N";
- //ctrlIpNum
- let result = postInsertUpdate(commonUri + "/" + updateData.cctv_ctlr_nmbr, updateData);
- if (result > 0) {
- insResultMsg(pageMsg);
- _managerData = [];
- getData(commonUri, _managerData);
- dataSorting(_managerData[0], 'cctv_ctlr_id');
- _managerTable.option('dataSource', _managerData[0]);
- _managerTable.clearSelection();
- _managerTable.refresh().done(function () {
- _managerTable.selectRows(updateData.cctv_ctlr_nmbr, true).done(()=>{
- _managerTable.option("focusedRowKey", updateData.cctv_ctlr_nmbr);
- boxPull();
- buttonReset("add", "selected");
- updateIcon();
- eventCancel();
- });
- });
- }
- }
- /**
- * 추가버튼 클릭 후 취소
- */
- function addCancel() {
- updateIcon();
- eventCancel();
- if (_managerTable.getSelectedRowsData().length > 0) {
- boxPull();
- buttonReset("add", "selected");
- return;
- }
- boxInit();
- buttonReset("add", "unSelected");
- }
- /**
- * 추가 버튼 클릭
- */
- function addEvent() {
- eventOn();
- boxInit();
- let center = _mapManager.getCenter();
- cancleBtn.box.off("click");
- cancleBtn.box.on("click", () => addCancel());
- cctvX.box.option("value", center[0].toFixed(8));
- cctvY.box.option("value", center[1].toFixed(8));
- addNum = getNewNmbr();
- const lastData = _managerData[0][_managerData[0].length - 1]
- setValue(camNo.box, lastData.cctv_ctlr_local_no + 1);
- setValue(homepageYn.box, "Y");
- let idVal = lastData.cctv_ctlr_id;
- if (idVal.length){
- let idNo = idVal.substring(idVal.indexOf('V') + 1, idVal.length);
- if (!isNaN(idNo)) {
- let cctvIdVal = 'CCTV' + (Number(idNo) + 10);
- setValue(cctvId.box, cctvIdVal);
- }
- }
- addFcltObject(addNum);
- cctvNo.box.option("value", addNum);
- btnArr.map((item) => {
- item.box.option("visible", item.add.click.visible);
- item.box.option("disabled", item.add.click.disabled);
- });
- saveBtn.box.off('click');
- saveBtn.box.on('click', () => saveEvent('add'));
- }
- /**
- * input 데이터 값 넣기
- */
- function boxPull() {
- let selectedRow = _managerTable.getSelectedRowsData()[0];
- inputArr.map((item) => {
- if (item.box) {
- item.box.option("value", selectedRow[item.column]);
- }
- });
- typeCd.setValue(selectedRow[typeCd.valueExpr]);
- }
- /**
- * input 데이터 값 초기화
- */
- function boxInit() {
- inputArr.map((item) => {
- if (item.value) return item.box.option("value", item.value);
- if (item.box) {
- item.box.option("value", null);
- }
- });
- //useYn.setValue(false);
- typeCd.setValue(typeCd.getDataSource()[0][typeCd.valueExpr])
- }
- /**
- * 버튼 상태 초기화
- * @param eventName 이벤트 명
- * @param option 옵션
- */
- function buttonReset(eventName, option) {
- btnArr.map((item) => {
- item.box.option("visible", item[eventName][option].visible);
- item.box.option("disabled", item[eventName][option].disabled);
- });
- }
- /**
- * 이벤트 취소
- */
- function eventCancel() {
- dsblOffBtn(_managerTable);
- inputArr.map((item) => {
- if (item.box) {
- item.box.option("readOnly", true);
- }
- });
- typeCd.setReadOnly(true);
- //useYn.setReadOnly(true);
- if(_managerTable.getSelectedRowsData().length > 0){
- _selectFcltNmbr = _managerTable.getSelectedRowsData()[0].cctv_ctlr_nmbr;
- selectFcltObject(_selectFcltNmbr);
- }
- }
- /**
- * 이벤트 활성화
- */
- function eventOn() {
- dsblOnBtn(_managerTable);
- typeCd.setReadOnly(false);
- //useYn.setReadOnly(false);
- inputArr.map((item) => {
- if (item.box) {
- item.box.option("readOnly", item.disabled);
- }
- });
- }
- /**
- * 제어기 신규 ID 조회
- */
- function getNewNmbr() {
- let newId = [];
- getData(commonUri + "/new-id", newId);
- _selectFcltNmbr = newId[0].new_id;
- return _selectFcltNmbr;
- }
- /**
- * 지도 인터페이스 함수........
- */
- function doMap() {
- _mapManager = new TMapMngr("traf-hs-map", "tooltip");
- _mapManager.setEditMode(_lyrIdx, true);
- _mapManager.showLayer(_lyrIdx, true);
- _mapManager.onFcltDragEndFunc = onFcltDragEndFunc; // 객체(시설물) 편집시 객체 이동후 좌표 반환
- _mapManager.onMouseClickFunc = onMouseClickFunc; // 객체 마우스 클릭 이벤트 반환
- _mapManager.checkFcltEditMode(_lyrIdx);
- _mapManager.showFcltObjectText(_lyrIdx, true);
- fetchMapIconBar($('.map-bar'), _mapManager, _pageName, fcltObjectTextOnOff, null);
- }
- function fcltObjectTextOnOff(e){
- _mapManager.showFcltObjectText(_lyrIdx, e.value);
- _mapManager.refreshLayer(_lyrIdx);
- }
- function onFcltDragEndFunc(ALyrIdx, ALyrName, ANmbr, ACoordX, ACoordY) {
- if (ALyrIdx != _lyrIdx) {
- return;
- }
- if (ANmbr === _selectFcltNmbr) {
- cctvX.box.option("value", ACoordX.toFixed(8));
- cctvY.box.option("value", ACoordY.toFixed(8));
- }
- console.log(`onFcltDragEndFunc, ${ALyrIdx}, ${ALyrName}, ${ANmbr}, ${ACoordX}, ${ACoordY}`);
- }
- function onMouseClickFunc(ALyrIdx, ALyrName, ANmbr, ACoordX, ACoordY, X, Y) {
- if (ALyrIdx != _lyrIdx) {
- return;
- }
- // console.log(`onMouseClickFunc, ${ALyrIdx}, ${ALyrName}, ${ANmbr}, ${ACoordX}, ${ACoordY}, ${X}, ${Y}`);
- const obj = _mapManager.findLayerObject(ALyrIdx, ANmbr);
- if (!obj) {
- return;
- }
- else {
- if (_selectFcltNmbr === ANmbr) {
- return;
- }
- if (!editBtn.box.option('visible')) {
- return;
- }
- _selectFcltNmbr = ANmbr;
- selectFcltObject(_selectFcltNmbr);
- _managerTable.selectRows(ANmbr).done(()=>{
- _managerTable.option('focusedRowKey',ANmbr);
- const selectedData = _managerTable.getSelectedRowsData()[0];
- inputArr.map((item) => {
- if (item.box) {
- item.box.option("value", selectedData[item.column]);
- }
- });
- typeCd.setValue(selectedData[typeCd.column]);
- btnArr.map((item) => {
- item.box.option("disabled", item.dbdsb);
- });
- });
- }
- }
- /**
- * 지도에 시설물 객체 정보를 그린다.
- */
- function updateIcon() {
- // 기존 객체를 모두 삭제한다.
- _mapManager.removeLayerObject(_lyrIdx);
- if (_managerData[0] && _managerData[0].length > 0) {
- // 시설물 객체를 지도에 그린다.
- const objs = new Array();
- _managerData[0].forEach((obj) => {
- const item = new TFclt(obj.cctv_ctlr_nmbr, obj.istl_lctn_nm, obj.x_crdn, obj.y_crdn);
- objs.push(item);
- });
- _mapManager.initFcltObject(_lyrIdx, objs);
- }
- }
- function selectFcltObject(ANmbr) {
- _mapManager.selectLayerObject(_lyrIdx, ANmbr);
- }
- function editFcltObject(ANmbr, AIsEdit) {
- _mapManager.editFcltObject(_lyrIdx, ANmbr, AIsEdit, AIsEdit ? "1" : "0");
- }
- function deleteFcltObject(ANmbr) {
- _mapManager.deleteFcltObject(_lyrIdx, ANmbr);
- _selectFcltNmbr = null;
- }
- function addFcltObject(ANmbr) {
- _mapManager.createFcltObject(_lyrIdx, ANmbr, "New", "New", "1" /*아이콘색결정,시설물유형_N.png*/ /*, x_crdn, y_crdn*/);
- }
|