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': {
// 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,
pathRewrite: {
'^/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",
"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": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-3.0.2.tgz",

View File

@ -17,6 +17,7 @@
"flv.js": "^1.6.2",
"html2canvas": "^1.4.1",
"js-cookie": "^3.0.1",
"js-md5": "^0.7.3",
"jspdf": "^2.5.1",
"moment": "^2.29.4",
"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],
fontSize: 12,
},
// max:200,
// min:0,
// splitNumber:200,
minInterval:1,
axisLine: {
show: true,
lineStyle: {
@ -211,6 +215,7 @@ export default {
axisTick: {
show: false
},
},
series: [
{

View File

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

View File

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

View File

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

View File

@ -71,17 +71,19 @@ export default {
},
methods: {
initCharts(dataList) {
console.log("dataList",dataList)
let myChart = this.$echarts.init(this.$refs.chart)
var val1data2 = []
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, '今日完成进度']
//
myChart.setOption({
tooltip:{
trigger:'item',
formatter: '{b}{c}%',
formatter: '{b}{c}',
},
graphic: {
elements: [{
@ -105,7 +107,7 @@ export default {
hoverAnimation: true, /// /
label: {
show: true,
formatter: '{b|{b}}:{c|{c}}%',
formatter: '{b|{b}}:{c|{c}}',
padding:[0,0,0,0],
itemStyle: { //
normal: {

View File

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

View File

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

View File

@ -70,7 +70,13 @@ service.interceptors.response.use(
}
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) {
errorMessage(res.msg)
}

View File

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

View File

@ -64,6 +64,7 @@
v-if="videoViewingShow"
:videoName="videoName"
:videoId="videoId"
:thumbnail="thumbnail"
/>
<!-- 进度管理 -->
<ProgressComponents v-if="progressShow" ref="progress"/>
@ -77,8 +78,17 @@
<!-- 左侧模块2 -->
</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
v-if="!type"
:class="[menuType === 0 ? 'childBoxChoose' : 'childBox']"
@click="childBoxClick(0)"
>
<span class="icon1"></span>
<span>首页</span>
<span class="picture1"></span>
</div>
<div
v-if="!type"
:class="[menuType === 1 ? 'childBoxChoose' : 'childBox']"
@ -124,6 +134,22 @@
@click="switchDiv()"
></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>
</template>
@ -140,9 +166,12 @@ import mqtt from "mqtt"; // mqtt协议
import Swiper from "@/components/common/carousel";
import Resize from "../utils/Resize.vue";
import axios from "axios";
import Video from "./video";
import {getWeatherData} from "@/api/api";
import Clickoutside from 'element-ui/src/utils/clickoutside'
export default {
name: "report",
directives: { Clickoutside },
components: {
mdScreenPie,
BarChart,
@ -155,12 +184,14 @@ export default {
VideoSurveillanceComponents,
VideoViewingComponents,
Resize,
Video
},
data() {
return {
weatherImg: require("@/assets/pic/sun.png"),
videoName: "", //
videoId: "", //Id
thumbnail:'',
//
indexShow: true,
//
@ -173,6 +204,7 @@ export default {
progressShow: false,
//
managementShow: false,
openTrue:true,
//
titLeftshow: false,
japIndex: "人员管理",
@ -184,6 +216,7 @@ export default {
weatherItem: {},
tienum: "",
showType: true,
dialogShow: false,
boxList: [
{
c1: "开工",
@ -389,13 +422,14 @@ export default {
],
vdaH: 0,
type: false,
menuType: null,
menuType: 0,
numberList: [5, 5],
boxNone: true,
topicSends:[],
environmentData:[],
closeIndexShow:true,
exitFullShow:false
exitFullShow:false,
src:'../static/flv/videoIndex.html'
};
},
created() {
@ -409,21 +443,26 @@ export default {
window.openBig = this.openBig;
window.closeBig = this.closeBig;
window.createMqtt = this.createMqtt;
window.gantDialog = this.gantDialog;
},
methods: {
//
gantDialog() {
this.dialogShow = true
},
createMqtt() {
this.topicSends = ["/SC/pub/uwb", "/SC/pub/env"];
window.PubScribe(this.topicSends, this.realInfo);
},
/** 实时数据分类 */
realInfo(topic, message) {
let time = new Date();
// let time = new Date();
// console.log("topic",topic)
switch (topic) {
//
case "/SC/pub/uwb":
try {
// console.log("message", message)
console.log("message", message)
const utf8decoder = new TextDecoder()
const u8arr = new Uint8Array(message)
const temp = utf8decoder.decode(u8arr) //
@ -435,7 +474,7 @@ export default {
break;
case "/SC/pub/env":
try {
// console.log("message", message)
console.log("环境message", message)
const utf8decoder = new TextDecoder()
const u8arr = new Uint8Array(message)
const temp = utf8decoder.decode(u8arr) //
@ -615,6 +654,7 @@ export default {
this.titLeftshow = true;
this.videoName = msg.videoName;
this.videoId = msg.videoId;
this.thumbnail = msg.thumbnail;
}
},
tableRowClassName({ row, rowIndex }) {
@ -628,13 +668,29 @@ export default {
openBig() {
this.exitFullShow = true
this.closeIndexShow = false
this.childBoxClick(this.menuType)
document.getElementById("unityModule").contentWindow.fullScreen();
this.openTrue =false
},
//
closeBig() {
this.exitFullShow = false
this.closeIndexShow = true
this.openTrue =true
this.childBoxClick(this.menuType)
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) {
@ -703,6 +759,22 @@ export default {
//
this.$refs.switchBtn.style.display = "block";
}, 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() {
@ -885,7 +957,45 @@ export default {
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 {
width: 105px;
height: 28px;
@ -1298,7 +1408,7 @@ export default {
span:nth-child(2) {
display: inline-block;
position: absolute;
right: 85px;
right: 92px;
width: 18px;
height: 18px;
// background: url("~@/assets/pic/sun.png") no-repeat;
@ -1324,7 +1434,7 @@ export default {
.header .title {
width: 100%;
height: 168px;
background: url("~@/assets/pic/title1.png") no-repeat;
background: url("~@/assets/pic/title1 (2).png") no-repeat;
background-size: 100% 100%;
position: absolute;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -43,8 +43,8 @@
margin-left: -1.5em;
}
.videojs-flvjs-player-dimensions {
width: 95%!important;
height: 200px!important;
width: 100%!important;
height: 217px!important;
overflow-x: hidden;
overflow-y: hidden;
}
@ -94,17 +94,36 @@ var player = null;
};
// 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 getVueMsg(event){
const res = event.data;
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){
console.log(msg)
player.play();
// flvUrl = msg
// initPlayer(msg);
// player.play();
}
function initPlayer(){
// console.log("val",val)
var videoContainer = document.getElementById("videoContainer");
var pObjs = videoContainer.childNodes;
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",
"time_nodes":[
{
"node":"2023/2/1",
"info":"开工"
"node":"2023/2/01",
"info":"土建_0"
},
{
"node":"2023/3/1",
"info":"护栏拆除"
"node":"2023/2/8",
"info":"土建_1"
},
{
"node":"2023/3/25",
"info":"放置预制砼"
"node":"2023/2/16",
"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",

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-mobile #unity-canvas { width: 100%; height: 100% }
#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-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-dark.png') no-repeat center }
#unity-footer { position: relative }
.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-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 }
#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-build-title">MqttTest</div> -->
</div>
<div id='black'>
</div>
</div>
<script>
var container = document.querySelector("#unity-container");
@ -30,7 +33,7 @@
var progressBarFull = document.querySelector("#unity-progress-bar-full");
var fullscreenButton = document.querySelector("#unity-fullscreen-button");
var warningBanner = document.querySelector("#unity-warning");
var black = document.querySelector("#black");
// Shows a temporary message banner/ribbon for a few seconds, or
// a permanent error message on top of the canvas if type=='error'.
// If type=='warning', a yellow highlight color is used.
@ -119,7 +122,9 @@
});
};
function OnSceneLoaded(){
black.style.display = "none";
window.parent.createMqtt();
}
function fullScreen(){
@ -136,9 +141,14 @@
}
function receiveMqttData(string){
if(unity!=null){
console.log('Unity_ReceiveMqttData')
console.log('Unity_ReceiveMqttData',string)
unity.SendMessage("GameManager",'Unity_ReceiveMqttData',string);
}
}
//获取视频地址
function getVideoUrl(data){
console.log('Unity_ReceiveMqttData',data)
window.parent.gantDialog();
}
document.body.appendChild(script);
</script>

View File

@ -50,7 +50,8 @@ module.exports = {
host: myHost,
proxy: {
'/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://ht.api.umayle.com:2022',
ws: true,