8 changed files with 631 additions and 521 deletions
@ -1,203 +1,225 @@ |
|||
|
|||
import * as echarts from "echarts"; |
|||
let color = ['#4278F8F9', 'transparent','#5372C4F9', 'transparent', '#0046FFF9', 'transparent','#FB9434F9', 'transparent','#854101F9', 'transparent', '#05E599F9', 'transparent','#219F73F9', 'transparent','#7CEDD5F9', 'transparent',]; |
|||
let colorend = ['#4278F800', 'transparent', '#5372C400', 'transparent','#0046FF00', 'transparent', '#FB943400', 'transparent','#85410100', 'transparent','#05E59900', 'transparent','#219F7300', 'transparent','#7CEDD500', 'transparent',]; |
|||
let color = [ |
|||
"#4278F8F9", |
|||
"#5372C4F9", |
|||
"#0046FFF9", |
|||
"#FB9434F9", |
|||
"#854101F9", |
|||
"#05E599F9", |
|||
"#219F73F9", |
|||
"#7CEDD5F9", |
|||
]; |
|||
let colorend = [ |
|||
"#4278F800", |
|||
"#5372C400", |
|||
"#0046FF00", |
|||
"#FB943400", |
|||
"#85410100", |
|||
"#05E59900", |
|||
"#219F7300", |
|||
"#7CEDD500", |
|||
]; |
|||
const datas = [ |
|||
{ |
|||
name: '客1', |
|||
// num:''
|
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '客2', |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '客3', |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '专1', |
|||
// num:''
|
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '专2', |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '专3', |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '货1', |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: '货2', |
|||
value: 13456, |
|||
}, |
|||
]; |
|||
{ |
|||
name: "客1", |
|||
// num:''
|
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "客2", |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "客3", |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "专1", |
|||
// num:''
|
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "专2", |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "专3", |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "货1", |
|||
value: 13456, |
|||
}, |
|||
{ |
|||
name: "货2", |
|||
value: 13456, |
|||
}, |
|||
]; |
|||
|
|||
let sum = 0; |
|||
let sum = 0; |
|||
for (var i of datas) { |
|||
sum += i.value; |
|||
sum += i.value; |
|||
} |
|||
|
|||
var options = { |
|||
tooltip: { |
|||
show:true, |
|||
trigger: 'item', |
|||
formatter: '{a} <br/>{b}: {c} ({d}%)', |
|||
backgroundColor:"#ffffff", |
|||
textStyle:{ |
|||
color:"#666" |
|||
} |
|||
tooltip: { |
|||
show: true, |
|||
// trigger: "item",
|
|||
// formatter: "{a} <br/>{b}: {c} ({d}%)",
|
|||
// backgroundColor: "#ffffff",
|
|||
// textStyle: {
|
|||
// color: "#666",
|
|||
// },
|
|||
}, |
|||
legend: { |
|||
orient: "vertical", |
|||
right: 40, |
|||
top: 50, |
|||
formatter: (name) => { |
|||
let res = datas.filter((v) => v.name === name); |
|||
let str = ""; |
|||
str = |
|||
"{name1|" + |
|||
res[0].name + |
|||
"}{name2|" + |
|||
res[0].value + |
|||
"}辆" + |
|||
"{name2|" + |
|||
(res[0].value / sum) * 100 + |
|||
"}%"; |
|||
return str; |
|||
}, |
|||
legend: { |
|||
orient: 'vertical', |
|||
right: 40, |
|||
top:50, |
|||
formatter:(name)=>{ |
|||
let res = datas.filter(v => v.name === name); |
|||
let str = '' |
|||
str = '{name1|' + res[0].name + '}{name2|' + res[0].value + '}辆'+ '{name2|' + res[0].value/sum * 100 + '}%' |
|||
return str |
|||
icon: "circle", |
|||
itemWidth: 10, |
|||
itemHeight: 10, |
|||
itemGap: 20, |
|||
borderRadius: 50, |
|||
itemStyle: {}, |
|||
textStyle: { |
|||
rich: { |
|||
background: { |
|||
background: "#DEDEDE", |
|||
fontSize: 14, |
|||
align: "left", |
|||
padding: [0, 10, 20, 0], |
|||
}, |
|||
icon: 'circle', |
|||
itemWidth:10, |
|||
itemHeight:10, |
|||
itemGap: 20, |
|||
borderRadius:50, |
|||
itemStyle:{ |
|||
|
|||
name1: { |
|||
color: "#fff", |
|||
fontSize: 14, |
|||
Width: 12, |
|||
align: "left", |
|||
padding: [0, 0, 0, 10], |
|||
}, |
|||
textStyle:{ |
|||
rich:{ |
|||
background: { |
|||
background: '#DEDEDE', |
|||
fontSize: 14, |
|||
align: 'left', |
|||
padding: [0, 10, 20, 0], |
|||
}, |
|||
name1: { |
|||
color: '#fff', |
|||
fontSize: 14, |
|||
Width: 12, |
|||
align: 'left', |
|||
padding: [0, 0, 0, 10], |
|||
}, |
|||
name2: { |
|||
color: '#37E7FF', |
|||
fontSize: 14, |
|||
align: 'left', |
|||
padding: [0, 0, 0, 10], |
|||
}, |
|||
value: { |
|||
color: '#ccc', |
|||
fontSize: 14, |
|||
align: 'left', |
|||
}, |
|||
title: { |
|||
// color: '#fff',
|
|||
color: "#C60020", |
|||
fontWeight:'bold', |
|||
fontSize: 40, |
|||
} |
|||
}, |
|||
color:"#fff", |
|||
name2: { |
|||
color: "#37E7FF", |
|||
fontSize: 14, |
|||
align: "left", |
|||
padding: [0, 0, 0, 10], |
|||
}, |
|||
value: { |
|||
color: "#ccc", |
|||
fontSize: 14, |
|||
align: "left", |
|||
}, |
|||
title: { |
|||
// color: '#fff',
|
|||
color: "#C60020", |
|||
fontWeight: "bold", |
|||
fontSize: 40, |
|||
}, |
|||
data: [ |
|||
{ |
|||
name:'客1', |
|||
backgroundColor:'#5CC5FF', |
|||
}, '客2', '客3', '货1', |
|||
'货2', '专1', '专2', '专3'] |
|||
}, |
|||
color: "#fff", |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: '', |
|||
type: 'pie', |
|||
selectedMode: 'single', |
|||
radius: [0, '50%'], |
|||
center:['25%','50%'], |
|||
label: { |
|||
normal: { |
|||
position: 'inner', |
|||
show: true, |
|||
color:'#fff', |
|||
fontSize:14, |
|||
formatter: '{b}\n{c}辆', |
|||
} |
|||
}, |
|||
data: [ |
|||
{value: 2290, name: '客车\n'}, |
|||
{value: 1020, name: '货车\n'}, |
|||
{value: 3000, name: '专项车\n'}, |
|||
], |
|||
color:['#708FFF','#FB9434','#219F73'] |
|||
data: [ |
|||
{ |
|||
name: "客1", |
|||
backgroundColor: "#5CC5FF", |
|||
}, |
|||
"客2", |
|||
"客3", |
|||
"货1", |
|||
"货2", |
|||
"专1", |
|||
"专2", |
|||
"专3", |
|||
], |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: "", |
|||
type: "pie", |
|||
selectedMode: "single", |
|||
radius: [0, "50%"], |
|||
center: ["25%", "50%"], |
|||
label: { |
|||
normal: { |
|||
position: "inner", |
|||
show: true, |
|||
color: "#fff", |
|||
fontSize: 14, |
|||
formatter: "{b}\n{c}辆", |
|||
}, |
|||
{ |
|||
name: '', |
|||
type: 'pie', |
|||
radius: ['60%', '70%'], |
|||
center:['25%','50%'], |
|||
label: { |
|||
position: 'inner', |
|||
show: false |
|||
}, |
|||
data: [ |
|||
{value: 13456, name: '客1'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '客2'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '客3'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '货1'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '货2'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '专1'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '专2'}, |
|||
{value: 2000, name: ''}, |
|||
{value: 13456, name: '专3'}, |
|||
{value: 2000, name: ''}, |
|||
], |
|||
itemStyle: { |
|||
normal: { |
|||
borderRadius: "5", |
|||
borderWidth:0, |
|||
borderType:"solid", |
|||
borderCap:"round", |
|||
borderJoin:"round", |
|||
borderColor:"#064258", |
|||
borderMiterLimit:"20", |
|||
color: function(params) { |
|||
return { |
|||
type: 'linear', |
|||
x: 0, |
|||
y: 0, |
|||
x2: 1, |
|||
y2: 1, |
|||
colorStops: [{ |
|||
offset: 0, |
|||
color: color[params.dataIndex] // 0% 处的颜色
|
|||
}, |
|||
{ |
|||
offset: 1, |
|||
color: colorend[params.dataIndex] // 100% 处的颜色
|
|||
} |
|||
], |
|||
globalCoord: false // 缺省为 false
|
|||
} |
|||
} |
|||
}, |
|||
data: [ |
|||
{ value: 2290, name: "客车\n" }, |
|||
{ value: 1020, name: "货车\n" }, |
|||
{ value: 3000, name: "专项车\n" }, |
|||
], |
|||
color: ["#708FFF", "#FB9434", "#219F73"], |
|||
}, |
|||
{ |
|||
name: "", |
|||
type: "pie", |
|||
radius: ["60%", "70%"], |
|||
center: ["25%", "50%"], |
|||
label: { |
|||
position: "inner", |
|||
show: false, |
|||
}, |
|||
data: [ |
|||
{ value: 13456, name: "客1" }, |
|||
{ value: 13456, name: "客2" }, |
|||
{ value: 13456, name: "客3" }, |
|||
{ value: 13456, name: "货1" }, |
|||
{ value: 13456, name: "货2" }, |
|||
{ value: 13456, name: "专1" }, |
|||
{ value: 13456, name: "专2" }, |
|||
{ value: 13456, name: "专3" }, |
|||
], |
|||
itemStyle: { |
|||
normal: { |
|||
borderRadius: "5", |
|||
borderWidth: 2, |
|||
borderType: "solid", |
|||
borderCap: "round", |
|||
borderJoin: "round", |
|||
borderColor: "#064258", |
|||
borderMiterLimit: "20", |
|||
color: function (params) { |
|||
return { |
|||
type: "linear", |
|||
x: 0, |
|||
y: 0, |
|||
x2: 1, |
|||
y2: 1, |
|||
colorStops: [ |
|||
{ |
|||
offset: 0, |
|||
color: color[params.dataIndex], // 0% 处的颜色
|
|||
}, |
|||
}, |
|||
color:['#009688','#63BA79','#FFB800','#F7ED46','#666666'] |
|||
} |
|||
] |
|||
} |
|||
|
|||
{ |
|||
offset: 1, |
|||
color: colorend[params.dataIndex], // 100% 处的颜色
|
|||
}, |
|||
], |
|||
globalCoord: false, // 缺省为 false
|
|||
}; |
|||
}, |
|||
}, |
|||
}, |
|||
// color: ["#009688", "#63BA79", "#FFB800", "#F7ED46", "#666666"],
|
|||
}, |
|||
], |
|||
}; |
|||
|
|||
export default options; |
|||
|
@ -1,188 +1,256 @@ |
|||
<template> |
|||
<div class='heightway'> |
|||
<div class="heightway"> |
|||
<WgtTitle :title="'交通路段状态'"></WgtTitle> |
|||
<div class="board"> |
|||
<div class="searchPanel"> |
|||
<div >起始桩号:k</div> |
|||
<el-input class="inputZh" v-model="start"></el-input> |
|||
<el-input class="inputZh inputJl" v-model="start1"></el-input> |
|||
<div >结束桩号:k</div> |
|||
<el-input class="inputZh" v-model="start2"></el-input> |
|||
<el-input class="inputZh inputJl" v-model="start3"></el-input> |
|||
<div >路段方向:</div> |
|||
<el-select v-model="area" class="selectRoad" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in areaOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
<el-button type="primary" class="btnSearch" @click="onSubmit">搜索</el-button> |
|||
<el-button class="btnReset">重置</el-button> |
|||
<div class="searchPanel"> |
|||
<div>起始桩号:k</div> |
|||
<el-input class="inputZh" v-model="start" placeholder="55"></el-input> |
|||
<span>+</span> |
|||
<el-input |
|||
class="inputZh inputJl" |
|||
v-model="start1" |
|||
placeholder="378" |
|||
></el-input> |
|||
<div>结束桩号:k</div> |
|||
<el-input class="inputZh" v-model="start2" placeholder="208"></el-input> |
|||
<span>+</span> |
|||
<el-input |
|||
class="inputZh inputJl" |
|||
v-model="start3" |
|||
placeholder="153" |
|||
></el-input> |
|||
<div>路段方向:</div> |
|||
<el-select v-model="area" class="selectRoad" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in areaOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
<el-button type="primary" class="btnSearch" @click="onSubmit" |
|||
>搜索</el-button |
|||
> |
|||
<el-button class="btnReset">重置</el-button> |
|||
</div> |
|||
<div class="tblResult"> |
|||
<div class="tblTd"> |
|||
<div>路段名称</div> |
|||
<div>方向</div> |
|||
<div>状态</div> |
|||
<div>平均车速</div> |
|||
<div>总车流量</div> |
|||
</div> |
|||
<div class="tblResult"> |
|||
<div class="tblTd"> |
|||
<div>路段名称</div> |
|||
<div>方向</div> |
|||
<div>状态</div> |
|||
<div>平均车速</div> |
|||
<div>总车流量</div> |
|||
</div> |
|||
<div :class="'tblTd ' + (index%2===0?'tblTwo':'')" v-for="(item,index) of list"> |
|||
<div>{{ item.name }}</div> |
|||
<div>{{ item.direction }}</div> |
|||
<div style="color:#00EBC1">{{ item.state }}</div> |
|||
<div>{{ item.speed }}</div> |
|||
<div>{{ item.follow }}</div> |
|||
</div> |
|||
<div |
|||
:class="'tblTd ' + (index % 2 === 0 ? 'tblTwo' : '')" |
|||
v-for="(item, index) of list" |
|||
> |
|||
<div>{{ item.name }}</div> |
|||
<div>{{ item.direction }}</div> |
|||
<div style="color: #00ebc1">{{ item.state }}</div> |
|||
<div>{{ item.speed }}</div> |
|||
<div>{{ item.follow }}</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
|
|||
import WgtTitle from '../../../widgets/title' |
|||
import WgtTitle from "../../../widgets/title"; |
|||
export default { |
|||
name: 'Heightway', |
|||
name: "Heightway", |
|||
components: { |
|||
WgtTitle |
|||
WgtTitle, |
|||
}, |
|||
data() { |
|||
return { |
|||
start:'', |
|||
start1:'', |
|||
start2:'', |
|||
start3:'', |
|||
areaOptions: [{ |
|||
value: '济南', |
|||
label: '济南' |
|||
}, { |
|||
value: '菏泽', |
|||
label: '菏泽' |
|||
}], |
|||
area: '济南', |
|||
list:[ |
|||
{name:'大学城-长清', direction:'济南方向', state:"正常",speed:'108.14km/h', follow:'161'}, |
|||
{name:'大学城-长清', direction:'济南方向', state:"正常",speed:'108.14km/h', follow:'161'}, |
|||
{name:'大学城-长清', direction:'济南方向', state:"正常",speed:'108.14km/h', follow:'161'}, |
|||
{name:'大学城-长清', direction:'济南方向', state:"正常",speed:'108.14km/h', follow:'161'}, |
|||
{name:'大学城-长清', direction:'济南方向', state:"正常",speed:'108.14km/h', follow:'161'}, |
|||
{name:'大学城-长清', direction:'济南方向', state:"正常",speed:'108.14km/h', follow:'161'} |
|||
] |
|||
|
|||
} |
|||
start: "", |
|||
start1: "", |
|||
start2: "", |
|||
start3: "", |
|||
areaOptions: [ |
|||
{ |
|||
value: "济南", |
|||
label: "济南", |
|||
}, |
|||
{ |
|||
value: "菏泽", |
|||
label: "菏泽", |
|||
}, |
|||
], |
|||
area: "济南", |
|||
list: [ |
|||
{ |
|||
name: "大学城-长清", |
|||
direction: "济南方向", |
|||
state: "正常", |
|||
speed: "108.14km/h", |
|||
follow: "161", |
|||
}, |
|||
{ |
|||
name: "大学城-长清", |
|||
direction: "济南方向", |
|||
state: "正常", |
|||
speed: "108.14km/h", |
|||
follow: "161", |
|||
}, |
|||
{ |
|||
name: "大学城-长清", |
|||
direction: "济南方向", |
|||
state: "正常", |
|||
speed: "108.14km/h", |
|||
follow: "161", |
|||
}, |
|||
{ |
|||
name: "大学城-长清", |
|||
direction: "济南方向", |
|||
state: "正常", |
|||
speed: "108.14km/h", |
|||
follow: "161", |
|||
}, |
|||
{ |
|||
name: "大学城-长清", |
|||
direction: "济南方向", |
|||
state: "正常", |
|||
speed: "108.14km/h", |
|||
follow: "161", |
|||
}, |
|||
{ |
|||
name: "大学城-长清", |
|||
direction: "济南方向", |
|||
state: "正常", |
|||
speed: "108.14km/h", |
|||
follow: "161", |
|||
}, |
|||
], |
|||
}; |
|||
}, |
|||
|
|||
created() { |
|||
|
|||
}, |
|||
created() {}, |
|||
methods: { |
|||
onSubmit() { |
|||
console.log('submit!'); |
|||
} |
|||
} |
|||
} |
|||
console.log("submit!"); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang='scss' scoped> |
|||
|
|||
|
|||
<style lang="scss" scoped> |
|||
.el-input__inner { |
|||
background-color: transparent !important; |
|||
font-size: 12px; |
|||
} |
|||
::v-deep .el-input__inner { |
|||
padding: 0 10px; |
|||
} |
|||
::v-deep .el-input__inner::placeholder { |
|||
color: #9f9f9f; |
|||
font-size: 12px; |
|||
} |
|||
.heightway { |
|||
width: 100%; |
|||
.board{ |
|||
.board { |
|||
height: 400px; |
|||
width: 100%; |
|||
background: linear-gradient(180deg, rgba(6,66,88,0.2) 0%, #064258 100%); |
|||
background: linear-gradient(180deg, rgba(6, 66, 88, 0.2) 0%, #064258 100%); |
|||
border-radius: 5px 5px 5px 5px; |
|||
opacity: 1; |
|||
border: 1px solid; |
|||
border-image: linear-gradient(360deg, rgba(55, 231, 255,0.3), rgba(55, 231, 255, 0)) 1 1; |
|||
opacity: 1; |
|||
border: 1px solid; |
|||
border-image: linear-gradient( |
|||
360deg, |
|||
rgba(55, 231, 255, 0.3), |
|||
rgba(55, 231, 255, 0) |
|||
) |
|||
1 1; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
flex-direction: column; |
|||
padding:15px 10px; |
|||
.searchPanel{ |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
height: 40px; |
|||
width:100%; |
|||
font-size: 14px; |
|||
margin-bottom: 10px; |
|||
div{ |
|||
white-space: nowrap; |
|||
margin-right: 4px; |
|||
} |
|||
.inputZh{ |
|||
width: 47px; |
|||
::v-deep{ |
|||
.el-input__inner{ |
|||
background-color: #064258 !important; |
|||
border-width: 0px !important; |
|||
padding: 15px 10px; |
|||
.searchPanel { |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
height: 40px; |
|||
width: 100%; |
|||
font-size: 13px; |
|||
margin-bottom: 10px; |
|||
div { |
|||
white-space: nowrap; |
|||
margin-right: 4px; |
|||
} |
|||
.inputZh { |
|||
width: 60px; |
|||
::v-deep { |
|||
.el-input__inner { |
|||
background-color: #064258 !important; |
|||
border-width: 0px !important; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.inputJl{ |
|||
margin-left: 5px; |
|||
margin-right: 10px; |
|||
} |
|||
.selectRoad{ |
|||
width:87px; |
|||
::v-deep{ |
|||
.el-input__inner{ |
|||
background-color: #064258 !important; |
|||
border-width: 0px !important; |
|||
.inputJl { |
|||
// width: 60px; |
|||
margin-left: 5px; |
|||
margin-right: 10px; |
|||
} |
|||
.selectRoad { |
|||
width: 87px; |
|||
::v-deep { |
|||
.el-input__inner { |
|||
background-color: #064258 !important; |
|||
border-width: 0px !important; |
|||
font-size: 12px; |
|||
} |
|||
} |
|||
} |
|||
.btnSearch { |
|||
background-color: #00b3cc; |
|||
margin-left: 10px; |
|||
padding: 6px 15px; |
|||
font-size: 13px; |
|||
} |
|||
.btnReset { |
|||
background-color: transparent; |
|||
border-color: #00b3cc; |
|||
color: white; |
|||
padding: 6px 15px; |
|||
font-size: 13px; |
|||
} |
|||
} |
|||
.btnSearch{ |
|||
background-color: #00B3CC; |
|||
margin-left: 10px; |
|||
} |
|||
.btnReset{ |
|||
background-color: transparent; |
|||
border-color: #00B3CC; |
|||
color: white; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.tblResult{ |
|||
height: 300px; |
|||
.tblResult { |
|||
height: 300px; |
|||
width: 100%; |
|||
.tblTd { |
|||
width: 100%; |
|||
.tblTd{ |
|||
width:100%; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
background-color: #064258; |
|||
height: 42px; |
|||
line-height: 42px; |
|||
color: #fff; |
|||
div{ |
|||
text-align: left; |
|||
width: 25%; |
|||
} |
|||
} |
|||
.tblTd:first-child{ |
|||
background-color: #0d3646; |
|||
color: #00D1FF; |
|||
} |
|||
.tblTd>div:first-child{ |
|||
width: 35%; |
|||
margin-left: 20px; |
|||
} |
|||
.tblTd>div:last-child{ |
|||
text-align: center; |
|||
} |
|||
.tblTwo{ |
|||
background-color: transparent !important; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
background-color: #064258; |
|||
height: 42px; |
|||
line-height: 42px; |
|||
color: #fff; |
|||
div { |
|||
text-align: left; |
|||
width: 25%; |
|||
} |
|||
} |
|||
.tblTd:first-child { |
|||
background-color: #0d3646; |
|||
color: #00d1ff; |
|||
} |
|||
.tblTd > div:first-child { |
|||
width: 35%; |
|||
margin-left: 20px; |
|||
} |
|||
.tblTd > div:last-child { |
|||
text-align: center; |
|||
} |
|||
.tblTwo { |
|||
background-color: transparent !important; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,125 +1,137 @@ |
|||
let chartIcon = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAC4jAAAuIwF4pT92AAAFw2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4wLWMwMDAgNzkuMTcxYzI3ZmFiLCAyMDIyLzA4LzE2LTIyOjM1OjQxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMTItMjlUMTA6MTM6MTQrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTEyLTI5VDEwOjQ2OjE3KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzLTEyLTI5VDEwOjQ2OjE3KzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplYzhkN2NkNS01ZjdjLTQ5Y2ItOTgyMy1lOTM4ODViNjRjMmIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZjE1ZWVkNDgtNDA3ZS00MDU0LTliNTMtYTllZmQ1ODE5YjVmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjE1ZWVkNDgtNDA3ZS00MDU0LTliNTMtYTllZmQ1ODE5YjVmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmMTVlZWQ0OC00MDdlLTQwNTQtOWI1My1hOWVmZDU4MTliNWYiIHN0RXZ0OndoZW49IjIwMjMtMTItMjlUMTA6MTM6MTQrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC4wIChNYWNpbnRvc2gpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplYzhkN2NkNS01ZjdjLTQ5Y2ItOTgyMy1lOTM4ODViNjRjMmIiIHN0RXZ0OndoZW49IjIwMjMtMTItMjlUMTA6NDY6MTcrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC4wIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PibZhN0AAAHBSURBVDiNfdTtThNREAbgZ5sCrRTaRaBqQDTR6AXaq9grJEaiKCJWaAv9ENDUH2fWLkU8yeTkZGbe885nNp/PVU9vIMMGNtHGo1BNMQoZF7k7jlkVqDewji72sI5VrIT6F64xwRecFbnJPaDeQBsv8RSdCpsS6BYzDENOcVTkLv8CBZPX2McOdrEVITYC6BpjnKOP7zjG+yI3yd5dzLNg8jbY7MW9g+2lHJUgpzgJOcRRPX7dj3C6eIaDAO+iGUCzYPERWSXU5+jXIxct5MFgN0AOsLaoi9Ul0HHkaoBOLZg0IoQNPMaTJZAqWDfytylVtol2LdishNFaKBv/AClPI3waISto1UKZoRZ39h8QFZus8laTqvEbNyEzqdQPnZ/hcyMl/BbTmpSsacg43v0wXD43+BE2V+FzjWFdmp1ZKAZheByUt91tyD4+S/00wGWAjerxOJYS2JSSngX4lrsNeREfnUg9dRG+o3JEWniDF1Lpd6U2KEdkHoyuwvkM36TmPCxy4+rQdvDKoss7FhugzM8kIjiPED8UuSH310jLYkRaUl9V18gswD7ha5Ebl77ZA4utLY1MOT4sRmKI0fJi+wM9v6Q1QC+Y6wAAAABJRU5ErkJggg==`; |
|||
let xdata = { |
|||
value: ['大学城-长清', '长清-孝里', '孝里-平阴北', '平阴北-平阴', '平阴-东平', '东平-梁山东', '梁山东-嘉祥'] |
|||
value: [ |
|||
"大学城-长清", |
|||
"长清-孝里", |
|||
"孝里-平阴北", |
|||
"平阴北-平阴", |
|||
"平阴-东平", |
|||
"东平-梁山东", |
|||
"梁山东-嘉祥", |
|||
"平阴2-东平", |
|||
"东平2-梁山东", |
|||
"梁山东2-嘉祥", |
|||
], |
|||
}; |
|||
let ind = -30; |
|||
let sdata = { |
|||
value: [32774, 30067, 28774, 30067, 30021, 30067, 32774] |
|||
} |
|||
value: [32774, 30067, 28774, 30067, 30021, 30067, 32774, 30021, 30067, 32774], |
|||
}; |
|||
|
|||
let dataZoomMove = { |
|||
start: 0, |
|||
end: 4 |
|||
} |
|||
start: 0, |
|||
end: 4, |
|||
}; |
|||
var options = { |
|||
|
|||
grid: { |
|||
containLabel: true, |
|||
// 边距自行修改
|
|||
bottom: '0%', |
|||
left: '0%', |
|||
top: '20%', |
|||
right: '10%', |
|||
grid: { |
|||
containLabel: true, |
|||
// 边距自行修改
|
|||
bottom: "0%", |
|||
left: "0%", |
|||
top: "8%", |
|||
right: "10%", |
|||
}, |
|||
xAxis: { |
|||
type: "value", |
|||
axisLabel: { |
|||
show: false, |
|||
}, |
|||
axisLine: { |
|||
show: false, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
splitLine: { |
|||
show: false, |
|||
}, |
|||
}, |
|||
yAxis: [ |
|||
{ |
|||
type: "category", |
|||
data: xdata.value, |
|||
inverse: true, |
|||
axisLabel: { |
|||
fontSize: "14px", |
|||
inside: true, |
|||
verticalAlign: "bottom", |
|||
color: "#fff", |
|||
padding: 10, |
|||
margin: -5, |
|||
formatter: function (value) { |
|||
let index = xdata.value.indexOf(value); |
|||
return `{a|Top${(ind += 1)}} {b|${value}}`; |
|||
}, |
|||
rich: { |
|||
a: { |
|||
fontSize: "10px", |
|||
}, |
|||
|
|||
b: { |
|||
fontSize: "12px", |
|||
padding: [0, 0, 0, 70], |
|||
}, |
|||
}, |
|||
}, |
|||
axisLine: { |
|||
show: false, |
|||
}, |
|||
xAxis: { |
|||
type: 'value', |
|||
axisLabel: { |
|||
show: false |
|||
}, |
|||
axisLine: { |
|||
show: false, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
splitLine: { |
|||
show: false, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
yAxis: [ |
|||
{ |
|||
type: 'category', |
|||
data: xdata.value, |
|||
inverse: true, |
|||
axisLabel: { |
|||
fontSize: '14px', |
|||
inside: true, |
|||
verticalAlign: 'bottom', |
|||
color:'#fff', |
|||
padding:10, |
|||
margin:-5, |
|||
formatter: function (value) { |
|||
let index = xdata.value.indexOf(value); |
|||
return `{a|Top${index+1}} {b|${value}}` |
|||
}, |
|||
rich: { |
|||
a: { |
|||
fontSize: '14px', |
|||
}, |
|||
|
|||
b: { |
|||
fontSize: '14px', |
|||
padding: [0, 0, 0, 70], |
|||
} |
|||
}, |
|||
}, |
|||
], |
|||
series: [ |
|||
{ |
|||
realtimeSort: true, |
|||
data: sdata.value, |
|||
type: "bar", |
|||
barWidth: 8, |
|||
itemStyle: { |
|||
borderRadius: 40, |
|||
color: { |
|||
type: "linear", |
|||
x: 0, |
|||
y: 0, |
|||
x2: 1, |
|||
y2: 0, |
|||
colorStops: [ |
|||
{ |
|||
offset: 0, |
|||
color: "#1cd0f000", // 0% 处的颜色
|
|||
}, |
|||
axisLine: { |
|||
show: false, |
|||
{ |
|||
offset: 1, |
|||
color: "#1cd0f0", // 100% 处的颜色
|
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
} |
|||
} |
|||
], |
|||
series: [ |
|||
{ |
|||
data: sdata.value, |
|||
type: 'bar', |
|||
barWidth: 8, |
|||
itemStyle: { |
|||
borderRadius: 40, |
|||
color: { |
|||
type: 'linear', |
|||
x: 0, |
|||
y: 0, |
|||
x2: 1, |
|||
y2: 0, |
|||
colorStops: [ |
|||
{ |
|||
offset: 0, |
|||
color: '#1cd0f000', // 0% 处的颜色
|
|||
}, |
|||
{ |
|||
offset: 1, |
|||
color: '#1cd0f0', // 100% 处的颜色
|
|||
}, |
|||
], |
|||
global: false, // 缺省为 false
|
|||
} |
|||
], |
|||
global: false, // 缺省为 false
|
|||
}, |
|||
}, |
|||
label: { |
|||
show: true, |
|||
position: "right", |
|||
distance: -10, |
|||
data: sdata, |
|||
color: "#fff", |
|||
formatter: (c) => { |
|||
return `{a|}{b|${c.value}辆}`; |
|||
}, |
|||
rich: { |
|||
a: { |
|||
widht: 20, |
|||
height: 20, |
|||
backgroundColor: { |
|||
image: chartIcon, |
|||
}, |
|||
label: { |
|||
show: true, |
|||
position: 'right', |
|||
distance: -10, |
|||
data: sdata, |
|||
color:'#fff', |
|||
formatter: (c) => { |
|||
return `{a|}{b|${c.value}辆}` |
|||
}, |
|||
rich: { |
|||
a: { |
|||
widht: 20, |
|||
height: 20, |
|||
backgroundColor: { |
|||
image: chartIcon |
|||
}, |
|||
}, |
|||
b:{ |
|||
padding:[0,0,0,10] |
|||
} |
|||
} |
|||
} |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
b: { |
|||
padding: [0, 0, 0, 10], |
|||
}, |
|||
}, |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
|
|||
export default options; |
|||
|
Loading…
Reference in new issue