diff --git a/src/config/character.config.js b/src/config/character.config.js index 5ec0cf3..581506a 100644 --- a/src/config/character.config.js +++ b/src/config/character.config.js @@ -1024,3 +1024,104 @@ export const stackBarChartOption = { data: [] }] } + +export const barChartOption = { + // color: colorList, + grid: { + top: '15%', + left: '0%', + right: '4%', + bottom: '3%', + containLabel: true + }, + tooltip: { + trigger: "axis", + axisPointer: { + type: "shadow", + textStyle: { + color: "#fff" + } + } + }, + legend: { + icon: 'rect', + top: '5%', + left: 'center', + itemHeight: 6, + itemGap: 20, + textStyle: { + color: '#fff' + } + }, + calculable: true, + xAxis: { + type: 'category', + boundaryGap: true, + data: [], + axisLabel: { + color: 'rgba(255, 255, 255, .65)' + } + }, + yAxis: { + type: 'value', + axisLine: { + show: false + }, + axisLabel: { + color: 'rgba(255, 255, 255, .65)' + }, + splitLine: { + show: true, + lineStyle: { + type: 'dashed', + color: '#fff', + opacity: .15 + } + } + }, + series: [{ + name: "", + type: "bar", + barMaxWidth: 12, + barGap: "10%", + itemStyle: { + barBorderRadius: [2, 2, 0, 0], + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#99EBFF' + }, { + offset: 1, color: '#3AA9FF' + }], + globalCoord: false + } + }, + data: [] + }, { + name: "", + type: "bar", + barMaxWidth: 12, + barGap: "10%", + itemStyle: { + barBorderRadius: [2, 2, 0, 0], + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#FFB8B8' + }, { + offset: 1, color: '#F481F8' + }], + globalCoord: false + } + }, + data: [] + }] +} diff --git a/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/index.scss b/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/index.scss index 1838f71..027a301 100644 --- a/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/index.scss +++ b/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/index.scss @@ -1,5 +1,259 @@ @import "@/assets/css/mixin.scss"; + $color-container-bg : var(--color-container-bg); $color-user-list-bg : var(--color-user-list-bg); $color-text : var(--color-text); $color-primary : var(--color-primary); + +.parking-container { + display: flex; + padding-top: 10px; + height: 100%; + .parking-container-left { + display: block; + width: 375px; + padding: 10px 10px 20px 20px; + } + .parking-container-right { + width: calc(100% - 375px); + padding-bottom: 15px; + padding: 20px; + background: var(--color-user-list-bg); + border-top-left-radius: 20px; + box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.08); + display: flex; + flex-direction: column; + .ant-tabs .ant-tabs-nav-wrap .ant-tabs-nav-list { + width: unset; + } + .ant-tabs-tab { + padding: unset; + } + + .parking-content { + height: 100%; + display: flex; + flex-direction: column; + .parking-tabs { + margin-bottom: 10px; + } + .parking-wrapper { + flex: 1; + } + } + } +} +.parking-container { + .yisa-search { + width: 100%; + display: flex; + align-items: center; + margin-bottom: 24px; + + label { + color: var(--color-search-list-item-text); + flex: 0 0 27%; + max-width: 27%; + text-align: right; + padding-right: 8px; + } + + .form-con { + flex: 1; + width: 220px; + } + } + .form-btn { + display: flex; + flex-flow: row nowrap; + justify-content: space-between; + // margin: 40px 0px 0px; + padding: 0 3px; + + .ant-btn+.ant-btn { + margin-left: 10px; + } + + .ant-btn span { + font-size: 16px; + font-family: Microsoft YaHei, Microsoft YaHei-Regular; + font-weight: 400; + text-align: center; + color: #ffffff; + } + + .reset { + width: 90px; + height: 36px; + background: var(--button-default-bg); + } + + .btn-export { + width: 90px; + height: 36px; + } + + .submit { + width: calc(100% - 100px); + height: 36px; + } + } + .ant-select-selector, + .ant-picker, + .ant-input { + background-color: var(--color-search-list-item-bg) !important; + box-shadow: none !important; + color: var(--color-search-list-item-value); + border-color: var(--color-search-list-item-bd) !important; + } + .ant-picker { + width: 100%; + } + .parking-search { + .title { + width: 100%; + font-size: 16px; + font-family: Microsoft YaHei, Microsoft YaHei-Bold; + font-weight: 700; + text-align: left; + color: var(--color-text); + margin-bottom: 20px; + } + } + .form-Wrap { + display: flex; + flex-direction: column; + } +} +.ant-cascader-menu { + width: 260px; +} + + +.parking-container-right { + .export-container { + margin-bottom: 10px; + text-align: right; + } + .parking-item { + height: 350px; + } + .park-table-content { + margin-top: 20px; + .park-table { + flex: 1; + .ant-table-body { + @include scrollBar(var(--color-user-list-bg), #3B97FF); + } + .ant-table-fixed-header .ant-table-tbody tr:nth-child(2n+1) > td { + background: unset !important; + background-color: #3e4557 !important; + } + } + } +} + +.parking-item { + color: #fff; + background: #3e4557; + border-radius: 4px; + display: flex; + flex-direction: column; + padding: 20px; + &-title { + height: 18px; + display: flex; + align-items: center; + position: relative; + text-indent: .5rem; + font-size: 16px; + font-weight: 700; + user-select: none; + &::before { + position: absolute; + content: ""; + height: 100%; + width: 4px; + left: -2px; + background: var(--color-menu-selected-text-item); + } + } + &-content { + flex: 1; + .echarts-for-react { + height: 100% !important; + } + } +} + +.parking-bottom { + display: flex; + margin-top: 20px; + min-height: 0; + flex: 1; + .parking-item { + flex: 1; + height: 100% !important; + &:nth-child(2) { + margin: 0 20px; + } + &:last-child { + .parking-item-title { + margin-bottom: 10px; + } + } + } + .parking-item-content { + min-height: 0; + overflow-y: hidden; + &:hover { + overflow-y: auto; + @include scrollBar(var(--color-user-list-bg), #3B97FF); + } + } + .item-tab-content { + flex: 1; + margin-top: 10px; + display: flex; + flex-direction: column; + user-select: none; + padding-right: 10px; + .rank-item { + display: flex; + justify-content: space-between; + align-items: center; + height: 30px; + margin-bottom: 5px; + font-size: 16px; + .rank-left { + display: flex; + font-weight: 700; + .rank-no { + width: 25px; + height: 25px; + margin: 0 5px; + margin-right: 10px; + text-align: center; + } + } + &:nth-child(1) { + .rank-no { + background: url('@/assets/images/icon-rank-1.png') no-repeat 100% 100%; + background-size: 100% 100%; + } + } + &:nth-child(2) { + .rank-no { + background: url('@/assets/images/icon-rank-2.png') no-repeat 100% 100%; + background-size: 100% 100%; + } + } + &:nth-child(3) { + .rank-no { + background: url('@/assets/images/icon-rank-3.png') no-repeat 100% 100%; + background-size: 100% 100%; + } + } + } + } +} \ No newline at end of file diff --git a/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/loadable.jsx index fcc12d6..40f9ad7 100644 --- a/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/loadable.jsx +++ b/src/pages/DataAnalysisPrediction/ParkingIncomeAly/CityIncomeAly/loadable.jsx @@ -1,15 +1,469 @@ -import React, { useState, useRef, useEffect } from "react"; -// import { message, Pagination, Table, Space, Modal, } from "antd"; -// import { dictionary, utils } from "@/config/common"; -// import moment from 'moment' -// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks'; -// import ajax from "@/services" -// import { FormInput, FormSelect, OptionPanel, ResultPanel, FormSliderPicker, AreaCascader, ImgResize, ImgZoom, } from "@/components" -// import "./index.scss"; -// import errorImg from "@/assets/images/layout/error.png" -// import { useLocation } from "react-router-dom"; -function CityIncomeAly() { - return