Update commandDispatch.vue

注释掉 警情推送页面的 弹窗穿透样式
This commit is contained in:
TimSpan 2024-12-25 10:24:56 +08:00
parent a3774557d1
commit a76fb07aab
1 changed files with 458 additions and 427 deletions

View File

@ -3,28 +3,43 @@
<div style="height: 100%; vertical-align: middle"> <div style="height: 100%; vertical-align: middle">
<div style="padding: 10px 15px"> <div style="padding: 10px 15px">
<span style="color: rgba(0, 0, 0, 0.4392156863); margin-right: 10px">区域:</span> <span style="color: rgba(0, 0, 0, 0.4392156863); margin-right: 10px">区域:</span>
<a-tree-select v-model:value="value1" style="width: 200px" <a-tree-select
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择" :tree-data="treedata" v-model:value="value1"
labelInValue="true" :field-names="{ style="width: 200px"
:dropdown-style="{maxHeight: '400px', overflow: 'auto'}"
placeholder="请选择"
:tree-data="treedata"
labelInValue="true"
:field-names="{
children: 'children', children: 'children',
value: 'title', value: 'title',
label: 'title', label: 'title'
}" tree-node-filter-prop="title"> }"
tree-node-filter-prop="title"
>
<template #suffixIcon> <template #suffixIcon>
<SmileOutlined /> <SmileOutlined />
</template> </template>
</a-tree-select> </a-tree-select>
<span style="color: rgba(0, 0, 0, 0.4392156863); margin-right: 10px; margin-left: 20px">时间:</span> <span style="color: rgba(0, 0, 0, 0.4392156863); margin-right: 10px; margin-left: 20px">时间:</span>
<el-date-picker v-model="value2" :disabled-date="disabledDate" type="datetimerange" range-separator="" <el-date-picker
start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" v-model="value2"
format="YYYY-MM-DD HH:mm:ss" date-format="YYYY/MM/DD ddd" time-format="A hh:mm:ss" :disabled-date="disabledDate"
style="vertical-align: middle; width: 335px"> type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD HH:mm:ss"
format="YYYY-MM-DD HH:mm:ss"
date-format="YYYY/MM/DD ddd"
time-format="A hh:mm:ss"
style="vertical-align: middle; width: 335px"
>
</el-date-picker> </el-date-picker>
<a-button type="primary" style="margin-left: 10px" @click="seach">查询</a-button> <a-button type="primary" style="margin-left: 10px" @click="seach">查询</a-button>
</div> </div>
<div style="margin: 5px auto; height: calc(100% - 116px); width: 100%; overflow: auto"> <div style="margin: 5px auto; height: calc(100% - 116px); width: 100%; overflow: auto">
<el-table :data="tableData" border="false" highlight-current-row="false" style="width: 100%" <el-table :data="tableData" border="false" highlight-current-row="false" style="width: 100%" height="calc(100% )">
height="calc(100% )">
<el-table-column type="index" width="60" label="序号" fixed="left" align="center" /> <el-table-column type="index" width="60" label="序号" fixed="left" align="center" />
<!-- <el-table-column prop="timestamp" label="报警时间" align="center" show-overflow-tooltip width="170"/> --> <!-- <el-table-column prop="timestamp" label="报警时间" align="center" show-overflow-tooltip width="170"/> -->
<el-table-column prop="timestamp" label="报警时间" align="center" show-overflow-tooltip width="170" /> <el-table-column prop="timestamp" label="报警时间" align="center" show-overflow-tooltip width="170" />
@ -50,13 +65,12 @@
width="170" /> --> width="170" /> -->
<el-table-column align="center" label="转发110状态" width="90" fixed="right"> <el-table-column align="center" label="转发110状态" width="90" fixed="right">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.translateState=='1'">转发成功</span> <span v-if="scope.row.translateState == '1'">转发成功</span>
<span v-if="scope.row.translateState=='2'">转发失败</span> <span v-if="scope.row.translateState == '2'">转发失败</span>
<span v-else>未转发</span> <span v-else>未转发</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="translateTime" label="转发110时间" align="center" show-overflow-tooltip <el-table-column prop="translateTime" label="转发110时间" align="center" show-overflow-tooltip width="170" />
width="170" />
<el-table-column align="center" label="文件列表" width="90" fixed="right"> <el-table-column align="center" label="文件列表" width="90" fixed="right">
<template #default="scope"> <template #default="scope">
<a-button type="link" @click="fileinfo(scope.row)">查看</a-button> <a-button type="link" @click="fileinfo(scope.row)">查看</a-button>
@ -68,21 +82,25 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination style="position: absolute; right: 60px; margin-top: 10px" <el-pagination style="position: absolute; right: 60px; margin-top: 10px" @current-change="handleCurrentChange2" :page-size="20" layout="total, prev, pager, next" :total="total2">
@current-change="handleCurrentChange2" :page-size="20" layout="total, prev, pager, next"
:total="total2">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
<el-dialog title="文件列表" v-model="dialogVisible" width="30%" :before-close="handleClose"> <el-dialog title="文件列表" v-model="dialogVisible" width="30%" :before-close="handleClose">
<ul v-if="fileList"> <ul v-if="fileList">
<li v-if="fileList.length > 0" style="display: inline-block; margin-right: 5px" <li v-if="fileList.length > 0" style="display: inline-block; margin-right: 5px" v-for="(item, index) in fileList">
v-for="(item, index) in fileList"> <el-image
<el-image style="width: 150px; height: 150px" v-if="item.type == 'image'" :src="item.url" style="width: 150px; height: 150px"
:zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[item.url]" v-if="item.type == 'image'"
:initial-index="4" fit="cover" /> :src="item.url"
<video width="150" height="150" v-if="item.type == 'video'" :src="item.url" autoplay="autoplay" :zoom-rate="1.2"
controls></video> :max-scale="7"
:min-scale="0.2"
:preview-src-list="[item.url]"
:initial-index="4"
fit="cover"
/>
<video width="150" height="150" v-if="item.type == 'video'" :src="item.url" autoplay="true" controls></video>
</li> </li>
<el-empty v-else :image-size="150"></el-empty> <el-empty v-else :image-size="150"></el-empty>
</ul> </ul>
@ -90,14 +108,14 @@
<!-- 详情 --> <!-- 详情 -->
<el-dialog title="警情详情" v-model="dialogVisible1" width="60%" :before-close="handleClose"> <el-dialog title="警情详情" v-model="dialogVisible1" width="60%" :before-close="handleClose">
<div class="uploadBtn" style="text-align: right; margin-right: 10px"> <div class="uploadBtn" style="text-align: right; margin-right: 10px; margin-bottom: 5px">
<el-button type="primary" v-if="showdata.state != 'close'" @click="close(showdata)">关闭</el-button> <el-button type="primary" v-if="showdata.state != 'close'" @click="close(showdata)">关闭</el-button>
<el-button type="primary" @click="onSubmit"><el-icon> <el-button type="primary" @click="onSubmit"
<Download /> ><el-icon> <Download /> </el-icon></el-button
</el-icon></el-button> >
<el-button><el-icon> <el-button
<Printer /> ><el-icon> <Printer /> </el-icon></el-button
</el-icon></el-button> >
</div> </div>
<el-descriptions title="" border direction="" :column="2"> <el-descriptions title="" border direction="" :column="2">
@ -114,13 +132,19 @@
<el-descriptions-item label="推送110状态"><el-tag type="danger">失败</el-tag></el-descriptions-item> <el-descriptions-item label="推送110状态"><el-tag type="danger">失败</el-tag></el-descriptions-item>
<el-descriptions-item label="文件列表"> <el-descriptions-item label="文件列表">
<ul v-if="fileList"> <ul v-if="fileList">
<li v-if="fileList.length > 0" style="display: inline-block; margin-right: 5px" <li v-if="fileList.length > 0" style="display: inline-block; margin-right: 5px" v-for="(item, index) in fileList">
v-for="(item, index) in fileList"> <el-image
<el-image style="width: 150px; height: 150px" v-if="item.type == 'image'" :src="item.url" style="width: 150px; height: 150px"
:zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[item.url]" v-if="item.type == 'image'"
:initial-index="4" fit="cover" /> :src="item.url"
<video width="150" height="150" v-if="item.type == 'video'" :src="item.url" :zoom-rate="1.2"
autoplay="autoplay" controls></video> :max-scale="7"
:min-scale="0.2"
:preview-src-list="[item.url]"
:initial-index="4"
fit="cover"
/>
<video width="150" height="150" v-if="item.type == 'video'" :src="item.url" autoplay="true" controls></video>
</li> </li>
<el-empty v-else :image-size="150"></el-empty> <el-empty v-else :image-size="150"></el-empty>
</ul> </ul>
@ -131,49 +155,49 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, getCurrentInstance, onMounted } from 'vue' import {ref, reactive, getCurrentInstance, onMounted} from 'vue'
const { proxy } = getCurrentInstance() as any const {proxy} = getCurrentInstance() as any
const day = proxy.day const day = proxy.day
import api from '@/axios' import api from '@/axios'
import { ElMessage } from 'element-plus' import {ElMessage} from 'element-plus'
// const screenWidth = ref<number>(0) // const screenWidth = ref<number>(0)
// const screenHeight = ref<number>(0) // const screenHeight = ref<number>(0)
onMounted(() => { onMounted(() => {
seach() seach()
gettreedata() gettreedata()
}) })
const disabledDate = (time) => { const disabledDate = (time: any) => {
return time.getTime() > Date.now() - 8.64e6 return time.getTime() > Date.now() - 8.64e6
} }
// //
const close = (info) => { const close = (info: any) => {
api api
.post('/multialarm/client/alarm_event/close', { .post('/multialarm/client/alarm_event/close', {
eventId: info.multiAlarmId, eventId: info.multiAlarmId
}) })
.then((res) => { .then((res) => {
// console.log('', res) // console.log('', res)
if (res.code == 0) { if (res.code == 0) {
ElMessage({ ElMessage({
message: '关闭成功', message: '关闭成功',
type: 'success', type: 'success'
}) })
dialogVisible1.value = false dialogVisible1.value = false
} else { } else {
ElMessage.error('关闭失败') ElMessage.error('关闭失败')
} }
}) })
} }
// //
const expandedKeysb = ref([]) const expandedKeysb = ref([])
const selectedKeysb = ref([]) const selectedKeysb = ref([])
const checkedKeysb = ref([]) const checkedKeysb = ref([])
// //
const treedata = ref() const treedata = ref()
const gettreedata = () => { const gettreedata = () => {
api api
.post('/common/client/user/org/tree', { .post('/common/client/user/org/tree', {
name: localStorage.getItem('loginname'), name: localStorage.getItem('loginname')
}) })
.then((res) => { .then((res) => {
console.log('过滤树', res) console.log('过滤树', res)
@ -181,24 +205,24 @@
treedata.value = res.data treedata.value = res.data
} }
}) })
} }
const selectB = () => { } const selectB = () => {}
let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue'] let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue']
const dialogVisible = ref(false) const dialogVisible = ref(false)
const dialogVisible1 = ref(false) const dialogVisible1 = ref(false)
const handleClose = () => { const handleClose = () => {
dialogVisible.value = false dialogVisible.value = false
dialogVisible1.value = false dialogVisible1.value = false
} }
const fileList = ref([]) const fileList = ref([])
const ipcList = ref([]) const ipcList = ref([])
const fileinfo = (data) => { const fileinfo = (data: any) => {
api api
.post('/multialarm/client/alarm_event/get_all_resource', { .post('/multialarm/client/alarm_event/get_all_resource', {
range: 1000, range: 1000,
multiAlarmId: data.multiAlarmId, multiAlarmId: data.multiAlarmId
}) })
.then((res) => { .then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
console.log('ress', res) console.log('ress', res)
fileList.value = res.data.fileList fileList.value = res.data.fileList
@ -206,26 +230,31 @@
} }
}) })
dialogVisible.value = true dialogVisible.value = true
} }
const showdata = ref() const showdata = ref()
const fileinfo1 = (data) => { const fileinfo1 = (data: any) => {
showdata.value = data showdata.value = data
dialogVisible1.value = true dialogVisible1.value = true
} }
const value2 = ref('') const value2 = ref<any>('')
let value1 = ref('')
const tableData = ref([]) let value1 = ref<any>('')
// const tableData = ref<any>([])
const pageNum2 = ref(1) //
const handleCurrentChange2 = (data) => { const pageNum2 = ref(1)
const handleCurrentChange2 = (data: any) => {
console.log(value2)
pageNum2.value = data pageNum2.value = data
api api
.post('/multialarm/client/sensor/alarm_event/getlist', { .post('/multialarm/client/sensor/alarm_event/getlist', {
start: value2._rawValue[0], // start: value2._rawValue[0],
end: value2._rawValue[1], // end: value2._rawValue[1],
start: value2.value[0],
end: value2.value[1],
pagesize: 20, pagesize: 20,
pageindex: data - 1, pageindex: data - 1,
city: city == '湖南省' ? null : city, city: city == '湖南省' ? null : city
}) })
.then((res) => { .then((res) => {
console.log('安保点位', res) console.log('安保点位', res)
@ -233,31 +262,34 @@
tableData.value = res.data tableData.value = res.data
} }
}) })
} }
const total2 = ref() const total2 = ref()
const seach = () => { const seach = () => {
console.log(value1)
if (value1.value == '' || value1.value == undefined) { if (value1.value == '' || value1.value == undefined) {
} else { } else {
city = value1.value.value city = value1.value.value
} }
api api
.post('/multialarm/client/sensor/alarm_event/getcount', { .post('/multialarm/client/sensor/alarm_event/getcount', {
start: value2._rawValue[0], start: value2.value[0],
end: value2._rawValue[1], end: value2.value[1],
city: city == '湖南省' ? null : city, city: city == '湖南省' ? null : city
}) })
.then((res) => { .then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
total2.value = res.data.count total2.value = res.data.count
} }
}) })
api api
.post('/multialarm/client/sensor/alarm_event/getlist', { .post('/multialarm/client/sensor/alarm_event/getlist', {
start: value2._rawValue[0], start: value2.value[0],
end: value2._rawValue[1], end: value2.value[1],
pagesize: 20, pagesize: 20,
pageindex: 0, pageindex: 0,
city: city == '湖南省' ? null : city, city: city == '湖南省' ? null : city
}) })
.then((res) => { .then((res) => {
// console.log('', res) // console.log('', res)
@ -265,160 +297,159 @@
tableData.value = res.data tableData.value = res.data
} }
}) })
} }
const onSubmit = function () {}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.cont { .cont {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #fff; background-color: #fff;
} }
.demo-tabs>.el-tabs__content {
}
:deep(.el-descriptions) { // :deep(.el-descriptions) {
width: 98%; // width: 98%;
margin: 10px auto; // margin: 10px auto;
text-align: center; // text-align: center;
border: 1px solid #1F9BD9; // border: 1px solid #1F9BD9;
--el-descriptions-table-border: { // --el-descriptions-table-border: {
1px solid #1F9BD9 // 1px solid #1F9BD9
} // }
; // ;
--el-descriptions-item-bordered-label-background: { // --el-descriptions-item-bordered-label-background: {
transparent // transparent
} // }
; // ;
} // }
:deep(.el-descriptions__body) { // :deep(.el-descriptions__body) {
background: transparent; // background: transparent;
} // }
:deep(.el-descriptions__label) { // :deep(.el-descriptions__label) {
width: 130px; // width: 130px;
color: rgb(12, 214, 254); // color: rgb(12, 214, 254);
background: transparent; // background: transparent;
} // }
:deep(.el-descriptions__content.el-descriptions__cell.is-bordered-content) { // :deep(.el-descriptions__content.el-descriptions__cell.is-bordered-content) {
color: #fff; // color: #fff;
} // }
:deep(.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell) { // :deep(.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell) {
border: 1px solid #1F9BD9; // border: 1px solid #1F9BD9;
} // }
.uploadBtn .el-button { .uploadBtn .el-button {
background-color: transparent; background-color: transparent;
border-color: #1F9BD9; border-color: #1F9BD9;
color: #1F9BD9; color: #1F9BD9;
} }
.uploadBtn .el-button i { .uploadBtn .el-button i {
font-size: 16px; font-size: 16px;
margin-right: 3px; margin-right: 3px;
} }
.uploadBtn .el-button:hover { .uploadBtn .el-button:hover {
color: rgb(12, 214, 254); color: rgb(12, 214, 254);
border: 1px solid rgb(12, 214, 254); border: 1px solid rgb(12, 214, 254);
} }
:deep(.el-dialog__body) { // :deep(.el-dialog__body) {
padding: 10px; // padding: 10px;
color: #fff; // color: #fff;
} // }
:deep(.el-dialog) { // :deep(.el-dialog) {
--el-dialog-bg-color: #071D4D; // --el-dialog-bg-color: #071D4D;
border: 3px solid #387dbf; // border: 3px solid #387dbf;
} // }
:deep(.el-dialog__header) { // :deep(.el-dialog__header) {
padding: 13px; // padding: 13px;
border-bottom: 1px solid #3374b4 !important; // border-bottom: 1px solid #3374b4 !important;
margin-right: 0px; // margin-right: 0px;
} // }
:deep(.el-dialog__title) { // :deep(.el-dialog__title) {
color: #067bc1 !important; // color: #067bc1 !important;
font-weight: 500; // font-weight: 500;
} // }
:deep(.el-input__inner) {
// :deep(.el-dialog__headerbtn .el-dialog__close) {
// color: #fff;
// font-weight: 500;
// font-size: 18px;
// }
:deep(.el-input__inner) {
color: #000; color: #000;
} }
:deep(.el-dialog__headerbtn .el-dialog__close) { :deep(.el-tabs__nav-wrap::after) {
color: #fff;
font-weight: 500;
font-size: 18px;
}
:deep(.el-tabs__nav-wrap::after) {
background-color: #d9d9d95e; background-color: #d9d9d95e;
height: 4px; height: 4px;
} }
:deep(.el-tabs__item) { :deep(.el-tabs__item) {
color: #fff; color: #fff;
font-weight: 700; font-weight: 700;
} }
:deep(.el-tabs) { :deep(.el-tabs) {
--el-tabs-header-height: 50px; --el-tabs-header-height: 50px;
} }
:deep(.el-tabs__item.is-active) { :deep(.el-tabs__item.is-active) {
color: #409eff; color: #409eff;
} }
:deep(.el-tabs__active-bar) { :deep(.el-tabs__active-bar) {
height: 4px; height: 4px;
} }
:deep(.el-tabs__nav-wrap) { :deep(.el-tabs__nav-wrap) {
padding-left: 23px; padding-left: 23px;
} }
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
background-color: transparent; background-color: transparent;
// box-shadow: 0 0 0 1px #1F9BD9; // box-shadow: 0 0 0 1px #1F9BD9;
} }
:deep(.el-date-editor .el-range-separator) { :deep(.el-date-editor .el-range-separator) {
color: #fff; color: #fff;
} }
:deep(.el-input__prefix) { :deep(.el-input__prefix) {
color: #fff; color: #fff;
} }
:deep(.el-button) { :deep(.el-button) {
background-color: transparent; background-color: transparent;
border-color: #0cd6fe; border-color: #0cd6fe;
color: #ff4d4f; color: #ff4d4f;
} }
:deep(.el-date-editor .el-range-input) { :deep(.el-date-editor .el-range-input) {
color: #000; color: #000;
} }
:deep(.el-table .el-table__cell) { :deep(.el-table .el-table__cell) {
padding: 2px 0px; padding: 2px 0px;
border-right: none; border-right: none;
border-bottom: 1px solid #edeef0; border-bottom: 1px solid #edeef0;
} }
:deep(.el-table) { :deep(.el-table) {
--el-table-border: { --el-table-border: {
none; none;
@ -431,59 +462,59 @@
} }
// ; // ;
} }
:deep(.el-table th.el-table__cell) { :deep(.el-table th.el-table__cell) {
background-color: #f9fafc; background-color: #f9fafc;
padding: 10px 0px; padding: 10px 0px;
// color: #888; // color: #888;
} }
:deep(.el-table .cell) { :deep(.el-table .cell) {
color: #333; color: #333;
} }
:deep(.el-table thead .cell) { :deep(.el-table thead .cell) {
color: #888; color: #888;
} }
:deep(.el-table tr) { :deep(.el-table tr) {
// background-color: transparent; // background-color: transparent;
} }
:deep(.el-table__body tr.current-row > td) { :deep(.el-table__body tr.current-row > td) {
// background: #2cabff !important; // background: #2cabff !important;
} }
:deep(.el-table--enable-row-hover .el-table__body tr:hover>td) { :deep(.el-table--enable-row-hover .el-table__body tr:hover>td) {
// background-color: #13306A !important; // background-color: #13306A !important;
} }
:deep(.el-table th.el-table__cell) { :deep(.el-table th.el-table__cell) {
// background-color:#13306A; // background-color:#13306A;
} }
:deep(.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell) { :deep(.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell) {
// background: #D1DEEF !important; // background: #D1DEEF !important;
} }
:deep(.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell) { :deep(.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell) {
// background-color: transparent; // background-color: transparent;
} }
:deep(.el-tabs) { :deep(.el-tabs) {
height: 100%; height: 100%;
} }
:deep(.el-tabs__content) { :deep(.el-tabs__content) {
height: calc(100% - 53px); height: calc(100% - 53px);
} }
:deep(.el-tab-pane) { :deep(.el-tab-pane) {
height: 100%; height: 100%;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
background-color: #071D4D; background-color: #071D4D;
} }
</style> </style>