Commit 376b35f2 authored by 耿迪迪's avatar 耿迪迪
parents 32652dd7 7d18b628
......@@ -24,6 +24,9 @@ public class TEventHandle extends BaseEntity
@Excel(name = "事件id")
private Long eventId;
@Excel(name = "类型")
private Integer eventType;
/** 企业id */
@Excel(name = "企业id")
private Long enterpriseId;
......@@ -56,9 +59,27 @@ public class TEventHandle extends BaseEntity
@Excel(name = "指导时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date guidanceTime;
private Integer readStatus;
/** 0未删除 1已删除 */
private Integer isDel;
public Integer getEventType() {
return eventType;
}
public void setEventType(Integer eventType) {
this.eventType = eventType;
}
public Integer getReadStatus() {
return readStatus;
}
public void setReadStatus(Integer readStatus) {
this.readStatus = readStatus;
}
public String getPlanTitle() {
return planTitle;
}
......
......@@ -70,11 +70,30 @@ public class TEventReceive extends BaseEntity
/** 备注 */
private String remarks;
private Integer companyRead;
private Integer governmentRead;
/** 0未删除 1已删除 */
private Integer isDel;
@Excel(name = "状态")
private Integer status;
public Integer getCompanyRead() {
return companyRead;
}
public void setCompanyRead(Integer companyRead) {
this.companyRead = companyRead;
}
public Integer getGovernmentRead() {
return governmentRead;
}
public void setGovernmentRead(Integer governmentRead) {
this.governmentRead = governmentRead;
}
public void setId(Integer id)
{
this.id = id;
......
......@@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="TEventHandle" id="TEventHandleResult">
<result property="handleId" column="handle_id" />
<result property="eventId" column="event_id" />
<result property="eventType" column="event_type" />
<result property="enterpriseId" column="enterprise_id" />
<result property="enterpriseName" column="enterprise_name" />
<result property="management" column="management" />
......@@ -21,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectTEventHandleVo">
select handle_id, event_id, enterprise_id, enterprise_name, management,management_event, plan_id,plan_title,plan_url, guidance_opinion, guidance_time, is_del, create_time from t_event_handle
select handle_id, event_id,event_type, enterprise_id, enterprise_name, management,management_event, plan_id,plan_title,plan_url, guidance_opinion, guidance_time, is_del, create_time from t_event_handle
</sql>
<select id="selectTEventHandleList" parameterType="TEventHandle" resultMap="TEventHandleResult">
......@@ -40,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into t_event_handle
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="eventId != null">event_id,</if>
<if test="eventType != null">event_type,</if>
<if test="enterpriseId != null">enterprise_id,</if>
<if test="enterpriseName != null">enterprise_name,</if>
<if test="management != null">management,</if>
......@@ -54,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="eventId != null">#{eventId},</if>
<if test="eventType != null">#{eventType},</if>
<if test="enterpriseId != null">#{enterpriseId},</if>
<if test="enterpriseName != null">#{enterpriseName},</if>
<if test="management != null">#{management},</if>
......@@ -72,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update t_event_handle
<trim prefix="SET" suffixOverrides=",">
<if test="eventId != null">event_id = #{eventId},</if>
<if test="eventType != null">event_type = #{eventType},</if>
<if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
<if test="enterpriseName != null">enterprise_name = #{enterpriseName},</if>
<if test="management != null">management = #{management},</if>
......
......@@ -20,12 +20,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="enterpriseId" column="enterprise_id" />
<result property="enterpriseName" column="enterprise_name" />
<result property="remarks" column="remarks" />
<result property="companyRead" column="company_read" />
<result property="governmentRead" column="government_read" />
<result property="isDel" column="is_del" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectTEventReceiveVo">
select id, event_name, event_type, event_grade, address, longitude, latitude, informant, infor_time, informant_phone, `describe`, `status`,enterprise_id, enterprise_name, remarks, is_del, create_time from t_event_receive
select id, event_name, event_type, event_grade, address, longitude, latitude,
company_read,government_read,informant, infor_time, informant_phone, `describe`, `status`,enterprise_id, enterprise_name, remarks, is_del, create_time from t_event_receive
</sql>
<select id="selectTEventReceiveList" parameterType="TEventReceive" resultMap="TEventReceiveResult">
......@@ -36,6 +39,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="eventGrade != null "> and event_grade = #{eventGrade}</if>
<if test="enterpriseId != null and enterpriseId != ''"> and enterprise_id = #{enterpriseId}</if>
<if test="status != null and status!=5"> and status = #{status}</if>
<if test="companyRead != null"> and company_read = #{companyRead}</if>
<if test="governmentRead != null"> and government_read = #{governmentRead}</if>
<if test="status ==5"> and status !=4 </if>
and is_del = 0
</where>
......@@ -65,6 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="enterpriseId != null">enterprise_id,</if>
<if test="enterpriseName != null">enterprise_name,</if>
<if test="remarks != null">remarks,</if>
<if test="companyRead != null">company_read,</if>
<if test="governmentRead != null">government_read,</if>
<if test="isDel != null">is_del,</if>
<if test="createTime != null">create_time,</if>
</trim>
......@@ -84,6 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="enterpriseId != null">#{enterpriseId},</if>
<if test="enterpriseName != null">#{enterpriseName},</if>
<if test="remarks != null">#{remarks},</if>
<if test="companyRead != null">#{companyRead},</if>
<if test="governmentRead != null">#{governmentRead},</if>
<if test="isDel != null">#{isDel},</if>
<if test="createTime != null">#{createTime},</if>
</trim>
......@@ -106,6 +115,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="enterpriseId != null">enterprise_id = #{enterpriseId},</if>
<if test="enterpriseName != null">enterprise_name = #{enterpriseName},</if>
<if test="remarks != null">remarks = #{remarks},</if>
<if test="companyRead != null">company_read = #{companyRead},</if>
<if test="governmentRead != null">government_read = #{governmentRead},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="createTime != null">create_time = #{createTime},</if>
</trim>
......
......@@ -5,6 +5,7 @@
:before-upload="handleBeforeUpload"
:file-list="fileArr"
:limit="1"
:fileType="fileType"
:list-type="listType"
:on-error="handleUploadError"
:on-exceed="handleExceed"
......
<!--
* @Author: your name
* @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-03-16 17:32:38
* @LastEditTime: 2022-03-23 15:19:40
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
......@@ -86,7 +86,7 @@
style="width: 100px; height: 100px"
:src="deviceData.pictureAddress"
:preview-src-list="[deviceData.pictureAddress ]"
z-index=99999
:z-index="999999"
>
</el-image>
<div class="imgtext" v-else>暂无图片</div>
......
<!--
* @Author: your name
* @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-03-16 17:29:11
* @LastEditTime: 2022-03-23 15:23:34
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
......@@ -56,7 +56,7 @@
style="width: 100px; height: 100px"
:src="deviceData.iconUrl"
:preview-src-list="[deviceData.iconUrl ]"
z-index=99999
:z-index="999999"
>
</el-image>
<div class="imgtext" v-else>暂无图片</div>
......
......@@ -49,87 +49,42 @@
</div>
</div>
<div class="" style="padding: 0px 10px">
<div
class="yujingleft yujing"
style="width: 33%; height: 90px; float: left"
>
<div
class="yujingtop"
style="
width: 70px;
height: 90px;
float: left;
margin-top: 15px;
text-align: right;
"
>
<div class="yujingleft yujing">
<div class="yujingtop">
<img
src="@/assets/mapinages/group786.png"
alt=""
style="width: 50px; height: 50px"
/>
</div>
<div
class="yujingbottom"
style="float: left; color: #cddbe4; margin-left: 10px"
>
<p>设备预警</p>
<div class="yujingbottom">
<div>设备预警</div>
<span>2</span>
</div>
</div>
<div
class="yujingcenter yujing"
style="width: 33%; height: 90px; float: left"
>
<div
class="yujingtop"
style="
width: 70px;
height: 90px;
float: left;
margin-top: 15px;
text-align: right;
"
>
<div class="yujingcenter yujing" >
<div class="yujingtop" >
<img
src="@/assets/mapinages/group787.png"
alt=""
style="width: 50px; height: 50px"
/>
</div>
<div
class="yujingbottom"
style="float: left; color: #cddbe4; margin-left: 10px"
>
<p>事件情况</p>
<div class="yujingbottom">
<div>事件情况</div>
<span>2</span>
</div>
</div>
<div
class="yujingright yujing"
style="width: 33%; height: 90px; float: left"
>
<div
class="yujingtop"
style="
width: 70px;
height: 90px;
float: left;
margin-top: 15px;
text-align: right;
"
>
<div class="yujingright yujing" >
<div class="yujingtop">
<img
src="@/assets/mapinages/group788.png"
alt=""
style="width: 50px; height: 50px"
/>
</div>
<div
class="yujingbottom"
style="float: left; color: #cddbe4; margin-left: 10px"
>
<p>隐患数量</p>
<div class="yujingbottom">
<div>隐患数量</div>
<span>2</span>
</div>
</div>
......@@ -1020,4 +975,33 @@ export default {
width: 440px;
margin-left: 20px;
}
.yj{
padding: 0px 10px;
}
.yujing{
width: 33%;
height: 90px;
float: left;
}
.yujingtop{
width: 70px;
height: 90px;
float: left;
margin-top: 15px;
text-align: right;
}
.yujingbottom{
float: left;
color: #cddbe4;
margin-left: 10px;
line-height: 35px;
padding: 10px 0 0 0;
}
.yujingbottom span{
font-family: 'arialbd';
font-size: 25px;
background-image:-webkit-linear-gradient(bottom,#f0c41b,#e4dbb7);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}
</style>
<template>
<ul class="timeline-wrapper">
<li class="timeline-item" v-for="t in timelineList" :key="t.id">
<div class="timeline-box">
<div class="out-circle">
<div class="in-circle"></div>
</div>
<div class="long-line"></div>
</div>
<div class="timeline-content">
<div class="timeline-date">{{t.createTime}}</div>
<div class="timeline-title">{{ t.management}}</div>
<div class="timeline-desc">
<span
class="dbtn"
@click="checkFile(t.managementEvent)"
v-if="t.managementEvent != null && t.managementEvent!=''"
>
<i class="el-icon el-icon-view"></i>查看/下载
</span>
<span v-else>-</span>
</div>
</div>
</li>
</ul>
</template>
<script type="text/babel">
import Vue from 'vue'
export default Vue.component('Timeline',{
name: "Timeline",
props: {
timelineList: {
type: Array,
default: () => {
return []
}
}
},
methods: {
checkFile(url) {
window.open(url,'_blank');
},
}
})
</script>
<style scoped lang="scss">
ul.timeline-wrapper {
list-style: none;
margin: 0;
padding: 0;
}
/* 时间线 */
.timeline-item {
position: relative;
.timeline-box {
text-align: center;
position: absolute;
.out-circle {
width: 16px;
height: 16px;
background: rgba(14, 116, 218, 0.1);
box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.1);
/*opacity: 0.1;*/
border-radius: 50%;
display: flex;
align-items: center;
.in-circle {
width: 12px;
height: 12px;
margin: 0 auto;
background: rgba(14, 116, 218, 1);
border-radius: 50%;
box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.1);
}
}
.long-line {
width: 2px;
height: 98px;
background: #ffffff;
box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.1);
opacity: 0.5;
margin-left: 8px;
}
}
.timeline-content {
box-sizing: border-box;
margin-left: 20px;
height: 86px;
padding: 0 0 0 20px;
text-align: left;
margin-bottom: 30px;
.timeline-title {
font-size: 14px;
word-break: break-all;
margin-bottom: 16px;
color: #d9d9d9;
font-weight: 500;
/*display: inline;*/
}
.timeline-date {
font-size: 16px;
color: #dfe4ed;
font-weight: 500;
margin-bottom: 16px;
}
.timeline-desc {
font-size: 14px;
color: #30b46b;
}
}
}
.dbtn {
display: inline-block;
line-height: normal;
padding-left: 2px;
padding-right: 2px;
cursor: pointer;
border-radius: 3px;
border-style: solid;
border-width: 0;
color: rgb(48, 180, 107);
}
.timeline-item:last-of-type .timeline-content {
margin-bottom: 0;
}
</style>
......@@ -14,8 +14,12 @@
<div style="width: 100%" v-for="item in receiveList">
<div class="el-form-div title-div">
<div v-if="item.status==1" style="width: 80%;margin-left: 5px;">未指派</div>
<div v-if="item.status==2" style="width: 80%;margin-left: 5px;">待处置</div>
<div v-if="item.status==3" style="width: 80%;margin-left: 5px;">已处置</div>
<div v-if="item.status==2" style="width: 80%;margin-left: 5px;">待处置<span
v-if="(item.governmentRead==0&&userType==-2)||(item.companyRead==0&&userType!=-2)" class="massage"> (您有新消息)</span>
</div>
<div v-if="item.status==3" style="width: 80%;margin-left: 5px;">已处置<span
v-if="(item.governmentRead==0&&userType==-2)||(item.companyRead==0&&userType!=-2)" class="massage"> (您有新消息)</span>
</div>
<div v-if="item.status==4" style="width: 80%;margin-left: 5px;">已完结</div>
<div style="height:30px;color: red;cursor:pointer;" v-if="userType==-2" @click="handleDelete(item.id)">取消事件</div>
</div>
......@@ -23,29 +27,42 @@
<div class="content-div">发生时间:{{item.inforTime}}</div>
<div class="content-div">事件地点:{{item.address}}</div>
<div class="el-form-div">
<div v-if="item.status==3 && userType==-2" class="button-div" @click="endevent(item.id)">事件结案</div>
<div v-if="item.status==3 && userType==-2" class="button-div" @click="showList(item.id)" >预案指引</div>
<div v-if="item.status==1 && userType==-2" class="button-div" @click="assignTask(item)">任务指派</div>
<div v-if="userType==-2" class="button-div" @click="showList(item.id)" >预案指引</div>
<div v-if="item.status==3 && userType==-2" class="button-div" @click="endevent(item.id)">事件结案</div>
<div v-if="userType!=-2" class="button-div" @click="showList(item.id)">信息处置</div>
<div class="button-div" @click="showDetail(item.id,$event)">详情</div>
</div>
<div :id = "item.id" style="display: none;margin-top: 15px;margin-bottom: 20px;">
<timeline :timeline-list="handleList"></timeline>
</div>
</div>
</div>
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-row v-if="userType!=-2" :gutter="10" class="mb8">
<el-col :span="1.5">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5" v-if="userType!=-2">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
>新增处置信息</el-button>
</el-col>
<el-col :span="1.5" v-if="userType==-2">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleUpdate"
>新增预案指引</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="handleList" >
<el-table-column label="处置信息" align="center" prop="management" />
<el-table-column label="处置附件" align="center" prop="managementEvent" width="150px">
<el-table-column label="类型" align="center" prop="eventType" :formatter="getType" width="120px"/>
<el-table-column label="处置信息/指导意见" align="center" prop="management" />
<el-table-column label="处置附件/引导方案" align="center" prop="managementEvent" width="150px">
<template slot-scope="scope">
<span
class="dbtn"
......@@ -57,49 +74,49 @@
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="指导意见" align="center" prop="guidanceOpinion" />
<el-table-column label="指导方案" align="center" prop="planUrl" >
<template slot-scope="scope">
<span
class="dbtn"
@click="checkFile(scope.row.planUrl)"
v-if="scope.row.planUrl != null && scope.row.planUrl!=''"
>
<i class="el-icon el-icon-view"></i>查看/下载
</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="指导时间" align="center" prop="guidanceTime" width="180">
<!--<el-table-column label="指导意见" align="center" prop="guidanceOpinion" />-->
<!--<el-table-column label="指导方案" align="center" prop="planUrl" >-->
<!--<template slot-scope="scope">-->
<!--<span-->
<!--class="dbtn"-->
<!--@click="checkFile(scope.row.planUrl)"-->
<!--v-if="scope.row.planUrl != null && scope.row.planUrl!=''"-->
<!--&gt;-->
<!--<i class="el-icon el-icon-view"></i>查看/下载-->
<!--</span>-->
<!--<span v-else>-</span>-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<!--<template slot-scope="scope">-->
<!--<span>{{ parseTime(scope.row.guidanceTime, '{y}-{m}-{d}') }}</span>-->
<!--</template>-->
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
<template slot-scope="scope">
<!--<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">-->
<!--<template slot-scope="scope">-->
<!--&lt;!&ndash;<el-button&ndash;&gt;-->
<!--&lt;!&ndash;size="mini"&ndash;&gt;-->
<!--&lt;!&ndash;type="text"&ndash;&gt;-->
<!--&lt;!&ndash;icon="el-icon-edit"&ndash;&gt;-->
<!--&lt;!&ndash;@click="handleUpdate(scope.row)"&ndash;&gt;-->
<!--&lt;!&ndash;v-hasPermi="['system:handle:edit']"&ndash;&gt;-->
<!--&lt;!&ndash;&gt;修改</el-button>&ndash;&gt;-->
<!--<el-button-->
<!--v-if="userType==-2"-->
<!--size="mini"-->
<!--type="text"-->
<!--icon="el-icon-edit"-->
<!--@click="handleUpdate(scope.row)"-->
<!--v-hasPermi="['system:handle:edit']"-->
<!--&gt;修改</el-button>-->
<el-button
v-if="userType==-2"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>预案指引</el-button>
<el-button
v-if="userType!=-2"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete2(scope.row)"
>删除</el-button>
</template>
</el-table-column>
<!--&gt;预案指引</el-button>-->
<!--<el-button-->
<!--v-if="userType!=-2"-->
<!--size="mini"-->
<!--type="text"-->
<!--icon="el-icon-delete"-->
<!--@click="handleDelete2(scope.row)"-->
<!--&gt;删除</el-button>-->
<!--</template>-->
<!--</el-table-column>-->
</el-table>
<pagination
v-show="total>0"
......@@ -110,13 +127,13 @@
/>
</el-dialog>
<!-- 添加或修改事件处置对话框 -->
<el-dialog :title="title2" :visible.sync="open2" width="550px" append-to-body>
<el-dialog :title="title2" :visible.sync="open2" width="550px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="处置信息" prop="management">
<el-input v-model="form.management" type="textarea" :disabled="readonly1" placeholder="请输入处置信息" />
<el-form-item label="处置信息" prop="management" :style="display">
<el-input v-model="form.management" type="textarea" placeholder="请输入处置信息" />
</el-form-item>
<el-form-item label="指导意见" prop="guidanceOpinion" :style="display2">
<el-input v-model="form.guidanceOpinion" type="textarea" placeholder="请输入指导意见" />
<el-form-item label="指导意见" prop="management" :style="display2">
<el-input v-model="form.management" type="textarea" placeholder="请输入指导意见" />
</el-form-item>
<el-form-item label="应急预案" prop="planId" :style="display2">
<el-select v-model="form.planId" placeholder="请选择预案等级" @change="fananchange" >
......@@ -131,6 +148,7 @@
<el-form-item label="处置附件" prop="managementEvent" :style="display">
<FileUpload
listType="picture"
:fileType="fileType"
@resFun="getFileInfo"
@remove="listRemove"
:fileArr="fileList"
......@@ -151,7 +169,7 @@
import { listReceive, getReceive, delReceive, addReceive, updateReceive } from "@/api/system/receive";
import { listHandle, getHandle, delHandle, addHandle, updateHandle, exportHandle } from "@/api/system/handle";
import { listPlanInfo } from "@/api/system/planInfo";
import Timeline from "./Timeline";
import { getUserProfile } from "@/api/system/user";
import FileUpload from '@/components/FileUpload';
let uploadfile = require("@/assets/uploadfile.png");
......@@ -159,10 +177,12 @@
export default {
components: {
// RightPic,
FileUpload
FileUpload,
Timeline
},
data() {
return {
fileType:['png', 'jpg', 'jpeg',"doc", "xls", "ppt", "txt", "pdf"],
// 是否显示弹出层
open: false,
open2: false,
......@@ -196,6 +216,8 @@ export default {
pageSize: 10,
eventId: null,
},
dongtai:[
],
// 表单校验
rules: {
management: [
......@@ -215,6 +237,30 @@ export default {
}
this.getList();
});
//定时检测新消息
setInterval(() => {
var params = this.queryParams;
if(this.userType==-2){
params.governmentRead=0
}else {
params.companyRead=0
}
listReceive(params).then(response => {
var newList = response.rows;
newList.forEach((model) => {
this.receiveList.forEach((item) => {
if(item.id == model.id){
console.log("---------------"+item.id)
if(this.userType==-2){
item.governmentRead =0;
}else {
item.companyRead =0;
}
}
});
});
});
}, 5000);
},
methods: {
/** 查询事件接报列表 */
......@@ -232,6 +278,7 @@ export default {
this.handleList = response.rows;
this.total = response.total;
this.loading = false;
return response.total;
});
},
showList(id) {
......@@ -240,10 +287,15 @@ export default {
this.queryParams2.eventId= id
this.getHandleList();
},
choice(val) {
console.log(val)
choice() {
this.getList();
},
getType(row){
if(row.eventType==1){
return "处置信息"
}
return "预案指引"
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
......@@ -255,14 +307,16 @@ export default {
this.form.eventId = this.queryParams2.eventId
},
/** 修改按钮操作 */
handleUpdate(row) {
handleUpdate() {
this.reset();
this.readonly1=true;
this.display="display:none";
this.display2="";
this.form = row;
//this.form = row;
this.open2 = true;
this.title2 = "预案指引";
this.form.eventId = this.queryParams2.eventId
this.form.eventType=2;
this.yuanList();
},
yuanList(){
......@@ -278,7 +332,7 @@ export default {
return item.planId === value;
``});
this.form.planTitle = obj.planTitle;
this.form.planUrl = obj.iconUrl;
this.form.managementEvent = obj.iconUrl;
this.form.planId = value;
},
// 表单重置
......@@ -320,6 +374,11 @@ export default {
},
upReceive(id){
var receiveform = {id:id,status:3}
if(this.form.eventType==2){
receiveform.companyRead=0;
}else {
receiveform.governmentRead=0;
}
updateReceive(receiveform).then(response => {
});
},
......@@ -376,6 +435,48 @@ export default {
assignTask(item){
this.$parent.handleUpdate(item);
},
async showDetail(id,event){
var that = this;
that.queryParams2.eventId= id
that.queryParams2.pageSize=100;
if(event.target.innerText=="详情"){
await listHandle(that.queryParams2).then(response => {
this.handleList = response.rows;
if(response.total==0){
this.msgSuccess("暂无详情");
}else{
event.target.innerText="关闭";
document.getElementById(id).style.display="";
that.updateRead(id);
}
});
}else {
event.target.innerText="详情";
document.getElementById(id).style.display="none";
}
},
//更改读取状态
updateRead(id){
var receiveform = {id:id}
if(this.userType==-2){
receiveform.governmentRead = 1;
}else {
receiveform.companyRead = 1;
}
updateReceive(receiveform).then(response => {
});
this.receiveList.forEach((item) => {
if(item.id == id){
if(this.userType==-2){
item.governmentRead =1;
}else {
item.companyRead =1;
}
}
});
},
//上传
getFileInfo(res){
//this.form.dealPlan = res.fileName;
......@@ -462,7 +563,7 @@ export default {
line-height: 25px;
text-align: center;
font-size: 15;
margin-left: 15%;
margin-left: 10%;
margin-top: 10px;
}
.title-div{
......@@ -506,6 +607,9 @@ export default {
border-width: 0;
color: rgb(48, 180, 107);
}
.massage{
color: #00ffff;
}
.test-5::-webkit-scrollbar-track {
/*滚动条里面轨道*/
box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2);
......
......@@ -7,11 +7,14 @@
<div class="right-menu">
<template v-if="device!=='mobile'">
<!--<div class="right-menu-item" v-if="total>0" @click="$router.push('/emergency/emergency')">-->
<!--<img src="@/assets/xiaoxi.png" :hidden="xiaohidden" style="height: 40px;width: 40px;margin-top: 5px;cursor: pointer;">-->
<!--</div>-->
<!-- <search id="header-search" class="right-menu-item" /> -->
          <el-badge :value="20" :max="99" class="item">
            <i class="el-icon-chat-dot-round" style="width: 10px;height: 10px;"></i>
          <el-badge :value="total" :max="99" class="item" >
            <i class="el-icon-chat-dot-round" style="width: 10px;height: 10px;" @click="$router.push('/emergency/emergency')"></i>
          </el-badge>
<screenfull id="screenfull" class="right-menu-item hover-effect" />
......@@ -50,7 +53,8 @@ import Hamburger from '@/components/Hamburger'
import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import { getUserProfile } from "@/api/system/user";
import { listReceive } from "@/api/system/receive";
export default {
components: {
Breadcrumb,
......@@ -60,6 +64,13 @@ export default {
SizeSelect,
Search
},
data() {
return {
userType:-2,
total:null,
xiaohidden:false,
}
},
computed: {
...mapGetters([
'sidebar',
......@@ -83,6 +94,36 @@ export default {
}
}
},
mounted(){
getUserProfile().then(response => {
this.userType = response.data.deptId;
});
//定时检测新消息
setInterval(() => {
var params = {
pageNum: 1,
pageSize: 100,
status:5,
enterpriseId:this.userType
};
if(this.userType==-2){
params.governmentRead=0;
params.enterpriseId=null;
}else {
params.companyRead=0
}
console.log(params)
listReceive(params).then(response => {
console.log("total==",response);
if(response.total!=0){
this.total= response.total;
}else{
this.total= "";
}
});
}, 5000);
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
......@@ -141,7 +182,6 @@ export default {
float: right;
height: 100%;
line-height: 50px;
&:focus {
outline: none;
}
......
/*
* @Author: your name
* @Date: 2022-01-26 10:47:44
* @LastEditTime: 2022-03-21 17:11:56
* @LastEditTime: 2022-03-23 15:26:48
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/utils/config.js
......@@ -24,6 +24,7 @@ export const pipePressure = {
export const alarmtime = 10000;
export const svgUrl = {
// bigwindow页面的设备
2: require("@/assets/image/tiaoyaxiang1.svg"),
3: require("@/assets/image/famen1.svg"),
4: require("@/assets/image/changzhan1.svg"),
......@@ -31,13 +32,22 @@ export const svgUrl = {
6: require("@/assets/image/user1.svg"),
7: require("@/assets/image/zrxk.svg"),
8: require("@/assets/image/zcrq.svg"),
// 运行监测-车辆信息 operationMonitor/gassVehicle
// 小汽车
9: require("@/assets/image/car.png"),
10: require("@/assets/mapImages/mark02.png"),
11: require("@/assets/mapImages/mark03.png"),
12: require("@/assets/mapImages/mark04.png"),
13: require("@/assets/mapImages/mark01.png"),
//小汽车的路径标点图标
14: require("@/assets/mapImages/carTarget.svg"),
//应急设备,应急处置 emergency/emergency
10: require("@/assets/image/yj-jydw.png"),
11: require("@/assets/image/yj-wz.png"),
12: require("@/assets/image/yj-cl.png"),
13: require("@/assets/image/yj-yy.png"),
15: require("@/assets/image/yj-xf.png"),
16: require("@/assets/image/yj-xj.png"),
//煤气罐罐 运行监测 气瓶回溯 operationMonitor/operationQi
17: require("@/assets/mapinages/meiqiguan.png"),
};
export const svgAlarm = {
2: require("@/assets/mapImages/tyxAlarm.svg"),
......
......@@ -333,27 +333,39 @@ export default {
{
val: 10,
ischeck: false,
imgurl: require("@/assets/image/tyxsub.svg"),
imgurl: require("@/assets/image/yj-jydw.png"),
name: "救援队伍",
},
{
val: 11,
ischeck: false,
imgurl: require("@/assets/image/fmjsub.svg"),
imgurl: require("@/assets/image/yj-wz.png"),
name: "救援物资",
},
{
val: 12,
ischeck: false,
imgurl: require("@/assets/image/czsub.svg"),
imgurl: require("@/assets/image/yj-cl.png"),
name: "救援车辆",
},
{
val: 13,
ischeck: false,
imgurl: require("@/assets/image/usersub.svg"),
imgurl: require("@/assets/image/yj-yy.png"),
name: "医 院",
},
{
val: 14,
ischeck: false,
imgurl: require("@/assets/image/yj-xf.png"),
name: "消防队伍",
},
{
val: 15,
ischeck: false,
imgurl: require("@/assets/image/yj-xj.png"),
name: "巡检人员",
},
],
selarr1: [],
// 用户的center数据
......
<template>
</template>
<script>
import { listDetectorReportData } from "@/api/detector/detectorReportData";
export default {
};
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
<template>
<div>
<div class="leftbar">
<div class="leftnum">
<img src="../../../../assets/mapinages/Group1120.png" alt="" style="width: 80px;">
<span style="margin-left: 20px;margin-right: 20px;">充装数量分析</span>
<img src="../../../../assets/mapinages/Group1121.png" alt="" style="width: 80px;">
</div>
<div id="echartsone" style="width:100%;height:300px;"></div>
</div>
<div class="centerbar">
<div class="leftnum">
<img src="../../../../assets/mapinages/Group1120.png" alt="" style="width: 80px;">
<span style="margin-left: 20px;margin-right: 20px;">预警分析</span>
<img src="../../../../assets/mapinages/Group1121.png" alt="" style="width: 80px;">
</div>
<div id="echartstwo" style="width:100%;height:300px;"></div>
</div>
<div class="rightbar">
<div class="leftnum">
<img src="../../../../assets/mapinages/Group1120.png" alt="" style="width: 80px;">
<span style="margin-left: 20px;margin-right: 20px;">瓶装燃气用户汇总分析</span>
<img src="../../../../assets/mapinages/Group1121.png" alt="" style="width: 80px;">
</div>
<div id="echartsthree" style="width:100%;height:300px;"></div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
export default {
name:"",
data () {
return {
}
},
mounted () {
this.drawLine()
},
methods: {
drawLine() {
// 基于准备好的dom,初始化echarts实例
let myChart1 = this.$echarts.init(document.getElementById("echartsone"));
let myChart2 = this.$echarts.init(document.getElementById("echartstwo"));
let myChart3 = this.$echarts.init(document.getElementById("echartsthree"));
// 绘制图表
myChart1.setOption({
color: ['#4CC4E0'],
grid: {
left: '0',
right: '0',
bottom: '1%',
containLabel: true
},
tooltip: {},
xAxis: {
type: 'category',
data: ['平山', '东回舍', '温塘', '南甸', '古月', '西柏坡', '小觉','下口','两河乡'],
axisLine: {
lineStyle: {
type: 'solid' ,
color: '#99E2FF' , //左边线的颜色
width: '2' //坐标线的宽度
}
},
axisLabel: {
interval: 0,
textStyle: {
color: '#000' , //坐标值得具体的颜色
}
}
},
yAxis: {
type: 'value'
},
series: [
{
data: [1200, 2000, 1500, 800, 700, 1100, 4300,1234,3456],
type: 'bar',
barWidth : 7,
}
]
});
myChart2.setOption({
color: ['#4CC4E0','#EEC25B','#8E83DE'],
grid: {
left: '0',
right: '0',
bottom: '1%',
containLabel: true
},
legend: {
orient:"horizontal",
icon: "circle",
x:'center',
y:' center',
width:'300',
padding:[25, 30,0, 0],
itemWidth:10,
textStyle:{
color:'#000',
},
},
tooltip: {},
dataset: {
source: [
['product', '入户安检', '超重', '超量'],
['平山', 143.3, 185.8, 93.7],
['东回舍', 83.1, 173.4, 55.1],
['温塘', 86.4, 65.2, 82.5],
['南甸', 43.3, 85.8, 393.7],
['古月', 183.1, 273.4, 55.1],
['西柏坡', 186.4, 265.2, 82.5],
['小觉', 43.3, 185.8, 493.7],
['下口', 483.1, 273.4, 55.1],
['两河乡', 286.4, 265.2, 382.5],
['孟家庄', 272.4, 453.9, 139.1]
]
},
xAxis: {
type: 'category',
axisLine: {
lineStyle: {
type: 'solid' ,
color: '#99E2FF' , //左边线的颜色
width: '2' //坐标线的宽度
}
},
axisLabel: {
textStyle: {
color: '#000' , //坐标值得具体的颜色
}
}
},
yAxis: {},
series: [{ type: 'bar',barWidth : 7, }, { type: 'bar',barWidth : 7, }, { type: 'bar',barWidth : 7, }]
});
myChart3.setOption({
color: ['#4CC4E0'],
grid: {
left: '0',
right: '0',
bottom: '1%',
containLabel: true
},
tooltip: {},
xAxis: {
type: 'category',
axisLabel:{
interval: 0,
textStyle: {
color: '#000' , //坐标值得具体的颜色
}
} ,
data: ['平山', '东回舍', '温塘', '南甸', '古月', '西柏坡', '小觉','下口','两河乡'],
axisLine: {
lineStyle: {
type: 'solid' ,
color: '#99E2FF' , //左边线的颜色
width: '2' //坐标线的宽度
}
},
},
yAxis: {
type: 'value',
},
series: [
{
data: [1240, 2040, 1540, 3380, 4370, 1140, 2130,1234,3456],
type: 'bar',
barWidth : 7,
}
]
});
}
}
}
</script>
<style scoped>
.leftbar{
width: 400px;
height: 340px;
float: left;
}
.centerbar{
width: 45%;
height: 340px;
float: left;
margin-left: 40px;
}
.rightbar{
width: 400px;
height: 340px;
float: left;
margin-left: 40px;
}
.leftnum{
width: 100%;
height: 40px;
text-align: center;
line-height: 70px;
}
</style>
\ No newline at end of file
<template>
</template>
<script>
import { listDetectorReportData } from "@/api/detector/detectorReportData";
export default {
};
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
<template>
<div style="padding: 40px 40px 20px 40px;">
<div class="bottletop">
<div class="bottletopleft">
<div class="bottop">
<div class="botbanner">
<div style="margin-left: 20px;position: absolute;">气瓶统计</div>
<img src="../../../assets/mapinages/Group1129.png" alt="" style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;">
</div>
<div class="botnumber">
<div class="botimage">
<img src="../../../assets/mapinages/Group1130.png" alt="" style="width: 100px;height: 100px;margin-top: 30px;">
<div class="ima">
<div style="color: #4CC4E0;font-weight: bolder;">358275</div><span style="color: #fff;">总计</span>
</div>
</div>
<div class="botnum">
<div class="numdiv">
<p style="color: #4CC4E0;">本月新增</p>
<span style="color: #EEC25B;font-size: 30px;">683</span><span style="color: #4CC4E0;"></span>
</div>
<div class="numdiv">
<p style="color: #4CC4E0;">本年新增</p>
<span style="color: #EEC25B;font-size: 30px;">683</span><span style="color: #4CC4E0;"></span>
</div>
</div>
</div>
</div>
<div class="bottop">
<div class="botbanner">
<div style="margin-left: 20px;position: absolute;">气瓶配送统计</div>
<img src="../../../assets/mapinages/Group1129.png" alt="" style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;">
</div>
<div class="botnumber">
<div class="botimage">
<img src="../../../assets/mapinages/Group1130.png" alt="" style="width: 100px;height: 100px;margin-top: 30px;">
<div class="ima">
<div style="color: #4CC4E0;font-weight: bolder;">35358275</div><span style="color: #fff;">总计</span>
</div>
</div>
<div class="botnum">
<div class="numdiv">
<p style="color: #4CC4E0;">本月新增</p>
<span style="color: #EEC25B;font-size: 30px;">6833</span><span style="color: #4CC4E0;"></span>
</div>
<div class="numdiv">
<p style="color: #4CC4E0;">本年新增</p>
<span style="color: #EEC25B;font-size: 30px;">623483</span><span style="color: #4CC4E0;"></span>
</div>
</div>
</div>
</div>
</div>
<div class="bottletopcenter">
<div id="map"></div>
</div>
<div class="bottletopright">
<div class="bottop">
<div class="botbanner">
<div style="margin-left: 20px;position: absolute;">气瓶充装统计</div>
<img src="../../../assets/mapinages/Group1129.png" alt="" style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;">
</div>
<div class="botnumber">
<div class="botimage">
<img src="../../../assets/mapinages/Group1130.png" alt="" style="width: 100px;height: 100px;margin-top: 30px;">
<div class="ima">
<div style="color: #4CC4E0;font-weight: bolder;">358275</div><span style="color: #fff;">总计</span>
</div>
</div>
<div class="botnum">
<div class="numdiv">
<p style="color: #4CC4E0;">本月新增</p>
<span style="color: #EEC25B;font-size: 30px;">6843</span><span style="color: #4CC4E0;"></span>
</div>
<div class="numdiv">
<p style="color: #4CC4E0;">本年新增</p>
<span style="color: #EEC25B;font-size: 30px;">6483</span><span style="color: #4CC4E0;"></span>
</div>
</div>
</div>
</div>
<div class="bottop">
<div class="botbanner">
<div style="margin-left: 20px;position: absolute;">瓶装燃气用户分析</div>
<img src="../../../assets/mapinages/Group1129.png" alt="" style="width: 100%;height: 100%;position: absolute;top: 0;left: 0;">
</div>
<div class="botnumber">
<div id="myChartpieone" :style="{width: '400px', height: '200px'}"></div>
</div>
</div>
</div>
</div>
<div class="bottlebottom">
<operationNum></operationNum>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import operationNum from "./components/operationNum";
import { EditorMap } from "@/utils/mapClass/map";
import { mapGetters } from "vuex";
// import { EditorMap } from "@/utils/mapClass/getPath.js";
export default {
components: {
operationNum,
},
data() {
return {
//地图
// map: null,
}
},
computed: {
...mapGetters([ "systemSetting"])
},
mounted () {
this.drawLine();
const path = eval(this.systemSetting.map_center);
this.map = new EditorMap(
"map",
{
center: path,
zoom: 14.5,
},
this
);
},
methods: {
drawLine() {
// 基于准备好的dom,初始化echarts实例
let myChart1 = this.$echarts.init(document.getElementById("myChartpieone"));
// 绘制图表
myChart1.setOption({
grid: {
bottom: "7%",
containLabel: true,
},
legend: {
orient:"horizontal",
icon: "circle",
x:'right',
y:' center',
width:'300',
padding:[25, 30,0, 0],
itemWidth:10,
textStyle:{
color:'#000',
},
},
tooltip: {
trigger: 'item',
},
series: [
{
name: '任务概况',
type: 'pie',
radius: ['50%', '70%'],
center: ['50%','60%'],
data: [
{
value: 40,
name: '居民',
itemStyle: { color: '#4CC4E0' }
},
{
value: 59,
name: '非居民' ,
itemStyle: { color: '#EEC25B' }
},
],
labelLine:{
length:20,
length2:20,
},
label:{
color:'#fff',
fontSize: 14,
// formatter:"{b}\n\n",
// padding:[0,-55],
normal: {
show: true,
position: 'outer',
// formatter: '{d}%, {c} \n\n',
//模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。
formatter: "{a_set|{b}}{b_set|{d}%}",
// formatter: "{a_set|{b}}\n{c_set|{d}%}\n{b|}\n\n",
borderWidth: 10,
borderRadius: 4,
rich: {
a_set: {
color: "auto",
// lineHeight: 20,
align: "left",
// padding: [55, -40, -15, -40],
},
b_set:{
color: "auto",
},
}
}
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
});
}
}
};
</script>
<style lang="scss" scoped>
.bottletop{
width: 100%;
height: 450px;
}
.bottletopleft{
width: 400px;
height: 100%;
float: left;
}
.bottop{
width: 100%;
height: 50%;
}
.botbanner{
width: 100%;
height: 30px;
position: relative;
font-weight: bolder;
}
.botnumber{
width: 100%;
height: 100%;
}
.botimage{
float: left;
width: 100px;
height: 200px;
position: relative;
margin-left: 20px;
}
.ima{
width: 100%;
position: absolute;
text-align: center;
top: 0;
margin-top: 60px;
}
.botnum{
float: left;
width: 70%;
height: 200px;
padding: 30px 0 25px 25px;
}
.numdiv{
width: 50%;
text-align: center;
float: left;
}
.bottletopcenter{
width: 45%;
height: 100%;
float: left;
margin-left: 40px;
}
#map{
width: 100%;
height: 100%;
}
.bottletopright{
width: 400px;
height: 100%;
float: left;
margin-left: 40px;
}
.bottlebottom{
width: 100%;
height: 340px;
margin-top: 30px;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment