diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 55261f8..1ee2d52 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -1,7 +1,18 @@ +import Login from '@/components/Login' +import Footer from '@/components/ui/common/Footer' + export default function page() { return ( <> -

로그인

+
+
+
+

Hanasys 現地調査

+ +
+
+
) } diff --git a/src/app/survey-sale/[id]/basic-info/page.tsx b/src/app/survey-sale/[id]/basic-info/page.tsx new file mode 100644 index 0000000..1a0c763 --- /dev/null +++ b/src/app/survey-sale/[id]/basic-info/page.tsx @@ -0,0 +1,28 @@ +import BasicForm from '@/components/survey-sale/detail/BasicForm' +import Footer from '@/components/ui/common/Footer' +import Header from '@/components/ui/common/Header' + +export default function page() { + return ( + <> +
+
+
+
+
+
+
+ + +
+
+
+ +
+
+
+ + ) +} diff --git a/src/app/survey-sale/[id]/page.tsx b/src/app/survey-sale/[id]/page.tsx new file mode 100644 index 0000000..8bc0220 --- /dev/null +++ b/src/app/survey-sale/[id]/page.tsx @@ -0,0 +1,30 @@ +import DataTable from '@/components/survey-sale/detail/DataTable' +import DetailForm from '@/components/survey-sale/detail/DetailForm' +import Footer from '@/components/ui/common/Footer' +import Header from '@/components/ui/common/Header' + +export default function page() { + return ( + <> +
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+
+ + ) +} diff --git a/src/app/survey-sale/[id]/roof-info/page.tsx b/src/app/survey-sale/[id]/roof-info/page.tsx new file mode 100644 index 0000000..d01a5a4 --- /dev/null +++ b/src/app/survey-sale/[id]/roof-info/page.tsx @@ -0,0 +1,28 @@ +import RoofInfoForm from '@/components/survey-sale/detail/RoofInfoForm' +import Footer from '@/components/ui/common/Footer' +import Header from '@/components/ui/common/Header' + +export default function page() { + return ( + <> +
+
+
+
+
+
+
+ + +
+
+
+ +
+
+
+ + ) +} diff --git a/src/app/survey-sale/page.tsx b/src/app/survey-sale/page.tsx index cd29fcc..f6e12ea 100644 --- a/src/app/survey-sale/page.tsx +++ b/src/app/survey-sale/page.tsx @@ -1,7 +1,22 @@ +import ListTable from '@/components/survey-sale/list/ListTable' +import SearchForm from '@/components/survey-sale/list/SearchForm' +import Footer from '@/components/ui/common/Footer' +import Header from '@/components/ui/common/Header' + export default function page() { return ( <> -

조사 매물

+
+
+
+
+ + +
+
+
) } diff --git a/src/components/Login.tsx b/src/components/Login.tsx new file mode 100644 index 0000000..8f6e373 --- /dev/null +++ b/src/components/Login.tsx @@ -0,0 +1,48 @@ +'use client' + +import { useState } from 'react' + +export default function Login() { + const [pwShow, setPwShow] = useState(false) //비밀번호 보이기 숨기기 + + return ( + <> +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
Q.PARTNERS
+
+
+
+ +
+
+ + ) +} diff --git a/src/components/popup/MemberInfomationPopup.tsx b/src/components/popup/MemberInfomationPopup.tsx index 86227d8..133b6c7 100644 --- a/src/components/popup/MemberInfomationPopup.tsx +++ b/src/components/popup/MemberInfomationPopup.tsx @@ -1,4 +1,10 @@ +'use client' + +import { usePopupController } from '@/store/popupController' + export default function MemberInfomationPopup() { + const popupController = usePopupController() + return (
@@ -11,7 +17,7 @@ export default function MemberInfomationPopup() {
会員情報
- +
diff --git a/src/components/popup/ZipCodePopup.tsx b/src/components/popup/ZipCodePopup.tsx new file mode 100644 index 0000000..180d8a2 --- /dev/null +++ b/src/components/popup/ZipCodePopup.tsx @@ -0,0 +1,90 @@ +'use client' + +import { usePopupController } from '@/store/popupController' +import { useState } from 'react' + +export default function ZipCodePopup() { + const [searchValue, setSearchValue] = useState('') //search 데이터 유무 + + //search 데이터 value 추가 + const handleChange = (e: React.ChangeEvent) => { + setSearchValue(e.target.value) + } + + const popupController = usePopupController() + + return ( + <> +
+
+
+
+
+
+
+ +
+
住所検索
+
+ +
+
+
+
+
+
+ + {/*input에 데이터 있으면 삭제버튼 보임 */} + {searchValue && } + +
+
+
+
名前
+ + + + + + + + + + + + + + + + + + + + + + + + + +
都道府県市区町村市区町村以下
東京都浜松浜松町
東京都浜松浜松町
東京都浜松浜松町
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ + ) +} diff --git a/src/components/survey-sale/detail/BasicForm.tsx b/src/components/survey-sale/detail/BasicForm.tsx new file mode 100644 index 0000000..fce0e49 --- /dev/null +++ b/src/components/survey-sale/detail/BasicForm.tsx @@ -0,0 +1,89 @@ +'use client' + +export default function BasicForm() { + return ( + <> +
+
+
+
担当者名
+ +
+
+
販売店
+ +
+
+
施工店
+ +
+
+
+ +
+
+
+
現地調査日
+
+ + +
+
+
+
建物名
+ +
+
+
建物名
+ +
+
+
建物名
+
+
+ +
+
+ +
+
+
+ +
+
+
+
市区町村名, 以後の住所
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+ + ) +} diff --git a/src/components/survey-sale/detail/DataTable.tsx b/src/components/survey-sale/detail/DataTable.tsx new file mode 100644 index 0000000..414164c --- /dev/null +++ b/src/components/survey-sale/detail/DataTable.tsx @@ -0,0 +1,42 @@ +'use client' + +export default function DataTable() { + return ( + <> +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
登録番号0000000020
登録日2025.04.11
更新日時2025.04.11 15:06:29
提出可否2025.04.12 10:00:00 (INTERPLUG –販売店)
ダウンロード + +
+
+ + ) +} diff --git a/src/components/survey-sale/detail/DetailForm.tsx b/src/components/survey-sale/detail/DetailForm.tsx new file mode 100644 index 0000000..2a0bbcb --- /dev/null +++ b/src/components/survey-sale/detail/DetailForm.tsx @@ -0,0 +1,67 @@ +'use client' + +import { usePopupController } from '@/store/popupController' + +export default function DetailForm() { + const popupController = usePopupController() + + return ( + <> +
+
+
+
担当者名
+ +
+
+
販売店
+ +
+
+
施工店
+ +
+
+
+ +
+
+
+
現地調査日
+ +
+
+
建物名
+ +
+
+
顧客名
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ + ) +} diff --git a/src/components/survey-sale/detail/RoofInfoForm.tsx b/src/components/survey-sale/detail/RoofInfoForm.tsx new file mode 100644 index 0000000..bbe6546 --- /dev/null +++ b/src/components/survey-sale/detail/RoofInfoForm.tsx @@ -0,0 +1,361 @@ +'use client' + +export default function RoofInfoForm() { + return ( + <> +
+
電気関係
+
+
+
電気契約容量
+
+ +
+
+ +
+
+
+
電気小売会社
+ +
+
+
+ 電気袋設備※複数選択可能 +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+
設置希望システム
+
+ +
+
+ +
+
+
+
+ +
+
屋根関係
+
+
+
建築研修
+
+ +
+
+ + +
+
+
+
+ 屋根材※最大2個まで選択可能 +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+
建築研修
+
+ +
+
+ +
+
+
+
屋根の斜面
+
+ + +
+
+
+
住宅構造
+
+ + +
+
+ + +
+
+ +
+
+
+
垂木材質
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+
垂木サイズ
+
+ +
+
+ +
+
+
+
垂木サイズ
+
+ +
+
+ +
+
+
+
垂木の方向
+
+
+ + +
+
+ + +
+
+
+
+
路地板の種類
+
+ +
+
+ +
+
+
+
+ 路地板厚※小幅板を選択した場合, 厚さ. 小幅板間の間隔寸法を記載 +
+
+ + mm +
+
+
+
垂木の方向
+
+
+ + +
+
+ + +
+
+
+
+
住宅構造
+
+ + +
+
+ + +
+
+ +
+
+
+
断熱材の有無
+
+ + +
+
+ +
+
+ + +
+
+
+
路地板の種類
+
+ +
+
+ +
+
+
+
屋根製品名 設置可否確認
+
+ +
+
+ +
+
+
+
メモ
+
+ +
+
+ +
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+ + ) +} diff --git a/src/components/survey-sale/list/ListTable.tsx b/src/components/survey-sale/list/ListTable.tsx new file mode 100644 index 0000000..6d15b1e --- /dev/null +++ b/src/components/survey-sale/list/ListTable.tsx @@ -0,0 +1,33 @@ +'use client' + +export default function ListTable() { + return ( + <> +
+
    + {Array.from({ length: 4 }).map((_, idx) => ( +
  • +
    +
    +
    0000000021
    +
    2025.04.22
    +
    +
    Hanwha Building
    +
    Gil dong
    +
    +
    Hong Gildong
    +
    2025.04.22 10:00:21
    +
    +
    +
  • + ))} +
+
+ +
+
+ + ) +} diff --git a/src/components/survey-sale/list/SearchForm.tsx b/src/components/survey-sale/list/SearchForm.tsx new file mode 100644 index 0000000..5763dbf --- /dev/null +++ b/src/components/survey-sale/list/SearchForm.tsx @@ -0,0 +1,43 @@ +'use client' + +export default function SearchForm() { + return ( +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+ ) +} diff --git a/src/components/ui/PopupController.tsx b/src/components/ui/PopupController.tsx index 1d9f4b1..dea0207 100644 --- a/src/components/ui/PopupController.tsx +++ b/src/components/ui/PopupController.tsx @@ -2,9 +2,15 @@ import { usePopupController } from '@/store/popupController' import MemberInfomationPopup from '../popup/MemberInfomationPopup' +import ZipCodePopup from '../popup/ZipCodePopup' export default function PopupController() { const popupController = usePopupController() - return <>{popupController.memberInfomationPopup && } + return ( + <> + {popupController.memberInfomationPopup && } + {popupController.zipCodePopup && } + + ) } diff --git a/src/store/popupController.ts b/src/store/popupController.ts index 1c883f3..1c4d568 100644 --- a/src/store/popupController.ts +++ b/src/store/popupController.ts @@ -1,19 +1,33 @@ import { create } from 'zustand' +type MemberInfomationPopupState = { + memberInfomationPopup: boolean +} + +type ZipCodePopupState = { + zipCodePopup: boolean +} + type PoupControllerState = { memberInfomationPopup: boolean - setMemberInfomationPopup: (MemberInfomationPopupState: boolean) => void + zipCodePopup: boolean + setMemberInfomationPopup: (MemberInfomationPopupState: MemberInfomationPopupState) => void + setZipCodePopup: (ZipCodePopupState: ZipCodePopupState) => void } type InitialState = { memberInfomationPopup: boolean + zipCodePopup: boolean } const initialState: InitialState = { memberInfomationPopup: false, + zipCodePopup: false, } export const usePopupController = create((set) => ({ ...initialState, - setMemberInfomationPopup: (memberInfomationPopupState: boolean) => set((state) => ({ ...state, memberInfomationPopupState })), + setMemberInfomationPopup: ({ memberInfomationPopup }) => set((state) => ({ ...state, memberInfomationPopup })), + setZipCodePopup: ({ zipCodePopup }) => set((state) => ({ ...state, zipCodePopup })), + reset: () => set(initialState), }))