Explorar el Código

vms form edit web version last

shjung hace 3 años
padre
commit
be66e6bc6d
Se han modificado 36 ficheros con 547 adiciones y 374 borrados
  1. 7 4
      src/main/java/com/its/op/controller/its/LoginController.java
  2. 15 0
      src/main/java/com/its/op/controller/its/cctv/CctvControlController.java
  3. 1 1
      src/main/java/com/its/op/dto/its/common/UserInfoDto.java
  4. 1 1
      src/main/java/com/its/op/dto/its/statistics/IncidentTypeStatDto.java
  5. 5 1
      src/main/resources/static/application/op/00.main/main-header.js
  6. 1 1
      src/main/resources/static/application/op/00.main/main-pwd-change-pop-up.html
  7. 1 1
      src/main/resources/static/application/op/00.main/main-pwd-change-pop-up.js
  8. 9 9
      src/main/resources/static/application/op/00.main/main.html
  9. 1 1
      src/main/resources/static/application/op/01.traffic-manager/01.traffic-current/current-traffic.html
  10. 3 3
      src/main/resources/static/application/op/01.traffic-manager/01.traffic-current/current-traffic.js
  11. 28 1
      src/main/resources/static/application/op/01.traffic-manager/02.syop-traf/syop-traf.js
  12. 1 0
      src/main/resources/static/application/op/01.traffic-manager/03.incident/incident.js
  13. 5 9
      src/main/resources/static/application/op/01.traffic-manager/04.rept-cngs/rept-cngs.css
  14. 3 3
      src/main/resources/static/application/op/01.traffic-manager/04.rept-cngs/rept-cngs.html
  15. 11 6
      src/main/resources/static/application/op/01.traffic-manager/04.rept-cngs/rept-cngs.js
  16. 28 24
      src/main/resources/static/application/op/02.facility/01.manager/manager.js
  17. 22 5
      src/main/resources/static/application/op/02.facility/02.company/company.js
  18. 13 0
      src/main/resources/static/application/op/02.facility/03.fail-hs/fail-hs-pop-up.js
  19. 9 8
      src/main/resources/static/application/op/02.facility/03.fail-hs/fail-hs.js
  20. 67 38
      src/main/resources/static/application/op/02.facility/04.parking/manager.js
  21. 3 3
      src/main/resources/static/application/op/03.history/01.user-cnns-hs/user-cnns-hs.js
  22. 5 4
      src/main/resources/static/application/op/05.cctv/05.control/control.js
  23. 4 3
      src/main/resources/static/application/op/06.vms/01.system/01.monitoring/01.phase/phase.js
  24. 5 3
      src/main/resources/static/application/op/06.vms/01.system/01.monitoring/04.module/module.js
  25. 6 8
      src/main/resources/static/application/op/06.vms/01.system/02.control/control.js
  26. 1 2
      src/main/resources/static/application/op/06.vms/02.manager/01.info/info.js
  27. 1 2
      src/main/resources/static/application/op/06.vms/02.manager/03.symbl-vmp/01.symbl-vmp0/symbl-vmp0.js
  28. 1 1
      src/main/resources/static/application/op/06.vms/02.manager/03.symbl-vmp/02.symbl-vmp1/symbl-vmp1.js
  29. 1 1
      src/main/resources/static/application/op/06.vms/02.manager/03.symbl-vmp/03.symbl-vmp2/symbl-vmp2.js
  30. 276 216
      src/main/resources/static/application/op/06.vms/03.form/manage.js
  31. 3 3
      src/main/resources/static/application/op/07.vds/03.control/control.js
  32. 1 2
      src/main/resources/static/application/op/08.database/08.legl-hldy-infr/legl-hldy-infr.js
  33. 3 4
      src/main/resources/static/application/op/99.common/common.css
  34. 1 0
      src/main/resources/static/application/op/99.common/common.js
  35. 2 2
      src/main/resources/static/application/wall/main/main.html
  36. 3 4
      src/main/resources/static/js/constant/constant.js

+ 7 - 4
src/main/java/com/its/op/controller/its/LoginController.java

@@ -90,12 +90,10 @@ public class LoginController {
 //    public void logout(@RequestBody @Valid final LoginDto.LogoutReqDto req) {
 //        this.service.logout(req);
 //    }
-
-    @PostMapping({"/userinfo.do"})
-    public UserInfoDto getUserInfo(HttpServletRequest request, HttpServletResponse response) {
+    public UserInfoDto getSessionUserInfo(HttpServletRequest request) {
         Cookie[] cookies = request.getCookies();
         for (int ii = 0; ii < cookies.length; ii++) {
-            log.error("getUserInfo: {}, {}", cookies[ii].getName(), cookies[ii].getValue());
+            log.error("getSessionUserInfo: {}, {}", cookies[ii].getName(), cookies[ii].getValue());
         }
         String encUserId = "";
         String loginHms = "";
@@ -119,6 +117,11 @@ public class LoginController {
         return UserInfoDto.builder().userId(encUserId).build();
     }
 
+    @PostMapping({"/userinfo.do"})
+    public UserInfoDto getUserInfo(HttpServletRequest request, HttpServletResponse response) {
+        return getSessionUserInfo(request);
+    }
+
     /**
      * 로그아웃
      * @param request

+ 15 - 0
src/main/java/com/its/op/controller/its/cctv/CctvControlController.java

@@ -1,16 +1,23 @@
 package com.its.op.controller.its.cctv;
 
+import com.its.op.controller.its.LoginController;
 import com.its.op.dto.its.cctv.CctvControlDto;
+import com.its.op.dto.its.common.UserInfoDto;
 import com.its.op.service.its.cctv.CctvControlService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 
+@Slf4j
 @Api(tags = "11.CCTV-0.제어")
 @Validated
 @RestController
@@ -19,6 +26,7 @@ import javax.validation.Valid;
 public class CctvControlController {
 
     private final CctvControlService service;
+    private final LoginController loginController;
 
     @ApiOperation(value = "CCTV PTZ 제어", response = CctvControlDto.CctvControlRes.class)
     @PostMapping(value = "/ptz/{id}", produces = {"application/json; charset=utf8"})
@@ -27,6 +35,13 @@ public class CctvControlController {
             @PathVariable("id") Long id,
             @ApiParam(name = "req", value = "CCTV PTZ 제어 정보", example = "[tilt-up, start, 20, ADMIN]", required = true)
             @RequestBody @Valid final CctvControlDto.CctvControlPtzReq req) {
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        if (request != null) {
+            UserInfoDto userInfo = this.loginController.getSessionUserInfo(request);
+            if (userInfo != null) {
+                log.error("{}, {}", userInfo.getUserId(), req.getUserId());
+            }
+        }
         return this.service.controlPtz(id, req);
     }
 

+ 1 - 1
src/main/java/com/its/op/dto/its/common/UserInfoDto.java

@@ -18,7 +18,7 @@ public class UserInfoDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("userId")
-    @JsonProperty("user-id")
+    @JsonProperty("user_id")
     private String userId;
 
 }

+ 1 - 1
src/main/java/com/its/op/dto/its/statistics/IncidentTypeStatDto.java

@@ -16,7 +16,7 @@ import lombok.NoArgsConstructor;
 public class IncidentTypeStatDto {
 
     @ApiModelProperty("통계일")
-    @JsonProperty("stat_Dt")
+    @JsonProperty("stat_dt")
     private String STAT_DT;         // 통계일
     @ApiModelProperty("데이터 건수")
     @JsonProperty("data_cnt")

+ 5 - 1
src/main/resources/static/application/op/00.main/main-header.js

@@ -683,7 +683,11 @@ const _menuDataAll = [
 ];
 $(() => {
     let menuAuth = [];
-    const uri = "/api/auth/menu-auth/" + "ADMIN";
+    let userId   = [];
+    getPostData("/api/auth/userinfo.do", userId);
+    window.$userId = userId[0].user_id;
+    // window.$userId = 'ADMIN';
+    const uri = "/api/auth/menu-auth/" + window.$userId;
     getData(uri, menuAuth);
     const menuAuthMap = new Map();
     menuAuth[0].forEach((auth) => {

+ 1 - 1
src/main/resources/static/application/op/00.main/main-pwd-change-pop-up.html

@@ -10,7 +10,7 @@
         <title>비밀 번호 변경</title>
     </head>
     <body class="dx-viewport">
-        <div class="container">
+        <div class="container b0">
             <div class="serve-title color">
                 <div>비밀번호 변경</div>
             </div>

+ 1 - 1
src/main/resources/static/application/op/00.main/main-pwd-change-pop-up.js

@@ -28,7 +28,7 @@ $(()=>{
     
 
     //ID로 대체
-    setValue(inputMap.get('id').get('box'), 'ADMIN');
+    setValue(inputMap.get('id').get('box'), window.opener.$userId);
     inputMap.get('id').get('box').option('readOnly', true);
 
     

+ 9 - 9
src/main/resources/static/application/op/00.main/main.html

@@ -115,19 +115,19 @@
                             option: "width = 400, height = 300, top = 175, left = 800, resizable=yes, scrollbars=no",
                             icon: "key",
                         },
-                        {
-                            beginGroup: true,
-                            id: "3",
-                            name: "상황판",
-                            page: "http://115.91.94.42:8999/wall",
-                            option: null,
-                            icon: "link",
-                        },
+                        // {
+                        //     beginGroup: true,
+                        //     id: "3",
+                        //     name: "상황판",
+                        //     page: _apiUrl + "/wall",
+                        //     option: null,
+                        //     icon: "link",
+                        // },
                         {
                             beginGroup: true,
                             id: "4",
                             name: "시설물 모니터링",
-                            page: "http://115.91.94.42:8999/facility",
+                            page: _apiUrl + "/facility",
                             option: null,
                             icon: "link",
                         },

+ 1 - 1
src/main/resources/static/application/op/01.traffic-manager/01.traffic-current/current-traffic.html

@@ -13,7 +13,7 @@
 <body class="dx-viewport">
     <div class="container b0">
         <div class="title-box b2">
-            <div>현재 소통정보</div>
+            <div>현재소통정보</div>
             <div>
                 <div class="search-button"></div>
             </div>

+ 3 - 3
src/main/resources/static/application/op/01.traffic-manager/01.traffic-current/current-traffic.js

@@ -54,7 +54,7 @@ $(() =>{
         },
         onExporting(e){
             const workbook = new ExcelJS.Workbook();
-            const worksheet = workbook.addWorksheet('link');
+            const worksheet = workbook.addWorksheet('링크(레벨1)');
 
             DevExpress.excelExporter.exportDataGrid({
                 component: e.component,
@@ -233,7 +233,7 @@ $(() =>{
         },
         onExporting(e){
             const workbook = new ExcelJS.Workbook();
-            const worksheet = workbook.addWorksheet('link');
+            const worksheet = workbook.addWorksheet('서비스링크(레벨2)');
 
             DevExpress.excelExporter.exportDataGrid({
                 component: e.component,
@@ -390,7 +390,7 @@ $(() =>{
         },
         onExporting(e){
             const workbook = new ExcelJS.Workbook();
-            const worksheet = workbook.addWorksheet('link');
+            const worksheet = workbook.addWorksheet('도로(레벨3)');
 
             DevExpress.excelExporter.exportDataGrid({
                 component: e.component,

+ 28 - 1
src/main/resources/static/application/op/01.traffic-manager/02.syop-traf/syop-traf.js

@@ -325,6 +325,10 @@ editBtn = $(".edit-btn").dxButton({
 
 });
 
+/**
+ * 내용 변경 후 다른 화면으로 이동 시 수정 활성화
+ * @param {*} cell 수정 될 셀
+ */
 function listCellHoverChanged(cell){
     const tableList = cell.component
     if(tableList.option('editing.changes').length > 0){
@@ -339,7 +343,10 @@ function listCellHoverChanged(cell){
     }
 }
 
-
+/**
+ * 삭제 모드 일때 클릭 시 변환 함수
+ * @param {*} row 선택 로우 정보
+ */
 function listSelectionChnaged(row){
     const tableList = row.component;
     if(tableList.option('selection.mode') === 'multiple'){
@@ -358,10 +365,16 @@ function listSelectionChnaged(row){
     }
 }
 
+//링크 정보
 function getLinkArr(){
     return linkArr;
 }
 
+/**
+ * 날짜 데이터 스트링에서 데이트 객체로 형변환
+ * @param {*} data 변경 할 소통정보 제보 관리 데이터 
+ * @returns 
+ */
 function dataFormmat(data){
     data.map((item)=>{
             if(item.crtn_dt) item.crtn_dt = new Date(getParseDateTime(item.crtn_dt));
@@ -372,6 +385,11 @@ function dataFormmat(data){
     return data;
 }
 
+/**
+ * 날짜 데이터 데이트 객체에서 스트링으로 형변환
+ * @param {*} data 변경 할 소통정보 제보 관리 데이터
+ * @returns 
+ */
 function updateFormmat(data){
         if(data.crtn_dt) data.crtn_dt = getSendDate(data.crtn_dt);
         if(data.aply_strt_dt) data.aply_strt_dt = getSendDate(data.aply_strt_dt);
@@ -379,6 +397,7 @@ function updateFormmat(data){
     return data;
 }
 
+//수정만 했을 경우
 function editEvent(){
     const changeArr = syopTable.option('editing.changes');
         let updateData  = [];
@@ -413,6 +432,7 @@ function editEvent(){
         }
 }
 
+//삭제 버튼 클릭 이벤트
 function delEvent(){
     if(syopTable.getSelectedRowsData().length <= 0) return notSelectMsg('소통정보');
     
@@ -440,6 +460,7 @@ function delEvent(){
     });
 }
 
+//편집 모드 활성화 
 function eventOn(){
     hideBtn(editBtn);
     showBtn(cancleBtn);
@@ -460,6 +481,7 @@ function eventOn(){
     syopTable.refresh();
 }
 
+//편집 모드 비활성화
 function eventOff(){
     showBtn(editBtn);
     dsblOnBtn(deleteBtn);
@@ -494,10 +516,15 @@ function eventOff(){
     syopTable.clearSelection();
 }
 
+//지도 관련 파라미터
 function getParams(){
     return getParam;
 }
 
+/**
+ * 편집 추가 시 발생 이벤트
+ * @param data 추가 된 데이터
+ */
 function editInsertData(data){
     const dataSource = syopTable.option('dataSource');
     dsblOnBtn(deleteBtn);

+ 1 - 0
src/main/resources/static/application/op/01.traffic-manager/03.incident/incident.js

@@ -1236,6 +1236,7 @@ const btnArr = [
     },
     
 ]
+
 //이력 조회 배열
 const historyArr = [
     historyCheck     = {

+ 5 - 9
src/main/resources/static/application/op/01.traffic-manager/04.rept-cngs/rept-cngs.css

@@ -23,19 +23,15 @@ body{
     flex-direction: column;
 }
 .table-container{
-    width: 100%;
-    height: calc(50% - 74px);
+    width: calc(100% - 2px);
+    height: calc(50% - 78px);
 }
 .table-container.sect-toggle{
     height: calc(50% - 192px);
 }
 
 .serve-title{
-    width: calc(100% - 20px);
     height: 29px;
-    padding-left: 20px;
-    display: flex;
-    align-items: center;
 }
 .flex{
     display: flex;
@@ -104,13 +100,13 @@ body{
 }
 
 .table-box{
-    padding: 3px;
+    padding: 2px;
     width: calc(100% - 6px);
-    height: calc(100% - 6px);
+    height: calc(100% - 4px);
 }
 .hidden-sect{
     width: 100%;
-    height: 120px;
+    height: 110px;
 }
 .hidden-content{
     width: 100%;

+ 3 - 3
src/main/resources/static/application/op/01.traffic-manager/04.rept-cngs/rept-cngs.html

@@ -27,21 +27,21 @@
             <div class="serve-title color b2">예상 반복정체 구간</div>
             <div class="table-container">
                 <div class="table-box b2">
-                    <div class="sect-un-cnfm-table b1 b2 b3 b4"></div>
+                    <div class="sect-un-cnfm-table b1 b3 b4"></div>
                 </div>
             </div>
             <div class="btn-box">
                 <div>
                     <div class="un-cnfm-sel-btn"></div>
                 </div>
-                <div>
+                <div class="ml-10">
                     <div class="un-cnfm-cacl-btn"></div>
                 </div>
             </div>
             <div class="serve-title color b1 b2">확정 반복정체 구간</div>
             <div class="scnd-box table-container">
                 <div class="table-box">
-                    <div class="sect-cnfm-table b1 b2 b3 b4"></div>
+                    <div class="sect-cnfm-table b1 b3 b4"></div>
                 </div>
             </div>
             <div class="hidden-sect dpl-none">

+ 11 - 6
src/main/resources/static/application/op/01.traffic-manager/04.rept-cngs/rept-cngs.js

@@ -33,20 +33,24 @@ const getParam = {
     LinkInfo    : [],
 };
 
+//날짜 유형 데이터 수신
 getData('/api/analysis/ptrn-data/day-type', cdData);
-
 if(cdData.length > 0) cdData = cdData[0];
 
+//반복 정체 구간 전체 조회 - 현재 미확정 데이터 수신
 getData(commonUri + '/un-cnfm', sectUnCnfmData);
+if(sectUnCnfmData.length > 0){
+    sectUnCnfmData = dataFormmat(sectUnCnfmData);
+}
+
+//반복 정체 구간 전체 조회 - 현재 확정 데이터 수신
 getData(commonUri + '/cnfm', sectCnfmData);
 
 if(sectCnfmData.length > 0){
     sectCnfmData = dataFormmat(sectCnfmData);
 }
 
-if(sectUnCnfmData.length > 0){
-    sectUnCnfmData = dataFormmat(sectUnCnfmData);
-}
+
 //운영자 등록 input
 const newInputArr = [
     //서비스링크 ID
@@ -294,11 +298,11 @@ $(()=>{
             getData(commonUri + '/un-cnfm', sectUnCnfmData);
             getData(commonUri + '/cnfm', sectCnfmData);
 
-            if(sectCnfmData.length > 0){
+            if (sectCnfmData.length > 0){
                 sectCnfmData = dataFormmat(sectCnfmData);
             }
 
-            if(sectUnCnfmData.length > 0){
+            if (sectUnCnfmData.length > 0){
                 sectUnCnfmData = dataFormmat(sectUnCnfmData);
             }
 
@@ -318,6 +322,7 @@ $(()=>{
 
     inputInit();
 
+    
     sectUnCnfmTable    = $('.sect-un-cnfm-table').width('100%').height('100%').dxDataGrid({
             dataSource              : sectUnCnfmData[0],
             allowColumnReordering   : true,

+ 28 - 24
src/main/resources/static/application/op/02.facility/01.manager/manager.js

@@ -20,9 +20,8 @@ if(managerData.length > 0){
     })
 }
 $(()=>{
-    if(unregData.length > 0){
-        showUnleg();
-    }
+    visibleUnleg(unregData[0]);
+
     //상단 조회 버튼
     searchBtn = $('.search-button').dxButton({
         stylingMode:'outlined',
@@ -47,7 +46,7 @@ $(()=>{
         }
     }).dxButton('instance')
     
-    //운영자 관리 테이블
+    //등록 시설물 테이블
     managerTable = $('.user-infr-table').width('100%').height('100%').dxDataGrid({
         dataSource              : managerData[0],
         allowColumnReordering   : true,
@@ -214,6 +213,7 @@ $(()=>{
         },
     }).dxDataGrid('instance');
 
+    //미등록 시설물
     unregTable = $('.unreg-table').width('100%').height('100%').dxDataGrid({
         dataSource              : unregData[0],
         allowColumnReordering   : true,
@@ -341,12 +341,7 @@ $(()=>{
                     if (result > 0) {
                         alertConfirm('선택하신 미등록 시설물을 시선물 정보에 정상적으로 저장하였습니다.')
                     }
-                    
-                    if (unregData[0].length > 0){
-                        showUnleg();
-                        return false;
-                    }
-                    hideUnleg();
+                    visibleUnleg(unregData[0]);
                 }
             })
         }
@@ -388,9 +383,12 @@ $(()=>{
                         let result         = 0;
                         managerData        = [];
                         switch (true) {
+                            //수정 이벤트
                             case updatedData.length > 0 :
                                 updatedData.map((item)=>{
                                     updateDateFormmat(item);
+                                    item.chng_nm = window.opener.$userId
+                                    item.chng_dt = excellTime();
                                 })
                                 
                                 result =  postInsertUpdate(commonUri, updatedData);
@@ -402,6 +400,7 @@ $(()=>{
                                     return false;
                                 }
                                 break;
+                            //삭제 이벤트
                             case delData.length > 0:
                                 let ids = [];
                                 for(idx in delData){
@@ -417,11 +416,8 @@ $(()=>{
                                     getData(commonUri + '/unreg', unregData);
                                     unregTable.option('dataSource',unregData[0]);
                                     
-                                    if (unregData[0].length > 0){
-                                        showUnleg();
-                                        return false;
-                                    }
-                                    hideUnleg();
+                                    visibleUnleg(unregData[0]);
+
                                 }
                                 break;
                         
@@ -440,6 +436,7 @@ $(()=>{
   
 })
 
+//이벤트 활성화
 function eventOn(){
     showBtn(editCancleBtn);
     hideBtn(editBtn);
@@ -455,6 +452,7 @@ function eventOn(){
     managerTable.option('toolbar.visible', false);
 }
 
+//이벤트 비활성화
 function eventCancle(){
     showBtn(editBtn);
     hideBtn(editCancleBtn);
@@ -473,17 +471,21 @@ function eventCancle(){
     managerTable.option('toolbar.visible', true);;
 }
 
-function showUnleg(){
-    $('.body-box').children().eq(0).removeClass('non-unreg');
-    $('.body-box').children().eq(0).addClass('unreg');
-    $('.body-box').children().eq(1).removeClass('dsp-none');
-}
-function hideUnleg(){
-    $('.body-box').children().eq(0).addClass('non-unreg');
-    $('.body-box').children().eq(0).removeClass('unreg');
-    $('.body-box').children().eq(1).addClass('dsp-none');
+//미등록 시설물 활성화 유무
+function visibleUnleg(data){
+    if (data.length > 0) {
+        $('.body-box').children().eq(0).removeClass('non-unreg');
+        $('.body-box').children().eq(0).addClass('unreg');
+        $('.body-box').children().eq(1).removeClass('dsp-none');
+    }
+    else {
+        $('.body-box').children().eq(0).addClass('non-unreg');
+        $('.body-box').children().eq(0).removeClass('unreg');
+        $('.body-box').children().eq(1).addClass('dsp-none');
+    }
 }
 
+//데이터 수정 시 date type 데이터를 string 타입으로 형변환
 function updateDateFormmat(data){
 
     if(data.inwr_dt) data.inwr_dt = getDate(new Date(data.inwr_dt), new Date(data.inwr_dt).getTime());
@@ -494,6 +496,7 @@ function updateDateFormmat(data){
     if(data.abdn_dt) data.abdn_dt = getDate(new Date(data.abdn_dt), new Date(data.abdn_dt).getTime())
 }
 
+//테이블 세팅 시 날짜 데이터를 날짜 포맷 변환
 function tableDateFormmat(data){
     if(data.inwr_dt)data.inwr_dt = getParseDateTime(data.inwr_dt);
     if(data.otwr_dt)data.otwr_dt = getParseDateTime(data.otwr_dt);
@@ -503,6 +506,7 @@ function tableDateFormmat(data){
     if(data.abdn_dt)data.abdn_dt = getParseDateTime(data.abdn_dt);
 }
 
+//데이터 수신 및 테이블 세팅 함수
 function tableSettings(){
     managerData = [];
     getData(commonUri, managerData);

+ 22 - 5
src/main/resources/static/application/op/02.facility/02.company/company.js

@@ -196,6 +196,7 @@ const btnArr = [
 
 $(()=>{
 
+    //추가 시 신규 업체 ID 입력을 위한 모달
     $("body").append(modalDiv);
     $(".modal-title").prepend($('<div>업체 ID</div>'));
     $(".modal-background").css("display",'none'); 
@@ -337,7 +338,7 @@ $(()=>{
         },
     }).dxDataGrid("instance");
   
-    
+    //신규업체 ID 입력 텍스트 상자
     modalText = $(".modal-text").dxTextBox({
         width:"250px",
         maxLength:'30',
@@ -347,7 +348,7 @@ $(()=>{
         }
     }).dxTextBox("instance");
 
-
+    //화면에 버튼 세팅
     btnArr.map((item)=>{
         item.box = $("." + item.class).dxButton({
             stylingMode : item.stylingMode,
@@ -363,9 +364,11 @@ $(()=>{
                 }
             }
         }).dxButton('instance');
-    })
+    });
+
 })
 
+//동일 아이디 확인을 위한 아이디 데이터 배열 세팅 함수
 function insertIdInit(){
     idData= [];
     companyData[0].map((item)=>{
@@ -373,7 +376,9 @@ function insertIdInit(){
     })
 }
 
+//이벤트 활성화
 function eventOn(){
+    //버튼 활성화/비활성화
     btnArr.map((item)=>{
         if(item.on){
             item.box.option('visible', item.on.visible);
@@ -381,23 +386,28 @@ function eventOn(){
         };
     })
 
+    //테이블 수정 모드 변경
     companyTable.option("editing",{
         mode                    : 'batch',
         allowUpdating           : true,
         selectTextOnEditStart   : true,
     });
     
+    //수정 시 툴바 사용 못하게 감추기
     companyTable.option('toolbar',{
         visible : false,
     });
 
     companyTable.refresh();
 
+    //적용시 수정 이벤트 활성화
     applyBtn.box.off('click');
     applyBtn.box.on('click', () => editEvent());
 }
 
+//이벤트 비활성화
 function eventCancle(){
+    //버튼 활성화/비활성화
     btnArr.map((item)=>{
         if(item.off){
             item.box.option('visible', item.off.visible);
@@ -405,12 +415,15 @@ function eventCancle(){
         };
     })
 
+    //테이블 수정 모드 종료
     companyTable.option("editing",{
         allowUpdating : false,
     });
+    //테이블 선택 모드 싱글
     companyTable.option("selection",{
         mode : 'single'
     });
+    //툴바 활성화(Excell down)
     companyTable.option('toolbar',{
         visible : true,
     });
@@ -419,6 +432,7 @@ function eventCancle(){
     companyTable.refresh();
 }
 
+//아이디 유효성 검사
 function insertNewId(id){
     switch (true) {
         case !id:
@@ -449,6 +463,7 @@ function insertNewId(id){
     }
 }
 
+//수정 이벤트
 function editEvent(){
     let updateData = [];
     if( !companyTable.hasEditData() ) return alertWarning('변경된 데이터가 없습니다.')
@@ -483,6 +498,7 @@ function editEvent(){
     }
 }
 
+//삭제 이벤트
 function delEvent(){
     let ids = [];
     const selectedData = companyTable.getSelectedRowsData();
@@ -501,6 +517,7 @@ function delEvent(){
 }
 
 function getCellVal( idx, column ){
-    if(nullChecker(companyTable.cellValue(idx, column)) === "") return null;
-    return nullChecker(companyTable.cellValue(idx, column));
+    const cellValue = companyTable.cellValue(idx, column);
+    if(nullChecker(cellValue) === "") return null;
+    return nullChecker(cellValue);
 }

+ 13 - 0
src/main/resources/static/application/op/02.facility/03.fail-hs/fail-hs-pop-up.js

@@ -163,6 +163,7 @@ $(()=>{
                 dataField : 'comm_stts_desc',
                 alignment : 'center',
                 caption   : '통신',
+                width     : 120,
                 cellTemplate(c,e){
                     c.addClass(e.data.comm_stts_cd);
                     c.text(e.displayValue);
@@ -172,6 +173,7 @@ $(()=>{
                 dataField : 'door_stts_desc',
                 alignment : 'center',
                 caption   : '함체문',
+                width     : 120,
                 cellTemplate(c,e){
                     c.addClass(e.data.door_stts_cd);
                     c.text(e.displayValue);
@@ -181,6 +183,16 @@ $(()=>{
                 dataField : 'cbox_tmpr',
                 alignment : 'center',
                 caption   : '함체온도',
+                width     : 120,
+                cellTemplate(c,e){
+                    if (e.displayValue === 255) {
+                        c.addClass('gray');
+                        c.text('정보없음');
+                    }
+                    else {
+                        c.text(e.displayValue);
+                    }
+                }
             },
         
         ],
@@ -217,6 +229,7 @@ function fetchlistData(){
                 if (obj.crtn_dt) obj.crtn_dt = new Date(getParseDateTime(obj.crtn_dt));
             });
             failHsPopupTb.option('dataSource', data[0]);
+            console.log(data[0]);
         }
         alertConfirm('데이터 조회가 완료되었습니다. [' + data[0].length + '건]');
     }

+ 9 - 8
src/main/resources/static/application/op/02.facility/03.fail-hs/fail-hs.js

@@ -31,7 +31,8 @@ let hsDelData        = null;
 let hsUpdatedData    = [];
 
 getData( commonUri + '/manager/info', facilityData);
-getData( commonUri + '/fail-hs/fail-type', failTypeData)
+getData( commonUri + '/fail-hs/fail-type', failTypeData);
+const _userId        = window.opener.$userId;
 
 //장애 내역 버튼 배열
 const failHsBtnArr =[
@@ -67,9 +68,9 @@ const failHsBtnArr =[
             addData['adtn_dt']     = new Date();
             addData['chng_dt']     = new Date();
             //추후 로그인 값으로 변경 예정
-            addData['rcpr_nm']     = 'ADMIN';
-            addData['adtn_nm']     = 'ADMIN';
-            addData['chng_nm']     = 'ADMIN';
+            addData['rcpr_nm']     = _userId;
+            addData['adtn_nm']     = _userId;
+            addData['chng_nm']     = _userId;
 
             addData['fail_cont']     = "";
             addData['fclt_id']     = facilityTable.getSelectedRowsData()[0].fclt_id;
@@ -266,9 +267,9 @@ const failPairBtnArr =[
             addData['fail_hs_seq']  = tableData[0].fail_hs_seq;
             addData['crtn_dt']      = new Date();
             //추후 로그인 값으로 변경 예정
-            addData['wrkr_nm']      = 'ADMIN';
-            addData['chng_nm']      = 'ADMIN';
-            addData['adtn_nm']      = 'ADMIN';
+            addData['wrkr_nm']      = _userId;
+            addData['chng_nm']      = _userId;
+            addData['adtn_nm']      = _userId;
 
             addData['work_strt_dt'] = new Date();
             addData['work_end_dt']  = new Date();
@@ -434,7 +435,7 @@ $(()=>{
         onClick(){
             let name   = '시설물 장애내역';
             let page   =  './fail-hs-pop-up.html';
-            let option = 'width = 900, height = 800, top = 100, left = 450, resizable=yes, scrollbars=no';
+            let option = 'width = 1000, height = 800, top = 100, left = 400, resizable=yes, scrollbars=no';
             window.open(page,name,option);
         }  
     }).dxButton('instance');

+ 67 - 38
src/main/resources/static/application/op/02.facility/04.parking/manager.js

@@ -34,18 +34,18 @@ let modalText        = null;
 let modalCancelBtn   = null;
 let modalCancleIcon  = null;
 
-const updateData = { 
-    address     : null,
-    coordx      : null,
-    coordy      : null,
-    eaddress    : null,
-    elocation   : null,
-    location    : null,
-    parkingcnt  : null,
-    parkingename: null,
-    parkingid   : null,
-    parkingname : null,
-    phone       : null 
+const updateDataColumns = { 
+    address      : null,
+    coordx       : null,
+    coordy       : null,
+    eaddress     : null,
+    elocation    : null,
+    location     : null,
+    parkingcnt   : null,
+    parkingename : null,
+    parkingid    : null,
+    parkingname  : null,
+    phone        : null 
     
 }
 
@@ -362,9 +362,6 @@ const btnArr    = [
         visible     : true,
         icon        : "save",
         text        : "저장",
-        method      : function(){
-            saveEvent();
-        }
     },
    
 ]
@@ -372,6 +369,7 @@ getData( commonUri, _managerData);
 
 idArr = getIdArray(idArr);
 $(()=>{
+    //주차장 ID 추가 하기 위한 div 생성
     $("body").append(modalDiv);
     $(".modal-title").prepend($("<div>주차장ID</div>"));
     $(".modal-background").css("display",'none');
@@ -390,6 +388,7 @@ $(()=>{
         }
     }).dxButton("instance")
     
+    //화면에 텍스트 상자 세팅
     inputArr.map((item)=>{
         if(item.no){
             item.box = $("." + item.column).dxNumberBox({
@@ -420,6 +419,7 @@ $(()=>{
         
     })
 
+    //화면에 버튼 세팅
     btnArr.map((item)=>{
         item.box = $("." + item.class).dxButton({
             icon              : item.icon,
@@ -437,11 +437,16 @@ $(()=>{
         }).dxButton("instance");
     })
 
+    //맵 세팅
     doMap();
+    
+    //주차장 목록 데이터 수신
     getData( commonUri, _managerData);
+    
+    //맵 icon 정보 업데이트
     updateIcon();
     
-     //소통정보 이력분석 테이블
+     //주차장 목록 테이블
      _managerTable = $(".manager-table").width('100%').height('100%').dxDataGrid({
         dataSource              : _managerData[0],
         allowColumnReordering   : true,
@@ -527,7 +532,7 @@ $(()=>{
         }
     }).dxButton("instance")
     
-    //휴일 선택 모달 x 버튼
+    //모달 x 버튼
     modalCancleIcon = $(".modal-cancle").dxButton({
         stylingMode:'text',
         icon:'close',
@@ -537,6 +542,7 @@ $(()=>{
     }).dxButton("instance")
 })
 
+//편집 모드 활성화
 function editEvent(){
     cancleBtn.box.off('click');
     cancleBtn.box.on('click', () => editCancle());
@@ -546,10 +552,14 @@ function editEvent(){
     btnArr.map((item)=>{
         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 saveEvent(){
+//저장 이벤트(type = 수정, 추가)
+function saveEvent(type){
     switch (true) {
         case nullChecker(pkNm.box.option("value")) === "":
             alertWarning('주차장 명을 입력해주세요', null, pkNm.box);
@@ -563,14 +573,28 @@ function saveEvent(){
         case Number(coordy.box.option('value')) === 0:
             alertWarning('x좌표를 입력해주세요', null, coordy.box);
             return false;
+        case getValue(phone.box) && !/^0([0-9]{1,2})[-]{1}([0-9]{3,4})[-]{1}([0-9]{4})$/.test(getValue(phone.box)):
+            alertWarning('전화번호 형식에 맞게 입력해주세요', null, phone.box);
+            return false;
         default:
-            for( let key in updateData ){
-                updateData[key] = null;
+         
+            let updateData = {...updateDataColumns};
+
+            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 && nullChecker(item.box.option("value")) !== "") updateData[item.column] = item.box.option("value");
-            })
+                if (item.column && nullChecker(item.box.option("value")) !== "") {
+                    updateData[item.column] = item.box.option("value");
+                }
+            });
+
             //ctrlIpNum
             let result = postInsertUpdate(commonUri + "/" + updateData.parkingid, updateData);
             
@@ -586,7 +610,6 @@ function saveEvent(){
                         buttonReset('add','selected');
                         idArr = [];
                         idArr = getIdArray(idArr);
-                        
                     })
                     
                 });
@@ -597,12 +620,14 @@ function saveEvent(){
 
 }
 
+//편집 모드 취소
 function editCancle(){
     eventCancle();
     boxPull();
     buttonReset( 'edit', 'cancle' );
 }
 
+//추가 모드 취소
 function addCancle(){
    
     eventCancle();
@@ -618,6 +643,7 @@ function addCancle(){
 
 }
 
+//추가 모드
 function addEvent(){
     $(".modal-background").css("display",'flex');
     eventOn();
@@ -630,38 +656,39 @@ function addEvent(){
     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());
     
 }
 
+//주차장 목록 선택 된 값 우측 텍스트 상자 세팅
 function boxPull(){
-
     let selectedRow = _managerTable.getSelectedRowsData()[0];
     inputArr.map((item)=>{
         item.box.option('value', selectedRow[item.column]);
-    })
-
-
+    });
 }
 
+//우측 텍스트 상자 비우기
 function boxInit(){
-   
     inputArr.map((item)=>{
         if(item.value) return item.box.option('value', item.value);
         if(item.no) return item.box.option('value','0');
         item.box.option("value", null);
-    })
-
-    
+    });
 }
 
+//버튼 비활성화
 function buttonReset(eventName, option){
     btnArr.map((item)=>{
         item.box.option( 'visible', item[eventName][option].visible   );
         item.box.option( 'disabled', item[eventName][option].disabled );
-    })
+    });
 }
 
+//이벤트 비활성화
 function eventCancle(){
     updateIcon();
     dsblOffBtn(_managerTable);
@@ -675,16 +702,16 @@ function eventCancle(){
     };
 }
 
+//이벤트 활성화
 function eventOn(){
-    
     dsblOnBtn(_managerTable);
 
     inputArr.map((item)=>{
         item.box.option("disabled", item.disabled);
     })
-
 }
 
+//기존 아이디 값들 배열로 돌려받는 함수
 function getIdArray(array){
     if(_managerData.length > 0){
         _managerData[0].map((item)=>{
@@ -694,6 +721,7 @@ function getIdArray(array){
     return array;
 }
 
+//아이디값 유효성 검사
 function idValCheck(){
     let pkIdVal = $.trim(modalText.option('value'));
             
@@ -746,6 +774,7 @@ function idValCheck(){
     _mapManager.onFcltDragEndFunc = onFcltDragEndFunc; // 객체(시설물) 편집시 객체 이동후 좌표 반환
     _mapManager.onMouseClickFunc = onMouseClickFunc; // 객체 마우스 클릭 이벤트 반환
     fetchMapIconBar($('.map-bar'), _mapManager, _lyrIdx, _pageName);
+    
 }
 function onFcltDragEndFunc(ALyrIdx, ALyrName, ANmbr, ACoordX, ACoordY) {
     if (ALyrIdx != _lyrIdx) {
@@ -799,7 +828,7 @@ function addFcltObject(ANmbr) {
     _mapManager.createFcltObject(_lyrIdx, ANmbr, "New", "New", "1" /*아이콘색결정,시설물유형_N.png*/ /*, x_crdn, y_crdn*/);
 }
 
-
+//x,y 좌표 변경 시 유효성 맞춰주는 이벤트
 function crdnChanges(text, num){
     let value = text.value;
     const textBox = text.component

+ 3 - 3
src/main/resources/static/application/op/03.history/01.user-cnns-hs/user-cnns-hs.js

@@ -60,8 +60,8 @@ $(()=>{
         width: '80px',
         onClick(){
             
-            let FROM_DT  = getDate(strtDateBox.option("value"),strtTimeBox.option("value"))
-            let TO_DT    = getDate(endDateBox.option("value"),endTimeBox.option("value"))
+            let FROM_DT  = getDate(strtDateBox.option("value"), strtTimeBox.option("value"))
+            let TO_DT    = getDate(endDateBox.option("value"), endTimeBox.option("value"))
             
             if(!validationCheck( strtDateBox, endDateBox, strtTimeBox, endTimeBox)) return false;
             
@@ -87,7 +87,7 @@ $(()=>{
                 }
             })
             userCnnsHsTable.option("dataSource",userCnnsHsData[0]);
-            alertWarning('데이터 조회가 완료 되었습니다. [' + userCnnsHsData[0].length + '건]')
+            alertConfirm('데이터 조회가 완료 되었습니다. [' + userCnnsHsData[0].length + '건]')
         }
     }).dxButton("instance")
     

+ 5 - 4
src/main/resources/static/application/op/05.cctv/05.control/control.js

@@ -19,11 +19,12 @@ let _cctvMngmNmbr   = null;
 let _psetNm         = null;
 let _modalText      = null;
 let _defaultSped    = 40;
+const _userId       = window.opener.$userId;
 let ctrlData = {
     action: null,
     command: null,
     speed: 0,
-    user_id: "0"
+    user_id: _userId
 };
 
 let ctrlBtnColumns = [
@@ -721,7 +722,7 @@ function startCommand(command, speed, cctv_mngm_nmbr){
     ctrlData.action = "start";
     ctrlData.command = command;
     ctrlData.speed = speed;
-    ctrlData.user_id = "0";
+    ctrlData.user_id = _userId;
     let data = [];
     getPostData('/api/cctv/control/ptz/'+ cctv_mngm_nmbr, data, ctrlData);
     console.log(data);
@@ -738,7 +739,7 @@ function stopCommand(command, speed, cctv_mngm_nmbr){
     ctrlData.action = 'stop';
     ctrlData.command = command;
     ctrlData.speed = speed;
-    ctrlData.user_id = "0";
+    ctrlData.user_id = _userId;
     let data = [];
     getPostData('/api/cctv/control/ptz/'+ cctv_mngm_nmbr, data, ctrlData);
     console.log(data);
@@ -756,7 +757,7 @@ function getCtrlPsetData(action, command, name, no, speed){
         no      : no,
         speed   : speed,
         time    : 0,
-        user_id : "0"
+        user_id : _userId,
     };
     return presetData;
 }

+ 4 - 3
src/main/resources/static/application/op/06.vms/01.system/01.monitoring/01.phase/phase.js

@@ -10,6 +10,7 @@ const _dataMap        = new Map();
 let _selectedBox      = null;
 let _deselectInterval = [];
 let _selectedInterval = [];
+const _userId         = window.opener.$userId;
 $(() =>{
 
     _scenarioTabs = $('.scenario-tabs').width('100%').height('100%').dxTabPanel({
@@ -812,13 +813,13 @@ function sendBtnClick() {
     let resetVal = getValue(checkColumns[2].box);
     let result = '';
     if (onVal){
-        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:1, value : 0});
+        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:_userId, value : 0});
     }
     else if (offVal) {
-        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:1, value : 1});
+        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:_userId, value : 1});
     }
     else if (resetVal) {
-        result = postInsertUpdate('/api/vms/control/reset/' + obj.vms_ctlr_nmbr, {user_id:1, value : 0});
+        result = postInsertUpdate('/api/vms/control/reset/' + obj.vms_ctlr_nmbr, {user_id:_userId, value : 0});
     }
 
     if(result > 0){

+ 5 - 3
src/main/resources/static/application/op/06.vms/01.system/01.monitoring/04.module/module.js

@@ -10,6 +10,8 @@ const _dataMap        = new Map();
 let _selectedBox      = null;
 let _deselectInterval = [];
 let _selectedInterval = [];
+const _userId         = window.opener.$userId;
+console.log(_userId);
 $(() =>{
 
     _scenarioTabs = $('.scenario-tabs').width('100%').height('100%').dxTabPanel({
@@ -731,13 +733,13 @@ function sendBtnClick() {
     let resetVal = getValue(checkColumns[2].box);
     let result = '';
     if (onVal){
-        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:1, value : 0});
+        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:_userId, value : 0});
     }
     else if (offVal) {
-        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:1, value : 1});
+        result = postInsertUpdate('/api/vms/control/power/' + obj.vms_ctlr_nmbr, {user_id:_userId, value : 1});
     }
     else if (resetVal) {
-        result = postInsertUpdate('/api/vms/control/reset/' + obj.vms_ctlr_nmbr, {user_id:1, value : 0});
+        result = postInsertUpdate('/api/vms/control/reset/' + obj.vms_ctlr_nmbr, {user_id:_userId, value : 0});
     }
 
     if(result > 0){

+ 6 - 8
src/main/resources/static/application/op/06.vms/01.system/02.control/control.js

@@ -5,6 +5,8 @@ let _listData      = null;
 let _listMap       = new Map();
 let _wcamIp        = null;
 let _wcamCtrlBtn   = null;
+const _userId      = window.opener.$userId;
+
 $(()=>{
     //CCTV 상태 전체조회 테이블
     _listTable = $(".stts-table").width('100%').height('100%').dxDataGrid({
@@ -361,11 +363,8 @@ function fetchBaseData(){
                 _listMap.set(item.vms_ctlr_nmbr, listData);
             }
         });
-        console.log(baseData);
-        console.log(data);
         let listData = Array.from(_listMap.values());
         _listTable.option('dataSource', listData);
-        console.log(listData);
     }
 
     let controlArr = controlDiv();
@@ -804,7 +803,7 @@ function crlrBtnClick(){
     let val  = "";
     
     updateData = {
-        user_id : '0',
+        user_id : _userId,
         value   : '',
     }
 
@@ -850,7 +849,7 @@ function operChangeBtnClick(){
     let oper_mode_desc = "";
     updateData = {
         opr_mode: "",
-        user_id: "0"
+        user_id: _userId,
     };
     
     dataSource[1].check.map((item)=>{
@@ -896,7 +895,7 @@ function cBoxEditBtnClick(){
         retry_count: 0,
         sch_msg_time: 0,
         timeout: 0,
-        user_id: "0",
+        user_id: _userId,
     }
 
     for(let numBox of dataSource[2].num){
@@ -939,7 +938,7 @@ function onOffEditBtnClick(){
     let updateData = {
         off_time: "",
         on_time: "",
-        user_id: "0"
+        user_id: _userId,
     }
 
     for(let timeBox of dataSource[3].time){
@@ -975,7 +974,6 @@ function onOffEditBtnClick(){
 };
 
 function wcamCtlrClick(){
-    console.log(_wcamIp)
     window.open('http://'+ _wcamIp);
 };
 

+ 1 - 2
src/main/resources/static/application/op/06.vms/02.manager/01.info/info.js

@@ -34,8 +34,7 @@ const _updateColumns  = {
     hetr_mtns_tmpr : 0,
     istl_lctn_nm : null,
     last_crct_dt : null,
-    //수정자 번호 아이디로 나중에 변경
-    last_crpr_nmbr : "ADMIN",
+    last_crpr_nmbr : window.opener.$userId,
     oper_mode : "A",
     panl_off_time : null,
     panl_on_time : null,

+ 1 - 2
src/main/resources/static/application/op/06.vms/02.manager/03.symbl-vmp/01.symbl-vmp0/symbl-vmp0.js

@@ -391,8 +391,7 @@ function deleteEvent(){
     const id = selectedData.symb_lib_nmbr;
     let usageData = [];
     getData(commonUri + '/usage/' + id, usageData);
-    
-    if(usageData.length > 0 && usageData[0] > 0){
+    if(usageData[0] && usageData[0].count > 0){
         return alertWarning('삭제할 이미지가 VMS 폼에서 사용되고 있습니다.<br>먼저 해당 폼에서 삭제해주시기 바랍니다.');
     }
     

+ 1 - 1
src/main/resources/static/application/op/06.vms/02.manager/03.symbl-vmp/02.symbl-vmp1/symbl-vmp1.js

@@ -713,7 +713,7 @@ function deleteEvent(){
     let usageData = [];
     getData(commonUri + '/usage/' + id, usageData);
     
-    if(usageData.length > 0 && usageData[0] > 0){
+    if(usageData[0] && usageData[0].count > 0){
         return alertWarning('삭제할 이미지 정보가 VMS 폼에서 사용되고 있습니다.<br>먼저 해당 폼에서 삭제해주시기 바랍니다.');
     }
     

+ 1 - 1
src/main/resources/static/application/op/06.vms/02.manager/03.symbl-vmp/03.symbl-vmp2/symbl-vmp2.js

@@ -503,7 +503,7 @@ function deleteEvent(){
     let usageData = [];
     getData(commonUri + '/usage/' + id, usageData);
     
-    if(usageData.length > 0 && usageData[0] > 0){
+    if(usageData[0] && usageData[0].count > 0){
         return alertWarning('삭제할 이미지가 VMS 폼에서 사용되고 있습니다.<br>먼저 해당 폼에서 삭제해주시기 바랍니다.');
     }
     

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 276 - 216
src/main/resources/static/application/op/06.vms/03.form/manage.js


+ 3 - 3
src/main/resources/static/application/op/07.vds/03.control/control.js

@@ -4,7 +4,7 @@ let _listMap          = new Map();
 let _selectedVdsNmber = null;
 let _resetBtn         = null;
 let _imgCallBtn       = null;
-
+const _userId         = window.opener.$userId;
 $(()=>{
 
     //CCTV 상태 전체조회 테이블
@@ -96,7 +96,7 @@ function imgCallEvent(){
     let callData = {
         camera_no: 1,
         frame_no: 0,
-        user_id: "0",
+        user_id: _userId,
     }
     getPostData(_apiUri + '/stop-image/' + _selectedVdsNmber, jsonData, callData);
     console.log(jsonData[0]);
@@ -116,7 +116,7 @@ function imgCallEvent(){
  */
 function resetEvent(){
     let jsonData = [];
-    getPostData(_apiUri + '/reset/' + _selectedVdsNmber, jsonData, {user_id:"0"});
+    getPostData(_apiUri + '/reset/' + _selectedVdsNmber, jsonData, {user_id:_userId});
     console.log(jsonData[0]);
     if (jsonData[0]){
         if (jsonData[0].error){

+ 1 - 2
src/main/resources/static/application/op/08.database/08.legl-hldy-infr/legl-hldy-infr.js

@@ -434,12 +434,11 @@ function saveEvent() {
         }
     
         if( delData.length > 0){
-            console.log(delData)
             confirmMessage("선택하신 휴일 정보를 삭제하시겠습니까?").done((yes) => {
                 if (yes === true) {
                     delData.map((item)=>{
                         let result = deleteData('/api/database/legl-hldy-infr', item.ymd);
-                        console.log(item.user_id);
+                     
                         delCnt += result;
                     });
                     

+ 3 - 4
src/main/resources/static/application/op/99.common/common.css

@@ -213,11 +213,10 @@
 .MOS0,.PAS1,.HTS1,.MOS1,.PAS2,
 .HTS2,.MOS2,.gray,.CDS0,.CDS1,
 .CDS2,.green,.red,.yellow,.PWS2,
-.PWS1,.PWS0
+.PWS1,.PWS0,.gray
 {
-    display: flex;
-    align-items: center;
-    justify-content: center;
+    width: 100%;
+    height: 100%;
 }
 
 .CMS0,

+ 1 - 0
src/main/resources/static/application/op/99.common/common.js

@@ -699,6 +699,7 @@ function fetchMapIconBar(appendPosition, mapManager, lyrIdx, pageName) {
     mapToggleChek.on("valueChanged", function (e) {
         mapManager.toggleBaseMap(e.value);
     });
+    setValue(mapToggleChek, true);
 
     $(appendPosition).append(iconBar);
 }

+ 2 - 2
src/main/resources/static/application/wall/main/main.html

@@ -6,13 +6,13 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
         <script src="/libs/jquery/jquery-3.6.0.min.js"></script>
         <script src="/libs/jquery/jquery-ui.min.js"></script>
-
+        <script src="/js/constant/constant.js"></script>
         <link rel="icon" href="data:;base64,iVBORw0KGgo=">
         <link rel="stylesheet" href="./main.css" type="text/css" />
         <link rel="stylesheet" href="/libs/video-7.10.2/video-7.10.2.css" type="text/css" />
         <link rel="stylesheet" href="/libs/v6.14.1-dist/ol.css" />
         <link rel="stylesheet" href="/libs/v6.14.1-dist/ol-ext/ol-ext.css" />
-
+        
         <title>용인시 상황판</title>
 
         <style>

+ 3 - 4
src/main/resources/static/js/constant/constant.js

@@ -1,9 +1,8 @@
 // common.js restApi.js, websocket.js
-// const _apiUrl = "http://localhost:8999";
-// const _mapHostUrl = "http://115.91.94.42:8080";
-const _apiUrl = "";
-const _mapHostUrl = "";
+const _apiUrl = "http://localhost:8999";
 
+// map-config.js
+const _mapHostUrl = "http://115.91.94.42:8080";
 const _normalUrl = _mapHostUrl + "/MAPDATA/YONGIN/Base/{z}/{x}/{y}.png";
 const _satelliteUrl = _mapHostUrl + "/MAPDATA/YONGIN/Satellite/{z}/{x}/{y}.jpeg";
 const _hybridUrl = _mapHostUrl + "/MAPDATA/YONGIN/Hybrid/{z}/{x}/{y}.png";

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio