代码合并,功能修改

master
徐景良 2023-08-11 16:30:37 +08:00
parent 1ccfe7ab44
commit a3bdb41d33
15 changed files with 2433 additions and 50 deletions

View File

@ -1,15 +1,17 @@
{
"method":"feixian",
"method":"pingyixian",
"gaodeApi": "4f992c089f9496201f6e4ea39ff3ab60",
"pingyixian":{
"appname":"平邑县森林防火电子沙盘",
"area":"平邑县",
"baseUrl":"",
"baseUrl":"http://123.132.248.154:9210",
"layerurl":"http://123.132.248.154:9236/applicationMars/getApplicationInfo/pingyixian",
"map":{
"center":[],
"zoom":null
},
"waterUrl":"http://175.27.168.120:8080/geoserver/pingyixian/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=pingyixian%3Ashuiyuandi_new&maxFeatures=50000&outputFormat=application%2Fjson",
"waterUrl":"http://223.99.16.253:9007/geoserver/ksp/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=ksp%3Ashp_1686208018&maxFeatures=500&outputFormat=application%2Fjson",
"goodsUrl":"",
"tools":{
"routebox":true,
@ -25,17 +27,18 @@
"feixian":{
"appname":"费县森林防火电子沙盘",
"area":"费县",
"baseUrl":"",
"baseUrl":"http://223.99.16.253:9001",
"layerurl":"http://223.99.16.253:9006/applicationMars/getApplicationInfo",
"map":{
"center":[],
"zoom":null
},
"waterUrl":"",
"waterUrl":"http://123.132.248.154:9235/geoserver/ksp/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=ksp%3Ashp_1691142509&maxFeatures=5000&outputFormat=application%2Fjson",
"goodsUrl":"",
"tools":{
"routebox":true,
"toolsbox":true,
"monitorbox":true,
"monitorbox":false,
"uavbox":true,
"waterbox":true,
"reportbox":true,

File diff suppressed because it is too large Load Diff

BIN
public/img/huozai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
public/img/login-bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@ -6,6 +6,11 @@
<script>
import Vue from 'vue'
import axios from 'axios';
import AppInfo from "../../../public/config/app.json"
// alert(AppInfo[localStorage.getItem("areaName")].layerurl)
// 使
// import 'mars3d/dist/mars3d.css'
// import * as mars3d from 'mars3d'
@ -64,19 +69,34 @@ export default {
} else {
mars3d.Resource.fetchJson({ url: this.url }).then((data) => {
console.log("datadatadatadata:::::",data);
//
axios({
method:"get",
url:"",
headers:{
"X-Token":localStorage.getItem("X-Token")
}
url:AppInfo[localStorage.getItem("areaName")].layerurl
}).then(res=>{
//
})
let configLayers = [];
res.data.data.forEach((item,index)=>{
let group = null;
group = {
id:parseInt(Math.random()*10000000),
name:item.serverName,
type:"group"
}
configLayers.push(group);
if(item.children && item.children.length>0){
item.children.forEach((it,idx)=>{
let attribute = JSON.parse(it.attribute);
attribute.pid = group.id;
configLayers.push(attribute);
})
}
})
this.initMars3d(data.map3d)//
data.map3d.layers = configLayers
this.initMars3d(data.map3d)
})
// this.initMars3d(data.map3d)//
})
}
},

View File

@ -33,6 +33,10 @@ const user = {
login(username, userInfo.password).then(response => {
const data = response
setToken(data.token)
localStorage.setItem("userId",response.userInfo.id);
localStorage.setItem("userName",response.userInfo.account);
localStorage.setItem("areaName",response.userInfo.areaENName);
localStorage.setItem("areaCNName",response.userInfo.areaCNName);
commit('SET_TOKEN', data.token)
resolve()
}).catch(error => {

View File

@ -4,7 +4,7 @@
<div class="el-header">
<div class="app-name">{{appName}}</div>
<div class="header-info">
<div class="header-info" style="position:absolute;z-index:9999999999999999;right:200px;">
<!-- 天气中心 -->
<div class="weather-info">
<div class="weater">{{weater}}</div>
@ -16,7 +16,7 @@
<div class="time-date-info">{{date}}</div>
</div>
<!-- 退出按钮 -->
<div class="logout-button" @click="logout()"></div>
<div class="logout-button" style="position:relative;z-index:999999999999999999999999999999999999999999;" @click="logout()"></div>
</div>
</div>
@ -85,7 +85,6 @@
<waterbox v-show="appTools['waterbox'] && active == 3" :waterCenter="waterCenter" :globalmap="globalmap"></waterbox>
<!-- 物资调度 -->
<!-- <goodsbox v-show="appTools['goodsbox'] && active == 4" :endLngLat="endLngLat" :globalmap="globalmap"></goodsbox> -->
</div>
@ -95,7 +94,7 @@
<personnel :fireData="currentInfo" :globalmap="globalmap"></personnel>
</div>
<!-- 物资 -->
<div class="goods-container" v-show="goodsVisible">
<div class="goods-container" v-if="goodsVisible">
<goodsbox :endLngLat="endLngLat" :globalmap="globalmap"></goodsbox>
</div>
<!-- 水源 -->
@ -125,6 +124,13 @@
<monitorbox @showLCmonitorbox="showLCmonitorbox"></monitorbox>
</div>
<div class="monitor" v-if="false">
<div class="close-button">
<i class='el-icon el-icon-close'></i>
</div>
<videocall></videocall>
</div>
<div class="monitor" v-if="LCmonitorboxShow">
<div class="close-button" @click="LCmonitorboxShow = false">
<i class='el-icon el-icon-close'></i>
@ -138,6 +144,7 @@
</div>
<HKmonitorbox v-if="HKmonitorboxShow" :deviceId="deviceId" :channelId="channelId"></HKmonitorbox>
</div>
</div>
@ -175,6 +182,7 @@ import taskbox from './widget/taskbox.vue';
import gridbox from './widget/gridbox.vue';
import LCmonitorbox from './widget/LCmonitorbox.vue'
import HKmonitorbox from './widget/HKmonitorbox.vue'
import videocall from './widget/videocallbox.vue';
import personnel from './widget/personnel.vue';
import axios from 'axios';
import jQuery from 'jquery';
@ -200,7 +208,8 @@ export default {
LCmonitorbox,
HKmonitorbox,
mergebox,
personnel
personnel,
videocall
},
data() {
@ -222,7 +231,8 @@ export default {
weater:null,
temperature:null,
globalmap:null,
configUrl: "config/config.json",
// configUrl: "config/config.json",
configUrl: "config/"+localStorage.getItem("areaName")+"Config.json",
widgetUrl: "config/widget.json",
tileLayer:null,
active:1,
@ -259,7 +269,7 @@ export default {
},
created(){
window.AppConfig = AppConfigInfo[AppConfigInfo.method];
window.AppConfig = AppConfigInfo[localStorage.getItem("areaName")];
this.appName = AppConfig.appname;
this.appTools = AppConfig.tools;
let _this = this;
@ -308,7 +318,11 @@ export default {
},
// 退
logout(){
localStorage.setItem("X-Token",null);
localStorage.setItem("X-Token","");
let arr = document.getElementById("map-querybar");
arr.forEach((item,index)=>{
arr[index].style.display = "none"
})
this.$router.push({'path':'/login'})
},
//
@ -358,7 +372,7 @@ export default {
map.addLayer(_self.graphicLayer)
//
let graphic = new mars3d.graphic.BillboardEntity({
position: [117.838645,35.503401,248.7],
position: localStorage.getItem("areaName") == 'feixian' ? [118.031537, 35.43147, 246] : [117.838645,35.503401,248.7],
style: {
image: "/img/miehuozhuanban.png",
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,

View File

@ -30,11 +30,11 @@ import { parse } from '../lib/handleGeojson';
],
formData:{
"address": "",
"address": "",
"lng": "",
"lat": "",
"ids": [],
"modifyId": ""
"modifyId": localStorage.getItem("userId")
},
graphicLayer:null,
graphicPoint:null,
@ -79,7 +79,7 @@ import { parse } from '../lib/handleGeojson';
let graphic = new mars3d.graphic.BillboardEntity({
position: [lng, lat, z],
style: {
image: "/img/route-start.png",
image: "/img/huozai.png",
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
clampToGround: true
@ -101,6 +101,23 @@ import { parse } from '../lib/handleGeojson';
},
merage(){
this.formData.ids = this.checkList;
if(this.checkList.length<2){
this.$message({
type:"warning",
message:"请选择至少两条线索",
})
return;
}
if(!this.formData.lng && !this.formData.lat){
this.$message({
type:"warning",
message:"请选择合并后火点",
})
return;
}
axios({
method:"post",
url:"http://123.132.248.154:9224/api/FireManagement/MergeNewFireClueInfo",
@ -108,7 +125,6 @@ import { parse } from '../lib/handleGeojson';
headers:{
'X-Token':localStorage.getItem("X-Token")
}
}).then(res=>{
if(res.data.code == 200){
this.pathPointGraphicLayer.clear();

View File

@ -25,10 +25,7 @@ import axios from 'axios'
return {
reportList:{},
listQuery:{
state:0,
areaname:'feixian',
pageIndex:1,
pageSize:10,
areaName:"feixian",
},
}
},

View File

@ -32,7 +32,7 @@
</div>
</div>
<div style="text-align:right;margin:0px 28px;">
<el-button type="primary" size="mini" @click="$emit('merge')">线</el-button>
<el-button type="primary" size="mini" @click="merage">线</el-button>
<el-button type="warning" size="mini">标为误报线索</el-button>
</div>
</div>
@ -48,11 +48,8 @@ import { parse } from '../lib/handleGeojson';
return {
active:1,
list:[],
listQuery:{
state:0,
areaname:'feixian',
pageIndex:1,
pageSize:10,
listParams:{
areaname:"feixian",
},
graphicLayer:null,
graphicPoint:null,
@ -77,6 +74,16 @@ import { parse } from '../lib/handleGeojson';
},
methods:{
merage(){
if(this.checkList.length<2){
this.$message({
type:"warning",
message:"请选择至少两条线索",
})
}else{
this.$emit('merge')
}
},
jiankong(e){
this.$emit("jiankong",e);
},
@ -120,7 +127,7 @@ import { parse } from '../lib/handleGeojson';
axios({
method:"get",
url:"http://123.132.248.154:9224/api/FireManagement/LoadFireClueInfoByState",
params:this.listQuery,
params:this.listParams,
headers:{
'X-Token':localStorage.getItem("X-Token")
}

View File

@ -25,7 +25,7 @@
import axios from 'axios'
import { parse } from '../lib/handleGeojson.js';
import * as turf from '@turf/turf'
import AppConfig from '../../../../public/config/app.json'
export default {
name: 'routebox',
props:['globalmap','routeInfo'],
@ -97,7 +97,7 @@ import * as turf from '@turf/turf'
let endCoor = this.endPoint.split(",");
axios({
method: 'get',
url: 'http://123.132.248.154:9210/api/FirePrevention/LoadRoad',
url: AppConfig[localStorage.getItem('areaName')].baseUrl+'/api/FirePrevention/LoadRoad',
params: {
startlng: parseFloat(startCoor[0]),
startlat: parseFloat(startCoor[1]),

View File

@ -0,0 +1,122 @@
<template>
<div class="box">
<div class="box-title">视频通话</div>
</div>
</template>
<script>
import axios from "axios";
export default {
name: 'monitorbox',
data(){
return{
list:[]
}
},
created(){
},
methods:{
}
}
</script>
<style scoped>
.box{
width: 340px;
height: 200px;
overflow: hidden;
background-image: url(/img/uav-bg.png);
background-size: 100% 100%;
text-align:left;
z-index: 99;
}
.box-title{
width:100%;
height:40px;
line-height:50px;
text-indent:20px;
color: #00FFF0;
}
.box-container{
width: calc( 100% - 0px);
padding:0px 12px;
height: calc( 100% - 60px);
}
.table-header{
width: calc( 100% - 10px);
height:25px;
color:#fff;
text-align: center;
}
.table-header div{
float:left;
width:25%;
border-bottom:1px dashed #00FFF0;
padding-bottom:8px;
}
.table-body{
width:100%;
height: calc( 100% - 40px);
overflow-y: auto;
}
.table-body .item{
width:100%;
height:36px;
background: #00ffee2f;
font-size:12px;
text-align: center;
line-height:36px;
cursor:pointer;
}
.table-body .item:nth-child(2n){
background:#00ffee50;
}
.table-body .item div{
float:left;
width:25%;
color:#eee;
overflow: hidden;
height:36px;
}
::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb {
border: 0
}
::-webkit-scrollbar {
height: 10px;
width: 10px;
background: transparent;
border-radius: 5px
}
::-webkit-scrollbar-thumb {
padding-top: 100px;
-webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, .1), inset -1px -1px 0 rgba(0, 0, 0, .07);
background-color: #797979;
min-height: 28px;
border-radius: 4px;
background-clip: padding-box
}
::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb {
border: 0
}
::-webkit-scrollbar-thumb:hover {
-webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, .25);
background-color: rgba(0, 0, 0, .4)
}
::-webkit-scrollbar-thumb:active {
-webkit-box-shadow: inset 1px 1px 3px rgba(0, 0, 0, .35);
background-color: rgba(0, 0, 0, .5)
}
</style>

View File

@ -24,7 +24,7 @@
</div>
</div>
</div>
<div style="top: 40%;left: 8%;position:absolute;">
<div style="top: 35%;left: 8%;position:absolute;">
<div class="input-wrapper login-container">
<label class="label">
<img src="~@/assets/login/密码.png">
@ -36,13 +36,13 @@
</div>
</div>
<div style="top: 65%;left: 8%;position:absolute;">
<div style="top: 55%;left: 8%;position:absolute;">
<el-button class="login-btn" v-waves type="primary" style="width:448px;background:#0088FF;border-radius: 10px;font-size: 24px;height: 50px;" :loading="loading" @click.native.prevent="handleLogin">
</el-button>
</div>
<div style="top: 86%;left: 10%;position:absolute;">
<div style="top: 76%;left: 10%;position:absolute;">
<div class="left-txt">
<span>忘记密码</span>
</div>
@ -127,6 +127,7 @@
'tenantid'
])
},
methods: {
...mapActions([
'setTenantId', //
@ -149,7 +150,7 @@
this.$store.dispatch('Login', this.loginForm).then(() => {
this.loading = false
this.$router.push({
path: '/dashboard'
path: '/home'
})
}).catch(() => {
this.loading = false
@ -300,21 +301,21 @@
<style scoped>
.left-panel {
/* background-image: url('~@/assets/login/bg1.jpg'); */
background-image: url('/img/login-bg.jpg');
width: 100%;
height: 100vh;
background-repeat: no-repeat;
background-size: 100%;
}
.right-panel {
background-image: url('../../assets/login/矩形.png');
/* background-image: url('../../assets/login/矩形.png'); */
background-repeat: no-repeat;
background-size: 100%;
padding-top:20%;
position:absolute;
/* right:130px; */
right: 8%;
top:390px;
left:50%;
top:50%;
transform: translate(-50%,-50%);
width:536px;
height: 561px;
}