This commit is contained in:
chengdandan 2023-04-17 10:11:06 +08:00
parent b37ecb0ec6
commit 80f5c37dc0
50 changed files with 1373 additions and 199 deletions

View File

@ -33,7 +33,9 @@ module.exports = {
// }, // },
'/api': { '/api': {
// target: 'http://10.6.0.26:81', // target: 'http://10.6.0.26:81',
target: 'http://175.27.191.156:11000/api/', // target: 'http://175.27.191.156:11000/api/',
target: 'http://175.27.191.156:8181/',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/api': '' '^/api': ''

5
package-lock.json generated
View File

@ -6548,6 +6548,11 @@
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
"integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==" "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
}, },
"js-md5": {
"version": "0.7.3",
"resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
"integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
},
"js-tokens": { "js-tokens": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-3.0.2.tgz", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-3.0.2.tgz",

View File

@ -17,6 +17,7 @@
"flv.js": "^1.6.2", "flv.js": "^1.6.2",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
"js-md5": "^0.7.3",
"jspdf": "^2.5.1", "jspdf": "^2.5.1",
"moment": "^2.29.4", "moment": "^2.29.4",
"mqtt": "^3.0.0", "mqtt": "^3.0.0",

BIN
src/assets/cscs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 KiB

BIN
src/assets/cscs1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
src/assets/cscs2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 34 KiB

BIN
src/assets/pic/top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -189,6 +189,10 @@ export default {
padding: this.yAxisPadding || [0, 40, -2, 6], padding: this.yAxisPadding || [0, 40, -2, 6],
fontSize: 12, fontSize: 12,
}, },
// max:200,
// min:0,
// splitNumber:200,
minInterval:1,
axisLine: { axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
@ -211,6 +215,7 @@ export default {
axisTick: { axisTick: {
show: false show: false
}, },
}, },
series: [ series: [
{ {

View File

@ -5,7 +5,7 @@
<swiper-slide v-for="(slide, key) in swiperList" :key="key"> <swiper-slide v-for="(slide, key) in swiperList" :key="key">
<div> <div>
<div class="item_container"> <div class="item_container">
<img :src="slide.apparatusLogo" alt="" class="apparatus_logo"> <img :src="slide.picture" alt="" class="apparatus_logo">
</div> </div>
</div> </div>
</swiper-slide> </swiper-slide>
@ -21,6 +21,14 @@ import { Swiper, SwiperSlide } from "vue-awesome-swiper";
import "swiper/css/swiper.css"; import "swiper/css/swiper.css";
export default { export default {
props: {
//
peopleList:{
type:Array,
required: true
}
},
components: { components: {
Swiper, Swiper,
SwiperSlide, SwiperSlide,
@ -29,42 +37,43 @@ export default {
const _self =this const _self =this
return { return {
swiperList: [ swiperList: [
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪1", // "apparatusName": "1",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪2", // "apparatusName": "2",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪3", // "apparatusName": "3",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪4", // "apparatusName": "4",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪5", // "apparatusName": "5",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪6", // "apparatusName": "6",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
{ // {
"apparatusLogo": require("@/assets/pic/23.png"), // "apparatusLogo": require("@/assets/pic/23.png"),
"apparatusName": "激光云高仪7", // "apparatusName": "7",
"apparatusImg": require("@/assets/pic/23.png"), // "apparatusImg": require("@/assets/pic/23.png"),
}, // },
], ],
peopleList:[],
// //
swiperOption: { swiperOption: {
initialSlide: 0, initialSlide: 0,
@ -125,6 +134,27 @@ export default {
// Some Swiper option/callback... // Some Swiper option/callback...
}, },
}; };
},
watch: {
// Echarts
peopleList: {
deep: true,
handler (val) {
this.$nextTick(() => {
console.log("val",val)
// this.peopleList = val
// console.log("peopleList",this.peopleList)
if(val.length!=0){
this.swiperList = val
console.log("swiperList",this.swiperList)
}
})
}
}
},
mounted() {
}, },
methods: { methods: {
slideChange() { slideChange() {

View File

@ -101,12 +101,20 @@ export default {
return { return {
tooltip: { tooltip: {
trigger: "axis", trigger: "axis",
axisPointer: { backgroundColor:'#1A5856',
type: "shadow", // axisPointer: {
label: { // type: "shadow",
show: false, // label: {
// show: false,
// },
// },
axisPointer: {
lineStyle: {
color: "rgba(227, 242, 252, 0.39)",
width: 30,
type: "solid",
}, },
}, },
}, },
legend: [ legend: [

View File

@ -102,7 +102,7 @@ export default {
width: 120, width: 120,
height: 120, height: 120,
}, },
left: "161", // left: "153", //
top: "97", // top: "97", //
}, },
], ],
@ -111,7 +111,7 @@ export default {
{ {
type: "pie", type: "pie",
radius: this.picIsShow ? ["53%", "65%"] : ["60%", "60%"], radius: this.picIsShow ? ["53%", "65%"] : ["60%", "60%"],
center: ["50%", "157"], center: ["48%", "157"],
color: this.colorList, color: this.colorList,
hoverAnimation: true, /// / hoverAnimation: true, /// /
label: { label: {
@ -140,7 +140,7 @@ export default {
labelLine: { labelLine: {
normal: { normal: {
length: 5, length: 5,
length2: 10, length2: 7,
show: false, show: false,
}, },
}, },

View File

@ -71,17 +71,19 @@ export default {
}, },
methods: { methods: {
initCharts(dataList) { initCharts(dataList) {
console.log("dataList",dataList)
let myChart = this.$echarts.init(this.$refs.chart) let myChart = this.$echarts.init(this.$refs.chart)
var val1data2 = [] var val1data2 = []
val1data2 = Object.keys(dataList).map((item,index)=>{ val1data2 = Object.keys(dataList).map((item,index)=>{
return {name:dataList[item].post,value:dataList[item].percent} return {name:dataList[item].post,value:dataList[item].number}
}) })
var arr = ['middleLost', 0.6, val1data2, '今日完成进度'] var arr = ['middleLost', 0.6, val1data2, '今日完成进度']
// //
myChart.setOption({ myChart.setOption({
tooltip:{ tooltip:{
trigger:'item', trigger:'item',
formatter: '{b}{c}%', formatter: '{b}{c}',
}, },
graphic: { graphic: {
elements: [{ elements: [{
@ -105,7 +107,7 @@ export default {
hoverAnimation: true, /// / hoverAnimation: true, /// /
label: { label: {
show: true, show: true,
formatter: '{b|{b}}:{c|{c}}%', formatter: '{b|{b}}:{c|{c}}',
padding:[0,0,0,0], padding:[0,0,0,0],
itemStyle: { // itemStyle: { //
normal: { normal: {

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="width:100%;height:100%;position: relative;"> <div style="width:100%;height:100%;position: relative;">
<div class="allTotle"> <div class="allTotle">
<div>项目人数</div> <div>项目人数</div>
<span>{{totalPer}}</span> <span>{{totalPer}}</span>
<span></span> <span></span>
</div> </div>
@ -348,7 +348,8 @@ export default {
.js2Child { .js2Child {
text-align: center; text-align: center;
width: 40px; // width: 40px;
width: 55px;
line-height: 20px; line-height: 20px;
height: 19px; height: 19px;
margin-left: 4px; margin-left: 4px;
@ -366,6 +367,7 @@ export default {
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
color: #96FFFD; color: #96FFFD;
float: right;
} }
} }
} }

View File

@ -13,7 +13,7 @@ import mqttConfig from './utils/mqttConfig';
// main.js // main.js
import VScaleScreen from 'v-scale-screen' import VScaleScreen from 'v-scale-screen'
import axios from 'axios' import axios from 'axios'
Vue.prototype.$axios = axios Vue.prototype.$axios = axios
Vue.use(VScaleScreen) Vue.use(VScaleScreen)

View File

@ -1,16 +1,16 @@
import mqtt from "mqtt"; import mqtt from "mqtt";
import Vue from 'vue' import Vue from 'vue'
var vm = new Vue(); var vm = new Vue();
// function randomName(len) { function randomName(len) {
// var len = len || 23; var len = len || 23;
// var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
// var maxPos = chars.length; var maxPos = chars.length;
// var str = ''; var str = '';
// for (let i = 0; i < len; i++) { for (let i = 0; i < len; i++) {
// str += chars.charAt(Math.floor(Math.random() * maxPos)); str += chars.charAt(Math.floor(Math.random() * maxPos));
// } }
// return new Date().getTime() + str; return new Date().getTime() + str;
// } }
class mqttHandle { class mqttHandle {
constructor() { constructor() {
this.connect = { this.connect = {
@ -24,8 +24,8 @@ class mqttHandle {
host:'175.27.191.156', host:'175.27.191.156',
port: '10083', port: '10083',
// 认证信息 // 认证信息
clientId:'mqttjs_23dda38f34', // clientId:'mqttjs_23dda38f34',
// clientId: newName, clientId: randomName(16),
username: 'site', username: 'site',
password: 'site', password: 'site',
} }

View File

@ -70,7 +70,13 @@ service.interceptors.response.use(
} }
fr.readAsText(resultBlob) fr.readAsText(resultBlob)
} }
} else if ((res.code && res.code !== 0) || res.error) { } else if (response.status === 400) {
      SingleMessage({
        message: '请输入正确的登录信息!!!',
        type: 'warning',
        duration: 3 * 1000
      })
}else if ((res.code && res.code !== 0) || res.error) {
if (res.msg) { if (res.msg) {
errorMessage(res.msg) errorMessage(res.msg)
} }

View File

@ -399,7 +399,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -63,7 +63,8 @@
<VideoViewingComponents <VideoViewingComponents
v-if="videoViewingShow" v-if="videoViewingShow"
:videoName="videoName" :videoName="videoName"
:videoId="videoId" :videoId="videoId"
:thumbnail="thumbnail"
/> />
<!-- 进度管理 --> <!-- 进度管理 -->
<ProgressComponents v-if="progressShow" ref="progress"/> <ProgressComponents v-if="progressShow" ref="progress"/>
@ -77,8 +78,17 @@
<!-- 左侧模块2 --> <!-- 左侧模块2 -->
</div> </div>
<div class="container" :style="{ right: !type ? '-10px' : '0' }"> <div class="container" :style="{ right: !type ? '-10px' : '0' }" v-if="openTrue" v-clickoutside="handleClickOutside">
<div class="box" id="box" :style="{ width: !type ? '267px' : '0' }"> <div class="box" id="box" :style="{ width: !type ? '267px' : '0' }">
<div
v-if="!type"
:class="[menuType === 0 ? 'childBoxChoose' : 'childBox']"
@click="childBoxClick(0)"
>
<span class="icon1"></span>
<span>首页</span>
<span class="picture1"></span>
</div>
<div <div
v-if="!type" v-if="!type"
:class="[menuType === 1 ? 'childBoxChoose' : 'childBox']" :class="[menuType === 1 ? 'childBoxChoose' : 'childBox']"
@ -124,6 +134,22 @@
@click="switchDiv()" @click="switchDiv()"
></div> ></div>
</div> </div>
<div class="gttBox" v-if="dialogShow">
<div class="closeIcon" @click="dialogShow = false">
</div>
<div class="titName" style="width:60%;">
<span></span>
<span>视频监控</span>
</div>
<div class="tabGtBox">
<!-- <TabGtt :tableData="tableData" ></TabGtt> -->
<iframe ref="iframe" id="iframeid" :src="src" frameborder="0" class="iframe" scrolling="auto" width="100%"
height="100%" >
</iframe>
</div>
</div>
</Resize> </Resize>
</template> </template>
@ -140,9 +166,12 @@ import mqtt from "mqtt"; // mqtt协议
import Swiper from "@/components/common/carousel"; import Swiper from "@/components/common/carousel";
import Resize from "../utils/Resize.vue"; import Resize from "../utils/Resize.vue";
import axios from "axios"; import axios from "axios";
import Video from "./video";
import {getWeatherData} from "@/api/api"; import {getWeatherData} from "@/api/api";
import Clickoutside from 'element-ui/src/utils/clickoutside'
export default { export default {
name: "report", name: "report",
directives: { Clickoutside },
components: { components: {
mdScreenPie, mdScreenPie,
BarChart, BarChart,
@ -155,12 +184,14 @@ export default {
VideoSurveillanceComponents, VideoSurveillanceComponents,
VideoViewingComponents, VideoViewingComponents,
Resize, Resize,
Video
}, },
data() { data() {
return { return {
weatherImg: require("@/assets/pic/sun.png"), weatherImg: require("@/assets/pic/sun.png"),
videoName: "", // videoName: "", //
videoId: "", //Id videoId: "", //Id
thumbnail:'',
// //
indexShow: true, indexShow: true,
// //
@ -173,6 +204,7 @@ export default {
progressShow: false, progressShow: false,
// //
managementShow: false, managementShow: false,
openTrue:true,
// //
titLeftshow: false, titLeftshow: false,
japIndex: "人员管理", japIndex: "人员管理",
@ -184,6 +216,7 @@ export default {
weatherItem: {}, weatherItem: {},
tienum: "", tienum: "",
showType: true, showType: true,
dialogShow: false,
boxList: [ boxList: [
{ {
c1: "开工", c1: "开工",
@ -389,13 +422,14 @@ export default {
], ],
vdaH: 0, vdaH: 0,
type: false, type: false,
menuType: null, menuType: 0,
numberList: [5, 5], numberList: [5, 5],
boxNone: true, boxNone: true,
topicSends:[], topicSends:[],
environmentData:[], environmentData:[],
closeIndexShow:true, closeIndexShow:true,
exitFullShow:false exitFullShow:false,
src:'../static/flv/videoIndex.html'
}; };
}, },
created() { created() {
@ -409,21 +443,26 @@ export default {
window.openBig = this.openBig; window.openBig = this.openBig;
window.closeBig = this.closeBig; window.closeBig = this.closeBig;
window.createMqtt = this.createMqtt; window.createMqtt = this.createMqtt;
window.gantDialog = this.gantDialog;
}, },
methods: { methods: {
//
gantDialog() {
this.dialogShow = true
},
createMqtt() { createMqtt() {
this.topicSends = ["/SC/pub/uwb", "/SC/pub/env"]; this.topicSends = ["/SC/pub/uwb", "/SC/pub/env"];
window.PubScribe(this.topicSends, this.realInfo); window.PubScribe(this.topicSends, this.realInfo);
}, },
/** 实时数据分类 */ /** 实时数据分类 */
realInfo(topic, message) { realInfo(topic, message) {
let time = new Date(); // let time = new Date();
// console.log("topic",topic) // console.log("topic",topic)
switch (topic) { switch (topic) {
// //
case "/SC/pub/uwb": case "/SC/pub/uwb":
try { try {
// console.log("message", message) console.log("message", message)
const utf8decoder = new TextDecoder() const utf8decoder = new TextDecoder()
const u8arr = new Uint8Array(message) const u8arr = new Uint8Array(message)
const temp = utf8decoder.decode(u8arr) // const temp = utf8decoder.decode(u8arr) //
@ -435,7 +474,7 @@ export default {
break; break;
case "/SC/pub/env": case "/SC/pub/env":
try { try {
// console.log("message", message) console.log("环境message", message)
const utf8decoder = new TextDecoder() const utf8decoder = new TextDecoder()
const u8arr = new Uint8Array(message) const u8arr = new Uint8Array(message)
const temp = utf8decoder.decode(u8arr) // const temp = utf8decoder.decode(u8arr) //
@ -615,6 +654,7 @@ export default {
this.titLeftshow = true; this.titLeftshow = true;
this.videoName = msg.videoName; this.videoName = msg.videoName;
this.videoId = msg.videoId; this.videoId = msg.videoId;
this.thumbnail = msg.thumbnail;
} }
}, },
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
@ -628,13 +668,29 @@ export default {
openBig() { openBig() {
this.exitFullShow = true this.exitFullShow = true
this.closeIndexShow = false this.closeIndexShow = false
this.childBoxClick(this.menuType)
document.getElementById("unityModule").contentWindow.fullScreen(); document.getElementById("unityModule").contentWindow.fullScreen();
this.openTrue =false
}, },
// //
closeBig() { closeBig() {
this.exitFullShow = false this.exitFullShow = false
this.closeIndexShow = true this.closeIndexShow = true
this.openTrue =true
this.childBoxClick(this.menuType)
document.getElementById("unityModule").contentWindow.exitFullScreen(); document.getElementById("unityModule").contentWindow.exitFullScreen();
},
handleClickOutside(){
console.log("cscscs")
// this.exitFullShow = false
// this.closeIndexShow = true
// if(this.menuType!=2){
// console.log("this.menuType",this.menuType)
// this.childBoxClick(this.menuType)
// }
this.titLeftshow = true;
this.type = true;
}, },
// //
childBoxClick(val) { childBoxClick(val) {
@ -703,6 +759,22 @@ export default {
// //
this.$refs.switchBtn.style.display = "block"; this.$refs.switchBtn.style.display = "block";
}, 800); }, 800);
}else if (val === 0) {
//
// this.$router.push('/personnel')
this.japIndex = "首页";
this.indexShow = true;
this.personnelShow = false;
this.videoSurveillanceShow = false;
this.videoViewingShow = false;
this.managementShow = false;
this.progressShow = false;
this.titLeftshow = false;
this.type = true;
setTimeout(() => {
//
this.$refs.switchBtn.style.display = "block";
}, 800);
} }
}, },
switchDiv() { switchDiv() {
@ -885,7 +957,45 @@ export default {
animation-play-state: paused; animation-play-state: paused;
} }
} }
.gttBox {
// width: 863px;
// height: 60%;
width: 562px;
height: 34%;
position: absolute;
z-index: 999;
top: 582px;
// left: 50%;
right: -14%;
background: url("~@/assets/pic/ggt.png") no-repeat;
background-size: 100% 100%;
transform: translate(-50%, -50%);
@media only screen and (max-height: 1000px) {
// top: 522px;
top: 27%;
}
.closeIcon {
width: 16px;
background: url("~@/assets/pic/close.png") no-repeat;
background-size: 100% 100%;
height: 16px;
color: #90F2EB;
float: right;
font-size: 50px;
cursor: pointer;
margin-right: 23px;
margin-top: 24px;
}
}
.tabGtBox {
position: absolute;
top: 50px;
width: 90%;
height: 80%;
padding: 0 40px;
}
.smallBox { .smallBox {
width: 105px; width: 105px;
height: 28px; height: 28px;
@ -1298,7 +1408,7 @@ export default {
span:nth-child(2) { span:nth-child(2) {
display: inline-block; display: inline-block;
position: absolute; position: absolute;
right: 85px; right: 92px;
width: 18px; width: 18px;
height: 18px; height: 18px;
// background: url("~@/assets/pic/sun.png") no-repeat; // background: url("~@/assets/pic/sun.png") no-repeat;
@ -1324,7 +1434,7 @@ export default {
.header .title { .header .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
position: absolute; position: absolute;
} }

View File

@ -10,15 +10,17 @@
</div> </div>
<div class="titRight"> <div class="titRight">
<span>{{ dateNew }}&nbsp;{{ getWeek }}&nbsp;{{ time }}</span> <span>{{ dateNew }}&nbsp;{{ getWeek }}&nbsp;{{ time }}</span>
<span <span
><img ><img
:src="weatherImg" :src="weatherImg"
alt="" alt=""
style="width: 100%; height: 100%" style="width: 100%; height: 100%"
/></span> /></span>
<span <span
>&nbsp;&nbsp;天气&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span >&nbsp;&nbsp;天气&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span
> >
<span <span
>{{ weatherItem.weather }} &nbsp;{{ >{{ weatherItem.weather }} &nbsp;{{
weatherItem.temperature weatherItem.temperature
@ -30,13 +32,13 @@
<div class="ms-login"> <div class="ms-login">
<!-- <div class="ms-title"></div> --> <!-- <div class="ms-title"></div> -->
<div class="content"> <div class="content">
<div class="welcome">欢迎登录</div> <div class="welcome"></div>
<el-form :model="param" :rules="rules" ref="login" label-width="100px" label-position="top" class="ms-content"> <el-form :model="param" :rules="rules" ref="login" label-width="100px" label-position="top" class="ms-content">
<el-form-item prop="tenantId" label="" style="margin-bottom:35px"> <!-- <el-form-item prop="tenantId" label="" style="margin-bottom:35px">
<el-input v-model="param.tenantId" placeholder="请输入您的租户id"> <el-input v-model="param.tenantId" placeholder="请输入您的租户id">
<el-button slot="prepend" icon="el-icon-user"></el-button> <el-button slot="prepend" icon="el-icon-user"></el-button>
</el-input> </el-input>
</el-form-item> </el-form-item> -->
<el-form-item prop="username" label="" style="margin-bottom:35px"> <el-form-item prop="username" label="" style="margin-bottom:35px">
<el-input v-model="param.username" placeholder="请输入您的账号"> <el-input v-model="param.username" placeholder="请输入您的账号">
<el-button slot="prepend" icon="el-icon-user"></el-button> <el-button slot="prepend" icon="el-icon-user"></el-button>
@ -51,8 +53,8 @@
<el-checkbox v-model="checked">保存登录</el-checkbox> <el-checkbox v-model="checked">保存登录</el-checkbox>
</div> </div>
</el-form> </el-form>
<div class="login-btn"> <div class="login-btn" >
<el-button type="primary" @click="submitForm()">登录</el-button> <el-button type="primary" @click="submitForm()"></el-button>
</div> </div>
</div> </div>
</div> </div>
@ -66,13 +68,15 @@ import mdScreenPie from "@/components/common/mdScreenPie";
import Swiper from "@/components/common/carousel"; import Swiper from "@/components/common/carousel";
import Resize from '../utils/Resize.vue' import Resize from '../utils/Resize.vue'
import {getToken,getWeatherData} from "@/api/api"; import {getToken,getWeatherData} from "@/api/api";
import md5 from 'js-md5';
export default { export default {
name: "report", name: "report",
components: { components: {
mdScreenPie, mdScreenPie,
BarChart, BarChart,
Swiper, Swiper,
Resize Resize,
md5
}, },
data() { data() {
return { return {
@ -86,16 +90,17 @@ export default {
temperature: "12", temperature: "12",
weather: "晴", weather: "晴",
weatherItem: {}, weatherItem: {},
param: { // param: {
username: 'dlgc_pic', // username: 'dlgc_pic',
password: 'e19d5cd5af0378da05f63f891c7467af', // // password: 'e19d5cd5af0378da05f63f891c7467af',
tenantId:'748495' // password: 'abcd1234',
}, // tenantId:'748495'
// param: { // },
// username: '', param: {
// password: '', username: '',
// tenantId:'' password: '',
// }, tenantId:'748495'
},
checked: false, checked: false,
rules: { rules: {
tenantId: [{ required: true, message: '账号Id不能为空', trigger: 'blur' }], tenantId: [{ required: true, message: '账号Id不能为空', trigger: 'blur' }],
@ -139,10 +144,12 @@ export default {
scope:'all', scope:'all',
tenantId:this.param.tenantId, tenantId:this.param.tenantId,
username:this.param.username, username:this.param.username,
password:this.param.password, password:md5(this.param.password),
// password:this.param.password,
type:"account" type:"account"
} }
getToken(data).then((res)=>{ getToken(data).then((res)=>{
console.log("error_description",res)
if (res.status == 200) { if (res.status == 200) {
this.$message.success('登录成功'); this.$message.success('登录成功');
// localStorage.setItem('ms_username', this.param.username); // localStorage.setItem('ms_username', this.param.username);
@ -156,7 +163,12 @@ export default {
JSON.stringify(res.data.user_name) JSON.stringify(res.data.user_name)
); );
}else{ }else{
this.$message.error('请输入正确的登录信息!!!'); console.log("error_description")
// this.$message.error('');
this.$message({
message: res.data.error_description,
type: 'warning'
});
} }
}) })
@ -335,7 +347,7 @@ getWeather () {
.bgPicture { .bgPicture {
width: 100%; width: 100%;
background: url('../assets/loginImg/loginBg.png') no-repeat; background: url('../assets/loginImg/loginBg1.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -381,7 +393,7 @@ getWeather () {
span:nth-child(2) { span:nth-child(2) {
display: inline-block; display: inline-block;
position: absolute; position: absolute;
right: 80px; right: 92px;
width: 17.5px; width: 17.5px;
height: 18px; height: 18px;
// background: url("~@/assets/pic/sun.png") no-repeat; // background: url("~@/assets/pic/sun.png") no-repeat;
@ -394,7 +406,7 @@ getWeather () {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -622,6 +634,7 @@ getWeather () {
/deep/ .el-table .success-row { /deep/ .el-table .success-row {
background: transparent; background: transparent;
} }
</style> </style>
<style>.el-carousel__indicators--outside { <style>.el-carousel__indicators--outside {
display: none; display: none;
@ -642,8 +655,9 @@ getWeather () {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 20px; border-radius: 20px;
background: rgb(9,41,43); // background: rgb(9,41,43);
border: none; background: transparent;
border: 1px solid rgb(0,139,146);
.el-input-group__prepend { .el-input-group__prepend {
background: transparent; background: transparent;
border: none; border: none;
@ -651,10 +665,18 @@ getWeather () {
.el-input__inner { .el-input__inner {
background: transparent; background: transparent;
border: none; border: none;
}
.el-input__inner::placeholder {
color: #7b9596;
}
.el-input__inner:focus::placeholder{
opacity: 0;
} }
} }
/deep/ .el-checkbox{ /deep/ .el-checkbox{
color: #fff; color: #7b9596;
} }
/deep/ .el-checkbox__inner{ /deep/ .el-checkbox__inner{
background: transparent; background: transparent;
@ -684,7 +706,7 @@ getWeather () {
width: 100%; width: 100%;
height: calc(100% - 75px); height: calc(100% - 75px);
border-radius: 20px; border-radius: 20px;
background: url('../assets/loginImg/kuang.png') no-repeat; background: url('../assets/loginImg/kuang1.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
@ -698,8 +720,9 @@ getWeather () {
font-weight: 700 font-weight: 700
} }
.ms-content { .ms-content {
width: 80%; // width: 80%;
margin-top: 33px; width: 63%;
margin-top: 90px;
} }
.login-btn { .login-btn {
width: 75.5%; width: 75.5%;
@ -711,7 +734,7 @@ getWeather () {
// border-radius: 20px; // border-radius: 20px;
display: flex; display: flex;
justify-content: center; justify-content: center;
background: url("../assets/loginImg/loginBtn.png") no-repeat; background: url("../assets/loginImg/loginBtn1.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
border: none; border: none;
align-items: center; align-items: center;

View File

@ -929,7 +929,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -1103,7 +1103,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -448,7 +448,7 @@ export default {
created() { created() {
let h = document.documentElement.clientHeight || document.body.clientHeight; let h = document.documentElement.clientHeight || document.body.clientHeight;
this.vdaH = h - 0 + "px"; this.vdaH = h - 0 + "px";
this.createMqtt() // this.createMqtt()
this.getTime() this.getTime()
}, },
methods: { methods: {
@ -1147,7 +1147,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -181,7 +181,7 @@
<div></div> <div></div>
<div>允许通行</div> <div>允许通行</div>
</div> </div>
<Swiper ref="swRef" @changeMessage="changeMessage"></Swiper> <Swiper ref="swRef" @changeMessage="changeMessage" :peopleList="peopleList"></Swiper>
</div> </div>
<div class="leftThreeBox" :style="{ left: boxNone ? '27px' : '-444px' }"> <div class="leftThreeBox" :style="{ left: boxNone ? '27px' : '-444px' }">
<div class="titName"> <div class="titName">
@ -215,12 +215,12 @@
v-for="(item,index) in videoList" v-for="(item,index) in videoList"
:key="index" :key="index"
> >
<img v-show="iframeShow==false" :src="item.thumbnail" alt="" /> <img v-show="item.iframeShow==false" :src="item.thumbnail" alt="" />
<div class="openChange" @click="openChangebtn" v-show="iframeShow==false"> <img src="../assets/pic/play.png" alt=""></div> <!-- <div class="openChange" @click="openChangebtn(item)" v-show="item.iframeShow==false"> <img src="../assets/pic/play.png" alt=""></div> -->
<!-- <Video></Video> --> <!-- <Video></Video> -->
<iframe ref="iframe" id="iframeid" :src="src" frameborder="O" class="iframe" scrolling="auto" width="100%" <iframe ref="iframe" id="iframeid" :src="src" frameborder="0" class="iframe" scrolling="auto" width="100%"
height="100%" v-show="iframeShow"> height="100%" v-show="item.iframeShow">
</iframe> </iframe>
<!-- <button @click="vueSendMsg">vue向iframe传递信息</button> --> <!-- <button @click="vueSendMsg">vue向iframe传递信息</button> -->
<div class="smallBox">{{item.equipmentName}}</div> <div class="smallBox">{{item.equipmentName}}</div>
@ -248,6 +248,7 @@
:x-axis-data="qyList.map((item) => item.name)" :x-axis-data="qyList.map((item) => item.name)"
:securityCheck="securityCheck" :securityCheck="securityCheck"
/> />
</div> </div>
</div> </div>
<!-- 右侧模块3 --> <!-- 右侧模块3 -->
@ -267,7 +268,7 @@
</div> </div>
<el-table <el-table
:show-header="false" :show-header="false"
height="150" height="100%"
:row-style="{ height: '0' }" :row-style="{ height: '0' }"
:cell-style="{ padding: '8px' }" :cell-style="{ padding: '8px' }"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
@ -605,7 +606,12 @@ export default {
for(var i = 0; i < environmentDataNew.length; i++){ for(var i = 0; i < environmentDataNew.length; i++){
for(var j = 0; j < this.iconPicList.length; j++){ for(var j = 0; j < this.iconPicList.length; j++){
if(this.iconPicList[j].id==environmentDataNew[i].id){ if(this.iconPicList[j].id==environmentDataNew[i].id){
this.iconPicList[j].val = environmentDataNew[i].val if(environmentDataNew[i].val==''||environmentDataNew[i].val==null){
this.iconPicList[j].val = '--'
}else{
this.iconPicList[j].val = Number(environmentDataNew[i].val).toFixed(2)
}
} }
} }
} }
@ -730,29 +736,29 @@ export default {
const res = event.data; const res = event.data;
console.log(event) console.log(event)
if(res.cmd == 'myIframe'){ if(res.cmd == 'myIframe'){
console.log(res) console.log("myIframe",res)
} }
}, },
// vueiframe // vueiframe
vueSendMsg(){ vueSendMsg(val){
this.iframeMethods()
// const iframeWindow = this.$refs.iframe.contentWindow; // const iframeWindow = this.$refs.iframe.contentWindow;
const iframeWindow =document.getElementById('iframeid').contentWindow; const iframeWindow =document.getElementById('iframeid').contentWindow;
iframeWindow.postMessage({ iframeWindow.postMessage({
cmd:'myVue', cmd:'myVue',
params : { params : {
info: 'Vue向iframe传递的消息', info: val,
} }
},'*') },'*')
}, },
// iframe // iframe
iframeMethods(){ iframeMethods(val){
document.getElementById('iframeid').contentWindow.triggerByVue('通过Vue触发iframe中的方法'); document.getElementById('iframeid').contentWindow.triggerByVue(val);
}, },
openChangebtn(){ openChangebtn(item){
this.iframeShow = true this.iframeShow = true
this.vueSendMsg() this.vueSendMsg(item.url)
this.iframeMethods(item.url)
} }
}, },
// destroyed(){ // destroyed(){
@ -762,6 +768,8 @@ export default {
// //
getProjectInfo().then((res) => { getProjectInfo().then((res) => {
console.log("res",res.data.data)
this.introduction = res.data.data[0].introduction; this.introduction = res.data.data[0].introduction;
this.projectId = res.data.data[0].id; this.projectId = res.data.data[0].id;
sessionStorage.setItem( sessionStorage.setItem(
@ -778,11 +786,12 @@ export default {
(item, index) => { (item, index) => {
return { return {
label: "姓名:", label: "姓名:",
label1: "岗位", label1: "岗位:",
label2: "出勤时间", label2: "出勤时间:",
name1: res.data.data.users[item].name, name1: res.data.data.users[item].name,
name2: res.data.data.users[item].post, name2: res.data.data.users[item].post,
time: res.data.data.users[item].inTime, time: res.data.data.users[item].inTime,
picture: res.data.data.users[item].picture,
}; };
} }
); );
@ -850,8 +859,34 @@ export default {
// //
getIsImportant().then((res)=>{ getIsImportant().then((res)=>{
this.videoList = Object.keys(res.data.data).map((item,index)=>{ this.videoList = Object.keys(res.data.data).map((item,index)=>{
return {thumbnail:res.data.data[item].thumbnail,equipmentName:res.data.data[item].equipmentName} console.log("res.data.data11111",res.data.data)
if(res.data.data[item].url&&res.data.data[item].url!=''){
return {
thumbnail:res.data.data[item].thumbnail,
equipmentName:res.data.data[item].equipmentName,
url:res.data.data[item].url,
iframeShow:true
}
}else{
return {
thumbnail:res.data.data[item].thumbnail,
equipmentName:res.data.data[item].equipmentName,
url:res.data.data[item].url,
iframeShow:false
}
}
// return {thumbnail:require('@/assets/cscs2.png'),
// equipmentName:'QW_CAMERA001',
// }
}) })
// this.$nextTick(function(){ // this.$nextTick(function(){
// this.src = '../static/flv/demo1.html'; // this.src = '../static/flv/demo1.html';
// console.log("this.$refs.iframeld",this.$refs.iframeld) // console.log("this.$refs.iframeld",this.$refs.iframeld)
@ -859,6 +894,9 @@ export default {
// window.addEventListener("message",this.sendMessage); // window.addEventListener("message",this.sendMessage);
// }); // });
this.src = '../static/flv/demo1.html'; this.src = '../static/flv/demo1.html';
for (let i = 0; i < this.videoList.length; i++) {
this.openChangebtn(this.videoList[i])
}
window.addEventListener('message',this.getiframeMsg) window.addEventListener('message',this.getiframeMsg)
}) })
}); });
@ -1038,6 +1076,7 @@ window.addEventListener('message',this.getiframeMsg)
color: #ffffff; color: #ffffff;
text-align: center; text-align: center;
line-height: 28px; line-height: 28px;
border-top-right-radius: 25%;
} }
.swiperBox { .swiperBox {
@ -1166,9 +1205,12 @@ window.addEventListener('message',this.getiframeMsg)
} }
.chentChild { .chentChild {
width: 104px; // width: 104px;
margin-left: 14px; // margin-left: 14px;
margin-top: 15px; // margin-top: 15px;
width: 110px;
margin-left: 10px;
margin-top: 15px;
} }
.iconPic { .iconPic {
@ -1267,7 +1309,7 @@ window.addEventListener('message',this.getiframeMsg)
top: 40px; top: 40px;
width: 100%; width: 100%;
.videoFat { .videoFat {
background: gray; // background: gray;
flex: 1; flex: 1;
// width: 165px; // width: 165px;
// height: 183px; // height: 183px;
@ -1275,10 +1317,11 @@ window.addEventListener('message',this.getiframeMsg)
width: 87%; width: 87%;
float: left; float: left;
margin-top: 2%; margin-top: 2%;
border-radius: 5%;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 5%;
} }
.openChange{ .openChange{
position: absolute; position: absolute;
@ -1491,7 +1534,7 @@ window.addEventListener('message',this.getiframeMsg)
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -826,7 +826,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -380,6 +380,7 @@ export default {
projectId: projectId, projectId: projectId,
}).then((res) => { }).then((res) => {
this.constructionPersonnel = res.data.data; this.constructionPersonnel = res.data.data;
console.log("this.constructionPersonnel",this.constructionPersonnel)
}); });
// //
getAttend({ getAttend({
@ -757,7 +758,8 @@ export default {
} }
.meetContent{ .meetContent{
overflow: auto; overflow: auto;
height: 90%; // height: 90%;
height: 84%;
width: 100%; width: 100%;
word-wrap: break-word; word-wrap: break-word;
word-break: break-all; word-break: break-all;
@ -771,13 +773,13 @@ export default {
background: url("~@/assets/pic/view.png") no-repeat; background: url("~@/assets/pic/view.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
float: right; float: right;
margin-top: 13px; // margin-top: 13px;
margin-right: 2px; margin-right: 2px;
cursor: pointer; cursor: pointer;
margin-top: -5px;
@media only screen and (max-height: 1000px) { // @media only screen and (max-height: 1000px) {
margin-top: -22px; // margin-top: -22px;
} // }
} }
.videoBox { .videoBox {
@ -876,7 +878,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -989,7 +989,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -137,7 +137,7 @@
<span></span> <span></span>
</div> </div>
<div class="table2Box"> <div class="table2Box">
<el-table height="100%" :row-class-name="tableRowClassName" :data="table2Data" style="width: 100%" :cell-style="{ padding: '5px' }"> <el-table height="100%" :row-class-name="tableRowClassName" :data="table2Data" style="width: 100%" :cell-style="{ padding: '8px' }">
<el-table-column align="left" show-overflow-tooltip prop="name" label="任务名称" style="left:20px"> <el-table-column align="left" show-overflow-tooltip prop="name" label="任务名称" style="left:20px">
</el-table-column> </el-table-column>
<el-table-column align="center" prop="startDate" label="开始时间" > <el-table-column align="center" prop="startDate" label="开始时间" >
@ -458,8 +458,8 @@ export default {
}).then((res)=>{ }).then((res)=>{
this.projectDuration[0].value = res.data.data.planStartDate this.projectDuration[0].value = res.data.data.planStartDate
this.projectDuration[1].value = res.data.data.planEndDate this.projectDuration[1].value = res.data.data.planEndDate
this.projectDuration[2].value = res.data.data.planTotalDay + '天' this.projectDuration[2].value = res.data.data.planTotalDay + ' 天'
this.projectDuration[3].value = res.data.data.actualDay + '天' this.projectDuration[3].value = res.data.data.actualDay + ' 天'
}) })
// //
getProjectInvestment({ getProjectInvestment({
@ -645,8 +645,9 @@ export default {
.table2Box { .table2Box {
width: 405px; width: 405px;
height: 76%; // height: 77%;
top: 76px; height: 79%;
top: 78px;
left: 21px; left: 21px;
position: absolute; position: absolute;
} }
@ -975,7 +976,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -36,7 +36,7 @@
<div class="home"> <div class="home">
<div class="box"> <div class="box">
<div class="boxChild"> <div class="boxChild">
<div class="fathBox"></div> <div class="fathBox"><img :src="item.troubleImages" alt="" style="width:100%;height:100%"></div>
<div class="fath2Box"> <div class="fath2Box">
<div style="margin-left: 21px; margin-top: 8px"> <div style="margin-left: 21px; margin-top: 8px">
<span style="color: #82dddb">派单时间</span> <span style="color: #82dddb">派单时间</span>
@ -153,6 +153,7 @@ export default {
status: res.data.data.records[item].status, status: res.data.data.records[item].status,
troubleContent: res.data.data.records[item].troubleContent, troubleContent: res.data.data.records[item].troubleContent,
troubleMark: res.data.data.records[item].troubleMark, troubleMark: res.data.data.records[item].troubleMark,
troubleImages: res.data.data.records[item].troubleImages
}; };
}); });
}); });
@ -205,7 +206,7 @@ export default {
.fathBox { .fathBox {
width: 152px; width: 152px;
height: 146px; height: 146px;
background: url("~@/assets/pic/23.png") no-repeat; // background: url("~@/assets/pic/23.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -299,6 +300,10 @@ export default {
} }
.el-carousel__container { .el-carousel__container {
position: relative; position: relative;
height: 180px !important; /* height: 180px !important; */
height: 200px !important;
}
.el-carousel__indicators--horizontal{
width:73%
} }
</style> </style>

View File

@ -15,36 +15,36 @@
<script> <script>
export default { export default {
props: { props: {
videoitemUrl: { // videoitemUrl: {
type: String, // type: String,
default: '' // default: ''
}, // },
videoUrllist: { // videoUrllist: {
type: Array, // type: Array,
default: () => { // default: () => {
return []; // return [];
}, // },
}, // },
}, },
data() { data() {
return { return {
player: null, player: null,
url:require('../assets/map4/5.mp4'), url:require('../assets/map4/5.mp4'),
videoitemUrl:'' videoitemUrl:'http://175.27.191.156:18080/transform/ch1.live.flv'
} }
}, },
watch: { watch: {
// Echarts // Echarts
videoitemUrl: { // videoitemUrl: {
handler (val) { // handler (val) {
console.log("val",val) // console.log("val",val)
// this.$nextTick(() => { // // this.$nextTick(() => {
this.videoitemUrl = val // this.videoitemUrl = val
// }) // // })
}, // },
deep: true, // deep: true,
} // }
}, },
mounted() { mounted() {
this.initVideo(); this.initVideo();

View File

@ -477,7 +477,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -30,7 +30,7 @@
> >
<!-- <img :src="item.thumbnail" alt="" style="width: 100%; height: 100%" /> --> <!-- <img :src="item.thumbnail" alt="" style="width: 100%; height: 100%" /> -->
<img v-show="item.status==false" :src="item.thumbnail" alt="" style="width: 100%; height: 100%"/> <img v-show="item.status==false" :src="item.thumbnail" alt="" style="width: 100%; height: 100%"/>
<div class="openChange" @click="tzSp(item.equipmentName, item.id)" v-show="item.status==false"> <div class="openChange" @click="tzSp(item.equipmentName, item.id,item.thumbnail)" v-show="item.status==false">
<img src="../assets/pic/play.png" alt="" style="width:100%;height:100%"> <img src="../assets/pic/play.png" alt="" style="width:100%;height:100%">
</div> </div>
<iframe ref="iframe" id="iframeid" :src="src" frameborder="0" class="iframe" scrolling="auto" width="100%" <iframe ref="iframe" id="iframeid" :src="src" frameborder="0" class="iframe" scrolling="auto" width="100%"
@ -124,7 +124,7 @@
<!-- <span class="playBox" @click="tzSp"></span> --> <!-- <span class="playBox" @click="tzSp"></span> -->
<img <img
:src="item.icon" :src="item.icon"
@click="tzSp(item.name, item.id)" @click="tzSp(item.name, item.id,item.thumbnail)"
style=" style="
width: 16px; width: 16px;
height: 16px; height: 16px;
@ -321,12 +321,14 @@ export default {
this.$router.go(0); this.$router.go(0);
} }
}, },
tzSp(name, id) { tzSp(name, id,thumbnail) {
// this.$router.push('/videoViewing') // this.$router.push('/videoViewing')
let videoObj = { let videoObj = {
videoName: name, videoName: name,
videoId: id, videoId: id,
thumbnail:thumbnail
}; };
console.log("videoObj",videoObj)
this.$emit("transfer", videoObj); this.$emit("transfer", videoObj);
}, },
getDivHeight() { getDivHeight() {
@ -408,7 +410,9 @@ export default {
this.videoAllList = Object.keys(res.data.data).map((item, index) => { this.videoAllList = Object.keys(res.data.data).map((item, index) => {
return { return {
thumbnail: res.data.data[item].thumbnail, thumbnail: res.data.data[item].thumbnail,
// thumbnail:require('@/assets/cscs2.png'),
equipmentName: res.data.data[item].equipmentName, equipmentName: res.data.data[item].equipmentName,
// equipmentName:'',
id: res.data.data[item].id, id: res.data.data[item].id,
status:false status:false
}; };
@ -422,6 +426,7 @@ export default {
icon: require("../assets/pic/play.png"), icon: require("../assets/pic/play.png"),
lookOver: "查看", lookOver: "查看",
id: res.data.data[item].id, id: res.data.data[item].id,
thumbnail: res.data.data[item].thumbnail,
}; };
}); });
this.src = '../static/flv/video1.html'; this.src = '../static/flv/video1.html';
@ -456,14 +461,14 @@ export default {
} }
.scroller::-webkit-scrollbar-track { .scroller::-webkit-scrollbar-track {
background: #053635; // background: #053635;
border-radius: 4px; border-radius: 4px;
opacity: 0.6; // opacity: 0.6;
border: 1px solid #0e6760; // border: 1px solid #0e6760;
} }
.scroller::-webkit-scrollbar-thumb { .scroller::-webkit-scrollbar-thumb {
width: 11em; width: 6em;
background-color: #0e6760; background-color: #0e6760;
-webkit-border-radius: 2em; -webkit-border-radius: 2em;
-moz-border-radius: 2em; -moz-border-radius: 2em;
@ -491,7 +496,8 @@ export default {
} }
.scFathChild { .scFathChild {
width: 311px; // width: 311px;
width:23%;
height: 251px; height: 251px;
margin-bottom: 43px; margin-bottom: 43px;
border: 1px solid rgba(0, 235, 235, 0.2); border: 1px solid rgba(0, 235, 235, 0.2);
@ -499,7 +505,7 @@ export default {
position: relative; position: relative;
cursor: pointer; cursor: pointer;
transition: All 0.2s ease-in-out; transition: All 0.2s ease-in-out;
background: url("~@/assets/pic/top.png") no-repeat;
.childrenBox { .childrenBox {
// width: 123px; // width: 123px;
height: 30px; height: 30px;
@ -600,7 +606,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -474,7 +474,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -20,11 +20,17 @@
<!-- 左侧大模块--> <!-- 左侧大模块-->
<div class="scFathBox" :style="{ height: leftOneBox }"> <div class="scFathBox" :style="{ height: leftOneBox }">
<div class="scFathChild"> <div class="scFathChild">
<img <!-- <img
v-if="closeVideoShow" v-if="closeVideoShow"
src="../assets/pic/bh.png" src="../assets/pic/bh.png"
alt="" alt=""
style="width: 100%; height: 100%" style="width: 100%; height: 100%"
/> -->
<img
v-if="closeVideoShow"
:src="thumbnail"
alt=""
style="width: 100%; height: 100%"
/> />
<Video :videoitemUrl="videoitemUrl" :videoUrllist="videoUrllist" v-if="openVideoShow"></Video> <Video :videoitemUrl="videoitemUrl" :videoUrllist="videoUrllist" v-if="openVideoShow"></Video>
<div class="childrenBox"> <div class="childrenBox">
@ -112,6 +118,7 @@
value-format= 'yyyy-MM-dd HH:mm:ss' value-format= 'yyyy-MM-dd HH:mm:ss'
type="datetime" type="datetime"
placeholder="选择日期时间" placeholder="选择日期时间"
default-time="00:00:00"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@ -124,6 +131,7 @@
value-format= 'yyyy-MM-dd HH:mm:ss' value-format= 'yyyy-MM-dd HH:mm:ss'
placeholder="选择日期时间" placeholder="选择日期时间"
:picker-options="pickerOptions" :picker-options="pickerOptions"
default-time="23:59:59"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@ -177,6 +185,10 @@ export default {
type: String, type: String,
default: "", default: "",
}, },
thumbnail: {
type: String,
default: "",
},
}, },
components: { components: {
pieChart, pieChart,
@ -283,6 +295,7 @@ export default {
created() { created() {
let h = document.documentElement.clientHeight || document.body.clientHeight; let h = document.documentElement.clientHeight || document.body.clientHeight;
this.vdaH = h - 0 + "px"; this.vdaH = h - 0 + "px";
console.log("thumbnail",thumbnail)
}, },
methods: { methods: {
// //
@ -570,7 +583,7 @@ export default {
.title { .title {
width: 100%; width: 100%;
height: 168px; height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat; background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -43,8 +43,8 @@
margin-left: -1.5em; margin-left: -1.5em;
} }
.videojs-flvjs-player-dimensions { .videojs-flvjs-player-dimensions {
width: 95%!important; width: 100%!important;
height: 200px!important; height: 217px!important;
overflow-x: hidden; overflow-x: hidden;
overflow-y: hidden; overflow-y: hidden;
} }
@ -94,17 +94,36 @@ var player = null;
}; };
// iframe获取Vue传递过来的信息 // iframe获取Vue传递过来的信息
window.addEventListener("message", getVueMsg); window.addEventListener("message", getVueMsg);
// function getVueMsg(event){
// const res = event.data;
// if(res.cmd == 'myVue'){
// console.log(res)
// }
// };
// function triggerByVue(msg){
// console.log(msg)
// player.play();
// }
function getVueMsg(event){ function getVueMsg(event){
const res = event.data; const res = event.data;
if(res.cmd == 'myVue'){ if(res.cmd == 'myVue'){
console.log(res) console.log("获取vue传来的数据",res.params.info)
flvUrl = res.params.info
// console.log("flvUrl",flvUrl)
// initPlayer(res.params.info)
} }
}; };
function triggerByVue(msg){ function triggerByVue(msg){
console.log(msg) console.log(msg)
player.play(); // flvUrl = msg
// initPlayer(msg);
// player.play();
} }
function initPlayer(){ function initPlayer(){
// console.log("val",val)
var videoContainer = document.getElementById("videoContainer"); var videoContainer = document.getElementById("videoContainer");
var pObjs = videoContainer.childNodes; var pObjs = videoContainer.childNodes;
for (var i = pObjs.length - 1; i >= 0; i--) { for (var i = pObjs.length - 1; i >= 0; i--) {

181
static/flv/videoIndex.html Normal file
View File

@ -0,0 +1,181 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>视频播放软件</title>
<link href="video-js.css" rel="stylesheet" />
<style>
body{
overflow-x: hidden;
overflow-y: hidden;
width: 100%;
height: 100%;
}
.video-js .vjs-big-play-button{
font-size: 2.5em;
line-height: 2.3em;
height: 2.5em;
width: 2.5em;
-webkit-border-radius: 2.5em;
-moz-border-radius: 2.5em;
border-radius: 2.5em;
background-color: #73859f;
background-color: rgba(115,133,159,.5);
border-width: 0.15em;
margin-top: -1.25em;
margin-left: -1.75em;
}
/* 中间的播放箭头 */
.vjs-big-play-button .vjs-icon-placeholder {
font-size: 1.63em;
}
/* 加载圆圈 */
.vjs-loading-spinner {
font-size: 2.5em;
width: 2em;
height: 2em;
border-radius: 1em;
margin-top: -1em;
margin-left: -1.5em;
}
.videojs-flvjs-player-dimensions {
width: 100%!important;
height: 286px!important;
overflow-x: hidden;
overflow-y: hidden;
}
/* #videojs-flvjs-player{
width: 100%!important;
height: 100%!important;
} */
</style>
<script src="video.min.js"></script>
<script src="flv.min.js"></script>
<script src="videojs-flvjs.min.js"></script>
</head>
<body>
<div id="videoContainer" width="100%"
height="100%" >
<video
id="videojs-flvjs-player"
class="video-js vjs-default-skin vjs-big-play-centered"
controls
preload="auto"
autoplay=true
width="100%"
height="100%"
data-setup="{}"
>
<source src="" type='video/x-flv' />
</video>
<!-- <button onclick="iframeSendMsg()">iframe向Vue传消息</button> -->
</div>
</body>
<script>
//var flvUrl = "ws://192.168.3.245/transform/ch1.live.flv";
var flvUrl = "http://175.27.191.156:18080/transform/ch1.live.flv";
var player = null;
// iframe向vue传递信息
function iframeSendMsg(){
window.parent.postMessage({
cmd:'myIframe',
params : {
info: 'iframe向Vue传递的消息',
}
},'*');
};
// iframe获取Vue传递过来的信息
window.addEventListener("message", getVueMsg);
function getVueMsg(event){
const res = event.data;
if(res.cmd == 'myVue'){
console.log(res)
}
};
function triggerByVue(msg){
console.log(msg)
player.play();
}
function initPlayer(){
var videoContainer = document.getElementById("videoContainer");
var pObjs = videoContainer.childNodes;
for (var i = pObjs.length - 1; i >= 0; i--) {
videoContainer.removeChild(pObjs[i]);
}
videoContainer.innerHTML = "<video id='videojs-flvjs-player' class='video-js vjs-default-skin vjs-big-play-centered' controls preload='auto' autoplay=true width='100%' height='100%' data-setup='{}'><source src="+ flvUrl +" type='video/x-flv'></video>";
player = videojs('videojs-flvjs-player', {
techOrder: ['html5', 'flvjs'],
flvjs: {
mediaDataSource: {
isLive: true,
cors: true,
withCredentials: false,
enableStashBuffer: false,
autoCleanupSourceBuffer:true,
autoCleanupMaxBackwardDuration:12,
autoCleanupMinBackwardDuration:60,
stashInitialSize:128
},
},
sources: [{
src: flvUrl,
type: 'video/x-flv'
}],
controls: true,
preload: "none"
},
function onPlayerReady() {
player.on('error',function(){
console.log('first source load fail')
player.src({
src: flvUrl,
type: 'video/x-flv'
});
player.ready(function() {
console.log('player ready')
player.load();
player.play();
});
});
player.on('waiting',function(){
console.log('stream wainting....');
window.parent.postMessage({
cmd:'myIframe',
params : {
info: 'iframe向Vue传递的消息',
}
},'*');
//player.pause();
//player.dispose();
//player = null;
//initPlayer();
});
player.on('ended',function(){
console.log('stream ended....');
player.pause();
player.dispose();
player = null;
initPlayer();
});
});
}
initPlayer();
</script>
</html>

View File

@ -4,16 +4,60 @@
"total_days":"174", "total_days":"174",
"time_nodes":[ "time_nodes":[
{ {
"node":"2023/2/1", "node":"2023/2/01",
"info":"开工" "info":"土建_0"
}, },
{ {
"node":"2023/3/1", "node":"2023/2/8",
"info":"护栏拆除" "info":"土建_1"
}, },
{ {
"node":"2023/3/25", "node":"2023/2/16",
"info":"放置预制砼" "info":"土建_2"
},
{
"node":"2023/2/24",
"info":"土建_3"
},
{
"node":"2023/3/01",
"info":"土建_4"
},
{
"node":"2023/3/9",
"info":"土建_5"
},
{
"node":"2023/3/17",
"info":"土建_6"
},
{
"node":"2023/3/24",
"info":"土建_7"
},
{
"node":"2023/4/01",
"info":"土建_8"
},
{
"node":"2023/4/09",
"info":"土建_9"
},
{
"node":"2023/4/17",
"info":"土建_10"
},
{
"node":"2023/4/24",
"info":"土建_11"
},
{
"node":"2023/5/01",
"info":"电缆敷设_0"
},
{
"node":"2023/5/08",
"info":"电缆敷设_1"
}, },
{ {
"node":"2023/7/25", "node":"2023/7/25",

View File

@ -0,0 +1,646 @@
[
{
"id": "1644225456757981186",
"workContent": "土建_0",
"completeStatus": "完成",
"detail": [
{
"componentId": "17e62d0b164e42a396b2aaee817170ba",
"componentType": "拆除护栏",
"componentName": "拆除护栏_0",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-02-01",
"plannedEndDate": "2023-02-07",
"actualCompletionTime": "2023-02-01",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_0_100",
"isLastProcess": 0
},
{
"componentId": "0fe56a5e85674b4fb276b228a1e5f405",
"componentType": "预制硂",
"componentName": "预制硂_0",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-02-01",
"plannedEndDate": "2023-02-07",
"actualCompletionTime": "2023-02-02",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_0_100",
"isLastProcess": 0
},
{
"componentId": "636c42fe8f0d4998bd6b511d3513a198",
"componentType": "电缆架桥",
"componentName": "电缆架桥_0",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-02-01",
"plannedEndDate": "2023-02-07",
"actualCompletionTime": "2023-02-06",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_0_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225456825090049",
"workContent": "土建_1",
"completeStatus": "完成",
"detail": [
{
"componentId": "6ed83243d6524f7b9be6f46163066963",
"componentType": "拆除护栏",
"componentName": "拆除护栏_1",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-02-08",
"plannedEndDate": "2023-02-15",
"actualCompletionTime": "2023-02-09",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_1_100",
"isLastProcess": 0
},
{
"componentId": "1751611703ee4d3da598309cd6c612ca",
"componentType": "预制硂",
"componentName": "预制硂_1",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-02-08",
"plannedEndDate": "2023-02-15",
"actualCompletionTime": "2023-02-10",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_1_100",
"isLastProcess": 0
},
{
"componentId": "579c9a90503f4ac3a88328190b7825c9",
"componentType": "电缆架桥",
"componentName": "电缆架桥_1",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-02-08",
"plannedEndDate": "2023-02-15",
"actualCompletionTime": "2023-02-15",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_1_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225456888004609",
"workContent": "土建_2",
"completeStatus": "延期完成",
"detail": [
{
"componentId": "5b311eac10494e60a0c8e17669a9b535",
"componentType": "拆除护栏",
"componentName": "拆除护栏_2",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-02-16",
"plannedEndDate": "2023-02-23",
"actualCompletionTime": "2023-02-16",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_2_100",
"isLastProcess": 0
},
{
"componentId": "2a32b299250a44d9b5c989fea0a2e4db",
"componentType": "预制硂",
"componentName": "预制硂_2",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-02-16",
"plannedEndDate": "2023-02-23",
"actualCompletionTime": "2023-02-20",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_2_100",
"isLastProcess": 0
},
{
"componentId": "0a75583dff6d494393c5af0558a5fd44",
"componentType": "电缆架桥",
"componentName": "电缆架桥_2",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-02-16",
"plannedEndDate": "2023-02-23",
"actualCompletionTime": "2023-02-25",
"workStatus": "延期完成",
"workStatusCode": "COMPLETE_DELAY",
"positionInfo": "L_2_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225456959307778",
"workContent": "土建_3",
"completeStatus": "进行中",
"detail": [
{
"componentId": "e16cbdd80bc34d299c9cc9b59332af3a",
"componentType": "拆除护栏",
"componentName": "拆除护栏_3",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-02-24",
"plannedEndDate": "2023-02-28",
"actualCompletionTime": "2023-02-18",
"workStatus": "提前完成",
"workStatusCode": "COMPLETE_AHEAD",
"positionInfo": "L_3_100",
"isLastProcess": 0
},
{
"componentId": "24d16c360f324c0bbac89503fcf4435b",
"componentType": "预制硂",
"componentName": "预制硂_3",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-02-24",
"plannedEndDate": "2023-02-28",
"actualCompletionTime": "2023-02-25",
"workStatus": "完成",
"workStatusCode": "ACCOMPLISH",
"positionInfo": "L_3_100",
"isLastProcess": 0
},
{
"componentId": "5d7c56a5b6cf462e9a117ba7970016ed",
"componentType": "电缆架桥",
"componentName": "电缆架桥_3",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-02-24",
"plannedEndDate": "2023-02-28",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_3_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457034805250",
"workContent": "土建_4",
"completeStatus": "进行中",
"detail": [
{
"componentId": "a97c2d358d69457c90f67efc2aa0d12f",
"componentType": "拆除护栏",
"componentName": "拆除护栏_4",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-03-01",
"plannedEndDate": "2023-03-08",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_4_100",
"isLastProcess": 0
},
{
"componentId": "41cefeccf0ca47ec8e4a552c910ab2ef",
"componentType": "预制硂",
"componentName": "预制硂_4",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-03-01",
"plannedEndDate": "2023-03-08",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_4_100",
"isLastProcess": 0
},
{
"componentId": "c617a3b8fa6443d0aeb2490c576db72a",
"componentType": "电缆架桥",
"componentName": "电缆架桥_4",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-03-01",
"plannedEndDate": "2023-03-08",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_4_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457127079937",
"workContent": "土建_5",
"completeStatus": "进行中",
"detail": [
{
"componentId": "3bb814d6495c493784d21fbc13266b2f",
"componentType": "拆除护栏",
"componentName": "拆除护栏_5",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-03-09",
"plannedEndDate": "2023-03-16",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_5_100",
"isLastProcess": 0
},
{
"componentId": "2b553b260f3c4158bdaee4f66eaf2d96",
"componentType": "预制硂",
"componentName": "预制硂_5",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-03-09",
"plannedEndDate": "2023-03-16",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_5_100",
"isLastProcess": 0
},
{
"componentId": "d1626986b656443a83b9030b275c6dac",
"componentType": "电缆架桥",
"componentName": "电缆架桥_5",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-03-09",
"plannedEndDate": "2023-03-16",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_5_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457210966017",
"workContent": "土建_6",
"completeStatus": "进行中",
"detail": [
{
"componentId": "88c143c5ba3043cba6ae433f27f4d57f",
"componentType": "拆除护栏",
"componentName": "拆除护栏_6",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-03-17",
"plannedEndDate": "2023-03-23",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_6_100",
"isLastProcess": 0
},
{
"componentId": "b58d3002322c43ed83151c5cdd15996c",
"componentType": "预制硂",
"componentName": "预制硂_6",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-03-17",
"plannedEndDate": "2023-03-23",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_6_100",
"isLastProcess": 0
},
{
"componentId": "4a551c80472d4b0daa4016c7573013e5",
"componentType": "电缆架桥",
"componentName": "电缆架桥_6",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-03-17",
"plannedEndDate": "2023-03-23",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_6_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457286463489",
"workContent": "土建_7",
"completeStatus": "进行中",
"detail": [
{
"componentId": "6b984e092d2448c5a9993ca487793921",
"componentType": "拆除护栏",
"componentName": "拆除护栏_7",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-03-24",
"plannedEndDate": "2023-03-30",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_7_100",
"isLastProcess": 0
},
{
"componentId": "c076599492c840bb872b6b814b0fd004",
"componentType": "预制硂",
"componentName": "预制硂_7",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-03-24",
"plannedEndDate": "2023-03-30",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_7_100",
"isLastProcess": 0
},
{
"componentId": "9dcdc45b218b4d8098d98914c6630391",
"componentType": "电缆架桥",
"componentName": "电缆架桥_7",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-03-24",
"plannedEndDate": "2023-03-30",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_7_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457357766658",
"workContent": "土建_8",
"completeStatus": "进行中",
"detail": [
{
"componentId": "95d59d46c154417187cb4434079c1c7f",
"componentType": "拆除护栏",
"componentName": "拆除护栏_8",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-04-01",
"plannedEndDate": "2023-04-08",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_8_100",
"isLastProcess": 0
},
{
"componentId": "7609a56e5bd84cbfafe0b6026523a806",
"componentType": "预制硂",
"componentName": "预制硂_8",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-04-01",
"plannedEndDate": "2023-04-08",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_8_100",
"isLastProcess": 0
},
{
"componentId": "22da43d9fc8044bbb4cab9d35f109292",
"componentType": "电缆架桥",
"componentName": "电缆架桥_8",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-04-01",
"plannedEndDate": "2023-04-08",
"actualCompletionTime": "",
"workStatus": "进行中",
"workStatusCode": "PROGRESS",
"positionInfo": "L_8_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457420681218",
"workContent": "土建_9",
"completeStatus": "未开始",
"detail": [
{
"componentId": "c0fcbc96eabf4018a64593af07f8e421",
"componentType": "拆除护栏",
"componentName": "拆除护栏_9",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-04-09",
"plannedEndDate": "2023-04-16",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_9_100",
"isLastProcess": 0
},
{
"componentId": "396dced933bf4a41a76256f1677b72f1",
"componentType": "预制硂",
"componentName": "预制硂_9",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-04-09",
"plannedEndDate": "2023-04-16",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_9_100",
"isLastProcess": 0
},
{
"componentId": "ca90c040fdbd4a9dad7a196d762f56cc",
"componentType": "电缆架桥",
"componentName": "电缆架桥_9",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-04-09",
"plannedEndDate": "2023-04-16",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_9_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457487790081",
"workContent": "土建_10",
"completeStatus": "未开始",
"detail": [
{
"componentId": "485dfbf53a4b4ad19cc51d7ed7cb5687",
"componentType": "拆除护栏",
"componentName": "拆除护栏_10",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-04-17",
"plannedEndDate": "2023-04-23",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_10_100",
"isLastProcess": 0
},
{
"componentId": "ff51914e5e9243d59144747a723b2410",
"componentType": "预制硂",
"componentName": "预制硂_10",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-04-17",
"plannedEndDate": "2023-04-23",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_10_100",
"isLastProcess": 0
},
{
"componentId": "2be6428dbc7442b9a7f032a369f15314",
"componentType": "电缆架桥",
"componentName": "电缆架桥_10",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-04-17",
"plannedEndDate": "2023-04-23",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_10_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457571676161",
"workContent": "土建_11",
"completeStatus": "未开始",
"detail": [
{
"componentId": "5135fa666dad422d9cc14c7838f22919",
"componentType": "拆除护栏",
"componentName": "拆除护栏_11",
"componentTypeCode": "cchl",
"plannedStartDate": "2023-04-24",
"plannedEndDate": "2023-04-30",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_11_100",
"isLastProcess": 0
},
{
"componentId": "0362257709504d769875e93cf500dd07",
"componentType": "预制硂",
"componentName": "预制硂_11",
"componentTypeCode": "yzt",
"plannedStartDate": "2023-04-24",
"plannedEndDate": "2023-04-30",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_11_100",
"isLastProcess": 0
},
{
"componentId": "499567d5dd9d4bedaff32e77c44c0737",
"componentType": "电缆架桥",
"componentName": "电缆架桥_11",
"componentTypeCode": "dljq",
"plannedStartDate": "2023-04-24",
"plannedEndDate": "2023-04-30",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_11_100",
"isLastProcess": 1
}
]
},
{
"id": "1644225457642979329",
"workContent": "电缆敷设_0",
"completeStatus": "未开始",
"detail": [
{
"componentId": "724dbab057f14b378ccf4433701bdd88",
"componentType": "电缆敷设",
"componentName": "电缆敷设_0",
"componentTypeCode": "dlfs",
"plannedStartDate": "2023-05-01",
"plannedEndDate": "2023-05-07",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_0_900",
"isLastProcess": 0
},
{
"componentId": "1b5ea1049ee545e68dcee28f484ae4c8",
"componentType": "电缆盖板",
"componentName": "电缆盖板_0",
"componentTypeCode": "dlgb",
"plannedStartDate": "2023-05-01",
"plannedEndDate": "2023-05-07",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_0_900",
"isLastProcess": 0
},
{
"componentId": "6b51c8f5b5834b0887074f54ddd6767f",
"componentType": "恢复护栏",
"componentName": "恢复护栏_0",
"componentTypeCode": "hfhl",
"plannedStartDate": "2023-05-01",
"plannedEndDate": "2023-05-07",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_0_900",
"isLastProcess": 1
}
]
},
{
"id": "1644225457705893889",
"workContent": "电缆敷设_1",
"completeStatus": "未开始",
"detail": [
{
"componentId": "bee0f074d11d476d907f55dc9ce93e68",
"componentType": "电缆敷设",
"componentName": "电缆敷设_1",
"componentTypeCode": "dlfs",
"plannedStartDate": "2023-05-08",
"plannedEndDate": "2023-05-15",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_1_900",
"isLastProcess": 0
},
{
"componentId": "73b87f88ce494fdfbc9ef86298a9ebb9",
"componentType": "电缆盖板",
"componentName": "电缆盖板_1",
"componentTypeCode": "dlgb",
"plannedStartDate": "2023-05-08",
"plannedEndDate": "2023-05-15",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_1_900",
"isLastProcess": 0
},
{
"componentId": "e167458070dd420f99e73442ccbf3741",
"componentType": "恢复护栏",
"componentName": "恢复护栏_1",
"componentTypeCode": "hfhl",
"plannedStartDate": "2023-05-08",
"plannedEndDate": "2023-05-15",
"actualCompletionTime": "",
"workStatus": "未开始",
"workStatusCode": "NOT_START",
"positionInfo": "L_1_900",
"isLastProcess": 1
}
]
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -5,12 +5,21 @@ body { padding: 0; margin: 0 }
#unity-canvas { background: #231F20 } #unity-canvas { background: #231F20 }
.unity-mobile #unity-canvas { width: 100%; height: 100% } .unity-mobile #unity-canvas { width: 100%; height: 100% }
#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none } #unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
#unity-logo { width: 154px; height: 130px; background: url('unity-logo-dark.png') no-repeat center } /* #unity-logo { width: 154px; height: 130px; background: url('unity-logo-dark.png') no-repeat center } */
#unity-logo { width: 154px; height: 130px; }
#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-dark.png') no-repeat center } #unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-dark.png') no-repeat center }
#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-dark.png') no-repeat center } #unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-dark.png') no-repeat center }
#unity-footer { position: relative } #unity-footer { position: relative }
.unity-mobile #unity-footer { display: none } .unity-mobile #unity-footer { display: none }
#unity-webgl-logo { float:left; width: 204px; height: 38px; background: url('webgl-logo.png') no-repeat center } /* #unity-webgl-logo { float:left; width: 204px; height: 38px; background: url('webgl-logo.png') no-repeat center } */
#unity-webgl-logo { float:left; width: 204px; height: 38px;}
#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px } #unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px }
#unity-fullscreen-button { float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center } #unity-fullscreen-button { float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center }
#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none } #unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }
#black{
position: absolute;
left: 26%;
top: 35%;
width: 50%;
height: 20%; background: url('block.png') no-repeat center
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -22,6 +22,9 @@
<div id="unity-fullscreen-button"></div> <div id="unity-fullscreen-button"></div>
<div id="unity-build-title">MqttTest</div> --> <div id="unity-build-title">MqttTest</div> -->
</div> </div>
<div id='black'>
</div>
</div> </div>
<script> <script>
var container = document.querySelector("#unity-container"); var container = document.querySelector("#unity-container");
@ -30,7 +33,7 @@
var progressBarFull = document.querySelector("#unity-progress-bar-full"); var progressBarFull = document.querySelector("#unity-progress-bar-full");
var fullscreenButton = document.querySelector("#unity-fullscreen-button"); var fullscreenButton = document.querySelector("#unity-fullscreen-button");
var warningBanner = document.querySelector("#unity-warning"); var warningBanner = document.querySelector("#unity-warning");
var black = document.querySelector("#black");
// Shows a temporary message banner/ribbon for a few seconds, or // Shows a temporary message banner/ribbon for a few seconds, or
// a permanent error message on top of the canvas if type=='error'. // a permanent error message on top of the canvas if type=='error'.
// If type=='warning', a yellow highlight color is used. // If type=='warning', a yellow highlight color is used.
@ -119,7 +122,9 @@
}); });
}; };
function OnSceneLoaded(){ function OnSceneLoaded(){
black.style.display = "none";
window.parent.createMqtt(); window.parent.createMqtt();
} }
function fullScreen(){ function fullScreen(){
@ -136,9 +141,14 @@
} }
function receiveMqttData(string){ function receiveMqttData(string){
if(unity!=null){ if(unity!=null){
console.log('Unity_ReceiveMqttData') console.log('Unity_ReceiveMqttData',string)
unity.SendMessage("GameManager",'Unity_ReceiveMqttData',string); unity.SendMessage("GameManager",'Unity_ReceiveMqttData',string);
} }
}
//获取视频地址
function getVideoUrl(data){
console.log('Unity_ReceiveMqttData',data)
window.parent.gantDialog();
} }
document.body.appendChild(script); document.body.appendChild(script);
</script> </script>

View File

@ -50,7 +50,8 @@ module.exports = {
host: myHost, host: myHost,
proxy: { proxy: {
'/api': { //代理的名字 '/api': { //代理的名字
target: 'http://175.27.191.156:11000/api/', // target: 'http://175.27.191.156:11000/api/',
target: 'http://175.27.191.156:8181/',
// target: 'http://172.16.1.178:5001/', // target: 'http://172.16.1.178:5001/',
// target: 'http://ht.api.umayle.com:2022', // target: 'http://ht.api.umayle.com:2022',
ws: true, ws: true,