修改
This commit is contained in:
TimSpan 2024-07-25 11:40:37 +08:00
parent 61ddfb56f4
commit 7038e38809
6 changed files with 1782 additions and 1736 deletions

File diff suppressed because one or more lines are too long

5
components.d.ts vendored
View File

@ -11,12 +11,17 @@ declare module 'vue' {
500: typeof import('./src/components/errorMessage/500.vue')['default'] 500: typeof import('./src/components/errorMessage/500.vue')['default']
AButton: typeof import('ant-design-vue/es')['Button'] AButton: typeof import('ant-design-vue/es')['Button']
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
ADropdown: typeof import('ant-design-vue/es')['Dropdown']
AForm: typeof import('ant-design-vue/es')['Form'] AForm: typeof import('ant-design-vue/es')['Form']
AFormItem: typeof import('ant-design-vue/es')['FormItem'] AFormItem: typeof import('ant-design-vue/es')['FormItem']
AImage: typeof import('ant-design-vue/es')['Image'] AImage: typeof import('ant-design-vue/es')['Image']
AInput: typeof import('ant-design-vue/es')['Input'] AInput: typeof import('ant-design-vue/es')['Input']
AInputPassword: typeof import('ant-design-vue/es')['InputPassword'] AInputPassword: typeof import('ant-design-vue/es')['InputPassword']
AMenu: typeof import('ant-design-vue/es')['Menu']
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
ASegmented: typeof import('ant-design-vue/es')['Segmented']
ASpin: typeof import('ant-design-vue/es')['Spin'] ASpin: typeof import('ant-design-vue/es')['Spin']
AStatistic: typeof import('ant-design-vue/es')['Statistic']
ATimeline: typeof import('ant-design-vue/es')['Timeline'] ATimeline: typeof import('ant-design-vue/es')['Timeline']
ATimelineItem: typeof import('ant-design-vue/es')['TimelineItem'] ATimelineItem: typeof import('ant-design-vue/es')['TimelineItem']
ATree: typeof import('ant-design-vue/es')['Tree'] ATree: typeof import('ant-design-vue/es')['Tree']

View File

@ -1,5 +1,6 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> --> <!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> -->
@ -7,13 +8,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>多元警情</title> <title>多元警情</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=8910226d8d36a41d856262b1a588850c&plugin=AMap.MarkerClusterer"></script> <script
src="https://webapi.amap.com/maps?v=1.4.15&key=8910226d8d36a41d856262b1a588850c&plugin=AMap.MarkerClusterer"></script>
<script src="./jquery-3.4.1.min.js"></script> <script src="./jquery-3.4.1.min.js"></script>
<script src="./h5player.min.js"></script> <script src="./h5player.min.js"></script>
<script type="module" src="/src/main.ts"> <script type="module" src="/src/main.ts">
</script> </script>
</body> </body>
</html> </html>

View File

@ -53,6 +53,7 @@ export const staticRouter : RouteRecordRaw[] = [
{ {
path: '/index/hkplay', path: '/index/hkplay',
component: () => import('@/views/page/hkplay.vue'), component: () => import('@/views/page/hkplay.vue'),
props: route => ({ pointId: route.query.pointId }) // 确保 pointId 参数被正确传递
}, },
{ {
path: '/index/system', path: '/index/system',

View File

@ -3,17 +3,28 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import api from '@/axios' import api from '@/axios'
import { Ref, ref, watch, onMounted, onBeforeMount, reactive, getCurrentInstance } from 'vue' import { Ref, ref, watch, onMounted, onBeforeMount, onBeforeUnmount, reactive, getCurrentInstance } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
const router = useRouter() const router = useRouter()
const infoData = ref() const infoData = ref()
var curIndex = 0 //
let myPlugin: any
onMounted(() => { onMounted(() => {
var data = { if (typeof window.JSPlugin === 'undefined') {
cameraIndexCode: router.currentRoute.value.query.pointId, console.error('JSPlugin is not loaded')
return
} else {
console.log('JSPlugin加载成功')
} }
console.log(data) let date = {
// ws://218.76.54.6:559/openUrl/aUPPuCy pointId: router.currentRoute.value.query.pointId,
api.post('/multialarm/video/preview', { pointId: data.cameraIndexCode }).then((res) => { useTLS: 0,
}
if (process.env.NODE_ENV === 'production') {
date.useTLS = 1
}
api.post('/multialarm/video/preview', { ...date }).then((res) => {
console.log('router222', res) console.log('router222', res)
console.log('播放地址', res.data.videoUrl) console.log('播放地址', res.data.videoUrl)
var code = res['code'] var code = res['code']
@ -21,7 +32,7 @@ onMounted(() => {
var playURL = res.data.videoUrl var playURL = res.data.videoUrl
var IS_MOVE_DEVICE = document.body.clientWidth < 992 // var IS_MOVE_DEVICE = document.body.clientWidth < 992 //
var MSE_IS_SUPPORT = !!window.MediaSource // mse var MSE_IS_SUPPORT = !!window.MediaSource // mse
var player = new window.JSPlugin({ myPlugin = new window.JSPlugin({
// div#play_windowiWidthiHeight // div#play_windowiWidthiHeight
// iWidth: 600, // iWidth: 600,
// iHeight: 400, // iHeight: 400,
@ -35,52 +46,72 @@ onMounted(() => {
}, },
bSupporDoubleClickFull: true, //true bSupporDoubleClickFull: true, //true
}) })
myPlugin
.JS_SetWindowControlCallback({
pluginErrorHandler: function (index: any, iErrorCode: any, oError: any) {
console.error('__________pluginErrorHandler错误码________________', index, iErrorCode, oError)
var index = 2 //
playVideo() // do you want...
//
//
},
})
.then((res: any) => {
console.log('JS_SetWindowControlCallback________________', res)
})
var controlIndex = 2
function playVideo() { function playVideo() {
console.log('____________playURL:', playURL)
console.log('____________curIndex:', curIndex)
// JS_Play // JS_Play
// JS_Play(url, config, windowIndex, startTime, endTime) // JS_Play(url, config, windowIndex, startTime, endTime)
player myPlugin
.JS_Play( .JS_Play(
playURL, playURL,
{ {
playURL: playURL, // playURL: playURL, //
mode: 1, // 0=; 1= 0 mode: 1, // 0=; 1= 0
}, },
0 // curIndex //
) )
.then( .then(
() => { () => {
console.info('JS_Play success') console.info('JS_Play success')
// do you want... // do you want...
}, },
(err: any) => { (e: any) => {
console.info('JS_Play failed:', err) console.log('网络流中断')
playVideo() controlIndex--
// do you want... if (controlIndex <= 0) {
return
}
console.info('JS_Play failed:', e)
playVideo()
} }
// () => {
// console.log('realplay success')
// },
// (e) => {
// console.log('?')
// index--
// if (index <= 0) {
// return
// }
// var inUrl = '192.168.10.240:559'
// var outUrl = '218.76.54.20:559'
// playURL = playURL.replace(outUrl, inUrl)
// playVideo()
// }
) )
} }
playVideo()
} else { } else {
alert('播放失败') alert('播放失败')
} }
}) })
}) })
// ws
onBeforeUnmount(() => {
myPlugin.JS_Stop(curIndex).then(
() => {
console.info('JS_Stop success')
// do you want...
},
(err: any) => {
console.info('JS_Stop failed:', err)
// do you want...
}
)
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -1,10 +1,8 @@
<template> <template>
<div class="indexx" :id="state.id"> <div class="indexx" :id="state.id">
<Transition name="slide-fade"> <Transition name="slide-fade">
<div class="left-cont" <div class="left-cont" :style="{ width: show3 ? '412px' : '0px', padding: show3 ? '10px 15px 5px' : '0px', border: show3 ? '10px solid #f2f3f5' : '0px' }">
:style="{ width: show3 ? '412px' : '0px', padding: show3 ? '10px 15px 5px' : '0px', border: show3 ? '10px solid #f2f3f5' : '0px' }"> <el-button @click="show3 = !show3" style="position: absolute; top: 0px; right: -38px" id="toggle-sidebar" type="info" circle>
<el-button @click="show3 = !show3" style="position: absolute; top: 0px; right: -38px"
id="toggle-sidebar" type="info" circle>
<el-icon v-if="show3"> <el-icon v-if="show3">
<d-arrow-left /> <d-arrow-left />
</el-icon> </el-icon>
@ -29,9 +27,16 @@
<!-- <el-input v-model="0"></el-input> --> <!-- <el-input v-model="0"></el-input> -->
</div> </div>
<div style="padding: 0px 20px; height: 75%; overflow: auto" v-show="show3"> <div style="padding: 0px 20px; height: 75%; overflow: auto" v-show="show3">
<a-tree v-loading="loading" :show-icon="true" :default-expand-all="true" <a-tree
v-model:expandedKeys="expandedKeys" v-model:selectedKeys="selectedKeys" v-loading="loading"
v-model:checkedKeys="checkedKeys" :tree-data="treedataall" @select="selectA"> :show-icon="true"
:default-expand-all="true"
v-model:expandedKeys="expandedKeys"
v-model:selectedKeys="selectedKeys"
v-model:checkedKeys="checkedKeys"
:tree-data="treedataall"
@select="selectA"
>
<template #title="{ title, level }"> <template #title="{ title, level }">
{{ title }} {{ title }}
</template> </template>
@ -55,10 +60,8 @@
</Transition> </Transition>
<Transition name="slide-fade1"> <Transition name="slide-fade1">
<div class="right-cont" <div class="right-cont" :style="{ width: show4 ? '412px' : '0px', padding: show4 ? '10px 15px 5px' : '0px', border: show4 ? '10px solid #f2f3f5' : '0px' }">
:style="{ width: show4 ? '412px' : '0px', padding: show4 ? '10px 15px 5px' : '0px', border: show4 ? '10px solid #f2f3f5' : '0px' }"> <el-button @click="show4 = !show4" style="position: absolute; top: 0px; left: -38px" id="toggle-sidebar1" type="info" circle>
<el-button @click="show4 = !show4" style="position: absolute; top: 0px; left: -38px"
id="toggle-sidebar1" type="info" circle>
<el-icon v-if="show4"> <el-icon v-if="show4">
<d-arrow-right /> <d-arrow-right />
</el-icon> </el-icon>
@ -112,19 +115,13 @@
<ul class="dataList" v-show="isActive1 == '1'"> <ul class="dataList" v-show="isActive1 == '1'">
<li v-if="jinbao.length > 0" v-for="(item, index) in jinbao" :key="index" @click="toinfo(item, index)"> <li v-if="jinbao.length > 0" v-for="(item, index) in jinbao" :key="index" @click="toinfo(item, index)">
<p> <p>
<el-icon> <el-icon> <LocationFilled /> </el-icon>{{ item.address }}
<LocationFilled />
</el-icon>{{ item.address }}
</p> </p>
<p> <p>
<el-icon> <el-icon> <Clock /> </el-icon>{{ item.timestamp }}
<Clock />
</el-icon>{{ item.timestamp }}
</p> </p>
<p> <p>
<el-icon> <el-icon> <PhoneFilled /> </el-icon>{{ item.user1Phone }}
<PhoneFilled />
</el-icon>{{ item.user1Phone }}
</p> </p>
<p>设备号{{ item.deviceId }}</p> <p>设备号{{ item.deviceId }}</p>
<p>平台来源{{ item.alarmSource }}</p> <p>平台来源{{ item.alarmSource }}</p>
@ -134,19 +131,13 @@
<ul class="dataList" v-show="isActive1 == '2'"> <ul class="dataList" v-show="isActive1 == '2'">
<li v-if="jinqing.length > 0" v-for="(item, index) in jinqing" :key="index" @click="toinfo(item, index)"> <li v-if="jinqing.length > 0" v-for="(item, index) in jinqing" :key="index" @click="toinfo(item, index)">
<p> <p>
<el-icon> <el-icon> <LocationFilled /> </el-icon>{{ item.address }}
<LocationFilled />
</el-icon>{{ item.address }}
</p> </p>
<p> <p>
<el-icon> <el-icon> <Clock /> </el-icon>{{ item.timestamp }}
<Clock />
</el-icon>{{ item.timestamp }}
</p> </p>
<p> <p>
<el-icon> <el-icon> <PhoneFilled /> </el-icon>{{ item.user1Phone }}
<PhoneFilled />
</el-icon>{{ item.user1Phone }}
</p> </p>
<p>设备号{{ item.alarmSource }}</p> <p>设备号{{ item.alarmSource }}</p>
<p>平台来源{{ item.station }}</p> <p>平台来源{{ item.station }}</p>
@ -156,19 +147,13 @@
<ul class="dataList" v-show="isActive1 == '3'"> <ul class="dataList" v-show="isActive1 == '3'">
<li v-if="AIyujing.length > 0" v-for="(item, index) in AIyujing" :key="index" @click="toinfo(item, index)"> <li v-if="AIyujing.length > 0" v-for="(item, index) in AIyujing" :key="index" @click="toinfo(item, index)">
<p> <p>
<el-icon> <el-icon> <LocationFilled /> </el-icon>{{ item.address }}
<LocationFilled />
</el-icon>{{ item.address }}
</p> </p>
<p> <p>
<el-icon> <el-icon> <Clock /> </el-icon>{{ item.timestamp }}
<Clock />
</el-icon>{{ item.timestamp }}
</p> </p>
<p> <p>
<el-icon> <el-icon> <PhoneFilled /> </el-icon>{{ item.user1Phone }}
<PhoneFilled />
</el-icon>{{ item.user1Phone }}
</p> </p>
<p>设备号{{ item.deviceId }}</p> <p>设备号{{ item.deviceId }}</p>
<p>平台来源{{ item.alarmSource }}</p> <p>平台来源{{ item.alarmSource }}</p>
@ -179,10 +164,8 @@
</div> </div>
</Transition> </Transition>
<div v-show="dialogTableVisible" <div v-show="dialogTableVisible" style="position: fixed; top: 115px; right: 448px; background: rgb(21, 42, 95); z-index: 99; width: 349px; padding: 10px; border-radius: 5px; padding-top: 20px">
style="position: fixed; top: 115px; right: 448px; background: rgb(21, 42, 95); z-index: 99; width: 349px; padding: 10px; border-radius: 5px; padding-top: 20px"> <el-popover :visible="visible" :show-arrow="false" placement="left" :width="400" :popper-style="{ background: '#06325F', border: '1px solid #60626654' }">
<el-popover :visible="visible" :show-arrow="false" placement="left" :width="400"
:popper-style="{ background: '#06325F', border: '1px solid #60626654' }">
<template #reference> <template #reference>
<el-icon @click="clickKz(infoData)" style="top: -6px" size="16px" color="#409EFC"> <el-icon @click="clickKz(infoData)" style="top: -6px" size="16px" color="#409EFC">
<DArrowLeft /> <DArrowLeft />
@ -194,30 +177,34 @@
<div> <div>
<p style="color: rgb(179, 194, 208)">视频点位:</p> <p style="color: rgb(179, 194, 208)">视频点位:</p>
<ul v-if="ingrssddata"> <ul v-if="ingrssddata">
<li style="text-align: center;color: #fff;" v-if="ingrssddata.ipcList.length<1">暂无数据</li> <li style="text-align: center; color: #fff" v-if="ingrssddata.ipcList.length < 1">暂无数据</li>
<li v-else style="margin-left: 20px; margin-top: 10px; color: rgb(1, 216, 226)" <li v-else style="margin-left: 20px; margin-top: 10px; color: rgb(1, 216, 226)" v-for="(item, index) in ingrssddata.ipcList">{{ item.title }}</li>
v-for="(item, index) in ingrssddata.ipcList">{{ item.title }}</li>
</ul> </ul>
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<p style="color: rgb(179, 194, 208)">安保点位:</p> <p style="color: rgb(179, 194, 208)">安保点位:</p>
<ul v-if="ingrssddata"> <ul v-if="ingrssddata">
<li style="text-align: center;color: #fff;" v-if="ingrssddata.mobileList.length<1">暂无数据</li> <li style="text-align: center; color: #fff" v-if="ingrssddata.mobileList.length < 1">暂无数据</li>
<li style="margin-left: 20px; margin-top: 10px; color: rgb(1, 216, 226)" <li style="margin-left: 20px; margin-top: 10px; color: rgb(1, 216, 226)" v-for="(item, index) in ingrssddata.mobileList">{{ item.title }}</li>
v-for="(item, index) in ingrssddata.mobileList">{{ item.title }}</li>
</ul> </ul>
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<p style="color: rgb(179, 194, 208)">文件列表:</p> <p style="color: rgb(179, 194, 208)">文件列表:</p>
<ul v-if="ingrssddata"> <ul v-if="ingrssddata">
<li style="text-align: center;color: #fff;" v-if="ingrssddata.fileList.length<1">暂无数据</li> <li style="text-align: center; color: #fff" v-if="ingrssddata.fileList.length < 1">暂无数据</li>
<li style="display: inline-block; margin-right: 5px" <li style="display: inline-block; margin-right: 5px" v-for="(item, index) in ingrssddata.fileList">
v-for="(item, index) in ingrssddata.fileList"> <el-image
<el-image style="width: 150px; height: 150px" v-if="item.type == 'image'" :src="item.url" style="width: 150px; height: 150px"
:zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[item.url]" v-if="item.type == 'image'"
:initial-index="4" fit="cover" /> :src="item.url"
<video width="150" height="150" v-if="item.type == 'video'" :src="item.url" :zoom-rate="1.2"
autoplay="autoplay" controls></video> :max-scale="7"
:min-scale="0.2"
:preview-src-list="[item.url]"
:initial-index="4"
fit="cover"
/>
<video width="150" height="150" v-if="item.type == 'video'" :src="item.url" autoplay="autoplay" controls></video>
</li> </li>
</ul> </ul>
</div> </div>
@ -358,9 +345,7 @@
</div> </div>
<el-dialog title="视频" v-model="dialogVisible" width="30%"> <el-dialog title="视频" v-model="dialogVisible" width="30%">
<iframe style="width: 100%; height: 250px" <iframe style="width: 100%; height: 250px" :src="'https://www.jy-sh.com/h5sVideo/index.html?token=' + pointCode + '&autoplay=true'" frameborder="0"></iframe>
:src="'https://www.jy-sh.com/h5sVideo/index.html?token=' + pointCode + '&autoplay=true'"
frameborder="0"></iframe>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -445,13 +430,13 @@
) )
// //
const closee = () => { const closee = () => {
dialogTableVisible.value = false; dialogTableVisible.value = false
visible.value = false; visible.value = false
}
};
// //
const jiesuo = (data) => { const jiesuo = (data) => {
api.post('/multialarm/client/alarm_event/unlock', { api
.post('/multialarm/client/alarm_event/unlock', {
eventId: data.multiAlarmId, eventId: data.multiAlarmId,
}) })
.then((res) => { .then((res) => {
@ -462,7 +447,8 @@
}) })
getdayline() getdayline()
let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue'] let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue']
api.post('multialarm/client/sensor/alarm_event/getlist/today', { api
.post('multialarm/client/sensor/alarm_event/getlist/today', {
name: localStorage.getItem('loginname'), name: localStorage.getItem('loginname'),
city: city == '湖南省' ? null : city, city: city == '湖南省' ? null : city,
start: day().format('YYYY-MM-DD HH:mm:ss'), start: day().format('YYYY-MM-DD HH:mm:ss'),
@ -477,10 +463,11 @@
ElMessage.error('解锁失败') ElMessage.error('解锁失败')
} }
}) })
}; }
// //
const lock = (data) => { const lock = (data) => {
api.post('/multialarm/client/alarm_event/lock', { api
.post('/multialarm/client/alarm_event/lock', {
eventId: data.multiAlarmId, eventId: data.multiAlarmId,
}) })
.then((res) => { .then((res) => {
@ -492,7 +479,8 @@
// console.log('listindex',listindex.value,jinbao.value) // console.log('listindex',listindex.value,jinbao.value)
getdayline() getdayline()
let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue'] let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue']
api.post('multialarm/client/sensor/alarm_event/getlist/today', { api
.post('multialarm/client/sensor/alarm_event/getlist/today', {
name: localStorage.getItem('loginname'), name: localStorage.getItem('loginname'),
city: city == '湖南省' ? null : city, city: city == '湖南省' ? null : city,
start: day().format('YYYY-MM-DD HH:mm:ss'), start: day().format('YYYY-MM-DD HH:mm:ss'),
@ -503,13 +491,11 @@
infoData.value.lockState = res.data[listindex.value]['lockState'] infoData.value.lockState = res.data[listindex.value]['lockState']
} }
}) })
} else { } else {
ElMessage.error('锁定失败') ElMessage.error('锁定失败')
} }
}) })
}; }
// //
const printLeafs = (tree, jirearr) => { const printLeafs = (tree, jirearr) => {
if (!tree.children) { if (!tree.children) {
@ -590,7 +576,7 @@
message: '关闭成功', message: '关闭成功',
type: 'success', type: 'success',
}) })
getdayline(); getdayline()
dialogTableVisible.value = false dialogTableVisible.value = false
// //
// listData // listData
@ -768,8 +754,8 @@
renderClusterMarker: _renderClusterMarker, renderClusterMarker: _renderClusterMarker,
}) })
state.map.plugin(['AMap.MarkerClusterer'], () => { state.map.plugin(['AMap.MarkerClusterer'], () => {
let zoom = state.map.getZoom(); let zoom = state.map.getZoom()
console.log('当前地图的缩放级别是:' + zoom); console.log('当前地图的缩放级别是:' + zoom)
cluster cluster
}) })
}) })
@ -779,7 +765,8 @@
const jinbao = ref([]) const jinbao = ref([])
const getdayline = () => { const getdayline = () => {
let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue'] let city = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['levelvalue']
api.post('multialarm/client/sensor/alarm_event/getlist/today', { api
.post('multialarm/client/sensor/alarm_event/getlist/today', {
name: localStorage.getItem('loginname'), name: localStorage.getItem('loginname'),
city: city == '湖南省' ? null : city, city: city == '湖南省' ? null : city,
start: day().format('YYYY-MM-DD HH:mm:ss'), start: day().format('YYYY-MM-DD HH:mm:ss'),
@ -855,7 +842,6 @@
}) })
.then((res) => { .then((res) => {
if (res.code == 0) { if (res.code == 0) {
} else { } else {
} }
}) })
@ -1016,7 +1002,7 @@
} }
const getSubstanceInfoWindowContent2 = (obj, type) => { const getSubstanceInfoWindowContent2 = (obj, type) => {
console.log("🚀 ~ getSubstanceInfoWindowContent2 ~ obj, type:", obj, type) console.log('🚀 ~ getSubstanceInfoWindowContent2 ~ obj, type:', obj, type)
var station = obj['station'] var station = obj['station']
var nickname = '' var nickname = ''
if (obj.deviceType == '04' || obj.deviceType == '00') { if (obj.deviceType == '04' || obj.deviceType == '00') {
@ -1064,14 +1050,28 @@
} }
const dialogVisible = ref(false) const dialogVisible = ref(false)
const pointCode = ref() const pointCode = ref()
;(window as any).addrt = (a) => { ;(window as any).addrt = (a) => {
// console.log('',a) console.log('播放_______________', a)
// let routeData = router.resolve({ path: '/index/hkplay', query: { pointId: a.pointId } })
// window.open(routeData.href, '_blank')
if (a.deviceType == '00') { if (a.deviceType == '00') {
if (a.alarmType == 'isc') { if (a.alarmType == 'isc') {
let routeData = router.resolve({ path: '/index/hkplay', query: { pointId: a.pointId } }) try {
window.open(routeData.href, '_blank') router.push({ path: '/index/hkplay', query: { pointId: a.pointId } })
// let routeData = router.resolve({ path: '/index/hkplay', query: { pointId: a.pointId } })
// console.log('🚀 ~ routeData:', JSON.stringify(routeData))
// window.location.href = routeData.href
// window.open(routeData.href, '_blank')
// window.open('http://172.10.10.161:9527/#/index/hkplay?pointId=43000000581314000013', '_blank') //token
// window.open('https://www.hndyjqrh.cn/#/index/hkplay?pointId=43000000581314000013', '_blank')
} catch (error) {
console.log('🚀 ~addrt error:', error)
} }
window.open('https://www.jy-sh.com/h5sVideo/index.html?token=' + a.pointCode + '&autoplay=true') }
// window.open('https://www.jy-sh.com/h5sVideo/index.html?token=' + a.pointCode + '&autoplay=true')
} else { } else {
window.open('https://www.jy-sh.com/webRtcVideo/moveDeviceVideoOne.html?id=' + a.deviceId) window.open('https://www.jy-sh.com/webRtcVideo/moveDeviceVideoOne.html?id=' + a.deviceId)
} }
@ -1204,7 +1204,8 @@
infoData.value = item infoData.value = item
if (item.state == 'new') { if (item.state == 'new') {
///firectrl/client/sensor/alarm_event/changestate ///firectrl/client/sensor/alarm_event/changestate
api.post('/multialarm/client/alarm_event/changestate', { api
.post('/multialarm/client/alarm_event/changestate', {
eventId: item.multiAlarmId, eventId: item.multiAlarmId,
newState: 'processing', newState: 'processing',
device: 'web', device: 'web',
@ -1214,7 +1215,8 @@
}) })
.then((res) => { .then((res) => {
getRealTimeAlarmSituation() // getRealTimeAlarmSituation() //
api.post('/multialarm/client/alarm_event/getlog', { api
.post('/multialarm/client/alarm_event/getlog', {
eventId: item.multiAlarmId, eventId: item.multiAlarmId,
}) })
.then((res) => { .then((res) => {
@ -1224,7 +1226,8 @@
}) })
}) })
} else { } else {
api.post('/multialarm/client/alarm_event/getlog', { api
.post('/multialarm/client/alarm_event/getlog', {
eventId: item.multiAlarmId, eventId: item.multiAlarmId,
}) })
.then((res) => { .then((res) => {
@ -1254,8 +1257,8 @@
} }
const initMap = () => { const initMap = () => {
let latitude = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['latitude']; let latitude = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['latitude']
let longitude = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['longitude']; let longitude = JSON.parse(localStorage.getItem('user-stores'))['userInfo']['longitude']
// var cluster; // var cluster;
state.map = new AMap.Map(state.id, { state.map = new AMap.Map(state.id, {
// center: [113.015117, 28.209425], // center: [113.015117, 28.209425],
@ -1772,8 +1775,10 @@
background-color: transparent; background-color: transparent;
} }
:deep( :where(.css-dev-only-do-not-override-1qb1s0s).ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected, :deep(
:where(.css-dev-only-do-not-override-1qb1s0s).ant-tree .ant-tree-checkbox + span.ant-tree-node-selected) { :where(.css-dev-only-do-not-override-1qb1s0s).ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected,
:where(.css-dev-only-do-not-override-1qb1s0s).ant-tree .ant-tree-checkbox + span.ant-tree-node-selected
) {
background-color: transparent; background-color: transparent;
} }