|
|
@@ -1,33 +1,34 @@
|
|
|
<template>
|
|
|
<Rules v-if="showRules" @close="closeRules" />
|
|
|
|
|
|
- <AppHeader v-show="!fscChecked" :project="project" @getUserId="getUserId" :show-adjust="showAdjust"
|
|
|
- @update="onPointsUpdate" />
|
|
|
+ <AppHeader v-show="!fscChecked" :project="project" @getUserId="getUserId" :show-adjust="showAdjust" @update="onPointsUpdate" />
|
|
|
<article>
|
|
|
<main>
|
|
|
<div class="split">
|
|
|
- <iframe ref="sourceFrame" v-if="sourceURL" :src="sourceURL" frameborder="0"
|
|
|
- @load="onLoadSource"></iframe>
|
|
|
- <div class="tools" v-if="source && !showRules && !ruleChecked"
|
|
|
- v-show="showWidget && !showAdjust && !fscChecked && (dbsChecked || (!target && !bimChecked))">
|
|
|
+ <iframe ref="sourceFrame" v-if="sourceURL" :src="sourceURL" frameborder="0" @load="onLoadSource"></iframe>
|
|
|
+ <div class="tools" v-if="source && !showRules && !ruleChecked && !isClear" v-show="showWidget && !showAdjust && !fscChecked && (dbsChecked || (!target && !bimChecked))">
|
|
|
<div class="item-date">
|
|
|
- <calendar name="source" :count="scenes.length" :controls="controls" :value="sourceDate"
|
|
|
- :highlighted="sourceDays" @selected="onSelected" @pick="onPickDate" @prev="onPrevDate"
|
|
|
- @next="onNextDate"></calendar>
|
|
|
+ <calendar
|
|
|
+ name="source"
|
|
|
+ :count="scenes.length"
|
|
|
+ :controls="controls"
|
|
|
+ :value="sourceDate"
|
|
|
+ :highlighted="sourceDays"
|
|
|
+ @selected="onSelected"
|
|
|
+ @pick="onPickDate"
|
|
|
+ @prev="onPrevDate"
|
|
|
+ @next="onNextDate"
|
|
|
+ ></calendar>
|
|
|
</div>
|
|
|
<div class="item-mode" v-if="source.type == 2 || source.type == 3">
|
|
|
- <div class="iconfont icon-show_roaming" :class="{ active: mode == 0 }" @click="onModeChange(0)">
|
|
|
- </div>
|
|
|
- <div class="iconfont icon-show_plane" :class="{ active: mode == 1 }" @click="onModeChange(1)">
|
|
|
- </div>
|
|
|
+ <div class="iconfont icon-show_roaming" :class="{ active: mode == 0 }" @click="onModeChange(0)"></div>
|
|
|
+ <div class="iconfont icon-show_plane" :class="{ active: mode == 1 }" @click="onModeChange(1)"></div>
|
|
|
</div>
|
|
|
- <div class="item-density" v-if="(source.type == 2 && mode == 1) || (source.type == 3 && mode == 1)"
|
|
|
- :class="{ active: showDensity }" @click="showDensity = !showDensity">
|
|
|
+ <div class="item-density" v-if="(source.type == 2 && mode == 1) || (source.type == 3 && mode == 1)" :class="{ active: showDensity }" @click="showDensity = !showDensity">
|
|
|
<span>{{ densityType.text }}</span>
|
|
|
<i class="iconfont icon-arrows_down"></i>
|
|
|
<ul>
|
|
|
- <li v-for="density in densityTypes" @click="onDensityChange(density)">{{ density.text }}
|
|
|
- </li>
|
|
|
+ <li v-for="density in densityTypes" @click="onDensityChange(density)">{{ density.text }}</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -46,9 +47,17 @@
|
|
|
<iframe ref="targetFrame" :src="targetURL" frameborder="0" @load="onLoadTarget"></iframe>
|
|
|
<div class="tools" v-show="!fscChecked && !bimChecked">
|
|
|
<div class="item-date target">
|
|
|
- <calendar name="target" :count="scenes.length" :controls="controls" :value="targetDate"
|
|
|
- :highlighted="targetDays" @selected="onSelected" @pick="onPickDate" @prev="onPrevDate"
|
|
|
- @next="onNextDate"></calendar>
|
|
|
+ <calendar
|
|
|
+ name="target"
|
|
|
+ :count="scenes.length"
|
|
|
+ :controls="controls"
|
|
|
+ :value="targetDate"
|
|
|
+ :highlighted="targetDays"
|
|
|
+ @selected="onSelected"
|
|
|
+ @pick="onPickDate"
|
|
|
+ @prev="onPrevDate"
|
|
|
+ @next="onNextDate"
|
|
|
+ ></calendar>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="points" v-if="showAdjust">
|
|
|
@@ -62,39 +71,34 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="model" v-show="showWidget && !showAdjust && !showRules">
|
|
|
- <div class="rule" :class="{ active: ruleChecked, disable: fileDisable }"
|
|
|
- v-show="!fscChecked && !showBim && !dbsChecked && !bimChecked">
|
|
|
+ <div class="model" v-show="showWidget && !showAdjust && !showRules && !isClear">
|
|
|
+ <div class="rule" :class="{ active: ruleChecked, disable: fileDisable }" v-show="!fscChecked && !showBim && !dbsChecked && !bimChecked">
|
|
|
<div @click="onRuleChecked">
|
|
|
<i class="iconfont icon-measurement"></i>
|
|
|
<span>{{ $t('common.measure') }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-if="isLogin && isAuth" class="file" :class="{ active: fileChecked, disable: fileDisable }"
|
|
|
- v-show="!fscChecked && !showBim && !dbsChecked && !bimChecked && !ruleChecked">
|
|
|
+ <div v-if="isLogin && isAuth" class="file" :class="{ active: fileChecked, disable: fileDisable }" v-show="!fscChecked && !showBim && !dbsChecked && !bimChecked && !ruleChecked">
|
|
|
<div @click="onFileChecked">
|
|
|
<i class="iconfont icon-note1"></i>
|
|
|
<span>{{ $t('home.tag') }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="bim" :class="{ active: bimChecked, disable: bimDisable }"
|
|
|
- v-show="!fscChecked && !showBim && !ruleChecked">
|
|
|
+ <div class="bim" :class="{ active: bimChecked, disable: bimDisable }" v-show="!fscChecked && !showBim && !ruleChecked">
|
|
|
<div @click="onBimChecked">
|
|
|
<i class="iconfont icon-BIM"></i>
|
|
|
<span>BIM</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="dbs" :class="{ active: dbsChecked, disable: dbsDisable }"
|
|
|
- v-show="!fscChecked && !showBim && !ruleChecked">
|
|
|
+ <div class="dbs" :class="{ active: dbsChecked, disable: dbsDisable }" v-show="!fscChecked && !showBim && !ruleChecked">
|
|
|
<div @click="onDbsChecked">
|
|
|
<i class="iconfont icon-split_screen"></i>
|
|
|
<span>{{ $t('home.splitScreen') }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="fsc" :class="{ active: fscChecked }" @click="onFscChecked">
|
|
|
- <i class="iconfont"
|
|
|
- :class="[fscChecked ? 'icon-full_screen_selected' : 'icon-full_screen_normal']"></i>
|
|
|
+ <i class="iconfont" :class="[fscChecked ? 'icon-full_screen_selected' : 'icon-full_screen_normal']"></i>
|
|
|
<span>{{ $t('home.fullScreen') }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -152,6 +156,7 @@ const closeRules = () => {
|
|
|
|
|
|
// 是否BIM模式
|
|
|
const showBim = ref(browser.urlHasValue('bim'))
|
|
|
+const isClear = ref(browser.urlHasValue('clear'))
|
|
|
// 是否校准模式
|
|
|
const showSplit = ref(browser.urlHasValue('split'))
|
|
|
const showAdjust = ref(browser.urlHasValue('adjust'))
|
|
|
@@ -185,7 +190,7 @@ watch(
|
|
|
// tagsVieww.style.visibility = 'visible'
|
|
|
// tagsVieww.style.width = '100%'
|
|
|
// tagsVieww.style.overflow = 'visible'
|
|
|
- if(bimChecked.value){
|
|
|
+ if (bimChecked.value) {
|
|
|
tagsVieww.style.visibility = 'hidden'
|
|
|
}
|
|
|
}
|
|
|
@@ -245,7 +250,6 @@ const controls = computed(() => {
|
|
|
return dbsChecked.value ? scenes.value.length > 2 : scenes.value.length > 1
|
|
|
})
|
|
|
const sourceURL = computed(() => {
|
|
|
-
|
|
|
beforeChangeURL('source')
|
|
|
|
|
|
if (bimChecked.value && !dbsChecked.value) {
|
|
|
@@ -265,11 +269,13 @@ const sourceURL = computed(() => {
|
|
|
|
|
|
let url = ''
|
|
|
if (process.env.VUE_APP_ENV == 'aws') {
|
|
|
- url = `smart-laser.html?m=${source.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${process.env.VUE_APP_RESOURCE_URL
|
|
|
- }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}®ion=${process.env.VUE_APP_ENV}`
|
|
|
+ url = `smart-laser.html?m=${source.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${
|
|
|
+ process.env.VUE_APP_RESOURCE_URL
|
|
|
+ }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}®ion=${process.env.VUE_APP_ENV}`
|
|
|
} else {
|
|
|
- url = `smart-laser.html?m=${source.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${process.env.VUE_APP_RESOURCE_URL
|
|
|
- }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}`
|
|
|
+ url = `smart-laser.html?m=${source.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${
|
|
|
+ process.env.VUE_APP_RESOURCE_URL
|
|
|
+ }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}`
|
|
|
}
|
|
|
return url
|
|
|
}
|
|
|
@@ -309,11 +315,13 @@ const targetURL = computed(() => {
|
|
|
// 深时场景
|
|
|
let url = ''
|
|
|
if (process.env.VUE_APP_ENV == 'aws') {
|
|
|
- url = `smart-laser.html?m=${target.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${process.env.VUE_APP_RESOURCE_URL
|
|
|
- }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}®ion=${process.env.VUE_APP_ENV}`
|
|
|
+ url = `smart-laser.html?m=${target.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${
|
|
|
+ process.env.VUE_APP_RESOURCE_URL
|
|
|
+ }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}®ion=${process.env.VUE_APP_ENV}`
|
|
|
} else {
|
|
|
- url = `smart-laser.html?m=${target.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${process.env.VUE_APP_RESOURCE_URL
|
|
|
- }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}`
|
|
|
+ url = `smart-laser.html?m=${target.value.num}${isDev ? '&dev' : ''}&lang=${getLocale()}&serve_link=${process.env.VUE_APP_LASER_URL}&panoResourceBasePath=${
|
|
|
+ process.env.VUE_APP_RESOURCE_URL
|
|
|
+ }&resourceBasePath=${process.env.VUE_APP_LASER_RESOURCE_URL}`
|
|
|
}
|
|
|
return url
|
|
|
}
|
|
|
@@ -703,7 +711,6 @@ const onRuleChecked = () => {
|
|
|
}
|
|
|
}
|
|
|
const getTagList = num => {
|
|
|
-
|
|
|
const pnum = num ? num : browser.getURLParam('m')
|
|
|
|
|
|
http.post(`smart-site/marking/list`, {
|
|
|
@@ -714,20 +721,20 @@ const getTagList = num => {
|
|
|
}).then(response => {
|
|
|
if (response.data && response.data.list) {
|
|
|
tags.value.length = 0
|
|
|
- response.data.list.map(item => {
|
|
|
- item.hotData.visible = false
|
|
|
- item.hotData.id = item.markingId
|
|
|
- item.hotData.createTime = item.createTime
|
|
|
- item.hotData.createBy = item.createBy
|
|
|
- return item.hotData
|
|
|
- }).forEach(item => {
|
|
|
- tags.value.push(item)
|
|
|
-
|
|
|
- })
|
|
|
+ response.data.list
|
|
|
+ .map(item => {
|
|
|
+ item.hotData.visible = false
|
|
|
+ item.hotData.id = item.markingId
|
|
|
+ item.hotData.createTime = item.createTime
|
|
|
+ item.hotData.createBy = item.createBy
|
|
|
+ return item.hotData
|
|
|
+ })
|
|
|
+ .forEach(item => {
|
|
|
+ tags.value.push(item)
|
|
|
+ })
|
|
|
if (window['kankan']) {
|
|
|
window['kankan'].TagManager.load(tags.value)
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
@@ -750,6 +757,7 @@ const getInfo = () => {
|
|
|
project.value = response.data
|
|
|
if (showBim.value) {
|
|
|
onBimChecked()
|
|
|
+ onDbsChecked()
|
|
|
} else if (project.value.sceneList.length) {
|
|
|
if (num) {
|
|
|
source.value = project.value.sceneList.find(c => c.num == num)
|
|
|
@@ -920,7 +928,7 @@ main {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
|
|
|
- >div {
|
|
|
+ > div {
|
|
|
cursor: pointer;
|
|
|
width: 50px;
|
|
|
height: 50px;
|
|
|
@@ -934,7 +942,7 @@ main {
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
|
|
|
- >div {
|
|
|
+ > div {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
display: flex;
|
|
|
@@ -971,7 +979,7 @@ main {
|
|
|
color: #fff;
|
|
|
pointer-events: none;
|
|
|
|
|
|
- >div {
|
|
|
+ > div {
|
|
|
pointer-events: all;
|
|
|
}
|
|
|
|