soh、alerts、met模块开发,及功能联调

This commit is contained in:
renpy 2023-07-11 14:01:49 +08:00 committed by orgin
parent 0fb8bf329a
commit 1300030e03
4 changed files with 730 additions and 1 deletions

View File

@ -39,7 +39,7 @@
</a-row>
<a-row>
<a-col :span="12" class="info-key">Spectrum Qualifier:</a-col>
<a-col :span="12" class="info-val">{{ allData.headerBlock.spectrumQualifier }}P</a-col>
<a-col :span="12" class="info-val">{{ allData.headerBlock.spectrumQualifier }}</a-col>
</a-row>
<a-row>
<a-col :span="12" class="info-key">Sample Reference Identification:</a-col>

View File

@ -0,0 +1,255 @@
<template>
<div style="height: 100%;">
<a-card :bordered="false" style="margin-left: 20px">
<search-form :items="formItems" v-model="queryParam" @search="searchQueryData">
<a-space style="float: right" class="btn-group" slot="additional">
<a-button @click="handleEdit" type="primary">
<img class="icon-edit" src="@/assets/images/global/edit.png" alt="" />
Excel
</a-button>
</a-space>
</search-form>
<custom-table
size="middle"
rowKey="sampleId"
:columns="columns"
:list="dataSource"
:pagination="ipagination"
:loading="loading"
:canSelect="false"
@change="handleTableChange"
>
<template slot="index" slot-scope="{ index }">
{{ index + 1 }}
</template>
</custom-table>
</a-card>
</div>
</template>
<script>
const columns = [
{
title: 'NO',
align: 'left',
scopedSlots: {
customRender: 'index',
},
customHeaderCell: () => {
return {
style: {
'padding-left': '26px !important',
},
}
},
customCell: () => {
return {
style: {
'padding-left': '26px !important',
},
}
},
},
{
title: 'START TIME',
align: 'left',
dataIndex: 'startTime',
},
{
title: 'END TIME',
align: 'left',
dataIndex: 'endTime',
},
{
title: 'RAINFALL',
align: 'left',
dataIndex: 'rainfall',
},
{
title: 'AVG.REL.HUMIDITY',
align: 'left',
dataIndex: 'aveHumidity',
},
{
title: 'AVG.BAR.READING',
align: 'left',
dataIndex: 'avePressure',
},
{
title: 'AVG.TEMP.',
align: 'left',
dataIndex: 'avgtemperature',
},
{
title: 'AVG.WIND.DIRECTION',
align: 'left',
dataIndex: 'aveWindDir',
},
{
title: 'AVG.WIND.SPEED',
align: 'left',
dataIndex: 'aveWindSpeed',
}
]
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { getAction } from '../../../../api/manage'
import dateFormat from '../../../../components/jeecg/JEasyCron/format-date'
export default {
name: 'menuTree',
mixins: [JeecgListMixin],
data() {
return {
isImmediate:true,
columns,
queryParam: {
startTime: dateFormat(new Date(), 'yyyy-MM-dd'),
endTime: dateFormat(new Date(), 'yyyy-MM-dd'),
stationIds: []
},
url: {
list: '/webStatistics/findMetPage',
delete: '/gardsSampleData/deleteById',
findStationList: '/webStatistics/findStationList',
findParticulatePage: '/jeecg-web-statistics/webStatistics/findParticulatePage',
},
stationList: [],
dataSource: [],
strIds: "",
allChecked:false
}
},
created() {
this.findStationList()
},
methods: {
searchQueryData() {
this.isImmediate = false
this.queryParam = {
startTime: "2023-01-01",
endTime: "2023-07-10",
stationIds: [209, 210]
}
let params = {
...this.queryParam,
pageNo: 1,
pageSize: 10
}
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.ipagination.current = res.result.current
this.ipagination.pageSize = res.result.size
this.ipagination.total = res.result.total
this.dataSource = res.result.records
}
})
},
findStationList() {
getAction(this.url.findStationList, { menuName: '' }).then((res) => {
if (res.result.length>0) {
this.stationList = res.result.map((res) => ({ label: res.stationCode, value: res.stationId }))
} else {
this.stationList=[]
}
})
},
handleSelectChange(val) {
console.log(val);
let length = this.stationList.length
if (val.length === length) {
this.allChecked = true
} else {
this.allChecked = false
}
},
handleSelectChangeAll(val) {
this.allChecked = val
if (val) {
this.queryParam.stationIds = this.stationList.map(item => item.value)
} else {
this.queryParam.stationIds =[]
}
}
},
computed: {
formItems() {
return [
{
type: 'a-input',
label: '',
name: 'search',
props: {
placeholder: 'search...',
style: {
width: '166px',
},
},
style: {
width: 'auto',
},
},
{
type: 'custom-all-select',
label: 'Stations',
name: 'stationIds',
props: {
allChecked:this.allChecked,
placeholder: 'select stations',
mode: 'multiple',
maxTagCount: 1,
options: [
...this.stationList,
],
style: {
width: '200px',
},
},
on: {
change: this.handleSelectChange,
changeAll: this.handleSelectChangeAll
},
style: {
width: 'auto',
},
},
{
label: 'Start date',
type: 'custom-date-picker',
name: 'startTime',
props: {
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
style: {
minWidth: 'auto',
width: '200px',
},
},
style: {
width: 'auto',
},
},
{
label: 'End date',
type: 'custom-date-picker',
name: 'endTime',
props: {
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
style: {
minWidth: 'auto',
width: '200px',
},
},
style: {
width: 'auto',
},
},
]
},
},
}
</script>
<style lang="less" scoped>
.icon-edit{
margin-right: 10px;
}
</style>

View File

@ -0,0 +1,239 @@
<template>
<div style="height: 100%;">
<a-card :bordered="false" style="margin-left: 20px">
<search-form :items="formItems" v-model="queryParam" @search="searchQueryData">
<a-space style="float: right" class="btn-group" slot="additional">
<a-button @click="handleEdit" type="primary">
<img class="icon-edit" src="@/assets/images/global/edit.png" alt="" />
Excel
</a-button>
</a-space>
</search-form>
<custom-table
size="middle"
rowKey="sampleId"
:columns="columns"
:list="dataSource"
:pagination="ipagination"
:loading="loading"
:canSelect="false"
@change="handleTableChange"
>
<template slot="index" slot-scope="{ index }">
{{ index + 1 }}
</template>
</custom-table>
</a-card>
</div>
</template>
<script>
const columns = [
{
title: 'NO',
align: 'left',
width:100,
scopedSlots: {
customRender: 'index',
},
customHeaderCell: () => {
return {
style: {
'padding-left': '26px !important',
},
}
},
customCell: () => {
return {
style: {
'padding-left': '26px !important',
},
}
},
},
{
title: 'TYPE',
align: 'left',
width:200,
dataIndex: 'alertType',
},
{
title: 'TIME',
align: 'left',
width:200,
dataIndex: 'time',
},
{
title: 'STATION',
align: 'left',
width:200,
dataIndex: 'stationCode',
},
{
title: 'ENTRIES',
align: 'left',
dataIndex: 'alertText',
}
]
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { getAction } from '../../../../api/manage'
import dateFormat from '../../../../components/jeecg/JEasyCron/format-date'
export default {
name: 'menuTree',
mixins: [JeecgListMixin],
data() {
return {
isImmediate:true,
columns,
queryParam: {
startTime: dateFormat(new Date(), 'yyyy-MM-dd'),
endTime: dateFormat(new Date(), 'yyyy-MM-dd'),
stationIds: []
},
url: {
list: '/webStatistics/findAlertSohPage',
delete: '/gardsSampleData/deleteById',
findStationList: '/webStatistics/findStationList',
findParticulatePage: '/jeecg-web-statistics/webStatistics/findParticulatePage',
},
stationList: [],
dataSource: [],
strIds: "",
allChecked:false
}
},
created() {
this.findStationList()
},
methods: {
searchQueryData() {
this.isImmediate = false
this.queryParam = {
startTime: "2023-01-01",
endTime: "2023-07-10",
stationIds: [209, 210]
}
let params = {
...this.queryParam,
pageNo: 1,
pageSize: 10
}
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.ipagination.current = res.result.current
this.ipagination.pageSize = res.result.size
this.ipagination.total = res.result.total
this.dataSource = res.result.records
}
})
},
findStationList() {
getAction(this.url.findStationList, { menuName: '' }).then((res) => {
if (res.result.length>0) {
this.stationList = res.result.map((res) => ({ label: res.stationCode, value: res.stationId }))
} else {
this.stationList=[]
}
})
},
handleSelectChange(val) {
console.log(val);
let length = this.stationList.length
if (val.length === length) {
this.allChecked = true
} else {
this.allChecked = false
}
},
handleSelectChangeAll(val) {
this.allChecked = val
if (val) {
this.queryParam.stationIds = this.stationList.map(item => item.value)
} else {
this.queryParam.stationIds =[]
}
}
},
computed: {
formItems() {
return [
{
type: 'a-input',
label: '',
name: 'search',
props: {
placeholder: 'search...',
style: {
width: '166px',
},
},
style: {
width: 'auto',
},
},
{
type: 'custom-all-select',
label: 'Stations',
name: 'stationIds',
props: {
allChecked:this.allChecked,
placeholder: 'select stations',
mode: 'multiple',
maxTagCount: 1,
options: [
...this.stationList,
],
style: {
width: '200px',
},
},
on: {
change: this.handleSelectChange,
changeAll: this.handleSelectChangeAll
},
style: {
width: 'auto',
},
},
{
label: 'Start date',
type: 'custom-date-picker',
name: 'startTime',
props: {
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
style: {
minWidth: 'auto',
width: '200px',
},
},
style: {
width: 'auto',
},
},
{
label: 'End date',
type: 'custom-date-picker',
name: 'endTime',
props: {
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
style: {
minWidth: 'auto',
width: '200px',
},
},
style: {
width: 'auto',
},
},
]
},
},
}
</script>
<style lang="less" scoped>
.icon-edit{
margin-right: 10px;
}
</style>

View File

@ -0,0 +1,235 @@
<template>
<div style="height: 100%;">
<a-card :bordered="false" style="margin-left: 20px">
<search-form :items="formItems" v-model="queryParam" @search="searchQueryData">
<a-space style="float: right" class="btn-group" slot="additional">
<a-button @click="handleEdit" type="primary">
<img class="icon-edit" src="@/assets/images/global/edit.png" alt="" />
Excel
</a-button>
</a-space>
</search-form>
<custom-table
size="middle"
rowKey="sampleId"
:columns="columns"
:list="dataSource"
:pagination="ipagination"
:loading="loading"
:canSelect="false"
@change="handleTableChange"
>
<template slot="index" slot-scope="{ index }">
{{ index + 1 }}
</template>
</custom-table>
</a-card>
</div>
</template>
<script>
const columns = [
{
title: 'NO',
align: 'left',
scopedSlots: {
customRender: 'index',
},
customHeaderCell: () => {
return {
style: {
'padding-left': '26px !important',
},
}
},
customCell: () => {
return {
style: {
'padding-left': '26px !important',
},
}
},
},
{
title: 'STATION',
align: 'left',
dataIndex: 'stationCode',
},
{
title: 'START TIME',
align: 'left',
dataIndex: 'startTime',
},
{
title: 'END TIME',
align: 'left',
dataIndex: 'endTime',
},
{
title: 'SID',
align: 'left',
dataIndex: 'sohId',
}
]
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { getAction } from '../../../../api/manage'
import dateFormat from '../../../../components/jeecg/JEasyCron/format-date'
export default {
name: 'menuTree',
mixins: [JeecgListMixin],
data() {
return {
isImmediate:true,
columns,
queryParam: {
startTime: dateFormat(new Date(), 'yyyy-MM-dd'),
endTime: dateFormat(new Date(), 'yyyy-MM-dd'),
stationIds: []
},
url: {
list: '/webStatistics/findSohPage',
delete: '/gardsSampleData/deleteById',
findStationList: '/webStatistics/findStationList',
findParticulatePage: '/jeecg-web-statistics/webStatistics/findParticulatePage',
},
stationList: [],
dataSource: [],
strIds: "",
allChecked:false
}
},
created() {
this.findStationList()
},
methods: {
searchQueryData() {
this.isImmediate = false
this.queryParam = {
startTime: "2023-01-01",
endTime: "2023-07-10",
stationIds: [209, 210]
}
let params = {
...this.queryParam,
pageNo: 1,
pageSize: 10
}
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.ipagination.current = res.result.current
this.ipagination.pageSize = res.result.size
this.ipagination.total = res.result.total
this.dataSource = res.result.records
}
})
},
findStationList() {
getAction(this.url.findStationList, { menuName: '' }).then((res) => {
if (res.result.length>0) {
this.stationList = res.result.map((res) => ({ label: res.stationCode, value: res.stationId }))
} else {
this.stationList=[]
}
})
},
handleSelectChange(val) {
console.log(val);
let length = this.stationList.length
if (val.length === length) {
this.allChecked = true
} else {
this.allChecked = false
}
},
handleSelectChangeAll(val) {
this.allChecked = val
if (val) {
this.queryParam.stationIds = this.stationList.map(item => item.value)
} else {
this.queryParam.stationIds =[]
}
}
},
computed: {
formItems() {
return [
{
type: 'a-input',
label: '',
name: 'search',
props: {
placeholder: 'search...',
style: {
width: '166px',
},
},
style: {
width: 'auto',
},
},
{
type: 'custom-all-select',
label: 'Stations',
name: 'stationIds',
props: {
allChecked:this.allChecked,
placeholder: 'select stations',
mode: 'multiple',
maxTagCount: 1,
options: [
...this.stationList,
],
style: {
width: '200px',
},
},
on: {
change: this.handleSelectChange,
changeAll: this.handleSelectChangeAll
},
style: {
width: 'auto',
},
},
{
label: 'Start date',
type: 'custom-date-picker',
name: 'startTime',
props: {
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
style: {
minWidth: 'auto',
width: '200px',
},
},
style: {
width: 'auto',
},
},
{
label: 'End date',
type: 'custom-date-picker',
name: 'endTime',
props: {
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
style: {
minWidth: 'auto',
width: '200px',
},
},
style: {
width: 'auto',
},
},
]
},
},
}
</script>
<style lang="less" scoped>
.icon-edit{
margin-right: 10px;
}
</style>