flx:提交视频监控

This commit is contained in:
Rain_ 2025-09-30 18:42:16 +08:00
parent ad9dd0ac4f
commit 42009789c8
6 changed files with 3282 additions and 2987 deletions

View File

@ -6,3 +6,7 @@
[0929/090447.874:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090448.024:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090501.978:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163244.965:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163245.034:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163246.926:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163247.976:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)

View File

@ -414,13 +414,19 @@ export default {
}
}
if (controls) {
console.log(
888777,
iWndIndex,
_this.devH5List.length - 1
// console.log(
// 888777,
// iWndIndex,
// _this.devH5List.length - 1
// );
// if (iWndIndex > _this.devH5List.length - 1) return;
// controls.classList.add("video-controls_flex");
const player_playVideo = wnd.querySelector(
`#player_playVideo${iWndIndex}`
);
if (iWndIndex > _this.devH5List.length - 1) return;
controls.classList.add("video-controls_flex");
if (player_playVideo.src) {
controls.classList.add("video-controls_flex");
}
}
}
},
@ -589,6 +595,16 @@ export default {
// _this.stopPlay(index);
}
);
_this.player.JS_SetConnectTimeOut(index, 60).then(
() => {
console.info("JS_SetConnectTimeOut success");
// do you want...
},
(err) => {
console.info("JS_SetConnectTimeOut failed", err);
// do you want...
}
);
});
},
/**

View File

@ -1,18 +1,29 @@
<template>
<!-- 项目列表 -->
<div class="fullHeight pages">
<vhead :titleName="$t('message.homeLayout.projectTitle')" showR="true"></vhead>
<vhead
:titleName="$t('message.homeLayout.projectTitle')"
showR="true"
></vhead>
<div class="pageContainer">
<div class="pageDataContainer">
<!-- <div class="projectList"> -->
<div class="searchBox whiteBlock" v-if="userInfo.accountType!=5">
<el-form :inline="true" size="medium" :model="searchForm" ref="searchForm">
<el-form-item :label="$t('message.companyDiagram.titleName1')" prop="firstCompanyId">
<div class="searchBox whiteBlock" v-if="userInfo.accountType != 5">
<el-form
:inline="true"
size="medium"
:model="searchForm"
ref="searchForm"
>
<el-form-item
:label="$t('message.companyDiagram.titleName1')"
prop="firstCompanyId"
>
<el-select
v-model="searchForm.firstCompanyId"
:placeholder="$t('message.companyDiagram.PleaseSelect')"
@change="selectStair"
:disabled="userInfo.accountType!=2"
:disabled="userInfo.accountType != 2"
clearable
>
<el-option
@ -23,11 +34,18 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.companyDiagram.titleName2')" prop="secondCompanyId">
<el-select @change="selectSecondStair"
<el-form-item
:label="$t('message.companyDiagram.titleName2')"
prop="secondCompanyId"
>
<el-select
@change="selectSecondStair"
v-model="searchForm.secondCompanyId"
:placeholder="$t('message.companyDiagram.PleaseSelect')"
:disabled="userInfo.accountType!=2 && userInfo.accountType!=3 || searchForm.firstCompanyId==''"
:disabled="
(userInfo.accountType != 2 && userInfo.accountType != 3) ||
searchForm.firstCompanyId == ''
"
clearable
>
<el-option
@ -42,7 +60,12 @@
<el-select
v-model="searchForm.thirdCompanyId"
:placeholder="$t('message.companyDiagram.PleaseSelect')"
:disabled="userInfo.accountType!=2 && userInfo.accountType!=3&& userInfo.accountType!=4 || searchForm.secondCompanyId==''"
:disabled="
(userInfo.accountType != 2 &&
userInfo.accountType != 3 &&
userInfo.accountType != 4) ||
searchForm.secondCompanyId == ''
"
clearable
>
<el-option
@ -65,8 +88,12 @@
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="getListData">{{$t('message.docManage.query')}}</el-button>
<el-button type="warning" plain @click="resetForm">{{$t('message.docManage.refresh')}}</el-button>
<el-button type="primary" plain @click="getListData">{{
$t("message.docManage.query")
}}</el-button>
<el-button type="warning" plain @click="resetForm">{{
$t("message.docManage.refresh")
}}</el-button>
</el-form-item>
</el-form>
</div>
@ -85,7 +112,9 @@
></el-table-column>
<el-table-column
prop="projectNumber"
:label="$t('message.companyDiagram.dialog_ProjectPop_up.projectNumber')"
:label="
$t('message.companyDiagram.dialog_ProjectPop_up.projectNumber')
"
align="center"
></el-table-column>
<el-table-column
@ -100,32 +129,39 @@
></el-table-column>
<el-table-column
prop="projectAddress"
:label="$t('message.companyDiagram.dialog_ProjectPop_up.projectAddress')"
:label="
$t('message.companyDiagram.dialog_ProjectPop_up.projectAddress')
"
align="center"
></el-table-column>
<el-table-column
prop="bulidStatus"
:label="$t('message.companyDiagram.dialog_ProjectPop_up.bulidStatus')"
:label="
$t('message.companyDiagram.dialog_ProjectPop_up.bulidStatus')
"
align="center"
>
<template
slot-scope="scope"
>
{{$t('message.companyDiagram.BUILDSTATUS')[scope.row.bulidStatus==4?3:scope.row.bulidStatus].name}}
<template slot-scope="scope">
{{
$t("message.companyDiagram.BUILDSTATUS")[
scope.row.bulidStatus == 4 ? 3 : scope.row.bulidStatus
].name
}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="400">
<template slot-scope="scope">
<div v-if="$store.state.userInfo.styleType==2"
class="operationText"
@click="goProjectBigScreen(scope.row)"
<div
v-if="$store.state.userInfo.styleType == 2"
class="operationText"
@click="goProjectBigScreen(scope.row)"
>
进入项目级大屏
</div>
<div v-if="$store.state.userInfo.styleType==3"
class="operationText"
@click="goProjectQu(scope.row)"
<div
v-if="$store.state.userInfo.styleType == 3"
class="operationText"
@click="goProjectQu(scope.row)"
>
进入衢州版本
</div>
@ -133,16 +169,32 @@
class="operationText"
style="margin-right: 30px"
@click="toOverview(scope.row.projectSn)"
>进入数据看板</div>
<div v-if="($store.state.userInfo.styleType!=2 && $store.state.userInfo.styleType!=3) && $store.state.userInfo.enterProjectBackType === 0"
>
进入数据看板
</div>
<div
v-if="
$store.state.userInfo.styleType != 2 &&
$store.state.userInfo.styleType != 3 &&
$store.state.userInfo.enterProjectBackType === 0
"
class="operationText"
style="margin-right: 30px"
@click="goProjectIndex(scope.row)"
>{{$t('message.companyDiagram.goProjectBackEnd')}}</div>
<div v-if="($store.state.userInfo.styleType!=2 && $store.state.userInfo.styleType!=3) && $store.state.userInfo.seeEquipment === 0"
>
{{ $t("message.companyDiagram.goProjectBackEnd") }}
</div>
<div
v-if="
$store.state.userInfo.styleType != 2 &&
$store.state.userInfo.styleType != 3 &&
$store.state.userInfo.seeEquipment === 0
"
class="operationText"
@click="goDevCenter(scope.row)"
>{{$t('message.companyDiagram.goDevCenter')}}</div>
>
{{ $t("message.companyDiagram.goDevCenter") }}
</div>
</template>
</el-table-column>
</el-table>
@ -167,11 +219,9 @@ import {
getLayerCompanyList,
selectCompanyProjectPage,
} from "@/assets/js/api/project.js";
import {
getComapnyStatisticsListApi,
} from "@/assets/js/api/company/project";
import { getComapnyStatisticsListApi } from "@/assets/js/api/company/project";
import { getProjectDetail } from "@/assets/js/api/baseInfo.js";
import { getScreenAuthModuleAndMenuApi } from '@/assets/js/api/jxjadmin.js'
import { getScreenAuthModuleAndMenuApi } from "@/assets/js/api/jxjadmin.js";
import vhead from "@/components/header";
export default {
name: "projectList",
@ -183,7 +233,7 @@ export default {
firstCompanyId: "",
secondCompanyId: "",
projectName: "",
thirdCompanyId:""
thirdCompanyId: "",
},
total: 0,
pageNo: 1,
@ -192,7 +242,7 @@ export default {
institutionList1: [], //
institutionList2: [], //
institutionList3: [], //
newBigScreen: []
newBigScreen: [],
};
},
created() {
@ -202,12 +252,12 @@ export default {
},
methods: {
async getAuthModuleAndMenu() {
let bool = false
const res = await getScreenAuthModuleAndMenuApi()
let bool = false;
const res = await getScreenAuthModuleAndMenuApi();
if (res.code === 200) {
bool = res.result.length ? true : false
bool = res.result.length ? true : false;
}
return bool
return bool;
},
async toOverview(projectSn) {
this.$forceUpdate();
@ -219,19 +269,22 @@ export default {
// type: "warning",
// });
// } else {
const isPermission = await this.getAuthModuleAndMenu()
if(!isPermission && !this.newBigScreen) {
return this.$message({
message: "当前用户没有访问数据看板权限",
type: "warning",
});
}
console.log("当前跳转链接", this.newBigScreen);
//--------------------
this.jumpToken = localStorage.getItem("jumpToken");
let userId = this.$store.state.userInfo.userId;
window.open(this.newBigScreen + "?userId=" + userId + '&sn=' + projectSn, "_self");
// window.open('http://192.168.34.216:8081/#/large?userId=' + userId + '&sn=' + this.$store.state.projectSn, "_self")//token
const isPermission = await this.getAuthModuleAndMenu();
if (!isPermission && !this.newBigScreen) {
return this.$message({
message: "当前用户没有访问数据看板权限",
type: "warning",
});
}
console.log("当前跳转链接", this.newBigScreen);
//--------------------
this.jumpToken = localStorage.getItem("jumpToken");
let userId = this.$store.state.userInfo.userId;
window.open(
this.newBigScreen + "?userId=" + userId + "&sn=" + projectSn,
"_self"
);
// window.open('http://192.168.34.216:8081/#/large?userId=' + userId + '&sn=' + this.$store.state.projectSn, "_self")//token
// }
},
async getProjectDetail(projectSn) {
@ -241,11 +294,11 @@ export default {
await getProjectDetail(data).then((res) => {
if (res.result) {
if (res.result.newBigScreen) {
this.newBigScreen = res.result.newBigScreen
console.log('接口获取数据看板地址', this.newBigScreen)
}else{
this.newBigScreen = "/bigscreen/#/large"
console.log('获取默认地址', this.newBigScreen)
this.newBigScreen = res.result.newBigScreen;
console.log("接口获取数据看板地址", this.newBigScreen);
} else {
this.newBigScreen = "/bigscreen/#/large";
console.log("获取默认地址", this.newBigScreen);
}
}
});
@ -253,64 +306,82 @@ export default {
//
getLayerCompany() {
let data = {
sn: this.userInfo.headquartersSn,
// sn: this.userInfo.headquartersSn,
sn: this.userInfo.sn,
videoType: 0,
};
getComapnyStatisticsListApi(data).then((res) => {
if (res.code == 200) {
// ;
this.institutionList1 = res.result.companyList;
let DATA = res.result.companyList
// this.institutionList1 = [...res.result.companyList] || [];
// let DATA = res.result.companyList || [];
console.log(222, this.userInfo.accountType);
//accountType==2
if (this.userInfo.accountType == 2) {
// this.institutionList2 = res.result[0].list;
// this.institutionList3 = this.institutionList2[0].list;
//accountType==3
} else if (this.userInfo.accountType == 3) {
for (let i in DATA) {
if (DATA[i].companySn == this.userInfo.sn) {
this.institutionList1.push(DATA[i]);
this.searchForm.firstCompanyId = DATA[i].companyId;
this.institutionList2 = DATA[i].list;
}
}
// for (let i in DATA) {
// if (DATA[i].companySn == this.userInfo.sn) {
// // this.institutionList1.push(DATA[i]);
// this.searchForm.firstCompanyId = DATA[i].companyId;
// this.institutionList2 = DATA[i].list;
// }
// }
this.searchForm.firstCompanyId = res.result.companyInfo.companyId;
this.institutionList2 = res.result.companyList;
this.institutionList1.push({
...res.result.companyInfo,
});
console.log(this.institutionList1);
//accountType==4
} else if (this.userInfo.accountType == 4) {
for (let i in DATA) {
let list = DATA[i].list;
if (list.length > 0) {
for (let j in list) {
if (this.userInfo.sn == list[j].companySn) {
this.institutionList1.push(DATA[i]);
this.institutionList2.push(list[j]);
this.searchForm.firstCompanyId = DATA[i].companyId;
this.searchForm.secondCompanyId = list[j].companyId;
this.institutionList3 = list[j].list;
}
}
}
}
}else if (this.userInfo.accountType == 7) {
for (let i in DATA) {
let list = DATA[i].list;
if (list.length > 0) {
for (let j in list) {
let list2 = list[j].list;
for (let k in list2) {
if (this.userInfo.sn == list2[k].companySn) {
this.institutionList1.push(DATA[i]);
this.institutionList2.push(list[j]);
this.searchForm.firstCompanyId = DATA[i].companyId;
this.searchForm.secondCompanyId = list[j].companyId;
this.searchForm.thirdCompanyId = list2[k].companyId;
this.institutionList3.push(list2[k])
}
}
}
}
}
// for (let i in DATA) {
// let list = DATA[i].list;
// if (list.length > 0) {
// for (let j in list) {
// if (this.userInfo.sn == list[j].companySn) {
// this.institutionList1.push(DATA[i]);
// this.institutionList2.push(list[j]);
// this.searchForm.firstCompanyId = DATA[i].companyId;
// this.searchForm.secondCompanyId = list[j].companyId;
// this.institutionList3 = list[j].list;
// }
// }
// }
// }
this.searchForm.firstCompanyId = res.result.parentCompany.companyId;
this.searchForm.secondCompanyId = res.result.companyInfo.companyId;
this.institutionList3 = res.result.companyList;
this.institutionList1 = [res.result.parentCompany];
this.institutionList2 = [res.result.companyInfo];
} else if (this.userInfo.accountType == 7) {
this.searchForm.firstCompanyId = res.result.firstCompany.companyId;
this.searchForm.secondCompanyId =
res.result.parentCompany.companyId;
this.searchForm.thirdCompanyId = res.result.companyInfo.companyId;
this.institutionList1 = [res.result.firstCompany];
this.institutionList2 = [res.result.parentCompany];
this.institutionList3 = [res.result.companyInfo];
// for (let i in DATA) {
// let list = DATA[i].list;
// if (list.length > 0) {
// for (let j in list) {
// let list2 = list[j].list;
// for (let k in list2) {
// if (this.userInfo.sn == list2[k].companySn) {
// this.institutionList1.push(DATA[i]);
// this.institutionList2.push(list[j]);
// this.searchForm.firstCompanyId = DATA[i].companyId;
// this.searchForm.secondCompanyId = list[j].companyId;
// this.searchForm.thirdCompanyId = list2[k].companyId;
// this.institutionList3.push(list2[k]);
// }
// }
// }
// }
// }
}
// console.log(this.institutionList1)
// console.log(this.institutionList2)
@ -324,7 +395,12 @@ export default {
//
selectStair(id) {
window._paq.push(['trackEvent', '下拉选择', '一级管理机构','选择一级管理机构' ])
window._paq.push([
"trackEvent",
"下拉选择",
"一级管理机构",
"选择一级管理机构",
]);
for (let i in this.institutionList1) {
if (this.institutionList1[i].companyId == id) {
this.institutionList2 = this.institutionList1[i].list;
@ -333,7 +409,12 @@ export default {
},
//
selectSecondStair(id) {
window._paq.push(['trackEvent', '下拉选择', '二级管理机构','选择二级管理机构' ])
window._paq.push([
"trackEvent",
"下拉选择",
"二级管理机构",
"选择二级管理机构",
]);
for (let i in this.institutionList2) {
if (this.institutionList2[i].companyId == id) {
this.institutionList3 = this.institutionList2[i].list;
@ -350,7 +431,7 @@ export default {
firstCompanyId: this.searchForm.firstCompanyId,
secondCompanyId: this.searchForm.secondCompanyId,
projectName: this.searchForm.projectName,
thirdCompanyId:this.searchForm.thirdCompanyId
thirdCompanyId: this.searchForm.thirdCompanyId,
};
let value2 = {
headquartersSn: this.userInfo.headquartersSn,
@ -366,30 +447,30 @@ export default {
this.total = Number(res.result.total);
}
});
window._paq.push(['trackEvent', '点击', '查询','查询项目列表' ])
window._paq.push(["trackEvent", "点击", "查询", "查询项目列表"]);
},
resetForm() {
// this.$refs["searchForm"].resetFields();
if(this.userInfo.accountType==2){
this.searchForm.firstCompanyId=''
this.searchForm.secondCompanyId=''
this.searchForm.thirdCompanyId=''
if (this.userInfo.accountType == 2) {
this.searchForm.firstCompanyId = "";
this.searchForm.secondCompanyId = "";
this.searchForm.thirdCompanyId = "";
}
if(this.userInfo.accountType==3){
this.searchForm.secondCompanyId=''
this.searchForm.thirdCompanyId=''
if (this.userInfo.accountType == 3) {
this.searchForm.secondCompanyId = "";
this.searchForm.thirdCompanyId = "";
}
// if(this.userInfo.accountType!=2 && this.userInfo.accountType!=3){
// }else{
// this.searchForm.secondCompanyId=''
// }
if(this.userInfo.accountType==4){
this.searchForm.thirdCompanyId=''
if (this.userInfo.accountType == 4) {
this.searchForm.thirdCompanyId = "";
}
this.searchForm.projectName=''
this.searchForm.projectName = "";
this.getListData();
window._paq.push(['trackEvent', '点击', '刷新','刷新项目列表' ])
window._paq.push(["trackEvent", "点击", "刷新", "刷新项目列表"]);
},
//
handleSizeChange(val) {
@ -402,7 +483,7 @@ export default {
this.getListData();
},
//
goProjectBigScreen(value){
goProjectBigScreen(value) {
this.$store.commit("setProjectSn", value.projectSn);
this.$store.commit("setProDetail", value);
this.$store.commit("changeMouduleIndex", 0);
@ -411,14 +492,14 @@ export default {
this.$store.commit("changeFourMenuIndex", 0);
let routeUrl = this.$router.resolve({
path: '/projectV2/taskList'
});
window.open(routeUrl.href, "_blank");
window._paq.push(['trackEvent', '点击', '项目级大屏','进入项目级大屏' ])
path: "/projectV2/taskList",
});
window.open(routeUrl.href, "_blank");
window._paq.push(["trackEvent", "点击", "项目级大屏", "进入项目级大屏"]);
},
//
goProjectQu(value){
console.log('进去衢州',value)
goProjectQu(value) {
console.log("进去衢州", value);
this.$store.commit("setProjectSn", value.projectSn);
this.$store.commit("setProDetail", value);
this.$store.commit("changeMouduleIndex", 0);
@ -426,36 +507,36 @@ export default {
this.$store.commit("changeThirdMenuIndex", 0);
this.$store.commit("changeFourMenuIndex", 0);
let routeUrl = this.$router.resolve({
path: '/projectV3/taskList'
});
window.open(routeUrl.href, "_blank");
localStorage.removeItem("active");
localStorage.removeItem("path");
localStorage.removeItem("treeActive");
path: "/projectV3/taskList",
});
window.open(routeUrl.href, "_blank");
localStorage.removeItem("active");
localStorage.removeItem("path");
localStorage.removeItem("treeActive");
},
//
goProjectIndex(value) {
this.$store.commit("setProjectSn", value.projectSn);
let routeUrl = this.$router.resolve({
path: '/projectIndex'
});
window.open(routeUrl.href, "_self");
window.location.reload()
window._paq.push(['trackEvent', '点击', '项目后台','进入项目后台' ])
sessionStorage.setItem('messageA',this.messageA)
path: "/projectIndex",
});
window.open(routeUrl.href, "_self");
window.location.reload();
window._paq.push(["trackEvent", "点击", "项目后台", "进入项目后台"]);
sessionStorage.setItem("messageA", this.messageA);
},
//
goDevCenter(value) {
console.log('跳跳跳')
this.$store.commit("setProjectSn", value.projectSn);
window.open("/equipmentCenter.html#/equipmentCenterIndx", "_self");
window._paq.push(['trackEvent', '点击', '设备中台','进入设备中台' ])
},
console.log("跳跳跳");
this.$store.commit("setProjectSn", value.projectSn);
window.open("/equipmentCenter.html#/equipmentCenterIndx", "_self");
window._paq.push(["trackEvent", "点击", "设备中台", "进入设备中台"]);
},
},
};
</script>
<style lang="less" scoped>
.pageContainer{
.pageContainer {
height: calc(100% - 61px);
::-webkit-scrollbar {
width: 7px;
@ -463,24 +544,24 @@ export default {
background-color: white;
}
::-webkit-scrollbar-thumb {
box-shadow: inset 0 0 0px white;
-webkit-box-shadow: inset 0 0 0px white;
background-color: rgb(193, 193, 193);
/*滚动条的背景颜色*/
border-radius: 20px;
box-shadow: inset 0 0 0px white;
-webkit-box-shadow: inset 0 0 0px white;
background-color: rgb(193, 193, 193);
/*滚动条的背景颜色*/
border-radius: 20px;
}
/*解决表格固定列时的压样式问题*/
.el-table__fixed {
height: calc(100% - 7px) !important;
}
.el-table__fixed {
height: calc(100% - 7px) !important;
}
.el-table__fixed-right {
height: calc(100% - 12px) !important;
height: calc(100% - 12px) !important;
}
.el-table__fixed-right::before,
.el-table__fixed::before {
background-color: unset !important;
background-color: unset !important;
}
}
.searchBox {

File diff suppressed because it is too large Load Diff

View File

@ -640,8 +640,14 @@ export default {
}
}
if (controls) {
if (iWndIndex > _this.devH5List.length - 1) return;
controls.classList.add("video-controls_flex");
// if (iWndIndex > _this.devH5List.length - 1) return;
// controls.classList.add("video-controls_flex");
const player_playVideo = wnd.querySelector(
`#player_playVideo${iWndIndex}`
);
if (player_playVideo.src) {
controls.classList.add("video-controls_flex");
}
}
}
},
@ -736,7 +742,9 @@ export default {
// itemId: row.itemId,
serialNumber: row.serialNumber,
projectSn: row.projectSn,
protocol: window.location.protocol.includes("https") ? "wss" : "ws",
protocol: window.location.protocol.includes("https")
? "wss"
: "ws",
beginTime: this.startTime,
endTime: this.endTime,
@ -832,6 +840,16 @@ export default {
_this.$message.warning(obj[err] || "播放失败");
}
);
_this.player.JS_SetConnectTimeOut(index, 60).then(
() => {
console.info("JS_SetConnectTimeOut success");
// do you want...
},
(err) => {
console.info("JS_SetConnectTimeOut failed", err);
// do you want...
}
);
});
},
/**