zhgdyun/src/components/header.vue

728 lines
24 KiB
Vue
Raw Normal View History

2022-06-08 14:51:11 +08:00
<template>
<!-- v-if="headerShow" -->
<div class="title">
2022-06-08 14:51:11 +08:00
<div class="title_l flex">
2025-03-27 11:49:57 +08:00
<img v-if="systemInfo.platformLogo" :src="systemInfo.platformLogo" class="logo" height="25" />
<img v-else-if="LOGO_white" :src="'./img/logo/' + LOGO_white + '.png'" class="logo" height="25" />
2022-06-08 14:51:11 +08:00
<!-- <span v-if="$route.path.indexOf('/firm/')!=-1">{{headerName}}</span> -->
<!-- 南昌头部样式 -->
2025-03-27 11:49:57 +08:00
<span class="canClick" v-if="company == 'nanchang'" @click="changeArea(-1)">{{ titleName }}</span>
<span class="canClick" v-if="$route.path.indexOf('/firm/') == -1 && company == 'nanchang'" @click="changeArea(-1)">{{
titleName ? '' : headerName
}}</span>
2022-06-08 14:51:11 +08:00
<!-- 以上南昌头部样式 -->
2025-03-27 11:49:57 +08:00
<span class="canClick" v-if="$route.path.indexOf('/firm/') != -1 && company != 'nanchang'" @click="changeArea(-1)">{{
systemInfo.platformName
}}</span>
<span class="canClick" v-if="$route.path.indexOf('/firm/') == -1 && company != 'nanchang'" @click="changeArea(-1)">{{
updateTitle
}}</span>
2024-04-11 19:15:19 +08:00
<span
class="canClick"
v-show="$route.path.indexOf('/firm/') != -1 && company != 'nanchang'"
v-for="(item, index) in $store.state.mapBackArr"
:key="index"
@click="changeArea(index)"
>>{{ item.name }}</span
>
2022-06-08 14:51:11 +08:00
</div>
2025-03-27 11:49:57 +08:00
<div class="title_near flex" v-if="![1, 2].includes($store.state.userInfo.accountType)">
2024-04-08 14:08:44 +08:00
<userChange></userChange>
</div>
2025-03-27 11:49:57 +08:00
<div class="title_near-tow flex" v-if="![11, 1, 2].includes($store.state.userInfo.accountType) && workSpaceShow">
2024-04-08 14:08:44 +08:00
<div class="divider-line"></div>
<centerChange></centerChange>
</div>
2022-06-08 14:51:11 +08:00
<div class="headerRight">
2025-03-27 11:49:57 +08:00
<el-popover placement="bottom" width="200" v-show="showQrCode && $store.state.userInfo.inputQrCode == 0" trigger="click">
2022-06-08 14:51:11 +08:00
<div id="qrCode" ref="qrCodeDiv"></div>
<el-button slot="reference" type="text" style="color: #fff; padding: 0"
>人员录入二维码 <i class="el-icon-arrow-down"></i
></el-button>
2022-06-08 14:51:11 +08:00
</el-popover>
<div class="audio-box" v-if="isShowAudio">
<audio v-if="isLoop" autoplay loop controls>
<!-- <source src="/doc/fireAlarm.mp3" type="audio/mpeg"> -->
<source :src="mp3Url" type="audio/mpeg" />
2022-06-08 14:51:11 +08:00
</audio>
<audio v-else autoplay controls style="display: none">
2022-06-08 14:51:11 +08:00
<!-- <source src="/doc/fireAlarm.mp3" type="audio/mpeg"> -->
<source :src="mp3Url" type="audio/mpeg" />
2022-06-08 14:51:11 +08:00
</audio>
<div v-if="isLoop" class="close-btn" @click="closeAudio">
<i class="el-icon-circle-close"></i>
2022-06-08 14:51:11 +08:00
</div>
</div>
<p
2025-03-27 11:49:57 +08:00
v-show="$route.path.indexOf('firm/') != -1 && $store.state.userInfo.companyBigScreen == 0 && company == 'longguang'"
2022-06-08 14:51:11 +08:00
class="header-btn"
@click="toOverview4()"
>
<img src="@/assets/images/icon-bigData.png" alt srcset />
龙光企业大屏
</p>
<!-- <p
class="header-btn"
@click="toOverview4()"
>
<img src="@/assets/images/icon-bigData.png" alt srcset />
龙光企业大屏
</p> -->
<p
v-show="
$route.path.indexOf('firm/') != -1 &&
2025-03-27 11:49:57 +08:00
$store.state.userInfo.companyBigScreen == 0 &&
!['longguang', 'jlw', 'mulei', ''].includes(company)
"
2022-06-08 14:51:11 +08:00
class="header-btn"
@click="toOverview3()"
>
<img src="@/assets/images/icon-bigData.png" alt srcset />
企业大屏
</p>
<!-- 横琴大屏使用龙光大屏样式 -->
2024-04-08 14:08:44 +08:00
<p
2025-03-27 11:49:57 +08:00
v-show="$route.path.indexOf('firm/') != -1 && $store.state.userInfo.companyBigScreen == 0"
2024-04-08 14:08:44 +08:00
class="header-btn"
2025-06-09 09:51:51 +08:00
@click="toCompanyBigScreen()"
2024-04-08 14:08:44 +08:00
>
2022-06-08 14:51:11 +08:00
<img src="@/assets/images/icon-bigData.png" alt srcset />
综合监管大屏
</p>
2024-05-06 23:45:01 +08:00
<!-- <p
2024-04-28 02:51:56 +08:00
v-show="
$route.path.indexOf('projectIndex') != -1 &&
$store.state.userInfo.projectKanban == 0
"
class="header-btn"
style="margin-right:10px"
@click="toOverviewCommand()"
>
<img src="@/assets/images/icon-bigData.png" alt srcset />
指挥部大屏
2024-05-06 23:45:01 +08:00
</p> -->
2024-07-10 14:41:49 +08:00
<!-- -->
<p
2025-03-27 11:49:57 +08:00
v-show="$route.path.indexOf('dataPay') != -1 && $store.state.userInfo.projectKanban == 0 && company == 'agjt'"
2024-07-10 14:41:49 +08:00
class="header-btn"
@click="toOverview6()"
>
<img src="@/assets/images/icon-location.png" alt srcset />
2024-07-15 17:22:31 +08:00
<!-- 人员定位实时预览 -->
定位大屏
2024-07-10 14:41:49 +08:00
</p>
2024-06-08 15:51:10 +08:00
<p
2024-04-08 14:08:44 +08:00
v-show="
2024-10-22 11:11:53 +08:00
($route.path.indexOf('projectIndex') != -1 || $route.path.indexOf('equipmentCenter') != -1) &&
2025-03-27 11:49:57 +08:00
$store.state.userInfo.projectKanban == 0 &&
company != 'agjt'
2024-04-08 14:08:44 +08:00
"
2022-06-08 14:51:11 +08:00
class="header-btn"
@click="toOverview2()"
>
<img src="@/assets/images/icon-bigData.png" alt srcset />
数据看板
2024-06-08 15:51:10 +08:00
</p>
2022-06-08 14:51:11 +08:00
<p
v-for="(item, index) in $store.state.menuList"
:key="index"
v-if="
item.target == '_blank' &&
2025-03-27 11:49:57 +08:00
$route.path.indexOf('/projectIndex') == -1 &&
(item.menuName != 'LED大屏' || company != 'nanchang') &&
$route.path.indexOf('/equipmentCenterIndx') == -1
2022-06-08 14:51:11 +08:00
"
class="header-btn"
@click="toOverview(item.path)"
>
<!-- 绿色施工-->
2022-06-08 14:51:11 +08:00
<img src="@/assets/images/icon-bigData.png" />
{{ item.menuName }}
2022-06-08 14:51:11 +08:00
</p>
<!-- <p v-if="$route.path.indexOf('/project/towerCrane') != -1"
class="header-btn"
style="line-height: 15px"
@click="toOverview5('/project/bigSiteVisualization')"
>
<i class="el-icon-full-screen"></i>
塔吊可视大屏
</p> -->
<message @sendMsg="sendMessage"></message>
2025-03-27 11:49:57 +08:00
<div class="title_r" v-if="showR && $route.path.indexOf('/equipmentCenter/') == -1">
2022-06-08 14:51:11 +08:00
<!-- <changeTheme></changeTheme> -->
<!-- <language></language> -->
<account v-if="!uid"></account>
</div>
2025-04-12 15:08:01 +08:00
<aiDialogue v-if="showAi" />
2022-06-08 14:51:11 +08:00
</div>
</div>
</template>
<script>
2025-03-27 11:49:57 +08:00
import bus from '@/util/eventBus.js'
import language from './language'
import account from './account'
import changeTheme from './changeTheme'
import message from './message'
import QRCode from 'qrcodejs2'
import userChange from '@/components/userChange.vue'
import centerChange from '@/components/centerChange.vue'
import { getProjectDetail, getProjectExtendInfoApi } from '@/assets/js/api/baseInfo.js'
import { getNewUserAllModulePageApi, getScreenAuthModuleAndMenuApi } from '@/assets/js/api/jxjadmin.js'
2025-04-12 15:08:01 +08:00
import aiDialogue from '@/components/aiDialogue/index.vue'
2023-12-05 13:36:51 +08:00
2022-06-08 14:51:11 +08:00
export default {
2025-03-27 11:49:57 +08:00
props: ['titleName', 'showR'],
2022-06-08 14:51:11 +08:00
data() {
return {
2024-01-24 18:40:54 +08:00
getNewBigScreen: null,
newBigScreen: null,
2022-06-08 14:51:11 +08:00
headerShow,
LOGO_white: LOGO_white,
2025-03-27 11:49:57 +08:00
headerName: '',
2022-06-08 14:51:11 +08:00
isShowAudio: false,
loginData: {},
systemInfo: {
2025-03-27 11:49:57 +08:00
loginBackgroundImage: '',
loginLogo: '',
platformLogo: '',
platformName: '智慧工地云平台'
},
uid: this.$store.state.uid, //是否是免码登录 true 第三方免码登录 免码登录不回显退出按钮
2025-03-27 11:49:57 +08:00
company: '',
mp3Url: '',
isLoop: true,
timer: null,
2025-03-27 11:49:57 +08:00
jumpToken: '',
2024-04-22 00:24:17 +08:00
showQrCode: false,
2025-03-27 11:49:57 +08:00
educationId: '',
2025-04-12 15:08:01 +08:00
workSpaceShow: false,
showAi: false
2025-03-27 11:49:57 +08:00
}
2024-04-08 14:08:44 +08:00
},
components: {
language,
account,
changeTheme,
message,
userChange,
2025-04-12 15:08:01 +08:00
centerChange,
aiDialogue
2022-06-08 14:51:11 +08:00
},
watch: {
$route: {
handler(newVal) {
2025-03-27 11:49:57 +08:00
if (newVal.path == '/project/labor/personManage') {
this.showQrCode = true
2024-04-22 20:00:32 +08:00
// this.bindQRCode();
2025-03-27 11:49:57 +08:00
if (this.company == 'agjt') {
this.getEduIdFn()
} else {
2025-03-27 11:49:57 +08:00
this.bindQRCode()
}
} else {
2025-03-27 11:49:57 +08:00
this.showQrCode = false
2022-06-08 14:51:11 +08:00
}
2025-03-27 11:49:57 +08:00
}
2024-01-24 18:40:54 +08:00
},
newBigScreen(newVal) {
2025-03-27 11:49:57 +08:00
this.newBigScreen = newVal
}
2022-06-08 14:51:11 +08:00
},
2023-12-05 13:36:51 +08:00
beforeDestroy() {
2025-03-27 11:49:57 +08:00
this.newBigScreen = null
console.log('当前数据看板地址', this.newBigScreen)
2023-12-05 13:36:51 +08:00
},
created() {
2025-03-27 11:49:57 +08:00
this.company = COMPANY
console.log('this.company', this.company)
console.log('COMPANY', COMPANY)
2023-12-11 10:46:31 +08:00
if (this.$store.state.projectSn) {
2025-03-27 11:49:57 +08:00
this.getProjectDetail()
2023-12-11 10:46:31 +08:00
}
2025-03-27 11:49:57 +08:00
this.loginData = JSON.parse(localStorage.getItem('systemInfo'))
// console.log('信息',this.loginData)\
2025-03-27 11:49:57 +08:00
if (this.$store.state.projectSn) {
this.getModuleList()
2024-06-05 15:16:25 +08:00
}
2022-06-08 14:51:11 +08:00
},
mounted() {
2025-03-27 11:49:57 +08:00
if (this.$store.state.projectSn) {
this.getProjectExtendInfo()
2022-06-08 14:51:11 +08:00
}
2025-03-27 11:49:57 +08:00
if (localStorage.getItem('systemInfo')) {
this.systemInfo = JSON.parse(localStorage.getItem('systemInfo'))
}
console.log('进入页面显示的企业头部名称', this.systemInfo)
this.headerName = this.systemInfo.platformName
if (this.$route.path.indexOf('equipmentCenter/') != -1) {
this.headerName += ' - 设备中台'
2022-06-08 14:51:11 +08:00
}
if (this.$store.state.currentProDetail) {
2025-03-27 11:49:57 +08:00
this.headerName += ' - ' + this.$store.state.currentProDetail.projectName
2022-06-08 14:51:11 +08:00
}
if (this.$store.state.currentMoudle) {
2025-03-27 11:49:57 +08:00
this.headerName += ' - ' + this.$store.state.currentMoudle.moduleName
if (COMPANY == 'nanchang') {
this.headerName = this.$store.state.currentMoudle.moduleName
2022-06-08 14:51:11 +08:00
}
2023-11-18 17:54:03 +08:00
}
2022-06-08 14:51:11 +08:00
2025-03-27 11:49:57 +08:00
if (this.$route.path == '/project/labor/personManage') {
this.showQrCode = true
this.getEduIdFn()
} else {
2025-03-27 11:49:57 +08:00
this.showQrCode = false
}
2022-06-08 14:51:11 +08:00
},
2024-04-11 19:15:19 +08:00
computed: {
updateTitle() {
2025-03-27 11:49:57 +08:00
if (this.$store.state.currentProDetail && this.$store.state.currentProDetail.name) {
return this.systemInfo.platformName + ' - ' + this.$store.state.currentProDetail.name
2024-04-11 19:15:19 +08:00
} else {
2025-03-27 11:49:57 +08:00
return this.headerName
2024-04-11 19:15:19 +08:00
}
2025-03-27 11:49:57 +08:00
}
2024-04-11 19:15:19 +08:00
},
2022-06-08 14:51:11 +08:00
methods: {
2024-06-05 15:16:25 +08:00
// 查询全部模块(拿到工作流的模块菜单)
getModuleList() {
getNewUserAllModulePageApi({
projectSn: this.$store.state.projectSn,
moduleType: 7,
2025-03-27 11:49:57 +08:00
userId: this.$store.state.userInfo.userId
}).then(res => {
let all = res.result.moduleList
2024-06-05 15:16:25 +08:00
if (all.length == 0) {
2025-03-27 11:49:57 +08:00
this.workSpaceShow = false
return
2024-06-05 15:16:25 +08:00
} else {
2025-03-27 11:49:57 +08:00
this.workSpaceShow = true
2024-06-05 15:16:25 +08:00
}
2025-03-27 11:49:57 +08:00
})
2024-06-05 15:16:25 +08:00
},
2025-03-27 11:49:57 +08:00
getEduIdFn() {
2024-04-22 00:24:17 +08:00
let data = {
2025-03-27 11:49:57 +08:00
projectSn: this.$store.state.projectSn
}
getProjectExtendInfoApi(data).then(res => {
console.log(res, 112233445666)
if (res && res.result) {
2024-04-22 00:24:17 +08:00
this.educationId = res.result.educationId
2025-03-27 11:49:57 +08:00
this.bindQRCode()
2024-04-22 00:24:17 +08:00
}
2025-03-27 11:49:57 +08:00
})
},
getProjectExtendInfo() {
if (this.$store.state.projectExtendInfo) {
2025-04-12 15:08:01 +08:00
this.showAi = this.$store.state.projectExtendInfo.modelEnable === 1 ? true : false
// this.$store.commit('initializeAI')
2025-03-27 11:49:57 +08:00
return
}
let data = {
projectSn: this.$store.state.projectSn
}
getProjectExtendInfoApi(data)
.then(res => {
if (res && res.result) {
this.$store.commit('setProjectExtendInfo', res.result)
2025-04-12 15:08:01 +08:00
this.showAi = res.result.modelEnable === 1 ? true : false
// this.$store.commit('initializeAI')
2025-03-27 11:49:57 +08:00
}
})
.catch(error => {
console.error('获取项目扩展信息失败:', error)
})
2024-04-22 00:24:17 +08:00
},
2023-12-05 13:36:51 +08:00
//获取项目详细(数据看板跳转地址)
closeAudio() {
2025-03-27 11:49:57 +08:00
this.isShowAudio = false
2022-06-08 14:51:11 +08:00
},
sendMessage(val) {
2025-03-27 11:49:57 +08:00
this.isShowAudio = false
console.log(val, this.isShowAudio)
2022-06-08 14:51:11 +08:00
// let url = "https://dss2.bdstatic.com/6Ot1bjeh1BF3odCf/it/u=2746545937,1203007354&fm=218&app=92&f=PNG?w=121&h=75&s=B59079335D03484B4CD997F10300C027"
2025-03-27 11:49:57 +08:00
if (this.$store.state.userInfo.accountType == 5 || this.$store.state.userInfo.accountType == 6) {
console.log(localStorage.getItem('soundList'))
if (localStorage.getItem('soundList')) {
let arr = JSON.parse(localStorage.getItem('soundList'))
arr.forEach(item => {
if (item.type == val.type && val.type != '8') {
console.log(1, item)
clearTimeout(this.timer)
this.mp3Url = this.$store.state.FILEURL + item.fileUrl
this.isLoop = item.playType == 2 ? true : false
let _this = this
this.timer = setTimeout(() => {
2025-03-27 11:49:57 +08:00
_this.isShowAudio = true
}, 500)
2022-06-08 14:51:11 +08:00
}
2025-03-27 11:49:57 +08:00
if (item.type == val.type && val.type == '8' && (val.itemType == '0' || val.itemType == '1' || val.itemType == '2')) {
console.log(2, item)
clearTimeout(this.timer)
this.mp3Url = this.$store.state.FILEURL + item.fileUrl
this.isLoop = item.playType == 2 ? true : false
let _this = this
this.timer = setTimeout(() => {
2025-03-27 11:49:57 +08:00
_this.isShowAudio = true
}, 500)
console.log(this.isShowAudio)
console.log(this.mp3Url)
2022-06-08 14:51:11 +08:00
}
2025-03-27 11:49:57 +08:00
})
2022-06-08 14:51:11 +08:00
}
}
// this.$notify({
// title: '!!!!',
// dangerouslyUseHTMLString: true,
// message: '<div style="display: flex; align-items: center;"><img style="width: 50px;margin-right: 6px;height: 50px;" src="'+ url +'"/><span>123564</span></div>'
// });
},
//生成人员录入 二维码
2025-03-27 11:49:57 +08:00
bindQRCode: function () {
console.log('人员录入二维码')
console.log('人员录入二维码', this.educationId)
document.getElementById('qrCode').innerHTML = ''
let httpUrl = window.location.origin
let userId = this.$store.state.userInfo.userId
let projectSn = this.$store.state.projectSn
2022-06-08 14:51:11 +08:00
new QRCode(this.$refs.qrCodeDiv, {
2025-03-27 11:49:57 +08:00
text: httpUrl + '/doc/h5/index.html?userId=' + userId + '&projectSn=' + projectSn,
2022-06-08 14:51:11 +08:00
width: 200,
height: 200,
2025-03-27 11:49:57 +08:00
colorDark: '#333333', //二维码颜色
colorLight: '#ffffff', //二维码背景色
correctLevel: QRCode.CorrectLevel.L //容错率L/M/H
})
2022-06-08 14:51:11 +08:00
},
changeArea(index) {
2025-03-27 11:49:57 +08:00
var accountType = this.$store.state.userInfo.accountType
bus.$emit('headerAeraSn')
if (this.$route.path.indexOf('/firm/') != -1) {
if ((accountType != 2 && index == -1) || (accountType > 3 && index == 0) || (accountType == 7 && index < 2)) {
return false
2022-06-08 14:51:11 +08:00
}
if (index == -1) {
2025-03-27 11:49:57 +08:00
this.$store.commit('setMapBackArr', [])
2022-06-08 14:51:11 +08:00
} else {
2025-03-27 11:49:57 +08:00
var arr = this.$store.state.mapBackArr
arr = arr.splice(0, index + 1)
this.$store.commit('setMapBackArr', arr)
2022-06-08 14:51:11 +08:00
}
2025-03-27 11:49:57 +08:00
} else if (window.location.href.indexOf('equipmentCenter.html') != -1) {
console.log(window.location.href)
if (COMPANY == 'nanchang') {
window.open('/index.html#/firm/projectManage', '_self')
} else {
2025-03-27 11:49:57 +08:00
window.open('/#/firm/projectManage', '_self')
2022-06-08 14:51:11 +08:00
}
} else {
2022-06-08 14:51:11 +08:00
// 点击左上角会跳转到首页
2025-03-27 11:49:57 +08:00
if (accountType != 2 && index == -1 && accountType != 7 && accountType != 3 && accountType != 4) {
return false
2022-06-08 14:51:11 +08:00
}
2025-03-27 11:49:57 +08:00
this.$store.commit('setIsShowBackIndex', false)
this.$store.commit('setMenuList', this.$store.state.projectManageMenuList)
2022-06-08 14:51:11 +08:00
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: '/firm/projectManage'
})
window.open(routeUrl.href, '_self')
2022-06-08 14:51:11 +08:00
// 跳转后刷新此跳转页面
2025-03-27 11:49:57 +08:00
location.reload()
2022-06-08 14:51:11 +08:00
}
},
//绿色施工总览
toOverview(url) {
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: url
})
if (COMPANY != 'longguang' && url != '/project/bigSiteVisualization') {
window.open(routeUrl.href, '_blank')
} else if (COMPANY == 'jlw') {
window.open(this.$router.resolve(routeUrl).href, '_blank')
2023-11-18 17:54:03 +08:00
} else {
2025-03-27 11:49:57 +08:00
window.location.href = routeUrl.href + '?COMPANY=' + COMPANY
2022-06-08 14:51:11 +08:00
// window.open('#/project/dataBoard/environment?COMPANY=' + COMPANY, "_blank");
}
},
2024-01-24 18:40:54 +08:00
getProjectDetail() {
let data = {
2025-03-27 11:49:57 +08:00
projectSn: this.$store.state.projectSn
}
getProjectDetail(data).then(res => {
2024-01-24 18:40:54 +08:00
if (res.result) {
2025-03-27 11:49:57 +08:00
this.getNewBigScreen = res.result.newBigScreen
console.log('接口获取数据看板地址', this.getNewBigScreen)
2024-01-24 18:40:54 +08:00
}
2025-03-27 11:49:57 +08:00
})
2024-01-24 18:40:54 +08:00
},
2024-07-10 14:41:49 +08:00
toOverview6() {
2025-03-27 11:49:57 +08:00
this.$forceUpdate()
this.newBigScreen = this.getNewBigScreen
2024-07-13 17:46:37 +08:00
console.log(this.newBigScreen)
2024-07-10 14:41:49 +08:00
2025-03-27 11:49:57 +08:00
if (this.newBigScreen == null || this.newBigScreen == '') {
2024-07-10 14:41:49 +08:00
//--------------------原版项目后台跳转数据看板
//看看项目看板内有没有菜单
2025-03-27 11:49:57 +08:00
let arr = this.$store.state.userInfo.menuAuthority.moduleList
let arr2 = []
arr.forEach(element => {
2024-07-10 14:41:49 +08:00
if (element.moduleType == 4) {
2025-03-27 11:49:57 +08:00
arr2.push(element)
return
2024-07-10 14:41:49 +08:00
}
2025-03-27 11:49:57 +08:00
})
2024-07-10 14:41:49 +08:00
// 如果数组为空表示该用户没有权限访问
if (!arr2.length) {
2025-03-27 11:49:57 +08:00
return this.$message.warning('暂无权限')
2024-07-10 14:41:49 +08:00
}
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: arr2[0].modulePath
})
window.location.href = routeUrl.href
window._paq.push(['trackEvent', '点击', '数据看板', '进入数据看板'])
2024-07-10 14:41:49 +08:00
} else {
2025-03-27 11:49:57 +08:00
console.log('当前跳转链接', this.newBigScreen)
2024-07-10 14:41:49 +08:00
//-------------------- 跳转新版七参数
// localStorage.getItem("jumpToken")
// this.$store.state.userInfo.token
2025-03-27 11:49:57 +08:00
this.jumpToken = localStorage.getItem('jumpToken')
2024-07-10 14:41:49 +08:00
// "http://192.168.34.175:8081/#/large"
2024-07-15 17:22:31 +08:00
// window.open("http://192.168.34.175:8081/#/large" + "?token=" + this.jumpToken, "_self");
2025-03-27 11:49:57 +08:00
window.open(this.newBigScreen + '?token=' + this.jumpToken, '_self')
2024-07-10 14:41:49 +08:00
// window.open('http://192.168.34.138:8081/#/large?token=' + this.jumpToken + '&sn=' + this.$store.state.projectSn, "_self")//这里是后台跳到大屏的操作携带token过去
}
},
2024-12-30 17:03:11 +08:00
async getAuthModuleAndMenu() {
let bool = false
const res = await getScreenAuthModuleAndMenuApi()
if (res.code === 200) {
bool = res.result.length ? true : false
}
return bool
},
async toOverview2() {
2025-03-27 11:49:57 +08:00
this.$forceUpdate()
this.newBigScreen = this.getNewBigScreen
2024-02-03 17:55:26 +08:00
2025-01-20 17:49:25 +08:00
// if (this.newBigScreen == null || this.newBigScreen == "") {
2025-03-27 11:49:57 +08:00
// //--------------------原版项目后台跳转数据看板
// //看看项目看板内有没有菜单
// let arr = this.$store.state.userInfo.menuAuthority.moduleList;
// let arr2 = [];
// arr.forEach((element) => {
// if (element.moduleType == 4) {
// arr2.push(element);
// return;
// }
// });
// // 如果数组为空表示该用户没有权限访问
// if (!arr2.length) {
// return this.$message.warning("暂无权限");
// }
// let routeUrl = this.$router.resolve({
// path: arr2[0].modulePath,
// });
// window.location.href = routeUrl.href;
// window._paq.push(["trackEvent", "点击", "数据看板", "进入数据看板"]);
2025-01-20 17:49:25 +08:00
// this.$message({
// message: "当前项目没有看板",
// type: "warning",
// });
// } else {
2025-03-27 11:49:57 +08:00
const isPermission = await this.getAuthModuleAndMenu()
if (!isPermission && !this.newBigScreen) {
return this.$message({
message: '当前用户没有访问数据看板权限',
type: 'warning'
})
}
console.log('当前跳转链接', this.newBigScreen)
//-------------------- 跳转新版七参数
this.jumpToken = localStorage.getItem('jumpToken')
let userId = this.$store.state.userInfo.userId
window.open(this.newBigScreen + '?userId=' + userId + '&sn=' + this.$store.state.projectSn, '_self')
// window.open('http://192.168.34.216:8081/#/large?userId=' + userId + '&sn=' + this.$store.state.projectSn, "_self")//这里是后台跳到大屏的操作携带token过去
2025-01-20 17:49:25 +08:00
// }
2022-06-08 14:51:11 +08:00
},
2024-04-28 02:51:56 +08:00
toOverviewCommand() {
2025-03-27 11:49:57 +08:00
this.$forceUpdate()
this.newBigScreen = this.getNewBigScreen
2024-04-28 02:51:56 +08:00
2025-03-27 11:49:57 +08:00
if (this.newBigScreen == null || this.newBigScreen == '') {
2024-04-28 02:51:56 +08:00
//--------------------原版项目后台跳转数据看板
//看看项目看板内有没有菜单
2025-03-27 11:49:57 +08:00
let arr = this.$store.state.userInfo.menuAuthority.moduleList
let arr2 = []
arr.forEach(element => {
2024-04-28 02:51:56 +08:00
if (element.moduleType == 4) {
2025-03-27 11:49:57 +08:00
arr2.push(element)
return
2024-04-28 02:51:56 +08:00
}
2025-03-27 11:49:57 +08:00
})
2024-04-28 02:51:56 +08:00
// 如果数组为空表示该用户没有权限访问
if (!arr2.length) {
2025-03-27 11:49:57 +08:00
return this.$message.warning('暂无权限')
2024-04-28 02:51:56 +08:00
}
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: arr2[0].modulePath
})
window.location.href = routeUrl.href
window._paq.push(['trackEvent', '点击', '数据看板', '进入数据看板'])
2024-04-28 02:51:56 +08:00
} else {
2025-03-27 11:49:57 +08:00
console.log('当前跳转链接', this.newBigScreen)
2024-04-28 02:51:56 +08:00
//-------------------- 跳转新版七参数
2025-03-27 11:49:57 +08:00
this.jumpToken = localStorage.getItem('jumpToken')
2024-04-28 02:51:56 +08:00
// window.open(this.newBigScreen + "?token=" + this.jumpToken + '&sn=' + this.$store.state.projectSn, "_self");
2025-03-27 11:49:57 +08:00
window.open('http://47.93.215.234:55544/#/login' + '?token=' + this.jumpToken + '&sn=' + this.$store.state.projectSn, '_self') //跳转指挥部大屏
2024-04-28 02:51:56 +08:00
// window.open('http://192.168.34.138:8081/#/large?token=' + this.jumpToken + '&sn=' + this.$store.state.projectSn, "_self")//这里是后台跳到大屏的操作携带token过去
}
},
2022-06-08 14:51:11 +08:00
toOverview3() {
2025-03-27 11:49:57 +08:00
if (COMPANY == 'shenbai') {
2022-06-08 14:51:11 +08:00
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: '/companyAdmin/shenbaiBigScreen'
})
2022-06-08 14:51:11 +08:00
// window.open(routeUrl.href, "_blank");
2025-03-27 11:49:57 +08:00
} else if (COMPANY == 'henan') {
2022-06-08 14:51:11 +08:00
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: '/companyAdmin/heNanBigScreen'
})
window.open(routeUrl.href, '_blank')
2022-06-08 14:51:11 +08:00
} else {
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: '/companyAdmin/bigScreen'
})
window.open(routeUrl.href, '_blank')
2022-06-08 14:51:11 +08:00
}
},
//龙光企业大屏
toOverview4() {
//原型 2.0
// let routeUrl = this.$router.resolve({
// path: "/companyAdmin/longguangBigScreen",
// });
//原型 3.0
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: '/companyAdmin/longguangBigScreen2'
})
2022-06-08 14:51:11 +08:00
// let routeUrl = this.$router.resolve({
// path: "/companyAdmin/heNanBigScreen",
// });
2025-03-27 11:49:57 +08:00
window.open(routeUrl.href, '_self')
window._paq.push(['trackEvent', '点击', '龙光企业大屏', '进入企业大屏'])
2022-06-08 14:51:11 +08:00
},
2025-06-09 09:51:51 +08:00
toCompanyBigScreen() {
let routeUrl = this.$router.resolve({
path: '/companyAdmin/companyBigScreen'
})
window.open(routeUrl.href, '_self')
},
2022-06-08 14:51:11 +08:00
toOverview5(val) {
2022-06-08 14:51:11 +08:00
let routeUrl = this.$router.resolve({
2025-03-27 11:49:57 +08:00
path: val
})
2022-06-08 14:51:11 +08:00
// window.open(routeUrl.href, "_blank");
2025-03-27 11:49:57 +08:00
window.location.href = routeUrl.href
}
}
}
2022-06-08 14:51:11 +08:00
</script>
<style lang="less" scoped>
.flex {
display: flex;
align-items: center;
justify-content: space-between;
}
.title {
width: 100%;
color: #fff;
background-image: linear-gradient(#262d47, #343d5f);
box-sizing: border-box;
padding: 0 23px;
height: 61px;
display: flex;
align-items: center;
2024-04-08 14:08:44 +08:00
justify-content: flex-end;
2022-06-08 14:51:11 +08:00
}
.title_l {
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #ffffff;
letter-spacing: 0;
margin-right: 50px;
2022-06-08 14:51:11 +08:00
img {
margin-right: 14px;
}
}
2024-04-08 14:08:44 +08:00
.title_near {
margin-right: 50px;
}
2024-04-08 14:08:44 +08:00
.title_near-tow {
.divider-line {
width: 1px;
height: 16px;
2024-04-08 14:08:44 +08:00
background: #ffffff;
margin-right: 50px;
}
}
2022-06-08 14:51:11 +08:00
.title_r {
cursor: pointer;
display: inline-flex;
align-items: center;
}
p {
margin: 3px 0;
}
/deep/.header-btn {
display: inline-flex;
align-items: center;
2024-04-10 16:18:11 +08:00
// margin: 0px 0px 0 30px;
2022-06-08 14:51:11 +08:00
font-size: 14px;
cursor: pointer;
min-width: 100px;
white-space: nowrap;
img,
i {
margin-right: 8px;
width: 20px;
height: 20px;
font-size: 18px;
}
}
.headerRight {
display: inline-flex;
align-items: center;
2024-04-08 14:08:44 +08:00
margin-left: auto;
2022-06-08 14:51:11 +08:00
}
.canClick {
cursor: pointer;
}
/deep/.el-input__inner {
background-color: rgba(3, 1, 1, 0.24);
border: 1px solid rgba(58, 123, 255, 0.33);
color: #fff;
}
.audio-box {
2022-06-08 14:51:11 +08:00
display: flex;
align-items: center;
position: relative;
audio {
2022-06-08 14:51:11 +08:00
height: 30px;
}
.close-btn {
2022-06-08 14:51:11 +08:00
cursor: pointer;
color: #f56c6c;
2022-06-08 14:51:11 +08:00
margin-left: 6px;
}
}
</style>