From 2cd8e574d8a41f0781bba18106ab8dca31ba98f4 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Mon, 11 Mar 2024 23:33:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/balance/BalanceHead.tsx | 15 +++++++++ src/components/balance/balance-head.css | 11 +++++++ src/components/dropdown/Dropdown.tsx | 17 ++++++---- src/components/dropdown/dropdown.css | 6 ++-- src/components/message/MessageHead.tsx | 15 +++++++++ src/components/message/message-header.css | 17 ++++++++++ src/components/recharge/RechargeHead.tsx | 14 ++++++++ src/components/recharge/recharge-head.css | 3 ++ src/index.css | 13 ++++++-- src/interfaces/dropdown/IDropdown.ts | 13 ++++++++ src/layout/foot/Foot.tsx | 13 ++------ src/layout/foot/foot.css | 12 +++++++ src/layout/head/Head.tsx | 40 ++++++++++++++++++----- src/layout/head/head.css | 34 ++++++++++++++++--- 14 files changed, 188 insertions(+), 35 deletions(-) create mode 100644 src/components/balance/BalanceHead.tsx create mode 100644 src/components/balance/balance-head.css create mode 100644 src/components/message/MessageHead.tsx create mode 100644 src/components/message/message-header.css create mode 100644 src/components/recharge/RechargeHead.tsx create mode 100644 src/components/recharge/recharge-head.css create mode 100644 src/interfaces/dropdown/IDropdown.ts create mode 100644 src/layout/foot/foot.css diff --git a/src/components/balance/BalanceHead.tsx b/src/components/balance/BalanceHead.tsx new file mode 100644 index 0000000..f74ea5a --- /dev/null +++ b/src/components/balance/BalanceHead.tsx @@ -0,0 +1,15 @@ +import './balance-head.css' + +export default function BalanceHead() { + + const handleClick = () => { + console.log('查看余额') + } + + return ( +
+ 余额¥: + 800 +
+ ) +} \ No newline at end of file diff --git a/src/components/balance/balance-head.css b/src/components/balance/balance-head.css new file mode 100644 index 0000000..0a636eb --- /dev/null +++ b/src/components/balance/balance-head.css @@ -0,0 +1,11 @@ +.balance-head { +} + +.balance-head .label { + +} + +.balance-head .balance { + font-weight: bold; + font-size: 40px; +} \ No newline at end of file diff --git a/src/components/dropdown/Dropdown.tsx b/src/components/dropdown/Dropdown.tsx index 2ddb842..3c87ae0 100644 --- a/src/components/dropdown/Dropdown.tsx +++ b/src/components/dropdown/Dropdown.tsx @@ -1,10 +1,8 @@ import {useRef} from 'react'; import './dropdown.css'; +import {IDropdown, IDropdownItem} from '../../interfaces/dropdown/IDropdown.ts'; -type ItemClick = (e: MouseEvent) => void; - -const Dropdown = (title: string, list: Array<{ title: string, onClick: ItemClick }>) => { - +export default function Dropdown({title, list, handle}: IDropdown) { const ulRef = useRef(null); const onMouseMove = () => { @@ -20,7 +18,13 @@ const Dropdown = (title: string, list: Array<{ title: string, onClick: ItemClick } ulRef.current.style.display = 'none'; } - const items = list.map(item =>
  • {item.title}
  • ) + const items = list.map((item: IDropdownItem, index: number) => +
  • handle(e, index, { id: item.id, name: item.name })} + > + {item.name} +
  • + ) return (
    {items}
    ); -} -export default Dropdown; \ No newline at end of file +} \ No newline at end of file diff --git a/src/components/dropdown/dropdown.css b/src/components/dropdown/dropdown.css index 51438b3..37e4c8b 100644 --- a/src/components/dropdown/dropdown.css +++ b/src/components/dropdown/dropdown.css @@ -1,5 +1,5 @@ .dropdown { - width: 160px; + min-width: 120px; height: 100%; padding: 0 10px; cursor: pointer; @@ -11,10 +11,11 @@ display: flex; justify-content: center; align-items: center; + font-size: var(--font-size-head); } .dropdown ul { - /*display: none;*/ + display: none; margin: 0; width: 100%; padding: 10px 0; @@ -29,6 +30,7 @@ cursor: pointer; word-break: break-all; border-top: 1px solid var(--color-border); + color: var(--color-dark) } .dropdown ul li:last-child { diff --git a/src/components/message/MessageHead.tsx b/src/components/message/MessageHead.tsx new file mode 100644 index 0000000..376f01c --- /dev/null +++ b/src/components/message/MessageHead.tsx @@ -0,0 +1,15 @@ +import './message-header.css' + +export default function MessageHead() { + + const handleClick = () => { + console.log('查看消息') + } + + return ( +
    + 消息 + 99+ +
    + ) +} \ No newline at end of file diff --git a/src/components/message/message-header.css b/src/components/message/message-header.css new file mode 100644 index 0000000..a28782f --- /dev/null +++ b/src/components/message/message-header.css @@ -0,0 +1,17 @@ +.message-header { +} + +.message-header .label { + +} + +.message-header .badge { + background-color: var(--color-red); + width: 26px; + height: 26px; + line-height: 26px; + font-size: 12px; + border-radius: 13px; + text-align: center; + color: #ffffff; +} diff --git a/src/components/recharge/RechargeHead.tsx b/src/components/recharge/RechargeHead.tsx new file mode 100644 index 0000000..b7eecbd --- /dev/null +++ b/src/components/recharge/RechargeHead.tsx @@ -0,0 +1,14 @@ +import './recharge-head.css'; + +export default function RechargeHead() { + + const handleRecharge = () => { + console.log('充值'); + } + + return ( +
    + 充值 +
    + ) +} \ No newline at end of file diff --git a/src/components/recharge/recharge-head.css b/src/components/recharge/recharge-head.css new file mode 100644 index 0000000..a372c76 --- /dev/null +++ b/src/components/recharge/recharge-head.css @@ -0,0 +1,3 @@ +.recharge-head { + +} \ No newline at end of file diff --git a/src/index.css b/src/index.css index 48cec20..93f3fa4 100644 --- a/src/index.css +++ b/src/index.css @@ -1,9 +1,18 @@ :root { - --color-border: #E1E1E1; + --color-border: #eeeeee; --color-box-shadow: rgba(0, 0, 0, 0.3); + --color-red: #ff5722; + --color-orange: #ffb800; + --color-green: #16baaa; + --color-blue: #1e9fff; + --color-purple: #a233c6; + --color-dark: #2f363c; + --color-light: #fafafa; + --font-size-head: 16px; } html, body { margin: 0; - padding: 0 + padding: 0; + font-size: 14px; } diff --git a/src/interfaces/dropdown/IDropdown.ts b/src/interfaces/dropdown/IDropdown.ts new file mode 100644 index 0000000..226a82b --- /dev/null +++ b/src/interfaces/dropdown/IDropdown.ts @@ -0,0 +1,13 @@ +import {MouseEvent} from "react"; + +export interface IDropdownItem { + id: string; + name: string; +} + +export interface IDropdown { + title: string; + list: Array; + + handle(e: MouseEvent, index: number, item: IDropdownItem): void; +} \ No newline at end of file diff --git a/src/layout/foot/Foot.tsx b/src/layout/foot/Foot.tsx index c3d2c76..43b26cc 100644 --- a/src/layout/foot/Foot.tsx +++ b/src/layout/foot/Foot.tsx @@ -1,16 +1,7 @@ -import React from 'react'; - -const footStyle: React.CSSProperties = { - position: 'fixed', - bottom: 0, - left: 0, - height: '40px', - width: '100%', - backgroundColor: 'red', -} +import './foot.css'; export default function Foot() { return ( -
    footer
    +
    footer
    ) } \ No newline at end of file diff --git a/src/layout/foot/foot.css b/src/layout/foot/foot.css new file mode 100644 index 0000000..4d7c3fb --- /dev/null +++ b/src/layout/foot/foot.css @@ -0,0 +1,12 @@ +.foot { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + height: 30px; + display: flex; + justify-content: center; + align-items: center; + background-color: var(--color-dark); + color: var(--color-light); +} \ No newline at end of file diff --git a/src/layout/head/Head.tsx b/src/layout/head/Head.tsx index 0d545a1..362f5b5 100644 --- a/src/layout/head/Head.tsx +++ b/src/layout/head/Head.tsx @@ -1,22 +1,44 @@ import './head.css' import Dropdown from '../../components/dropdown/Dropdown.tsx'; +import BalanceHead from '../../components/balance/BalanceHead.tsx'; +import RechargeHead from '../../components/recharge/RechargeHead.tsx'; +import MessageHead from '../../components/message/MessageHead.tsx'; export default function Head() { + const logo: string = 'vite.svg'; return ( -
    -
    -
    LOGO
    -
    +
    +
    +
    + 加载失败 + AI软件著作权管理系统 +
    +
    + + + { - console.log(1) - } + id: 'userinfo', + name: '个人信息', + }, + { + id: 'changePass', + name: '修改密码' + }, + { + id: 'logout', + name: '退出系统' } ]} + handle={ + (_e, _index, item) => { + + console.log(item.name) + } + } />
    diff --git a/src/layout/head/head.css b/src/layout/head/head.css index cf893c1..d1454db 100644 --- a/src/layout/head/head.css +++ b/src/layout/head/head.css @@ -1,12 +1,13 @@ .head { width: 100%; - height: 70px; + height: 60px; position: fixed; top: 0; left: 0; - background-color: #E1E1E1; + background-color: var(--color-dark); box-shadow: 0 3px 3px rgba(0, 0, 0, 0.3); z-index: 0; + color: var(--color-light) } .head .center { @@ -18,11 +19,36 @@ } .head .center .left { - width: 200px; + min-width: 180px; height: 100%; - background-color: blue; + display: flex; + align-items: center; + font-size: 20px; + font-weight: 800; +} + +.head .center .left .logo { + width: 38px; + height: 38px; +} + +.head .center .left .sys-title { + margin-left: 5px; } .head .center .right { height: 100%; + display: flex; + justify-content: right; +} + +.head .center .head-item { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + padding: 0 15px; + font-size: var(--font-size-head); + cursor: pointer; + position: relative; } \ No newline at end of file