update code
parent
ac819db209
commit
dd383ce608
|
@ -57,6 +57,9 @@
|
||||||
height: 970px;
|
height: 970px;
|
||||||
background: url("../images/one/3x3.png") no-repeat center/100% 100%;
|
background: url("../images/one/3x3.png") no-repeat center/100% 100%;
|
||||||
}
|
}
|
||||||
|
.screen-one-3-3.no-title{
|
||||||
|
background: url("../images/one/3x32.png") no-repeat center/100% 100%;
|
||||||
|
}
|
||||||
.screen-one-3-4{
|
.screen-one-3-4{
|
||||||
height: 970px;
|
height: 970px;
|
||||||
background: url("../images/one/3x4.png") no-repeat center/100% 100%;
|
background: url("../images/one/3x4.png") no-repeat center/100% 100%;
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
|
@ -92,7 +92,12 @@ const getInfo=()=>{
|
||||||
method:'get'
|
method:'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const listPhotography=id=>{
|
||||||
|
return request({
|
||||||
|
url: `bgscreen/photography/listPhotography?projectId=${id}`,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export default{
|
export default{
|
||||||
findProjectByDept,
|
findProjectByDept,
|
||||||
|
@ -102,7 +107,8 @@ export default{
|
||||||
groupByCategory,
|
groupByCategory,
|
||||||
groupByLevel,
|
groupByLevel,
|
||||||
getProjectUser,
|
getProjectUser,
|
||||||
getInfo
|
getInfo,
|
||||||
|
listPhotography
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 806 B |
|
@ -21,7 +21,7 @@
|
||||||
@click="pageJump(61, '#/video')">视频监控</button>
|
@click="pageJump(61, '#/video')">视频监控</button>
|
||||||
<button type="button" :class="nav == 62 ? 'active' : ''" class="sub-btn"
|
<button type="button" :class="nav == 62 ? 'active' : ''" class="sub-btn"
|
||||||
@click="pageJump(62, '#/aiVideo')">AI识别监控</button>
|
@click="pageJump(62, '#/aiVideo')">AI识别监控</button>
|
||||||
<button v-if="1==2" type="button" :class="nav == 63 ? 'active' : ''" class="sub-btn"
|
<button v-if="1==1" type="button" :class="nav == 63 ? 'active' : ''" class="sub-btn"
|
||||||
@click="pageJump(63, '#/photography')">延时摄影</button>
|
@click="pageJump(63, '#/photography')">延时摄影</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue'
|
||||||
Vue.component('module-one-3-3', {
|
Vue.component('module-one-3-3', {
|
||||||
template:`
|
template:`
|
||||||
<div class="screen-module">
|
<div class="screen-module">
|
||||||
<div class="screen-one-3-3">
|
<div class="screen-one-3-3" :class="notitle?'no-title':''">
|
||||||
<div class="module-title"><span>{{label}}</span></div>
|
<div class="module-title"><span>{{label}}</span></div>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
|
@ -11,6 +11,9 @@ Vue.component('module-one-3-3', {
|
||||||
props: {
|
props: {
|
||||||
label:{
|
label:{
|
||||||
type:String
|
type:String
|
||||||
|
},
|
||||||
|
notitle:{
|
||||||
|
type:Boolean
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -277,9 +277,9 @@ export default {
|
||||||
icon: "rect",
|
icon: "rect",
|
||||||
orient: "horizontal",
|
orient: "horizontal",
|
||||||
left: '50%',
|
left: '50%',
|
||||||
top: '0',
|
top: '10%',
|
||||||
itemGap: 0,
|
itemGap: 20,
|
||||||
|
itemHeight:30,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
padding:[0,0,2,0],
|
padding:[0,0,2,0],
|
||||||
fontSize: 10,
|
fontSize: 10,
|
||||||
|
@ -611,7 +611,7 @@ export default {
|
||||||
roleType: 0
|
roleType: 0
|
||||||
};
|
};
|
||||||
this.$api.problemmodify.safetySummary(postData).then(d => {
|
this.$api.problemmodify.safetySummary(postData).then(d => {
|
||||||
this.dangersDatas = (d || []).map(it => {
|
let tmps= (d || []).map(it => {
|
||||||
return {
|
return {
|
||||||
text: it.problemArea,
|
text: it.problemArea,
|
||||||
prop: '0.0',
|
prop: '0.0',
|
||||||
|
@ -619,6 +619,8 @@ export default {
|
||||||
value: +it.roleType || 0
|
value: +it.roleType || 0
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
tmps.splice(6)
|
||||||
|
this.dangersDatas =tmps;
|
||||||
let sum = 0;
|
let sum = 0;
|
||||||
this.dangersDatas.forEach(it => {
|
this.dangersDatas.forEach(it => {
|
||||||
sum += it.value * 1;
|
sum += it.value * 1;
|
||||||
|
@ -633,7 +635,7 @@ export default {
|
||||||
};
|
};
|
||||||
this.qualityNavTitle = "质量隐患总数";
|
this.qualityNavTitle = "质量隐患总数";
|
||||||
this.$api.problemmodify.qualitySummary(postData).then(d => {
|
this.$api.problemmodify.qualitySummary(postData).then(d => {
|
||||||
this.dangersDatas = (d || []).map(it => {
|
let tmps = (d || []).map(it => {
|
||||||
return {
|
return {
|
||||||
text: it.problemArea,
|
text: it.problemArea,
|
||||||
prop: '0.0',
|
prop: '0.0',
|
||||||
|
@ -641,6 +643,8 @@ export default {
|
||||||
value: +it.roleType || 0
|
value: +it.roleType || 0
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
tmps.splice(6)
|
||||||
|
this.dangersDatas=tmps;
|
||||||
let sum = 0;
|
let sum = 0;
|
||||||
this.dangersDatas.forEach(it => {
|
this.dangersDatas.forEach(it => {
|
||||||
sum += it.value * 1;
|
sum += it.value * 1;
|
||||||
|
|
|
@ -0,0 +1,196 @@
|
||||||
|
<template>
|
||||||
|
<div class="prj-photography-main">
|
||||||
|
<div class="screen-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="6">
|
||||||
|
<module-one-3-1 label="延时摄影列表">
|
||||||
|
<div class="left-list scroll">
|
||||||
|
<el-collapse v-model="activeNames" >
|
||||||
|
<el-collapse-item v-for="(it, idx) in dataList" :key="idx" :name="it.videoDate">
|
||||||
|
<template slot="title">
|
||||||
|
<div style="position:relative;padding-left:20px;width: 100%;">
|
||||||
|
<span>{{ it.videoDate }}</span>
|
||||||
|
<i class="header-icon el-icon-camera-solid" @click.stop="playVideo(it)"
|
||||||
|
style="position: absolute;right: 30px;top: 10px;font-size: 30px;"></i>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<div class="img-items">
|
||||||
|
<div v-for="(item, index) in it.images" :key="index" class="img-item">
|
||||||
|
<el-image :src="item.url + '.min.jpg'" style="width: 90%;"
|
||||||
|
:preview-src-list="[item.url]" />
|
||||||
|
<div class="div-date">{{ item.date }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
</div>
|
||||||
|
</module-one-3-1>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="18" class="no-title">
|
||||||
|
<module-one-3-3 label="" :notitle="true">
|
||||||
|
<div class="right-title">
|
||||||
|
<span class="sp-title">{{info.videoDate }}</span>
|
||||||
|
</div>
|
||||||
|
<video controls v-if="info">
|
||||||
|
<source :src="info.videoUrl" type="video/mp4" />
|
||||||
|
您的浏览器不支持Video标签。
|
||||||
|
</video>
|
||||||
|
</module-one-3-3>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import '../components/module/module-one-3-1'
|
||||||
|
import '../components/module/module-one-3-3'
|
||||||
|
import debounce from 'lodash.debounce'
|
||||||
|
export default {
|
||||||
|
name: 'JhbigscreenPhotography',
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
prj: {},
|
||||||
|
prjs: [],
|
||||||
|
dataList: [],
|
||||||
|
activeNames: [],
|
||||||
|
info: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
this.$bus.$on("loadProjects", debounce(prjs => {
|
||||||
|
this.prjs = prjs;
|
||||||
|
}));
|
||||||
|
this.$bus.$on("projectChange", debounce(res => {
|
||||||
|
this.prj = res;
|
||||||
|
this.loadData();
|
||||||
|
}));
|
||||||
|
if (this.$root.hasInitHeader) {
|
||||||
|
this.initMe();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
playVideo(it){
|
||||||
|
this.info=it;
|
||||||
|
},
|
||||||
|
loadData() {
|
||||||
|
this.getProjectId(id => {
|
||||||
|
this.$api.project.listPhotography(id).then(d => {
|
||||||
|
this.dataList = (d.data || []).map(it => {
|
||||||
|
it.images = this.$tryToJson(it.imageUrl);
|
||||||
|
return it;
|
||||||
|
})
|
||||||
|
if (this.dataList.length > 0) {
|
||||||
|
this.activeNames = [this.dataList[0].videoDate];
|
||||||
|
this.info = this.dataList[0];
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
},
|
||||||
|
initMe() {
|
||||||
|
this.project = this.$root.project || {};
|
||||||
|
this.prjs = this.$root.projects || [];
|
||||||
|
this.loadData();
|
||||||
|
},
|
||||||
|
getProjectId(cb) {
|
||||||
|
let func = () => {
|
||||||
|
let prjId = this.prj?.id || 0;
|
||||||
|
if (prjId == 0) {
|
||||||
|
if (!this.prjs || this.prjs.length == 0) {
|
||||||
|
setTimeout(func, 100);
|
||||||
|
} else {
|
||||||
|
cb && cb(this.prjs[1].id);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cb && cb(prjId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.prj-photography-main {
|
||||||
|
.no-title {
|
||||||
|
/deep/ .screen-one-3-3 {
|
||||||
|
background-image: none;
|
||||||
|
border: solid 1px #409eff5c;
|
||||||
|
.module-title{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.right-title{
|
||||||
|
height: 200px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center
|
||||||
|
}
|
||||||
|
.sp-title{
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 72px;
|
||||||
|
padding: 0px 40px;
|
||||||
|
font-size: 40px;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url('../assets/images/bgphoto.png');
|
||||||
|
}
|
||||||
|
video{
|
||||||
|
width: 100%;
|
||||||
|
height: calc(100% - 201px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.left-list{
|
||||||
|
max-height: calc(100% - 40px);
|
||||||
|
overflow-y: auto;
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/deep/ .screen-one-3-1 {
|
||||||
|
.el-collapse {
|
||||||
|
border: none;
|
||||||
|
margin-top: 4px;
|
||||||
|
|
||||||
|
.el-collapse-item {}
|
||||||
|
|
||||||
|
.el-collapse-item__header {
|
||||||
|
background-color: #097fca2e;
|
||||||
|
color: #089fff;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-collapse-item__content {
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-collapse-item__wrap {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
.img-item {
|
||||||
|
margin-top: 8px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
color: #fff;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.div-date {
|
||||||
|
width: calc(90% - 24px);
|
||||||
|
text-align: left;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0px;
|
||||||
|
background-color: #ffffff38;
|
||||||
|
padding-left: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}</style>
|
|
@ -116,6 +116,7 @@ export default {
|
||||||
itemWidth:20,
|
itemWidth:20,
|
||||||
itemHeight:40,
|
itemHeight:40,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
|
color: "#c3dbfd",
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
rich: {
|
rich: {
|
||||||
name: {
|
name: {
|
||||||
|
|
|
@ -272,6 +272,7 @@ export default {
|
||||||
itemWidth:50,
|
itemWidth:50,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
|
color: "#c3dbfd",
|
||||||
rich: {
|
rich: {
|
||||||
name: {
|
name: {
|
||||||
color: "#c3dbfd",
|
color: "#c3dbfd",
|
||||||
|
|
|
@ -46,6 +46,11 @@ const routes = [
|
||||||
path: '/engin',
|
path: '/engin',
|
||||||
name: 'engin',
|
name: 'engin',
|
||||||
component: () => import(/* webpackChunkName: "video" */ '../pages/projectEngin.vue')
|
component: () => import(/* webpackChunkName: "video" */ '../pages/projectEngin.vue')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/photography',
|
||||||
|
name: 'photography',
|
||||||
|
component: () => import(/* webpackChunkName: "video" */ '../pages/photography.vue')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
|
|
Loading…
Reference in New Issue