西海岸视频监控

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: {
previewUrl: 'http://localhost:8080/',
apiURL: 'http://192.168.124.243:8888/ucs-admin',
websocketURL: 'ws://192.168.124.243:8888/ucs-admin/websocket'
apiURL: 'http://192.168.124.233:8888/ucs-admin',
websocketURL: 'ws://192.168.124.233:8888/ucs-admin/websocket'
}
}
}

View File

@ -157,6 +157,13 @@
@click="deleteHandle2(scope.row.id)"
>{{ $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
>
@ -256,6 +263,7 @@ export default {
mixins: [mixinViewModule],
data () {
return {
superAdmin: '',
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '算法名称', '算法描述', '图层名称', '图层描述', '组件名称', '组件描述', '组件地址', '服务地址', '服务接口', '接口请求方式', '算法类别'],
notFilled: [],
insertList: [],
@ -317,6 +325,10 @@ export default {
created () {
this.dataForm.name = ''
this.dataForm.type = '组件服务'
this.$http.get('/sys/user/info').then(res => {
console.log('res', res.data.data)
this.superAdmin = res.data.data.superAdmin
})
},
mounted () {
// window.addEventListener('resize', this.a)
@ -671,6 +683,31 @@ export default {
arr.push('常见问题')
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 () {
console.log('提交11111111111===============>', this.putOnTheShelfList, this.submitFrom)
const arr = []

View File

@ -145,6 +145,13 @@
@click="deleteHandle2(scope.row.id)"
>{{ $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
>
@ -234,6 +241,7 @@ export default {
mixins: [mixinViewModule],
data () {
return {
superAdmin: '',
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用类型'],
notFilled: [],
mixinViewModuleOptions: {
@ -286,6 +294,10 @@ export default {
created () {
this.dataForm.name = ''
this.dataForm.type = '应用资源'
this.$http.get('/sys/user/info').then(res => {
console.log('res', res.data.data)
this.superAdmin = res.data.data.superAdmin
})
},
mounted () {
// 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) {
const type = '基础设施'

View File

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

View File

@ -1,8 +1,8 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2022-04-20 17:16:35
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-26 17:57:52
* @LastEditors: Light
* @LastEditTime: 2022-11-18 17:52:05
* @Description: 告诉大家这是什么
*/
import request from '@/utils/request'
@ -97,6 +97,14 @@ export function getHls(params) {
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)
let _cameraUrl =

View File

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

View File

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

View File

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

View File

@ -2,36 +2,59 @@
* @Author: Light
* @Date: 2022-11-16 16:46:16
* @LastEditors: Light
* @LastEditTime: 2022-11-17 09:46:45
* @LastEditTime: 2022-11-18 15:35:25
* @Description: 政务云资源列表
-->
<template>
<div class="top">
<div>检索结果60</div>
<div>检索结果{{ props.governmentCloud.total }}</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="right">
<div class="title">
<div>
<div class="name">云主机</div>
<div class="type">基础服务</div>
<div class="name">{{ item.service_item_tier1 }}</div>
<div class="type">{{ item.service_type }}</div>
</div>
<div>年份2022</div>
<div>年份{{ item.year }}</div>
</div>
<div class="text">云主机配置</div>
<div class="text">{{ item.service_description }}</div>
<div class="info">
<div>一级条目主机服务</div>
<div>规格1H2G</div>
<div>一级条目{{ item.service_item_tier2 }}</div>
<div>规格{{ item.specification }}</div>
</div>
</div>
</div>
<a-pagination
v-model:current="current"
:pageSize="5"
:total="props.governmentCloud.total"
:showSizeChanger="false"
@change="changeCurrent"
show-less-items
/>
</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>
.top {
display: flex;

View File

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

View File

@ -19,7 +19,7 @@
:key="item.key"
@click="jumpPage(item,'headerClick')"
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 }}
</div>
@ -171,6 +171,7 @@
}
}
}
console.log('3333333------------>', props)
//
const goToHome = () => {
// 西
@ -290,7 +291,7 @@
break
case '能力集市':
router.push({
path: '/algorithmCompare',
path: targetRouter.value.path,
query: {
id: targetRouter.value.id,
},
@ -301,41 +302,11 @@
path: '/capabilityCloud',
})
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 '后台管理':
Cookies.remove('JSESSIONID')
window.open(window.SITE_CONFIG.backUrl + '/#/workBench-workBench')
// window.reload('http://15.2.21.238:9797')
break
case '赋能案例':
router.push({
path: '/assignCase',
})
break
case '典型赋能案例':
router.push({
path: '/assignCase',
})
break
case '融合服务':
router.push({
path: '/integrationServices',
@ -431,8 +402,9 @@
})
mybus.on('changeMenuStyle', (data) => {
if(data.path=='/algorithmCompare'){
debugger
targetRouter.value = data;
if(data.path=='/algorithmCompare'){
jumpPage({
"name": "能力集市",
"key": "DetailsPageconetent",
@ -440,6 +412,12 @@
},'innerClick');
} else if(data.path =='/DetailsPageconetent'){
jumpPage({ name: '能力集市', key: 'DetailsPageconetent' },'headerClick')
} else if(data.path =='/details'){
jumpPage({
"name": "能力集市",
"key": "DetailsPageconetent",
"innerKey":"details"
},'innerClick');
}
})

View File

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

View File

@ -1,5 +1,11 @@
<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>
</template>
@ -24,20 +30,40 @@ const previousPage = () => {
}
const detailName = ref("应用资源")
</script>
<style scoped lang="less">
.detail-back {
position: absolute;
top: 0.85rem;
top: 0.6rem;
left: 100px;
font-size: 0.18rem;
color: #fff;
cursor: pointer;
width: 50px;
height: 50px;
background-image: url('~@/assets/detailsAll/back.png');
//background-image: url('~@/assets/detailsAll/back.png');
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>

View File

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

View File

@ -1,8 +1,34 @@
<template>
<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 class="top" @click="showBottom(item)" :class="item.show ? 'topSelect' : ''">
<div
class="top"
@click="showBottom(item)"
:class="item.show ? 'topSelect' : ''"
>
{{ item.name }}
({{ item.channelCount }})
<DownOutlined v-show="!item.show" />
@ -10,13 +36,28 @@
</div>
<div class="bottom" v-show="item.show">
<div v-for="val in item.children" :key="val.id" class="item">
<div class="up" :class="selectId == val.id ? 'select' : ''"
@click="showDown(item, val), onSelect(item, val)">
<div
class="up"
:class="selectId == val.id ? 'select' : ''"
@click="showDown(item, val), onSelect(item, val)"
>
<div>
<svg t="1654068878091" class="icon" 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
t="1654068878091"
class="icon"
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>
<span class="name">{{ val.name }}({{ val.channelCount }})</span>
</div>
@ -27,13 +68,30 @@
</span>
</div>
<div class="down" v-show="val.show">
<div v-for="child in val.children" :key="child.id" class="child"
:class="selectId == child.id ? 'select2' : ''" @click="onSelect(item, child, child)">
<div
v-for="child in val.children"
:key="child.id"
class="child"
:class="selectId == child.id ? 'select2' : ''"
@click="onSelect(item, child, child)"
>
<div>
<svg t="1654068878091" class="icon" 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
t="1654068878091"
class="icon"
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>
<span class="name">
{{ child.name }}
@ -46,6 +104,20 @@
</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>
</template>
<script>
@ -59,29 +131,35 @@ import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
export default defineComponent({
setup() {
const biaoqianList = ref([])
const bumenImg = require('@/assets/newHome/bumen.png')
const biaoqianImg = require('@/assets/newHome/biaoqian.png')
const router = useRouter()
const whoShow1 = ref(whoShow)
const showKey = ref(0)
const treeData = 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 () => {
treeData.value = []
console.log(
'router.currentRoute.value.query.select',
router.currentRoute.value.query.select
)
let 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') {
select = ''
}
console.log(
'获取url中的select=====================>',
router.currentRoute.value.query.select
)
if (select == '基础设施') {
let res = {};
let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' })
} else {
@ -90,9 +168,27 @@ export default defineComponent({
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])
}
}
@ -102,11 +198,6 @@ export default defineComponent({
})
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 = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: val.id })
@ -137,8 +228,8 @@ export default defineComponent({
})
const showBottom = async (item) => {
item.show = !item.show;
let res = {};
item.show = !item.show
let res = {}
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
res = await getCameraAllOrgan({ parentId: item.id })
} else {
@ -148,17 +239,17 @@ export default defineComponent({
treeData.value.map((treeDataItem, index) => {
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])
}
})
}
const showDown = (item, val) => {
selectId.value = val.id
console.log('item---showDown--------->', item);
console.log('val----showDown-------->', val);
console.log('item---showDown--------->', item)
console.log('val----showDown-------->', val)
if (item.children) {
val.show = !val.show;
val.show = !val.show
//
if (!val.show) {
selectId.value = ''
@ -166,12 +257,19 @@ export default defineComponent({
}
}
return {
btnClick,
tabClick,
treeData,
showKey,
onSelect,
showBottom,
showDown,
selectId,
itemIndex,
bumenImg,
biaoqianImg,
biaoqianList,
chooseId,
}
},
beforeUnmount() {
@ -185,6 +283,67 @@ export default defineComponent({
})
</script>
<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 {
.top {
width: 100%;
@ -232,7 +391,7 @@ export default defineComponent({
border-top: 0.01rem solid #ccc;
padding: 0 0.1rem;
&>div {
& > div {
display: flex;
justify-content: flex-start;
}
@ -289,7 +448,7 @@ export default defineComponent({
align-items: center;
padding: 0 0.1rem;
&>div {
& > div {
display: flex;
justify-content: flex-start;
}

View File

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

View File

@ -20,13 +20,15 @@
:key="url"
:src="url"
>
<!-- <div class="video-content" style=" z-index: 1">
<h5-player :video-url = "videoUrl"></h5-player>
</div> -->
<div style="color:#000000">
<h5-player :video-url = "videoUrl"></h5-player>
<div class="video-content">
<h5-player></h5-player>
</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" style="margin-left:20px" @click="addIntoCart(url)">加入申购车</a-button>
</div>
@ -164,6 +166,18 @@
width: 960px;
//height: 700px;
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) {
text-align: center;
@ -199,18 +213,7 @@
.ant-carousel :deep(.slick-dots) {
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 {
// width: 320px;

View File

@ -8,23 +8,7 @@
</div>
<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
class="inline-input"
prefix-icon="Search"
@ -46,6 +30,37 @@
</template>
<template v-slot:append>搜索</template>
</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>
<svg
t="1656319660834"
@ -77,6 +92,7 @@
</template>
<script>
import { ElMessage } from 'element-plus'
import { message } from 'ant-design-vue'
import { HieimpMap } from '@/supermap/map-init'
import TiledMap from './components/tiledMap'
@ -92,7 +108,7 @@
selectByLabelName,
selectByChannelName,
} from '@/api/videoSurveillance'
import { getCameraByCondition } from '@/api/file'
import { getCameraByCondition,getListForPOI } from '@/api/file'
import mybus from '@/myplugins/mybus'
import * as turf from '@turf/turf';
@ -118,6 +134,7 @@
areaModeFlag: false,
addressMatchUrl: '',
address: '',
addressType:'1',
whoShow1: whoShow,
mapSearchParam: {
//
@ -136,7 +153,7 @@
},
components: {
TiledMap,
VideoPlay,
VideoPlay
},
created() {},
watch: {
@ -182,13 +199,38 @@
//this.addResourceTomap('videoMap', this.pointAllData);
})
//
//
mybus.off('cameraDataOnMap')
mybus.on('cameraDataOnMap', (data) => {
this.addResourceTomap('videoMap', data)
})
},
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) {
//
console.log('跳转', item)
@ -680,6 +722,14 @@
z-index: 988;
cursor: pointer;
}
.input-with-select{
width: 2.4rem;
svg{
position: relative;
bottom: 0;
right: 0;
}
}
.icon-poylon {
width: 0.46rem;
bottom: 0.6rem;