阶段性代码提交

This commit is contained in:
WORK\64751 2025-08-25 11:40:42 +08:00
parent dfb1928d62
commit d503311198
5 changed files with 106 additions and 205 deletions

View File

@ -41,7 +41,7 @@ if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
id_token:
'eyJraWQiOiI3M2I5NTI0Ni02NjI2LTQ3N2YtYWFmYS1kMDJiODFhNjFkZmYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjc2FkbWluIiwiYXVkIjoidHVvaGVuZy1haXJwb3J0LWFkbWluIiwicm9sZSI6WyJ0dW9oZW5nLWFpcnBvcnRTY3JlZW4tbXAiLCJ0dW9oZW5nLXBpbG90LW1wIiwidHVvaGVuZy13YXRlcndheS1hZG1pbiIsInR1b2hlbmctdGVsZWNvbXVtYWxlLW1wIiwidHVvaGVuZy1haXJwb3J0U2NyZWVuLWFkbWluIiwidHVvaGVuZy1kbXAtbXAiLCJ0dW9oZW5nLWZseXBvcnRhbC1hZG1pbiIsInR1b2hlbmctdGVsZWNvbXVtYWxlLWFkbWluIiwidHVvaGVuZy1oaHotYWRtaW4iLCJ0dW9oZW5nLWhoei1tcCIsInR1b2hlbmctZnJlZXdheS1hZG1pbiIsInR1b2hlbmctd2VwdHNwLW1wIiwidHVvaGVuZy1waWxvdC1hZG1pbiIsInR1b2hlbmctc3BhY2V0aW1lLWFkbWluIiwidHVvaGVuZy1hbGVydC1tcCIsInR1b2hlbmctYnVzaW5lc3MtYWRtaW4iLCJ0dW9oZW5nLWJ1c2luZXNzLW1wIiwidHVvaGVuZy13ZXB0c3AtYWRtaW4iLCJ0dW9oZW5nLWFpcm1vbml0b3ItbXAiLCJ0dW9oZW5nLWFpcnBvcnQtbXAiLCJ0dW9oZW5nLWFpcm1vbml0b3ItYWRtaW4iLCJ0dW9oZW5nLWFsZXJ0LWFkbWluIiwidHVvaGVuZy1haXJwb3J0LWFkbWluIiwidHVvaGVuZy13YXRlcndheS1tcCIsInR1b2hlbmctZnJlZXdheS1tcCIsInR1b2hlbmctZG1wLWFkbWluIiwidHVvaGVuZy1zcGFjZXRpbWUtbXAiXSwiYXpwIjoidHVvaGVuZy1haXJwb3J0LWFkbWluIiwiaXNzIjoiaHR0cHM6XC9cL2xvZ2luLXRlc3QudC1hYXJvbi5jb20iLCJleHAiOjE3NTUwNzA3MjMsImlhdCI6MTc1NTA2ODkyM30.deCJZsyu2dgLrbl-rnnoYTBhZD59zUJoLzFkadL7m_RJ_jWlvQvLXjQn2h0tuba0HRN7ZT2COVmNxTgLLATbdJU2SQ-_wVt30XwyX1hauDV1DALzdk5UiRelP2lIJlPWZKhpqMX52gYsGZXyliErbORBLMc_920vTZDHKeuiriuODXlT7__5MnKFTCGXDegZRPALY7kLwpQfL4DSn3ILeSGMIqU7dPx3kM4CV1iIJs2f2jEZT4HOzXy51o_GjCW7enY2qWERRfvsLIX8a8DPg0YvN-j3AHoUoKWYX_1ZCmD3eGHhqQbEvZsLJV2J6MlwF6eZOkz08M-mdkyU2_Trpg',
access_token:
'eyJraWQiOiI3M2I5NTI0Ni02NjI2LTQ3N2YtYWFmYS1kMDJiODFhNjFkZmYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjc2FkbWluIiwiaXNBYmxlIjoxLCJpc3MiOiJodHRwczpcL1wvbG9naW4tdGVzdC50LWFhcm9uLmNvbSIsImF1ZCI6InR1b2hlbmctYWlycG9ydC1hZG1pbiIsIm5iZiI6MTc1NTkxNDQ5MSwib1VzZXJJZCI6NTQzLCJzY29wZSI6WyJ0dW9oZW5nLWFpcnBvcnRTY3JlZW4tbXAiLCJ0dW9oZW5nLXBpbG90LW1wIiwidHVvaGVuZy13YXRlcndheS1hZG1pbiIsInR1b2hlbmctdGVsZWNvbXVtYWxlLW1wIiwidHVvaGVuZy1haXJwb3J0U2NyZWVuLWFkbWluIiwidHVvaGVuZy1kbXAtbXAiLCJ0dW9oZW5nLWZseXBvcnRhbC1hZG1pbiIsInR1b2hlbmctdGVsZWNvbXVtYWxlLWFkbWluIiwidHVvaGVuZy1oaHotYWRtaW4iLCJ0dW9oZW5nLWhoei1tcCIsInR1b2hlbmctZnJlZXdheS1hZG1pbiIsInR1b2hlbmctd2VwdHNwLW1wIiwidHVvaGVuZy1waWxvdC1hZG1pbiIsInR1b2hlbmctc3BhY2V0aW1lLWFkbWluIiwidHVvaGVuZy1hbGVydC1tcCIsInR1b2hlbmctYnVzaW5lc3MtYWRtaW4iLCJ0dW9oZW5nLWJ1c2luZXNzLW1wIiwidHVvaGVuZy13ZXB0c3AtYWRtaW4iLCJ0dW9oZW5nLWFpcm1vbml0b3ItbXAiLCJ0dW9oZW5nLWFpcnBvcnQtbXAiLCJ0dW9oZW5nLWFpcm1vbml0b3ItYWRtaW4iLCJ0dW9oZW5nLWFsZXJ0LWFkbWluIiwidHVvaGVuZy1haXJwb3J0LWFkbWluIiwidHVvaGVuZy13YXRlcndheS1tcCIsInR1b2hlbmctZnJlZXdheS1tcCIsInR1b2hlbmctZG1wLWFkbWluIiwidHVvaGVuZy1zcGFjZXRpbWUtbXAiXSwiY2xpZW50Um9sZUxpc3QiOiJbe1wiY2xpZW50SWRcIjpcInR1b2hlbmctZmx5cG9ydGFsLWFkbWluXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1idXNpbmVzcy1tcFwiLFwicm9sZUlkXCI6MTE0NX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctYnVzaW5lc3MtYWRtaW5cIixcInJvbGVJZFwiOjExNDV9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWFpcnBvcnRTY3JlZW4tYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXNwYWNldGltZS1hZG1pblwiLFwicm9sZUlkXCI6MX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctc3BhY2V0aW1lLW1wXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1oaHotYWRtaW5cIixcInJvbGVJZFwiOjEwMDN9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWhoei1tcFwiLFwicm9sZUlkXCI6MTAwM30se1wiY2xpZW50SWRcIjpcInR1b2hlbmctd2F0ZXJ3YXktYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXdhdGVyd2F5LW1wXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1kbXAtYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWRtcC1tcFwiLFwicm9sZUlkXCI6MX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctYWlycG9ydC1hZG1pblwiLFwicm9sZUlkXCI6NjYzfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1haXJwb3J0LW1wXCIsXCJyb2xlSWRcIjo2NjN9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWFsZXJ0LWFkbWluXCIsXCJyb2xlSWRcIjoyN30se1wiY2xpZW50SWRcIjpcInR1b2hlbmctYWxlcnQtbXBcIixcInJvbGVJZFwiOjI3fSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1haXJtb25pdG9yLWFkbWluXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1haXJtb25pdG9yLW1wXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy13ZXB0c3AtYWRtaW5cIixcInJvbGVJZFwiOjI1fSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy13ZXB0c3AtbXBcIixcInJvbGVJZFwiOjI1fSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy10ZWxlY29tdW1hbGUtYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXRlbGVjb211bWFsZS1tcFwiLFwicm9sZUlkXCI6MX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctcGlsb3QtbXBcIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXBpbG90LWFkbWluXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1mcmVld2F5LW1wXCIsXCJyb2xlSWRcIjo1OH0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctZnJlZXdheS1hZG1pblwiLFwicm9sZUlkXCI6NTh9XSIsImV4cCI6MTc1NjAwMDg5MSwiaXNFeHBpcmUiOjEsImlhdCI6MTc1NTkxNDQ5MSwidXNlcm5hbWUiOiJjc2FkbWluIn0.Opt-pZg4tgqZkfcme-jSyOOw80j0s5tqWiPVp0lLlOZu20-nJEO2co3A1UZ-ZOsrCik1N3_ZqGWhrk9QYhj0EAeoD6ByLDkLIw7k66_YtBidygxdDaSdpNt_RSat2QBNdrkvoG1bSEgaffh8_x205sFzlYfywn0zQfT6eANiKS8NDyamiwFPg5PcWkf9hmW3IxvhiLbCoSpD1LfHR6izkD2_vBmrNAhV33l84BGpW3HLcD19ZcLWKauSLztiNLMT46zCyZIYaAtzSASdu3esADK28KpzBECBfpSfodvkU3kcv3r_IJ1yrmwdrg9kojOF27WxM3z6ekJAMsuMoUECLg',
'eyJraWQiOiI3M2I5NTI0Ni02NjI2LTQ3N2YtYWFmYS1kMDJiODFhNjFkZmYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjc2FkbWluIiwiaXNBYmxlIjoxLCJpc3MiOiJodHRwczpcL1wvbG9naW4tdGVzdC50LWFhcm9uLmNvbSIsImF1ZCI6InR1b2hlbmctYWlycG9ydC1hZG1pbiIsIm5iZiI6MTc1NjA4MjkxNiwib1VzZXJJZCI6NTQzLCJzY29wZSI6WyJ0dW9oZW5nLWFpcnBvcnRTY3JlZW4tbXAiLCJ0dW9oZW5nLXBpbG90LW1wIiwidHVvaGVuZy13YXRlcndheS1hZG1pbiIsInR1b2hlbmctdGVsZWNvbXVtYWxlLW1wIiwidHVvaGVuZy1haXJwb3J0U2NyZWVuLWFkbWluIiwidHVvaGVuZy1kbXAtbXAiLCJ0dW9oZW5nLWZseXBvcnRhbC1hZG1pbiIsInR1b2hlbmctdGVsZWNvbXVtYWxlLWFkbWluIiwidHVvaGVuZy1oaHotYWRtaW4iLCJ0dW9oZW5nLWhoei1tcCIsInR1b2hlbmctZnJlZXdheS1hZG1pbiIsInR1b2hlbmctd2VwdHNwLW1wIiwidHVvaGVuZy1waWxvdC1hZG1pbiIsInR1b2hlbmctc3BhY2V0aW1lLWFkbWluIiwidHVvaGVuZy1hbGVydC1tcCIsInR1b2hlbmctYnVzaW5lc3MtYWRtaW4iLCJ0dW9oZW5nLWJ1c2luZXNzLW1wIiwidHVvaGVuZy13ZXB0c3AtYWRtaW4iLCJ0dW9oZW5nLWFpcm1vbml0b3ItbXAiLCJ0dW9oZW5nLWFpcnBvcnQtbXAiLCJ0dW9oZW5nLWFpcm1vbml0b3ItYWRtaW4iLCJ0dW9oZW5nLWFsZXJ0LWFkbWluIiwidHVvaGVuZy1haXJwb3J0LWFkbWluIiwidHVvaGVuZy13YXRlcndheS1tcCIsInR1b2hlbmctZnJlZXdheS1tcCIsInR1b2hlbmctZG1wLWFkbWluIiwidHVvaGVuZy1zcGFjZXRpbWUtbXAiXSwiY2xpZW50Um9sZUxpc3QiOiJbe1wiY2xpZW50SWRcIjpcInR1b2hlbmctZmx5cG9ydGFsLWFkbWluXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1idXNpbmVzcy1tcFwiLFwicm9sZUlkXCI6MTE0NX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctYnVzaW5lc3MtYWRtaW5cIixcInJvbGVJZFwiOjExNDV9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWFpcnBvcnRTY3JlZW4tYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXNwYWNldGltZS1hZG1pblwiLFwicm9sZUlkXCI6MX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctc3BhY2V0aW1lLW1wXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1oaHotYWRtaW5cIixcInJvbGVJZFwiOjEwMDN9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWhoei1tcFwiLFwicm9sZUlkXCI6MTAwM30se1wiY2xpZW50SWRcIjpcInR1b2hlbmctd2F0ZXJ3YXktYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXdhdGVyd2F5LW1wXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1kbXAtYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWRtcC1tcFwiLFwicm9sZUlkXCI6MX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctYWlycG9ydC1hZG1pblwiLFwicm9sZUlkXCI6NjYzfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1haXJwb3J0LW1wXCIsXCJyb2xlSWRcIjo2NjN9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLWFsZXJ0LWFkbWluXCIsXCJyb2xlSWRcIjoyN30se1wiY2xpZW50SWRcIjpcInR1b2hlbmctYWxlcnQtbXBcIixcInJvbGVJZFwiOjI3fSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1haXJtb25pdG9yLWFkbWluXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1haXJtb25pdG9yLW1wXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy13ZXB0c3AtYWRtaW5cIixcInJvbGVJZFwiOjI1fSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy13ZXB0c3AtbXBcIixcInJvbGVJZFwiOjI1fSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy10ZWxlY29tdW1hbGUtYWRtaW5cIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXRlbGVjb211bWFsZS1tcFwiLFwicm9sZUlkXCI6MX0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctcGlsb3QtbXBcIixcInJvbGVJZFwiOjF9LHtcImNsaWVudElkXCI6XCJ0dW9oZW5nLXBpbG90LWFkbWluXCIsXCJyb2xlSWRcIjoxfSx7XCJjbGllbnRJZFwiOlwidHVvaGVuZy1mcmVld2F5LW1wXCIsXCJyb2xlSWRcIjo1OH0se1wiY2xpZW50SWRcIjpcInR1b2hlbmctZnJlZXdheS1hZG1pblwiLFwicm9sZUlkXCI6NTh9XSIsImV4cCI6MTc1NjE2OTMxNiwiaXNFeHBpcmUiOjEsImlhdCI6MTc1NjA4MjkxNiwidXNlcm5hbWUiOiJjc2FkbWluIn0.cU4vIbNjPppa9Mvyhc5uFXcVHum8xjf-B3HTjHuI8M_smFlUsOj8WFoLkxrB0GZmX_8fspxlcXoQaQ0ukFk1jF1Eyn1upL5mKVi8y_PCZPKJzXGU-67U2pA3MMWrztGQEmmDn_zi33Qi8BiG4cqB9nfqj4cqes50Nrq_LNPCgLjAcnfnYnZss9--3-SQqD15rLT7juVj9GfBhIphtVtAXoaftsQiccEW8NXTUH49Knpw8YlhTWN4Ibi92sQ353EcCVAqZ1iDuqlX4WcT4IRRzz5y248Bbp6R-lbJm92NjhAeQepb67io7muSAOrpTDZ2cfgd0bUCwooCD-QixNxWNw',
refresh_token:
'HNyAXnoDhR2kgjXUSVwqMldvgzazvaY3tVlCodSiDon7fA7P8Ci3BMsnk31cjeSKwcbsPzUaMdCdBilBhSqQ1dZLk-Md-ERqh5mbbeu7rJDWX4MexO0eKtRBwz-mbnbR',
token_type: 'Bearer',

View File

@ -3,10 +3,11 @@ import { defineStore } from 'pinia'
export const useAirPortSocketStore = defineStore('airportSocket', () => {
const currentAirPort = ref(null)
const ceurrentAirPortData = ref(null)
// function increment() {
// count.value++
// }
return { currentAirPort }
return { currentAirPort, ceurrentAirPortData }
})

View File

@ -1,36 +1,53 @@
<script setup>
import { ref, defineAsyncComponent, onMounted, watch, toRaw, defineProps, reactive } from 'vue'
const ScreenComp = defineAsyncComponent(() => import('@/views/carbin/toolComp/screen.vue'))
const emit = defineEmits(['switchScreen'])
const emit = defineEmits(['switchScreen', 'iframeLoaded'])
const props = defineProps({
row: Object, //
})
let out_title = ref('舱外直播')
let in_title = ref('舱内直播')
let out_showType = ref('video_out')
let in_showType = ref('video_in')
let lastType = ref(null)
const switchScreen = (type) => {
let title = ''
if (lastType != type) {
out_title.value = '舱外直播'
in_title.value = '舱内直播'
out_showType.value = 'video_out'
in_showType.value = 'video_in'
}
if (type == 'out') {
if (type == 'video_out') {
if (out_title.value == '地图') {
out_title.value = '舱外直播'
out_showType.value = 'video_out'
} else {
out_title.value = '地图'
out_showType.value = 'map'
}
title = out_showType.value
}
if (type == 'in') {
if (type == 'video_in') {
if (in_title.value == '地图') {
in_title.value = '舱内直播'
in_showType.value = 'video_in'
} else {
in_title.value = '地图'
in_showType.value = 'map'
}
title = in_showType.value
}
lastType = type
emit('switchScreen', type)
emit('switchScreen', type, title)
}
//iframe
const iframeLoaded = (iframeContent) => {
emit('iframeLoaded', iframeContent)
}
watch(
@ -60,7 +77,7 @@ onMounted(() => {})
<div
class="flex flex-row items-center px-3 bg-[#016CF8] text-[#ffffff] rounded-sm cursor-pointer"
@click="switchScreen('out')"
@click="switchScreen('video_out')"
>
<span class="iconfont icon-qiehuan"></span>
<span class="text-xs ml-1">切换</span>
@ -71,12 +88,7 @@ onMounted(() => {})
id="out_small_video_area"
class="relative w-full aspect-video bg-[#0B2038] mt-2 rounded-md border border-[#3C89C6] overflow-hidden"
>
<!-- <LivePlayer
v-show="LiveOptions_out.videoUrl?.includes('.flv')"
ref="OutlivePlayerRef"
id="realOutTimeCamera"
:options="LiveOptions_out"
/> -->
<ScreenComp :showType="out_showType" :row="props.row" @iframeLoaded="iframeLoaded" />
</div>
</div>
@ -90,7 +102,7 @@ onMounted(() => {})
<div
class="flex flex-row items-center px-3 bg-[#016CF8] text-[#ffffff] rounded-sm cursor-pointer"
@click="switchScreen('in')"
@click="switchScreen('video_in')"
>
<span class="iconfont icon-qiehuan"></span>
<span class="text-xs ml-1">切换</span>
@ -100,7 +112,9 @@ onMounted(() => {})
<div
id="in_small_video_area"
class="relative w-full aspect-video bg-[#0B2038] mt-2 rounded-md border border-[#3C89C6] overflow-hidden"
></div>
>
<ScreenComp :showType="in_showType" :row="props.row" @iframeLoaded="iframeLoaded" />
</div>
</div>
<!-- 按钮 暂时不做-->

View File

@ -31,19 +31,6 @@ let leftPlaneWidth = ref('25%')
let rightPlaneWidth = ref('75%')
let rightPlaneHeight = ref('100%')
let rightPlaneBottom = ref('0')
// //
// let out_showLive = ref(false)
// //
// let in_showLive = ref(false)
// //
// let plane_showLive = ref(false)
// //gismap
// let showIframeMap = ref(false)
// let outVideo_teleport = ref('#out_small_video_area')
// let inVideo_teleport = ref('#in_small_video_area')
// let planeVideo_teleport = ref('#plane_small_video_area')
// let map_teleport = ref('#big_area')
let big_area_showType = ref('map')
@ -67,31 +54,6 @@ const statusList = reactive({
let virturalDrive_iframe_full = ref(null)
let iframeData = null
//1
const LiveOptions_out = reactive({
videoUrl: null,
// videoTitle: null,
// live: true,
// hideFullscreenButton: true,
// stretch: true
})
//2
const LiveOptions_in = reactive({
videoUrl: null,
// videoTitle: null,
// live: true,
// hideFullscreenButton: true,
// stretch: true
})
//-
const LiveOptions_plane = reactive({
videoUrl: null,
// videoTitle: null,
// live: true,
// hideFullscreenButton: true,
// stretch: true
})
//
const modifPlaneWidthFn = (num) => {
if (num == 1) {
@ -126,11 +88,7 @@ const queryAirLine_AirPort = async () => {
if (res[0].value.code == 0) {
//
currentAirPortInfo.value = res[0].value.data[0]
//
LiveOptions_out.videoUrl = currentAirPortInfo.value.external_monitor_url
LiveOptions_in.videoUrl = currentAirPortInfo.value.internal_monitor_url
LiveOptions_plane.videoUrl = currentAirPortInfo.value.camera_url
airPortSocketStore.ceurrentAirPortData = currentAirPortInfo.value
//
if (currentAirPortStatus.value != Number(currentAirPortInfo.value.status)) {
@ -140,8 +98,8 @@ const queryAirLine_AirPort = async () => {
currentAirPortStatus.value,
statusList[currentAirPortStatus.value],
)
//teleport
// resetTeleportTo(currentAirPortStatus.value)
resetScreen()
}
//socket
@ -188,14 +146,9 @@ const queryAirPort = async () => {
let res = await queryAirportApi(params)
if (res.code == 0) {
currentAirPortInfo.value = res.data[0]
// console.log(currentAirPortInfo.value)
airPortSocketStore.ceurrentAirPortData = currentAirPortInfo.value
//
LiveOptions_out.videoUrl = currentAirPortInfo.value.external_monitor_url
LiveOptions_in.videoUrl = currentAirPortInfo.value.internal_monitor_url
LiveOptions_plane.videoUrl = currentAirPortInfo.value.camera_url
// currentAirPortInfo.value.status = 2
currentAirPortInfo.value.status = 3
//
if (currentAirPortStatus.value != Number(currentAirPortInfo.value.status)) {
@ -205,8 +158,8 @@ const queryAirPort = async () => {
currentAirPortStatus.value,
statusList[currentAirPortStatus.value],
)
//teleport
// resetTeleportTo(currentAirPortStatus.value)
resetScreen()
}
}
//
@ -214,53 +167,6 @@ const queryAirPort = async () => {
queryAirPort()
}, 6000)
}
//
const resetTeleportTo = (currentAirPortStatus) => {
if (currentAirPortStatus == 1) {
//
setTimeout(() => {
//
map_teleport.value = '#big_area'
//
outVideo_teleport.value = '#out_small_video_area'
//
inVideo_teleport.value = '#in_small_video_area'
out_showLive.value = true
in_showLive.value = true
showIframeMap.value = true
plane_showLive.value = false
}, 50)
} else if (currentAirPortStatus == 2) {
//
rightPlaneHeight.value = 'calc(100% - 150px)'
rightPlaneBottom.value = '150px'
setTimeout(() => {
//
map_teleport.value = '#left_flying_map'
//
outVideo_teleport.value = '#plane_small_video_area'
out_showLive.value = true
in_showLive.value = false
showIframeMap.value = true
plane_showLive.value = false
}, 200)
} else if (currentAirPortStatus == 3) {
//
setTimeout(() => {
//
outVideo_teleport.value = '#big_area'
out_showLive.value = true
in_showLive.value = false
showIframeMap.value = false
plane_showLive.value = false
}, 50)
}
}
//socket线
const socketFn = (workParams) => {
//线,使type:moduleworkerimportjs
@ -281,7 +187,7 @@ const socketFn = (workParams) => {
const iframeLoaded = (iframeContent) => {
// let iframeItem = virturalDrive_iframe_full.value
// let iframeContent = iframeItem.contentWindow
console.log(iframeContent)
let data = JSON.stringify(iframeData)
// console.log(data)
@ -294,7 +200,6 @@ const iframeLoaded = (iframeContent) => {
// sendPosToPlane()
// }, 2000)
}
//
const sendPosToPlane = () => {
if (currentAirPortStatus.value != 2) {
@ -335,7 +240,6 @@ const sendPosToPlane = () => {
}
sendPosFn()
}
//gis
const sendGisMessage = (params) => {
//params
@ -346,55 +250,48 @@ const sendGisMessage = (params) => {
iframeContent.postMessage(data, '*')
}
//screen
const resetScreen = () => {
if (currentAirPortStatus.value == 3) {
//
big_area_showType.value = 'video_out'
}
}
//
const switchRightVideoFn = (videoType) => {
if (videoType == 1) {
//
setTimeout(() => {
outVideo_teleport.value = '#big_area'
out_showLive.value = true
in_showLive.value = false
showIframeMap.value = false
plane_showLive.value = false
}, 50)
big_area_showType.value = 'video_out'
} else if (videoType == 2) {
//
setTimeout(() => {
inVideo_teleport.value = '#big_area'
out_showLive.value = false
in_showLive.value = true
showIframeMap.value = false
plane_showLive.value = false
}, 50)
big_area_showType.value = 'video_in'
} else if (videoType == 3) {
//
setTimeout(() => {
planeVideo_teleport.value = '#big_area'
out_showLive.value = false
in_showLive.value = false
showIframeMap.value = false
plane_showLive.value = true
}, 50)
big_area_showType.value = 'video_plane'
}
}
//
const switchScreenFn = (type) => {
console.log(type)
if (switchType != type) {
//
outVideo_teleport.value = '#out_small_video_area'
inVideo_teleport.value = '#in_small_video_area'
map_teleport.value = '#big_area'
}
if (type == 'out') {
//
const switchScreenFn = (type, title) => {
// console.log(title)
if (type == 'video_out') {
//
;[outVideo_teleport.value, map_teleport.value] = [map_teleport.value, outVideo_teleport.value]
} else if (type == 'in') {
if (title == 'video_out') {
//map
big_area_showType.value = 'map'
} else if (title == 'map') {
//
big_area_showType.value = type
}
} else if (type == 'video_in') {
//
;[inVideo_teleport.value, map_teleport.value] = [map_teleport.value, inVideo_teleport.value]
if (title == 'video_in') {
//map
big_area_showType.value = 'map'
} else if (title == 'map') {
//
big_area_showType.value = type
}
}
switchType = type
}
@ -437,6 +334,7 @@ onMounted(() => {
v-if="currentAirPortStatus == 1"
:row="currentAirPortInfo"
@switchScreen="switchScreenFn"
@iframeLoaded="iframeLoaded"
/>
<!-- 自检面板 准备中-->
@ -479,45 +377,6 @@ onMounted(() => {
</div>
</div>
</div>
<!-- 直播播放器 -->
<!-- 舱外视频 -->
<!-- <teleport :to="outVideo_teleport" v-if="out_showLive">
<LivePlayer
class="h-full absolute left-0 right-0 top-0 right-0 m-auto"
v-show="out_showLive && LiveOptions_out.videoUrl?.includes('.flv')"
ref="OutlivePlayerRef"
:options="LiveOptions_out"
/>
</teleport> -->
<!-- 舱内视频 -->
<!-- <teleport :to="inVideo_teleport" v-if="in_showLive">
<LivePlayer
class="h-full absolute left-0 right-0 top-0 right-0 m-auto"
v-show="in_showLive && LiveOptions_in.videoUrl?.includes('.flv')"
ref="inlivePlayerRef"
:options="LiveOptions_in"
/>
</teleport> -->
<!-- 无人机视角 -->
<!-- <teleport :to="planeVideo_teleport" v-if="plane_showLive">
<LivePlayer
class="h-full absolute left-0 right-0 top-0 right-0 m-auto"
v-show="plane_showLive && LiveOptions_plane.videoUrl?.includes('.flv')"
ref="planelivePlayerRef"
:options="LiveOptions_plane"
/>
</teleport> -->
<!-- map -->
<!-- <teleport v-if="showIframeMap" :to="map_teleport">
<iframe
v-if="showIframeMap"
id="virturalDrive_iframe_full"
ref="virturalDrive_iframe_full"
src="https://gisdata.t-aaron.com/virturalDrive/VirturalDrive.html"
@load="iframeLoaded"
></iframe>
</teleport> -->
</template>
<style lang="scss">

View File

@ -1,11 +1,21 @@
<script setup>
import { ref, defineAsyncComponent, onMounted, watch, toRaw, defineProps, reactive } from 'vue'
import { useAirPortSocketStore } from '@/stores/airportSocket.js'
//-
const LivePlayer = defineAsyncComponent(() => import('@/components/video/index.vue'))
const props = defineProps({
showType: String, // video/map
row: Object, //
showType: String, // video_out/video_in/video_plane /map
// row: Object, //
})
const airPortSocketStore = useAirPortSocketStore()
let row = null
//pinia
airPortSocketStore.$subscribe((mutate, state) => {
row = state.ceurrentAirPortData
showType.value = props.showType
setVideo()
})
const emit = defineEmits(['iframeLoaded'])
@ -28,16 +38,30 @@ const iframeLoaded = () => {
emit('iframeLoaded', iframeContent)
}
const setVideo = () => {
if (showType.value == 'video_out') {
LiveOptions.videoUrl = row.external_monitor_url
} else if (showType.value == 'video_in') {
LiveOptions.videoUrl = row.internal_monitor_url
} else if (showType.value == 'video_plane') {
LiveOptions.videoUrl = row.camera_url
}
// console.log(row)
}
// watch(
// () => props.row,
// (val) => {
// showType.value = props.showType
// // setVideo()
// },
// { deep: true },
// )
watch(
() => props.row,
() => props.showType,
(val) => {
// console.log('')
console.log(val)
showType.value = props.showType
// LiveOptions_out.videoUrl = val.external_monitor_url
// LiveOptions_in.videoUrl = val.internal_monitor_url
showType.value = val
setVideo()
},
{ deep: true },
)
</script>
@ -45,9 +69,12 @@ watch(
<div class="w-full h-full">
<LivePlayer
class="h-full absolute left-0 right-0 top-0 right-0 m-auto"
v-show="showType == 'video' && LiveOptions.videoUrl?.includes('.flv')"
v-show="
(showType == 'video_out' || showType == 'video_in' || showType == 'video_plane') &&
LiveOptions.videoUrl?.includes('.flv')
"
ref="OutlivePlayerRef"
:options="LiveOptions_out"
:options="LiveOptions"
/>
<iframe
v-if="showType == 'map'"