flx:优化

This commit is contained in:
Rain_ 2025-09-29 09:16:14 +08:00
parent a33fc66663
commit 67323cf8df
7 changed files with 2653 additions and 2375 deletions

View File

@ -1,2 +1,8 @@
[0524/103228.221:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/171244.522:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/113505.640:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/113508.674:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/141801.489:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/141801.943:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090447.805:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[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)

View File

@ -16,8 +16,10 @@
<!-- <i class="el-icon-user-solid"></i> -->
<el-image
v-if="$store.state.userInfo.avatar"
:src="$store.state.FILEURL + $store.state.userInfo.avatar"
style="width: 40px;height: 40px;border-radius: 50%;"
:src="
$store.state.FILEURL + $store.state.userInfo.avatar
"
style="width: 40px; height: 40px; border-radius: 50%"
>
<div slot="error" class="image-slot">
<el-avatar
@ -26,12 +28,22 @@
></el-avatar>
</div>
</el-image>
<el-avatar size="large" icon="el-icon-user-solid" v-else></el-avatar>
<el-avatar
size="large"
icon="el-icon-user-solid"
v-else
></el-avatar>
<div style="margin-left: 10px">
<p>{{ $store.state.userInfo.companyName }}</p>
<!-- 横琴和鹤洲不需要客服电话-->
<p v-if="projectType == 'common' || projectType == 'zjsj'">
客服电话{{ $store.state.userInfo.customerServicePhone }}
<p
v-if="
projectType == 'common' || projectType == 'zjsj'
"
>
客服电话{{
$store.state.userInfo.customerServicePhone
}}
</p>
<p
v-if="
@ -39,7 +51,9 @@
$store.state.currentProDetail != null
"
>
入场码{{ $store.state.currentProDetail.placeCode }}
入场码{{
$store.state.currentProDetail.placeCode
}}
</p>
</div>
</div>
@ -60,8 +74,10 @@
class="width_100"
@click="goto5()"
v-if="
$route.path.indexOf('/firm/projectManage') == -1 &&
![5, 6, 10].includes($store.state.userInfo.accountType)
$route.path.indexOf('/firm/') == -1 &&
![5, 6, 10].includes(
$store.state.userInfo.accountType
)
"
:title="enterpriseFront"
>
@ -78,8 +94,12 @@
class="width_100"
@click="goto2"
v-if="
$route.path.indexOf('/companyAdmin/companyDiagram') == -1 &&
![5, 6, 10].includes($store.state.userInfo.accountType)
$route.path.indexOf(
'/companyAdmin/companyDiagram'
) == -1 &&
![5, 6, 10].includes(
$store.state.userInfo.accountType
)
"
:title="enterpriseBackground"
>
@ -148,7 +168,10 @@
<div
class="width_100"
@click="goto3"
v-if="$store.state.userInfo.systemLogoConfig?.showFileCenter == 1"
v-if="
$store.state.userInfo.systemLogoConfig
?.showFileCenter == 1
"
:title="dataCenter"
>
<!-- <img src="@/assets/images/zlzx.png" width="15px" height="15px" /> -->
@ -166,30 +189,39 @@
@click="goto6()"
v-if="
$route.path.indexOf('/firm/projectManage') == -1 &&
$store.state.userInfo.systemLogoConfig.isShowProjectFront == 1 &&
$store.state.userInfo.systemLogoConfig
.isShowProjectFront == 1 &&
[5, 6].includes($store.state.userInfo.accountType)
"
:title="projectFront"
>
<img src="@/assets/images/xmht.png" width="15px" height="15px" />
<img
src="@/assets/images/xmht.png"
width="15px"
height="15px"
/>
<span>{{ projectFront }}</span>
</div>
<!-- 数据看板 -->
<div
class="width_100"
@click="toOverview()"
v-if="
$route.path.indexOf('/projectList') == -1
"
v-if="$route.path.indexOf('/projectList') == -1"
title="数据看板"
>
<img src="@/assets/images/xmht.png" width="15px" height="15px" />
<img
src="@/assets/images/xmht.png"
width="15px"
height="15px"
/>
<span>数据看板</span>
</div>
</div>
<div class="flex2 logout" v-if="!$store.state.uid">
<span @click="loginOut">{{ $t("message.login.logout") }}</span>
<span @click="loginOut">{{
$t("message.login.logout")
}}</span>
<span @click="updatePw">修改密码</span>
</div>
</div>
@ -213,11 +245,9 @@
</div>
</template>
<script>
import {
getNewUserAllModulePageApi,
} from "@/assets/js/api/jxjadmin.js";
import { getNewUserAllModulePageApi } from "@/assets/js/api/jxjadmin.js";
import { getProjectDetail } from "@/assets/js/api/baseInfo.js";
import { getScreenAuthModuleAndMenuApi } from '@/assets/js/api/jxjadmin.js'
import { getScreenAuthModuleAndMenuApi } from "@/assets/js/api/jxjadmin.js";
export default {
data() {
return {
@ -280,19 +310,19 @@ 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;
},
toOverview() {
console.info(this.$store.state.userInfo.accountType,'----')
if(![5, 6, 10].includes(this.$store.state.userInfo.accountType)) {
return this.goProjectBackstage()
console.info(this.$store.state.userInfo.accountType, "----");
if (![5, 6, 10].includes(this.$store.state.userInfo.accountType)) {
return this.goProjectBackstage();
}
this.toOverview2()
this.toOverview2();
},
async toOverview2() {
this.$forceUpdate();
@ -304,8 +334,8 @@ export default {
// type: "warning",
// });
// } else {
const isPermission = await this.getAuthModuleAndMenu()
if(!isPermission && !this.newBigScreen) {
const isPermission = await this.getAuthModuleAndMenu();
if (!isPermission && !this.newBigScreen) {
return this.$message({
message: "当前用户没有访问数据看板权限",
type: "warning",
@ -315,7 +345,14 @@ export default {
//--------------------
this.jumpToken = localStorage.getItem("jumpToken");
let userId = this.$store.state.userInfo.userId;
window.open(this.newBigScreen + "?userId=" + userId + '&sn=' + this.$store.state.projectSn, "_self");
window.open(
this.newBigScreen +
"?userId=" +
userId +
"&sn=" +
this.$store.state.projectSn,
"_self"
);
// window.open('http://192.168.34.216:8081/#/large?userId=' + userId + '&sn=' + this.$store.state.projectSn, "_self")//token
// }
},
@ -325,8 +362,13 @@ 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);
}
}
});
},
@ -362,7 +404,10 @@ export default {
window.open("/#" + menuList[0].modulePath, "_self");
// /index.html#/
if (COMPANY == "nanchang") {
window.open("/index.html#" + menuList[0].modulePath, "_self");
window.open(
"/index.html#" + menuList[0].modulePath,
"_self"
);
} else {
window.open("/#" + menuList[0].modulePath, "_self");
}
@ -372,7 +417,12 @@ export default {
});
}
window.open(routeUrl.href, "_self");
window._paq.push(["trackEvent", "点击", "企业后台", "进入企业后台"]);
window._paq.push([
"trackEvent",
"点击",
"企业后台",
"进入企业后台",
]);
} else {
this.$message.warning("您没有企业后台的权限!");
}
@ -398,7 +448,12 @@ export default {
});
}
window.open(routeUrl.href, "_self");
window._paq.push(["trackEvent", "点击", "资料中心", "进入资料中心"]);
window._paq.push([
"trackEvent",
"点击",
"资料中心",
"进入资料中心",
]);
},
goto4() {
window.open("/equipmentCenter.html#/equipmentCenterIndx", "_blank");
@ -452,9 +507,13 @@ export default {
//退sn
const baseUrl = "/#"; // URL
const query =
"?&headquartersSn=" + this.$store.state.userInfo.headquartersSn; //
"?&headquartersSn=" +
this.$store.state.userInfo.headquartersSn; //
const loginUrl = `${baseUrl}/login${query}`; //
console.log(this.$route.path.indexOf("/projectIndex") == 0, "退出登录");
console.log(
this.$route.path.indexOf("/projectIndex") == 0,
"退出登录"
);
window.open(loginUrl, "_self");
// this.$router.go();
// if( this.$route.path.indexOf('/projectIndex') == 0 ) {
@ -487,7 +546,12 @@ export default {
});
}
window.open(routeUrl.href, "_self");
window._paq.push(["trackEvent", "点击", "项目后台", "进入项目后台"]);
window._paq.push([
"trackEvent",
"点击",
"项目后台",
"进入项目后台",
]);
},
//
goDevcenter(value) {
@ -495,8 +559,16 @@ export default {
let type = this.$store.state.userInfo.accountType;
// this.$store.commit("setProjectSn", value.projectSn);
if (type == 5 || type == 6 || type == 10) {
window.open("/equipmentCenter.html#/equipmentCenterIndx", "_self");
window._paq.push(["trackEvent", "点击", "设备中台", "进入设备中台"]);
window.open(
"/equipmentCenter.html#/equipmentCenterIndx",
"_self"
);
window._paq.push([
"trackEvent",
"点击",
"设备中台",
"进入设备中台",
]);
} else {
routeUrl = this.$router.resolve({
path: "/projectList",

View File

@ -25,7 +25,10 @@
:content="`${recordingBegin ? '结束' : '开始'}录制`"
placement="top"
>
<div class="bgImage transcribe" @click="isTranscribe(i)"></div>
<div
class="bgImage transcribe"
@click="isTranscribe(i)"
></div>
</el-tooltip>
<el-tooltip
class="item"
@ -33,7 +36,10 @@
:content="`抓图`"
placement="top"
>
<div class="bgImage screenshot" @click="capture('JPEG', i)"></div>
<div
class="bgImage screenshot"
@click="capture('JPEG', i)"
></div>
</el-tooltip>
<!-- <div>流畅</div> -->
@ -57,7 +63,9 @@
>
<div
class="bgImage"
:class="isFullScreen ? 'exitFullScreen' : 'fullScreen'"
:class="
isFullScreen ? 'exitFullScreen' : 'fullScreen'
"
@click="singleFullScreen(i)"
></div>
</el-tooltip>
@ -65,13 +73,28 @@
</div>
</div>
<div class="player-tool">
<el-tooltip class="item" effect="dark" :content="`默认`" placement="top">
<el-tooltip
class="item"
effect="dark"
:content="`默认`"
placement="top"
>
<div class="bgImage splitscreen1" @click="onTwoSubmit(1)"></div>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="`2x2`" placement="top">
<el-tooltip
class="item"
effect="dark"
:content="`2x2`"
placement="top"
>
<div class="bgImage splitscreen2" @click="onTwoSubmit(2)"></div>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="`4x4`" placement="top">
<el-tooltip
class="item"
effect="dark"
:content="`4x4`"
placement="top"
>
<div class="bgImage splitscreen3" @click="onTwoSubmit(4)"></div>
</el-tooltip>
<el-tooltip
@ -139,11 +162,14 @@ export default {
this.play(item, this.iWndIndex);
} else if (a.length == 1) {
this.play(item, this.iWndIndex);
this.devH5List.push(item);
} else {
this.play(item, index);
}
});
if (a.length > 1) {
this.devH5List = a;
}
},
},
mounted() {
@ -164,8 +190,14 @@ export default {
`#player #player-container-${index}`
);
if (wnd) {
const controls = document.getElementById(`controls-${index + 1}`);
wnd.removeChild(controls);
const controls = document.getElementById(
`controls-${index + 1}`
);
if (controls) {
controls.classList.remove(
"video-controls_flex"
);
}
}
});
this.devH5List = [];
@ -176,7 +208,7 @@ export default {
);
},
//
stopPlay(currentWindowIndex) {
stopPlay(currentWindowIndex, type) {
this.player.JS_Stop(currentWindowIndex - 1).then(
() => {
this.playback.rate = 0;
@ -188,7 +220,10 @@ export default {
const controls = document.getElementById(
`controls-${currentWindowIndex}`
);
wnd.removeChild(controls);
if (controls) {
controls.classList.remove("video-controls_flex");
}
if (type == "delete") return;
this.devH5List.splice(currentWindowIndex - 1, 1);
}
},
@ -351,7 +386,12 @@ export default {
},
pluginErrorHandler: function (iWndIndex, iErrorCode, oError) {
//
console.log("pluginError callback: ", iWndIndex, iErrorCode, oError);
console.log(
"pluginError callback: ",
iWndIndex,
iErrorCode,
oError
);
},
windowEventOver: function (iWndIndex) {
//
@ -373,8 +413,13 @@ export default {
// controls.style.display = "flex";
}
}
if(controls) {
if(iWndIndex > _this.devH5List.length - 1) return;
if (controls) {
console.log(
888777,
iWndIndex,
_this.devH5List.length - 1
);
if (iWndIndex > _this.devH5List.length - 1) return;
controls.classList.add("video-controls_flex");
}
}
@ -436,7 +481,10 @@ export default {
},
InterruptStream: (iWndIndex, iTime) => {
console.log(
"recv InterruptStream: " + iWndIndex + ", iTime:" + iTime
"recv InterruptStream: " +
iWndIndex +
", iTime:" +
iTime
);
},
ElementChanged: (iWndIndex, szElementType) => {
@ -460,7 +508,8 @@ export default {
let tempCode = row.serialNumber;
const param = {
cameraIndexCode: tempCode,
streamType: row.defaultStreamType == 2 ? 0 : row.defaultStreamType,
streamType:
row.defaultStreamType == 2 ? 0 : row.defaultStreamType,
type: "ws",
transmode: 1,
itemId: row.itemId,
@ -474,6 +523,7 @@ export default {
*/
play(row, index) {
const _this = this;
this.stopPlay(index + 1, "delete");
this.getPreviewUrl({
...row,
}).then((res) => {
@ -481,6 +531,32 @@ export default {
_this.$message.warning("获取视频流失败!");
return;
}
//
const id = "player-container-" + index;
var d1 = document.getElementById(id); //div
d1.childNodes.forEach((item) => {
if (item.nodeName == "" || item.nodeName == "IMG") {
d1.removeChild(item);
}
});
var im = document.createElement("img"); //
im.src = require("@/assets/images/iscImage/loading.gif");
//div
const divHeightNum = d1.style.height.slice(
0,
d1.style.height.length - 2
);
// const imgHeightNum = divHeightNum * 0.2
const imgHeightNum = 256;
im.style.width = imgHeightNum + "px";
im.style.height = imgHeightNum + "px";
im.style.position = "absolute";
im.style.top = "50%";
im.style.left = "50%";
const positionNum = imgHeightNum / 2 - imgHeightNum;
im.style.marginLeft = positionNum + "px";
im.style.marginTop = positionNum + "px";
d1.appendChild(im); //div
let preUrl = res.result.videoInfo.url;
const param = {
playURL: preUrl,
@ -493,11 +569,22 @@ export default {
}
_this.player.JS_Play(preUrl, param, index).then(
() => {
console.log(d1.childNodes);
//
d1.removeChild(d1.childNodes[d1.childNodes.length - 1]);
console.log("播放成功");
},
(err) => {
console.log("播放失败");
im.src = require("@/assets/images/iscImage/text-to-image.png");
const imgHeightNum = 20;
const imgWidthNum = 150;
im.style.width = imgWidthNum + "px";
im.style.height = imgHeightNum + "px";
const positionNum = imgHeightNum / 2 - imgHeightNum;
const positionWidthNum = imgWidthNum / 2 - imgWidthNum;
im.style.marginLeft = positionWidthNum + "px";
im.style.marginTop = positionNum + "px";
// _this.devH5List.splice(index, 1);
// _this.stopPlay(index);
}
@ -671,3 +758,4 @@ export default {
gap: 10px;
}
</style>

View File

@ -1010,7 +1010,7 @@
"
>
<el-input
v-model="currentVideoTypeDetail.password"
v-model="currentVideoTypeDetail.port"
:placeholder="$t('message.videoManage.placeholder')"
></el-input>
</el-form-item>
@ -1917,8 +1917,8 @@ export default {
this.getProjectVideoConfigList();
this.Popup.accountServer = true;
this.currentVideoTypeDetail.account = this.currentVideoTypeDetail.account;
this.currentVideoTypeDetail.password =
this.currentVideoTypeDetail.password;
this.currentVideoTypeDetail.port =
this.currentVideoTypeDetail.port;
this.currentVideoTypeDetail.appId = this.currentVideoTypeDetail.appId;
this.currentVideoTypeDetail.appSecret =
this.currentVideoTypeDetail.appSecret;
@ -2237,12 +2237,31 @@ export default {
this.addGroupDialog = true;
this.addGroupForm = JSON.parse(JSON.stringify(item));
this.$nextTick(() => {
if (this.addGroupForm.parentObj) {
this.selectVal = JSON.parse(this.addGroupForm.parentObj).groupName;
const find = this.findNodeById(this.videoTreeData, item.parentId);
if(find) {
this.selectVal = find.groupName;
this.$refs.groupTree.setCurrentKey(this.addGroupForm.parentId);
}
// if (this.addGroupForm.parentObj) {
// this.selectVal = JSON.parse(this.addGroupForm.parentObj).groupName;
// this.$refs.groupTree.setCurrentKey(this.addGroupForm.parentId);
// }
});
},
findNodeById(node, id) {
const find = node.find((item) => item.id === id);
if (find) {
return find;
}
for (let child of node) {
if (child.children && child.children.length > 0) {
const found = this.findNodeById(child.children, id);
if (found) return found;
}
}
return null;
},
deleteGroupFn(item) {
//
this.$confirm(
@ -2607,17 +2626,23 @@ export default {
? obj.enterpriseIds.split(",")
: [];
this.$nextTick(() => {
if (this.currentVideoTypeDetail.parentObj) {
this.selectFormVal = JSON.parse(
this.currentVideoTypeDetail.parentObj
).groupName;
this.selectFormTreeData = JSON.parse(
this.currentVideoTypeDetail.parentObj
);
this.$refs.groupFormTree.setCurrentKey(
this.currentVideoTypeDetail.parentId
);
const find = this.findNodeById(this.videoTreeData, obj.groupId);
if(find) {
this.selectFormVal = find.groupName;
this.$refs.groupTree.setCurrentKey(this.currentVideoTypeDetail.groupId);
}
// if (this.currentVideoTypeDetail.parentObj) {
// this.selectFormVal = JSON.parse(
// this.currentVideoTypeDetail.parentObj
// ).groupName;
// this.selectFormTreeData = JSON.parse(
// this.currentVideoTypeDetail.parentObj
// );
// this.$refs.groupFormTree.setCurrentKey(
// this.currentVideoTypeDetail.parentId
// );
// }
});
console.log("编辑内容", obj);
},

View File

@ -429,7 +429,7 @@
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
<div class="operation-style">
<el-button @click.stop="previewUrl(scope.row)" type="text">
<el-button @click.stop="previewFn(scope.row)" type="text">
<i class="el-icon-view"></i>
预览
</el-button>
@ -476,7 +476,7 @@
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
<div class="operation-style">
<el-button @click.stop="previewUrl(scope.row)" type="text">
<el-button @click.stop="previewFn(scope.row)" type="text">
<i class="el-icon-view"></i>
预览
</el-button>

View File

@ -25,7 +25,10 @@
:content="`${recordingBegin ? '结束' : '开始'}录制`"
placement="top"
>
<div class="bgImage transcribe" @click="isTranscribe(i)"></div>
<div
class="bgImage transcribe"
@click="isTranscribe(i)"
></div>
</el-tooltip>
<el-tooltip
class="item"
@ -33,7 +36,10 @@
:content="`抓图`"
placement="top"
>
<div class="bgImage screenshot" @click="capture('JPEG', i)"></div>
<div
class="bgImage screenshot"
@click="capture('JPEG', i)"
></div>
</el-tooltip>
<!-- <div>流畅</div> -->
@ -57,7 +63,9 @@
>
<div
class="bgImage"
:class="isFullScreen ? 'exitFullScreen' : 'fullScreen'"
:class="
isFullScreen ? 'exitFullScreen' : 'fullScreen'
"
@click="singleFullScreen(i)"
></div>
</el-tooltip>
@ -98,7 +106,10 @@
<div class="ant-radio-group3">
<!-- 时间筛选 -->
<div class="Progress_timeline">
<div class="Progress_timelineLeft" @click="onClickOffsetX('left')">
<div
class="Progress_timelineLeft"
@click="onClickOffsetX('left')"
>
<i class="el-icon-arrow-left"></i>
</div>
<div class="Progress_timelineCenterWrap">
@ -152,7 +163,10 @@
</div>
</div>
</div>
<div class="Progress_timelineRight" @click="onClickOffsetX('right')">
<div
class="Progress_timelineRight"
@click="onClickOffsetX('right')"
>
<i class="el-icon-arrow-right"></i>
</div>
</div>
@ -223,16 +237,19 @@ export default {
devList: function (a, b) {
console.log("isc_plugin.vue获取到设备列表", a, b, this.devH5List);
//avalueb
a.forEach((item) => {
a.forEach((item, index) => {
if (this.numCount == 1) {
this.play(item, this.iWndIndex);
} else if (a.length == 1) {
this.play(item, this.iWndIndex);
this.devH5List.push(item);
} else {
this.play(item, index);
}
});
if (a.length > 1) {
this.devH5List = a;
}
},
isReplayNum: function (newVal, oldVal) {
console.log("新的值", newVal);
@ -259,7 +276,8 @@ export default {
//
onClickOffsetX(position) {
//
const timeWidth = document.querySelector(".Progress_time").offsetWidth;
const timeWidth =
document.querySelector(".Progress_time").offsetWidth;
//
const width = document.querySelector(".Progress_cover").offsetWidth;
// console.log(timeWidth, width, (width / timeWidth) * 100)
@ -310,7 +328,8 @@ export default {
);
// console.log(this.videoInfo.translateX)
} else if (event.offsetX <= arrowWidth / 2 - placeholderWidth) {
this.videoInfo.translateX = 50 - (event.offsetX / arrowWidth) * 100;
this.videoInfo.translateX =
50 - (event.offsetX / arrowWidth) * 100;
// console.log(this.videoInfo.translateX, event.offsetX, arrowWidth, placeholderWidth)
} else {
this.videoInfo.translateX = 0;
@ -353,7 +372,11 @@ export default {
const currentTime = dayjs(this.videoInfo.minuteTime);
const start = dayjs(this.startTime);
const end = dayjs(this.endTime);
console.log(this.videoInfo.minuteTime, this.startTime, this.endTime);
console.log(
this.videoInfo.minuteTime,
this.startTime,
this.endTime
);
if (currentTime.isBefore(start, "second")) {
this.$message.warning("不能定位到开始时间之前");
return;
@ -368,8 +391,9 @@ export default {
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS
) + ".000+08:00";
let endTime =
dayjs(this.endTime).format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS) +
".000+08:00";
dayjs(this.endTime).format(
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS
) + ".000+08:00";
this.player
.JS_Seek(this.player.currentWindowIndex, seekStart, endTime)
.then(
@ -392,8 +416,14 @@ export default {
`#player #player-container-${index}`
);
if (wnd) {
const controls = document.getElementById(`controls-${index + 1}`);
wnd.removeChild(controls);
const controls = document.getElementById(
`controls-${index + 1}`
);
if (controls) {
controls.classList.remove(
"video-controls_flex"
);
}
}
});
this.devH5List = [];
@ -404,7 +434,7 @@ export default {
);
},
//
stopPlay(currentWindowIndex) {
stopPlay(currentWindowIndex, type) {
this.player.JS_Stop(currentWindowIndex - 1).then(
() => {
this.playback.rate = 0;
@ -416,7 +446,10 @@ export default {
const controls = document.getElementById(
`controls-${currentWindowIndex}`
);
wnd.removeChild(controls);
if (controls) {
controls.classList.remove("video-controls_flex");
}
if (type == "delete") return;
this.devH5List.splice(currentWindowIndex - 1, 1);
}
},
@ -579,7 +612,12 @@ export default {
},
pluginErrorHandler: function (iWndIndex, iErrorCode, oError) {
//
console.log("pluginError callback: ", iWndIndex, iErrorCode, oError);
console.log(
"pluginError callback: ",
iWndIndex,
iErrorCode,
oError
);
},
windowEventOver: function (iWndIndex) {
//
@ -664,7 +702,10 @@ export default {
},
InterruptStream: (iWndIndex, iTime) => {
console.log(
"recv InterruptStream: " + iWndIndex + ", iTime:" + iTime
"recv InterruptStream: " +
iWndIndex +
", iTime:" +
iTime
);
},
ElementChanged: (iWndIndex, szElementType) => {
@ -717,6 +758,32 @@ export default {
_this.$message.warning("获取视频流失败!");
return;
}
//
const id = "player-container-" + index;
var d1 = document.getElementById(id); //div
d1.childNodes.forEach((item) => {
if (item.nodeName == "" || item.nodeName == "IMG") {
d1.removeChild(item);
}
});
var im = document.createElement("img"); //
im.src = require("@/assets/images/iscImage/loading.gif");
//div
const divHeightNum = d1.style.height.slice(
0,
d1.style.height.length - 2
);
// const imgHeightNum = divHeightNum * 0.2
const imgHeightNum = 256;
im.style.width = imgHeightNum + "px";
im.style.height = imgHeightNum + "px";
im.style.position = "absolute";
im.style.top = "50%";
im.style.left = "50%";
const positionNum = imgHeightNum / 2 - imgHeightNum;
im.style.marginLeft = positionNum + "px";
im.style.marginTop = positionNum + "px";
d1.appendChild(im); //div
let preUrl = res.result.url;
console.log(preUrl);
const param = {
@ -734,10 +801,13 @@ export default {
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS
) + ".000+08:00";
let endTime =
dayjs(this.endTime).format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS) +
".000+08:00";
dayjs(this.endTime).format(
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS
) + ".000+08:00";
console.log(8887777, startTime, endTime);
_this.player.JS_Play(preUrl, param, index, startTime, endTime).then(
_this.player
.JS_Play(preUrl, param, index, startTime, endTime)
.then(
() => {
//
console.log("播放成功");
@ -749,6 +819,16 @@ export default {
"0x12f900009": "取流超时,请检查网络状态",
};
console.log("播放失败");
im.src = require("@/assets/images/iscImage/text-to-image.png");
const imgHeightNum = 20;
const imgWidthNum = 150;
im.style.width = imgWidthNum + "px";
im.style.height = imgHeightNum + "px";
const positionNum = imgHeightNum / 2 - imgHeightNum;
const positionWidthNum =
imgWidthNum / 2 - imgWidthNum;
im.style.marginLeft = positionWidthNum + "px";
im.style.marginTop = positionNum + "px";
_this.$message.warning(obj[err] || "播放失败");
}
);

View File

@ -67,7 +67,10 @@
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="resetForm('ruleForm')"
<el-button
type="primary"
plain
@click="resetForm('ruleForm')"
>清空</el-button
>
<el-button type="primary" @click="submitForm('ruleForm')"
@ -160,7 +163,11 @@ export default {
let originUserInfo = this.$store.state.userInfo;
that.$store.commit("setUserInfo", {
...originUserInfo,
...that.ruleForm
avatar: that.ruleForm.avatar,
realName: that.ruleForm.realName,
personMail: that.ruleForm.personMail,
userTel: that.ruleForm.userTel,
sex: that.ruleForm.sex,
});
});
},