flx:优化
This commit is contained in:
parent
a33fc66663
commit
67323cf8df
10
debug.log
10
debug.log
@ -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)
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
},
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
//a是value的新值,b是旧值
|
||||
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] || "播放失败");
|
||||
}
|
||||
);
|
||||
|
||||
@ -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,
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user