projects/mesxc-zjl #139

Merged
juzi merged 2 commits from projects/mesxc-zjl into projects/mesxc-test 2023-12-12 10:57:13 +08:00
13 changed files with 661 additions and 153 deletions
Showing only changes of commit 1661615af4 - Show all commits

View File

@ -13,14 +13,14 @@ VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境 # 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://100.64.0.26:48082' # VUE_APP_BASE_API = 'http://100.64.0.26:48082'
# VUE_APP_BASE_API = 'http://192.168.0.33:48082' VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.4.173:48080'
# VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080'
# VUE_APP_BASE_API = 'http://192.168.1.49:48082' # VUE_APP_BASE_API = 'http://192.168.1.49:48082'
# VUE_APP_BASE_API = 'http://192.168.1.8:48082' # VUE_APP_BASE_API = 'http://192.168.1.8:48082'
# VUE_APP_BASE_API = 'http://192.168.4.159:48080' # VUE_APP_BASE_API = 'http://192.168.4.159:48080'
# VUE_APP_BASE_API = 'http://192.168.1.56:48082' # VUE_APP_BASE_API = 'http://192.168.1.56:48082'
VUE_APP_BASE_API = 'http://192.168.1.62:48080' # VUE_APP_BASE_API = 'http://192.168.1.62:48082'
# 积木报表指向地址 # 积木报表指向地址
VUE_APP_JIMU_API = 'http://192.168.0.33:48082' VUE_APP_JIMU_API = 'http://192.168.0.33:48082'

View File

@ -10,11 +10,11 @@ export function environmentalCheckRealtime(query) {
} }
// 获得环保检测指标趋势数据 // 获得环保检测指标趋势数据
export function environmentalCheckRealtimeTrend(query) { export function environmentalCheckRealtimeTrend(data) {
return request({ return request({
url: '/base/environmental-check-record/trend', url: '/base/environmental-check-record/trend',
method: 'get', method: 'post',
params: query data: data
}) })
} }
@ -64,20 +64,20 @@ export function environmentalCheckDelete(query) {
} }
// 获得环保检测记录分页 // 获得环保检测记录分页
export function environmentalCheckRecordPage(query) { export function environmentalCheckRecordPage(data) {
return request({ return request({
url: '/base/environmental-check-record/page', url: '/base/environmental-check-record/page',
method: 'get', method: 'post',
params: query data: data
}) })
} }
// 导出环保检测记录 Excel // 导出环保检测记录 Excel
export function environmentalCheckRecordExport(query) { export function environmentalCheckRecordExport(data) {
return request({ return request({
url: '/base/environmental-check-record/export-excel', url: '/base/environmental-check-record/export-excel',
method: 'get', method: 'post',
params: query, data: data,
responseType: 'blob' responseType: 'blob'
}) })
} }

View File

@ -221,18 +221,30 @@ export default {
timeSelect() { timeSelect() {
switch (this.queryParams.timeDim) { switch (this.queryParams.timeDim) {
case '1': case '1':
if (!this.timeValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.timeValue[1] - this.timeValue[0] > 7*24*3600000) { if (this.timeValue[1] - this.timeValue[0] > 7*24*3600000) {
this.$modal.msgError('最大时间范围为7天请重新选择') this.$modal.msgError('最大时间范围为7天请重新选择')
this.timeValue = [] this.timeValue = []
} }
break break
case '2': case '2':
if (!this.dateValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.dateValue[1] - this.dateValue[0] > 29*24*3600000) { if (this.dateValue[1] - this.dateValue[0] > 29*24*3600000) {
this.$modal.msgError('最大时间范围为30天请重新选择') // 0:00:0023:59:59 this.$modal.msgError('最大时间范围为30天请重新选择') // 0:00:0023:59:59
this.dateValue = [] this.dateValue = []
} }
break break
case '4': case '4':
if (!this.monthValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.monthValue[1] - this.monthValue[0] > 729*24*3600000) { if (this.monthValue[1] - this.monthValue[0] > 729*24*3600000) {
this.$modal.msgError('最大时间范围为24个月请重新选择')// this.$modal.msgError('最大时间范围为24个月请重新选择')//
this.monthValue = [] this.monthValue = []
@ -338,7 +350,7 @@ export default {
} }
switch (this.queryParams.timeDim) { switch (this.queryParams.timeDim) {
case '1': case '1':
if (this.timeValue.length > 0) { if (this.timeValue && this.timeValue.length > 0) {
this.queryParams.startTime = this.timeValue[0] this.queryParams.startTime = this.timeValue[0]
this.queryParams.endTime = this.timeValue[1] // this.queryParams.endTime = this.timeValue[1] //
} else { } else {

View File

@ -8,7 +8,6 @@
<script> <script>
import * as echarts from 'echarts' import * as echarts from 'echarts'
import resize from '@/utils/chartMixins/resize' import resize from '@/utils/chartMixins/resize'
import moment from 'moment'
export default { export default {
name: "LineChart", name: "LineChart",
mixins: [resize], mixins: [resize],

View File

@ -207,18 +207,30 @@ export default {
timeSelect() { timeSelect() {
switch (this.queryParams.timeDim) { switch (this.queryParams.timeDim) {
case '1': case '1':
if (!this.timeValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.timeValue[1] - this.timeValue[0] > 7*24*3600000) { if (this.timeValue[1] - this.timeValue[0] > 7*24*3600000) {
this.$modal.msgError('最大时间范围为7天请重新选择') this.$modal.msgError('最大时间范围为7天请重新选择')
this.timeValue = [] this.timeValue = []
} }
break break
case '2': case '2':
if (!this.dateValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.dateValue[1] - this.dateValue[0] > 29*24*3600000) { if (this.dateValue[1] - this.dateValue[0] > 29*24*3600000) {
this.$modal.msgError('最大时间范围为30天请重新选择') // 0:00:0023:59:59 this.$modal.msgError('最大时间范围为30天请重新选择') // 0:00:0023:59:59
this.dateValue = [] this.dateValue = []
} }
break break
case '4': case '4':
if (!this.monthValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.monthValue[1] - this.monthValue[0] > 729*24*3600000) { if (this.monthValue[1] - this.monthValue[0] > 729*24*3600000) {
this.$modal.msgError('最大时间范围为24个月请重新选择')// this.$modal.msgError('最大时间范围为24个月请重新选择')//
this.monthValue = [] this.monthValue = []
@ -307,7 +319,7 @@ export default {
} }
switch (this.queryParams.timeDim) { switch (this.queryParams.timeDim) {
case '1': case '1':
if (this.timeValue.length > 0) { if (this.timeValue && this.timeValue.length > 0) {
this.queryParams.startTime = this.timeValue[0] this.queryParams.startTime = this.timeValue[0]
this.queryParams.endTime = this.timeValue[1] // this.queryParams.endTime = this.timeValue[1] //
} else { } else {
@ -316,7 +328,7 @@ export default {
} }
break break
case '2': case '2':
if (this.dateValue.length > 0) { if (this.dateValue && this.dateValue.length > 0) {
this.queryParams.startTime = this.dateValue[0] this.queryParams.startTime = this.dateValue[0]
this.queryParams.endTime = this.dateValue[1] + 86399000 // 23:59:59 this.queryParams.endTime = this.dateValue[1] + 86399000 // 23:59:59
} else { } else {
@ -336,7 +348,7 @@ export default {
} }
break break
case '4':// case '4'://
if (this.monthValue.length > 0) { if (this.monthValue && this.monthValue.length > 0) {
this.queryParams.startTime = this.monthValue[0] this.queryParams.startTime = this.monthValue[0]
this.queryParams.endTime = this.transformTime(this.monthValue[1]) this.queryParams.endTime = this.transformTime(this.monthValue[1])
} else { } else {

View File

@ -18,17 +18,74 @@ export default {
chartHeight: this.tableHeight(420) chartHeight: this.tableHeight(420)
} }
}, },
props: {
chartData: {
type: Object,
required: true,
default: () => {
return {}
}
},
timeDim: {
type: String,
default: ''
}
},
mounted() { mounted() {
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
this.chartHeight = this.tableHeight(420) this.chartHeight = this.tableHeight(420)
}) })
this.getChart() this.getChart()
}, },
watch: {
chartData: function () {
this.getChart()
}
},
methods: { methods: {
getChart() { getChart() {
var chartDom = document.getElementById('wasteWaterLine'); if (
var myChart = echarts.init(chartDom); this.chart !== null &&
this.chart !== '' &&
this.chart !== undefined
) {
this.chart.dispose() // Dom
}
this.chartDom = document.getElementById('wasteWaterLine');
this.chart = echarts.init(this.chartDom);
if (Object.keys(this.chartData).length === 0) {
return false
}
let legendData = []
let xData = []
let seriesData = []
for (let item in this.chartData) {
legendData.push(item)
let obj = {}
let data = []
for (let subItem in this.chartData[item]) {
data.push(this.chartData[item][subItem].checkValue)
}
obj.name = item
obj.type = 'line'
obj.stack = 'Total'
obj.symbol = 'none'
obj.data = data
seriesData.push(obj)
}
for (let i = 0; i < this.chartData[legendData[0]].length; i++) {
let time = ""
if (this.timeDim === '3') {
let year = this.chartData[legendData[0]][i].axisTime.slice(0,4)
let weak = this.chartData[legendData[0]][i].axisTime.slice(6,8)
time = year+' 第 '+weak+' 周'
} else {
time = this.chartData[legendData[0]][i].axisTime
}
xData.push(time)
}
var option = { var option = {
color: ['#63BDFF', '#7164FF', '#FF6860', '#FF9747', '#B0EB42', '#D680FF', '#0043D2'],
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
formatter: function (params) { formatter: function (params) {
@ -51,27 +108,28 @@ export default {
} }
}, },
legend: { legend: {
data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'], data: legendData,
right: '1%', right: '2%',
icon: 'rect', icon: 'rect',
itemHeight: 8, itemHeight: 8,
itemWidth: 8 itemWidth: 8,
textStyle: {
color: 'auto'
}
}, },
grid: { grid: {
left: '3%', left: '3%',
right: '4%', right: '2%',
bottom: '3%', bottom: '3%',
containLabel: true containLabel: true
}, },
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: { xAxis: {
type: 'category', type: 'category',
boundaryGap: false, boundaryGap: false,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] data: xData,
axisLabel: {
rotate: "45"
}
}, },
yAxis: { yAxis: {
type: 'value' type: 'value'
@ -82,46 +140,10 @@ export default {
color: 'rgba(11, 88, 255, 1)' color: 'rgba(11, 88, 255, 1)'
} }
}, },
series: [ series: seriesData
{
name: 'Email',
type: 'line',
stack: 'Total',
symbol: 'none',
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: 'Union Ads',
type: 'line',
stack: 'Total',
symbol: 'none',
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: 'Video Ads',
type: 'line',
stack: 'Total',
symbol: 'none',
data: [150, 232, 201, 154, 190, 330, 410]
},
{
name: 'Direct',
type: 'line',
stack: 'Total',
symbol: 'none',
data: [320, 332, 301, 334, 390, 330, 320]
},
{
name: 'Search Engine',
type: 'line',
stack: 'Total',
symbol: 'none',
data: [820, 932, 901, 934, 1290, 1330, 1320]
}
]
}; };
option && myChart.setOption(option); option && this.chart.setOption(option);
} }
} }
} }

View File

@ -0,0 +1,378 @@
<template>
<div class="searchBarBox divHeight" ref="searchBarRef">
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="时间维度" required>
<el-select v-model="queryParams.timeDim" placeholder="请选择" style="width: 80px;" size="small">
<el-option
v-for="item in getDictDatas(this.DICT_TYPE.TIME_DIM)"
:key="item.value"
:label="item.label"
:value="item.value"
size="small">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间范围" required>
<div v-show="queryParams.timeDim === '1'">
<el-date-picker
v-model="timeValue"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd HH:mm"
value-format="timestamp"
:picker-options="pickerOptions"
popper-class="noneMinute"
@change="timeSelect"
size="small"
style='width:350px;'
>
</el-date-picker>
</div>
<div v-show="queryParams.timeDim === '2'">
<el-date-picker
v-model="dateValue"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="timestamp"
:picker-options="pickerOptions"
@change="timeSelect"
size="small"
style='width:350px;'
>
</el-date-picker>
</div>
<div v-show="queryParams.timeDim === '3'">
<el-date-picker
v-model="weekValue1"
type="week"
format="yyyy 第 WW 周"
style='width:170px;'
:picker-options="pickerOptionsWeek"
@change="startWeek"
size="small"
placeholder="选择周">
</el-date-picker>-
<el-date-picker
v-model="weekValue2"
type="week"
format="yyyy 第 WW 周"
:picker-options="pickerOptionsWeek"
style='width:170px;'
@change="endWeek"
size="small"
placeholder="选择周">
</el-date-picker>
</div>
<div v-show="queryParams.timeDim === '4'">
<el-date-picker
v-model="monthValue"
type="monthrange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="timestamp"
:picker-options="pickerOptions"
size="small"
style='width:350px;'
@change="timeSelect"
>
</el-date-picker>
</div>
<div v-show="queryParams.timeDim === '5'">
<el-date-picker
style='width:170px;'
v-model="yearValue1"
type="year"
:picker-options="pickerOptions"
value-format="timestamp"
placeholder="选择年"
size="small"
@change="startYear"
>
</el-date-picker>-
<el-date-picker
style='width:170px;'
v-model="yearValue2"
type="year"
:picker-options="pickerOptions"
value-format="timestamp"
placeholder="选择年"
size="small"
@change="endYear"
>
</el-date-picker>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="search">查询</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import moment from 'moment'
export default {
name: 'SearchArea',
data() {
return {
//
queryParams: {
timeDim: null,
startTime: null,
endTime: null
},
timeValue: [],// 7
dateValue: [],// 30
weekValue1: null,//24
weekValue2: null,
monthValue: [],//24
yearValue1: null,//10
yearValue2: null,
pickerOptions: {
disabledDate(date) {
return date.getTime() > Date.now()
}
},
pickerOptionsWeek: {
disabledDate(time) {
let day = Date.now()
let limitTime = moment(day).day(-1)
return time.getTime() > new Date(limitTime).getTime()
}
}
}
},
mounted() {
this.queryParams.timeDim = this.getDictDatas(this.DICT_TYPE.TIME_DIM)[0].value //
this.timeValue = [moment().startOf('day'), moment().endOf('day')-59*61*1000]
},
methods: {
//
timeSelect() {
switch (this.queryParams.timeDim) {
case '1':
if (!this.timeValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.timeValue[1] - this.timeValue[0] > 7*24*3600000) {
this.$modal.msgError('最大时间范围为7天请重新选择')
this.timeValue = []
}
break
case '2':
if (!this.dateValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.dateValue[1] - this.dateValue[0] > 29*24*3600000) {
this.$modal.msgError('最大时间范围为30天请重新选择') // 0:00:0023:59:59
this.dateValue = []
}
break
case '4':
if (!this.monthValue) {
this.$modal.msgError('时间范围不能为空')
return false
}
if (this.monthValue[1] - this.monthValue[0] > 729*24*3600000) {
this.$modal.msgError('最大时间范围为24个月请重新选择')//
this.monthValue = []
}
break
default:
}
},
//
startYear() {
if (this.yearValue2 && this.yearValue2 < this.yearValue1) {
this.$modal.msgError('开始时间不能晚于结束时间,请重新选择')
this.yearValue1 = null
return false
}
if (this.yearValue1 && this.yearValue2) {
if (this.yearValue2 - this.yearValue1 > 10*365*24*3600000) {
this.$modal.msgError('最大时间范围为10年请重新选择')
this.yearValue1 = null
return false
}
}
},
endYear() {
if (this.yearValue2 && this.yearValue2 < this.yearValue1) {
this.$modal.msgError('结束时间不能早于开始时间,请重新选择')
this.yearValue2 = null
return false
}
if (this.yearValue1 && this.yearValue2) {
if (this.yearValue2 - this.yearValue1 > 10*365*24*3600000) {
this.$modal.msgError('最大时间范围为10年请重新选择')
this.yearValue2 = null
return false
}
}
},
//
startWeek() {
if (this.weekValue1 && this.weekValue2) {
let a = new Date(this.weekValue1).getTime()
let b = new Date(this.weekValue2).getTime()
if (a > b) {
this.$modal.msgError('开始时间不能晚于结束时间,请重新选择')
this.weekValue1 = null
return false
}
if (b - a > 167*24*3600000) {
this.$modal.msgError('最大时间范围为24周请重新选择')
this.weekValue1 = null
return false
}
}
},
endWeek() {
if (this.weekValue1 && this.weekValue2) {
let a = new Date(this.weekValue1).getTime()
let b = new Date(this.weekValue2).getTime()
if (a > b) {
this.$modal.msgError('结束时间不能早于开始时间,请重新选择')
this.weekValue2 = null
return false
}
if (b - a > 167*24*3600000) {
this.$modal.msgError('最大时间范围为24周请重新选择')
this.weekValue2 = null
return false
}
}
},
//
search() {
if (!this.queryParams.timeDim) {
this.$modal.msgError('请选择时间维度')
return false
}
switch (this.queryParams.timeDim) {
case '1':
if (this.timeValue && this.timeValue.length > 0) {
this.queryParams.startTime = this.timeValue[0]
this.queryParams.endTime = this.timeValue[1] //
} else {
this.$modal.msgError('时间范围不能为空')
return false
}
break
case '2':
if (this.dateValue && this.dateValue.length > 0) {
this.queryParams.startTime = this.dateValue[0]
this.queryParams.endTime = this.dateValue[1] + 86399000 // 23:59:59
} else {
this.$modal.msgError('日范围不能为空')
return false
}
break
case '3':
if (this.weekValue1 && this.weekValue2) {
let a = moment(this.weekValue1).day(0).format('YYYY-MM-DD') + ' 00:00:00'
let b = moment(this.weekValue2).day(6).format('YYYY-MM-DD') + ' 23:59:59'
this.queryParams.startTime = new Date(a).getTime()
this.queryParams.endTime = new Date(b).getTime()
} else {
this.$modal.msgError('周范围不能为空')
return false
}
break
case '4'://
if (this.monthValue && this.monthValue.length > 0) {
this.queryParams.startTime = this.monthValue[0]
this.queryParams.endTime = this.transformTime(this.monthValue[1])
} else {
this.$modal.msgError('月范围不能为空')
return false
}
break
default://
if (this.yearValue1 && this.yearValue2) {
if (this.yearValue2 < this.yearValue1) {
this.$modal.msgError('结束时间不能早于开始时间')
return false
} else {
this.queryParams.startTime = this.yearValue1
this.queryParams.endTime = this.transformYear(this.yearValue2)
}
} else {
this.$modal.msgError('年范围不能为空')
return false
}
}
this.queryParams.startTime = this.queryParams.startTime + ''
this.queryParams.endTime = this.queryParams.endTime + ''
this.$emit('submit', this.queryParams)
},
transformTime(timeStamp) {//
let year = moment(timeStamp).format('YYYY')
let month = moment(timeStamp).format('MM')
let newData = moment(new Date(year,month,0)).format('YYYY-MM-DD') + ' 23:59:59'
let value = new Date(newData).getTime()
return value
},
transformYear(timeStamp) {//
let year = moment(timeStamp).format('YYYY')
let newData = year+'-12-31 23:59:59'
let value = new Date(newData).getTime()
return value
}
}
}
</script>
<style lang='scss'>
/* 级联选择器 */
.cascaderParent .el-cascader-panel .el-scrollbar:first-child .el-radio {
display: none;
}
/* 时间整点 */
.noneMinute .el-time-spinner__wrapper {
width: 100%;
}
.noneMinute .el-scrollbar:nth-of-type(2) {
display: none;
}
.demo-form-inline {
.el-date-editor .el-range__icon {
font-size: 16px;
color: #0B58FF;
}
.el-input__prefix .el-icon-date {
font-size: 16px;
color: #0B58FF;
}
}
</style>
<style lang="scss" scoped>
.searchBarBox .foldClass {
position: absolute;
top: 14px;
right: 0;
cursor: pointer;
font-size: 12px;
color:#0B58FF;
}
.searchBarBox .foldClass .iconfont {
font-size: 14px;
}
.divHeight {
height: 45px;
overflow: hidden;
}
.separateStyle {
display: inline-block;
width: 1px;
height: 24px;
background: #E8E8E8;
vertical-align: middle;
margin: 0 10px;
}
</style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> <div class="app-container vocHis">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<search-bar <search-bar
:formConfigs="formConfig" :formConfigs="formConfig"
@ -13,6 +13,7 @@
:table-props="tableProps" :table-props="tableProps"
:table-data="list" :table-data="list"
:max-height="tableH" :max-height="tableH"
:row-class-name="tableRowClassName"
/> />
<pagination <pagination
:page.sync="queryParams.pageNo" :page.sync="queryParams.pageNo"
@ -72,14 +73,15 @@ export default {
type: 'select', type: 'select',
label: '指标名称', label: '指标名称',
selectOptions: [], selectOptions: [],
param: 'checkId' param: 'checkId',
filterable: true
}, },
{ {
type: 'datePicker', type: 'datePicker',
label: '时间', label: '时间',
dateType: 'datetimerange', dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss', format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: "yyyy-MM-dd HH:mm:ss", valueFormat: "timestamp",
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
@ -94,10 +96,10 @@ export default {
color: 'primary' color: 'primary'
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'separate' : '', type: this.$auth.hasPermi('base:voc:export') ? 'separate' : '',
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'button' : '', type: this.$auth.hasPermi('base:voc:export') ? 'button' : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
color: 'primary', color: 'primary',
@ -110,7 +112,8 @@ export default {
pageSize: 20, pageSize: 20,
checkId: null, checkId: null,
checkType: 3, checkType: 3,
checkTime: [], startTime: null,
endTime: null
}, },
tableProps, tableProps,
list: [], list: [],
@ -122,11 +125,11 @@ export default {
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260) this.tableH = this.tableHeight(260)
}) })
let end = moment().format('YYYY-MM-DD 23:59:59') let end = moment(moment().format('YYYY-MM-DD 23:59:59')).valueOf()
let start = moment().format('YYYY-MM-DD 00:00:00') let start = moment(moment().format('YYYY-MM-DD 00:00:00')).valueOf()
this.formConfig[1].defaultSelect = [start, end] this.formConfig[1].defaultSelect = [start, end]
this.queryParams.checkTime[0] = start this.queryParams.startTime = start
this.queryParams.checkTime[1] = end this.queryParams.endTime = end
this.getSelectList() this.getSelectList()
this.getList() this.getList()
}, },
@ -134,8 +137,8 @@ export default {
buttonClick(val) { buttonClick(val) {
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
this.queryParams.checkId = val.checkId this.queryParams.checkId = val.checkId
this.queryParams.checkTime[0] = val.timeVal ? val.timeVal[0] : null this.queryParams.startTime = val.timeVal ? val.timeVal[0] : null
this.queryParams.checkTime[1] = val.timeVal ? val.timeVal[1] : null this.queryParams.endTime = val.timeVal ? val.timeVal[1] : null
if (val.btnName === 'search') { if (val.btnName === 'search') {
this.getList() this.getList()
} else { } else {
@ -161,7 +164,22 @@ export default {
console.log(res) console.log(res)
this.formConfig[0].selectOptions = res.data.list || [] this.formConfig[0].selectOptions = res.data.list || []
}) })
},
tableRowClassName({row, rowIndex}) {
console.log(row)
if (row.markRed) {
return 'warning-row'
}else {
return ''
}
} }
} }
} }
</script> </script>
<style lang='scss'>
.vocHis {
.el-table .warning-row {
background: #fee1e1;
}
}
</style>

View File

@ -23,18 +23,32 @@
<span class="blueTitle"></span> <span class="blueTitle"></span>
<span>检测指标趋势图</span> <span>检测指标趋势图</span>
</div> </div>
<!-- 搜索工作栏 -->
<search-area @submit="getTrend"/>
<line-chart :chartData="chartData" v-show='Object.keys(chartData).length !== 0' :timeDim="queryParams.timeDim"/>
<!-- 没有数据 -->
<div class="no-data-bg" v-show='Object.keys(chartData).length === 0'></div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { environmentalCheckRealtime } from '@/api/safetyEnvironmental/environmental' import { environmentalCheckRealtime, environmentalCheckRealtimeTrend } from '@/api/safetyEnvironmental/environmental'
import LineChart from './../../components/lineChart'
import SearchArea from './../../components/searchArea'
export default { export default {
name: 'Voc', name: 'Voc',
data(){ data(){
return { return {
realtimeList:[] realtimeList:[],
queryParams:{
checkType: 1,
timeDim: null,
timeRange: []
},
chartData: {}
} }
}, },
components: { LineChart, SearchArea },
mounted() { mounted() {
this.getMsg() this.getMsg()
}, },
@ -44,6 +58,20 @@ export default {
console.log(res) console.log(res)
this.realtimeList = res.data || [] this.realtimeList = res.data || []
}) })
},
getTrend(params) {
console.log(params)
this.queryParams.timeDim = params.timeDim
this.queryParams.timeRange[0] = params.startTime
this.queryParams.timeRange[1] = params.endTime
environmentalCheckRealtimeTrend({...this.queryParams}).then(res => {
console.log(res)
if (res.code === 0) {
this.chartData = res.data
} else {
this.chartData = {}
}
})
} }
} }
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> <div class="app-container wasteGasHis">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<search-bar <search-bar
:formConfigs="formConfig" :formConfigs="formConfig"
@ -13,6 +13,7 @@
:table-props="tableProps" :table-props="tableProps"
:table-data="list" :table-data="list"
:max-height="tableH" :max-height="tableH"
:row-class-name="tableRowClassName"
/> />
<pagination <pagination
:page.sync="queryParams.pageNo" :page.sync="queryParams.pageNo"
@ -72,14 +73,15 @@ export default {
type: 'select', type: 'select',
label: '指标名称', label: '指标名称',
selectOptions: [], selectOptions: [],
param: 'checkId' param: 'checkId',
filterable: true
}, },
{ {
type: 'datePicker', type: 'datePicker',
label: '时间', label: '时间',
dateType: 'datetimerange', dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss', format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: "yyyy-MM-dd HH:mm:ss", valueFormat: "timestamp",
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
@ -94,10 +96,10 @@ export default {
color: 'primary' color: 'primary'
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'separate' : '', type: this.$auth.hasPermi('base:waste-gas:export') ? 'separate' : '',
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'button' : '', type: this.$auth.hasPermi('base:waste-gas:export') ? 'button' : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
color: 'primary', color: 'primary',
@ -110,7 +112,8 @@ export default {
pageSize: 20, pageSize: 20,
checkId: null, checkId: null,
checkType: 2, checkType: 2,
checkTime: [], startTime: null,
endTime: null
}, },
tableProps, tableProps,
list: [], list: [],
@ -122,11 +125,11 @@ export default {
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260) this.tableH = this.tableHeight(260)
}) })
let end = moment().format('YYYY-MM-DD 23:59:59') let end = moment(moment().format('YYYY-MM-DD 23:59:59')).valueOf()
let start = moment().format('YYYY-MM-DD 00:00:00') let start = moment(moment().format('YYYY-MM-DD 00:00:00')).valueOf()
this.formConfig[1].defaultSelect = [start, end] this.formConfig[1].defaultSelect = [start, end]
this.queryParams.checkTime[0] = start this.queryParams.startTime = start
this.queryParams.checkTime[1] = end this.queryParams.endTime = end
this.getSelectList() this.getSelectList()
this.getList() this.getList()
}, },
@ -134,15 +137,15 @@ export default {
buttonClick(val) { buttonClick(val) {
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
this.queryParams.checkId = val.checkId this.queryParams.checkId = val.checkId
this.queryParams.checkTime[0] = val.timeVal ? val.timeVal[0] : null this.queryParams.startTime = val.timeVal ? val.timeVal[0] : null
this.queryParams.checkTime[1] = val.timeVal ? val.timeVal[1] : null this.queryParams.endTime = val.timeVal ? val.timeVal[1] : null
if (val.btnName === 'search') { if (val.btnName === 'search') {
this.getList() this.getList()
} else { } else {
this.$modal.confirm('是否确认导出').then(() => { this.$modal.confirm('是否确认导出').then(() => {
return environmentalCheckRecordExport({...this.queryParams}); return environmentalCheckRecordExport({...this.queryParams});
}).then(response => { }).then(response => {
this.$download.excel(response, '废检测历史记录.xls'); this.$download.excel(response, '废检测历史记录.xls');
}).catch(() => {}) }).catch(() => {})
} }
}, },
@ -161,7 +164,22 @@ export default {
console.log(res) console.log(res)
this.formConfig[0].selectOptions = res.data.list || [] this.formConfig[0].selectOptions = res.data.list || []
}) })
},
tableRowClassName({row, rowIndex}) {
console.log(row)
if (row.markRed) {
return 'warning-row'
}else {
return ''
}
} }
} }
} }
</script> </script>
<style lang='scss'>
.wasteGasHis {
.el-table .warning-row {
background: #fee1e1;
}
}
</style>

View File

@ -23,18 +23,32 @@
<span class="blueTitle"></span> <span class="blueTitle"></span>
<span>检测指标趋势图</span> <span>检测指标趋势图</span>
</div> </div>
<!-- 搜索工作栏 -->
<search-area @submit="getTrend"/>
<line-chart :chartData="chartData" v-show='Object.keys(chartData).length !== 0' :timeDim="queryParams.timeDim"/>
<!-- 没有数据 -->
<div class="no-data-bg" v-show='Object.keys(chartData).length === 0'></div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { environmentalCheckRealtime } from '@/api/safetyEnvironmental/environmental' import { environmentalCheckRealtime, environmentalCheckRealtimeTrend } from '@/api/safetyEnvironmental/environmental'
import LineChart from './../../components/lineChart'
import SearchArea from './../../components/searchArea'
export default { export default {
name: 'WasteGasManagement', name: 'WasteGasManagement',
data(){ data(){
return { return {
realtimeList:[] realtimeList:[],
queryParams:{
checkType: 2,
timeDim: null,
timeRange: []
},
chartData: {}
} }
}, },
components: { LineChart, SearchArea },
mounted() { mounted() {
this.getMsg() this.getMsg()
}, },
@ -44,6 +58,20 @@ export default {
console.log(res) console.log(res)
this.realtimeList = res.data || [] this.realtimeList = res.data || []
}) })
},
getTrend(params) {
console.log(params)
this.queryParams.timeDim = params.timeDim
this.queryParams.timeRange[0] = params.startTime
this.queryParams.timeRange[1] = params.endTime
environmentalCheckRealtimeTrend({...this.queryParams}).then(res => {
console.log(res)
if (res.code === 0) {
this.chartData = res.data
} else {
this.chartData = {}
}
})
} }
} }
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> <div class="app-container wasteWaterHis">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<search-bar <search-bar
:formConfigs="formConfig" :formConfigs="formConfig"
@ -13,6 +13,7 @@
:table-props="tableProps" :table-props="tableProps"
:table-data="list" :table-data="list"
:max-height="tableH" :max-height="tableH"
:row-class-name="tableRowClassName"
/> />
<pagination <pagination
:page.sync="queryParams.pageNo" :page.sync="queryParams.pageNo"
@ -72,14 +73,15 @@ export default {
type: 'select', type: 'select',
label: '指标名称', label: '指标名称',
selectOptions: [], selectOptions: [],
param: 'checkId' param: 'checkId',
filterable: true
}, },
{ {
type: 'datePicker', type: 'datePicker',
label: '检测时间', label: '检测时间',
dateType: 'datetimerange', dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss', format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: "yyyy-MM-dd HH:mm:ss", valueFormat: "timestamp",
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
@ -94,10 +96,10 @@ export default {
color: 'primary' color: 'primary'
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'separate' : '', type: this.$auth.hasPermi('base:waste-water:export') ? 'separate' : '',
}, },
{ {
type: this.$auth.hasPermi('base:order-manage:create') ? 'button' : '', type: this.$auth.hasPermi('base:waste-water:export') ? 'button' : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
color: 'primary', color: 'primary',
@ -110,7 +112,8 @@ export default {
pageSize: 20, pageSize: 20,
checkId: null, checkId: null,
checkType: 1, checkType: 1,
// checkTime: [], startTime: null,
endTime: null
}, },
tableProps, tableProps,
list: [], list: [],
@ -122,11 +125,11 @@ export default {
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260) this.tableH = this.tableHeight(260)
}) })
let end = moment().format('YYYY-MM-DD 23:59:59') let end = moment(moment().format('YYYY-MM-DD 23:59:59')).valueOf()
let start = moment().format('YYYY-MM-DD 00:00:00') let start = moment(moment().format('YYYY-MM-DD 00:00:00')).valueOf()
this.formConfig[1].defaultSelect = [start, end] this.formConfig[1].defaultSelect = [start, end]
this.queryParams.checkTime[0] = start this.queryParams.startTime = start
this.queryParams.checkTime[1] = end this.queryParams.endTime = end
this.getSelectList() this.getSelectList()
this.getList() this.getList()
}, },
@ -134,12 +137,8 @@ export default {
buttonClick(val) { buttonClick(val) {
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
this.queryParams.checkId = val.checkId this.queryParams.checkId = val.checkId
// this.queryParams.checkTime[0] = val.timeVal ? val.timeVal[0] : null this.queryParams.startTime = val.timeVal ? val.timeVal[0] : null
// this.queryParams.checkTime[1] = val.timeVal ? val.timeVal[1] : null this.queryParams.endTime = val.timeVal ? val.timeVal[1] : null
// this.queryParams.checkTime[0] = 1701014400000
// this.queryParams.checkTime[1] = 1701100800000
this.queryParams.startTime = 1701014400000
this.queryParams.endTime = 1701100800000
if (val.btnName === 'search') { if (val.btnName === 'search') {
this.getList() this.getList()
} else { } else {
@ -165,7 +164,22 @@ export default {
console.log(res) console.log(res)
this.formConfig[0].selectOptions = res.data.list || [] this.formConfig[0].selectOptions = res.data.list || []
}) })
},
tableRowClassName({row, rowIndex}) {
console.log(row)
if (row.markRed) {
return 'warning-row'
}else {
return ''
}
} }
} }
} }
</script> </script>
<style lang='scss'>
.wasteWaterHis {
.el-table .warning-row {
background: #fee1e1;
}
}
</style>

View File

@ -22,18 +22,17 @@
<span>检测指标趋势图</span> <span>检测指标趋势图</span>
</div> </div>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<search-bar <search-area @submit="getTrend"/>
:formConfigs="formConfig" <line-chart :chartData="chartData" v-show='Object.keys(chartData).length !== 0' :timeDim="queryParams.timeDim"/>
ref="searchBarForm" <!-- 没有数据 -->
@headBtnClick="buttonClick" <div class="no-data-bg" v-show='Object.keys(chartData).length === 0'></div>
/>
<line-chart />
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { environmentalCheckRealtime, environmentalCheckRealtimeTrend } from '@/api/safetyEnvironmental/environmental' import { environmentalCheckRealtime, environmentalCheckRealtimeTrend } from '@/api/safetyEnvironmental/environmental'
import LineChart from './components/lineChart' import LineChart from './../../components/lineChart'
import SearchArea from './../../components/searchArea'
export default { export default {
name: 'WasteWaterManagement', name: 'WasteWaterManagement',
data(){ data(){
@ -44,39 +43,10 @@ export default {
timeDim: null, timeDim: null,
timeRange: [] timeRange: []
}, },
formConfig: [ chartData: {}
{
type: 'select',
label: '时间维度',
selectOptions: this.getDictDatas(this.DICT_TYPE.TIME_DIM),
labelField: 'label',
valueField: 'value',
param: 'timeDim',
width: 100
},
{
type: 'datePicker',
label: '时间范围',
dateType: 'daterange',
format: 'yyyy-MM-dd',
valueFormat: "yyyy-MM-dd",
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 250
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
}
],
} }
}, },
components: { LineChart }, components: { LineChart, SearchArea },
mounted() { mounted() {
this.getMsg() this.getMsg()
}, },
@ -87,9 +57,18 @@ export default {
this.realtimeList = res.data || [] this.realtimeList = res.data || []
}) })
}, },
getTrend() { getTrend(params) {
console.log(params)
this.queryParams.timeDim = params.timeDim
this.queryParams.timeRange[0] = params.startTime
this.queryParams.timeRange[1] = params.endTime
environmentalCheckRealtimeTrend({...this.queryParams}).then(res => { environmentalCheckRealtimeTrend({...this.queryParams}).then(res => {
console.log(res) console.log(res)
if (res.code === 0) {
this.chartData = res.data
} else {
this.chartData = {}
}
}) })
} }
} }