|
@@ -8,309 +8,314 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { ref, reactive, nextTick, onMounted, defineProps, watch } from 'vue';
|
|
|
-import * as echarts from 'echarts';
|
|
|
-const emit = defineEmits(['goDetail']);
|
|
|
+ import { ref, reactive, nextTick, onMounted, defineProps, watch } from 'vue';
|
|
|
+ import * as echarts from 'echarts';
|
|
|
+ const emit = defineEmits(['goDetail']);
|
|
|
|
|
|
-let props = defineProps({
|
|
|
- flList: Array,
|
|
|
-});
|
|
|
+ let props = defineProps({
|
|
|
+ flList: Array,
|
|
|
+ });
|
|
|
|
|
|
-//获取dom节点
|
|
|
-let windBar = ref<any>();
|
|
|
-//坐标轴最大值
|
|
|
-let maxY = ref<any>(0);
|
|
|
-//echart数据
|
|
|
-let echartData = reactive<any>({ ydata: [], xdata: [] });
|
|
|
-//跳转详情
|
|
|
-function getDetail() {
|
|
|
- emit('goDetail', 'windrect');
|
|
|
-}
|
|
|
-function getOption() {
|
|
|
- nextTick(() => {
|
|
|
- const myChart = echarts.init(windBar.value);
|
|
|
- let option = {
|
|
|
- color: [
|
|
|
- '#63caff',
|
|
|
- '#49beff',
|
|
|
- 'rgba(74, 205, 255,.1)',
|
|
|
- '#03387a',
|
|
|
- '#03387a',
|
|
|
- '#6c93ee',
|
|
|
- '#a9abff',
|
|
|
- '#f7a23f',
|
|
|
- '#27bae7',
|
|
|
- '#ff6d9d',
|
|
|
- '#cb79ff',
|
|
|
- '#f95b5a',
|
|
|
- '#ccaf27',
|
|
|
- '#38b99c',
|
|
|
- '#93d0ff',
|
|
|
- '#bd74e0',
|
|
|
- '#fd77da',
|
|
|
- '#dea700',
|
|
|
- ],
|
|
|
- grid: {
|
|
|
- containLabel: true,
|
|
|
- left: 30,
|
|
|
- right: 30,
|
|
|
- bottom: echartData.xdata.length > 8 ? 30 : 15,
|
|
|
- top: 40,
|
|
|
- },
|
|
|
+ //获取dom节点
|
|
|
+ let windBar = ref<any>();
|
|
|
+ //坐标轴最大值
|
|
|
+ let maxY = ref<any>(0);
|
|
|
+ //echart数据
|
|
|
+ let echartData = reactive<any>({ ydata: [], xdata: [] });
|
|
|
+ //跳转详情
|
|
|
+ function getDetail() {
|
|
|
+ emit('goDetail', 'windrect');
|
|
|
+ }
|
|
|
+ function getOption() {
|
|
|
+ nextTick(() => {
|
|
|
+ const myChart = echarts.init(windBar.value);
|
|
|
+ let option = {
|
|
|
+ color: [
|
|
|
+ '#63caff',
|
|
|
+ '#49beff',
|
|
|
+ 'rgba(74, 205, 255,.1)',
|
|
|
+ '#03387a',
|
|
|
+ '#03387a',
|
|
|
+ '#6c93ee',
|
|
|
+ '#a9abff',
|
|
|
+ '#f7a23f',
|
|
|
+ '#27bae7',
|
|
|
+ '#ff6d9d',
|
|
|
+ '#cb79ff',
|
|
|
+ '#f95b5a',
|
|
|
+ '#ccaf27',
|
|
|
+ '#38b99c',
|
|
|
+ '#93d0ff',
|
|
|
+ '#bd74e0',
|
|
|
+ '#fd77da',
|
|
|
+ '#dea700',
|
|
|
+ ],
|
|
|
+ grid: {
|
|
|
+ containLabel: true,
|
|
|
+ left: 30,
|
|
|
+ right: 30,
|
|
|
+ bottom: echartData.xdata.length > 8 ? 30 : 15,
|
|
|
+ top: 40,
|
|
|
+ },
|
|
|
|
|
|
- xAxis: {
|
|
|
- type: 'category',
|
|
|
- data: echartData.xdata,
|
|
|
- axisLabel: {
|
|
|
- formatter: function (params) {
|
|
|
- var newParamsName = ''; // 最终拼接成的字符串
|
|
|
- var paramsNameNumber = params.length; // 实际标签的个数
|
|
|
- var provideNumber = 6; // 每行能显示的字的个数
|
|
|
- var rowNumber = Math.ceil(paramsNameNumber / provideNumber); // 换行的话,需要显示几行,向上取整
|
|
|
- /**
|
|
|
- * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
|
|
|
- */
|
|
|
- // 条件等同于rowNumber>1
|
|
|
- if (paramsNameNumber > provideNumber) {
|
|
|
- /** 循环每一行,p表示行 */
|
|
|
- for (var p = 0; p < rowNumber; p++) {
|
|
|
- var tempStr = ''; // 表示每一次截取的字符串
|
|
|
- var start = p * provideNumber; // 开始截取的位置
|
|
|
- var end = start + provideNumber; // 结束截取的位置
|
|
|
- // 此处特殊处理最后一行的索引值
|
|
|
- if (p == rowNumber - 1) {
|
|
|
- // 最后一次不换行
|
|
|
- tempStr = params.substring(start, paramsNameNumber);
|
|
|
- } else {
|
|
|
- // 每一次拼接字符串并换行
|
|
|
- tempStr = params.substring(start, end) + '\n';
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ data: echartData.xdata,
|
|
|
+ axisLabel: {
|
|
|
+ formatter: function (params) {
|
|
|
+ var newParamsName = ''; // 最终拼接成的字符串
|
|
|
+ var paramsNameNumber = params.length; // 实际标签的个数
|
|
|
+ var provideNumber = 6; // 每行能显示的字的个数
|
|
|
+ var rowNumber = Math.ceil(paramsNameNumber / provideNumber); // 换行的话,需要显示几行,向上取整
|
|
|
+ /**
|
|
|
+ * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
|
|
|
+ */
|
|
|
+ // 条件等同于rowNumber>1
|
|
|
+ if (paramsNameNumber > provideNumber) {
|
|
|
+ /** 循环每一行,p表示行 */
|
|
|
+ for (var p = 0; p < rowNumber; p++) {
|
|
|
+ var tempStr = ''; // 表示每一次截取的字符串
|
|
|
+ var start = p * provideNumber; // 开始截取的位置
|
|
|
+ var end = start + provideNumber; // 结束截取的位置
|
|
|
+ // 此处特殊处理最后一行的索引值
|
|
|
+ if (p == rowNumber - 1) {
|
|
|
+ // 最后一次不换行
|
|
|
+ tempStr = params.substring(start, paramsNameNumber);
|
|
|
+ } else {
|
|
|
+ // 每一次拼接字符串并换行
|
|
|
+ tempStr = params.substring(start, end) + '\n';
|
|
|
+ }
|
|
|
+ newParamsName += tempStr; // 最终拼成的字符串
|
|
|
}
|
|
|
- newParamsName += tempStr; // 最终拼成的字符串
|
|
|
+ } else {
|
|
|
+ // 将旧标签的值赋给新标签
|
|
|
+ newParamsName = params;
|
|
|
}
|
|
|
- } else {
|
|
|
- // 将旧标签的值赋给新标签
|
|
|
- newParamsName = params;
|
|
|
- }
|
|
|
- //将最终的字符串返回
|
|
|
- return newParamsName;
|
|
|
+ //将最终的字符串返回
|
|
|
+ return newParamsName;
|
|
|
+ },
|
|
|
+ fontSize: 14,
|
|
|
+ margin: 15,
|
|
|
+ interval: 0,
|
|
|
+ textStyle: {
|
|
|
+ color: '#b3b8cc',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(62, 103, 164)',
|
|
|
+ },
|
|
|
},
|
|
|
- fontSize: 14,
|
|
|
- margin: 15,
|
|
|
- interval: 0,
|
|
|
- textStyle: {
|
|
|
- color: '#b3b8cc',
|
|
|
+ splitLine: {
|
|
|
+ show: false,
|
|
|
},
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- lineStyle: {
|
|
|
- color: 'rgba(62, 103, 164)',
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
},
|
|
|
},
|
|
|
- splitLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- },
|
|
|
|
|
|
- yAxis: {
|
|
|
- type: 'value',
|
|
|
- name: '(m³/min)',
|
|
|
- // max: maxY.value,
|
|
|
- axisLabel: {
|
|
|
- textStyle: {
|
|
|
- fontSize: 14,
|
|
|
- color: '#b3b8cc',
|
|
|
+ yAxis: {
|
|
|
+ type: 'value',
|
|
|
+ name: '(m³/min)',
|
|
|
+ // max: maxY.value,
|
|
|
+ axisLabel: {
|
|
|
+ textStyle: {
|
|
|
+ fontSize: 14,
|
|
|
+ color: '#b3b8cc',
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- nameTextStyle: {
|
|
|
- color: '#fff',
|
|
|
- fontSize: 12,
|
|
|
- lineHeight: 10,
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- lineStyle: {
|
|
|
- color: 'rgba(62, 103, 164,.4)',
|
|
|
+ nameTextStyle: {
|
|
|
+ color: '#fff',
|
|
|
+ fontSize: 12,
|
|
|
+ lineHeight: 10,
|
|
|
},
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- data: echartData.ydata,
|
|
|
- type: 'bar',
|
|
|
- barMaxWidth: 'auto',
|
|
|
- barWidth: 25,
|
|
|
- itemStyle: {
|
|
|
- color: {
|
|
|
- x: 0,
|
|
|
- y: 0,
|
|
|
- x2: 0,
|
|
|
- y2: 1,
|
|
|
- type: 'linear',
|
|
|
- global: false,
|
|
|
- colorStops: [
|
|
|
- {
|
|
|
- offset: 0,
|
|
|
- color: '#0b9eff',
|
|
|
- },
|
|
|
- {
|
|
|
- offset: 1,
|
|
|
- color: '#63caff',
|
|
|
- },
|
|
|
- ],
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(62, 103, 164,.4)',
|
|
|
},
|
|
|
},
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- position: 'top',
|
|
|
- distance: 10,
|
|
|
- color: '#fff',
|
|
|
+ axisLine: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
},
|
|
|
},
|
|
|
- {
|
|
|
- data: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
- type: 'pictorialBar',
|
|
|
- barMaxWidth: '25',
|
|
|
- symbol: 'diamond',
|
|
|
- symbolOffset: [0, '50%'],
|
|
|
- symbolSize: [25, 15],
|
|
|
- },
|
|
|
- {
|
|
|
- data: echartData.ydata,
|
|
|
- type: 'pictorialBar',
|
|
|
- barMaxWidth: '25',
|
|
|
- symbolPosition: 'end',
|
|
|
- symbol: 'diamond',
|
|
|
- symbolOffset: [0, '-50%'],
|
|
|
- symbolSize: [25, 12],
|
|
|
- zlevel: 2,
|
|
|
- },
|
|
|
- {
|
|
|
- data: [741, 741, 741, 741, 741, 741, 741, 741],
|
|
|
- type: 'bar',
|
|
|
- barMaxWidth: 'auto',
|
|
|
- barWidth: 25,
|
|
|
- barGap: '-100%',
|
|
|
- zlevel: -1,
|
|
|
- },
|
|
|
- {
|
|
|
- data: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
- type: 'pictorialBar',
|
|
|
- barMaxWidth: '25',
|
|
|
- symbol: 'diamond',
|
|
|
- symbolOffset: [0, '50%'],
|
|
|
- symbolSize: [25, 15],
|
|
|
- zlevel: -2,
|
|
|
- },
|
|
|
- {
|
|
|
- data: [741, 741, 741, 741, 741, 741, 741, 741],
|
|
|
- type: 'pictorialBar',
|
|
|
- barMaxWidth: '25',
|
|
|
- symbolPosition: 'end',
|
|
|
- symbol: 'diamond',
|
|
|
- symbolOffset: [0, '-50%'],
|
|
|
- symbolSize: [25, 12],
|
|
|
- zlevel: -1,
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ data: echartData.ydata,
|
|
|
+ type: 'bar',
|
|
|
+ barMaxWidth: 'auto',
|
|
|
+ barWidth: 25,
|
|
|
+ itemStyle: {
|
|
|
+ color: {
|
|
|
+ x: 0,
|
|
|
+ y: 0,
|
|
|
+ x2: 0,
|
|
|
+ y2: 1,
|
|
|
+ type: 'linear',
|
|
|
+ global: false,
|
|
|
+ colorStops: [
|
|
|
+ {
|
|
|
+ offset: 0,
|
|
|
+ color: '#0b9eff',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ offset: 1,
|
|
|
+ color: '#63caff',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'top',
|
|
|
+ distance: 10,
|
|
|
+ color: '#fff',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ data: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
+ type: 'pictorialBar',
|
|
|
+ barMaxWidth: '25',
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolOffset: [0, '50%'],
|
|
|
+ symbolSize: [25, 15],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ data: echartData.ydata,
|
|
|
+ type: 'pictorialBar',
|
|
|
+ barMaxWidth: '25',
|
|
|
+ symbolPosition: 'end',
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolOffset: [0, '-50%'],
|
|
|
+ symbolSize: [25, 12],
|
|
|
+ zlevel: 2,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ data: [741, 741, 741, 741, 741, 741, 741, 741],
|
|
|
+ type: 'bar',
|
|
|
+ barMaxWidth: 'auto',
|
|
|
+ barWidth: 25,
|
|
|
+ barGap: '-100%',
|
|
|
+ zlevel: -1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ data: [1, 1, 1, 1, 1, 1, 1, 1],
|
|
|
+ type: 'pictorialBar',
|
|
|
+ barMaxWidth: '25',
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolOffset: [0, '50%'],
|
|
|
+ symbolSize: [25, 15],
|
|
|
+ zlevel: -2,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ data: [741, 741, 741, 741, 741, 741, 741, 741],
|
|
|
+ type: 'pictorialBar',
|
|
|
+ barMaxWidth: '25',
|
|
|
+ symbolPosition: 'end',
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolOffset: [0, '-50%'],
|
|
|
+ symbolSize: [25, 12],
|
|
|
+ zlevel: -1,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ dataZoom: [
|
|
|
+ {
|
|
|
+ // 这部分是关键
|
|
|
+ show: echartData.xdata.length > 8 ? true : false,
|
|
|
+ type: 'slider', // 这里可以选择你需要的类型,例如 'inside'
|
|
|
+ start: 0, // 数据窗口范围的起始百分比
|
|
|
+ end: echartData.xdata.length > 8 && echartData.xdata.length < 16 ? 50 : echartData.xdata.length > 16 ? 25 : 100, // 数据窗口范围的结束百分比
|
|
|
+ height: 10, // 设置缩放条高度
|
|
|
+ left: 'center',
|
|
|
+ bottom: 25,
|
|
|
+ labelPrecision: 0, // 标签精度,默认为auto
|
|
|
+ showDetail: false, // 是否显示详情
|
|
|
+ showDataShadow: false, // 是否显示数据阴影
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ show: false,
|
|
|
},
|
|
|
- ],
|
|
|
- dataZoom: [{
|
|
|
- // 这部分是关键
|
|
|
- show: echartData.xdata.length > 8 ? true : false,
|
|
|
- type: 'slider', // 这里可以选择你需要的类型,例如 'inside'
|
|
|
- start: 0, // 数据窗口范围的起始百分比
|
|
|
- end: echartData.xdata.length > 8 && echartData.xdata.length < 16 ? 50 : echartData.xdata.length > 16 ? 25 : 100, // 数据窗口范围的结束百分比
|
|
|
- height: 10, // 设置缩放条高度
|
|
|
- left: 'center',
|
|
|
- bottom: 25,
|
|
|
- labelPrecision: 0, // 标签精度,默认为auto
|
|
|
- showDetail: false, // 是否显示详情
|
|
|
- showDataShadow: false, // 是否显示数据阴影
|
|
|
- }],
|
|
|
- tooltip: {
|
|
|
- trigger: 'axis',
|
|
|
- show: false,
|
|
|
- },
|
|
|
- };
|
|
|
- myChart.setOption(option);
|
|
|
- window.onresize = function () {
|
|
|
- myChart.resize();
|
|
|
- };
|
|
|
- });
|
|
|
-}
|
|
|
-watch(
|
|
|
- () => props.flList,
|
|
|
- (val) => {
|
|
|
- echartData.xdata.length = 0;
|
|
|
- echartData.ydata.length = 0;
|
|
|
- val.forEach((el: any) => {
|
|
|
- if (el.readData.m3) {
|
|
|
- echartData.xdata.push(el.strinstallpos);
|
|
|
- echartData.ydata.push(el.readData.m3);
|
|
|
- }
|
|
|
- });
|
|
|
- maxY.value = echartData.ydata.reduce((acr, cur) => {
|
|
|
- return parseFloat(acr) > parseFloat(cur) ? parseFloat(acr) : parseFloat(cur);
|
|
|
+ };
|
|
|
+ myChart.setOption(option);
|
|
|
+ window.onresize = function () {
|
|
|
+ myChart.resize();
|
|
|
+ };
|
|
|
});
|
|
|
- maxY.value = maxY.value.toString().indexOf('.') == -1 ? maxY.value.toString() : maxY.value.toString().substring(0, maxY.value.toString().indexOf('.'))
|
|
|
- if (maxY.value.length < 2) {
|
|
|
- maxY.value = 10
|
|
|
- } else if (maxY.value.length < 3) {
|
|
|
- maxY.value = (Number(maxY.value[0])+1) * 10
|
|
|
- } else if (maxY.value.length < 4) {
|
|
|
- maxY.value = (Number(maxY.value[0])+1) * 100
|
|
|
- } else if (maxY.value.length < 5) {
|
|
|
- maxY.value = (Number(maxY.value[0])+1) * 1000
|
|
|
- } else if (maxY.value.length < 6) {
|
|
|
- maxY.value = (Number(maxY.value[0])+1) * 10000
|
|
|
- }
|
|
|
- getOption();
|
|
|
- },
|
|
|
- {
|
|
|
- deep: true,
|
|
|
}
|
|
|
-);
|
|
|
+ watch(
|
|
|
+ () => props.flList,
|
|
|
+ (val) => {
|
|
|
+ echartData.xdata.length = 0;
|
|
|
+ echartData.ydata.length = 0;
|
|
|
+ val.forEach((el: any) => {
|
|
|
+ if (el.readData.m3) {
|
|
|
+ echartData.xdata.push(el.strinstallpos);
|
|
|
+ echartData.ydata.push(el.readData.m3);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ maxY.value = echartData.ydata.reduce((acr, cur) => {
|
|
|
+ return parseFloat(acr) > parseFloat(cur) ? parseFloat(acr) : parseFloat(cur);
|
|
|
+ });
|
|
|
+ maxY.value =
|
|
|
+ maxY.value.toString().indexOf('.') == -1 ? maxY.value.toString() : maxY.value.toString().substring(0, maxY.value.toString().indexOf('.'));
|
|
|
+ if (maxY.value.length < 1) {
|
|
|
+ maxY.value = 1;
|
|
|
+ } else if (maxY.value.length < 2) {
|
|
|
+ maxY.value = 10;
|
|
|
+ } else if (maxY.value.length < 3) {
|
|
|
+ maxY.value = (Number(maxY.value[0]) + 1) * 10;
|
|
|
+ } else if (maxY.value.length < 4) {
|
|
|
+ maxY.value = (Number(maxY.value[0]) + 1) * 100;
|
|
|
+ } else if (maxY.value.length < 5) {
|
|
|
+ maxY.value = (Number(maxY.value[0]) + 1) * 1000;
|
|
|
+ } else if (maxY.value.length < 6) {
|
|
|
+ maxY.value = (Number(maxY.value[0]) + 1) * 10000;
|
|
|
+ }
|
|
|
+ getOption();
|
|
|
+ },
|
|
|
+ {
|
|
|
+ deep: true,
|
|
|
+ }
|
|
|
+ );
|
|
|
|
|
|
-onMounted(() => { });
|
|
|
+ onMounted(() => {});
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-.windMonitor {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- position: relative;
|
|
|
+ .windMonitor {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ position: relative;
|
|
|
|
|
|
- .title-top {
|
|
|
- position: absolute;
|
|
|
- top: 9px;
|
|
|
- left: 46px;
|
|
|
- color: #fff;
|
|
|
- font-size: 16px;
|
|
|
- font-family: 'douyuFont';
|
|
|
- cursor: pointer;
|
|
|
+ .title-top {
|
|
|
+ position: absolute;
|
|
|
+ top: 9px;
|
|
|
+ left: 46px;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 16px;
|
|
|
+ font-family: 'douyuFont';
|
|
|
+ cursor: pointer;
|
|
|
|
|
|
- &:hover {
|
|
|
- color: #66ffff;
|
|
|
+ &:hover {
|
|
|
+ color: #66ffff;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- .wind-contents {
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 36px;
|
|
|
- width: 100%;
|
|
|
- height: calc(100% - 36px);
|
|
|
|
|
|
- .wind-bar {
|
|
|
+ .wind-contents {
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 36px;
|
|
|
width: 100%;
|
|
|
- height: 100%;
|
|
|
+ height: calc(100% - 36px);
|
|
|
+
|
|
|
+ .wind-bar {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
</style>
|