|
@@ -19,12 +19,12 @@
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="维度统计">
|
|
|
- <el-select size="mini" v-model="formData.formSelect1" placeholder="请选择">
|
|
|
+ <el-select size="mini" v-model="formData.formSelect1" @change="change1(formData.formSelect1)" placeholder="请选择">
|
|
|
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="问题名称">
|
|
|
- <el-select size="mini" v-model="formData.formSelect2">
|
|
|
+ <el-select size="mini" v-model="formData.formSelect2" @change="change2(formData.formSelect2)" >
|
|
|
<el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -100,11 +100,11 @@ export default {
|
|
|
// 多选框1配置项
|
|
|
options1: [
|
|
|
{
|
|
|
- value: '选项1',
|
|
|
+ value: '01',
|
|
|
label: '累计存在问题数量'
|
|
|
},
|
|
|
{
|
|
|
- value: '选项2',
|
|
|
+ value: '02',
|
|
|
label: '现在问题数量'
|
|
|
}
|
|
|
],
|
|
@@ -129,6 +129,7 @@ export default {
|
|
|
// 绑定选择日期范围
|
|
|
yearChoose: '',
|
|
|
radio: 'total',
|
|
|
+ filterc:'data1',
|
|
|
newKeys: [],
|
|
|
newTableList: [],
|
|
|
newUnit: '',
|
|
@@ -154,12 +155,31 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
// 改变多选框数据格式
|
|
|
+ change1(value)
|
|
|
+ {
|
|
|
+ this.$emit('changeData', value);
|
|
|
+
|
|
|
+ },
|
|
|
+ change2(value)
|
|
|
+ {
|
|
|
+ //alert(value);
|
|
|
+ this.filterc=value;
|
|
|
+
|
|
|
+
|
|
|
+ this.setTable(this.xStr, this.radio,this.filterc)
|
|
|
+
|
|
|
+ this.echartsInit(this.echartsId, this.type, this.newUnit, this.x, this.y, this.isX, this.isY)
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
changeSelectSJGS() {
|
|
|
let options = []
|
|
|
let array = this.radioLabel.filter((item, index) => {
|
|
|
- return index % 2 === 0
|
|
|
+ //return index % 2 === 0
|
|
|
+ return true
|
|
|
})
|
|
|
array.forEach((item, index) => {
|
|
|
+ if (index==0) this.formData.formSelect2 =item.prop;
|
|
|
let obj = {
|
|
|
label: '',
|
|
|
value: ''
|
|
@@ -168,6 +188,7 @@ export default {
|
|
|
obj.value = item.prop
|
|
|
options.push(obj)
|
|
|
})
|
|
|
+ this.formData.formSelect1 ='01';
|
|
|
this.options2 = options
|
|
|
},
|
|
|
startTime() {},
|
|
@@ -218,27 +239,51 @@ export default {
|
|
|
// console.log(this.radioLabel)
|
|
|
// },
|
|
|
// 改变table中X轴的数据的数据格式 参数是 x轴对应的数据名字,y轴对应的数据名字
|
|
|
- setTable(xAxis, yAxis) {
|
|
|
+ setTable(xAxis,yAxis1, yAxis2) {
|
|
|
// x轴
|
|
|
let arrX = []
|
|
|
let arrY = []
|
|
|
+ let arrYa = []
|
|
|
+ let arrYb = []
|
|
|
this.newTableList.forEach((item) => {
|
|
|
- arrX.unshift(item[xAxis])
|
|
|
- arrY.unshift(item[yAxis])
|
|
|
- })
|
|
|
+ arrX.push(item[xAxis])
|
|
|
+ arrYa.push(item[yAxis1])
|
|
|
+ arrYb.push(item[yAxis2])
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ arrY[0]={};
|
|
|
+ arrY[0].label='已检查机构总数';
|
|
|
+ arrY[0].data=arrYa;
|
|
|
+
|
|
|
+ arrY[1]={};
|
|
|
+ if (this.formData.formSelect1=='01')
|
|
|
+ arrY[1].label=this.options1[0].label;
|
|
|
+ else
|
|
|
+ arrY[1].label=this.options1[1].label;
|
|
|
+ arrY[1].data=arrYb;
|
|
|
this.x = arrX
|
|
|
this.y = arrY
|
|
|
if (this.isfftj === true) {
|
|
|
this.x = this.newKeys.filter((item) => item.type === 'select').map((item) => item.label)
|
|
|
}
|
|
|
},
|
|
|
- // 单选框改变事件
|
|
|
- changRadio(item) {
|
|
|
- this.setTable(this.xStr, item.prop)
|
|
|
- this.echartsInit(this.echartsId, this.type, this.newUnit, this.x, this.y, this.isX, this.isY)
|
|
|
- },
|
|
|
+
|
|
|
// echarts 参数为:每个图表id,图表类型,单位,x轴数据,y轴数据,isX和isY是否是横向(value和category)
|
|
|
echartsInit(id, type, unit, xAxis, yData, isX, isY) {
|
|
|
+ const labelOption = {
|
|
|
+ show: true,
|
|
|
+ position: 'top',
|
|
|
+ distance: 15,
|
|
|
+ align: 'left',
|
|
|
+ verticalAlign: 'middle',
|
|
|
+ rotate: 20,
|
|
|
+ // formatter: '{c} {name|{a}}',
|
|
|
+ fontSize: 13,
|
|
|
+ rich: {
|
|
|
+ name: {}
|
|
|
+ }
|
|
|
+ };
|
|
|
// 是否显示xy轴
|
|
|
let isShow = true
|
|
|
let yAxis = yData
|
|
@@ -248,19 +293,22 @@ export default {
|
|
|
return { name: item.label, value: this.newTableList[0][item.prop] }
|
|
|
})
|
|
|
}
|
|
|
- let obj = {
|
|
|
- type: 'bar',
|
|
|
- data: yAxis,
|
|
|
- radius: ['35%', '65%'],
|
|
|
- hoverAnimation: true,
|
|
|
- avoidLabelOverlap: false
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
var myChart = this.$echarts.init(document.getElementById(id))
|
|
|
var option = {
|
|
|
// color: ['#288DEF'],
|
|
|
- title: {},
|
|
|
- tooltip: {},
|
|
|
- legend: {},
|
|
|
+ title: {
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ axisPointer: {
|
|
|
+ type: 'shadow'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+
|
|
|
+ },
|
|
|
xAxis: {
|
|
|
type: isX,
|
|
|
show: isShow,
|
|
@@ -269,7 +317,7 @@ export default {
|
|
|
axisLabel: {
|
|
|
interval: 0,
|
|
|
textStyle: {
|
|
|
- color: '#000',
|
|
|
+ color: '#a14c4c',
|
|
|
fontSize: '10',
|
|
|
itemSize: ''
|
|
|
}
|
|
@@ -289,17 +337,26 @@ export default {
|
|
|
},
|
|
|
series: [
|
|
|
{
|
|
|
- type,
|
|
|
- data: yAxis,
|
|
|
+ type: "bar",
|
|
|
+ data: yAxis[0].data,
|
|
|
+ radius: ['35%', '65%'],
|
|
|
+ hoverAnimation: true,
|
|
|
+ avoidLabelOverlap: false,
|
|
|
+ name:yAxis[0].label,
|
|
|
+ label:labelOption
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "bar",
|
|
|
+ data: yAxis[1].data,
|
|
|
radius: ['35%', '65%'],
|
|
|
hoverAnimation: true,
|
|
|
- avoidLabelOverlap: false
|
|
|
+ avoidLabelOverlap: false,
|
|
|
+ name:yAxis[1].label,
|
|
|
+ label:labelOption
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
- if (this.isTwoBar === 'yes') {
|
|
|
- option.series.push(obj)
|
|
|
- }
|
|
|
+
|
|
|
myChart.setOption(option)
|
|
|
}
|
|
|
},
|
|
@@ -311,13 +368,12 @@ export default {
|
|
|
},
|
|
|
labelKeys(newVal) {
|
|
|
this.newKeys = newVal
|
|
|
- // this.setKeys()
|
|
|
this.changeSelectSJGS()
|
|
|
- console.log(this.radioLabel, 'radio')
|
|
|
+
|
|
|
},
|
|
|
tableList(newVal) {
|
|
|
this.newTableList = newVal
|
|
|
- this.setTable(this.xStr, 'total')
|
|
|
+ this.setTable(this.xStr, this.radio,this.filterc)
|
|
|
this.echartsInit(this.echartsId, this.type, this.newUnit, this.x, this.y, this.isX, this.isY)
|
|
|
}
|
|
|
}
|