指挥调度修改

main
rosehan 2 years ago
parent beb01cbbd3
commit 5237fc355d
  1. 16
      ruoyi-ui/src/api/command-dispatch/commandDispatch.js
  2. 1
      ruoyi-ui/src/assets/images/map01.svg
  3. 1
      ruoyi-ui/src/assets/images/map01_active.svg
  4. 1
      ruoyi-ui/src/assets/images/map02.svg
  5. 1
      ruoyi-ui/src/assets/images/map02_active.svg
  6. 278
      ruoyi-ui/src/assets/styles/picture-common.scss
  7. 52
      ruoyi-ui/src/views/picture/alarm-desk/index.vue
  8. 46
      ruoyi-ui/src/views/picture/command-dispatch/index.vue
  9. 2
      ruoyi-ui/src/views/picture/resource-monitoring/dialog-module/iot-detail.vue
  10. 28
      ruoyi-ui/src/views/picture/resource-monitoring/index.vue

@ -172,3 +172,19 @@ export function getAllSpecifiedFile(query) {
params: query
})
}
// 环境监测 温度数据接口
export function getTemperatureTrend() {
return request({
url: '/environmentData/environment/getTemperatureTrend',
method: 'get',
})
}
// 环境监测 降雨量数据接口
export function getRainfall() {
return request({
url: '/environmentData/environment/getRainfall',
method: 'get',
})
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

@ -2,21 +2,23 @@
::-webkit-scrollbar {
width: 4px;
height: 4px;
background-color: rgba(102,182,255, .1);
background-color: rgba(102, 182, 255, .1);
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(102,182,255, 0.3);
-webkit-box-shadow: inset 0 0 6px rgba(102,182,255, 0.3);
box-shadow: inset 0 0 6px rgba(102, 182, 255, 0.3);
-webkit-box-shadow: inset 0 0 6px rgba(102, 182, 255, 0.3);
border-radius: 4px;
background-color: rgba(102,182,255, 0.1);
background-color: rgba(102, 182, 255, 0.1);
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
border-radius: 4px;
box-shadow: inset 0 0 6px rgba(102,182,255, 0.1);
-webkit-box-shadow: inset 0 0 6px rgba(102,182,255, 0.1);
background-color: rgba(102,182,255, 1);
box-shadow: inset 0 0 6px rgba(102, 182, 255, 0.1);
-webkit-box-shadow: inset 0 0 6px rgba(102, 182, 255, 0.1);
background-color: rgba(102, 182, 255, 1);
}
/* 屏幕基准 */
@ -71,29 +73,155 @@ body {
.height-full {
height: 100%
}
.row{display:flex;flex-wrap:wrap}
.col{flex:1 0 0%}
.col-auto{flex:0 0 auto;width:auto}
.col-1{flex:0 0 auto;width:8.33333333%}
.col-2{flex:0 0 auto;width:16.66666667%}
.col-3{flex:0 0 auto;width:25%}
.col-4{flex:0 0 auto;width:33.33333333%}
.col-5{flex:0 0 auto;width:41.66666667%}
.col-6{flex:0 0 auto;width:50%}
.col-7{flex:0 0 auto;width:58.33333333%}
.col-8{flex:0 0 auto;width:66.66666667%}
.col-9{flex:0 0 auto;width:75%}
.col-10{flex:0 0 auto;width:83.33333333%}
.col-11{flex:0 0 auto;width:91.66666667%}
.col-12{flex:0 0 auto;width:100%}
.row {
display: flex;
flex-wrap: wrap
}
.col {
flex: 1 0 0%
}
.col-auto {
flex: 0 0 auto;
width: auto
}
.col-1 {
flex: 0 0 auto;
width: 8.33333333%
}
.col-2 {
flex: 0 0 auto;
width: 16.66666667%
}
.col-3 {
flex: 0 0 auto;
width: 25%
}
.col-4 {
flex: 0 0 auto;
width: 33.33333333%
}
.col-5 {
flex: 0 0 auto;
width: 41.66666667%
}
.col-6 {
flex: 0 0 auto;
width: 50%
}
.col-7 {
flex: 0 0 auto;
width: 58.33333333%
}
.col-8 {
flex: 0 0 auto;
width: 66.66666667%
}
.col-9 {
flex: 0 0 auto;
width: 75%
}
.col-10 {
flex: 0 0 auto;
width: 83.33333333%
}
.col-11 {
flex: 0 0 auto;
width: 91.66666667%
}
.col-12 {
flex: 0 0 auto;
width: 100%
}
.text-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.p-dispatch-box{
.p-dispatch-name{flex:0 0 auto;width:120px}
.p-mapSelect {
position: fixed;
top: 25px;
width: 250px;
left: 400px;
z-index: 9999;
.p-mapSelect-box {
cursor: pointer;
text-align: center;
margin: 0 auto;
margin-right: 5px;
}
.p-mapSelect-icon {
display: inline-block;
width: 30px;
height: 30px;
}
.p-mapSelect-box.weixin .p-mapSelect-icon {
background: url('~@/assets/images/map01.svg');
background-repeat: repeat;
background-size: 30px;
background-size: contain;
background-position: center center;
background-repeat: no-repeat;
}
.p-mapSelect-box.shuzi .p-mapSelect-icon {
background: url('~@/assets/images/map02.svg');
background-repeat: repeat;
background-size: 30px;
background-size: contain;
background-position: center center;
background-repeat: no-repeat;
}
.p-mapSelect-text {
display: inline-block;
line-height: 30px;
text-align: center;
font-size: 14px;
}
.p-mapSelect-box.weixin.active {
.p-mapSelect-icon {
background: url('~@/assets/images/map01_active.svg');
}
.p-mapSelect-text{color: rgb(66, 233, 131);}
}
.p-mapSelect-box.shuzi.active {
.p-mapSelect-text{color: rgb(66, 233, 131);}
.p-mapSelect-icon {
background: url('~@/assets/images/map02_active.svg');
}
}
}
.p-dispatch-box {
.p-dispatch-name {
flex: 0 0 auto;
width: 120px
}
}
.p-emergency-plan {
.p-emergency-plan-item {
display: flex;
@ -148,10 +276,15 @@ body {
background-repeat: no-repeat;
}
}
.p-container {
padding: 0 20rem;
}
.inline-block{ display: inline-block;}
.inline-block {
display: inline-block;
}
/* 页面盒子 */
.p-pages-box {
position: fixed;
@ -184,13 +317,26 @@ body {
background-position: bottom;
cursor: pointer;
}
.p-talarm-dialog{position: fixed!important; left: 300rem!important; top: 10rem!important;background: #102032;
.p-talarm-dialog {
position: fixed !important;
left: 300rem !important;
top: 10rem !important;
background: #102032;
text-align: center;
.el-dialog__header{padding: 0;}
.el-dialog__header {
padding: 0;
}
.el-icon-close:before {
content: '';
}
.el-dialog__body{padding: $p-spacer-small;}
.el-dialog__body {
padding: $p-spacer-small;
}
.el-dialog__headerbtn {
top: -10rem;
right: -10rem;
@ -207,10 +353,15 @@ body {
opacity: 1;
}
}
.p-filter-dialog {
background: #102032;
text-align: center;
.el-dialog__header{padding: 0;}
text-align: center;
.el-dialog__header {
padding: 0;
}
.el-icon-close:before {
content: '';
}
@ -591,7 +742,7 @@ text-align: center;
/* 流量状态 */
.type1 ,.type2{
.type1, .type2 {
/* 舒适 */
display: inline-flex;
width: 100rem;
@ -639,7 +790,7 @@ text-align: center;
}
/* 拥挤状态 */
.type4, .type5{
.type4, .type5 {
/* 拥挤 */
display: inline-flex;
width: 100rem;
@ -669,11 +820,12 @@ text-align: center;
border-color: rgba($p-border-color, .5) !important;
color: #fff;
}
.el-input--mini .el-input__inner {
background-color: #152537 !important;
border-color: rgba($p-border-color,1) !important;
color: #fff;
}
.el-input--mini .el-input__inner {
background-color: #152537 !important;
border-color: rgba($p-border-color, 1) !important;
color: #fff;
}
.el-icon-arrow-up:before {
content: "\e636" !important;
@ -697,11 +849,12 @@ text-align: center;
border-color: rgba($p-border-color, .5) !important;
color: #fff;
}
.el-input__inner {
height: 30px;
line-height: 30px;
background-color: #152537 !important;
border-color: rgba($p-border-color,1) !important;
border-color: rgba($p-border-color, 1) !important;
color: #fff;
}
@ -718,8 +871,13 @@ text-align: center;
color: $p-primary-color;
}
}
.audio-controls{position: relative; z-index: 9999;}
.p-pages-box{
.audio-controls {
position: relative;
z-index: 9999;
}
.p-pages-box {
.el-select-dropdown {
position: relative;
margin-top: $p-spacer-mini !important;
@ -786,11 +944,18 @@ text-align: center;
background: linear-gradient(to bottom, rgba($p-primary-color, 0) 0, rgba($p-primary-color, 0.6) 50%, rgba($p-primary-color, 0) 100%);
}
}
.el-message-box.v-message{
.el-message-box.v-message {
background-color: #001621 !important;
border-color: rgba($p-border-color, .5) !important;
.el-message-box__title{color: #fff}
.el-message-box__message p{color: #fff}
.el-message-box__title {
color: #fff
}
.el-message-box__message p {
color: #fff
}
}
@ -1688,7 +1853,7 @@ text-align: center;
width: 30px;
height: 30px;
border: 1px solid $p-primary-color;
box-shadow: inset 0px 0px 6px 0px rgba(66,233,131, .8);
box-shadow: inset 0px 0px 6px 0px rgba(66, 233, 131, .8);
border-radius: 30px;
margin-bottom: $p-spacer-mini;
text-align: center;
@ -1709,6 +1874,7 @@ text-align: center;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
/* 弹框 盒子 */
.p-dialog-box {
position: relative;
@ -2280,18 +2446,32 @@ text-align: center;
}
}
.p-map-tip{
.p-map-tip {
position: absolute;
right: 40rem;
bottom: 40rem;
.p-map-tip-item{padding: 10rem 20rem; margin-bottom: 10rem;
.p-map-tip-item {
padding: 10rem 20rem;
margin-bottom: 10rem;
height: 100rem;
background: url("~@/assets/images/p_data_bottom.svg");
background-size: contain;
background-position: bottom;
background-repeat: no-repeat;}
.p-map-tip-num{font-family: "DIN Alternate"; margin-top: -8rem; font-size: 25rem; text-align: center;}
.p-map-tip-txt{ text-align: center;}
background-repeat: no-repeat;
}
.p-map-tip-num {
font-family: "DIN Alternate";
margin-top: -8rem;
font-size: 25rem;
text-align: center;
}
.p-map-tip-txt {
text-align: center;
}
}
.m-t-mini {

@ -7,6 +7,20 @@
<!-- 页面地图 -->
<div class="p-pages-map">
<div class="p-mapSelect row">
<div class="col-6">
<div class="p-mapSelect-box row shuzi" :class="mapActive=='0'?'active':''" @click="delSatellitMap()">
<span class="p-mapSelect-icon"></span>
<span class="p-mapSelect-text">数字地图</span>
</div>
</div>
<div class="col-6">
<div class="p-mapSelect-box row weixin" :class="mapActive=='1'?'active':''" @click="addSatellitMap()">
<span class="p-mapSelect-icon"></span>
<span class="p-mapSelect-text">卫星地图</span>
</div>
</div>
</div>
<div id="mapDiv" class="amap-container"></div>
</div>
@ -108,8 +122,10 @@
<el-input v-model="getWarningForm.latitude" placeholder="">
<template slot="prepend" class="p-location">维度</template>
</el-input>
<new-location :show-search="false" :is-picture="true" :lat.sync="getWarningForm.latitude" :line-type="false"
:lng.sync="getWarningForm.longitude" :map-center="[getWarningForm.longitude,getWarningForm.latitude]"
<new-location :show-search="false" :is-picture="true" :lat.sync="getWarningForm.latitude"
:line-type="false"
:lng.sync="getWarningForm.longitude"
:map-center="[getWarningForm.longitude,getWarningForm.latitude]"
class="p-location-box"></new-location>
</el-form-item>
<el-form-item label="描述">
@ -207,7 +223,9 @@
<el-col :span="12">
<div class="p-alarm-form-item">
<span class="p-alarm-form-label">告警位置</span><span
class="p-detail-item num">{{ getWarningForm.longitude || '/' }},{{ getWarningForm.latitude || '/' }}</span>
class="p-detail-item num">{{
getWarningForm.longitude || '/'
}},{{ getWarningForm.latitude || '/' }}</span>
</div>
</el-col>
<el-col :span="24">
@ -219,7 +237,7 @@
</div>
</div>
</el-col>
<el-col :span="12">
<el-col :span="12">
<!-- 接警处理 -->
<base-card-sub-title class="m-b-large" title="接警处理"></base-card-sub-title>
<div class="p-alarm-box p-alarm-box-right" style="height: 65vh;">
@ -311,7 +329,7 @@ export default {
description: null,
gradeId: null,
acceptFeedback: null,
status:null
status: null
},
//
WarningFormRules: {
@ -322,15 +340,16 @@ export default {
{required: true, message: '请输入活动标题', trigger: 'blur'},
],
classificationDataCode: [
{required: true, message:'告警分类不能为空', trigger:'blur'}
{required: true, message: '告警分类不能为空', trigger: 'blur'}
],
gradeId:[
{required: true, message:'请选择紧急程度', trigger:'blur'}
gradeId: [
{required: true, message: '请选择紧急程度', trigger: 'blur'}
],
},
//
WarningQueueDate: [],
satelliteLayer: "",
mapActive: '0',
}
},
created() {
@ -352,6 +371,7 @@ export default {
this.getWarningQueue()
},
methods: {
//
initMap() {
const map = new AMap.Map('mapDiv', {
center: [114.498534, 38.042279],
@ -366,6 +386,17 @@ export default {
map.addControl(new AMap.PlaceSearch())
})
},
//
addSatellitMap() {
this.mapActive = '1'
this.satelliteLayer = new AMap.TileLayer.Satellite();
this.map.add([this.satelliteLayer]);
},
//
delSatellitMap() {
this.mapActive = '0'
this.map.remove(this.satelliteLayer);
},
//
getAlarmSource() {
let params = {
@ -448,8 +479,7 @@ export default {
this.getList()
})
}
}
else if (this.type == 2) {
} else if (this.type == 2) {
if (val == undefined) {
this.getWarningForm.status = 2
acceptAlarmInfo(this.getWarningForm).then(response => {

@ -6,6 +6,20 @@
<!-- 页面地图 -->
<div class="p-pages-map">
<div class="p-mapSelect row">
<div class="col-6">
<div class="p-mapSelect-box row shuzi" :class="mapActive=='0'?'active':''" @click="delSatellitMap()">
<span class="p-mapSelect-icon"></span>
<span class="p-mapSelect-text">数字地图</span>
</div>
</div>
<div class="col-6">
<div class="p-mapSelect-box row weixin" :class="mapActive=='1'?'active':''" @click="addSatellitMap()">
<span class="p-mapSelect-icon"></span>
<span class="p-mapSelect-text">卫星地图</span>
</div>
</div>
</div>
<div id="mapDiv" class="amap-container"></div>
</div>
<!-- 页面主体 -->
@ -184,17 +198,16 @@
</div>
<base-tabs v-model="tabType" class="m-t-large" @handleChange="getFatherValue">
<base-pane label="应急预案" name="1">
<base-tabs v-model="type" class="m-t-small m-son-pane" @handleChange="getValue(tabType,$event)">
<base-tabs v-model="yuanType" class="m-t-small m-son-pane" @handleChange="getValue(tabType,$event)">
<base-pane v-for="item in groupData" :label="item.classificationName"
:name="item.classificationCode"
>
<div class="p-module-small">
<base-overflow height="20vh">
<!-- 应急预案 -->
<div class="p-emergency-plan">
<template v-for="(item,index) in EmergencyPlanData">
<div class="p-emergency-plan-item" @click="getEmergencyID(item.id)"
<div class="p-emergency-plan-item" @click="getEmergencyID(item.code)"
:class="item.eventGradeName?getLevelClass(item.eventGradeName):'green'">
<div class="p-emergency-plan-icon">{{ item.eventGradeName ||'/'}}</div>
<div class="p-emergency-plan-text">{{ item.name }}</div>
@ -899,6 +912,9 @@ export default {
//
dispatchList: [],
showPersonType: '',
EmergencyID:'',
yuanType:'',
mapActive: '0',
}
},
created() {
@ -967,7 +983,8 @@ export default {
this.viewGetAllPresetTasks()
},
methods: {
getEmergencyID(id){
getEmergencyID(code){
this.EmergencyID=code
},
getLevelClass(value) {
switch (value) {
@ -1079,12 +1096,13 @@ export default {
this.getList()
},
//
initMap() {
const map = new AMap.Map('mapDiv', {
center: [114.498534, 38.042279],
resizeEnable: true,
zoom: 12,
mapStyle: 'amap://styles/blue'
mapStyle: "amap://styles/blue"
})
this.map = map
@ -1093,6 +1111,15 @@ export default {
map.addControl(new AMap.PlaceSearch())
})
},
//
addSatellitMap() {
this.satelliteLayer = new AMap.TileLayer.Satellite();
this.map.add([this.satelliteLayer]);
},
//
delSatellitMap() {
this.map.remove(this.satelliteLayer);
},
//
hiddenEl() {
this.$refs.showEl.style.opacity = '1'
@ -1290,7 +1317,8 @@ export default {
this.getPlanEmergency(val, this_.groupDatas[0].dataType)
}
},
getValue(tabType, type) {
getValue(name, type) {
console.log('tabType',name)
this.getPlanEmergency(tabType, type)
},
//
@ -1375,7 +1403,11 @@ export default {
this.dispatchForm.status = val
let params = {
id: this.rowId,
status: val
status: val,
emergencyPlanOneId:'',
emergencyPlanId:this.EmergencyID,
emergencyResourcesOneId:'',
emergencyResourcesId:'',
}
handleAlarmInfo(params).then(response => {
this.$message.success('保存成功')

@ -219,6 +219,7 @@ export default {
},
methods: {
getWetData() {
// 湿
let Opts = {
unit: ['次'],
@ -232,6 +233,7 @@ export default {
getRainfall().then(response => {
this.wetData.eChartData=response.data
})
console.log('this.wetData',this.wetData)
},
getTempData() {
//

@ -6,6 +6,20 @@
<!-- 页面地图 -->
<div class="p-pages-map">
<div class="p-mapSelect row">
<div class="col-6">
<div class="p-mapSelect-box row shuzi" :class="mapActive=='0'?'active':''" @click="delSatellitMap()">
<span class="p-mapSelect-icon"></span>
<span class="p-mapSelect-text">数字地图</span>
</div>
</div>
<div class="col-6">
<div class="p-mapSelect-box row weixin" :class="mapActive=='1'?'active':''" @click="addSatellitMap()">
<span class="p-mapSelect-icon"></span>
<span class="p-mapSelect-text">卫星地图</span>
</div>
</div>
</div>
<div id="mapDiv" class="amap-container"></div>
</div>
@ -468,7 +482,8 @@ export default {
label: 'label'
},
dictData:[],
dictData1:[]
dictData1:[],
mapActive: '0',
}
},
created() {
@ -509,6 +524,7 @@ export default {
let mapIcon = this.currentData.mapIcon;
this.getresourceListData(interfacePath, dataType, mapIcon)
},
//
initMap() {
const map = new AMap.Map('mapDiv', {
center: [115.710998,37.827129],
@ -523,6 +539,16 @@ export default {
map.addControl(new AMap.PlaceSearch())
})
},
//
addSatellitMap() {
this.satelliteLayer = new AMap.TileLayer.Satellite();
this.map.add([this.satelliteLayer]);
},
//
delSatellitMap() {
this.map.remove(this.satelliteLayer);
},
//
getResourceType() {
getBasicResourceCount().then(response => {

Loading…
Cancel
Save