diff --git a/assets/styles.css b/assets/styles.css index e0d7190..b34ded3 100644 --- a/assets/styles.css +++ b/assets/styles.css @@ -292,6 +292,31 @@ button { cursor: pointer; } /* EG-BIM Q&A list layout */ .qa-list-page { background: #fff; } +.qa-list-page .site-header { position: absolute; top: 0; right: 0; left: 0; z-index: 10; height: 88px; border-bottom: 0; background: transparent; color: #fff; } +.qa-list-page .header-inner { max-width: none; padding: 0 48px; } +.qa-list-page .brand { color: #fff; font-size: 29px; letter-spacing: -.04em; } +.qa-list-page .brand-mark { width: 38px; height: 27px; border: 0; color: #258be0; font-size: 30px; font-style: italic; } +.qa-list-page .header-tools { gap: 24px; } +.qa-list-page .locale { color: #fff; } +.qa-list-page .locale span { color: rgba(255,255,255,.55); margin: 0 7px; } +.qa-list-page .locale a { color: #fff; } +.qa-list-page .locale a:last-child { color: rgba(255,255,255,.55); } +.qa-list-page .login-link { color: #fff; } +.qa-list-page .login-link [data-auth-name] { display: none; } +.qa-list-page .user-icon { border-color: #fff; } +.qa-list-page .user-icon::after { border-color: #fff; } +.qa-list-page .page-hero { position: relative; display: block; min-height: 482px; height: 482px; overflow: hidden; background: radial-gradient(circle at 53% 47%, rgba(17, 129, 178, .68) 0, rgba(17, 129, 178, .2) 20%, transparent 42%), radial-gradient(circle at 13% 35%, rgba(11, 92, 133, .58) 0, transparent 28%), radial-gradient(circle at 88% 18%, rgba(23, 76, 113, .35) 0, transparent 30%), linear-gradient(115deg, #061c2a 0%, #06121c 52%, #030509 100%); } +.qa-list-page .page-hero::before { position: absolute; inset: 0; content: ''; opacity: .22; background-image: radial-gradient(circle, rgba(255,255,255,.75) 0 2px, transparent 3px), linear-gradient(28deg, transparent 48%, rgba(137,211,239,.45) 49%, transparent 50%), linear-gradient(151deg, transparent 48%, rgba(137,211,239,.3) 49%, transparent 50%); background-position: 8% 30%, 0 0, 0 0; background-size: 170px 135px, 240px 190px, 310px 230px; } +.qa-list-page .hero-inner { position: relative; z-index: 1; padding: 190px 24px 0; text-align: center; } +.qa-list-page .hero-kicker { display: none; } +.qa-list-page .page-hero h1 { margin: 0 0 4px; color: #fff; font-size: 70px; font-weight: 700; letter-spacing: -.07em; } +.qa-list-page .page-hero p { color: #fff; font-size: 20px; font-weight: 500; } +.qa-list-page .sub-nav { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; background: rgba(0, 10, 17, .84); } +.qa-list-page .sub-nav-inner { max-width: 900px; } +.qa-list-page .sub-nav a { padding: 18px 12px; color: #fff; font-size: 16px; font-weight: 700; } +.qa-list-page .sub-nav a[aria-current='page'] { background: rgba(0, 121, 116, .5); color: #ffc400; } +.qa-list-page .sub-nav a.disabled-tab { cursor: default; } +.qa-list-page .sub-nav a.disabled-tab:hover { background: transparent; color: #fff; } .qa-list-page .page-shell { max-width: none; padding: 51px 10px 62px; } .qa-list-heading { margin: 0 0 40px; text-align: center; } .qa-list-heading h1 { margin: 0; font-size: 30px; line-height: 1.35; letter-spacing: -.06em; } @@ -309,8 +334,8 @@ button { cursor: pointer; } .qa-list-page .search-form input::placeholder { color: #b7b7b7; } .qa-list-page .search-button { width: 88px; height: 45px; padding: 0; border-radius: 3px; background: #292621; color: #fff; font-size: 15px; font-weight: 700; } .qa-list-page .search-button span { margin-right: 3px; font-size: 24px; line-height: 0; vertical-align: -2px; } -.qa-list-page .table-wrap { border-top: 2px solid #111; } -.qa-list-page .qa-table { min-width: 980px; } +.qa-list-page .table-wrap { overflow-x: hidden; border-top: 2px solid #111; } +.qa-list-page .qa-table { width: 100%; min-width: 0; } .qa-list-page .qa-table th { height: 48px; padding: 0 10px; border-bottom: 1px solid #111; color: #111; font-size: 14px; font-weight: 700; } .qa-list-page .qa-table td { height: 58px; padding: 0 10px; border-bottom: 1px solid #ededed; background: #f3f3f3; color: #3e4650; font-size: 14px; font-weight: 500; } .qa-list-page .qa-table tbody tr:hover { background: transparent; } @@ -328,6 +353,17 @@ button { cursor: pointer; } .qa-list-page .list-footer > .button { position: absolute; top: 0; right: 0; height: 42px; padding: 0 25px; background: #292621; font-size: 14px; font-weight: 700; } @media (max-width: 820px) { + .qa-list-page .site-header { height: 68px; } + .qa-list-page .header-inner { padding: 0 18px; } + .qa-list-page .brand { font-size: 21px; } + .qa-list-page .brand-mark { width: 29px; height: 22px; font-size: 23px; } + .qa-list-page .header-tools { gap: 12px; } + .qa-list-page .page-hero { min-height: 390px; height: 390px; } + .qa-list-page .hero-inner { padding-top: 145px; } + .qa-list-page .page-hero h1 { font-size: 52px; } + .qa-list-page .page-hero p { font-size: 16px; } + .qa-list-page .sub-nav-inner { max-width: none; } + .qa-list-page .sub-nav a { padding: 14px 10px; font-size: 14px; } .qa-list-page .page-shell { padding: 39px 14px 55px; } .qa-list-heading { margin-bottom: 28px; } .qa-list-heading h1 { font-size: 26px; } diff --git a/egbim/app.js b/egbim/app.js index bbef3c0..5f768c1 100644 --- a/egbim/app.js +++ b/egbim/app.js @@ -8,16 +8,6 @@ const CATEGORY_CODES = { '오류문의': 'ERROR_QNA', '개선문의': 'IMPROVEMENT_QNA', '일반문의': 'GENERAL_QNA' }; let authReady; - const seedPosts = [ - { id: 'EG-1048', category: '오류문의', company: '바론컨설턴트', department: '기술연구팀', author: '홍길동', title: '도면 내보내기 중 프로그램이 종료됩니다.', date: '2026-09-17', status: '문의접수', secret: false, content: '도면 내보내기 버튼을 누르면 프로그램이 종료되는 현상이 있습니다.\n재현 절차와 사용 중인 버전을 함께 확인 부탁드립니다.' }, - { id: 'EG-1047', category: '개선문의', company: '한맥기술', department: 'BIM팀', author: '김민지', title: '층별 도면을 한 번에 선택할 수 있으면 좋겠습니다.', date: '2026-09-16', status: '문의검토', secret: false, content: '층별 도면을 일괄 선택하여 내보낼 수 있는 기능을 제안드립니다.' }, - { id: 'EG-1046', category: '일반문의', company: '삼안', department: '설계1팀', author: '이도윤', title: 'EG-BIM 라이선스와 설치 환경을 문의드립니다.', date: '2026-09-15', status: '답변완료', secret: true, content: '설치 가능한 운영체제와 라이선스 정책을 확인하고 싶습니다.' }, - { id: 'EG-1045', category: '오류문의', company: '바론컨설턴트', department: '디지털전환팀', author: '박서준', title: '프로젝트 파일을 열 때 로딩이 오래 걸립니다.', date: '2026-09-12', status: '정밀검토', secret: false, content: '최근 프로젝트 파일을 열 때 약 2분 이상 로딩이 지속됩니다.' }, - { id: 'EG-1044', category: '공지사항', company: '관리자', department: '-', author: '관리자', title: 'EG-BIM Q&A 게시판 운영 안내', date: '2026-09-10', status: '', secret: false, content: 'EG-BIM 사용 중 궁금한 점이나 개선 의견을 남겨주세요.' }, - { id: 'EG-1043', category: '개선문의', company: '한맥기술', department: '사업관리팀', author: '최유진', title: '검색 결과에서 도면 미리보기를 제공해주세요.', date: '2026-09-09', status: '문의접수', secret: false, content: '검색 결과에 도면 미리보기 썸네일이 있으면 확인이 더 편리할 것 같습니다.' }, - { id: 'EG-1042', category: '일반문의', company: '외부 사용자', department: '-', author: '정하늘', title: '교육 자료를 어디서 확인할 수 있나요?', date: '2026-09-08', status: '답변완료', secret: false, content: 'EG-BIM 기본 교육 자료와 사용 가이드 위치를 알려주세요.' } - ]; - function qs(selector, root) { return (root || document).querySelector(selector); } function qsa(selector, root) { return Array.prototype.slice.call((root || document).querySelectorAll(selector)); } function escapeHtml(value) { @@ -31,10 +21,7 @@ } function getPosts() { - const saved = readJson(STORAGE_KEY, []); - return saved.concat(seedPosts.filter(function (seed) { - return !saved.some(function (post) { return post.id === seed.id; }); - })); + return readJson(STORAGE_KEY, []).filter(function (post) { return post.category !== '공지사항'; }); } function savePost(post) { @@ -361,7 +348,12 @@ const detail = qs('#detail'); if (!detail) return; const id = new URLSearchParams(window.location.search).get('id') || 'EG-1048'; - const post = getPosts().find(function (item) { return item.id === id; }) || seedPosts[0]; + const post = getPosts().find(function (item) { return item.id === id; }); + if (!post) { + qs('[data-detail-title]').textContent = '문의 내용을 찾을 수 없습니다.'; + qs('[data-detail-content]').textContent = '목록에 등록된 문의가 없습니다.'; + return; + } qs('[data-detail-category]').textContent = post.category; qs('[data-detail-title]').textContent = post.title; qs('[data-detail-status]').textContent = post.status || '공지'; diff --git a/egbim/index.html b/egbim/index.html index 2a04fb8..b89c201 100644 --- a/egbim/index.html +++ b/egbim/index.html @@ -9,6 +9,16 @@
+ +
+
EG-BIM SUPPORT

Q&A

EG-BIM 관련 문의하기

+ +

문의하기(Q&A)