Browse Source

Merge branch 'v1.2.0' into dev

tremble 2 năm trước cách đây
mục cha
commit
7e6cc9d6d7

+ 2 - 1
packages/qjkankan-editor/src/views/hotspot/EditPanel.vue

@@ -41,7 +41,8 @@
             :bottomSpace="comboxBottomSpace" @change="onhotSpotTypeChange"></combox>
           <component class="effect-setting-component" @sceneSelect="handleSceneSelect" :scene="hotspot.secne"
             @imageChange="data => { hotspot.image = data }" :image="hotspot.image"
-            @linkChange="data => { hotspot.hyperlink = data }" :link="hotspot.hyperlink"
+            @linkChange="data => { hotspot.hyperlink = data }" :link="hotspot.hyperlink" 
+            @linkOpenType="data => { hotspot.linkOpenType = data }" :linkOpenType="hotspot.linkOpenType"
             @textChange="data => { hotspot.textarea = data }" :textarea="hotspot.textarea"
             @audioChange="data => { hotspot.audio = data }" :audio="hotspot.audio"
             @videoChange="data => { hotspot.video = data }" :video="hotspot.video" :is="effectSettingComponent" />

+ 40 - 21
packages/qjkankan-editor/src/views/hotspot/hotspotType/link.vue

@@ -1,37 +1,54 @@
 <template>
   <div>
+    <combox class="combox" :data="linkTypeList" :selected-id="linkopen" @change="onlinkOpenTypeChange"></combox>
     <div class="input-wrapper">
-      <input
-        v-model.trim="hyperlink"
-        type="text"
-        placeholder="https://"
-        @change="onUrlChange()"
-      />
+      <input v-model.trim="hyperlink" type="text" placeholder="https://" @change="onUrlChange()" />
     </div>
   </div>
 </template>
 
 <script>
+import Combox from "@/components/shared/Combox";
+
 export default {
-  props:['link'],
-  data(){
+  props: ['link', 'linkOpenType'],
+  components: { Combox },
+  data() {
     return {
-      hyperlink:this.link
+      hyperlink: this.link,
+      linkopen: this.linkOpenType || 'popup',
+      linkTypeList: [
+        {
+          id: 'popup',
+          name: '弹出层打开'
+        },
+        {
+          id: 'newTab',
+          name: '新窗口打开'
+        },
+
+      ],
     }
   },
-  methods:{
+  methods: {
+    onlinkOpenTypeChange(data) {
+      this.linkopen = data.id
+    },
     onUrlChange() {
-            if (this.hyperlink) {
-                if (!/^http(s)?:\/\//.test(this.hyperlink)) {
-                    this.hyperlink =
-                        window.location.protocol + "//" + this.hyperlink;
-                }
-            }
-        },
+      if (this.hyperlink) {
+        if (!/^http(s)?:\/\//.test(this.hyperlink)) {
+          this.hyperlink =
+            window.location.protocol + "//" + this.hyperlink;
+        }
+      }
+    },
   },
-  watch:{
-    hyperlink(newVal){
-      this.$emit('linkChange',newVal)
+  watch: {
+    hyperlink(newVal) {
+      this.$emit('linkChange', newVal)
+    },
+    linkopen(newVal) {
+      this.$emit('linkOpenType', newVal)
     }
   }
 }
@@ -47,10 +64,12 @@ export default {
   height: 36px;
   width: 100%;
   margin-top: 18px;
+
   &:focus-within {
     border-color: #0076F6;
   }
-  > input {
+
+  >input {
     border: none;
     background: transparent;
     outline: none;

+ 6 - 0
packages/qjkankan-view/src/components/Pano/index.vue

@@ -119,6 +119,12 @@ useApp().then((app) => {
     if (tt.hotspotType == 'scene') {
       store.commit("scene/setCurrentScene", tt.secne);
       updateListPosi()
+    } else if(tt.hotspotType == 'link'){
+      if (tt.linkOpenType=='newTab') {
+        window.open(tt.hyperlink, "_blank");
+      }else{
+        store.commit("tags/setCurrentTag", tt);
+      }
     } else {
       store.commit("tags/setCurrentTag", tt);
       if (tt.hotspotType == 'audio' || tt.hotspotType == 'video') {

+ 12 - 10
packages/qjkankan-view/src/components/UIGather/mobile/list.vue

@@ -12,8 +12,9 @@
           }" :style="{ backgroundImage: `url(${item.icon})` }" v-for="(item, i) in currentScenesList" :key="i">
             <i class="iconfont " :class="item.type == '4dkk' ? 'icon-editor_3d' : 'icon-editor_panoramic'"></i>
             <div>
-              <span v-if="currentScene.id == item.id">{{item.sceneTitle}}</span>
-              <span v-else>{{ item.sceneTitle.length > spanlength ? item.sceneTitle.slice(0, spanlength) : item.sceneTitle
+              <span v-if="currentScene.id == item.id">{{ item.sceneTitle }}</span>
+              <span v-else>{{ item.sceneTitle.length > spanlength ? item.sceneTitle.slice(0, spanlength) :
+                  item.sceneTitle
               }}</span>
             </div>
           </li>
@@ -27,25 +28,24 @@
             active: currentSecondary.id == item.id,
             loopspan: item.name.length > spanlength && currentSecondary.id == item.id,
           }" v-for="(item, i) in secondaryList" :key="i">
-            <span v-if="currentSecondary.id == item.id">{{item.name}}</span>
+            <span v-if="currentSecondary.id == item.id">{{ item.name }}</span>
             <span v-else>{{ item.name.length > spanlength ? item.name.slice(0, spanlength) : item.name }}</span>
-           </li>
+          </li>
         </ul>
       </div>
     </div>
 
-    <div class="swiper-container" id="swcatalogRoot"
-    :style="`width:${Math.min(catalogRootW, innerW)}px;
-      padding:${catalogRootW > innerW ? '0 15px' : '0'}`"
+    <div class="swiper-container" id="swcatalogRoot" :style="`width:${Math.min(catalogRootW, innerW)}px;
+    padding:${catalogRootW > innerW ? '0 15px' : '0'}`"
       v-if="metadata.catalogRoot.length > 0 && metadata.catalogs.length > 1">
       <ul class="swiper-wrapper" v-if="metadata.catalogRoot.length > 1">
         <li class="swiper-slide" :class="{
           active: currentCatalogRoot.id == item.id,
           loopspan: item.name.length > spanlength && currentCatalogRoot.id == item.id,
         }" @click="tabRoot(item)" v-for="(item, i) in metadata.catalogRoot" :key="i">
-          <span v-if="currentCatalogRoot.id == item.id">{{item.name}}</span>
+          <span v-if="currentCatalogRoot.id == item.id">{{ item.name }}</span>
           <span v-else>{{ item.name.length > spanlength ? item.name.slice(0, spanlength) : item.name }}</span>
-     
+
         </li>
       </ul>
     </div>
@@ -119,9 +119,11 @@ const loadList = () => {
         });
         if (item == '#swScenes') {
           setTimeout(() => {
-            tmp && tmp.slideTo(0, 100, false)
+            tmp && tmp.slideTo(0, 50, false)
           }, 0);
         }
+
+        // console.log(tmp.slideTo);
       });
     }, 100);
   });