636 lines
18 KiB
Vue
636 lines
18 KiB
Vue
|
|
<template>
|
|||
|
|
<section class="realtime-wrapper">
|
|||
|
|
|
|||
|
|
<el-form id="searchForm" :model="filters" label-width="80px">
|
|||
|
|
<el-row :gutter="5" class="search-row">
|
|||
|
|
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
|
|||
|
|
<el-form-item :label="$t('remote.eqpt') + ':'">
|
|||
|
|
<el-input v-model="devAllName" readonly :placeholder="$t('remote.pleaseInput')" class="input-with-select">
|
|||
|
|
<el-button slot="append" icon="el-icon-search" :loading="dev_loading" @click="openTreeDialog" />
|
|||
|
|
</el-input>
|
|||
|
|
</el-form-item>
|
|||
|
|
</el-col>
|
|||
|
|
<el-col :xs="12" :sm="9" :md="9" :lg="9" :xl="9">
|
|||
|
|
<el-button
|
|||
|
|
:loading="load_data"
|
|||
|
|
type="primary"
|
|||
|
|
icon="el-icon-search"
|
|||
|
|
@click="on_refresh"
|
|||
|
|
>{{ $t('remote.query') }}</el-button>
|
|||
|
|
|
|||
|
|
</el-col>
|
|||
|
|
<el-col :xs="12" :sm="9" :md="9" :lg="9" :xl="9" class="btn-box">
|
|||
|
|
<el-button
|
|||
|
|
v-permission="['remoteControl:command:batchDistribution']"
|
|||
|
|
type="primary"
|
|||
|
|
icon="el-icon-bottom"
|
|||
|
|
:loading="isMoreLoading"
|
|||
|
|
class="reset-btn"
|
|||
|
|
@click="handleMoreOrder"
|
|||
|
|
>{{ $t('remote.batchdelivery') }}</el-button>
|
|||
|
|
<el-button
|
|||
|
|
v-permission="['remoteControl:command:export']"
|
|||
|
|
type="primary"
|
|||
|
|
icon="el-icon-upload2"
|
|||
|
|
class="reset-btn"
|
|||
|
|
:loading="export_loading"
|
|||
|
|
@click="handleExport"
|
|||
|
|
>{{ $t('remote.export') }}</el-button>
|
|||
|
|
</el-col>
|
|||
|
|
</el-row>
|
|||
|
|
</el-form>
|
|||
|
|
|
|||
|
|
<div class="table-wrapper">
|
|||
|
|
<el-table
|
|||
|
|
ref="alarmtable"
|
|||
|
|
v-loading="load_data"
|
|||
|
|
:row-style="getRowStyle"
|
|||
|
|
header-align="center"
|
|||
|
|
:height="$setAutoTableHeight(46,searchHeight)"
|
|||
|
|
:data="table_data"
|
|||
|
|
:element-loading-text="loadingText"
|
|||
|
|
style="width: 100%"
|
|||
|
|
@selection-change="handleSelectionChange"
|
|||
|
|
>
|
|||
|
|
<el-table-column
|
|||
|
|
type="selection"
|
|||
|
|
width="50"
|
|||
|
|
align="center"
|
|||
|
|
/>
|
|||
|
|
<el-table-column
|
|||
|
|
type="index"
|
|||
|
|
:index="tableRowClassName"
|
|||
|
|
:label="$t('remote.ordinal')"
|
|||
|
|
width="65"
|
|||
|
|
align="center"
|
|||
|
|
/>
|
|||
|
|
<el-table-column prop="deviceName" width="100" :label="$t('remote.eqpt')" />
|
|||
|
|
<el-table-column prop="colName" width="300" :label="$t('remote.chineseName')" show-overflow-tooltip />
|
|||
|
|
<el-table-column prop="col" width="100" :label="$t('remote.englishName')" show-overflow-tooltip />
|
|||
|
|
<el-table-column prop="maxValue" :label="$t('remote.maxValue')" />
|
|||
|
|
<el-table-column prop="minValue" :label="$t('remote.minValue')" />
|
|||
|
|
<el-table-column prop="updateTime" :label="$t('remote.upDate')" width="150" />
|
|||
|
|
<el-table-column prop="value" :label="$t('remote.nowValue')">
|
|||
|
|
<template slot-scope="scope">
|
|||
|
|
{{ scope.row.value }}{{ scope.row.unit ? scope.row.unit : '' }}
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
<el-table-column width="150" :label="$t('remote.yhxgz')">
|
|||
|
|
<template slot-scope="scope">
|
|||
|
|
<el-input v-model="scope.row.modifyValue" type="number" placeholder="请输入" />
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
<!-- <el-table-column width="180" label="站内接入点">
|
|||
|
|
<template slot-scope="scope">
|
|||
|
|
<el-select v-model="scope.row.sn" placeholder="请输入" style="width:100%" @change="getHeartbeat(scope.row.sn)">
|
|||
|
|
<el-option
|
|||
|
|
v-for="item in snList"
|
|||
|
|
:key="item.id"
|
|||
|
|
:label="item.sn"
|
|||
|
|
:value="item.sn"
|
|||
|
|
/>
|
|||
|
|
</el-select>
|
|||
|
|
</template>
|
|||
|
|
</el-table-column> -->
|
|||
|
|
<el-table-column :label="$t('remote.operate')" width="120">
|
|||
|
|
<template slot-scope="scope">
|
|||
|
|
<el-button
|
|||
|
|
v-permission="['remoteControl:command:singleDistribution']"
|
|||
|
|
type="text"
|
|||
|
|
icon="el-icon-bottom"
|
|||
|
|
@click="handleOrder(scope.row,scope.$index)"
|
|||
|
|
>{{ $t('remote.issued') }}</el-button>
|
|||
|
|
<el-button
|
|||
|
|
type="text"
|
|||
|
|
icon="el-icon-refresh"
|
|||
|
|
@click="handleRefresh(scope.row,scope.$index)"
|
|||
|
|
>{{ $t('remote.refresh') }}</el-button>
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
</el-table>
|
|||
|
|
<Pagingbar>
|
|||
|
|
<div slot="page">
|
|||
|
|
<el-pagination
|
|||
|
|
:current-page="currentPage"
|
|||
|
|
:page-size="pageSize"
|
|||
|
|
:page-sizes="pageSizes"
|
|||
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|||
|
|
:total="total"
|
|||
|
|
@current-change="handleCurrentChange"
|
|||
|
|
@size-change="handleSizeChange"
|
|||
|
|
/>
|
|||
|
|
</div>
|
|||
|
|
</Pagingbar>
|
|||
|
|
<TreeDialog ref="treeDialog" :visible="treeVisible" :tree-changedata="srcId" :tree-props="treeProps" check-strictly :title="$t('remote.eqptType')" @confirm="getTreeId" @close="closeTreeDialog" />
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import { pageSize, pageSizes } from '@/config'
|
|||
|
|
import Pagingbar from '@/components/Pagingbar'
|
|||
|
|
import TreeDialog from '@/components/TreeDialog'
|
|||
|
|
import { handleDownExcel } from '@/utils'
|
|||
|
|
import { GetTreeVirtualDevices } from '@/api/surveillance/energy-storage/index'
|
|||
|
|
import { GetPointList, GetSNBystationId, GetObjById, SetOrderIssued, GetOrderProgressBar, GetHeartbeat, beforeOrderSend } from '@/api/monitor/integrated-cabinet'
|
|||
|
|
export default {
|
|||
|
|
components: { Pagingbar, TreeDialog },
|
|||
|
|
props: {},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
filters: {
|
|||
|
|
stationId: '',
|
|||
|
|
srcId: null
|
|||
|
|
},
|
|||
|
|
srcId: [],
|
|||
|
|
snList: [],
|
|||
|
|
multipleSelection: [],
|
|||
|
|
table_data: [],
|
|||
|
|
// 当前页码
|
|||
|
|
currentPage: 1,
|
|||
|
|
// 数据总条目
|
|||
|
|
total: 0,
|
|||
|
|
// 每页显示多少条数据
|
|||
|
|
pageSize: pageSize,
|
|||
|
|
pageSizes: pageSizes,
|
|||
|
|
// 请求时的loading效果
|
|||
|
|
load_data: false,
|
|||
|
|
isMoreLoading: false,
|
|||
|
|
interval: null,
|
|||
|
|
moreInterval: null,
|
|||
|
|
orderError: [],
|
|||
|
|
loadingText: 'Loading...',
|
|||
|
|
cascaderKey: 0,
|
|||
|
|
props: { label: 'name', value: 'srcId', children: 'children', emitPath: false },
|
|||
|
|
stationNormalizer(node) {
|
|||
|
|
return {
|
|||
|
|
id: node.srcId,
|
|||
|
|
label: node.name,
|
|||
|
|
children:
|
|||
|
|
node.children && node.children.length > 0
|
|||
|
|
? node.children
|
|||
|
|
: undefined
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
treeProps: {
|
|||
|
|
id: 'srcId',
|
|||
|
|
label: 'name',
|
|||
|
|
children: 'children',
|
|||
|
|
disabled: (data, node) => {
|
|||
|
|
if (data.category === 1 || data.category === 2) {
|
|||
|
|
return true
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
devAllName: '',
|
|||
|
|
treeVisible: false,
|
|||
|
|
dev_loading: false,
|
|||
|
|
export_loading: false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
stations: function() {
|
|||
|
|
return this.$store.getters.stations || []
|
|||
|
|
},
|
|||
|
|
currentStation() {
|
|||
|
|
return this.$store.getters.currentStation || undefined
|
|||
|
|
},
|
|||
|
|
searchHeight() {
|
|||
|
|
return this.$store.getters.searchHeight
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
watch: {
|
|||
|
|
// stations: {
|
|||
|
|
// handler: function(stations) {
|
|||
|
|
// if (stations.length > 0) {
|
|||
|
|
// this.filters.stationId = this.stations[0].id
|
|||
|
|
// this.get_table_data()
|
|||
|
|
// this.getFindIntegratedCabinets()
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
// },
|
|||
|
|
currentStation: {
|
|||
|
|
async handler(val) {
|
|||
|
|
if (val && val.id) {
|
|||
|
|
this.filters.stationId = val.id
|
|||
|
|
this.currentPage = 1
|
|||
|
|
await this.getFindIntegratedCabinets()
|
|||
|
|
this.get_table_data()
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
deep: true
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
async created() {
|
|||
|
|
if (this.currentStation.id) {
|
|||
|
|
this.filters.stationId = this.currentStation.id
|
|||
|
|
await this.getFindIntegratedCabinets()
|
|||
|
|
|
|||
|
|
this.beforeOrderSend()
|
|||
|
|
|
|||
|
|
// const isOffLine = await this.getHeartbeat()
|
|||
|
|
// if (isOffLine) {
|
|||
|
|
// this.get_table_data()
|
|||
|
|
// }
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
destroyed() {
|
|||
|
|
clearInterval(self.interval)
|
|||
|
|
clearInterval(self.moreInterval)
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
findItem(tree, srcId) {
|
|||
|
|
if (tree.srcId === srcId) {
|
|||
|
|
return tree
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (tree.children && tree.children.length > 0) {
|
|||
|
|
for (const child of tree.children) {
|
|||
|
|
const result = this.findItem(child, srcId)
|
|||
|
|
if (result) {
|
|||
|
|
return result
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return null
|
|||
|
|
},
|
|||
|
|
getTreeId(val, name) {
|
|||
|
|
// console.log(val, name)
|
|||
|
|
this.devAllName = name
|
|||
|
|
this.filters.srcId = val
|
|||
|
|
},
|
|||
|
|
closeTreeDialog() {
|
|||
|
|
this.treeVisible = false
|
|||
|
|
},
|
|||
|
|
openTreeDialog() {
|
|||
|
|
this.treeVisible = true
|
|||
|
|
},
|
|||
|
|
async beforeOrderSend() {
|
|||
|
|
const params = {
|
|||
|
|
stationId: this.filters.stationId
|
|||
|
|
}
|
|||
|
|
const res = await beforeOrderSend(params)
|
|||
|
|
this.filters.srcId = res.data.srcId
|
|||
|
|
const r = this.findItem(this.srcId[0], this.filters.srcId)
|
|||
|
|
this.$nextTick(() => {
|
|||
|
|
this.$refs.treeDialog.currentNode = this.filters.srcId
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
this.devAllName = r.name
|
|||
|
|
this.get_table_data()
|
|||
|
|
},
|
|||
|
|
tableRowClassName(index) {
|
|||
|
|
return (this.currentPage - 1) * this.pageSize + index + 1
|
|||
|
|
},
|
|||
|
|
getRowStyle(row) {
|
|||
|
|
const ishas = this.orderError.includes(row.row.col)
|
|||
|
|
if (ishas) {
|
|||
|
|
return {
|
|||
|
|
color: 'red'
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
return {
|
|||
|
|
color: '#ffffff'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
async getHeartbeat() {
|
|||
|
|
this.$forceUpdate()
|
|||
|
|
const params = {
|
|||
|
|
stationId: this.filters.stationId,
|
|||
|
|
srcId: this.filters.srcId
|
|||
|
|
}
|
|||
|
|
const res = await GetHeartbeat(params)
|
|||
|
|
if (res.data.heartbeatStatus === 0) {
|
|||
|
|
this.$message.warning(res.data.msg)
|
|||
|
|
return false
|
|||
|
|
} else {
|
|||
|
|
return true
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
handleExport() {
|
|||
|
|
this.export_loading = true
|
|||
|
|
const params = {
|
|||
|
|
isSave: 1,
|
|||
|
|
stationId: this.filters.stationId,
|
|||
|
|
srcId: this.filters.srcId,
|
|||
|
|
title: this.$t('remote.mlxf')
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
handleDownExcel('/business/point/exportExcel', params, (callback) => {
|
|||
|
|
this.export_loading = false
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
handleSizeChange(val) {
|
|||
|
|
this.currentPage = 1
|
|||
|
|
this.pageSize = val
|
|||
|
|
this.get_table_data()
|
|||
|
|
},
|
|||
|
|
// 页码选择
|
|||
|
|
handleCurrentChange(val) {
|
|||
|
|
this.currentPage = val
|
|||
|
|
this.get_table_data()
|
|||
|
|
},
|
|||
|
|
// 切换电站
|
|||
|
|
handleChangeStation() {
|
|||
|
|
this.getFindIntegratedCabinets()
|
|||
|
|
// this.getSNBystationId()
|
|||
|
|
},
|
|||
|
|
// 刷新
|
|||
|
|
on_refresh() {
|
|||
|
|
this.currentPage = 1
|
|||
|
|
this.get_table_data()
|
|||
|
|
},
|
|||
|
|
// 清空查询条件
|
|||
|
|
handleSearchClear() {
|
|||
|
|
this.filters = {}
|
|||
|
|
this.filters.stationId = this.stations[0].id
|
|||
|
|
this.filters.srcId = ''
|
|||
|
|
this.handleChangeStation()
|
|||
|
|
},
|
|||
|
|
// 多选
|
|||
|
|
handleSelectionChange(val) {
|
|||
|
|
this.multipleSelection = val
|
|||
|
|
},
|
|||
|
|
// 下发
|
|||
|
|
async handleOrder(row, index) {
|
|||
|
|
const self = this
|
|||
|
|
this.orderError = []
|
|||
|
|
row.modifyValue = Number(row.modifyValue)
|
|||
|
|
if (row.modifyValue > row.maxValue || row.modifyValue < row.minValue) {
|
|||
|
|
return this.$message.warning(this.$t('remote.issuedError'))
|
|||
|
|
}
|
|||
|
|
this.load_data = true
|
|||
|
|
this.loadingText = this.$t('remote.Delivering')
|
|||
|
|
const params = {
|
|||
|
|
list: [{ ...row, stationId: self.filters.stationId }]
|
|||
|
|
}
|
|||
|
|
const res = await SetOrderIssued(params)
|
|||
|
|
if (res.data.heartbeatStatus === 0) {
|
|||
|
|
this.load_data = false
|
|||
|
|
this.$message.warning(res.data.msg)
|
|||
|
|
} else {
|
|||
|
|
this.interval = setInterval(() => {
|
|||
|
|
self.getOrderProgressBar(row, index)
|
|||
|
|
}, 500)
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 下发进度
|
|||
|
|
async getOrderProgressBar(row, index) {
|
|||
|
|
const self = this
|
|||
|
|
const params = {
|
|||
|
|
stationId: this.filters.stationId,
|
|||
|
|
srcId: this.filters.srcId
|
|||
|
|
}
|
|||
|
|
const res = await GetOrderProgressBar(params)
|
|||
|
|
if (res.data.isEnd === 1) {
|
|||
|
|
clearInterval(self.interval)
|
|||
|
|
this.load_data = false
|
|||
|
|
this.handleRefresh(row, index, true)
|
|||
|
|
self.$message.success(res.data.msg)
|
|||
|
|
} else if (res.data.isEnd === 2) {
|
|||
|
|
clearInterval(self.interval)
|
|||
|
|
this.load_data = false
|
|||
|
|
if (res.data.processList.length > 0) {
|
|||
|
|
res.data.processList.forEach(item => {
|
|||
|
|
if (!self.orderError.includes(item.col)) {
|
|||
|
|
self.orderError.push(item.col)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
self.$message.error(res.data.msg)
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 批量下发进度
|
|||
|
|
async getMoreOrderProgressBar() {
|
|||
|
|
const self = this
|
|||
|
|
const params = {
|
|||
|
|
stationId: this.filters.stationId,
|
|||
|
|
srcId: this.filters.srcId
|
|||
|
|
}
|
|||
|
|
const res = await GetOrderProgressBar(params)
|
|||
|
|
if (res.data.isEnd === 1) {
|
|||
|
|
clearInterval(self.moreInterval)
|
|||
|
|
self.isMoreLoading = false
|
|||
|
|
self.load_data = false
|
|||
|
|
// self.get_table_data()
|
|||
|
|
if (self.multipleSelection.length > 0) {
|
|||
|
|
self.multipleSelection.forEach(item => {
|
|||
|
|
const index = self.table_data.findIndex(v => {
|
|||
|
|
return v.col === item.col
|
|||
|
|
})
|
|||
|
|
self.handleRefresh(item, index, true)
|
|||
|
|
})
|
|||
|
|
} else {
|
|||
|
|
self.orderError = []
|
|||
|
|
}
|
|||
|
|
self.$message.success(res.data.msg)
|
|||
|
|
} else if (res.data.isEnd === 2) {
|
|||
|
|
clearInterval(self.moreInterval)
|
|||
|
|
self.load_data = false
|
|||
|
|
self.isMoreLoading = false
|
|||
|
|
if (res.data.processList.length > 0) {
|
|||
|
|
res.data.processList.forEach(item => {
|
|||
|
|
if (!self.orderError.includes(item.col)) {
|
|||
|
|
self.orderError.push(item.col)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
this.refershSuccessOreder()
|
|||
|
|
self.$message.error(res.data.msg)
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
refershSuccessOreder() {
|
|||
|
|
const self = this
|
|||
|
|
const successList = this.multipleSelection.filter(item => {
|
|||
|
|
return !self.orderError.includes(item.col)
|
|||
|
|
})
|
|||
|
|
successList.forEach(item => {
|
|||
|
|
const index = self.table_data.findIndex(v => {
|
|||
|
|
return v.col === item.col
|
|||
|
|
})
|
|||
|
|
self.handleRefresh(item, index, true)
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
async handleMoreOrder() {
|
|||
|
|
const self = this
|
|||
|
|
this.orderError = []
|
|||
|
|
if (this.multipleSelection.length > 0) {
|
|||
|
|
this.isMoreLoading = true
|
|||
|
|
this.multipleSelection.forEach(function(item) {
|
|||
|
|
item.stationId = self.filters.stationId
|
|||
|
|
})
|
|||
|
|
const params = {
|
|||
|
|
list: this.multipleSelection
|
|||
|
|
}
|
|||
|
|
const res = await SetOrderIssued(params)
|
|||
|
|
if (res.data.heartbeatStatus === 0) {
|
|||
|
|
this.load_data = false
|
|||
|
|
this.isMoreLoading = false
|
|||
|
|
this.$message.warning(res.data.msg)
|
|||
|
|
} else {
|
|||
|
|
this.moreInterval = setInterval(() => {
|
|||
|
|
self.getMoreOrderProgressBar()
|
|||
|
|
}, 500)
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
this.$message.warning(this.$t('remote.pleaseSelectData'))
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 查询设备
|
|||
|
|
async getFindIntegratedCabinets() {
|
|||
|
|
this.dev_loading = true
|
|||
|
|
const params = {
|
|||
|
|
stationId: this.filters.stationId
|
|||
|
|
}
|
|||
|
|
try {
|
|||
|
|
const res = await GetTreeVirtualDevices(params)
|
|||
|
|
this.srcId = res.data
|
|||
|
|
if (this.srcId.length > 0) {
|
|||
|
|
this.filters.srcId = this.srcId[0].srcId
|
|||
|
|
this.getHeartbeat()
|
|||
|
|
} else {
|
|||
|
|
this.filters.srcId = ''
|
|||
|
|
}
|
|||
|
|
} catch (error) {
|
|||
|
|
// console.log(error);
|
|||
|
|
} finally {
|
|||
|
|
this.dev_loading = false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 查询SN
|
|||
|
|
async getSNBystationId() {
|
|||
|
|
const params = {
|
|||
|
|
stationId: this.filters.stationId
|
|||
|
|
}
|
|||
|
|
const res = await GetSNBystationId(params)
|
|||
|
|
this.snList = res.data
|
|||
|
|
if (this.snList.length > 0) {
|
|||
|
|
this.getHeartbeat()
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 查询
|
|||
|
|
async handleRefresh(row, index, isRefresh) {
|
|||
|
|
const params = {
|
|||
|
|
...row,
|
|||
|
|
stationId: this.filters.stationId
|
|||
|
|
}
|
|||
|
|
const res = await GetObjById(params)
|
|||
|
|
res.data.modifyValue = res.data.value
|
|||
|
|
this.$set(this.table_data, index, res.data)
|
|||
|
|
if (!isRefresh) {
|
|||
|
|
this.orderError = []
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 获取电站数据
|
|||
|
|
async get_table_data() {
|
|||
|
|
const self = this
|
|||
|
|
this.load_data = true
|
|||
|
|
const params = {
|
|||
|
|
pageNum: self.currentPage,
|
|||
|
|
pageSize: self.pageSize,
|
|||
|
|
isSave: 1,
|
|||
|
|
stationId: self.filters.stationId,
|
|||
|
|
srcId: self.filters.srcId
|
|||
|
|
}
|
|||
|
|
const res = await GetPointList(params)
|
|||
|
|
res.data.list.forEach(row => {
|
|||
|
|
row.modifyValue = row.value
|
|||
|
|
})
|
|||
|
|
self.table_data = res.data.list
|
|||
|
|
self.total = res.data.totalRows
|
|||
|
|
self.load_data = false
|
|||
|
|
self.orderError = []
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.realtime-wrapper {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
background: rgba(4, 48, 80, 0.6);
|
|||
|
|
padding: 10px;
|
|||
|
|
box-shadow: inset 0px 2px 16px 0px rgba(0, 148, 255, 0.15);
|
|||
|
|
::v-deep .el-loading-spinner .path {
|
|||
|
|
-webkit-animation: loading-dash 1.5s ease-in-out infinite;
|
|||
|
|
animation: loading-dash 1.5s ease-in-out infinite;
|
|||
|
|
stroke-dasharray: 90, 150;
|
|||
|
|
stroke-dashoffset: 0;
|
|||
|
|
stroke-width: 4;
|
|||
|
|
stroke: #59C5DC;
|
|||
|
|
stroke-linecap: round;
|
|||
|
|
}
|
|||
|
|
.el-loading-spinner .el-loading-text {
|
|||
|
|
color: #59C5DC;
|
|||
|
|
margin: 3px 0;
|
|||
|
|
font-size: 14px;
|
|||
|
|
}
|
|||
|
|
.search-first-row {
|
|||
|
|
margin-bottom: 10px;
|
|||
|
|
}
|
|||
|
|
::v-deep .el-form-item__content {
|
|||
|
|
display: flex;
|
|||
|
|
.el-checkbox {
|
|||
|
|
margin-right: 20px;
|
|||
|
|
.el-checkbox__label {
|
|||
|
|
color: #fff;
|
|||
|
|
font-size: 15px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
.btn-box{
|
|||
|
|
text-align: right;
|
|||
|
|
}
|
|||
|
|
.reset-btn{
|
|||
|
|
|
|||
|
|
background: rgba(0, 148, 255, 0.15);
|
|||
|
|
border-color: rgba(0, 148, 255, 0.15);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
.shigu {
|
|||
|
|
padding-left: 6px;
|
|||
|
|
color: red;
|
|||
|
|
}
|
|||
|
|
.yichang {
|
|||
|
|
padding-left: 6px;
|
|||
|
|
color: #f4c304;
|
|||
|
|
}
|
|||
|
|
.yuexian {
|
|||
|
|
padding-left: 6px;
|
|||
|
|
color: #d7e707;
|
|||
|
|
}
|
|||
|
|
.bianwei {
|
|||
|
|
padding-left: 6px;
|
|||
|
|
color: #45eef5;
|
|||
|
|
}
|
|||
|
|
.gaozhi {
|
|||
|
|
padding-left: 6px;
|
|||
|
|
color: #538ff1;
|
|||
|
|
}
|
|||
|
|
.total {
|
|||
|
|
padding-left: 6px;
|
|||
|
|
color: #fff;
|
|||
|
|
}
|
|||
|
|
.trans-order {
|
|||
|
|
background: #de6822;
|
|||
|
|
border: 1px solid #de6822;
|
|||
|
|
}
|
|||
|
|
.table-wrapper {
|
|||
|
|
.main-btns {
|
|||
|
|
width: 100%;
|
|||
|
|
text-align: right;
|
|||
|
|
padding: 10px 20px;
|
|||
|
|
|
|||
|
|
button {
|
|||
|
|
color: #fff;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|