develop_cloud #1
@ -7,6 +7,13 @@ export function getDzjkHomeView(siteId) {
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
//站点首页 冲放曲线
|
||||
export function getSevenChargeData({siteId,startDate,endDate}) {
|
||||
return request({
|
||||
url: `/ems/siteMap/getSevenChargeData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
//获取pcs、实时运行头部的设备信息
|
||||
export function getRunningHeadInfo(siteId) {
|
||||
@ -86,9 +93,9 @@ export function getAmmeterDataList(siteId) {
|
||||
}
|
||||
|
||||
// 故障告警
|
||||
export function getAlarmDetailList({siteId, deviceType, alarmLevel, alarmStartTime, alarmEndTime,pageSize,pageNum}) {
|
||||
export function getAlarmDetailList({siteId, deviceId, alarmLevel, alarmStartTime, alarmEndTime,pageSize,pageNum}) {
|
||||
return request({
|
||||
url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&deviceType=${deviceType}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`,
|
||||
url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&deviceId=${deviceId}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
@ -56,19 +56,20 @@ export default {
|
||||
this.resetDate()
|
||||
this.$emit('updateDate',this.dateRange)
|
||||
},
|
||||
// 搜索
|
||||
// 搜索
|
||||
search(){
|
||||
this.$emit('updateDate',this.dateRange)
|
||||
},
|
||||
timeLine(type){
|
||||
//baseTime,maxTime 毫秒数
|
||||
let baseTime = new Date(this.dateRange[type === 'before' ? 0 : 1]).getTime(),maxTime = new Date(this.defaultDateRange[1]).getTime()
|
||||
let baseTime = type === 'before' ? new Date(this.dateRange[0]).getTime() - ( 24 * 60 * 60 * 1000) :new Date(this.dateRange[1]).getTime() + ( 24 * 60 * 60 * 1000) ,
|
||||
maxTime = new Date(this.defaultDateRange[1]).getTime()
|
||||
//updateTime 毫秒数
|
||||
let updateTime = type === 'before' ? baseTime - 7 * 24 * 60 * 60 * 1000 : baseTime + 7 * 24 * 60 * 60 * 1000
|
||||
if(type === 'next' && updateTime >= maxTime) updateTime = maxTime
|
||||
const start = formatDate(type === 'before' ? updateTime : baseTime)
|
||||
const end = formatDate(type === 'before' ? baseTime : updateTime)
|
||||
this.dateRange = [start,end]
|
||||
this.dateRange = [start,end]
|
||||
this.$emit('updateDate',this.dateRange)
|
||||
},
|
||||
}
|
||||
@ -79,6 +80,9 @@ export default {
|
||||
.time-range{
|
||||
display: flex;
|
||||
::v-deep {
|
||||
.el-range-editor--medium .el-range__icon, .el-range-editor--medium .el-range__close-icon{
|
||||
line-height: 22px;
|
||||
}
|
||||
.el-range-editor--medium.el-input__inner{
|
||||
height: 30px;
|
||||
}
|
||||
@ -89,6 +93,6 @@ export default {
|
||||
padding:3px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
@ -1,23 +1,5 @@
|
||||
import Layout from "@/layout/index.vue";
|
||||
|
||||
//todo delete 删除动态路由页面的定义 接口会传递进来
|
||||
// const ems = [
|
||||
// {
|
||||
// path: '',
|
||||
// component: Layout,
|
||||
// redirect: 'noRedirect',
|
||||
// children: [
|
||||
// {
|
||||
// path: 'zddt',
|
||||
// component: () => import('@/views/ems/zddt/index'),
|
||||
// name: 'zddt',
|
||||
// meta: { title: '站点地图', icon: 'guide' }
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
// ]
|
||||
// export default ems
|
||||
|
||||
//单站监控
|
||||
// todo 本地设置了 hidden:true,不会显示在侧边栏,需要在系统管理、菜单管理中手动添加菜单后才会展示在侧边栏
|
||||
export const dzjk=[
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
// todo delete
|
||||
import ems from './ems'//EMS管理系统routers引用
|
||||
import {dzjk} from '@/router/ems'
|
||||
|
||||
Vue.use(Router)
|
||||
@ -92,7 +90,6 @@ export const constantRoutes = [
|
||||
]
|
||||
},
|
||||
// EMS管理系统routers
|
||||
// ...ems
|
||||
...dzjk
|
||||
]
|
||||
|
||||
|
||||
@ -40,7 +40,6 @@ export default {
|
||||
this.$refs.tomePowerChart.changeSiteId()
|
||||
})
|
||||
},
|
||||
//在编辑、删除模板后更新时间配置、echart的数据?todo
|
||||
updateTimeSetting(){
|
||||
this.$refs.timeSetting.init()
|
||||
this.$refs.tomePowerChart.init()
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
<!-- 搜索栏-->
|
||||
<el-form :inline="true" class="select-container">
|
||||
<el-form-item label="设备清单">
|
||||
<el-select v-model="search.deviceType" clearable placeholder="请选择" :loading="loading" loading-text="正在加载数据">
|
||||
<el-option :label="value" :value="key" v-for="(value,key) in $store.state.ems.deviceTypeOptions" :key="key+'deviceTypeOptions'"></el-option>
|
||||
<el-select v-model="search.deviceId" clearable placeholder="请选择" :loading="loading" loading-text="正在加载数据">
|
||||
<el-option :label="item.deviceName" :value="item.deviceId" v-for="(item,key) in deviceOptions" :key="key+'deviceIdOptions'"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="告警等级">
|
||||
@ -114,6 +114,7 @@
|
||||
|
||||
<script>
|
||||
import {getAlarmDetailList} from'@/api/ems/dzjk'
|
||||
import {getDeviceList} from'@/api/ems/site'
|
||||
import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
|
||||
import { formatDate } from '@/filters/ems'
|
||||
export default {
|
||||
@ -126,6 +127,7 @@ export default {
|
||||
{name:'今日告警',id:'today'},
|
||||
{name:'历史告警',id:'history'},
|
||||
],
|
||||
deviceOptions:[],//设备列表
|
||||
pickerOptions:{
|
||||
disabledDate(time) {
|
||||
return time.getTime() > Date.now();
|
||||
@ -134,7 +136,7 @@ export default {
|
||||
defaultDateRange:[],//默认展示的时间
|
||||
dateRange:[],//alarmStartTime,alarmEndTime
|
||||
activeBtn:'today',
|
||||
search:{deviceType:'',alarmLevel:''},
|
||||
search:{deviceId:'',alarmLevel:''},
|
||||
// 表格、分页
|
||||
tableData:[],
|
||||
pageSize:10,//分页栏当前每个数据总数
|
||||
@ -186,7 +188,7 @@ export default {
|
||||
},
|
||||
// 重置
|
||||
onReset(){
|
||||
this.search={deviceType:'',alarmLevel:''}
|
||||
this.search={deviceId:'',alarmLevel:''}
|
||||
this.dateRange=[]
|
||||
this.pageNum =1//每次搜索从1开始搜索
|
||||
this.getData()
|
||||
@ -213,7 +215,7 @@ export default {
|
||||
// 获取数据
|
||||
getData(){
|
||||
this.loading=true
|
||||
const {deviceType,alarmLevel} = this.search
|
||||
const {deviceId,alarmLevel} = this.search
|
||||
const {siteId,pageNum,pageSize,activeBtn} =this
|
||||
const [alarmStartTime='',alarmEndTime='']=(this.dateRange || [])
|
||||
let start='',end = '',now =new Date()
|
||||
@ -230,12 +232,18 @@ export default {
|
||||
// end.setDate(end.getDate() - 1);
|
||||
}
|
||||
}
|
||||
getAlarmDetailList({deviceType,alarmLevel,siteId,pageSize,pageNum,alarmStartTime:formatDate(start),alarmEndTime:formatDate(end)}).then(response => {
|
||||
getAlarmDetailList({deviceId,alarmLevel,siteId,pageSize,pageNum,alarmStartTime:formatDate(start),alarmEndTime:formatDate(end)}).then(response => {
|
||||
this.tableData=response?.rows || [];
|
||||
this.totalSize = response?.total || 0
|
||||
}).finally(() => {this.loading=false})
|
||||
},
|
||||
getDeviceOptions(){
|
||||
getDeviceList(this.siteId).then(response => {
|
||||
this.deviceOptions = JSON.parse(JSON.stringify(response?.data || []))
|
||||
})
|
||||
},
|
||||
init(){
|
||||
this.getDeviceOptions()
|
||||
this.onReset()
|
||||
},
|
||||
},
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<script>
|
||||
import * as echarts from 'echarts'
|
||||
import resize from '@/mixins/ems/resize'
|
||||
import DateRangeSelect from '@/components/Ems/DateRangeSelect.vue'
|
||||
import DateRangeSelect from '@/components/Ems/DateRangeSelect/index.vue'
|
||||
import {getPcsNameList, getPowerData} from '@/api/ems/dzjk'
|
||||
|
||||
export default {
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
<script>
|
||||
import * as echarts from 'echarts'
|
||||
import resize from '@/mixins/ems/resize'
|
||||
import DateRangeSelect from '@/components/Ems/DateRangeSelect.vue'
|
||||
// import {getPcsNameList, getPowerData} from '@/api/ems/dzjk'
|
||||
import DateRangeSelect from '@/components/Ems/DateRangeSelect/index.vue'
|
||||
import {getSevenChargeData} from '@/api/ems/dzjk'
|
||||
export default {
|
||||
mixins: [resize],
|
||||
components: {DateRangeSelect},
|
||||
@ -45,11 +45,10 @@ export default {
|
||||
getWeekKData(){
|
||||
this.showLoading()
|
||||
const {siteId,timeRange}=this
|
||||
//todo delete
|
||||
this.hideLoading()
|
||||
// todo({siteId,startDate:timeRange[0],endDate:timeRange[1]}).then(response => {
|
||||
// this.setOption(response?.data || [])
|
||||
// }).finally(()=>this.hideLoading())
|
||||
getSevenChargeData({siteId,startDate:timeRange[0],endDate:timeRange[1]}).then(response => {
|
||||
this.setOption(response?.data || [])
|
||||
}).finally(()=>this.hideLoading())
|
||||
},
|
||||
init(siteId){
|
||||
//初始化 清空数据
|
||||
@ -57,7 +56,6 @@ export default {
|
||||
this.timeRange=[]
|
||||
this.deviceId=''
|
||||
this.$refs.dateRangeSelect.init()
|
||||
this.getWeekKData()
|
||||
},
|
||||
initChart() {
|
||||
this.chart = echarts.init(document.querySelector('#weekChart'))
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div v-loading="loading">
|
||||
<el-row style="background:#fff;" class="row-container">
|
||||
<el-row style="background:#fff;" class="row-container" :gutter="15">
|
||||
<el-col v-if="tableData.length>0" :xs="24" :sm="24" :lg="24">
|
||||
<alarm-table :tableData="tableData"/>
|
||||
</el-col>
|
||||
@ -37,7 +37,7 @@
|
||||
<span class="card-title">策略信息</span>
|
||||
</div>
|
||||
<div style="box-sizing: border-box; height: 250px;padding:20px 15px;" >
|
||||
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
@ -48,7 +48,7 @@
|
||||
<active-chart ref="activeChart"/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -177,5 +177,5 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
</style>
|
||||
|
||||
@ -64,5 +64,10 @@ export default {
|
||||
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
.single-square-box-container {
|
||||
min-width: 16.6666666667%;
|
||||
width: fit-content;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -62,7 +62,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="maxVoltage"
|
||||
prop="maxCellVoltageId"
|
||||
label="电池号码">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -73,7 +73,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="maxVoltage"
|
||||
prop="minCellVoltageId"
|
||||
label="电池号码">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -83,7 +83,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="maxVoltage"
|
||||
prop="maxCellTempId"
|
||||
label="电池号码">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -94,7 +94,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="maxVoltage"
|
||||
prop="minCellTempId"
|
||||
label="电池号码">
|
||||
</el-table-column>
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
<div>数据更新时间:{{pcsItem.dataUpdateTime}}</div>
|
||||
</div>
|
||||
<div class="pcs-btns">
|
||||
<el-badge :value="0" class="item">
|
||||
<el-badge :value="pcsItem.alarmNum || 0" class="item">
|
||||
<i class="el-icon-message-solid" style="font-size: 26px;color: #fff;display: block;"></i>
|
||||
</el-badge>
|
||||
</div>
|
||||
@ -92,11 +92,8 @@ export default {
|
||||
if (action === 'confirm') {
|
||||
instance.confirmButtonLoading = true;
|
||||
setTimeout(() => {
|
||||
// todo 调用接口如果关机成功 调用done方法 否则不关闭弹窗
|
||||
done();
|
||||
// setTimeout(() => {
|
||||
instance.confirmButtonLoading = false;
|
||||
// }, 300);
|
||||
}, 3000);
|
||||
} else {
|
||||
done();
|
||||
@ -123,11 +120,8 @@ export default {
|
||||
if (action === 'confirm') {
|
||||
instance.confirmButtonLoading = true;
|
||||
setTimeout(() => {
|
||||
// todo 调用接口如果关机成功 调用done方法 否则不关闭弹窗
|
||||
done();
|
||||
// setTimeout(() => {
|
||||
instance.confirmButtonLoading = false;
|
||||
// }, 300);
|
||||
}, 3000);
|
||||
} else {
|
||||
done();
|
||||
|
||||
@ -57,7 +57,7 @@ export default {
|
||||
top: '10',
|
||||
},
|
||||
grid: {
|
||||
left: "15%"
|
||||
containLabel: true
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
|
||||
@ -61,7 +61,7 @@ export default {
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: "15%"
|
||||
containLabel: true
|
||||
},
|
||||
textStyle:{
|
||||
color:"#333333",
|
||||
|
||||
@ -62,7 +62,7 @@ export default {
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: "15%"
|
||||
containLabel: true
|
||||
},
|
||||
textStyle:{
|
||||
color:"#333333",
|
||||
|
||||
@ -58,7 +58,7 @@ export default {
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: "15%"
|
||||
containLabel: true
|
||||
},
|
||||
textStyle:{
|
||||
color:"#333333",
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
|
||||
<template>
|
||||
<div v-loading="loading">
|
||||
<!-- todo 判断条件是否需要更新-->
|
||||
<div class="yl-item-container" :class="{'yl-warn-item-container':item.workMode !== '0'}" v-for="(item,index) in list" :key="index+'ylLise'">
|
||||
<div class="header">
|
||||
<div class="header-title">{{item.systemName}}</div>
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
<!-- bms、pcs 下级和上级在一列 -->
|
||||
<div class="row-lists pcs-row-lists" v-if="showPcsAndBms">
|
||||
<div class="item-square">
|
||||
<div class="row-lists-title" v-if="showPcs">PCS</div>
|
||||
<div class="row-lists-title" v-if="showBms">BMS</div>
|
||||
<div class="row-lists-title" v-if="showPcs">PCS({{pcs.length}})</div>
|
||||
<div class="row-lists-title" v-if="showBms">BMS({{bms.length}})</div>
|
||||
</div>
|
||||
<!-- 上下级块 class区分-->
|
||||
<div class="item-square pcs-has-children-item-square" :class="{'no-bms-list':!showBms}" v-for="(item,index) in pcsHasChildren" :key="index+'pcsHasChildren'">
|
||||
@ -92,7 +92,7 @@
|
||||
<!-- 电表-->
|
||||
<div class="row-lists" v-if="showDb">
|
||||
<div class="item-square">
|
||||
<div class="row-lists-title" style="width:100%;">电表</div>
|
||||
<div class="row-lists-title" style="width:100%;">电表({{db.length}})</div>
|
||||
</div>
|
||||
<div class="item-square">
|
||||
<!-- 左边的下级 下级有多个-->
|
||||
@ -115,7 +115,7 @@
|
||||
<!--冷却-->
|
||||
<div class="row-lists" v-if="showLq">
|
||||
<div class="item-square">
|
||||
<div class="row-lists-title" style="width:100%;">冷却</div>
|
||||
<div class="row-lists-title" style="width:100%;">冷却({{lq.length}})</div>
|
||||
</div>
|
||||
<div class="item-square">
|
||||
<div class="item-lists">
|
||||
|
||||
@ -33,13 +33,11 @@
|
||||
<el-option :label="item" :value="item" v-for="(item,index) in deviceCategoryList" :key="index+'deviceCategoryList'"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- todo 只有电池簇展示-->
|
||||
<el-form-item label="上级设备" prop="parentId" v-if="formData.deviceCategory === dccDeviceCategory">
|
||||
<el-select v-model="formData.parentId" :placeholder="parentDeviceList.length === 0 && !formData.siteId ? '请先选择站点' : '请选择'" :style="{width: '100%'}">
|
||||
<el-option :label="item.deviceName" :value="item.id" v-for="(item,index) in parentDeviceList" :key="index+'parentDeviceList'" ></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!--todo tcp设备才展示ip地址、端口号?-->
|
||||
<el-form-item label="TCP设备的ip地址" prop="ipAddress" v-if="formData.deviceType === 'TCP'">
|
||||
<el-input v-model="formData.ipAddress" placeholder="请输入" clearable :style="{width: '100%'}">
|
||||
</el-input>
|
||||
|
||||
Reference in New Issue
Block a user