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
cc73a66b
Commit
cc73a66b
authored
Nov 11, 2022
by
wuhao
🎯
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
asder
parent
9c8a6218
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
394 additions
and
32 deletions
+394
-32
routes.ts
routes.ts
+2
-4
qrcode.png
src/assets/qrcode.png
+0
-0
global.less
src/global.less
+40
-0
index.jsx
src/layouts/index.jsx
+283
-17
index.less
src/layouts/index.less
+19
-0
index.jsx
src/pages/index.jsx
+38
-8
together.jsx
src/pages/together.jsx
+12
-2
request.js
src/utils/request.js
+0
-1
No files found.
routes.ts
View file @
cc73a66b
...
...
@@ -123,14 +123,12 @@ export default [
component
:
'@/pages/index'
,
routes
:
[
{
path
:
'/cgx/cgxpt'
,
name
:
'南京智能制造装备产业促进会产供需平台'
,
component
:
'@/pages/index
'
,
path
:
'http://www.jsiea.com/cgx/#/welcome
'
,
},
{
path
:
'/cgx/lim'
,
name
:
'江苏省智能装备产业联盟数控机床产供需平台'
,
component
:
'@/pages/index
'
,
path
:
'http://njime.cn/cgx/#/welcome
'
,
},
],
},
...
...
src/assets/qrcode.png
0 → 100644
View file @
cc73a66b
173 KB
src/global.less
View file @
cc73a66b
...
...
@@ -80,6 +80,18 @@ body,
background-size: 400% 400%;
animation: bgmove 20s linear 0s infinite alternate forwards;
}
.bglightc {
background-image: linear-gradient(
145deg,
#bee9ff 0%,
#99dbff 25%,
#ffc4f1 50%,
#99dbff 75%,
#bee9ff 100%
);
background-size: 400% 400%;
animation: bgmove 20s linear 0s infinite alternate forwards;
}
@keyframes bgmove {
0% {
...
...
@@ -969,3 +981,31 @@ body,
}
}
}
.olik {
> div {
overflow-x: hidden;
margin-right: -15px !important;
margin-bottom: -15px !important;
}
> div:last-child {
right: 17px !important;
opacity: 0.8 !important;
display: block !important;
}
}
.ant-modal-confirm-content {
margin-left: 0 !important;
margin-top: 1rem !important;
}
.submit {
* {
font-size: 0.6rem;
}
b {
color: #f74249;
}
label {
display: block;
margin-bottom: 0.6rem;
}
}
src/layouts/index.jsx
View file @
cc73a66b
import
React
,
{
useState
,
useRef
,
useMemo
,
useEffect
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Menu
,
Grid
,
Drawer
,
Tooltip
,
Row
,
Col
}
from
'antd'
;
import
{
Menu
,
Grid
,
Drawer
,
Tooltip
,
Row
,
Col
,
Input
,
Modal
,
message
,
}
from
'antd'
;
import
{
history
,
Helmet
}
from
'umi'
;
import
routes
from
'../../routes'
;
import
{
...
...
@@ -11,13 +21,14 @@ import {
}
from
'@ant-design/icons'
;
import
{
Scrollbars
}
from
'react-custom-scrollbars'
;
import
Footer
from
'./footer'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
const
{
useBreakpoint
}
=
Grid
;
const
col
c
=
{
xs
:
24
,
sm
:
24
,
md
:
12
,
lg
:
12
,
xl
:
12
,
xxl
:
12
},
col
=
{
xs
:
24
,
sm
:
24
,
md
:
10
,
lg
:
10
,
xl
:
10
,
xxl
:
10
},
const
col
=
{
xs
:
24
,
sm
:
24
,
md
:
12
,
lg
:
5
,
xl
:
5
,
xxl
:
5
},
col
a
=
{
xs
:
24
,
sm
:
24
,
md
:
24
,
lg
:
4
,
xl
:
4
,
xxl
:
4
},
cold
=
{
xs
:
24
,
sm
:
24
,
md
:
8
,
lg
:
8
,
xl
:
8
,
xxl
:
8
},
colds
=
{
xs
:
24
,
sm
:
24
,
md
:
12
,
lg
:
8
,
xl
:
8
,
xxl
:
8
},
colds
=
{
xs
:
24
,
sm
:
24
,
md
:
24
,
lg
:
16
,
xl
:
16
,
xxl
:
16
},
cols
=
{
xs
:
24
,
sm
:
24
,
md
:
14
,
lg
:
14
,
xl
:
14
,
xxl
:
14
};
const
mapTree
=
(
org
)
=>
{
...
...
@@ -43,8 +54,12 @@ const MenuRender = ({ arrs, mode, activeKey }) => {
mode=
{
mode
??
'horizontal'
}
activeKey=
{
activeKey
}
items=
{
arrs
}
onClick=
{
({
item
,
key
,
keyPath
,
domEvent
})
=>
{
history
.
push
(
key
);
onClick=
{
({
items
,
key
,
keyPath
,
domEvent
})
=>
{
if
(
key
.
includes
(
'http'
))
{
window
.
open
(
key
);
}
else
{
history
.
push
(
key
);
}
}
}
/>
);
...
...
@@ -54,6 +69,10 @@ function Layout({ children, location }) {
const
[
collspan
,
setcollspan
]
=
useState
(
false
);
const
scrollRef
=
useRef
();
const
screens
=
useBreakpoint
();
const
[
vals
,
setvals
]
=
useState
({});
const
[
colls
,
setcolls
]
=
useState
(
false
);
const
[
changes
,
setchanges
]
=
useState
(
false
);
const
arrs
=
useMemo
(()
=>
{
let
arr
=
[];
routes
.
map
((
org
)
=>
{
...
...
@@ -72,6 +91,29 @@ function Layout({ children, location }) {
});
},
[
location
.
pathname
]);
function
setval
(
key
,
val
)
{
setvals
((
s
)
=>
({
...
s
,
[
key
]:
val
,
}));
}
const
styled
=
useMemo
(()
=>
{
if
(
changes
)
{
return
{
width
:
'100%'
,
};
}
else
{
return
{
position
:
'fixed'
,
bottom
:
0
,
left
:
0
,
width
:
'100%'
,
zIndex
:
222
,
};
}
},
[
changes
]);
return
(
<
div
className=
{
styles
.
container
}
>
<
Helmet
encodeSpecialCharacters=
{
false
}
>
...
...
@@ -116,7 +158,33 @@ function Layout({ children, location }) {
}
}
/>
<
Tooltip
title=
"产品演示"
placement=
"bottom"
>
<
PlayCircleFilled
style=
{
{
fontSize
:
20
,
color
:
'#000000'
}
}
/>
<
PlayCircleFilled
style=
{
{
fontSize
:
20
,
color
:
'#000000'
}
}
onClick=
{
async
()
=>
{
let
res
=
await
doFetch
({
url
:
'/video/detail'
,
params
:
{},
});
Modal
.
info
({
title
:
'产品演示'
,
width
:
'66vw'
,
content
:
(
<
video
src=
{
res
?.
data
?.
data
?.
videoUrl
}
style=
{
{
width
:
'100%'
}
}
controls
autoPlay
/>
),
okButtonProps
:
{
style
:
{
display
:
'none'
,
},
},
maskClosable
:
true
,
});
}
}
/>
</
Tooltip
>
</
div
>
)
:
(
...
...
@@ -134,6 +202,27 @@ function Layout({ children, location }) {
color
:
'#fff'
,
cursor
:
'pointer'
,
}
}
onClick=
{
async
()
=>
{
let
res
=
await
doFetch
({
url
:
'/video/detail'
,
params
:
{}
});
Modal
.
info
({
title
:
'产品演示'
,
width
:
'66vw'
,
content
:
(
<
video
src=
{
res
?.
data
?.
data
?.
videoUrl
}
style=
{
{
width
:
'100%'
}
}
controls
autoPlay
/>
),
okButtonProps
:
{
style
:
{
display
:
'none'
,
},
},
maskClosable
:
true
,
});
}
}
>
<
PlayCircleFilled
style=
{
{
fontSize
:
20
,
color
:
'#ffffff'
,
marginRight
:
6
}
}
...
...
@@ -145,26 +234,203 @@ function Layout({ children, location }) {
</
div
>
</
header
>
<
Scrollbars
thumbMinSize=
{
10
}
thumbMinSize=
{
10
0
}
autoHide
style=
{
{
width
:
'100%'
,
height
:
'calc(
100vh - 80px
)'
,
height
:
'calc(
100vh - 80px
)'
,
overflowX
:
'hidden'
,
position
:
'relative'
,
}
}
hideTracksWhenNotNeeded
=
{
true
}
hideTracksWhenNotNeeded
ref=
{
scrollRef
}
className=
"olik"
onScroll=
{
(
e
)
=>
{
let
divheight
=
document
.
getElementById
(
'webFooter'
).
clientHeight
;
if
(
e
.
target
.
scrollTop
<
e
.
target
.
firstChild
.
clientHeight
-
divheight
)
{
setchanges
(
false
);
}
else
{
setchanges
(
true
);
}
}
}
>
<
div
className=
"content"
>
{
children
}
</
div
>
<
div
className=
{
styles
.
navbar
}
>
<
Row
>
<
Col
{
...
cold
}
>
<
PhoneFilled
/>
<
div
className=
{
styles
.
navbar
}
style=
{
styled
}
>
{
colls
&&
(
<
Row
style=
{
{
width
:
'100%'
,
marginBottom
:
'1rem'
,
}
}
className=
"submit"
gutter=
{
36
}
>
<
Col
{
...
col
}
style=
{
{
margin
:
'0.3rem 0'
}
}
>
<
label
htmlFor=
"contact"
>
<
b
>
*
</
b
>
联系人
</
label
>
<
Input
name=
"contact"
value=
{
vals
.
contact
}
onChange=
{
(
e
)
=>
{
setval
(
'contact'
,
e
.
target
.
value
);
}
}
/>
</
Col
>
<
Col
{
...
col
}
style=
{
{
margin
:
'0.3rem 0'
}
}
>
<
label
htmlFor=
"telephone"
>
<
b
>
*
</
b
>
联系方式
</
label
>
<
Input
name=
"telephone"
value=
{
vals
.
telephone
}
onChange=
{
(
e
)
=>
{
setval
(
'telephone'
,
e
.
target
.
value
);
}
}
/>
</
Col
>
<
Col
{
...
col
}
style=
{
{
margin
:
'0.3rem 0'
}
}
>
<
label
htmlFor=
"companyName"
>
<
b
>
*
</
b
>
公司名称
</
label
>
<
Input
name=
"companyName"
value=
{
vals
.
companyName
}
onChange=
{
(
e
)
=>
{
setval
(
'companyName'
,
e
.
target
.
value
);
}
}
/>
</
Col
>
<
Col
{
...
col
}
style=
{
{
margin
:
'0.3rem 0'
}
}
>
<
label
htmlFor=
"trade"
>
所属行业(选填)
</
label
>
<
Input
name=
"trade"
value=
{
vals
.
trade
}
onChange=
{
(
e
)
=>
{
setval
(
'trade'
,
e
.
target
.
value
);
}
}
/>
</
Col
>
<
Col
{
...
cola
}
style=
{
{
display
:
'flex'
,
justifyContent
:
'center'
,
alignItems
:
'flex-end'
,
margin
:
'0.3rem 0'
,
}
}
>
<
div
className=
{
`${styles.diybtn} bglightc`
}
style=
{
{
color
:
'#ffffff'
,
textShadow
:
'0px 0px 2px #999999'
,
}
}
onClick=
{
()
=>
{
if
(
!
vals
.
contact
||
!
vals
.
telephone
||
!
vals
.
companyName
)
{
message
.
warn
(
'请填写必填项!'
);
return
;
}
doFetch
({
url
:
'/customerAdvice/add'
,
params
:
{
...
vals
},
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'0000'
)
{
message
.
success
(
'我们已收到您的申请,稍后将有专员联系您...'
,
);
}
});
}
}
>
提交
</
div
>
</
Col
>
</
Row
>
)
}
<
Row
gutter=
{
36
}
style=
{
{
width
:
'100%'
,
}
}
>
<
Col
{
...
cola
}
className=
"center"
style=
{
{
fontSize
:
'0.8rem'
,
margin
:
'0.3rem 0'
}
}
>
<
div
className=
"center"
style=
{
{
marginRight
:
18
,
border
:
'1px solid rgba(1, 92, 172, 1)'
,
color
:
'rgba(1, 92, 172, 1)'
,
width
:
'1.5rem'
,
height
:
'1.5rem'
,
borderRadius
:
'50%'
,
}
}
>
<
PhoneFilled
rotate=
{
90
}
/>
</
div
>
025-86111901
</
Col
>
<
Col
{
...
colds
}
className=
"center"
style=
{
{
fontSize
:
'0.8rem'
,
cursor
:
'pointer'
,
margin
:
'0.3rem 0'
,
}
}
onClick=
{
()
=>
{
Modal
.
info
({
title
:
'添加微信'
,
content
:
(
<
img
src=
{
require
(
'@/assets/qrcode.png'
)
}
style=
{
{
width
:
'100%'
}
}
/>
),
okButtonProps
:
{
style
:
{
display
:
'none'
},
},
maskClosable
:
true
,
});
}
}
>
<
div
className=
"center"
style=
{
{
marginRight
:
18
,
color
:
'rgba(1, 92, 172, 1)'
,
backgroundColor
:
'rgba(69, 176, 53, 1)'
,
width
:
'1.5rem'
,
height
:
'1.5rem'
,
borderRadius
:
'50%'
,
}
}
>
<
WechatFilled
style=
{
{
color
:
'#FFFFFF'
}
}
/>
</
div
>
微信咨询
</
Col
>
<
Col
{
...
cold
}
>
<
WechatFilled
/>
<
Col
{
...
cola
}
className=
"center"
style=
{
{
fontSize
:
'0.8rem'
,
margin
:
'0.3rem 0'
}
}
>
<
div
className=
{
styles
.
diybtn
}
onClick=
{
()
=>
{
setcolls
(
!
colls
);
}
}
>
{
!
colls
?
'免费体验'
:
'取消'
}
</
div
>
</
Col
>
<
Col
{
...
cold
}
></
Col
>
</
Row
>
</
div
>
<
Footer
></
Footer
>
...
...
src/layouts/index.less
View file @
cc73a66b
...
...
@@ -80,3 +80,22 @@
}
}
}
.navbar {
padding: 1rem !important;
border-top: 1px solid #f0f0f0 !important;
background-color: #ffffff;
}
.diybtn {
font-size: 0.8rem !important;
letter-spacing: 2px;
width: 6rem;
height: 2rem;
background-color: aliceblue;
border-radius: 6rem;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
color: #000000;
}
src/pages/index.jsx
View file @
cc73a66b
import
styles
from
'./index.less'
;
import
{
Link
,
useModel
}
from
'umi'
;
import
{
Link
,
history
}
from
'umi'
;
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Carousel
,
Button
,
Row
,
Col
,
Card
,
Tooltip
,
Grid
}
from
'antd'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
...
...
@@ -38,32 +38,32 @@ const production = {
{
title
:
'MES智能制造管理系统'
,
desc
:
'南高智能制造管理系统(MES) 是应用于生产制造车间的生产信息化管理系统。'
,
detail
:
''
,
detail
:
'
/factory/typea/mes
'
,
},
{
title
:
'WMS智能仓储管理系统'
,
desc
:
'南高智能仓储管理系统(WMS)是应用于仓储作业管理的仓储信息化管理系统。'
,
detail
:
''
,
detail
:
'
/factory/typea/wms
'
,
},
{
title
:
'EMS设备运维管理系统'
,
desc
:
'设备管理系统提供公有云、私有云两种部署方式,可为企业提供定制化开发服务,投入少、见效快。 '
,
detail
:
''
,
detail
:
'
/factory/typea/ems
'
,
},
{
title
:
'IOT数据采集系统'
,
desc
:
'组合各种物联网硬件采集多种数据,通过南高工业互联网平台,可上实现数据监测和设备控制。'
,
detail
:
''
,
detail
:
'
/factory/typea/iot
'
,
},
{
title
:
'PLM产品生命周期管理系统'
,
desc
:
'依托领先产品技术及解决方案,为企业提供了一整套全方位的数字化产品生命周期管理平台。'
,
detail
:
''
,
detail
:
'
/factory/typea/plm
'
,
},
{
title
:
'PDM产品数据管理系统'
,
desc
:
'南高智能仓储管理系统(WMS)是应用于仓储作业管理的仓储信息化管理系统。'
,
detail
:
''
,
detail
:
'
/factory/typea/pdm
'
,
},
],
l
:
[
...
...
@@ -304,7 +304,15 @@ function IndexPage({ route }) {
<
div
className=
"textcontainer"
>
<
h2
>
{
item
.
title
}
</
h2
>
<
p
className=
"twoline"
>
{
item
.
desc
}
</
p
>
<
Button
className=
"btn"
>
查看详情
</
Button
>
<
Button
className=
"btn"
size=
"large"
onClick=
{
()
=>
{
history
.
push
(
item
.
detail
);
}
}
>
查看详情
</
Button
>
</
div
>
</
div
>
);
...
...
@@ -348,6 +356,9 @@ function IndexPage({ route }) {
ghost
style=
{
{
margin
:
'0 auto'
,
display
:
'block'
}
}
size=
"large"
onClick=
{
()
=>
{
history
.
push
(
'/about/insert'
);
}
}
>
查看详情
</
Button
>
...
...
@@ -421,6 +432,9 @@ function IndexPage({ route }) {
ghost
style=
{
{
margin
:
'0 auto'
,
display
:
'block'
}
}
size=
"large"
onClick=
{
()
=>
{
history
.
push
(
'/together'
);
}
}
>
查看详情
</
Button
>
...
...
@@ -472,6 +486,14 @@ function IndexPage({ route }) {
></
div
>
}
hoverable
onClick=
{
()
=>
{
history
.
push
({
pathname
:
'/about/newsdetail'
,
query
:
{
id
:
zixun
?.
data
[
0
]?.
id
,
},
});
}
}
>
<
Meta
title=
{
...
...
@@ -533,6 +555,14 @@ function IndexPage({ route }) {
className=
"secitem"
key=
{
it
.
id
}
style=
{
{
marginBottom
:
'1rem'
}
}
onClick=
{
()
=>
{
history
.
push
({
pathname
:
'/about/newsdetail'
,
query
:
{
id
:
it
?.
id
,
},
});
}
}
>
<
div
className=
"spread"
...
...
src/pages/together.jsx
View file @
cc73a66b
...
...
@@ -67,13 +67,23 @@ function Together() {
作为“江苏省智能装备产业联盟”和“南京市智能制造装备产业促进会”的秘书长单位,南高智能一直积极地推动并联合与产业相关的政府部门、科研院所、优秀企业代表等,致力于建立真正全连接的产业生态,将拥有智能制造共同理念的参与者联合起来,成为未来整个智能制造产业生态建设的驱动者和践行者。
</
p
>
<
div
className=
"centerl"
>
<
Card
hoverable
>
<
Card
hoverable
onClick=
{
()
=>
{
window
.
open
(
'http://www.jsiea.com/'
);
}
}
>
<
img
src=
{
require
(
`@/assets/icon1.png`
)
}
alt=
""
/>
<
span
style=
{
{
fontSize
:
'0.6rem'
,
marginTop
:
12
}
}
>
江苏省智能装备产业联盟
</
span
>
</
Card
>
<
Card
hoverable
>
<
Card
hoverable
onClick=
{
()
=>
{
window
.
open
(
'http://njime.cn/'
);
}
}
>
<
img
src=
{
require
(
`@/assets/icon2.png`
)
}
alt=
""
/>
<
span
style=
{
{
fontSize
:
'0.6rem'
,
marginTop
:
12
}
}
>
南京市智能制造装备产业促进会
...
...
src/utils/request.js
View file @
cc73a66b
...
...
@@ -106,7 +106,6 @@ request.interceptors.response.use(async (response, options) => {
message
.
warn
(
data
?.
msg
);
if
(
data
?.
code
==
'0001'
&&
window
.
location
.
href
.
indexOf
(
'login'
)
==
-
1
)
{
localStorage
.
clear
();
history
.
replace
(
'/user/login'
);
}
}
}
...
...
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