flx:添加水平倾斜字段 免登录新增isIframe切换

This commit is contained in:
Rain_ 2025-11-05 15:10:06 +08:00
parent 6252883089
commit 09bcb6ea79
10 changed files with 91 additions and 19 deletions

View File

@ -9,8 +9,8 @@ import { PersistedStateOptions } from "pinia-plugin-persistedstate";
const piniaPersistConfig = (key: string, paths?: string[]) => {
const persist: PersistedStateOptions = {
key,
storage: localStorage,
// storage: sessionStorage,
// storage: localStorage,
storage: sessionStorage,
paths
};
return persist;

View File

@ -47,7 +47,11 @@ router.beforeEach(async (to, from, next) => {
globalStore.setUserId(window.location.href.split("userId=")[1].split("&")[0]);
}
if (freeSn) {
globalStore.setSN(window.location.href.split("sn=")[1]);
let sn = window.location.href.split("sn=")[1];
console.log("进来了", sn);
sn.includes("&") && (sn = sn.split("&")[0]);
globalStore.setSN(sn);
}
// let urlParams = new URLSearchParams(window.location.href.split('?')[1]);
// let params = {} as any;

View File

@ -32,6 +32,7 @@ export const GlobalStore = defineStore({
// language
language: "",
path: null,
isIframe: false,
// themeConfig
themeConfig: {
// 当前页面是否全屏
@ -83,6 +84,10 @@ export const GlobalStore = defineStore({
setProjectDateAuth(projectDateAuth: number | null) {
this.projectDateAuth = projectDateAuth;
},
// 是否为iframe模式
setIsIframe(isIframe: boolean | null) {
this.isIframe = isIframe;
},
// 判断所属工程有没有校验
setIsManager(isManager: string | null) {
this.isManager = isManager;

View File

@ -17,6 +17,8 @@ export interface GlobalState {
openDropdown: boolean | null;
path: string | null;
isManager: string | null;
isIframe: boolean | null;
userId: string | null;
}
/* themeConfigProp */

View File

@ -61,7 +61,7 @@ import { getVideoItemInfoPoliceCameraItemApi } from "@/api/modules/workTicket";
import { Close } from "@element-plus/icons-vue";
import moment from "moment";
import dayjs from "dayjs";
import { reactive, watch, onMounted, computed, nextTick } from "vue";
import { reactive, watch, onMounted, computed, nextTick, onBeforeUnmount } from "vue";
import { ElMessage } from "element-plus";
import loadingGif from "@/assets/images/iscImage/loading.gif";
import errorPng from "@/assets/images/iscImage/text-to-image.png";
@ -576,6 +576,19 @@ onMounted(() => {
// `
initPlayer();
});
onBeforeUnmount(() => {
videoInfo.player.JS_Stop(0).then(
() => {
console.info("JS_Stop success");
// do you want...
},
(err) => {
console.info("JS_Stop failed:", err);
// do you want...
}
);
videoInfo.player = null;
});
</script>
<style lang="scss" scoped>

View File

@ -220,6 +220,15 @@
</div>
</div>
</el-scrollbar>
<el-pagination
class="pagerBox1"
background
:page-size="6"
style="justify-content: center"
@current-change="onCurrentChange"
layout="prev, pager, next"
:total="Number(policeCameraItemInfo.total)"
/>
<div class="content-right-bottom" v-if="!viewAllShow">
<div class="right-bottom_header">
<div>历史记录</div>
@ -549,9 +558,9 @@ const viewAllShow = ref(false);
const onViewAllClick = () => {
viewAllShow.value = !viewAllShow.value;
if (viewAllShow.value) {
policeCameraItemInfo.pageSize = -1;
policeCameraItemInfo.pageSize = policeCameraItemInfo.pageSize;
} else {
policeCameraItemInfo.pageSize = -1;
policeCameraItemInfo.pageSize = policeCameraItemInfo.pageSize;
}
initPoliceCameraItemList();
};
@ -675,7 +684,7 @@ const getWorkTicketHistoryList = () => {
const policeCameraItemInfo = reactive({
pageNo: 1,
pageSize: -1,
pageSize: 6,
total: 0
});
const policeCameraItemList = ref([]);
@ -684,6 +693,11 @@ const initPoliceCameraItemList = () => {
policeCameraItemList.value = [];
getPoliceCameraItemPage();
};
const onCurrentChange = val => {
policeCameraItemInfo.pageNo = val;
policeCameraItemList.value = [];
getPoliceCameraItemPage();
};
//
const getPoliceCameraItemPage = () => {
const params = {
@ -1321,7 +1335,7 @@ const downloadFileBtn = (url, name) => {
}
}
.content-right_box-main {
height: calc(100% - 32px - 182px - 34px - 12px);
height: calc(100% - 32px - 182px - 34px - 12px - 32px);
}
.content-right-top1 {
display: flex;
@ -1501,26 +1515,34 @@ const downloadFileBtn = (url, name) => {
width: 100% !important;
}
.content-right_box-main1 {
height: 100% !important;
height: calc(100% - 32px) !important;
}
.content-right-top2 {
height: 100% !important;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
> div {
width: 16% !important;
height: 195px;
width: 32% !important;
height: 350px;
background: url("@/assets/images/cardImg.png") no-repeat;
background-size: 100% 100%;
margin: 0 !important;
.hls-video {
height: 310px !important;
}
:deep(.sub-wnd) {
width: 100% !important;
}
}
> div:not(:nth-child(6n + 1)) {
margin-left: 10px !important;
> div:not(:nth-child(3n + 1)) {
margin-left: 20px !important;
}
> div:nth-child(n + 7) {
margin-top: 10px !important;
> div:nth-child(n + 4) {
margin-top: 20px !important;
}
}
}

View File

@ -1,8 +1,8 @@
<template>
<ScaleBox :width="1920" :height="1080" bgc="transparent" :delay="100" :isFlat="false" @scaleChange="scaleChange">
<!-- <div class="container"> -->
<div class="largeScreen" ref="dataScreenRef" style="width: 100%; height: 100%">
<div class="header" :class="!EntityMap.Mapswitch ? 'storeheader' : ''">
<div class="largeScreen" :class="{'largeScreen1': store.isIframe}" ref="dataScreenRef" style="width: 100%; height: 100%">
<div v-if="!store.isIframe" class="header" :class="!EntityMap.Mapswitch ? 'storeheader' : ''">
<!-- <div class="hearderIcon"><img src="@/assets/images/jxjLogo.png" alt="" /></div> -->
<span class="projectTitle" v-if="!isEditTitle">
<p>{{ projectTitle }}</p>
@ -675,14 +675,28 @@ onMounted(async () => {
if (window.location.href.indexOf("userId") != -1) {
console.log("免登录跳转进来了吗----", window.location.href.indexOf("userId"));
const newUserId = window.location.href.split("userId=")[1].split("&")[0];
const projectSn = window.location.href.split("sn=")[1].split("&")[0];
let projectSn = window.location.href.split("sn=")[1];
projectSn.includes("&") && (projectSn = projectSn.split("&")[0]);
let isIframe = window.location.href.split("isIframe=")[1];
if(isIframe){
isIframe.includes("&") && (isIframe = isIframe.split("&")[0]);
isIframe === "true" && (store.setIsIframe(true));
} else {
store.setIsIframe(false);
}
console.log("获取到的参数----", newUserId, projectSn, isIframe);
// return
const data: any = await jumpLargeByUserIdApi({ userId: newUserId });
console.log("跳转请求的数据----", data.result);
if (data.result.sn) {
const accountTypeList = [2, 3, 4, 7];
const sn = accountTypeList.includes(data.result.accountType) ? projectSn : data.result.sn;
console.log("获取到的参数----1111", sn);
store.setSN(sn);
}
console.log("获取到的参数----", store.sn);
store.setToken(data.result.token);
store.setAccount(data.result.account);
store.setAccountType(data.result.accountType);
@ -920,7 +934,9 @@ const handleScroll = (e: any) => {
align-items: center;
justify-content: center;
}
.largeScreen1 {
margin-top: 130px;
}
.largeScreen {
background: url("@/assets/images/bigImg.png") no-repeat;
background-size: 100% 100%;

View File

@ -81,6 +81,12 @@ let typeList = ref([
dayType: "模板沉降",
typeUnit: "mm",
key: "formworkSettlement"
},
{
value: 6,
dayType: "水平倾斜",
typeUnit: "°",
key: "horizontalTilt"
}
]);

View File

@ -37,6 +37,7 @@
<div>横板沉降</div>
<div>立杆倾斜</div>
<div>地基沉降</div>
<div>水平倾斜</div>
</div>
<el-scrollbar class="list-box" ref="refScrollbar">
<div v-for="(item, index) in list" class="list-style" :key="item.id">
@ -50,6 +51,7 @@
<div>{{ item.formworkSettlement }}</div>
<div>{{ item.poleTilt }}</div>
<div>{{ item.foundationSettlement }}</div>
<div>{{ item.horizontalTilt }}</div>
<!-- <div :style="{ width: '21%', color: formworkOption[item.formworkState].color }">
{{ formworkOption[item.formworkState].label }}

View File

@ -35,6 +35,7 @@
<div>横板沉降</div>
<div>立杆倾斜</div>
<div>地基沉降</div>
<div>水平倾斜</div>
</div>
<el-scrollbar class="list-box" ref="refScrollbar">
<div v-for="(item, index) in list" class="list-style" :key="item.id">
@ -47,6 +48,7 @@
<div>{{ item.formworkSettlement }}</div>
<div>{{ item.poleTilt }}</div>
<div>{{ item.foundationSettlement }}</div>
<div>{{ item.horizontalTilt }}</div>
<!-- <div :style="{ width: '21%', color: formworkOption[item.formworkState].color }">
{{ formworkOption[item.formworkState].label }}