坪山沙湖项目页面修改

This commit is contained in:
jxj_yjl 2023-06-13 10:20:18 +08:00
parent 05fbf52874
commit 2c25949a95
17 changed files with 399 additions and 48 deletions

View File

@ -12,7 +12,8 @@
// COMPANY = 'neimenggu'//内蒙古项目 // COMPANY = 'neimenggu'//内蒙古项目
// COMPANY = 'zjsj'//中建四局 // COMPANY = 'zjsj'//中建四局
// COMPANY = 'zjwj'//中建五局 // COMPANY = 'zjwj'//中建五局
COMPANY = 'sccr'//四川成润 // COMPANY = 'sccr'//四川成润
COMPANY = 'pssh'//坪山沙湖项目
@ -24,7 +25,7 @@ var PROJECT = {
} }
var PROJECT_TYPE = PROJECT.local_test var PROJECT_TYPE = PROJECT.online_zjsj
var headerShow = true; // 是否显示头部 var headerShow = true; // 是否显示头部
var tabsShow = true; // 是否显示tabs var tabsShow = true; // 是否显示tabs

View File

@ -124,3 +124,6 @@ export const getgetCo2RatioApi = data => get('/xmgl/doubleCarbon/getCo2Ratio',da
export const getMaterialTypeApi = data => get('/xmgl/materialType/list',data) export const getMaterialTypeApi = data => get('/xmgl/materialType/list',data)
export const getDetailsStatisticsApi = data => get('/xmgl/materialDetails/detailsStatistics',data) export const getDetailsStatisticsApi = data => get('/xmgl/materialDetails/detailsStatistics',data)
export const getDetailsStatisticsListApi = data => get('/xmgl/materialDetails/typeDeviationRatio',data) export const getDetailsStatisticsListApi = data => get('/xmgl/materialDetails/typeDeviationRatio',data)
//机器人管理
export const getrobotUrlApi = data => get('xmgl/project/getFmsMonitoringLargeScreenAccessUrl',data)

View File

@ -90,8 +90,9 @@ if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'http://118.121.198.147:23232/'//港投(成润)正式 // axios.defaults.baseURL = 'http://118.121.198.147:23232/'//港投(成润)正式
// axios.defaults.baseURL ='http://182.90.224.147:100/' //演示平台/ // axios.defaults.baseURL ='http://182.90.224.147:100/' //演示平台/
// axios.defaults.baseURL ='http://192.168.34.221:8070' //郭圣雄本地 // axios.defaults.baseURL ='http://192.168.34.221:8070' //郭圣雄本地
axios.defaults.baseURL ='http://192.168.34.221:30002' //郭圣雄本地 axios.defaults.baseURL ='http://192.168.34.221:30015' //郭圣雄本地
// axios.defaults.baseURL ='http://192.168.34.221:12350/' //金林湾本地 // axios.defaults.baseURL ='http://192.168.34.221:12350/' //金林湾本地
// axios.defaults.baseURL ='http://61.145.163.135:12345' //坪山沙湖
} else if (process.env.NODE_ENV == 'debug') { } else if (process.env.NODE_ENV == 'debug') {

View File

@ -46,7 +46,13 @@ export default {
path: 'govComp', path: 'govComp',
name: '政企联合', name: '政企联合',
component: () => import('@/views/projectAdmin/fourEngin/govComp') component: () => import('@/views/projectAdmin/fourEngin/govComp')
} },
//坪山沙湖项目
{
path: 'robot',
name: '机器人管理',
component: () => import('@/views/projectAdmin/fourEngin/robot')
},
] ]
} }

View File

@ -48,12 +48,12 @@ export default new Vuex.Store({
BASEURL: baseUrl BASEURL: baseUrl
? baseUrl ? baseUrl
: window.location.protocol + "//" + window.location.host + "/", //正式环境 : window.location.protocol + "//" + window.location.host + "/", //正式环境
UPLOADURL: // UPLOADURL:
window.location.protocol + // window.location.protocol +
"//" + // "//" +
window.location.host + // window.location.host +
"/upload/image", //正式环境 // "/upload/image", //正式环境
FILEURL: window.location.protocol + "//" + window.location.host + "/image/", //正式环境 // FILEURL: window.location.protocol + "//" + window.location.host + "/image/", //正式环境
//--------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------
// BASEURL: baseUrl // BASEURL: baseUrl
// ? baseUrl // ? baseUrl
@ -99,6 +99,8 @@ export default new Vuex.Store({
// FILEURL: 'http://182.90.224.147:15551/image/',//四川成润(内部线上) // FILEURL: 'http://182.90.224.147:15551/image/',//四川成润(内部线上)
// UPLOADURL: 'http://118.121.198.147:23232/upload/image',//四川成润(正式) // UPLOADURL: 'http://118.121.198.147:23232/upload/image',//四川成润(正式)
// FILEURL: 'http://118.121.198.147:23232/image/',//四川成润(正式) // FILEURL: 'http://118.121.198.147:23232/image/',//四川成润(正式)
UPLOADURL: 'http://192.168.34.221:30015/upload/image',//
FILEURL: 'http://192.168.34.221:30015/image/',//
ACCOUNTTYPE: [ ACCOUNTTYPE: [
"系统管理员", "系统管理员",

View File

@ -1,7 +1,16 @@
<template> <template>
<div class="cim"> <div class="cim">
<iframe <iframe
src="http://124.71.79.109/cim" v-if="COMPANY=='zjsj'"
src="http://124.71.79.109/cim?projectId=1"
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
<iframe
v-if="COMPANY=='pssh'"
src="http://124.71.79.109/cim?projectId=2"
frameborder="0" frameborder="0"
width="100%" width="100%"
height="100%" height="100%"
@ -17,7 +26,12 @@ import RightBottom from './rightBottom.vue'
import Center from './center.vue' import Center from './center.vue'
import LeftBottom from './leftBottom.vue' import LeftBottom from './leftBottom.vue'
export default { export default {
components: { LeftTop, RightTop, RightBottom,Center ,LeftBottom} components: { LeftTop, RightTop, RightBottom,Center ,LeftBottom},
data(){
return{
COMPANY:COMPANY,
}
}
} }
</script> </script>

View File

@ -2,7 +2,16 @@
<div class="container"> <div class="container">
<div class="image"> <div class="image">
<iframe <iframe
src="http://124.71.79.109/mainModel?type=0" v-if="COMPANY=='zjsj'"
src="http://124.71.79.109/mainModel?type=0&projectId=1"
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
<iframe
v-if="COMPANY=='pssh'"
src="http://124.71.79.109/mainModel?type=0&projectId=2"
frameborder="0" frameborder="0"
width="100%" width="100%"
height="100%" height="100%"
@ -22,6 +31,7 @@ export default {
components: { LeftThree }, components: { LeftThree },
data() { data() {
return { return {
COMPANY:COMPANY,
projectSn: "", projectSn: "",
// //
open: true, open: true,

View File

@ -8,7 +8,7 @@
<span class="value">{{ item.value }}</span> <span class="value">{{ item.value }}</span>
</div> --> </div> -->
<div class="list-item"> <div class="list-item">
<div>项目名称中建四局金融城东区ATO91429地块项目</div> <div>项目名称中建四局科创大厦项目</div>
<div>项目地址广州市金融城东区</div> <div>项目地址广州市金融城东区</div>
<div>占地面积6745</div> <div>占地面积6745</div>
<div>建筑面积104402</div> <div>建筑面积104402</div>

View File

@ -3,17 +3,19 @@
<div class="header"> <div class="header">
<div class="info"> <div class="info">
<div class="between"> <div class="between">
<div class="project">中建科创大厦项目</div> <div class="project" v-if="COMPANY=='zjsj'">中建科创大厦项目</div>
<div class="project" v-if="COMPANY=='pssh'">坪山沙湖应急隔离场所项目</div>
<div class="time-week"> <div class="time-week">
<div class="time">{{currentTime}}</div> <div class="time">{{currentTime}}</div>
<div class="week">{{weekday}}</div> <div class="week">{{weekday}}</div>
</div> </div>
<div class="weather-date"> <div class="weather-date">
<div class="weather">多云 32</div> <div class="weather">多云 32</div>
<div class="date">{{monthAndDay}}</div> <div class="date" style="width: 85px;">{{monthAndDay}}</div>
</div> </div>
</div> </div>
<div class="title">中建四局数字建造管控平台</div> <div class="title" v-if="COMPANY=='zjsj'">中建四局数字建造管控平台</div>
<div class="title" v-if="COMPANY=='pssh'">坪山沙湖保障性租赁住房项目</div>
<div class="between"> <div class="between">
<div class="company"></div> <div class="company"></div>
<div class="exit" @click="$router.push('/projectIndex')"></div> <div class="exit" @click="$router.push('/projectIndex')"></div>
@ -43,6 +45,7 @@ import { getWeatherDataApi } from "@/assets/js/api/environmentManage";
export default { export default {
data(){ data(){
return{ return{
COMPANY:COMPANY,
currentTime:"", currentTime:"",
monthAndDay:"", monthAndDay:"",
weekday:"", weekday:"",
@ -117,17 +120,17 @@ export default {
.between { .between {
box-sizing: border-box; box-sizing: border-box;
padding: 16px 30px 0; padding: 16px 30px 0;
width: 450px; width: 545px;
height: 100%; height: 100%;
text-align: center; text-align: center;
display: flex; display: flex;
align-items: center; align-items: center;
.project { .project {
font-size: 21px; font-size: 18px;
color: #66d4d9; color: #66d4d9;
} }
.time-week { .time-week {
margin: 0 45px; margin: 0 25px;
font-size: 12px; font-size: 12px;
.time { .time {
margin-bottom: 2px; margin-bottom: 2px;
@ -150,7 +153,7 @@ export default {
} }
} }
.company { .company {
margin-left: 50px; margin-left: 135px;
margin-right: auto; margin-right: auto;
width: 246px; width: 246px;
height: 28px; height: 28px;

View File

@ -16,7 +16,16 @@
</div> </div>
<div class="left2"> <div class="left2">
<iframe <iframe
src="http://124.71.79.109/mainModel?type=1" v-if="COMPANY=='zjsj'"
src="http://124.71.79.109/mainModel?type=0&projectId=1"
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
<iframe
v-if="COMPANY=='pssh'"
src="http://124.71.79.109/mainModel?type=0&projectId=2"
frameborder="0" frameborder="0"
width="100%" width="100%"
height="100%" height="100%"
@ -65,6 +74,7 @@ export default {
}, },
data() { data() {
return { return {
COMPANY:COMPANY,
projectData: { projectData: {
constructionStage: 10, constructionStage: 10,
}, },

View File

@ -48,30 +48,54 @@
<video <video
:src="$store.state.FILEURL + videoUrl" :src="$store.state.FILEURL + videoUrl"
style="width: 100%; height: 100%" style="width: 100%; height: 100%"
ref="vueMiniPlayer" id="video"
autoplay ref="videoElement"
controls controls
loop autoplay
muted
></video> ></video>
<!-- <video class="topInner" :src="$store.state.FILEURL + videoUrl"></video> -->
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import flvjs from 'flv.js'
import { getUavVideoApi } from '@/assets/js/api/zhongjianFourth' import { getUavVideoApi } from '@/assets/js/api/zhongjianFourth'
export default { export default {
data() { data() {
return { return {
vloading: false,
COMPANY: COMPANY,
shootingTime: '', // shootingTime: '', //
uavList: [], // uavList: [], //
videoUrl: '' // videoUrl: '', //
videoLodading: false,
} }
}, },
created() { created() {
this.credad() this.credad()
}, },
methods: { methods: {
playVideo(liveUrl) {
this.vloading = true;
if (flvjs.isSupported()) {
this.vloading = true;
let player = null;
let videoElement = document.getElementById("video");
player = flvjs.createPlayer({
type: "flv", //=> flv mp4
isLive: true, //=>
hasAudio: false, //=>
url: liveUrl, //=>
});
player.attachMediaElement(videoElement); //=> DOM
player.load();
player.play();
} else {
this.$message.error('不支持flv格式视频')
}
this.vloading = false;
},
// //
credad(val) { credad(val) {
let data = '' let data = ''
@ -83,13 +107,37 @@ export default {
shootingDate: data shootingDate: data
}).then((res) => { }).then((res) => {
this.uavList = res.result this.uavList = res.result
if (this.uavList[0].videoUrl != '') {
this.videoUrl = this.uavList[0].videoUrl this.videoUrl = this.uavList[0].videoUrl
} else if (this.uavList[0].liveUrl != '') {
this.playVideo(this.uavList[0].liveUrl)
}
}) })
}, },
// //
checkM(item) { checkM(item) {
console.log('item0,', item);
if (this.COMPANY == 'pssh') {
if (item.videoUrl != '') {
this.videoUrl = item.videoUrl
console.log('视频----', this.videoUrl);
} else if (item.liveUrl != '') {
this.$nextTick(() => {
this.playVideo(item.liveUrl)
})
console.log('直播视频----', this.liveUrl);
}
} else {
this.videoUrl = item.videoUrl this.videoUrl = item.videoUrl
} }
},
},
destroyed() {
player.attachMediaElement()
player.load();
player.play();
} }
} }
</script> </script>

View File

@ -0,0 +1,41 @@
<template>
<div class="robotBox">
<iframe
:src=url
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
</div>
</template>
<script>
import { getrobotUrlApi } from '@/assets/js/api/zhongjianFourth'
export default {
data(){
return{
url:'',
}
},
created() {
this.getUrl()
},
methods: {
getUrl() {
getrobotUrlApi({ projectSn: this.$store.state.projectSn }).then(res => {
this.url=res.result.url
console.log('机器人 this.url', this.url);
})
}
}
}
</script>
<style lang="less" scoped>
.robotBox {
width: 100%;
height: 100%;
}
</style>

View File

@ -0,0 +1,25 @@
<template>
<div class="psshBox">
<iframe
src="http://3d.keehang.com/w?s=vUBFbi"
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
</div>
</template>
<script>
export default {
}
</script>
<style lang="less" scoped>
.psshBox{
width: 100%;
height: 100%;
}
</style>

View File

@ -0,0 +1,24 @@
<template>
<div class="eagleEyeBox">
<iframe
src="http://3d.keehang.com/w?s=vUBFbi"
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
</div>
</template>
<script>
export default {
}
</script>
<style lang="less" scoped>
.eagleEyeBox{
width: 100%;
height: 100%;
}
</style>

View File

@ -1,6 +1,7 @@
<template> <template>
<!-- 安全管理 --> <!-- 安全管理 -->
<div class="security"> <div class="security1" v-if="COMPANY=='zjsj'">
<div class="left"> <div class="left">
<div class="center"><LeftCenter /></div> <div class="center"><LeftCenter /></div>
<div class="top"><LeftTop /></div> <div class="top"><LeftTop /></div>
@ -15,9 +16,47 @@
<div class="rightbottom"> <RightBottom /> </div> <div class="rightbottom"> <RightBottom /> </div>
</div> --> </div> -->
</div> </div>
<div class="security2" v-else>
<div
style="position: absolute;"
class="changeTab"
:class="[currentIndex == index ? `show${index}` : `changeTab${index}`]"
v-for="(item, index) in tabList"
:key="index"
@click="change(index)"
>
{{ item.name }}
</div>
<div class="left" v-show="currentIndex == 0">
<div class="center"><LeftCenter /></div>
<div class="top"><LeftTop /></div>
<div class="bottom"><LeftBottom /></div>
</div>
<div class="center" v-show="currentIndex == 0">
<div class="top"><CenterTopPsshTwp /></div>
<div class="bottom"><CenterBottom /></div>
</div>
<div class="safeBox" v-show="currentIndex == 1">
<EagleEye></EagleEye>
</div>
<!-- <div class="safeMarnge" v-show="currentIndex == 0"></div>
<div class="yyBox" v-if="currentIndex == 1">
<iframe
src="http://3d.keehang.com/w?s=vUBFbi"
frameborder="0"
width="100%"
height="100%"
id="iframe"
></iframe>
</div> -->
</div>
</template> </template>
<script> <script>
import EagleEye from './eagleEye.vue'
import CenterTopPsshTwp from './centerTopPsshTwo.vue'
import LeftTop from './leftTop.vue' import LeftTop from './leftTop.vue'
import LeftCenter from './leftCenter.vue' import LeftCenter from './leftCenter.vue'
import LeftBottom from './leftBottom.vue' import LeftBottom from './leftBottom.vue'
@ -26,14 +65,30 @@ import CenterBottom from './centerBottom.vue'
// import RightTop from './rightTop.vue' // import RightTop from './rightTop.vue'
// import RightBottom from './rightBottom.vue' // import RightBottom from './rightBottom.vue'
export default { export default {
components: { LeftTop, LeftBottom, CenterTop, CenterBottom,LeftCenter, components: {
LeftTop, LeftBottom, CenterTop, CenterBottom, LeftCenter,CenterTopPsshTwp,EagleEye
// RightTop,RightBottom // RightTop,RightBottom
},
data() {
return {
currentIndex: 0,
tabList: [
{ name: "安全管理" },
{ name: "鹰眼" },
],
COMPANY: COMPANY,
}
},
methods:{
change(val) {
this.currentIndex = val;
},
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.security { .security1 {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
@ -63,6 +118,7 @@ export default {
height: 35%; height: 35%;
} }
} }
// .right { // .right {
// width: 20%; // width: 20%;
// height: 100%; // height: 100%;
@ -75,5 +131,89 @@ export default {
// } // }
// } // }
} }
.security2 {
width: 100%;
height: 90%;
display: flex;
.left {
width: 20%;
height: 100%;
.top {
height: 40%;
}
.bottom {
height: 35%;
}
.center {
height: 25%;
}
}
.center {
margin-left: 3%;
width: calc(79% - 40px);
height: 100%;
.top {
margin-top: 3%;
height: 60%;
}
.bottom {
height: 35%;
}
}
.changeTab {
line-height: 38px;
text-align: center;
z-index: 99;
cursor: pointer;
position: absolute;
}
.changeTab0 {
position: absolute;
// margin-top: -38px;
left: 40%;
width: 212px;
height: 38px;
background-image: url(../assets/temp/tab.png);
background-size: 100%;
background-repeat: no-repeat;
}
.changeTab1 {
position: absolute;
// margin-top: -38px;
left: 50%;
width: 212px;
height: 38px;
background-image: url(../assets/temp/tab.png);
background-size: 100%;
background-repeat: no-repeat;
}
.show0 {
position: absolute;
// margin-top: -38px;
left: 40%;
width: 212px;
height: 38px;
z-index: 98;
background-image: url(../assets/temp/untab.png);
background-size: 100%;
background-repeat: no-repeat;
}
.show1 {
position: absolute;
// margin-top: -38px;
left:50%;
width: 212px;
z-index: 98;
height: 38px;
background-image: url(../assets/temp/untab.png);
background-size: 100%;
background-repeat: no-repeat;
}
}
.safeBox{
margin-top: 3%;
width: 100%;
height: 104%;
}
</style> </style>

View File

@ -24,7 +24,7 @@
</div> </div>
</div> </div>
<div class="centerBox"> <div class="centerBox">
<iframe src="/bim.html" frameborder="0" width="100%" height="100%" id="iframe" @load="load"></iframe> <iframe src="/" frameborder="0" width="100%" height="100%" id="iframe" @load="load"></iframe>
</div> </div>
<div class="rightBox"> <div class="rightBox">
<div class="rightTop"> <div class="rightTop">

View File

@ -99,9 +99,6 @@
<el-form-item <el-form-item
label="拍摄时间" label="拍摄时间"
prop="shootingTime" prop="shootingTime"
:rules="[
{ required: true, message: '请选择拍摄时间', trigger: 'blur' },
]"
> >
<el-date-picker <el-date-picker
v-model="workerInfo.shootingTime" v-model="workerInfo.shootingTime"
@ -112,11 +109,22 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="上传内容"
class="zdy-radio-group-3rows"
>
<el-radio-group v-model="workerInfo.videoType">
<el-radio
:label="item.value"
v-for="(item, index) in isCreateNewUser"
:key="index"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
v-show="workerInfo.videoType==2"
label="巡检视频" label="巡检视频"
prop="videoUrl" prop="videoUrl"
:rules="[
{ required: true, message: '请上传巡检视频', trigger: 'blur' },
]"
> >
<div class="videoUpload"> <div class="videoUpload">
<el-upload <el-upload
@ -158,6 +166,13 @@
</template> </template>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item
v-show="workerInfo.videoType==1"
label="直播地址"
prop="liveUrl"
>
<el-input placeholder="请输入地址" v-model="workerInfo.liveUrl"></el-input>
</el-form-item>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button <el-button
class="cancleBtn" class="cancleBtn"
@ -178,6 +193,7 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 视频播放 --> <!-- 视频播放 -->
<div class="video" style="position: absolute; top: 12%; left: 17%"> <div class="video" style="position: absolute; top: 12%; left: 17%">
<video <video
v-if="isShow || player" v-if="isShow || player"
@ -219,6 +235,11 @@ import {
export default { export default {
data() { data() {
return { return {
COMPANY:COMPANY,
isCreateNewUser: [
{ label: '直播地址', value: 1 },
{ label: '上传视频', value: 2 }
],
type: '', type: '',
workerList: [], // workerList: [], //
dialogVisible: false, dialogVisible: false,
@ -229,7 +250,9 @@ export default {
name: '', // name: '', //
shootingTime: '', // shootingTime: '', //
videoUrl: '', // videoUrl: '', //
projectSn: '' //sn projectSn: '',//sn
liveUrl:'',//
videoType:1,//12
}, // }, //
fileList: [], fileList: [],
player: '', player: '',