{"version":3,"file":"js/app.843314ec.js","mappings":"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","sources":["webpack://xigeistclient/./src/App.vue","webpack://xigeistclient/./src/App.vue?7ccd","webpack://xigeistclient/./src/views/MainPage.vue","webpack://xigeistclient/./src/components/LogIn.vue","webpack://xigeistclient/./src/components/LogIn.vue?b9f7","webpack://xigeistclient/./src/components/essential/headerTemplate_w.vue","webpack://xigeistclient/./src/components/essential/headerTemplate_w.vue?566b","webpack://xigeistclient/./src/views/MainPage.vue?5494","webpack://xigeistclient/./src/components/PageSection2.vue","webpack://xigeistclient/./src/components/essential/headerTemplate.vue","webpack://xigeistclient/./src/components/essential/headerTemplate.vue?67f6","webpack://xigeistclient/./src/components/PageSection2.vue?b26e","webpack://xigeistclient/./src/components/ViewerPage.vue","webpack://xigeistclient/./src/components/ThreeViewer.vue","webpack://xigeistclient/./src/script/ThreeView.js","webpack://xigeistclient/./src/script/ThreeAnim.js","webpack://xigeistclient/./src/components/ThreeViewer.vue?c5cb","webpack://xigeistclient/./src/components/ViewerPage.vue?e78f","webpack://xigeistclient/./src/components/ErrorPage.vue","webpack://xigeistclient/./src/components/ErrorPage.vue?41fd","webpack://xigeistclient/./src/components/LoginNCallback.vue","webpack://xigeistclient/./src/components/LoginNCallback.vue?cc8d","webpack://xigeistclient/./src/router/index.js","webpack://xigeistclient/./src/script/global.js","webpack://xigeistclient/./src/main.js","webpack://xigeistclient/webpack/bootstrap","webpack://xigeistclient/webpack/runtime/chunk loaded","webpack://xigeistclient/webpack/runtime/compat get default export","webpack://xigeistclient/webpack/runtime/define property getters","webpack://xigeistclient/webpack/runtime/global","webpack://xigeistclient/webpack/runtime/hasOwnProperty shorthand","webpack://xigeistclient/webpack/runtime/publicPath","webpack://xigeistclient/webpack/runtime/jsonp chunk loading","webpack://xigeistclient/webpack/startup"],"sourcesContent":["<template>\r\n <div>\r\n <div id=\"nav\">\r\n <router-link to=\"/\"></router-link>\r\n </div>\r\n <router-view />\r\n </div>\r\n</template>\r\n\r\n<style>\r\n@font-face {\r\n font-family: \"Pretendard\";\r\n src: url(\"../src/assets/fonts/Pretendard-Regular.ttf\");\r\n font-weight: 400;\r\n}\r\n\r\nbody {\r\n margin: 0px;\r\n}\r\n</style>\r\n","import { render } from \"./App.vue?vue&type=template&id=50bf3b5c\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=50bf3b5c&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <div id=\"Home_Main\">\r\n <div id=\"Header\" class=\"grid\" v-if=\"active\">\r\n <div class=\"h-title\">\r\n <!-- <img src=\"../assets/images/Logo_w.png\" @click=\"onClickRedirect()\" /> -->\r\n <!--- ë¡œê·¸ì¸ íŽ˜ì´ì§€ ê°–ê³ ì˜¤ê¸° --->\r\n <Header />\r\n </div>\r\n </div>\r\n\r\n <div class=\"Section_Div\">\r\n <!-- 최ìƒë‹¨ Section START -->\r\n <div class=\"S1\">\r\n <video loop=\"loop\" muted=\"muted\" autoplay=\"autoplay\" playsinline>\r\n <source src=\"../assets/medias/mainMedia.mp4\" type=\"video/mp4\" />\r\n </video>\r\n\r\n <div class=\"S1_Tit\">\r\n <h2>ìžì´ê°€ì´ìŠ¤íŠ¸ì™€ 함께<br />ë‹¹ì‹ ì˜ ì§‘ì„ ë§Œë“¤ì–´ 볼까요?</h2>\r\n <div class=\"bar\"></div>\r\n\r\n <div class=\"S1_Routers\">\r\n <router-link to=\"/section/type2\">\r\n <div class=\"Room_Router\">START</div>\r\n </router-link>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- 최ìƒë‹¨ Section END -->\r\n </div>\r\n <LogIn @childEvent=\"getToken\" @childEvent2=\"LoginChild2\" v-if=\"showEditPopup\" />\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n@import \"../assets/css/MainPage.css\";\r\n\r\n.container {\r\n position: absolute;\r\n display: flex;\r\n}\r\n\r\nbutton {\r\n width: auto;\r\n}\r\n\r\n.headerW_Container,\r\n.headerW_Container::after {\r\n box-shadow: none;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport Paginate from \"vuejs-paginate-next\";\r\nimport $ from \"jquery\";\r\nimport LogIn from \"../components/LogIn.vue\";\r\nimport Cookies from 'js-cookie';\r\nimport axios from 'axios';\r\nimport Header from '../components/essential/headerTemplate_w.vue'\r\n\r\nexport default {\r\n metaInfo: {\r\n title: \"Xigeist Home Configurator\",\r\n titleTemplate: \"MainPage\",\r\n htmlAttrs: {\r\n lang: \"ko\",\r\n amp: true,\r\n },\r\n },\r\n\r\n name: \"component.vue\",\r\n name: \"jQueryApp\",\r\n\r\n components: {\r\n paginate: Paginate,\r\n LogIn,\r\n Header\r\n },\r\n data() {\r\n return {\r\n scrollPosition: 0,\r\n openType: false,\r\n showMd: true,\r\n showRF: false,\r\n showEx: false,\r\n showR: true,\r\n showS: true,\r\n active: true,\r\n typeName: \"\",\r\n showMyPage: false,\r\n userIdx: \"\",\r\n userName: \"\",\r\n showEditPopup: false\r\n };\r\n },\r\n async created() {\r\n await this.getToken();\r\n },\r\n methods: {\r\n scroll() {\r\n if (window.scrollY > this.$refs.scrollTest.offsetTop) {\r\n this.deactive = true;\r\n } else {\r\n this.deactive = true;\r\n }\r\n },\r\n\r\n updateScroll() {\r\n this.scrollPosition = window.scrollY;\r\n },\r\n\r\n Select: function (event) {\r\n const targetId = event.currentTarget.id;\r\n window.scrollTo(0, 940);\r\n },\r\n\r\n SelectH: function (event) {\r\n const targetId = event.currentTarget.id;\r\n window.scrollTo(0, 940);\r\n },\r\n\r\n Select2: function (event) {\r\n const targetId = event.currentTarget.id;\r\n window.scrollTo(0, 1880);\r\n },\r\n\r\n onClickRedirect: function () {\r\n window.open(\"https://www.xigeist.com\", \"_blank\");\r\n },\r\n onClickRedirect2: function () {\r\n window.open(\"http://xigeist.bimpeers.com/\", \"_blank\");\r\n },\r\n\r\n showType: function (typeName) {\r\n this.openType = !this.openType;\r\n this.typeName = typeName;\r\n },\r\n\r\n openRF: function () {\r\n this.showRF = !this.showRF;\r\n },\r\n openEx: function () {\r\n this.showEx = !this.showEx;\r\n },\r\n clickMyPage() {\r\n //this.showMyPage = !this.showMyPage;\r\n if (this.userName != '') {\r\n this.showMyPage = !this.showMyPage;\r\n } else {\r\n //window.location.href = this.$TARGETURL + \"member/login\";\r\n this.showEditPopup = true;\r\n }\r\n\r\n },\r\n async getToken() {\r\n const cookie = Cookies.get('token');\r\n console.log(\"ì¿ í‚¤ : \" + cookie);\r\n let data = {\r\n token: cookie == undefined ? '' : cookie\r\n }\r\n const res = await axios.post(\"/server/token_check\", JSON.stringify(data), {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n if (data.token == '') { //í† í° ìžì²´ê°€ 없으면 ê± ë¡œê·¸ì¸ ì•ˆëœê±°\r\n\r\n }\r\n else if (res.data._data[\"length\"] == 0) { // í† í°ì´ 변경ë으면\r\n alert(\"다른 ê³„ì • 로그ì¸ìœ¼ë¡œ ì¸í•´ 로그아웃ë©ë‹ˆë‹¤.\");\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n this.userIdx = '';\r\n this.userName = '';\r\n this.showMyPage = false; //마ì´íŽ˜ì´ì§€ ë‹«ìŒ\r\n window.location.reload();\r\n }\r\n else if (res.status == 200) {\r\n this.userIdx = res.data._data[0][\"idx\"];\r\n this.userName = res.data._data[0][\"NAME\"];\r\n //this.showMyPage=true;\r\n }\r\n },\r\n logout() {\r\n alert(\"로그아웃 합니다\");\r\n if (this.userCode == 1) {\r\n console.log(\"카카오로그아웃\");\r\n this.kakaoLogout();\r\n }\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n this.userIdx = '';\r\n this.userName = '';\r\n this.showMyPage = false;\r\n window.location.reload();\r\n },\r\n LoginChild2() {\r\n this.showEditPopup = false;\r\n },\r\n kakaoLogout() {\r\n window.Kakao.API.request({\r\n url: '/v1/user/unlink',\r\n success: function (response) {\r\n console.log(response);\r\n document.cookie = \"token=\" + \"\";\r\n //alert(\"로그아웃 ë˜ì—ˆì–´ìš©\");\r\n },\r\n fail: function (error) {\r\n console.log(error);\r\n },\r\n });\r\n },\r\n\r\n },\r\n mounted() {\r\n window.scrollTo(0, 0);\r\n document.addEventListener(\"scroll\", this.scrollEvents);\r\n document.addEventListener(\"scroll\", this.scroll);\r\n document.title = 'Home Self-Design System | XiGEIST'\r\n\r\n $(function () {\r\n // 스í¬ë¡¤ ì‹œ header fade-in\r\n $(document).on(\"scroll\", function () {\r\n if ($(window).scrollTop() > 940) {\r\n $(\"#Header\").removeClass(\"active\");\r\n $(\"#Header\").addClass(\"deactive\");\r\n } else {\r\n $(\"#Header\").removeClass(\"deactive\");\r\n $(\"#Header \").addClass(\"active\");\r\n }\r\n });\r\n });\r\n },\r\n};\r\n</script>\r\n","<template>\r\n <div id=\"LogIn_Wrapper\" v-if=\"isVisible\">\r\n <div class=\"LogIn_Body\">\r\n <button class=\"closeEditPop\" @click=\"closeEditPop\">X</button>\r\n <div class=\"LogIn_Wrapper\">\r\n <div>\r\n <h1>로그ì¸</h1>\r\n <p>ìžì´ê°€ì´ìŠ¤íŠ¸ì— ì˜¤ì‹ ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤.<br>\r\n 로그ì¸ì„ 하시면 보다 ë‚˜ì€ ì„œë¹„ìŠ¤ë¥¼ 만나보실 수 있습니다.</p>\r\n </div>\r\n\r\n <div class=\"LogIn_Form\">\r\n <form v-on:submit.prevent>\r\n <input type=\"text\" name=\"userid\" class=\"text-field\" placeholder=\"ì´ë©”ì¼ ìž…ë ¥\" v-model=\"email\">\r\n <input type=\"password\" name=\"password\" class=\"text-field\" placeholder=\"비밀번호 ìž…ë ¥\" v-model=\"password\">\r\n <label for=\"keepLogin\" class=\"keepLoginBtn\">\r\n <input type=\"checkbox\" id=\"keepLogin\" name=\"keepLogin\" class=\"checkmarkLogin\"\r\n @change=\"keepLogin\">\r\n <div>ë¡œê·¸ì¸ ìƒíƒœ ìœ ì§€</div>\r\n </label>\r\n <button value=\"로그ì¸\" @click=\"postData\" class=\"submit-btn\">로그ì¸</button>\r\n </form>\r\n\r\n <div class=\"Register_Div\">\r\n <a :href= \"this.$TARGETURL + 'member/joinStep1'\" class=\"register\">회ì›ê°€ìž…</a>\r\n <div class=\"IDPW_Div\">\r\n <a :href=\"this.$TARGETURL + 'member/findemail'\" class=\"findID\">ì•„ì´ë”” 찾기</a>\r\n <a :href=\"this.$TARGETURL + 'member/changePW1'\" class=\"findPW\">비밀번호 변경</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"SNS_Div\">\r\n <h4>SNSê³„ì • 간편 로그ì¸</h4>\r\n <span class=\"KakaoBtn\" @click=\"kakaoJoin\">\r\n <img src=\"../assets/images/icons/button_kakao.png\" alt=\"\">\r\n 카카오로 로그ì¸í•˜ê¸°\r\n </span>\r\n\r\n <div id=\"naver_id_login\" style=\"display: none;\"></div>\r\n <span id=\"naverLogin\">\r\n <img src=\"../assets/images/icons/naver.png\" alt=\"\">\r\n 네ì´ë²„ë¡œ 로그ì¸í•˜ê¸°\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n@import url(\"../assets/css/LogIn.css\");\r\n</style>\r\n\r\n<script>\r\nimport axios from 'axios';\r\nimport CryptoJS from \"crypto-js\";\r\nimport Cookies from 'js-cookie';\r\n\r\n//ìžì´viewer 테스트\r\n//const client_id = \"2yeVLd8BZjNmctM5lt2H\";\r\nconst client_id = \"TDQ3VSyu9CPGHbOkbGUe\";\r\n\r\nexport default {\r\n data() {\r\n return {\r\n users: [],\r\n email: \"\",\r\n password: \"\",\r\n image: \"\",\r\n selectedFile: \"\",\r\n naverLogin: null,\r\n account_email: \"\",\r\n name: \"\",\r\n birth: \"\",\r\n phone: \"\",\r\n gender: \"\",\r\n nickname: \"\",\r\n updatedate: \"\",\r\n key: \"\",\r\n m: \"\",\r\n EncodeData: \"\",\r\n code: \"\",\r\n isSocial: \"\",\r\n address: \"\",\r\n path: \"\",\r\n interest: \"\",\r\n hashPw: \"\",\r\n isKeepLoin: false,\r\n isVisible : true\r\n }\r\n },\r\n mounted() {\r\n this.naverLogin = new window.naver_id_login(\r\n client_id,\r\n this.$TARGETURL2 + \"callback\", // 개발ìžì„¼í„°ì—ì„œ 등ë¡í•œ Callback URL\r\n //\"http://localhost:8081/callback\"\r\n\r\n );\r\n var state = this.naverLogin.getUniqState();\r\n //this.naverLogin.setButton(\"white\", 2, 62); // ë²„íŠ¼ì„¤ì •\r\n this.naverLogin.setDomain(this.$TARGETURL2);\r\n this.naverLogin.setState(state);\r\n this.naverLogin.setPopup(); // íŒì—… 여부\r\n this.naverLogin.init_naver_id_login();\r\n\r\n $(document).on(\"click\", \"#naverLogin\", function () {\r\n var btnNaverLogin = document.getElementById(\"naver_id_login\").firstChild;\r\n btnNaverLogin.click();\r\n })\r\n },\r\n methods: {\r\n keepLogin() {\r\n var aaa = document.getElementById(\"keepLogin\");\r\n if (aaa.checked) {\r\n //alert(\"ì²´í¬\");\r\n this.isKeepLoin = true;\r\n }\r\n else {\r\n //alert(\"안체í¬\");\r\n this.isKeepLoin = false;\r\n }\r\n },\r\n //카카오 회ì›ê°€ìž…\r\n kakaoJoin() {\r\n //window.Kakao.init(\"50721e897a5869296e050475ab6dd3ea\");\r\n\r\n window.Kakao.Auth.login({\r\n scope: \"profile_image, account_email, profile_nickname, name, gender, age_range, birthday, birthyear, phone_number\",\r\n success: this.getKakaoAccount,\r\n });\r\n },\r\n async getKakaoAccount() {\r\n console.log(\"1\");\r\n window.Kakao.API.request({\r\n url: \"/v2/user/me\",\r\n success: async (res) => {\r\n const kakao_account = res.kakao_account;\r\n const nickname = kakao_account.profile.nickname;\r\n const email = kakao_account.email;\r\n var birth_temp = kakao_account.birthday;\r\n const token = window.Kakao.Auth.getAccessToken();\r\n let today = new Date();\r\n let data = {\r\n key: 1,\r\n name: kakao_account.name,\r\n birthdate: kakao_account.birthyear + \"-\" + birth_temp.slice(0, 2) + \"-\" + birth_temp.slice(2),\r\n phonenumber: (\"0\" + kakao_account.phone_number.split(\" \")[1]).replace(/-/g, ''), //êµê°€ì½”ë“œ, 하ì´í”ˆ ì‚ì œ\r\n email: kakao_account.email,\r\n gender: kakao_account.gender,\r\n nickname: kakao_account.profile.nickname,\r\n code: 1, // 카카오 가입 코드 1,\r\n address: \"\",\r\n path: \"\",\r\n interest: \"\",\r\n password: \"\",\r\n token: token,\r\n updatetime: today.getFullYear() + '-' + today.getMonth() + '-' + today.getDay(),\r\n hashPw: \"\",\r\n receive_s: \"\",\r\n receive_e: \"\"\r\n }\r\n\r\n //document.cookie = \"token=\" + token;\r\n let expireDate = new Date();\r\n if(this.isKeepLoin){\r\n expireDate.setTime(expireDate.getTime() + (24 * 60 * 60 * 1000 * 365));\r\n }\r\n else {\r\n expireDate.setTime(expireDate.getTime() + (3 * 60 * 60 * 1000)); //3시간 후\r\n }\r\n Cookies.set('token', token, { expires: expireDate, domain: this.$DOMAIN, path: '/' });\r\n await axios.post(\"/server/social_check\", JSON.stringify(data), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n if (res.data._data[\"length\"] == 0) { //다 가입 안ë¼ìžˆìœ¼ë©´\r\n this.isSocial = 3;\r\n alert(\"환ì˜í•©ë‹ˆë‹¤.\");\r\n }\r\n else if (res.data._data[0][\"CODE\"] == 1) { //소셜가입ë¼ìžˆìœ¼ë©´\r\n this.isSocial = 1;\r\n alert(\"환ì˜í•©ë‹ˆë‹¤.\");\r\n }\r\n else if (res.data._data[0][\"CODE\"] == 0) { //ì¼ë°˜íšŒì› 가입ë¼ìžˆìœ¼ë©´\r\n this.isSocial = 2;\r\n alert(\"ì¼ë°˜íšŒì›ìœ¼ë¡œ ê°€ìž…ëœ ì´ë©”ì¼ìž…니다\");\r\n this.kakaoLogout();\r\n }\r\n })\r\n console.log(this.isSocial);\r\n if (this.isSocial == 3) { //소셜 가입한 ì 없으면 회ì›ê°€ìž… í…Œì´ë¸”ì—ë„ ë„£ìŒ\r\n await axios.post(\"/server/join_test\", JSON.stringify(data), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n }\r\n\r\n\r\n console.log(\"nickname\", nickname);\r\n console.log(\"email\", email);\r\n console.log(\"token\", token); \r\n\r\n if (this.isSocial != 2) {\r\n await axios.post(\"/server/login_test\", JSON.stringify(data), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n //location.href = \"https://selfdesign.xigeist.com/\"\r\n //location.href = this.$CLIENTURL;\r\n //location.href = this.TARGETURL2;\r\n this.isVisible = false;\r\n this.$emit('childEvent');\r\n })\r\n }\r\n console.log(data);\r\n\r\n },\r\n fail: (error) => {\r\n console.log(error);\r\n },\r\n });\r\n },\r\n kakaoLogout() {\r\n window.Kakao.API.request({\r\n url: '/v1/user/unlink',\r\n success: function (response) {\r\n console.log(response);\r\n document.cookie = \"token=\" + \"\";\r\n //alert(\"로그아웃 ë˜ì—ˆì–´ìš©\");\r\n },\r\n fail: function (error) {\r\n console.log(error);\r\n },\r\n });\r\n },\r\n async test() {\r\n // alert(\"ìž…ë ¥í•œ ê°’ì€ 11 입니다.\");\r\n const data = await axios.get(\"/server/login\").then((response) => {\r\n this.users = response.data;\r\n console.log(this.users);\r\n\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n },\r\n postData() {\r\n let data = {\r\n email: this.email,\r\n password: this.password,\r\n token: \"\",\r\n code: \"0\",\r\n hashPw: CryptoJS.SHA256(this.password).toString(),\r\n }\r\n //axios.post(this.$SERVERURL + \"login_test\", JSON.stringify(data), {\r\n axios.post(\"/server/login_test\", JSON.stringify(data), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then((response) => {\r\n let token = response.data;\r\n if (token != false) {\r\n //document.cookie = \"token=\" + token;\r\n let expireDate = new Date();\r\n if(this.isKeepLoin){\r\n expireDate.setTime(expireDate.getTime() + (24 * 60 * 60 * 1000 * 365));\r\n }\r\n else {\r\n expireDate.setTime(expireDate.getTime() + (3 * 60 * 60 * 1000)); //3시간 후\r\n }\r\n Cookies.set('token', token, { expires: expireDate, domain: this.$DOMAIN, path: '/' });\r\n console.log(token);\r\n alert(\"환ì˜í•©ë‹ˆë‹¤.\");\r\n this.isVisible = false;\r\n //location.href = this.$TARGETURL + \"myhome\"\r\n //location.href = \"https://selfdesign.xigeist.com/\"\r\n //location.href = this.$CLIENTURL;\r\n //location.href = this.$TARGETURL2;\r\n this.$emit('childEvent');\r\n }\r\n else {\r\n alert(\"ì•„ì´ë””, 비밀번호를 확ì¸í•˜ì„¸ìš”.\");\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n })\r\n },\r\n closeEditPop() {\r\n this.isVisible = false;\r\n this.$emit('childEvent2');\r\n }\r\n\r\n },\r\n}\r\n\r\n</script>","import { render } from \"./LogIn.vue?vue&type=template&id=4e0c2141&scoped=true\"\nimport script from \"./LogIn.vue?vue&type=script&lang=js\"\nexport * from \"./LogIn.vue?vue&type=script&lang=js\"\n\nimport \"./LogIn.vue?vue&type=style&index=0&id=4e0c2141&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4e0c2141\"]])\n\nexport default __exports__","<template>\r\n <div id=\"Header_Root\">\r\n <div class=\"hw-title\">\r\n <img src=\"../../assets/images/LogoW.png\" alt=\"\" @click=\"onClickRedirect()\">\r\n <p>Home Self-Design System</p>\r\n <!-- MaingPage ë¡œê³ ìƒ‰ 다름 -->\r\n <div class=\"MyInfo_Wrapper\" ref=\"myInfoWrapper\" @mouseleave=\"hideMyPage\">\r\n <button @click=\"clickMyPage\" type=\"button\">\r\n <img src=\"../../assets/images/icons/logIn.png\" alt=\"\" class=\"myInfoIcon\">\r\n </button>\r\n\r\n <div class=\"MyInfo_List\" v-if=\"showMyPage\" :class=\"{ 'block' : showMyPage}\">\r\n <p class=\"arrow\"></p>\r\n <ul>\r\n <li class=\"name\"><strong>{{ this.userName }}</strong> 님</li>\r\n <li>\r\n <a @click=\"navigateToPage('mypage')\" :class=\"{ 'selected': isCurrentPage('/mypage') }\" id=\"myhome\">\r\n <!-- <a :href=\"`${this.$TARGETURL}myPage`\" @click=\"navigateToPage('/mypage')\" :class=\"{ 'selected': isCurrentPage('/mypage') }\" id=\"myhome\"></a> -->\r\n 마ì´íŽ˜ì´ì§€\r\n </a>\r\n </li>\r\n <li>\r\n <a @click=\"navigateToPage('myhome')\" :class=\"{ 'selected': isCurrentPage('/myhome') }\" id=\"myhome\">\r\n ë‚´ê°€ ë§Œë“ ì£¼íƒ\r\n </a>\r\n </li>\r\n <!-- <li>\r\n <router-link to=\"/account\">\r\n 로그아웃\r\n </router-link>\r\n </li> -->\r\n <li @click=\"logout\">로그아웃</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <LogInModal @childEvent=\"getToken\" @childEvent2=\"LoginChild2\" v-if=\"IsModalPopup && !IsLogin\" />\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n#Header_Root {\r\n grid-row:1;\r\n width:100vw;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n align-self: center;\r\n justify-content: space-between;\r\n}\r\n#Header_Root .hw-title {\r\n display:flex;\r\n flex-direction: row;\r\n align-items:center;\r\n column-gap: 35px;\r\n}\r\n#Header_Root .hw-title img {\r\n height: 28px;\r\n display: flex;\r\n align-items: flex-end;\r\n justify-content: center;\r\n cursor: pointer;\r\n margin-left: 24px;\r\n}\r\n.iconContainer {\r\n margin-right:24px;\r\n}\r\n.MyInfo_Wrapper {\r\n position: absolute;\r\n top: 20px;\r\n right: 24px;\r\n float: right;\r\n z-index: 9998;\r\n cursor: pointer;\r\n height: 30px;\r\n}\r\n.M_Header .hw-title p {\r\n font-family: Pretendard,sans-serif;\r\n font-size: 1.2rem;\r\n color: #787878;\r\n font-weight: 300;\r\n letter-spacing: -.5px;\r\n cursor: pointer;\r\n margin-left:0 !important\r\n}\r\n\r\n.myInfoIcon {\r\n cursor: pointer;\r\n height: 52px !important;\r\n}\r\n.MyInfo_List {\r\n position:absolute;\r\n top: 0;\r\n right: 0;\r\n height: auto;\r\n display:none\r\n}\r\n.arrow {\r\n position:relative;\r\n content: \"\";\r\n top: 35px;\r\n right: 8px;\r\n float: right;\r\n transform: rotate(45deg);\r\n width: 20px;\r\n height: 20px;\r\n background-color: #fff;\r\n box-shadow: -3px -4px 4px -2px #ccc;\r\n z-index:9990;\r\n}\r\n\r\n.MyInfo_Wrapper ul {\r\n margin-top:60px;\r\n width: 119px;\r\n padding: 25px 12px ;\r\n background: #fff;\r\n border-radius: 5px;\r\n box-shadow: 1px 1px 3px 2px #ccc;\r\n}\r\n.MyInfo_Wrapper .name strong {\r\n font-size:1rem;\r\n}\r\n.MyInfo_Wrapper ul li,\r\n.MyInfo_Wrapper ul li a {\r\n cursor: pointer;\r\n font-size:.8rem;\r\n color:#787878;\r\n line-height:1.6rem;\r\n}\r\n.MyInfo_Wrapper ul li a:hover,\r\n.MyInfo_Wrapper ul li:hover {\r\n font-weight: bold;\r\n}\r\n\r\n.MyInfo_Wrapper ul li:first-child:hover {\r\n font-weight: initial;\r\n}\r\n.MyInfo_Wrapper ul li:first-child {\r\n cursor:initial\r\n}\r\n.MyInfo_Wrapper button:active ~ .MyInfo_List {\r\n display:block;\r\n}\r\n.MyInfo_Wrapper button ~ .MyInfo_List:hover {\r\n display: block;\r\n}\r\n.MyInfo_Wrapper button {\r\n background:0;\r\n border:0;\r\n}\r\n.block {\r\n display: block;\r\n}\r\n.selected {\r\n font-weight: bold;\r\n color:#000\r\n}\r\n</style>\r\n\r\n\r\n<script>\r\nimport Cookies from 'js-cookie';\r\nimport LogInModal from '../LogIn.vue';\r\nimport axios from 'axios';\r\n\r\n export default {\r\n components : {\r\n LogInModal\r\n },\r\n data() {\r\n return {\r\n IsModalPopup: false,\r\n token: {},\r\n userName: '',\r\n userEmail: '',\r\n userIdx: '',\r\n IsLogin: false,\r\n showMyPage:false\r\n }\r\n },\r\n async created() {\r\n await this.getToken();\r\n },\r\n methods : {\r\n async getToken() {\r\n const cookie = Cookies.get(\"token\");\r\n let data = {\r\n token: cookie == undefined ? \"\" : cookie,\r\n };\r\n //const res = await axios.post(\"http://localhost:12008/token_check\", JSON.stringify(data),{\r\n const res = await axios.post(\r\n \"/server/token_check\",\r\n JSON.stringify(data),\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n );\r\n if (data.token == \"\") {\r\n //í† í° ìžì²´ê°€ 없으면 ê± ë¡œê·¸ì¸ ì•ˆëœê±°\r\n this.IsLogin = false;\r\n } else if (res.data._data[\"length\"] == 0) {\r\n alert(\"다른 ê³„ì • 로그ì¸ìœ¼ë¡œ ì¸í•´ 로그아웃 ë©ë‹ˆë‹¤.\");\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n //this.$router.push(\"/member/login\");\r\n window.location.reload();\r\n } else if (res.status == 200) {\r\n // ë¡œê·¸ì¸ ëœê±°\r\n this.userEmail = res.data._data[0][\"USER_EMAIL\"];\r\n this.userName = res.data._data[0][\"NAME\"];\r\n this.userIdx = res.data._data[0][\"idx\"];\r\n this.IsLogin = true;\r\n }\r\n },\r\n async getFileList() {\r\n const res = await axios.post(\"/server/read_file\",\r\n `{ \"key\":\"READ\", \"user_idx\":\"${this.userIdx}\" }`,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-origin' : '*',\r\n 'Access-Control-Allow-Methods' : 'GET, POST, OPTIONS, PUT, PATCH, DELETE',\r\n 'Access-Control-Allow-Credentials' : 'true'\r\n }\r\n })\r\n if (res.status == 200) {\r\n this.fileList = [...res.data._data];\r\n console.log(this.fileList)\r\n }\r\n },\r\n logout() {\r\n alert(\"로그아웃 합니다\");\r\n if (this.userCode == 1) {\r\n console.log(\"카카오로그아웃\");\r\n this.kakaoLogout();\r\n }\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n //window.location.href = \"http://localhost:8080/member/login\"\r\n //this.$router.push('/member/login');\r\n window.location.reload();\r\n this.IsLogin = false;\r\n },\r\n saveFileToLocal(home) {\r\n localStorage.setItem('load', home.FILE_DATA);\r\n localStorage.setItem('loadIdx', home.IDX);\r\n },\r\n // clickMyPage() {\r\n // if (this.userName != '') {\r\n // this.showMyPage = !this.showMyPage;\r\n // console.log(this.showMyPage);\r\n // } else {\r\n // this.IsModalPopup = true;\r\n // this.showMyPage = true; // 로그ì¸ì´ ëœ ìƒíƒœì—ì„œ showMyPageë„ showë˜ê²Œ~..\r\n // }\r\n // },\r\n clickMyPage() {\r\n if (this.IsLogin) {\r\n this.showMyPage = !this.showMyPage;\r\n } else {\r\n this.IsModalPopup = !this.IsModalPopup;\r\n }\r\n },\r\n // showMyPageê°€ trueì¼ ë•Œ MyPage_Wrapper ì˜ì— 밖으로 마우스 놓으면 hide~...\r\n hideMyPage(event) {\r\n if (!this.$refs.myInfoWrapper.contains(event.relatedTarget)) {\r\n this.showMyPage = false;\r\n }\r\n },\r\n LoginChild2() {\r\n this.IsModalPopup = false;\r\n },\r\n navigateToPage(page) {\r\n //this.$emit('navigate', page);\r\n // this.$router.push(page).then(() => {\r\n // this.updateCheckedState();\r\n // });\r\n // window.location(\"http://localhost:8080/mypage\").then(() => {\r\n // this.updateCheckedState();\r\n // });\r\n window.location.href = this.$TARGETURL + page;\r\n },\r\n isCurrentPage(page) {\r\n return this.$route.path === page;\r\n },\r\n updateCheckedState() {\r\n const mypage = document.getElementById('mypage');\r\n const myhome = document.getElementById('myhome');\r\n\r\n if (mypage) mypage.checked = false;\r\n if (myhome) myhome.checked = false;\r\n\r\n if (this.isCurrentPage('/mypage')) {\r\n const mypage = document.getElementById('mypage');\r\n if (mypage) mypage.checked = true;\r\n } else if (this.isCurrentPage('/myhome')) {\r\n const myhome = document.getElementById('myhome');\r\n if (myhome) myhome.checked = true;\r\n }\r\n },\r\n onClickRedirect() {\r\n window.open(\"https://www.xigeist.com\", \"_blank\");\r\n }\r\n },\r\n computed: {\r\n currentRoute() {\r\n return this.$route.path;\r\n }\r\n }\r\n }\r\n</script>\r\n","import { render } from \"./headerTemplate_w.vue?vue&type=template&id=cb09a4ba&scoped=true\"\nimport script from \"./headerTemplate_w.vue?vue&type=script&lang=js\"\nexport * from \"./headerTemplate_w.vue?vue&type=script&lang=js\"\n\nimport \"./headerTemplate_w.vue?vue&type=style&index=0&id=cb09a4ba&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cb09a4ba\"]])\n\nexport default __exports__","import { render } from \"./MainPage.vue?vue&type=template&id=2cca6183&scoped=true\"\nimport script from \"./MainPage.vue?vue&type=script&lang=js\"\nexport * from \"./MainPage.vue?vue&type=script&lang=js\"\n\nimport \"./MainPage.vue?vue&type=style&index=0&id=2cca6183&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2cca6183\"]])\n\nexport default __exports__","<template>\r\n <div id=\"S2_Div\">\r\n <div id=\"Header-w\">\r\n <div class=\"hw-tit\">\r\n <Header />\r\n </div>\r\n </div>\r\n\r\n <!--- 로그ì¸ì´ ëœ ìƒíƒœì—서만 ë³´ì´ê¸° --->\r\n <div class=\"headerW_Container\" v-show=\"showMyPage\">\r\n <div class=\"arrow\"></div>\r\n <div class=\"myPageWrapper\">\r\n <ul>\r\n <li class=\"name\"><strong>{{ userName }}</strong> 님</li>\r\n <li>\r\n <a :href=\"this.$TARGETURL + 'mypage'\">\r\n 마ì´íŽ˜ì´ì§€\r\n </a>\r\n </li>\r\n <li>\r\n <a :href=\"this.$TARGETURL + 'myhome'\">\r\n ë‚´ê°€ ë§Œë“ ì£¼íƒ\r\n </a>\r\n </li>\r\n <li @click=\"logout\">로그아웃</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <!-- ë°©, 화장실 개수 Section START -->\r\n\r\n <div class=\"S2_SideMenu\">\r\n <div class=\"SideMenu_Btn\">\r\n <router-link to=\"/\" class=\"Prev_Div\">\r\n <img src=\"../assets/images/icons/arrow.png\" class=\"prev\" />\r\n </router-link>\r\n\r\n <div class=\"Next_Div\" @click=\"nextNav\">\r\n <img src=\"../assets/images/icons/arrow.png\" class=\"next\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"SideMenu_Tit\">\r\n <img src=\"../assets/images/icons/question.png\" alt=\"\" />\r\n <h3 v-if=\"typeName == 'type1'\">ë°©ì´ ëª‡ ê°œì¸ ì§‘ì„ ì›í•˜ì‹œë‚˜ìš”?</h3>\r\n <h3 v-if=\"typeName == 'type2'\">몇 í‰í˜•ëŒ€ì˜ ì§‘ì„ ì›í•˜ì‹œë‚˜ìš”?</h3>\r\n <div class=\"SideMenu_desc\">\r\n <p>{{ Types.length }}ê°œì˜ ëª¨ë¸ì´ 등ë¡ë˜ì–´ 있습니다.</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Spec_Div\">\r\n <div class=\"Room_Div\" v-if=\"typeName == 'type1'\">\r\n <p><img src=\"../assets/images/icons/room.png\" alt=\"\" />ë°© 개수</p>\r\n <div class=\"Room_Btns\">\r\n <div>\r\n <input type=\"checkbox\" id=\"select\" @click=\"onClickRoomFilter($event, 1, 5, RoomFilters, 'rm')\" /><label\r\n for=\"select\">1</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select2\" @click=\"onClickRoomFilter($event, 2, 5, RoomFilters, 'rm')\" /><label\r\n for=\"select2\">2</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select3\" @click=\"onClickRoomFilter($event, 3, 5, RoomFilters, 'rm')\" /><label\r\n for=\"select3\">3</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select4\" @click=\"onClickRoomFilter($event, 4, 5, RoomFilters, 'rm')\" /><label\r\n for=\"select4\">4</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select5\" @click=\"onClickRoomFilter($event, 5, 5, RoomFilters, 'rm')\" /><label\r\n for=\"select5\">5+</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"BathRoom_Div\" v-if=\"typeName == 'type1'\">\r\n <p><img src=\"../assets/images/icons/bathroom.png\" alt=\"\" />화장실 개수</p>\r\n <div class=\"BathRoom_Btns\">\r\n <div>\r\n <input type=\"checkbox\" id=\"select6\"\r\n @click=\"onClickRoomFilter($event, 1, 3, BathRoomFilters, 'brm')\" /><label for=\"select6\">1</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select7\"\r\n @click=\"onClickRoomFilter($event, 2, 3, BathRoomFilters, 'brm')\" /><label for=\"select7\">2</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select8\" @click=\"onClickRoomFilter($event, 3, 3, BathRoomFilters, 'brm')\" />\r\n <label for=\"select8\">3</label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Size_Div\" v-if=\"typeName == 'type2'\">\r\n <p><img src=\"../assets/images/icons/size.png\" alt=\"\" />í‰í˜•</p>\r\n <div class=\"Size_Btns\">\r\n <div>\r\n <input type=\"checkbox\" id=\"select9\" @click=\"onClickAreaFilter($event, 29, 1)\" /><label\r\n for=\"select9\">20py↓</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select10\" @click=\"onClickAreaFilter($event, 30, 0)\" /><label\r\n for=\"select10\">30py</label>\r\n </div>\r\n <div>\r\n <input type=\"checkbox\" id=\"select11\" @click=\"onClickAreaFilter($event, 40, 0)\" /><label\r\n for=\"select11\">40py</label>\r\n </div>\r\n\r\n <div>\r\n <input type=\"checkbox\" id=\"select12\" @click=\"onClickAreaFilter($event, 51, 2)\" /><label\r\n for=\"select12\">50py↑</label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Floor_Div\" v-if=\"typeName == 'type2'\">\r\n <p><img src=\"../assets/images/icons/floor.png\" alt=\"\" />층수</p>\r\n <div class=\"Floor_Btns\">\r\n <input type=\"checkbox\" id=\"select13\" @click=\"onClickFloorFilter($event, 1)\" /><label\r\n for=\"select13\">1</label>\r\n <input type=\"checkbox\" id=\"select14\" @click=\"onClickFloorFilter($event, 2)\" /><label\r\n for=\"select14\">2</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"S2_List\">\r\n <div class=\"S2_Thumbs_Wrap prevent\">\r\n <div class=\"S2_Thumbs\" v-for=\"t in DisplayTypes\" :key=\"t\">\r\n <router-link :to=\"t.viewPath\">\r\n <div class=\"S2_Thumb\">\r\n <div class=\"Thumb_Tit\">\r\n <p>{{ t.title }}</p>\r\n </div>\r\n <img :src=\"t.thumbnail\" alt=\"\" />\r\n <div class=\"Type_desc\">\r\n <p>\r\n {{ t.mmSize }} ({{ t.areaSize }} py) | {{ t.floor }}-Story |\r\n {{ t.roomCnt }}-Bed | {{ t.bathRoomCnt }}-Bath\r\n </p>\r\n </div>\r\n </div>\r\n </router-link>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"pagination_Div\">\r\n <div class=\"pagination\">\r\n <span class=\"btn_f\" @click=\"pageMove(pages[0])\"></span>\r\n <span class=\"btn_p\" @click=\"pageMove(curPage-1)\"></span>\r\n <span class=\"pageN\" v-for=\"page in pages\" :key=\"page\"\r\n @click=\"pageMove(page)\" \r\n v-bind:style=\"{color : getPageColor(page)}\">\r\n {{\r\n page\r\n }}</span>\r\n <span class=\"btn_n\" @click=\"pageMove(curPage+1)\"> </span>\r\n <span class=\"btn_l\" @click=\"pageMove(pages.at(-1))\"></span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <!-- ë°©, 화장실 개수 Section END -->\r\n <LogIn @childEvent=\"getToken\" @childEvent2=\"LoginChild2\" v-if=\"showEditPopup\" />\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n@import \"../assets/css/PageSection2.css\";\r\n@import \"../assets/css/Responsive.css\";\r\n</style>\r\n\r\n<script>\r\nimport axios from \"axios\";\r\nimport { RedFormat } from \"three\";\r\nimport LogIn from \"../components/LogIn.vue\";\r\nimport Cookies from 'js-cookie';\r\nimport Header from \"./essential/headerTemplate.vue\"\r\n\r\nexport default {\r\n name: \"component.vue\",\r\n\r\n components: {\r\n LogIn,\r\n Header\r\n },\r\n\r\n data() {\r\n return {\r\n totalType: 0,\r\n typeName: \"\",\r\n Types: [],\r\n DisplayTypes: [],\r\n RoomFilters: new Map(),\r\n BathRoomFilters: new Map(),\r\n FloorFilterMap: new Map(),\r\n AreaFilterMap: new Map(),\r\n pages: [], //페ì´ì§€ ë°°ì—´,\r\n curPage: 1,\r\n pageActiveColor: '#006B8E',\r\n pageNomalColor: '#696d6f',\r\n showMyPage: false,\r\n userName: '',\r\n userIdx: '',\r\n showEditPopup: false\r\n };\r\n },\r\n async beforeRouteEnter(to, from, next) {\r\n const typeName = to.params.typeName;\r\n if (typeName === \"type1\" || typeName === \"type2\") {\r\n next();\r\n }\r\n else {\r\n next(\"/Error\");\r\n }\r\n },\r\n async created() {\r\n await this.getToken();\r\n },\r\n async mounted() {\r\n this.typeName = this.$route.params.typeName;\r\n this.global.typeHistory = this.typeName;\r\n const response = await axios.get(\"../../Types.json\");\r\n this.Types = response.data;\r\n this.DisplayTypes = [...this.Types];\r\n this.totalType = this.Types.length; //totalType ê°€ì ¸ì˜¤ê¸°\r\n document.title = 'LIST | Home Self-Design System | XiGEIST';\r\n },\r\n methods: {\r\n clickMyPage() {\r\n //this.showMyPage = !this.showMyPage\r\n if (this.userName != '') {\r\n this.showMyPage = !this.showMyPage;\r\n } else {\r\n //window.location.href = this.$TARGETURL + \"member/login\";\r\n this.onClickEditPopup();\r\n }\r\n },\r\n async getToken() {\r\n const cookie = Cookies.get('token');\r\n let data = {\r\n token: cookie == undefined ? '' : cookie\r\n }\r\n const res = await axios.post(\"/server/token_check\", JSON.stringify(data), {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n if (data.token == '') { //í† í° ìžì²´ê°€ 없으면 ê± ë¡œê·¸ì¸ ì•ˆëœê±°\r\n\r\n }\r\n else if (res.data._data[\"length\"] == 0) { // í† í°ì´ 변경ë으면\r\n alert(\"다른 ê³„ì • 로그ì¸ìœ¼ë¡œ ì¸í•´ 로그아웃ë©ë‹ˆë‹¤.\");\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n this.userIdx = '';\r\n this.userName = '';\r\n this.showMyPage = false; //마ì´íŽ˜ì´ì§€ ë‹«ìŒ\r\n window.location.reload();\r\n }\r\n else if (res.status == 200) {\r\n this.userIdx = res.data._data[0][\"idx\"];\r\n this.userName = res.data._data[0][\"NAME\"];\r\n console.log(this.userName);\r\n //this.showMyPage=true;\r\n }\r\n },\r\n logout() {\r\n alert(\"로그아웃 합니다\");\r\n if (this.userCode == 1) {\r\n console.log(\"카카오로그아웃\");\r\n this.kakaoLogout();\r\n }\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n this.userIdx = '';\r\n this.userName = '';\r\n this.showMyPage = false;\r\n window.location.reload();\r\n },\r\n getPageColor(page) {\r\n if (this.curPage === page) {\r\n return this.pageActiveColor\r\n }\r\n return this.pageNomalColor\r\n },\r\n onClickRedirect: function () {\r\n window.open(\"https://www.xigeist.com\", \"_blank\");\r\n },\r\n onClickRoomFilter(e, i, maxRoom, map, keyStr) {\r\n const checked = e.target.checked;\r\n const key = `${i}`;\r\n\r\n const filter = (type) => {\r\n if (keyStr == \"rm\") {\r\n if (i === maxRoom) {\r\n return type.filter((o) => o.roomCnt >= i);\r\n }\r\n return type.filter((o) => o.roomCnt == i);\r\n } else {\r\n if (i === maxRoom) {\r\n return type.filter((o) => o.bathRoomCnt >= i);\r\n }\r\n return type.filter((o) => o.bathRoomCnt == i);\r\n }\r\n };\r\n\r\n if (checked) {\r\n if (!map.has(key)) {\r\n map.set(key, filter);\r\n }\r\n } else {\r\n if (map.has(key)) {\r\n map.delete(key);\r\n }\r\n }\r\n\r\n this.SetDisplayType1List();\r\n },\r\n onClickFloorFilter(e, i) {\r\n const checked = e.target.checked;\r\n const key = `fl${i}`;\r\n const filter = (type) => {\r\n return type.filter((o) => o.floor == i);\r\n };\r\n if (checked) {\r\n if (!this.FloorFilterMap.has(key)) {\r\n this.FloorFilterMap.set(key, filter);\r\n }\r\n } else {\r\n if (this.FloorFilterMap.has(key)) {\r\n this.FloorFilterMap.delete(key);\r\n }\r\n }\r\n this.SetDisplayType2List();\r\n },\r\n onClickAreaFilter(e, i, option) {\r\n const checked = e.target.checked;\r\n const key = `fl${i}`;\r\n const filter = (type) => {\r\n if (option === 1) {\r\n return type.filter((o) => o.areaSize <= i);\r\n } else if (option === 2) {\r\n return type.filter((o) => o.areaSize >= i);\r\n } else {\r\n return type.filter((o) => o.areaSize >= i && o.areaSize < i + 10);\r\n }\r\n };\r\n if (checked) {\r\n if (!this.AreaFilterMap.has(key)) {\r\n this.AreaFilterMap.set(key, filter);\r\n }\r\n } else {\r\n if (this.AreaFilterMap.has(key)) {\r\n this.AreaFilterMap.delete(key);\r\n }\r\n }\r\n this.SetDisplayType2List();\r\n },\r\n DisplaySort(a, b) {\r\n if (a.name > b.name) return 1;\r\n if (a.name < b.name) return -1;\r\n if (a.name === b.name) return 0;\r\n },\r\n SetDisplayType1List() {\r\n this.DisplayTypes.length = 0;\r\n if (this.RoomFilters.size == 0 && this.BathRoomFilters.size == 0) {\r\n this.DisplayTypes = [...this.Types];\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n return;\r\n } else if (this.RoomFilters.size == 0 && this.BathRoomFilters.size > 0) {\r\n this.BathRoomFilters.forEach((f) => {\r\n Array.prototype.push.apply(this.DisplayTypes, f(this.Types));\r\n });\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n return;\r\n } else if (this.BathRoomFilters.size == 0 && this.RoomFilters.size > 0) {\r\n this.RoomFilters.forEach((f) => {\r\n Array.prototype.push.apply(this.DisplayTypes, f(this.Types));\r\n });\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n return;\r\n } else {\r\n const rmArr = [];\r\n const brmArr = [];\r\n this.RoomFilters.forEach((f) => {\r\n Array.prototype.push.apply(rmArr, f(this.Types));\r\n });\r\n this.BathRoomFilters.forEach((f) => {\r\n Array.prototype.push.apply(brmArr, f(this.Types));\r\n });\r\n const ret = rmArr.filter((x) => brmArr.findIndex((o) => o.name === x.name) > -1);\r\n this.DisplayTypes = [...ret];\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n return;\r\n }\r\n\r\n // this.DisplayTypes = this.DisplayTypes.filter((element, index) => {\r\n // const target = this.DisplayTypes.find((x) => x.name === element.name);\r\n // return this.DisplayTypes.indexOf(target) === index;\r\n // });\r\n },\r\n SetDisplayType2List() {\r\n this.DisplayTypes.length = 0;\r\n if (this.FloorFilterMap.size == 0 && this.AreaFilterMap.size == 0) {\r\n this.DisplayTypes = [...this.Types];\r\n return;\r\n } else if (this.FloorFilterMap.size == 0 && this.AreaFilterMap.size > 0) {\r\n this.AreaFilterMap.forEach((f) => {\r\n Array.prototype.push.apply(this.DisplayTypes, f(this.Types));\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n });\r\n return;\r\n } else if (this.AreaFilterMap.size == 0 && this.FloorFilterMap.size > 0) {\r\n this.FloorFilterMap.forEach((f) => {\r\n Array.prototype.push.apply(this.DisplayTypes, f(this.Types));\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n });\r\n return;\r\n } else {\r\n const flArr = [];\r\n const areaArr = [];\r\n this.FloorFilterMap.forEach((f) => {\r\n Array.prototype.push.apply(flArr, f(this.Types));\r\n });\r\n this.AreaFilterMap.forEach((f) => {\r\n Array.prototype.push.apply(areaArr, f(this.Types));\r\n });\r\n const ret = flArr.filter((x) => areaArr.findIndex((o) => o.name === x.name) > -1);\r\n this.DisplayTypes = [...ret];\r\n this.DisplayTypes = this.DisplayTypes.sort(this.DisplaySort);\r\n return;\r\n }\r\n },\r\n async nextNav() {\r\n if (this.global.moduleHistory === undefined) {\r\n await this.$router.replace({\r\n name: \"ViewerPage\",\r\n params: { typeName: \"Volume20\" },\r\n });\r\n }\r\n else {\r\n await this.$router.replace({\r\n name: \"ViewerPage\",\r\n params: { typeName: this.global.moduleHistory },\r\n });\r\n }\r\n },\r\n onClickEditPopup() { // 편집하기 íŒì—… on\r\n // ë¡œê·¸ì¸ ì•ˆ ë¼ìžˆìœ¼ë©´ 로그ì¸í•˜ë¼ëŠ” íŒì—…\r\n this.showEditPopup = true;\r\n\r\n },\r\n LoginChild2() {\r\n this.showEditPopup = false;\r\n },\r\n kakaoLogout() {\r\n window.Kakao.API.request({\r\n url: '/v1/user/unlink',\r\n success: function (response) {\r\n console.log(response);\r\n document.cookie = \"token=\" + \"\";\r\n //alert(\"로그아웃 ë˜ì—ˆì–´ìš©\");\r\n },\r\n fail: function (error) {\r\n console.log(error);\r\n },\r\n });\r\n },\r\n\r\n\r\n },\r\n};\r\n</script>\r\n","<template>\r\n <div id=\"Header_Root\">\r\n <div class=\"hw-title\">\r\n <img src=\"../../assets/images/Logo.png\" alt=\"\" @click=\"onClickRedirect()\">\r\n <p>Home Self-Design System</p>\r\n\r\n <div class=\"MyInfo_Wrapper\" ref=\"myInfoWrapper\" @mouseleave=\"hideMyPage\">\r\n <button @click=\"clickMyPage\" type=\"button\">\r\n <img src=\"../../assets/images/icons/mypage_2.png\" alt=\"\" class=\"myInfoIcon\">\r\n </button>\r\n\r\n <div class=\"MyInfo_List\" v-if=\"showMyPage\" :class=\"{ 'block' : showMyPage}\">\r\n <p class=\"arrow\"></p>\r\n <ul>\r\n <li class=\"name\"><strong>{{ this.userName }}</strong> 님</li>\r\n <li>\r\n <a @click=\"navigateToPage('mypage')\" :class=\"{ 'selected': isCurrentPage('/mypage') }\" id=\"myhome\">\r\n 마ì´íŽ˜ì´ì§€\r\n </a>\r\n </li>\r\n <li>\r\n <a @click=\"navigateToPage('myhome')\" :class=\"{ 'selected': isCurrentPage('/myhome') }\" id=\"myhome\">\r\n ë‚´ê°€ ë§Œë“ ì£¼íƒ\r\n </a>\r\n </li>\r\n <!-- <li>\r\n <router-link to=\"/account\">\r\n 로그아웃\r\n </router-link>\r\n </li> -->\r\n <li @click=\"logout\">로그아웃</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <LogInModal @childEvent=\"getToken\" @childEvent2=\"LoginChild2\" v-if=\"IsModalPopup && !IsLogin\" />\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n#Header_Root {\r\n grid-row:1;\r\n width:100vw;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n align-self: center;\r\n justify-content: space-between;\r\n}\r\n#Header_Root .hw-title {\r\n display:flex;\r\n flex-direction: row;\r\n align-items:center;\r\n column-gap: 35px;\r\n}\r\n#Header_Root .hw-title img {\r\n /* height: 28px; */\r\n display: flex;\r\n align-items: flex-end;\r\n justify-content: center;\r\n cursor: pointer;\r\n margin-left: 24px;\r\n}\r\n.iconContainer {\r\n margin-right:24px;\r\n}\r\n.MyInfo_Wrapper {\r\n position: absolute;\r\n top: 20px;\r\n right: 24px;\r\n float: right;\r\n z-index: 9998;\r\n cursor: pointer;\r\n height: 30px;\r\n}\r\n.M_Header .hw-title p {\r\n font-family: Pretendard,sans-serif;\r\n font-size: 1.2rem;\r\n color: #787878;\r\n font-weight: 300;\r\n letter-spacing: -.5px;\r\n cursor: pointer;\r\n margin-left:0 !important\r\n}\r\n\r\n.myInfoIcon {\r\n cursor: pointer;\r\n height: 36px;\r\n}\r\n.MyInfo_List {\r\n position:absolute;\r\n top: 0;\r\n right: 0;\r\n height: auto;\r\n display:none\r\n}\r\n.arrow {\r\n position:relative;\r\n content: \"\";\r\n top: 35px;\r\n right: 8px;\r\n float: right;\r\n transform: rotate(45deg);\r\n width: 20px;\r\n height: 20px;\r\n background-color: #fff;\r\n box-shadow: -3px -4px 4px -2px #ccc;\r\n z-index:9990;\r\n}\r\n\r\n.MyInfo_Wrapper ul {\r\n margin-top:60px;\r\n width: 119px;\r\n padding: 25px 12px ;\r\n background: #fff;\r\n border-radius: 5px;\r\n box-shadow: 1px 1px 3px 2px #ccc;\r\n}\r\n.MyInfo_Wrapper .name strong {\r\n font-size:1rem;\r\n}\r\n.MyInfo_Wrapper ul li,\r\n.MyInfo_Wrapper ul li a {\r\n cursor: pointer;\r\n font-size:.8rem;\r\n color:#787878;\r\n line-height:1.6rem;\r\n}\r\n.MyInfo_Wrapper ul li a:hover,\r\n.MyInfo_Wrapper ul li:hover {\r\n font-weight: bold;\r\n}\r\n\r\n.MyInfo_Wrapper ul li:first-child:hover {\r\n font-weight: initial;\r\n}\r\n.MyInfo_Wrapper ul li:first-child {\r\n cursor:initial\r\n}\r\n.MyInfo_Wrapper button:active ~ .MyInfo_List {\r\n display:block;\r\n}\r\n.MyInfo_Wrapper button ~ .MyInfo_List:hover {\r\n display: block;\r\n}\r\n.MyInfo_Wrapper button {\r\n background:0;\r\n border:0;\r\n}\r\n.block {\r\n display: block;\r\n}\r\n.selected {\r\n font-weight: bold;\r\n color:#000\r\n}\r\n</style>\r\n\r\n\r\n<script>\r\nimport Cookies from 'js-cookie';\r\nimport LogInModal from '../LogIn.vue';\r\nimport axios from 'axios';\r\n\r\n export default {\r\n components : {\r\n LogInModal\r\n },\r\n data() {\r\n return {\r\n IsModalPopup: false,\r\n token: {},\r\n userName: '',\r\n userEmail: '',\r\n userIdx: '',\r\n IsLogin: false,\r\n showMyPage:false\r\n }\r\n },\r\n async created() {\r\n await this.getToken();\r\n },\r\n methods : {\r\n async getToken() {\r\n const cookie = Cookies.get(\"token\");\r\n let data = {\r\n token: cookie == undefined ? \"\" : cookie,\r\n };\r\n //const res = await axios.post(\"http://localhost:12008/token_check\", JSON.stringify(data),{\r\n const res = await axios.post(\r\n \"/server/token_check\",\r\n JSON.stringify(data),\r\n {\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n );\r\n if (data.token == \"\") {\r\n //í† í° ìžì²´ê°€ 없으면 ê± ë¡œê·¸ì¸ ì•ˆëœê±°\r\n this.IsLogin = false;\r\n } else if (res.data._data[\"length\"] == 0) {\r\n alert(\"다른 ê³„ì • 로그ì¸ìœ¼ë¡œ ì¸í•´ 로그아웃 ë©ë‹ˆë‹¤.\");\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n //this.$router.push(\"/member/login\");\r\n window.location.reload();\r\n } else if (res.status == 200) {\r\n // ë¡œê·¸ì¸ ëœê±°\r\n this.userEmail = res.data._data[0][\"USER_EMAIL\"];\r\n this.userName = res.data._data[0][\"NAME\"];\r\n this.userIdx = res.data._data[0][\"idx\"];\r\n this.IsLogin = true;\r\n }\r\n },\r\n async getFileList() {\r\n const res = await axios.post(\"/server/read_file\",\r\n `{ \"key\":\"READ\", \"user_idx\":\"${this.userIdx}\" }`,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-origin' : '*',\r\n 'Access-Control-Allow-Methods' : 'GET, POST, OPTIONS, PUT, PATCH, DELETE',\r\n 'Access-Control-Allow-Credentials' : 'true'\r\n }\r\n })\r\n if (res.status == 200) {\r\n this.fileList = [...res.data._data];\r\n console.log(this.fileList)\r\n }\r\n },\r\n logout() {\r\n alert(\"로그아웃 합니다\");\r\n if (this.userCode == 1) {\r\n console.log(\"카카오로그아웃\");\r\n this.kakaoLogout();\r\n }\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n //window.location.href = \"http://localhost:8080/member/login\"\r\n //this.$router.push('/member/login');\r\n window.location.reload();\r\n this.IsLogin = false;\r\n },\r\n saveFileToLocal(home) {\r\n localStorage.setItem('load', home.FILE_DATA);\r\n localStorage.setItem('loadIdx', home.IDX);\r\n },\r\n // clickMyPage() {\r\n // if (this.userName != '') {\r\n // this.showMyPage = !this.showMyPage;\r\n // console.log(this.showMyPage);\r\n // } else {\r\n // this.IsModalPopup = true;\r\n // this.showMyPage = true; // 로그ì¸ì´ ëœ ìƒíƒœì—ì„œ showMyPageë„ showë˜ê²Œ~..\r\n // }\r\n // },\r\n clickMyPage() {\r\n if (this.IsLogin) {\r\n this.showMyPage = !this.showMyPage;\r\n } else {\r\n this.IsModalPopup = !this.IsModalPopup;\r\n }\r\n },\r\n // showMyPageê°€ trueì¼ ë•Œ MyPage_Wrapper ì˜ì— 밖으로 마우스 놓으면 hide~...\r\n hideMyPage(event) {\r\n if (!this.$refs.myInfoWrapper.contains(event.relatedTarget)) {\r\n this.showMyPage = false;\r\n }\r\n },\r\n LoginChild2() {\r\n this.IsModalPopup = false;\r\n },\r\n navigateToPage(page) {\r\n //this.$emit('navigate', page);\r\n // this.$router.push(page).then(() => {\r\n // this.updateCheckedState();\r\n // });\r\n // window.location(\"http://localhost:8080/mypage\").then(() => {\r\n // this.updateCheckedState();\r\n // });\r\n window.location.href = this.$TARGETURL + page;\r\n },\r\n isCurrentPage(page) {\r\n return this.$route.path === page;\r\n },\r\n updateCheckedState() {\r\n const mypage = document.getElementById('mypage');\r\n const myhome = document.getElementById('myhome');\r\n\r\n if (mypage) mypage.checked = false;\r\n if (myhome) myhome.checked = false;\r\n\r\n if (this.isCurrentPage('/mypage')) {\r\n const mypage = document.getElementById('mypage');\r\n if (mypage) mypage.checked = true;\r\n } else if (this.isCurrentPage('/myhome')) {\r\n const myhome = document.getElementById('myhome');\r\n if (myhome) myhome.checked = true;\r\n }\r\n },\r\n onClickRedirect() {\r\n window.open(\"https://www.xigeist.com\", \"_blank\");\r\n }\r\n },\r\n computed: {\r\n currentRoute() {\r\n return this.$route.path;\r\n }\r\n }\r\n }\r\n</script>\r\n","import { render } from \"./headerTemplate.vue?vue&type=template&id=c4ad0a52&scoped=true\"\nimport script from \"./headerTemplate.vue?vue&type=script&lang=js\"\nexport * from \"./headerTemplate.vue?vue&type=script&lang=js\"\n\nimport \"./headerTemplate.vue?vue&type=style&index=0&id=c4ad0a52&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c4ad0a52\"]])\n\nexport default __exports__","import { render } from \"./PageSection2.vue?vue&type=template&id=016c3655&scoped=true\"\nimport script from \"./PageSection2.vue?vue&type=script&lang=js\"\nexport * from \"./PageSection2.vue?vue&type=script&lang=js\"\n\nimport \"./PageSection2.vue?vue&type=style&index=0&id=016c3655&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-016c3655\"]])\n\nexport default __exports__","<template>\r\n <div>\r\n <router-view :key=\"$route.fullPath\">\r\n <div id=\"Viewer_Div\" @click=\"closeSel\">\r\n <div id=\"Header-w\">\r\n <Header />\r\n </div>\r\n\r\n <!--- 로그ì¸ì´ ëœ ìƒíƒœì—서만 ë³´ì´ê¸° --->\r\n <div class=\"headerW_Container\" v-show=\"showMyPage\">\r\n <div class=\"arrow\"></div>\r\n <div class=\"myPageWrapper\">\r\n <ul>\r\n <li class=\"name\"><strong>{{ userName }}</strong> 님</li>\r\n <li>\r\n <a :href=\"this.$TARGETURL + 'mypage'\">\r\n 마ì´íŽ˜ì´ì§€\r\n </a>\r\n </li>\r\n <li>\r\n <a :href=\"this.$TARGETURL + 'myhome'\">\r\n ë‚´ê°€ ë§Œë“ ì£¼íƒ\r\n </a>\r\n </li>\r\n <li @click=\"logout\">로그아웃</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Pop_SideMenu\">\r\n <div class=\"SideMenus_Btn\">\r\n <div class=\"Prevs_Div\" @click=\"navBackCommand\">\r\n <img src=\"../assets/images/icons/arrow.png\" class=\"prev\" />\r\n </div>\r\n\r\n <div class=\"Nexts_Div\">\r\n <img src=\"../assets/images/icons/arrow.png\" class=\"next\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"Pop_Tit\">\r\n <div class=\"Pop_Wrapper\">\r\n <h3 style=\"margin: 0px\">{{ curType.title }}</h3>\r\n <!--- 로그ì¸ì´ 안 ëœ ìƒíƒœì—ì„œ 편집하기 버튼 í´ë¦í•˜ë©´ ë¡œê·¸ì¸ íŽ˜ì´ì§€ë¡œ ì´ë™ --->\r\n <a v-if=\"curType.title !== 'Proto.35D' && curType.title !== 'ADU'\" class=\"editBtn\"\r\n @click=\"onClickEditPopup\">\r\n <img src=\"../assets//images//icons/edit.png\" alt=\"\">\r\n <p>편집하기</p>\r\n </a>\r\n </div>\r\n\r\n <div class=\"Pop_Spec\">\r\n <p><img src=\"../assets/images/icons/size.png\" />{{ curType.mmSize }}</p>\r\n <p><img src=\"../assets/images/icons/room.png\" />{{ mRooms }}</p>\r\n <p><img src=\"../assets/images/icons/floor.png\" />{{ mFloor }}</p>\r\n <p><img src=\"../assets/images/icons/bathroom.png\" />{{ mBath }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Floor_Thumb\">\r\n <div class=\"Floor_Tit\" @click=\"showTypeCommand\">\r\n <p>ì „ì²´ë³´ê¸°</p>\r\n </div>\r\n <img :src=\"curType.thumbnail\" @click=\"showTypeCommand\" alt=\"\" class=\"thumb\" />\r\n\r\n <div class=\"Floor_Tit\">\r\n <p>1F</p>\r\n </div>\r\n <img :src=\"curType.img1F\" alt=\"\" @click=\"openFPop(curType.img1F)\" />\r\n\r\n <div class=\"Floor_Tit\" v-if=\"is2f\">\r\n <p>2F</p>\r\n </div>\r\n <img :src=\"curType.img2F\" @click=\"openFPop(curType.img2F)\" alt=\"\" v-if=\"is2f\" />\r\n </div>\r\n\r\n <!-- <button class=\"Make_Btn\">\r\n <img src=\"../assets/images/icons/edit.png\" alt=\"\">\r\n ì§ì ‘ 설계하기\r\n </button> -->\r\n\r\n <!-- <div class=\"FloorPlan_Div\"></div> -->\r\n </div>\r\n\r\n <div class=\"Pop_Viewer\">\r\n <div class=\"FPop_Div\" v-show=\"showFP\">\r\n <div class=\"Fpop_Menu\"></div>\r\n <div class=\"Fpop_img\">\r\n <img :src=\"selectFp\" alt=\"\" />\r\n <button @click=\"closeFP\">X</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Viewer_desc\">\r\n <p>※ 다ë½ì˜µì…˜ì˜ 경우 지붕 í˜•íƒœì— ë”°ë¼ ì„ íƒì˜ ì œì•½ì´ ìžˆì„ ìˆ˜ 있ìŒ.</p>\r\n <p>※ Option 모듈(현관모듈, 주차장모듈 등)ì€ ì™¸ê´€ 형ìƒì— ë”°ë¼ ì„ íƒì˜ ì œì•½ì´ ìžˆì„ ìˆ˜ 있ìŒ.</p>\r\n\r\n <p>※ 2층 ì´ìƒì˜ 주íƒì€ ê´€ë ¨ë²•ë ¹ì— ë”°ë¼ ì†Œë°©ì°½ì´ í•„ìš”í•˜ë©°, 건축물 ë°°ì¹˜ì— ë”°ë¼ ì†Œë°©ì°½ 위치가 변경ë 수 있ìŒ.</p>\r\n </div>\r\n\r\n <router-link to=\"/\">\r\n <!-- <div class=\"closeBtn\" @click=\"$router.go(-1)\">\r\n <img src=\"../assets/images/OpenModule.png\" alt=\"\" /> \r\n </div> -->\r\n </router-link>\r\n\r\n <div class=\"Layer_Div\">\r\n <div class=\"Option_Btns\">\r\n <input type=\"radio\" checked=\"true\" id=\"select\" name=\"btNav\" @click=\"openMd\" />\r\n <label for=\"select\">Modules</label>\r\n\r\n <input type=\"radio\" id=\"select2\" name=\"btNav\" @click=\"openRF\" />\r\n <label for=\"select2\">Roofs</label>\r\n\r\n <input type=\"radio\" v-if=\"isAdu\" id=\"select3\" name=\"btNav\" @click=\"openADU\" />\r\n <label for=\"select3\" v-if=\"isAdu\">ADU Example</label>\r\n </div>\r\n\r\n <div class=\"Module_List\" v-if=\"showMd\" style=\"align-items: center\">\r\n <p @click=\"selectAnimationCommand\" class=\"AnimateBtn\">\r\n <span v-if=\"animButtonStatus('None')\">Animate</span>\r\n <img v-if=\"animButtonStatus('Stop')\" src=\"../assets/images/icons/play.png\" alt=\"Play\" />\r\n <img v-if=\"animButtonStatus('Run')\" src=\"../assets/images/icons/pause.png\" alt=\"Pause\" />\r\n </p>\r\n\r\n <div class=\"MLThumb_Wrap\">\r\n <div class=\"MLThumb\" v-for=\"m in curModules\" :key=\"m\" @click=\"selectModuleCommand(m.name, $event)\"\r\n style=\"width: 250px; height: 98%; margin-right: 10px\">\r\n <div class=\"Module_Thumb\" style=\"width: 250px; height: 98%\">\r\n <img :src=\"m.imgPath\" alt=\"\" />\r\n <div style=\"\r\n position: absolute;\r\n color: beige;\r\n text-align: center;\r\n position: absolute;\r\n color: beige;\r\n text-align: center;\r\n top: 5px;\r\n left: 5px;\r\n z-index: 50;\r\n width: 60px;\r\n height: 25px;\r\n background: #d9d9d9;\r\n color: #696d6f;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 13px;\r\n border-radius: 25px;\r\n \" v-if=\"m.isVisible == false\" class=\"onoffBtn1\">\r\n Off\r\n </div>\r\n <div style=\"\r\n position: absolute;\r\n color: beige;\r\n text-align: center;\r\n top: 5px;\r\n left: 5px;\r\n z-index: 50;\r\n width: 60px;\r\n height: 25px;\r\n background: gray;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 13px;\r\n border-radius: 25px;\r\n \" v-if=\"m.isVisible == true\" class=\"onoffBtn\">\r\n On\r\n </div>\r\n <div class=\"Txt_Div\" style=\"\">\r\n <h3>{{ m.name }}</h3>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Module_List\" v-if=\"showRF\" style=\"align-items: center;\">\r\n <p @click=\"selectAnimationCommand\" class=\"AnimateBtn\">\r\n <span v-if=\"animButtonStatus('None')\">Animate</span>\r\n <img v-if=\"animButtonStatus('Stop')\" src=\"../assets/images/icons/play.png\" alt=\"Play\" />\r\n <img v-if=\"animButtonStatus('Run')\" src=\"../assets/images/icons/pause.png\" alt=\"Pause\" />\r\n </p>\r\n <div class=\"MLThumb_Wrap\">\r\n <div v-for=\"(m, i) in curRoofs\" :key=\"m\" @click=\"selectRoofCommand(i)\"\r\n style=\"width: 250px; height: 98%; margin-right: 10px\" class=\"MLThumb\">\r\n <div class=\"Module_Thumb\" style=\"width: 100%; height: 100%\">\r\n <img :src=\"m.imgPath\" alt=\"\" />\r\n <div\r\n style=\" position: absolute; color: beige; text-align: center; top: 5px; left: 5px; z-index: 50; width: 60px; height: 25px; background: #d9d9d9; color: #696d6f; display: flex; justify-content: center; align-items: center; font-size: 13px; border-radius: 25px;\"\r\n class=\"onoffHover1\" v-if=\"m.isVisible == false\">\r\n Off\r\n </div>\r\n\r\n <div style=\"position: absolute; color: beige; text-align: center; top: 5px; left: 5px; z-index: 50; width: 60px; height: 25px; background: #696d6f; color: #d9d9d9; display: flex; justify-content: center;\r\n align-items: center; font-size: 13px; border-radius: 25px;\" class=\"onoffHover\"\r\n v-if=\"m.isVisible == true\">\r\n On\r\n </div>\r\n <div style=\"\r\n position: absolute;\r\n color: beige;\r\n text-align: center;\r\n top: 5px;\r\n left: 75px;\r\n z-index: 50;\r\n width: 60px;\r\n height: 25px;\r\n background: #d9d9d9;\r\n color: #696d6f;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 13px;\r\n border-radius: 25px;\r\n \" v-if=\"!m.isOptionVisible\" class=\"onoffBtn1\" @click=\"selectOptionCommand(i, m, $event)\">\r\n Option\r\n </div>\r\n <div style=\"position: absolute; color: beige; text-align: center; top: 5px; left: 75px; z-index: 50; width: 60px; height: 25px; background: #696d6f; color: #d9d9d9; display: flex; justify-content: center;\r\n align-items: center; font-size: 13px; border-radius: 25px;\" v-if=\"m.isOptionVisible\"\r\n class=\"onoffBtn1\" @click=\"selectOptionCommand(i, m, $event)\">\r\n Option\r\n </div>\r\n <div class=\"Txt_Div\" style=\"\">\r\n <h3>{{ m.name }}</h3>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Module_List\" v-if=\"showADU\" style=\"align-items: center; \">\r\n <p @click=\"selectAnimationCommand\" class=\"AnimateBtn\">\r\n <span v-if=\"animButtonStatus('None')\">Animate</span>\r\n <img v-if=\"animButtonStatus('Stop')\" src=\"../assets/images/icons/play.png\" alt=\"Play\" />\r\n <img v-if=\"animButtonStatus('Run')\" src=\"../assets/images/icons/pause.png\" alt=\"Pause\" />\r\n </p>\r\n\r\n <div class=\"MLThumb_Wrap\">\r\n <div v-for=\"(m, i) in curAdus\" :key=\"m\" @click=\"selectAduCommand(i)\"\r\n style=\"width: 250px; height: 98%; margin-right: 10px\" class=\"MLThumb\">\r\n <div class=\"Module_Thumb\" style=\"width: 100%; height: 100%\">\r\n <img :src=\"m.imgPath\" alt=\"\" />\r\n <div\r\n style=\"position: absolute; color: beige; text-align: center; top: 5px; left: 5px; z-index: 50; width: 60px; height: 25px; background: #d9d9d9; color: #696d6f; display: flex; justify-content: center; align-items: center; font-size: 13px; border-radius: 25px;\"\r\n class=\"onoffHover1\" v-if=\"m.isVisible == false\">\r\n Off\r\n </div>\r\n\r\n <div style=\"position: absolute; color: beige; text-align: center; top: 5px; left: 5px; z-index: 50; width: 60px; height: 25px; background: #696d6f; color: #d9d9d9; display: flex; justify-content: center;\r\n align-items: center; font-size: 13px; border-radius: 25px;\" class=\"onoffHover\"\r\n v-if=\"m.isVisible == true\">\r\n On\r\n </div>\r\n\r\n <div class=\"Txt_Div\" style=\"\">\r\n <h3>{{ m.name }}</h3>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ThreeViewer :selectObj=\"resObj\" v-on:animCallBack=\"animCallBack\" />\r\n </div>\r\n\r\n </router-view>\r\n <LogIn @childEvent=\"LoginChild\" @childEvent2=\"LoginChild2\" v-if=\"showEditPopup\" />\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n@import \"../assets/css/ViewerPage.css\";\r\n@import \"../assets/css/Responsive.css\";\r\n\r\n\r\n/* 3840 ~ / 가로형 */\r\n\r\n@media (min-width: 3840px) {\r\n .Floor_Tit {\r\n height: 45px;\r\n }\r\n\r\n .Floor_Tit p {\r\n font-size: 1.2rem;\r\n }\r\n\r\n .Floor_Thumb .thumb {\r\n top: 0;\r\n width: 95%;\r\n height: 180%;\r\n object-fit: cover;\r\n border: 5px solid #d9d9d9;\r\n margin-bottom: 35px;\r\n cursor: pointer !important;\r\n }\r\n\r\n .Floor_Thumb img {\r\n top: 0;\r\n width: 95%;\r\n height: 180%;\r\n object-fit: contain;\r\n border: 5px solid #d9d9d9;\r\n background: #fff;\r\n cursor: pointer !important;\r\n margin-bottom: 35px;\r\n }\r\n}\r\n\r\n@media (max-width: 560px) {\r\n .Floor_Thumb {\r\n width: 100%;\r\n grid-column: 2;\r\n grid-row: 2;\r\n display: grid;\r\n grid-template-rows: 5px 17px 70px;\r\n flex-wrap: nowrap;\r\n overflow-x: scroll;\r\n cursor: pointer;\r\n }\r\n\r\n .Floor_Thumb .thumb {\r\n grid-row: 3;\r\n object-fit: cover;\r\n border: 3px solid #d9d9d9;\r\n width: 140px;\r\n height: 85px;\r\n margin-right: 15px;\r\n cursor: pointer !important;\r\n }\r\n\r\n .Floor_Thumb img {\r\n grid-row: 3;\r\n object-fit: contain;\r\n border: 3px solid #d9d9d9;\r\n width: 140px;\r\n height: 85px;\r\n margin-right: 15px;\r\n cursor: pointer !important;\r\n }\r\n\r\n .Floor_Tit {\r\n grid-row: 2;\r\n width: 30%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .Floor_Tit p {\r\n font-size: 7px;\r\n margin-top: 2px;\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\nimport ThreeViewer from \"../components/ThreeViewer.vue\";\r\nimport axios from \"axios\";\r\nimport LogIn from \"../components/LogIn.vue\";\r\nimport Cookies from 'js-cookie';\r\nimport Header from './essential/headerTemplate.vue'\r\n\r\nexport default {\r\n metaInfo: {\r\n title: \"Xigeist Home Configurator\",\r\n titleTemplate: \"ViewerPage\",\r\n htmlAttrs: {\r\n lang: \"ko\",\r\n amp: true,\r\n },\r\n },\r\n\r\n components: {\r\n ThreeViewer,\r\n LogIn,\r\n Header\r\n },\r\n\r\n data() {\r\n return {\r\n showMdD: true,\r\n showMd: true,\r\n showRF: false,\r\n showADU: false,\r\n showEx: false,\r\n showFP: false,\r\n hide: true,\r\n selectFp: null,\r\n mFloor: \"\",\r\n mRooms: \"\",\r\n mBath: \"\",\r\n\r\n typeName: \"\",\r\n curType: {},\r\n curModules: [],\r\n curRoofs: [],\r\n curAdus: [],\r\n resObj: {},\r\n\r\n is2f: false,\r\n isAdu: false,\r\n animState: \"None\",\r\n showEditPopup: false,\r\n showMyPage: false,\r\n userIdx: \"\",\r\n userName: \"\"\r\n };\r\n },\r\n async created() {\r\n await this.getToken();\r\n },\r\n async beforeRouteEnter(to, from, next) {\r\n const typeName = to.params.typeName;\r\n const response = await axios.get(\"../../Types.json\");\r\n const curType = response.data.find((x) => x.name == typeName);\r\n if (curType === undefined) {\r\n next(\"/Error\");\r\n } else {\r\n next();\r\n }\r\n },\r\n mounted() {\r\n this.sliderInit();\r\n this.typeName = this.$route.params.typeName;\r\n this.initailType(this.typeName);\r\n document.title = `${this.typeName} | Home Self-Design System | XiGEIST`;\r\n },\r\n methods: {\r\n clickMyPage() {\r\n //this.showMyPage = !this.showMyPage;\r\n if (this.userName != '') {\r\n this.showMyPage = !this.showMyPage;\r\n } else {\r\n //window.location.href = this.$TARGETURL + \"member/login\";\r\n this.onClickEditPopup2();\r\n }\r\n },\r\n async getToken() {\r\n const cookie = Cookies.get('token');\r\n let data = {\r\n token: cookie == undefined ? '' : cookie\r\n }\r\n const res = await axios.post(\"/server/token_check\", JSON.stringify(data), {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n if (data.token == '') { //í† í° ìžì²´ê°€ 없으면 ê± ë¡œê·¸ì¸ ì•ˆëœê±°\r\n\r\n }\r\n else if (res.data._data[\"length\"] == 0) { // í† í°ì´ 변경ë으면\r\n alert(\"다른 ê³„ì • 로그ì¸ìœ¼ë¡œ ì¸í•´ 로그아웃ë©ë‹ˆë‹¤\");\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n this.userIdx = '';\r\n this.userName = '';\r\n this.showMyPage = false; //마ì´íŽ˜ì´ì§€ ë‹«ìŒ\r\n window.location.reload();\r\n }\r\n\r\n else if (res.status == 200) {\r\n this.userIdx = res.data._data[0][\"idx\"];\r\n this.userName = res.data._data[0][\"NAME\"];\r\n //this.showMyPage=true;\r\n }\r\n },\r\n logout() {\r\n alert(\"로그아웃 합니다\");\r\n if (this.userCode == 1) {\r\n console.log(\"카카오로그아웃\");\r\n this.kakaoLogout();\r\n }\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/'});\r\n Cookies.remove('token', { domain: this.$DOMAIN, path: '/member'});\r\n this.userIdx = '';\r\n this.userName = '';\r\n this.showMyPage = false;\r\n window.location.reload();\r\n },\r\n sliderInit() {\r\n const slider = document.querySelector(\".MLThumb_Wrap\");\r\n let isDown = false;\r\n let startX;\r\n let scrollLeft;\r\n\r\n slider.addEventListener(\"mousedown\", (e) => {\r\n isDown = true;\r\n slider.classList.add(\"active\");\r\n startX = e.pageX - slider.offsetLeft;\r\n scrollLeft = slider.scrollLeft;\r\n });\r\n\r\n slider.addEventListener(\"mouseleave\", () => {\r\n isDown = false;\r\n slider.classList.remove(\"active\");\r\n });\r\n\r\n slider.addEventListener(\"mouseup\", () => {\r\n isDown = false;\r\n slider.classList.remove(\"active\");\r\n });\r\n\r\n slider.addEventListener(\"mousemove\", (e) => {\r\n if (!isDown) return;\r\n e.preventDefault();\r\n const x = e.pageX - slider.offsetLeft;\r\n const walk = x - startX;\r\n slider.scrollLeft = scrollLeft - walk;\r\n });\r\n },\r\n closeSel(event) {\r\n var currentCli = document.getElementById(\"sellineName\");\r\n if (currentCli) {\r\n if (!currentCli.contains(event.target)) {\r\n // id sellineName ,\r\n this.listLineUl = false;\r\n }\r\n }\r\n },\r\n async initailType(typeName) {\r\n const response = await axios.get(\"../../Types.json\");\r\n this.curType = response.data.find((x) => x.name == typeName);\r\n this.ListInit();\r\n this.curModules = this.curType.modules;\r\n this.curRoofs = this.curType.roofs;\r\n if (this.curType.name == \"ADU\") {\r\n this.isAdu = true;\r\n this.curAdus.push(this.aduItemCreate(response, \"Proto17S\", \"1F_Module2\")); // test\r\n this.curAdus.push(this.aduItemCreate(response, \"Proto25S\", \"1F_Module1\"));\r\n this.curAdus.push(this.aduItemCreate(response, \"Proto33S\", \"1F_Module4\"));\r\n this.curAdus.push(this.aduItemCreate(response, \"Proto43D\", \"2F_Module4\"));\r\n this.curAdus.push(this.aduItemCreate(response, \"Proto63D\", \"2F_Module1\"));\r\n }\r\n this.resObj = { commandString: \"InitType\", curType: this.curType, aduTypes: this.curAdus };\r\n\r\n this.mFloor = `${this.curType.floor}-Story`;\r\n this.mRooms = `${this.curType.roomCnt}-Bed`;\r\n this.mBath = `${this.curType.bathRoomCnt}-Bath`;\r\n if (this.curType.floor == 2) {\r\n this.is2f = true;\r\n }\r\n },\r\n ListInit() {\r\n //objects 분배\r\n this.curType.objects.forEach((o) => {\r\n if (o.type === \"Module\" || o.type === \"ModuleOption\") {\r\n this.curType.modules.push(o);\r\n } else if (o.type === \"Roof\") {\r\n this.curType.roofs.push(o);\r\n } else if (o.type === \"Exterior\") {\r\n this.curType.exteriors.push(o);\r\n } else if (o.type === \"Option\") {\r\n this.curType.options.push(o);\r\n }\r\n });\r\n },\r\n showTypeCommand() {\r\n this.resObj = { commandString: \"ShowType\" };\r\n },\r\n selectModuleCommand(moduleName, e) {\r\n this.resObj = { commandString: \"ShowModule\", moduleName: moduleName };\r\n },\r\n selectRoofCommand(i) {\r\n this.resObj = { commandString: \"ShowRoof\", index: i + 1 };\r\n },\r\n selectOptionCommand(i, m, e) {\r\n e.stopPropagation();\r\n if (m.isVisible) {\r\n this.resObj = { commandString: \"ShowOption\", index: i + 1 };\r\n }\r\n },\r\n selectAduCommand(i) {\r\n this.resObj = { commandString: \"ShowAdu\", index: i + 1 };\r\n },\r\n selectAnimationCommand() {\r\n if (this.animState === \"None\") {\r\n this.animState = \"Run\";\r\n }\r\n else if (this.animState === \"Run\") {\r\n this.animState = \"Stop\";\r\n }\r\n else if (this.animState === \"Stop\") {\r\n this.animState = \"Run\";\r\n }\r\n\r\n let curMenu = \"Roof\";\r\n if (this.showMd) {\r\n curMenu = \"Module\";\r\n }\r\n else if (this.showADU) {\r\n curMenu = \"ADU\"\r\n }\r\n this.resObj = { commandString: \"ShowAnimation\", state: this.animState, curMenu: curMenu };\r\n },\r\n animCallBack() {\r\n this.animState = \"None\";\r\n this.resObj = { commandString: \"ShowAnimation\", state: this.animState, curMenu: \"Roof\" };\r\n },\r\n async navBackCommand() {\r\n if (this.global.typeHistory === undefined) {\r\n await this.$router.push({\r\n name: \"PageSection\",\r\n params: { typeName: \"type2\" },\r\n });\r\n } else {\r\n await this.$router.push({\r\n name: \"PageSection\",\r\n params: { typeName: this.global.typeHistory },\r\n });\r\n }\r\n this.global.moduleHistory = this.typeName;\r\n },\r\n showType: function () {\r\n this.openType = !this.openType;\r\n },\r\n openRF: function () {\r\n this.showRF = true;\r\n this.showMd = false;\r\n this.showADU = false;\r\n },\r\n openMd: function () {\r\n this.showMd = true;\r\n this.showMdD = false;\r\n this.showRF = false;\r\n this.showADU = false;\r\n },\r\n openADU: function () {\r\n this.showADU = true;\r\n this.showMd = false;\r\n this.showMdD = false;\r\n this.showRF = false;\r\n },\r\n openFPop: function (img) {\r\n this.showFP = true;\r\n this.selectFp = img;\r\n },\r\n closeFP: function () {\r\n this.showFP = false;\r\n },\r\n\r\n onClickRedirect: function () {\r\n window.open(\"https://www.xigeist.com\", \"_blank\");\r\n },\r\n onClickRedirect2: function () {\r\n window.open(\"http://xigeist.bimpeers.com/\", \"_blank\");\r\n },\r\n animButtonStatus(status) {\r\n if (status === this.animState) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n aduItemCreate(response, itemName, aduName) {\r\n const item = JSON.parse(JSON.stringify(response.data.find((x) => x.name == itemName)));\r\n const aduModel = {};\r\n aduModel.name = itemName;\r\n aduModel.imgPath = `../models/ADU/example/${itemName}/img/RF_Roof.png`;\r\n aduModel.isVisible = false;\r\n aduModel.aduName = aduName;\r\n aduModel.objects = [];\r\n\r\n item.objects.forEach(element => {\r\n if (element.name == aduName) {\r\n element.name += \"ADU\";\r\n aduModel.objects.push(element);\r\n }\r\n else if (element.type == \"Module\" || element.type == \"Base\") {\r\n aduModel.objects.push(element);\r\n }\r\n else if (element.type == \"Option\") {\r\n const str = element.name.split(\"_\")[0];\r\n if (str.indexOf(1) > -1) {\r\n aduModel.objects.push(element);\r\n }\r\n }\r\n else if (element.type == \"Exterior\" || element.type == \"Roof\") {\r\n const str = element.name.split(\"_\")[1];\r\n if (str.indexOf(1) > -1) {\r\n aduModel.objects.push(element);\r\n }\r\n }\r\n });\r\n return aduModel;\r\n },\r\n onClickEditPopup() { // 편집하기 íŒì—… on\r\n // if (this.userName != '') { // ë¡œê·¸ì¸ ë¼ìžˆìœ¼ë©´ ì´ë™\r\n // console.log(this.$TARGETURL);\r\n // window.location.href = this.$TARGETURL + this.typeName;\r\n // }\r\n // else { // ë¡œê·¸ì¸ ì•ˆ ë¼ìžˆìœ¼ë©´ 로그ì¸í•˜ë¼ëŠ” íŒì—…\r\n // console.log(this.showEditPopup);\r\n // this.showEditPopup = true;\r\n // this.goEditPage = true;\r\n // }\r\n window.location.href = this.$TARGETURL + this.typeName;\r\n },\r\n onClickEditPopup2() {\r\n this.showEditPopup = true;\r\n },\r\n closeEditPop() { //편집하기 íŒì—… off\r\n this.showPopup = false;\r\n },\r\n LoginChild() {\r\n this.getToken();\r\n this.showEditPopup = false;\r\n console.log(this.showEditPopup);\r\n if (this.goEditPage) {\r\n this.goEditPage = false;\r\n window.location.href = this.$TARGETURL + this.typeName;\r\n }\r\n },\r\n LoginChild2() {\r\n this.showEditPopup = false;\r\n },\r\n kakaoLogout() {\r\n window.Kakao.API.request({\r\n url: '/v1/user/unlink',\r\n success: function (response) {\r\n console.log(response);\r\n document.cookie = \"token=\" + \"\";\r\n //alert(\"로그아웃 ë˜ì—ˆì–´ìš©\");\r\n },\r\n fail: function (error) {\r\n console.log(error);\r\n },\r\n });\r\n },\r\n\r\n },\r\n\r\n};\r\n</script>\r\n","<template>\r\n <div class=\"AnimateViewer_Div\">\r\n <div class=\"progress-bar-container\">\r\n <label for=\"progress-bar\">Loading...</label>\r\n <progress id=\"progress-bar\" value=\"0\" max=\"100\"></progress>\r\n </div>\r\n <div id=\"ThreeCanvas\" style=\"grid-row: 2; width: 100%; height: 100%; background: rgb(223, 217, 208); grid-column: 2;\"></div>\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n.progress-bar-container {\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%); \r\n \r\n width: 100vw;\r\n height: 100vh;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1000;\r\n}\r\n\r\n#progress-bar {\r\n width: 15%;\r\n margin-top: 0.5%;\r\n height: 1%;\r\n display: flex;\r\n}\r\nlabel {\r\n color: white;\r\n font-size: 1rem;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport ThreeView from \"../script/ThreeView\";\r\nimport ThreeAnim from \"@/script/ThreeAnim\";\r\nimport { nextTick } from \"@vue/runtime-core\";\r\n\r\nconst threeView = new ThreeView();\r\nconst anims = [];\r\n\r\nexport default {\r\n props: {\r\n selectObj: {},\r\n },\r\n data() {\r\n return {\r\n isInit: false,\r\n animState : \"None\",\r\n };\r\n },\r\n async mounted() {\r\n threeView.Init();\r\n this.threeRender();\r\n\r\n window.onresize = async function () {\r\n const width = threeView.threeCanvas.offsetWidth;\r\n const height = threeView.threeCanvas.offsetHeight;\r\n threeView.camera.aspect = width / height;\r\n threeView.camera.updateProjectionMatrix();\r\n threeView.renderer.setSize(width, height);\r\n };\r\n\r\n nextTick(async () => {});\r\n },\r\n watch: {\r\n selectObj() {\r\n if(this.selectObj.commandString != \"ShowAnimation\" && this.animState != \"None\")\r\n {\r\n anims.forEach((anim)=>{anim.EndAnim();});\r\n this.$emit(\"animCallBack\");\r\n }\r\n\r\n if (this.selectObj.commandString === \"InitType\") {\r\n const curType = this.selectObj.curType;\r\n const aduTypes = this.selectObj.aduTypes;\r\n threeView.LoadType(curType);\r\n threeView.LoadAduType(aduTypes);\r\n this.isInit = true;\r\n } else if (this.selectObj.commandString === \"ShowType\") {\r\n threeView.SetAllVisible(false);\r\n threeView.ShowType(threeView.curType.initRoof);\r\n } else if (this.selectObj.commandString == \"ShowModule\") {\r\n const moduleName = this.selectObj.moduleName;\r\n if (this.isInit == true) {\r\n threeView.SceneClean(false);\r\n threeView.curType.objects.forEach((o) => {\r\n if (o.name === moduleName) {\r\n o.isVisible = true;\r\n return;\r\n }\r\n o.isVisible = false;\r\n });\r\n this.isInit = false;\r\n threeView.SceneUpdate();\r\n } else {\r\n threeView.SceneClean(false);\r\n const obj = threeView.curType.objects.find((x) => x.name === moduleName);\r\n obj.isVisible = !obj.isVisible;\r\n threeView.SceneUpdate();\r\n }\r\n } else if (this.selectObj.commandString == \"ShowRoof\") {\r\n threeView.ShowType(this.selectObj.index);\r\n this.isInit = false;\r\n } else if (this.selectObj.commandString == \"ShowOption\") {\r\n threeView.ShowOption(this.selectObj.index);\r\n this.isInit = false;\r\n }else if (this.selectObj.commandString == \"ShowAdu\") {\r\n threeView.ShowAdu(this.selectObj.index);\r\n this.isInit = false;\r\n } else if (this.selectObj.commandString == \"ShowAnimation\") {\r\n if(this.animState === \"None\" && this.selectObj.state === \"Run\")\r\n {\r\n threeView.SceneClean(false);\r\n this.SetAnimation(this.selectObj.curMenu);\r\n this.isInit = true;\r\n }\r\n this.animState = this.selectObj.state;\r\n }\r\n },\r\n },\r\n methods: {\r\n SetAnimation(curMenu) {\r\n if(anims.length > 0)\r\n {\r\n anims.forEach((anim) => {\r\n anim.ClearModel();\r\n });\r\n }\r\n let isOptionEnable = true;\r\n threeView.curType.roofs.forEach(o=>{\r\n if(o.isVisible)\r\n {\r\n isOptionEnable = o.isOptionVisible;\r\n }\r\n });\r\n threeView.curType.objects.forEach(o => {\r\n o.isVisible = false;\r\n });\r\n anims.length = 0;\r\n\r\n let objects = [];\r\n if(curMenu === \"Roof\")\r\n {\r\n threeView.ShowType(threeView.curIndex);\r\n if(!isOptionEnable)\r\n {\r\n threeView.ShowOption(threeView.curIndex);\r\n }\r\n threeView.SceneClean(false);\r\n objects = threeView.curType.objects.sort((a, b) => {\r\n return a.order - b.order;\r\n });\r\n }\r\n else if(curMenu === \"Module\")\r\n {\r\n threeView.curType.modules.forEach(m => {\r\n if(m.type == \"Module\")\r\n {\r\n m.isVisible = true;\r\n }\r\n });\r\n threeView.SceneClean(false);\r\n objects = threeView.curType.modules.sort((a, b) => {\r\n return a.order - b.order;\r\n });\r\n }\r\n else if(curMenu === \"ADU\")\r\n {\r\n if(threeView.curAdu == null)\r\n {\r\n threeView.curAdu = threeView.aduTypes[0];\r\n threeView.curAdu.isVisible = true;\r\n }\r\n threeView.SceneClean(false);\r\n objects = threeView.curAdu.objects.sort((a, b) => {\r\n return a.order - b.order;\r\n });\r\n }\r\n\r\n if(curMenu === \"ADU\")\r\n {\r\n objects.forEach((o) => {\r\n const instance = threeView.aduMap.get(threeView.curAdu.name+o.name);\r\n const anim = new ThreeAnim(o.name, instance);\r\n anims.push(anim);\r\n });\r\n }\r\n else\r\n {\r\n objects.forEach((o) => {\r\n if (o.isVisible == false) {\r\n return;\r\n }\r\n const instance = threeView.moduleMap.get(o.name);\r\n const anim = new ThreeAnim(o.name, instance);\r\n anims.push(anim);\r\n });\r\n }\r\n \r\n anims.forEach((anim) => {\r\n if (anim.name.indexOf(\"Base\") > -1) {\r\n anim.CreateModel(threeView.scene, 0);\r\n } else {\r\n anim.CreateModel(threeView.scene, 10000);\r\n }\r\n });\r\n return;\r\n },\r\n isAnimationEnd()\r\n {\r\n if(anims.length < 1)\r\n {\r\n this.$emit(\"animCallBack\");\r\n return;\r\n }\r\n if(this.animState != \"None\")\r\n {\r\n let isEnd = true;\r\n anims.forEach((anim) => {\r\n if(!anim.isComplate)\r\n {\r\n isEnd = false;\r\n }\r\n });\r\n\r\n if(isEnd)\r\n {\r\n this.$emit(\"animCallBack\");\r\n }\r\n }\r\n },\r\n threeRender()\r\n {\r\n if(this.animState === \"Run\")\r\n {\r\n for(let i = 0; i<anims.length; i++)\r\n {\r\n const anim = anims[i];\r\n if(!anim.isComplate)\r\n {\r\n anim.isCreate = true;\r\n anim.module.visible = true;\r\n anim.StartAnimation(0);\r\n break;\r\n }\r\n }\r\n }\r\n this.isAnimationEnd();\r\n requestAnimationFrame(this.threeRender);\r\n threeView.controls.update();\r\n threeView.renderer.render(threeView.scene, threeView.camera);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n","import * as THREE from 'three';\r\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'\r\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader'\r\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'\r\n\r\nexport default class ThreeView{\r\n\r\n constructor(modules)\r\n {\r\n this.modules = modules\r\n this.moduleMap = new Map()\r\n this.aduMap = new Map()\r\n this.isLoaded = false;\r\n this.selectType = null;\r\n this.curType = null;\r\n this.aduTypes = null;\r\n this.curAdu = null;\r\n this.curIndex = 1;\r\n }\r\n\r\n Init()\r\n {\r\n this.InitailSetting();\r\n this.InitailLoad();\r\n }\r\n\r\n InitailSetting()\r\n {\r\n this.threeCanvas = document.getElementById('ThreeCanvas');\r\n this.scene = new THREE.Scene();\r\n const width = this.threeCanvas.offsetWidth;\r\n const height = this.threeCanvas.offsetHeight;\r\n //this.camera = new THREE.OrthographicCamera(width / - 2, width / 2, height / 2, height / - 2, 100, 1000000 );\r\n this.camera = new THREE.PerspectiveCamera(75, this.threeCanvas.offsetWidth / this.threeCanvas.offsetHeight, 100, 100000)\r\n //this.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);\r\n this.renderer = new THREE.WebGLRenderer({ antialias: true });\r\n this.controls = new OrbitControls(this.camera, this.renderer.domElement);\r\n this.controls.maxDistance = 25000;\r\n this.controls.minDistance = 5000;\r\n this.controls.minPolarAngle = 0;\r\n this.controls.maxPolarAngle = Math.PI/2.2;\r\n this.loadManager = new THREE.LoadingManager();\r\n this.gltfLoader = new GLTFLoader(this.loadManager);\r\n this.rgbeLoader = new RGBELoader(this.loadManager);\r\n\r\n this.renderer.setSize( this.threeCanvas.offsetWidth, this.threeCanvas.offsetHeight);\r\n this.renderer.shadowMap.enabled = true;\r\n this.renderer.shadowMap.autoUpdate = true;\r\n this.renderer.shadowMap.type = THREE.PCFSoftShadowMap; \r\n this.renderer.setPixelRatio( window.devicePixelRatio );\r\n this.renderer.toneMapping = THREE.ACESFilmicToneMapping;\r\n this.renderer.toneMappingExposure = 1;\r\n this.renderer.outputEncoding = THREE.sRGBEncoding;\r\n this.renderer.setClearColor(0x000000, 0.0);\r\n // const plane = new THREE.Plane( new THREE.Vector3( 0, - 1, 0 ), 2000 );\r\n // this.renderer.clippingPlanes.push(plane); \r\n // this.renderer.localClippingEnabled = true;\r\n\r\n this.controls.enableDamping = true\r\n this.controls.target.set(0, 1, 0)\r\n\r\n this.intensity = 1;\r\n this.lightColor = 0xFFFFFF;\r\n this.bias = -0.001;\r\n\r\n this.directionalLight = new THREE.DirectionalLight(this.lightColor, this.intensity);\r\n this.directionalLight.position.set(10000,20000,10000)\r\n this.directionalLight.castShadow = true\r\n this.directionalLight.shadow.mapSize.width = 6144;\r\n this.directionalLight.shadow.mapSize.height = 6144;\r\n const d = 80000;\r\n this.directionalLight.shadow.camera.left = - d;\r\n this.directionalLight.shadow.camera.right = d;\r\n this.directionalLight.shadow.camera.top = d;\r\n this.directionalLight.shadow.camera.bottom = - d;\r\n this.directionalLight.shadow.camera.near = 75;\r\n this.directionalLight.shadow.camera.far = 100000;\r\n this.directionalLight.shadow.antialias = true;\r\n this.directionalLight.shadow.bias = this.bias;\r\n\r\n this.rightLight = new THREE.DirectionalLight( this.lightColor );\r\n this.rightLight.position.set(40000,40000,0);\r\n this.rightLight.intensity = this.intensity;\r\n\r\n this.leftLight = new THREE.DirectionalLight( this.lightColor );\r\n this.leftLight.position.set(-40000,40000,0);\r\n this.leftLight.intensity = this.intensity;\r\n\r\n this.backLight = new THREE.DirectionalLight( this.lightColor );\r\n this.backLight.position.set(0,40000,-40000);\r\n this.backLight.intensity = 1;\r\n this.backLight.castShadow = false;\r\n\r\n this.upLight = new THREE.DirectionalLight( this.lightColor );\r\n this.upLight.position.set(0,-40000,-40000);\r\n this.upLight.intensity = 1;\r\n this.upLight.castShadow = false;\r\n // this.helper = new THREE.DirectionalLightHelper( this.directionalLight, 5 );\r\n\r\n // this.directionalLight.position.set(0,10000,-10000);\r\n this.helper = new THREE.DirectionalLightHelper( this.directionalLight, 5 );\r\n \r\n\r\n this.threeCanvas.appendChild(this.renderer.domElement);\r\n }\r\n\r\n // CreateGround(width,height,x,y)\r\n // {\r\n // this.ground = new THREE.Mesh(new THREE.PlaneGeometry(width, height, 32), new THREE.MeshStandardMaterial({ color: 0x131313}));\r\n // this.ground.rotation.x = - Math.PI / 2\r\n // this.ground.receiveShadow = true\r\n // this.ground.material.shininess = 0\r\n // this.ground.position.set(x,0,y);\r\n // this.scene.add(this.ground);\r\n // }\r\n\r\n InitailLoad()\r\n {\r\n const progressBarContainer = document.querySelector('.progress-bar-container');\r\n const progressBar = document.getElementById('progress-bar');\r\n \r\n this.loadManager.onStart = async function()\r\n {\r\n progressBarContainer.style.display = 'flex';\r\n }\r\n this.loadManager.onProgress = function(url,loaded,total){\r\n progressBar.value = (loaded/total) * 100;\r\n }\r\n this.loadManager.onLoad = function(){\r\n progressBarContainer.style.display = 'none';\r\n }\r\n\r\n //Scene Load\r\n this.rgbeLoader.setPath( '../../textures/' ).loadAsync('limpopo_golf_course_1k.hdr')\r\n .then(texture=>{\r\n texture.mapping = THREE.EquirectangularReflectionMapping;\r\n this.scene.environment = texture;\r\n //this.scene.background = texture;\r\n });\r\n }\r\n\r\n SceneClean(isCameraClean = true)\r\n {\r\n this.scene.clear();\r\n this.scene.add(this.rightLight);\r\n this.scene.add(this.leftLight);\r\n this.scene.add(this.backLight);\r\n this.scene.add(this.directionalLight);\r\n this.scene.add(this.upLight);\r\n //this.scene.add( this.helper );\r\n //this.scene.add(this.ground);\r\n \r\n if(isCameraClean)\r\n {\r\n this.controls.target.set(0, 1, 0)\r\n this.camera.castShadow = true;\r\n this.camera.position.set(0, 18000, 45000);\r\n this.camera.lookAt(new THREE.Vector3(0,0,0));\r\n }\r\n }\r\n\r\n SceneUpdate()\r\n {\r\n this.curType.objects.forEach(o=>{\r\n if(o.isVisible === true)\r\n {\r\n this.scene.add(this.moduleMap.get(o.name));\r\n }\r\n });\r\n }\r\n\r\n async LoadObjectAsync(typeName,obj,map)\r\n {\r\n this.gltfLoader.loadAsync(`../../models/${typeName}/gltf/${obj.name}.gltf`).then(object=>{\r\n const instance = object.scene.clone()\r\n instance.receiveShadow = true;\r\n instance.castShadow = true;\r\n instance.position.x = 0;\r\n instance.position.y = 0;\r\n instance.position.z = 0;\r\n\r\n instance.traverse(function (child) {\r\n if (child.isMesh) {\r\n child.castShadow = true;\r\n child.receiveShadow = true;\r\n const material = child.material;\r\n material.onBeforeCompile = function( shader ) {\r\n shader.fragmentShader = shader.fragmentShader.replace(\r\n '#include <output_fragment>',\r\n `vec3 backfaceColor = vec3( 0.2, 0.2, 0.2);\r\n gl_FragColor = ( gl_FrontFacing ) ? vec4( outgoingLight, diffuseColor.a ) : vec4( backfaceColor, opacity );`\r\n )\r\n };\r\n material.side = THREE.DoubleSide;\r\n }\r\n });\r\n obj.isVisible = false;\r\n map.set(obj.name,instance)\r\n });\r\n }\r\n\r\n AddScene(modelue)\r\n {\r\n this.scene.add(this.moduleMap.get(modelue.name));\r\n modelue.isVisible = true;\r\n }\r\n\r\n ShowType(index)\r\n {\r\n this.curIndex = index;\r\n this.SceneClean(false);console.log(this.curType,this.moduleMap)\r\n const target = this.curType.roofs.find(x=>x.name.split(\"_\")[1].indexOf(index) > -1);\r\n const base = this.curType.objects.find(o=>o.type === \"Base\")\r\n if(base != undefined)\r\n {\r\n this.AddScene(base);\r\n }\r\n \r\n if(target.isVisible == false)\r\n {\r\n this.curType.modules.forEach(o=>{\r\n if(o.type === \"ModuleOption\")\r\n {\r\n o.isVisible = false;\r\n }\r\n else\r\n {\r\n this.AddScene(o);\r\n }\r\n });\r\n }\r\n else\r\n {\r\n if(base != undefined)\r\n {\r\n base.isVisible = false;\r\n }\r\n }\r\n \r\n let ret = false;\r\n this.curType.roofs.forEach(o=>{\r\n const str = o.name.split(\"_\")[1];\r\n if(str.indexOf(index) > -1)\r\n {\r\n o.isVisible = !o.isVisible;\r\n o.isOptionVisible = o.isVisible;\r\n ret = o.isOptionVisible;\r\n }\r\n else{\r\n o.isVisible = false;\r\n o.isOptionVisible = false;\r\n }\r\n });\r\n this.curType.exteriors.forEach(o=>{\r\n const str = o.name.split(\"_\")[1];\r\n if(str.indexOf(index) > -1)\r\n {\r\n o.isVisible = !o.isVisible;\r\n }\r\n else{\r\n o.isVisible = false;\r\n }\r\n });\r\n this.curType.options.forEach(o=>{\r\n const str = o.name.split(\"_\")[0];\r\n \r\n if(str.indexOf(index) > -1)\r\n {\r\n o.isVisible = ret;\r\n }\r\n else{\r\n o.isVisible = false;\r\n }\r\n });\r\n this.SceneUpdate();\r\n }\r\n\r\n ShowOption(index)\r\n {\r\n if(!this.curType?.options)\r\n return;\r\n\r\n this.SceneClean(false);\r\n\r\n let ret = false;\r\n const zero = this.curType.options.find(x=>x.name == 'Option0');\r\n this.curType.options.forEach(o=>{\r\n const str = o.name.split(\"_\")[0];\r\n \r\n if(str.indexOf(index) > -1)\r\n {\r\n o.isVisible = !o.isVisible;\r\n ret = o.isVisible;\r\n zero.isVisible = !o.isVisible;\r\n }\r\n else{\r\n o.isVisible = false;\r\n }\r\n });\r\n\r\n this.curType.roofs.forEach(o=>{\r\n const str = o.name.split(\"_\")[1];\r\n if(str.indexOf(index) > -1)\r\n {\r\n o.isOptionVisible = ret;\r\n }\r\n else{\r\n o.isOptionVisible = false;\r\n }\r\n });\r\n console.log(this.curType)\r\n this.SceneUpdate();\r\n }\r\n\r\n ShowAdu(index)\r\n {\r\n const aduType = this.aduTypes[index-1];\r\n this.curAdu = aduType;\r\n if(aduType.isVisible)\r\n {\r\n aduType.isVisible = false;\r\n this.SceneClean();\r\n }\r\n else\r\n {\r\n this.aduTypes.forEach((type)=>{type.isVisible = false});\r\n aduType.isVisible = true;\r\n this.SceneClean();\r\n aduType.objects.forEach(element => {\r\n this.scene.add(this.aduMap.get(aduType.name+element.name));\r\n });\r\n }\r\n }\r\n\r\n LoadType(curType)\r\n {\r\n this.curType = curType;\r\n //this.CreateGround(this.curType.groundWidth,this.curType.groundHeight,this.curType.groundOffsetX,this.curType.groundOffsetY);\r\n this.SceneClean();\r\n curType.objects.forEach(o=>{this.LoadObjectAsync(curType.name,o,this.moduleMap);});\r\n }\r\n\r\n LoadAduAsync(aduType)\r\n {\r\n this.gltfLoader.loadAsync(`../../models/ADU/example/${aduType.name}/gltf/${aduType.aduName}ADU.gltf`).then(object=>{\r\n const instance = object.scene.clone()\r\n instance.receiveShadow = true;\r\n instance.castShadow = true;\r\n instance.position.x = 0;\r\n instance.position.y = 0;\r\n instance.position.z = 0;\r\n\r\n instance.traverse(function (child) {\r\n if (child.isMesh) {\r\n child.castShadow = true;\r\n child.receiveShadow = true;\r\n const material = child.material;\r\n material.onBeforeCompile = function( shader ) {\r\n shader.fragmentShader = shader.fragmentShader.replace(\r\n '#include <output_fragment>',\r\n `vec3 backfaceColor = vec3( 0.2, 0.2, 0.2);\r\n gl_FragColor = ( gl_FrontFacing ) ? vec4( outgoingLight, diffuseColor.a ) : vec4( backfaceColor, opacity );`\r\n )\r\n };\r\n material.side = THREE.DoubleSide;\r\n }\r\n });\r\n this.aduMap.set(`${aduType.name}${aduType.aduName}ADU`,instance)\r\n });\r\n }\r\n\r\n async LoadADUObjectAsync(typeName,obj)\r\n {\r\n this.gltfLoader.loadAsync(`../../models/${typeName}/gltf/${obj.name}.gltf`).then(object=>{\r\n const instance = object.scene.clone()\r\n instance.receiveShadow = true;\r\n instance.castShadow = true;\r\n instance.position.x = 0;\r\n instance.position.y = 0;\r\n instance.position.z = 0;\r\n\r\n instance.traverse(function (child) {\r\n if (child.isMesh) {\r\n child.castShadow = true;\r\n child.receiveShadow = true;\r\n const material = child.material;\r\n material.onBeforeCompile = function( shader ) {\r\n shader.fragmentShader = shader.fragmentShader.replace(\r\n '#include <output_fragment>',\r\n `vec3 backfaceColor = vec3( 0.2, 0.2, 0.2);\r\n gl_FragColor = ( gl_FrontFacing ) ? vec4( outgoingLight, diffuseColor.a ) : vec4( backfaceColor, opacity );`\r\n )\r\n };\r\n material.side = THREE.DoubleSide;\r\n }\r\n });\r\n obj.isVisible = false;\r\n this.aduMap.set(typeName+obj.name,instance)\r\n });\r\n }\r\n\r\n LoadAduType(aduTypes)\r\n {\r\n this.aduTypes = aduTypes;\r\n aduTypes.forEach((aduType)=>{\r\n aduType.objects.forEach(o=>{\r\n if(o.name,o.name.indexOf(\"ADU\") === -1)\r\n {\r\n this.LoadADUObjectAsync(aduType.name,o);\r\n }\r\n else\r\n {\r\n this.LoadAduAsync(aduType);\r\n }\r\n });\r\n });\r\n \r\n }\r\n\r\n ModuleAnimationInit(modelName)\r\n {\r\n if(this.TypeMap.has(modelName))\r\n {\r\n this.TypeMap.get(modelName).forEach(floor => {\r\n floor.forEach(module =>{\r\n module.ClearModel();\r\n });\r\n });\r\n }\r\n }\r\n\r\n SetAllVisible(value)\r\n {\r\n this.curType.objects.forEach(o=>{o.isVisible = value;});\r\n }\r\n}","export default class ThreeAnim{\r\n constructor(name,module) {\r\n this.name = name\r\n this.module = module\r\n this.isInit = true\r\n this.isCreate = false\r\n this.isComplate = false\r\n this.speed = 150;\r\n }\r\n\r\n CreateModel(scene,startHeight)\r\n {\r\n this.module.position.y = startHeight\r\n this.module.visible = false;\r\n scene.add(this.module)\r\n }\r\n\r\n ClearModel()\r\n {\r\n this.isInit = true;\r\n this.isCreate = false\r\n this.isComplate = false\r\n }\r\n\r\n EndAnim()\r\n {\r\n this.module.visible = true;\r\n this.module.position.y = 0;\r\n }\r\n\r\n StartAnimation(endHeight)\r\n {\r\n if(this.isComplate)\r\n {\r\n return;\r\n }\r\n\r\n if(this.isCreate)\r\n {\r\n if(this.module.position.y>endHeight)\r\n {\r\n this.module.position.y -= this.speed\r\n }\r\n else\r\n {\r\n this.module.position.y = endHeight\r\n this.isComplate = true;\r\n }\r\n }\r\n }\r\n}","import { render } from \"./ThreeViewer.vue?vue&type=template&id=19951cf9&scoped=true\"\nimport script from \"./ThreeViewer.vue?vue&type=script&lang=js\"\nexport * from \"./ThreeViewer.vue?vue&type=script&lang=js\"\n\nimport \"./ThreeViewer.vue?vue&type=style&index=0&id=19951cf9&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-19951cf9\"]])\n\nexport default __exports__","import { render } from \"./ViewerPage.vue?vue&type=template&id=67a577e4&scoped=true\"\nimport script from \"./ViewerPage.vue?vue&type=script&lang=js\"\nexport * from \"./ViewerPage.vue?vue&type=script&lang=js\"\n\nimport \"./ViewerPage.vue?vue&type=style&index=0&id=67a577e4&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67a577e4\"]])\n\nexport default __exports__","<template>\r\n <div id=\"Error_Div\">\r\n <div class=\"Error_Tit\">\r\n <img src=\"../assets/images/Logo_w.png\" alt=\"\" />\r\n <h3>ìš”ì²í•˜ì‹ 페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다.</h3>\r\n <p>\r\n ì°¾ìœ¼ë ¤ëŠ” 페ì´ì§€ì˜ 주소가 잘못 ìž…ë ¥ë˜ì—ˆê±°ë‚˜,<br />\r\n ì£¼ì†Œì˜ ë³€ê²½ í˜¹ì€ ì‚ì œë¡œ ì¸í•´ 사용하실 수 없습니다.<br />\r\n ìž…ë ¥í•˜ì‹ íŽ˜ì´ì§€ì˜ 주소가 ì •í™•í•œ 지 다시 í•œ 번 í™•ì¸ í•´ 주세요\r\n </p>\r\n\r\n <div class=\"Error_Btn\">\r\n <router-link to=\"/\"><p>ë©”ì¸íŽ˜ì´ì§€ë¡œ ëŒì•„가기</p></router-link>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n@import \"../assets/css/ErrorPage.css\";\r\n</style>\r\n","import { render } from \"./ErrorPage.vue?vue&type=template&id=0300b0f7&scoped=true\"\nconst script = {}\n\nimport \"./ErrorPage.vue?vue&type=style&index=0&id=0300b0f7&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0300b0f7\"]])\n\nexport default __exports__","<template>\r\n <!-- <div>\r\n <div>\r\n <p>email: {{ email }}</p>\r\n <p>nickname: {{ nickname }}</p>\r\n <p>name: {{ name }}</p>\r\n <p>birthday: {{ birthday }}</p>\r\n <p>birthyear: {{ birthyear }}</p>\r\n <p>mobile: {{ mobile }}</p>\r\n <p>age: {{ age }}</p>\r\n <p>gender: {{ gender }}</p>\r\n <p>id: {{ id }}</p>\r\n </div>\r\n <button type=\"button\" @click=\"logout\">로그아웃</button>\r\n </div> -->\r\n</template>\r\n<script>\r\nimport axios from \"axios\";\r\nimport router from \"@/router\";\r\nimport CryptoJS from \"crypto-js\";\r\nimport Cookies from 'js-cookie';\r\n\r\n// 네ì´ë²„ 개발ìžì„¼í„°ì—ì„œ 어플리케ì´ì…˜ ë“±ë¡ ì‹œ ë°œê¸‰ëœ ê°’\r\n//ìžì´ viewer 테스트\r\n//const client_id = \"4kjfJYnHSV14faBjq5R8\";\r\n//const client_secret = \"tBqkhxWsCT\";\r\n\r\nconst client_id = \"TDQ3VSyu9CPGHbOkbGUe\";\r\nconst client_secret = \"Jc0hh3FKNT\";\r\n\r\nexport default {\r\n data() {\r\n return {\r\n accessToken: \"\",\r\n email: \"\",\r\n nickname: \"\",\r\n id: \"\",\r\n name: \"\",\r\n gender: \"\",\r\n age: \"\",\r\n birthday: \"\",\r\n birthyear: \"\",\r\n mobile: \"\",\r\n password: \"\",\r\n path: \"\",\r\n interest: \"\",\r\n address: \"\",\r\n phonenumber: \"\",\r\n code: \"\",\r\n isSocial: \"\",\r\n refreshToken: \"\",\r\n receive_s: \"\",\r\n receive_e: \"\",\r\n naverLogin: null,\r\n today: new Date()\r\n };\r\n },\r\n mounted() {\r\n this.naverLogin = new window.naver_id_login(client_id);\r\n this.accessToken = this.naverLogin.oauthParams.access_token;\r\n let expireDate = new Date();\r\n expireDate.setTime(expireDate.getTime() + (3 * 60 * 60 * 1000)); //3시간 후\r\n //Cookies.set('token', this.accessToken, { expires: expireDate });\r\n this.userInfo();\r\n\r\n },\r\n methods: {\r\n // ì‚¬ìš©ìž í”„ë¡œí•„ 조회\r\n async userInfo() {\r\n // const url = '/v1/nid/me';\r\n // let header = \"Bearer \" + this.accessToken;\r\n // const headers = { Authorization: header };\r\n // console.log(\"headers : \", headers);\r\n // const { data } = await axios.get(url, { headers });\r\n // let today = new Date();\r\n // console.log(\"userInfo: \", data);\r\n // this.email = data.response.email; // ì´ë©”ì¼\r\n\r\n await axios.post(\"/server/naverLogin\", this.accessToken, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',\r\n 'Access-Control-Allow-Credentials': 'true'\r\n }\r\n }\r\n ).then(res => {\r\n console.log(\"서버 ê²°ê³¼ : \", res.data[\"id\"]);\r\n console.log(typeof res);\r\n\r\n Cookies.set('token', this.accessToken, { expires: this.expireDate, domain: this.$DOMAIN, path: '/' });\r\n \r\n this.name = res.data[\"name\"];\r\n this.email = res.data[\"email\"];\r\n this.gender = res.data[\"gender\"] == \"F\" ? \"female\" : \"male\";\r\n this.age = res.data[\"age\"];\r\n this.nickname = res.data[\"nickname\"];\r\n this.phonenumber = res.data[\"mobile\"].replace(/-/g, '');\r\n this.birthdate = res.data[\"birthyear\"] + \"-\" + res.data[\"birthday\"];\r\n })\r\n\r\n let data2 = {\r\n key: 1,\r\n name: this.name,\r\n birthdate: this.birthdate,\r\n phonenumber: this.phonenumber,\r\n email: this.email,\r\n gender: this.gender,\r\n nickname: this.nickname,\r\n password: this.password,\r\n path: this.path,\r\n interest: this.interest,\r\n address: this.address,\r\n code: 2,\r\n token: this.accessToken,\r\n updatetime: this.today.getFullYear() + '-' + this.today.getMonth() + '-' + this.today.getDay(),\r\n hashPw: \"\",\r\n receive_s: \"\",\r\n receive_e: \"\"\r\n }\r\n let data3 = {\r\n code: 2,\r\n email: this.email\r\n }\r\n await axios.post(\"/server/social_check\", JSON.stringify(data3), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n console.log(res.data);\r\n if (res.data._data[\"length\"] == 0) { //다 가입 안ë¼ìžˆìœ¼ë©´\r\n this.isSocial = 3;\r\n //alert(\"네ì´ë²„ ë¡œê·¸ì¸ ì„±ê³µ\");\r\n }\r\n else if (res.data._data[0][\"CODE\"] == 2) { //소셜가입ë¼ìžˆìœ¼ë©´\r\n this.isSocial = 1;\r\n //alert(\"네ì´ë²„ ë¡œê·¸ì¸ ì„±ê³µ\");\r\n }\r\n else if (res.data._data[0][\"CODE\"] == 0) { //ì¼ë°˜íšŒì› 가입ë¼ìžˆìœ¼ë©´\r\n this.isSocial = 2;\r\n alert(\"ì¼ë°˜íšŒì›ìœ¼ë¡œ ê°€ìž…ëœ ì´ë©”ì¼ìž…니다\");\r\n this.kakaoLogout();\r\n }\r\n })\r\n if (this.isSocial == 3) { // 소셜 가입 ê¸°ë¡ ì—†ìœ¼ë©´ 멤버 í…Œì´ë¸”ì— ë„£ìŒ\r\n await axios.post(\"/server/join_test\", JSON.stringify(data2), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n if (res) {\r\n //alert(\"네ì´ë²„ ë¡œê·¸ì¸ ì„±ê³µ\");\r\n }\r\n })\r\n }\r\n if (this.isSocial != 2) {\r\n await axios.post(\"/server/login_test\", JSON.stringify(data2), { //í† í° í…Œì´ë¸”ì— í† í° ë„£ìŒ\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n alert(\"환ì˜í•©ë‹ˆë‹¤.\");\r\n window.close();\r\n this.$emit('childEvent');\r\n opener.location.reload();\r\n })\r\n\r\n }\r\n },\r\n\r\n // ë¡œê·¸ì¸ ì—°ë™ í•´ì œ 샘플\r\n logout() {\r\n const url = `/oauth2.0/token?grant_type=delete&client_id=${client_id}&client_secret=${client_secret}&access_token=${this.accessToken}&service_provider=NAVER`;\r\n\r\n axios.get(url).then((res) => {\r\n console.log(res.data);\r\n document.cookie = \"token=\" + \"\";\r\n router.push({ path: \"member/login\" });\r\n });\r\n },\r\n },\r\n};\r\n</script>","import { render } from \"./LoginNCallback.vue?vue&type=template&id=486d414a\"\nimport script from \"./LoginNCallback.vue?vue&type=script&lang=js\"\nexport * from \"./LoginNCallback.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\장연서\\\\VScode\\\\2023_Xigeist_Configurator\\\\xigeistclient\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createWebHistory, createRouter } from \"vue-router\";\r\nimport MainPage from \"../views/MainPage.vue\";\r\nimport PageSection2 from \"../components/PageSection2.vue\";\r\nimport ViewerPage from \"../components/ViewerPage.vue\";\r\nimport ErrorPage from \"../components/ErrorPage.vue\";\r\nimport LoginNCallback from \"../components/LoginNCallback.vue\";\r\n\r\n\r\n\r\nconst routes = [\r\n {\r\n path: \"/\",\r\n name: \"MainPage\",\r\n component: MainPage,\r\n \r\n },\r\n {\r\n path: \"/section/:typeName\",\r\n name: \"PageSection\",\r\n component: PageSection2,\r\n },\r\n {\r\n path: \"/viewer/:typeName\",\r\n name: \"ViewerPage\",\r\n component:ViewerPage,\r\n },\r\n\r\n {\r\n path: '/:pathMatch(.*)*',\r\n name: \"ErrorPage\",\r\n component:ErrorPage,\r\n },\r\n {\r\n path: \"/callback\",\r\n name: \"LoginNCallback\",\r\n component: LoginNCallback,\r\n },\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes,\r\n});\r\n\r\nexport default router;\r\n\r\n\r\n","class global{\r\n constructor(){\r\n this.typeHistory = \"type2\"\r\n this.moduleHistory = \"Volume20\"\r\n }\r\n}\r\n\r\nexport default new global();","//import { createApp } from 'vue'\r\n//import App from './App.vue'\r\n\r\n//createApp(App).mount('#app')\r\n\r\nimport { createApp } from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport global from './script/global'\r\nimport LogIn from './components/LogIn.vue';\r\nimport { reactive } from 'vue'\r\n\r\n\r\n\r\nconst app = createApp(App)\r\napp.use(router).mount('#app')\r\napp.component('LogIn', LogIn);\r\n\r\n//ìžì´ 서버 ìš©\r\n app.config.globalProperties.$TARGETURL = \"https://self-design.xigeist.com/\"; //2ì°¨\r\n app.config.globalProperties.$TARGETURL2 = \"https://selfdesign.xigeist.com/\"; //1ì°¨\r\n app.config.globalProperties.$AUTHURL = \"https://xiapi.xigeist.com/\" //본ì¸ì¸ì¦ì„œë²„\r\n app.config.globalProperties.$DOMAIN = \".xigeist.com\" //ì¿ í‚¤ ìœ ì§€ 최ìƒìœ„ ë„ë©”ì¸\r\n//app.config.globalProperties.$SERVERURL = \"https://xiapi.xigeist.com/\" //서버\r\n//app.config.globalProperties.$SERVERURL = \"http://localhost/\" //서버\r\n// app.config.globalProperties.$SERVERURL = \"http://10.130.2.41/\" //서버\r\n\r\n\r\n//빔피어스 서버 테스트 ìš©\r\n\r\n //app.config.globalProperties.$TARGETURL = \"http://xiviewer.bimpeers.com/\"; //2ì°¨\r\n //app.config.globalProperties.$TARGETURL2 = \"http://xiclient.bimpeers.com/\"; //1ì°¨\r\n// app.config.globalProperties.$SERVERURL = \"http://xiapiserver.bimpeers.com:4486/\" //서버\r\n //app.config.globalProperties.$AUTHURL = \"http://test-service.bimpeers.com:4487/\" //본ì¸ì¸ì¦ì„œë²„\r\n //app.config.globalProperties.$DOMAIN = \".bimpeers.com\" //ì¿ í‚¤ ìœ ì§€ 최ìƒìœ„ ë„ë©”ì¸\r\n\r\n//로컬 테스트 ìš©\r\n //app.config.globalProperties.$TARGETURL = \"http://localhost:8080/\"; // 2ì°¨ ë·°ì–´\r\n //app.config.globalProperties.$TARGETURL2 = \"http://localhost:8081/\"; // 1ì°¨ í´ë¼ì´ì–¸íŠ¸\r\n// //app.config.globalProperties.$SERVERURL = \"http://xiapiserver.bimpeers.com:4486/\" //서버\r\n //app.config.globalProperties.$SERVERURL = \"http://localhost:12008/\"\r\n// app.config.globalProperties.$AUTHURL = \"http://localhost:55239/\"\r\n\r\n\r\n//app.config.globalProperties.$TARGETURL = \"http://test-service.bimpeers.com:5006/\"; // 2ì°¨ ë·°ì–´\r\n//app.config.globalProperties.$TARGETURL = \"http://1.214.117.116:5006/\";\r\n//app.config.globalProperties.$TARGETURL2 = \"http://test-service.bimpeers.com/\"; // 1ì°¨ í´ë¼ì´ì–¸íŠ¸\r\n//app.config.globalProperties.$TARGETURL = \"http://1.214.117.116:5006/\";\r\n//app.config.globalProperties.$TARGETURL2 = \"http://1.214.117.116/\";\r\n\r\n\r\n// reactive stateddddgcxxx\r\nconst state = reactive({\r\n count: 0\r\n })\r\n\r\napp.config.globalProperties.global = global;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkxigeistclient\"] = self[\"webpackChunkxigeistclient\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(4072); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["id","_createElementBlock","_createElementVNode","_hoisted_1","_createVNode","_component_router_link","to","_component_router_view","script","__exports__","render","class","loop","muted","autoplay","playsinline","src","_imports_0","type","$data","_hoisted_2","_hoisted_3","_component_Header","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_createBlock","_component_LogIn","onChildEvent","$options","onChildEvent2","for","alt","style","_imports_1","onClick","onSubmit","name","placeholder","onChange","value","href","$TARGETURL","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","client_id","data","users","email","password","image","selectedFile","naverLogin","account_email","birth","phone","gender","nickname","updatedate","key","m","EncodeData","code","isSocial","address","path","interest","hashPw","isKeepLoin","isVisible","mounted","this","window","naver_id_login","$TARGETURL2","state","getUniqState","setDomain","setState","setPopup","init_naver_id_login","$","document","on","btnNaverLogin","getElementById","firstChild","click","methods","keepLogin","aaa","checked","kakaoJoin","Kakao","Auth","login","scope","success","getKakaoAccount","async","console","log","API","request","url","kakao_account","res","profile","birth_temp","birthday","token","getAccessToken","today","Date","birthdate","birthyear","slice","phonenumber","phone_number","split","replace","updatetime","getFullYear","getMonth","getDay","receive_s","receive_e","expireDate","setTime","getTime","Cookies","expires","domain","$DOMAIN","axios","JSON","stringify","headers","then","_data","alert","kakaoLogout","$emit","fail","error","response","cookie","catch","postData","CryptoJS","toString","closeEditPop","ref","onMouseleave","userName","_component_LogInModal","components","LogInModal","IsModalPopup","userEmail","userIdx","IsLogin","showMyPage","getToken","undefined","location","reload","status","fileList","logout","userCode","saveFileToLocal","home","localStorage","setItem","FILE_DATA","IDX","clickMyPage","hideMyPage","event","$refs","myInfoWrapper","contains","relatedTarget","LoginChild2","navigateToPage","page","isCurrentPage","$route","updateCheckedState","mypage","myhome","onClickRedirect","open","computed","currentRoute","metaInfo","title","titleTemplate","htmlAttrs","lang","amp","paginate","Paginate","LogIn","Header","scrollPosition","openType","showMd","showRF","showEx","showR","showS","active","typeName","showEditPopup","scroll","scrollY","scrollTest","offsetTop","deactive","updateScroll","Select","currentTarget","scrollTo","SelectH","Select2","onClickRedirect2","showType","openRF","openEx","addEventListener","scrollEvents","scrollTop","removeClass","addClass","_imports_2","_imports_3","_imports_4","_imports_5","_hoisted_12","_hoisted_19","length","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","$event","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_Fragment","t","viewPath","_hoisted_49","_hoisted_50","thumbnail","_hoisted_52","mmSize","areaSize","floor","roomCnt","bathRoomCnt","totalType","Types","DisplayTypes","RoomFilters","Map","BathRoomFilters","FloorFilterMap","AreaFilterMap","pages","curPage","pageActiveColor","pageNomalColor","from","next","params","global","typeHistory","onClickEditPopup","getPageColor","onClickRoomFilter","e","i","maxRoom","map","keyStr","target","filter","o","has","set","delete","SetDisplayType1List","onClickFloorFilter","SetDisplayType2List","onClickAreaFilter","option","DisplaySort","a","b","size","sort","forEach","f","Array","prototype","push","apply","rmArr","brmArr","ret","x","findIndex","flArr","areaArr","moduleHistory","$router","_imports_6","_imports_7","_ctx","fullPath","img1F","img2F","_hoisted_51","imgPath","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_62","_hoisted_64","_hoisted_65","isOptionVisible","_hoisted_68","_hoisted_69","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_75","_hoisted_77","_hoisted_78","_hoisted_79","_component_ThreeViewer","selectObj","onAnimCallBack","max","ThreeView","constructor","modules","moduleMap","aduMap","isLoaded","selectType","curType","aduTypes","curAdu","curIndex","Init","InitailSetting","InitailLoad","threeCanvas","scene","THREE","offsetWidth","offsetHeight","camera","renderer","antialias","controls","OrbitControls","domElement","maxDistance","minDistance","minPolarAngle","maxPolarAngle","Math","PI","loadManager","gltfLoader","GLTFLoader","rgbeLoader","RGBELoader","setSize","shadowMap","enabled","autoUpdate","setPixelRatio","devicePixelRatio","toneMapping","toneMappingExposure","outputEncoding","setClearColor","enableDamping","intensity","lightColor","bias","directionalLight","position","castShadow","shadow","mapSize","width","height","d","left","right","top","bottom","near","far","rightLight","leftLight","backLight","upLight","helper","appendChild","progressBarContainer","querySelector","progressBar","onStart","display","onProgress","loaded","total","onLoad","setPath","loadAsync","texture","mapping","environment","SceneClean","isCameraClean","clear","add","lookAt","SceneUpdate","objects","get","obj","object","instance","clone","receiveShadow","y","z","traverse","child","isMesh","material","onBeforeCompile","shader","fragmentShader","side","AddScene","modelue","ShowType","index","roofs","find","indexOf","base","str","exteriors","options","ShowOption","zero","ShowAdu","aduType","element","LoadType","LoadObjectAsync","LoadAduAsync","aduName","LoadAduType","LoadADUObjectAsync","ModuleAnimationInit","modelName","TypeMap","module","ClearModel","SetAllVisible","ThreeAnim","isInit","isCreate","isComplate","speed","CreateModel","startHeight","visible","EndAnim","StartAnimation","endHeight","threeView","anims","props","animState","threeRender","onresize","aspect","updateProjectionMatrix","nextTick","watch","commandString","anim","initRoof","moduleName","SetAnimation","curMenu","isOptionEnable","order","isAnimationEnd","isEnd","requestAnimationFrame","update","ThreeViewer","showMdD","showADU","showFP","hide","selectFp","mFloor","mRooms","mBath","curModules","curRoofs","curAdus","resObj","is2f","isAdu","sliderInit","initailType","onClickEditPopup2","slider","startX","scrollLeft","isDown","classList","pageX","offsetLeft","remove","preventDefault","walk","closeSel","currentCli","listLineUl","ListInit","aduItemCreate","showTypeCommand","selectModuleCommand","selectRoofCommand","selectOptionCommand","stopPropagation","selectAduCommand","selectAnimationCommand","animCallBack","openMd","openADU","openFPop","img","closeFP","animButtonStatus","itemName","item","parse","aduModel","showPopup","LoginChild","goEditPage","client_secret","accessToken","age","mobile","refreshToken","oauthParams","access_token","userInfo","data2","data3","close","opener","router","routes","component","MainPage","PageSection2","ViewerPage","ErrorPage","LoginNCallback","createRouter","history","createWebHistory","app","createApp","App","use","mount","config","globalProperties","$AUTHURL","reactive","count","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","prop","hasOwnProperty","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}