济菏高速业务端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2388 lines
65 KiB

<template>
<div>
<el-dialog
:title="title"
:visible.sync="details"
:before-close="cancel"
width="60%"
text-align="left"
:style="processType ? 'left: 13%' : ''"
class="detailsDialog"
:close-on-click-modal="false"
ref="upload"
:modal="false"
append-to-body
>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<div class="videoDialogBox">
<div
style="display: none"
class="processButton"
@click="openProcess()"
:class="processType ? 'el-icon-s-fold' : 'el-icon-s-unfold'"
>
预警处置
</div>
<div class="dialogBg">
<div style="padding: 6px 0">事发时抓图或录像</div>
<!-- <video :src="eventForm.videoUrl" controls muted loop fluid></video> -->
<div class="picBox">
<swiper
class="swiper gallery-top"
:options="swiperOptionTop"
ref="swiperTop"
v-show="eventFormDetail.iconUrlList.length >= 1"
>
<!-- slides -->
<swiper-slide
v-for="(item, index) in eventFormDetail.iconUrlList"
:key="index"
:class="'slide-' + index"
>
<video
:src="item.imgUrl"
:poster="item.imgUrl"
v-if="index == 0"
@click="openPicDialog(eventFormDetail)"
class="leftVideo"
autoplay
muted
loop
></video>
<img
:src="item.imgUrl"
style="width: 100%; height: 100%"
v-if="index != 0"
@click="clickImg(item.imgUrl)"
/>
</swiper-slide>
<!-- <div class="swiper-scrollbar" slot="scrollbar"></div> -->
</swiper>
<swiper
class="swiper gallery-thumbs"
:options="swiperOptionThumbs"
ref="swiperThumbs"
v-show="eventFormDetail.iconUrlList.length >= 1"
>
<swiper-slide
v-for="(item, index) in eventFormDetail.iconUrlList"
:key="index"
:class="'slide-' + index"
>
<video
:src="item.imgUrl"
:poster="item.imgUrl"
v-if="index == 0"
autoplay
muted
loop
></video>
<img
:src="item.imgUrl"
style="width: 100%; height: 100%"
v-if="index != 0"
/>
</swiper-slide>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
</swiper>
<div
v-show="eventFormDetail.iconUrlList.length < 1"
style="width: 100%; height: 300px"
>
<el-image
style="width: 100%; height: 100%"
:src="noPic"
:fit="contain"
>
</el-image>
</div>
</div>
</div>
<div class="dialogBg dialogBg2">
<div style="padding: 6px 0">
实时视频<span>(事发位置最近的监控视频)</span>
</div>
<div class="picBox">
<el-carousel
trigger="click"
:autoplay="false"
v-if="videoList.length >= 1"
>
<el-carousel-item
v-for="(item, index) in videoList"
:key="index"
v-show="item.liveUrl != null"
>
<videoPlayer
v-show="item.liveUrl != null && item.liveUrl != ''"
:rtsp="item.liveUrl"
:open="cameraPlayer"
></videoPlayer>
</el-carousel-item>
</el-carousel>
<el-image
v-show="videoList.length < 1"
:src="noDataUrl"
:fit="contain"
>
</el-image>
</div>
<!-- 现场用这个 -->
<!-- <video
id="h5sVideo1"
class="h5video_"
controls
muted
loop
autoplay
webkit-playsinline
playsinline
disablePictureInPicture="true"
controlslist="nodownload noplaybackrate noremoteplayback"
style="width: 100%; height: 290px; object-fit: cover; z-index: -100"
></video> -->
</div>
</div>
<div class="dialogForm">
<el-form
ref="eventFormDetail"
:model="eventFormDetail"
label-width="80px"
:rules="rules"
>
<el-row style="display: flex; flex-wrap: wrap">
<el-col :span="8">
<el-form-item label="告警来源" prop="eventSource">
<el-select
v-model="eventFormDetail.eventSource"
disabled
placeholder="请选择告警来源"
style="width: calc(100% - 10px)"
>
<el-option
v-for="item in fromList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="告警时间" prop="eventTime">
<el-date-picker
clearable
size="small"
disabled
v-model="eventFormDetail.eventTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择告警时间"
style="width: calc(100% - 10px)"
:picker-options="setDisabled"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="持续时长" prop="endTime">
<!-- <el-date-picker
@change="changeEndTime"
clearable
size="small"
v-model="eventFormDetail.endTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择预计解除时间"
style="width: calc(100% - 10px)"
>
</el-date-picker> -->
<el-input
v-model="eventFormDetail.continuedTime"
readonly
style="width: calc(100% - 10px)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属隧道" prop="tunnelName">
<el-select
v-model="eventFormDetail.tunnelName"
placeholder="请选择所属隧道"
clearable
size="small"
disabled
style="width: calc(100% - 10px)"
@change="getReservePlanData"
>
<el-option
v-for="item in tunnelList"
:key="item.tunnelId"
:label="item.tunnelName"
:value="item.tunnelId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-row>
<el-col :span="15">
<el-form-item label="事件起点" prop="stakeNum1">
<el-row class="inputNumStyle">
<el-col :span="22" style="margin-right: 2px">
<el-input
v-model="eventFormDetail.stakeNum1"
placeholder="Km"
oninput="value=value.replace(/[^\d]/g,'')"
width="100%"
>
<template slot="prepend">K</template>
</el-input>
</el-col>
<el-col :span="1"> +</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item prop="stakeNum2" label-width="0px">
<el-row>
<el-col :span="22">
<el-input
v-model="eventFormDetail.stakeNum2"
placeholder="m"
oninput="value=value.replace(/[^\d]/g,'')"
width="100%"
/>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="事件终点">
<el-row class="inputNumStyle">
<el-col :span="11">
<el-input
v-model="eventFormDetail.stakeEndNum1"
placeholder="Km"
oninput="value=value.replace(/[^\d]/g,'')"
width="100%"
>
<template slot="prepend">K</template>
</el-input>
</el-col>
<el-col :span="1">+</el-col>
<el-col :span="11">
<el-input
v-model="eventFormDetail.stakeEndNum2"
placeholder="m"
oninput="value=value.replace(/[^\d]/g,'')"
width="100%"
/>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="影响方向" prop="direction">
<el-select
v-model="eventFormDetail.direction"
placeholder="方向"
clearable
size="small"
style="width: calc(100% - 10px)"
@change="getReservePlanData"
>
<el-option
v-for="item in directionList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="影响车道" prop="laneNo">
<el-select
v-model="eventFormDetail.laneNo"
placeholder="车道"
clearable
size="small"
multiple
collapse-tags
style="width: calc(100% - 10px)"
>
<el-option
v-for="(item, index) in chezhiLaneList"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="事件车辆" prop="confidenceList">
<el-input
v-model="eventFormDetail.confidenceList"
placeholder=""
style="width: calc(100% - 10px)"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="影响描述" prop="eventDescription">
<el-input
v-model="eventFormDetail.eventDescription"
placeholder="影响描述"
style="width: calc(100% - 10px)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预估类型" prop="eventTypeId">
<el-select
v-model="eventFormDetail.eventTypeId"
clearable
size="small"
style="width: 100%"
@change="getReservePlanData"
>
<el-option
v-for="(item, index) in eventTypeData"
:key="index"
:label="item.simplifyName"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预估等级" prop="eventGrade">
<el-select
v-model="eventFormDetail.eventGrade"
clearable
size="small"
style="width: calc(100% - 10px)"
@change="getReservePlanData"
>
<el-option
v-for="(item, index) in eventGradeList"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="复核结果" prop="eventState">
<el-radio-group
v-model="eventFormDetail.eventState"
@input="eventStateChange"
>
<el-radio :label="4"> 确认(已处理) </el-radio>
<el-radio :label="2"> 挂起(稍后处理) </el-radio>
<el-radio :label="5"> 误报 </el-radio>
<el-radio :label="0"> 突发事件处置 </el-radio>
</el-radio-group>
<span style="color: #c59105">(请根据复核判定结果选择)</span>
</el-form-item>
</el-col>
<div style="width: 100%">
<el-col :span="24" v-show="eventFormDetail.eventState == 4">
<el-form-item prop="reviewRemark">
<el-checkbox-group
v-model="eventFormDetail.reviewRemark"
class="checkBox"
>
<el-checkbox-button
label="已线下处理"
value="已线下处理"
></el-checkbox-button>
<el-checkbox-button
label="车辆已驶离"
value="车辆已驶离"
></el-checkbox-button>
<el-checkbox-button
label="施工车辆"
value="施工车辆"
></el-checkbox-button>
<el-checkbox-button
label="正常施工作业"
value="正常施工作业"
></el-checkbox-button>
<el-checkbox-button
label="其他"
value="其他"
></el-checkbox-button>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="24" v-show="eventFormDetail.eventState == 2">
<el-form-item prop="reviewRemark">
<el-checkbox-group
v-model="eventFormDetail.reviewRemark"
class="checkBox"
>
<el-checkbox-button
label="稍后处理"
value="稍后处理"
></el-checkbox-button>
<el-checkbox-button
label="持续跟踪,事态发展情况"
value="持续跟踪,事态发展情况"
></el-checkbox-button>
<el-checkbox-button
label="已通知高警现场处理"
value="已通知高警现场处理"
></el-checkbox-button>
<el-checkbox-button
label="已通知路政现场处理"
value="已通知路政现场处理"
></el-checkbox-button>
<el-checkbox-button
label="其他"
value="其他"
></el-checkbox-button>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="24" v-show="eventFormDetail.eventState == 5">
<el-form-item prop="reviewRemark">
<el-checkbox-group
v-model="eventFormDetail.reviewRemark"
class="checkBox"
>
<el-checkbox-button
label="系统误报"
value="系统误报"
></el-checkbox-button>
<el-checkbox-button
label="误报或涉事车辆已驶离"
value="误报或涉事车辆已驶离"
></el-checkbox-button>
<el-checkbox-button
label="无法复核事发情况"
value="无法复核事发情况"
></el-checkbox-button>
<el-checkbox-button
label="其他"
value="其他"
></el-checkbox-button>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col
:span="24"
v-if="
eventFormDetail.eventState == 0 &&
eventFormDetail.prevControlType == 0
"
>
<el-form-item prop="currencyId">
<el-select
v-model="eventFormDetail.currencyId"
placeholder="请选择预案"
style="width: 30%"
>
<el-option
v-for="item in ReservePlanList"
:key="item.id"
:label="item.planName"
:value="item.id"
></el-option>
</el-select>
<el-button
size="small"
v-show="eventFormDetail.currencyId"
@click="openDoor(eventFormDetail)"
>查看</el-button
>
<span style="color: #c59105"
>(事件处置预案根据事件类型、事件等级智能推荐,处置过程中允许升级及更改预案)</span
>
</el-form-item>
</el-col>
<el-col
:span="24"
v-if="
eventFormDetail.eventState == 0 &&
eventFormDetail.prevControlType == 1
"
>
<el-form-item prop="currencyId">
<el-select
v-model="eventFormDetail.currencyId"
placeholder="请选择预案"
>
<el-option
v-for="item in ReservePlanList"
:key="item.id"
:label="item.planName"
:value="item.id"
></el-option>
</el-select>
<el-button
size="small"
type="primary"
v-show="eventFormDetail.currencyId"
@click="openDoor(eventFormDetail)"
>查看</el-button
>
<span style="color: #c59105"
>(事件处置预案根据事件类型、事件等级智能推荐,处置过程中允许升级及更改预案)</span
>
</el-form-item>
</el-col>
<el-col
v-show="
eventIsShow(
eventFormDetail.reviewRemark,
eventFormDetail.eventState
)
"
>
<el-form-item prop="otherContent">
<el-input
placeholder="请输入其他原因内容"
v-model="eventFormDetail.otherContent"
></el-input>
</el-form-item>
</el-col>
</div>
</el-row>
</el-form>
<div class="dialogFooterButton">
<div @click="submitDialog" v-hasPermi="['system:event:check']">复核提交</div>
<!-- <div
@click="openProcess(1, eventFormDetail.id)"
>
处置
</div> -->
</div>
</div>
</el-dialog>
<!-- 视频展示 -->
<el-dialog
:visible.sync="picUrlDialog"
width="70%"
title="事件视频"
class="videoDialog"
>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<div class="videoDialogClass">
<video :src="videoUrl" controls muted loop fluid autoplay></video>
</div>
</el-dialog>
<!-- 图片展示 -->
<el-dialog
title="抓图详情"
:visible.sync="dialogVisibleImg"
width="60%"
:before-close="handleCloseImg"
>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<img :src="alongImgUrl" style="width: 100%" />
<!-- <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisibleImg = false">取 消</el-button>
<el-button type="primary" @click="dialogVisibleImg = false"
>确 定</el-button
>
</span> -->
</el-dialog>
<!-- 复核详情展示 -->
<el-dialog
title="设备详情"
:visible.sync="dialogVisibleDevice"
width="50%"
:before-close="handleClose"
class="explain-table"
>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<div>
<el-tabs v-model="activeName" @tab-click="handleClickDevice">
<el-tab-pane
v-for="(item, index) in DeviceDetail"
:key="index"
:label="item.tableName"
:name="item.tableName"
></el-tab-pane>
</el-tabs>
</div>
<div
v-for="(item, index) in DeviceDetail"
:key="index"
v-show="deviceIndexShow == index"
>
<el-table :data="item.devicesList" style="width: 100%" :key="tableKey">
<el-table-column prop="eqName" label="设备名称" align="center">
</el-table-column>
<el-table-column prop="pile" label="桩号" align="center">
</el-table-column>
<el-table-column prop="stateName" label="修改后状态" align="center">
</el-table-column>
</el-table>
</div>
<!-- <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisibleDevice = false"> </el-button>
<el-button type="primary" @click="dialogVisibleDevice = false"> </el-button>
</span> -->
</el-dialog>
</div>
</template>
<script>
import $ from "jquery";
import { mapState } from "vuex";
import { displayH5sVideoAll } from "@/api/icyH5stream";
import bus from "@/utils/bus";
import { loadPicture } from "@/api/equipment/type/api.js";
import {
image,
video,
userConfirm,
getEventCamera,
} from "@/api/eventDialog/api.js";
import {
listEventType,
getTodayEventCount,
getEventDetail,
handleStrategy,
} from "@/api/event/eventType";
import {
getTunnelList,
getTunnelLane,
updateEvent,
listEvent,
eventFlowList,
getEvent,
getReservePlanData,
} from "@/api/event/event";
import { examineDeviceDetail, getStrategyData } from "@/api/event/reservePlan";
import { listTunnels } from "@/api/equipment/tunnel/api";
import {
listDevices,
videoStreaming,
getDeviceById,
} from "@/api/equipment/eqlist/api";
import videoPlayer from "@/views/event/vedioRecord/myVideo.vue";
export default {
name: "eventDialog",
// props: ["eventId"],
components: {
videoPlayer,
// Swiper,
// SwiperSlide,
},
data() {
return {
tableKey: 0,
rules: {
otherContent: [
{ max: 100, message: "最长输入100个字符", trigger: "blur" },
],
stakeNum1: [
{
required: true,
message: "请输入事件起点",
trigger: "change",
},
],
stakeNum2: [
{
required: true,
message: "请输入事件起点",
trigger: "change",
},
],
direction: [
{
required: true,
message: "请选择影响车道",
trigger: "change",
},
],
eventTypeId: [
{
required: true,
message: "请选择预估类型",
trigger: "change",
},
],
eventGrade: [
{
required: true,
message: "请选择预估等级",
trigger: "change",
},
],
currencyId: [
{
required: true,
message: "请选择预案",
trigger: "change",
},
],
confidenceList: [
{
required: false,
validator: this.confidenceListRules,
trigger: "blur",
},
],
},
processDialog: "false",
deviceIndexShow: 0,
activeName: "",
dialogVisibleDevice: false,
DeviceDetail: [],
alongImgUrl: "",
dialogVisibleImg: false,
picUrlDialog: false,
queryParams1: {
pageNum: 1,
pageSize: 10,
faultType: null,
faultDescription: "",
tunnelId: "",
},
noPic: require("@/assets/image/noPic.png"),
noDataUrl: require("@/assets/image/noVideo.png"),
contain: "contain",
noPic: require("@/assets/image/noPic.png"),
prevControlType: "",
details: false,
urls: [],
videoUrl: "",
row11: null,
// event: [{}],
eventMes: {},
eventTypeData: [],
eventId: "",
video1: "",
video2: "",
title: "",
processType: false,
// 详情弹窗内
eventFormDetail: {
stakeNum1: "",
stakeNum2: "",
stakeEndNum1: "",
stakeEndNum2: "",
iconUrlList: [],
reviewRemark: [],
eventState: "4",
},
swiperOptionTop: {
loop: false,
loopedSlides: 5, // looped slides should be the same
spaceBetween: 10,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
},
swiperOptionThumbs: {
loop: false,
loopedSlides: 5, // looped slides should be the same
spaceBetween: 10,
centeredSlides: true,
slidesPerView: "auto",
touchRatio: 0.2,
slideToClickedSlide: true,
},
eventForm: {
stakeNum1: "",
stakeNum2: "",
stakeEndNum1: "",
stakeEndNum2: "",
iconUrlList: [],
reviewRemark: [],
eventState: "1",
},
iconUrlListAll: [],
ReservePlanList: [],
detailsButtonType: 1,
eventGradeList: "", //事件等级
detailsDisabled: false,
videoList: [],
// 表单校验
// rules: {
// /* tunnelId: [{required: true, message: '请选择隧道名称', trigger: 'blur'}], */
// eventTitle: [
// { required: true, message: "请输入事件标题", trigger: "blur" },
// ],
// eventTypeId: [
// { required: true, message: "请选择事件类型", trigger: "change" },
// ],
// eventGrade: [
// { required: true, message: "请选择事件级别", trigger: "change" },
// ],
// eventLocation: [
// { required: true, message: "请输入位置", trigger: "blur" },
// ],
// eventDescription: [
// { required: true, message: "请输入内容", trigger: "blur" },
// ],
// faultLevel: [
// { required: true, message: "请选择故障等级", trigger: "faultLevel" },
// ],
// faultLocation: [
// {
// required: true,
// message: "请填写故障位置",
// trigger: "faultLocation",
// },
// ],
// faultType: [
// {
// required: true,
// message: "请选中故障类型",
// trigger: "faultType",
// },
// ],
// faultFxtime: [
// { required: true, message: "请填写发现时间", trigger: "faultFxtime" },
// ],
// faultCxtime: [
// { required: true, message: "请填写持续时间", trigger: "faultCxtime" },
// ],
// eqId: [{ required: true, message: "请填写设备名称", trigger: "eqId" }],
// eqStatus: [
// {
// required: true,
// message: "请选中设备填报状态",
// trigger: "eqStatus",
// },
// ],
// falltRemoveStatue: [
// {
// required: true,
// message: "请选中消除状态",
// trigger: "falltRemoveStatue",
// },
// ],
// falltRemoveStatu: [
// {
// required: true,
// message: "请选中消除状态",
// trigger: "falltRemoveStatue",
// },
// ],
// tunnelId: [
// {
// required: true,
// message: "请选中所在路段隧道",
// trigger: "tunnelId",
// },
// ],
// },
fromList: [],
setDisabled: {
disabledDate(time) {
return time.getTime() > Date.now(); // 可选历史天、可选当前天、不可选未来天
},
},
tunnelList: [],
directionList: [],
chezhiLaneList: [],
chezhiLaneList1: [],
chezhiLaneList2: [],
chezhiLaneList3: [],
radioList: [
{ label: "确认(已确认)", value: "4" },
{ label: "挂起(稍后处理)", value: "2" },
{ label: "误报", value: "5" },
{ label: "突发事件处置", value: "0" },
],
manageStation: this.$cache.local.get("manageStation"),
manageStationSelect: this.$cache.local.get("manageStationSelect"),
evtWebsoktList: [],
};
},
watch: {
"$store.state.manage.manageStationSelect": function (newVal, oldVal) {
this.manageStationSelect = newVal;
// this.queryParams.tunnelId = newVal;
// this.queryParams.eventTypeId = "";
this.getTunnelLane();
},
},
created() {},
mounted() {
bus.$on("getPicId", (e) => {
console.log(e, "e");
this.eventId = typeof e == "String" ? Number(e) : e;
this.init(e);
});
this.getTunnel();
this.getEventTypeList();
// 事件来源
this.getDicts("sd_event_source").then((data) => {
this.fromList = data.data;
});
this.getDicts("sd_direction").then((response) => {
this.directionList = response.data;
});
this.getDicts("sd_event_grade").then((response) => {
this.eventGradeList = response.data;
});
this.getDicts("sd_lane_one").then((data) => {
this.chezhiLaneList2 = data.data;
});
// 三车道
this.getDicts("sd_lane_two").then((data) => {
this.chezhiLaneList3 = data.data;
});
},
beforeCreate() {},
destroy() {
bus.$off("getPicId");
},
methods: {
confidenceListRules(rule, value, callback) {
console.log(value, "value");
if (value) {
const plateNumber =
/^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})$/;
if (plateNumber.test(value)) {
callback();
} else {
callback(new Error("请输入正确的车牌号,字母大写"));
}
}else{
callback();
}
},
getFrom(from) {
for (let item of this.fromList) {
if (from == item.dictValue) {
return item.dictLabel;
}
}
},
init(id) {
if (id) {
const param = {
id: id,
};
getEvent(id).then((res) => {
console.log(res.data, "事件详情数据");
this.prevControlType = res.data.prevControlType;
this.detailsButton(res.data);
});
}
this.details = true;
},
//详情弹窗
detailsButton(item) {
// 获取对应事件
this.getEventType(item);
console.log(item, "点击弹窗");
this.imgUrlList = [];
this.iconUrlListAll = [];
this.miniDialog = true;
this.detailsDisabled = true;
item.reviewRemark = [];
this.eventTypeId = item.eventTypeId;
this.evtId = item.id;
this.tunnelId = item.tunnelId;
this.direction = item.direction;
this.details = true;
this.eventFormDetail = { ...item };
console.log(this.eventFormDetail, "11111111111");
console.log(this.eventFormDetail.continuedTime, "0000000000");
this.eventFormDetail.eventState = 4;
// if (item.prevControlType == 1) {
// this.getStrategyData(item);
// } else {
// this.getReservePlanData();
// }
this.getReservePlanData();
this.$nextTick(() => {
if (this.$refs.swiperTop) {
const swiperTop = this.$refs.swiperTop.$el.swiper;
const swiperThumbs = this.$refs.swiperThumbs.$el.swiper;
swiperTop.controller.control = swiperThumbs;
swiperThumbs.controller.control = swiperTop;
swiperThumbs.activeIndex = 0;
swiperTop.activeIndex = 0;
}
});
// this.getEventList();
if (item.stakeNum) {
let stake = "";
let letterCount = this.countLetters(item.stakeNum.split("+")[0]);
console.log("字母数量:" + letterCount);
console.log(item.stakeNum.split("+")[0]);
if (letterCount >= 2) {
stake = item.stakeNum.split("+")[0].substr(2);
} else if (letterCount >= 1) {
stake = item.stakeNum.split("+")[0].substr(1);
} else {
stake = item.stakeNum.split("+")[0];
}
this.$set(this.eventFormDetail, "stakeNum1", stake);
this.$set(
this.eventFormDetail,
"stakeNum2",
item.stakeNum.split("+")[1]
);
}
if (item.stakeEndNum) {
this.$set(
this.eventFormDetail,
"stakeEndNum1",
item.stakeEndNum.split("+")[0].substr(1)
);
this.$set(
this.eventFormDetail,
"stakeEndNum2",
item.stakeEndNum.split("+")[1]
);
}
this.title = item.eventTitle;
// 获取车道
this.getTunnelLane();
// 获取实时视频
this.getVideoUrl(item);
// 获取实时视频截图
this.getImgUrl(item);
// this.getImgUrls(item);
},
getStrategyData(item) {
console.log(item);
let param = {
tunnelId: item.tunnelId,
direction: item.direction,
eventType: item.eventTypeId,
};
getStrategyData(param).then((res) => {
console.log(res.data, "策略列表");
this.strategyList = res.data;
this.eventFormDetail.currencyId = res.data[0].id;
});
},
// 获取车道数
getTunnelLane() {
getTunnelLane(this.tunnelId).then((res) => {
this.chezhiLaneList = [];
if (res.data.lane == 1) {
this.chezhiLaneList = this.chezhiLaneList1;
} else if (res.data.lane == 2) {
this.chezhiLaneList = this.chezhiLaneList2;
} else if (res.data.lane == 3) {
this.chezhiLaneList = this.chezhiLaneList3;
}
});
},
/** 所属隧道 */
getTunnel() {
// if (!this.queryParams.deptId) {
listTunnels().then((response) => {
this.tunnelList = response.rows;
});
// }
},
// 查询方向
getDirection(num) {
for (var item of this.directionList) {
if (item.dictValue == num) {
return item.dictLabel;
}
}
},
countLetters(string) {
var pattern = /[A-Za-z]/g; // 匹配所有字母的正则表达式
var match = string.match(pattern);
return match ? match.length : 0;
},
eventIsShow(value, state) {
if (value != null) {
if (state != "0" && value.includes("其他")) {
return true;
}
} else {
return false;
}
},
// 复核弹窗内单选改变事件
eventStateChange() {
if (this.eventFormDetail.eventState != 0) {
this.eventFormDetail.currencyId = "";
} else {
if (this.ReservePlanList.length > 0) {
this.eventFormDetail.currencyId = this.ReservePlanList[0].id;
} else {
this.eventFormDetail.currencyId = "";
}
}
this.eventFormDetail.reviewRemark = [];
},
// 复核提交
submitDialog() {
console.log(this.eventFormDetail, "1123123");
this.$refs["eventFormDetail"].validate((valid) => {
if (valid) {
this.$cache.local.set("currencyId", this.eventFormDetail.currencyId);
const loading = this.$loading({
lock: true,
text: "Loading",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
target: ".hitchDialog",
});
if (
this.eventFormDetail.stakeNum1 &&
this.eventFormDetail.stakeNum2
) {
this.eventFormDetail.stakeNum =
"K" +
this.eventFormDetail.stakeNum1 +
"+" +
this.eventFormDetail.stakeNum2;
}
if (
this.eventFormDetail.stakeEndNum1 &&
this.eventFormDetail.stakeEndNum2
) {
this.eventFormDetail.stakeEndNum =
"K" +
this.eventFormDetail.stakeEndNum1 +
"+" +
this.eventFormDetail.stakeEndNum2;
}
if (this.eventFormDetail.reviewRemark.includes("其他")) {
this.eventFormDetail.reviewRemark =
this.eventFormDetail.reviewRemark.toString() +
":" +
this.eventFormDetail.otherContent;
} else {
this.eventFormDetail.reviewRemark =
this.eventFormDetail.reviewRemark.toString();
}
const currencyId = this.eventFormDetail.currencyId;
if (this.eventFormDetail.laneNo) {
this.eventFormDetail.laneNo =
this.eventFormDetail.laneNo.toString();
}
updateEvent(this.eventFormDetail).then((response) => {
this.processDialog = false;
this.closeProcessDialog = false;
this.processType = false;
this.details = false;
this.cameraPlayer = false;
this.$modal.msgSuccess("修改成功");
if (
this.evtWebsoktList.length > 0 &&
this.evtWebsoktList[0].ids == this.eventFormDetail.id
) {
console.log("点复核提交 关弹窗");
bus.$emit("closeDialog");
}
//主动安全
//策略不为空
// if (
// this.eventFormDetail.prevControlType == 1 &&
// currencyId &&
// this.eventFormDetail.eventState == 0
// ) {
// let id = currencyId;
// handleStrategy(id).then((res) => {
// console.log(res);
// this.$modal.msgSuccess("下发指令成功");
// });
// }
loading.close();
// 1.预案不为空
// 2.当前状态为0
// 3.普通事件
if (currencyId && this.eventFormDetail.eventState == 0) {
console.log("我跳转了啊~~");
this.$router.push({
path: "/emergency/administration/dispatch",
query: { id: this.eventFormDetail.id },
});
}
this.$cache.local.remove("currencyId");
});
}
});
},
// 打开复核内详情
openDoor(item) {
// 点击查看按钮重置tab
this.deviceIndexShow = 0;
// this.activeName = "0";
let lane = "";
if (item.laneNo == null || item.laneNo.length == 0) {
lane = "";
} else {
lane = item.laneNo.toString();
}
let query = {
prevControlType: item.prevControlType,
currencyId: item.currencyId,
id: item.id,
laneNo: lane,
};
examineDeviceDetail(query).then((res) => {
console.log(res);
this.DeviceDetail = res.data;
this.activeName = res.data[0].tableName;
this.dialogVisibleDevice = true;
});
},
openProcess(type, id) {
if (type && id) {
this.processType = true;
this.processDialog = true;
const param = {
id: id,
eventState: 0,
};
updateEvent(param).then((res) => {
this.$modal.msgSuccess("正在处理");
this.evtHandle();
});
} else {
if (this.processType == true) {
this.processDialog = false;
// this.details = true;
// this.closeProcessDialog = false;
this.processType = false;
} else {
this.processType = true;
this.processDialog = true;
// this.details = true;
// this.closeProcessDialog = true;
}
}
},
// 复核内图片展示弹窗关闭事件
handleCloseImg(done) {
done();
},
reviewRemarkChange() {
console.log(this.eventForm.reviewRemark);
},
/** 查询事件类型列表 */
getEventTypeList() {
listEventType().then((response) => {
this.eventTypeData = response.rows;
});
},
getEventTypeAll() {
let prevControlType = {
isUsable: "1",
};
listEventType(prevControlType).then((response) => {
this.eventTypeDataList = [...response.rows];
});
},
/** 查询事件类型列表 */
getEventType(item) {
let prevControlType = {
isUsable: "1",
prevControlType: item.prevControlType,
};
listEventType(prevControlType).then((response) => {
this.eventTypeData = [...response.rows];
});
},
getEvtType(num) {
for (var item of this.eventTypeData) {
if (num == item.id) {
return item.eventType;
}
}
},
// 处置记录
// getEventList() {
// eventFlowList({ eventId: this.eventForm.id }).then((res) => {
// this.eventWarnList = res.rows;
// });
// },
getReservePlanData() {
this.ReservePlanList = [];
this.eventFormDetail.currencyId = "";
if (this.eventFormDetail.eventTypeId == 20) {
this.eventFormDetail.laneNo = ["1", "2", "3"];
}
let data = {
tunnelId: this.eventFormDetail.tunnelId,
planTypeId: this.eventFormDetail.eventTypeId,
direction: this.eventFormDetail.direction,
eventGrade: this.eventFormDetail.eventGrade,
};
getReservePlanData(data).then((res) => {
this.ReservePlanList = res.data;
if (this.ReservePlanList.length > 0) {
this.eventFormDetail.currencyId = this.ReservePlanList[0].id;
} else {
if (this.eventFormDetail.eventState == "0") {
this.$modal.msgWarning("暂无相关预案");
}
}
});
},
handleClickDevice(tab, event) {
console.log(tab.index);
this.deviceIndexShow = tab.index;
this.tableKey = tab.index;
},
getImgUrl(item) {
this.urlsList = [];
this.urlsAll = [];
const param = {
businessId: item.id,
};
image(param).then((response) => {
this.urls = response.data;
if (response.data.length > 4) {
this.arrowRight2 = true;
for (let i = 0; i < this.urls.length; ) {
this.urlsAll.push(this.urls.splice(0, 4));
}
this.urlsList = this.urlsAll[0];
this.imgPage2 = 0;
} else {
this.arrowRight2 = false;
this.urlsList = this.urls;
}
});
},
//关闭drawer
handleClose(done) {
done();
},
getVideoUrl(item) {
this.cameraPlayer = false;
console.log(item, "itemitem");
// getEventCamera(item.tunnelId, item.stakeNum, item.direction).then((res)=>{
// getDeviceById(res.data[0].eqId).then((response)=>{
// console.log(response,"00000000000000000")
// displayH5sVideoAll(response.data.secureKey,'h5sVideo2',2);
// })
// })
this.videoList = [];
getEventCamera(item.tunnelId, item.stakeNum, item.direction).then(
(res) => {
if (res.data) {
// let videoId = res.data[0].eqId
let videoId = "";
for (let item of res.data) {
videoId = item.eqId;
videoStreaming(videoId).then((response) => {
if (response.code == 200) {
console.log(response.data, "视频视频视频视频视频");
// return false;
if (response.data != null) {
this.videoList.push(response.data);
this.cameraPlayer = true;
}
}
});
}
console.log(this.videoList, " this.videoList");
}
console.log(this.videoList, "this.videoList");
}
);
},
// 点击缩略图
clickImg(gImgUrl) {
let imgurl = gImgUrl.substr(-3, 3);
if (imgurl == "jpg") {
this.alongImgUrl = gImgUrl;
this.dialogVisibleImg = true;
}
console.log(imgurl);
},
getUrl(id) {
const param3 = {
businessId: id,
};
const param4 = {
id: id,
};
image(param3).then((response) => {
this.urls = response.data;
});
video(param4).then((response) => {
if (response.data.videoUrl) {
this.videoUrl = response.data.videoUrl;
}
});
},
changeEndTime() {
let startTime = new Date(this.eventFormDetail.eventTime).getTime();
let endTime = new Date(this.eventFormDetail.endTime).getTime();
console.log(startTime, endTime);
if (endTime < startTime) {
this.$modal.msgWarning("结束时间必须大于开始时间");
this.eventFormDetail.endTime = "";
}
},
// 忽略事件
handleIgnore(event) {
if (event) {
const param = {
id: event.id,
eventState: "2",
};
updateEvent(param).then((response) => {
this.$modal.msgSuccess("已成功忽略");
});
}
// this.$emit("closePicDialog");
bus.$emit("closePicDialog");
bus.$emit("forceUpdateTable", event.id);
// bus.$emit("closeTableDialog");
// this.eventPicDialog = false;
},
// 处理 跳转应急调度
handleDispatch(event) {
const param = {
id: event.id,
eventState: "0",
};
updateEvent(param).then(() => {
this.$modal.msgSuccess("开始处理事件");
});
this.$router.push({
path: "/emergency/administration/dispatch",
query: { id: event.id },
});
if (this.eventMes.eventState == "3") {
userConfirm(event.id).then(() => {});
}
// bus.$emit("closePicDialog");
bus.$emit("closePicDialog");
bus.$emit("closeDialog");
// this.eventPicDialog = false;
},
// 弹摄像机弹窗
openVideoDialog(id) {
setTimeout(() => {
bus.$emit("getVideoDialog", id);
}, 200);
bus.$emit("openVideoDialog");
bus.$emit("closePicDialog");
},
closeDialogTable() {
bus.$emit("closePicDialog");
// this.eventPicDialog = false;
},
// 打开图片变视频弹窗
openPicDialog(item) {
console.log(item);
if (!item.videoUrl && !item.imgUrl) {
this.$message.warning("暂无视频");
} else {
this.videoUrl =
item.videoUrl == undefined ? item.imgUrl : item.videoUrl;
// this.videoUrl = item.videoUrl;
this.picUrlDialog = true;
}
},
// 取消按钮
cancel() {
this.open = false;
this.details = false;
this.cameraPlayer = false;
this.processDialog = false;
this.processType = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
currencyId: "",
tunnelId: null,
eventTypeId: null,
eventTitle: null,
eventTime: null,
eventState: null,
eventGrade: "0",
eventLocation: null,
eventDeath: null,
eventInjured: null,
eventDescription: null,
reservePlanId: null,
flowId: null,
warningId: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
faultLocation: null,
faultType: null,
faultSource: null,
faultFxtime: null,
faultCxtime: null,
eqTunnelId: null,
faultTbr: null,
faultTbtime: null,
eqId: null,
eqStatus: null,
faultCode: null,
faultLevel: null,
falltRemoveStatue: null,
faultDescription: null,
faultStatus: 0,
};
this.fileList = [];
this.removeIds = [];
this.resetForm("form");
},
},
};
</script>
<style scoped lang="scss">
::v-deep .dialogForm .el-checkbox-button {
// background: #052c4d;
}
.theme-dark .el-dialog .el-dialog__body .dialogForm .checkBox {
display: unset !important;
width: unset !important;
}
::v-deep .el-timeline-item__content {
background-color: #022443;
}
.scrollbar_li {
width: 145px;
margin-right: 15px;
display: inline-block;
white-space: nowrap;
video {
width: 100%;
}
}
::v-deep
.el-table--striped
.el-table__body
tr.el-table__row--striped
td.el-table__cell,
::v-deep .el-table tr {
background: unset !important;
}
::v-deep .el-scrollbar__wrap {
overflow-x: hidden;
}
::v-deep .el-scrollbar .el-scrollbar__wrap .el-scrollbar__view {
white-space: nowrap;
}
::v-deep .el-carousel__arrow {
background-color: rgba(31, 45, 61, 0.8);
}
::v-deep .el-carousel__arrow:hover {
background-color: rgba(31, 45, 61, 0.8);
}
.gallery-thumbs {
height: 56px;
box-sizing: border-box;
// padding: 10px 0;
}
.gallery-thumbs .swiper-slide {
width: 25%;
height: 100%;
opacity: 0.4;
}
.gallery-thumbs .swiper-slide-active {
opacity: 1;
}
.chuzhi {
background: #05afe3;
}
.yzx {
color: #45d20a;
}
.wzx {
color: #666666;
}
.incHandBox {
height: calc(100% - 40px);
overflow: auto;
.incHandContent {
display: flex;
// color: white;
font-size: 12px;
padding: 10px;
.classification {
.type {
width: 50px;
height: 50px;
// background: rgba($color: #084e84, $alpha: 0.6);
// border: 1px solid rgba($color: #39adff, $alpha: 0.6);
text-align: center;
}
.yijian {
color: white;
width: 50px;
background: linear-gradient(180deg, #1eace8 0%, #0074d4 100%);
border: 1px solid #39adff;
// padding: 10px;
text-align: center;
}
}
.heng1 {
width: 20px;
height: 1px;
border-top: solid 1px #39adff;
}
.shu {
width: 20px;
border-left: solid 1px #39adff;
border-bottom: solid 1px #39adff;
margin-top: 20px;
}
.gxp {
// margin-left: 20px;
width: 77%;
.contentList {
display: block;
margin-top: 4px;
line-height: 40px;
padding: 0 20px;
border-radius: 3px;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
img {
width: 18px;
height: 18px;
}
}
}
.contentList:nth-of-type(1) {
margin-top: 0;
}
}
}
.formStyle {
.el-form-item {
margin-bottom: 1vh;
}
}
::v-deep .el-form-item--medium .el-form-item__label {
font-size: 0.7vw;
}
::v-deep .el-form-item--medium .el-form-item__content {
font-size: 0.7vw;
}
::v-deep .el-tabs__header {
margin: 0 0 8px !important;
}
.contentListBox {
width: 100%;
word-wrap: break-word;
word-break: normal;
overflow-y: auto;
overflow-x: hidden;
height: 68vh;
//display: flex;
.contentBox {
display: inline-flex;
margin-right: 0.5vw;
margin-bottom: 10px;
position: relative;
border-radius: 2px;
// width:24.6%;
.video {
width: 40%;
height: 100%;
float: left;
text-align: center;
font-size: 0.7vw;
// color: #2aa6ff;
.eventBox {
display: flex;
justify-content: space-between;
align-items: center;
.eventType {
background: rgba(228, 14, 14, 0.4);
font-size: 0.675rem;
font-weight: 600;
color: #fff;
// padding:5px 10px;
width: 60%;
height: 3vh;
line-height: 3vh;
}
div {
background: rgba(228, 14, 14, 0.2);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 0.675rem;
font-weight: 400;
color: #fff;
padding: 2px 10px;
width: 40%;
}
}
video {
width: 100%;
height: 100px;
margin-top: 2px;
float: left;
}
img {
// width: 100%;
height: 10vh;
margin-top: 2px;
}
}
.contentText {
margin-top: 10px;
font-size: 0.7vw;
// color: #0087e7;
margin-right: 20px;
width: 60%;
float: right;
margin-left: 2px;
.stateTab {
position: absolute;
top: -27px;
right: -17px;
}
div {
padding: 0.6vh 0;
span {
padding-left: 6px;
font-weight: bold;
}
}
.contentButton {
display: flex;
justify-content: space-between;
width: 150px;
div {
width: 65px;
height: 2vh;
border-radius: 14px;
color: white;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
div:nth-of-type(1) {
background: linear-gradient(180deg, #ba8400 0%, #fed11b 100%);
}
div:nth-of-type(2) {
background: linear-gradient(180deg, #1eace8 0%, #0074d4 100%);
}
}
}
}
.contentBox:nth-of-type(4n) {
margin-right: 0px;
}
}
.videoDialogBox {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
.swiper-slide {
video {
width: 100%;
height: 100%;
}
}
.processButton {
position: absolute;
top: 20px;
right: -15px;
width: 25px;
height: 100px;
cursor: pointer;
background: #39adff;
text-align: center;
line-height: 18px;
color: #fff;
}
.processButton::before {
font-size: 14px;
color: #fff;
}
.dialogBg2 {
width: 59% !important;
padding: 0px 10px 10px 10px !important;
margin-left: 10px;
// ::v-deep .el-carousel__container{
// height:378px;
// }
.picBox {
height: 304px;
}
::v-deep .el-image {
height: 300px;
width: 100%;
image {
width: 100%;
height: 100%;
}
}
}
.dialogBg {
background: #f7f7f7;
height: 100%;
width: 41%;
color: #0087e7;
padding: 0px 10px 10px 10px;
span {
color: #767676 !important;
padding-left: 10px;
}
.leftVideo {
width: 100%;
height: 240px;
}
.picBox {
width: 100%;
// height: calc(24% - 25px);
margin-top: 5px;
// border: solid 1px red;
// display: flex;
// justify-content: center;
// align-items: center;
.picList {
width: 100%;
height: 100%;
// display: flex;
// justify-content: left;
> div {
overflow: hidden;
margin-left: 10px;
width: 21%;
height: 100%;
display: inline-block;
> .el-image {
width: auto;
height: 100%;
overflow: hidden;
// border: solid 1px blue;
margin: 0 auto;
}
}
}
.turnPages {
width: 20px !important;
height: 20px !important;
border: solid 1px #0087e7;
border-radius: 10px;
text-align: center;
cursor: pointer;
caret-color: rgba(0, 0, 0, 0);
}
.turnPages:hover {
background: #0087e7;
color: #fff;
}
.noPic {
border: solid 1px #0087e7;
display: flex;
justify-content: center;
align-items: center;
img {
width: 50%;
}
}
}
}
}
.dialogForm {
width: 100%;
height: calc(44% - 50px);
background: #f7f7f7;
padding: 10px 10px 0;
overflow-y: auto;
overflow-x: hidden;
margin-top: 10px;
.el-input {
width: 100%;
.el-input--medium .el-input__inner {
width: 93px;
}
}
.el-form-item {
margin-bottom: 16px !important;
}
.evtCarStyle {
width: calc(100% - 10px);
height: 40px;
padding: 10px;
overflow-y: auto;
padding-bottom: 0;
border-radius: 4px;
> div {
display: flex;
margin-bottom: 5px;
.evtNum {
width: 35px;
height: 35px;
// border: solid 1px #ccc;
text-align: center;
line-height: 35px;
}
div {
margin-left: 5px;
}
}
}
}
.dialogFooterButton {
width: 100%;
height: 30px;
display: flex;
justify-content: right;
margin-bottom: 15px;
div {
margin-right: 20px;
width: 80px;
height: 28px;
border-radius: 14px;
text-align: center;
line-height: 28px;
color: white;
cursor: pointer;
}
div:nth-of-type(1) {
background: linear-gradient(180deg, #ba8400 0%, #fed11b 100%);
}
div:nth-of-type(2) {
background: linear-gradient(180deg, #1eace8 0%, #0074d4 100%);
}
div:nth-of-type(3) {
background: linear-gradient(180deg, #1eace8 0%, #0074d4 100%);
}
}
.el-dialog__headerbtn {
z-index: 3;
}
::v-deep .detailsDialog {
width: 60%;
position: absolute;
left: 20%;
.el-dialog:not {
margin-top: 0px !important;
}
}
::v-deep .detailsDialog .el-dialog {
// height: calc(100% - 8vh) !important;
.el-dialog__body {
// max-height: 88vh;
padding: 0 !important;
}
}
.animationDialog {
z-index: 2008 !important;
height: 92%;
width: 480px;
// transform: translateX(1330px);
animation: mymove 0.3s linear;
position: absolute;
left: 66%;
}
@keyframes mymove {
0% {
left: 60%;
}
100% {
left: 69%;
}
}
.el-select-dropdown {
z-index: 2010 !important;
}
.eventTypeButton {
height: 2.6vh;
line-height: 2.6vh;
border-radius: 2px;
cursor: pointer;
padding: 0px 10px;
font-size: 0.7vw;
}
// ::v-deep .vue-treeselect__control {
// height: 4vh;
// }
// ::v-deep .vue-treeselect__placeholder,
// .vue-treeselect__single-value {
// line-height: 4vh;
// }
// ::v-deep .el-input--small .el-input__inner {
// line-height: 3vh;
// height: 4vh;
// font-size: 0.7vw;
// }
// ::v-deep .el-input--medium .el-input__inner {
// line-height: 3vh;
// height: 4vh;
// font-size: 0.7vw;
// }
.butBox {
width: 280px;
display: flex;
padding: 4px 4px;
background: #9ecced;
border-radius: 10px;
margin-bottom: 10px;
font-size: 14px;
// justify-content: space-between;
div {
padding: 6px 10px;
color: #fff;
letter-spacing: 1px;
cursor: pointer;
}
.xz {
background: #285b8d;
border-radius: 10px;
}
}
.incHandContent {
display: flex;
color: #333333;
font-size: 12px;
padding: 10px;
.classification {
.type {
width: 50px;
height: 50px;
// background: #f2f8ff;
border: 1px solid #39adff;
text-align: center;
color: #fff;
}
.yijian {
width: 50px;
background: linear-gradient(180deg, #1eace8 0%, #0074d4 100%);
border: 1px solid #39adff;
color: #fff;
text-align: center;
transform: translateY(-2px);
cursor: pointer;
}
.hulue {
width: 50px;
background: linear-gradient(180deg, #e5a535 0%, #ffbd49 100%);
border: 1px solid #ebab3a;
color: #fff;
text-align: center;
transform: translateY(-2px);
cursor: pointer;
}
}
.heng1 {
width: 20px;
height: 1px;
border-top: solid 1px #39adff;
}
.shu {
width: 20px;
border-left: solid 1px #39adff;
border-bottom: solid 1px #39adff;
margin-top: 20px;
}
.contentList {
display: block;
margin-top: 4px;
line-height: 40px;
padding: 0 20px;
// background: #f2f8ff;
color: #fff;
border: solid 1px #39adff;
border-radius: 3px;
width: 300px;
display: flex;
justify-content: space-between;
align-items: center;
img {
width: 18px;
height: 18px;
}
}
.contentList:nth-of-type(1) {
margin-top: 0;
}
}
.addClass {
.el-select {
width: 250px;
}
.el-input {
width: 250px !important;
}
.el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 250px !important;
}
}
.circle {
width: 10px;
height: 10px;
border-radius: 5px;
display: inline-block;
}
.detailsText {
display: inline-block;
margin-left: 20px;
line-height: 40px;
width: 100px;
}
hr {
border: solid 1px #ddd;
}
.rowClass {
border-top: solid 1px #ddd;
border-bottom: solid 1px #ddd;
height: 40px;
margin-top: 10px;
}
.eventClass {
height: 30px;
border-right: solid 1px #ddd;
width: 100%;
text-align: center;
margin-top: 5px;
line-height: 30px;
}
.eventTitleClass {
height: 40px;
background-color: #eeeeee;
line-height: 40px;
text-align: center;
}
.video {
height: 300px;
border-radius: 0;
padding: 10px;
margin-top: 0;
}
.image3 {
padding: 5px;
height: 49%;
// border: solid 1px green;
width: 100%;
}
.card-box {
width: 30%;
text-align: center;
font-weight: bold;
}
.EquipStatistics {
width: 200px;
height: 40px;
background-image: url(../../assets/cloudControl/shebeiWarning.png);
color: white;
text-align: center;
line-height: 40px;
font-weight: 400;
font-size: 16px;
margin-left: 14px;
> span {
font-size: 24px;
font-weight: 600;
vertical-align: middle;
}
}
.warningStatistics {
line-height: 60px;
font-size: 14px;
// color: #606266;
font-weight: 700;
}
.eventTitle {
padding: 15px 0;
font-size: 18px;
font-weight: 400;
color: #303133;
}
.card {
position: relative;
width: 100%;
padding: 20px;
margin-top: 20px;
border-radius: 10px;
background-color: #f0f0f0;
.card-col {
margin-top: 10px;
display: flex;
color: #79949c;
div {
width: 33%;
span {
color: black;
margin-left: 10px;
}
}
}
.card-cols {
margin-top: 10px;
display: flex;
div {
width: 50%;
}
.col-test {
text-align: right;
color: #79949c;
}
img {
width: 100px;
margin-left: 20px;
}
}
.icon {
position: absolute;
top: 0;
right: 30px;
background-image: url(../../assets/icons/svg/u954.svg);
background-size: 100%;
}
}
.disabledButton {
cursor: no-drop;
pointer-events: none;
}
::-webkit-scrollbar {
width: 6px;
}
// .videoDialog {
// height: 92%;
// }
.videoDialogClass {
width: 100%;
height: 100%;
video {
width: 100%;
height: auto;
max-height:550px;
}
}
.el-carousel {
height: 100%;
}
::v-deep .el-carousel__indicators {
display: none;
}
.topTxt {
margin-left: 7px;
margin-top: 10px;
font-size: 16px;
background-image: url(../../assets/cloudControl/cardTitle.png);
background-repeat: no-repeat;
background-size: 100% 100%;
text-align: center;
width: 139px;
height: 30px;
line-height: 30px;
}
.searchSafeWarn {
top: 6% !important;
right: 0.8% !important;
width: 453px !important;
.el-checkbox + .el-checkbox {
margin-left: 0 !important;
}
}
.hitchDialog {
::v-deep .el-dialog__body {
height: 70vh !important;
overflow: auto !important;
}
::v-deep .el-card {
margin-bottom: 10px !important;
}
}
.evtInfo {
::v-deep .el-dialog__body {
max-height: 70vh;
overflow: auto;
}
}
.detailsDialog {
::v-deep .el-dialog__body {
max-height: 90vh;
overflow: auto;
}
}
::v-deep .explain-table {
.el-dialog__body {
max-height: 78vh;
overflow: auto;
}
}
::v-deep .inputNumStyle {
.el-input-group__prepend {
padding: 0 0px 0 16px;
}
.el-input__inner {
padding: 0 15px 0 10px;
}
}
</style>