CINXE.COM

KDX-저작도구 - 데이터셋 목록 - KDX 한국데이터거래소

<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content=""> <title>KDX-저작도구 - 데이터셋 목록 - KDX 한국데이터거래소</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="canonical" href="https://kdx.kr/" /> <!-- Import JS --> <script src="https://kdx.kr/js/jquery-3.3.1.min.js"></script> <script src="https://kdx.kr/js/jquery-ui.min.js"></script> <script src="https://kdx.kr/js/moment.min.js"></script> <script src="https://kdx.kr/js/common.js?dt=20250304"></script> <script src="https://kdx.kr/js/xModal.js?dt=20250304"></script> <script src="https://kdx.kr/js/xValidator.js?dt=20250304"></script> <script src="https://kdx.kr/js/jquery.simplyscroll.min.js"></script> <script src="https://kdx.kr/js/slick.min.js"></script> <!-- Import CSS --> <link rel="shortcut icon" href="https://kdx.kr/images/favicon.ico"> <link rel="stylesheet" href="https://kdx.kr/css/slick.css"> <link rel="stylesheet" href="https://kdx.kr/css/jquery.simplyscroll.min.css"> <!-- 배포용 --> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-4NSP0Q2DHL"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); //gtag('config', 'G-4NSP0Q2DHL'); gtag('config', 'G-4NSP0Q2DHL', {'send_page_view': false }); </script> <script> console.log("%cKDX한국데이터거래소", "color:#fc813e; font-size: 70px; font-weight: bold;"); // window.dataLayer = window.dataLayer || []; // function gtag(){dataLayer.push(arguments);} // gtag('js', new Date()); // gtag('config', 'UA-153428789-1'); // gtag('config', 'AW-629526636'); // if("" != ""){ // console.log('') // gtag('config', 'UA-153428789-1', { // 'user_id': '' // }); // } window.dataLayer = window.dataLayer || []; if("" != ""){ // console.log('') dataLayer.push({'userId': ''}) }else{ dataLayer.push({'userId': undefined}) } (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TWNH2TX'); /* window.console = {}; window.console.log = function(obj){}; if (!console) console = {log: function() {}}; */ var server = 'deploy'; if (server == "deploy"){ window.console = {}; window.console.log = function(obj){}; if (!console) console = {log: function() {}}; } </script> <!-- Facebook Pixel Code --> <!-- End Facebook Pixel Code --> <!-- Google site link --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "KDX", "url": "https://kdx.kr", "sameAs": [ "https://www.facebook.com/KDXDATA", "https://www.instagram.com/kdx.kr", "https://blog.naver.com/kdxgroups" ] } </script> <script> // Dable 스크립트 시작 / 문의 support@dable.io if(location.host == "kdx.kr") { (function(d,a,b,l,e,_) { d[b]=d[b]||function(){(d[b].q=d[b].q||[]).push(arguments)};e=a.createElement(l); e.async=1;e.charset='utf-8';e.src='//static.dable.io/dist/plugin.min.js'; _=a.getElementsByTagName(l)[0];_.parentNode.insertBefore(e,_); })(window,document,'dable','script'); dable('setService', 'kdx.kr'); dable('sendLogOnce'); } // Dable 스크립트 종료 / 문의 support@dable.io </script> <link rel="stylesheet" href="https://kdx.kr/css/video-js.min.css"> <script src="https://kdx.kr/js/xlabeller-common.js"></script> <script type="text/javascript" src="https://unpkg.com/mediainfo.js/dist/mediainfo.min.js"></script> <script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script> <script src="https://kdx.kr/js/video.min.js"></script> <script src="https://kdx.kr/js/VideoFrame.min.js"></script> <script src="https://kdx.kr/js/fabric.min.js"></script> <style> #datasetList { } #datasetList .table-box { margin-bottom: 2rem; } #datasetList #user_table tbody tr td:nth-child(-n+6) { cursor:pointer; } /* #datasetList #user_table tbody tr td:hover:nth-child(-n+10) { color:red; } */ #datasetList #user_table tbody tr:hover { background-color: #fafafa; } #datasetList .btn-line-s { background-color: #fff; } #datasetList .btn-contact { bottom: 30rem; } </style> </head> <body id="page-top"> <script> var filter = "win16|win32|win64|mac|macintel"; // tizen browser 아니고 if(navigator.userAgent.toLocaleLowerCase().indexOf("tizen") == -1){ //filter 에 없으면 mobile로. //아이패드 os13 이상 mobile로 if ((navigator.platform && filter.indexOf( navigator.platform.toLowerCase() ) < 0) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) { // // emailConfirm 페이지가 아니면 m으로 이동 if(location.href.indexOf("emailConfirm") == -1 && location.href.indexOf("customvisual") == -1 && location.href.indexOf("tdi/service") == -1 ){ // var cPage = location.href.replace(location.origin,"").replace("","/m"); // location.href = cPage; } } } </script> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TWNH2TX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/1.1.5/sockjs.min.js"></script> <script src="https://kdx.kr/js/jquery-3.3.1.min.js"></script> <script src="https://kdx.kr/js/slick.min.js"></script> <script src="https://kdx.kr/js/jquery-ui.min.js"></script> <script type="text/javascript" src="https://kdx.kr/js/jquery.maphilight.js"></script> <script type="text/javascript" src="https://kdx.kr/js/easyzoom.js"></script> <link rel="stylesheet" href="https://kdx.kr/css/easyzoom.css"> <script src="https://kdx.kr/js/common.js?dt=202503041310"></script> <script src="https://kdx.kr/js/xValidator.js?dt=202503041310"></script> <script src="https://kdx.kr/js/moment.min.js"></script> <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://kdx.kr/css/slick.css"/> <style> #aiChatBot .chat-icon { z-index: 9997; width: 100px; height: 100px; bottom: 13%; right: 5%; background-image: url('https://kdx.kr/resource/kdx_attachment/chatbot_button_img.png'); background-size: cover; position: fixed; cursor: pointer; animation: motion 0.45s linear 0s infinite alternate; } @keyframes motion { 0% {transform: translateY(0);} 100% {transform: translateY(-15px);} } #aiChatBot .chatbot-modal { display: none; position: fixed; z-index: 9999; right: 17px; bottom: 20px; max-height: 736px; width: 400px; background-color: white; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); border-radius: 10px; overflow: hidden; } #aiChatBot .chatbot-header { padding: 20px; background: #F26E22; background-image: url('https://kdx.kr/resource/kdx_attachment/chatbot-headerbeta.png'); background-size: 230px; background-repeat: no-repeat; background-position: 1rem; height: 60px; } #aiChatBot .chatbot-title { font-size: 13px; } #aiChatBot .chatbot-body { padding: 10px; height: 630px; overflow-y: auto; } #aiChatBot .chatbot-profile{ background-image: url('https://kdx.kr/resource/kdx_attachment/chatbot-profile.png'); background-repeat: no-repeat; background-size: 43px; display: flex; height: 45px; width: 45px; } #aiChatBot .chat-message, .model-message { display: flex; flex-direction: row; width: 100%; flex-wrap: wrap; } #aiChatBot .chat-message2 { display: flex; flex-direction: row; width: 100%; flex-wrap: wrap; justify-content: flex-end; } #aiChatBot .chat-message .message-container-chatBotMessage { background-color: #FFFFFF; border: 2px solid #F26E22; padding: 10px; color: #000; font-size: 14px; border-radius: 10px; border-top-left-radius: 0; display: inline-flex; flex-direction: column; align-items: flex-start; margin-top: 10px; justify-content: flex-start; text-align: left; max-width: 310px; align-self: flex-start; } #aiChatBot .chat-message2 .message-container-userMessage { background-color: #EBFBFF; border: 2px solid #EBFBFF; padding: 10px; font-weight: bold; font-size: 14px; border-radius: 10px; border-top-right-radius: 0; display: inline-flex; flex-direction: column; align-items: flex-end; margin-top: 10px; justify-content: flex-end; max-width: fit-content; align-self: flex-end; } #aiChatBot .model-message .message-container-modelMessage { background-color: #FFFFFF; border: 2px solid #F26E22; padding: 10px; color: #000; font-size: 14px; border-radius: 10px; border-top-left-radius: 0; display: inline; flex-direction: column; align-items: flex-start; margin-top: 10px; justify-content: flex-start; text-align: left; max-width: 310px; align-self: flex-start; } #aiChatBot .data-slide .data-list { background-color: #FFFFFF; border: 2px solid #F26E22; padding: 10px; color: #000; font-size: 14px; border-radius: 10px; margin: 20px 20px 15px 20px; text-align: left; height: 245px; max-width: fit-content; } #aiChatBot .chat-message .button-container-list { border: 1px solid #C9C9C9; font-size: 14px; border-radius: 14px; border-top-left-radius: 0; display: flex; align-items: center; margin-top: 10px; justify-content: flex-end; text-align: center; flex-direction: column; cursor: pointer; overflow: hidden; width: 100%; } #aiChatBot .chat-message .button-container-list2 { border: 1px solid #C9C9C9; font-size: 14px; display: flex; align-items: center; margin-top: 10px; justify-content: flex-end; text-align: center; flex-direction: column; cursor: pointer; overflow: hidden; width: 100%; z-index: 3 !important; } #aiChatBot .chat-message .button-container-list .button-item { padding : 5px; border-bottom: 1px solid #C9C9C9; width: 100%; box-sizing: border-box; display: flex; justify-content: center; align-items: center; text-align: center; } #aiChatBot .chat-message .button-container-list2 .button-item { padding : 5px; border-bottom: 1px solid #C9C9C9; width: 100%; box-sizing: border-box; display: flex; justify-content: center; align-items: center; text-align: center; } #aiChatBot .chat-message .button-container-list .search-item2 { padding : 5px; border-bottom: 1px solid #C9C9C9; width: 100%; box-sizing: border-box; display: flex; align-items: center; text-align: center; } #aiChatBot .chat-message .button-container-list2 .search-item2 { padding : 5px; border-bottom: 1px solid #C9C9C9; width: 100%; box-sizing: border-box; display: flex; align-items: center; text-align: center; } #aiChatBot .chat-message .button-container-list .search-item2 .chatbot-wrap .title { max-width: 30rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } #aiChatBot .chat-message .button-container-list2 .search-item2 .chatbot-wrap .title { max-width: 30rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } #aiChatBot .chat-message .button-container-list .product-item2 { padding : 5px; border-bottom: 1px solid #C9C9C9; width: 100%; box-sizing: border-box; display: flex; justify-content: left; text-align: left; } #aiChatBot .chat-message .button-container-list2 .product-item2 { padding : 5px; border-bottom: 1px solid #C9C9C9; width: 100%; box-sizing: border-box; display: flex; justify-content: left; text-align: left; } #aiChatBot .chat-message .button-container-list .product-item2 .chatbot-wrap .title { max-width: 34rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } #aiChatBot .chat-message .button-container-list2 .product-item2 .chatbot-wrap .title { max-width: 34rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } #aiChatBot .chat-message .button-container-list .button-item:hover { background-color: #C9C9C9; } #aiChatBot .chat-message .button-container-list .search-item2:hover { background-color: #C9C9C9; } #aiChatBot .chat-message .button-container-list .product-item2:hover { background-color: #C9C9C9; } #aiChatBot .chat-message .button-container-list2 .button-item:hover { background-color: transparent !important; } #aiChatBot .chat-message .button-container-list2 .search-item2:hover { background-color: #C9C9C9; } #aiChatBot .chat-message .button-container-list2 .product-item2:hover { background-color: #C9C9C9; } #aiChatBot .chat-message .button-container-back { background-color: #FDF9F5; border: 1px solid #A4A4A4; width: 43%; height: 40px; display: inline-block; padding: 8px 20px; font-size: 14px; border-radius: 25px; align-items: center; justify-content: flex-end; text-align: center; cursor: pointer; } #aiChatBot .chat-message .button-container-back2 { background-color: #FDF9F5; border: 1px solid #A4A4A4; width: 34%; height: 40px; display: inline-block; padding: 8px 20px; font-size: 14px; border-radius: 25px; align-items: center; justify-content: flex-end; text-align: center; cursor: pointer; } #chat-moredata { background-color: #FDF9F5; border: 1px solid #A4A4A4; width: 60% !important; height: 40px; display: inline-block; padding: 8px 20px; font-size: 14px; border-radius: 25px; align-items: center; justify-content: flex-end; text-align: center; cursor: pointer; } #aiChatBot .data-slide .chat-link { background-color: #F57B20; border: 1px solid #EBFBFF; color: #FFFFFF; width: 100%; height: 50px; display: flex; margin-top: 10px; padding: 13px 20px; font-size: 14px; border-radius: 15px; cursor: pointer; justify-content: center; } #aiChatBot .button-container-back-wrapper { display: flex; justify-content: space-around; align-items: center; width: 100%; margin-top: 10px; margin-bottom: 15px; } #aiChatBot .ad-image { align-items: center; width: 100%; height: 80px; cursor: pointer; } #aiChatBot .ad-image img { width: 100%; height: 80px; } #aiChatBot .chat-message .button-container-list .button-container-back:hover { background-color: #EA7058; } #aiChatBot .chat-message .button-container-list .button-container-back2:hover { background-color: #EA7058; } #aiChatBot .close-button { float: right; cursor: pointer; font-size: 13px; color: #FFF; } #aiChatBot .chatbot-footer { display: flex; align-items: center; padding: 6px; background-color: #f1f1f1; border-top: 1px solid #ddd; width: 40rem; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; position: relative; z-index: 5; } #aiChatBot .chatbot-footer .chatbot-menu { width: 23px; height: 30px; background-image: url('https://kdx.kr/resource/main_icons/header_gnb_btn.png'); background-size: contain; background-repeat: no-repeat; background-position: center; border: none; cursor: pointer; margin-right: 5px; margin-left: 5px; } #aiChatBot .chatbot-footer .chatbot-menu:hover { background-color: transparent !important; } #aiChatBot .chatbot-footer input[type="text"] { flex: 1; padding: 5px; border: 1px solid #ccc; border-radius: 5px; font-size: 14px; margin-right: 7px; margin-left: 5px; } #aiChatBot .chatbot-footer .user-send { width: 20px; height: 30px; background-image: url('https://kdx.kr/resource/kdx_attachment/chatbot-send.png'); background-size: contain; background-repeat: no-repeat; background-position: center; border: none; cursor: pointer; margin-right: 5px; } #aiChatBot .chatbot-footer .user-send:hover { background-color: transparent !important; } #aiChatBot .chatbot-footer button:hover { background-color: #f23f02; } #aiChatBot .formattedDate { width: 100%; font-size: 9px; margin-top: 5px; } #aiChatBot .modalOverlay { display: none; position: fixed; z-index: 9998; right: 0px; top: 65px; width: 100%; height: 100%; background-color: white; overflow: hidden; } .flex1{ position: relative; display: contents; } @media (max-width:960px){ #aiChatBot .chat-icon { width: 75px; height: 75px; right: 10px; bottom: 30px; } #aiChatBot .chatbot-modal { display: none; position: fixed; z-index: 9999; right: 0px; top: 80px; width: 100%; height: calc(var(--vh, 1vh) * 100); background-color: white; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); border-radius: 10px; overflow: hidden; } #aiChatBot .chatbot-body { height: calc(100% - 105px); } #aiChatBot .close-button { font-size: 13px; } } @media (max-width:380px){ #aiChatBot .chatbot-modal { display: none; position: fixed; z-index: 9999; right: 0px; top: 10%; width: 100%; height: calc(var(--vh, 1vh) * 100);background-color: white; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); border-radius: 10px; overflow: hidden; } } #aiChatBot .data-slide { position: relative; width: 100%; margin: 10px 0; overflow: hidden; } #aiChatBot .data-slide .data-list { display: block; transition: transform 0.5s ease-in-out; } #aiChatBot .data-slide .product-price { display: block; transition: transform 0.5s ease-in-out; } #aiChatBot .slick-prev, .slick-next { position: absolute; top: 10rem; width: 30px; height: 30px; border: none; background-color: transparent; cursor: pointer; background: #fff; border-radius: 100%; background-size: 30%; background-repeat: no-repeat; background-position: center; z-index:1;} #aiChatBot .slick-prev { left: -32px; background-image: url('https://kdx.kr/resources/images/btn-category-left.png'); } #aiChatBot .slick-next { right: -32px; background-image: url('https://kdx.kr/resources/images/btn-category-right.png'); } #aiChatBot .slick-dots li { display: inline-block; margin: 0 5px; } #aiChatBot .slick-dots li button { border: none; background-color: #ddd; border-radius: 50%; width: 10px; height: 10px; cursor: pointer; padding: 0; } #aiChatBot .slick-dots li.slick-active button { background-color: #f26e22; } #aiChatBot::-webkit-scrollbar { width: 4px; } .text-truncate { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; white-space: normal; } .user-send:disabled { background-color: gray; color: white; cursor: not-allowed !important; opacity: 0.6; } </style> </head> <body> <div class="" id="aiChatBot"> <input type="hidden" name="aiModelId" value=""/><!-- AI ID --> <input type="hidden" name="question" value=""/><!-- 질문 --> <section class="content" id="aiChatBotView"> <div class="chat-icon"></div> <div class="modalOverlay" id="modalOverlay"></div> <div class="chatbot-modal" id="chatModal"> <div class="chatbot-header"> <span class="chatbot-title"></span> <span class="close-button">✕</span> </div> <div class="chatbot-body"> <div class="chat-message"> <div class="chatbot-profile"></div> <div class="message-container-chatBotMessage"></div> </div> <div class="chat-message"> <div class="button-container-list"></div> <div class="button-container-list2"></div> </div> <div class="chat-message2"> <div class="message-container-userMessage"></div> </div> <div class="chat-message"> <div class="recommend-data"></div> </div> <div class="chat-message"> <div class="button-container-back"></div> <div class="button-container-back2"></div> </div> <div class="model-message"> <span class="message-container-modelMessage"></span> </div> <div class="data-slide"> <div class="data-list"></div> </div> </div> <div class="chatbot-footer"> <button class="chatbot-menu"></button> <input type="text" id="chatInput" maxlength="50" placeholder="메시지를 입력하세요.(50자 이내)"/> <button class="user-send"></button> </div> </div> </section> </div> <script> $(document).on("sessionLoad", function() { aiChatBotView.init(); }); var aiChatBotView = { pk: "aiChatBotView", pt: $("#aiChatBotView"), isWaitingResponse: false, init: function() { var that = this; that.listner(); }, listner: function() { var that = this; var formattedDate = that.getFormattedDate(); //챗봇화면 오픈 $(".chat-icon").off("click").on("click", function() { $(".chatbot-body").empty(); var chatModal = document.getElementById('chatModal'); var chatBody = document.getElementById('chatBody'); that.setVhUnit(); window.removeEventListener('resize', that.setVhUnit); window.addEventListener('resize', that.setVhUnit); //모바일 오버플로우 비활성화 that.mobileOpen(); //챗봇화면 활성화 $(".chatbot-modal").css("display", "block"); that.getAnswer("00000"); //초기 카테고리 리스트 세팅 that.scrollToBottom(); }); //챗봇 닫기 $(".close-button").off("click").on("click", function() { //챗봇화면 비활성화 $(".chatbot-modal").css("display", "none"); //모바일 오버플로우 활성화 that.mobileClose(); }); //자세히 보기 클릭 $(".chatbot-body").off("click", "#chat-detail").on("click", "#chat-detail", function() { var url = $(this).data("url"); //url //챗봇 비활성화 //$(".chatbot-modal").css("display", "none"); //모바일 오버플로우 활성화 //that.mobileClose(); //화면이동 window.open(url); return; }); $(".chatbot-body").off("click", "#chat-moredata").on("click", "#chat-moredata", function() { var url = $(this).data("url"); //url //챗봇 비활성화 //$(".chatbot-modal").css("display", "none"); //모바일 오버플로우 활성화 //that.mobileClose(); //화면이동 window.open(url); return; }); //이전으로 클릭 $(".chatbot-body").off("click", "#chat-first").on("click", "#chat-first", function() { that.getAnswer("00000"); //초기 카테고리 리스트 세팅 that.scrollToBottom(); }); //광고이미지 클릭 $(".chatbot-body").off("click", "#ad-image").on("click", "#ad-image", function() { var url = $(this).data("url"); //url //챗봇 비활성화 //$(".chatbot-modal").css("display", "none"); //모바일 오버플로우 활성화 //that.mobileClose(); //화면이동 window.open(url); return; }); //상품 보기 클릭 $(".chatbot-body").off("click", "#chat-link").on("click", "#chat-link", function() { var productId = $(this).data("id"); window.open(baseUrl + 'data/view/' + productId); return; }); $(".chatbot-menu").off("click").on("click", function() { var menuContainer = $(".button-container-list2"); if (menuContainer.length > 0 && menuContainer.is(":visible")) { menuContainer.slideUp("slow", function() { menuContainer.parent().remove(); $(".chatbot-menu").prop("disabled", false); }); } else { that.getMenuData("00000"); } }); $(".user-send").off("click").on("click", function() { that.sendMessage(); that.scrollToBottom(); }); that.pt.find("#chatInput").keydown(function (key) { if(key.keyCode == 13){ that.pt.find(".user-send").trigger("click"); } }); }, setVhUnit: function () { var vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `px`); }, getAnswer: function(str) { var that = this; var id = str; var ajaxData = { id: id }; $.ajax({ type: 'POST', data: ajaxData, url: baseUrl + "aichatbot/getAnswer", success: function(response) { console.log("=====getAnswer success====="); console.log(response); that.drawAnswer(response.result.data); }, error: function() { console.log("=====getAnswer error====="); alert('답변 불러오는데 실패했습니다.'); } }) }, drawAnswer: function(data) { var that = this; var formattedDate = that.getFormattedDate(); $(".chatbot-body").append('<div class="chat-message"><div class="chatbot-profile"></div><div class="message-container-chatBotMessage">' + data.contents + '</div><div class="formattedDate">' + formattedDate + '</div></div>'); /* var id = data.id; var parent_id = data.parent_id; var level = data.level; var end_yn = data.end_yn; var url = data.url; var img = data.img; var img_url = data.img_url; if (end_yn == "Y") { //마지막 단계인 경우 //신규서비스 //상품추천을 선택한 경우 if(parent_id == "31000" || parent_id == "32000"){ //상품추천 TOP 10 리스트 that.getProduct(id, url); //검색순위를 선택한 경우 }else if(parent_id == "40000"){ //상품추천 TOP 10 리스트 that.getChatRankingList(id, url); } else { that.scrollToBottom(); that.drawAfterAnswer(id, url, img, img_url); } } else if (end_yn == "N") { //리스트 조회 that.getList(id, level, url, img, img_url); } */ }, getMenuData: function(str){ var that = this; var id = str; var ajaxData = { id: id }; $.ajax({ type: 'POST', data: ajaxData, url: baseUrl + "aichatbot/getAnswer", success: function(response) { console.log("=====getAnswer success====="); console.log(response); that.drawMenuData(response.result.data); }, error: function() { console.log("=====getAnswer error====="); alert('답변 불러오는데 실패했습니다.'); } }) }, drawMenuData: function(data) { var that = this; var formattedDate = that.getFormattedDate(); var id = data.id; var parent_id = data.parent_id; var level = data.level; var end_yn = data.end_yn; var url = data.url; var img = data.img; var img_url = data.img_url; if(id == "00000"){ } else{ $(".chatbot-body").append('<div class="chat-message"><div class="chatbot-profile"></div><div class="message-container-chatBotMessage">' + data.contents + '</div><div class="formattedDate">' + formattedDate + '</div></div>'); } console.log(" id : " + id ); console.log(" parent_id : " + parent_id ); console.log(" level : " + level ); console.log(" end_yn : " + end_yn ); console.log(" url : " + url ); console.log(" img : " + img ); if (end_yn == "Y") { //마지막 단계인 경우 //신규서비스 //상품추천을 선택한 경우 if(parent_id == "31000" || parent_id == "32000"){ //상품추천 TOP 10 리스트 that.getProduct(id, url); //검색순위를 선택한 경우 }else if(parent_id == "40000"){ //상품추천 TOP 10 리스트 that.getChatRankingList(id, url); } else { that.scrollToBottom(); that.drawAfterAnswer(id, url, img, img_url); } } else if (end_yn == "N") { //리스트 조회 that.getList(id, level, url, img, img_url); } }, getList: function(str1, str2, str3, str4, str5) { var that = this; var id = str1; var level = str2; var url = str3; var img = str4; var img_url = str5; var ajaxData = { id: id, level : level }; $.ajax({ type: 'POST', url: baseUrl + "aichatbot/getList", data : ajaxData, success: function(response) { console.log("=====getList success====="); console.log(response); that.drawList(response.result.data, id, url, img, img_url); }, error: function() { console.log("=====getList error====="); alert('리스트를 불러오는데 실패했습니다.'); } }); }, drawList: function(data, id, url, img, img_url) { var that = this; var formattedDate = that.getFormattedDate(); var row = ''; for (var i = 0; i < data.length; i++) { var list = data[i]; row += '<div class="button-item" data-type_code="' + list.id + '" data-type_name="' + list.title + '">'; row += ' <table>'; row += ' <tbody>'; row += ' <tr class="text">'; row += ' <td><div class="ico-q"></div></td>'; row += ' <td>'; row += ' <div class="chatbot-wrap flex1 fs">'; row += ' <div class="name" style="font-size: 14px;" data-type="' + list.id + '">' + list.title + '</div>'; row += ' <div class="ico-arrow"></div>'; row += ' </div>'; row += ' </td>'; row += ' </tr>'; row += ' </tbody>'; row += ' </table>'; row += '</div>'; } if (id == "00000") { var buttonContainer = $('<div class="chat-message"><div class="button-container-list2">' + row + '</div></div>'); $(".chatbot-footer").before(buttonContainer); $(".button-container-list2").hide().css({ "position": "absolute", "bottom": $(".chatbot-footer").outerHeight() + "px", "width": "100%", "background": "#fff", "z-index": "1000", "box-shadow": "0 -2px 5px rgba(0, 0, 0, 0.1)", "transform": "translateY(100%)", "transition": "transform 0.3s ease-out" }).show().css("transform", "translateY(0)"); } else { $(".chatbot-body").append('<div class="chat-message"><div class="button-container-list">' + row + '</div></div>'); } that.scrollToBottom(); that.drawAfterAnswer(id, url, img, img_url); $(document).off('click', '.button-item').on('click', '.button-item', function() { var selectedTypeCode = $(this).data('type_code'); var selectedTypeName = $(this).data('type_name'); console.log("selectedTypeCode : " + selectedTypeCode ); $(".chatbot-body").append('<div class="chat-message2"><div class="message-container-userMessage">' + 'Q. ' + selectedTypeName + '</div><div class="formattedDate" style="text-align: right;">' + formattedDate + '</div></div>'); $(".button-container-list2").slideUp("slow", function() { $(this).remove(); }); that.getMenuData(selectedTypeCode); that.scrollToBottom(); }); }, getProduct: function(str1, str2) { var that = this; var id = str1; var url = str2; var ajaxData = { id : id } $.ajax({ type: 'POST', data: ajaxData, url: baseUrl + "aichatbot/getProduct", success: function(response) { console.log("=====getProduct success====="); console.log(response); that.drawProduct(response.result.data, id, url); }, error: function() { console.log("=====getProduct error====="); alert('상품을 불러오는데 실패했습니다.'); } }) }, drawProduct: function(data, str1, str2) { var that = this; var formattedDate = that.getFormattedDate(); var row = ''; var id = str1; var url = str2; for (var i = 0; i < data.length; i++) { var list = data[i]; var rank = i+1; if (rank < 10) { rank = "&nbsp;&nbsp;"+rank; } row += '<div class="product-item2" data-title_code="' + list.id + '" data-title="' + list.title + '">'; row += ' <table>'; row += ' <tbody>'; row += ' <tr class="text">'; row += ' <td><div class="ico-q"></div></td>'; row += ' <td>'; row += ' <div class="chatbot-wrap flex1 fs">'; row += ' <div class="title" style="font-size: 14px; font color="#F26E22;" data-title="' + list.title + '">'+ '<font color="#F26E22">'+ rank +'위.'+'</font>'+'&nbsp;'+ list.title + '</div>'; row += ' <div class="ico-arrow"></div>'; row += ' </div>'; row += ' </td>'; row += ' </tr>'; row += ' </tbody>'; row += ' </table>'; row += '</div>'; } $(".chatbot-body").append('<div class="chat-message"><div class="button-container-list">' + row + '</div><div class="formattedDate">' + formattedDate + '</div></div>'); that.scrollToBottom(); that.drawAfterAnswer(id, url, "", ""); $(document).off('click', '.product-item2').on('click', '.product-item2', function() { var selectedTitleCode = $(this).data('title_code'); var selectedTitleName = $(this).data('title'); //챗봇 비활성화 //$(".chatbot-modal").css("display", "none"); //모바일 오버플로우 활성화 //that.mobileClose(); //화면이동 window.open(baseUrl + "data/view/" +selectedTitleCode, '_blank'); return; }); }, getChatRankingList: function(str1, str2) { var that = this; var id = str1; var url = str2; var ajaxData = { id : id } $.ajax({ type: 'POST', data: ajaxData, url: baseUrl + "aichatbot/getChatRankingList", success: function(response) { console.log("=====getChatRankingList success====="); console.log(response); that.drawRanking(response.result.data, id, url); }, error: function() { console.log("=====getProduct error====="); alert('검색 순위를 불러오는데 실패했습니다.'); } }) }, drawRanking: function(data, str1, str2) { var that = this; var formattedDate = that.getFormattedDate(); var row = ''; var id = str1; var url = str2; for (var i = 0; i < 10; i++) { var list = data[i]; var rank = i+1; if (rank < 10) { rank = "&nbsp;&nbsp;"+rank; } var changeColor = ""; var change = list[1]; if (change.startsWith("+")) { changeColor = "red"; change = change.replace("+", "↑"); }else if (change.startsWith("-")) { changeColor = "blue"; change = change.replace("-", "↓"); }else if(change == "new"){ changeColor = "gray"; }else if(change == "eq"){ changeColor = "gray"; change = change.replace("eq", "-"); } row += '<div class="search-item2" data-title_code="' + id + '" data-title="' + list[0] + '">'; row += ' <table style="width: 100%;">'; row += ' <tbody>'; row += ' <tr class="text">'; row += ' <td><div class="ico-q"></div></td>'; row += ' <td style="width: 80%; text-align: start;">'; row += ' <div class="chatbot-wrap flex1 fs">'; row += ' <div class="title" style="font-size: 14px;" data-title="' + list[0] + '">'; row += ' <font color="#F26E22">' + rank + '위.</font>&ensp;' + list[0]; row += ' </div>'; row += ' <div class="ico-arrow"></div>'; row += ' </div>'; row += ' </td>'; row += ' <td style="width: 20%; text-align: right;">'; row += ' <span style="font-size: 13px; color: ' + changeColor + ';">' + change + '</span>'; row += ' </td>'; row += ' </tr>'; row += ' </tbody>'; row += ' </table>'; row += '</div>'; } $(".chatbot-body").append('<div class="chat-message"><div class="button-container-list">' + row + '</div><div class="formattedDate">' + formattedDate + '</div></div>'); that.scrollToBottom(); that.drawAfterAnswer(id, url, "", ""); $(document).off('click', '.search-item2').on('click', '.search-item2', function() { var selectedTitleCode = $(this).data('title_code'); var selectedTitleName = $(this).data('title'); //모바일 오버플로우 활성화 that.mobileClose(); if(selectedTitleCode == "41000"){ window.open(baseUrl + "search?search_keyword=" +selectedTitleName, '_blank'); return; }else if(selectedTitleCode == "42000"){ var url = "https://www.google.co.kr/search?q="+selectedTitleName+" site:mk.co.kr"; window.open(url, '_blank'); return; } }); }, drawAfterAnswer: function(str1, str2, str3, str4) { var that = this; var formattedDate = that.getFormattedDate(); var id = str1; var url = str2; var img = str3; var img_url = str4; // URL 있을 경우 if(url != "") { $(".chatbot-body").append( '<div class="chat-message">' + '<div class="button-container-back-wrapper">' + '<div class="button-container-back" id="chat-detail" data-url="'+ url +'" data-id="'+ id +'">자세히 보기</div>' + '<div class="button-container-back" id="chat-first">처음으로</div>' + '</div>' + '</div>' ); that.scrollToBottom(); } /* // IMG 있을 경우 if(img != "") { //광고 이미지 삽입 $(".chatbot-body").append( '<div class="ad-image" id="ad-image" data-url="'+ img_url +'">' + '<img src="' + img + '" alt="광고 이미지" />' + '</div>' ); that.scrollToBottom(); } */ }, sendMessage: function() { var that = this; var formattedDate = that.getFormattedDate(); var content = $('#chatInput').val().trim(); $('input[name="question"]').val(content); var ajaxData = { question : content }; if (content == "") { alert("메세지를 입력해주세요"); return; } if (that.isWaitingResponse) { return; } function ReplaceStr(content) { content = content.replace(/'/g, " \\'"); content = content.replace(/&/g, "&amp;"); content = content.replace(/\"/g, "&quot;"); content = content.replace(/</g, "&lt;"); content = content.replace(/>/g, "&gt;"); return content; } var fliterContent = ReplaceStr(content); $(".chatbot-body").append( '<div class="chat-message2">' + '<div class="message-container-userMessage">' + fliterContent + '</div>' + '<div class="formattedDate" style="text-align: right;">' + formattedDate + '</div>' + '</div>' ); var loadingElement = '<div class="loading-message" id="loadingMessage" style="text-align: center;"><img src="/resources/images/loader.gif" alt="Loading..." style="width: 50px; height: 50px;" /></div>'; $(".chatbot-body").append(loadingElement); that.isWaitingResponse = true; $('.user-send').prop('disabled', true); $.ajax({ type: 'POST', data: $.param(ajaxData), contentType: 'application/x-www-form-urlencoded', url: baseUrl + "aichatbot/sendMessage", success: function(response) { console.log("=====sendMessage success====="); console.log(response); $('#loadingMessage').remove(); that.drawSlideData(response); that.isWaitingResponse = false; $('.user-send').prop('disabled', false); }, error: function() { console.log("=====sendMessage error====="); $('#loadingMessage').remove(); alert('모델 호출에 실패했습니다.'); } }); $('#chatInput').val(''); }, drawSlideData: function(response){ var that = this; var formattedDate = that.getFormattedDate(); var intentrow = ""; var row = ""; if ($(".data-slide .data-list").hasClass('slick-initialized') && response.result.length == 0) { if (response.result && response.result.length > 0 && response.result[0].text) { intentrow += '<div class="model-message">' + '<div class="message-container-modelMessage" style="color: #F26E22; font-size: 16px;">' + response.result[0].text + '</div></div>'; intentrow += '<div class="formattedDate">' + formattedDate + '</div>'; $(".chatbot-body").append(intentrow); } that.scrollToBottom(); return; } if ($(".data-slide .data-list").hasClass('slick-initialized')) { $(".data-slide .data-list").slick('unslick'); } if (response.result && response.result.length > 0 && response.result[0].text) { intentrow += '<div class="model-message"><div class="chatbot-profile"></div><div class="message-container-modelMessage" style="font-size: 14px;">' + response.result[0].text + '</div></div>'; } if (response.result && response.result.length > 0) { for (var i = 0; i < response.result.length; i++) { var company = response.result[i].comp; var title = response.result[i].title; var description = response.result[i].description; var price = response.result[i].price; var productId = response.result[i].product_id; var hasValidData = ""; if (!productId) { continue; } var priceImageUrl = (price == 0) ? 'https://kdx.kr/resource/kdx_attachment/chatbot-price1.png' : 'https://kdx.kr/resource/kdx_attachment/chatbot-price2.png'; row += '<div class="data-slide" style="height: fit-content;" data-title="' + title + '" data-id="' + productId + '">'; row += ' <table style="width: 100%;">'; row += ' <tbody>'; row += ' <tr class="text">'; row += ' <td><div class="ico-q"></div></td>'; row += ' <td>'; row += ' <div class="company" style="color: #000; font-size: 16px; font-weight: bold; margin-bottom: 1rem;">' + company + '</div>'; row += ' <div class="chatbot-wrap flex1 fs" style="display: flex; align-items: center; padding-bottom: 20px">'; row += ' <div class="price product-price" style="background-image: url(' + priceImageUrl + '); background-size: cover; width: 47px; height: 30px; margin-right: 10px;"></div>'; row += ' <div class="title product-title" style="color: #000; height: 40px; font-weight: bold; font-size: 14px; word-break: keep-all; max-width: 240px; align-content: center;">' + title + '</div>'; row += ' </div>'; row += ' <div class="description text-truncate" style="color: #000; font-size: 12px; height: 55px;">' + description + '</div>'; row += ' <div class="chat-link" id="chat-link" data-url="'+ 'https://kdx.kr/data/view/' +'" data-id="'+ productId +'">' + '데이터 확인하기' + '</div>'; row += ' <div class="ico-arrow"></div>'; row += ' </td>'; row += ' </tr>'; row += ' </tbody>'; row += ' </table>'; row += '</div>'; hasValidData = true; } if (hasValidData) { $(".chatbot-body").append(intentrow); $(".chatbot-body").append('<div class="data-slide"><div class="data-list">' + row + '</div></div>'); $(".chatbot-body").append('<div class="chat-message">' + '<div class="button-container-back-wrapper">' + '<div class="button-container-back" id="chat-moredata" data-url="' + baseUrl + 'search/chatbot-list?search_keyword=' + encodeURIComponent($('input[name="question"]').val()) + '">더 많은 데이터 확인하기</div>' + '<div class="button-container-back2" id="chat-first">처음으로</div>' + '</div>' + '</div>'); } else { $(".chatbot-body").append(intentrow); $(".chatbot-body").append('</div><div class="formattedDate">' + formattedDate + '</div></div>'); } $(".data-slide .data-list").slick({ arrows: true, dots: true, infinite: true, speed: 150, autoplaySpeed:5000, slidesToShow: 1, adaptiveHeight: true, centerMode: true, centerPadding: '0px', draggable : true, prevArrow: '<button type="button" class="slick-prev"></button>', nextArrow: '<button type="button" class="slick-next"></button>' }); } else { if (intentrow != "") { $(".chatbot-body").append(intentrow); } } that.scrollToBottom(); }, getFormattedDate: function() { var that = this; var currentDate = new Date(); var hours = currentDate.getHours(); var minutes = ('0' + currentDate.getMinutes()).slice(-2); var period = hours >= 12 ? '오후' : '오전'; hours = hours % 12 || 12; var formattedDate = period + ' ' + hours + ':' + minutes; return period + ' ' + hours + ':' + minutes; }, scrollToBottom: function() { var chatbotBody = $(".chatbot-body"); chatbotBody.animate({ scrollTop: chatbotBody.prop("scrollHeight") }, 400); }, mobileOpen: function() { var that = this; //모바일 오버플로우 비활성화 if(navigator.userAgent.toLocaleLowerCase().indexOf("tizen") == -1) { if ((navigator.platform && filter.indexOf( navigator.platform.toLowerCase() ) < 0) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) || (navigator.platform === 'iPhone' && navigator.maxTouchPoints > 1)) { if(location.href.indexOf("emailConfirm") == -1 && location.href.indexOf("customvisual") == -1 && location.href.indexOf("tdi/service") == -1 ) { $(".modalOverlay").css("display", "block"); $("html, body").css({"overflow-x": "hidden", "overflow-y": "hidden"}); } } } }, mobileClose: function() { var that = this; //모바일 오버플로우 활성화 if(navigator.userAgent.toLocaleLowerCase().indexOf("tizen") == -1) { if ((navigator.platform && filter.indexOf( navigator.platform.toLowerCase() ) < 0) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) || (navigator.platform === 'iPhone' && navigator.maxTouchPoints > 1)) { if(location.href.indexOf("emailConfirm") == -1 && location.href.indexOf("customvisual") == -1 && location.href.indexOf("tdi/service") == -1 ) { $(".modalOverlay").css("display", "none"); $("html, body").css({"overflow-x": "hidden", "overflow-y": "auto"}); } } } } } </script> </body> </html> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="naver-site-verification" content="d834d0693e16e53af10975015cdedf100cd15728" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1, maximum-scale=2, user-scalable=no, height=device-height"/> <link rel="stylesheet" href="https://kdx.kr/css/style.css?dt=202503041310"> <link rel="shortcut icon" href="https://kdx.kr/images/favicon.ico"> <style> @media (max-width: 680px) { .side-nav-wrap.expand{ overflow-y: auto; background-color: #fff; } .side-nav-wrap .inner{ height: calc(100% + 30rem); } } .header #gnb { display: none; } .header .gnb-btn{ background-image: url('https://kdx.kr/resource/main_icons/header_gnb_btn.png'); width: 4rem; height: 4rem; margin-left: 4rem; border: 0rem; background-color: #ffffff; } .main-search-wrap .main-inner .main-search { position: relative; width: 63rem; margin-left: 4rem; } .main-search-wrap .main-inner .main-search input { width: 100%; height: 5rem; background-color: #fff; /* #fff */ padding: 1.5rem 4rem 1.5rem 1.6rem; font-size: 1.4rem; font-weight: 400; line-height: 1.428; letter-spacing: 0; color: #878787; border-radius: 3rem; border: 2px solid #878787; } .main-search-wrap .main-inner .main-search .btn-search { position: absolute; right: 1.4rem; top: 1.5rem; } .main-search-wrap .main-inner .main-search-title { display: flex; align-items: center; margin-top: 2rem; font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: 0; color: #003458; /* #fff */ } .main-search-wrap .main-inner .main-search-title em { display: inline-block; margin-left: 2rem; font-style: normal; font-size: 1.4rem; font-weight: 400; line-height: 2rem; letter-spacing: 0; color: #003458; /* #fff */ } @media(max-width: 768px){ .main-search-wrap, .gnb-btn { display: none; } } .header .gnb-menu-item .maekyungKeywords { background: linear-gradient(90deg, #EB7D37 0%, #F05C21 100%); color: transparent !important; -webkit-background-clip: text; } .side-nav-wrap .side-menu-list li.maekyungKeywords a { background: linear-gradient(90deg, #EB7D37 0%, #F05C21 100%); color: transparent !important; -webkit-background-clip: text; } #gnb { display: none; position: absolute; width: 100%; background-color: #fff; z-index: 1000; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } #gnb:before { display: block; content:""; position: absolute; top: 0; left: 0; width: 100%; background: #ffffff; -webkit-transition: all 0.2s; } .inbox { display: flex; flex-direction: column; padding: 20px; background-color: #fff; border-top: 1px solid #ddd; place-items: center; text-align: center; } .gnb-menu { order: -1; position: sticky; list-style: none; margin: 0; padding: 0; } .gnb-menu-item { display: inline-block; position: relative; padding: 10px 15px; cursor: pointer; } .gnb-menu-item a { text-decoration: none; color: #000; font-weight: bold; } .gnb-menu-item li:hover { background-color: #f4f4f4; } .gnb-menu-item:first-child { margin-top: 0; } .sub_menu { list-style: none; margin: 10px 0 0; padding: 0; } .sub_menu li { padding: 3px 15px; margin-top: 5px; } .sub_menu li:hover { background-color: transparent !important; font-weight: bold; } .sub_menu li a { text-decoration: none; color: #666; font-weight: normal; font-size: 15px;} .sub_menu li a:hover { font-weight: bold; } </style> </head> <!-- header --> <header class="header"> <div class="snb_back"> </div> <!-- //search layer --> <div class="container sessionclr"> <!-- logo --> <h1 class="logo"> <a href="https://kdx.kr/main" onclick="return rmSession();"> <span class="blind">KDX 한국데이터거래소</span></a> </h1> <!-- //logo --> <!-- gnb --> <button type="button" class="gnb-btn"></button> <!-- searchBar --> <div class="main-search-wrap"> <div class="main-inner"> <div class="main-search"> <input type="text" placeholder="무엇을 찾으시나요?" /> <div class="btn-search"> <span class="blind">검색</span> </div> </div> </div> </div> <!-- //gnb --> <!-- search login --> <div class="area-util"> <!-- 로그인 전--> <a href="https://kdx.kr/login" onclick="return rmSession('login');" class="link-login">로그인</a> <!-- //로그인 전--> <!-- 로그인 후--> <!-- //로그인 후--> </div> <!-- //search login --> <!-- mobile btn --> <div class="btn-nav-open"> <span class="blind">메뉴 열기</span> </div> <!-- //mobile btn --> <!-- mobile nav --> <div class="side-nav-wrap"> <div class="inner"> <div class="btn-nav-close"> <span class="blind">메뉴 닫기</span> </div> <a href="https://kdx.kr/main" onclick="return rmSession();" class="link-home">홈으로</a> <ul class="side-menu-list"> <li><a href="https://kdx.kr/data/data">데이터 마켓</a></li> <li><a href="https://kdx.kr/ai/main">AI 비즈니스</a></li> <li><a href="https://kdx.kr/service/platform">서비스</a></li> <li class="oldnews"><a href="https://kdx.kr/mk/oldnews/main">매경늬우스</a></li> <li class="maekyungKeywords"><a href="https://kdx.kr/keyword/view">매경키워드</a></li> <li><a href="https://kdx.kr/community">커뮤니티</a></li> <li><a href="https://kdx.kr/seller/main">기업회원 사이트</a></li> </ul> <form> <div class="side-search"> <input type="text" placeholder="검색" /> <div class="btn-search"> <span class="blind">검색</span> </div> </div> </form> <!-- 로그인 전 --> <a href="https://kdx.kr/login" onclick="return rmSession('login');" class="link">로그인</a> <a href="https://kdx.kr/register/type" class="link">회원가입</a> <!-- //로그인 전--> <!-- 로그인 후--> <!-- //로그인 후--> </div> </div> <!-- // mobile nav --> </div> <div class="gnb" id="gnb"> <div class="inbox"> <ul class="gnb-menu"> <li class="gnb-menu-item"><a href="https://kdx.kr/data/data" >데이터 마켓</a> <ul class="sub_menu"> <li class="news"><a href="https://kdx.kr/data/data-all" class="link" onclick="return rmSessCion();">전체 데이터</a></li> <li class="news"><a href="https://kdx.kr/data/popular" class="link" onclick="return rmSessCion();">인기 데이터</a></li> <li class="story"><a href="https://kdx.kr/data/report" class="link" onclick="return rmSessCion();">리포트 데이터</a></li> <li class="story"><a href="https://kdx.kr/data/corp/list" class="link" onclick="return rmSessCion();">기업별 데이터</a></li> </ul> </li> <li class="gnb-menu-item"><a href="https://kdx.kr/ai/main">AI 비즈니스</a> <ul class="sub_menu"> <li class="news"><a href="https://kdx.kr/ai/data/main" class="link" onclick="return rmSessCion();">AI 데이터</a></li> <!-- <li class="news"><a href="#" class="link" onclick="alert('작업중인 페이지입니다.');">AI 데이터</a></li> --> <li class="story"><a href="https://kdx.kr/ai/learning/list" class="link" onclick="return rmSessCion();">AI 학습용 데이터</a></li> <li class="story"><a href="https://kdx.kr/ai/video/list" class="link" onclick="return rmSessCion();">MBN 동영상</a></li> <li class="story"><a href="https://kdx.kr/labeller/datasetList" class="link" onclick="return rmSessCion();">KDX AI Tool</a></li> <!-- <li class="story"><a href="http://admin.xiilab.com:38082/kdx-aiva/login" class="link" target="_blank" onclick="return rmSessCion();">KDX-AIVA</a></li> --> <!-- <li class="story"><a class="server" href="http://admin.xiilab.com:38082/kdx-aiva/login" class="link" target="_blank" onclick="serverChk();">KDX-AIVA</a></li> --> </ul> </li> <li class="gnb-menu-item"><a href="https://kdx.kr/service/platform">서비스</a> <ul class="sub_menu"> <li class="news"><a href="https://kdx.kr/service/platform" class="link" onclick="return rmSessCion();">플랫폼 서비스</a></li> <li class="story"><a href="https://kdx.kr/mk/oldnews/main" class="link" onclick="return rmSessCion();">매경늬우스</a></li> </ul> </li> <li class="gnb-menu-item"><a href="https://kdx.kr/community">커뮤니티</a> <ul class="sub_menu"> <li class="news"><a href="https://kdx.kr/introduce" class="link" onclick="return rmSessCion();">KDX 소개</a></li> <li class="story"><a href="https://kdx.kr/knews/list" class="link" onclick="return rmSessCion();">KDX 소식</a></li> <li class="story"><a href="https://kdx.kr/news/list" class="link" onclick="return rmSessCion();">데이터루</a></li> <li class="story"><a href="https://kdx.kr/story/list" class="link" onclick="return rmSessCion();">데이터 스토리</a></li> <li class="story"><a href="https://kdx.kr/faq" class="link" onclick="return rmSessCion();">자주 묻는 질문</a></li> </ul> </li> <li class="gnb-menu-item"><a href="https://kdx.kr/seller/main">기업회원 사이트</a></li> <li class="gnb-menu-item"><a href="https://kdx.kr/keyword/view" class="maekyungKeywords" onclick="return rmSessCion();">매경키워드</a></li> </ul> </div> </div> </header> <!-- //header --> <div id="progressBar" class="hide"> <div class="progress_back"> <div class="progress_value"></div> </div> </div> <script src="https://kdx.kr/js/common2.js"></script> <script> $(document).on('click','.sessionclr',function(){ sessionStorage.clear(); }); $(document).on('click','.logo',function(){ sessionStorage.clear(); }); $(function(){ "use strict"; window.baseUrl = ''+'/'; window.adminUrl = ''+'/admin/'; window.ymdhms = "YYYY-MM-DD HH:mm:ss"; window.ymd = "YYYY.MM.DD"; window.ymdHHMM = "YYYY.MM.DD HH:mm"; window.locale = "en"; $.ajaxSetup({ cache:false, // crossDomain:true, crossOrigin: true, contentType: "application/x-www-form-urlencoded; charset=utf-8", xhrFields: { withCredentials: true }, type:"POST", dataType:"json", beforeSend:function(xhr){ xhr.setRequestHeader("Authorization", "kdx2023checker"); var target = "body"; var h = $(target).outerHeight()/2; var w = $(target).outerWidth()/2; var s = 50 /2; var scroll = $(target).scrollTop(); var top = h-s, left = w-s; if(top <= 0) top = 0; else if(left <= 0) left = 0; var lc = " <div id='loader' style=''> " lc += "<div class='donutSpinner'></div>" lc += " </div> "; $(target).append(lc); }, complete:function(){ $("body").find("#loader").remove(); }, error: function(jqXHR, exception) { if (jqXHR.status === 0) { console.log('Not connect.\n Verify Network.'); } else if (jqXHR.status == 400) { console.log('Server understood the request, but request content was invalid. [400]'); } else if (jqXHR.status == 401) { console.log('Unauthorized access. [401]'); } else if (jqXHR.status == 403) { console.log('Forbidden resource can not be accessed. [403]'); } else if (jqXHR.status == 404) { console.log('Requested page not found. [404]'); } else if (jqXHR.status == 500) { console.log('Internal server error. [500]'); } else if (jqXHR.status == 503) { console.log('Service unavailable. [503]'); } else if (exception === 'parsererror') { console.log('Requested JSON parse failed. [Failed]'); } else if (exception === 'timeout') { console.log('Time out error. [Timeout]'); } else if (exception === 'abort') { console.log('Ajax request aborted. [Aborted]'); } else { console.log('Uncaught Error.n' + jqXHR.responseText); } $("body").find("#loader").remove(); } }); jQuery.ajaxSettings.traditional = true; function getContext(){ $.ajax({ url: baseUrl + "auth/getContext", data : {}, success : function(res){ console.log("=====getContext=====", res); $("#gnb .account").removeClass("hide"); if(res.result.code == "200"){ var userData = res.result.data; window.userInfo = userData; if(userData != null){ var uc = localStorage.getItem("_user_chk"); if(uc == null){ logout(); } console.log(uc); //logout(); } if(userData && window.location.href.indexOf("dormancy") == -1){ getDormancyYn(userData.user_id); //return; } // 관리자일 경우 if(userData.status == "admin"){ /* location.href = baseUrl + "admin/dashboard"; return; */ } //$("#gnb .account > li[data-login='true']").removeClass("hide"); $(document).trigger("sessionLoad"); // 마스터인데 관심카테고리 설정되어있지 않을때 /* if(userData.created_date != null && userData.interest_category == null && (userData.level_cd == "020100" || userData.level_cd == "020200")){ alert("관심데이터가 지정되어있지 않습니다.\n관심데이터 설정 후 이용해주시기 바랍니다."); location.href = baseUrl + "mypage/profile"; } */ } else { //$("#gnb .account > li[data-login='false']").removeClass("hide"); $(document).trigger("sessionLoad"); } } }); } function getDormancyYn(userId){ $.ajax({ url: baseUrl + "dormancy/getDormancyYn", data : {user_id : userId}, success : function(res){ console.log("=====getDormancyYn=====", res); if(res.result.code == "201"){ location.href = baseUrl + "dormancy"; return; } } }); } window.selectOption = function(target, value){ $(target + " > option[value='"+value+"']").prop("selected", true).attr("selected", true); $(target).parent().find(".select_styled").html($(target + " > option[value='"+value+"']").text()); } window.redrawSelect = function(target){ var option = "option"; // var option = "option:not([disabled])"; var $this = $(target), numberOfOptions = $(target).children(option).length; var $styledSelect = $this.next("div.select_styled"); $this.siblings("div.select_options").remove(); $styledSelect.html(""); var firstOptionDataCategory = $this.children(option).eq(0).data("category"); if($(this).children("option:selected").length > 0){ $styledSelect.text($this.children("option:selected").eq(0).text()).attr("data-category", firstOptionDataCategory); } else if($(this).children("option:disabled").length > 0){ $styledSelect.text($this.children("option:disabled").eq(0).text()).attr("data-category", firstOptionDataCategory); } else { $styledSelect.text($this.children(option).eq(0).text()).attr("data-category", firstOptionDataCategory); } if($this.children(option).eq(0).hasClass("placeholder")){ $styledSelect.css("color", "#999") } var $list = $("<ul />", { "class": "select_options" }).insertAfter($styledSelect); for (var i = 0; i < numberOfOptions; i++) { $("<li />", { "text": $this.children("option:not([disabled])").eq(i).text(), "rel": $this.children("option:not([disabled])").eq(i).val(), "class": $this.children("option:not([disabled])").eq(i).attr("class"), "data-category": $this.children("option:not([disabled])").eq(i).data("category"), }).appendTo($list); } var $listItems = $list.children("li"); $styledSelect.off("click").on("click", function(e) { e.stopPropagation(); $("div.select_styled.active").not(this).each(function(){ $(this).removeClass("active").next("ul.select_options").hide(); }); $(this).toggleClass("active").next("ul.select_options").toggle(); }); $listItems.off("click").on("click", function(e) { e.stopPropagation(); $styledSelect.text($(this).text()).removeClass("active").attr("data-category", $(this).data("category")); $this.val($(this).attr("rel")).trigger("change"); $list.hide(); }); $(document).off("click").on("click", function() { $styledSelect.removeClass("active"); $list.hide(); $(".select_options").hide(); $(".note-btn-group.open").removeClass("open"); $(".note-btn-group .note-btn.active").removeClass("active"); }); } window.redrawCodeSelect = function(target){ var option = "option"; // var option = "option:not([disabled])"; var $this = $(target), numberOfOptions = $(target).children(option).length; $this.addClass('select-hidden'); $this.wrap('<div class="select"></div>'); $this.after('<div class="select-styled"></div>'); var $styledSelect = $this.next("div.select-styled"); $this.siblings("div.select-options").remove(); $styledSelect.html(""); var firstOptionDataCategory = $this.children(option).eq(0).data("code"); if($(this).children("option:selected").length > 0){ $styledSelect.text($this.children("option:selected").eq(0).text()).attr("data-code", firstOptionDataCategory); } else if($(this).children("option:disabled").length > 0){ $styledSelect.text($this.children("option:disabled").eq(0).text()).attr("data-code", firstOptionDataCategory); } else { $styledSelect.text($this.children(option).eq(0).text()).attr("data-code", firstOptionDataCategory); } if($this.children(option).eq(0).hasClass("placeholder")){ $styledSelect.css("color", "#999") } var $list = $("<ul />", { "class": "select-options" }).insertAfter($styledSelect); for (var i = 0; i < numberOfOptions; i++) { $("<li />", { "text": $this.children("option:not([disabled])").eq(i).text(), "rel": $this.children("option:not([disabled])").eq(i).val(), "class": $this.children("option:not([disabled])").eq(i).attr("class"), "data-code": $this.children("option:not([disabled])").eq(i).data("code"), }).appendTo($list); if ($this.children('option').eq(i).is(':selected')){ $('li[rel="' + $this.children('option').eq(i).val() + '"]').addClass('is-selected'); $styledSelect.css("color", "#767676"); $styledSelect.text($this.children('option').eq(i).text()); } } var $listItems = $list.children("li"); $styledSelect.off("click").on("click", function(e) { e.stopPropagation(); $("div.select-styled.active").not(this).each(function(){ $(this).removeClass("active").next("ul.select-options").hide(); }); $(this).toggleClass("active").next("ul.select-options").toggle(); }); $listItems.off("click").on("click", function(e) { e.stopPropagation(); $styledSelect.text($(this).text()).removeClass("active").attr("data-code", $(this).data("code")); $this.val($(this).attr("rel")).trigger("change"); $list.hide(); var code = $(this).data("code"); if(code == "newcode"){ $(".code_name").removeClass("hide"); }else{ $(".code_name").addClass("hide"); } var val = $(this).attr("rel"); if(val != 'hide'){ if(val == ""){ $this.parent(".select").css("display","none"); $("input[name='email_domain']").css("display","block"); } else { $styledSelect.css("color", "#767676"); } } else { $styledSelect.css("color", "##bfbfbf"); } // console.log($this.val()); if($(this).hasClass('is-selected') && $listItems.hasClass('is-selected') == true){ $listItems.removeClass('is-selected') } else{ $listItems.removeClass('is-selected') $(this).addClass('is-selected') } }); $(document).off("click").on("click", function() { $styledSelect.removeClass("active"); $list.hide(); $(".select-options").hide(); $(".note-btn-group.open").removeClass("open"); $(".note-btn-group .note-btn.active").removeClass("active"); }); } window.mvLogin = function(){ sessionStorage.setItem("kdx_login_referrer_page", location.href); location.href = baseUrl + "login"; } window.logout = function(){ //logoutAdego(); //logoutMk(); deleteCookie("kdxAL"); localStorage.removeItem("_user_chk"); var expireDate = new Date(); expireDate.setDate(expireDate.getDate() - 1); document.cookie = "_user_nameless=; expires=" + expireDate.toGMTString() + "; domain=kdx.kr; path=/"; $.ajax({ url : baseUrl + "auth/logout", data : {}, type : "POST", success : function(res){ console.log("=====logout=====", res); if(location.href.indexOf("mypage") > -1) location.href = baseUrl + "main"; else if(location.href.indexOf("Callback") > -1) location.href = baseUrl + "main"; else location.reload(); } }); } getContext(); getMessageList(); var sock = new SockJS(baseUrl+"echo/"); sock.onmessage = onMessage; // 서버로부터 메시지를 받았을 때 function onMessage(msg) { var data = msg.data; drawNoticeCnt(data); } function logoutAdego(){ $.ajax({ url: baseUrl+"auth/logoutAdego", contentType:'application/json', type : 'post', dataType : 'json', success : function(res){ console.log("auth/logoutAdego",res); if(res.result.code == "200"){ } } }); }; function getMessageList(){ var ajaxData = { page_num : 0, page_size: 10, status : "active" }; $.ajax({ url: baseUrl + "message/getMessageList", data : ajaxData, success : function(res){ console.log("=====getMessageList=====", res); if(res.result.code == "200"){ drawMessage(res.result.data); drawNoticeCnt(res.messageVO.total_size); } else { } } }); } function drawNoticeCnt(data){ if(data==0 || data=='0'){ $(".notice_cnt").addClass("hide"); return; } $(".notice_cnt").removeClass("hide"); if(data.length>1){ $(".notice_cnt").html("10+"); }else{ $(".notice_cnt").html(data); } } function updateMessageStatus(id){ console.log("id",id) var ajaxData = { message_id : id, check_date : "check", status : "inactive" }; $.ajax({ url: baseUrl + "message/updateMessage", data : ajaxData, success : function(res){ console.log("=====updateMessage=====", res); if(res.result.code == "200"){ } else { } } }); } function drawMessage(result){ var row = ""; var target = $(".notice-list .list"); target.html(""); var res = result; for(var i=0, len=res.length; i<len; i++){ var rdata = res[i]; row +=" <li data-id='"+rdata.message_id+"' data-url='"+rdata.url+"'>" row +=" <span class='text'>"+rdata.notice_contents+"</span>" row +=" <div class='date'>"+displayedAt(rdata.created_date)+"</div>" row +=" </li>" } if(res.length==0){ row += "<p class='no-notice'>새로운 알림이 없습니다.</p>" } target.html(row); $(".notice-list .list li").off("click").on("click", function() { var id = $(this).data("id"); var url = $(this).data("url"); if(typeof url != 'undefined'){ updateMessageStatus(id); location.href=baseUrl + url; } }); } function displayedAt(value) { var today = new Date(); var timeValue = new Date(value); var betweenTime = Math.floor((today.getTime() - timeValue.getTime()) / 1000 / 60); if (betweenTime < 1) return '방금전'; if (betweenTime < 60) { return betweenTime+'분 전'; } var betweenTimeHour = Math.floor(betweenTime / 60); if (betweenTimeHour < 24) { return betweenTimeHour+'시간 전'; } var betweenTimeDay = Math.floor(betweenTime / 60 / 24); if (betweenTimeDay < 3) { return betweenTimeDay+'일 전'; } var year = moment(value).format("YYYY")+"년 "; var month = moment(value).format("MM")+"월 "; var day = moment(value).format("DD")+"일"; var date = year + month + day; return date; } function gnbSearch(type){ if(type=="m"){ var searchTxt = $(".side-search input").val().replace(/[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@#$%&\\\=\(\'\"]/g, ''); }else{ var searchTxt = $(".main-search input").val().replace(/[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@#$%&\\\=\(\'\"]/g, ''); } if(searchTxt.length < 2){ alert("검색어를 두글자 이상 입력해주세요."); return; } else { sessionStorage.setItem("datamapList", 1); sessionStorage.setItem("kosisList", 1); location.href = baseUrl + "search?search_keyword="+setEncoding(searchTxt); } }; function insertRecentKeyword(searchTxt){ sessionStorage.setItem("searchKeyword", searchTxt); var arr = []; var output = localStorage.getItem("recentKeyword"); arr.push(searchTxt); if(output!=null && output.length>0){ var tmp = JSON.parse(output); for(var i =0; i<tmp.length; i++){ arr.push(tmp[i]); } } var unique = [] for(var i of arr){ if(unique.indexOf(i) < 0){ unique.push(i); } } //중복제거 localStorage.setItem("recentKeyword", JSON.stringify(unique)); } //매경늬우스 최근본 상세페이지 window.insertMkPage = function(searchTxt){ sessionStorage.setItem("mkPage", searchTxt); var arr = []; var output = localStorage.getItem("mkPage"); arr.push(searchTxt); if(output!=null && output.length>0){ var tmp = JSON.parse(output); for(var i =0; i<tmp.length; i++){ arr.push(tmp[i]); } } var unique = [] for(var i of arr){ if(unique.indexOf(i) < 0){ unique.push(i); } } //중복제거 localStorage.setItem("mkPage", JSON.stringify(unique)); }; window.drawRecentPage = function(){ var output = localStorage.getItem("mkPage"); if(output!=null){ var tmp = JSON.parse(output); var row =""; for(var i =0; i<tmp.length; i++){ var targetId = tmp[i]; $(".date_page_list dt[data-readed='"+targetId+"']").addClass("selected"); } } }; function drawRecentKeyword(){ var output = localStorage.getItem("recentKeyword"); var target = $('.list-recent-word'); if(output!=null){ var tmp = JSON.parse(output); var row =""; //row +="<div class='title'>최근 검색어</div>"; for(var i =0; i<tmp.length; i++){ row += " <li class='tag'> " row += " <pre>"+tmp[i]+"</pre> " row += " <div class='btn-tag-cancel'> " row += " <span class='blind'>삭제</span> " row += " </div> " row += " </li> " if(i==2) break; } target.html(row); //삭제버튼 이벤트 $('.btn-tag-cancel').click(function(){ var output = localStorage.getItem("recentKeyword"); var id = $(this).data('id'); var tmp = JSON.parse(output); tmp.splice(id,1); localStorage.setItem("recentKeyword", JSON.stringify(tmp)); drawRecentKeyword(); }); $('.tag pre').click(function(){ var keyword = $(this).text(); location.href = baseUrl + "search?search_keyword="+setEncoding(keyword); }); }else{ var row = ""; row +="<div class='recent_word'>검색내용 없음</div>" target.html(row); } }; $(".main-search-wrap .btn-search").off("click").on("click",function(){ gnbSearch(); }); $(".main-search input").keydown(function (key) { var value = $(this).val(); if(key.keyCode == 13) gnbSearch(); }); $(".side-search .btn-search").off("click").on("click",function(){ gnbSearch("m"); }); }); $(".btn-mypage").off("click").on("click",function(){ location.href = baseUrl + "mypage/main" }); function noComplate(){ alert('작업중인페이지입니다.') return false; } function drawEmptyData(target, txt){ var eTxt = !txt || txt == "" ? "데이터가 없습니다." : txt; var html = ""; html += " <div class='no-data'> "; html += " <p class='text'>"+eTxt+"</p> "; html += " </div> "; $(target).html(html); $(target).siblings("#pagination").addClass("hide"); } function removeEmptyData(target){ $(target).html(""); $(target).siblings("#pagination").removeClass("hide"); } $(function(){ $("input").each(function(){ $(this).bind("focus", function(){ $(".header").css("position", "fixed"); }); $(this).bind("blur",function(){ $(".header").css("position", "fixed"); }); }); }); // 서버 점검용 알럿 함수 function serverChk(){ var today = new Date(); var month = today.getMonth(); var date = today.getDate(); var hour = today.getHours(); if (month >= 11){ if (date == 1){ if(hour >= 18){ $(".server").removeAttr("href"); alert("\nKDX-AIVA는 현재 점검 중입니다.\n서비스 이용에 불편을 드려 죄송합니다.\n\n• 작업 기간 : 2023년 12월 1일(금) 18:00 ~ 12월 4일(월) 오전 예정"); } }else{ $(".server").removeAttr("href"); alert("\nKDX-AIVA는 현재 점검 중입니다.\n서비스 이용에 불편을 드려 죄송합니다.\n\n• 작업 기간 : 2023년 12월 1일(금) 18:00 ~ 12월 4일(월) 오전 예정"); } } }; $(".gnb-btn").off("click").on("click", function () { var $gnb = $("#gnb"); if ($gnb.css("display") == "none") { $gnb.css("display", "block"); $(".inbox").css("display", "block"); } else { $gnb.css("display", "none"); $(".inbox").css("display", "none"); } }); </script> <section class="content" id="datasetList"> <div class="container"> <!-- title --> <h2 class="page-title">KDX AI Tool 데이터셋 목록</h2> <!-- btn wrap --> <div class="btn-wrap-space"> <!-- btn menual --> <div class="btn btn-menual"> <a target="_blank" class="link gray" href="https://kdx.kr/manual/KDX_LABELLER_MANUAL_201123.pdf">매뉴얼 PDF 보기</a> </div> <div class="row"> <!-- btn reflesh --> <div class="btn-reflesh btn_upload_refresh"> <span class="blind">새로고침</span> </div> <!-- btn downloade --> <!-- <div class="btn btn-down"> --> <!-- </div> --> <div class="btn btn-upload-dataset"></div> </div> </div> <!-- table --> <div class="table-box"> <table class="table-list" id="user_table"> <caption class="blind">공급자 속성</caption> <thead> <tr> <th scope="col">제목</th> <th scope="col">내용</th> <th scope="col">미디어 타입</th> <th scope="col">라벨 타입</th> <th scope="col">업로드 날짜</th> <th scope="col">업로드 진행상태</th> <th scope="col">데이터 목록</th> <th scope="col">데이터 추출</th> </tr> </thead> <tbody> <!-- 데이터셋 목록 표출 영역 --> </tbody> </table> </div> <div class="Page navigation pagination"></div> <!-- pagination --> <!-- <div class="pagination"> --> <!-- <span class="page-item"> --> <!-- <a class="page-link-prev"> --> <!-- <span class="blind">&laquo;</span> --> <!-- </a> --> <!-- </span> --> <!-- <span class="page-item"> --> <!-- <a class="page-link current-page" href="#">1</a> --> <!-- <a class="page-link" href="#">2</a> --> <!-- <a class="page-link" href="#">3</a> --> <!-- </span> --> <!-- <span class="page-item"> --> <!-- <a class="page-link-next"> --> <!-- <span class="blind">&raquo;</span> --> <!-- </a> --> <!-- </span> --> <!-- </div> --> <!-- //pagination --> <!-- contact us button --> <div class="btn-wrap-right"> <div class="btn btn-contact"> 문의하기 </div> </div> <!-- //contact us button --> </div> </section> <div id="sitemapMain" class="sitemap" style="display: block;"> <!-- <div id="sitemap" class=""> --> <!-- sitemap --> <section class="sitemap"> <div class="container"> <div class="row"> <div class="row-item"> <h2> <a href="https://kdx.kr/data/data">데이터 마켓</a> </h2> <ul class="sitemap-list"> <li><a href="https://kdx.kr/data/data-all">전체 데이터</a></li> <li><a href="https://kdx.kr/data/popular">인기 데이터</a></li> <li><a href="https://kdx.kr/data/report">리포트 데이터</a></li> <li><a href="https://kdx.kr/data/corp/list">기업별 데이터</a></li> </ul> </div> <div class="row-item"> <h2> <a href="https://kdx.kr/ai/main">AI 비즈니스</a> </h2> <ul class="sitemap-list"> <li><a href="https://kdx.kr/ai/data/main">AI 데이터</a></li> <li><a href="https://kdx.kr/ai/learning/list" data-mobile="N">AI 학습용 데이터</a></li> <li><a href="https://kdx.kr/ai/video/list">MBN 동영상</a></li> <li><a href="https://kdx.kr/labeller/datasetList" data-mobile="N">KDX AI Tool</a></li> <!-- <li><a href="http://admin.xiilab.com:38082/kdx-aiva/login" data-mobile="N">KDX-AIVA</a></li> --> </ul> </div> <div class="row-item"> <h2> <a href="https://kdx.kr/service/platform">서비스</a> </h2> <ul class="sitemap-list"> <li><a href="https://kdx.kr/service/platform">플랫폼 서비스</a></li> <li><a href="https://kdx.kr/mk/oldnews/main">매경늬우스</a></li> </ul> </div> <div class="row-item"> <h2> <a href="https://kdx.kr/community">커뮤니티</a> </h2> <ul class="sitemap-list"> <li><a href="https://kdx.kr/introduce">KDX 소개</a></li> <li><a href="https://kdx.kr/knews/list">KDX 소식</a></li> <li><a href="https://kdx.kr/news/list">데이터루</a></li> <li><a href="https://kdx.kr/story/list">데이터 스토리</a></li> <li><a href="https://kdx.kr/faq">자주 묻는 질문</a></li> <!-- <li><a href="#">문의하기</a></li> --> </ul> </div> <div class="row-item"> <h2> <a href="https://kdx.kr/seller/main">기업회원 알아보기</a> </h2> <ul class="sitemap-list"> </ul> </div> </div> <div class="register" style="margin-top: 5.6rem; min-width: 20rem;"> <h2>KDX 일반회원 가입</h2> <div class="btn btn-primary-m btn-rad-4"><a href="https://kdx.kr/register/type"><span>회원가입</span></a></div> </div> <div class="news"> <h2>KDX 뉴스레터 데이터루</h2> <div class="btn btn-primary-m btn-rad-4"><a href="https://page.stibee.com/subscriptions/113000"><span>무료 구독하기</span></a></div> </div> </div> </section> <!-- </div> --> <script> $(function(){ $(".sitemap a").off("click").on("click", function(e){ var mobile = isMobile(); if(mobile && $(this).data("mobile") == "N"){ e.preventDefault(); alert("모바일에서는 접근할 수 없는 페이지입니다."); return; } }); }); // 서버 점검용 알럿 함수 function serverChk(){ var today = new Date(); var month = today.getMonth(); var date = today.getDate(); var hour = today.getHours(); if (month >= 11){ if (date == 1){ if(hour >= 18){ $(".server").removeAttr("href"); alert("\nKDX-AIVA는 현재 점검 중입니다.\n서비스 이용에 불편을 드려 죄송합니다.\n\n• 작업 기간 : 2023년 12월 1일(금) 18:00 ~ 12월 4일(월) 오전 예정"); } }else{ $(".server").removeAttr("href"); alert("\nKDX-AIVA는 현재 점검 중입니다.\n서비스 이용에 불편을 드려 죄송합니다.\n\n• 작업 기간 : 2023년 12월 1일(금) 18:00 ~ 12월 4일(월) 오전 예정"); } } }; </script> </div> <!-- footer --> <footer class="footer"> <div class="container"> <div class="footer-menu"> <div class="footer-logo">(주)케이디엑스<br/>한국데이터거래소</div> <ul class="footer-menu-list"> <li><a href="https://kdx.kr/terms?type=user">가입회원 이용약관</a></li> <li class="selected"><a href="https://kdx.kr/terms?type=personal">개인정보 처리방침</a></li> <li><a href="https://kdx.kr/register/type">회원가입 안내</a></li> <li><a href="https://kdx.kr/seller/register/type">기업회원 안내</a></li> </ul> </div> <p class="footer-desc"> <span>(주)케이디엑스한국데이터거래소는 통신판매중개자이며 통신판매의 당사자가 아닙니다. <br /> 따라서 (주)케이디엑스한국데이터거래소는 상품·거래정보 및 거래에 대하여 책임을 지지 않습니다.</span> </p> <div class="footer-info"> <p> <span>대표자: 장용수</span> <span>사업자번호: 469-87-01591</span> <span>통신판매업신고: 제 2019-서울중구-2344호</span> </p> <p> <span>인터넷신문등록번호: 서울 아53147</span> <span>등록연월일: 2020. 6. 25</span> <span>제호: 데이터루</span> <span>발행인/편집인: 장용수</span> <span>발행일: 2021. 4. 6</span> </p> <p> <span>주소: 서울특별시 중구 충무로 2, 4층(필동 1가, 매일경제신문사빌딩)</span> <span>대표 전화 : 02-2000-5936</span> <span>대표 이메일: webmaster@kdx.kr</span> </p> </div> <div class="footer-bottom "> <p class="footer_copy"> Copyright (주)케이디엑스한국데이터거래소 All rights reserved. 무단 전재, 재배포 및 AI학습 이용 금지 </p> <ul class="sns-list hide"> <li class="sns-kakao"> <a href="https://pf.kakao.com/_HMIxlxb" target="_blank"> <span class="blind">KDX한국데이터거래소 카카오톡채널</span> </a> </li> <li class="sns-inst"> <a href="https://www.instagram.com/kdx.kr/?hl=ko" target="_blank"> <span class="blind">KDX한국데이터거래소 인스타그램</span> </a> </li> <li class="sns-facebook"> <a href="https://www.facebook.com/KDXDATA/" target="_blank"> <span class="blind">KDX한국데이터거래소 페이스북</span> </a> </li> <li class="sns-blog"> <a href="https://blog.naver.com/kdxgroups" target="_blank"> <span class="blind">한국데이터거래소 블로그</span> </a> </li> </ul> </div> </div> </footer> <script> $(document).on('click','.sessionclr',function(){ sessionStorage.clear(); }); $(document).on('click','.sitemap',function(){ sessionStorage.clear(); }); </script> <!-- <div id="sitemap" class="sitemap"> --> <!-- </div> --> <script src="https://kdx.kr/js/common.js"></script> <script> $(document).on("sessionLoad", function() { var that = datasetList; datasetList.init(); }) // $(function(){ // var that = datasetList; // datasetList.init(); // }); const datasetList = { // data start data : { }, // data end pt : $("#datasetList"), userId : "", init : function() { const that = this; // console.log (typeof(userInfo)); if(typeof userInfo == "undefined"){ alert("로그인 후 이용 가능합니다."); mvLogin(); return; } var mobile = isMobile(); if(mobile){ alert("모바일에서는 접근할 수 없는 페이지입니다."); location.href = baseUrl + "main"; } that.computed.getDatasetList(null,"datasetList"); that.bind.sideEvtCollision(); }, // init end bind : { evtOnceInit : function(){ this.collision(); }, collision : function(player,canvas) { }, //collision end // DOM Event start sideEvtCollision : function(evt) { var that = datasetList; that.pt.find(".btn-upload-dataset").off("click").on("click", function(){ location.href = baseUrl + "labeller/upload"; }); $(".prev_page").off("click").on("click",function(){ var checked_length = that.pt.find(".user_table").find(".checked").length; if(checked_length > 0) { var confirm = window.confirm("페이지 이동시 체크된 데이터셋은 모두 해제됩니다.\n페이지 이동을 하시겠습니까?"); if(confirm == false) { return ; } } var page_num = $(".current_page a").attr("tabindex")*1-2; that.computed.getDatasetList(null,"datasetList",page_num); }); $(".next_page").off("click").on("click",function(){ var checked_length = that.pt.find(".user_table").find(".checked").length; if(checked_length > 0) { var confirm = window.confirm("페이지 이동시 체크된 데이터셋은 모두 해제됩니다.\n페이지 이동을 하시겠습니까?"); if(confirm == false) { return ; } } var page_num = $(".current_page a").attr("tabindex")*1; that.computed.getDatasetList(null,"datasetList",page_num); }); $("#first_page").off("click").on("click",function(){ var checked_length = that.pt.find(".user_table").find(".checked").length; if(checked_length > 0) { var confirm = window.confirm("페이지 이동시 체크된 데이터셋은 모두 해제됩니다.\n페이지 이동을 하시겠습니까?"); if(confirm == false) { return ; } } var page_num = $(".current_page a").attr("tabindex", 1); that.computed.getDatasetList(null,"datasetList",page_num); }); $("#last_page").off("click").on("click",function(){ var checked_length = that.pt.find(".user_table").find(".checked").length; if(checked_length > 0) { var confirm = window.confirm("페이지 이동시 체크된 데이터셋은 모두 해제됩니다.\n페이지 이동을 하시겠습니까?"); if(confirm == false) { return ; } } /* var last_page = $("#last_page").attr("tabindex") * 1; */ /* console.log("last_page : " + last_page); */ var page_num = ($("#last_page").attr("tabindex") - 1) * 1; that.computed.getDatasetList(null,"datasetList",page_num); }); $(".current_page").off("click").on("click",function(){ var checked_length = that.pt.find(".user_table").find(".checked").length; if(checked_length > 0) { var confirm = window.confirm("페이지 이동시 체크된 데이터셋은 모두 해제됩니다.\n페이지 이동을 하시겠습니까?"); if(confirm == false) { return ; } } var val = $(this).text(); /* console.log("this : " + val); */ $(".current_page a").attr("tabindex",parseInt(val) - 1); var page_num = $(".current_page a").attr("tabindex") * 1; that.computed.getDatasetList(null,"datasetList",page_num); }); that.pt.find(".table_checkbox_all").off("click").on("click", function(e){ $(this).toggleClass("checked"); if($(this).hasClass("checked")) { that.pt.find(".table_checkbox").addClass("checked"); }else { that.pt.find(".table_checkbox").removeClass("checked"); } return false; }); that.pt.find(".table_checkbox").off("click").on("click", function(){ $(this).toggleClass("checked"); var totalLen = that.pt.find(".table_checkbox").length; var checkedLen = that.pt.find(".table_checkbox.checked").length; if(totalLen === checkedLen) that.pt.find(".table_checkbox_all").addClass("checked"); else that.pt.find(".table_checkbox_all").removeClass("checked"); return false; }); // 데이터셋 목록 각 행 클릭 시 저작도구 페이지로 이동 that.pt.find("#user_table tbody tr td:nth-child(n+1):nth-child(-n+6)").off("click").on("click",function(){ if($(this).parent().data("id")){ var dataset_id = $(this).parent().data("id"); location.href = baseUrl + "labeller/videoBBox?dataset_id=" + dataset_id; } }); // jh.sa 201118 // 데이터셋 목록 각 행의 목록 버튼 클릭 시 데이터셋 상세정보 페이지로 이동 that.pt.find("#user_table tbody tr .btn_datalist").off("click").on("click",function(){ var dataset_id = $(this).parent().parent().data("id"); location.href = baseUrl + "labeller/dataList?dataset_id=" + dataset_id; }); // 데이터셋 목록 각 행의 추출 버튼 클릭 시 데이터 추출 that.pt.find("#user_table tbody tr .btn_extract").off("click").on("click",function(){ var dataset_id = $(this).parent().parent().data("id"); // 메타 데이터가 없는 경우를 걸러내기 위한 함수 호출 that.computed.getMetaCountByData(dataset_id); // setTimeout(function(){ // location.href = baseUrl + "xlabeller/exportMetaAll?dataset_id=" + dataset_id; // },3000) // location.href = baseUrl + "xlabeller/exportMetaAll?dataset_id=" + dataset_id; }); // 업로드 상태 갱신 버튼 that.pt.find(".btn_upload_refresh").off("click").on("click", function(){ location.reload(); }); // 데이터셋 업로드 버튼 that.pt.find(".btn_upload").off("click").on("click", function(){ if(that.dataset_cnt >= 5){ alert("데이터셋은 최대 5개까지 생성할 수 있습니다."); return false; } location.href = baseUrl + "labeller/upload"; }); // 데이터셋 삭제 버튼(각 행에 추가될 예정) that.pt.find(".btn_delete").off("click").on("click", function(){ var dataset_id = $(this).parent().parent().data("id"); var confirm_state = confirm("데이터셋을 삭제하면 복구할 수 없습니다.\n정말 삭제하시겠습니까?"); if(confirm_state) { that.computed.deleteDatasetByDatasetId(dataset_id); } else { return false; } }); that.pt.find(".btn-contact").off("click").on("click", function(){ location.href = baseUrl + "qna/list"; }); },// DOM Event end },// bind end // computed start computed : { root : null, getDatasetList : function(data,id,page){ var that = datasetList; var title = that.pt.find("#search_title").val(); //console.log("title : " + title); var data = {page_num : page, title : title}; $.ajax({ url : baseUrl + "xlabeller/getDatasetList.json", data : data, type : "POST", traditional : true, success : function(res){ console.log("====getDatasetList====",res); // if(that.userLevel == undefined || that.userLevel == '2') { // alert("접근 권한이 없습니다."); // location.href = baseUrl + "login"; // return false; // } if(res.result.code == "3301" || res.result.code == "3302"){ alert("로그인 후 이용 가능합니다."); location.href = baseUrl + "login"; return false; } if(res.result.code == "4051") { alert(res.result.data); history.back(); } if(res.result.code == "200") { that.dataset_cnt = res.result.data.length; that.render.renderDatasetList(res.result.data,id,res.xlabellerDatasetVO); that.bind.sideEvtCollision(); } }, error : function(err){ console.log("ERROR!",err); alert(err); } }); }, getMetaCountByData : function(dataset_id){ var that = datasetList; var ajaxData = {page_num : 0, dataset_id : dataset_id}; $.ajax({ url : baseUrl + "xlabeller/getDataList.json", data : ajaxData, type : "POST", traditional : true, success : function(res){ console.log("====getDataList====",res); if(res.result.code == "3301" || res.result.code == "3302"){ alert("로그인 후 이용 가능합니다."); location.href = baseUrl + "login"; return false; } if(res.result.code == "4051") { alert(res.result.data); history.back(); } if(res.result.code == "200") { var result = res.result.data; var cnt = new Number; for(var i=0; i<result.length; i++){ cnt += result[i].meta_cnt*1 } if(cnt == 0){ alert("해당 데이터셋에 라벨데이터가 존재하지 않습니다.\n저작도구에서 라벨을 추가한 후 다시 시도해주세요."); return false; } else { location.href = baseUrl + "xlabeller/exportMetaAll?dataset_id=" + dataset_id; } } }, error : function(err){ console.log("ERROR!",err); alert(err); } }); }, deleteDatasetByDatasetId : function(dataset_id){ var that = datasetList; //console.log("ajaxData::", ajaxData); /* var data = {page_num : page}; */ /* labellerShowLoading("#wrapper"); */ var ajaxData = {dataset_id : dataset_id}; $.ajax({ url : baseUrl + "data/deleteDatasetByDatasetId.json", data : ajaxData, type : "POST", traditional : true, success : function(res){ //console.log("SUCCESS!",res); /* hideLoading("#wrapper"); */ if(that.userLevel != "1" ) { alert("접근 권한이 없습니다."); location.href = baseUrl + "login"; return false; } if(res.result.code == "3301" || res.result.code == "3302"){ alert("로그인 후 이용 가능합니다."); location.href = baseUrl + "login"; return false; } if(res.result.code == "3404") { alert(res.result.data); return false; } if(res.result.code == "200") { alert(res.result.data); location.reload(); return false; } }, error : function(err){ console.log("ERROR!",err); alert(err); } }); } }, // computed end // draw something start render : { renderDatasetList : function(data,id, page){ var that = datasetList; that.pt.find(".table_checkbox_all").removeClass("checked"); var html = ''; var login_userId = that.userId; if(data.length == 0){ html = "<tr><td colspan='8'>데이터셋을 추가해주세요.</td></tr>"; $("#user_table tbody").empty(); $("#user_table tbody").append(html); return false; } for(var i=0; i<data.length; i++){ var account = data[i]['account']; if(account == (undefined || "" || "undefined")) { account = '-'; } var title = data[i]['title'] ,titleEl = title.substr(0, 20) + "..."; var contents = data[i]['contents'] ,ctntEl = contents.substr(0, 20) + "..."; html += '<tr data-id='+data[i]['dataset_id']+' >'; /* var created_date = new Date(data[i]['created_date']); */ // html += '<td class="table_checkbox"></td>'; // html += '<td class="title">' + title + '</td>'; if(getTextWidth(title) > 300 ){ html += '<td class="title" title="'+title+'">'+titleEl+'</div>'; } else { html += '<td class="title">'+title+'</div>'; } if(getTextWidth(contents) > 300 ){ html += '<td class="description" title="'+contents+'">'+ctntEl+'</div>'; } else { html += '<td class="description">'+contents+'</div>'; } // html += '<td class="description">' + contents + '</td>'; // if(login_userId == data[i]['user_id']) { // html += '<td class="user_id">-</td>'; // account = '-'; // } else { // html += '<td class="user_id">' + Number(data[i]['user_id']) + '</td>'; // } var media_type = data[i]["media_type"]; if(media_type == "VIDEO") { media_type = "비디오"; } else if(media_type == "IMAGE") { media_type = "이미지"; } else { media_type = "-"; } var label_type = data[i]["label_type"]; if(label_type == "VIDEO_BBOX" || label_type == "IMAGE_BBOX") { label_type = "바운딩 박스"; } else if(label_type == "IMAGE_SEGMENTATION") { label_type = "세그멘테이션"; } else { label_type = "-"; } // html += '<td class="account">' + account + '</td>'; html += '<td class="media_type">' + media_type + '</td>'; html += '<td class="label_type">' + label_type + '</td>'; html += '<td class="created_date">' + moment(data[i]['created_date']).format("YYYY-MM-DD") + '</td>'; if(data[i]['status'] == "0") { html += '<td class="upload_status">숨김</td>'; } if(data[i]['status'] == "1") { html += '<td class="upload_status">완료</td>'; } if(data[i]['status'] == "2") { html += '<td class="upload_status">대기</td>'; } if(data[i]['status'] == "3") { html += '<td class="upload_status">진행중</td>'; } if(data[i]['status'] == "4") { html += '<td class="upload_status">오류</td>'; } // html += '<td class="data_count">'+data[i]['data_cnt']+'</td>'; // html += '<td class="link"><div class="btn_link">데이터셋 분석</div></td>'; // html += '<td class="log"><div class="btn_log">로그확인</div></td>'; html += '<td class="data_list"><a href="'+baseUrl+'labeller/dataList?dataset_id=' + data[i]['dataset_id'] + '"><div class="btn btn-line-s btn_datalist">목록</div></a></td>'; // html += '<td class="delete"><div class="btn_delete">삭제</div></td>'; html += '<td class="extract"><div class="btn btn-line-s btn_extract">추출</div></td>'; html += '</tr>'; } /* that.pt.find("#user_table tbody").empty(); that.pt.find("#user_table tbody").append(html); */ $("#user_table tbody").empty(); $("#user_table tbody").append(html); $(".ui-helper-hidden-accessible").remove(); $(document).tooltip({ show: { effect: "blind", duration: 100 }, hide: { effect: "blind", duration: 100 }, close: function(e){ $(".ui-helper-hidden-accessible").remove(); } }); function getTextWidth(str){ var f = '16px NotoSans', o = $('<div></div>').text(str) .css({'position': 'absolute', 'float': 'left', 'white-space': 'nowrap', 'visibility': 'hidden', 'font': f}) .appendTo($('body')), w = o.width(); o.remove(); return w; } // // var totalPage = page.total_size; // var pageNum = page.page_num; // var pageSize = page.page_size; // var totalPage = Math.ceil(Number(totalPage)/Number(pageSize)); // /*var currPage = Number(pageNum)/Number(pageSize)+1; */ /* console.log("pageNum : " + pageNum); console.log("pageSize : " + pageSize); console.log("totalPage : " + totalPage); */ // // var pageCount = 5; // var currPage = Number(pageNum)/Number(pageSize)+1; // var block = Math.ceil(currPage / pageCount); // var startPage = (block - 1) * pageCount + 1; // var endPage = startPage + pageCount -1; // var html_1 = ''; // html_1 += ' <ul class="pagination justify-content-center">'; // if(currPage == 1) { // html_1 += ' <li class="page-item disabled">'; // } else { // html_1 += ' <li class="page-item ">'; // } // html_1 += ' <a class="page-link" id="first_page" aria-disabled="true"><<</a>'; // html_1 += ' </li>'; // if(currPage == 1){ // html_1 += ' <li class="page-item disabled">'; // }else{ // html_1 += ' <li class="page-item ">'; // } // html_1 += ' <a class="page-link prev_page" tabindex="-1" aria-disabled="true"><</a>'; // html_1 += ' </li>'; // for(var j = startPage; j <= endPage; j++) { // html_1 += ' <li class="page-item current_page disabled" style = "cursor : pointer;">'; // if(currPage == j) { // html_1 += '<a class="page-link paging_highlight" href="#" tabindex="'+currPage+'" aria-disabled="true">'+j+'</a>'; // } else { // html_1 += ' <a class="page-link " href="#" tabindex="'+currPage+'" aria-disabled="true">'+j+'</a>'; // } // html_1 += ' </li>'; // if(totalPage == 0) { // currPage = 0; // break; // } // if(j == totalPage) { // break; // } // } // if(currPage == totalPage){ // html_1 += ' <li class="page-item disabled">'; // }else{ // html_1 += ' <li class="page-item">'; // } // html_1 += ' <a class="page-link next_page" >></a>'; // html_1 += ' </li>'; // if(currPage == totalPage) { // html_1 += ' <li class="page-item disabled">'; // } else { // html_1 += ' <li class="page-item ">'; // } // html_1 += ' <a class="page-link" id="last_page" aria-disabled="true" tabindex = "' + totalPage + '">>></a>'; // html_1 += ' </li>'; // html_1 += ' </ul>'; // $("#"+ id + " .Page").empty(); // $("#"+ id + " .Page").append(html_1); }, renderUserList : function(data) { //console.log("ininin"); var that = datasetList; $(".worker_table_wrap").css("display", "block"); var html = ''; for(var i=0; i<data.length; i++){ html += '<tr>'; html += ' <td class="id">'+data[i].user_id+'</td>'; html += ' <td class="name">'; html += ' <span>'+data[i].account+'</span>'; html += ' </td>'; /* html += ' <td class="incomplested">'+(data[i].total_clip*1-data[i].worked_clip*1)+'<span class="redividing">재배분</span></td>'; */ html += '</tr>'; } /* that.pt.find(".section_user .table_body .user_table ").empty(); */ var target = $("#divide .modal-body .worker_table_wrap .worker_table tbody"); target.empty() target.append(html); target.find("tr").off("click").on("click",function(){ var selected = $(this).hasClass("highlight"); $(".worker_table tr").removeClass("highlight"); if(!selected) { $(this).addClass("highlight"); } }); } }// draw something end } </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10