Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
chenchenzai 2022-11-21 19:12:05 +08:00
commit ffbf434cd7
11 changed files with 613 additions and 326 deletions

View File

@ -7,117 +7,122 @@
*/ */
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', // 穿
vNum: 'v0.8.15.2', vNum: 'v0.8.15.2',
configData: { configData: {
// //
qingdao: { qingdao: {
loginInfo: { loginInfo: {
// //
loginIp: '10.132.191.3', loginIp: '10.132.191.3',
loginPort: '8320', loginPort: '8320',
userName: 'ynszdz', userName: 'ynszdz',
userPwd: 'Admin@123', userPwd: 'Admin@123',
}, },
backUrl: 'http://15.72.183.90:8001', backUrl: 'http://15.72.183.90:8001',
previewUrl: 'http://15.72.183.90:7008/', previewUrl: 'http://15.72.183.90:7008/',
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/', //frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
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: '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: {
loginInfo: {
//
loginIp: '10.132.191.3',
loginPort: '8320',
userName: 'ynszdz',
userPwd: 'Admin@123',
},
backUrl: 'http://15.72.183.90:8001',
previewUrl: 'http://15.72.183.90:7008/',
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
//apiURL: 'http://15.72.183.90:8000/ucs-admin',
// 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',
},
// 西
xihaian: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
//
camreaInfo: {
// cameraUrl: '10.134.135.92:9537', // 西-
// cameraUrl: '10.134.135.9:9537', // 西-
cameraUrl: '192.168.124.236:9537', // vpn
},
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.18.1.99:8889/ucs-admin', //
POI_URL: 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
},
//
dev: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
backUrl: 'http://localhost:8001',
previewUrl: 'http://192.168.124.243:9796/',
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',
},
//
test: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
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',
},
// 穿
frp: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
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',
},
}, },
//
zhanTingDev: {
loginInfo: {
//
loginIp: '10.132.191.3',
loginPort: '8320',
userName: 'ynszdz',
userPwd: 'Admin@123',
},
backUrl: 'http://15.72.183.90:8001',
previewUrl: 'http://15.72.183.90:7008/',
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
//apiURL: 'http://15.72.183.90:8000/ucs-admin',
// 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',
},
// 西
xihaian: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
//
camreaInfo: {
// cameraUrl: '10.134.135.92:9537', // 西-
// cameraUrl: '10.134.135.9:9537', // 西-
cameraUrl: '192.168.124.236:9537', // vpn
},
backUrl: 'http://10.134.135.9:9797',
previewUrl: 'http://10.134.135.9:9796/',
// 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.18.1.99:8889/ucs-admin', //
POI_URL:
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
},
//
dev: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
backUrl: 'http://localhost:8001',
previewUrl: 'http://192.168.124.243:9796/',
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',
},
//
test: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
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',
},
// 穿
frp: {
loginInfo: {
//
loginIp: '',
loginPort: '',
userName: '',
userPwd: '',
},
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',
},
},
} }
_global.config = CONFIGITEM.configData[CONFIGITEM.version] _global.config = CONFIGITEM.configData[CONFIGITEM.version]

View File

@ -113,6 +113,15 @@ export function getPlaceType() {
config2 config2
) )
} }
//西
export function CameraConditionPlaceType(params) {
return axios.post(
'http://10.134.135.92:9537/data_service/getCamera/CameraConditionPlaceType',
params,
config2
)
}
// 西-- (10.134.135.92:9537) // 西-- (10.134.135.92:9537)
let _cameraUrl = let _cameraUrl =
(_global && (_global &&

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-01 19:19:40 * @Date: 2022-04-01 19:19:40
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-19 14:53:29 * @LastEditTime: 2022-11-21 16:35:03
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -556,3 +556,19 @@ export function willApplyCameraBatchDelete(data) {
data, data,
}) })
} }
// 西
export function getApplyCameraListXha(data) {
return request({
url: '/processForm/tabilityapplication/getApplyCameraList',
method: 'get',
data,
})
}
// 西
export function delApplyCamera(data) {
return request({
url: '/processForm/tabilityapplication/delApplyCamera',
method: 'post',
data,
})
}

View File

@ -143,6 +143,7 @@
show-size-changer show-size-changer
show-less-items show-less-items
show-quick-jumper show-quick-jumper
:showTotal="total => `共 ${total} 项`"
:total="resourceTotal" :total="resourceTotal"
:page-size-options="pageSizeOptions" :page-size-options="pageSizeOptions"
@change="pageChange" @change="pageChange"
@ -2065,7 +2066,7 @@
background: rgba(245, 243, 243, 0.3); background: rgba(245, 243, 243, 0.3);
.details-pageconetent-left { .details-pageconetent-left {
max-height: 6.9rem; max-height: 8.5rem;
position: absolute; position: absolute;
width: 2.5rem; width: 2.5rem;
top: 0.17rem; top: 0.17rem;

View File

@ -237,6 +237,7 @@
</div> </div>
</template> </template>
<script> <script>
import { willApplyCameraBatchDelete } from '@/api/home'
import AbilityToApplyFor from './AbilityToApplyFor.vue' import AbilityToApplyFor from './AbilityToApplyFor.vue'
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
import { reactive, ref, watch, onBeforeUnmount } from 'vue' import { reactive, ref, watch, onBeforeUnmount } from 'vue'
@ -656,6 +657,7 @@
if (item.note1 && typeof item.note1 == 'string') { if (item.note1 && typeof item.note1 == 'string') {
item.note1 = JSON.parse(item.note1) item.note1 = JSON.parse(item.note1)
} }
let delArr = []
item.note1 && item.note1 &&
item.note1.map((jcss) => { item.note1.map((jcss) => {
if (!jcss) { if (!jcss) {
@ -678,31 +680,39 @@
} }
// 西 // 西
if (isXiHaiAn.value) { if (isXiHaiAn.value) {
// _itemData.resourceId = jcss.channelId
_itemData.managementUnitName = jcss.managementUnitName _itemData.managementUnitName = jcss.managementUnitName
_itemData.cameraPointTypeName = jcss.cameraPointTypeName _itemData.cameraPointTypeName = jcss.cameraPointTypeName
delArr.push(jcss.id)
} }
obj.system.push(_itemData) obj.system.push(_itemData)
}) })
submitApply(obj).then((res) => { submitApply(obj).then((res) => {
// applySuccess.value = false // applySuccess.value = false
console.log('摄像头申请================>', res) console.log('摄像头申请================>', res)
if (item.id) { if (res.data.msg == 'success') {
sgcDel({ ids: [item.id] }).then((res1) => { if (delArr.length > 0) {
if (res1.data.msg === 'success') { willApplyCameraBatchDelete(delArr).then((res) => {
if (falgNum == 0 && sxt) {
message.success('申请提交成功,请到消息中心查看!')
sxt = false
}
mybus.emit('getSgcNum')
jumpToDetailsPageconetent() jumpToDetailsPageconetent()
})
} else if (item.id) {
sgcDel({ ids: [item.id] }).then((res1) => {
if (res1.data.msg === 'success') {
if (falgNum == 0 && sxt) {
message.success('申请提交成功,请到消息中心查看!')
sxt = false
}
mybus.emit('getSgcNum')
jumpToDetailsPageconetent()
}
})
} else {
if (res.data.msg === 'success' && falgNum == 0 && sxt) {
message.success('申请提交成功,请到消息中心查看!')
sxt = false
} }
}) jumpToDetailsPageconetent()
} else {
if (res.data.msg === 'success' && falgNum == 0 && sxt) {
message.success('申请提交成功,请到消息中心查看!')
sxt = false
} }
jumpToDetailsPageconetent()
} }
}) })
} }
@ -956,130 +966,130 @@
} }
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
#apply-container { #apply-container {
// background-color: #f5f8fc; // background-color: #f5f8fc;
height: 100%; height: 100%;
width: 100%; width: 100%;
margin: 0.8rem auto 0; margin: 0.8rem auto 0;
display: flex;
justify-content: space-between;
aside {
width: 282px;
height: 96%;
overflow-y: auto;
background-color: #fff;
margin: 1% 0 3%;
}
article {
width: 1090px;
height: 99%;
overflow-y: auto;
background-color: #fff;
margin: 1% auto;
}
.form-container {
padding: 20px 20px 30px 20px;
.title {
font-size: 20px;
color: #000;
font-weight: bold;
margin-bottom: 20px;
}
}
.base-info {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
}
.flex-row-start { aside {
justify-content: flex-start; width: 282px;
align-items: center; height: 96%;
} overflow-y: auto;
background-color: #fff;
margin: 1% 0 3%;
}
:deep(.ant-form-item-label) { article {
label { width: 1090px;
color: #666; height: 99%;
font-size: 16px; overflow-y: auto;
background-color: #fff;
margin: 1% auto;
}
&::after { .form-container {
content: ''; padding: 20px 20px 30px 20px;
.title {
font-size: 20px;
color: #000;
font-weight: bold;
margin-bottom: 20px;
} }
} }
}
:deep(.ant-form-item-required) { .base-info {
&::before { display: flex;
font-size: 8px; justify-content: space-between;
margin-right: 10px; }
.flex-row-start {
justify-content: flex-start;
align-items: center;
}
:deep(.ant-form-item-label) {
label {
color: #666;
font-size: 16px;
&::after {
content: '';
}
}
}
:deep(.ant-form-item-required) {
&::before {
font-size: 8px;
margin-right: 10px;
}
}
:deep(.ant-input) {
border: 1px solid #e0e0e0;
border-radius: 6px;
}
.success {
div {
width: 100px;
margin: 80px auto 40px;
}
text-align: center;
font-size: 20px;
font-weight: bold;
color: #000;
} }
} }
:deep(.ant-input) { .applicationScene {
border: 1px solid #e0e0e0; :deep(.ant-select-selector) {
overflow-x: scroll;
}
:deep(.ant-select-selection-overflow) {
flex-wrap: nowrap;
}
}
textarea {
resize: none;
font-size: 14px;
}
.bottom-btn {
display: flex;
justify-content: center;
// position: fixed;
}
.cancel-apply {
width: 80px;
height: 38px;
margin-right: 20px;
background: #e1edfa;
color: #0087ff;
font-size: 14px;
border-radius: 6px; border-radius: 6px;
} border: none;
padding: 0;
.success {
div {
width: 100px;
margin: 80px auto 40px;
}
text-align: center; text-align: center;
font-size: 20px;
font-weight: bold;
color: #000;
}
}
.applicationScene {
:deep(.ant-select-selector) {
overflow-x: scroll;
} }
:deep(.ant-select-selection-overflow) { .confirm-apply {
flex-wrap: nowrap; width: 80px;
height: 38px;
background: #0087ff;
color: #fff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
} }
}
textarea {
resize: none;
font-size: 14px;
}
.bottom-btn {
display: flex;
justify-content: center;
// position: fixed;
}
.cancel-apply {
width: 80px;
height: 38px;
margin-right: 20px;
background: #e1edfa;
color: #0087ff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
}
.confirm-apply {
width: 80px;
height: 38px;
background: #0087ff;
color: #fff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
}
</style> </style>

View File

@ -40,6 +40,10 @@
:pageSize="5" :pageSize="5"
:total="props.resourceTotal" :total="props.resourceTotal"
show-less-items show-less-items
show-size-changer
show-quick-jumper
:page-size-options="pageSizeOptions"
:showTotal="total => `共 ${total} 项`"
@change="handleCurrentChange" @change="handleCurrentChange"
:showSizeChanger="false" :showSizeChanger="false"
/> />
@ -56,6 +60,7 @@
resourceList: { type: Array, default: null }, resourceList: { type: Array, default: null },
resourceTotal: { type: String, default: '' }, resourceTotal: { type: String, default: '' },
}) })
const pageSizeOptions = ref(['5', '10', '20', '50'])
console.log('props==========>', props) console.log('props==========>', props)
// //
const zskState = reactive({ const zskState = reactive({

View File

@ -108,13 +108,17 @@
<div v-for="(item, index) in biaoqianList"> <div v-for="(item, index) in biaoqianList">
<div class="titleName">{{ item.placeTypeName }}</div> <div class="titleName">{{ item.placeTypeName }}</div>
<div class="glgkmk" v-for="(child, index) in item.children"> <div class="glgkmk" v-for="(child, index) in item.children">
<div <a-tooltip placement="topLeft">
<template #title>{{ child.placeTypeName }}</template>
<div
class="glgknum" class="glgknum"
:class="{ active: child.placeTypeCode == chooseId }" :class="{ active: child.placeTypeCode == chooseId }"
@click="tabClick(child.placeTypeCode)" @click="tabClick(child.placeTypeCode)"
> >
{{ child.placeTypeName }} {{ child.placeTypeName }}
</div> </div>
</a-tooltip>
</div> </div>
</div> </div>
</div> </div>
@ -123,7 +127,8 @@
<script> <script>
import { defineComponent, ref, watch } from 'vue' import { defineComponent, ref, watch } from 'vue'
import { getCameraAllOrgan } from '@/api/videoSurveillance' import { getCameraAllOrgan } from '@/api/videoSurveillance'
import { getCameraInfoByAreaId } from '@/api/file'
import { getCameraInfoByAreaId ,getPlaceType} from '@/api/file'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue' import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
@ -148,6 +153,9 @@ export default defineComponent({
// //
const tabClick = (id) => { const tabClick = (id) => {
chooseId.value = id chooseId.value = id
let placeTypeCode =[]
placeTypeCode.push(id)
mybus.emit('CameraConditionPlaceType', placeTypeCode)
} }
// //
const init = async () => { const init = async () => {
@ -159,6 +167,7 @@ export default defineComponent({
select = '' 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' })
@ -169,24 +178,10 @@ export default defineComponent({
}) })
} }
treeData.value = (res.data && res.data.data) || [] treeData.value = (res.data && res.data.data) || []
let tabs={}
tabs = await getPlaceType()
//========= //=========
biaoqianList.value = [ biaoqianList.value =(tabs.data && tabs.data.data) || []
{
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])
@ -196,12 +191,16 @@ export default defineComponent({
mybus.on('getDeptList', () => { mybus.on('getDeptList', () => {
init() init()
}) })
mybus.on('clearChoose', () => {
selectId.value=''
chooseId.value=''
})
const onSelect = async (item, val, child) => { const onSelect = async (item, val, child) => {
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 })
} else { } else {
 mybus.emit('getCameraByParentId', val.id)
// 西 // 西
res = await getCameraInfoByAreaId({ areaId: val.id }) res = await getCameraInfoByAreaId({ areaId: val.id })
} }
@ -274,7 +273,7 @@ export default defineComponent({
}, },
beforeUnmount() { beforeUnmount() {
mybus.off('getDeptList') mybus.off('getDeptList')
console.log('getDeptList销毁~~~~~~~~~~~~~~~~~~~') mybus.off('clearChoose')
}, },
components: { components: {
UpOutlined, UpOutlined,
@ -285,24 +284,33 @@ export default defineComponent({
<style lang="less" scoped> <style lang="less" scoped>
.titleName { .titleName {
font-size: 18px; font-size: 18px;
color: #1e1a1a; color: #7e7676;
margin-bottom: 10px; margin-bottom: 10px;
padding-left: 10px; padding-left: 10px;
border-left: 6px solid #1296db; border-left: 6px solid #1296db;
} }
.glgkmk { .glgkmk {
cursor: pointer; cursor: pointer;
text-align: center; text-align: left;
position: relative; position: relative;
display: inline-block; display: inline-block;
width: 30%; width: 45%;
margin-bottom: 10px; margin-bottom: 10px;
margin-left: 10px;
.glgknum {
// width: 100px;
// color: #000000;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.active { .active {
color: #0058e1; color: #0058e1;
} }
.glgknum {
// color: #000000;
}
} }
.glgkmk :hover { .glgkmk :hover {

View File

@ -2,7 +2,7 @@
* @Author: Light * @Author: Light
* @Date: 2022-11-18 11:53:43 * @Date: 2022-11-18 11:53:43
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-19 17:15:15 * @LastEditTime: 2022-11-21 17:51:38
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -17,30 +17,46 @@
{{ item.channelName }} {{ item.channelName }}
</a-tooltip> </a-tooltip>
</div> </div>
<a-button type="link" danger @click="delWillApplyCamera(item.id)"> <a-popconfirm
移出 :title="'是否移出' + item.channelName + '?'"
</a-button> ok-text="是"
cancel-text="否"
@confirm="delWillApplyCamera(item.id)"
>
<a-button type="link" danger>移出</a-button>
</a-popconfirm>
</a-list-item> </a-list-item>
</template> </template>
<template #header> <template #header>
<div class="title">待申请列表</div> <div class="title">待申请列表</div>
</template> </template>
<template #footer> <template #footer>
<a-button type="primary">一键申请</a-button> <a-button type="primary" @click="apply">一键申请</a-button>
</template> </template>
</a-list> </a-list>
</div> </div>
<div class="bottom"> <div class="bottom">
<a-list size="small" bordered :data-source="data"> <a-list size="small" bordered :data-source="dataList.requested">
<template #renderItem="{ item }"> <template #renderItem="{ item }">
<a-list-item> <a-list-item>
<div class="name"> <div class="name">
<a-tooltip> <a-tooltip>
<template #title>{{ item }}</template> <template #title>{{ item.cameraInfo.channelName }}</template>
{{ item }} {{ item.cameraInfo.channelName }}
</a-tooltip> </a-tooltip>
</div> </div>
<a-button type="link" danger>删除</a-button> <a-popconfirm
v-if="item.approveStatus == '通过'"
:title="'是否删除' + item.cameraInfo.channelName + '?'"
ok-text="是"
cancel-text="否"
@confirm="deleteApply(item)"
>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
<a-button v-else type="link" danger @click="deleteApply(item)">
删除
</a-button>
</a-list-item> </a-list-item>
</template> </template>
<template #header> <template #header>
@ -49,20 +65,63 @@
</a-list> </a-list>
</div> </div>
</div> </div>
<a-modal
:width="800"
v-model:visible="visible"
title="删除申请"
@ok="handleOk"
@cancel="clear"
>
<p>本次申请的摄像头包含以下{{ showArr.length }}个摄像头是否删除申请</p>
<a-table :columns="columns" :data-source="showArr">
<template #bodyCell="{ column, text }">
<template v-if="column.dataIndex === 'name'">
<a>{{ text }}</a>
</template>
</template>
</a-table>
</a-modal>
</template> </template>
<script setup> <script setup>
import { import {
willApplyCameraSelect, willApplyCameraSelect,
willApplyCameraBatchInsert, willApplyCameraBatchInsert,
willApplyCameraBatchDelete, willApplyCameraBatchDelete,
getApplyCameraListXha,
delApplyCamera,
} from '@/api/home' } from '@/api/home'
import { endProcess } from '@/api/personalCenter.js'
import { onBeforeUnmount, reactive, ref } from 'vue' import { onBeforeUnmount, reactive, ref } from 'vue'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router'
const dataList = reactive({ toBeApplied: [], requested: [] }) const dataList = reactive({ toBeApplied: [], requested: [] })
// //
const addWacFlag = ref(true) const addWacFlag = ref(true)
const delWacFlag = ref(true) const delWacFlag = ref(true)
const delApply = ref(true)
const visible = ref(false)
const instanceId = ref('')
const showArr = ref({})
const columns = [
{
title: '名称',
dataIndex: 'channelName',
key: 'channelName',
},
{
title: '地址',
dataIndex: 'managementUnitName',
key: 'managementUnitName',
},
{
title: '类型',
dataIndex: 'cameraPointTypeName',
key: 'cameraPointTypeName',
ellipsis: true,
},
]
const router = useRouter()
const delWillApplyCamera = (id) => { const delWillApplyCamera = (id) => {
console.log('删除===>', id) console.log('删除===>', id)
if (delWacFlag.value) { if (delWacFlag.value) {
@ -77,6 +136,86 @@
}) })
} }
} }
const apply = () => {
let obj = {
arr: [
{
checked: true,
delFlag: 0,
id: '1593084734789996545',
idtCameraChannel: '790582098133127168',
loading: false,
note1: '',
resourceId: '1522550195055828996',
resourceName: '摄像头列表',
type: '基础设施',
},
],
deptName: '西海岸新区工业和信息化局',
deptId: '732560225344761856',
}
dataList.toBeApplied.map((val) => {
val.type = '基础设施'
val.delFlag = 0
val.resourceId = val.channelId
val.resourceName = val.channelName
// obj.arr.push(val)
})
obj.arr[0].note1 = JSON.stringify(dataList.toBeApplied)
if (obj.arr.length > 0) {
console.log('一键申请===================>', obj)
localStorage.setItem('applyList', JSON.stringify([obj]))
router.push({
path: '/apply',
})
}
}
//
const deleteApply = (item) => {
console.log('删除========>', item)
if (delApply.value) {
delApply.value = false
switch (item.approveStatus) {
case '审核中':
visible.value = true
instanceId.value = item.instanceId
showArr.value = []
dataList.requested.map((val) => {
if (val.instanceId == item.instanceId) {
showArr.value.push(val.cameraInfo)
}
})
break
case '通过':
delApplyCamera([item.id]).then((res) => {
if (res.data.code == 0) {
message.success('删除成功')
} else {
message.warning('删除失败')
}
initApply()
})
break
}
}
}
const handleOk = () => {
endProcess({ instanceId: instanceId.value }).then((res) => {
if (res.data.code == 0) {
message.success('删除成功')
} else {
message.warning('删除失败')
}
initApply()
visible.value = false
})
}
const clear = () => {
instanceId.value = ''
showArr.value = []
visible.value = false
delApply.value = true
}
const init = () => { const init = () => {
willApplyCameraSelect().then((res) => { willApplyCameraSelect().then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
@ -89,10 +228,25 @@
} }
}) })
} }
const initApply = () => {
getApplyCameraListXha().then((res) => {
if (res.data.code == 0) {
res.data.data.map((val) => {
val.cameraInfo = JSON.parse(val.cameraInfo)
})
dataList.requested = res.data.data
delApply.value = true
} else {
message.warning('查询失败')
dataList.requested = []
}
})
}
init() init()
initApply()
mybus.on('selectCamera', (obj) => { mybus.on('selectCamera', (obj) => {
// 10 // 10
if (dataList.toBeApplied.length + dataList.requested.length > 10) { if (dataList.toBeApplied.length + dataList.requested.length >= 10) {
message.warning('最多只能申请10个摄像头') message.warning('最多只能申请10个摄像头')
return return
} }
@ -127,19 +281,6 @@
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('selectCamera') mybus.off('selectCamera')
}) })
const data = [
'Racing car sprays burning fuel into crowd.',
'Japanese princess to wed commoner.',
'Australian walks 100km after outback crash.',
'Man charged over missing wedding girl.',
'Los Angeles battles huge wildfires.',
'Racing car sprays burning fuel into crowd.',
'Japanese princess to wed commoner.',
'Australian walks 100km after outback crash.',
'Man charged over missing wedding girl.',
'Los Angeles battles huge wildfires.',
]
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.infrastructureApplication { .infrastructureApplication {
@ -168,10 +309,12 @@
justify-content: flex-end; justify-content: flex-end;
} }
:deep(.ant-list-items) { :deep(.ant-list-items) {
width: 2.5rem;
height: 2.45rem; height: 2.45rem;
overflow-y: scroll; overflow-y: scroll;
} }
:deep(.ant-spin-nested-loading) { :deep(.ant-spin-nested-loading) {
width: 2.5rem;
height: 2.45rem; height: 2.45rem;
} }
} }

View File

@ -128,16 +128,21 @@
预约 预约
</a-button> </a-button>
</div> </div>
<!-- <div class="flex-space" style="justify-content: center;display:flex;height:40px;align-items:center;"> -->
<a-pagination <a-pagination
v-model:current="roomPage" v-model:current="roomPage"
v-model:pageSize="roomLimit" v-model:pageSize="roomLimit"
show-quick-jumper show-quick-jumper
:showTotal="total => `共 ${total} 项`"
:total="roomTotal" :total="roomTotal"
:page-size-options="pageSizeOptions" :page-size-options="pageSizeOptions"
@change="onRoomChange" @change="onRoomChange"
@showSizeChange="onShowSizeChange" @showSizeChange="onShowSizeChange"
show-size-changer show-size-changer
/> />
<!-- <el-button @click="onOkChange" class="queding" >确认</el-button>
</div> -->
</div> </div>
<div v-if="roomResult" style="display: grid"> <div v-if="roomResult" style="display: grid">
<a-table <a-table
@ -1440,10 +1445,14 @@
} }
} }
// //
const onRoomChange = (pageNumber) => { const onRoomChange = () => {
roomPage.value = pageNumber roomPage.value = pageNumber
searchData() searchData()
} }
const onOkChange = () => {
current.value = roomPage.value
searchData()
}
const onShowSizeChange = (current, pageSize) => { const onShowSizeChange = (current, pageSize) => {
roomLimit.value = pageSize roomLimit.value = pageSize
searchData() searchData()
@ -2471,6 +2480,16 @@
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.queding{
margin-left: 16px;
cursor: pointer;
background: #0058e1;
color: #ffffff;
width: 56px;
border-radius: 2px;
border: 1px #0058e1 solid;
margin-top: 17px;
}
.infrastructrueBox { .infrastructrueBox {
padding: 0.2rem; padding: 0.2rem;
background: #ffffff; background: #ffffff;
@ -2803,13 +2822,11 @@
} }
} }
:deep(.ant-pagination) {
float: right;
}
:deep(.ant-pagination) {
text-align: end; // :deep(.ant-pagination) {
} // text-align: end;
// }
} }
:deep(.ant-table-thead > tr > th) { :deep(.ant-table-thead > tr > th) {
color: #5580f7 !important; color: #5580f7 !important;

View File

@ -2579,7 +2579,7 @@
} }
:deep(.ant-pagination) { :deep(.ant-pagination) {
float: right; float: center;
} }
:deep(.ant-pagination) { :deep(.ant-pagination) {

View File

@ -35,18 +35,30 @@
<el-option label="兴趣点" value="1" /> <el-option label="兴趣点" value="1" />
<el-option label="点位" value="2" /> <el-option label="点位" value="2" />
</el-select> </el-select>
<el-input <el-autocomplete
v-if="addressType==1" v-if="addressType==1"
v-model="address"
:fetch-suggestions="querySearch"
clearable
class="input-with-select"
placeholder="请输入关键字"
@select="
(addressItem) => {
selectedAddress(addressItem, i)
}
"
/>
<!-- <el-input
v-model="address" v-model="address"
placeholder="请输入关键词" placeholder="请输入关键词"
class="input-with-select" class="input-with-select"
@keyup.enter="handleEnter" @keyup.enter="handleEnter"
> >
</el-input> </el-input> -->
<el-autocomplete <el-autocomplete
v-else-if="addressType==2" v-else-if="addressType==2"
v-model="address" v-model="address"
placeholder="请输入地址" placeholder="请输入关键字"
:fetch-suggestions=" :fetch-suggestions="
(queryString, cb) => { (queryString, cb) => {
searchAddressByKeyWord(queryString, cb, i) searchAddressByKeyWord(queryString, cb, i)
@ -108,7 +120,7 @@ import { ElMessage } from 'element-plus'
selectByLabelName, selectByLabelName,
selectByChannelName, selectByChannelName,
} from '@/api/videoSurveillance' } from '@/api/videoSurveillance'
import { getCameraByCondition,getListForPOI } from '@/api/file' import { getCameraByCondition,getListForPOI,CameraConditionPlaceType } 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';
@ -149,6 +161,7 @@ import { ElMessage } from 'element-plus'
type: 0, //012 type: 0, //012
}, },
pointAllData:[], pointAllData:[],
restaurants:[],
} }
}, },
components: { components: {
@ -205,10 +218,63 @@ import { ElMessage } from 'element-plus'
mybus.on('cameraDataOnMap', (data) => { mybus.on('cameraDataOnMap', (data) => {
this.addResourceTomap('videoMap', data) this.addResourceTomap('videoMap', data)
}) })
//
mybus.off('CameraConditionPlaceType')
mybus.on('CameraConditionPlaceType', (data) => {
this.queryCameraConditionPlace(data)
})
}, },
methods: { // methods: {
handleEnter(){ //
queryCameraConditionPlace(data) {
let params = {
placeTypeCode: data,
pageNum: "1",
pageSize: 30000,
}
CameraConditionPlaceType(params).then((res) => {
this.addResourceTomap('videoMap', res.data.data)
})
},
//
querySearch (queryString, cb) {
console.log('querySearch',queryString, cb,this.restaurants)
if(queryString){
getListForPOI({keywords:queryString}).then(res => {
if(res.data.data.rows[0]){
res.data.data.rows.map( val =>{
let arr = val.location.split(',')
val.location = {y:arr[1],x:arr[0]}
val.value = val.name
})
const results =res.data.data.rows
cb(results)
}else{
ElMessage({
showClose: true,
message: '未查询到兴趣点!',
type: 'warning',
})
}
})
}else{
cb([])
}
// const results = queryString
// ? this.restaurants.filter(createFilter(queryString))
// : this.restaurants
// call callback function to return suggestions
},
createFilter (queryString) {
return (restaurant) => {
return (
restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0
)
}
},
//
handleEnter(queryString, cb){
console.log('查询',this.address,this.addressType) console.log('查询',this.address,this.addressType)
if(this.address){ if(this.address){
getListForPOI({keywords:this.address}).then(res => { getListForPOI({keywords:this.address}).then(res => {
@ -233,6 +299,8 @@ import { ElMessage } from 'element-plus'
} }
}, },
selectedAddress(item, index) { selectedAddress(item, index) {
mybus.emit('clearChoose')
this.getCameraAllPage()
// //
console.log('跳转', item) console.log('跳转', item)
const latLng = { const latLng = {
@ -380,9 +448,9 @@ import { ElMessage } from 'element-plus'
// //
initAddressMatchService() { initAddressMatchService() {
this.L = window.L || {} this.L = window.L || {}
this.addressMatchService = L.supermap.addressMatchService( // this.addressMatchService = L.supermap.addressMatchService(
this.addressMatchUrl // this.addressMatchUrl
) // )
}, },
areaMode(){ areaMode(){
// //
@ -446,28 +514,32 @@ import { ElMessage } from 'element-plus'
}, },
// //
async searchAddressByKeyWord(queryString, cb, indexX) { async searchAddressByKeyWord(queryString, cb, indexX) {
this.disasterPointIndex = indexX console.log('querySearch',queryString, cb,this.restaurants)
/* const res = await bdPlaceSearch({ searchKey: queryString }); if(queryString){
if (res.data) { getCameraByCondition({
for(var i=0;i<res.data.length;i++){ pageNum: 1,
res.data[i].value = res.data[i].name; pageSize: 10,
} regionId: "70be8c5b664f4bcf869d82f2e8335051",
cb(res.data); type: "0",
}*/ name:queryString,
const match = function (obj) { }).then(res => {
//console.log('ooooo',obj); if(res.data.data[0]){
obj.result.map((item) => { res.data.data.map( val =>{
item.value = item.address val.location = {y:val.gpsY,x:val.gpsX}
val.value = val.channelName
})
const results = res.data.data
cb(results)
}else{
ElMessage({
showClose: true,
message: '未查询到点位!',
type: 'warning',
})
}
}) })
cb(obj.result) }else{
}
if (!queryString) {
cb([]) cb([])
} else {
var geoCodeParam = new SuperMap.GeoCodingParameter({
address: queryString,
})
this.addressMatchService.code(geoCodeParam, match)
} }
}, },
getCameraAllPage(page) { getCameraAllPage(page) {
@ -558,6 +630,7 @@ import { ElMessage } from 'element-plus'
} }
}, },
handleSelect(item) { handleSelect(item) {
console.log('1111',item)
this.hiMapFun.clearAllLayers() this.hiMapFun.clearAllLayers()
// //
let arr = item.detail.location.split(',') let arr = item.detail.location.split(',')