|
|
|
@ -3,75 +3,136 @@ |
|
|
|
<el-col :span="3"> </el-col> |
|
|
|
<el-col :span="3"> </el-col> |
|
|
|
<el-col :span="21" style="height: 100%"> |
|
|
|
<el-col :span="21" style="height: 100%"> |
|
|
|
<basic-container style="height: 100%"> |
|
|
|
<basic-container style="height: 100%"> |
|
|
|
<avue-crud |
|
|
|
<div class="search_box"> |
|
|
|
:option="option" |
|
|
|
<el-input |
|
|
|
:table-loading="loading" |
|
|
|
class="search_input" |
|
|
|
:data="data" |
|
|
|
v-model="classCode" |
|
|
|
ref="crud" |
|
|
|
placeholder="请输入设备类型编码" |
|
|
|
v-model="form" |
|
|
|
clearable |
|
|
|
:permission="permissionList" |
|
|
|
/> |
|
|
|
:before-open="beforeOpen" |
|
|
|
<el-select |
|
|
|
:before-close="beforeClose" |
|
|
|
class="search_select" |
|
|
|
@row-del="rowDel" |
|
|
|
placeholder="请选择报警状态" |
|
|
|
@row-update="rowUpdate" |
|
|
|
style="margin: 0 20px 0 10px" |
|
|
|
@row-save="rowSave" |
|
|
|
v-model="warnStatus" |
|
|
|
@search-change="searchChange" |
|
|
|
|
|
|
|
@search-reset="searchReset" |
|
|
|
|
|
|
|
@selection-change="selectionChange" |
|
|
|
|
|
|
|
@current-change="currentChange" |
|
|
|
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
|
|
|
@refresh-change="refreshChange" |
|
|
|
|
|
|
|
@on-load="onLoad" |
|
|
|
|
|
|
|
@tree-load="treeLoad" |
|
|
|
|
|
|
|
:page.sync="page" |
|
|
|
|
|
|
|
> |
|
|
|
> |
|
|
|
<template slot-scope="scope" slot="areaSearch"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-select v-model="area"> |
|
|
|
<el-option label="正常" value="0"></el-option> |
|
|
|
<el-option label="业务区" value="1"></el-option> |
|
|
|
<el-option label="报警" value="1"></el-option> |
|
|
|
<el-option label="塔台" value="2"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</template> |
|
|
|
<el-input |
|
|
|
<!-- <template slot-scope="scope" slot="startDateSearch"> |
|
|
|
class="search_input" |
|
|
|
<el-date-picker |
|
|
|
v-model="equipCode" |
|
|
|
v-model="startDate" |
|
|
|
placeholder="请输入设备编码" |
|
|
|
type="date" |
|
|
|
clearable |
|
|
|
placeholder="选择日期" |
|
|
|
/> |
|
|
|
value-format = 'yyyy-MM-dd' |
|
|
|
<el-button class="search_button" @click="handleSearch"> |
|
|
|
format="yyyy-MM-dd" |
|
|
|
<i class="el-icon-search"></i> |
|
|
|
|
|
|
|
</el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div style="position: relative"> |
|
|
|
|
|
|
|
<el-table |
|
|
|
|
|
|
|
class="el_table" |
|
|
|
|
|
|
|
:data="tableData" |
|
|
|
|
|
|
|
border |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
lo |
|
|
|
|
|
|
|
height="340" |
|
|
|
|
|
|
|
v-loading="loading" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
|
|
|
|
type="index" |
|
|
|
|
|
|
|
:index="indexMethod" |
|
|
|
|
|
|
|
label="序号" |
|
|
|
|
|
|
|
width="80" |
|
|
|
|
|
|
|
align="center" |
|
|
|
> |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
</el-table-column> |
|
|
|
</template> |
|
|
|
<el-table-column prop="classCode" label="设备编码" width="180"> |
|
|
|
<template slot-scope="scope" slot="endDateSearch"> |
|
|
|
</el-table-column> |
|
|
|
<el-date-picker |
|
|
|
<el-table-column prop="equipName" label="设备名称"> |
|
|
|
v-model="endDate" |
|
|
|
</el-table-column> |
|
|
|
type="date" |
|
|
|
<el-table-column |
|
|
|
placeholder="选择日期" |
|
|
|
prop="equipStatus" |
|
|
|
value-format = 'yyyy-MM-dd' |
|
|
|
label="设备状态" |
|
|
|
format="yyyy-MM-dd" |
|
|
|
width="100" |
|
|
|
|
|
|
|
align="center" |
|
|
|
> |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
</el-table-column> |
|
|
|
</template> --> |
|
|
|
<el-table-column prop="equipContent" label="报警信息"> |
|
|
|
</avue-crud> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="warnDate" label="报警时间"> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="equipLocation" label="设备位置"> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
|
|
|
|
prop="address" |
|
|
|
|
|
|
|
label="操作" |
|
|
|
|
|
|
|
width="100" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-button type="text" size="small">查看</el-button> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
</el-table> |
|
|
|
|
|
|
|
<div class="el_pagination"> |
|
|
|
|
|
|
|
<div |
|
|
|
|
|
|
|
style=" |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
height: 100%; |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
background: rgba(255,255,255,.9); |
|
|
|
|
|
|
|
z-index: 9; |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
top: 0; |
|
|
|
|
|
|
|
left: 0; |
|
|
|
|
|
|
|
" |
|
|
|
|
|
|
|
v-show="loading" |
|
|
|
|
|
|
|
></div> |
|
|
|
|
|
|
|
<el-pagination |
|
|
|
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
|
|
:current-page="currentPage" |
|
|
|
|
|
|
|
:page-sizes="[6, 10, 20, 50, 100]" |
|
|
|
|
|
|
|
:page-size="pageSize" |
|
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
|
|
|
|
:total="total" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
</el-pagination> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="box"> |
|
|
|
<div class="box"> |
|
|
|
<div class="box_nav"> |
|
|
|
<div class="box_nav"> |
|
|
|
<span class="box_tab" style="margin-right: 50px">报警详情信息</span> |
|
|
|
<span |
|
|
|
<span class="box_tab" style="color: #2b8ee5">报警信息记录</span> |
|
|
|
class="box_tab" |
|
|
|
|
|
|
|
:style="{ |
|
|
|
|
|
|
|
marginRight: '50px', |
|
|
|
|
|
|
|
color: tabKey == 1 ? '#2b8ee5' : '', |
|
|
|
|
|
|
|
}" |
|
|
|
|
|
|
|
@click="() => tabChange(1)" |
|
|
|
|
|
|
|
>报警详情信息</span |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<span |
|
|
|
|
|
|
|
class="box_tab" |
|
|
|
|
|
|
|
:style="{ color: tabKey == 2 ? '#2b8ee5' : '' }" |
|
|
|
|
|
|
|
@click="() => tabChange(2)" |
|
|
|
|
|
|
|
>报警信息记录</span |
|
|
|
|
|
|
|
> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-select placeholder="按报警时间查询" class="box_select"> |
|
|
|
<el-select placeholder="按报警时间查询" class="box_select"> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
<div class="timelineBox"> |
|
|
|
<div class="timelineBox"> |
|
|
|
<div style="width: 100%"> |
|
|
|
<div style="width: 100%"> |
|
|
|
<div class="timelineBoxTitle"> |
|
|
|
<div class="timelineBoxTitle"> |
|
|
|
<span>设备报警信息详情</span> |
|
|
|
<span>{{ tabKey == 1 ? "报警详情信息" : "报警信息记录" }}</span> |
|
|
|
<span>更多</span> |
|
|
|
<span>更多</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="timelineBoxContent"> |
|
|
|
<div class="timelineBoxContent" v-if="warnMsgList.length"> |
|
|
|
<div |
|
|
|
<div |
|
|
|
v-for="(item, index) in myList" |
|
|
|
v-for="(item, index) in warnMsgList" |
|
|
|
:key="item.time" |
|
|
|
:key="item.warnDate" |
|
|
|
style="display: flex; align-items: center; line-height: 50px" |
|
|
|
style="display: flex; align-items: center; line-height: 50px" |
|
|
|
> |
|
|
|
> |
|
|
|
{{ item.time }} |
|
|
|
{{ item.warnDate }} |
|
|
|
<div |
|
|
|
<div |
|
|
|
style=" |
|
|
|
style=" |
|
|
|
width: 40px; |
|
|
|
width: 40px; |
|
|
|
@ -90,7 +151,7 @@ |
|
|
|
" |
|
|
|
" |
|
|
|
></div> |
|
|
|
></div> |
|
|
|
<div |
|
|
|
<div |
|
|
|
v-if="index < myList.length - 1" |
|
|
|
v-if="index < warnMsgList.length - 1" |
|
|
|
style=" |
|
|
|
style=" |
|
|
|
border-right: 1px dashed #d1d1d1; |
|
|
|
border-right: 1px dashed #d1d1d1; |
|
|
|
height: 45px; |
|
|
|
height: 45px; |
|
|
|
@ -100,8 +161,15 @@ |
|
|
|
" |
|
|
|
" |
|
|
|
></div> |
|
|
|
></div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{{ item.content }}dtu编号:{{ item.id }} |
|
|
|
{{ item.warnContent }}设备编号:{{ item.equipCode }} |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div |
|
|
|
|
|
|
|
v-else |
|
|
|
|
|
|
|
class="timelineBoxContent" |
|
|
|
|
|
|
|
style="text-align: center; line-height: 100px" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
暂无数据 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -114,6 +182,7 @@ |
|
|
|
.box { |
|
|
|
.box { |
|
|
|
width: 100%; |
|
|
|
width: 100%; |
|
|
|
height: 26vh; |
|
|
|
height: 26vh; |
|
|
|
|
|
|
|
margin-top: 30px; |
|
|
|
} |
|
|
|
} |
|
|
|
.tab_btn { |
|
|
|
.tab_btn { |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
|
@ -123,8 +192,8 @@ |
|
|
|
height: 30px; |
|
|
|
height: 30px; |
|
|
|
margin-top: 20px; |
|
|
|
margin-top: 20px; |
|
|
|
} |
|
|
|
} |
|
|
|
.box_nav{ |
|
|
|
.box_nav { |
|
|
|
>span{ |
|
|
|
> span { |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -155,464 +224,161 @@ |
|
|
|
/deep/ .basic-container__card { |
|
|
|
/deep/ .basic-container__card { |
|
|
|
height: 100%; |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.search_box { |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
margin-bottom: 30px; |
|
|
|
|
|
|
|
.search_select { |
|
|
|
|
|
|
|
// width: 138px; |
|
|
|
|
|
|
|
height: 40px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.search_input { |
|
|
|
|
|
|
|
width: 238px; |
|
|
|
|
|
|
|
height: 40px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/deep/.el-input__inner { |
|
|
|
|
|
|
|
border-radius: 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.search_button { |
|
|
|
|
|
|
|
width: 50px; |
|
|
|
|
|
|
|
height: 40px; |
|
|
|
|
|
|
|
border-radius: 0; |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
justify-content: center; |
|
|
|
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
margin-left: 6px; |
|
|
|
|
|
|
|
.el-icon-search { |
|
|
|
|
|
|
|
font-size: 19px; |
|
|
|
|
|
|
|
color: #c9c9c9; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.el-table { |
|
|
|
|
|
|
|
::v-deep td { |
|
|
|
|
|
|
|
padding: 0 !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/deep/.el-table__row { |
|
|
|
|
|
|
|
height: 40px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.el_pagination { |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
justify-content: end; |
|
|
|
|
|
|
|
border: 1px solid #d1d1d1; |
|
|
|
|
|
|
|
border-top: none; |
|
|
|
|
|
|
|
padding: 10px 7px 7px 7px; |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
bottom: 0; |
|
|
|
|
|
|
|
width: 99%; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.el_table { |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
overflow: auto; |
|
|
|
|
|
|
|
border: 1px solid #d1d1d1; |
|
|
|
|
|
|
|
border-bottom: 50px solid #fff; |
|
|
|
|
|
|
|
} |
|
|
|
</style> |
|
|
|
</style> |
|
|
|
<script> |
|
|
|
<script> |
|
|
|
import { |
|
|
|
import { |
|
|
|
getLazyList, |
|
|
|
getEquipList, |
|
|
|
remove, |
|
|
|
getWarnMsg, |
|
|
|
update, |
|
|
|
getWarnHisList, |
|
|
|
add, |
|
|
|
} from "@/api/opsVisualization/serviceDataOAM"; |
|
|
|
getDept, |
|
|
|
|
|
|
|
getDeptTree, |
|
|
|
|
|
|
|
} from "@/api/system/dept"; |
|
|
|
|
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
|
|
|
|
import website from "@/config/website"; |
|
|
|
|
|
|
|
import { getAlarmList, getDeptLazyTree } from "@/api/equipment"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DIC = { |
|
|
|
|
|
|
|
alarmType: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "未知", |
|
|
|
|
|
|
|
value: -1, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "事件报警", |
|
|
|
|
|
|
|
value: 1, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "设备报警", |
|
|
|
|
|
|
|
value: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
statusType: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "报警中", |
|
|
|
|
|
|
|
value: 1, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "已恢复", |
|
|
|
|
|
|
|
value: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
aereaType: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "业务区", |
|
|
|
|
|
|
|
value: "1", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "塔台", |
|
|
|
|
|
|
|
value: "2", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
recoveryType: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: " ", |
|
|
|
|
|
|
|
value: -1, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "手动", |
|
|
|
|
|
|
|
value: 1, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "自动", |
|
|
|
|
|
|
|
value: 0, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
export default { |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
myList: [ |
|
|
|
tabKey: 1, |
|
|
|
{ |
|
|
|
|
|
|
|
time: "2019-08-07 15:36:48", |
|
|
|
classCode: "", |
|
|
|
content: "dtu1002报警", |
|
|
|
warnStatus: "", |
|
|
|
id: 1, |
|
|
|
equipCode: "", |
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
time: "2019-08-07 15:36:48", |
|
|
|
|
|
|
|
content: "dtu1002报警", |
|
|
|
|
|
|
|
id: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
time: "2019-08-07 15:36:48", |
|
|
|
|
|
|
|
content: "dtu1002报警", |
|
|
|
|
|
|
|
id: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
time: "2019-08-07 15:36:48", |
|
|
|
|
|
|
|
content: "dtu1002报警", |
|
|
|
|
|
|
|
id: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
time: "2019-08-07 15:36:48", |
|
|
|
|
|
|
|
content: "dtu1002报警", |
|
|
|
|
|
|
|
id: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
time: "2019-08-07 15:36:48", |
|
|
|
|
|
|
|
content: "dtu1002报警", |
|
|
|
|
|
|
|
id: 2, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
area: this.$route.query.area ? this.$route.query.area : "1", |
|
|
|
|
|
|
|
classCode: this.$route.query.classCode ? this.$route.query.classCode : "", |
|
|
|
|
|
|
|
startDate: "", |
|
|
|
|
|
|
|
endDate: "", |
|
|
|
|
|
|
|
form: {}, |
|
|
|
|
|
|
|
selectionList: [], |
|
|
|
|
|
|
|
query: {}, |
|
|
|
|
|
|
|
loading: false, |
|
|
|
|
|
|
|
parentId: 0, |
|
|
|
|
|
|
|
page: { |
|
|
|
|
|
|
|
pageSize: 5, |
|
|
|
|
|
|
|
currentPage: 1, |
|
|
|
currentPage: 1, |
|
|
|
|
|
|
|
pageSize: 6, |
|
|
|
total: 0, |
|
|
|
total: 0, |
|
|
|
}, |
|
|
|
loading: false, |
|
|
|
option: { |
|
|
|
|
|
|
|
lazy: true, |
|
|
|
tableData: [], |
|
|
|
tip: false, |
|
|
|
warnMsgList: [], |
|
|
|
// simplePage: true, |
|
|
|
|
|
|
|
searchShow: true, |
|
|
|
|
|
|
|
searchMenuSpan: 6, |
|
|
|
|
|
|
|
tree: true, |
|
|
|
|
|
|
|
border: true, |
|
|
|
|
|
|
|
index: true, |
|
|
|
|
|
|
|
selection: true, |
|
|
|
|
|
|
|
viewBtn: true, |
|
|
|
|
|
|
|
menuWidth: 80, |
|
|
|
|
|
|
|
dialogClickModal: false, |
|
|
|
|
|
|
|
addBtn: false, |
|
|
|
|
|
|
|
delBtn: false, |
|
|
|
|
|
|
|
editBtn: false, |
|
|
|
|
|
|
|
emptyBtn: false, |
|
|
|
|
|
|
|
column: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "通讯状态", |
|
|
|
|
|
|
|
prop: "equipName", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
search: true, |
|
|
|
|
|
|
|
type: "select", |
|
|
|
|
|
|
|
dicData: DIC.alarmType, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "业务类别", |
|
|
|
|
|
|
|
prop: "location", |
|
|
|
|
|
|
|
search: true, |
|
|
|
|
|
|
|
type: "select", |
|
|
|
|
|
|
|
dicData: DIC.alarmType, |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "报警信息", |
|
|
|
|
|
|
|
prop: "warnContent", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "dtu编号", |
|
|
|
|
|
|
|
prop: "warnContent", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "设备编号", |
|
|
|
|
|
|
|
prop: "warnContent", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
search: true, |
|
|
|
|
|
|
|
type: "input", |
|
|
|
|
|
|
|
dicData: DIC.alarmType, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// label: "按业务类别查询", |
|
|
|
|
|
|
|
// prop: "warnType", |
|
|
|
|
|
|
|
// search: true, |
|
|
|
|
|
|
|
// type: "select", |
|
|
|
|
|
|
|
// dicData: DIC.alarmType, |
|
|
|
|
|
|
|
// align: "center", |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// label: "状态", |
|
|
|
|
|
|
|
// prop: "warnType", |
|
|
|
|
|
|
|
// search: true, |
|
|
|
|
|
|
|
// type: "select", |
|
|
|
|
|
|
|
// dicData: DIC.alarmType, |
|
|
|
|
|
|
|
// align: "center", |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// label: "报警状态", |
|
|
|
|
|
|
|
// prop: "status", |
|
|
|
|
|
|
|
// type: "select", |
|
|
|
|
|
|
|
// dicData: DIC.statusType, |
|
|
|
|
|
|
|
// align: "center", |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "设备位置", |
|
|
|
|
|
|
|
prop: "warnDate", |
|
|
|
|
|
|
|
type: "datetime", |
|
|
|
|
|
|
|
width: "140", |
|
|
|
|
|
|
|
// format:'yyyy-MM-dd', |
|
|
|
|
|
|
|
// valueFormat:'yyyy-MM-dd', |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// { |
|
|
|
|
|
|
|
// label: "结束时间", |
|
|
|
|
|
|
|
// prop: "endDate", |
|
|
|
|
|
|
|
// align:'center', |
|
|
|
|
|
|
|
// searchslot:true, |
|
|
|
|
|
|
|
// hide:true, |
|
|
|
|
|
|
|
// search:true, |
|
|
|
|
|
|
|
// row: false, |
|
|
|
|
|
|
|
// display: false, |
|
|
|
|
|
|
|
// viewDisplay:false |
|
|
|
|
|
|
|
// }, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "dtu报警信息", |
|
|
|
|
|
|
|
prop: "recoveryType", |
|
|
|
|
|
|
|
dicData: DIC.recoveryType, |
|
|
|
|
|
|
|
type: "select", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "报警时间", |
|
|
|
|
|
|
|
prop: "recoveryPerson", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "设备报警信息", |
|
|
|
|
|
|
|
prop: "recoveryDate", |
|
|
|
|
|
|
|
type: "datetime", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
label: "报警时间", |
|
|
|
|
|
|
|
prop: "recoveryDate", |
|
|
|
|
|
|
|
type: "datetime", |
|
|
|
|
|
|
|
align: "center", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [], |
|
|
|
|
|
|
|
treeData: [], |
|
|
|
|
|
|
|
treeOption: { |
|
|
|
|
|
|
|
nodeKey: "id", |
|
|
|
|
|
|
|
lazy: true, |
|
|
|
|
|
|
|
treeLoad: function (node, resolve) { |
|
|
|
|
|
|
|
const parentId = node.level === 0 ? 0 : node.data.id; |
|
|
|
|
|
|
|
getDeptLazyTree(parentId).then((res) => { |
|
|
|
|
|
|
|
resolve( |
|
|
|
|
|
|
|
res.data.data.map((item) => { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
...item, |
|
|
|
|
|
|
|
leaf: !item.hasChildren, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
addBtn: false, |
|
|
|
|
|
|
|
menu: false, |
|
|
|
|
|
|
|
size: "small", |
|
|
|
|
|
|
|
props: { |
|
|
|
|
|
|
|
labelText: "标题", |
|
|
|
|
|
|
|
label: "title", |
|
|
|
|
|
|
|
value: "value", |
|
|
|
|
|
|
|
children: "children", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
computed: { |
|
|
|
|
|
|
|
...mapGetters(["userInfo", "permission"]), |
|
|
|
|
|
|
|
permissionList() { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
addBtn: this.vaildData(this.permission.dept_add, false), |
|
|
|
|
|
|
|
viewBtn: this.vaildData(this.permission.dept_view, false), |
|
|
|
|
|
|
|
delBtn: this.vaildData(this.permission.dept_delete, false), |
|
|
|
|
|
|
|
editBtn: this.vaildData(this.permission.dept_edit, false), |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
ids() { |
|
|
|
computed: {}, |
|
|
|
let ids = []; |
|
|
|
mounted() { |
|
|
|
this.selectionList.forEach((ele) => { |
|
|
|
this.handleSearch(); |
|
|
|
ids.push(ele.id); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
return ids.join(","); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
nodeClick(data) { |
|
|
|
indexMethod(index) { |
|
|
|
this.classCode = data.key; |
|
|
|
const { currentPage, pageSize } = this; |
|
|
|
this.page.currentPage = 1; |
|
|
|
return (currentPage - 1) * pageSize + index + 1; |
|
|
|
this.onLoad(this.page); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
handleSearch() { |
|
|
|
initData() { |
|
|
|
const { classCode, warnStatus, equipCode, currentPage, pageSize } = this; |
|
|
|
getDeptTree().then((res) => { |
|
|
|
this.loading = true; |
|
|
|
const column = this.findObject(this.option.column, "parentId"); |
|
|
|
getEquipList({ |
|
|
|
column.dicData = res.data.data; |
|
|
|
classCode, |
|
|
|
|
|
|
|
warnStatus, |
|
|
|
|
|
|
|
equipCode, |
|
|
|
|
|
|
|
currentPage, |
|
|
|
|
|
|
|
pageSize, |
|
|
|
|
|
|
|
}).then((res) => { |
|
|
|
|
|
|
|
this.tableData = res.data.data.records; |
|
|
|
|
|
|
|
this.currentPage = res.data.data.current; |
|
|
|
|
|
|
|
this.total = res.data.data.total; |
|
|
|
|
|
|
|
this.loading = false; |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
getWarnMsg({ equipCode }).then((res) => { |
|
|
|
handleAdd(row) { |
|
|
|
this.warnMsgList = res.data.data; |
|
|
|
this.parentId = row.id; |
|
|
|
|
|
|
|
const column = this.findObject(this.option.column, "parentId"); |
|
|
|
|
|
|
|
column.value = row.id; |
|
|
|
|
|
|
|
column.addDisabled = true; |
|
|
|
|
|
|
|
this.$refs.crud.rowAdd(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
rowSave(row, done, loading) { |
|
|
|
|
|
|
|
add(row).then( |
|
|
|
|
|
|
|
(res) => { |
|
|
|
|
|
|
|
// 获取新增数据的相关字段 |
|
|
|
|
|
|
|
const data = res.data.data; |
|
|
|
|
|
|
|
row.id = data.id; |
|
|
|
|
|
|
|
row.deptCategoryName = data.deptCategoryName; |
|
|
|
|
|
|
|
row.tenantId = data.tenantId; |
|
|
|
|
|
|
|
this.$message({ |
|
|
|
|
|
|
|
type: "success", |
|
|
|
|
|
|
|
message: "操作成功!", |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
// 数据回调进行刷新 |
|
|
|
|
|
|
|
done(row); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
(error) => { |
|
|
|
tabChange(tabKey) { |
|
|
|
window.console.log(error); |
|
|
|
this.tabKey = tabKey; |
|
|
|
loading(); |
|
|
|
const { equipCode } = this; |
|
|
|
} |
|
|
|
if (tabKey == 1) { |
|
|
|
); |
|
|
|
getWarnMsg({ equipCode }).then((res) => { |
|
|
|
}, |
|
|
|
this.warnMsgList = res.data.data; |
|
|
|
rowUpdate(row, index, done, loading) { |
|
|
|
|
|
|
|
update(row).then( |
|
|
|
|
|
|
|
() => { |
|
|
|
|
|
|
|
this.$message({ |
|
|
|
|
|
|
|
type: "success", |
|
|
|
|
|
|
|
message: "操作成功!", |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
// 数据回调进行刷新 |
|
|
|
} else if (tabKey == 2) { |
|
|
|
done(row); |
|
|
|
getWarnHisList({ equipCode, currentPage: 1, pageSize: 10 }).then( |
|
|
|
}, |
|
|
|
(res) => { |
|
|
|
(error) => { |
|
|
|
this.warnMsgList = res.data.data.records; |
|
|
|
window.console.log(error); |
|
|
|
|
|
|
|
loading(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
); |
|
|
|
); |
|
|
|
}, |
|
|
|
|
|
|
|
rowDel(row, index, done) { |
|
|
|
|
|
|
|
this.$confirm("确定将选择数据删除?", { |
|
|
|
|
|
|
|
confirmButtonText: "确定", |
|
|
|
|
|
|
|
cancelButtonText: "取消", |
|
|
|
|
|
|
|
type: "warning", |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.then(() => { |
|
|
|
|
|
|
|
return remove(row.id); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.then(() => { |
|
|
|
|
|
|
|
this.$message({ |
|
|
|
|
|
|
|
type: "success", |
|
|
|
|
|
|
|
message: "操作成功!", |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
// 数据回调进行刷新 |
|
|
|
|
|
|
|
done(row); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
handleDelete() { |
|
|
|
|
|
|
|
if (this.selectionList.length === 0) { |
|
|
|
|
|
|
|
this.$message.warning("请选择至少一条数据"); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
this.$confirm("确定将选择数据删除?", { |
|
|
|
|
|
|
|
confirmButtonText: "确定", |
|
|
|
|
|
|
|
cancelButtonText: "取消", |
|
|
|
|
|
|
|
type: "warning", |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.then(() => { |
|
|
|
|
|
|
|
return remove(this.ids); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.then(() => { |
|
|
|
|
|
|
|
// 刷新表格数据并重载 |
|
|
|
|
|
|
|
this.data = []; |
|
|
|
|
|
|
|
this.parentId = 0; |
|
|
|
|
|
|
|
this.$refs.crud.refreshTable(); |
|
|
|
|
|
|
|
this.$refs.crud.toggleSelection(); |
|
|
|
|
|
|
|
// 表格数据重载 |
|
|
|
|
|
|
|
this.onLoad(this.page); |
|
|
|
|
|
|
|
this.$message({ |
|
|
|
|
|
|
|
type: "success", |
|
|
|
|
|
|
|
message: "操作成功!", |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
searchReset() { |
|
|
|
// 改变每页显示条数 |
|
|
|
this.query.warnType = ""; |
|
|
|
handleSizeChange(pageSize) { |
|
|
|
this.query.area = "1"; |
|
|
|
this.pageSize = pageSize; |
|
|
|
this.startDate = ""; |
|
|
|
this.loading = true; |
|
|
|
this.page.currentPage = 1; |
|
|
|
const { classCode, warnStatus, equipCode, currentPage } = this; |
|
|
|
this.onLoad(this.page); |
|
|
|
getEquipList({ |
|
|
|
}, |
|
|
|
classCode, |
|
|
|
searchChange(params, done) { |
|
|
|
warnStatus, |
|
|
|
this.query.warnType = params.warnType; |
|
|
|
equipCode, |
|
|
|
this.query.startDate = params.startDate; |
|
|
|
currentPage, |
|
|
|
this.page.currentPage = 1; |
|
|
|
pageSize, |
|
|
|
this.onLoad(); |
|
|
|
}).then((res) => { |
|
|
|
done(); |
|
|
|
this.tableData = res.data.data.records; |
|
|
|
}, |
|
|
|
this.currentPage = res.data.data.current; |
|
|
|
selectionChange(list) { |
|
|
|
this.total = res.data.data.total; |
|
|
|
this.selectionList = list; |
|
|
|
this.loading = false; |
|
|
|
}, |
|
|
|
}); |
|
|
|
selectionClear() { |
|
|
|
|
|
|
|
this.selectionList = []; |
|
|
|
|
|
|
|
this.$refs.crud.toggleSelection(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
beforeOpen(done, type) { |
|
|
|
|
|
|
|
if (["add", "edit"].includes(type)) { |
|
|
|
|
|
|
|
this.initData(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (["edit", "view"].includes(type)) { |
|
|
|
|
|
|
|
// getDept(this.form.id).then(res => { |
|
|
|
|
|
|
|
// this.form = res.data.data; |
|
|
|
|
|
|
|
// }); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
done(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
beforeClose(done) { |
|
|
|
|
|
|
|
// this.parentId = ""; |
|
|
|
|
|
|
|
// const column = this.findObject(this.option.column, "parentId"); |
|
|
|
|
|
|
|
// column.value = ""; |
|
|
|
|
|
|
|
// column.addDisabled = false; |
|
|
|
|
|
|
|
done(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
currentChange(currentPage) { |
|
|
|
|
|
|
|
this.page.currentPage = currentPage; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
sizeChange(pageSize) { |
|
|
|
|
|
|
|
this.page.pageSize = pageSize; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
refreshChange() { |
|
|
|
|
|
|
|
this.onLoad(this.page, this.query); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
onLoad() { |
|
|
|
// 改变当前页数 |
|
|
|
|
|
|
|
handleCurrentChange(currentPage) { |
|
|
|
|
|
|
|
this.currentPage = currentPage; |
|
|
|
this.loading = true; |
|
|
|
this.loading = true; |
|
|
|
getAlarmList( |
|
|
|
const { classCode, warnStatus, equipCode, pageSize } = this; |
|
|
|
this.query.warnType, |
|
|
|
getEquipList({ |
|
|
|
this.startDate, |
|
|
|
classCode, |
|
|
|
this.endDate, |
|
|
|
warnStatus, |
|
|
|
this.page.currentPage, |
|
|
|
equipCode, |
|
|
|
this.page.pageSize, |
|
|
|
currentPage, |
|
|
|
this.area, |
|
|
|
pageSize, |
|
|
|
this.classCode |
|
|
|
}).then((res) => { |
|
|
|
).then((res) => { |
|
|
|
this.tableData = res.data.data.records; |
|
|
|
this.data = res.data.data.records; |
|
|
|
this.total = res.data.data.total; |
|
|
|
// this.page.total = res.data.data.total |
|
|
|
|
|
|
|
this.page.total = res.data.data.total; |
|
|
|
|
|
|
|
console.log(this.page); |
|
|
|
|
|
|
|
this.loading = false; |
|
|
|
this.loading = false; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// this.selectionClear(); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
// treeLoad(tree, treeNode, resolve) { |
|
|
|
|
|
|
|
// const parentId = tree.id; |
|
|
|
|
|
|
|
// getLazyList(parentId).then(res => { |
|
|
|
|
|
|
|
// resolve(res.data.data); |
|
|
|
|
|
|
|
// }); |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|