충돌 위치

main
최다훈 2025-07-03 14:33:08 +09:00
commit 713cc1b1b8
26 changed files with 36924 additions and 206 deletions

3
.gitignore vendored
View File

@ -86,3 +86,6 @@ replay_pid*
.classpath .classpath
/src/main/resources/egovframework/egovProps/globals.properties /src/main/resources/egovframework/egovProps/globals.properties
/src/main/webapp/WEB-INF/clipreport4/DataConnection.properties /src/main/webapp/WEB-INF/clipreport4/DataConnection.properties
apply.bat
list.txt

View File

@ -2,8 +2,8 @@
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
set source_prefix=src\main\webapp\ set source_prefix=src\main\webapp\
set target_prefix=C:\Users\DBNT-0288\Desktop\app_geoinfo\app\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\ set target_prefix=C:\Users\dbnt\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\
set target_directory=C:\Users\DBNT-0288\Desktop\app_geoinfo\app\geoinfo_eGov_work\ set target_directory=C:\Users\dbnt\git\dbnt\geoinfo.or.kr\geoinfo_eGov_work\
set source_file= set source_file=
set target_file= set target_file=

View File

@ -1,6 +1,12 @@
src\main\resources\egovframework\egovProps\globals.properties
src\main\webapp\com\css\common.v2.0.css src\main\webapp\com\css\common.v2.0.css
src\main\webapp\com\css\common.v2.0.css.map src\main\webapp\com\css\common.v2.0.css.map
src\main\webapp\js\map\main\section.js
src\main\webapp\web\rex\holeForMap.reb
src\main\webapp\WEB-INF\clipreport4\DataConnection.properties
src\main\webapp\WEB-INF\views\drilling\input\drilling_input.jsp
src\main\webapp\WEB-INF\views\drilling\inquiry\drilling_inquiry.jsp
src\main\resources\egovframework\sqlmap\mapper\drilling\input\DrillingInputMapper.xml
src\main\webapp\WEB-INF\views\drilling\home\drilling_index.jsp src\main\webapp\WEB-INF\views\drilling\home\drilling_index.jsp
src\main\webapp\com\img\drilling\logos\06.svg src\main\webapp\com\img\drilling\logos\06.svg
src\main\webapp\com\img\drilling\logos\07.svg src\main\webapp\com\img\drilling\logos\07.svg

View File

@ -67,12 +67,12 @@ public class JusangdoController {
EgovMap result = jusangdoService.selectTblHeader(params); EgovMap result = jusangdoService.selectTblHeader(params);
if (result != null) { if (result != null) {
String projectCode = (String)result.get("projectCode"); String projectCode = (String)result.get("projectCode");
OOFFile file = oof.addFile("crf.root", realPath + File.separator + "web" + File.separator + "rex" + File.separator + "holeForMap.reb"); OOFFile file = oof.addFile("crf.root", realPath + "web" + File.separator + "rex" + File.separator + "holeForMap.reb");
file.addField("p_code", projectCode); file.addField("p_code", projectCode);
file.addField("h_code", holeCodeSplit[i]); file.addField("h_code", holeCodeSplit[i]);
file.addField("server_ip", imagePath); file.addField("server_ip", imagePath);
System.out.println("생성위치로그확인하기."+realPath + File.separator + "web" + File.separator + "rex" + File.separator + "holeForMap.reb"); System.out.println("생성위치로그확인하기."+realPath + "web" + File.separator + "rex" + File.separator + "holeForMap.reb");
System.out.println("p_code----------------->"+projectCode); System.out.println("p_code----------------->"+projectCode);
System.out.println("h_code----------------->"+holeCodeSplit[i]); System.out.println("h_code----------------->"+holeCodeSplit[i]);
System.out.println("server_ip----------------->"+imagePath); System.out.println("server_ip----------------->"+imagePath);

View File

@ -124,16 +124,25 @@ public class DrillingHomeController {
EgovMap mbr = drillingInquiryService.getTblMasterCompanyMbrByComCode(request, params, String.valueOf(request.getSession().getAttribute("USERID"))); EgovMap mbr = drillingInquiryService.getTblMasterCompanyMbrByComCode(request, params, String.valueOf(request.getSession().getAttribute("USERID")));
model.addAttribute("mbr", mbr); model.addAttribute("mbr", mbr);
if( mbr != null ) { double nOffsetKm = 2.0f; // 2Km 밖 까지 허용한다.
double nOffsetKm = 2.0f; // 2Km 밖 까지 허용한다. if( mbr != null && mbr.get("minX") != null && mbr.get("minY") != null && mbr.get("maxX") != null && mbr.get("maxY") != null ) {
} else {
HashMap<String, Object> spGetProjectMbrParams = drillingInquiryService.spGetProjectMbr( request, params, String.valueOf(request.getSession().getAttribute("USERID")) );
mbr = new EgovMap();
mbr.put("minX", MyUtil.getDoubleFromObject( spGetProjectMbrParams.get("v_min_x") ) - nOffsetKm*1000);
mbr.put("minY", MyUtil.getDoubleFromObject( spGetProjectMbrParams.get("v_min_y") ) - nOffsetKm*1000);
mbr.put("maxX", MyUtil.getDoubleFromObject( spGetProjectMbrParams.get("v_max_x") ) + nOffsetKm*1000);
mbr.put("maxY", MyUtil.getDoubleFromObject( spGetProjectMbrParams.get("v_max_y") ) + nOffsetKm*1000);
}
if( mbr != null && mbr.get("minX") != null && mbr.get("minY") != null && mbr.get("maxX") != null && mbr.get("maxY") != null ) {
params.put("MIN_X", MyUtil.getDoubleFromObject( mbr.get("minX") ) - nOffsetKm*1000); params.put("MIN_X", MyUtil.getDoubleFromObject( mbr.get("minX") ) - nOffsetKm*1000);
params.put("MIN_Y", MyUtil.getDoubleFromObject( mbr.get("minY") ) - nOffsetKm*1000); params.put("MIN_Y", MyUtil.getDoubleFromObject( mbr.get("minY") ) - nOffsetKm*1000);
params.put("MAX_X", MyUtil.getDoubleFromObject( mbr.get("maxX") ) + nOffsetKm*1000); params.put("MAX_X", MyUtil.getDoubleFromObject( mbr.get("maxX") ) + nOffsetKm*1000);
params.put("MAX_Y", MyUtil.getDoubleFromObject( mbr.get("maxY") ) + nOffsetKm*1000); params.put("MAX_Y", MyUtil.getDoubleFromObject( mbr.get("maxY") ) + nOffsetKm*1000);
model.put("data", drillingHomeService.drillingMapSearchHoleWithMbr(params));
} }
model.put("data", drillingHomeService.drillingMapSearchHoleWithMbr(params));
return "jsonView"; return "jsonView";
} }

View File

@ -8,6 +8,7 @@ import java.io.OutputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.sql.SQLException;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -54,6 +55,11 @@ import ictway.comm.util.strUtil;
import ictway.comm.web.WebUtil; import ictway.comm.web.WebUtil;
import ictway.whois.whoisSMS; import ictway.whois.whoisSMS;
/**
*
* @author thkim
*
*/
@Controller @Controller
public class DrillingInputController { public class DrillingInputController {
@ -100,12 +106,9 @@ public class DrillingInputController {
JSONObject jsonObject = (JSONObject) obj; JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환 // JSONObject를 HashMap으로 변환
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = MyUtil.JSONObjectToHashMap( jsonObject );
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try { try {
HashMap<String, Object> hashMap = drillingInputService.drillingInputAdd(request, params); HashMap<String, Object> hashMap = drillingInputService.drillingInputAdd(request, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("v_RetCode")); int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("v_RetCode"));
@ -237,5 +240,113 @@ public class DrillingInputController {
} }
return null; return null;
}
@RequestMapping(value = "/drilling/modify.do")
public String drillingModify(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if(request.getSession().getAttribute("USERNAME") == null){
return "redirect:/index.do";
} }
model.put("params", params);
return "/drilling/input/drilling_input";
}
/**
* method.
* @param request
* @param strJSON
* @param response
* @return
*/
@RequestMapping(value = "/drilling/input/modify.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject drillingInputModify(
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
JSONObject jSONOResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"jstrJSON: \n" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
String failMsg = "";
try {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환
HashMap<String, Object> params = MyUtil.JSONObjectToHashMap(jsonObject);
try {
HashMap<String, Object> hashMap = drillingInputService.drillingInputModify(request, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("v_RetCode"));
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("v_RetMsg"));
if( nRetCode == 100 ) {
jSONOResponse.put("resultCode", nRetCode);
jSONOResponse.put("result", "true");
jSONOResponse.put("message", "등록이 완료되었습니다.");
} else {
if( nRetCode == 11 ) {
lpszRetMsg += "\n" +
"사업명: " + params.get("constName");
}
jSONOResponse.put("resultCode", nRetCode);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", lpszRetMsg);
isFail = true;
failMsg = lpszRetMsg;
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"strJSON:[\n" + strJSON + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage());
}
}
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if( isFail ) {
jSONOResponse.put("resultCode", -2);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", failMsg);
}
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n");
return jSONOResponse;
}
} }

View File

@ -14,4 +14,6 @@ public interface DrillingInputService {
HashMap<String, Object> updateProjectCodeAndProjectStateCodeByCid(HttpServletRequest request, HashMap<String, Object> params) throws Exception; HashMap<String, Object> updateProjectCodeAndProjectStateCodeByCid(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> updateProjectCodeAndProjectStateCodeByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception; HashMap<String, Object> updateProjectCodeAndProjectStateCodeByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> drillingInputModify(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
} }

View File

@ -2,17 +2,22 @@ package geoinfo.drilling.input.service.impl;
import geoinfo.drilling.input.service.DrillingInputMapper; import geoinfo.drilling.input.service.DrillingInputMapper;
import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import geoinfo.main.login.service.LoginMapper; import geoinfo.main.login.service.LoginMapper;
import geoinfo.util.MyUtil; import geoinfo.util.MyUtil;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.psl.dataaccess.util.EgovMap;
@ -26,6 +31,8 @@ public class DrillingInputServiceImpl implements DrillingInputService {
@Resource(name="loginMapper") @Resource(name="loginMapper")
private LoginMapper loginMapper; private LoginMapper loginMapper;
@Autowired
DrillingInquiryService drillingInquiryService;
/** /**
* Gl Gm Gs Gf Codes * Gl Gm Gs Gf Codes
@ -193,4 +200,52 @@ public class DrillingInputServiceImpl implements DrillingInputService {
} }
} }
@Override
public HashMap<String, Object> drillingInputModify(HttpServletRequest request, HashMap<String, Object> params)
throws Exception {
// TODO Auto-generated method stub
String userId = (String)request.getSession().getAttribute("USERID");
params.put("CID", params.get("cid"));
JSONObject tempConstructSiteInfo = drillingInquiryService.drillingInquiryOneItem(request, params);
// JSONObject를 HashMap으로 변환
ArrayList<EgovMap> arrayList = (ArrayList<EgovMap>) MyUtil.JSONObjectToHashMap( tempConstructSiteInfo ).get("datas");
HashMap<String, Object> oldTempConstructSiteInfo = new HashMap<String, Object>(arrayList.get(0));
HashMap<String, Object> findConstCompanyCodeByConstCompanyNameParams = getOrganizationUserGlGmGsGfCodes(userId);
findConstCompanyCodeByConstCompanyNameParams.put("userId", userId);
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyOCode", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gl") ));
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyTwCode", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gm") ));
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyThCode", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gs") ));
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyName", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gf") ));
try {
findConstCompanyCodeByConstCompanyNameParams.put("constCompanyName", params.get("constCompanyName"));
Long constCompanyCode = drillingInputMapper.findConstCompanyCodeByConstCompanyName(findConstCompanyCodeByConstCompanyNameParams);
HashMap<String, Object> spUdtTblCsiParams = (HashMap<String, Object>) params.clone();
spUdtTblCsiParams.put("masterCompanyOCode", findConstCompanyCodeByConstCompanyNameParams.get("masterCompanyOCode"));
spUdtTblCsiParams.put("masterCompanyTwCode", findConstCompanyCodeByConstCompanyNameParams.get("masterCompanyTwCode"));
spUdtTblCsiParams.put("masterCompanyThCode", findConstCompanyCodeByConstCompanyNameParams.get("masterCompanyThCode"));
spUdtTblCsiParams.put("constCompanyCode", constCompanyCode);
spUdtTblCsiParams.put("crtUserid", oldTempConstructSiteInfo.get("crtUserid"));
spUdtTblCsiParams.put("modUserid", userId);
spUdtTblCsiParams.put("userId", userId);
drillingInputMapper.spUdtTblCsi(spUdtTblCsiParams);
return spUdtTblCsiParams;
} catch (SQLException e) {
throw new Exception( e.getMessage() );
}
}
} }

View File

@ -95,13 +95,13 @@ public class DrillingInquiryController {
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
String strTxt = String strTxt =
"---------- BUG REPORTING START ----------" + "\n" + "---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" + "params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" + "---------- BUG REPORTING END ----------" + "\n" +
""; "";
System.out.println(strTxt); System.out.println(strTxt);
} }
@ -146,6 +146,73 @@ public class DrillingInquiryController {
} }
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"
);
int contentLength = 0;
try {
contentLength = jSONOResponse.toJSONString().getBytes("UTF-8").length;
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response.setStatus(HttpServletResponse.SC_OK);
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/json; charset=utf-8");
response.setContentLength(contentLength); // Content-Length 설정
try {
response.getWriter().print(jSONOResponse);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@RequestMapping(value = "/drilling/inquiry/one-item.do", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" })
@ResponseBody
public ResponseEntity<JSONObject> drillingInquiryOneItem (
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response
) {
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"params" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONObject jSONOResponse = null;
try {
jSONOResponse = drillingInquiryService.drillingInquiryOneItem( request, params );
} catch (Exception e) {
// TODO Auto-generated catch block
jSONOResponse = new JSONObject();
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage());
}
System.out.println( System.out.println(
"\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" + request.getRequestURI() + " OUT:" +

View File

@ -13,6 +13,8 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
public interface DrillingInquiryService { public interface DrillingInquiryService {
JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception; JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
JSONObject drillingInquiryOneItem(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> spGetProjectMbr(HttpServletRequest request, HashMap<String, Object> params, String userId) throws Exception; HashMap<String, Object> spGetProjectMbr(HttpServletRequest request, HashMap<String, Object> params, String userId) throws Exception;
List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception; List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
EgovMap getItemByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception; EgovMap getItemByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception;

View File

@ -1,5 +1,6 @@
package geoinfo.drilling.inquiry.service.impl; package geoinfo.drilling.inquiry.service.impl;
import geoinfo.drilling.input.service.DrillingInputMapper;
import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryMapper; import geoinfo.drilling.inquiry.service.DrillingInquiryMapper;
import geoinfo.drilling.inquiry.service.DrillingInquiryService; import geoinfo.drilling.inquiry.service.DrillingInquiryService;
@ -31,6 +32,9 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
@Resource(name="drillingInquiryMapper") @Resource(name="drillingInquiryMapper")
private DrillingInquiryMapper drillingInquiryMapper; private DrillingInquiryMapper drillingInquiryMapper;
@Resource(name="drillingInputMapper")
private DrillingInputMapper drillingInputMapper;
@Autowired @Autowired
DrillingInputService drillingInputService; DrillingInputService drillingInputService;
@ -232,6 +236,50 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
} }
*/ */
@Override
public JSONObject drillingInquiryOneItem(HttpServletRequest request, HashMap<String, Object> params)
throws Exception {
JSONObject jsonResponse = new JSONObject();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String userId = MyUtil.getStringFromObject( request.getSession().getAttribute("USERID") );
if( userId == null){
throw new Exception( "로그인이 필요한 서비스입니다." );
}
List<EgovMap> datas = drillingInputMapper.sPGetTblCsiByCid(params);
for( EgovMap data : datas ) {
Long nConstCompanyCodeKey = MyUtil.getLongFromObject(data.get("constCompanyCode"));
if( nConstCompanyCodeKey != null ) {
params.put("constCompanyCode", nConstCompanyCodeKey);
String constCompanyName = drillingInquiryMapper.spGetConstCompanyName(nConstCompanyCodeKey);
data.put("constCompanyName", constCompanyName);
}
TIMESTAMP oracleTimestamp = (TIMESTAMP)data.get("crtDt");
if( oracleTimestamp != null ) {
Timestamp javaTimestamp = oracleTimestamp.timestampValue();
String formattedDate = dateFormat.format(javaTimestamp);
data.put("crtDt", formattedDate);
}
oracleTimestamp = (TIMESTAMP)data.get("modDt");
if( oracleTimestamp != null ) {
Timestamp javaTimestamp = oracleTimestamp.timestampValue();
String formattedDate = dateFormat.format(javaTimestamp);
data.put("modDt", formattedDate);
}
}
jsonResponse.put("datas", datas);
return jsonResponse;
}
@Override @Override
public HashMap<String, Object> spGetProjectMbr(HttpServletRequest request, HashMap<String, Object> params, String userId) public HashMap<String, Object> spGetProjectMbr(HttpServletRequest request, HashMap<String, Object> params, String userId)
@ -360,4 +408,6 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
} }
} }

View File

@ -639,7 +639,7 @@ public class MapInformationController {
public String getSichudanData(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception { public String getSichudanData(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
StringBuffer sb = request.getRequestURL(); StringBuffer sb = request.getRequestURL();
String url = sb.substring(0, sb.lastIndexOf("/")); String url = sb.substring(0, sb.lastIndexOf("/"));
url = "http://218.232.234.161/body/sichudan"; url = "http://218.232.234.161/body/sichudan ";
// url = // url =
// request.getSession().getServletContext().getRealPath("/WEB-INF"); // request.getSession().getServletContext().getRealPath("/WEB-INF");

View File

@ -834,4 +834,18 @@ public final class MyUtil {
return clobData; return clobData;
} }
// JSONObject를 HashMap으로 변환
public static HashMap<String, Object> JSONObjectToHashMap( JSONObject jsonObject ) {
HashMap<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
return params;
}
} }

View File

@ -45,7 +45,7 @@
</select> </select>
<select id="findConstCompanyCodeByConstCompanyName" parameterType="map" resultType="long"> <select id="findConstCompanyCodeByConstCompanyName" parameterType="map" resultType="long">
SELECT SP_GET_CONST_COMPANY_CODE(#{constCompanyDept}) FROM dual SELECT SP_GET_CONST_COMPANY_CODE(#{constCompanyName}) FROM dual
</select> </select>
@ -82,6 +82,7 @@
<result property="resultCode" column="p_result_code" jdbcType="VARCHAR"/> <result property="resultCode" column="p_result_code" jdbcType="VARCHAR"/>
<result property="errMsg" column="p_err_msg" jdbcType="VARCHAR"/> <result property="errMsg" column="p_err_msg" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<select id="spUdtTblCsi" parameterType="map" statementType="CALLABLE" resultMap="spUdtTblCsiResult"> <select id="spUdtTblCsi" parameterType="map" statementType="CALLABLE" resultMap="spUdtTblCsiResult">
{ CALL SP_UDT_TBL_CSI( { CALL SP_UDT_TBL_CSI(
#{cid}, #{cid},

View File

@ -15,7 +15,7 @@
#{masterCompanyTwCode, jdbcType=VARCHAR}, #{masterCompanyTwCode, jdbcType=VARCHAR},
#{masterCompanyThCode, jdbcType=VARCHAR}, #{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR}, #{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyDept, jdbcType=VARCHAR}, #{constCompanyName, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR}, #{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR}, #{constCompanyTel, jdbcType=VARCHAR},
NULL NULL
@ -26,7 +26,7 @@
SELECT * FROM TABLE(SP_GET_TBL_CSI_BY_KEYWORD( SELECT * FROM TABLE(SP_GET_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},#{constName, jdbcType=VARCHAR},#{constStartDate, jdbcType=VARCHAR},#{constEndDate, jdbcType=VARCHAR},#{constStateCode, jdbcType=VARCHAR}, #{constTag, jdbcType=VARCHAR},#{constName, jdbcType=VARCHAR},#{constStartDate, jdbcType=VARCHAR},#{constEndDate, jdbcType=VARCHAR},#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},#{masterCompanyTwCode, jdbcType=VARCHAR},#{masterCompanyThCode, jdbcType=VARCHAR}, #{masterCompanyName, jdbcType=VARCHAR}, #{masterCompanyOCode, jdbcType=VARCHAR},#{masterCompanyTwCode, jdbcType=VARCHAR},#{masterCompanyThCode, jdbcType=VARCHAR}, #{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyDept, jdbcType=VARCHAR},#{constCompanyAdmin, jdbcType=VARCHAR},#{constCompanyTel, jdbcType=VARCHAR},NULL, #{constCompanyName, jdbcType=VARCHAR},#{constCompanyAdmin, jdbcType=VARCHAR},#{constCompanyTel, jdbcType=VARCHAR},NULL,
2,2,#{nCount},#{nPage})) 2,2,#{nCount},#{nPage}))
</select> </select>

View File

@ -79,14 +79,19 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
</ul> </ul>
<p class="check-title">기관명이 없을 시, 연락 바랍니다. 연락처: <span class="contact-tel">031-995-0934</span></p> <p class="check-title">기관명이 없을 시, 연락 바랍니다. 연락처: <span class="contact-tel">031-995-0934</span></p>
</div> </div>
<button class="btn-green" type="button">엑셀자료입력</button> <!-- 실제 파일 선택 input (숨김 처리) -->
<button class="btn-green btn-excel-download" type="button">엑셀 양식 다운로드</button> <input type="file" id="excel-file-input" accept=".xls" style="display: none;">
<button class="btn-green" type="button" onclick="triggerExcelUpload()">엑셀자료입력</button>
                        <button class="btn-green btn-excel-download" type="button" id="excel-download-btn">엑셀 양식 다운로드</button>
</div> </div>
<div id="table-container"> <div id="table-container">
</div> </div>
<div class=""> <div class="bottom-buttons">
<button class="btn btn-plus" id="add-table" type="button"></button> <button class="btn btn-plus" id="add-table" type="button"></button>
<button class="btn btn-minus" id="minus-table" type="button"></button> <button class="btn btn-minus" id="minus-table" type="button"></button>
<button class="btn-left btn-delete" id="btn-delete" type="button">
<span>삭제</span>
</button>
<button class="btn-green btn-save" id="btn-save" type="button"> <button class="btn-green btn-save" id="btn-save" type="button">
<span>저장</span> <span>저장</span>
</button> </button>
@ -103,9 +108,23 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<div id="calenderDiv" class="trViewOff" style="position:absolute;"></div> <div id="calenderDiv" class="trViewOff" style="position:absolute;"></div>
<!-- javascript start--> <!-- javascript start-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var tableId = 0; var tableId = 0;
function getQueryString(paramName) {
var searchString = decodeURI(window.location.search).substring(1),
i, val, params = searchString.split("&");
for (i = 0; i < params.length; i++) {
val = params[i].split("=");
if (val[0] == paramName) {
return decodeURIComponent(unescape(val[1]));
}
}
return null;
}
function setName(inputValue, arrDistrict, index ) { function setName(inputValue, arrDistrict, index ) {
targetId = arrDistrict[index]; targetId = arrDistrict[index];
@ -208,7 +227,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<tr> <tr>
<th>건설사</th> <th>건설사</th>
<td colspan="3"> <td colspan="3">
<input type="text" value="" class="input-box information1" id="const-company-dept-` + tableId + `" placeholder="담당부서"> <input type="text" value="" class="input-box information1" id="const-company-dept-` + tableId + `" placeholder="건설사명">
<input type="text" value="" class="input-box information2" id="const-company-admin-` + tableId + `" placeholder="담당자"> <input type="text" value="" class="input-box information2" id="const-company-admin-` + tableId + `" placeholder="담당자">
<input type="text" value="" class="input-box information3" id="const-company-tel-` + tableId + `" placeholder="담당자 연락처"> <input type="text" value="" class="input-box information3" id="const-company-tel-` + tableId + `" placeholder="담당자 연락처">
<label class="check-box unselected-constructor-label" for="unselected-constructor-` + tableId + `"><input type="checkbox" id="unselected-constructor-` + tableId + `"> <label class="check-box unselected-constructor-label" for="unselected-constructor-` + tableId + `"><input type="checkbox" id="unselected-constructor-` + tableId + `">
@ -225,6 +244,48 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// 'CID' 쿼리스트링 파라미터 확인 및 버튼 숨김 처리
const cid = getQueryString('CID');
if (cid) {
const excelInputBtn = document.getElementById('excel-input-btn');
const excelDownloadBtn = document.getElementById('excel-download-btn');
const addTableBtn = document.getElementById('add-table');
const minusTableBtn = document.getElementById('minus-table');
if (excelInputBtn) {
excelInputBtn.style.display = 'none';
}
if (excelDownloadBtn) {
excelDownloadBtn.style.display = 'none';
}
if (addTableBtn) {
addTableBtn.style.display = 'none';
}
if (minusTableBtn) {
minusTableBtn.style.display = 'none';
}
getOneItem(cid);
} else {
const btnDelete = document.getElementById('btn-delete');
if (btnDelete) {
btnDelete.style.display = 'none';
}
const excelInputBtn = document.getElementById('excel-input-btn');
const excelDownloadBtn = document.getElementById('excel-download-btn');
if (excelInputBtn) {
excelInputBtn.style.display = 'none';
}
if (excelDownloadBtn) {
excelDownloadBtn.style.display = 'none';
}
}
document.getElementById('add-table').addEventListener('click', function() { document.getElementById('add-table').addEventListener('click', function() {
addItem(); addItem();
}); });
@ -242,6 +303,8 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
document.getElementById('btn-save').addEventListener('click', function() { document.getElementById('btn-save').addEventListener('click', function() {
const cid = getQueryString('CID');
var tableDataElements = document.getElementsByClassName('table-data'); var tableDataElements = document.getElementsByClassName('table-data');
console.log(tableDataElements); console.log(tableDataElements);
@ -250,78 +313,95 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
var jsonData = new Array(); var jsonData = new Array();
for (var i = 0; i < tableDataElements.length; i++) { for (var i = 0; i < tableDataElements.length; i++) {
let duplChkEle = document.querySelectorAll('.input-box[id*="const-name"]'); // 엑셀양식 로드시 사업명 중복 체크해야 하는 대상 엘리먼트
for (let i = 0 ; i < duplChkEle.length; i++) {
duplicateCheckProjectName(duplChkEle[i])
}
var jsonItem = {}; var jsonItem = {};
dataIndexValue = tableDataElements[i].getAttribute('data-index'); dataIndexValue = tableDataElements[i].getAttribute('data-index');
// 사업명 // 사업명
var constNameEle = document.getElementById('const-name-' + (i + 1)); var constNameEle = document.getElementById('const-name-' + dataIndexValue);
if (constNameEle) { if (constNameEle) {
jsonItem.constName = constNameEle.value; jsonItem.constName = constNameEle.value;
} }
// 사업기간 - 시작 // 사업기간 - 시작
var constStartDateEle = document.getElementById('const-start-date-' + (i + 1)); var constStartDateEle = document.getElementById('const-start-date-' + dataIndexValue);
if (constStartDateEle) { if (constStartDateEle) {
jsonItem.constStartDate = constStartDateEle.value; jsonItem.constStartDate = constStartDateEle.value;
} }
// 사업기간 - 종료 // 사업기간 - 종료
var constEndDateEle = document.getElementById('const-end-date-' + (i + 1)); var constEndDateEle = document.getElementById('const-end-date-' + dataIndexValue);
if (constEndDateEle) { if (constEndDateEle) {
jsonItem.constEndDate = constEndDateEle.value; jsonItem.constEndDate = constEndDateEle.value;
} }
// 사업단계 // 사업단계
var constStateCodeEle = document.getElementById('const-state-code-' + (i + 1)); var constStateCodeEle = document.getElementById('const-state-code-' + dataIndexValue);
if (constStateCodeEle) { if (constStateCodeEle) {
jsonItem.constStateCode = constStateCodeEle.value; jsonItem.constStateCode = constStateCodeEle.value;
} }
// 발주기관 - 담당부서 // 발주기관 - 담당부서
var masterCompanyDeptEle = document.getElementById('master-company-dept-' + (i + 1)); var masterCompanyDeptEle = document.getElementById('master-company-dept-' + dataIndexValue);
if (masterCompanyDeptEle) { if (masterCompanyDeptEle) {
jsonItem.masterCompanyDept = masterCompanyDeptEle.value; jsonItem.masterCompanyDept = masterCompanyDeptEle.value;
} }
// 발주기관 - 담당자 // 발주기관 - 담당자
var masterCompanyAdminEle = document.getElementById('master-company-admin-' + (i + 1)); var masterCompanyAdminEle = document.getElementById('master-company-admin-' + dataIndexValue);
if (masterCompanyAdminEle) { if (masterCompanyAdminEle) {
jsonItem.masterCompanyAdmin = masterCompanyAdminEle.value; jsonItem.masterCompanyAdmin = masterCompanyAdminEle.value;
} }
// 발주기관 - 담당자 연락처 // 발주기관 - 담당자 연락처
var masterCompanyTelEle = document.getElementById('master-company-tel-' + (i + 1)); var masterCompanyTelEle = document.getElementById('master-company-tel-' + dataIndexValue);
if (masterCompanyTelEle) { if (masterCompanyTelEle) {
jsonItem.masterCompanyTel = masterCompanyTelEle.value; jsonItem.masterCompanyTel = masterCompanyTelEle.value;
} }
// 건설사 - 담당부서 // 건설사 - 건설사명
var constCompanyDeptEle = document.getElementById('const-company-dept-' + (i + 1)); var constCompanyNameEle = document.getElementById('const-company-dept-' + dataIndexValue);
if (constCompanyDeptEle) { if (constCompanyNameEle) {
jsonItem.constCompanyDept = constCompanyDeptEle.value; jsonItem.constCompanyName = constCompanyNameEle.value;
} }
// 건설사 - 담당자 // 건설사 - 담당자
var constCompanyAdminEle = document.getElementById('const-company-admin-' + (i + 1)); var constCompanyAdminEle = document.getElementById('const-company-admin-' + dataIndexValue);
if (constCompanyAdminEle) { if (constCompanyAdminEle) {
jsonItem.constCompanyAdmin = constCompanyAdminEle.value; jsonItem.constCompanyAdmin = constCompanyAdminEle.value;
} }
// 건설사 - 담당자 연락처 // 건설사 - 담당자 연락처
var constCompanyTelEle = document.getElementById('const-company-tel-' + (i + 1)); var constCompanyTelEle = document.getElementById('const-company-tel-' + dataIndexValue);
if (constCompanyTelEle) { if (constCompanyTelEle) {
jsonItem.constCompanyTel = constCompanyTelEle.value; jsonItem.constCompanyTel = constCompanyTelEle.value;
} }
if ( isValid(i + 1) == false ) { if (cid) {
jsonItem.cid=cid;
}
if ( isValid(dataIndexValue) == false ) {
return false; return false;
} }
jsonData.push(jsonItem); jsonData.push(jsonItem);
} }
if (cid) {
xhr.open('POST', '/drilling/input/modify.do', true);
} else {
xhr.open('POST', '/drilling/input/add.do', true);
}
xhr.open('POST', '/drilling/input/add.do', true);
xhr.setRequestHeader('Content-type', 'application/json'); xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) { if (xhr.readyState === 4 && xhr.status === 200) {
// 요청 성공 시 처리 // 요청 성공 시 처리
let result = JSON.parse(xhr.response);
console.log(result.resultCode)
console.log(xhr.responseText); console.log(xhr.responseText);
const obj = JSON.parse(xhr.responseText); const obj = JSON.parse(xhr.responseText);
alert(obj.message); alert(obj.message);
window.location.href='/drilling/inquiry.do'; // window.location.href='/drilling/inquiry.do';
} else if (xhr.readyState === 4) { } else if (xhr.readyState === 4) {
// 요청 실패 시 처리 // 요청 실패 시 처리
console.error('요청 실패:', xhr.status); console.error('요청 실패:', xhr.status);
@ -399,10 +479,10 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
if( unselectedConstructorEle.checked === false ) { if( unselectedConstructorEle.checked === false ) {
// 건설사 - 담당부서 // 건설사 - 담당부서
var constCompanyDeptEle = document.getElementById('const-company-dept-' + (index)); var constCompanyNameEle = document.getElementById('const-company-dept-' + (index));
if (constCompanyDeptEle) { if (constCompanyNameEle) {
if( constCompanyDeptEle.value === "" ) { if( constCompanyNameEle.value === "" ) {
shakeAndHighlight(constCompanyDeptEle, "건설사 - 담당부서를 입력하세요." ); shakeAndHighlight(constCompanyNameEle, "건설사 - 건설사명을 입력하세요." );
return false; return false;
} }
} }
@ -428,6 +508,188 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
return true; return true;
} }
function getOneItem(cid) {
        xhr.open('GET', '/drilling/inquiry/one-item.do?' + 
        'CID='+ cid,
        true);
        xhr.setRequestHeader('Content-type', 'application/json');
        xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {               
                const obj = JSON.parse(xhr.responseText);
// JSON 데이터를 매핑 정보에 따라 HTML 요소에 할당
if (obj.datas && obj.datas.length > 0) {
const item = obj.datas[0]; // 첫 번째 데이터 객체를 사용
// 매핑 정보에 따라 값 할당
document.getElementById('const-name-1').value = item.constName || '';
document.getElementById('const-start-date-1').value = item.constStartDate || '';
document.getElementById('const-end-date-1').value = item.constEndDate || '';
document.getElementById('const-state-code-1').value = item.constStateCode || '1'; // 기본값 설정
document.getElementById('master-company-dept-1').value = item.masterCompanyDept || '';
document.getElementById('master-company-admin-1').value = item.masterCompanyAdmin || '';
document.getElementById('master-company-tel-1').value = item.masterCompanyTel || '';
document.getElementById('const-company-dept-1').value = item.constCompanyName || '';
document.getElementById('const-company-admin-1').value = item.constCompanyAdmin || '';
document.getElementById('const-company-tel-1').value = item.constCompanyTel || '';
}
} else if (xhr.readyState === 4) {
  // 요청 실패 시 처리
  console.error('요청 실패:', xhr.status);
}
        };
        xhr.send();
    }
function triggerExcelUpload() {
// 숨겨진 파일 선택 input을 클릭시킴
document.getElementById('excel-file-input').click();
}
document.getElementById('excel-file-input').addEventListener('change', function (event) {
const file = event.target.files[0];
if (file) {
handleExcelUpload(file);
}
});
function handleExcelUpload(file) {
document.getElementById("table-container").innerHTML = '';
const reader = new FileReader();
reader.onload = function (e) {
const data = new Uint8Array(e.target.result);
const workbook = XLSX.read(data, { type: 'array', cellDates: true });
const firstSheet = workbook.Sheets[workbook.SheetNames[0]];
const json = XLSX.utils.sheet_to_json(firstSheet, { header: 1, defval: "" });
populateFromExcel(json);
};
reader.readAsArrayBuffer(file);
}
function populateFromExcel(rows) {
// rows[0] = 헤더, rows[1..] = 실제 데이터
for (let i = 2; i < rows.length; i++) {
const row = rows[i];
if (row[1] != "" || row[2] != "" || row[3] != "" || row[4] != "" || row[5] != "" || row[6] != "" || row[7] != "" || row[8] != "" || row[9] != "" || row[10] != "" || row[11]) {
const data = {
constName: row[1], // 사업명
constStartDate: row[2], // 사업기간 시작일
constEndDate: row[3], // 사업기간 종료일
constStateCode: row[4], // 사업단계
masterCompanyDept: row[5], // 발주기관 담당부서
masterCompanyAdmin: row[6], // 발주기관 담당자
masterCompanyTel: row[7], // 발주기관 담당자 연락처
constCompanyDept: row[8], // 건설사 건설사명
constCompanyAdmin: row[9], // 건설사 담당자
constCompanyTel: row[10], // 건설사 담당자 연락처
unselected: row[11] === '미지정' // 건설사 미지정
};
addItemWithData(data);
}
}
document.getElementById('excel-file-input').value = ''
}
function addItemWithData(data) {
tableId += 1;
const today = getToday();
// 사업단계 코드가 문자열로 전달되면 숫자로 비교하도록 수정
const stateCode = [
{value:1, txt:"타당성조사 및 계획검토", selected:false},
{value:2, txt:"기본설계", selected:false},
{value:3, txt:"실시설계", selected:false},
{value:4, txt:"시공중", selected:false},
{value:5, txt:"준공", selected:false},
{value:6, txt:"유지보수", selected:false}
];
let const_name = data.constName == "" ? "" : data.constName;
let const_state_code = data.constStateCode == "" ? "타당성조사 및 계획검토" : data.constStateCode;
let const_start_date = data.constStartDate == "" ? "" : data.constStartDate.toISOString().split('T')[0];
let const_end_date = data.constEndDate == "" ? "" : data.constEndDate.toISOString().split('T')[0];
let master_company_dept = data.masterCompanyDept == "" ? "" : data.masterCompanyDept;
let master_company_name = data.masterCompanyAdmin == "" ? "" : data.masterCompanyAdmin;
let master_company_tel = data.masterCompanyTel == "" ? "" : data.masterCompanyTel;
let const_company_dept = data.constCompanyDept == "" ? "" : data.constCompanyDept;
let const_company_name = data.constCompanyAdmin == "" ? "" : data.constCompanyAdmin;
let const_company_tel = data.constCompanyTel == "" ? "" : data.constCompanyTel;
let fin_const_company = data.unselected ? 'checked' : '';
let stateOptions = '';
for (let i = 0; i < stateCode.length; i++) {
if (stateCode[i].txt === const_state_code) {
stateOptions += `<option value="` + stateCode[i].value + `" selected>` + stateCode[i].txt + `</option>`;
} else {
stateOptions += `<option value="` + stateCode[i].value + `">` + stateCode[i].txt + `</option>`;
}
}
const tableHtml = `
<div class="table-scrollable" data-index="`+ tableId +`" data-` + tableId + `>
<table class="table-bordered table-data" data-index="` + tableId + `">
<colgroup>
<col style="width: 15%;">
<col style="width: 35%;">
<col style="width: 15%;">
<col style="width: 35%;">
</colgroup>
<tbody>
<tr>
<th>사업명</th>
<td colspan="3">
<input type="text" value="`+ const_name +`" onfocusout="duplicateCheckProjectName(this)" class="input-box" id="const-name-` + tableId + `" placeholder="사업명">
</td>
</tr>
<tr>
<th>사업기간</th>
<td>
<input type="date" value="` + const_start_date + `" class="date" id="const-start-date-` + tableId + `">
<span>~</span>
<input type="date" value="` + const_end_date + `" class="date date-2" id="const-end-date-` + tableId + `">
</td>
<th>사업단계</th>
<td>
<select class="selectbox" id="const-state-code-` + tableId + `">
<option disabled>사업단계선택</option>
` +
stateOptions
+ `
</select>
</td>
</tr>
<tr>
<th>발주기관</th>
<td colspan="3">
<input type="text" value="` + master_company_dept + `" class="input-box information1" id="master-company-dept-` + tableId + `" placeholder="담당부서">
<input type="text" value="` + master_company_name + `" class="input-box information2" id="master-company-admin-` + tableId + `" placeholder="담당자">
<input type="text" value="` + master_company_tel + `" class="input-box information3" id="master-company-tel-` + tableId + `" placeholder="담당자 연락처">
</td>
</tr>
<tr>
<th>건설사</th>
<td colspan="3">
<input type="text" value="` + const_company_dept + `" class="input-box information1" id="const-company-dept-` + tableId + `" placeholder="건설사명">
<input type="text" value="` + const_company_name + `" class="input-box information2" id="const-company-admin-` + tableId + `" placeholder="담당자">
<input type="text" value="` + const_company_tel + `" class="input-box information3" id="const-company-tel-` + tableId + `" placeholder="담당자 연락처">
<label class="check-box unselected-constructor-label" for="unselected-constructor-` + tableId + `"><input type="checkbox" id="unselected-constructor-` + tableId + `" ` + fin_const_company + `>
<span class="unselected-constructor-label-text">건설사 미선정</span>
</label>
</td>
</tr>
</tbody>
</table>
</div>`
;
document.getElementById("table-container").insertAdjacentHTML("beforeend", tableHtml);
if (document.getElementsByClassName('table-scrollable').length < 1) {addItem()} // 엑셀로 받아오기 중 실패할 경우 삭제한 빈 양식 원복
}
</script> </script>
<!-- javascript end--> <!-- javascript end-->

View File

@ -52,7 +52,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value ); const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value ); const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value ); const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value ); const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -66,7 +66,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate + '&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate + '&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode + '&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept + '&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin + '&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel + '&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage + '&' +'nPage='+ nPage +
@ -82,7 +82,6 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
var dataListEle = document.getElementById('data-list'); var dataListEle = document.getElementById('data-list');
dataListEle.innerHTML = ''; dataListEle.innerHTML = '';
var content = ''; var content = '';
for( idx in obj.datas ) { for( idx in obj.datas ) {
@ -94,22 +93,20 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const coinstCompanyDept = obj.datas[idx].coinstCompanyDept == null ? '-' : obj.datas[idx].coinstCompanyDept; const coinstCompanyDept = obj.datas[idx].coinstCompanyDept == null ? '-' : obj.datas[idx].coinstCompanyDept;
const constCompanyAdmin = obj.datas[idx].constCompanyAdmin == null ? '-' : obj.datas[idx].constCompanyAdmin; const constCompanyAdmin = obj.datas[idx].constCompanyAdmin == null ? '-' : obj.datas[idx].constCompanyAdmin;
const constCompanyTel = obj.datas[idx].constCompanyTel == null ? '-' : obj.datas[idx].constCompanyTel; const constCompanyTel = obj.datas[idx].constCompanyTel == null ? '-' : obj.datas[idx].constCompanyTel;
content +=
` content += '<tr onclick="location.href=\'modify.do?CID=' + obj.datas[idx].cid + '\';" data-cid="' + obj.datas[idx].cid + '">';
<tr> content += '<td>' + (obj.count - idx - (nCount * (nPage - 1))) + '</td>';
<td>` + (obj.count - idx - (nCount * (nPage - 1))) + `</td> content += '<td style="text-align: left; text-indent: 10px;">' + obj.datas[idx].constName + '</td>';
<td style="text-align: left; text-indent: 10px;">` + obj.datas[idx].constName + `</td> content += '<td>' + obj.datas[idx].projectStateCodeName + '</td>';
<td>` + obj.datas[idx].projectStateCodeName + `</td> content += '<td>' + constStartDate + ' ~ ' + constEndDate + '</td>';
<td>` + constStartDate + ` ~ ` + constEndDate + `</td> content += '<td>' + obj.datas[idx].constStateCodeName + '</td>';
<td>` + obj.datas[idx].constStateCodeName + `</td> content += '<td>' + masterCompanyDept + '</td>';
<td>` + masterCompanyDept + `</td> content += '<td>' + masterCompanyAdmin + '</td>';
<td>` + masterCompanyAdmin + `</td> content += '<td>' + masterCompanyTel + '</td>';
<td>` + masterCompanyTel + `</td> content += '<td>' + coinstCompanyDept + '</td>';
<td>` + coinstCompanyDept + `</td> content += '<td>' + constCompanyAdmin + '</td>';
<td>` + constCompanyAdmin + `</td> content += '<td>' + constCompanyTel + '</td>';
<td>` + constCompanyTel + `</td> content += '</tr>';
</tr>
`;
} }
dataListEle.innerHTML = content; dataListEle.innerHTML = content;

View File

@ -51,7 +51,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value ); const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value ); const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value ); const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value ); const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -65,7 +65,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate + '&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate + '&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode + '&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept + '&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin + '&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel + '&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage + '&' +'nPage='+ nPage +

View File

@ -66,7 +66,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value ); const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value ); const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value ); const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value ); const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -80,7 +80,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate + '&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate + '&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode + '&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept + '&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin + '&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel + '&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage + '&' +'nPage='+ nPage +

View File

@ -163,9 +163,9 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
jsonItem.masterCompanyTel = masterCompanyTelEle.value; jsonItem.masterCompanyTel = masterCompanyTelEle.value;
} }
// 건설사 - 담당부서 // 건설사 - 담당부서
var constCompanyDeptEle = document.getElementById('const-company-dept-' + (i + 1)); var constCompanyNameEle = document.getElementById('const-company-dept-' + (i + 1));
if (constCompanyDeptEle) { if (constCompanyNameEle) {
jsonItem.constCompanyDept = constCompanyDeptEle.value; jsonItem.constCompanyName = constCompanyNameEle.value;
} }
// 건설사 - 담당자 // 건설사 - 담당자
var constCompanyAdminEle = document.getElementById('const-company-admin-' + (i + 1)); var constCompanyAdminEle = document.getElementById('const-company-admin-' + (i + 1));

View File

@ -66,7 +66,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value ); const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value ); const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value ); const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value ); const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -80,7 +80,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate + '&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate + '&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode + '&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept + '&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin + '&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel + '&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage + '&' +'nPage='+ nPage +

View File

@ -5256,13 +5256,6 @@ ul.faq-q > li textarea {
height: 367px; height: 367px;
background-image: url(/com/img/drilling/maps/05_alone.svg); background-image: url(/com/img/drilling/maps/05_alone.svg);
} }
.drilling-index .wrap_visual > .region-item > .region-alone#region-alone-31 {
left: 189px;
top: 69px;
width: 164px;
height: 214px;
background-image: url(/com/img/drilling/maps/01_alone.svg);
}
.drilling-index .wrap_visual > .region-item > .region-alone#region-alone-33 { .drilling-index .wrap_visual > .region-item > .region-alone#region-alone-33 {
left: 121px; left: 121px;
top: 405px; top: 405px;
@ -5371,26 +5364,36 @@ ul.faq-q > li textarea {
.drilling-index .wrap_visual > .region-item > .region-logo#region-logo-01 { .drilling-index .wrap_visual > .region-item > .region-logo#region-logo-01 {
left: 262px; left: 262px;
top: 166px; top: 166px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/01.png); background-image: url(/com/img/drilling/logos/01.png);
} }
.drilling-index .wrap_visual > .region-item > .region-logo#region-logo-02 { .drilling-index .wrap_visual > .region-item > .region-logo#region-logo-02 {
left: 353px; left: 353px;
top: 190px; top: 190px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/02.png); background-image: url(/com/img/drilling/logos/02.png);
} }
.drilling-index .wrap_visual > .region-item > .region-logo#region-logo-03 { .drilling-index .wrap_visual > .region-item > .region-logo#region-logo-03 {
left: 298px; left: 298px;
top: 334px; top: 334px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/03.png); background-image: url(/com/img/drilling/logos/03.png);
} }
.drilling-index .wrap_visual > .region-item > .region-logo#region-logo-04 { .drilling-index .wrap_visual > .region-item > .region-logo#region-logo-04 {
left: 229px; left: 229px;
top: 409px; top: 409px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/04.png); background-image: url(/com/img/drilling/logos/04.png);
} }
.drilling-index .wrap_visual > .region-item > .region-logo#region-logo-05 { .drilling-index .wrap_visual > .region-item > .region-logo#region-logo-05 {
left: 478px; left: 478px;
top: 539px; top: 539px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/05.png); background-image: url(/com/img/drilling/logos/05.png);
} }
.drilling-index .wrap_visual > .region-item > .region-logo#region-logo-06 { .drilling-index .wrap_visual > .region-item > .region-logo#region-logo-06 {
@ -6434,6 +6437,67 @@ ul.faq-q > li textarea {
box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2); box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
position: relative; position: relative;
} }
.drilling .content-wrapper .bottom-buttons .btn-plus, .drilling .content-wrapper .bottom-buttons .btn-minus {
width: 60px;
position: relative;
}
.drilling .content-wrapper .bottom-buttons .btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.drilling .content-wrapper .bottom-buttons .btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.drilling .content-wrapper .bottom-buttons .btn-modify {
width: 60px;
position: relative;
background-color: #00c48a;
color: #fff;
border: 1px solid #00c48a;
}
.drilling .content-wrapper .bottom-buttons .btn-delete {
width: 90px;
position: relative;
background: url(../img/common/icon/ico_btn_delete.png) no-repeat 10px center;
background-color: #ff214f;
color: #fff;
border: 1px solid #ff214f;
padding: 4px 14px 4px 46px;
}
.drilling .content-wrapper .bottom-buttons .btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border: 1px solid #19b3e5;
color: #fff;
}
.drilling .content-wrapper .bottom-buttons .btn-save::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}
.drilling .content1 { .drilling .content1 {
position: relative; position: relative;
width: 100%; width: 100%;
@ -6679,6 +6743,16 @@ ul.faq-q > li textarea {
height: 16px; height: 16px;
background: url(/com/img/common/icon/ico_category_arrow.png) no-repeat 14px 4px; background: url(/com/img/common/icon/ico_category_arrow.png) no-repeat 14px 4px;
} }
.drilling .btn-left {
position: relative;
padding: 4px 14px;
font-size: 14px;
font-weight: bold;
height: 34px;
border-radius: 4px;
box-sizing: border-box;
margin-bottom: 10px;
}
.drilling .btn-green { .drilling .btn-green {
padding: 4px 14px; padding: 4px 14px;
font-size: 14px; font-size: 14px;
@ -6789,51 +6863,6 @@ ul.faq-q > li textarea {
.drilling .unselected-constructor-label .unselected-constructor-label-text { .drilling .unselected-constructor-label .unselected-constructor-label-text {
vertical-align: middle; vertical-align: middle;
} }
.drilling .btn-plus, .drilling .btn-minus {
width: 60px;
position: relative;
}
.drilling .btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.drilling .btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.drilling .btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border: 1px solid #19b3e5;
color: #fff;
}
.drilling .btn-save::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}
/* ====================================== */ /* ====================================== */
/* ====================================== */ /* ====================================== */

File diff suppressed because one or more lines are too long

View File

@ -4053,13 +4053,9 @@ ul.faq-q > li textarea {
height: 367px; height: 367px;
background-image: url(/com/img/drilling/maps/05_alone.svg); background-image: url(/com/img/drilling/maps/05_alone.svg);
} }
//
.wrap_visual > .region-item > .region-alone#region-alone-31 { //
left: 189px; .wrap_visual > .region-item > .region-alone#region-alone-31 {
top: 69px;
width: 164px;
height: 214px;
background-image: url(/com/img/drilling/maps/01_alone.svg);
} }
// //
.wrap_visual > .region-item > .region-alone#region-alone-33 { .wrap_visual > .region-item > .region-alone#region-alone-33 {
@ -4141,6 +4137,7 @@ ul.faq-q > li textarea {
height: 367px; height: 367px;
background-image: url(/com/img/drilling/maps/05_alone.svg); background-image: url(/com/img/drilling/maps/05_alone.svg);
} }
// //
.wrap_visual > .region-item > .region-alone#region-alone-43 { .wrap_visual > .region-item > .region-alone#region-alone-43 {
left: 189px; left: 189px;
@ -4187,26 +4184,36 @@ ul.faq-q > li textarea {
.wrap_visual > .region-item > .region-logo#region-logo-01 { .wrap_visual > .region-item > .region-logo#region-logo-01 {
left: 262px; left: 262px;
top: 166px; top: 166px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/01.png); background-image: url(/com/img/drilling/logos/01.png);
} }
.wrap_visual > .region-item > .region-logo#region-logo-02 { .wrap_visual > .region-item > .region-logo#region-logo-02 {
left: 353px; left: 353px;
top: 190px; top: 190px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/02.png); background-image: url(/com/img/drilling/logos/02.png);
} }
.wrap_visual > .region-item > .region-logo#region-logo-03 { .wrap_visual > .region-item > .region-logo#region-logo-03 {
left: 298px; left: 298px;
top: 334px; top: 334px;
background-image: url(/com/img/drilling/logos/03.png); width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/03.png);
} }
.wrap_visual > .region-item > .region-logo#region-logo-04 { .wrap_visual > .region-item > .region-logo#region-logo-04 {
left: 229px; left: 229px;
top: 409px; top: 409px;
background-image: url(/com/img/drilling/logos/04.png); width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/04.png);
} }
.wrap_visual > .region-item > .region-logo#region-logo-05 { .wrap_visual > .region-item > .region-logo#region-logo-05 {
left: 478px; left: 478px;
top: 539px; top: 539px;
width: 258px;
height: 43px;
background-image: url(/com/img/drilling/logos/05.png); background-image: url(/com/img/drilling/logos/05.png);
} }
.wrap_visual > .region-item > .region-logo#region-logo-06 { .wrap_visual > .region-item > .region-logo#region-logo-06 {
@ -4605,8 +4612,8 @@ ul.faq-q > li textarea {
.lnb > li > a[title="새창"]:before{display:none} .lnb > li > a[title="새창"]:before{display:none}
.lnb > li:last-child{border-bottom:1px solid #ccc} .lnb > li:last-child{border-bottom:1px solid #ccc}
/** 컨텐츠 : 우측영역 **/ /** 컨텐츠 : 우측영역 **/
.wrap_right{flex-direction:column;align-items:flex-end;width:calc(100% - 294px);margin-left:44px;} /*display:flex;width:calc(100% - 250px); 21.10.05 초기에러 sm margin-left:44px;*/ .wrap_right{flex-direction:column;align-items:flex-end;width:calc(100% - 294px);margin-left:44px;} /*display:flex;width:calc(100% - 250px); 21.10.05 초기에러 sm margin-left:44px;*/
.wrap_right h3,.txt{width:100%;max-width:766px} .wrap_right h3,.txt{width:100%;max-width:766px}
.wrap_right h3:not(.hidden){position:relative;margin-bottom:20px;padding:60px 0 50px;color:#333;font-size:2.8rem;font-weight:500;border-bottom:1px solid #999;background:url(/com/img/drilling/place2016/wcmo/contents/bg_visual_sub.png) no-repeat 100% 100%} .wrap_right h3:not(.hidden){position:relative;margin-bottom:20px;padding:60px 0 50px;color:#333;font-size:2.8rem;font-weight:500;border-bottom:1px solid #999;background:url(/com/img/drilling/place2016/wcmo/contents/bg_visual_sub.png) no-repeat 100% 100%}
@ -4741,6 +4748,77 @@ ul.faq-q > li textarea {
padding: 20px; padding: 20px;
box-shadow: 4px 4px 10px rgba(0,0,0,0.2); box-shadow: 4px 4px 10px rgba(0,0,0,0.2);
position: relative; position: relative;
.bottom-buttons {
.btn-plus,.btn-minus {
width: 60px;
position: relative;
}
.btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.btn-modify {
width: 60px;
position: relative;
background-color: #00c48a;
color:#fff;
border:1px solid #00c48a;
}
.btn-delete {
width: 90px;
position: relative;
background: url(../img/common/icon/ico_btn_delete.png) no-repeat 10px center;
background-color: #ff214f;
color:#fff;
border:1px solid #ff214f;
padding: 4px 14px 4px 46px;
}
.btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border:1px solid #19b3e5;
color: #fff;
&::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}
}
}
} }
.content1 { .content1 {
position: relative; position: relative;
@ -5013,6 +5091,18 @@ ul.faq-q > li textarea {
} }
} }
.btn-left {
position: relative;
padding: 4px 14px;
font-size: 14px;
font-weight: bold;
height: 34px;
border-radius: 4px;
box-sizing: border-box;
margin-bottom: 10px;
}
.btn-green { .btn-green {
padding: 4px 14px; padding: 4px 14px;
font-size: 14px; font-size: 14px;
@ -5026,6 +5116,7 @@ ul.faq-q > li textarea {
float:right; float:right;
margin-bottom: 10px; margin-bottom: 10px;
} }
.btn-excel-download { .btn-excel-download {
padding: 4px 14px 4px 46px; padding: 4px 14px 4px 46px;
position: relative; position: relative;
@ -5137,59 +5228,12 @@ ul.faq-q > li textarea {
} }
} }
.btn-plus,.btn-minus {
width: 60px;
position: relative;
}
.btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border:1px solid #19b3e5;
color: #fff;
}
.btn-save::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}

File diff suppressed because it is too large Load Diff

View File

@ -87,7 +87,6 @@ function GeoSection(divID) {
// API Functions // API Functions
// ========================================================== // ==========================================================
this.show = function(data) { this.show = function(data) {
// --------------------------------------- // ---------------------------------------
// Create Map & Layer // Create Map & Layer
// --------------------------------------- // ---------------------------------------