Compare commits

...

2 Commits

7 changed files with 881 additions and 905 deletions

View File

@ -1,14 +1,5 @@
NODE_ENV = development
VUE_APP_OIDC_AUTHORITY = http://112.233.241.108:12796
VUE_APP_OIDC_CLIENTID = OpenAuth.Pro
VUE_APP_OIDC_REDIRECTURI = http://112.233.241.108:1803/#/oidc-callback
VUE_APP_OIDC_POSTLOGOUTREDIRECTURI = http://112.233.241.108:1803
VUE_APP_OIDC_RESPONSETYPE = code
VUE_APP_OIDC_SCOPE = openid profile openauthapi
VUE_APP_OIDC_AUTOMATICSILENTRENEW = true
VUE_APP_OIDC_SILENTREDIRECTURI = http://112.233.241.108:1803/silent-renew-oidc.html
#VUE_APP_BASE_API =http://192.168.10.123:9159/api
#VUE_APP_BASE_IMG_URL = http://192.168.10.123:9159

View File

@ -1,14 +1,5 @@
NODE_ENV = production
VUE_APP_OIDC_AUTHORITY = http://demo.openauth.me:12796
VUE_APP_OIDC_CLIENTID = OpenAuth.Pro
VUE_APP_OIDC_REDIRECTURI = http://demo.openauth.me:1803/#/oidc-callback
VUE_APP_OIDC_POSTLOGOUTREDIRECTURI = http://demo.openauth.me:1803
VUE_APP_OIDC_RESPONSETYPE = code
VUE_APP_OIDC_SCOPE = openid profile openauthapi
VUE_APP_OIDC_AUTOMATICSILENTRENEW = true
VUE_APP_OIDC_SILENTREDIRECTURI = http://demo.openauth.me:1803/silent-renew-oidc.html
#VUE_APP_BASE_API = http://192.168.10.123:9159/api
#VUE_APP_BASE_IMG_URL = http://192.168.10.123:9159

2
.gitignore vendored
View File

@ -1,7 +1,7 @@
.DS_Store
node_modules
/dist
.history/
# local env files
.env.local
.env.*.local

View File

@ -24,9 +24,6 @@
<script type="text/javascript" src="imouPlayer.js"></script>
<link rel="stylesheet" href="index.css">
<script>
console.log("imouPlayer",imouPlayer)
</script>
<link rel="stylesheet" href="http://mars3d.cn/temp/css/divGraphic.css">
</head>
<body style="padding:0px;">

View File

@ -25,21 +25,13 @@ export default {
}
},
methods: {
userLoaded: function(e) {
console.log('I am listening to the user loaded event in vuex-oidc', e.detail)
},
reload(){
this.isRouterAlive = false
this.$nextTick(function(){
this.isRouterAlive = true
})
},
},
mounted() {
window.addEventListener('vuexoidc:userLoaded', this.userLoaded)
},
destroyed() {
window.removeEventListener('vuexoidc:userLoaded', this.userLoaded)
}
}
</script>

View File

@ -29,33 +29,7 @@ const store = new Vuex.Store({
storage,
tagsView,
flow,
tenant,
oidcStore: vuexOidcCreateStoreModule(
{
authority: process.env.VUE_APP_OIDC_AUTHORITY,
clientId: process.env.VUE_APP_OIDC_CLIENTID,
redirectUri: process.env.VUE_APP_OIDC_REDIRECTURI,
postLogoutRedirectUri:process.env.VUE_APP_OIDC_POSTLOGOUTREDIRECTURI,
responseType: process.env.VUE_APP_OIDC_RESPONSETYPE,
scope: process.env.VUE_APP_OIDC_SCOPE,
automaticSilentRenew: process.env.VUE_APP_OIDC_AUTOMATICSILENTRENEW ,
silentRedirectUri: process.env.VUE_APP_OIDC_SILENTREDIRECTURI
},
// Optional OIDC store settings
{
namespaced: false,
dispatchEventsOnWindow: true
},
// Optional OIDC event listeners
{
userLoaded: (user) => console.log('OIDC user is loaded:', user),
userUnloaded: () => console.log('OIDC user is unloaded'),
accessTokenExpiring: () => console.log('Access token will expire'),
accessTokenExpired: () => console.log('Access token did expire'),
silentRenewError: () => console.log('OIDC user is unloaded'),
userSignedOut: () => console.log('OIDC user is signed out')
}
)
tenant
},
getters
})

View File

@ -20,7 +20,8 @@
</div>
<!-- 退出按钮 -->
<div class="logout-button" style="position:relative;z-index:999999999999999999999999999999999999999999;" @click="logout()"></div>
<div class="logout-button" style="position:relative;z-index:999999999999999999999999999999999999999999;"
@click="logout()"></div>
</div>
</div>
@ -53,11 +54,15 @@
</div>
<!-- 火情线索 -->
<div class="huoqing-box" v-show="reportlistShow">
<reportlist @close="reportlistShow=false" :mergeSuccessRandom="mergeSuccessRandom" @wuzi="wuzi" @shuiyuan="shuiyuan" @getlistSocket="reportlistShow = true" @jiankong="jiankong" @renyuan="renyuan" @merge="mergeboxShow=true;" @changeCurrentInfo="changeCurrentInfo" :globalmap="globalmap" :checkList="checkList" :checkNumber="checkNumber"></reportlist>
<reportlist @close="reportlistShow = false" :mergeSuccessRandom="mergeSuccessRandom" @wuzi="wuzi" @shuiyuan="shuiyuan"
@getlistSocket="reportlistShow = true" @jiankong="jiankong" @renyuan="renyuan" @merge="mergeboxShow = true;"
@changeCurrentInfo="changeCurrentInfo" :globalmap="globalmap" :checkList="checkList" :checkNumber="checkNumber">
</reportlist>
</div>
<!-- 线索合并 -->
<div class="merage-box" v-if="mergeboxShow">
<mergebox @wuzi="wuzi" @changeCurrentInfo="changeCurrentInfo" @clsoe="mergeboxShow = false;" @success="mergeSuccess" :globalmap="globalmap" :checkList="checkList" :checkNumber="checkNumber"></mergebox>
<mergebox @wuzi="wuzi" @changeCurrentInfo="changeCurrentInfo" @clsoe="mergeboxShow = false;" @success="mergeSuccess"
:globalmap="globalmap" :checkList="checkList" :checkNumber="checkNumber"></mergebox>
</div>
<!-- 工具箱 -->
@ -80,10 +85,14 @@
</p>
</div>
<div class="situation-tab-container">
<div class="situation-tab" :style="{'border-bottom':active == 1 ? '3px solid #01D6D5': '0px'}" @click="active = 1">火情动态</div>
<div class="situation-tab" :style="{'border-bottom':active == 2 ? '3px solid #01D6D5': '0px'}" @click="active = 2">任务下发</div>
<div class="situation-tab" :style="{'border-bottom':active == 3 ? '3px solid #01D6D5': '0px'}" @click="active = 3">附近水源</div>
<div class="situation-tab" :style="{'border-bottom':active == 4 ? '3px solid #01D6D5': '0px'}" @click="active = 4">物资调度</div>
<div class="situation-tab" :style="{ 'border-bottom': active == 1 ? '3px solid #01D6D5' : '0px' }"
@click="active = 1">火情动态</div>
<div class="situation-tab" :style="{ 'border-bottom': active == 2 ? '3px solid #01D6D5' : '0px' }"
@click="active = 2">任务下发</div>
<div class="situation-tab" :style="{ 'border-bottom': active == 3 ? '3px solid #01D6D5' : '0px' }"
@click="active = 3">附近水源</div>
<div class="situation-tab" :style="{ 'border-bottom': active == 4 ? '3px solid #01D6D5' : '0px' }"
@click="active = 4">物资调度</div>
</div>
<!-- 火情动态 -->
<trendsbox v-show="active == 1"></trendsbox>
@ -97,7 +106,8 @@
</div>
<!-- 人员 -->
<div class="personnel-container" v-if="personVisible">
<personnel :fireData="currentInfo" :globalmap="globalmap" @close="personVisible = false" @videoCall="videoCall"></personnel>
<personnel :fireData="currentInfo" :globalmap="globalmap" @close="personVisible = false" @videoCall="videoCall">
</personnel>
</div>
<!-- 物资 -->
<div class="goods-container" v-if="goodsVisible">
@ -156,11 +166,13 @@
</div>
<!-- 右键点击设置 -->
<div v-if="setVisibleShow">
<rightclicksetting v-if="setVisibleShow" :globalmap="globalmap" :type="rightType" :clickdata="setDatas" @close="rightType=0"></rightclicksetting>
<rightclicksetting v-if="setVisibleShow" :globalmap="globalmap" :type="rightType" :clickdata="setDatas"
@close="rightType = 0"></rightclicksetting>
</div>
<!-- socket -->
<div class="socket-container" v-if="socketBoxVisible">
<socketDiaBox v-if="socketBoxVisible" :globalmap="globalmap" @close="socketBoxVisible = false" @videoCall="videoCall"></socketDiaBox>
<socketDiaBox v-if="socketBoxVisible" :globalmap="globalmap" @close="socketBoxVisible = false"
@videoCall="videoCall"></socketDiaBox>
</div>
<!-- 数据图层 -->
<div class="layercontainer flex column jc-c ai-c" id="layercontainer">
@ -235,7 +247,6 @@ import personnel from './widget/personnel.vue';
import taskDelivery from './widget/taskDelivery.vue';
import axios from 'axios';
import jQuery from 'jquery';
import { mask } from '@turf/turf';
import mergebox from './widget/mergebox.vue';
import rightclicksetting from './widget/rightclick.vue';
import socketDiaBox from './widget/socketdiabox.vue';
@ -245,6 +256,7 @@ import fireClues from './widget/fireclues.vue';
import rightEchartsData from './widget/rightechartsdata.vue';
let BASE_URL = process.env.VUE_APP_BASE_API
const areaName = localStorage.getItem("areaName")
export default {
name: 'business',
components: {
@ -294,28 +306,14 @@ export default {
temperature: null,
globalmap: null,
// configUrl: "config/config.json",
configUrl: "config/"+localStorage.getItem("areaName")+"Config.json",
configUrl: `config/${areaName}Config.json`,
widgetUrl: "config/widget.json",
tileLayer: null,
active: 1,
personVisible: false,
goodsVisible: false,
waterVisible: false,
currentInfo:{
"id": 443095135416325,
"reportPerson": "feixian",
"reportTime": "2023-07-26 11:38:45",
"describe": "费县东蒙镇发生火情,请立即排查",
"lng": "117.369",
"lat": "35.963",
"address": "费县东蒙镇",
"sourceType": 2,
"state": 1,
"createId": "8465b1c7-a710-492e-91e2-c61562f7358e",
"areaName": "feixian",
"sourceTypeName": "摄像机",
"stateName": "上报"
},
currentInfo: {},
LCmonitorboxShow: false,
HKmonitorboxShow: false,
deviceId: null,
@ -342,13 +340,13 @@ export default {
mounted() {
},
created() {
window.AppConfig = AppConfigInfo[localStorage.getItem("areaName")];
let _this = this;
window.AppConfig = AppConfigInfo[areaName];
this.appName = AppConfig.appname;
this.appTools = AppConfig.tools;
let _this = this;
//
setInterval(function () {
_this.handlerTime();
@ -924,10 +922,18 @@ export default {
},
url: BASE_URL + url,
}).then(data => {
console.log("data111",data);
if (data.data.code == 200) {
data.data.data.forEach((item, index) => {
$(".popup-container").append("<div class='popup-item'>"+item.username+"&nbsp;&nbsp; <span data-phone='"+item.phone+"' onmouseenter='showReadData(this);' onmouseleave='hiddenReadData(this);'>"+item.phone.replace(/(\d{3})\d*(\d{4})/, '$1****$2')+"</span>&nbsp;&nbsp;"+item.area+"&nbsp;&nbsp;"+item.usertype+"</div>");
$(".popup-container").append(
`<div class='popup-item'>
${item.username}&nbsp;&nbsp;
<span data-phone='${item.phone}' onmouseenter='showReadData(this);' onmouseleave='hiddenReadData(this);'>
${item.phone.replace(/(\d{3})\d*(\d{4})/, '$1****$2')}
</span>
&nbsp;&nbsp;${item.area}&nbsp;&nbsp;${item.usertype}
</div>
`
);
})
}
})
@ -964,6 +970,7 @@ export default {
background-image: url("/img/header.png");
background-size: 100% 80px;
}
.app-name {
min-width: 200px;
height: 80px;
@ -995,6 +1002,7 @@ export default {
text-align: center;
padding: 0px 10px;
}
.weather-info .weater {
font-size: 14px;
float: left;
@ -1052,6 +1060,7 @@ export default {
z-index: 9999;
}
.shortcut-button .quick-button {
width: 140px;
height: 40px;
@ -1072,6 +1081,7 @@ export default {
top: 130px;
left: 25px;
}
.task {
width: 480px;
height: calc(100vh - 600px);
@ -1079,12 +1089,14 @@ export default {
top: 130px;
left: 290px;
}
.tools-box {
width: 250px;
height: 100%;
float: left;
margin-right: 15px;
}
.tools-boxs {
width: 420px;
height: calc(100% - 640px);
@ -1092,6 +1104,7 @@ export default {
bottom: 50px;
left: 25px;
}
.huoqing-box {
width: 480px;
height: 360px;
@ -1100,6 +1113,7 @@ export default {
left: 25px;
z-index: 99;
}
.merage-box {
width: 480px;
height: 360px;
@ -1108,6 +1122,7 @@ export default {
left: 25px;
z-index: 99;
}
.grid-container {
width: 1200px;
padding-top: 100px;
@ -1120,6 +1135,7 @@ export default {
transform: translate(-50%, -50%);
z-index: 2000;
}
.personnel-container {
width: 525px;
height: 735px;
@ -1131,6 +1147,7 @@ export default {
transform: translate(0, -50%);
z-index: 2000;
}
.goods-container {
width: 603px;
height: 457px;
@ -1142,6 +1159,7 @@ export default {
transform: translate(0, -50%);
z-index: 2000;
}
.socket-container {
width: 500px;
height: 457px;
@ -1153,6 +1171,7 @@ export default {
transform: translate(0, -50%);
z-index: 2000;
}
.bottom-tools-container {
min-width: 200px;
height: 200px;
@ -1161,6 +1180,7 @@ export default {
left: 25px;
z-index: 1999;
}
.uav {
width: 250px;
height: 200px;
@ -1201,11 +1221,13 @@ export default {
background-size: 100% 100%;
padding: 15px 15px 0px 15px;
}
.situation-info {
color: #eee;
line-height: 18px;
padding: 10px 10px 0px 10px;
}
.situation-tab-container {
width: 100%;
height: 50px;
@ -1224,6 +1246,7 @@ export default {
cursor: pointer;
text-align: center;
}
/* 最有路线 */
.route {
width: 325px;
@ -1231,6 +1254,7 @@ export default {
float: left;
margin-right: 15px;
}
/* 附近水源地 */
.water {
width: 325px;
@ -1239,6 +1263,7 @@ export default {
left: 400px;
top: 200px;
}
/* 火情上报 */
.report {
position: absolute;
@ -1247,6 +1272,7 @@ export default {
bottom: 100px;
right: 70px;
}
.footer {
width: 100%;
height: 50px;
@ -1281,16 +1307,19 @@ export default {
bottom: 50px;
width: 56px;
}
.layerplugbox {
width: 100%;
margin-bottom: 20px;
}
.layerControlBtn {
width: 56px;
height: 56px;
border-radius: 56px;
background: linear-gradient(180deg, #062020 0%, #041515 100%);
}
.callCenterBox {
position: fixed;
left: 25px;
@ -1305,6 +1334,7 @@ export default {
justify-content: center;
padding: 20px 15px;
}
.rightdiabox {
width: 420px;
height: calc(100% - 135px);
@ -1313,16 +1343,19 @@ export default {
bottom: 50px;
z-index: 9;
}
.rightbox1 {
height: 32%;
background-image: url(/img/commonbg1.png);
background-size: 100% 100%;
}
.rightbox2 {
height: 33%;
background-image: url(/img/commonbg1.png);
background-size: 100% 100%;
}
.diatoggleBtn {
width: 32px;
height: 32px;
@ -1333,6 +1366,4 @@ export default {
bottom: 115px;
z-index: 9;
cursor: pointer;
}
</style>
}</style>