This commit is contained in:
guoyue 2022-09-26 17:25:30 +08:00
commit 479c2791f3
4 changed files with 1492 additions and 1106 deletions

View File

@ -208,7 +208,7 @@
<script> <script>
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
export default { export default {
data() { data () {
// let validatorImg = (rule, value, callback) => { // let validatorImg = (rule, value, callback) => {
// console.log(value, 11111111) // console.log(value, 11111111)
// // // //
@ -231,7 +231,7 @@ export default {
area: 0, area: 0,
capacity: '', capacity: '',
pic: '', pic: '',
id: '', id: ''
}, },
limit: 10, limit: 10,
page: 1, page: 1,
@ -242,11 +242,11 @@ export default {
rules: { rules: {
name: [ name: [
{ required: true, message: '请输入会议室名称', trigger: 'blur' }, { required: true, message: '请输入会议室名称', trigger: 'blur' },
{ min: 1, trigger: 'blur' }, { min: 1, trigger: 'blur' }
], ],
area: [ area: [
{ required: true, message: '请输入会议室面积', trigger: 'blur' }, { required: true, message: '请输入会议室面积', trigger: 'blur' },
{ min: 1, type: 'number', trigger: 'blur' }, { min: 1, message: '请输入数字', type: 'number', trigger: 'blur' }
], ],
description: [ description: [
{ required: true, message: '请填写描述内容', trigger: 'blur' }, { required: true, message: '请填写描述内容', trigger: 'blur' },
@ -254,22 +254,22 @@ export default {
min: 1, min: 1,
max: 500, max: 500,
message: '长度在 1 到 500 个字符', message: '长度在 1 到 500 个字符',
trigger: 'blur', trigger: 'blur'
}, }
], ]
}, },
formLabelWidth: '120px', formLabelWidth: '120px',
checkImgSuccess: true, checkImgSuccess: true,
dialogVisible: false, dialogVisible: false,
flge: '', flge: ''
} }
}, },
mounted() { mounted () {
this.queryData() this.queryData()
}, },
methods: { methods: {
// //
queryData() { queryData () {
this.$http this.$http
.get(`/meeting/page?limit=${this.limit}&page=${this.page}`) .get(`/meeting/page?limit=${this.limit}&page=${this.page}`)
.then(({ data: res }) => { .then(({ data: res }) => {
@ -278,31 +278,31 @@ export default {
}) })
}, },
// //
handleSizeChange(val) { handleSizeChange (val) {
this.limit = val this.limit = val
this.queryData() this.queryData()
}, },
handleCurrentChange(val) { handleCurrentChange (val) {
this.page = val this.page = val
this.queryData() this.queryData()
}, },
// //
addRooom() { addRooom () {
this.dialogFormVisible = true this.dialogFormVisible = true
this.flge = 'add' this.flge = 'add'
this.ruleForm = {} this.ruleForm = {}
this.fileList = [] this.fileList = []
}, },
handlePictureCardPreview(file) { handlePictureCardPreview (file) {
this.dialogImageUrl = file.url this.dialogImageUrl = file.url
this.dialogVisible = true this.dialogVisible = true
}, },
// //
beforeUpload(file, fileList) { beforeUpload (file, fileList) {
this.$message.error('最多只能上传一张图片!') this.$message.error('最多只能上传一张图片!')
}, },
// //
onSuccess(response, file, fileList) { onSuccess (response, file, fileList) {
const isLt2M = file.size / 1024 / 1024 < 100 const isLt2M = file.size / 1024 / 1024 < 100
if (!isLt2M) { if (!isLt2M) {
this.$message.error('上传图片大小不能超过100MB') this.$message.error('上传图片大小不能超过100MB')
@ -313,17 +313,17 @@ export default {
this.checkImgSuccess = true this.checkImgSuccess = true
} }
}, },
// //
onRemove(file, fileList) { onRemove (file, fileList) {
this.$nextTick(() => { this.$nextTick(() => {
if (fileList.length == 0) { if (fileList.length == 0) {
this.checkImgSuccess = false // this.checkImgSuccess = false //
// this.$refs.ruleForm.validate() //, // this.$refs.ruleForm.validate() //,
} }
}) })
}, },
// //
submitForm(formName, i) { submitForm (formName, i) {
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
if (i === 'add') { if (i === 'add') {
@ -337,9 +337,9 @@ export default {
}) })
} else if (i === 'edit') { } else if (i === 'edit') {
this.dialogFormVisible = false this.dialogFormVisible = false
this.$http.put(`/meeting`, this.ruleForm).then(({ data: res }) => { this.$http.put('/meeting', this.ruleForm).then(({ data: res }) => {
this.ruleForm = res.data this.ruleForm = res.data
let imgUrl = { name: res.data.name, url: res.data.pic } const imgUrl = { name: res.data.name, url: res.data.pic }
this.fileList.push(imgUrl) this.fileList.push(imgUrl)
}) })
} }
@ -350,7 +350,7 @@ export default {
}) })
}, },
// //
taskDetails(row) { taskDetails (row) {
this.ruleForm = {} this.ruleForm = {}
this.fileList = [] this.fileList = []
this.flge = 'look' this.flge = 'look'
@ -366,45 +366,45 @@ export default {
} }
}) })
}, },
// //
taskUpdate(row) { taskUpdate (row) {
this.dialogFormVisible = true this.dialogFormVisible = true
this.fileList = [] this.fileList = []
this.flge = 'edit' this.flge = 'edit'
this.ruleForm = row this.ruleForm = row
if (row.pic != null) { if (row.pic != null) {
let imgUrl = { name: row.name, url: row.pic } const imgUrl = { name: row.name, url: row.pic }
this.fileList.push(imgUrl) this.fileList.push(imgUrl)
} else { } else {
this.fileList = [] this.fileList = []
} }
}, },
// //
taskDelete(row) { taskDelete (row) {
this.$confirm('此操作将永久删除该会议室, 是否继续?', '提示', { this.$confirm('此操作将永久删除该会议室, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning'
}) })
.then(() => { .then(() => {
this.$http.put(`/meeting`, { delFlag: 1, id: row.id }).then(() => { this.$http.put('/meeting', { delFlag: 1, id: row.id }).then(() => {
this.queryData() this.queryData()
this.$message({ this.$message({
type: 'success', type: 'success',
message: '删除成功!', message: '删除成功!'
}) })
}) })
}) })
.catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '已取消删除', message: '已取消删除'
}) })
}) })
}, },
// //
outDialog() {}, outDialog () {}
}, }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

File diff suppressed because it is too large Load Diff

View File

@ -315,8 +315,7 @@
openVideo( openVideo(
record.channelCode || record.channelCode ||
record.channelId || record.channelId ||
record.channelCode.channelId, record.channelCode.channelId, record
record
) )
"> ">
预览 预览
@ -345,7 +344,9 @@
<a-button @click="goToApply(record)" type="link" :disabled="record.state != 1"> <a-button @click="goToApply(record)" type="link" :disabled="record.state != 1">
申请 申请
</a-button> </a-button>
<a-button @click="showWrj(record)" type="link">详情</a-button> <a-button @click="showWrj(record)" type="link">
详情
</a-button>
</template> </template>
</template> </template>
</a-table> </a-table>
@ -354,7 +355,7 @@
<a-modal wrapClassName="single-preview-modal" v-model:visible="visible" title="视频预览" :width="960" destroyOnClose> <a-modal wrapClassName="single-preview-modal" v-model:visible="visible" title="视频预览" :width="960" destroyOnClose>
<template #footer></template> <template #footer></template>
<div style="width: 100%; display: flex; justify-content: center"> <div style="width: 100%; display: flex; justify-content: center">
<div style="width: 100%; height: 100%; position: relative"> <div style="width: 100%; height: 100%;position:relative">
<!-- 预览视频--遮罩 --> <!-- 预览视频--遮罩 -->
<div class="video-cover" @click="videoShowMsg"></div> <div class="video-cover" @click="videoShowMsg"></div>
<vue3VideoPlay v-bind="options" /> <vue3VideoPlay v-bind="options" />
@ -388,7 +389,7 @@
destroyOnClose @cancel="videoClean"> destroyOnClose @cancel="videoClean">
<template #footer></template> <template #footer></template>
<div class="batch-video"> <div class="batch-video">
<div v-for="(item, index) in videoList" :key="item.id" style="width: 100%; height: 100%; position: relative"> <div v-for="(item, index) in videoList" :key="item.id" style="width: 100%; height: 100%;position:relative">
<!-- 批量预览视频--遮罩 --> <!-- 批量预览视频--遮罩 -->
<div class="batch-video-cover" @click="videoShowMsg(index)"></div> <div class="batch-video-cover" @click="videoShowMsg(index)"></div>
<p></p> <p></p>
@ -403,11 +404,11 @@
<div v-for="(db, key) in wrjData" :key="key"> <div v-for="(db, key) in wrjData" :key="key">
<template v-if="typeof db == 'object'"> <template v-if="typeof db == 'object'">
<div style=" <div style="
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
margin: 10px 0; margin: 10px 0;
text-align: center; text-align: center;
"> ">
{{ db.attrType || '--' }} {{ db.attrType || '--' }}
</div> </div>
<template v-if="db.attrValue"> <template v-if="db.attrValue">
@ -435,6 +436,7 @@ import {
nextTick, nextTick,
defineExpose, defineExpose,
computed, computed,
} from 'vue' } from 'vue'
import { import {
getCameraByParentId, getCameraByParentId,
@ -463,7 +465,7 @@ const current = ref(1)
const videoTotal = ref(0) const videoTotal = ref(0)
const router = useRouter() const router = useRouter()
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
const isXiHaiAn = whoShow1.value.itShowXiHaiAn || true const isXiHaiAn = whoShow1.value.itShowXiHaiAn;
const options = reactive({ const options = reactive({
width: '912px', // width: '912px', //
height: '513px', // height: '513px', //
@ -480,18 +482,16 @@ const options = reactive({
ligthOff: false, // ligthOff: false, //
volume: 0.3, // volume: 0.3, //
control: isXiHaiAn ? false : true, // control: isXiHaiAn ? false : true, //
controlBtns: isXiHaiAn controlBtns: isXiHaiAn ? [] : [
? [] 'audioTrack',
: [ 'quality',
'audioTrack', 'speedRate',
'quality', 'volume',
'speedRate', 'setting',
'volume', 'pip',
'setting', 'pageFullScreen',
'pip', 'fullScreen',
'pageFullScreen', ], //,
'fullScreen',
], //,
}) })
const videoList = ref([]) const videoList = ref([])
let visible = ref(false) // let visible = ref(false) //
@ -635,9 +635,7 @@ const selectedRowKeys = ref([])
const tabList = ref([ const tabList = ref([
{ {
title: '设施类型', title: '设施类型',
content: isXiHaiAn content: isXiHaiAn ? ['视频资源'] : ['视频资源', '云资源', '感知资源', '城市云脑会客厅'],
? ['视频资源']
: ['视频资源', '云资源', '感知资源', '城市云脑会客厅'],
}, },
]) ])
if (!isXiHaiAn) { if (!isXiHaiAn) {
@ -691,10 +689,13 @@ if (whoShow1.value.itShowXiHaiAn) {
tabList.value[0].content.push('单兵设备') tabList.value[0].content.push('单兵设备')
} }
//
const rowClickData = ref(null) const rowClickData = ref(null)
// // todo1
const openVideo = (id, record) => { const openVideo = (id, item) => {
rowClickData.value = record if(item) {
rowClickData.value = item;
}
console.log('打开视频', id) console.log('打开视频', id)
const param = { const param = {
key: id, key: id,
@ -1077,6 +1078,7 @@ const tabClick = (indexFather, name) => {
if (tabList.value[1]) { if (tabList.value[1]) {
tabList.value[1].title = '视频标签' tabList.value[1].title = '视频标签'
} }
} else if (name == '云资源') { } else if (name == '云资源') {
room.value = true room.value = true
tableHeight.value = 600 tableHeight.value = 600
@ -1189,10 +1191,10 @@ const tabClick = (indexFather, name) => {
wrjFlag.value = false wrjFlag.value = false
emits('add', 3) emits('add', 3)
} else if (name == '无人机') { } else if (name == '无人机') {
pagination.value.current = 1 pagination.value.current = 1;
getSoldierData(indexFather, name) getSoldierData(indexFather, name)
} else if (name == '单兵设备') { } else if (name == '单兵设备') {
pagination.value.current = 1 pagination.value.current = 1;
getSoldierData(indexFather, name) getSoldierData(indexFather, name)
} else if (name == '城市云脑会客厅') { } else if (name == '城市云脑会客厅') {
showMap.value = false showMap.value = false
@ -1245,7 +1247,7 @@ const wrjStateObj = {
0: '待审批', 0: '待审批',
1: '未申请', 1: '未申请',
2: '通过', 2: '通过',
3: '未通过', 3: '未通过'
} }
// //
const getSoldierData = (indexFather, name) => { const getSoldierData = (indexFather, name) => {
@ -1269,41 +1271,41 @@ const getSoldierData = (indexFather, name) => {
page: pagination.value.current, page: pagination.value.current,
limit: pagination.value.pageSize, limit: pagination.value.pageSize,
} }
getSoldierList(_params) getSoldierList(_params).then(res => {
.then((res) => { console.log('res---获取无人机、单兵设备--------->', res);
console.log('res---获取无人机、单兵设备--------->', res) if (res.data.code !== 0) {
if (res.data.code !== 0) { return message.error(res.data.msg)
return message.error(res.data.msg) }
} let { list = [], total = 0 } = res.data.data;
let { list = [], total = 0 } = res.data.data console.log('total------------>', total);
pagination.value.total = total
if (name == '无人机') {
list.map((wrj) => {
dataSource2.value.push({
wrjName: wrj.name,
wrjState: wrjStateObj[wrj.state],
url: wrj.url,
details: wrj.details,
...wrj,
})
})
}
if (name == '单兵设备') { pagination.value.total = total
list.map((db) => { if (name == '无人机') {
dataSource2.value.push({ list.map((wrj) => {
wrjName: db.name, dataSource2.value.push({
wrjState: wrjStateObj[db.state], wrjName: wrj.name,
details: db.details, wrjState: wrjStateObj[wrj.state],
type: db.type, url: wrj.url,
...db, details: wrj.details,
}) ...wrj
}) })
} })
}) }
.catch((err) => { if (name == '单兵设备') {
message.error(err) list.map((db) => {
}) dataSource2.value.push({
wrjName: db.name,
wrjState: wrjStateObj[db.state],
details: db.details,
type: db.type,
...db
})
})
}
}).catch(err => {
message.error(err)
})
} }
// //
const batchPreview = async function (page) { const batchPreview = async function (page) {
@ -1339,22 +1341,20 @@ const batchPreview = async function (page) {
ligthOff: false, // ligthOff: false, //
volume: 0.3, // volume: 0.3, //
control: isXiHaiAn ? false : true, // control: isXiHaiAn ? false : true, //
controlBtns: isXiHaiAn controlBtns: isXiHaiAn ? [] : [
? [] 'audioTrack',
: [ 'quality',
'audioTrack', 'speedRate',
'quality', 'volume',
'speedRate', 'setting',
'volume', 'pip',
'setting', 'pageFullScreen',
'pip', 'fullScreen',
'pageFullScreen', ], //,
'fullScreen',
], //,
}, },
} }
await getStreamByChannelCode(param).then((res) => { await getStreamByChannelCode(param).then((res) => {
// - //
// ob.options.src = 'http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8' // ob.options.src = 'http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8'
ob.options.src = res.data.data ob.options.src = res.data.data
console.log('监测ob的变化', ob) console.log('监测ob的变化', ob)
@ -1432,7 +1432,7 @@ const changePage = (page) => { }
const dept = reactive({}) const dept = reactive({})
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
if (infrastructure) { if (infrastructure) {
console.log('infrastructure------------>', infrastructure) console.log('infrastructure------------>', infrastructure);
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
dept.deptId = infrastructure.deptId || '' dept.deptId = infrastructure.deptId || ''
@ -1471,10 +1471,7 @@ const apply = () => {
// } // }
const wrjFlag = ref(false) const wrjFlag = ref(false)
const getCamera = (flag, str) => { const getCamera = (flag, str) => {
console.log( console.log('mapSearchParam.value.cameraName------------>', mapSearchParam.value.cameraName);
'mapSearchParam.value.cameraName------------>',
mapSearchParam.value.cameraName
)
if (flag) { if (flag) {
mapSearchParam.value.cameraName = str mapSearchParam.value.cameraName = str
console.log('赋值===============》', str, mapSearchParam.value) console.log('赋值===============》', str, mapSearchParam.value)
@ -1488,7 +1485,7 @@ const getCamera = (flag, str) => {
pagination.value.total = res.data.count pagination.value.total = res.data.count
}) })
} else { } else {
console.log('mapSearchParam------------>', mapSearchParam) console.log('mapSearchParam------------>', mapSearchParam);
let params = { let params = {
regionId: regionId:
mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051', mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051',
@ -1498,7 +1495,7 @@ const getCamera = (flag, str) => {
longitude: mapSearchParam.value.gpsX || '', longitude: mapSearchParam.value.gpsX || '',
latitude: mapSearchParam.value.gpsY || '', latitude: mapSearchParam.value.gpsY || '',
radius: mapSearchParam.value.radius || '', radius: mapSearchParam.value.radius || '',
name: mapSearchParam.value.cameraName, name: mapSearchParam.value.cameraName
} }
// todo- // todo-
// if ( // if (
@ -1577,21 +1574,21 @@ const columns2 = ref([
title: '名称', title: '名称',
dataIndex: 'wrjName', dataIndex: 'wrjName',
key: 'wrjName', key: 'wrjName',
align: 'center', align: 'center'
}, },
{ {
title: '申请状态', title: '申请状态',
dataIndex: 'wrjState', dataIndex: 'wrjState',
width: '60%', width: '60%',
key: 'wrjState', key: 'wrjState',
align: 'center', align: 'center'
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'operation', dataIndex: 'operation',
width: '20%', width: '20%',
key: 'wrjName', key: 'wrjName',
align: 'center', align: 'center'
}, },
]) ])
// const allClick = ref([]) // const allClick = ref([])
@ -1656,10 +1653,7 @@ const handleTableChange = (val) => {
mapSearchParam.value.pageNum = val.current mapSearchParam.value.pageNum = val.current
mapSearchParam.value.pageSize = val.pageSize mapSearchParam.value.pageSize = val.pageSize
let _arr = let _arr = clickList.value.filter(v => v.content.includes('单兵设备') || v.content.includes('无人机')) || []
clickList.value.filter(
(v) => v.content.includes('单兵设备') || v.content.includes('无人机')
) || []
let _tab_name = _arr[0] && _arr[0].content && _arr[0].content[0] let _tab_name = _arr[0] && _arr[0].content && _arr[0].content[0]
// //
if (_tab_name) { if (_tab_name) {
@ -1671,15 +1665,12 @@ const handleTableChange = (val) => {
// //
const videoShowMsg = (index) => { const videoShowMsg = (index) => {
let itemData = null let itemData = null;
if (index) { if (index) {
itemData = selectedList.value[index] itemData = selectedList.value[index]
} }
let msg = '请申请后在我的申请中预览视频!' let msg = '请申请后在我的申请中预览视频!'
if ( if ((itemData && itemData.status != 1) || (rowClickData.value && rowClickData.value.status != 1)) {
(itemData && itemData.status != 1) ||
(rowClickData.value && rowClickData.value.status != 1)
) {
msg = '当前视频离线不可预览!' msg = '当前视频离线不可预览!'
} else { } else {
msg = '请申请后在我的申请中预览视频!' msg = '请申请后在我的申请中预览视频!'
@ -2128,4 +2119,5 @@ video::-webkit-media-controls {
margin-top: 14px; margin-top: 14px;
cursor: pointer; cursor: pointer;
} }
</style> </style>

View File

@ -53,6 +53,10 @@
<span class="gengduo"></span> <span class="gengduo"></span>
</div> </div>
<div class="fixedmount"> <div class="fixedmount">
<div @click="applyResource()">
<p></p>
<p>资源申请</p>
</div>
<div @click="toView()"> <div @click="toView()">
<p></p> <p></p>
<p>需求申请</p> <p>需求申请</p>
@ -255,14 +259,24 @@
const toView = () => { const toView = () => {
window.open(newpage.href, '_blank') window.open(newpage.href, '_blank')
} }
// const toApply = () => {
// window.open(applypage.href, '_blank')
// }
getList() getList()
// dataList.value.map((item, index) => {
// dataList.value[index].tupian = tupain.value[index]
// console.log('item', item, dataList.value)
// })
function jumpPage() { function jumpPage() {
// store
// store.commit('WorkDynList', {
// selectCardsnum: '',
// })
console.log( console.log(
'选中===================>', '选中===================>',
store.getters['home/selectCardsnum'] store.getters['home/selectCardsnum']
) )
// router.push({ path: '/DetailsPageconetent' })
router.push({ router.push({
path: '/WorkDynList', path: '/WorkDynList',
}) })
@ -301,6 +315,15 @@
function handlecancelAbilitySquare() { function handlecancelAbilitySquare() {
abilitySquareFunctionData.value = '智能算法' abilitySquareFunctionData.value = '智能算法'
} }
const applyResource = () => {
console.log('点击===============》')
router.push({
path: '/DetailsPageconetent',
query: {
select: "基础设施",
},
})
}
</script> </script>
<style lang="less"> <style lang="less">
.shangjia-class { .shangjia-class {
@ -569,10 +592,10 @@
} }
.fixedmount { .fixedmount {
height: 1.5rem; height: 2.4rem;
display: flex; display: flex;
position: fixed; position: fixed;
bottom: 2.56rem; bottom: 1.56rem;
right: 1.9rem; right: 1.9rem;
z-index: 10; z-index: 10;
flex-direction: column; flex-direction: column;
@ -608,7 +631,8 @@
.fixedmount div:nth-child(1) p:nth-child(1) { .fixedmount div:nth-child(1) p:nth-child(1) {
height: 0.24rem; height: 0.24rem;
width: 0.24rem; width: 0.24rem;
background: url('~@/assets/home/shenqing.png') no-repeat; //background: url('~@/assets/home/shenqing.png') no-repeat;
background: url('~@/assets/newHome/banner-yy.png') no-repeat;
background-size: contain; background-size: contain;
background-position: center; background-position: center;
} }