diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 32c231f..5d56e61 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -155,3 +155,63 @@ model SD_SERVEY_SALES_DETAIL_INFO { basic_info_id Int @unique basic_info SD_SERVEY_SALES_BASIC_INFO @relation(fields: [basic_info_id], references: [id]) } + +model BC_COMM_H { + HEAD_CD String @id(map: "PK_BC_COMM_H") @db.NVarChar(6) + HEAD_ID String @db.NVarChar(100) + HEAD_NM String @db.NVarChar(100) + HEAD_JP String @db.NVarChar(100) + HEAD_4TH String @db.NVarChar(100) + REF_CHR1 String @db.NVarChar(100) + REF_CHR2 String @db.NVarChar(100) + REF_CHR3 String @db.NVarChar(100) + REF_CHR4 String @db.NVarChar(100) + REF_CHR5 String @db.NVarChar(100) + REF_NUM1 String @db.NVarChar(100) + REF_NUM2 String @db.NVarChar(100) + REF_NUM3 String @db.NVarChar(100) + REF_NUM4 String @db.NVarChar(100) + REF_NUM5 String @db.NVarChar(100) + REMARKS String @db.NVarChar(200) + SAP_YN String @db.NVarChar(1) + STAT_CD String @db.NVarChar(1) + DEL_YN String @db.NVarChar(1) + REG_DT DateTime? @db.DateTime + REG_ID String @db.NVarChar(50) + UPT_DT DateTime? @db.DateTime + UPT_ID String @db.NVarChar(50) + QC_COMM_YN String? @default("N", map: "DF__BC_COMM_H__QC_CO__48CFD27E") @db.NVarChar(1) + BC_COMM_L BC_COMM_L[] + + @@index([HEAD_ID], map: "BC_COMM_H_HEAD_ID_IDX") +} + +model BC_COMM_L { + HEAD_CD String @db.NVarChar(6) + CODE String @db.NVarChar(50) + READ_CD String? @db.NVarChar(50) + CODE_NM String? @db.NVarChar(100) + CODE_JP String? @db.NVarChar(100) + CODE_4TH String? @db.NVarChar(100) + REF_CHR1 String? @db.NVarChar(150) + REF_CHR2 String? @db.NVarChar(150) + REF_CHR3 String? @db.NVarChar(150) + REF_CHR4 String? @db.NVarChar(150) + REF_CHR5 String? @db.NVarChar(150) + REF_NUM1 Decimal? @db.Decimal(22, 5) + REF_NUM2 Decimal? @db.Decimal(22, 5) + REF_NUM3 Decimal? @db.Decimal(22, 5) + REF_NUM4 Decimal? @db.Decimal(22, 5) + REF_NUM5 Decimal? @db.Decimal(22, 5) + PRIORITY Decimal? @db.Decimal(3, 0) + REF_CNT String? @db.NVarChar(5) + STAT_CD String? @db.NVarChar(1) + DEL_YN String? @db.NVarChar(1) + REG_DT DateTime? @db.DateTime + REG_ID String? @db.NVarChar(50) + UPT_DT DateTime? @db.DateTime + UPT_ID String? @db.NVarChar(50) + BC_COMM_H BC_COMM_H @relation(fields: [HEAD_CD], references: [HEAD_CD], onUpdate: NoAction, map: "FK_BC_COMM_L") + + @@id([HEAD_CD, CODE], map: "PK_BC_COMM_L") +} diff --git a/public/assets/images/layout/modal_header_icon03.svg b/public/assets/images/layout/modal_header_icon03.svg new file mode 100644 index 0000000..e15a12c --- /dev/null +++ b/public/assets/images/layout/modal_header_icon03.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/sub/compliance_bx_icon.svg b/public/assets/images/sub/compliance_bx_icon.svg new file mode 100644 index 0000000..57c5593 --- /dev/null +++ b/public/assets/images/sub/compliance_bx_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/sub/compliance_check_icon.svg b/public/assets/images/sub/compliance_check_icon.svg new file mode 100644 index 0000000..4943e6f --- /dev/null +++ b/public/assets/images/sub/compliance_check_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/sub/compliance_quest_icon.svg b/public/assets/images/sub/compliance_quest_icon.svg new file mode 100644 index 0000000..b168463 --- /dev/null +++ b/public/assets/images/sub/compliance_quest_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/sub/compliance_tip_icon.svg b/public/assets/images/sub/compliance_tip_icon.svg new file mode 100644 index 0000000..6d7524c --- /dev/null +++ b/public/assets/images/sub/compliance_tip_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/sub/compliance_x_icon.svg b/public/assets/images/sub/compliance_x_icon.svg new file mode 100644 index 0000000..1b6268c --- /dev/null +++ b/public/assets/images/sub/compliance_x_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/app/layout.tsx b/src/app/layout.tsx index fd79f8c..1bd8967 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,7 @@ import type { Metadata } from 'next' import ReactQueryProviders from '@/providers/ReactQueryProvider' +import EdgeProvider from '@/providers/EdgeProvider' import PopupController from '@/components/ui/PopupController' import '@/styles/style.scss' @@ -22,18 +23,19 @@ interface RootLayoutProps { export default async function RootLayout({ children, header, footer, floatBtn }: RootLayoutProps): Promise { return ( - {/* 일본어로 렌더링 */} - - -
- {header} - {children} - {footer} - {floatBtn} -
- - - + + + +
+ {header} + {children} + {footer} + {floatBtn} +
+ + + +
) } diff --git a/src/app/sample/page.tsx b/src/app/sample/page.tsx new file mode 100644 index 0000000..c4c30d3 --- /dev/null +++ b/src/app/sample/page.tsx @@ -0,0 +1,240 @@ +'use client' + +import { useState } from 'react' + +export default function page() { + const [fileName, setFileName] = useState(null) //file name value + + return ( + <> +
+
+

Input

+
+ + + + + + +
+ + setFileName(e.target.files?.[0] ?? null)} /> +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+

Button

+
+ + + + + + + + + + + + + + +
+
+
+

Check Box

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+

Radio Button

+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+

Toggle Button

+
+
+ +
+
+ +
Q.PARTNERS
+
+
+
+
+

Select Box

+
+ + +
+ + + +
+
+
+
+

TextArea

+
+ + +
+
+ +
+ + ) +} diff --git a/src/app/suitable/layout.tsx b/src/app/suitable/layout.tsx new file mode 100644 index 0000000..25e2615 --- /dev/null +++ b/src/app/suitable/layout.tsx @@ -0,0 +1,24 @@ +import { ReactNode } from 'react' + +interface SuitableLayoutProps { + children: ReactNode +} + +export default function layout({ children }: SuitableLayoutProps) { + return ( + <> +
+
+
+
+
この適合表は参考資料として使用してください.
+
詳細やお問い合わせは1:1お問い合わせをご利用ください.
+
屋根材の選択or屋根材名を直接入力してください.
+
+
+ {children} +
+
+ + ) +} diff --git a/src/app/suitable/page.tsx b/src/app/suitable/page.tsx index 10e60d6..fe9d9c1 100644 --- a/src/app/suitable/page.tsx +++ b/src/app/suitable/page.tsx @@ -1,7 +1,9 @@ +import Suitable from '@/components/suitable/Suitable' + export default function page() { return ( <> -

지붕재 적합성

+ ) } diff --git a/src/components/popup/SuitableDetailPopup.tsx b/src/components/popup/SuitableDetailPopup.tsx new file mode 100644 index 0000000..59b7838 --- /dev/null +++ b/src/components/popup/SuitableDetailPopup.tsx @@ -0,0 +1,32 @@ +export default function SuitableDetailPopup() { + return ( +
+
+
+
+
+
+
+ +
+
屋根材適合性詳細
+
+ +
+
+
+
+
+
アースティ40
+
+ +
+
+
+
+
+
+
+
+ ) +} diff --git a/src/components/suitable/Suitable.tsx b/src/components/suitable/Suitable.tsx new file mode 100644 index 0000000..5120aa3 --- /dev/null +++ b/src/components/suitable/Suitable.tsx @@ -0,0 +1,87 @@ +'use client' + +import { useState } from 'react' +import SuitableCheckData from './SuitableCheckData' +import SuitableNoData from './SuitableNoData' + +export default function Suitable() { + const [reference, setReference] = useState(false) + + return ( +
+
+ +
+
+
+ + +
+
+
+
+
+
凡例
+
+ +
+
+
    +
  • +
    + 設置可能 +
    +
  • +
  • +
    + 設置可能 +
    +
  • +
  • +
    + 設置可能 +
    +
  • +
  • +
    + 設置可能 +
    +
  • +
+
+ {/* checkData */} + {/* 데이터 없을경우 버튼 영역 안보여야함 */} + + + + +
+ {/* 데이터 없을경우 버튼 영역 안보여야함 */} +
+
+ +
+
+ +
+
+ +
+
+ {/* 검색기록 없을떄 위에 두 영역 안보이고 이 부분만 보여야 함*/} + {/* */} +
+ ) +} diff --git a/src/components/suitable/SuitableCheckData.tsx b/src/components/suitable/SuitableCheckData.tsx new file mode 100644 index 0000000..2cef53b --- /dev/null +++ b/src/components/suitable/SuitableCheckData.tsx @@ -0,0 +1,68 @@ +'use client' + +export default function SuitableCheckData() { + return ( + <> +
+
+
+ + +
+
+ +
+
+
    +
  • +
    +
    + + +
    +
    + + +
    +
    +
  • +
  • +
    +
    + + +
    +
    + + +
    +
    +
  • +
  • +
    +
    + + +
    +
    + + +
    +
    +
  • +
  • +
    +
    + + +
    +
    + +
    +
    +
  • +
+
+ + ) +} diff --git a/src/components/suitable/SuitableNoData.tsx b/src/components/suitable/SuitableNoData.tsx new file mode 100644 index 0000000..1245fbf --- /dev/null +++ b/src/components/suitable/SuitableNoData.tsx @@ -0,0 +1,15 @@ +export default function SuitableNoData() { + return ( + <> +
+ 検索結果はありません。 + 屋根材適合性表にない製品の情報を入力してください。 今後返信いたします。 + + + +
+ + ) +} diff --git a/src/components/ui/Main.tsx b/src/components/ui/Main.tsx index 37de8e7..9931293 100644 --- a/src/components/ui/Main.tsx +++ b/src/components/ui/Main.tsx @@ -1,27 +1,9 @@ 'use client' -import { useHeaderStore } from '@/store/header' -import { useSideNavState } from '@/store/sideNavState' -import { usePathname, useRouter } from 'next/navigation' -import { useEffect } from 'react' +import { useRouter } from 'next/navigation' export default function Main() { const router = useRouter() - const pathname = usePathname() - const { setBackBtn } = useHeaderStore() - const { reset } = useSideNavState() - - /** - * 헤더 뒤로가기 버튼 컨트롤 - * 사이드바 초기화 컨트롤 - */ - useEffect(() => { - if (pathname === '/') { - setBackBtn(false) - } - //사이드바 초기화 - reset() - }, [pathname]) return ( <> @@ -30,7 +12,7 @@ export default function Main() {
屋根材の照会
ご使用の屋根材の適合性をご確認いただけます
-
diff --git a/src/components/ui/PopupController.tsx b/src/components/ui/PopupController.tsx index e221d6a..0bf79e7 100644 --- a/src/components/ui/PopupController.tsx +++ b/src/components/ui/PopupController.tsx @@ -1,8 +1,12 @@ 'use client' import { usePopupController } from '@/store/popupController' + import MemberInfomationPopup from '../popup/MemberInformationPopup' import ZipCodePopup from '../popup/ZipCodePopup' +import Alert from './common/Alert' +import DoubleBtnAlert from './common/DoubleBtnAlert' +import SuitableDetailPopup from '../popup/SuitableDetailPopup' export default function PopupController() { const popupController = usePopupController() @@ -11,6 +15,9 @@ export default function PopupController() { <> {popupController.memberInfomationPopup && } {popupController.zipCodePopup && } + {popupController.alert && } + {popupController.alert2 && } + {popupController.suitableDetailPopup && } ) } diff --git a/src/components/ui/common/Alert.tsx b/src/components/ui/common/Alert.tsx new file mode 100644 index 0000000..96dd5ca --- /dev/null +++ b/src/components/ui/common/Alert.tsx @@ -0,0 +1,24 @@ +'use client' + +import { usePopupController } from '@/store/popupController' + +export default function Alert() { + const { alertMsg, alertBtn } = usePopupController() + + return ( +
+
+
+
{alertMsg}
+
+
+ +
+
+
+
+
+ ) +} diff --git a/src/components/ui/common/DoubleBtnAlert.tsx b/src/components/ui/common/DoubleBtnAlert.tsx new file mode 100644 index 0000000..34af34b --- /dev/null +++ b/src/components/ui/common/DoubleBtnAlert.tsx @@ -0,0 +1,21 @@ +import React from 'react' + +export default function DoubleBtnAlert() { + return ( +
+
+
+
本当に削除しますか?
+
+
+ +
+
+ +
+
+
+
+
+ ) +} diff --git a/src/providers/EdgeProvider.tsx b/src/providers/EdgeProvider.tsx new file mode 100644 index 0000000..5c4e53c --- /dev/null +++ b/src/providers/EdgeProvider.tsx @@ -0,0 +1,66 @@ +'use client' + +import { useHeaderStore } from '@/store/header' +import { usePopupController } from '@/store/popupController' +import { useSideNavState } from '@/store/sideNavState' +import { usePathname } from 'next/navigation' +import { useEffect } from 'react' + +declare global { + interface Window { + alert2: (msg: string, alert2BtnYes?: () => void, alert2BtnNo?: () => void) => void + } +} + +export default function EdgeProvider({ children }: React.PropsWithChildren) { + const pathname = usePathname() + const { setBackBtn } = useHeaderStore() + const { reset } = useSideNavState() + const { setAlertMsg, setAlertBtn, setAlert, setAlert2, setAlert2BtnYes, setAlert2BtnNo } = usePopupController() + + const alertFunc = (msg: string, alertBtn: Function) => { + console.log('🚀 ~ alertFunc ~ msg:', msg) + setAlertMsg(msg) + setAlertBtn(alertBtn) + setAlert(true) + } + /** + * alert2 함수 + * @param msg alert 메시지 + * @param alertBtn2Yes alert 확인 버튼 클릭시 실행되는 함수 + * @param alertBtn2No alert 취소 버튼 클릭시 실행되는 함수 + */ + const alertFunc2 = (msg: string, alertBtn2Yes: Function, alertBtn2No: Function) => { + console.log('🚀 ~ alertFunc ~ msg:', msg) + setAlertMsg(msg) + setAlert2BtnYes(alertBtn2Yes) + setAlert2BtnNo(alertBtn2No) + setAlert2(true) + } + + useEffect(() => { + window.alert = function (msg, alertBtn = () => setAlert(false)) { + alertFunc(msg, alertBtn) + } + + window.alert2 = function (msg, alert2BtnYes = () => setAlert2(false), alert2BtnNo = () => setAlert2(false)) { + alertFunc2(msg, alert2BtnYes, alert2BtnNo) + } + }, []) + + /** + * 헤더 뒤로가기 버튼 컨트롤 + * 사이드바 초기화 컨트롤 + */ + useEffect(() => { + if (pathname === '/') { + setBackBtn(false) + } else { + setBackBtn(true) + } + //사이드바 초기화 + reset() + }, [pathname]) + + return <>{children} +} diff --git a/src/store/popupController.ts b/src/store/popupController.ts index 2a83120..611bb55 100644 --- a/src/store/popupController.ts +++ b/src/store/popupController.ts @@ -3,23 +3,59 @@ import { create } from 'zustand' type PoupControllerState = { memberInfomationPopup: boolean zipCodePopup: boolean + alertMsg: string + setAlertMsg: (value: string) => void + alert: boolean + alertBtn: Function + alert2: boolean + alert2BtnYes: Function + alert2BtnNo: Function setMemberInfomationPopup: (value: boolean) => void setZipCodePopup: (value: boolean) => void + setAlert: (value: boolean) => void + setAlertBtn: (value: Function) => void + setAlert2: (value: boolean) => void + setAlert2BtnYes: (value: Function) => void + setAlert2BtnNo: (value: Function) => void + suitableDetailPopup: boolean + setSuitableDetailPopup: (value: boolean) => void + reset: () => void } type InitialState = { memberInfomationPopup: boolean zipCodePopup: boolean + alertMsg: string + alert: boolean + alertBtn: Function + alert2: boolean + alert2BtnYes: Function + alert2BtnNo: Function + suitableDetailPopup: boolean } const initialState: InitialState = { memberInfomationPopup: false, zipCodePopup: false, + alertMsg: '', + alert: false, + alertBtn: () => {}, + alert2: false, + alert2BtnYes: () => {}, + alert2BtnNo: () => {}, + suitableDetailPopup: false, } export const usePopupController = create((set) => ({ ...initialState, setMemberInfomationPopup: (value: boolean) => set((state) => ({ ...state, memberInfomationPopup: value })), setZipCodePopup: (value: boolean) => set((state) => ({ ...state, zipCodePopup: value })), + setAlertMsg: (value: string) => set((state) => ({ ...state, alertMsg: value })), + setAlert: (value: boolean) => set((state) => ({ ...state, alert: value })), + setAlertBtn: (value: Function) => set((state) => ({ ...state, alertBtn: value })), + setAlert2: (value: boolean) => set((state) => ({ ...state, alert2: value })), + setAlert2BtnYes: (value: Function) => set((state) => ({ ...state, alert2BtnYes: value })), + setAlert2BtnNo: (value: Function) => set((state) => ({ ...state, alert2BtnNo: value })), + setSuitableDetailPopup: (value: boolean) => set((state) => ({ ...state, suitableDetailPopup: value })), reset: () => set(initialState), })) diff --git a/src/styles/base/_inputs.scss b/src/styles/base/_inputs.scss index 7bc0784..b6bddc8 100644 --- a/src/styles/base/_inputs.scss +++ b/src/styles/base/_inputs.scss @@ -82,13 +82,13 @@ input::-webkit-inner-spin-button { width: 100%; padding: 0 10px; height: 40px; - font-size: $font-s-13; - color: $font-c; - font-weight: $font-w-400; background-color: $white-fff; border: 1px solid #D5DEE8; border-radius: 4px; input{ + font-size: $font-s-13; + color: $font-c; + font-weight: $font-w-400; width: 100%; height: 100%; background-color: transparent; @@ -194,4 +194,11 @@ input::-webkit-inner-spin-button { } } } + &.change{ + height: 40px; + padding-left: 10px; + &::before{ + display: none; + } + } } diff --git a/src/styles/components/_login.scss b/src/styles/components/_login.scss index 7aae640..c577177 100644 --- a/src/styles/components/_login.scss +++ b/src/styles/components/_login.scss @@ -16,4 +16,10 @@ margin-top: 24px; } } +} + +@media screen and (max-width: 360px){ + .login-contents{ + padding: 70px 34px 0; + } } \ No newline at end of file diff --git a/src/styles/components/_main.scss b/src/styles/components/_main.scss index 0c1f3b5..eb35446 100644 --- a/src/styles/components/_main.scss +++ b/src/styles/components/_main.scss @@ -88,4 +88,12 @@ } } } +} + +@media screen and (max-width: 360px){ + .main-grid-wrap{ + .main-grid-bx{ + padding: 40px 20px 20px; + } + } } \ No newline at end of file diff --git a/src/styles/components/_pop-contents.scss b/src/styles/components/_pop-contents.scss index 88180a2..3eb796b 100644 --- a/src/styles/components/_pop-contents.scss +++ b/src/styles/components/_pop-contents.scss @@ -33,4 +33,11 @@ .btn-flex-wrap{ margin-top: 20px; } +} + +// 지붕재 적합성 상세 +.compliance-check-pop-contents{ + padding: 14px; + border-top: 1px solid #ECECEC; + margin-top: 10px; } \ No newline at end of file diff --git a/src/styles/components/_sub.scss b/src/styles/components/_sub.scss index c1f05f8..9f52715 100644 --- a/src/styles/components/_sub.scss +++ b/src/styles/components/_sub.scss @@ -17,6 +17,10 @@ @include defaultFont($font-s-13, $font-w-400, #A8B6C7); } } + .data-input-guide{ + margin-top: 8px; + @include defaultFont($font-s-13, $font-w-400, #A8B6C7); + } } .btn-flex-wrap{ @@ -25,6 +29,14 @@ .btn-bx{ flex: 1; } + &.com{ + .btn-bx{ + flex: 1 1 auto; + button{ + font-size: 12px; + } + } + } } // 매물 common @@ -177,6 +189,13 @@ padding-left: 6px; } } + &.nodata{ + .sale-item-nodata{ + padding: 5px 0; + text-align: center; + @include defaultFont($font-s-15, $font-w-500, $font-c); + } + } } .sale-edit-btn{ margin-top: 24px; @@ -335,6 +354,14 @@ top: 0; right: 0; } + &.nodata{ + padding-right: 0; + .inquiry-item-nodata{ + padding: 10px 0; + text-align: center; + @include defaultFont($font-s-15, $font-w-500, $font-c); + } + } } } } @@ -360,9 +387,12 @@ @include flex(0px); align-items: center; .file-item-name{ + @include ellipsis(1); @include defaultFont($font-s-13, $font-w-400, $font-c); + padding-right: 10px; } .file-del{ + flex: none; display: block; margin-left: auto; width: 16px; @@ -416,4 +446,177 @@ .inquiry-answer-date{ @include defaultFont($font-s-13, $font-w-400, #F86A56); } +} + +// 비밀번호 변경 +.border-frame{ + padding: 20px; + border-top: 1px solid #ECECEC; + border-bottom: 1px solid #ECECEC; + background-color: #fff; + margin-bottom: 10px; + &:last-child{ + border-bottom: none; + padding-bottom: 0; + margin-bottom: 0; + } +} +.pw-guide{ + .pw-guide-tit{ + @include defaultFont($font-s-16, $font-w-500, #1259CB); + } + .pw-guide-txt{ + @include defaultFont($font-s-13, $font-w-400, #417DDC); + } +} + +// 지붕재 적합성 +.compliance-icon{ + display: block; + width: 22px; + height: 22px; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + &.check{ + background-image: url(/assets/images/sub/compliance_check_icon.svg); + } + &.x{ + background-image: url(/assets/images/sub/compliance_x_icon.svg); + } + &.quest{ + background-image: url(/assets/images/sub/compliance_quest_icon.svg); + } + &.tip{ + background-image: url(/assets/images/sub/compliance_tip_icon.svg); + } +} +.compliance-check-wrap{ + padding-top: 10px; +} +.compliance-check-bx{ + position: relative; + padding: 14px 18px; + border: 1px solid #EFEFEF; + border-radius: 4px; + margin-bottom: 10px; + &:last-child{ + margin-bottom: 0; + } + &.act{ + .bx-btn{ + transform: rotate(0) !important; + } + .reference-list{ + display: block + } + } +} +.check-name-wrap{ + @include flex(0px); + align-items: center; + .check-name{ + @include defaultFont($font-s-13, $font-w-500, $font-c); + } + .check-name-btn{ + margin-left: auto; + .bx-btn{ + display: block; + width: 22px; + height: 22px; + background: url(/assets/images/sub/compliance_bx_icon.svg)no-repeat center; + transform: rotate(180deg); + } + } +} +.reference-list{ + display: none; + margin-top: 10px; + padding-top: 14px; + border-top: 1px solid #ECECEC; + transition: all .15s ease-in-out; + .reference-item{ + margin-bottom: 8px; + padding-left: 14px; + .reference-item-bx{ + @include flex(10px); + @include defaultFont($font-s-13, $font-w-400, $font-c); + align-items: center; + } + &:last-child{ + margin-bottom: 0; + } + } + &.check{ + .reference-item{ + margin-bottom: 14px; + } + } +} +.compliace-nodata{ + margin-top: 24px; + padding: 30px 0; + @include defaultFont($font-s-13, $font-w-400, $font-c); + text-align: center; +} +.compliace-nosearch{ + padding: 30px 0; + span{ + display: block; + @include defaultFont($font-s-13, $font-w-400, $font-c); + text-align: center; + } +} +.check-form-box{ + &.com-tit{ + label{ + &:before{ + width: 20px; + height: 20px; + top: 0; + } + } + input[type="checkbox"]:checked + label{ + font-weight: 500; + &::after{ + left: -1px; + } + } + } + &.com-txt{ + label{ + @include defaultFont($font-s-13, $font-w-400, #8595A7); + &:before{ + width: 20px; + height: 20px; + top: 0; + } + } + input[type="checkbox"]:checked + label{ + &::after{ + left: -1px; + } + } + } +} +.check-item-wrap{ + display: flex; + align-items: center; +} +.compliance-icon-wrap{ + margin-left: auto; + display: flex; + align-items: center; +} + +@media screen and (max-width: 360px){ + .btn-flex-wrap{ + flex-direction: column; + } + .data-check-wrap{ + .radio-form-box, + .check-form-box{ + width: 100%; + } + } } \ No newline at end of file diff --git a/src/styles/publishpage.scss b/src/styles/publishpage.scss index 64e89e0..e27a6fd 100644 --- a/src/styles/publishpage.scss +++ b/src/styles/publishpage.scss @@ -31,6 +31,7 @@ $default-color: #2C2C2C; .p-body{ margin-top: 30px; + padding-bottom: 70px; flex: 1 1 auto; .p-contents{ max-width: 1480px;