diff --git a/src/assets/head-right-bg.png b/public/head-right-bg.png similarity index 100% rename from src/assets/head-right-bg.png rename to public/head-right-bg.png diff --git a/public/proj-card-head-bg.png b/public/proj-card-head-bg.png new file mode 100644 index 0000000..ac6abee Binary files /dev/null and b/public/proj-card-head-bg.png differ diff --git a/src/App.tsx b/src/App.tsx index 875238e..4b3a04e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,6 +2,7 @@ import Head from './layout/head/Head.tsx'; import Body from './layout/body/Body.tsx'; import Foot from './layout/foot/Foot.tsx'; + const App: React.FC = () => { return ( <> diff --git a/src/components/card/CardProjType.tsx b/src/components/card/CardProjType.tsx index 14163b0..ab2fa65 100644 --- a/src/components/card/CardProjType.tsx +++ b/src/components/card/CardProjType.tsx @@ -8,7 +8,10 @@ export default function CardProjType(props: ICardProj) { const [chargeAmount, setChargeAmount] = useState(0); const renderContents = (lineIndex: number, contents: string[]) => { - return contents.map((item, index) =>
  • {item}
  • ); + return contents.map((item, index) =>
  • + {index + 1} + {item} +
  • ); } const renderLines = () => { @@ -17,7 +20,7 @@ export default function CardProjType(props: ICardProj) {
    {line.title}
    -
      {renderContents(index, line.contents)}
    +
    ) @@ -38,15 +41,17 @@ export default function CardProjType(props: ICardProj) { } return ( <> -
    { - props.chargeLineArray.map((line, index) => ( -
    - { - onChargeChange(e.target.checked, line); - }}>{line.title} -
    - )) - }
    +
    + { + props.chargeLineArray.map((line, index) => ( +
    + { + onChargeChange(e.target.checked, line); + }}>{line.title} +
    + )) + } +
    ) } diff --git a/src/components/card/card-proj-agent.css b/src/components/card/card-proj-agent.css index 865df57..ce8019a 100644 --- a/src/components/card/card-proj-agent.css +++ b/src/components/card/card-proj-agent.css @@ -1,7 +1,6 @@ .card-proj-agent { - border-radius: 6px; - border: 1px solid var(--color-border); - padding: 15px; + background-color: var(--color-light); + padding: 5px 15px; } .card-proj-agent .left { @@ -24,8 +23,8 @@ border-left: 0; border-bottom: 0; border-right: 0; - margin-block-start: 10px; - margin-block-end: 10px; + margin-block-start: 5px; + margin-block-end: 5px; } .card-proj-agent .title .left { diff --git a/src/components/card/card-proj-type.css b/src/components/card/card-proj-type.css index 56fb5ba..8fa1de6 100644 --- a/src/components/card/card-proj-type.css +++ b/src/components/card/card-proj-type.css @@ -1,43 +1,99 @@ .proj { width: 250px; + position: relative; } .proj .proj-head { - margin-bottom: 15px; - padding: 15px; font-size: 20px; - font-weight: bold; text-align: center; - border: 1px solid var(--color-border); + background-image: url('./proj-card-head-bg.png'); + background-size: 100% 100%; + background-repeat: no-repeat; + position: absolute; + width: 175px; + height: 40px; + line-height: 40px; + color: var(--color-light); + left: 38px; + top: -4px; } .proj .proj-body { - min-height: 360px; + min-height: 385px; margin-bottom: 15px; - padding: 15px; + padding: 60px 15px 15px 15px; display: flex; flex-direction: column; justify-content: space-between; - - border: 1px solid var(--color-border); + background-color: rgba(244,206,152,0.28); + border-radius: 10px; } .proj .proj-body .line .line-title { font-size: 16px; font-weight: bold; + margin-top: 10px; + margin-bottom: 10px; + padding-left: 30px; } -.proj .proj-body .line .line-content ol { - padding-left: 15px; +.proj .proj-body .line:first-child .line-title { + margin-top: 0; +} +.proj .proj-body .line .line-content ul { +} + +.proj .proj-body .line .line-content ul li { + display: flex; + align-items: center; + margin-bottom: 5px; +} + +.proj .proj-body .line .line-content ul li:last-child { + margin-bottom: 0; +} + +.proj .proj-body .line .line-content ul li .index { + width: 20px; + height: 20px; + line-height: 20px; + border-radius: 50%; + display: inline-block; + background-color: rgba(251,176,59,1); + text-align: center; + color: var(--color-light); + font-size: 12px; +} + +.proj .proj-body .line .line-content ul li .title { + margin-left: 10px; + height: 20px; + line-height: 20px; } .proj .proj-body .proj-charge { + margin-top: 10px; + padding-top: 10px; + border-top: 1px dotted var(--color-light); +} + +.proj .proj-body .proj-charge .ant-checkbox-wrapper .ant-checkbox-inner { + background-color: transparent; +} + +.proj .proj-body .proj-charge .ant-checkbox-wrapper:hover .ant-checkbox-inner { + border-color: var(--color-orange); +} + +.proj .proj-body .proj-charge .ant-checkbox-wrapper .ant-checkbox-checked .ant-checkbox-inner, +.proj .proj-body .proj-charge .ant-checkbox-wrapper:hover .ant-checkbox-checked .ant-checkbox-inner { + border-color: var(--color-orange); + background-color: var(--color-orange); } .proj .proj-foot { - padding: 15px; - border: 1px solid var(--color-border); + padding: 0 10px; display: flex; justify-content: center; align-items: center; @@ -46,9 +102,20 @@ .proj .proj-foot .buy-btn { text-align: center; margin: 0 5px; + padding: 10px 0; + background-color: var(--color-orange); + color: var(--color-light); flex-basis: 100%; } +.proj .proj-foot .buy-btn hr { + margin: 5px auto; + width: 80%; + height: 1px; + border: none; + background-color: var(--color-light); +} + .proj .proj-foot .buy-btn .price { } .proj .proj-foot .buy-btn .buy { @@ -58,4 +125,5 @@ border: none; cursor: pointer; background-color: transparent; + color: var(--color-light); } \ No newline at end of file diff --git a/src/components/card/card-proj.css b/src/components/card/card-proj.css index 6641104..4ca9b40 100644 --- a/src/components/card/card-proj.css +++ b/src/components/card/card-proj.css @@ -1,7 +1,7 @@ .card-proj { border-radius: 6px; - border: 1px solid var(--color-border); - padding: 15px; + background-color: var(--color-light); + padding: 5px 15px; } .card-proj .left { @@ -24,8 +24,8 @@ border-left: 0; border-bottom: 0; border-right: 0; - margin-block-start: 10px; - margin-block-end: 10px; + margin-block-start: 5px; + margin-block-end: 5px; } .card-proj .title .left { diff --git a/src/components/list/ListProj.tsx b/src/components/list/ListProj.tsx index ea26cc1..d90d132 100644 --- a/src/components/list/ListProj.tsx +++ b/src/components/list/ListProj.tsx @@ -4,6 +4,7 @@ import {useRef, MutableRefObject} from "react"; import {Input, Pagination} from 'antd'; import type {SearchProps} from 'antd/es/input/Search'; + const {Search} = Input; const onSearch: SearchProps['onSearch'] = (value, _e, info) => { @@ -15,7 +16,7 @@ export default function ListProj() { const listProjRef: MutableRefObject = useRef(null); const listRef: MutableRefObject = useRef(null); - const domHeight = window.innerHeight - 301; + const domHeight = window.innerHeight - 280; return (
    @@ -32,7 +33,7 @@ export default function ListProj() {
    - +
    diff --git a/src/components/list/list-proj-agent.css b/src/components/list/list-proj-agent.css index 981abfc..9405e30 100644 --- a/src/components/list/list-proj-agent.css +++ b/src/components/list/list-proj-agent.css @@ -1,13 +1,13 @@ .list-proj-agent { width: 100%; - padding: 15px 0; } .list-proj-agent .top { - padding: 0 15px 15px 15px; + padding: 10px 15px; display: flex; justify-content: right; border-bottom: 1px solid var(--color-border); + background-color: var(--color-light); } .list-proj-agent .body { @@ -16,7 +16,7 @@ } .list-proj-agent .list { - padding: 15px; + padding: 15px 0; overflow: auto; } @@ -29,7 +29,22 @@ .list-proj-agent .body .page { border-top: 1px solid var(--color-border); - padding-top: 15px; + padding: 10px 15px; display: flex; justify-content: right; + background-color: var(--color-light); +} + +.list-proj-agent .body .page .ant-pagination-item { + border-color: var(--color-border); + color: var(--color-dark); +} + +.list-proj-agent .body .page .ant-pagination-item-active { + border-color: var(--color-orange); + background-color: var(--color-orange); +} + +.list-proj-agent .body .page .ant-pagination-item-active a { + color: var(--color-light); } \ No newline at end of file diff --git a/src/components/list/list-proj.css b/src/components/list/list-proj.css index 48d9c30..6220e55 100644 --- a/src/components/list/list-proj.css +++ b/src/components/list/list-proj.css @@ -1,13 +1,13 @@ .list-proj { width: 100%; - padding: 15px 0; } .list-proj .top { - padding: 0 15px 15px 15px; + padding: 10px 15px; display: flex; justify-content: right; border-bottom: 1px solid var(--color-border); + background-color: var(--color-light); } .list-proj .body { @@ -16,7 +16,7 @@ } .list-proj .list { - padding: 15px; + padding: 15px 0; overflow: auto; } @@ -29,7 +29,22 @@ .list-proj .body .page { border-top: 1px solid var(--color-border); - padding-top: 15px; + padding: 10px 15px; display: flex; justify-content: right; + background-color: var(--color-light); +} + +.list-proj .body .page .ant-pagination-item { + border-color: var(--color-border); + color: var(--color-dark); +} + +.list-proj .body .page .ant-pagination-item-active { + border-color: var(--color-orange); + background-color: var(--color-orange); +} + +.list-proj .body .page .ant-pagination-item-active a { + color: var(--color-light); } \ No newline at end of file diff --git a/src/components/menu/MenuTreeWithTopButton.tsx b/src/components/menu/MenuTreeWithTopButton.tsx index 716be14..0673ee6 100644 --- a/src/components/menu/MenuTreeWithTopButton.tsx +++ b/src/components/menu/MenuTreeWithTopButton.tsx @@ -33,7 +33,7 @@ export default function MenuTreeWithTopButton() { return (
    -