书写定时布/撤防页面、视频联动弹窗、报警记录页面完善

main
jinna 3 years ago
parent 175f711d43
commit b301e4c8e1
  1. 4
      public/cdn/iconfont/avue/iconfont.css
  2. BIN
      src/assets/image/add.png
  3. BIN
      src/assets/image/cancel_iten.png
  4. 3
      src/page/index/logo.vue
  5. 2
      src/page/index/top/index.vue
  6. 4
      src/page/index/top/top-menu.vue
  7. 3
      src/styles/media.scss
  8. 3
      src/styles/sidebar.scss
  9. 484
      src/views/wirelessintrusion/deployment/list.vue
  10. 216
      src/views/wirelessintrusion/warn/record.vue

@ -24,11 +24,13 @@
} }
.icon-rizhi1:before { .icon-rizhi1:before {
color: #fff;
content: "\e6af"; content: "\e6af";
} }
.icon-suoping:before { .icon-suoping:before {
content: "\e6e9"; content: "\e6e9";
color: #fff;
} }
.icon-zhuti:before { .icon-zhuti:before {
@ -109,6 +111,7 @@
.icon-quanping:before { .icon-quanping:before {
content: "\e615"; content: "\e615";
color: #fff;
} }
.icon-bofangqi-suoping:before { .icon-bofangqi-suoping:before {
@ -117,6 +120,7 @@
.icon-navicon:before { .icon-navicon:before {
content: "\e84e"; content: "\e84e";
color: #fff;
} }
.icon-yuan:before { .icon-yuan:before {

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

@ -49,7 +49,8 @@ export default {
width: 240px; width: 240px;
height: 64px; height: 64px;
line-height: 64px; line-height: 64px;
background-color: #20222a; // background-color: #20222a;
background-color: #031945;
font-size: 20px; font-size: 20px;
overflow: hidden; overflow: hidden;
box-sizing: border-box; box-sizing: border-box;

@ -79,7 +79,7 @@
<el-dropdown> <el-dropdown>
<span class="el-dropdown-link"> <span class="el-dropdown-link">
{{userInfo.userName}} {{userInfo.userName}}
<i class="el-icon-arrow-down el-icon--right"></i> <i class="el-icon-arrow-down el-icon--right" style="color:#fff"></i>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item> <el-dropdown-item>

@ -5,8 +5,8 @@
text-color="#333"> text-color="#333">
<el-menu-item index="0" @click.native="openHome(itemHome)" key="0"> <el-menu-item index="0" @click.native="openHome(itemHome)" key="0">
<template slot="title"> <template slot="title">
<i :class="itemHome.source"></i> <i :class="itemHome.source" style="color:#fff"></i>
<span>{{generateTitle(itemHome)}}</span> <span style="color:#fff">{{generateTitle(itemHome)}}</span>
</template> </template>
</el-menu-item> </el-menu-item>
<template v-for="(item,index) in items"> <template v-for="(item,index) in items">

@ -45,7 +45,8 @@
.avue-header { .avue-header {
padding-left: 240px; padding-left: 240px;
width: 100%; width: 100%;
background-color: #fff; background-color: #031945;
// background-color: #fff;
box-sizing: border-box; box-sizing: border-box;
} }

@ -35,7 +35,8 @@
padding-top: 60px; padding-top: 60px;
height: 100%; height: 100%;
position: relative; position: relative;
background-color: #20222a; // background-color: #20222a;
background-color: #031945;
transition: width .2s; transition: width .2s;
box-sizing: border-box; box-sizing: border-box;
box-shadow: 2px 0 6px rgba(0,21,41,.35); box-shadow: 2px 0 6px rgba(0,21,41,.35);

@ -5,11 +5,8 @@
:data="data" :data="data"
:page.sync="page" :page.sync="page"
ref="crud" ref="crud"
@row-del="rowDel"
v-model="form" v-model="form"
:permission="permissionList" :permission="permissionList"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen" :before-open="beforeOpen"
@search-change="searchChange" @search-change="searchChange"
@search-reset="searchReset" @search-reset="searchReset"
@ -19,34 +16,122 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad"> @on-load="onLoad">
<template slot="menuLeft"> <template slot="menuLeft">
<el-button type="danger" <el-button
size="small" size="small"
icon="el-icon-delete" @click="handleAddPre">
plain <i class="add_item"></i>
v-if="permission.notice_delete" 一键布防
@click="handleDelete"> </el-button>
<el-button
type="primary"
size="small"
@click="handleCancel">
<i class="cancel_item"></i>
一键撤防
</el-button>
<el-button
type="primary"
size="small"
@click="handleAdd">
新增
</el-button> </el-button>
</template> </template>
<template slot-scope="{row}" <template slot-scope="{row}"
slot="category"> slot="status">
<el-tag>{{row.categoryName}}</el-tag> <el-tag type="danger" v-show="row.status == 0">关闭</el-tag>
<el-tag type="success" v-show="row.status == 1">开启</el-tag>
</template> </template>
<template #menu="{size:row,index}"> <template #menu="{size:row,index}">
<el-button @click="tip(row,index)" <el-button size="small" @click="handleDetail(row,index)">详情</el-button>
icon="el-icon-check" <el-button size="small" @click="handleEdit(row,index)">编辑</el-button>
type="text" <el-button size="small" @click="handleDelete(row,index)">删除</el-button>
:size="size" :disabled="index === 0">启用</el-button>
<el-button @click="tip(row,index)"
icon="el-icon-check"
type="text"
:size="size" :disabled="index === 0">编辑</el-button>
</template> </template>
</avue-crud> </avue-crud>
<el-dialog
title="布防设置"
:visible.sync="dialogVisible"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
custom-class="dia_box"
>
<el-form v-model="addForm">
<el-form-item label="布防时间:" prop="preTime">
<el-time-picker
v-model="addForm.preTime"
placeholder="请选择布防时间"
:readonly="isDetail ? true : false"
value-format="HH:mm:ss">
</el-time-picker>
</el-form-item>
<el-form-item label="选择设备:">
<el-table
class="table_box"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55"
align="center"
:reserve-selection="true"
:selectable="selectable"
>
</el-table-column>
<el-table-column
prop="deviceName"
label="设备名称">
</el-table-column>
<el-table-column
prop="deviceNo"
label="设备编号">
</el-table-column>
<el-table-column
prop="deviceType"
label="设备大类">
</el-table-column>
<el-table-column
prop="deviceArea"
label="所在区域">
</el-table-column>
<el-table-column
prop="position"
label="安装位置">
</el-table-column>
</el-table>
<div class="page_box">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="diaPage.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="diaPage.pageSize"
background
layout="total, sizes, prev, pager, next, jumper"
:total="diaPage.total">
</el-pagination>
</div>
</el-form-item>
<el-form-item label="是否启用:" prop="isOpen">
<el-switch
v-model="addForm.isOpen"
active-text="禁用"
inactive-text="启用"
:readonly="isDetail ? true : false">
</el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submitForm">确认布防</el-button>
</div>
</el-dialog>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import {getList, remove, update, add, getNotice} from "@/api/desk/notice";
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
export default { export default {
@ -54,93 +139,55 @@
return { return {
form: {}, form: {},
query: {}, query: {},
dialogVisible:false,
loading: true, loading: true,
page: { page: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0 total: 0
}, },
diaPage:{
pageSize:10,
currentPage:1,
total:10,
},
addForm:{},
selectionList: [], selectionList: [],
option: { option: {
height: 'auto', height: 'auto',
menuWidth:300,
calcHeight: 30, calcHeight: 30,
dialogWidth: 950, dialogWidth: 950,
tip: false, tip: false,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
border: true, border: true,
index: true, addBtn:false,
viewBtn: true, viewBtn: false,
editBtn:false,
delBtn:false,
selection: true, selection: true,
excelBtn: true, excelBtn: true,
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{ {
label: "定时任务标题", label: "布防时间",
prop: "title", prop: "time",
span: 12,
search: true,
maxlength: 30,
rules: [{
required: true,
message: "请输入通定时任务标题",
trigger: "blur"
}]
},
{
label: "布/撤防",
type: "select",
prop: "brandCode",
span: 12,
hide: true,
addDisplay: true,
editDisplay: true,
viewDisplay: false,
rules: [{
required: true,
message: "请选择任务类型",
trigger: "blur"
}]
},
{
label: "任务类型",
prop: "brandName",
span: 12, span: 12,
search: true, // search: true,
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
viewDisplay: true viewDisplay: false,
}, },
{ {
label: "任务描述", label: "关联设备",
prop: "factorySn", prop: "device",
type: 'textarea', type: 'textarea',
minRow: 3,
maxRow: 5,
maxlength: 200,
showWordLimit: true,
span: 12, span: 12,
overHidden: true, overHidden: true,
rules: [{
required: true,
message: "请输入任务描述",
trigger: "blur"
}]
},
{
label: "时间",
type: 'time',
prop: 'time',
format: 'HH:mm:ss',
valueFormat: 'HH:mm:ss',
rules: [{
required: true,
message: "定时时间",
trigger: "blur"
}]
}, },
{ {
label: "任务状态", label: "布防状态",
type: "select", type: "select",
prop: "brandCode", prop: "brandCode",
span: 12, span: 12,
@ -151,16 +198,26 @@
viewDisplay: false, viewDisplay: false,
}, },
{ {
label: "任务状态", label: "是否启用",
prop: "regionName ", prop: "status",
span: 12, span: 24,
width: 80,
align: "center",
slot: true,
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
viewDisplay: true, viewDisplay: false,
}, },
] ]
}, },
data: [] tableData:[],
data: [
{time:'09:00:00',device:'空调1、空调2、消防1、消防2、消防3、消防4、消防5...',status:'0'},
{time:'09:00:00',device:'空调1、空调2、消防1、消防2、消防3、消防4、消防5...',status:'1'},
],
multipleSelection:[],
selectedArr:[],
isDetail:false
}; };
}, },
computed: { computed: {
@ -173,6 +230,7 @@
editBtn: this.vaildData(this.permission.notice_edit, false) editBtn: this.vaildData(this.permission.notice_edit, false)
}; };
}, },
ids() { ids() {
let ids = []; let ids = [];
this.selectionList.forEach(ele => { this.selectionList.forEach(ele => {
@ -182,48 +240,53 @@
} }
}, },
methods: { methods: {
rowSave(row, done, loading) { //
add(row).then(() => { selectable(row, index) {
this.onLoad(this.page); //row
this.$message({ let data = this.selectedArr //
type: "success", //return : false
message: "操作成功!" //return : true
}); return data.findIndex(item => item == row.id) === -1
done();
}, error => {
window.console.log(error);
loading();
});
}, },
rowUpdate(row, index, done, loading) { //
update(row).then(() => { handleAdd(){
this.onLoad(this.page); this.dialogVisible = true;
this.$message({ this.isDetail = false;
type: "success", this.tableData = [
message: "操作成功!" {id:'001',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
}); {id:'002',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
done(); {id:'003',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
}, error => { {id:'004',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
window.console.log(error); {id:'005',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
loading(); {id:'006',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
}); {id:'007',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'008',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'009',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'010',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
]
this.selectedArr = ['001','003','005']
}, },
rowDel(row) { //
this.$confirm("确定将选择数据删除?", { handleSelectionChange(val){
confirmButtonText: "确定", this.multipleSelection = val
cancelButtonText: "取消", },
type: "warning" //
}) submitForm(){
.then(() => { console.log(this.addForm)
return remove(row.id); },
}) //
.then(() => { handleAddPre(){
this.onLoad(this.page); if (this.selectionList.length === 0) {
this.$message({ this.$message.warning("请选择至少一条数据");
type: "success", return;
message: "操作成功!" }
}); },
}); //
handleCancel(){
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
}
}, },
searchReset() { searchReset() {
this.query = {}; this.query = {};
@ -236,42 +299,76 @@
done(); done();
}, },
selectionChange(list) { selectionChange(list) {
console.log(list)
this.selectionList = list; this.selectionList = list;
}, },
selectionClear() { selectionClear() {
this.selectionList = []; this.selectionList = [];
this.$refs.crud.toggleSelection(); this.$refs.crud.toggleSelection();
}, },
handleDelete() { //
if (this.selectionList.length === 0) { handleDetail(row){
this.$message.warning("请选择至少一条数据"); this.dialogVisible = true;
return; this.isDetail = true;
this.tableData = [
{id:'001',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'002',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
];
this.addForm = {
preTime:'09:00:00',
isOpen:Boolean(1)
} }
},
//
handleEdit(){
this.dialogVisible = true;
this.isDetail = false;
this.tableData = [
{id:'001',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'002',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'003',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'004',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'005',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'006',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'007',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'008',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'009',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
{id:'010',deviceName:'空调',deviceNo:"A101",deviceType:'空调设备',deviceArea:'1号楼一层北',position:'120.51,36.12'},
]
this.selectedArr = ['001','003','005']
let selectArr = ['002','004']
let map = new Map();
for (let item of this.tableData) {
if (!map.has(item.id)) {
map.set(item.id, item);
};
};
this.multipleSelection = [...map.values()].filter(item => selectArr.includes(item.id));
this.$nextTick(() =>{
this.multipleSelection.forEach((row) => {
this.$refs.multipleTable.toggleRowSelection(row, true) //
})
})
},
handleDelete() {
this.$confirm("确定将选择数据删除?", { this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
}) })
.then(() => { .then(() => {
return remove(this.ids);
}) })
.then(() => { .then(() => {
this.onLoad(this.page); // this.onLoad(this.page);
this.$message({ // this.$message({
type: "success", // type: "success",
message: "操作成功!" // message: "!"
}); // });
this.$refs.crud.toggleSelection(); // this.$refs.crud.toggleSelection();
}); });
}, },
beforeOpen(done, type) {
if (["edit", "view"].includes(type)) {
getNotice(this.form.id).then(res => {
this.form = res.data.data;
});
}
done();
},
currentChange(currentPage) { currentChange(currentPage) {
this.page.currentPage = currentPage; this.page.currentPage = currentPage;
}, },
@ -282,31 +379,92 @@
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
const {releaseTimeRange} = this.query; // const {releaseTimeRange} = this.query;
let values = { // let values = {
...params, // ...params,
...this.query // ...this.query
}; // };
if (releaseTimeRange) { // if (releaseTimeRange) {
values = { // values = {
...values, // ...values,
releaseTime_datege: releaseTimeRange[0], // releaseTime_datege: releaseTimeRange[0],
releaseTime_datelt: releaseTimeRange[1], // releaseTime_datelt: releaseTimeRange[1],
}; // };
values.releaseTimeRange = null; // values.releaseTimeRange = null;
} // }
this.loading = true; // this.loading = true;
getList(page.currentPage, page.pageSize, values).then(res => { // getList(page.currentPage, page.pageSize, values).then(res => {
const data = res.data.data; // const data = res.data.data;
this.page.total = data.total; // this.page.total = data.total;
this.data = data.records; // this.data = data.records;
this.loading = false; // this.loading = false;
this.selectionClear(); // this.selectionClear();
}); // });
this.data = [
{time:'09:00:00',device:'空调1、空调2、消防1、消防2、消防3、消防4、消防5...',status:0},
{time:'09:00:00',device:'空调1、空调2、消防1、消防2、消防3、消防4、消防5...',status:1},
];
this.loading = false;
this.page.total = this.data.length;
} }
} }
}; };
</script> </script>
<style> <style lang="scss" scoped>
::v-deep .cancel_item {
background: url('~@/assets/image/cancel_iten.png') center no-repeat; // url
font-size: 12px;
background-size: cover;
}
::v-deep .cancel_item:before {
content: "替";
font-size: 12px;
visibility: hidden;
}
::v-deep .add_item {
background: url('~@/assets/image/add.png') center no-repeat; // url
font-size: 12px;
background-size: cover;
}
::v-deep .add_item:before {
content: "替";
font-size: 12px;
visibility: hidden;
}
.table_box{
th.el-table__cell{
background: #F7F8FA;
}
}
</style>
<style lang="scss">
.dia_box{
height: 700px;
overflow: auto;
.el-table{
width: 90% !important;
border: 1px solid #D6D8DF;
}
.el-table th.el-table__cell{
background: #F7F8FA;
}
.dialog-footer{
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.page_box{
width: 90%;
margin-left: 9%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 15px;
}
}
</style> </style>

@ -48,27 +48,61 @@
</el-button> --> </el-button> -->
</template> </template>
<template slot-scope="{row}" <template slot-scope="{row}"
slot="category"> slot="alarmInfo">
<el-tag>{{row.categoryName}}</el-tag> <!-- <el-tag type="danger"> -->
{{row.alarmInfo}}
<!-- </el-tag> -->
</template> </template>
<template #menu="{size:row,index}"> <template #menu="{row,index}">
<el-button @click="tip(row,index)" <el-button @click="tip(row,index)"
type="primart" plain type="primart" plain
:size="size" >详情</el-button> size="small" >详情</el-button>
<el-button @click="tip(row,index)" <el-button
type="primart" plain @click="tip(row,index)"
:size="size" :disabled="index !== 0">消警</el-button> type="primart" plain
<el-button @click="tip(row,index)" size="small"
:disabled="row.cancelTime == ''">
消警
</el-button>
<!-- <el-button @click="tip(row,index)"
type="primart" plain type="primart" plain
:size="size">撤防</el-button> size="small">撤防</el-button> -->
<el-button @click="tip(row,index)" <!-- <el-button @click="tip(row,index)"
type="primart" plain type="primart" plain
:size="size">旁路恢复</el-button> size="small">旁路恢复</el-button> -->
<el-button @click="tip(row,index)" <el-button
type="primart" plain @click="linkVideo(row,index)"
:size="size" >视频联动</el-button> type="primart"
plain
size="small"
:disabled="row.cancelTime == ''">
视频联动
</el-button>
</template> </template>
</avue-crud> </avue-crud>
<!-- 视频联动弹窗 -->
<el-dialog
title="视频联动"
:visible.sync="dialogVisible"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
custom-class="video_dia"
width="65%">
<div class="video_box">
<!-- <div class="video_item" v-for="item in videoData" :key="item.id">
<div class="top_item">{{item.url}}</div>
<div class="bottom_item">{{item.name}}</div>
</div> -->
<el-row :gutter="20">
<el-col :span="6" v-for="item in videoData" :key="item.id">
<video class="grid-content" src="">
</video>
</el-col>
</el-row>
</div>
</el-dialog>
</basic-container> </basic-container>
</template> </template>
@ -82,6 +116,7 @@
form: {}, form: {},
query: {}, query: {},
loading: true, loading: true,
dialogVisible:false,
page: { page: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
@ -96,16 +131,13 @@
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
border: true, border: true,
index: true, // index: true,
menuWidth: 320, menuWidth: 320,
viewBtn: true, viewBtn: false,
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
delBtn: false, delBtn: false,
selection: true, selection: true,
selectable: (row, index) => {
return index !== 0;
},
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{ {
@ -116,41 +148,66 @@
search: true, search: true,
}, },
{ {
label: "报警类型", label: "设备编号",
type: "select", prop: "deviceNo",
dicUrl: "/api/blade-system/dict/dictionary?code=notice", span: 24,
props: { row: true,
label: "dictValue", },
value: "dictKey" {
}, label: "设备大类",
dataType: "number", prop: "deviceType",
slot: true, span: 24,
prop: "category", row: true,
search: true, },
{
label: "品牌编号",
prop: "brandNo",
span: 24,
row: true,
}, },
// {
// label: "",
// type: "select",
// dicUrl: "/api/blade-system/dict/dictionary?code=notice",
// props: {
// label: "dictValue",
// value: "dictKey"
// },
// dataType: "number",
// slot: true,
// prop: "category",
// search: true,
// },
{ {
label: "所属区域", label: "所属区域",
prop: "floor", prop: "floor",
slot: true, // slot: true,
}, },
{ {
label: "安装位置", label: "安装位置",
prop: "address", prop: "address",
slot: true, // slot: true,
}, },
{ {
label: "报警信息", label: "报警信息",
prop: "address", prop: "alarmInfo",
slot: true, slot: true,
overHidden:true
}, },
{ {
label: "报警时间", label: "报警时间",
prop: "releaseTime", prop: "alarmTime",
type: "date",
},
{
label: "消报时间",
prop: "cancelTime",
type: "date", type: "date",
}, },
] ]
}, },
data: [] data: [],
videoData:[]
}; };
}, },
computed: { computed: {
@ -272,31 +329,74 @@
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
const {releaseTimeRange} = this.query; // const {releaseTimeRange} = this.query;
let values = { // let values = {
...params, // ...params,
...this.query // ...this.query
}; // };
if (releaseTimeRange) { // if (releaseTimeRange) {
values = { // values = {
...values, // ...values,
releaseTime_datege: releaseTimeRange[0], // releaseTime_datege: releaseTimeRange[0],
releaseTime_datelt: releaseTimeRange[1], // releaseTime_datelt: releaseTimeRange[1],
}; // };
values.releaseTimeRange = null; // values.releaseTimeRange = null;
} // }
this.loading = true; // this.loading = true;
getList(page.currentPage, page.pageSize, values).then(res => { // getList(page.currentPage, page.pageSize, values).then(res => {
const data = res.data.data; // const data = res.data.data;
this.page.total = data.total; // this.page.total = data.total;
this.data = data.records; // this.data = data.records;
this.loading = false; // this.loading = false;
this.selectionClear(); // this.selectionClear();
}); // });
} this.data = [
{title:'空调',deviceNo:'A101',deviceType:'空调设备',brandNo:'格力AT51',floor:'一号楼一层北',address:'1011室',alarmInfo:'无法制冷',alarmTime:'2023-07-14 09:55:23',cancelTime:'2023-07-15 15:23:10'},
{title:'空调',deviceNo:'A101',deviceType:'空调设备',brandNo:'格力AT51',floor:'一号楼一层北',address:'1011室',alarmInfo:'无法制冷,无法制冷无法制冷',alarmTime:'2023-07-14 09:55:23',cancelTime:''},
];
this.loading = false;
this.page.total = this.data.length
},
//
linkVideo(){
this.dialogVisible = true;
this.videoData = [
{id:'001',url:'cdcdcdcd',name:'视频一'},
{id:'002',url:'cdcdcdcd',name:'视频一'},
{id:'003',url:'cdcdcdcd',name:'视频一'},
{id:'004',url:'cdcdcdcd',name:'视频一'},
{id:'005',url:'cdcdcdcd',name:'视频一'},
{id:'006',url:'cdcdcdcd',name:'视频一'},
{id:'007',url:'cdcdcdcd',name:'视频一'},
{id:'008',url:'cdcdcdcd',name:'视频一'},
]
},
} }
}; };
</script> </script>
<style> <style lang="scss" scoped>
</style>
<style lang="scss">
.video_dia{
.video_box{
width: 100%;
// display: flex;
// justify-content: space-between;
// flex-wrap: wrap;
.grid-content {
width: 100%;
height: 200px;
margin-bottom: 18px;
background: #959595;
video{
width: 100%;
height: 100%;
}
}
}
}
</style> </style>

Loading…
Cancel
Save