Prechádzať zdrojové kódy

fix: Merge branch 'dev' of http://192.168.0.115:3000/4dkankan/4dkankan_bim into dev

# Conflicts:
#	public/static/lib/potree/potree.js.map
xzw 2 rokov pred
rodič
commit
809dfe5352

+ 1 - 0
.env.development

@@ -0,0 +1 @@
+VUE_APP_TEST=1

+ 1 - 1
public/js/10.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[10],{398:function(n,p,o){n.exports=o.p+"img/data_revise_n.fbcdb99b.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[10],{399:function(n,p,o){n.exports=o.p+"img/data_revise_n.fbcdb99b.svg"}}]);

+ 1 - 1
public/js/11.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[11],{399:function(n,p,w){n.exports=w.p+"img/dianwei.a4f6219e.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[11],{400:function(n,p,w){n.exports=w.p+"img/dianwei.a4f6219e.svg"}}]);

+ 1 - 1
public/js/12.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[12],{400:function(p,n,o){p.exports=o.p+"img/m-r.471aa7f5.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[12],{401:function(p,n,o){p.exports=o.p+"img/m-r.471aa7f5.svg"}}]);

+ 1 - 1
public/js/13.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[13],{401:function(p,n,o){p.exports=o.p+"img/point-s.69e5b4b6.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[13],{402:function(p,n,o){p.exports=o.p+"img/point-s.69e5b4b6.svg"}}]);

+ 1 - 1
public/js/14.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[14],{402:function(p,s,n){p.exports=n.p+"img/state_gps.cc832e05.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[14],{403:function(p,s,n){p.exports=n.p+"img/state_gps.cc832e05.svg"}}]);

+ 1 - 1
public/js/15.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[15],{403:function(o,p,w){o.exports=w.p+"img/weitiao.f217d1d9.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[15],{404:function(o,p,w){o.exports=w.p+"img/weitiao.f217d1d9.svg"}}]);

+ 1 - 1
public/js/16.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[16],{404:function(o,n,p){o.exports=p.p+"img/zoom_n.33ea3c1f.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[16],{405:function(o,n,p){o.exports=p.p+"img/zoom_n.33ea3c1f.svg"}}]);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/17.js


+ 1 - 1
public/js/18.js

@@ -1,4 +1,4 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[18],{395:function(module,exports,__webpack_require__){(function(global){
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[18],{396:function(module,exports,__webpack_require__){(function(global){
 /*!
  * vConsole v3.11.2 (https://github.com/Tencent/vConsole)
  *

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/2.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/3.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/4.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/5.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/6.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/7.js


+ 1 - 1
public/js/8.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[8],{396:function(n,o,p){n.exports=p.p+"img/a-connect-dis.27190505.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[8],{397:function(n,o,p){n.exports=p.p+"img/a-connect-dis.27190505.svg"}}]);

+ 1 - 1
public/js/9.js

@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[9],{397:function(n,o,p){n.exports=p.p+"img/a-connect.6b6a01e1.svg"}}]);
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[9],{398:function(n,o,p){n.exports=p.p+"img/a-connect.6b6a01e1.svg"}}]);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 8 - 8
public/js/chunk-vendors.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
public/js/smart.js


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

@@ -1,8 +1,8 @@
 <template>
     <div class="calendar">
-        <span class="prev" @click="emits('prev', props.name)" v-show="props.count>1"><i class="iconfont icon-arrows_left"></i></span>
+        <span class="prev" @click="emits('prev', props.name)" v-show="controls"><i class="iconfont icon-arrows_left"></i></span>
         <span class="cale" @click="onPickDate()">{{ value.format('YYYY-mm-dd') }}<i class="iconfont icon-date"></i></span>
-        <span class="next" @click="emits('next', props.name)" v-show="props.count>1"><i class="iconfont icon-arrows_right"></i></span>
+        <span class="next" @click="emits('next', props.name)" v-show="controls"><i class="iconfont icon-arrows_right"></i></span>
         <div class="calendar-list" v-if="showCalendar" @click="showCalendar = false">
             <div @click.stop>
                 <datepicker language="zh" :inline="true" :value="value" :highlighted="highlighted" @selected="onSelected"></datepicker>
@@ -16,7 +16,7 @@ import Datepicker from '@/components/datepicker/Datepicker'
 const props = defineProps({
     name: String,
     value: Date,
-    count:Number,
+    controls:Boolean,
     highlighted: Object,
 })
 const emits = defineEmits(['prev', 'selected', 'next', 'pick'])

+ 6 - 0
src/components/header/index.vue

@@ -41,6 +41,7 @@
     <Toast v-if="showCopyDone" content="复制成功" />
     <Toast v-if="showTips" :content="showTips" :close="() => (showTips = null)" />
     <Login v-if="showLogin" @close="showLogin = false" @user="info => (user = info)" />
+    <Loading v-if="showLoading"/>
     <CopyLink v-if="showLink" @close="showLink = false" @done="showCopyDone = true;showLink = false" />
 </template>
 <script setup>
@@ -48,6 +49,7 @@ import { ref, defineProps, onMounted, watchEffect } from 'vue'
 import { http } from '@/utils/request'
 import browser from '@/utils/browser'
 import Toast from '@/components/dialog/Toast'
+import Loading from '@/components/loading/Loading'
 import Login from './Login'
 import CopyLink from './CopyLink'
 import sync from '@/utils/sync'
@@ -61,6 +63,7 @@ const emits = defineEmits(['update'])
 const user = ref(null)
 const points = ref({ p1: null, p2: null })
 const showLink = ref(false)
+const showLoading = ref(false)
 const showLogin = ref(false)
 const showCopyDone = ref(false)
 const showTips = ref(null)
@@ -127,11 +130,13 @@ const onCancel = () => {
     window.location.href = window.location.href.replace('&adjust', '')
 }
 const onSubmit = () => {
+    showLoading.value = true
     http.post(`smart-site/project/updatePanos`, {
         projectId: props.project.projectId,
         panos: JSON.stringify(points.value),
     })
         .then(response => {
+            showLoading.value = false
             if (response.success) {
                 showTips.value = 'BIM同步成功'
                 setTimeout(() => {
@@ -144,6 +149,7 @@ const onSubmit = () => {
             }
         })
         .catch(() => {
+            showLoading.value = false
             showTips.value = '连接服务器失败'
         })
 }

+ 14 - 4
src/pages/SViewer.vue

@@ -29,7 +29,7 @@ import Toast from '@/components/dialog/Toast'
 import browser from '@/utils/browser'
 import Calendar from '@/components/calendar/mobile.vue'
 import sync, {laserChangeMode, loadSourceScene, loadTargetScene , setPanoWithBim} from '@/utils/sync'
-
+const isDev = process.env.VUE_APP_TEST == 1
 // 点位信息
 let lastFakeApp = null
 let panoData
@@ -88,7 +88,7 @@ const sourceURL = computed(() => {
     if(source.value.type < 2) {
         return `smart-kankan.html?m=${source.value.num}`
     } else {
-        return `smart-laser.html?m=${source.value.num}&dev`
+        return `smart-laser.html?m=${source.value.num}${isDev?'&dev':''}`
     }
 })
 
@@ -244,8 +244,9 @@ const onBimChecked = () => {
 }
 
 onMounted(() => {
+    const num = browser.valueFromUrl('m') || ''
     const projectId = browser.valueFromUrl('projectId') || 1
-    http.get(`smart-site/project/info?projectId=${projectId}`)
+    http.get(`smart-site/project/info?projectId=${projectId}&sceneOrder=asc`)
         .then(response => {
             if (response.success) {
                 project.value = response.data
@@ -253,7 +254,16 @@ onMounted(() => {
                     onBimChecked()
                 }
                 if (project.value.sceneList.length) {
-                    source.value = project.value.sceneList[0]
+                    if (num) {
+                        source.value = project.value.sceneList.find(c => c.num == num)
+                    } else {
+                        source.value = project.value.sceneList[project.value.sceneList.length-1]
+                    }
+                    if (!source.value) {
+                        return  showTips.value = '当前场景已被删除,无法进行查看'
+                    }
+                } else {
+                        return  showTips.value = '当前场景已被删除,无法进行查看'
                 }
                 if(response.data.panos){
                     response.data.panos = JSON.parse(response.data.panos)

+ 22 - 12
src/pages/Viewer.vue

@@ -6,7 +6,7 @@
                 <iframe ref="sourceFrame" v-if="sourceURL" :src="sourceURL" frameborder="0" @load="onLoadSource"></iframe>
                 <div class="tools" v-if="source" v-show="!showAdjust && !fscChecked && (dbsChecked || (!target && !bimChecked))">
                     <div class="item-date">
-                        <calendar name="source" :count="scenes.length" :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">
                         <div class="iconfont icon-show_roaming" :class="{ active: mode == 0 }" @click="onModeChange(0)"></div>
@@ -28,7 +28,7 @@
                 <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" :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">
@@ -73,7 +73,7 @@ import Toast from '@/components/dialog/Toast'
 import AppHeader from '@/components/header'
 import Calendar from '@/components/calendar'
 import sync, { laserChangeMode, beforeChangeURL, loadSourceScene, loadTargetScene, setPanoWithBim, flyToP1P2} from '@/utils/sync'
-
+const isDev = process.env.VUE_APP_TEST == 1
 // 是否BIM模式
 const showBim = ref(browser.urlHasValue('bim'))
 // 是否校准模式
@@ -109,6 +109,12 @@ const scenes = computed(() => {
         }
     })
 })
+const controls = computed(()=>{
+    if(bimChecked.value){
+        return scenes.value.length>1
+    }
+    return dbsChecked.value? scenes.value.length>2: scenes.value.length>1
+})
 const sourceURL = computed(() => {
 
     beforeChangeURL('source' ) 
@@ -123,10 +129,10 @@ const sourceURL = computed(() => {
 
     if (source.value.type < 2) {
         // 看看、看见场景
-        return `smart-kankan.html?m=${source.value.num}&dev`
+        return `smart-kankan.html?m=${source.value.num}${isDev?'&dev':''}`
     } else {
         // 深时场景
-        return `smart-laser.html?m=${source.value.num}&dev`
+        return `smart-laser.html?m=${source.value.num}${isDev?'&dev':''}`
     }
 })
 const targetURL = computed(() => {
@@ -136,10 +142,10 @@ const targetURL = computed(() => {
 
     if (source.value.type < 2) {
         // 看看、看见场景
-        return `smart-kankan.html?m=${target.value.num}&dev`
+        return `smart-kankan.html?m=${target.value.num}${isDev?'&dev':''}`
     } else {
         // 深时场景
-        return `smart-laser.html?m=${target.value.num}&dev`
+        return `smart-laser.html?m=${target.value.num}${isDev?'&dev':''}`
     }
 })
 const sourceDate = computed(() => {
@@ -274,7 +280,7 @@ const onPrevDate = name => {
         index = scenes.value.length - 1
     }
 
-    if (target.value) {
+    if (target.value && !bimChecked.value) {
         // 分屏模式判断
         if (name == 'source') {
             if (scenes.value[index].createTime == target.value.createTime) {
@@ -307,7 +313,7 @@ const onNextDate = name => {
         index = 0
     }
 
-    if (target.value) {
+    if (target.value && !bimChecked.value) {
         // 分屏模式判断
         if (name == 'source') {
             if (scenes.value[index].createTime == target.value.createTime) {
@@ -365,7 +371,7 @@ const onDbsChecked = () => {
     if (dbsChecked.value) {
         if (bimChecked.value) {
             // BIM分屏
-            source.value = scenes.value[0]
+            source.value = scenes.value[scenes.value.length-1]
             target.value = project.value.bimData
         } else {
             // 四维看看、激光场景分屏
@@ -441,7 +447,7 @@ const onP2Click = (type) =>{
 onMounted(() => {
     const num = browser.valueFromUrl('m') || ''
     const projectId = browser.valueFromUrl('projectId') || 1
-    http.get(`smart-site/project/info?projectId=${projectId}`)
+    http.get(`smart-site/project/info?projectId=${projectId}&sceneOrder=asc`)
         .then(response => {
             if (response.success) {
                 if (response.data) {
@@ -465,14 +471,18 @@ onMounted(() => {
                     else if (project.value.sceneList.length) {
                         if (num) {
                             source.value = project.value.sceneList.find(c => c.num == num)
+                        } else {
+                            source.value = project.value.sceneList[project.value.sceneList.length-1]
                         }
                         if (!source.value) {
-                            source.value = project.value.sceneList[0]
+                           return  showTips.value = '当前场景已被删除,无法进行查看'
                         }
                         if (showAdjust.value || showSplit.value) {
                             onBimChecked()
                             nextTick(() => onDbsChecked())
                         }
+                    } else {
+                        return  showTips.value = '当前场景已被删除,无法进行查看'
                     }
                 }
             } else {