西海岸视频监控

This commit is contained in:
chenchenzai 2022-11-21 11:15:40 +08:00
parent fc1e1714a9
commit d055a89f09
18 changed files with 766 additions and 331 deletions

View File

@ -43,8 +43,8 @@ var CONFIGITEM = {
}, },
dev: { dev: {
previewUrl: 'http://localhost:8080/', previewUrl: 'http://localhost:8080/',
apiURL: 'http://192.168.124.243:8888/ucs-admin', apiURL: 'http://192.168.124.233:8888/ucs-admin',
websocketURL: 'ws://192.168.124.243:8888/ucs-admin/websocket' websocketURL: 'ws://192.168.124.233:8888/ucs-admin/websocket'
} }
} }
} }

View File

@ -157,6 +157,13 @@
@click="deleteHandle2(scope.row.id)" @click="deleteHandle2(scope.row.id)"
>{{ $t('delete') }}</el-button >{{ $t('delete') }}</el-button
> >
<el-button
v-if="superAdmin == 1"
type="text"
size="small"
@click="deleteCompletely(scope.row)"
>完全删除</el-button
>
<el-button type="text" size="small" @click="showDetail(scope.row)" <el-button type="text" size="small" @click="showDetail(scope.row)"
>详情</el-button >详情</el-button
> >
@ -256,6 +263,7 @@ export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data () {
return { return {
superAdmin: '',
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '算法名称', '算法描述', '图层名称', '图层描述', '组件名称', '组件描述', '组件地址', '服务地址', '服务接口', '接口请求方式', '算法类别'], required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '算法名称', '算法描述', '图层名称', '图层描述', '组件名称', '组件描述', '组件地址', '服务地址', '服务接口', '接口请求方式', '算法类别'],
notFilled: [], notFilled: [],
insertList: [], insertList: [],
@ -317,6 +325,10 @@ export default {
created () { created () {
this.dataForm.name = '' this.dataForm.name = ''
this.dataForm.type = '组件服务' this.dataForm.type = '组件服务'
this.$http.get('/sys/user/info').then(res => {
console.log('res', res.data.data)
this.superAdmin = res.data.data.superAdmin
})
}, },
mounted () { mounted () {
// window.addEventListener('resize', this.a) // window.addEventListener('resize', this.a)
@ -671,6 +683,31 @@ export default {
arr.push('常见问题') arr.push('常见问题')
this.$refs.putOnTheShelf.submit(arr) this.$refs.putOnTheShelf.submit(arr)
}, },
//
deleteCompletely (row) {
console.log('完全删除===', row)
this.$confirm('确认是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.post('/resource/delResBySuAd?id=' + row.id).then(res => {
console.log('删除结果', res.data)
if (res.data.code == 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
}
this.getDataList()
})
}).catch(() => {
// this.$message({
// type: 'info',
// message: ''
// });
})
},
submitData () { submitData () {
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom) console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
const arr = [] const arr = []

View File

@ -145,6 +145,13 @@
@click="deleteHandle2(scope.row.id)" @click="deleteHandle2(scope.row.id)"
>{{ $t("delete") }}</el-button >{{ $t("delete") }}</el-button
> >
<el-button
v-if="superAdmin == 1"
type="text"
size="small"
@click="deleteCompletely(scope.row)"
>完全删除</el-button
>
<el-button type="text" size="small" @click="showDetail(scope.row)" <el-button type="text" size="small" @click="showDetail(scope.row)"
>详情</el-button >详情</el-button
> >
@ -234,6 +241,7 @@ export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data () {
return { return {
superAdmin: '',
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用类型'], required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用类型'],
notFilled: [], notFilled: [],
mixinViewModuleOptions: { mixinViewModuleOptions: {
@ -286,6 +294,10 @@ export default {
created () { created () {
this.dataForm.name = '' this.dataForm.name = ''
this.dataForm.type = '应用资源' this.dataForm.type = '应用资源'
this.$http.get('/sys/user/info').then(res => {
console.log('res', res.data.data)
this.superAdmin = res.data.data.superAdmin
})
}, },
mounted () { mounted () {
// window.addEventListener('resize', this.a) // window.addEventListener('resize', this.a)
@ -522,6 +534,31 @@ export default {
// //
}) })
}, },
//
deleteCompletely (row) {
console.log('完全删除===', row)
this.$confirm('确认是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.post('/resource/delResBySuAd?id=' + row.id).then(res => {
console.log('删除结果', res.data)
if (res.data.code == 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
}
this.getDataList()
})
}).catch(() => {
// this.$message({
// type: 'info',
// message: ''
// });
})
},
// //
applyAndInfrastructure (val) { applyAndInfrastructure (val) {
const type = '基础设施' const type = '基础设施'

View File

@ -8,8 +8,8 @@
var _global = {} var _global = {}
var CONFIGITEM = { var CONFIGITEM = {
// version: 'qingdao', // // version: 'qingdao', //
// version: 'xihaian', // 西 version: 'xihaian', // 西
version: 'dev', // //version: 'dev', //
// version: 'zhanTingDev', // dev (2022-09-13:) // version: 'zhanTingDev', // dev (2022-09-13:)
// version: 'qingdao', // // version: 'qingdao', //
//version: 'frp', // 穿 //version: 'frp', // 穿
@ -30,8 +30,7 @@ var CONFIGITEM = {
apiURL: 'http://15.72.183.90:8000/ucs-admin', apiURL: 'http://15.72.183.90:8000/ucs-admin',
websocketURL: '15.72.183.90:8000/ucs-admin', websocketURL: '15.72.183.90:8000/ucs-admin',
// websocketURL: '192.168.124.233:8888/ucs-admin', // websocketURL: '192.168.124.233:8888/ucs-admin',
POI_URL: POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
// //
zhanTingDev: { zhanTingDev: {
@ -49,8 +48,7 @@ var CONFIGITEM = {
// websocketURL: '10.16.5.146:8888/ucs-admin', // // websocketURL: '10.16.5.146:8888/ucs-admin', //
websocketURL: '10.18.1.99:8889/ucs-admin', websocketURL: '10.18.1.99:8889/ucs-admin',
// websocketURL: '10.16.5.35:8888/ucs-admin', // websocketURL: '10.16.5.35:8888/ucs-admin',
POI_URL: POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
// 西 // 西
xihaian: { xihaian: {
@ -69,12 +67,12 @@ var CONFIGITEM = {
}, },
backUrl: 'http://10.134.135.9:9797', backUrl: 'http://10.134.135.9:9797',
previewUrl: 'http://10.134.135.9:9796/', previewUrl: 'http://10.134.135.9:9796/',
apiURL: 'http://10.134.135.92:8888/renren-admin',
// websocketURL: '10.134.135.9:8888/ucs-admin', // // websocketURL: '10.134.135.9:8888/ucs-admin', //
// websocketURL: '10.134.135.92:8888/ucs-admin', // websocketURL: '10.134.135.92:8888/ucs-admin', //
websocketURL: '192.168.124.254:8888/ucs-admin', // - //websocketURL: '192.168.124.254:8888/ucs-admin', // -
// websocketURL: '10.18.1.99:8889/ucs-admin', // // websocketURL: '10.18.1.99:8889/ucs-admin', //
POI_URL: POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
// //
dev: { dev: {
@ -90,8 +88,7 @@ var CONFIGITEM = {
apiURL: 'http://192.168.124.243:8888/ucs-admin', apiURL: 'http://192.168.124.243:8888/ucs-admin',
websocketURL: '192.168.124.243:8888/ucs-admin', websocketURL: '192.168.124.243:8888/ucs-admin',
// websocketURL: '10.18.1.99:8889/ucs-admin', // websocketURL: '10.18.1.99:8889/ucs-admin',
POI_URL: POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
// //
test: { test: {
@ -105,8 +102,7 @@ var CONFIGITEM = {
backUrl: 'http://192.168.124.243:9797', backUrl: 'http://192.168.124.243:9797',
previewUrl: 'http://192.168.124.243:9796/', previewUrl: 'http://192.168.124.243:9796/',
websocketURL: '192.168.124.243:8888/ucs-admin', websocketURL: '192.168.124.243:8888/ucs-admin',
POI_URL: POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
// 穿 // 穿
frp: { frp: {
@ -120,8 +116,7 @@ var CONFIGITEM = {
backUrl: 'http://124.222.94.39:9797', backUrl: 'http://124.222.94.39:9797',
previewUrl: 'http://124.222.94.39:9796/', previewUrl: 'http://124.222.94.39:9796/',
websocketURL: '124.222.94.39:8888/ucs-admin', websocketURL: '124.222.94.39:8888/ucs-admin',
POI_URL: POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
}, },
} }

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-20 17:16:35 * @Date: 2022-04-20 17:16:35
* @LastEditors: hisense.wuhongjian * @LastEditors: Light
* @LastEditTime: 2022-10-26 17:57:52 * @LastEditTime: 2022-11-18 17:52:05
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -97,6 +97,14 @@ export function getHls(params) {
config2 config2
) )
} }
// 西 POI
export function getListForPOI(params) {
return axios.get(
'http://10.134.135.3:21009/service/lbs/coder/geocoding2?appKey=675d95594136456bb7b1434dda31953f&city=青岛&keywords=' +
params.keywords,
config2
)
}
// 西-- (10.134.135.92:9537) // 西-- (10.134.135.92:9537)
let _cameraUrl = let _cameraUrl =

View File

@ -42,6 +42,8 @@ function updateProgressBar(processed, total, elapsed, layersArray) {
function createMarkerClusterLayer(layerClassName) { function createMarkerClusterLayer(layerClassName) {
let array = []; let array = [];
let markerClusterLayer = null let markerClusterLayer = null
//let currentZoom = this.map._zoom
//console.log('zzzzzz', currentZoom);
if (layerClassName) { if (layerClassName) {
// //
markerClusterLayer = L.markerClusterGroup({ markerClusterLayer = L.markerClusterGroup({

View File

@ -230,7 +230,7 @@
> >
<button class="buzhou">提交</button> <button class="buzhou">提交</button>
</a-popconfirm> </a-popconfirm>
<button class="buzhou" v-else-if="服务商联系电话 === '部署与使用'" @click="submit()"> <button class="buzhou" v-else-if="showView === '部署与使用'" @click="submit()">
提交 提交
</button> </button>
<button class="quxiao" @click="close()">取消</button> <button class="quxiao" @click="close()">取消</button>

View File

@ -1,5 +1,4 @@
<template> <template>
itShowQingDao
<!-- 青岛 --> <!-- 青岛 -->
<div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao"> <div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao">
<home-header></home-header> <home-header></home-header>
@ -305,7 +304,7 @@
<div class="details-pageconetent-left" v-if="Cardsname != '基础设施'"> <div class="details-pageconetent-left" v-if="Cardsname != '基础设施'">
<detailsPageconetentTree /> <detailsPageconetentTree />
</div> </div>
<div class="details-pageconetent-left" style="left:0.16rem" v-else> <div class="details-pageconetent-left" style="left: 0.16rem" v-else>
<detailsPageInfrastructureTreeXha /> <detailsPageInfrastructureTreeXha />
</div> </div>
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'"> <div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
@ -436,7 +435,11 @@
<a-empty /> <a-empty />
</div> </div>
</div> </div>
<div class="top" style="width: 13.5rem;margin-left:0" v-else-if="Cardsname === '基础设施'"> <div
class="top"
style="width: 13.5rem; margin-left: 0"
v-else-if="Cardsname === '基础设施'"
>
<div class="top-title"> <div class="top-title">
<div <div
v-for="item in titleName" v-for="item in titleName"
@ -507,6 +510,9 @@
:resourceTotal="resourceTotal" :resourceTotal="resourceTotal"
></KnowledgeBase> ></KnowledgeBase>
</div> </div>
<template v-if="Cardsname == '基础设施'">
<infrastructureApplication></infrastructureApplication>
</template>
<div class="talk-monitor" @click="openMonitor"> <div class="talk-monitor" @click="openMonitor">
<a-tooltip> <a-tooltip>
<template #title>问答机器人</template> <template #title>问答机器人</template>
@ -778,6 +784,7 @@
import infrastructurePageXha from '@/views/home/infrastructurePageXha.vue' import infrastructurePageXha from '@/views/home/infrastructurePageXha.vue'
import detailsPageInfrastructureTree from '@/views/home/detailsPageInfrastructureTree.vue' import detailsPageInfrastructureTree from '@/views/home/detailsPageInfrastructureTree.vue'
import detailsPageInfrastructureTreeXha from '@/views/home/detailsPageInfrastructureTreeXha.vue' import detailsPageInfrastructureTreeXha from '@/views/home/detailsPageInfrastructureTreeXha.vue'
import infrastructureApplication from '@/views/home/infrastructureApplication.vue'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js' import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
@ -803,7 +810,7 @@
const handleAdd = (value) => { const handleAdd = (value) => {
flag.value = value flag.value = value
} }
    const titleName=ref([]) const titleName = ref([])
const openMonitor = () => { const openMonitor = () => {
window.open('http://www.qingdao.gov.cn:8083/ghwd/znwdqd/index.html') window.open('http://www.qingdao.gov.cn:8083/ghwd/znwdqd/index.html')
} }
@ -904,15 +911,14 @@
name: '', name: '',
}) })
// 西 // 西
 const setTitle = () => { const setTitle = () => {
        let  title = titleNameArray let title = titleNameArray
        let whoShow1 = ref(whoShow) let whoShow1 = ref(whoShow)
      if( whoShow1 && whoShow1.value.itShowXiHaiAn){ if (whoShow1 && whoShow1.value.itShowXiHaiAn) {
        title[0] = title.splice(2, 1, title[0])[0]; title[0] = title.splice(2, 1, title[0])[0]
      }
      } titleName.value = title
      titleName.value=title }
      }
// //
const onSearch = () => { const onSearch = () => {
loading.value = true loading.value = true
@ -1280,14 +1286,19 @@
.replace({ .replace({
query: newQuery, query: newQuery,
}) })
.then(() => {}) .then(() => {
mybus.emit('changeRoomInput', searchValue.value) mybus.emit('changeRoomInput', searchValue.value)
if ( if (
whoShow1.value.itShowQingDao && whoShow1.value.itShowQingDao &&
paramsGetResources.type == '基础设施' paramsGetResources.type == '基础设施'
) { ) {
console.log('camera2', camera) console.log('camera2', camera)
let selectType = router.currentRoute.value.query.selectType
if (selectType == '政务云资源') {
camera.value.getGovernmentCloud()
} else {
camera.value.getCamera(true, searchValue.value) camera.value.getCamera(true, searchValue.value)
}
} else { } else {
if (storageSearchInfo) { if (storageSearchInfo) {
getAppResources('分页查询') getAppResources('分页查询')
@ -1295,6 +1306,7 @@
getAppResources() getAppResources()
} }
} }
})
} }
const getAppResources = (switchIndex) => { const getAppResources = (switchIndex) => {
if (!globalFlag.value) { if (!globalFlag.value) {
@ -1751,7 +1763,7 @@
onMounted(() => { onMounted(() => {
// //
//西 //西
setTitle(); setTitle()
handleSetSearchData() handleSetSearchData()
listKey2.value++ listKey2.value++
// //
@ -1953,6 +1965,7 @@
infrastructurePageXha, infrastructurePageXha,
detailsPageInfrastructureTree, detailsPageInfrastructureTree,
detailsPageInfrastructureTreeXha, detailsPageInfrastructureTreeXha,
infrastructureApplication,
}, },
beforeUnmount() { beforeUnmount() {
mybus.off('getCameraByParentId') mybus.off('getCameraByParentId')

View File

@ -2,36 +2,59 @@
* @Author: Light * @Author: Light
* @Date: 2022-11-16 16:46:16 * @Date: 2022-11-16 16:46:16
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-17 09:46:45 * @LastEditTime: 2022-11-18 15:35:25
* @Description: 政务云资源列表 * @Description: 政务云资源列表
--> -->
<template> <template>
<div class="top"> <div class="top">
<div>检索结果60</div> <div>检索结果{{ props.governmentCloud.total }}</div>
<div> <div>
使用声明: 使用声明:
附加增值服务委办局单位可以根据自身需求按需采购由采购单位付费 附加增值服务委办局单位可以根据自身需求按需采购由采购单位付费
</div> </div>
</div> </div>
<div class="bottom"> <div
class="bottom"
v-for="(item, index) in props.governmentCloud.data"
:key="item.service_item_tier1 + index"
>
<div class="left"></div> <div class="left"></div>
<div class="right"> <div class="right">
<div class="title"> <div class="title">
<div> <div>
<div class="name">云主机</div> <div class="name">{{ item.service_item_tier1 }}</div>
<div class="type">基础服务</div> <div class="type">{{ item.service_type }}</div>
</div> </div>
<div>年份2022</div> <div>年份{{ item.year }}</div>
</div> </div>
<div class="text">云主机配置</div> <div class="text">{{ item.service_description }}</div>
<div class="info"> <div class="info">
<div>一级条目主机服务</div> <div>一级条目{{ item.service_item_tier2 }}</div>
<div>规格1H2G</div> <div>规格{{ item.specification }}</div>
</div> </div>
</div> </div>
</div> </div>
<a-pagination
v-model:current="current"
:pageSize="5"
:total="props.governmentCloud.total"
:showSizeChanger="false"
@change="changeCurrent"
show-less-items
/>
</template> </template>
<script setup></script> <script setup>
import { ref, defineProps, defineEmits } from 'vue'
const props = defineProps({
governmentCloud: { type: Object, default: null },
})
const emit = defineEmits(['getGovernmentCloud'])
const current = ref(props.governmentCloud.current)
const changeCurrent = (current) => {
console.log(current)
emit('getGovernmentCloud', current)
}
</script>
<style lang="less" scoped> <style lang="less" scoped>
.top { .top {
display: flex; display: flex;

View File

@ -2,7 +2,7 @@
海康H5Player 海康H5Player
--> -->
<template> <template>
<div id='player' style="width:950px;height:600px"></div> <div id='player' style="width:800px;height:600px;z-index:9999"></div>
</template> </template>
<script> <script>
const IS_MOVE_DEVICE = document.body.clientWidth < 992 // const IS_MOVE_DEVICE = document.body.clientWidth < 992 //

View File

@ -19,7 +19,7 @@
:key="item.key" :key="item.key"
@click="jumpPage(item,'headerClick')" @click="jumpPage(item,'headerClick')"
class="nav" class="nav"
:class="[{'select':item.key == select},{'select-inner':(item.key == 'DetailsPageconetent' && item.innerKey == 'algorithmCompare'&& props.targetFlag)}]" :class="[{'select':item.key == select},{'select-inner':(item.key == 'DetailsPageconetent' && item.innerKey && props.targetFlag)}]"
> >
{{ item.name }} {{ item.name }}
</div> </div>
@ -171,6 +171,7 @@
} }
} }
} }
console.log('3333333------------>', props)
// //
const goToHome = () => { const goToHome = () => {
// 西 // 西
@ -290,7 +291,7 @@
break break
case '能力集市': case '能力集市':
router.push({ router.push({
path: '/algorithmCompare', path: targetRouter.value.path,
query: { query: {
id: targetRouter.value.id, id: targetRouter.value.id,
}, },
@ -301,41 +302,11 @@
path: '/capabilityCloud', path: '/capabilityCloud',
}) })
break break
// case '':
// router.push({
// path: '/developmentGuide',
// })
// break
case '新手指南':
router.push({
path: '/instructionManual',
})
break
case '需求中心':
router.push({
path: '/demandCenter',
})
break
case '区市站点':
router.push({
path: '/mapTest',
})
break
case '后台管理': case '后台管理':
Cookies.remove('JSESSIONID') Cookies.remove('JSESSIONID')
window.open(window.SITE_CONFIG.backUrl + '/#/workBench-workBench') window.open(window.SITE_CONFIG.backUrl + '/#/workBench-workBench')
// window.reload('http://15.2.21.238:9797') // window.reload('http://15.2.21.238:9797')
break break
case '赋能案例':
router.push({
path: '/assignCase',
})
break
case '典型赋能案例':
router.push({
path: '/assignCase',
})
break
case '融合服务': case '融合服务':
router.push({ router.push({
path: '/integrationServices', path: '/integrationServices',
@ -431,8 +402,9 @@
}) })
mybus.on('changeMenuStyle', (data) => { mybus.on('changeMenuStyle', (data) => {
if(data.path=='/algorithmCompare'){ debugger
targetRouter.value = data; targetRouter.value = data;
if(data.path=='/algorithmCompare'){
jumpPage({ jumpPage({
"name": "能力集市", "name": "能力集市",
"key": "DetailsPageconetent", "key": "DetailsPageconetent",
@ -440,6 +412,12 @@
},'innerClick'); },'innerClick');
} else if(data.path =='/DetailsPageconetent'){ } else if(data.path =='/DetailsPageconetent'){
jumpPage({ name: '能力集市', key: 'DetailsPageconetent' },'headerClick') jumpPage({ name: '能力集市', key: 'DetailsPageconetent' },'headerClick')
} else if(data.path =='/details'){
jumpPage({
"name": "能力集市",
"key": "DetailsPageconetent",
"innerKey":"details"
},'innerClick');
} }
}) })

View File

@ -609,12 +609,18 @@
} }
} else { } else {
context.emit('saveSearchCodition') context.emit('saveSearchCodition')
router.push({ // router.push({
// path: '/details',
// query: {
// id: item.id,
// },
// });
//
let pathData = {
path: '/details', path: '/details',
query: {
id: item.id, id: item.id,
}, };
}) mybus.emit('changeMenuStyle',pathData);
} }
} }
} }

View File

@ -1,5 +1,11 @@
<template> <template>
<div class="detail-back" @click="previousPage" :style="{ color: textColor }"> <div>
<div class="nav-box">
<a-breadcrumb>
<a-breadcrumb-item @click="goToDetailsPageconetent" class="bread-crumb-span">能力集市</a-breadcrumb-item>
<a-breadcrumb-item>{{detailName}}</a-breadcrumb-item>
</a-breadcrumb>
</div>
</div> </div>
</template> </template>
@ -24,20 +30,40 @@ const previousPage = () => {
} }
const detailName = ref("应用资源")
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.detail-back { .detail-back {
position: absolute; position: absolute;
top: 0.85rem; top: 0.6rem;
left: 100px; left: 100px;
font-size: 0.18rem; font-size: 0.18rem;
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
width: 50px; width: 50px;
height: 50px; height: 50px;
background-image: url('~@/assets/detailsAll/back.png'); //background-image: url('~@/assets/detailsAll/back.png');
background-size: 100% 100%; background-size: 100% 100%;
} }
.nav-box {
position: absolute;
top: 0.6rem;
//left: 100px;
font-size: 0.18rem;
color: #fff;
height: 30px;
line-height:30px;
width: 100%;
font-size: 14px;
display: flex;
align-items: center;
background: rgba(244, 245, 248, 0.8);
padding-left: 145px;
padding-top: 5px;
.bread-crumb-span{
cursor: pointer;
}
}
</style> </style>

View File

@ -8,11 +8,12 @@
<template> <template>
<div> <div>
<div id="apply-container"> <div id="apply-container">
<home-header :showView="showView"></home-header> <home-header :showView="showView" :target-flag = "targetFlag"></home-header>
<detail-back></detail-back> <detail-back></detail-back>
<div class="detail-content">
<details-view v-if="showView === 'details-view'"></details-view> <details-view v-if="showView === 'details-view'"></details-view>
<algorithm-details <algorithm-details
v-else-if="showView === 'algorithm-details'" v-if="showView === 'algorithm-details'"
></algorithm-details> ></algorithm-details>
<application-details <application-details
v-else-if="showView === 'application-details'" v-else-if="showView === 'application-details'"
@ -24,6 +25,7 @@
v-else-if="showView === 'business-details'" v-else-if="showView === 'business-details'"
></business-details> ></business-details>
<layer-service v-else-if="showView === 'layer-service'"></layer-service> <layer-service v-else-if="showView === 'layer-service'"></layer-service>
</div>
<home-footer></home-footer> <home-footer></home-footer>
</div> </div>
</div> </div>
@ -95,6 +97,7 @@
const id = router.currentRoute.value.query.id const id = router.currentRoute.value.query.id
const obj = JSON.parse(window.sessionStorage.getItem('preview')) const obj = JSON.parse(window.sessionStorage.getItem('preview'))
let showView = ref('') let showView = ref('')
const targetFlag= ref(true)
const init = () => { const init = () => {
if (id) { if (id) {
selectOne(id).then((res) => { selectOne(id).then((res) => {
@ -171,6 +174,7 @@
formState, formState,
options, options,
showView, showView,
targetFlag,
init, init,
router, router,
id, id,
@ -191,4 +195,7 @@
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
} }
.detail-content{
margin-top:90px;
}
</style> </style>

View File

@ -1,8 +1,34 @@
<template> <template>
<div class="wrapper"> <div class="wrapper">
<div class="wrapper-title-left-tree" :key="showKey"> <div class="nav">
<div :class="{ active: itemIndex == 1 }" @click="btnClick(1)">
<span
class="photo"
:style="{
backgroundImage: `url(${bumenImg}) `,
backgroundSize: 'cover',
}"
></span>
<span>部门</span>
</div>
<div :class="{ active: itemIndex == 2 }" @click="btnClick(2)">
<span
class="photo"
:style="{
backgroundImage: `url(${biaoqianImg}) `,
backgroundSize: 'cover',
}"
></span>
<span>标签</span>
</div>
</div>
<div v-if="itemIndex == 1" class="wrapper-title-left-tree" :key="showKey">
<div v-for="item in treeData" :key="item.id" class="primaryNode"> <div v-for="item in treeData" :key="item.id" class="primaryNode">
<div class="top" @click="showBottom(item)" :class="item.show ? 'topSelect' : ''"> <div
class="top"
@click="showBottom(item)"
:class="item.show ? 'topSelect' : ''"
>
{{ item.name }} {{ item.name }}
({{ item.channelCount }}) ({{ item.channelCount }})
<DownOutlined v-show="!item.show" /> <DownOutlined v-show="!item.show" />
@ -10,13 +36,28 @@
</div> </div>
<div class="bottom" v-show="item.show"> <div class="bottom" v-show="item.show">
<div v-for="val in item.children" :key="val.id" class="item"> <div v-for="val in item.children" :key="val.id" class="item">
<div class="up" :class="selectId == val.id ? 'select' : ''" <div
@click="showDown(item, val), onSelect(item, val)"> class="up"
:class="selectId == val.id ? 'select' : ''"
@click="showDown(item, val), onSelect(item, val)"
>
<div> <div>
<svg t="1654068878091" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg
xmlns="http://www.w3.org/2000/svg" p-id="2156" width="0.25rem" height="0.25rem" t="1654068878091"
v-show="selectId == val.id"> class="icon"
<path d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z" p-id="2157" fill="#0058e1"></path> viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2156"
width="0.25rem"
height="0.25rem"
v-show="selectId == val.id"
>
<path
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
p-id="2157"
fill="#0058e1"
></path>
</svg> </svg>
<span class="name">{{ val.name }}({{ val.channelCount }})</span> <span class="name">{{ val.name }}({{ val.channelCount }})</span>
</div> </div>
@ -27,13 +68,30 @@
</span> </span>
</div> </div>
<div class="down" v-show="val.show"> <div class="down" v-show="val.show">
<div v-for="child in val.children" :key="child.id" class="child" <div
:class="selectId == child.id ? 'select2' : ''" @click="onSelect(item, child, child)"> v-for="child in val.children"
:key="child.id"
class="child"
:class="selectId == child.id ? 'select2' : ''"
@click="onSelect(item, child, child)"
>
<div> <div>
<svg t="1654068878091" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg
xmlns="http://www.w3.org/2000/svg" p-id="2156" width="0.25rem" height="0.25rem" t="1654068878091"
v-show="selectId == child.id"> class="icon"
<path d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z" p-id="2157" fill="#0058e1"></path> viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2156"
width="0.25rem"
height="0.25rem"
v-show="selectId == child.id"
>
<path
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
p-id="2157"
fill="#0058e1"
></path>
</svg> </svg>
<span class="name"> <span class="name">
{{ child.name }} {{ child.name }}
@ -46,6 +104,20 @@
</div> </div>
</div> </div>
</div> </div>
<div v-if="itemIndex == 2" class="wrapper-title-left-tree">
<div v-for="(item, index) in biaoqianList">
<div class="titleName">{{ item.placeTypeName }}</div>
<div class="glgkmk" v-for="(child, index) in item.children">
<div
class="glgknum"
:class="{ active: child.placeTypeCode == chooseId }"
@click="tabClick(child.placeTypeCode)"
>
{{ child.placeTypeName }}
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
@ -59,29 +131,35 @@ import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
export default defineComponent({ export default defineComponent({
setup() { setup() {
const biaoqianList = ref([])
const bumenImg = require('@/assets/newHome/bumen.png')
const biaoqianImg = require('@/assets/newHome/biaoqian.png')
const router = useRouter() const router = useRouter()
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
const showKey = ref(0) const showKey = ref(0)
const treeData = ref([]) const treeData = ref([])
const selectId = ref('') const selectId = ref('')
let itemIndex = ref(1)
let chooseId = ref('')
//tab
const btnClick = (index) => {
itemIndex.value = index
}
//
const tabClick = (id) => {
chooseId.value = id
}
// //
const init = async () => { const init = async () => {
treeData.value = [] treeData.value = []
console.log( let select =
'router.currentRoute.value.query.select', router.currentRoute.value.query.select ||
router.currentRoute.value.query.select DETAIL_PAGE_CONTENT_DEFAULT_TAB
)
let select = router.currentRoute.value.query.select || DETAIL_PAGE_CONTENT_DEFAULT_TAB
if (select === '123') { if (select === '123') {
select = '' select = ''
} }
console.log(
'获取url中的select=====================>',
router.currentRoute.value.query.select
)
if (select == '基础设施') { if (select == '基础设施') {
let res = {}; let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) { if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }) res = await getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' })
} else { } else {
@ -90,9 +168,27 @@ export default defineComponent({
areaId: '70be8c5b664f4bcf869d82f2e8335051', areaId: '70be8c5b664f4bcf869d82f2e8335051',
}) })
} }
treeData.value = res.data && res.data.data || [] treeData.value = (res.data && res.data.data) || []
//=========
biaoqianList.value = [
{
placeTypeName: '政府机构',
children: [
{ placeTypeName: '行政中心', placeTypeCode: '1' },
{ placeTypeName: '行政中心', placeTypeCode: '12' },
{ placeTypeName: '行政中心', placeTypeCode: '14' },
],
},
{
placeTypeName: '政府机构1',
children: [
{ placeTypeName: '行政中心', placeTypeCode: '2' },
{ placeTypeName: '行政中心', placeTypeCode: '3' },
],
},
]
// //
if(res.data && res.data.data.length == 1) { if (res.data && res.data.data.length == 1) {
showBottom(treeData.value[0]) showBottom(treeData.value[0])
} }
} }
@ -102,11 +198,6 @@ export default defineComponent({
}) })
const onSelect = async (item, val, child) => { const onSelect = async (item, val, child) => {
console.log('item--------onSelect---->', item);
console.log('val------onSelect------>', val);
console.log('child-----onSelect------->', child);
mybus.emit('getCameraByParentId', val.id)
mybus.emit('getListByParentId', val.id)
let res = {} let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) { if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: val.id }) res = await getCameraAllOrgan({ parentId: val.id })
@ -137,8 +228,8 @@ export default defineComponent({
}) })
const showBottom = async (item) => { const showBottom = async (item) => {
item.show = !item.show; item.show = !item.show
let res = {}; let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) { if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: item.id }) res = await getCameraAllOrgan({ parentId: item.id })
} else { } else {
@ -148,17 +239,17 @@ export default defineComponent({
treeData.value.map((treeDataItem, index) => { treeData.value.map((treeDataItem, index) => {
if (item.id == treeDataItem.id) { if (item.id == treeDataItem.id) {
treeData.value[index].children = res.data && res.data.data || [] treeData.value[index].children = (res.data && res.data.data) || []
console.log('treeData.value.[index]', treeData.value[index]) console.log('treeData.value.[index]', treeData.value[index])
} }
}) })
} }
const showDown = (item, val) => { const showDown = (item, val) => {
selectId.value = val.id selectId.value = val.id
console.log('item---showDown--------->', item); console.log('item---showDown--------->', item)
console.log('val----showDown-------->', val); console.log('val----showDown-------->', val)
if (item.children) { if (item.children) {
val.show = !val.show; val.show = !val.show
// //
if (!val.show) { if (!val.show) {
selectId.value = '' selectId.value = ''
@ -166,12 +257,19 @@ export default defineComponent({
} }
} }
return { return {
btnClick,
tabClick,
treeData, treeData,
showKey, showKey,
onSelect, onSelect,
showBottom, showBottom,
showDown, showDown,
selectId, selectId,
itemIndex,
bumenImg,
biaoqianImg,
biaoqianList,
chooseId,
} }
}, },
beforeUnmount() { beforeUnmount() {
@ -185,6 +283,67 @@ export default defineComponent({
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.titleName {
font-size: 18px;
color: #1e1a1a;
margin-bottom: 10px;
padding-left: 10px;
border-left: 6px solid #1296db;
}
.glgkmk {
cursor: pointer;
text-align: center;
position: relative;
display: inline-block;
width: 30%;
margin-bottom: 10px;
.active {
color: #0058e1;
}
.glgknum {
// color: #000000;
}
}
.glgkmk :hover {
color: #0058e1;
}
.nav {
margin-bottom: 13px;
display: flex;
justify-content: space-around;
align-items: center;
font-size: 18px;
font-family: 'Alibaba PuHuiTi';
color: #000000;
line-height: 0.32rem;
margin-bottom: 0.1rem;
.photo {
display: inline-block;
height: 0.3rem;
width: 0.3rem;
margin-right: 0.1rem;
}
div {
padding: 0 0.1rem;
cursor: pointer;
display: flex;
align-items: center;
}
div:hover {
color: #1296db;
}
.active {
font-weight: 600;
color: #1296db;
border-bottom: 0.02rem solid #1296db;
}
}
.primaryNode { .primaryNode {
.top { .top {
width: 100%; width: 100%;
@ -232,7 +391,7 @@ export default defineComponent({
border-top: 0.01rem solid #ccc; border-top: 0.01rem solid #ccc;
padding: 0 0.1rem; padding: 0 0.1rem;
&>div { & > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
} }
@ -289,7 +448,7 @@ export default defineComponent({
align-items: center; align-items: center;
padding: 0 0.1rem; padding: 0 0.1rem;
&>div { & > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
} }

View File

@ -562,9 +562,13 @@
</div> </div>
<div <div
class="infrastructrue-table" class="infrastructrue-table"
:key="showKey"
v-if="!wrjFlag && selectType == '政务云资源'" v-if="!wrjFlag && selectType == '政务云资源'"
> >
<GovernmentCloudResources></GovernmentCloudResources> <GovernmentCloudResources
:governmentCloud="governmentCloud"
@getGovernmentCloud="getGovernmentCloud"
></GovernmentCloudResources>
</div> </div>
<!-- 西海岸-无人机单兵设备 --> <!-- 西海岸-无人机单兵设备 -->
<div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag"> <div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag">
@ -1553,6 +1557,7 @@
} }
const emits = defineEmits(['add']) const emits = defineEmits(['add'])
const selectType = ref('政务云资源') const selectType = ref('政务云资源')
const showKey = ref(0)
// //
let tableHeight = ref('600') let tableHeight = ref('600')
//tab //tab
@ -1561,6 +1566,15 @@
selectedList.value = [] selectedList.value = []
if (clickList.value[indexFather].content.indexOf(name) != -1) { if (clickList.value[indexFather].content.indexOf(name) != -1) {
if (name == '视频资源') { if (name == '视频资源') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
room.value = true room.value = true
tableHeight.value = 330 tableHeight.value = 330
showMap.value = true showMap.value = true
@ -1570,6 +1584,15 @@
selectType.value = '视频资源' selectType.value = '视频资源'
console.log('444------------>', 444) console.log('444------------>', 444)
} else if (name == '政务云资源') { } else if (name == '政务云资源') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
room.value = true room.value = true
tableHeight.value = 600 tableHeight.value = 600
showMap.value = false showMap.value = false
@ -1589,7 +1612,25 @@
pagination.value.total = 0 pagination.value.total = 0
selectType.value = '感知资源' selectType.value = '感知资源'
} else if (name == '城市云脑会客厅') { } else if (name == '城市云脑会客厅') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
} else if (name == '视频会议') { } else if (name == '视频会议') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
room.value = true room.value = true
tableHeight.value = 600 tableHeight.value = 600
showMap.value = false showMap.value = false
@ -1609,6 +1650,15 @@
} }
} else { } else {
if (name == '视频资源') { if (name == '视频资源') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
selectType.value = '视频资源' selectType.value = '视频资源'
wrjFlag.value = false wrjFlag.value = false
tableHeight.value = 330 tableHeight.value = 330
@ -1649,6 +1699,15 @@
emits('add', 1) emits('add', 1)
getCamera() getCamera()
} else if (name == '政务云资源') { } else if (name == '政务云资源') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
selectType.value = '政务云资源' selectType.value = '政务云资源'
tableHeight.value = 600 tableHeight.value = 600
showMap.value = false showMap.value = false
@ -1667,6 +1726,7 @@
'PaaS服务', 'PaaS服务',
'安全服务', '安全服务',
'大数据服务', '大数据服务',
'运营服务',
'附加增值服务', '附加增值服务',
] ]
} else { } else {
@ -1680,6 +1740,15 @@
wrjFlag.value = false wrjFlag.value = false
emits('add', 2) emits('add', 2)
} else if (name == '视频会议') { } else if (name == '视频会议') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
selectType.value = '视频会议' selectType.value = '视频会议'
tableHeight.value = 600 tableHeight.value = 600
showMap.value = false showMap.value = false
@ -1722,6 +1791,15 @@
pagination.value.current = 1 pagination.value.current = 1
getSoldierData(indexFather, name) getSoldierData(indexFather, name)
} else if (name == '城市云脑会客厅') { } else if (name == '城市云脑会客厅') {
let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.selectType = name
router
.replace({
query: newQuery,
})
.then(() => {})
showMap.value = false showMap.value = false
dataSource.value = [] dataSource.value = []
dataSource2.value = [] dataSource2.value = []
@ -1783,7 +1861,9 @@
clickList.value[indexFather].content = [name] clickList.value[indexFather].content = [name]
} }
if (!isXiHaiAn) { if (!isXiHaiAn) {
getGovernmentCloud() getGovernmentCloud(1)
governmentCloud.current = 1
showKey.value++
} }
} }
// labelCode // labelCode
@ -2142,10 +2222,6 @@
}) })
} }
} }
defineExpose({
getCamera,
reSetSearch,
})
// //
const addShoppingCart = () => { const addShoppingCart = () => {
if (selectedList.value.length > 0) { if (selectedList.value.length > 0) {
@ -2313,9 +2389,18 @@
} else { } else {
} }
} }
const getGovernmentCloud = () => { const governmentCloud = reactive({ data: [], total: 0, current: 1 })
getPolicyCloudService().then((res) => { const getGovernmentCloud = (page) => {
let roomStr = router.currentRoute.value.query.str
getPolicyCloudService({
limit: 5,
page: page || 1,
name: roomStr || '',
type: clickList.value[1].content[0],
}).then((res) => {
console.log('获取政务云资源======》', res.data.data) console.log('获取政务云资源======》', res.data.data)
governmentCloud.data = res.data.data.list
governmentCloud.total = res.data.data.total
}) })
} }
// tab // tab
@ -2378,6 +2463,12 @@
message.warning(err) message.warning(err)
}) })
} }
defineExpose({
getCamera,
reSetSearch,
getGovernmentCloud,
})
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.infrastructrueBox { .infrastructrueBox {

View File

@ -20,13 +20,15 @@
:key="url" :key="url"
:src="url" :src="url"
> >
<!-- <div class="video-content" style=" z-index: 1"> <div class="video-content">
<h5-player :video-url = "videoUrl"></h5-player> <h5-player></h5-player>
</div> -->
<div style="color:#000000">
<h5-player :video-url = "videoUrl"></h5-player>
</div> </div>
<div> <!-- <div style="color:#000000">
<div class="video-content" style=" z-index: 1">
<h5-player :video-url="videoUrl"></h5-player>
</div>
</div> -->
<div class="footer-button">
<a-button type="primary" @click="applyNow(url)">立即申请</a-button> <a-button type="primary" @click="applyNow(url)">立即申请</a-button>
<a-button type="primary" style="margin-left:20px" @click="addIntoCart(url)">加入申购车</a-button> <a-button type="primary" style="margin-left:20px" @click="addIntoCart(url)">加入申购车</a-button>
</div> </div>
@ -164,6 +166,18 @@
width: 960px; width: 960px;
//height: 700px; //height: 700px;
margin-left: 8px; margin-left: 8px;
.video-content{
width: 950px;
height:600px;
text-align: left;
padding: 5px;
}
.footer-button{
width: 950px;
//height:50px;
text-align: center;
padding-top:20px;
}
} }
.ant-carousel :deep(.slick-slide) { .ant-carousel :deep(.slick-slide) {
text-align: center; text-align: center;
@ -199,18 +213,7 @@
.ant-carousel :deep(.slick-dots) { .ant-carousel :deep(.slick-dots) {
display: none !important; display: none !important;
} }
.video-content{
width: 950px;
height:600px;
text-align: left;
padding: 5px;
}
.footer-button{
width: 950px;
height:50px;
text-align: center;
padding-top:20px;
}
} }
// .current-video { // .current-video {
// width: 320px; // width: 320px;

View File

@ -8,23 +8,7 @@
</div> </div>
<div class="searchPoint"> <div class="searchPoint">
<el-autocomplete <!-- 第一版 -->
v-model="address"
placeholder="请输入地址"
:fetch-suggestions="
(queryString, cb) => {
searchAddressByKeyWord(queryString, cb, i)
}
"
:trigger-on-focus="false"
:popper-append-to-body="false"
class="address-auto-complete-input"
@select="
(addressItem) => {
selectedAddress(addressItem, i)
}
"
/>
<!-- <el-autocomplete <!-- <el-autocomplete
class="inline-input" class="inline-input"
prefix-icon="Search" prefix-icon="Search"
@ -46,6 +30,37 @@
</template> </template>
<template v-slot:append>搜索</template> <template v-slot:append>搜索</template>
</el-autocomplete> --> </el-autocomplete> -->
<!-- 第二版 -->
<el-select class="input-with-select" v-model="addressType" style="width: 115px" @change="address=''">
<el-option label="兴趣点" value="1" />
<el-option label="点位" value="2" />
</el-select>
<el-input
v-if="addressType==1"
v-model="address"
placeholder="请输入关键词"
class="input-with-select"
@keyup.enter="handleEnter"
>
</el-input>
<el-autocomplete
v-else-if="addressType==2"
v-model="address"
placeholder="请输入地址"
:fetch-suggestions="
(queryString, cb) => {
searchAddressByKeyWord(queryString, cb, i)
}
"
:trigger-on-focus="false"
:popper-append-to-body="false"
class="address-auto-complete-input"
@select="
(addressItem) => {
selectedAddress(addressItem, i)
}
"
/>
</div> </div>
<svg <svg
t="1656319660834" t="1656319660834"
@ -77,6 +92,7 @@
</template> </template>
<script> <script>
import { ElMessage } from 'element-plus'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import { HieimpMap } from '@/supermap/map-init' import { HieimpMap } from '@/supermap/map-init'
import TiledMap from './components/tiledMap' import TiledMap from './components/tiledMap'
@ -92,7 +108,7 @@
selectByLabelName, selectByLabelName,
selectByChannelName, selectByChannelName,
} from '@/api/videoSurveillance' } from '@/api/videoSurveillance'
import { getCameraByCondition } from '@/api/file' import { getCameraByCondition,getListForPOI } from '@/api/file'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import * as turf from '@turf/turf'; import * as turf from '@turf/turf';
@ -118,6 +134,7 @@
areaModeFlag: false, areaModeFlag: false,
addressMatchUrl: '', addressMatchUrl: '',
address: '', address: '',
addressType:'1',
whoShow1: whoShow, whoShow1: whoShow,
mapSearchParam: { mapSearchParam: {
// //
@ -136,7 +153,7 @@
}, },
components: { components: {
TiledMap, TiledMap,
VideoPlay, VideoPlay
}, },
created() {}, created() {},
watch: { watch: {
@ -182,13 +199,38 @@
//this.addResourceTomap('videoMap', this.pointAllData); //this.addResourceTomap('videoMap', this.pointAllData);
}) })
// //
mybus.off('cameraDataOnMap') mybus.off('cameraDataOnMap')
mybus.on('cameraDataOnMap', (data) => { mybus.on('cameraDataOnMap', (data) => {
this.addResourceTomap('videoMap', data) this.addResourceTomap('videoMap', data)
}) })
}, },
methods: { methods: {
//
handleEnter(){
console.log('查询',this.address,this.addressType)
if(this.address){
getListForPOI({keywords:this.address}).then(res => {
console.log('POI=========>',res.data.data)
if(res.data.data.rows[0]){
let arr = res.data.data.rows[0].location.split(',')
this.selectedAddress({location:{y:arr[1],x:arr[0]}})
}else{
ElMessage({
showClose: true,
message: '未查询到兴趣点!',
type: 'warning',
})
}
})
}else{
ElMessage({
showClose: true,
message: '请输入兴趣点!',
type: 'warning',
})
}
},
selectedAddress(item, index) { selectedAddress(item, index) {
// //
console.log('跳转', item) console.log('跳转', item)
@ -680,6 +722,14 @@
z-index: 988; z-index: 988;
cursor: pointer; cursor: pointer;
} }
.input-with-select{
width: 2.4rem;
svg{
position: relative;
bottom: 0;
right: 0;
}
}
.icon-poylon { .icon-poylon {
width: 0.46rem; width: 0.46rem;
bottom: 0.6rem; bottom: 0.6rem;