<template> <div class="container"> <div class="searchMar"> <el-input class="handleInput" v-model="query.stnm" placeholder="站名" @input="handleInput" @change="handleSearch"></el-input> <!-- <el-select placeholder="请选择水厂" class="handleInput" v-model="query.awid"> <el-option v-for="item in wfctCdData" :key="item.wfctCd" :label="item.wfctName" :value="item.wfctCd"> </el-option> </el-select> <el-select placeholder="请选择监测要素" class="handleInput marL" v-model="query.type"> <el-option v-for="item in typeData" :key="item.code" :label="item.name" :value="item.code"> </el-option> </el-select> --> <el-date-picker class="marL" v-model="query.date" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptions0" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> <el-button icon="el-icon-search" class="marL" type="primary" plain @click="handleSearch" >搜索</el-button > <el-button icon="el-icon-refresh-right" style="margin-left: 0" type="primary" plain @click="handleReset" >重置</el-button > </div> <!-- 表格 start --> <el-table height="calc(100vh - 575px)" :data="tableList" :row-style="selectedHighlight" > <el-table-column label="采集时间" width="130" prop="esstym" show-overflow-tooltip></el-table-column> <el-table-column label="站名" width="130" show-overflow-tooltip> <template slot-scope="{ row }"> <span>{{ row.stcd }}</span> </template> </el-table-column> <!-- <el-table-column label="所属水厂"> <template slot-scope="{ row }"> <span>{{ getSelectVal(wfctCdData, row.awid) }}</span> </template> </el-table-column> --> <el-table-column label="采集要素"> <template slot-scope="{ row }"> <span>{{ getSelectVal(typeData, row.type) }}</span> </template> </el-table-column> <el-table-column align="right" label="采集值"> <template slot-scope="{ row}"> <span>{{ row.paramax }}</span> </template> </el-table-column> <el-table-column align="center" label="水质分类"> <el-table-column label="I类水" align="center" width="120"> <template slot-scope="{ row }"> <span>{{row.bVal}}</span> </template> </el-table-column> <el-table-column label="II类水" align="center" width="120"> <template slot-scope="{ row }"> <span>{{row.bVal}}</span> </template> </el-table-column> <el-table-column label="III类水" align="center" width="120"> <template slot-scope="{ row }"> <span>{{row.bVal}}</span> </template> </el-table-column> <el-table-column label="IV类水" align="center" width="120"> <template slot-scope="{ row }"> <span>{{row.bVal}}</span> </template> </el-table-column> <el-table-column label="V类水" align="center" width="120"> <template slot-scope="{ row }"> <span>{{row.bVal}}</span> </template> </el-table-column> </el-table-column> </el-table> <!-- 表格 end --> <!-- 分页 start --> <div class="paginationBox"> <div class="pagination"> <el-pagination background layout="total, sizes, prev, pager, next" @size-change="handleSizeChange" :current-page="query.page" :page-size="query.pageSize" :page-sizes="[10, 15, 20, 25]" :total="pageTotal" @current-change="handlePageChange" ></el-pagination> </div> </div> <!-- 分页 end --> <!-- echart start --> <div class="echartBox"> <template> <el-radio-group v-model="radio"> <el-radio v-for="item in typeData" @change="handleRadio" :key="item.code" :label="item.code">{{ item.name }}</el-radio> </el-radio-group> </template> <el-row class="echartRow" :gutter="20"> <el-col :span="12"> <waterqualityAnalyseLine /> </el-col> <el-col :span="12"> <waterqualityAnalysePie /> </el-col> </el-row> </div> <!-- echart end --> </div> </template> <script> import formValidate from '../../lib/formValidation'; import waterqualityAnalyseLine from '../../components/common/echartsCom/waterqualityAnalyseLine'; import waterqualityAnalysePie from '../../components/common/echartsCom/waterqualityAnalysePie'; export default { components: { waterqualityAnalyseLine, waterqualityAnalysePie }, data() { return { tableList: [ { stcd: '0003', awid: "000000001", esstym: '2020-08-01', type: "cd", bVal: 4, isCB: 1, CBPS: 1.6, paramax: 6, paramin: 8 } ], currentIndex: -1, // 表格当前选中的行 multipleSelection: [], pageTotal: 0, // 总页数 BtnIndex: -1, query:{ page: 1, pageSize: 15, awid:'', type: '', date:[] }, flagAjax: true, wfctCdData: [], typeData: [], categoryData: [], isExport: false, radio: '', pickerMinDate: '', pickerOptions0: { onPick: ({ maxDate, minDate }) => { this.pickerMinDate = minDate; }, disabledDate: (time) => { if (this.pickerMinDate !== '') { let maxTime = new Date(this.pickerMinDate).getTime()+1000*60*60*24; if (maxTime > new Date().getTime()) { maxTime = new Date().getTime(); } return time.getTime() > maxTime || time.getTime() > Date.now() - 8.64e6; } else { return time.getTime() > Date.now() - 8.64e6; } } } } }, created() { this.getParamTypeData(); // this.getQueryTable(); this.waterworksData(); this.setDefaultDate(); // 设置时间范围默认一天 }, methods: { setDefaultDate() { //当前设定的日期时间 let d = new Date let year1,month1,day1; [year1,month1,day1] = [d.getFullYear(),d.getMonth(),d.getDate()] let date1 = new Date(year1, month1, day1,0) this.query.date.push(date1) //前一天设定的日期时间 let year2,month2,day2 d.setTime(d.getTime()-24*60*60*1000); [year2,month2,day2] = [d.getFullYear(),d.getMonth(),d.getDate()] let date2 = new Date(year2,month2,day2,0) this.query.date.unshift(date2) }, handleInput() { if (!this.query.awid || !this.query.awid) { this.getQueryTable(); } }, // 下拉框获取name getSelectVal (data, type) { let val = '' if (data.length && type) { data.map(item => { if(item.code === type || item.wfctCd === type) { val = item.name || item.wfctName; } }); } return val; }, // 请求水厂信息 waterworksData() { this.$http.waterworksList({wfctCd:""}).then(res => { this.wfctCdData = res.data; this.query.awid = res.data && res.data[0].wfctCd; }); }, getParamTypeData() { this.$http.getDictionaryTree({pid:"wq_qt"}).then(res => { if (res.code === "CODE_0000") { this.typeData = res.data; this.radio = res.data ? res.data[0].code : ""; } }); this.$http.getDictionaryTree({pid:"wq_type"}).then(res => { if (res.code === "CODE_0000") { this.categoryData = res.data; } }); }, // 获取表格数据 getQueryTable() { this.$http.getQueryParam(this.query).then(res => { if (res.code === "CODE_0000") { this.tableList = res.data.records; this.pageTotal=res.data.total; } }); }, // 触发搜索按钮 handleSearch() { this.$set(this.query, 'page', 1); this.getQueryTable(); }, // 重置按钮 handleReset() { if (this.query.awid || this.query.type) { this.query = { awid: '', type: '', page: 1, pageSize: 15, }; this.getQueryTable(); } }, // 高亮显示的行 selectedHighlight({row, rowIndex}) { row.index=rowIndex; return { "cursor": "pointer" }; }, // 导出 handleExportList() { this.isExport = true; this.$axios({ url: '/api/cbb-wsnetwork/baseStation/export', method:'post', responseType:'blob', headers: { 'content-type': 'application/json;charset=UTF-8', Authorization: `Bearer ${sessionStorage.getItem('access_token')}` }, }).then(response =>{ this.$lib.downloadFile(response); this.isExport = false; }).catch(e => { this.$message.warning(e.message); this.isExport = false; }) }, // 分页显示数量改变 handleSizeChange(val) { this.query.pageSize=val; this.getQueryTable(); }, // 点击分页 handlePageChange(val) { this.currentIndex=-1; this.$set(this.query, 'page', val); this.getQueryTable(); }, handleRadio(val) { console.log(val) } } }; </script> <style scoped> .searchMar { margin-bottom: 24px; } .paginationBox { height: 72px; } </style>