Browse Source

Merge branch 'dev' of https://gitea.anxinyun.cn/gao.zhiyuan/Highways4Good into dev

release_0.0.1
巴林闲侠 3 years ago
parent
commit
67efe14df2
  1. BIN
      web/client/assets/images/bj.png
  2. BIN
      web/client/assets/images/quanju/biaoxian.png
  3. BIN
      web/client/assets/images/quanju/biaozhi.png
  4. BIN
      web/client/assets/images/quanju/chart-circle.png
  5. BIN
      web/client/assets/images/quanju/circle.png
  6. BIN
      web/client/assets/images/quanju/fanghu.png
  7. BIN
      web/client/assets/images/quanju/jiancha.png
  8. BIN
      web/client/assets/images/quanju/kelvhua_icon.png
  9. BIN
      web/client/assets/images/quanju/lupai.png
  10. BIN
      web/client/assets/images/quanju/renxing.png
  11. BIN
      web/client/assets/images/quanju/yushui.png
  12. BIN
      web/client/assets/images/quanju/zerenpai.png
  13. 59
      web/client/src/sections/auth/containers/login.js
  14. 47
      web/client/src/sections/auth/containers/style.less
  15. 2
      web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js
  16. 26
      web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js
  17. 10
      web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js
  18. 2
      web/client/src/sections/quanju/containers/footer/conserve/right.js
  19. 2
      web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js
  20. 41
      web/client/src/sections/quanju/containers/footer/conserve/right/right-center.js
  21. 50
      web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js
  22. 91
      web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js
  23. 9
      web/client/src/sections/quanju/containers/footer/guanli/index.js
  24. 177
      web/client/src/sections/quanju/containers/footer/guanli/style.less

BIN
web/client/assets/images/bj.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

BIN
web/client/assets/images/quanju/biaoxian.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
web/client/assets/images/quanju/biaozhi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
web/client/assets/images/quanju/chart-circle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
web/client/assets/images/quanju/circle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

BIN
web/client/assets/images/quanju/fanghu.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
web/client/assets/images/quanju/jiancha.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
web/client/assets/images/quanju/kelvhua_icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
web/client/assets/images/quanju/lupai.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
web/client/assets/images/quanju/renxing.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
web/client/assets/images/quanju/yushui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
web/client/assets/images/quanju/zerenpai.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

59
web/client/src/sections/auth/containers/login.js

@ -56,39 +56,38 @@ const Login = props => {
return ( return (
<div className='login'> <div className='login'>
<div className='left'></div> {/* <div className='left'></div> */}
<div className='right'> <div className='right'>
<div className='loginBox'> <div className='loginBox'>
<h1>四好公路</h1> <h1>南昌县智慧交通监管系统</h1>
<Form onKeyDown={enterHandler}> <Form onKeyDown={enterHandler}>
<FormItem>
<div className='loginFormTit'>用户名</div>
<Input
className='loginInp'
type="text"
value={username}
maxlength={11}
onChange={e => {
setUserName(e.target.value)
setInputChanged(true)
}}
/>
</FormItem>
<div className='loginFormTit'>密码</div>
<FormItem>
<Input
className='loginInp'
type="password"
value={password}
<FormItem> onChange={e => {
<div className='loginFormTit'>用户名</div> setPassword(e.target.value)
<Input setInputChanged(true)
className='loginInp' }}
type="text" />
value={username} </FormItem>
maxlength={11} </Form>
onChange={e => {
setUserName(e.target.value)
setInputChanged(true)
}}
/>
</FormItem>
<div className='loginFormTit'>密码</div>
<FormItem>
<Input
className='loginInp'
type="password"
value={password}
onChange={e => {
setPassword(e.target.value)
setInputChanged(true)
}}
/>
</FormItem>
</Form>
<Button type="primary" className='loginBtn' loading={isRequesting} onClick={handleLogin}>登录</Button> <Button type="primary" className='loginBtn' loading={isRequesting} onClick={handleLogin}>登录</Button>
</div> </div>
</div> </div>

47
web/client/src/sections/auth/containers/style.less

@ -5,21 +5,22 @@
top: 0; top: 0;
left: 0; left: 0;
.left { // .left {
background-image: url('/assets/images/loginBg.jpg'); // background-image: url('/assets/images/bj.png');
background-size: 100% 100%; // background-size: 100% 100%;
background-repeat: no-repeat; // background-repeat: no-repeat;
width: 55%; // width: 55%;
height: 100%; // height: 100%;
float: left; // float: left;
top: 0px; // top: 0px;
left: 0px; // left: 0px;
} // }
.right { .right {
width: 45%; background-image: url('/assets/images/bj.png');
width: 100%;
height: 100%; height: 100%;
background-color: #000066; // background-color: #000066;
float: left; float: left;
right: 0px; right: 0px;
bottom: 0px; bottom: 0px;
@ -45,22 +46,28 @@
} }
.loginBox { .loginBox {
height: 50%; // height: 50%;
width: 25%; width: 480px;
position: absolute; position: absolute;
right: 6.5%; right: 9%;
z-index: 20; z-index: 20;
text-align: center;
border: 3px solid rgba(255, 255, 255, 0.6);
border-radius: 20px;
h1 { h1 {
margin-top: 6%;
color: #fff; color: #fff;
font-size: 58px; font-size: 40px;
font-family: "YouSheBiaoTiHei";
} }
.loginFormTit { .loginFormTit {
width: 20%; // width: 20%;
font-size: 18px; font-size: 18px;
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
margin-bottom: 10px; margin: 0 0 10px 10%;
text-align: left;
} }
.loginInp { .loginInp {
@ -74,8 +81,10 @@
.loginBtn { .loginBtn {
width: 80%; width: 80%;
height: 50px; height: 50px;
margin-top: 20px; margin: 20px 0 9% 0;
border-radius: 5px; border-radius: 5px;
font-size: 16px; font-size: 16px;
} }
} }

2
web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js

@ -2,7 +2,7 @@ import React from 'react'
import Module from '../../../public/module' import Module from '../../../public/module'
const LeftBottom = () => { const LeftBottom = () => {
const style = { height: "30%", marginTop: "5%" } const style = { height: "31%", marginTop: "3%" }
return ( return (
<> <>
<Module style={style} title={"已绿化里程统计"}> <Module style={style} title={"已绿化里程统计"}>

26
web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js

@ -1,14 +1,30 @@
import { Col, Row } from 'antd'
import React from 'react' import React from 'react'
import { useEffect } from 'react'
import Module from '../../../public/module' import Module from '../../../public/module'
const LeftCenter = () => { const LeftCenter = () => {
const style = { height: "30%", marginTop: "5%" } const style = { height: "31%", marginTop: "3%" }
useEffect(() => {
}, [])
return ( return (
<> <>
<Module style={style} title={"可绿化里程统计"}> <Module style={style} title={"可绿化里程统计"}>
<Row align='middle' style={{ padding: 10 }}>
<Col span={15}>
<img src='assets/images/quanju/kelvhua_icon.png' alt='icon' />
<span style={{ color: '#C2EEFF', marginLeft: 5 }}>可绿化里程总数</span>
</Col>
<Col span={9} style={{ fontSize: 28, fontFamily: 'YouSheBiaoTiHei', color: '#fff' }}>1234.123</Col>
</Row>
<div>图表</div>
</Module> </Module>
</> </>
) )
} }
export default LeftCenter export default LeftCenter

10
web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js

@ -33,7 +33,7 @@ const LeftTop = () => {
}, },
], ],
polar: { polar: {
radius: ["65%", "73%"], radius: ["60%", "68%"],
center: ["50%", "50%"], center: ["50%", "50%"],
}, },
angleAxis: { angleAxis: {
@ -107,7 +107,7 @@ const LeftTop = () => {
}, },
], ],
polar: { polar: {
radius: ["65%", "73%"], radius: ["60%", "68%"],
center: ["50%", "50%"], center: ["50%", "50%"],
}, },
angleAxis: { angleAxis: {
@ -159,13 +159,13 @@ const LeftTop = () => {
chartInstance.setOption(frequentlyOption); chartInstance.setOption(frequentlyOption);
}, []) }, [])
const style = { height: "30%", marginTop: "5%" } const style = { height: "31%", marginTop: "3%" }
return ( return (
<> <>
<Module style={style} title={"道路养护周期统计"}> <Module style={style} title={"道路养护周期统计"}>
<div style={{ width: '100%', display: 'flex' }}> <div style={{ width: '100%', display: 'flex' }}>
<div ref={seasonChartRef} style={{ height: "23vh", width: "45%" }}></div> <div ref={seasonChartRef} style={{ height: "23vh", width: "50%" }}></div>
<div ref={frequentlyChartRef} style={{ height: "23vh", width: "45%" }}></div> <div ref={frequentlyChartRef} style={{ height: "23vh", width: "50%" }}></div>
</div> </div>
</Module> </Module>

2
web/client/src/sections/quanju/containers/footer/conserve/right.js

@ -5,7 +5,7 @@ import RightTop from './right/right-top'
const Right = () => { const Right = () => {
return ( return (
<div style={{ display: 'flex',flexDirection: 'column', width: "23%", height: "100%", marginLeft: "1%", }}> <div style={{ display: 'flex', flexDirection: 'column', width: "23%", height: "100%", marginRight: "1%", }}>
<RightTop /> <RightTop />
<RightCenter /> <RightCenter />
<RightBottom /> <RightBottom />

2
web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js

@ -2,7 +2,7 @@ import React from 'react'
import Module from '../../../public/module' import Module from '../../../public/module'
const RightBottom = () => { const RightBottom = () => {
const style = { height: "30%", marginTop: "5%" } const style = { height: "31%", marginTop: "3%" }
return ( return (
<> <>
<Module style={style} title={"养护完成情况"}> <Module style={style} title={"养护完成情况"}>

41
web/client/src/sections/quanju/containers/footer/conserve/right/right-center.js

@ -1,12 +1,49 @@
import React from 'react' import React from 'react'
import Module from '../../../public/module' import Module from '../../../public/module'
import { Col, Row } from 'antd'
const RightCenter = () => { const RightCenter = () => {
const style = { height: "30%", marginTop: "5%" } const style = { height: "31%", marginTop: "3%" }
const textStyle = { fontSize: 14, color: '#E9F7FF' }
const numStyle = { color: '#fff', fontSize: 24, fontFamily: 'YouSheBiaoTiHei', textShadow: '0px 0px 8px #1C60FE', marginTop: 8 }
return ( return (
<> <>
<Module style={style} title={"各类附属设施数量统计"}> <Module style={style} title={"各类附属设施数量统计"}>
<div style={{ paddingLeft: '8%' }}>
<Row style={{ marginTop: 20, justifyContent: 'space-around' }}>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/jiancha.png' alt='icon' />
<div style={{ marginLeft: 10 }}>
<div style={textStyle}>检查井</div>
<div style={numStyle}>89</div>
</div>
</Col>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/yushui.png' alt='icon' />
<span style={{ marginLeft: 10 }}>
<div style={textStyle}>雨水口</div>
<div style={numStyle}>61</div>
</span>
</Col>
</Row>
<Row style={{ marginTop: 20, justifyContent: 'space-around' }}>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/lupai.png' alt='icon' />
<span style={{ marginLeft: 10 }}>
<div style={textStyle}>路牌名</div>
<div style={numStyle}>2230</div>
</span>
</Col>
<Col span={12} style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/zerenpai.png' alt='icon' />
<span style={{ marginLeft: 10 }}>
<div style={textStyle}>养护责任牌</div>
<div style={numStyle}>1217</div>
</span>
</Col>
</Row>
</div>
</Module> </Module>
</> </>
) )

50
web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js

@ -1,14 +1,50 @@
import { Col, Row } from 'antd'
import React from 'react' import React from 'react'
import Module from '../../../public/module' import Module from '../../../public/module'
const RightTop= () => { const RightTop = () => {
const style = { height: "30%", marginTop: "5%" } const style = { height: "31%", marginTop: "3%" }
const textStyle = { fontSize: 14, color: '#E9F7FF' }
const numStyle = { color: '#fff', fontSize: 24, fontFamily: 'YouSheBiaoTiHei', textShadow: '0px 0px 8px #1C60FE', marginTop: 8 }
return ( return (
<> <>
<Module style={style} title={"道路设施数量统计"}> <Module style={style} title={"道路设施数量统计"}>
<div style={{ paddingLeft: '8%' }}>
</Module> <Row style={{ marginTop: 20, justifyContent: 'space-around' }}>
</> <Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/biaoxian.png' alt='icon' />
<div style={{ marginLeft: 10 }}>
<div style={textStyle}>标线</div>
<div style={numStyle}>1352km</div>
</div>
</Col>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/renxing.png' alt='icon' />
<span style={{ marginLeft: 10 }}>
<div style={textStyle}>人行道</div>
<div style={numStyle}>80</div>
</span>
</Col>
</Row>
<Row style={{ marginTop: 20, justifyContent: 'space-around' }}>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/biaozhi.png' alt='icon' />
<span style={{ marginLeft: 10 }}>
<div style={textStyle}>标志牌</div>
<div style={numStyle}>4563</div>
</span>
</Col>
<Col span={12} style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/fanghu.png' alt='icon' />
<span style={{ marginLeft: 10 }}>
<div style={textStyle}>防护栏</div>
<div style={numStyle}>1054km</div>
</span>
</Col>
</Row>
</div>
</Module>
</>
) )
} }
export default RightTop export default RightTop

91
web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js

@ -0,0 +1,91 @@
import React, { useEffect, useRef } from 'react';
import './style.less'
import * as echarts from 'echarts';
export default function LeftItem() {
const seasonChartRef = useRef(null);
useEffect(() => {
let chartInstance = echarts.init(seasonChartRef.current);
const seasonOption = {
title: [
{
text: "已处理",
x: "center",
top: "55%",
textStyle: {
color: "#E9F7FF",
fontSize: 14,
},
},
{
text: "2333",
x: "center",
y: "35%",
textStyle: {
fontSize: "30",
color: "#FFFFFF",
fontFamily: "YouSheBiaoTiHei",
},
},
],
polar: {
radius: ["78%", "86%"],
center: ["50%", "50%"],
},
angleAxis: {
max: 100,
show: false,
},
radiusAxis: {
type: "category",
show: true,
axisLabel: {
show: false,
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
series: [
{
name: "",
type: "bar",
roundCap: true,
barWidth: 30,
showBackground: true,
data: [40],
coordinateSystem: "polar",
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0,
color: "#AAC8FF",
},
{
offset: 1,
color: "#0041BB",
},
]),
},
},
},
],
};
chartInstance.setOption(seasonOption);
}, [])
return (
<div className='guanli-left-item'>
<div className='guanli-left-item-left'>
<span>莲塘镇</span>
<div>244 <span></span></div>
</div>
<div className='guanli-left-item-right'>
<div ref={seasonChartRef} style={{ height: "100%", width: "100%" }}></div>
</div>
</div>
)
}

9
web/client/src/sections/quanju/containers/footer/guanli/index.js

@ -2,9 +2,11 @@ import React from 'react'
import { Carousel } from 'antd' import { Carousel } from 'antd'
import AutoRollComponent from '../build/AutoRollComponent' import AutoRollComponent from '../build/AutoRollComponent'
import Module from '../../public/module' import Module from '../../public/module'
import LeftItem from './LeftItem'
import './style.less' import './style.less'
const Guanli = () => { const Guanli = () => {
const datas = new Array(35) const datas = new Array(35)
const itemlist = [1,2,3]
const renderContent = () => { const renderContent = () => {
datas.fill({ datas.fill({
chepaihao:'苏LD1112121', chepaihao:'苏LD1112121',
@ -27,7 +29,12 @@ const Guanli = () => {
renderContent() renderContent()
return ( return (
<div className='guanli'> <div className='guanli'>
<div className='guanli-left'> <div className='guanli-left'>
<Module style={{height:"100%"}} title="检测点治超处理占比">
{itemlist.map((item,index)=>
<LeftItem key={index}></LeftItem>
)}
</Module>
</div> </div>
<div className='guanli-right'> <div className='guanli-right'>
<Module style={{height:"100%"}} title="治超详情"> <Module style={{height:"100%"}} title="治超详情">

177
web/client/src/sections/quanju/containers/footer/guanli/style.less

@ -8,159 +8,58 @@
.guanli-left{ .guanli-left{
width: 25%; width: 25%;
height: 100%; height: 100%;
background-color: pink; .guanli-left-item{
.guanli-left-top{ box-sizing: border-box;
height: 100%; width: 85%;
width: 100%; height: 30%;
margin: 0 auto 3%;
display: flex; display: flex;
justify-content: center;
align-items: center; align-items: center;
.guanli-left-top-center{ padding: 0 10%;
width: 174px; justify-content: space-between;
height: 146px; border: 2px solid rgba(28,96,254,0.5000);
margin: 0 10px; .guanli-left-item-left{
} width: 30%;
.guanli-left-top-item{ height: 70%;
width: 25%;
height: 50%;
background-image: url('/assets/images/quanju/zhuangtaigognlubiankuang.png');
background-size: 95%;
background-repeat: no-repeat;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center;
align-items: center; align-items: center;
// text-align: center; span{
div{ font-size: 20px;
&:nth-child(1){ font-family: PingFangSC-Regular, PingFang SC;
display: flex; font-weight: 400;
justify-content: center; color: rgba(216,240,255,0.8000);
align-items: center;
span{
&:nth-child(1){
width: 8px;
height: 8px;
margin-right: 5px;
background: #07B9FE;
clip-path: polygon(0 0, 100% 0, 0 100%, 0 0);
transform: rotate(134deg);
}
&:nth-child(2){
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #E9F7FF;
line-height: 22px;
}
}
}
&:nth-child(2){
// width: 80%;
// height: 100%;
// margin: 1% auto 0;
font-size: 38px;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
text-align: center;
// line-height: 49px;
text-shadow: 0px 2px 4px #1C60FE;
}
} }
}
}
.guanli-left-center{
width: 100%;
height: 100%;
.guanli-left-center-top{
width: 100%;
height: 30%;
display: flex;
justify-content: space-between;
div{ div{
width: 50%;
height: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; // align-items: ;
img{ font-size: 34px;
height: 50px; font-family: YouSheBiaoTiHei;
width: 78px;
}
div{
display: flex;
flex-direction: column;
align-items: start;
justify-content: center;
margin-left: 10px;
span{
&:nth-child(1){
font-size: 12px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #C2EEFF;
letter-spacing: 1px;
}
&:nth-child(2){
font-size: 28px;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
line-height: 36px;
text-shadow: 0px 0px 4px #07B9FE;
}
}
}
}
// background-color: pink;
}
.guanli-left-center-titile{
display: flex;
margin-bottom: 10px;
span{
flex:1;
text-align: center;
font-size: 12px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFFFFF; color: #FFFFFF;
line-height: 16px; height: 60%;
} width: 100%;
} background: url('/assets/images/quanju/guanlijiance_1.png') no-repeat;
.guanli-left-center-content{ background-size: 100% 80%;
width: 100%; background-position: center bottom;
height: 100px!important;
.guanli-left-center-item{
display: flex !important;
width: 100%!important;
height: 28px!important;
span{ span{
flex:1; font-size: 16px;
text-align: center; font-family: PingFangSC-Regular, PingFang SC;
font-size: 12px; font-weight: 400;
font-family: PingFangSC-Medium, PingFang SC; padding-top: 10%;
font-weight: 500; margin-left: 5px;
color: #FFFFFF; // height: 0;
line-height: 16px; color: rgba(216,240,255,0.8000);
} }
} }
.slick-list{ // background-color: pink;
height: 128px !important;
}
} }
.guanli-left-item-right{
width: 40%;
} height: 60%;
.guanli-left-bottom{ // background-color: pink;
width: 100%; }
height: 100%; // background-color: pink;
display: flex;
justify-content: center;
align-items: center;
} }
} }
.guanli-right{ .guanli-right{

Loading…
Cancel
Save