Просмотр исходного кода

Merge branch 'dev' into release

jinx 2 дней назад
Родитель
Сommit
65b011625d
4 измененных файлов с 82 добавлено и 68 удалено
  1. 4 5
      .env.development
  2. 3 3
      src/components/header/index.vue
  3. 2 1
      src/pages/SViewer.vue
  4. 73 59
      src/pages/Viewer.vue

+ 4 - 5
.env.development

@@ -1,9 +1,8 @@
 VUE_APP_TEST=1
-VUE_APP_CDN_URL=https://oss.4dkankan.jp/v4-test/www/
-VUE_APP_RESOURCE_URL=https://oss.4dkankan.jp/
+VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
+VUE_APP_RESOURCE_URL=https://4dkk.4dage.com/
 # 激光接口地址
-VUE_APP_DEV_PROXY=https://test-jp.4dkankan.com/
-#VUE_APP_LASER_URL=https://uat-laser.4dkankan.com/
-  VUE_APP_LASER_URL=https://testlaser-jp.4dkankan.com/backend/
+VUE_APP_DEV_PROXY=https://test.4dkankan.com/
+VUE_APP_LASER_URL=https://uat-laser.4dkankan.com/
 #环境区分
 #VUE_APP_ENV=jp

+ 3 - 3
src/components/header/index.vue

@@ -8,7 +8,7 @@
     </header>
     <header v-else>
         <div v-if="project">{{ project.projectName }}</div>
-        <div class="user">
+        <div class="user" v-if="!isClear">
             <ul>
                 <li>
                     <div class="language">
@@ -72,7 +72,7 @@ import CopyLink from './CopyLink'
 import sync from '@/utils/sync'
 import { useI18n, getLocale } from '@/i18n'
 import math from '@/utils/math.js'
-
+const isClear = ref(browser.urlHasValue('clear'))
 const { t } = useI18n({ useScope: 'global' })
 const props = defineProps({
     project: Object,
@@ -254,7 +254,7 @@ watchEffect(() => {
         if (props.project && props.project.panos) {
             points.value.p1 = props.project.panos.p1
             points.value.p2 = props.project.panos.p2
-            console.log('------load---------',points.value)
+            console.log('------load---------', points.value)
         }
     }
 })

+ 2 - 1
src/pages/SViewer.vue

@@ -1,7 +1,7 @@
 <template>
     <main>
         <iframe ref="sourceFrame" v-if="sourceURL" :src="sourceURL" frameborder="0" @load="onLoadSource"></iframe>
-        <div class="model" v-show="!showAdjust">
+        <div class="model" v-show="!showAdjust && !isClear">
             <div class="bim" :class="{ active: bimChecked, disable: project && !project.bimData }">
                 <div @click="onBimChecked">
                     <i class="iconfont icon-BIM"></i>
@@ -49,6 +49,7 @@ let panoData
 
 // 是否BIM模式
 const showBim = ref(browser.urlHasValue('bim'))
+const isClear = ref(browser.urlHasValue('clear'))
 const showBimTips = ref(false)
 const showTips = ref(null)
 const showDensity = ref(false)

+ 73 - 59
src/pages/Viewer.vue

@@ -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}&region=${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}&region=${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}&region=${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}&region=${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
     }
@@ -406,10 +414,16 @@ const onLoadSource = () => {
         window.laser.then(sdk => {
             sdk.scene.on('posChange', cameraPos => {
                 tags.value.forEach(tag => {
-                    const info2d = sdk.scene.getScreenByPoint(tag.position,true)
-                    tag.x = info2d.pos.x
-                    tag.y = info2d.pos.y
+                    const info2d = sdk.scene.getScreenByPoint(tag.position, true)
+                    // tag.x = info2d.pos.x
+                    // tag.y = info2d.pos.y
+                    // tag.visible = info2d.trueSide && info2d.inSight
+
                     tag.visible = info2d.trueSide && info2d.inSight
+                    if (tag.visible) {
+                        tag.x = info2d.pos.x
+                        tag.y = info2d.pos.y
+                    }
                 })
             })
 
@@ -703,7 +717,6 @@ const onRuleChecked = () => {
     }
 }
 const getTagList = num => {
-
     const pnum = num ? num : browser.getURLParam('m')
 
     http.post(`smart-site/marking/list`, {
@@ -714,20 +727,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 +763,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 +934,7 @@ main {
         display: flex;
         flex-direction: column;
 
-        >div {
+        > div {
             cursor: pointer;
             width: 50px;
             height: 50px;
@@ -934,7 +948,7 @@ main {
             align-items: center;
             justify-content: center;
 
-            >div {
+            > div {
                 width: 100%;
                 height: 100%;
                 display: flex;
@@ -971,7 +985,7 @@ main {
         color: #fff;
         pointer-events: none;
 
-        >div {
+        > div {
             pointer-events: all;
         }