6 changed files with 440 additions and 9 deletions
@ -0,0 +1,100 @@ |
|||
<template> |
|||
<!-- <div>数据统计组件</div> --> |
|||
<div style="width: 100%; height: 300px" class="chart-box"> |
|||
<div id="Categorymap" style="height: 400px"></div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'Categorymap', |
|||
data() { |
|||
return { |
|||
// msg: 'Welcome to Your Vue.js App', |
|||
width: '', |
|||
height: '', |
|||
timer: null, |
|||
}; |
|||
}, |
|||
mounted() { |
|||
this.drawLine(); |
|||
this.timer = setInterval(() => { |
|||
this.drawLine(); |
|||
}, 10000); |
|||
let wh = window.innerWidth; |
|||
let hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
console.log(this.height); |
|||
window.onresize = () => { |
|||
return (() => { |
|||
wh = window.innerWidth; |
|||
hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
})(); |
|||
}; |
|||
}, |
|||
destroyed() { |
|||
clearInterval(this.timer); |
|||
}, |
|||
methods: { |
|||
async drawLine() { |
|||
// 基于准备好的dom,初始化echarts实例 |
|||
let myChart = this.$echarts.init(document.getElementById('Categorymap')); |
|||
// 绘制图表 |
|||
var option = { |
|||
title: { |
|||
left: 'center', |
|||
text: '各院病例分析', |
|||
}, |
|||
legend: { |
|||
data: ['未完成', '已完成', '进行中', '废弃'], |
|||
top: 30, |
|||
}, |
|||
xAxis: [ |
|||
{ |
|||
type: 'category', |
|||
axisTick: { show: false }, |
|||
data: ['附属医院', '人民医院', '第五人民医院', '国药同煤总医院'], |
|||
}, |
|||
], |
|||
yAxis: [{ type: 'value' }], |
|||
series: [ |
|||
{ |
|||
name: '未完成', |
|||
type: 'bar', |
|||
barGap: 0, |
|||
// label: labelOption, |
|||
emphasis: { focus: 'series' }, |
|||
data: [320, 332, 301, 334], |
|||
}, |
|||
{ |
|||
name: '已完成', |
|||
type: 'bar', |
|||
// label: labelOption, |
|||
emphasis: { focus: 'series' }, |
|||
data: [220, 182, 191, 234], |
|||
}, |
|||
{ |
|||
name: '进行中', |
|||
type: 'bar', |
|||
// label: labelOption, |
|||
emphasis: { focus: 'series' }, |
|||
data: [150, 232, 201, 154], |
|||
}, |
|||
{ |
|||
name: '废弃', |
|||
type: 'bar', |
|||
// label: labelOption, |
|||
emphasis: { focus: 'series' }, |
|||
data: [98, 77, 101, 99], |
|||
}, |
|||
], |
|||
}; |
|||
myChart.setOption(option); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped ></style> |
@ -0,0 +1,166 @@ |
|||
<template> |
|||
<!-- <div>数据统计组件</div> --> |
|||
<div style="width: 100%; height: 300px" class="chart-box"> |
|||
<div id="Cisualmap" style="height: 400px"></div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'Cisualmap', |
|||
data() { |
|||
return { |
|||
// msg: 'Welcome to Your Vue.js App', |
|||
width: '', |
|||
height: '', |
|||
timer: null, |
|||
}; |
|||
}, |
|||
mounted() { |
|||
this.drawLine(); |
|||
this.timer = setInterval(() => { |
|||
this.drawLine(); |
|||
}, 10000); |
|||
let wh = window.innerWidth; |
|||
let hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
console.log(this.height); |
|||
window.onresize = () => { |
|||
return (() => { |
|||
wh = window.innerWidth; |
|||
hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
})(); |
|||
}; |
|||
}, |
|||
destroyed() { |
|||
clearInterval(this.timer); |
|||
}, |
|||
methods: { |
|||
async drawLine() { |
|||
// 基于准备好的dom,初始化echarts实例 |
|||
let myChart = this.$echarts.init(document.getElementById('Cisualmap')); |
|||
var data = [ |
|||
['2000-06-05', 116], |
|||
['2000-06-06', 129], |
|||
['2000-06-07', 135], |
|||
['2000-06-08', 86], |
|||
['2000-06-09', 73], |
|||
['2000-06-10', 85], |
|||
['2000-06-11', 73], |
|||
['2000-06-12', 68], |
|||
['2000-06-13', 92], |
|||
['2000-06-14', 130], |
|||
['2000-06-15', 245], |
|||
['2000-06-16', 139], |
|||
['2000-06-17', 115], |
|||
['2000-06-18', 111], |
|||
['2000-06-19', 309], |
|||
['2000-06-20', 206], |
|||
['2000-06-21', 137], |
|||
['2000-06-22', 128], |
|||
['2000-06-23', 85], |
|||
['2000-06-24', 94], |
|||
['2000-06-25', 71], |
|||
['2000-06-26', 106], |
|||
['2000-06-27', 84], |
|||
['2000-06-28', 93], |
|||
['2000-06-29', 85], |
|||
['2000-06-30', 73], |
|||
['2000-07-01', 83], |
|||
['2000-07-02', 125], |
|||
['2000-07-03', 107], |
|||
['2000-07-04', 82], |
|||
['2000-07-05', 44], |
|||
['2000-07-06', 72], |
|||
['2000-07-07', 106], |
|||
['2000-07-08', 107], |
|||
['2000-07-09', 66], |
|||
['2000-07-10', 91], |
|||
['2000-07-11', 92], |
|||
['2000-07-12', 113], |
|||
['2000-07-13', 107], |
|||
['2000-07-14', 131], |
|||
['2000-07-15', 111], |
|||
['2000-07-16', 64], |
|||
['2000-07-17', 69], |
|||
['2000-07-18', 88], |
|||
['2000-07-19', 77], |
|||
['2000-07-20', 83], |
|||
['2000-07-21', 111], |
|||
['2000-07-22', 57], |
|||
['2000-07-23', 55], |
|||
['2000-07-24', 60], |
|||
]; |
|||
|
|||
var dateList = data.map(function(item) { |
|||
return item[0]; |
|||
}); |
|||
var valueList = data.map(function(item) { |
|||
return item[1]; |
|||
}); |
|||
// 绘制图表 |
|||
var option = { |
|||
// Make gradient line here |
|||
visualMap: [ |
|||
{ |
|||
show: false, |
|||
type: 'continuous', |
|||
seriesIndex: 0, |
|||
min: 0, |
|||
max: 400, |
|||
}, |
|||
{ |
|||
show: false, |
|||
type: 'continuous', |
|||
seriesIndex: 1, |
|||
dimension: 0, |
|||
min: 0, |
|||
max: dateList.length - 1, |
|||
}, |
|||
], |
|||
|
|||
title: [ |
|||
{ |
|||
left: 'center', |
|||
text: '新建病例', |
|||
}, |
|||
{ |
|||
top: '55%', |
|||
left: 'center', |
|||
text: '已完成病例', |
|||
}, |
|||
], |
|||
tooltip: { trigger: 'axis' }, |
|||
xAxis: [ |
|||
{ data: dateList }, |
|||
{ |
|||
data: dateList, |
|||
gridIndex: 1, |
|||
}, |
|||
], |
|||
yAxis: [{}, { gridIndex: 1 }], |
|||
grid: [{ bottom: '60%' }, { top: '60%' }], |
|||
series: [ |
|||
{ |
|||
type: 'line', |
|||
showSymbol: false, |
|||
data: valueList, |
|||
}, |
|||
{ |
|||
type: 'line', |
|||
showSymbol: false, |
|||
data: valueList, |
|||
xAxisIndex: 1, |
|||
yAxisIndex: 1, |
|||
}, |
|||
], |
|||
}; |
|||
myChart.setOption(option); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped ></style> |
@ -0,0 +1,74 @@ |
|||
<template> |
|||
<!-- <div>数据统计组件</div> --> |
|||
<div style="width: 100%; height: 300px" class="chart-box"> |
|||
<div id="Piemap" style="height: 300px"></div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'Piemap', |
|||
data() { |
|||
return { |
|||
// msg: 'Welcome to Your Vue.js App', |
|||
width: '', |
|||
height: '', |
|||
timer: null, |
|||
}; |
|||
}, |
|||
mounted() { |
|||
this.drawLine(); |
|||
this.timer = setInterval(() => { |
|||
this.drawLine(); |
|||
}, 10000); |
|||
let wh = window.innerWidth; |
|||
let hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
console.log(this.height); |
|||
window.onresize = () => { |
|||
return (() => { |
|||
wh = window.innerWidth; |
|||
hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
})(); |
|||
}; |
|||
}, |
|||
destroyed() { |
|||
clearInterval(this.timer); |
|||
}, |
|||
methods: { |
|||
async drawLine() { |
|||
// 基于准备好的dom,初始化echarts实例 |
|||
let myChart = this.$echarts.init(document.getElementById('Piemap')); |
|||
// 绘制图表 |
|||
var option = { |
|||
title: { |
|||
left: 'center', |
|||
text: '各医院生物样本统计', |
|||
}, |
|||
legend: { top: 'bottom' }, |
|||
series: [ |
|||
{ |
|||
name: '面积模式', |
|||
type: 'pie', |
|||
radius: [20, 120], |
|||
center: ['50%', '50%'], |
|||
roseType: 'area', |
|||
itemStyle: { borderRadius: 8 }, |
|||
data: [ |
|||
{ value: 40, name: '附属医院' }, |
|||
{ value: 38, name: '人民医院' }, |
|||
{ value: 32, name: '第五医院' }, |
|||
{ value: 30, name: '国药同煤总医院' }, |
|||
], |
|||
}, |
|||
], |
|||
}; |
|||
myChart.setOption(option); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped ></style> |
@ -0,0 +1,80 @@ |
|||
<template> |
|||
<!-- <div>数据统计组件</div> --> |
|||
<div style="width: 100%; height: 300px" class="chart-box"> |
|||
<div id="Treemap" style="height: 400px"></div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'Treemap', |
|||
data() { |
|||
return { |
|||
// msg: 'Welcome to Your Vue.js App', |
|||
width: '', |
|||
height: '', |
|||
timer: null, |
|||
}; |
|||
}, |
|||
mounted() { |
|||
this.drawLine(); |
|||
this.timer = setInterval(() => { |
|||
this.drawLine(); |
|||
}, 10000); |
|||
let wh = window.innerWidth; |
|||
let hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
console.log(this.height); |
|||
window.onresize = () => { |
|||
return (() => { |
|||
wh = window.innerWidth; |
|||
hg = window.innerHeight; |
|||
this.width = wh + 'px'; |
|||
this.height = hg + 'px'; |
|||
})(); |
|||
}; |
|||
}, |
|||
destroyed() { |
|||
clearInterval(this.timer); |
|||
}, |
|||
methods: { |
|||
async drawLine() { |
|||
// 基于准备好的dom,初始化echarts实例 |
|||
let myChart = this.$echarts.init(document.getElementById('Treemap')); |
|||
// 绘制图表 |
|||
var option = { |
|||
title: { |
|||
left: 'center', |
|||
text: '每日病例统计', |
|||
}, |
|||
series: [ |
|||
{ |
|||
type: 'treemap', |
|||
data: [ |
|||
{ |
|||
name: '未完成', // First tree |
|||
value: 50, |
|||
}, |
|||
{ |
|||
name: '已完成', // Second tree |
|||
value: 25, |
|||
}, |
|||
{ |
|||
name: '进行中', // Second tree |
|||
value: 10, |
|||
}, |
|||
{ |
|||
name: '废弃', // Second tree |
|||
value: 5, |
|||
}, |
|||
], |
|||
}, |
|||
], |
|||
}; |
|||
myChart.setOption(option); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="stylus" scoped ></style> |
Loading…
Reference in new issue