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

View File

@ -25,7 +25,10 @@
:content="`${recordingBegin ? '结束' : '开始'}录制`" :content="`${recordingBegin ? '结束' : '开始'}录制`"
placement="top" placement="top"
> >
<div class="bgImage transcribe" @click="isTranscribe(i)"></div> <div
class="bgImage transcribe"
@click="isTranscribe(i)"
></div>
</el-tooltip> </el-tooltip>
<el-tooltip <el-tooltip
class="item" class="item"
@ -33,7 +36,10 @@
:content="`抓图`" :content="`抓图`"
placement="top" placement="top"
> >
<div class="bgImage screenshot" @click="capture('JPEG', i)"></div> <div
class="bgImage screenshot"
@click="capture('JPEG', i)"
></div>
</el-tooltip> </el-tooltip>
<!-- <div>流畅</div> --> <!-- <div>流畅</div> -->
@ -57,7 +63,9 @@
> >
<div <div
class="bgImage" class="bgImage"
:class="isFullScreen ? 'exitFullScreen' : 'fullScreen'" :class="
isFullScreen ? 'exitFullScreen' : 'fullScreen'
"
@click="singleFullScreen(i)" @click="singleFullScreen(i)"
></div> ></div>
</el-tooltip> </el-tooltip>
@ -65,13 +73,28 @@
</div> </div>
</div> </div>
<div class="player-tool"> <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> <div class="bgImage splitscreen1" @click="onTwoSubmit(1)"></div>
</el-tooltip> </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> <div class="bgImage splitscreen2" @click="onTwoSubmit(2)"></div>
</el-tooltip> </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> <div class="bgImage splitscreen3" @click="onTwoSubmit(4)"></div>
</el-tooltip> </el-tooltip>
<el-tooltip <el-tooltip
@ -139,11 +162,14 @@ export default {
this.play(item, this.iWndIndex); this.play(item, this.iWndIndex);
} else if (a.length == 1) { } else if (a.length == 1) {
this.play(item, this.iWndIndex); this.play(item, this.iWndIndex);
this.devH5List.push(item);
} else { } else {
this.play(item, index); this.play(item, index);
} }
}); });
if (a.length > 1) {
this.devH5List = a; this.devH5List = a;
}
}, },
}, },
mounted() { mounted() {
@ -164,8 +190,14 @@ export default {
`#player #player-container-${index}` `#player #player-container-${index}`
); );
if (wnd) { if (wnd) {
const controls = document.getElementById(`controls-${index + 1}`); const controls = document.getElementById(
wnd.removeChild(controls); `controls-${index + 1}`
);
if (controls) {
controls.classList.remove(
"video-controls_flex"
);
}
} }
}); });
this.devH5List = []; this.devH5List = [];
@ -176,7 +208,7 @@ export default {
); );
}, },
// //
stopPlay(currentWindowIndex) { stopPlay(currentWindowIndex, type) {
this.player.JS_Stop(currentWindowIndex - 1).then( this.player.JS_Stop(currentWindowIndex - 1).then(
() => { () => {
this.playback.rate = 0; this.playback.rate = 0;
@ -188,7 +220,10 @@ export default {
const controls = document.getElementById( const controls = document.getElementById(
`controls-${currentWindowIndex}` `controls-${currentWindowIndex}`
); );
wnd.removeChild(controls); if (controls) {
controls.classList.remove("video-controls_flex");
}
if (type == "delete") return;
this.devH5List.splice(currentWindowIndex - 1, 1); this.devH5List.splice(currentWindowIndex - 1, 1);
} }
}, },
@ -351,7 +386,12 @@ export default {
}, },
pluginErrorHandler: function (iWndIndex, iErrorCode, oError) { pluginErrorHandler: function (iWndIndex, iErrorCode, oError) {
// //
console.log("pluginError callback: ", iWndIndex, iErrorCode, oError); console.log(
"pluginError callback: ",
iWndIndex,
iErrorCode,
oError
);
}, },
windowEventOver: function (iWndIndex) { windowEventOver: function (iWndIndex) {
// //
@ -374,6 +414,11 @@ export default {
} }
} }
if (controls) { if (controls) {
console.log(
888777,
iWndIndex,
_this.devH5List.length - 1
);
if (iWndIndex > _this.devH5List.length - 1) return; if (iWndIndex > _this.devH5List.length - 1) return;
controls.classList.add("video-controls_flex"); controls.classList.add("video-controls_flex");
} }
@ -436,7 +481,10 @@ export default {
}, },
InterruptStream: (iWndIndex, iTime) => { InterruptStream: (iWndIndex, iTime) => {
console.log( console.log(
"recv InterruptStream: " + iWndIndex + ", iTime:" + iTime "recv InterruptStream: " +
iWndIndex +
", iTime:" +
iTime
); );
}, },
ElementChanged: (iWndIndex, szElementType) => { ElementChanged: (iWndIndex, szElementType) => {
@ -460,7 +508,8 @@ export default {
let tempCode = row.serialNumber; let tempCode = row.serialNumber;
const param = { const param = {
cameraIndexCode: tempCode, cameraIndexCode: tempCode,
streamType: row.defaultStreamType == 2 ? 0 : row.defaultStreamType, streamType:
row.defaultStreamType == 2 ? 0 : row.defaultStreamType,
type: "ws", type: "ws",
transmode: 1, transmode: 1,
itemId: row.itemId, itemId: row.itemId,
@ -474,6 +523,7 @@ export default {
*/ */
play(row, index) { play(row, index) {
const _this = this; const _this = this;
this.stopPlay(index + 1, "delete");
this.getPreviewUrl({ this.getPreviewUrl({
...row, ...row,
}).then((res) => { }).then((res) => {
@ -481,6 +531,32 @@ export default {
_this.$message.warning("获取视频流失败!"); _this.$message.warning("获取视频流失败!");
return; 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; let preUrl = res.result.videoInfo.url;
const param = { const param = {
playURL: preUrl, playURL: preUrl,
@ -493,11 +569,22 @@ export default {
} }
_this.player.JS_Play(preUrl, param, index).then( _this.player.JS_Play(preUrl, param, index).then(
() => { () => {
console.log(d1.childNodes);
// //
d1.removeChild(d1.childNodes[d1.childNodes.length - 1]);
console.log("播放成功"); console.log("播放成功");
}, },
(err) => { (err) => {
console.log("播放失败"); 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.devH5List.splice(index, 1);
// _this.stopPlay(index); // _this.stopPlay(index);
} }
@ -671,3 +758,4 @@ export default {
gap: 10px; gap: 10px;
} }
</style> </style>

View File

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

View File

@ -429,7 +429,7 @@
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="operation-style"> <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> <i class="el-icon-view"></i>
预览 预览
</el-button> </el-button>
@ -476,7 +476,7 @@
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="operation-style"> <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> <i class="el-icon-view"></i>
预览 预览
</el-button> </el-button>

View File

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

View File

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