对比新文件 |
| | |
| | | import request from '/@/utils/request'; |
| | | |
| | | export function dailyApi() { |
| | | return { |
| | | |
| | | //日报查询 |
| | | getDaily: (data: object) => { |
| | | return request({ |
| | | url: import.meta.env.VITE_API_URL + `/dailyReport/page`, |
| | | method: 'post', |
| | | data: data |
| | | }); |
| | | }, |
| | | }; |
| | | } |
| | |
| | | </el-form> |
| | | </div> |
| | | <el-table :data="state.tableData.data" style="width: 100%"> |
| | | <el-table-column align="center" prop="date" label="日期"/> |
| | | <el-table-column align="center" label="文件名称"> |
| | | <template #default="scope"> |
| | | <div v-for="(item, index) in scope.row.file" :key="index"> |
| | | {{ item.filename}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="gmtCreate" label="日期"/> |
| | | <el-table-column align="center" prop="name" label="文件名称"/> |
| | | <el-table-column label="操作" show-overflow-tooltip width="140"> |
| | | <template #default="scope"> |
| | | <el-button size="small" text type="primary" @click="downLoad(scope.row)">下载</el-button> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import {reactive, ref} from "vue"; |
| | | import {onMounted, reactive, ref} from "vue"; |
| | | import { TableDailytState } from "/@/types/monitorData"; |
| | | import axios from "axios"; |
| | | import Cookies from "js-cookie"; |
| | | import { ElMessage } from 'element-plus' |
| | | import {dailyApi} from "/@/api/monitorData/daily"; |
| | | import moment from "moment/moment"; |
| | | |
| | | const state = reactive<TableDailytState>({ |
| | | tableData: { |
| | |
| | | } |
| | | }); |
| | | |
| | | const initDailyData = () => { |
| | | console.log("数据列表") |
| | | onMounted( |
| | | () => { |
| | | getNowTime(); |
| | | initDailyData() |
| | | } |
| | | ); |
| | | |
| | | const initDailyData = async () => { |
| | | const param = { |
| | | pageIndex: state.tableData.listQuery.pageIndex, |
| | | pageSize: state.tableData.listQuery.pageSize, |
| | | searchParams: { |
| | | year: state.tableData.listQuery.searchParams.time.substring(0,4), |
| | | month: state.tableData.listQuery.searchParams.time.substring(5,7) |
| | | } |
| | | } |
| | | let res = await dailyApi().getDaily(param); |
| | | if(res.data.code == 100) { |
| | | state.tableData.data = res.data.data; |
| | | state.tableData.total = res.data.total; |
| | | state.tableData.listQuery.pageIndex = res.data.pageIndex; |
| | | state.tableData.listQuery.pageSize = res.data.pageSize; |
| | | } |
| | | |
| | | console.log("数据列表",res) |
| | | }; |
| | | const getNowTime = () => { |
| | | let isDate = new Date() |
| | | const year = isDate.getFullYear(); |
| | | const month = isDate.getMonth() + 1; |
| | | state.tableData.listQuery.searchParams.time = (year + "-" + (month >= 10 ? month : "0" + month)).toString(); |
| | | } |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.tableData.listQuery.pageSize = val; |
| | | initDailyData(); |
| | |
| | | initDailyData(); |
| | | }; |
| | | const downLoad = (file: any) => { |
| | | // axios.get(process.env.VITE_API_URL + file.fileUrl, { |
| | | // headers: { |
| | | // 'Content-Type': 'application/json', |
| | | // 'Authorization': Cookies.get('token'), |
| | | // }, |
| | | // responseType: 'blob' |
| | | // }).then(res => { |
| | | // if (res) { |
| | | // const link = document.createElement('a') |
| | | // let blob = new Blob([res.data], { |
| | | // type: res.data.type |
| | | // }) |
| | | // link.style.display = "none"; |
| | | // link.href = URL.createObjectURL(blob); // 创建URL |
| | | // link.setAttribute("download", file.fileName); |
| | | // document.body.appendChild(link); |
| | | // link.click(); |
| | | // document.body.removeChild(link); |
| | | // } else { |
| | | // ElMessage({ |
| | | // message: '获取文件失败', |
| | | // type: 'error', |
| | | // }) |
| | | // } |
| | | // }) |
| | | console.log("file",file) |
| | | axios.get(import.meta.env.VITE_API_URL + file.fileUrl, { |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | 'tk': `${Cookies.get('token')}`, |
| | | 'uid':`${Cookies.get('uid')}` |
| | | }, |
| | | responseType: 'blob' |
| | | }).then(res => { |
| | | if (res) { |
| | | const link = document.createElement('a') |
| | | let blob = new Blob([res.data], { |
| | | type: res.data.type |
| | | }) |
| | | link.style.display = "none"; |
| | | link.href = URL.createObjectURL(blob); // 创建URL |
| | | link.setAttribute("download", file.name); |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | document.body.removeChild(link); |
| | | ElMessage({ |
| | | message: '下载成功', |
| | | type: 'success', |
| | | }) |
| | | } else { |
| | | ElMessage({ |
| | | message: '获取文件失败', |
| | | type: 'error', |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | const search = () => { |
| | | console.log("xxxx",state.tableData.listQuery.searchParams) |
| | | state.tableData.listQuery.pageIndex = 1; |
| | | initDailyData(); |
| | | console.log("vla",state.tableData.listQuery.searchParams) |
| | | } |
| | | const reset = () => { |
| | | state.tableData.listQuery.searchParams.time = ''; |
| | | getNowTime(); |
| | | initDailyData(); |
| | | } |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | |
| | | </style> |
| | | </style> |
| | |
| | | </el-form> |
| | | </div> |
| | | <div id="gasChart" style="height: 500px;width: auto"></div> |
| | | <el-table :data="state.tableData.data" style="width: 100%"> |
| | | <el-table :data="state.tableData.data" style="width: 100%" v-loading="loading"> |
| | | <el-table-column type="index" label="序号" width="80" /> |
| | | <el-table-column align="center" prop="time" label="采集时间"/> |
| | | <el-table-column align="center" prop="regionName" label="区域名称"/> |
| | |
| | | }, |
| | | }); |
| | | |
| | | const loading = ref(false); |
| | | const myChart = shallowRef(null) |
| | | |
| | | const chooseTime = (val:any) => { |
| | |
| | | } |
| | | let resChart = await fluxDataApi().getFluxLineChart(chartParam); |
| | | if(resChart.data.code == 100) { |
| | | yData.value = mapArray(resChart.data.data); |
| | | areaChart.value = yData.value.map((item: any) => { |
| | | return item.name |
| | | }); |
| | | dataZoomEnd.value = xData.value.length > 25 ? 5 : 100; |
| | | if(resChart.data.data) { |
| | | yData.value = mapArray(resChart.data.data); |
| | | areaChart.value = yData.value.map((item: any) => { |
| | | return item.name |
| | | }); |
| | | dataZoomEnd.value = xData.value.length > 25 ? 5 : 100; |
| | | }else { |
| | | yData.value = []; |
| | | xData.value = []; |
| | | dataZoomEnd.value = 100; |
| | | } |
| | | |
| | | initCharts(); |
| | | }else { |
| | | ElMessage({ |
| | |
| | | }); |
| | | } |
| | | |
| | | loading.value = true; |
| | | //表格 |
| | | const pageParam = { |
| | | pageIndex: state.tableData.listQuery.pageIndex, |
| | |
| | | state.tableData.total = res.data.total; |
| | | state.tableData.listQuery.pageIndex = res.data.pageIndex; |
| | | state.tableData.listQuery.pageSize = res.data.pageSize; |
| | | loading.value = false; |
| | | }else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | |
| | | saveAsImage: { show: true } |
| | | } |
| | | }, |
| | | graphic: { |
| | | type: 'text', // 类型:文本 |
| | | left: 'center', |
| | | top: 'middle', |
| | | silent: true, // 不响应事件 |
| | | invisible: yData.value.length > 0, // 有数据就隐藏 |
| | | style: { |
| | | fill: '#9d9d9d', |
| | | fontWeight: 'bold', |
| | | text: '暂无数据', |
| | | fontFamily: 'Microsoft YaHei', |
| | | fontSize: '22px' |
| | | } |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | |
| | | </el-form> |
| | | </div> |
| | | <div id="gasChart" style="height: 500px;width: auto"></div> |
| | | <el-table :data="state.tableData.data" style="width: 100%;margin-top: 20px"> |
| | | <el-table :data="state.tableData.data" style="width: 100%;margin-top: 20px" v-loading="loading"> |
| | | <el-table-column type="index" label="序号" width="80" /> |
| | | <el-table-column align="center" prop="time" label="采集时间"/> |
| | | <el-table-column align="center" prop="windSpeed" label="风速"/> |
| | |
| | | } |
| | | } |
| | | } |
| | | const loading = ref(false); |
| | | const dataZoomEnd = ref(); |
| | | const xData = ref([]); |
| | | const yData = ref([]); |
| | |
| | | } |
| | | let resChart = await gasDataApi().getGasLineChart(chartParam); |
| | | if(resChart.data.code == 100) { |
| | | xData.value = resChart.data.data.map((item: any) => { |
| | | return item.time; |
| | | }) |
| | | yData.value = resChart.data.data.map((item: any) => { |
| | | return item.gasValue; |
| | | }) |
| | | dataZoomEnd.value = xData.value.length > 25 ? 30 : 100; |
| | | markLines.value = 110; |
| | | if (resChart.data.data) { |
| | | xData.value = resChart.data.data.map((item: any) => { |
| | | return item.time; |
| | | }) |
| | | yData.value = resChart.data.data.map((item: any) => { |
| | | return item.gasValue; |
| | | }) |
| | | dataZoomEnd.value = xData.value.length > 25 ? 30 : 100; |
| | | markLines.value = 110; |
| | | |
| | | }else { |
| | | xData.value = []; |
| | | yData.value = []; |
| | | markLines.value = 0; |
| | | dataZoomEnd.value = 100; |
| | | } |
| | | initCharts(); |
| | | }else { |
| | | ElMessage({ |
| | |
| | | }); |
| | | } |
| | | |
| | | loading.value = true; |
| | | //表格 |
| | | const pageParam = { |
| | | pageIndex: state.tableData.listQuery.pageIndex, |
| | |
| | | state.tableData.total = res.data.total; |
| | | state.tableData.listQuery.pageIndex = res.data.pageIndex; |
| | | state.tableData.listQuery.pageSize = res.data.pageSize; |
| | | loading.value = false; |
| | | }else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | |
| | | initInfoData(); |
| | | }; |
| | | const search = () => { |
| | | state.tableData.listQuery.pageIndex = 1; |
| | | initInfoData(); |
| | | console.log("vla",state.tableData.listQuery.searchParams) |
| | | } |
| | |
| | | max: Math.max(markLines.value,...yData.value), |
| | | min: Math.min(markLines.value,...yData.value) |
| | | }, |
| | | graphic: { |
| | | type: 'text', // 类型:文本 |
| | | left: 'center', |
| | | top: 'middle', |
| | | silent: true, // 不响应事件 |
| | | invisible: yData.value.length > 0, // 有数据就隐藏 |
| | | style: { |
| | | fill: '#9d9d9d', |
| | | fontWeight: 'bold', |
| | | text: '暂无数据', |
| | | fontFamily: 'Microsoft YaHei', |
| | | fontSize: '25px' |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: yData.value, |
| | |
| | | position: 'end', // 表现内容展示的位置 |
| | | color: 'red' // 展示内容颜色 |
| | | }, |
| | | yAxis: markLines.value, |
| | | yAxis: markLines.value == 0 ? '':markLines.value , |
| | | lineStyle: { |
| | | color: "red", |
| | | width: 1, // 0 的时候可以隐藏线 |
| | | width: markLines.value == 0 ? 0: 1, // 0 的时候可以隐藏线 |
| | | type: "solid" // 实线,不写默认虚线 |
| | | } |
| | | },],//type: 'average', 平均值, min最小值, max 最大值, median中位数 |
| | |
| | | // 使用刚指定的配置项和数据显示图表。 |
| | | myChart.value.setOption(option,true); |
| | | //自适应宽度 |
| | | window.addEventListener('resize', function () { |
| | | window.addEventListener('resize',function () { |
| | | myChart.value.resize(); |
| | | }) |
| | | } |
| | |
| | | </el-form> |
| | | </div> |
| | | <div id="gasChart" style="height: 500px;width: auto"></div> |
| | | <el-table :data="state.tableData.data" style="width: 100%;margin-top: 20px"> |
| | | <el-table :data="state.tableData.data" style="width: 100%;margin-top: 20px" v-loading="loading"> |
| | | <el-table-column type="index" label="序号" width="80" /> |
| | | <el-table-column align="center" prop="time" label="采集时间"/> |
| | | <el-table-column align="center" prop="value" :label='weatherName' /> |
| | |
| | | ] |
| | | } |
| | | }); |
| | | const loading = ref(false); |
| | | const weatherName = ref('温度'); |
| | | const dataZoomEnd = ref(); |
| | | const xData = ref([]); |
| | |
| | | } |
| | | let resChart = await weatherDataApi().getWeatherLineChart(chartParam); |
| | | if(resChart.data.code == 100) { |
| | | xData.value = resChart.data.data.map((item: any) => { |
| | | return item.time; |
| | | }) |
| | | yData.value = resChart.data.data.map((item: any) => { |
| | | return item.value; |
| | | }) |
| | | dataZoomEnd.value = xData.value.length > 25 ? 5 : 100; |
| | | if(resChart.data.data) { |
| | | xData.value = resChart.data.data.map((item: any) => { |
| | | return item.time; |
| | | }) |
| | | yData.value = resChart.data.data.map((item: any) => { |
| | | return item.value; |
| | | }) |
| | | dataZoomEnd.value = xData.value.length > 25 ? 5 : 100; |
| | | }else { |
| | | xData.value = []; |
| | | yData.value = []; |
| | | dataZoomEnd.value = 100; |
| | | } |
| | | |
| | | initCharts(); |
| | | }else { |
| | | ElMessage({ |
| | |
| | | }); |
| | | } |
| | | |
| | | loading.value = true; |
| | | //表格 |
| | | const pageParam = { |
| | | pageIndex: state.tableData.listQuery.pageIndex, |
| | |
| | | state.tableData.total = res.data.total; |
| | | state.tableData.listQuery.pageIndex = res.data.pageIndex; |
| | | state.tableData.listQuery.pageSize = res.data.pageSize; |
| | | loading.value = false; |
| | | }else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | |
| | | show: true, |
| | | type: 'value' |
| | | }, |
| | | graphic: { |
| | | type: 'text', // 类型:文本 |
| | | left: 'center', |
| | | top: 'middle', |
| | | silent: true, // 不响应事件 |
| | | invisible: yData.value.length > 0, // 有数据就隐藏 |
| | | style: { |
| | | fill: '#9d9d9d', |
| | | fontWeight: 'bold', |
| | | text: '暂无数据', |
| | | fontFamily: 'Microsoft YaHei', |
| | | fontSize: '25px' |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: yData.value, |