diff --git a/public/static/images/canvas/img_check_fail.svg b/public/static/images/canvas/img_check_fail.svg new file mode 100644 index 0000000..2941a08 --- /dev/null +++ b/public/static/images/canvas/img_check_fail.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/static/images/canvas/img_check_success.svg b/public/static/images/canvas/img_check_success.svg new file mode 100644 index 0000000..0ced9e6 --- /dev/null +++ b/public/static/images/canvas/img_check_success.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/static/images/canvas/img_edit_ico.svg b/public/static/images/canvas/img_edit_ico.svg new file mode 100644 index 0000000..abc1118 --- /dev/null +++ b/public/static/images/canvas/img_edit_ico.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/static/images/sub/attachment_ico.svg b/public/static/images/sub/attachment_ico.svg index 7e622a4..71b132f 100644 --- a/public/static/images/sub/attachment_ico.svg +++ b/public/static/images/sub/attachment_ico.svg @@ -1,11 +1,5 @@ - - - - - - - - - - + + + + diff --git a/public/static/images/sub/change_ico.svg b/public/static/images/sub/change_ico.svg new file mode 100644 index 0000000..b0dda7e --- /dev/null +++ b/public/static/images/sub/change_ico.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/static/images/sub/click_check_ico.svg b/public/static/images/sub/click_check_ico.svg index 4fc2dae..d92ca90 100644 --- a/public/static/images/sub/click_check_ico.svg +++ b/public/static/images/sub/click_check_ico.svg @@ -1,4 +1,5 @@ - - - + + + + diff --git a/public/static/images/sub/open_ico.svg b/public/static/images/sub/open_ico.svg new file mode 100644 index 0000000..2ef23b7 --- /dev/null +++ b/public/static/images/sub/open_ico.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/app/canvas/page.jsx b/src/app/canvas/page.jsx index bee72a7..351a6fd 100644 --- a/src/app/canvas/page.jsx +++ b/src/app/canvas/page.jsx @@ -87,10 +87,10 @@ export default function CanvasPage() { {/* */} {/* 배치면 초기 설정 */} - {/* */} + {/* 캔버스 기본 셋팅 */} - {modalOption.option && } + {/* {modalOption.option && } */} {/* 점·선 그리드 설정 */} {/* {modalOption.gridoption && } */} @@ -198,7 +198,7 @@ export default function CanvasPage() { {/* */} {/* 이미지 크기 조절 */} - + {/* */} {menuValue === 5 && } diff --git a/src/components/canvas/CanvasEstimate.jsx b/src/components/canvas/CanvasEstimate.jsx index 946e184..7eb12c3 100644 --- a/src/components/canvas/CanvasEstimate.jsx +++ b/src/components/canvas/CanvasEstimate.jsx @@ -1,101 +1,12 @@ -'use client' -import { useState } from "react"; import SingleDatePicker from "../common/datepicker/SingleDatePicker"; -import Footer from "../layout/Footer"; + import FileDownOptionPop from "./estimatepop/FileDownOptionPop"; import ProductFeaturesPop from "./estimatepop/ProductFeaturesPop"; -import QGrid from "../common/grid/QGrid"; -const HeaderCheckButton = () => { - return( - - - - - ) -} -const CellCheckButton = () => { - return( - - - - - ) -} - -const CellProductName = () => { - return( - - - - Re.RISE415 - - - - 追加、変更資材 - - - ) -} - -const CellShapePlate = () => { - return( - - HNW-MC4-CHN30 - - - ) -} - -const CellQuantity = () =>{ - return( - - - - ) -} - -const CellUnitPrice = () =>{ - return( - - - - - - OPEN - - - ) -} +import ReactSelect from "../common/reactselect/ReactSelect"; export default function CanvasEstimate() { - const [gridProps, setGridProps] = useState({ - gridData: [ - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - { status: "受付", item: "100", unit: "セット", amountExTax: "5,561,000 " }, - ], - gridColumns:[ - { field: "check", width: 45, cellRenderer: CellCheckButton, headerComponent: HeaderCheckButton, cellStyle: { display: 'flex', alignItems: 'center', justifyContent: 'center' }}, - { headerName: "アイテム ", field: "item", width: 100, cellStyle: { textAlign: "right" } }, - { headerName: "品番", field: "productName", flex: 1, cellRenderer: CellProductName, cellStyle: { display: 'flex', alignItems: 'center'} }, - { headerName: "型板", field: "shapePlate", width: 200, cellRenderer: CellShapePlate, cellStyle: { display: 'flex', alignItems: 'center'} }, - { headerName: "数量", field: "quantity", width: 120, cellRenderer: CellQuantity, cellStyle: { display: 'flex', alignItems: 'center'} }, - { headerName: "単位", field: "unit", width: 100, }, - { headerName: "単価", field: "unitPrice", cellRenderer: CellUnitPrice, cellStyle: { display: 'flex', alignItems: 'center'} }, - { headerName: "金額 (税別別) ", field: "amountExTax", cellStyle: { textAlign: "right" }, width: 240, }, - ], - isPageable: true, - }) return( @@ -485,18 +396,221 @@ export default function CanvasEstimate() { Pricing - - 添付必須 - クリックして製品の特異性を確認する - + + 製品価格 OPEN + 追加, 変更資材 + 添付必須 + クリックして製品の特異性を確認する + 製品を追加 製品削除 - - + + + + + + + + + + + + + + + + + + + + + アイテム + 品番 + 型板 + 数量 + 単位 + 単価 + 金額 (税別別) + + + + + + + + + + + 100 + + + + + + + + + + + + + HNW-MC4-CHN30 + + + + + + + + + + + + セット + + + + + + + + + + + 5,561,000 + + + + + + + + + 100 + + + + + + + + + + + + + HNW-MC4-CHN30 + + + + + + + + + + + セット + + + + + + + + + + + 5,561,000 + + + + + + + + + 100 + + + + + + + + + + + + + HNW-MC4-CHN30 + + + + + + + + + セット + + + + + + + + + + + 5,561,000 + + + + + + + + + 100 + + + + + + + + + + + HNW-MC4-CHN30 + + + + + + + + + + + セット + + + + + + + + + 5,561,000 + + + diff --git a/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx b/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx index 2cd493f..62ce0f1 100644 --- a/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx +++ b/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx @@ -152,6 +152,22 @@ export default function PlacementSettingPop(){ */} + + ファイルを読み込む + + + + + ファイルの追加 + + + + + + + + + diff --git a/src/components/common/reactselect/ReactSelect.jsx b/src/components/common/reactselect/ReactSelect.jsx index e9627e5..0139287 100644 --- a/src/components/common/reactselect/ReactSelect.jsx +++ b/src/components/common/reactselect/ReactSelect.jsx @@ -10,6 +10,11 @@ export default function ReactSelect(){ { label: '敬称選択', value: '3' }, { label: '敬称選択', value: '5' }, { label: '敬称選択', value: '6' }, + { label: '敬称選択', value: '7' }, + { label: '敬称選択', value: '8' }, + { label: '敬称選択', value: '9' }, + { label: '敬称選択', value: '10' }, + { label: '敬称選択', value: '11' }, ] diff --git a/src/components/publishpage/PublishPage.jsx b/src/components/publishpage/PublishPage.jsx index 7eb6c8f..5ab3df7 100644 --- a/src/components/publishpage/PublishPage.jsx +++ b/src/components/publishpage/PublishPage.jsx @@ -143,11 +143,16 @@ export default function PublishPage() { - + 2024-10-28 canvas-setting pop 수정 이미지 크기조절 pop 추가 + + 2024-10-29 + 견적서 하단 테이블 변경 + 배치면 초기 설정 pop 이미지파일 업로드 추가 + 2024-10-28 diff --git a/src/styles/_contents.scss b/src/styles/_contents.scss index e4f6a6b..8e29b78 100644 --- a/src/styles/_contents.scss +++ b/src/styles/_contents.scss @@ -23,6 +23,7 @@ left: 0; display: block; width: 100%; + height: 46.8px; padding-bottom: 0; background-color: #383838; transition: padding .17s ease-in-out; @@ -544,9 +545,9 @@ .sub-content{ padding-top: 46px; .sub-content-inner{ - max-width: 1720px; + max-width: 1760px; margin: 0 auto; - padding-top: 20px; + padding: 20px 20px 0; .sub-content-box{ margin-bottom: 20px; &:last-child{ @@ -897,45 +898,63 @@ display: flex; align-items: center; margin-right: 15px; - .attachment-required{ + .explane-item{ position: relative; display: flex; align-items: center; + padding: 0 10px; font-size: 12px; font-weight: 400; - color: #45576F; - padding-right: 10px; - .ico{ - width: 23px; - height: 23px; + span{ + width: 20px; + height: 20px; margin-right: 5px; - background: url(../../public/static/images/sub/attachment_ico.svg)no-repeat center; background-size: cover; + background-repeat: no-repeat; + background-position: center; } - &::before{ + &:before{ content: ''; position: absolute; top: 50%; - right: 0; + left: 0; transform: translateY(-50%); width: 1px; height: 12px; background-color: #D9D9D9; } - } - .click-check{ - display: flex; - align-items: center; - font-size: 12px; - font-weight: 400; - color: #F16A6A ; - padding-left: 10px; - .ico{ - width: 14px; - height: 14px; - margin-right: 5px; - background: url(../../public/static/images/sub/click_check_ico.svg)no-repeat center; - background-size: cover; + &:first-child{ + padding-left: 0; + &::before{ + display: none; + } + } + &:last-child{ + padding-right: 0; + } + &.item01{ + color: #3BBB48; + span{ + background-image: url(../../public/static/images/sub/open_ico.svg); + } + } + &.item02{ + color: #909000; + span{ + background-image: url(../../public/static/images/sub/change_ico.svg); + } + } + &.item03{ + color: #0191C9; + span{ + background-image: url(../../public/static/images/sub/attachment_ico.svg); + } + } + &.item04{ + color: #F16A6A; + span{ + background-image: url(../../public/static/images/sub/click_check_ico.svg); + } } } } @@ -960,7 +979,6 @@ } } } - } // 발전시물레이션 diff --git a/src/styles/_grid-detail.scss b/src/styles/_grid-detail.scss index 0392bae..1f6a227 100644 --- a/src/styles/_grid-detail.scss +++ b/src/styles/_grid-detail.scss @@ -128,10 +128,3 @@ } } -.grid-tip{ - display: block; - width: 15px; - height: 15px; - background: url(../../public/static/images/sub/grid_tip.svg)no-repeat center; - background-size: cover; -} \ No newline at end of file diff --git a/src/styles/_layout.scss b/src/styles/_layout.scss index 2bddf61..7f3834d 100644 --- a/src/styles/_layout.scss +++ b/src/styles/_layout.scss @@ -1,7 +1,7 @@ .wrap{ display: flex; flex-direction: column; - min-width: 1600px; + min-width: 1280px; min-height: 100vh; overflow-x: hidden; } diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss index 64485cf..06713e5 100644 --- a/src/styles/_modal.scss +++ b/src/styles/_modal.scss @@ -399,6 +399,12 @@ $alert-color: #101010; color: $pop-color; border-bottom: 1px solid #424242; padding-left: 20px; + vertical-align: middle; + .flex-box{ + display: flex; + align-items: center; + height: 100%; + } } &:first-child{ td, @@ -470,6 +476,53 @@ $alert-color: #101010; } } +.img-edit-btn{ + flex: none; + display: flex; + align-items: center; + height: 30px; + padding: 0 10px; + font-size: 12px; + font-weight: 400; + color: #101010; + background-color: #fff; + border-radius: 2px; + .img-edit{ + width: 16px; + height: 16px; + background: url(../../public/static/images/canvas/img_edit_ico.svg)no-repeat center; + background-size: cover; + margin-right: 5px; + } + &:hover{ + background-color: #ebebeb; + } +} +.img-name-wrap{ + display: flex; + align-items: center; + width: 100%; + margin-left: 10px; + input{ + flex: 1; + margin-right: 5px; + } + .img-check{ + flex: none; + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-position: center; + background-size: cover; + &.suc{ + background-image: url(../../public/static/images/canvas/img_check_success.svg); + } + &.fail{ + background-image: url(../../public/static/images/canvas/img_check_fail.svg); + } + } +} + // 외벽선 그리기 .outline-wrap{ padding: 24px 0; diff --git a/src/styles/_table.scss b/src/styles/_table.scss index d7e1c40..4dcef37 100644 --- a/src/styles/_table.scss +++ b/src/styles/_table.scss @@ -430,4 +430,82 @@ table{ } } } +} + +// 견적서 테이블 +.esimate-table{ + table{ + table-layout: fixed; + border-collapse: separate; + thead{ + tr{ + th{ + text-align: center; + font-size: 13px; + color: #fff; + font-weight: 600; + padding: 11px 5px; + background-color: #5D6A76; + &:first-child{ + border-radius: 4px 0 0 4px; + } + &:last-child{ + border-radius: 0 4px 4px 0; + } + } + } + } + tbody{ + tr{ + td{ + padding: 5px 10px; + font-size: 13px; + color: #45576F; + font-weight: 400; + border-bottom: 1px solid #ECF0F4; + .form-flex-wrap{ + display: flex; + align-items: center; + .input-wrap, + .select-wrap{ + flex: 1; + } + .btn-area{ + flex: none; + } + .icon-wrap{ + margin-left: auto; + display: flex; + align-items: center; + gap: 5px; + } + } + .tb_ico{ + display: block; + width: 20px; + height: 20px; + background-repeat: no-repeat; + background-position: center; + background-size: cover; + &.change_check{ + background-image: url(../../public/static/images/sub/change_ico.svg); + } + &.file_check{ + background-image: url(../../public/static/images/sub/attachment_ico.svg); + } + &.open_check{ + background-image: url(../../public/static/images/sub/open_ico.svg); + } + } + .grid-tip{ + display: block; + width: 20px; + height: 20px; + background: url(../../public/static/images/sub/click_check_ico.svg)no-repeat center; + background-size: cover; + } + } + } + } + } } \ No newline at end of file