diff --git a/public/assets/images/sub/sale_toggle_btn.svg b/public/assets/images/sub/sale_toggle_btn.svg
new file mode 100644
index 0000000..ad2504a
--- /dev/null
+++ b/public/assets/images/sub/sale_toggle_btn.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/assets/images/sub/sale_toggle_btn_white.svg b/public/assets/images/sub/sale_toggle_btn_white.svg
new file mode 100644
index 0000000..3575065
--- /dev/null
+++ b/public/assets/images/sub/sale_toggle_btn_white.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/app/survey-sale/[id]/page.tsx b/src/app/survey-sale/[id]/page.tsx
index 52202ca..bc48257 100644
--- a/src/app/survey-sale/[id]/page.tsx
+++ b/src/app/survey-sale/[id]/page.tsx
@@ -1,11 +1,29 @@
import DataTable from '@/components/survey-sale/detail/DataTable'
import DetailForm from '@/components/survey-sale/detail/DetailForm'
+import { SurveyBasicInfo } from '@/types/Survey'
export default function page() {
+ const surveyInfo: SurveyBasicInfo = {
+ ID: 1,
+ REPRESENTATIVE: 'HG',
+ STORE: 'HWJ(T01)',
+ CONSTRUCTION_POINT: '施工点名表示',
+ INVESTIGATION_DATE: '2021-01-01',
+ BUILDING_NAME: 'ビル名表示',
+ CUSTOMER_NAME: '顧客名表示',
+ POST_CODE: '1234567890',
+ ADDRESS: '東京都千代田区永田町1-7-1',
+ ADDRESS_DETAIL: '永田町ビル101号室',
+ SUBMISSION_STATUS: true,
+ SUBMISSION_DATE: '2021-01-01',
+ DETAIL_INFO: null,
+ REG_DT: new Date(),
+ UPT_DT: new Date(),
+ }
return (
<>
-
+
>
)
}
diff --git a/src/app/survey-sale/layout.tsx b/src/app/survey-sale/layout.tsx
index f558ad6..83f37c0 100644
--- a/src/app/survey-sale/layout.tsx
+++ b/src/app/survey-sale/layout.tsx
@@ -9,10 +9,7 @@ export default function layout({ children, navTab }: SurveySaleLayoutProps) {
return (
<>
-
- {navTab}
- {children}
-
+
{children}
>
)
diff --git a/src/components/survey-sale/detail/BasicForm.tsx b/src/components/survey-sale/detail/BasicForm.tsx
index f293495..5b7fb31 100644
--- a/src/components/survey-sale/detail/BasicForm.tsx
+++ b/src/components/survey-sale/detail/BasicForm.tsx
@@ -1,10 +1,18 @@
'use client'
-import { useEffect } from 'react'
+import { useEffect, useState } from 'react'
import { useSurveySaleTabState } from '@/store/surveySaleTabState'
+import { SurveyBasicInfo } from '@/types/Survey'
+import { Mode } from 'fs'
-export default function BasicForm() {
+export default function BasicForm(props: {
+ surveyInfo: Partial
+ setSurveyInfo: (surveyInfo: Partial) => void
+ mode: Mode
+}) {
+ const { surveyInfo, setSurveyInfo, mode } = props
const { setBasicInfoSelected } = useSurveySaleTabState()
+ const [isFlip, setIsFlip] = useState(true)
useEffect(() => {
setBasicInfoSelected()
@@ -12,84 +20,101 @@ export default function BasicForm() {
return (
<>
-
-
-
-
-
-
施工店
-
+
+
setIsFlip(!isFlip)}>
+
基本情報
+
+
-
+
+
+
+
+
担当者名
+
setSurveyInfo({ ...surveyInfo, REPRESENTATIVE: e.target.value })}
+ />
+
+
+
販売店
+
setSurveyInfo({ ...surveyInfo, BUILDING_NAME: e.target.value })}
+ />
+
+
+
施工店
+
setSurveyInfo({ ...surveyInfo, CONSTRUCTION_POINT: e.target.value })}
+ />
+
+
+
+
+
+
+
現地調査日
+ {['CREATE', 'EDIT'].includes(mode as 'CREATE' | 'EDIT') ? (
+
+
+
+
+ ) : (
+
+ )}
+
+
+
+
+
郵便番号/都道府県
+
+ {/* 주소 */}
+
+
+
+
+
+
+
-
-
-
-
-
-
-
建物名
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/survey-sale/detail/DataTable.tsx b/src/components/survey-sale/detail/DataTable.tsx
index 414164c..b47c092 100644
--- a/src/components/survey-sale/detail/DataTable.tsx
+++ b/src/components/survey-sale/detail/DataTable.tsx
@@ -3,7 +3,7 @@
export default function DataTable() {
return (
<>
-
+
diff --git a/src/components/survey-sale/detail/DetailForm.tsx b/src/components/survey-sale/detail/DetailForm.tsx
index 9462e95..6e5fc24 100644
--- a/src/components/survey-sale/detail/DetailForm.tsx
+++ b/src/components/survey-sale/detail/DetailForm.tsx
@@ -1,62 +1,53 @@
'use client'
-export default function DetailForm() {
+import { Mode, SurveyBasicInfo } from '@/types/Survey'
+import { useEffect, useState } from 'react'
+import ButtonForm from './ButtonForm'
+import BasicForm from './BasicForm'
+import RoofForm from './RoofForm'
+
+export default function DetailForm(props: { surveyInfo?: SurveyBasicInfo; mode?: Mode }) {
+ const [surveyInfo, setSurveyInfo] = useState>(
+ props.surveyInfo ?? {
+ REPRESENTATIVE: '',
+ CONSTRUCTION_POINT: '',
+ STORE: '',
+ INVESTIGATION_DATE: '',
+ BUILDING_NAME: '',
+ CUSTOMER_NAME: '',
+ POST_CODE: '',
+ ADDRESS: '',
+ ADDRESS_DETAIL: '',
+ SUBMISSION_STATUS: true,
+ SUBMISSION_DATE: '2021-01-01',
+ DETAIL_INFO: null,
+ REG_DT: new Date(),
+ UPT_DT: new Date(),
+ },
+ )
+ const [roofValue, setRoofValue] = useState(false)
+ const [mode, setMode] = useState(props.mode ?? 'CREATE')
+ const basicInfoProps = { surveyInfo, setSurveyInfo, mode }
+ const roofInfoProps = { surveyInfo, mode }
+ const buttonFormProps = { mode, setMode }
+
+ useEffect(() => {
+ // setMode(props.surveyInfo ? 'EDIT' : 'CREATE')
+ }, [props.surveyInfo])
+
+ useEffect(() => {
+ console.log(surveyInfo)
+ }, [surveyInfo])
+
return (
<>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {mode}
+ {/* 기본정보 */}
+
+ {/* 전기/지붕정보 */}
+
+
>
)
diff --git a/src/styles/base/_check-radio.scss b/src/styles/base/_check-radio.scss
index d4d2904..47c50cb 100644
--- a/src/styles/base/_check-radio.scss
+++ b/src/styles/base/_check-radio.scss
@@ -85,6 +85,9 @@
input[type="checkbox"]:disabled + label::after{
cursor: default;
}
+ input[type="checkbox"]:disabled:checked + label::before{
+ background-color: #A8B6C7;
+ }
&.ch-bld{
input[type="checkbox"]:checked + label{
font-weight: 500;
diff --git a/src/styles/components/_sub.scss b/src/styles/components/_sub.scss
index ebcb374..0723ab1 100644
--- a/src/styles/components/_sub.scss
+++ b/src/styles/components/_sub.scss
@@ -77,36 +77,11 @@
}
}
}
-.sale-detail-tab-relative{
- height: 40px;
- margin-bottom: 10px;
-}
-.sale-detail-tab-wrap{
- position: fixed;
- top: 66px;
- left: 0;
- width: 100%;
- height: 40px;
- background-color: $white-fff;
- z-index: 98000;
- .sale-detail-tab-inner{
- position: relative;
- @include flex(0px);
- align-items: center;
- height: 100%;
- .sale-detail-tab{
- flex: 1;
- height: 100%;
- background-color: #fff;
- border-top: 1px solid #DDDFE2;
- border-bottom: 1px solid #DDDFE2;
- @include defaultFont($font-s-13, $font-w-500, $font-c);
- &.act{
- color: $white-fff;
- background-color: #5F738E;
- border-color: #5F738E;
- }
- }
+.sale-form-btn-wrap{
+ padding: 20px 20px 0 ;
+ background-color: #fff;
+ .btn-flex-wrap{
+ margin-top: 0;
}
}
@@ -202,6 +177,11 @@
}
// 매물 상세
+.sale-data-table-wrap{
+ padding: 24px;
+ background-color: #fff;
+ border-top: 1px solid #ECECEC;
+}
.sale-data-table{
width: 100%;
table-layout: fixed;
@@ -242,6 +222,63 @@
}
}
+.sale-detail-toggle-wrap{
+ border-top: 1px solid #ECECEC;
+}
+.sale-detail-toggle-bx{
+ border-bottom: 1px solid #ECECEC;
+}
+.sale-detail-toggle-head{
+ @include flex(5px);
+ padding: 14px 18px;
+ background-color: $white-fff;
+ cursor: pointer;
+ .sale-detail-toggle-name{
+ @include defaultFont($font-s-13, $font-w-500, $font-c);
+ }
+ .sale-detail-toggle-btn-wrap{
+ margin-left: auto;
+ .sale-detail-toggle-btn{
+ display: block;
+ width: 22px;
+ height: 22px;
+ background: url(/assets/images/sub/sale_toggle_btn.svg)no-repeat center;
+ background-size: cover
+ }
+ }
+}
+.sale-detail-toggle-cont{
+ display: none;
+ .sale-frame{
+ padding: 24px 20px;
+ &:first-child{
+ padding-top: 24px;
+ }
+ &:last-child{
+ padding-bottom: 24px;
+ }
+ }
+}
+
+.sale-detail-toggle-bx{
+ &.act{
+ .sale-detail-toggle-head{
+ background-color: #5F738E;
+ .sale-detail-toggle-name{
+ color: #fff
+ }
+ .sale-detail-toggle-btn-wrap{
+ .sale-detail-toggle-btn{
+ background: url(/assets/images/sub/sale_toggle_btn_white.svg)no-repeat center;
+ }
+ }
+ }
+ .sale-detail-toggle-cont{
+ display: block;
+ }
+ }
+}
+
// 매물 기본정보
.form-flex{
@include flex(5px);
diff --git a/src/types/Survey.ts b/src/types/Survey.ts
index 1401c47..83d2ec1 100644
--- a/src/types/Survey.ts
+++ b/src/types/Survey.ts
@@ -1,5 +1,3 @@
-import { SEARCH_OPTIONS_ENUM, SEARCH_OPTIONS_PARTNERS_ENUM, SORT_OPTIONS_ENUM } from '@/store/surveyFilterStore'
-
export type SurveyBasicInfo = {
ID: number
REPRESENTATIVE: string
@@ -130,3 +128,5 @@ export type SurveyRegistRequest = {
SUBMISSION_DATE: string | null
DETAIL_INFO: SurveyDetailRequest | null
}
+
+export type Mode = 'CREATE' | 'EDIT' | 'READ' | 'TEMP' // 등록 | 수정 | 상세 | 임시저장