diff --git a/src/components/card/CardAgent.tsx b/src/components/card/CardAgent.tsx new file mode 100644 index 0000000..fdd1d1d --- /dev/null +++ b/src/components/card/CardAgent.tsx @@ -0,0 +1,36 @@ +import './card-agent.css'; +import {Image} from "antd"; +import {errorImage} from "../../util/CommonUtil.ts"; +import {AgentMedalEnum, IAgent} from "../../interfaces/card/ICardProj.ts"; + +export default function CardAgent(props: IAgent) { + + const renderMedal = () => { + if(props.medal == AgentMedalEnum.GOLD) { + return 金牌; + } + if(props.medal == AgentMedalEnum.SILVER) { + return 银牌; + } + if(props.medal == AgentMedalEnum.BRONZE) { + return 铜牌; + } + return 普通; + } + + return ( +
{ + props.handleSelect(); + }}> +
+ {props.logo ? : <>} + {props.name} + {renderMedal()} +
+
+
{props.desc}
+ +
+
+ ) +} \ No newline at end of file diff --git a/src/components/card/card-agent.css b/src/components/card/card-agent.css new file mode 100644 index 0000000..a6ab169 --- /dev/null +++ b/src/components/card/card-agent.css @@ -0,0 +1,55 @@ +.card-agent { +} + +.card-agent .card-agent-head { + padding: 10px 10px 5px 10px; + display: flex; + align-items: center; +} + +.card-agent .card-agent-head .ant-image { + margin-right: 5px; +} + +.card-agent .card-agent-head .card-agent-title { + margin-right: 5px; + max-width: 260px; +} + +.card-agent .card-agent-head .card-agent-medal { + padding: 2px 5px; + border-radius: 4px; + font-size: 12px; + background-color: #EEEEEE; +} + +.card-agent .card-agent-head .gold { + color: rgba(161,98,34,1); + background-color: #ffd700; +} + +.card-agent .card-agent-head .silver { + color: rgba(161,98,34,1); + background-color: #e5e5e5; +} + +.card-agent .card-agent-head .bronze { + color: var(--color-light); + background-color: #b87333; +} + +.card-agent .card-agent-body { + display: flex; + justify-content: space-between; + padding: 5px 10px 10px 10px; +} + +.card-agent .card-agent-body .card-agent-body-content { + width: 200px; + height: 100px; + overflow: hidden; + display: -webkit-box; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 5; +} \ No newline at end of file diff --git a/src/interfaces/card/ICardProj.ts b/src/interfaces/card/ICardProj.ts index 1be4c5d..b98561e 100644 --- a/src/interfaces/card/ICardProj.ts +++ b/src/interfaces/card/ICardProj.ts @@ -29,4 +29,22 @@ export interface IProjJump { desc: string; handleJump(): void; +} + +export enum AgentMedalEnum { + GOLD, + SILVER, + BRONZE, + NORMAL +} + +export interface IAgent { + logo?: string; + name: string; + medal?: AgentMedalEnum; + desc: string; + certificateImg: string; + selected?: boolean; + + handleSelect(): void; } \ No newline at end of file diff --git a/src/layout/body/Body.tsx b/src/layout/body/Body.tsx index 3cb1a6a..9f0a804 100644 --- a/src/layout/body/Body.tsx +++ b/src/layout/body/Body.tsx @@ -4,6 +4,7 @@ import Index from '../../route/index'; import ProjCreate from "../../route/proj/ProjCreate.tsx"; import ProjNew from "../../route/proj/ProjNew.tsx"; import ProjEdit from "../../route/proj/ProjEdit.tsx"; +import AgentSelect from "../../route/agent/AgentSelect.tsx"; const router = createBrowserRouter([ { @@ -21,6 +22,10 @@ const router = createBrowserRouter([ { path: '/proj-edit', element: + }, + { + path: '/agent-select/:projId', + element: } ]) diff --git a/src/layout/head/head.css b/src/layout/head/head.css index b84e38a..74dce2c 100644 --- a/src/layout/head/head.css +++ b/src/layout/head/head.css @@ -6,7 +6,7 @@ left: 0; background-color: var(--color-light); box-shadow: 0 2px 6px 0 var(--color-box-shadow); - z-index: 0; + z-index: 99; color: var(--color-dark); } diff --git a/src/route/agent/AgentSelect.tsx b/src/route/agent/AgentSelect.tsx new file mode 100644 index 0000000..f5a22b6 --- /dev/null +++ b/src/route/agent/AgentSelect.tsx @@ -0,0 +1,110 @@ +import './agent-select.css'; +import {Link, useNavigate} from "react-router-dom"; +import {Breadcrumb, Button, Divider, Image, Radio, RadioChangeEvent} from "antd"; +import CardAgent from "../../components/card/CardAgent.tsx"; +import {errorImage} from "../../util/CommonUtil.ts"; +import {useState} from "react"; +import {AgentMedalEnum} from "../../interfaces/card/ICardProj.ts"; + +export default function AgentSelect() { + const [value, setValue] = useState(1); + const nav = useNavigate(); + // const params = useParams(); + const height = window.innerHeight - 150; + + return ( + <> + 首页}, + {title: 创建项目}, + { + title: { + e.preventDefault(); + nav(-1) + }}>编辑项目 + }, + {title: '找代理'}, + ]} + /> +
+
+
+
+ { + console.log('1') + }} + /> +
+
+ +
+
+
+
+
+
机构信息
+
+
北京九思恒源科技有限公司
+
+ 雄厚的技术与人才实力,赢得了客户的深厚信赖,获得了政府部门的高度认可,公司先后荣获“全国重合同守信用单位”、“先进施工企业”、“长沙市利税大户”等诸多荣誉称号。与此同时,公司承建的湖南中联重科起重机厂钢结构厂房、三一重工娄底基地车间、北京资源集团宁乡基地车间、双胞胎饲料集团长沙基地厂房、南昌西客站高铁钢结构候客大厅、江西送变电建设中超公司厂房等一大批各类钢结构优质工程,缔造了“鼎盛钢构”卓尔不群的品牌知名度和美誉度。 +
+ +
机构证书
+
+ + + + +
+ +
+
+ 联系人:XXXXXX + 联系电话:13888888888 +
+
+ 联系地址:内蒙古呼和浩特新城区XXXXXX +
+
+
+
+
+ 价格种类: + { + console.log('radio checked', e.target.value); + setValue(e.target.value); + }} value={value}> + 普通件:200 + 加急件:400 + +
+
+
+ + + ) +} \ No newline at end of file diff --git a/src/route/agent/agent-select.css b/src/route/agent/agent-select.css new file mode 100644 index 0000000..256eaf3 --- /dev/null +++ b/src/route/agent/agent-select.css @@ -0,0 +1,108 @@ +.agent-select { + height: 100%; + display: flex; + justify-content: space-between; +} + +.agent-select .agent-select-left { + width: 370px; + height: calc(100% - 30px); + padding: 15px; + background-color: var(--color-light); +} + +.agent-select .agent-select-left .list { + height: 100%; + overflow: auto; +} + +.agent-select .agent-select-left .list .list-item .card-agent { + border-style: solid; + border-color: var(--color-border); + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 0; + border-left-width: 1px; + cursor: pointer; +} + +.agent-select .agent-select-left .list .list-item .card-agent:last-child { + border-bottom-width: 1px; +} + +.agent-select .agent-select-left .load { + text-align: center; + margin-top: 15px; +} + +.agent-select .agent-select-left .load .ant-btn { + background-color: rgba(245,246,249,1); + color: rgba(68,72,88,1); + padding: 4px 40px; + font-size: 12px; +} + +.agent-select .agent-select-right { + background-color: var(--color-light); + margin-left: 15px; + padding: 15px; + height: calc(100% - 30px); + overflow: auto; +} + +.agent-select .agent-select-right .agent-info .agent-title { + border: 1px solid var(--color-border); + background-color: rgba(228,229,238,0.5); + padding: 5px 15px; + font-weight: 600; +} + +.agent-select .agent-select-right .agent-info .agent-body { + padding: 5px 15px; + border: 1px solid var(--color-border); + margin-top: -1px; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-name { + padding: 5px 0; + font-weight: 500; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-desc { + line-height: 24px; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-img-title { + margin-bottom: 10px; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-img-list { + white-space: nowrap; + overflow-x: auto; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-img-list .ant-image { + margin-right: 10px; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-img-list .ant-image:last-child { + margin-right: 0; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-contact .line { + margin-bottom: 5px; +} + +.agent-select .agent-select-right .agent-info .agent-body .agent-contact .line span { + margin-right: 15px; +} + +.agent-select .agent-select-right .agent-price { + border: 1px solid var(--color-border); + margin-top: 15px; + padding: 15px; +} + +.agent-select .agent-select-right .agent-price .label { + font-weight: bold; +} \ No newline at end of file diff --git a/src/route/proj/ProjEdit.tsx b/src/route/proj/ProjEdit.tsx index c777a44..0fb60d0 100644 --- a/src/route/proj/ProjEdit.tsx +++ b/src/route/proj/ProjEdit.tsx @@ -68,7 +68,7 @@ export default function ProjEdit() { { - console.log('跳转'); + nav('/agent-select/2'); }} /> diff --git a/src/util/CommonUtil.ts b/src/util/CommonUtil.ts new file mode 100644 index 0000000..723a687 --- /dev/null +++ b/src/util/CommonUtil.ts @@ -0,0 +1 @@ +export const errorImage = 'data:image/png;base64,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'; \ No newline at end of file