Compare commits
2 Commits
2477faf957
...
4805c5157d
Author | SHA1 | Date |
---|---|---|
TimSpan | 4805c5157d | |
TimSpan | 1df26a3362 |
|
@ -12,15 +12,20 @@ declare module 'vue' {
|
||||||
AButton: typeof import('ant-design-vue/es')['Button']
|
AButton: typeof import('ant-design-vue/es')['Button']
|
||||||
ACascader: typeof import('ant-design-vue/es')['Cascader']
|
ACascader: typeof import('ant-design-vue/es')['Cascader']
|
||||||
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
|
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
|
||||||
|
ADivider: typeof import('ant-design-vue/es')['Divider']
|
||||||
ADropdown: typeof import('ant-design-vue/es')['Dropdown']
|
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']
|
||||||
|
ALayout: typeof import('ant-design-vue/es')['Layout']
|
||||||
|
ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent']
|
||||||
|
ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider']
|
||||||
AMenu: typeof import('ant-design-vue/es')['Menu']
|
AMenu: typeof import('ant-design-vue/es')['Menu']
|
||||||
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
|
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
|
||||||
ASegmented: typeof import('ant-design-vue/es')['Segmented']
|
ASegmented: typeof import('ant-design-vue/es')['Segmented']
|
||||||
|
ASpace: typeof import('ant-design-vue/es')['Space']
|
||||||
ASpin: typeof import('ant-design-vue/es')['Spin']
|
ASpin: typeof import('ant-design-vue/es')['Spin']
|
||||||
AStatistic: typeof import('ant-design-vue/es')['Statistic']
|
AStatistic: typeof import('ant-design-vue/es')['Statistic']
|
||||||
ATimeline: typeof import('ant-design-vue/es')['Timeline']
|
ATimeline: typeof import('ant-design-vue/es')['Timeline']
|
||||||
|
|
|
@ -7,27 +7,19 @@
|
||||||
<ul style="display: flex; margin-top: 14px">
|
<ul style="display: flex; margin-top: 14px">
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist2"
|
<router-link active-class="ist2" style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold" to="/index/indexmin">服务总览</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/indexmin">服务总览</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist"
|
<router-link active-class="ist" style="color: #b2b6c3; padding: 10px 18px; margin-left: 10px; vertical-align: middle; font-weight: bold" to="/index/index">安保力量</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; margin-left: 10px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/index">安保力量</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist"
|
<router-link active-class="ist" style="color: #b2b6c3; padding: 10px 18px; margin-left: 10px; vertical-align: middle; font-weight: bold" to="/index/command">警情推送</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; margin-left: 10px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/command">警情推送</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist"
|
<router-link active-class="ist" style="color: #b2b6c3; padding: 10px 18px; margin-left: 10px; vertical-align: middle; font-weight: bold" to="/index/system">智能布控</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; margin-left: 10px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/system">智能布控</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,29 +27,22 @@
|
||||||
<ul style="display: flex; margin-top: 14px">
|
<ul style="display: flex; margin-top: 14px">
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist3"
|
<router-link active-class="ist3" style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold" to="/index/histordata">AI预警</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/histordata">AI预警</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist"
|
<router-link active-class="ist" style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold" to="/index/analysis">统计分析</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/analysis">统计分析</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
<img style="vertical-align: middle" src="@/views/page/indeximag/ddh.png" alt="" />
|
||||||
<router-link active-class="ist"
|
<router-link active-class="ist" style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold" to="/index/information">资源管理</router-link>
|
||||||
style="color: #b2b6c3; padding: 10px 18px; vertical-align: middle; font-weight: bold"
|
|
||||||
to="/index/information">资源管理</router-link>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<el-popconfirm title="确定退出吗?" @confirm="confirmEvent">
|
<el-popconfirm title="确定退出吗?" @confirm="confirmEvent">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-icon :size="20"
|
<el-icon :size="20" style="display: inline-block; position: absolute; top: 31px; right: 32px; margin-left: 10px; vertical-align: middle; color: #9a4b48; font-weight: bold">
|
||||||
style="display: inline-block; position: absolute; top: 31px; right: 32px; margin-left: 10px; vertical-align: middle; color: #9a4b48; font-weight: bold">
|
|
||||||
<switch-button />
|
<switch-button />
|
||||||
<span style="color:#fff;position: absolute;right: 29px;font-weight: 100;font-size: 16px;">{{loginname}}</span>
|
<span style="color: #fff; position: absolute; right: 29px; font-weight: 100; font-size: 16px">{{ loginname }}</span>
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
|
@ -73,27 +58,27 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useUserStore } from '@/stores/modules/userStore'
|
import { useUserStore } from '@/stores/modules/userStore'
|
||||||
import { useWebSocket } from '@vueuse/core'
|
import { useWebSocket } from '@vueuse/core'
|
||||||
import { wsUrl } from '@/utils/webSocket'
|
import { wsUrl } from '@/utils/webSocket'
|
||||||
import { ref, reactive, watch, onMounted } from 'vue'
|
import { ref, reactive, watch, onMounted } from 'vue'
|
||||||
import api from '@/axios'
|
import api from '@/axios'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const isshow = ref(true)
|
const isshow = ref(true)
|
||||||
const loginname = localStorage.getItem('loginname')
|
const loginname = localStorage.getItem('loginname')
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
stationWebsocket()
|
stationWebsocket()
|
||||||
setInterval(function () {
|
setInterval(function () {
|
||||||
api.post('/multialarm/client/user/active', {}).then((res) => {
|
api.post('/multialarm/client/user/active', {}).then((res) => {
|
||||||
console.log('token保活', res)
|
console.log('token保活', res)
|
||||||
})
|
})
|
||||||
}, 180000)
|
}, 180000)
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => router.currentRoute.value,
|
() => router.currentRoute.value,
|
||||||
(newValue : any) => {
|
(newValue: any) => {
|
||||||
// console.log('newValue', newValue)
|
// console.log('newValue', newValue)
|
||||||
if (newValue.path == '/index/communitymanage' || newValue.path == '/index/hkplay') {
|
if (newValue.path == '/index/communitymanage' || newValue.path == '/index/hkplay') {
|
||||||
isshow.value = false
|
isshow.value = false
|
||||||
|
@ -103,9 +88,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
)
|
)
|
||||||
let istab = ref('6')
|
let istab = ref('6')
|
||||||
const sendStationList = (rollCall_websocket : any, stationTempArr : any) => {
|
const sendStationList = (rollCall_websocket: any, stationTempArr: any) => {
|
||||||
var getIot = {
|
var getIot = {
|
||||||
msgcode: 102,
|
msgcode: 102,
|
||||||
msgname: 'station-sensor-list',
|
msgname: 'station-sensor-list',
|
||||||
|
@ -113,9 +98,9 @@
|
||||||
}
|
}
|
||||||
var msg = JSON.stringify(getIot)
|
var msg = JSON.stringify(getIot)
|
||||||
rollCall_websocket.send(msg)
|
rollCall_websocket.send(msg)
|
||||||
}
|
}
|
||||||
const stationHashList = ref([])
|
const stationHashList = ref([])
|
||||||
const stationWebsocket = () => {
|
const stationWebsocket = () => {
|
||||||
//心跳检测 建立链接 断开重连
|
//心跳检测 建立链接 断开重连
|
||||||
const { data, ws } = useWebSocket(wsUrl('/ClientWebSocket'), {
|
const { data, ws } = useWebSocket(wsUrl('/ClientWebSocket'), {
|
||||||
heartbeat: {
|
heartbeat: {
|
||||||
|
@ -165,8 +150,8 @@
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const toStudent = (a : any) => {
|
const toStudent = (a: any) => {
|
||||||
istab = a
|
istab = a
|
||||||
switch (a) {
|
switch (a) {
|
||||||
case '1':
|
case '1':
|
||||||
|
@ -191,8 +176,8 @@
|
||||||
router.push('/index/information')
|
router.push('/index/information')
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const confirmEvent = () => {
|
const confirmEvent = () => {
|
||||||
console.log('退出')
|
console.log('退出')
|
||||||
localStorage.clear()
|
localStorage.clear()
|
||||||
// router.push('/login')
|
// router.push('/login')
|
||||||
|
@ -200,11 +185,11 @@
|
||||||
// path: '/login'
|
// path: '/login'
|
||||||
// })
|
// })
|
||||||
location.reload()
|
location.reload()
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.ist {
|
.ist {
|
||||||
// background-image: url(@/assets/images/nav.png);
|
// background-image: url(@/assets/images/nav.png);
|
||||||
background-image: url(@/views/page/indeximag/dhxz.png);
|
background-image: url(@/views/page/indeximag/dhxz.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
|
@ -215,45 +200,42 @@
|
||||||
// background-size: 100% 100%;
|
// background-size: 100% 100%;
|
||||||
// background-repeat: no-repeat;
|
// background-repeat: no-repeat;
|
||||||
// background-position: center;
|
// background-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ist2 {
|
.ist2 {
|
||||||
background-image: url(@/views/page/indeximag/dhxz.png);
|
background-image: url(@/views/page/indeximag/dhxz.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
padding: 10px 18px;
|
padding: 10px 18px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ist3 {
|
.ist3 {
|
||||||
background-image: url(@/views/page/indeximag/dhxz.png);
|
background-image: url(@/views/page/indeximag/dhxz.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
padding: 10px 18px;
|
padding: 10px 18px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
// background: #142738;
|
// background: #142738;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
position: relative;
|
|
||||||
// background-image: url(@/assets/images/community_container.jpg);
|
// background-image: url(@/assets/images/community_container.jpg);
|
||||||
// background-size: 100% 100%;
|
// background-size: 100% 100%;
|
||||||
// background-repeat: no-repeat;
|
// background-repeat: no-repeat;
|
||||||
|
|
||||||
.community_top {
|
.community_top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 60px;
|
height: 77px;
|
||||||
// position: absolute;
|
|
||||||
// top: 0;
|
|
||||||
// background:#4880FF;
|
// background:#4880FF;
|
||||||
background: #07315e;
|
background: #07315e;
|
||||||
// background-image: url(@/views/page/imag/titleBg1.png);
|
// background-image: url(@/views/page/imag/titleBg1.png);
|
||||||
|
@ -276,7 +258,7 @@
|
||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
-webkit-text-fill-color: transparent;
|
-webkit-text-fill-color: transparent;
|
||||||
}
|
}
|
||||||
.lefttit{
|
.lefttit {
|
||||||
height: 60px;
|
height: 60px;
|
||||||
line-height: 60px;
|
line-height: 60px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
@ -291,12 +273,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.community_top>ul:first-child {
|
.community_top > ul:first-child {
|
||||||
left: 44px;
|
left: 44px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.community_top>ul:first-child,
|
.community_top > ul:first-child,
|
||||||
.community_top>ul:last-child {
|
.community_top > ul:last-child {
|
||||||
width: 524px;
|
width: 524px;
|
||||||
float: left;
|
float: left;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
|
@ -305,8 +287,8 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.community_top>ul:first-child>li,
|
.community_top > ul:first-child > li,
|
||||||
.community_top>ul:last-child>li {
|
.community_top > ul:last-child > li {
|
||||||
float: left;
|
float: left;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 80px;
|
width: 80px;
|
||||||
|
@ -331,5 +313,5 @@
|
||||||
// position: relative;
|
// position: relative;
|
||||||
// background: linear-gradient(to left, rgba(0, 0, 0, 0), rgba(0, 31, 65, 1));
|
// background: linear-gradient(to left, rgba(0, 0, 0, 0), rgba(0, 31, 65, 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -20,15 +20,6 @@
|
||||||
<div @click="qhzty('3')" :class="{ active: isActive == '3' }">医疗单位</div>
|
<div @click="qhzty('3')" :class="{ active: isActive == '3' }">医疗单位</div>
|
||||||
<div @click="qhzty('5')" :class="{ active: isActive == '5' }">其他</div>
|
<div @click="qhzty('5')" :class="{ active: isActive == '5' }">其他</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="searchBox" v-show="show3">
|
|
||||||
<el-form-item label="">
|
|
||||||
<el-input v-model="searchValue" placeholder="请输入搜索关键词">
|
|
||||||
<template #append>
|
|
||||||
<el-button @click="onSearch" :icon="Search" />
|
|
||||||
</template>
|
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
<div class="searchBox">
|
<div class="searchBox">
|
||||||
<a-cascader
|
<a-cascader
|
||||||
|
@ -43,11 +34,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <button @click="refreshTreeData">刷新</button> -->
|
<div ref="scrollContainer" v-loading="loading" class="scrollContainer">
|
||||||
<!-- height: 75%; -->
|
|
||||||
<div ref="scrollContainer" v-loading="loading" style="margin: 10px 20px; height: 70%; overflow: auto">
|
|
||||||
<!-- —————————————————————————————重要的事情说三遍: key 值必须唯一 ————————————————————————————— -->
|
|
||||||
<!-- —————————————————————————————重要的事情说三遍: key 值必须唯一 ————————————————————————————— -->
|
|
||||||
<!-- —————————————————————————————重要的事情说三遍: key 值必须唯一 ————————————————————————————— -->
|
<!-- —————————————————————————————重要的事情说三遍: key 值必须唯一 ————————————————————————————— -->
|
||||||
<a-tree
|
<a-tree
|
||||||
:fieldNames="{ key: 'code', title: 'title', children: 'children' }"
|
:fieldNames="{ key: 'code', title: 'title', children: 'children' }"
|
||||||
|
@ -211,21 +198,21 @@
|
||||||
<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)" v-for="(item, index) in ingrssddata.ipcList">{{ item.title }}</li>
|
<li v-else style="margin-left: 20px; margin-top: 10px; color: rgb(1, 216, 226)" v-for="(item, index) in ingrssddata.ipcList" :key="index">{{ 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)" v-for="(item, index) in ingrssddata.mobileList">{{ item.title }}</li>
|
<li style="margin-left: 20px; margin-top: 10px; color: rgb(1, 216, 226)" v-for="(item, index) in ingrssddata.mobileList" :key="index">{{ 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" v-for="(item, index) in ingrssddata.fileList">
|
<li style="display: inline-block; margin-right: 5px" v-for="(item, index) in ingrssddata.fileList" :key="index">
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 150px; height: 150px"
|
style="width: 150px; height: 150px"
|
||||||
v-if="item.type == 'image'"
|
v-if="item.type == 'image'"
|
||||||
|
@ -404,20 +391,15 @@ import closeimag from './imag/infoClose.png'
|
||||||
import { Ref, ref, watch, onMounted, onBeforeMount, reactive, getCurrentInstance, nextTick } from 'vue'
|
import { Ref, ref, watch, onMounted, onBeforeMount, reactive, getCurrentInstance, nextTick } from 'vue'
|
||||||
import type { CascaderProps } from 'ant-design-vue'
|
import type { CascaderProps } from 'ant-design-vue'
|
||||||
import type { ShowSearchType } from 'ant-design-vue/es/cascader'
|
import type { ShowSearchType } from 'ant-design-vue/es/cascader'
|
||||||
// import AMapLoader from "@amap/amap-jsapi-loader";
|
|
||||||
const value = ref<string[]>([])
|
const value = ref<string[]>([])
|
||||||
const options = ref<any[]>([])
|
const options = ref<any[]>([])
|
||||||
const filter: ShowSearchType['filter'] = (inputValue, path) => {
|
const filter: ShowSearchType['filter'] = (inputValue, path) => {
|
||||||
// console.log(inputValue, path)
|
|
||||||
|
|
||||||
return path.some((option) => option.title.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
|
return path.some((option) => option.title.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
|
||||||
}
|
}
|
||||||
const cascaderChange = (value: any, selectedOptions: any): void => {
|
const cascaderChange = (value: any, selectedOptions: any): void => {
|
||||||
// console.log('cascaderChange', value, selectedOptions)
|
|
||||||
// selectedKeys.value.push(value.slice(-1)[0])
|
|
||||||
let title = selectedOptions.slice(-1)[0]?.title
|
let title = selectedOptions.slice(-1)[0]?.title
|
||||||
expandedKeys.value = value
|
expandedKeys.value = value
|
||||||
scrollToMatchedNode(title) //此功能还有bug:滑动会带着父元素一起滑动
|
// scrollToMatchedNode(title) //此功能还有bug:滑动会带着父元素一起滑动
|
||||||
}
|
}
|
||||||
|
|
||||||
const showIframe = ref(false)
|
const showIframe = ref(false)
|
||||||
|
@ -456,7 +438,6 @@ const qhzty2 = (data: any) => {
|
||||||
isActive1.value = data
|
isActive1.value = data
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
watch(
|
watch(
|
||||||
() => useUserStore().getsoketData,
|
() => useUserStore().getsoketData,
|
||||||
(newValue: any) => {
|
(newValue: any) => {
|
||||||
|
@ -583,8 +564,6 @@ const qhzty = (data: any) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const fieldNames: TreeProps['fieldNames'] = {
|
const fieldNames: TreeProps['fieldNames'] = {
|
||||||
// children: 'children',
|
|
||||||
// title: 'title',
|
|
||||||
key: 'code',
|
key: 'code',
|
||||||
}
|
}
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
@ -628,10 +607,6 @@ const checkKeyExists = (nodes: any, key: string): boolean => {
|
||||||
// 展开指定 树节点
|
// 展开指定 树节点
|
||||||
const scrollToKey = (key: string) => {
|
const scrollToKey = (key: string) => {
|
||||||
console.log('scrollToKey', key)
|
console.log('scrollToKey', key)
|
||||||
|
|
||||||
// console.log('treeRef________', treeRef.value.scrollTo)
|
|
||||||
// 验证 key 是否存在于树中
|
|
||||||
// const exists = treedataall.value.some((node) => node.key === key || node.children?.some((child: any) => child.key === key))
|
|
||||||
const exists = checkKeyExists(treedataall.value, key)
|
const exists = checkKeyExists(treedataall.value, key)
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
console.error(`Key ${key} not found in the tree.`)
|
console.error(`Key ${key} not found in the tree.`)
|
||||||
|
@ -1462,7 +1437,7 @@ var state = {
|
||||||
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;
|
|
||||||
state.map = new AMap.Map(state.id, {
|
state.map = new AMap.Map(state.id, {
|
||||||
// center: [113.015117, 28.209425],
|
// center: [113.015117, 28.209425],
|
||||||
center: [longitude, latitude],
|
center: [longitude, latitude],
|
||||||
|
@ -1475,9 +1450,12 @@ const initMap = () => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
// .input-with-select .el-input-group__prepend {
|
.scrollContainer {
|
||||||
// background-color: var(--el-fill-color-blank);
|
margin: 10px 20px;
|
||||||
// }
|
height: 70%;
|
||||||
|
overflow: auto;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
.slide-fade-enter-active {
|
.slide-fade-enter-active {
|
||||||
transition: all 0.3s linear;
|
transition: all 0.3s linear;
|
||||||
}
|
}
|
||||||
|
@ -1757,7 +1735,7 @@ const initMap = () => {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
// position: absolute;
|
// position: absolute !important;
|
||||||
|
|
||||||
.left-cont {
|
.left-cont {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
Loading…
Reference in New Issue