diff --git a/weapp/package-lock.json b/weapp/package-lock.json index 0d599ce4..8899ef8d 100644 --- a/weapp/package-lock.json +++ b/weapp/package-lock.json @@ -9532,6 +9532,11 @@ "resolved": "http://10.8.30.22:7000/mobile-detect/-/mobile-detect-1.4.5.tgz", "integrity": "sha1-2jk8PEE8oam83ZztZTw4KBwPtq0=" }, + "moment": { + "version": "2.29.1", + "resolved": "http://npm.anxinyun.cn/moment/-/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" + }, "move-concurrently": { "version": "1.0.1", "resolved": "http://10.8.30.22:7000/move-concurrently/-/move-concurrently-1.0.1.tgz", diff --git a/weapp/package.json b/weapp/package.json index 6306c08b..d63a9260 100644 --- a/weapp/package.json +++ b/weapp/package.json @@ -46,6 +46,7 @@ "@tarojs/taro": "3.1.4", "dayjs": "^1.9.8", "deepmerge": "^4.0.0", + "moment": "^2.29.1", "react": "^16.10.0", "react-dom": "^16.10.0", "swr": "^0.5.4", diff --git a/weapp/src/actions/auth.js b/weapp/src/actions/auth.js index 5b33a8f2..30fdf382 100644 --- a/weapp/src/actions/auth.js +++ b/weapp/src/actions/auth.js @@ -37,7 +37,7 @@ export const login = (url, data) => { export const logout = (url, data) => { - return request.post(url, data).then(res => { + return request.put(url, data).then(res => { if (res.statusCode == 200 || res.statusCode == 204) { Taro.clearStorage(); return res.data; diff --git a/weapp/src/app.config.js b/weapp/src/app.config.js index 18a9b86e..34a44b5a 100644 --- a/weapp/src/app.config.js +++ b/weapp/src/app.config.js @@ -8,6 +8,7 @@ export default { 'root': 'packages/', 'pages': [ 'patrol/index', + 'patrolView/index' ] }], permission: { diff --git a/weapp/src/config.js b/weapp/src/config.js index a50b38d3..71b3443d 100644 --- a/weapp/src/config.js +++ b/weapp/src/config.js @@ -8,7 +8,7 @@ const baseConfig = { }; const development = { - baseUrl: 'https://smartwater.anxinyun.cn/api', + baseUrl: 'https://3024-117-90-36-177.jp.ngrok.io', webUrl: 'https://smartwater.anxinyun.cn', pcode: 'fce4afe2-5b6a-408a-ab18-a2afa7fa027c', imgUrl: 'http://test.resources.anxinyun.cn/', diff --git a/weapp/src/packages/patrol/index.jsx b/weapp/src/packages/patrol/index.jsx index fa27ad47..36390b54 100644 --- a/weapp/src/packages/patrol/index.jsx +++ b/weapp/src/packages/patrol/index.jsx @@ -81,7 +81,7 @@ const Index = () => { }, [images]) return ( - + 上报类型 diff --git a/weapp/src/packages/patrol/index.scss b/weapp/src/packages/patrol/index.scss index b7338b0f..83057e4b 100644 --- a/weapp/src/packages/patrol/index.scss +++ b/weapp/src/packages/patrol/index.scss @@ -1,13 +1,12 @@ -.patrol { - height: 100vh; +page { + height: 100%; width: 100vw; background-color: #f6f6f6; - padding-top: 20px; .report-type { height: 96px; background-color: #fff; - margin-bottom: 20px; + margin: 20px auto; display: flex; justify-content: space-between; align-items: center; @@ -53,6 +52,7 @@ .horizontal-line { height: 30px; width: 100%; + border-radius: 5px; display: flex; justify-content: left; align-items: center; @@ -111,6 +111,6 @@ .sub-btn { width: 70%; - margin-top: 100px; + margin: 80px auto; } } \ No newline at end of file diff --git a/weapp/src/packages/patrolView/index.config.js b/weapp/src/packages/patrolView/index.config.js new file mode 100644 index 00000000..e69de29b diff --git a/weapp/src/packages/patrolView/index.jsx b/weapp/src/packages/patrolView/index.jsx new file mode 100644 index 00000000..04792eea --- /dev/null +++ b/weapp/src/packages/patrolView/index.jsx @@ -0,0 +1,144 @@ +import React, { useState, useEffect } from 'react' +import Taro, { useDidShow } from '@tarojs/taro' +import { View, Picker, Input, Image } from '@tarojs/components' +import moment from 'moment' +import './index.scss' +import NoData from '@/components/no-data/noData' +import request from '@/services/request' +import { getReportList } from '@/services/api'; +import chevronDown from '../../static/img/patrolView/chevron-down.png' +import searchIcon from '../../static/img/patrolView/search.png' +import cardImg from '../../static/img/patrolView/card-img.png' +import patrolIcon from '../../static/img/patrolView/patrol.svg' +import patrolActiveIcon from '../../static/img/patrolView/patrol-active.svg' +import conserveIcon from '../../static/img/patrolView/conserve.svg' +import conserveActiveIcon from '../../static/img/patrolView/conserve-active.svg' + +function Index() { + const [isPatrol, setIsPatrol] = useState(true) + const [datePicker, setDatePicker] = useState(moment().format('YYYY-MM-DD')) + const [listData, setListData] = useState([]) + const [inputSite, setInputSite] = useState('') + const [page, setPage] = useState(0) + const [total, setTotal] = useState(0) + const [num, setNum] = useState(Math.random()) + const [systemInfo, setSystemInfo] = useState('') + + const userInfo = Taro.getStorageSync('userInfo') || {}; + + function dealError(error) { + Taro.showToast({ + title: error, + icon: 'none', + duration: 1500 + }); + throw new Error(error); + } + useEffect(() => { + request.get(getReportList(),{}, { hideErrorToast: true, hideLoading: true }).then(res => { + if (res.statusCode == 200) { + console.log(res); + setListData(res.data) + return res.data; + } else { + dealError(res.data.message || '请求出错'); + } + }, err => { + dealError(err.message || '请求出错'); + }); + }, []) + + useDidShow(() => { + let refresh = Taro.getStorageSync('refresh'); // 返回列表需要刷新 + if (refresh) { + setPage(0) + setNum(Math.random()) + Taro.removeStorageSync('refresh'); // 返回列表需要刷新 + } + Taro.getSystemInfo({ + success: (res) => { + // windows | mac为pc端 + // android | ios为手机端 + setSystemInfo(res.platform); + } + }); + }) + + const onTypeChange = bool => { + setIsPatrol(bool) + } + + const onDateChange = e => { + setDatePicker(e.detail.value); + } + + const handleConfirm = () => { + setPage(0) + setListData([]); + setTotal(0); + setNum(Math.random()) + } + + const handleInput = e => { + setInputSite(e.detail.value); + if (!e.detail.value) { + setPage(0) + setListData([]); + setTotal(0); + setNum(Math.random()) + } + } + + return ( + + + onTypeChange(true)}> + + 巡查 + + + onTypeChange(false)}> + + 养护 + + + + + 日期: + + {datePicker || '请选择'} + + + + + + + + + + + { + listData && listData.length > 0 ? listData && listData.map((e, index) => { + return ( + handleDetail(index)}> + + + + {e.road} + + 填报人: + {e.user.name} + + {moment(e.time).format('YYYY-MM-DD HH:mm:ss')} + + + + ) + }) : + } + + + ) +} + +export default Index diff --git a/weapp/src/packages/patrolView/index.scss b/weapp/src/packages/patrolView/index.scss new file mode 100644 index 00000000..7de6c587 --- /dev/null +++ b/weapp/src/packages/patrolView/index.scss @@ -0,0 +1,139 @@ +page { + background-color: #f6f6f6; + + .type-box { + position: fixed; + top: 0px; + width: 100%; + z-index: 100; + background-color: #fff; + height: 80px; + display: flex; + justify-content: space-around; + align-items: center; + + .item { + flex-grow: 1; + display: flex; + justify-content: center; + align-items: center; + + .type-img { + width: 40px; + height: 40px; + margin: 0 10px; + } + } + + .line { + width: 1px; + height: 30px; + background-color: #f6f6f6; + } + } + + .filter-box { + position: fixed; + top: 80px; + display: flex; + width: 100%; + z-index: 100; + background: #fff; + color: #999999; + font-size: 28rpx; + border-top: 2rpx solid #f6f6f6; + + .filter-item { + overflow: hidden; + height: 98rpx; + line-height: 98rpx; + flex: 1; + + .filter-name { + float: left; + // margin-left: 20rpx; + } + + .filter-img { + width: 14px; + height: 8px; + float: left; + margin: 46rpx 20rpx 18rpx 10rpx; + } + } + + .head-search { + width: 400rpx; + display: flex; + background: #fff; + padding: 10rpx 26rpx 15rpx; + box-sizing: border-box; + border-radius: 50rpx; + box-shadow: 0 8rpx 10rpx 0rpx #00000008; + border: 2rpx solid #00000011; + height: 68rpx; + line-height: 68rpx; + margin: 14rpx 30rpx 14rpx 0; + + .search-img { + width: 36rpx; + height: 36rpx; + margin-top: 5rpx; + } + + .heard-search-input { + margin-left: 26rpx; + font-size: 28rpx; + width: 100%; + color: #333; + } + } + } + + .cardBox { + width: 690rpx; + margin: 40rpx auto; + + .card-item { + position: relative; + margin-bottom: 10rpx; + + .card-bg { + width: 100%; + height: 260rpx; + display: block; + + } + + .card-position { + position: absolute; + top: 0; + left: 0; + width: 88%; + padding: 16rpx 0 16rpx 36rpx; + overflow: hidden; + text-align: justify; + + .card-title { + font-size: 28rpx; + color: #333333; + float: left; + margin-bottom: 30rpx; + width: 470rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + margin-top: 8rpx; + } + + .card-date { + float: left; + font-size: 28rpx; + color: #999999; + margin-top: 30rpx; + width: 100%; + } + } + } + } +} \ No newline at end of file diff --git a/weapp/src/pages/auth/login/login.jsx b/weapp/src/pages/auth/login/login.jsx index 70779dc8..5f45438f 100644 --- a/weapp/src/pages/auth/login/login.jsx +++ b/weapp/src/pages/auth/login/login.jsx @@ -18,7 +18,7 @@ const LoginPage = (props) => { const [password, setPassword] = useState(''); const doLogin = () => { - login(getLoginUrl(), { username, password, pcode }).then(res => { + login(getLoginUrl(), { phone: username, password }).then(res => { Taro.reLaunch({ url: '/pages/home/index' }); @@ -50,7 +50,7 @@ const LoginPage = (props) => { 登录 - + diff --git a/weapp/src/pages/home/index.jsx b/weapp/src/pages/home/index.jsx index 2ff925f4..ca1d68ca 100644 --- a/weapp/src/pages/home/index.jsx +++ b/weapp/src/pages/home/index.jsx @@ -4,20 +4,28 @@ import { View } from '@tarojs/components'; import { useIndustry } from '@/actions/business'; import './index.scss'; - const Index = () => { + const userInfo = Taro.getStorageSync('userInfo') || {}; + const isSuperAdmin = userInfo && userInfo.username === 'SuperAdmin' ? true : false function toPatrol() { Taro.navigateTo({ url: '/packages/patrol/index' }) } + function toPatrolView() { + Taro.navigateTo({ + url: '/packages/patrolView/index' + }) + } return ( 巡 查 养 护 - 填报 + + {isSuperAdmin ? '查看' : '填报'} + ); diff --git a/weapp/src/pages/user/index.jsx b/weapp/src/pages/user/index.jsx index 781cbb80..b1a7009d 100644 --- a/weapp/src/pages/user/index.jsx +++ b/weapp/src/pages/user/index.jsx @@ -10,6 +10,8 @@ import moreImg from '../../static/img/my/more.svg'; import pswdImg from '../../static/img/my/pswd.svg'; import reportImg from '../../static/img/my/report.svg'; +import Common from '../../components/echartForWx/common'; // 如果这行删掉微信小程序编译就一直死循环,待解决 + const { webUrl } = cfg; const Index = ({ ...props }) => { @@ -27,14 +29,14 @@ const Index = ({ ...props }) => { }); } - console.log(userInfo) + return ( - {userInfo.displayName} + {userInfo.name} {userInfo.phone} diff --git a/weapp/src/pages/user/index.scss b/weapp/src/pages/user/index.scss index 152e5a44..8273e5a1 100644 --- a/weapp/src/pages/user/index.scss +++ b/weapp/src/pages/user/index.scss @@ -1,6 +1,6 @@ .page { height: 100vh; - background: #F0F2F5; + background: #f6f6f6; display: flex; flex-direction: column; diff --git a/weapp/src/services/api.js b/weapp/src/services/api.js index 08fe03f8..bc0f6aeb 100644 --- a/weapp/src/services/api.js +++ b/weapp/src/services/api.js @@ -1,13 +1,16 @@ export const getLoginUrl = () => { - return `/login`; + return `/wxLogin`; }; - export const getLogoutUrl = () => { return `/logout`; }; +export const getReportList = () => { + return `/report/list`; +}; + //行业查询 export const getIndustryUrl = () => { return `/elec/business/industry` diff --git a/weapp/src/static/img/patrolView/card-img.png b/weapp/src/static/img/patrolView/card-img.png new file mode 100644 index 00000000..9027dfbb Binary files /dev/null and b/weapp/src/static/img/patrolView/card-img.png differ diff --git a/weapp/src/static/img/patrolView/chevron-down.png b/weapp/src/static/img/patrolView/chevron-down.png new file mode 100644 index 00000000..abbb78ae Binary files /dev/null and b/weapp/src/static/img/patrolView/chevron-down.png differ diff --git a/weapp/src/static/img/patrolView/conserve-active.svg b/weapp/src/static/img/patrolView/conserve-active.svg new file mode 100644 index 00000000..9af62b14 --- /dev/null +++ b/weapp/src/static/img/patrolView/conserve-active.svg @@ -0,0 +1,30 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/conserve.svg b/weapp/src/static/img/patrolView/conserve.svg new file mode 100644 index 00000000..4025c704 --- /dev/null +++ b/weapp/src/static/img/patrolView/conserve.svg @@ -0,0 +1,32 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/patrol-active.svg b/weapp/src/static/img/patrolView/patrol-active.svg new file mode 100644 index 00000000..5d9003d9 --- /dev/null +++ b/weapp/src/static/img/patrolView/patrol-active.svg @@ -0,0 +1,29 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/patrol.svg b/weapp/src/static/img/patrolView/patrol.svg new file mode 100644 index 00000000..b77af261 --- /dev/null +++ b/weapp/src/static/img/patrolView/patrol.svg @@ -0,0 +1,27 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/search.png b/weapp/src/static/img/patrolView/search.png new file mode 100644 index 00000000..15db47f2 Binary files /dev/null and b/weapp/src/static/img/patrolView/search.png differ diff --git a/web/client/assets/color.less b/web/client/assets/color.less index 83d90140..3b9b4ccd 100644 --- a/web/client/assets/color.less +++ b/web/client/assets/color.less @@ -1128,10 +1128,10 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;} .ant-menu-item-danger.ant-menu-item {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;} -.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{menu-popup-bg}", 2)`);} +.ant-menu-item-danger.ant-menu-item:active {background: #fff1f0;} .ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} -.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{menu-popup-bg}", 2)`);} +.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: #fff1f0;} .ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;} .ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;} .ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;} @@ -1702,17 +1702,11 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;} .ant-tag-checkable-checked {background-color: @primary-color;} .ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);} -<<<<<<< HEAD -.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #ffadd2;} +.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #ffadd2;} -======= -.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{timeline-color}", 4)`);border-color: #ffadd2;} -.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{timeline-color}", 4)`);border-color: #ffadd2;} ->>>>>>> 65cf2722eec21e1d07ce958f4298eec7ae620c85 +.ant-tag-magenta {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{menu-popup-bg}", 2)`);border-color: #ffa39e;} +.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;} .ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;} .ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;} .ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;} @@ -1720,7 +1714,7 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;} .ant-tag-yellow {color: #d4b106;background: #feffe6;border-color: #fffb8f;} .ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;} -.ant-tag-gold {color: #d48806;background: color(~`colorPalette("@{skeleton-color}", 1)`);border-color: #ffe58f;} +.ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;} .ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;} .ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;} .ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;} @@ -1728,17 +1722,11 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;} .ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;} .ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;} -.ant-tag-blue {color: #096dd9;background: color(~`colorPalette("@{progress-steps-item-bg}", 1)`);border-color: #91d5ff;} +.ant-tag-blue {color: #096dd9;background: color(~`colorPalette("@{pagination-item-input-bg}", 1)`);border-color: #91d5ff;} .ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} -<<<<<<< HEAD -.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{success-color-deprecated-border}", 1)`);border-color: #adc6ff;} -.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} -.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{progress-steps-item-bg}", 3)`);border-color: #d3adf7;} -======= -.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{popover-background}", 3)`);border-color: #adc6ff;} +.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{avatar-bg}", 4)`);border-color: #adc6ff;} .ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} -.ant-tag-purple {color: #531dab;background: #f9f0ff;border-color: #d3adf7;} ->>>>>>> 65cf2722eec21e1d07ce958f4298eec7ae620c85 +.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{calendar-bg}", 1)`);border-color: #d3adf7;} .ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;} .ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;} .ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;} @@ -1975,7 +1963,7 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography .ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;} .ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;} -.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{progress-steps-item-bg}", 1)`)'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{progress-steps-item-bg}", 1)`)'] {fill: @error-color-deprecated-bg;} +.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{pagination-item-input-bg}", 1)`)'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{pagination-item-input-bg}", 1)`)'] {fill: @error-color-deprecated-bg;} .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {fill: #ff4d4f;} .ant-upload-list-picture-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);} .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {color: rgba(255, 255, 255, 0.85);} diff --git a/web/client/assets/images/quanju/search.png b/web/client/assets/images/quanju/search.png new file mode 100644 index 00000000..b2e932c3 Binary files /dev/null and b/web/client/assets/images/quanju/search.png differ diff --git a/web/client/src/sections/organization/components/depModal.js b/web/client/src/sections/organization/components/depModal.js index 56f341b4..bd624b48 100644 --- a/web/client/src/sections/organization/components/depModal.js +++ b/web/client/src/sections/organization/components/depModal.js @@ -68,7 +68,7 @@ const DepModal = (props) => { function mapStateToProps(state) { const { depMessage } = state; - console.log('depMessage:',depMessage); + const pakData = (dep) => { return dep.map((d) => { return { @@ -80,7 +80,6 @@ function mapStateToProps(state) { }) } let depData = pakData(depMessage.data || []) - console.log('depData:',depData); return { loading: depMessage.isRequesting, depData, diff --git a/web/client/src/sections/organization/containers/user.js b/web/client/src/sections/organization/containers/user.js index bf811a2f..f5ac9ac9 100644 --- a/web/client/src/sections/organization/containers/user.js +++ b/web/client/src/sections/organization/containers/user.js @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import { connect } from 'react-redux'; import { DeleteOutlined, EllipsisOutlined, FormOutlined } from '@ant-design/icons'; -import { Spin, Space, Button, Popconfirm, Row, Col, Tree, Table, Card, Switch, Tooltip } from 'antd'; +import { Spin, Space, Button, Popconfirm, Row, Col, Tree, Table, Card, Switch, Tooltip, Breadcrumb } from 'antd'; import ProTable from '@ant-design/pro-table'; import { getDepMessage, getDepUser, createUser, updateUser, delUser, resetPwd, createDep, delDep, updateDep } from '../actions/user'; import UserModal from '../components/userModal'; @@ -22,6 +22,7 @@ const UserManage = (props) => { const [depModalType, setDepModalType] = useState(); const [depModalRecord, setDepModalRecord] = useState(); const [selectedTree, setSelectedTree] = useState(); + const [depCrumbs, setDepCrumbs] = useState([]); useEffect(() => { @@ -34,6 +35,12 @@ const UserManage = (props) => { dispatch(getDepUser(depMessage[0].id)) } }, [depMessage]) + + useEffect(() => { + const list = handleCrumbs(depSelectedKeys) + setDepCrumbs(list) + + }, [depSelectedKeys]) const columns = [ { @@ -181,7 +188,7 @@ const UserManage = (props) => { // 删除部门 const delDepartment = (id) => { dispatch(delDep(id)).then(res => { - if(res.success){ + if (res.success) { dispatch(getDepMessage()) } }); @@ -208,6 +215,32 @@ const UserManage = (props) => { } + + const handleCrumbs = (id) => { + let crumbsList = [] + + depMessage?.forEach(d => { + if (id == d.id) { + crumbsList.push(d.name) + } + d.subordinate?.forEach(s => { + if (id == s.id) { + crumbsList.push(d.name) + crumbsList.push(s.name) + } + s.subordinate?.forEach(a => { + if (id == a.id) { + crumbsList.push(d.name) + crumbsList.push(s.name) + crumbsList.push(a.name) + } + }) + }) + }) + return crumbsList + } + + return (
@@ -220,6 +253,7 @@ const UserManage = (props) => { style={{ marginLeft: 10 }} onClick={() => openDepModal('create')} >新建部门 + { depMessage.length ? { defaultExpandedKeys={[depMessage[0].id]} selectedKeys={depSelectedKeys} onSelect={(selectedKeys, e) => { + // console.log('selectedKeys:',selectedKeys); + if (e.selected) { + handleCrumbs(selectedKeys) setSelectedTree(selectedKeys) setDepSelectedKeys(selectedKeys) dispatch(getDepUser(selectedKeys[0])) @@ -260,7 +297,11 @@ const UserManage = (props) => { - + + { + depCrumbs?.map((c, index) => { return ({c}) }) + } + { function mapStateToProps(state) { const { depMessage, depUser, global } = state; + console.log('depMessage:', depMessage); // console.log(state); return { clientHeight: global.clientHeight, diff --git a/web/client/src/sections/quanju/actions/example.js b/web/client/src/sections/quanju/actions/example.js index b9b2ffbd..5818df8d 100644 --- a/web/client/src/sections/quanju/actions/example.js +++ b/web/client/src/sections/quanju/actions/example.js @@ -13,3 +13,41 @@ export function getMembers(orgId) { reducer: { name: 'members' } }); } + + +//获取大屏道路统计信息 +export function getdaolutongji() { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + actionType: 'GET_DAOLUTONGJI', + url: ApiTable.getBgroadstatistics, + msg: { error: '获取道路统计信息失败' }, + // reducer: { name: 'members' } + }); +} + +//获取治超监测点处理数据信息 +export function getjiandmanage() { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + actionType: 'GET_JIANDMANAGE', + url: ApiTable.getzhichaomanager, + msg: { error: '获取治超监测点处理数据信息' }, + // reducer: { name: 'members' } + }); +} + + +//获取治超详情列 +export function getjiandetail() { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + actionType: 'GET_JIANDETAIL', + url: ApiTable.getzhichaodetail, + msg: { error: '获取治超监测点处理数据信息' }, + // reducer: { name: 'members' } + }); +} \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/build/index.js b/web/client/src/sections/quanju/containers/footer/build/index.js index 834b1b31..86884a9b 100644 --- a/web/client/src/sections/quanju/containers/footer/build/index.js +++ b/web/client/src/sections/quanju/containers/footer/build/index.js @@ -1,4 +1,5 @@ -import React from 'react' +import React, { useEffect, useState } from 'react' +import { connect } from 'react-redux'; // import LeftTop from './Lefttop' // import LeftCenter from './Leftcenter' import LeftBottom from './Leftbottom' @@ -10,7 +11,19 @@ import Module from '../../public/module' import RightBottom from './Rightbottom' import AutoRollComponent from './AutoRollComponent' import './style.less' -const Build = () => { +import {getdaolutongji} from '../../../actions/example' +const Build = (props) => { + const { dispatch } = props + const [buildingnumber,setbuildingnumber] = useState(0) + const requestbuildingnumber = async ()=>{ + const res = await dispatch(getdaolutongji()); + setbuildingnumber(res.payload.data) + // console.log(res.payload.data,'哈哈哈') + + } + useEffect(()=>{ + requestbuildingnumber() + },[]) const datas = new Array(15) datas.fill({ name:"东乡镇", @@ -39,7 +52,7 @@ const Build = () => { 在建公路数量
-
6200
+
{buildingnumber.buildingRoad || 0}
@@ -48,7 +61,7 @@ const Build = () => { 已建公路数量
-
6200
+
{buildingnumber.buildedRoad || 0}
@@ -111,4 +124,24 @@ const Build = () => { ) } -export default Build +function mapStateToProps(state) { + const { auth, depMessage } = state; + const pakData = (dep) => { + return dep.map((d) => { + return { + title: d.name, + value: d.id, + // children: d.type >= 2 ? [] : pakData(d.subordinate) + children: pakData(d.subordinate) + } + }) + } + let depData = pakData(depMessage.data || []) + return { + user: auth.user, + depMessage: depMessage.data || [], + depLoading: depMessage.isRequesting, + depData, + }; +} +export default connect(mapStateToProps)(Build); diff --git a/web/client/src/sections/quanju/containers/footer/conserve/chart/pie-chart.js b/web/client/src/sections/quanju/containers/footer/conserve/chart/pie-chart.js new file mode 100644 index 00000000..f3f26f3e --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/conserve/chart/pie-chart.js @@ -0,0 +1,110 @@ +import React from 'react' +import { useEffect, useRef } from 'react'; +import * as echarts from 'echarts'; + +const PieChart = (props) => { + + const { width, height, data, colorList, underColorList, total, text } = props + + const chartRef = useRef(null); + let name = [], emptyName = [] + // const name = data?.map(d) + data?.forEach(d => { + name.push(d.name) + emptyName.push({ + name: '', + value: d.value + }) + }) + useEffect(() => { + let chartInstance = echarts.init(chartRef.current); + const option = { + tooltip: { + trigger: "item", + }, + legend: { + orient: "vertical", + itemWidth: 10, + itemHeight: 10, + right: '30%', + top: 'center', + align: 'left', + data: name, + textStyle: { + color: "#fff", + }, + }, + grid: { + left: '10%' + }, + // title: [ + // { + // text: text, + // top: "58%", + // left: '16%', + // textStyle: { + // color: "#E9F7FF", + // fontSize: 14, + // }, + // }, + // { + // text: total, + // top: "40%", + // left: '10%', + // textStyle: { + // fontSize: "30", + // color: "#FFFFFF", + // fontFamily: "YouSheBiaoTiHei", + // }, + // }, + // ], + series: [ + { + name: "底层背景", + type: "pie", + hoverAnimation: false, + legendHoverLink: false, + radius: ["60%", "72%"], + center: ['25%', '50%'], + color: underColorList, + label: { + show: false + }, + labelLine: { + show: false + }, + tooltip: { + show: false, + }, + + data: emptyName, + }, + { + name: "已绿化里程统计", + type: "pie", + radius: ["67%", "80%"], + center: ['25%', '50%'], + color: colorList, + label: { + show: false + }, + data: data, + }, + ], + }; + + chartInstance.setOption(option); + window.addEventListener('resize', () => { + if (chartInstance) { + chartInstance.resize() + } + }) + }, []) + return ( +
+
+
+ + ) +} +export default PieChart \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js b/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js index 51ea4ef7..82097322 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js @@ -1,14 +1,39 @@ import React from 'react' import Module from '../../../public/module' +import PieChart from '../chart/pie-chart'; +let data = [ + { value: 435, name: "县道" }, + { value: 679, name: "乡道" }, + { value: 848, name: "村道" }, +] +let colorList = [ + "rgba(7,185,254,1)", + "rgba(28,96,254,1)", + "rgba(4,251,240,1)", +] +let underColorList = [ + "rgba(7,185,254,0.5)", + "rgba(28,96,254,0.5)", + "rgba(4,251,240,0.5)", +] const LeftBottom = () => { const style = { height: "31%", marginTop: "3%" } return ( - <> - - - - + <> + + {/*
*/} + +
+ ) } export default LeftBottom \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js b/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js index 47bfba29..d2cd5330 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js @@ -34,8 +34,9 @@ const LeftCenter = () => { grid: { left: "5%", top: "12%", - right: "1%", + right: "5%", bottom: "8%", + width:'92%', containLabel: true, }, @@ -102,12 +103,15 @@ const LeftCenter = () => { backgroundColor: { image: 'assets/images/quanju/kelvhua_bdbg.png', }, - width: 50, - height: 20, + width: 70, + height: 22, color: '#D8F0FF', - margin:40, + margin:50, verticalAlign: 'middle', - align: 'center' + align: 'center', + textShadowColor:'#1AD0FF', + textShadowBlur:6, + fontSize:14 // formatter:(f) =>{console.log('f:',f);} }, inverse: true, //排序 @@ -197,9 +201,11 @@ const LeftCenter = () => { ], }; chartInstance.setOption(option); - window.onresize = function () { - chartInstance.resize(); - } + window.addEventListener('resize',() =>{ + if(chartInstance) { + chartInstance.resize() + } + }) }, []); return ( @@ -211,7 +217,7 @@ const LeftCenter = () => { icon 可绿化里程总数 - 1234.123 + 1234
diff --git a/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js b/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js index 3ab9489d..eaadc4f8 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js @@ -194,7 +194,7 @@ const LeftTop = () => { const style = { height: "31%", marginTop: "3%" } return ( <> - +
diff --git a/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js b/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js index 9665fb01..744165df 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js @@ -1,14 +1,42 @@ import React from 'react' import Module from '../../../public/module' +import PieChart from '../chart/pie-chart'; +let data = [ + { value: 435, name: "道路" }, + { value: 679, name: "桥梁" }, + { value: 848, name: "涵洞" }, + { value: 666, name: "其他" }, +] +let colorList = [ + "rgba(7,185,254,1)", + "rgba(28,96,254,1)", + "rgba(4,251,240,1)", + "rgba(255,194,20,1)" +] +let underColorList = [ + "rgba(7,185,254,0.5)", + "rgba(28,96,254,0.5)", + "rgba(4,251,240,0.5)", + "rgba(255,194,20,0.5)" +] const RightBottom = () => { const style = { height: "31%", marginTop: "3%" } return ( - <> - - - - + <> + + {/*
*/} + +
+ ) } export default RightBottom \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js b/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js index 71718a61..720a27d8 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js +++ b/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js @@ -10,7 +10,7 @@ export default function LeftItem() { text: '75%', top:'35%', textStyle: { - fontSize: 22, + fontSize: "1.375rem", fontFamily: 'PingFangSC-Medium, PingFang SC', fontWeight: 500, // marginTop:-60, @@ -18,7 +18,7 @@ export default function LeftItem() { }, subtext: '已处理', subtextStyle: { - fontSize: 16, + fontSize: "1rem", fontFamily: "PingFangSC-Regular, PingFang SC", fontWeight: 400, color: 'rgba(216,240,255,0.8000)' diff --git a/web/client/src/sections/quanju/containers/footer/guanli/index.js b/web/client/src/sections/quanju/containers/footer/guanli/index.js index e50e8467..4557fdaf 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/index.js +++ b/web/client/src/sections/quanju/containers/footer/guanli/index.js @@ -1,39 +1,57 @@ -import React from 'react' +import React, { useEffect, useState } from 'react'; +import { connect } from 'react-redux'; import { Carousel } from 'antd' import AutoRollComponent from '../build/AutoRollComponent' import Module from '../../public/module' import LeftItem from './LeftItem' +import {getjiandmanage,getjiandetail} from '../../../actions/example' import './style.less' -const Guanli = () => { - const datas = new Array(35) - const itemlist = [1,2,3] +const Guanli = (props) => { + const {dispatch} = props + const [leftDatas,setleftDatas] = useState([]) + const [rightDatas,setrightDatas] = useState([]) + const requestleftDatas = async()=>{ + const res = await dispatch(getjiandmanage()) + setleftDatas(res.payload.data) + // console.log(res,'哈哈哈') + } + const requestRightDatas = async()=>{ + const res = await dispatch(getjiandetail()) + setrightDatas(res.payload.data) + console.log(res,'嘿嘿嘿') + } + useEffect(()=>{ + requestleftDatas(); + requestRightDatas() + },[]) + const renderContent = () => { - datas.fill({ - chepaihao:'苏LD1112121', - caoxian:'30%', - chufa:'200元', - riqi:'2022年5月4日' - },1,35) - console.log(datas,'数组') return
- {datas?.map(({ chepaihao, caoxian, chufa,riqi }, index) => { + {rightDatas && rightDatas.length!==0?rightDatas.overSpeedList.map(({ id, licensePlate, overrunRate,fine,processingTime }, index) => { return
- {chepaihao} - {caoxian} - {chufa} - {riqi} + {licensePlate} + {overrunRate}% + {fine} + {processingTime}
- })} + }):""}
} + const renderLeftContent = ()=>{ + + return leftDatas && leftDatas.length!==0?leftDatas.map((item,index)=> + + ):"" + + } // renderContent() return (
- {itemlist.map((item,index)=> - - )} +
@@ -41,7 +59,7 @@ const Guanli = () => {
已处理 - 187 + {rightDatas.processed||0}
@@ -58,4 +76,24 @@ const Guanli = () => {
) } -export default Guanli \ No newline at end of file +function mapStateToProps(state) { + const { auth, depMessage } = state; + const pakData = (dep) => { + return dep.map((d) => { + return { + title: d.name, + value: d.id, + // children: d.type >= 2 ? [] : pakData(d.subordinate) + children: pakData(d.subordinate) + } + }) + } + let depData = pakData(depMessage.data || []) + return { + user: auth.user, + depMessage: depMessage.data || [], + depLoading: depMessage.isRequesting, + depData, + }; +} +export default connect(mapStateToProps)(Guanli); \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/guanli/style.less b/web/client/src/sections/quanju/containers/footer/guanli/style.less index d6f3056a..ac6fba18 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/style.less +++ b/web/client/src/sections/quanju/containers/footer/guanli/style.less @@ -1,3 +1,8 @@ +@media screen and (max-width:1281px){ + html{ + font-size: 10px; + } +} .guanli{ // box-sizing: border-box; padding: 0 15px 0 15px; @@ -25,7 +30,7 @@ flex-direction: column; align-items: center; span{ - font-size: 20px; + font-size: 1.25rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: rgba(216,240,255,0.8000); @@ -34,7 +39,7 @@ display: flex; justify-content: center; // align-items: ; - font-size: 34px; + font-size: 2.125rem; font-family: YouSheBiaoTiHei; color: #FFFFFF; height: 70%; @@ -43,7 +48,7 @@ background-size: 100% 80%; background-position: center bottom; span{ - font-size: 16px; + font-size: 1rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; padding-top: 10%; @@ -143,12 +148,12 @@ justify-content: space-around; // background: rgba(21,77,160,0.2000); span{ - font-size: 14px; + font-size: 0.875rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: rgba(216,240,255,0.8000); line-height: 20px; - flex:1; + // flex:1; text-align: center; // &:nth-child(1){ diff --git a/web/client/src/sections/quanju/containers/footer/operation/index.js b/web/client/src/sections/quanju/containers/footer/operation/index.js index c8b81208..4ebd1ab2 100644 --- a/web/client/src/sections/quanju/containers/footer/operation/index.js +++ b/web/client/src/sections/quanju/containers/footer/operation/index.js @@ -1,8 +1,13 @@ import React from 'react' +import Left from './left' +import Right from './right' const Operation = () => { return ( - <>运营 +
+ + +
) } export default Operation \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/operation/left.js b/web/client/src/sections/quanju/containers/footer/operation/left.js new file mode 100644 index 00000000..eb5681e7 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/operation/left.js @@ -0,0 +1,180 @@ +import React, { useMemo, useState, useEffect } from 'react'; +import { SearchOutlined } from '@ant-design/icons'; +import { Col, Row, Input, Tree } from 'antd' +import Module from '../../public/module' + +const { Search } = Input; +const x = 3; +const y = 2; +const z = 1; +const defaultData = []; + +const generateData = (_level, _preKey, _tns) => { + const preKey = _preKey || '0'; + const tns = _tns || defaultData; + const children = []; + + for (let i = 0; i < x; i++) { + const key = `${preKey}-${i}`; + tns.push({ + title: key, + key, + }); + + if (i < y) { + children.push(key); + } + } + + if (_level < 0) { + return tns; + } + + const level = _level - 1; + children.forEach((key, index) => { + tns[index].children = []; + return generateData(level, key, tns[index].children); + }); +}; + +generateData(z); +const dataList = []; + +const generateList = (data) => { + for (let i = 0; i < data.length; i++) { + const node = data[i]; + const { key } = node; + dataList.push({ + key, + title: key, + }); + + if (node.children) { + generateList(node.children); + } + } +}; + +generateList(defaultData); + +const getParentKey = (key, tree) => { + let parentKey; + + for (let i = 0; i < tree.length; i++) { + const node = tree[i]; + + if (node.children) { + if (node.children.some((item) => item.key === key)) { + parentKey = node.key; + } else if (getParentKey(key, node.children)) { + parentKey = getParentKey(key, node.children); + } + } + } + + return parentKey; +}; + +const Left = () => { + + useEffect(() => { + + }, []) + + const style = { height: "97%", marginTop: "3%" } + const [expandedKeys, setExpandedKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [autoExpandParent, setAutoExpandParent] = useState(true); + + const onExpand = (newExpandedKeys) => { + setExpandedKeys(newExpandedKeys); + setAutoExpandParent(false); + }; + + const onChange = (e) => { + const { value } = e.target; + const newExpandedKeys = dataList + .map((item) => { + if (item.title.indexOf(value) > -1) { + return getParentKey(item.key, defaultData); + } + + return null; + }) + .filter((item, i, self) => item && self.indexOf(item) === i); + setExpandedKeys(newExpandedKeys); + setSearchValue(value); + setAutoExpandParent(true); + }; + + const treeData = useMemo(() => { + const loop = (data) => + data.map((item) => { + const strTitle = item.title; + const index = strTitle.indexOf(searchValue); + const beforeStr = strTitle.substring(0, index); + const afterStr = strTitle.slice(index + searchValue.length); + const title = + index > -1 ? ( + + {beforeStr} + {searchValue} + {afterStr} + + ) : ( + {strTitle} + ); + + if (item.children) { + return { + title, + key: item.key, + children: loop(item.children), + }; + } + + return { + title, + key: item.key, + }; + }); + + return loop(defaultData); + }, [searchValue]); + return ( +
+ +
+
+ + +
+ +
+
+
+ ); +}; + +export default Left; \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/operation/right.js b/web/client/src/sections/quanju/containers/footer/operation/right.js new file mode 100644 index 00000000..fe140e63 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/operation/right.js @@ -0,0 +1,9 @@ +import React from 'react' + +const Right = () => { + return ( +
555555555 +
+ ) +} +export default Right \ No newline at end of file diff --git a/web/client/src/sections/quanju/nav-item.js b/web/client/src/sections/quanju/nav-item.js index 74bdd2a2..63fc92d6 100644 --- a/web/client/src/sections/quanju/nav-item.js +++ b/web/client/src/sections/quanju/nav-item.js @@ -7,10 +7,11 @@ const SubMenu = Menu.SubMenu; export function getNavItem(user, dispatch) { return ( - } title={'举个栗子'}> - - 举个棒子2 - - + // } title={'举个栗子'}> + // + // 举个棒子2 + // + // + <> ); } \ No newline at end of file diff --git a/web/client/src/utils/webapi.js b/web/client/src/utils/webapi.js index 7e36e0fd..257c8a77 100644 --- a/web/client/src/utils/webapi.js +++ b/web/client/src/utils/webapi.js @@ -47,9 +47,22 @@ export const ApiTable = { //桥梁管理 getBridge:'bridge', //工程数据 -getProject:'project' +getProject:'project', + +//道路统计 +getBgroadstatistics:"build/road_state", + +//治超监测点处理数据 +getzhichaomanager:'manage/overspeed/processed', + +//获取治超详情数据 +getzhichaodetail:'/manage/overspeed' }; + + + + export const RouteTable = { apiRoot: '/api/root', fileUpload: '/_upload/new',