Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
ngic-company
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wuhao
ngic-company
Commits
34748e22
Commit
34748e22
authored
Nov 07, 2022
by
wuhao
🎯
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
aser
parent
2d860ac1
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
596 additions
and
151 deletions
+596
-151
.umirc.ts
.umirc.ts
+8
-0
routes.ts
routes.ts
+12
-5
app.jsx
src/app.jsx
+0
-5
global.less
src/global.less
+31
-2
about.jsx
src/layouts/about.jsx
+4
-4
honer.jsx
src/pages/about/honer.jsx
+134
-97
index.less
src/pages/about/index.less
+70
-0
join.jsx
src/pages/about/join.jsx
+154
-0
news.jsx
src/pages/about/news.jsx
+97
-0
newsdetail.jsx
src/pages/about/newsdetail.jsx
+76
-0
index.jsx
src/pages/index.jsx
+10
-16
windowsize.js
src/utils/windowsize.js
+0
-22
No files found.
.umirc.ts
View file @
34748e22
...
...
@@ -3,6 +3,14 @@ import routes from './routes';
export
default
defineConfig
({
antd
:
{
dark
:
false
,
compact
:
true
,
},
locale
:
{
// default zh-CN
default
:
'zh-CN'
,
antd
:
true
,
// default true, when it is true, will use `navigator.language` overwrite default
baseNavigator
:
true
,
},
nodeModulesTransform
:
{
type
:
'none'
,
...
...
routes.ts
View file @
34748e22
...
...
@@ -24,15 +24,22 @@ export default [
component
:
'@/pages/about/honer'
,
},
{
path
:
'/about/
join
'
,
name
:
'
加入南高
'
,
component
:
'@/pages/
index
'
,
path
:
'/about/
news
'
,
name
:
'
南高资讯
'
,
component
:
'@/pages/
about/news
'
,
},
{
path
:
'/about/news'
,
path
:
'/about/news
detail
'
,
name
:
'南高资讯'
,
component
:
'@/pages/index'
,
component
:
'@/pages/about/newsdetail'
,
hideInMenu
:
true
,
},
{
path
:
'/about/join'
,
name
:
'加入南高'
,
component
:
'@/pages/about/join'
,
},
{
path
:
'/about/contact'
,
name
:
'联系我们'
,
...
...
src/app.jsx
deleted
100644 → 0
View file @
2d860ac1
export
async
function
getInitialState
()
{
return
{
a
:
1
,
};
}
src/global.less
View file @
34748e22
...
...
@@ -26,6 +26,10 @@ body,
.ant-drawer-body {
padding: 0 !important;
}
.centerl {
display: flex;
align-items: center;
}
.center {
display: flex;
justify-content: center;
...
...
@@ -269,6 +273,13 @@ body,
.ant-menu-title-content {
font-size: 16px !important;
}
.sections {
padding: 2rem;
position: relative;
.ant-card-body {
background-color: #f0f0f0;
}
}
.section {
padding: 2rem;
position: relative;
...
...
@@ -377,7 +388,7 @@ body,
}
&:hover {
.textcontainer {
background-color:
@primary-color
;
background-color:
#1890ff
;
padding: 16px;
position: absolute;
bottom: 0px;
...
...
@@ -431,7 +442,7 @@ body,
}
li.slick-active {
button {
background-color:
@primary-color
!important;
background-color:
#1890ff
!important;
height: 6px !important;
width: 46px !important;
border-radius: 8px !important;
...
...
@@ -476,3 +487,21 @@ body,
}
}
}
.ant-pagination-total-text {
line-height: 30px !important;
}
.html {
img {
max-width: 100%;
margin: 0 auto;
display: block;
}
}
.hoverable {
cursor: pointer;
font-size: 0.6rem;
transition: all 0.4s;
&:hover {
color: #1890ff !important;
}
}
src/layouts/about.jsx
View file @
34748e22
...
...
@@ -13,13 +13,13 @@ const tabs = [
component
:
'@/pages/index'
,
},
{
path
:
'/about/
join
'
,
name
:
'
加入南高
'
,
path
:
'/about/
news
'
,
name
:
'
南高资讯
'
,
component
:
'@/pages/index'
,
},
{
path
:
'/about/
news
'
,
name
:
'
南高资讯
'
,
path
:
'/about/
join
'
,
name
:
'
加入南高
'
,
component
:
'@/pages/index'
,
},
{
...
...
src/pages/about/honer.jsx
View file @
34748e22
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Row
,
Col
}
from
'antd'
;
import
{
Row
,
Col
,
Image
}
from
'antd'
;
import
{
useRequest
}
from
'ahooks'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
import
{
EyeFilled
}
from
'@ant-design/icons'
;
const
col
=
{
xs
:
24
,
sm
:
24
,
md
:
12
,
lg
:
12
,
xl
:
12
,
xxl
:
12
};
function
Insert
()
{
const
{
data
,
loading
}
=
useRequest
(
async
()
=>
{
let
zizhi
=
await
doFetch
({
url
:
'/honor/list'
,
params
:
{
type
:
'1'
}
});
let
honer
=
await
doFetch
({
url
:
'/honor/list'
,
params
:
{
type
:
'2'
}
});
let
hangye
=
await
doFetch
({
url
:
'/honor/list'
,
params
:
{
type
:
'3'
}
});
let
zhishi
=
await
doFetch
({
url
:
'/honor/list'
,
params
:
{
type
:
'4'
}
});
return
{
zizhi
:
zizhi
?.
data
?.
dataList
,
honer
:
honer
?.
data
?.
dataList
,
hangye
:
hangye
?.
data
?.
dataList
,
zhishi
:
zhishi
?.
data
?.
dataList
,
};
});
return
(
<
div
>
<
div
className=
"section"
>
...
...
@@ -17,110 +33,131 @@ function Insert() {
>
企业资质
</
h2
>
<
p
className=
{
styles
.
intro
}
>
江苏南高智能装备创新中心有限公司是由东南大学牵头,联合地方政府和省内高档数控机床及成套装备行业的数家龙头企业共同创立的专注于数控机床及成套装备领域的高新技术企业。
</
p
>
<
p
className=
{
styles
.
intro
}
>
江苏南高是
<
b
>
“江苏省智能装备产业联盟”
</
b
>
、
<
b
>
“南京智能制造装备产业促进会”
</
b
>
的秘书长单位。
</
p
>
<
p
className=
{
styles
.
intro
}
>
江苏南高是
<
b
>
“江苏省高档数控机床及成套装备创新中心”
</
b
>
的运营主体。
</
p
>
<
p
className=
{
styles
.
intro
}
>
公司拥有自主知识产权的MOM制造运营管理系统,MES制造执行系统,WMS智能仓储系统,IOT工业互联网平台以及智能网关,结合数字孪生、机器视觉、AI、5G等新兴技术,帮助制造业企业打造数字化智慧工厂,累计服务合同到账收入超过5000万元。
</
p
>
</
div
>
<
div
className=
"section"
>
<
Row
>
<
Col
{
...
col
}
>
<
div
className=
"img"
style=
{
{
backgroundImage
:
`url(${require('@/assets/insert1.png')})`
,
width
:
'100%'
,
height
:
'100%'
,
minHeight
:
330
,
paddingBottom
:
'1rem'
,
}
}
></
div
>
</
Col
>
<
Col
{
...
col
}
className=
{
styles
.
format
}
>
<
h2
>
江苏省数控机床及成套装备创新中心
</
h2
>
<
p
>
江苏省高档数控机床及成套装备创新中心于2018年2月被批准成为省制造业创新中心试点单位。
</
p
>
<
div
>
中心任务
</
div
>
<
p
>
1、开展行业基础和共性技术研究,提高高档数控机床及成套装备行业的技术水平;
<
br
/>
2、促进重大科技成果的转化,高端技术人才的培养;
<
br
/>
3、整合行业资源,为行业企业提供技术服务;
<
br
/>
4、形成具有全球影响力的制造业创新中心,引领产业发展。
<
br
/>
</
p
>
<
p
>
创新中心围绕数控机床的五大研究领域(机床智能化设计;机床制造技术;机床整机技术;机床运维技术;机床关键部件技术),设立了19个研究室,拥有一支由院士领衔的200多人的一流研发团队。
</
p
>
<
div
>
核心功能
</
div
>
<
p
>
<
span
>
数控机床共性技术研发中心
</
span
>
<
span
>
中试与成果孵化基地
</
span
>
<
span
>
数控机床行业智库
</
span
>
</
p
>
</
Col
>
</
Row
>
<
Image
.
PreviewGroup
>
<
div
className=
{
styles
?.
column
}
>
{
data
?.
zizhi
?.
map
((
it
,
i
)
=>
{
return
(
<
div
className=
{
styles
?.
item
}
>
<
Image
preview=
{
{
mask
:
(
<>
<
EyeFilled
></
EyeFilled
>
预览
</>
),
}
}
src=
{
it
.
picUrl
}
alt=
""
/>
<
div
className=
{
styles
?.
title
}
>
{
it
?.
name
}
</
div
>
</
div
>
);
})
}
</
div
>
</
Image
.
PreviewGroup
>
</
div
>
<
div
className=
"section"
>
<
h2
className=
"title"
style=
{
{
color
:
'#3064c9'
}
}
>
管理团队
</
h2
>
<
p
className=
{
styles
.
intro
}
>
创新中心实行企业化运作,由董事会行使重大决策权,管理团队负责中心的具体运营管理。公司董事长兼任公司法人,决定公司和创新中心的重大决策。公司总经理担任创新中心主任,负责创新中心的技术研究和公司的日常管理。
</
p
>
<
img
className=
{
styles
.
introimg
}
src=
{
require
(
'@/assets/insert2.jpg'
)
}
alt=
""
/>
<
h2
className=
"title"
style=
{
{
color
:
'#3064c9'
}
}
>
研究室主任
<
h2
style=
{
{
textAlign
:
'center'
,
marginBottom
:
'1.4rem'
,
fontSize
:
'1.2rem'
,
}
}
>
行业担当
</
h2
>
<
img
className=
{
styles
.
introimg
}
src=
{
require
(
'@/assets/insert3.jpg'
)
}
alt=
""
/>
<
Image
.
PreviewGroup
>
<
div
className=
{
styles
?.
column
}
>
{
data
?.
hangye
?.
map
((
it
,
i
)
=>
{
return
(
<
div
className=
{
styles
?.
item
}
>
<
Image
preview=
{
{
mask
:
(
<>
<
EyeFilled
></
EyeFilled
>
预览
</>
),
}
}
src=
{
it
.
picUrl
}
alt=
""
/>
<
div
className=
{
styles
?.
title
}
>
{
it
?.
name
}
</
div
>
</
div
>
);
})
}
</
div
>
</
Image
.
PreviewGroup
>
</
div
>
<
div
className=
"section"
>
<
h2
className=
"title"
>
研究领域
</
h2
>
<
img
className=
{
styles
.
introimg
}
src=
{
require
(
'@/assets/insert4.jpg'
)
}
alt=
""
/>
<
h2
style=
{
{
textAlign
:
'center'
,
marginBottom
:
'1.4rem'
,
fontSize
:
'1.2rem'
,
}
}
>
政府荣誉
</
h2
>
<
Image
.
PreviewGroup
>
<
div
className=
{
styles
?.
column
}
>
{
data
?.
honer
?.
map
((
it
,
i
)
=>
{
return
(
<
div
className=
{
styles
?.
item
}
>
<
Image
preview=
{
{
mask
:
(
<>
<
EyeFilled
></
EyeFilled
>
预览
</>
),
}
}
src=
{
it
.
picUrl
}
alt=
""
/>
<
div
className=
{
styles
?.
title
}
>
{
it
?.
name
}
</
div
>
</
div
>
);
})
}
</
div
>
</
Image
.
PreviewGroup
>
</
div
>
<
div
className=
"section"
>
<
h2
className=
"title"
>
我们的投资人
</
h2
>
<
div
className=
{
styles
?.
ibo
}
>
{
new
Array
(
7
).
fill
(
''
).
map
((
it
,
i
)
=>
{
return
(
<
img
src=
{
require
(
`@/assets/ibo/tz${i + 1}.png`
)
}
alt=
""
style=
{
{
height
:
68
,
width
:
'auto'
,
display
:
'block'
}
}
/>
);
})
}
</
div
>
<
h2
style=
{
{
textAlign
:
'center'
,
marginBottom
:
'1.4rem'
,
fontSize
:
'1.2rem'
,
}
}
>
知识产权
</
h2
>
<
Image
.
PreviewGroup
>
<
div
className=
{
styles
?.
column
}
>
{
data
?.
zhishi
?.
map
((
it
,
i
)
=>
{
return
(
<
div
className=
{
styles
?.
item
}
>
<
Image
preview=
{
{
mask
:
(
<>
<
EyeFilled
></
EyeFilled
>
预览
</>
),
}
}
src=
{
it
.
picUrl
}
alt=
""
/>
<
div
className=
{
styles
?.
title
}
>
{
it
?.
name
}
</
div
>
</
div
>
);
})
}
</
div
>
</
Image
.
PreviewGroup
>
</
div
>
<
img
src=
{
require
(
`@/assets/inserts.jpg`
)
}
alt=
""
style=
{
{
width
:
'100%'
,
display
:
'block'
}
}
/>
</
div
>
);
}
...
...
src/pages/about/index.less
View file @
34748e22
...
...
@@ -38,3 +38,73 @@
flex-wrap: wrap;
margin: 0 auto;
}
.column {
column-span: all !important;
}
@media (min-width: 400px) {
.column {
column-count: 1; // two columns on larger phones
column-gap: 12px;
}
.rt {
width: 0px;
overflow: hidden;
border-left: #ddd solid 1px;
}
}
@media (min-width: 768px) {
.column {
column-count: 2; // two columns on larger phones
column-gap: 12px;
}
.rt {
width: 140px;
border-left: #ddd solid 1px;
}
}
@media (min-width: 992px) {
.column {
column-count: 3; // three columns on...you get it
column-gap: 12px;
}
}
@media (min-width: 1200px) {
.column {
column-count: 4; // three columns on...you get it
column-gap: 12px;
}
}
@media (min-width: 1660px) {
.column {
column-count: 6; // three columns on...you get it
column-gap: 12px;
}
}
.item {
display: inline-block;
box-sizing: border-box;
width: 100%;
padding-bottom: 12px;
overflow: hidden;
float: left;
img {
width: 100%;
}
.title {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
padding: 8px 12px 0 12px;
text-align: center;
}
}
src/pages/about/join.jsx
0 → 100644
View file @
34748e22
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Row
,
Col
,
Image
,
Pagination
,
Card
,
Tag
}
from
'antd'
;
import
{
useRequest
}
from
'ahooks'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
import
{
EyeFilled
}
from
'@ant-design/icons'
;
import
{
history
}
from
'umi'
;
const
col
=
{
xs
:
24
,
sm
:
12
,
md
:
12
,
lg
:
8
,
xl
:
8
,
xxl
:
6
};
const
{
Meta
}
=
Card
;
function
Join
()
{
const
{
data
,
loading
}
=
useRequest
(
async
()
=>
{
let
data
=
await
doFetch
({
url
:
'/recruit/limitList'
,
params
:
{
limitNum
:
1000
},
});
return
data
?.
data
?.
dataList
;
});
const
onChange
=
(
pageIndex
,
pageSize
)
=>
{
setpage
({
pageIndex
,
pageSize
,
});
};
return
(
<
div
className=
"section"
>
<
h2
className=
"title"
>
招聘岗位
</
h2
>
<
p
style=
{
{
textAlign
:
'center'
,
fontSize
:
'0.6rem'
}
}
>
如果您对我们感兴趣,欢迎投递简历至
<
a
href=
"mailto:chenjie@jsnangao.com"
target=
"_blank"
>
chenjie@jsnangao.com
</
a
>
,邮件主题格式:
<
a
>
岗位名称+姓名+学校+学历,
</
a
>
更多招聘信息请详询:
<
a
href=
"tel:025-52187179"
>
025-52187179
</
a
>
,期待您的加入!
</
p
>
<
Row
gutter=
{
24
}
>
{
data
?.
map
?.((
it
,
i
)
=>
{
return
(
<
Col
{
...
col
}
style=
{
{
marginBottom
:
24
}
}
>
<
Card
hoverable
style=
{
{
width
:
'100%'
,
}
}
onClick=
{
()
=>
{
history
.
push
({
pathname
:
'/about/newsdetail'
,
query
:
{
id
:
it
.
id
,
},
});
}
}
>
<
p
style=
{
{
fontSize
:
'0.8rem'
,
width
:
'100%'
,
marginTop
:
'1rem'
,
}
}
className=
"spread"
>
<
span
>
{
it
?.
positionName
}
</
span
>
<
span
style=
{
{
color
:
'rgba(255, 103, 47, 1)'
}
}
>
{
it
?.
salary
}
</
span
>
</
p
>
<
div
className=
"centerl"
>
{
it
.
positionDepartment
&&
(
<
Tag
color=
"blue"
style=
{
{
fontSize
:
'0.6rem'
,
padding
:
'0.2rem'
}
}
>
{
it
.
positionDepartment
}
</
Tag
>
)
}
{
it
.
education
&&
(
<
Tag
color=
"cyan"
style=
{
{
fontSize
:
'0.6rem'
,
padding
:
'0.2rem'
}
}
>
{
it
.
education
}
</
Tag
>
)
}
{
it
.
wordExperience
&&
(
<
Tag
color=
"geekblue"
style=
{
{
fontSize
:
'0.6rem'
,
padding
:
'0.2rem'
}
}
>
{
it
.
wordExperience
}
</
Tag
>
)
}
</
div
>
<
div
className=
"centerl"
style=
{
{
marginTop
:
'1rem'
}
}
>
<
div
style=
{
{
backgroundColor
:
'#f0f0f0'
,
padding
:
'6px 12px'
,
fontSize
:
'0.6rem'
,
display
:
'inline-block'
,
width
:
'4rem'
,
}
}
classNam=
"center"
>
<
span
>
<
span
style=
{
{
fontSize
:
'1.2rem'
,
color
:
'rgba(12, 100, 201, 1)'
,
marginRight
:
6
,
}
}
>
{
it
?.
hiringNum
}
</
span
>
人
</
span
>
<
br
/>
<
span
>
招聘人数
</
span
>
</
div
>
<
div
style=
{
{
backgroundColor
:
'#f0f0f0'
,
padding
:
'6px 12px'
,
fontSize
:
'0.6rem'
,
display
:
'inline-block'
,
marginLeft
:
'1rem'
,
}
}
classNam=
"center"
>
<
span
>
工作地点
</
span
>
<
br
/>
<
span
style=
{
{
fontSize
:
'0.4rem'
,
color
:
'rgba(12, 100, 201, 1)'
,
marginRight
:
6
,
}
}
>
{
it
?.
workAddress
}
</
span
>
</
div
>
</
div
>
</
Card
>
</
Col
>
);
})
}
</
Row
>
</
div
>
);
}
export
default
Join
;
src/pages/about/news.jsx
0 → 100644
View file @
34748e22
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Row
,
Col
,
Image
,
Pagination
,
Card
}
from
'antd'
;
import
{
useRequest
}
from
'ahooks'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
import
{
EyeFilled
}
from
'@ant-design/icons'
;
import
{
history
}
from
'umi'
;
const
col
=
{
xs
:
24
,
sm
:
12
,
md
:
12
,
lg
:
8
,
xl
:
8
,
xxl
:
6
};
const
{
Meta
}
=
Card
;
function
Insert
()
{
const
[
page
,
setpage
]
=
useState
({
pageIndex
:
1
,
pageSize
:
10
});
const
[
total
,
settotal
]
=
useState
();
const
{
data
,
loading
}
=
useRequest
(
async
()
=>
{
let
data
=
await
doFetch
({
url
:
'/realTimeInfo/page'
,
params
:
page
,
});
settotal
(
data
?.
data
?.
page
?.
total
);
return
data
?.
data
?.
page
?.
records
;
},
{
refreshDeps
:
[
page
],
},
);
const
onChange
=
(
pageIndex
,
pageSize
)
=>
{
setpage
({
pageIndex
,
pageSize
,
});
};
return
(
<
div
className=
"sections"
>
<
Row
gutter=
{
24
}
>
{
data
?.
map
?.((
it
,
i
)
=>
{
return
(
<
Col
{
...
col
}
style=
{
{
marginBottom
:
24
}
}
>
<
Card
hoverable
bordered=
{
false
}
style=
{
{
width
:
'100%'
,
}
}
cover=
{
<
div
style=
{
{
backgroundImage
:
`url(${it?.picUrl})`
,
height
:
'288px'
,
}
}
className=
"img"
/>
}
onClick=
{
()
=>
{
history
.
push
({
pathname
:
'/about/newsdetail'
,
query
:
{
id
:
it
.
id
,
},
});
}
}
>
<
Meta
title=
{
<
span
style=
{
{
fontSize
:
'0.8rem'
}
}
>
{
it
?.
title
}
</
span
>
}
description=
{
<
span
style=
{
{
fontSize
:
'0.6rem'
}
}
>
{
it
?.
releaseTime
}
</
span
>
}
/>
</
Card
>
</
Col
>
);
})
}
</
Row
>
<
div
className=
"center"
>
<
Pagination
current=
{
page
?.
pageIndex
}
showQuickJumper
total=
{
total
}
onChange=
{
onChange
}
showTotal=
{
(
total
,
range
)
=>
`${total} 条中的 ${range[0]}-${range[1]}`
}
/>
</
div
>
</
div
>
);
}
export
default
Insert
;
src/pages/about/newsdetail.jsx
0 → 100644
View file @
34748e22
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Row
,
Col
,
Image
,
Pagination
,
Card
,
Divider
}
from
'antd'
;
import
{
useRequest
}
from
'ahooks'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
import
{
EyeFilled
}
from
'@ant-design/icons'
;
import
{
history
}
from
'umi'
;
const
col
=
{
xs
:
24
,
sm
:
12
,
md
:
12
,
lg
:
8
,
xl
:
8
,
xxl
:
6
};
const
{
Meta
}
=
Card
;
function
Insert
({
location
:
{
query
}
})
{
const
[
curid
,
setcurid
]
=
useState
(
query
.
id
);
const
{
data
,
loading
}
=
useRequest
(
async
()
=>
{
let
data
=
await
doFetch
({
url
:
'/realTimeInfo/detail'
,
params
:
{
id
:
curid
},
});
return
data
?.
data
?.
data
;
},
{
refreshDeps
:
[
curid
],
},
);
const
prev
=
useRequest
(
async
()
=>
{
let
data
=
await
doFetch
({
url
:
'/realTimeInfo/getRealTimePrevAndNext'
,
params
:
{
id
:
curid
},
});
return
data
?.
data
?.
data
;
},
{
refreshDeps
:
[
curid
],
},
);
return
(
<
div
className=
"section"
>
<
h2
className=
"title"
>
{
data
?.
title
}
</
h2
>
<
p
style=
{
{
textAlign
:
'center'
,
fontSize
:
'0.6rem'
}
}
>
{
data
?.
releaseTime
}
</
p
>
<
div
dangerouslySetInnerHTML=
{
{
__html
:
data
?.
informationContent
}
}
style=
{
{
fontSize
:
'0.6rem'
}
}
className=
"html"
></
div
>
<
Divider
></
Divider
>
<
p
className=
"hoverable"
onClick=
{
()
=>
{
prev
?.
data
?.
prev
?.
id
&&
setcurid
(
prev
?.
data
?.
prev
?.
id
);
}
}
>
上一篇:
{
' '
}
{
prev
?.
data
?.
prev
?.
title
??
(
<
span
style=
{
{
color
:
'#999999'
}
}
>
已是第一篇
</
span
>
)
}
</
p
>
<
p
className=
"hoverable"
onClick=
{
()
=>
{
prev
?.
data
?.
next
?.
id
&&
setcurid
(
prev
?.
data
?.
next
?.
id
);
}
}
>
下一篇:
{
prev
?.
data
?.
next
?.
title
??
'已是最后一篇'
}
</
p
>
</
div
>
);
}
export
default
Insert
;
src/pages/index.jsx
View file @
34748e22
import
styles
from
'./index.less'
;
import
{
Link
,
useModel
}
from
'umi'
;
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Carousel
,
Button
,
Row
,
Col
,
Card
,
Tooltip
}
from
'antd'
;
import
{
useWindowSize
}
from
'@/utils/windowsize'
;
import
{
Carousel
,
Button
,
Row
,
Col
,
Card
,
Tooltip
,
Grid
}
from
'antd'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
import
{
useRequest
}
from
'ahooks'
;
import
{
Palette
}
from
'color-thief-react'
;
...
...
@@ -10,6 +9,9 @@ import { CaretRightOutlined, ArrowRightOutlined } from '@ant-design/icons';
import
dayjs
from
'dayjs'
;
import
relativeTime
from
'dayjs/plugin/relativeTime'
;
import
'dayjs/locale/zh-cn'
;
const
{
useBreakpoint
}
=
Grid
;
dayjs
.
extend
(
relativeTime
).
locale
(
'zh-cn'
);
// match: 与客户端页面 props 中的 match 保持一致,有当前路由的相关数据。
...
...
@@ -109,7 +111,8 @@ function spArr(arr, num) {
}
return
newArr
;
}
function
getHtmlPlainText
(
html_str
)
{
function
getHtmlPlainText
(
html_str
=
''
)
{
//提取字符串中的文字
let
re
=
new
RegExp
(
'<[^<>]+>'
,
'g'
);
let
text
=
html_str
.
replace
(
re
,
''
);
...
...
@@ -121,9 +124,8 @@ function getHtmlPlainText(html_str) {
function
IndexPage
({
route
})
{
// const { initialState, loading, error, refresh, setInitialState } =
// useModel('@@initialState');
const
cauref
=
useRef
();
const
{
width
,
height
}
=
useWindowSize
();
//设备宽高
const
screens
=
useBreakpoint
();
const
[
currindex
,
setcurrindex
]
=
useState
(
0
);
const
[
type
,
settype
]
=
useState
(
'r'
);
const
{
data
}
=
useRequest
(
async
()
=>
{
...
...
@@ -135,7 +137,6 @@ function IndexPage({ route }) {
let
res
=
await
doFetch
({
url
:
'/realTimeInfo/limitList'
,
params
:
{}
});
return
res
?.
data
?.
dataList
??
[];
});
console
.
log
(
zixun
?.
data
);
//autoplay
return
(
<
div
>
...
...
@@ -173,8 +174,8 @@ function IndexPage({ route }) {
<
div
className=
{
styles
.
banner
}
style=
{
{
width
,
height
:
(
980
/
1920
)
*
width
,
width
:
'100vw'
,
height
:
`${(980 / 1920) * 100}vw`
,
backgroundImage
:
`url(${it.picUrl})`
,
}
}
>
...
...
@@ -205,13 +206,6 @@ function IndexPage({ route }) {
{
it
.
enableBtn
==
1
&&
(
<
Button
ghost
size=
{
width
<
780
?
'small'
?
width
<
1366
:
'middle'
:
'large'
}
style=
{
{
...
curtransition
,
transition
:
'all 1.45s'
,
...
...
@@ -297,7 +291,7 @@ function IndexPage({ route }) {
:
require
(
`@/assets/l${i + 1}.jpg`
);
return
it
;
}),
width
<
500
?
1
:
width
<
798
?
2
:
3
,
!
screens
.
sm
?
1
:
!
screens
.
lg
?
2
:
!
screens
.
xl
?
3
:
3
,
).
map
((
it
,
i
)
=>
{
return
(
<
div
key=
{
it
.
picurl
}
>
...
...
src/utils/windowsize.js
deleted
100644 → 0
View file @
2d860ac1
import
{
useState
,
useEffect
}
from
'react'
;
export
const
useWindowSize
=
()
=>
{
// 第一步:声明能够体现视口大小变化的状态
const
[
windowSize
,
setWindowSize
]
=
useState
({
width
:
window
.
innerWidth
,
height
:
window
.
innerHeight
,
});
// 第二步:通过生命周期 Hook 声明回调的绑定和解绑逻辑
useEffect
(()
=>
{
const
updateSize
=
()
=>
setWindowSize
({
width
:
window
.
innerWidth
,
height
:
window
.
innerHeight
,
});
window
?.
addEventListener
(
'resize'
,
updateSize
);
return
()
=>
window
.
removeEventListener
(
'resize'
,
updateSize
);
},
[]);
return
windowSize
;
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment