Files
UNION_NSI/target/classes/views/platform/syr/cxtj/yeartj.html
T
2026-09-08 19:49:21 +08:00

165 lines
5.6 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<script src="https://cdn.jsdelivr.net/npm/echarts@4.1.0/dist/echarts.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-echarts@4.0.2"></script>
<style>
/*.el-card__body{*/
/* height: 100%;*/
/*}*/
.echarts {
width: 100%;
height: 100%;
}
</style>
<div id="app" v-cloak class="p10">
<el-card>
<v-chart style="width: 100%;height: 800px" theme="mine" :options="yearOptions2"></v-chart>
</el-card>
</div>
<script>
let vm = new Vue({
el:'#app',
data(){
return{
yearOptions2:{
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data: ['结题优秀','结题通过','立项','总申报']
},
grid: {
left: '3%',
right: '3%',
bottom: '15%',
containLabel: true
},
xAxis: {
type: 'value'
},
yAxis: {
type: 'category',
data: []
},
series: [
{
name: '结题优秀',
type: 'bar',
stack: '结题优秀数',
label: {
show: true,
position: 'insideRight'
},
data: []
},
{
name: '结题通过',
type: 'bar',
stack: '结题通过数',
label: {
show: true,
position: 'insideRight'
},
data: []
},
{
name: '立项',
type: 'bar',
stack: '立项数',
label: {
show: true,
position: 'insideRight'
},
data: []
},
{
name: '总申报',
type: 'bar',
stack: '总申报数',
label: {
show: true,
position: 'insideRight'
},
data: []
}
]
},
unionList:[],
yearList:[],
dataList:[]
}
},
methods:{
dataFormatter(year){
let o = {}
let totalArr = []
for (let y of this.yearList){
for (let d of this.dataList[y]){
const v = {name:d.unionname,value:d.totalnum}
totalArr.push(v)
}
}
o.total = totalArr
let lxArr = []
for (let y of this.yearList){
for (let d of this.dataList[y]){
const v = {name:d.unionname,value:d.lxnum}
lxArr.push(v)
}
}
o.lx = lxArr
let passArr = []
for (let y of this.yearList){
for (let d of this.dataList[y]){
const v = {name:d.unionname,value:d.passnum}
passArr.push(v)
}
}
o.pass = passArr
let goodArr = []
for (let y of this.yearList){
for (let d of this.dataList[y]){
const v = {name:d.unionname,value:d.goodnum}
goodArr.push(v)
}
}
o.good = goodArr
console.log(o)
return o
},
async getUnionList(){
const {data} = await $.get('/platform/syr/cxtj/yeartj/getUnionList',{})
for (let o of data){
this.unionList.push(o.unionname)
}
},
async getDataList(){
const {data} = await $.get('/platform/syr/cxtj/yeartj/data',{})
this.yearList = Object.keys(data)
this.dataList = data
},
async inita(){
this.yearOptions2.yAxis.data = this.unionList
this.yearOptions2.series[0].data = this.dataFormatter(2020).good
this.yearOptions2.series[1].data = this.dataFormatter(2020).pass
this.yearOptions2.series[2].data = this.dataFormatter(2020).lx
this.yearOptions2.series[3].data = this.dataFormatter(2020).total
}
},
async created(){
await this.getUnionList()
await this.getDataList()
await this.inita()
}
})
</script>
<!--#
}
#-->