gemercheung 2 år sedan
förälder
incheckning
a62e443c9c

+ 1 - 1
packages/qjkankan-editor/.env.testprod

@@ -7,4 +7,4 @@ VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
 VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_ORIGIN=
 VUE_APP_URL_FILL=/qjkankan
-VUE_APP_DEBBUG_FLAG=0425-05
+VUE_APP_DEBBUG_FLAG=0426-03

+ 2 - 1
packages/qjkankan-editor/src/components/table/index.vue

@@ -1,9 +1,10 @@
 <template>
   <div class="table-layout">
     <!-- 表头 -->
-    <ul class="t-header" :class="{ 'bottom-line': showLine }">
+    <ul class="t-header" :class="{ 'bottom-line': showLine}" >
       <!-- 复选框 -->
       <div
+   
         v-show="selection && !isAllSelected"
         class="checkbox inactive"
         @click="onClickSelectAll"

+ 5 - 3
packages/qjkankan-editor/src/framework/play/pano/index.vue

@@ -95,17 +95,19 @@ export default {
         $("#pano").empty();
         if (!newVal.version) {
           // v1.3之前在作品中新增的三维场景,没有version这个值,需要查询。
-   
+
           searchInAll3DScenes(
             {
               searchKey: newVal.sceneTitle,
             },
             (res) => {
-              console.log('gemer',res);
+              //@TODO 坑位,现时后端场景V4/V3 是以isUpgrade(Boolean)做为检验
               const originItem = res.data.list.find((item) => {
                 return item.num === newVal.sceneCode;
               });
-              newVal.version = originItem.buildType;
+
+              const isVersion = originItem.isUpgrade === 1 ? "V4" : "V3";
+              newVal.version = isVersion;
             }
           );
         }

+ 1 - 0
packages/qjkankan-editor/src/lang/_en.json

@@ -917,6 +917,7 @@
     "add_article": "添加文章内容",
     "edit_article":"编辑文章内容",
     "cancel_add_hotspot": "已编辑内容将不会保存,确定要关闭吗?"
+    
   },
   "explanation": {
     "explanation_settings": "Voice Guide",

+ 54 - 40
packages/qjkankan-editor/src/views/hotspot/EditPanel.vue

@@ -239,6 +239,14 @@ export default {
     };
   },
   watch: {
+    "hotspot.fontSize": {
+      handler(val) {
+        const rangeValue = val / 12;
+        // console.log("rangeValue", rangeValue);
+        this.rang.value = rangeValue.toFixed(1);
+      },
+      immediate: true,
+    },
     hotspot: {
       handler(val) {
         // console.error("this.hotspot", val);
@@ -314,6 +322,7 @@ export default {
     //   },
     // },
   },
+
   beforeDestroy() {
     this.$bus.removeListener("resethotspotTitle", this.listerFnReset);
   },
@@ -509,38 +518,45 @@ export default {
     onHotspotIconTypeChange(data) {
       this.hotspot.hotspotIconType = data.id;
     },
+    clamp(num, min, max) {
+      return num <= min ? min : num >= max ? max : num;
+    },
     onRangeChange(data) {
       console.log(data);
       this.rang = { ...this.rang, value: data.value };
       this.hotspot.size = data.value;
-      switch (data.value) {
-        case 0.5:
-        case 0.6:
-        case 0.7:
-          this.hotspot.fontSize = 12;
-          break;
-        case 0.8:
-        case 0.9:
-        case 1.0:
-        case 1.1:
-        case 1.2:
-          this.hotspot.fontSize = 14;
-          break;
-        case 1.3:
-        case 1.4:
-        case 1.5:
-        case 1.6:
-        case 1.7:
-          this.hotspot.fontSize = 17;
-          break;
-        case 1.8:
-        case 1.9:
-        case 2:
-          this.hotspot.fontSize = 20;
-          break;
-        default:
-          break;
-      }
+      const fontsize = data.value * 12;
+      const updateSize = Math.floor(fontsize);
+      this.hotspot.fontSize = updateSize;
+      console.log("updateSize", updateSize);
+      // switch (data.value) {
+      //   case 0.5:
+      //   case 0.6:
+      //   case 0.7:
+      //     this.hotspot.fontSize = 12;
+      //     break;
+      //   case 0.8:
+      //   case 0.9:
+      //   case 1.0:
+      //   case 1.1:
+      //   case 1.2:
+      //     this.hotspot.fontSize = 14;
+      //     break;
+      //   case 1.3:
+      //   case 1.4:
+      //   case 1.5:
+      //   case 1.6:
+      //   case 1.7:
+      //     this.hotspot.fontSize = 17;
+      //     break;
+      //   case 1.8:
+      //   case 1.9:
+      //   case 2:
+      //     this.hotspot.fontSize = 20;
+      //     break;
+      //   default:
+      //     break;
+      // }
     },
     onSelectTitleDisplayMode(idx) {
       switch (idx) {
@@ -588,18 +604,16 @@ export default {
     },
 
     cancel() {
-      if (!(this.editTitle == this.$i18n.t("hotspot.edit"))) {
-        this.$confirm({
-          title: this.$i18n.t("tips.title"),
-          content: this.$i18n.t("hotspot.cancel_add_hotspot"),
-          ok: () => {
-            this.realCancel();
-          },
-        });
-        return;
-      } else {
-        this.realCancel();
-      }
+      // if (!(this.editTitle == this.$i18n.t("hotspot.edit"))) {
+      this.$confirm({
+        title: this.$i18n.t("tips.title"),
+        content: this.$i18n.t("hotspot.cancel_add_hotspot"),
+        ok: () => {
+          this.realCancel();
+        },
+      });
+
+      // }
     },
     realCancel() {
       this.$store.commit("SetHotspot", this.backupHotSpot);

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

@@ -182,6 +182,7 @@ export default {
       if (data == this.hotspot.name) {
         window.__krfn.utils.looktohotspot(this.$getKrpano(), this.hotspot.name);
         if (!this.showPanel) {
+          debugger
           this.open(this.someData.hotspots[idx]);
         }
         return;
@@ -195,7 +196,7 @@ export default {
             content: this.$i18n.t("hotspot.close_dialog"),
             ok: () => {
               this.deleteKRHotspot(this.hotspot);
-              this.open(this.someData.hotspots[idx]);
+              this.showPanel = false;
             },
           });
         }

+ 4 - 1
packages/qjkankan-editor/src/views/material/audio/index.vue

@@ -334,7 +334,10 @@ export default {
   mounted() {},
   watch: {
     searchKey: {
-      handler: function () {
+      handler: function (val) {
+        if (val.length > 0) {
+          this.selectedList = [];
+        }
         this.refreshListDebounced();
       },
       immediate: false,

+ 3 - 3
packages/qjkankan-editor/src/views/material/image/index.vue

@@ -11,8 +11,8 @@
         {{ $i18n.t("gather.image") }}
       </div>
     </div>
-    <div class="second-line">
-      <template v-if="!searchKey">
+    <div class="second-line" :class="{ disabled: searchKey }">
+      <template>
         <div class="btn">
           <button
             @mouseover.stop="showList = true"
@@ -342,7 +342,7 @@ export default {
   mounted() {},
   watch: {
     searchKey: {
-      handler: function () {
+      handler: function (val) {
         if (val.length > 0) {
           this.selectedList = [];
         }

+ 2 - 2
packages/qjkankan-editor/src/views/material/pano/index.vue

@@ -11,8 +11,8 @@
         {{ $i18n.t("gather.pano") }}
       </div>
     </div>
-    <div class="second-line">
-      <template v-if="!searchKey">
+    <div class="second-line" :class="{ disabled: searchKey }">
+      <template>
         <div class="btn">
           <button
             @mouseover.stop="showList = true"

+ 67 - 59
packages/qjkankan-editor/src/views/material/style.less

@@ -1,4 +1,4 @@
-@color:#1983F6;
+@color: #1983f6;
 .con {
   .top {
     display: flex;
@@ -12,7 +12,7 @@
     }
   }
 
-  .ui-button{
+  .ui-button {
     font-size: @color;
   }
   .second-line {
@@ -20,21 +20,27 @@
     display: flex;
     // justify-content: space-between;
     align-items: center;
-    .btn{
+    &.disabled:not(.filter) {
+      button {
+        opacity: 0.5;
+        pointer-events: none;
+      }
+    }
+    .btn {
       margin-right: 16px;
-      .ui-button{
+      .ui-button {
         font-size: 14px;
         position: relative;
         padding: 0 20px;
         display: flex;
         align-items: center;
         border-radius: 4px;
-        >span{
+        > span {
           display: inline-block;
           margin-right: 4px;
         }
-        &:hover{
-          .upload-list{
+        &:hover {
+          .upload-list {
             display: block;
           }
         }
@@ -53,24 +59,24 @@
     }
   }
 
-  >.list{
+  > .list {
     margin-top: 32px;
     position: relative;
-    flex:1;
+    flex: 1;
     display: flex;
     flex-direction: column;
 
-    .img{
+    .img {
       width: 50px;
       height: 50px;
       position: relative;
       overflow: hidden;
       cursor: pointer;
-      > img{
+      > img {
         width: 100%;
         height: 100%;
         object-fit: cover;
-        background: #F5F7FA;
+        background: #f5f7fa;
       }
     }
     .img.dirIcon {
@@ -79,7 +85,7 @@
         background: initial;
       }
     }
-    .audio{
+    .audio {
       position: relative;
       text-align: left;
     }
@@ -121,7 +127,7 @@
               font-size: 12px;
               color: #646566;
               > .parent-name {
-                color: #0076F6;
+                color: #0076f6;
                 text-decoration: underline;
                 overflow: hidden;
                 white-space: pre;
@@ -143,7 +149,7 @@
               font-size: 12px;
               color: #646566;
               > .parent-name {
-                color: #0076F6;
+                color: #0076f6;
                 text-decoration: underline;
                 overflow: hidden;
                 white-space: pre;
@@ -183,10 +189,10 @@
     }
   }
 }
-.handle{
+.handle {
   display: flex;
   justify-content: center;
-  .iconfont{
+  .iconfont {
     cursor: pointer;
     margin: 0 7.5px;
     color: #202020;
@@ -195,7 +201,7 @@
     cursor: pointer;
     position: relative;
     align-items: center;
-    >i{
+    > i {
       z-index: 9;
     }
     &:hover {
@@ -213,7 +219,7 @@
       z-index: 999;
       transform: translateX(-50%);
       position: absolute;
-      &::before{
+      &::before {
         border: 10px solid transparent;
         border-bottom: 10px solid #fff;
         width: 0;
@@ -229,37 +235,35 @@
         line-height: 35px;
         height: 35px;
         padding-left: 15px;
-        text-align: left!important;
+        text-align: left !important;
         min-width: 98px;
         &:hover {
-          background: #EBEBEB;
+          background: #ebebeb;
         }
       }
     }
   }
 }
 
-
-
 .filter > div {
   min-width: 290px;
   height: 40px;
-  border: 1px solid #EBEDF0;
+  border: 1px solid #ebedf0;
   display: flex;
   align-items: center;
   border-radius: 20px;
   position: relative;
   font-size: 14px;
   vertical-align: middle;
-  background: #F7F8FA;
+  background: #f7f8fa;
   padding: 10px 20px 10px 20px;
-  color: #C8C9CC;
-  &.active{
-    border: 1px solid #0076F6;
+  color: #c8c9cc;
+  &.active {
+    border: 1px solid #0076f6;
   }
 }
 
-.filter>div>.search {
+.filter > div > .search {
   flex: 0 0 auto;
   margin-right: 12px;
   font-size: 18px;
@@ -275,35 +279,38 @@
   outline: none;
   // 为啥不生效?
   &::-webkit-input-placeholder {
-    color: #C8C9CC;
+    color: #c8c9cc;
   }
-  &::-moz-placeholder{   /* Mozilla Firefox 19+ */
-    color: #C8C9CC;
+  &::-moz-placeholder {
+    /* Mozilla Firefox 19+ */
+    color: #c8c9cc;
   }
-  &:-moz-placeholder{    /* Mozilla Firefox 4 to 18 */
-    color: #C8C9CC;
+  &:-moz-placeholder {
+    /* Mozilla Firefox 4 to 18 */
+    color: #c8c9cc;
   }
-  &:-ms-input-placeholder{  /* Internet Explorer 10-11 */ 
-    color: #C8C9CC;
+  &:-ms-input-placeholder {
+    /* Internet Explorer 10-11 */
+    color: #c8c9cc;
   }
 }
 
-.filter > div >.del{
+.filter > div > .del {
   cursor: pointer;
   flex: 0 0 auto;
   font-size: 20px;
 }
 
 .submit {
-  background-color: #0076F6 !important;
-  border: 1px solid #0076F6 !important;
+  background-color: #0076f6 !important;
+  border: 1px solid #0076f6 !important;
 }
 
-.cancel{
-  background: #EBEBEB;
+.cancel {
+  background: #ebebeb;
 }
 
-.ui-button-rect{
+.ui-button-rect {
   border-radius: 4px !important;
   align-items: center;
   vertical-align: middle;
@@ -314,42 +321,43 @@
   line-height: 36px;
   height: 36px;
   text-align: center;
-  >i{
+  > i {
     margin-left: 4px;
   }
 }
 
-.ui-input{
+.ui-input {
   background-color: #fff;
-  border: 1px solid rgba(#909090,0.5);
+  border: 1px solid rgba(#909090, 0.5);
   color: #909090;
 }
 
-.ma-line{
-  background-color: #EBEBEB;
+.ma-line {
+  background-color: #ebebeb;
   height: 1px;
   width: 100%;
 }
 
-.panorama{
+.panorama {
   padding: 24px 30px;
   height: 100%;
   display: flex;
   flex-direction: column;
+  min-width: 1148px;
 }
 
-.comfirmhover{
-  &:hover{
+.comfirmhover {
+  &:hover {
     color: @color!important;
   }
-  &:active{
-    color: rgba(255, 255, 255, 0.5)!important;
+  &:active {
+    color: rgba(255, 255, 255, 0.5) !important;
   }
 }
 
-.cancelhover{
-  &:hover{
-    color: #FA5555!important;
+.cancelhover {
+  &:hover {
+    color: #fa5555 !important;
   }
 }
 
@@ -358,11 +366,11 @@
   cursor: pointer;
   // width: 100px;
   height: 36px;
-  background: linear-gradient(144deg, #00AEFB 0%, #0076F6 100%);
+  background: linear-gradient(144deg, #00aefb 0%, #0076f6 100%);
   border-radius: 22px;
   border: none;
   font-size: 14px;
-  color: #FFFFFF;
+  color: #ffffff;
   margin-top: 20px;
   padding: 0 16px;
 }
@@ -370,5 +378,5 @@
 input::placeholder,
 textarea::placeholder {
   font-size: 14px;
-  color: #C8C9CC !important;
-}
+  color: #c8c9cc !important;
+}

+ 3 - 3
packages/qjkankan-editor/src/views/material/video/index.vue

@@ -11,8 +11,8 @@
         {{ $i18n.t("gather.video") }}
       </div>
     </div>
-    <div class="second-line">
-      <template v-if="!searchKey">
+    <div class="second-line" :class="{ disabled: searchKey }">
+      <template >
         <div class="btn">
           <button
             @mouseover.stop="showList = true"
@@ -335,7 +335,7 @@ export default {
   mounted() {},
   watch: {
     searchKey: {
-      handler: function () {
+      handler: function (val) {
         if (val.length > 0) {
           this.selectedList = [];
         }

+ 1 - 1
packages/qjkankan-editor/src/views/material/works/index.vue

@@ -171,7 +171,7 @@ export default {
   },
   watch: {
     searchKey: {
-      handler: function () {
+      handler: function (val) {
         if (val.length > 0) {
           this.selectedList = [];
         }

+ 1 - 1
packages/qjkankan-view/.env.testprod

@@ -6,4 +6,4 @@ VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_URL_FILL=/qjkankan
 # 接口请求地址
 VUE_APP_APIS_URL=https://test.4dkankan.com/
-VUE_APP_DEBBUG_FLAG=0425-04
+VUE_APP_DEBBUG_FLAG=0426-03

+ 5 - 0
packages/qjkankan-view/public/showviewer/lib/krpano/tooltip.xml

@@ -53,6 +53,7 @@
                 <!-- trace('system::',get(iconUrl)); -->
                 set(hotspot[get(hsp_name)].url,get(iconUrl));
                 set(hotspot[get(hsp_name)].frameNumber,60);
+                
                 set(hotspot[get(hsp_name)].duration,1);
                 set(hotspot[get(hsp_name)].frameRate,calc(1.0 / 60));
                 set(hotspot[get(hsp_name)].framewidth,84);
@@ -63,6 +64,9 @@
                 );
                 if(%2 == 2,
                 <!-- trace('ser_frame::',get(framewidth)); -->
+                set(hotspot[get(hsp_name)].duration, get(duration));
+                set(hotspot[get(hsp_name)].frameRate,calc(duration / frameNumber));
+                trace(calc('当前热点序列::' + get(hotspot[get(hsp_name)].hotspottitle)+'::duration::'+get(duration)+'frameNumber::'+get(frameNumber) +'frameRate::'+get(calc(duration / frameNumber))));
                 set(hotspot[get(hsp_name)].url,get(iconUrl));
                 set(hotspot[get(hsp_name)].framewidth,get(framewidth));
                 set(hotspot[get(hsp_name)].frameNumber,get(frameNumber));
@@ -121,6 +125,7 @@
         <!-- trace('frameRate::',get(frameRate)); -->
         set(crop, '0|0|%1|%2'); 
         clearinterval(calc('crop_anim_' + name));
+        <!-- trace('frameRate',get(frameRate));  -->
         if(%3 == '' OR frameRate == 0 OR isNaN(frameRate),
         set(frameRate,calc(1.0 / 60));
         <!-- trace('没有frameRate',get(calc(1.0 / 60)));

+ 2 - 2
packages/qjkankan-view/src/components/assembly/Opening.vue

@@ -322,10 +322,10 @@ watch(
 //跳转到app
 const toApp = () => {
   if (!unref(isToApp)) {
-    console.log("跳转到app");
+    console.log("跳转到app",unref(isToApp));
     imgShow.value = false;
     videoShow.value = false;
-    isToApp.value;
+    isToApp.value = true;
     useApp().then((app) => {
       setTimeout(() => {
         app.render();

+ 6 - 0
readme.md

@@ -0,0 +1,6 @@
+## Ken list (2023-04-26)
+
+## V4/V3 之区别
+由于上游提供方的变更, 在编辑器与V4/V3的入口不同  现时isUpgrade做为V4/v3唯一区别
+接口/ucenter/user/scene/getOnlySceneList (燕海)
+接口/service/scene/getInfo (4dkankan)