|
@@ -5,7 +5,13 @@
|
|
|
<i class="icon-search">
|
|
|
<SvgIcon class="icon" size="14" name="toggle" />
|
|
|
</i>
|
|
|
- <a-select v-model:value="searchValue" style="width: 180px; margin-right: 10px" :options="options1" aria-placeholder="请选择" />
|
|
|
+ <a-select
|
|
|
+ v-model:value="searchValue"
|
|
|
+ style="width: 180px; margin-right: 10px"
|
|
|
+ :options="workTypeList"
|
|
|
+ aria-placeholder="请选择"
|
|
|
+ @change="changeSelect"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="work-echart">
|
|
|
<div class="work" ref="work"></div>
|
|
@@ -22,216 +28,257 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
- import { ref, reactive,nextTick,onMounted } from 'vue';
|
|
|
+ import { ref, reactive, nextTick, onMounted, defineProps, watch } from 'vue';
|
|
|
import { SvgIcon } from '/@/components/Icon';
|
|
|
import * as echarts from 'echarts';
|
|
|
|
|
|
- let searchValue = ref('15212工作面');
|
|
|
- const options1 = reactive<any>([
|
|
|
- {
|
|
|
- value: '15212工作面',
|
|
|
- label: '15212工作面',
|
|
|
- },
|
|
|
- {
|
|
|
- value: '15213工作面',
|
|
|
- label: '15213工作面',
|
|
|
- },
|
|
|
- {
|
|
|
- value: '15214工作面',
|
|
|
- label: '15214工作面',
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- ]);
|
|
|
+ let props = defineProps({
|
|
|
+ workList: Array,
|
|
|
+ });
|
|
|
+
|
|
|
+ let workData = reactive<any[]>([]);
|
|
|
+ let searchValue = ref('');
|
|
|
+ const workTypeList = reactive<any[]>([]);
|
|
|
|
|
|
let tabList = reactive<any[]>([
|
|
|
- { name: '总风量(m³/min)', val: '13129' },
|
|
|
- { name: '总阻力(Pa)', val: '217010' },
|
|
|
- { name: '等积孔(m²)', val: '0.56' },
|
|
|
+ { name: '进风量(m³/min)', val: null },
|
|
|
+ { name: '回风量(m³/min)', val: null },
|
|
|
+ { name: '需风量(m³/min)', val: null },
|
|
|
]);
|
|
|
|
|
|
let work = ref<any>();
|
|
|
- let echartData=reactive({
|
|
|
- xdata:['08:00:00', '09:00:00', '10:00:00', '11:00:00', '12:00:00', '13:00:00', ],
|
|
|
- ydata:[12, 5, 12, 46, 22, 24, ],
|
|
|
- ydata1:[18, 27, 20, 58, 37, 28,]
|
|
|
- })
|
|
|
-//跳转详情
|
|
|
-function getDetail() {
|
|
|
+ let echartData = reactive({
|
|
|
+ xdata: [],
|
|
|
+ ydata: [],
|
|
|
+ ydata1: [],
|
|
|
+ });
|
|
|
+ //跳转详情
|
|
|
+ function getDetail() {
|
|
|
console.log('跳转详情');
|
|
|
}
|
|
|
+ //选项切换
|
|
|
+ function changeSelect(val) {
|
|
|
+ switch (val) {
|
|
|
+ case '15212工作面':
|
|
|
+ tabList[0].val = workData[0].jin;
|
|
|
+ tabList[1].val = workData[0].hui;
|
|
|
+ tabList[2].val = workData[0].xufengliang;
|
|
|
+ echartData.xdata.length = 0;
|
|
|
+ echartData.ydata.length = 0;
|
|
|
+ echartData.ydata1.length = 0;
|
|
|
+ workData[0].history.forEach((el) => {
|
|
|
+ echartData.xdata.push(el.time);
|
|
|
+ echartData.ydata.push(el.jin);
|
|
|
+ echartData.ydata1.push(el.hui);
|
|
|
+ });
|
|
|
+
|
|
|
+ getOption();
|
|
|
+ break;
|
|
|
+ case '采煤工作面':
|
|
|
+ tabList[0].val = workData[1].jin;
|
|
|
+ tabList[1].val = workData[1].hui;
|
|
|
+ tabList[2].val = workData[1].xufengliang;
|
|
|
+ echartData.xdata.length = 0;
|
|
|
+ echartData.ydata.length = 0;
|
|
|
+ echartData.ydata1.length = 0;
|
|
|
+ workData[1].history.forEach((el) => {
|
|
|
+ echartData.xdata.push(el.time);
|
|
|
+ echartData.ydata.push(el.jin);
|
|
|
+ echartData.ydata1.push(el.hui);
|
|
|
+ });
|
|
|
+ getOption();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
function getOption() {
|
|
|
- nextTick(() => {
|
|
|
- const myChart = echarts.init(work.value)
|
|
|
- let option = {
|
|
|
- tooltip: {
|
|
|
- trigger: 'axis',
|
|
|
- axisPointer: {
|
|
|
- type: 'cross'
|
|
|
- }
|
|
|
+ nextTick(() => {
|
|
|
+ const myChart = echarts.init(work.value);
|
|
|
+ let option = {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ axisPointer: {
|
|
|
+ type: 'cross',
|
|
|
},
|
|
|
+ },
|
|
|
|
|
|
- legend: {
|
|
|
- align: 'left',
|
|
|
- right: '4%',
|
|
|
- top: '6%',
|
|
|
- type: 'plain',
|
|
|
- textStyle: {
|
|
|
- color: '#7ec7ff',
|
|
|
- fontSize: 12
|
|
|
- },
|
|
|
- // icon:'rect',
|
|
|
- itemGap: 25,
|
|
|
- itemWidth: 18,
|
|
|
- icon: 'path://M0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z',
|
|
|
- data: [
|
|
|
- {
|
|
|
- name: '工作面进风'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '工作面回风'
|
|
|
- },
|
|
|
- // {
|
|
|
- // name: '工作面需风'
|
|
|
- // }
|
|
|
- ]
|
|
|
+ legend: {
|
|
|
+ align: 'left',
|
|
|
+ right: '4%',
|
|
|
+ top: '6%',
|
|
|
+ type: 'plain',
|
|
|
+ textStyle: {
|
|
|
+ color: '#7ec7ff',
|
|
|
+ fontSize: 12,
|
|
|
},
|
|
|
+ // icon:'rect',
|
|
|
+ itemGap: 25,
|
|
|
+ itemWidth: 18,
|
|
|
+ icon: 'path://M0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z',
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ name: '工作面进风',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '工作面回风',
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // name: '工作面需风'
|
|
|
+ // }
|
|
|
+ ],
|
|
|
+ },
|
|
|
|
|
|
- grid: {
|
|
|
- top: '28%',
|
|
|
- left: '5%',
|
|
|
- right: '5%',
|
|
|
- bottom: '5%',
|
|
|
- containLabel: true
|
|
|
- },
|
|
|
+ grid: {
|
|
|
+ top: '28%',
|
|
|
+ left: '5%',
|
|
|
+ right: '5%',
|
|
|
+ bottom: '5%',
|
|
|
+ containLabel: true,
|
|
|
+ },
|
|
|
|
|
|
- xAxis: [
|
|
|
- {
|
|
|
- type: 'category',
|
|
|
- // boundaryGap: false,
|
|
|
- axisLine: {
|
|
|
- //坐标轴轴线相关设置。数学上的x轴
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: 'rgba(62, 103, 164)',
|
|
|
- }
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- //坐标轴刻度标签的相关设置
|
|
|
- textStyle: {
|
|
|
- color: '#b3b8cc',
|
|
|
- padding: 0,
|
|
|
- fontSize: 12
|
|
|
- },
|
|
|
- formatter: function (data) {
|
|
|
- return data
|
|
|
- }
|
|
|
+ xAxis: [
|
|
|
+ {
|
|
|
+ type: 'category',
|
|
|
+ // boundaryGap: false,
|
|
|
+ axisLine: {
|
|
|
+ //坐标轴轴线相关设置。数学上的x轴
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(62, 103, 164)',
|
|
|
},
|
|
|
- splitLine: {
|
|
|
- show: false,
|
|
|
-
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ //坐标轴刻度标签的相关设置
|
|
|
+ textStyle: {
|
|
|
+ color: '#b3b8cc',
|
|
|
+ padding: 0,
|
|
|
+ fontSize: 12,
|
|
|
},
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
+ formatter: function (data) {
|
|
|
+ return data;
|
|
|
},
|
|
|
- data: echartData.xdata
|
|
|
- }
|
|
|
- ],
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ data: echartData.xdata,
|
|
|
+ },
|
|
|
+ ],
|
|
|
|
|
|
- yAxis: [
|
|
|
- {
|
|
|
- name: 'm³/s',
|
|
|
- nameTextStyle: {
|
|
|
- color: '#b3b8cc',
|
|
|
- fontSize: 12,
|
|
|
- padding: -10
|
|
|
+ yAxis: [
|
|
|
+ {
|
|
|
+ name: 'm³/s',
|
|
|
+ nameTextStyle: {
|
|
|
+ color: '#b3b8cc',
|
|
|
+ fontSize: 12,
|
|
|
+ padding: -10,
|
|
|
+ },
|
|
|
+ min: 0,
|
|
|
+ splitLine: {
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(62, 103, 164,.4)',
|
|
|
},
|
|
|
- min: 0,
|
|
|
- splitLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: 'rgba(62, 103, 164,.4)',
|
|
|
- }
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(62, 103, 164)',
|
|
|
},
|
|
|
- axisLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: 'rgba(62, 103, 164)',
|
|
|
- }
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ show: true,
|
|
|
+ textStyle: {
|
|
|
+ color: '#b3b8cc',
|
|
|
+ padding: 0,
|
|
|
+ fontSize: 12,
|
|
|
},
|
|
|
- axisLabel: {
|
|
|
- show: true,
|
|
|
- textStyle: {
|
|
|
- color: '#b3b8cc',
|
|
|
- padding: 0,
|
|
|
- fontSize: 12
|
|
|
- },
|
|
|
- formatter: function (value) {
|
|
|
- if (value === 0) {
|
|
|
- return value
|
|
|
- }
|
|
|
- return value
|
|
|
+ formatter: function (value) {
|
|
|
+ if (value === 0) {
|
|
|
+ return value;
|
|
|
}
|
|
|
+ return value;
|
|
|
},
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: '工作面进风',
|
|
|
- type: 'line',
|
|
|
- yAxisIndex: 0,
|
|
|
- symbolSize: 6,
|
|
|
- lineStyle: {
|
|
|
- normal: {
|
|
|
- width: 2,
|
|
|
- color: 'orange' // 线条颜色
|
|
|
- },
|
|
|
- borderColor: 'rgba(0,0,0,.4)'
|
|
|
- },
|
|
|
- itemStyle: {
|
|
|
- color: 'orange',
|
|
|
- borderColor: '#646ace',
|
|
|
- borderWidth: 0
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '工作面进风',
|
|
|
+ type: 'line',
|
|
|
+ yAxisIndex: 0,
|
|
|
+ symbolSize: 6,
|
|
|
+ lineStyle: {
|
|
|
+ normal: {
|
|
|
+ width: 2,
|
|
|
+ color: 'orange', // 线条颜色
|
|
|
},
|
|
|
- data: echartData.ydata
|
|
|
+ borderColor: 'rgba(0,0,0,.4)',
|
|
|
},
|
|
|
- {
|
|
|
- name: '工作面回风',
|
|
|
- type: 'line',
|
|
|
- yAxisIndex: 0,
|
|
|
- symbolSize: 6,
|
|
|
+ itemStyle: {
|
|
|
+ color: 'orange',
|
|
|
+ borderColor: '#646ace',
|
|
|
+ borderWidth: 0,
|
|
|
+ },
|
|
|
+ data: echartData.ydata,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '工作面回风',
|
|
|
+ type: 'line',
|
|
|
+ yAxisIndex: 0,
|
|
|
+ symbolSize: 6,
|
|
|
|
|
|
- lineStyle: {
|
|
|
- normal: {
|
|
|
- width: 2,
|
|
|
- color: '#1891de' // 线条颜色
|
|
|
- },
|
|
|
- borderColor: 'rgba(0,0,0,.4)'
|
|
|
- },
|
|
|
- itemStyle: {
|
|
|
- color: '#1891de',
|
|
|
- borderColor: '#646ace',
|
|
|
- borderWidth: 0
|
|
|
+ lineStyle: {
|
|
|
+ normal: {
|
|
|
+ width: 2,
|
|
|
+ color: '#1891de', // 线条颜色
|
|
|
},
|
|
|
- data: echartData.ydata1
|
|
|
+ borderColor: 'rgba(0,0,0,.4)',
|
|
|
},
|
|
|
-
|
|
|
- ]
|
|
|
- }
|
|
|
- myChart.setOption(option)
|
|
|
- window.onresize = function () {
|
|
|
- myChart.resize()
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- onMounted(() => {
|
|
|
- getOption();
|
|
|
- });
|
|
|
+ itemStyle: {
|
|
|
+ color: '#1891de',
|
|
|
+ borderColor: '#646ace',
|
|
|
+ borderWidth: 0,
|
|
|
+ },
|
|
|
+ data: echartData.ydata1,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ myChart.setOption(option);
|
|
|
+ window.onresize = function () {
|
|
|
+ myChart.resize();
|
|
|
+ };
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
+ watch(
|
|
|
+ () => props.workList,
|
|
|
+ (val) => {
|
|
|
+ console.log(val, '工作面数据');
|
|
|
+ workData = val;
|
|
|
+ workTypeList.length = 0;
|
|
|
+ workData.forEach((el) => {
|
|
|
+ workTypeList.push({
|
|
|
+ label: el.deviceName,
|
|
|
+ value: el.deviceName,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ searchValue.value = workTypeList[0].value;
|
|
|
+
|
|
|
+ changeSelect(searchValue.value);
|
|
|
+ },
|
|
|
+ {
|
|
|
+ deep: true,
|
|
|
+ }
|
|
|
+ );
|
|
|
|
|
|
-
|
|
|
+ onMounted(() => {});
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
@@ -247,7 +294,7 @@ function getDetail() {
|
|
|
font-size: 16px;
|
|
|
font-family: 'douyuFont';
|
|
|
cursor: pointer;
|
|
|
- &:hover{
|
|
|
+ &:hover {
|
|
|
color: #66ffff;
|
|
|
}
|
|
|
}
|