This commit is contained in:
HuaYu 2023-01-14 15:09:13 +08:00
parent 764a30fe01
commit 2989baccdc
12 changed files with 114 additions and 5 deletions

29
package-lock.json generated
View File

@ -12,6 +12,7 @@
"@testing-library/react": "^13.4.0", "@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0", "@testing-library/user-event": "^13.5.0",
"antd-mobile": "^5.27.0", "antd-mobile": "^5.27.0",
"axios": "^1.2.2",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-router-dom": "^6.6.2", "react-router-dom": "^6.6.2",
@ -4882,6 +4883,29 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/axios": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.2.2.tgz",
"integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==",
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/axios/node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/axobject-query": { "node_modules/axobject-query": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-3.1.1.tgz", "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-3.1.1.tgz",
@ -13215,6 +13239,11 @@
"node": ">= 0.10" "node": ">= 0.10"
} }
}, },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/psl": { "node_modules/psl": {
"version": "1.9.0", "version": "1.9.0",
"resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",

View File

@ -7,6 +7,7 @@
"@testing-library/react": "^13.4.0", "@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0", "@testing-library/user-event": "^13.5.0",
"antd-mobile": "^5.27.0", "antd-mobile": "^5.27.0",
"axios": "^1.2.2",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-router-dom": "^6.6.2", "react-router-dom": "^6.6.2",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

BIN
src/assets/images/nav-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
src/assets/images/nav-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
src/assets/images/nav-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
src/assets/images/nav-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -1,3 +1,6 @@
/* *{
touch-action:pan-y
} */
.app { .app {
height: 100vh; height: 100vh;
display: flex; display: flex;
@ -13,7 +16,7 @@
flex: 1; flex: 1;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: top;
} }
.adm-tab-bar { .adm-tab-bar {

View File

@ -26,35 +26,37 @@ export function Bottom (){
key: '/home', key: '/home',
title: '首页', title: '首页',
icon: <AppOutline />, icon: <AppOutline />,
badge: '1',
}, },
{ {
key: '/todo', key: '/todo',
title: '待办', title: '待办',
icon: <UnorderedListOutline />, icon: <UnorderedListOutline />,
badge: '2',
}, },
{ {
key: '/message', key: '/message',
title: '消息', title: '消息',
icon: <MessageOutline />, icon: <MessageOutline />,
badge: '3',
}, },
{ {
key: '/me', key: '/me',
title: '我的', title: '我的',
icon: <UserOutline />, icon: <UserOutline />,
badge: '4',
}, },
] ]
return ( return (
<TabBar activeKey={pathname} onChange={value => setRouteActive(value)}> <TabBar activeKey={pathname} onChange={value => setRouteActive(value)}>
{tabs.map(item => ( {tabs.map(item => (
<TabBar.Item key={item.key} icon={item.icon} title={item.title} /> <TabBar.Item key={item.key} icon={item.icon} title={item.title} badge= {item.badge}/>
))} ))}
</TabBar> </TabBar>
) )
} }
export function Home() {
return <div>首页</div>
}
export function Todo() { export function Todo() {
return <div>待办</div> return <div>待办</div>

15
src/pages/Home/index.css Normal file
View File

@ -0,0 +1,15 @@
/* .div .context {
width: 100%;
color: #ffffff;
justify-content: center;
font-size: 48px;
user-select: none;
align-items: top;
} */
.adm-grid-item {
text-align: center;
}
.context h2 {
margin: 0;
}

59
src/pages/Home/index.js Normal file
View File

@ -0,0 +1,59 @@
import React from 'react'
import { Swiper, CapsuleTabs, Grid } from 'antd-mobile'
import axios from 'axios';
import './index.css'
import ImgZZ from './../../assets/images/nav-1.png'
import ImgHZ from './../../assets/images/nav-2.png'
import ImgDTZF from './../../assets/images/nav-3.png'
import ImgQCZ from './../../assets/images/nav-4.png'
import { redirect, useNavigate } from 'react-router-dom';
const localCatalog = [
{ "imgSrc": ImgZZ, "title": "整租" ,"path":"/todo"},
{ "imgSrc": ImgHZ, "title": "合租" ,"path":"/todo"},
{ "imgSrc": ImgDTZF, "title": "地图找房" ,"path":"/message"},
{ "imgSrc": ImgQCZ, "title": "去出租" ,"path":"/me"}
]
export class Home extends React.Component {
state = {
swipers: []
}
async getSwitpers() {
const res = await axios.get('http://localhost:8080/home/swiper')
console.log('轮播图信息' + res.data.body)
this.setState(
{ swipers: res.data.body }
// ()=>{
// return{swipers:res.data.body}
// }
)
}
componentDidMount() {
this.getSwitpers()
}
renderSwipers() {
return this.state.swipers.map(item => (<Swiper.Item key={item.id}>
<img
src={'http://localhost:8080' + item.imgSrc}
style={{ width: '100%', verticalAlign: 'top' }}
/>
</Swiper.Item>))
}
render() {
return <div className='context'>
<Swiper autoplay loop>{this.renderSwipers()}</Swiper>
<Grid columns={4}>
{
localCatalog.map((item,index) => (
<Grid.Item key={index} onClick={()=>{
console.log("点击跳转")
this.props.navigate=item.path}}>
<div ><img src={item.imgSrc} /><h2>{item.title}</h2></div>
</Grid.Item>
))
}
</Grid>
</div>
};
}