tremble 3 rokov pred
rodič
commit
231086e642

+ 2 - 2
.env

@@ -1,6 +1,6 @@
 VUE_APP_MAIN_COLOR=''
 VUE_APP_STATIC_DIR=static
 VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
-VUE_APP_CDN=''
-VUE_APP_PROXY_URL=''
+VUE_APP_CDN=http://192.168.0.245:8007
+VUE_APP_PROXY_URL='http://192.168.0.245:8007/'
 VUE_APP_URL_FILL=''

+ 1 - 1
public/edit.html

@@ -5,7 +5,7 @@
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="./favicon.ico" />
+    <link rel="icon" href="./favicon.png" />
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
     <!-- <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ1.1.0/iconfont.css"/> -->
     <!-- <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontVR/iconfont.css"/> -->

BIN
public/favicon.ico


BIN
public/favicon.png


+ 1 - 1
public/material.html

@@ -5,7 +5,7 @@
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="./favicon.ico" />
+    <link rel="icon" href="./favicon.png" />
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ1.1.0/iconfont.css"/>
     <link rel="stylesheet" href="//at.alicdn.com/t/font_2947721_fdnuf7rzr.css"/>

+ 1 - 1
public/show.html

@@ -7,7 +7,7 @@
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ/iconfont.css"/>
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.css"/>
-    <link rel="icon" href="./favicon.ico" />
+    <link rel="icon" href="./favicon.png" />
     <title>VR作品</title>
   </head>
   <body>

+ 1 - 1
public/showMobile.html

@@ -8,7 +8,7 @@
     <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ/iconfont.css"/>
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/animate/animate.min.css" />
-    <link rel="icon" href="./favicon.ico" />
+    <link rel="icon" href="./favicon.png" />
     <!-- <style>
       #consoleLog{ 
         width: 120px;

+ 1 - 1
public/vr.html

@@ -5,7 +5,7 @@
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="./favicon.ico" />
+    <link rel="icon" href="./favicon.png" />
     <title>VR作品</title>
   </head>
   <body>

+ 1 - 1
src/assets/style/component.less

@@ -277,7 +277,7 @@ textarea:-ms-input-placeholder {
     
     .active {
       color: rgba(255, 255, 255, 0.88);
-      background: rgba(255, 255, 255, 0.16);
+      background: rgba(255, 255, 255, 0.4);
 
     }
   }

+ 1 - 1
src/components/preview/index.vue

@@ -2,7 +2,7 @@
     <popup v-if="show" :zIdx="'1100'">
       <div class="ui-message ui-message-confirm">
         <div class="ui-message-header">
-          <span>全景作品预览</span>
+          <span>场景预览</span>
           <span @click="$emit('close')">
             <i class="iconfont iconedit_close"></i>
           </span>

+ 1 - 1
src/components/select.vue

@@ -44,7 +44,7 @@
                   <img :key="i" :src="`${item.icon}?rnd=${Math.random()}`" alt="" />
                 </div>
                 <div class="ui-title">
-                  <span>{{
+                  <span :title="item.sceneTitle">{{
                    item.sceneTitle
                   }}</span>
                 </div>

+ 1 - 1
src/components/tableSelect.vue

@@ -41,7 +41,7 @@
           </td>
           <td v-for="(sub,idx) in tabHeaders" :key="idx">
             <div v-if="sub.type=='image'" class="list-img">
-              <img :src="$cdn + '/' + item.sceneCode + item[sub.key]" alt="">
+              <img :src="$cdn + '/pano/' + item.sceneCode + item[sub.key]" alt="">
             </div>
             <div class="audio" v-else-if="sub.type=='audio'" >
               <v-audio :vkey="item.id" :idleft="`_${$randomWord(true,8,8)}`" :idright="`_${$randomWord(true,8,8)}`" :myAudioUrl="item[sub.key]"></v-audio>

+ 25 - 2
src/framework/Toolbar.vue

@@ -25,11 +25,14 @@
                 :class="{ iconedit_type_panorama: item.type !== 'house' }"
               ></i>
             </div>
+
+            <i v-if="item.musicInfo.music.url" class="iconfont iconmaterial_music"></i>
+
             <div class="img">
-              <img v-if="item.icon" :src="item.icon+`?${Math.random()}`" alt="" />
+              <img v-if="item.icon" :src="$cdn+item.icon+`?${Math.random()}`" alt="" />
             </div>
             <div class="ui-title">
-              <span>{{ item.sceneTitle }}</span>
+              <span :title="item.sceneTitle">{{ item.sceneTitle }}</span>
             </div>
           </li>
         </ul>
@@ -206,6 +209,26 @@ export default {
           &:first-of-type {
             margin-left: 0;
           }
+          .iconmaterial_music{
+            position: absolute;
+            bottom: 10px;
+            right: 10px;
+            z-index: 9999;
+            font-size: 16px;
+            &::after{
+              background: rgba(0,0,0,0.6);
+              content: "";
+              width: 18px;
+              height: 18px;
+              display: inline-block;
+              position: absolute;
+              top: 50%;
+              left: 50%;
+              transform: translate(-50%,-50%);
+              z-index: -1;
+              filter: blur(4px);
+            }
+          }
         }
       }
     }

+ 4 - 20
src/framework/show/index.vue

@@ -1,14 +1,7 @@
 <template>
   <div class="panocon">
     <template v-if="showInfo">
-      <iframe allowfullscreen="true" v-if="activeItem.type=='4dkk'" 
-      :src="`local/4dkk/${activeItem.sceneCode}/wwwroot/spc.html?m=${activeItem.sceneCode}`" frameborder="0"></iframe>
-      <div v-show="activeItem.type!='4dkk'" id="pano"></div>
-
-      <div class="pano-logo" v-if="showInfo.isLogo&&activeItem.type!='4dkk'">
-        <img :src="showInfo.logo||require('@/assets/images/default/img_logoshow@2x.png')" alt="" />
-      </div>
-
+      <div id="pano"></div>
 
       <div
         class="oper-tips"
@@ -43,7 +36,7 @@
         @close="showPreview = false"
       />
 
-      <ul class="aside" v-if="activeItem.type!='4dkk'">
+      <ul class="aside" >
         <li v-for="(item, i) in aside" :key="i">
           <span @click="handleItem(item)">
             <i class="iconfont" :class="item.icon"></i>
@@ -315,11 +308,7 @@ export default {
             this.localRemind = true;
             localStorage.setItem(locoR, 0);
           }
-          if (this.showInfo.firstScene) {
-            if (this.showInfo.firstScene.type == '4dkk') {
-              this.localRemind = false;
-            }
-          }
+         
           newVal.password ? (this.showPassword = true) : this.startLoad();
         }
       },
@@ -349,17 +338,12 @@ export default {
           "events[skin_events].onloadcomplete": "js(window.vrInitFn());",
         };
         if (newVal) {
-          if (newVal.type=='4dkk') {
-              removepano("#pano");
-              $("#pano").empty();
-              return
-          }
           removepano("#pano");
           $smallWaiting.show()
 
           embedpano({
             // xml: "%HTMLPATH%/static/template/tour.xml",
-            xml: `${this.$cdn}/${newVal.sceneCode}/vtour/tour.xml`,
+            xml: `${this.$cdn}/pano/${newVal.sceneCode}/vtour/tour.xml`,
             swf: "%HTMLPATH%/static/template/tour.swf",
             target: "pano",
             html5: "auto",

+ 1 - 8
src/framework/show/list.vue

@@ -109,14 +109,7 @@ export default {
 
   methods: {
     handleImg(item){
-      let url = ''
-      if (item.type == "4dkk") {
-        url = `local/4dkk/${item.sceneCode}/wwwroot/images/images${item.sceneCode}/thumbSmallImg.jpg`
-      }
-      else{
-        url = item.icon.replace('https://4dkk.4dage.com/720yun_fd_manage/image/',`local/pano/images/`)
-      }
-      return url || item.icon
+      return item.icon
     },
     
 

+ 6 - 0
src/mixins/index.js

@@ -121,16 +121,22 @@ let g_typeObj = {
   pcIcon: {
     acceptType:"image/png,image/jpeg",
     mediaType:"image",
+    checkSuffix:['jpeg','jpg','png'],
+    errMsg:`请上传1MB以内、jpg/png格式的图片`,
     limit:1
   },
   appIcon:{
     acceptType:"image/png,image/jpeg",
     mediaType:"image",
+    checkSuffix:['jpeg','jpg','png'],
+    errMsg:`请上传1MB以内、jpg/png格式的图片`,
     limit:1
   },
   bgm:{
     acceptType:"audio/mp3",
     mediaType:"audio",
+    checkSuffix:['audio'],
+    errMsg:`请上传20MB以内、mp3格式的音频`,
     limit:20
   },
   image:{

+ 3 - 4
src/router/index.js

@@ -52,10 +52,9 @@ checkWork().then(res=>{
       }
     });
   } 
-  else{
-    return vue.$alert({content: '该作品已被删除'});
-  }
-  
+  // else{
+  //   return vue.$alert({content: '该作品已被删除'});
+  // }
 })
 
 getPanoInfo().then(() => {

+ 26 - 15
src/views/base/EditPanel/index.vue

@@ -31,7 +31,6 @@ import Upload from "@/components/shared/uploads/Upload";
 
 import { uploadFileByWork } from "@/api";
 
-
 export default {
   props: ["show", "data", "editTitle"],
   components: {
@@ -40,8 +39,8 @@ export default {
   data() {
     return {
       param: "pcIcon",
-      changeArr:[],
-      tempTaskList:{}
+      changeArr: [],
+      tempTaskList: {},
     };
   },
   computed: {
@@ -61,14 +60,26 @@ export default {
 
   methods: {
     onFileChange(file) {
+      let flag = this.typeObj.checkSuffix.some((iii) => {
+        return file.type.indexOf(iii) > -1;
+      });
+
+      if (!flag) {
+        this.$msg({
+          message: `“${file.name}”格式错误,${this.typeObj.errMsg}`,
+          type: "warning",
+        });
+        return;
+      }
+
       this.info[this.param] = URL.createObjectURL(file);
-      if (this.param == 'bgm') {
+      if (this.param == "bgm") {
         this.info[this.param] = {
           url: URL.createObjectURL(file),
-          name: file.name
+          name: file.name,
         };
       }
-      let p = new Promise(relove => {
+      let p = new Promise((relove) => {
         let fn = () => {
           let pp = new Promise((rel) => {
             uploadFileByWork(
@@ -77,13 +88,13 @@ export default {
                 file: file,
               },
               (data) => {
-                if (this.param == 'bgm') {
+                if (this.param == "bgm") {
                   this.info[this.param].url = this.$cdn + data.data.filePath + `?_=${Math.random()}`;
-                } else{
+                } else {
                   this.info[this.param] = this.$cdn + data.data.filePath + `?_=${Math.random()}`;
                 }
                 this.$store.commit("SetInfo", this.info);
-                
+
                 rel();
               }
             );
@@ -102,16 +113,16 @@ export default {
       });
     },
     cancel() {
-      this.tempTaskList = {}
+      this.tempTaskList = {};
       this.$store.commit("SetInfo", this.backupInfo);
       this.$emit("close");
     },
     save() {
-      if (this.param == 'bgm') {
-        this.uploadTaskList['bgm'] = this.tempTaskList['bgm']
-      } else{
-        this.uploadTaskList['pcIcon'] = this.tempTaskList['pcIcon']
-        this.uploadTaskList['appIcon'] = this.tempTaskList['appIcon']
+      if (this.param == "bgm") {
+        this.uploadTaskList["bgm"] = this.tempTaskList["bgm"];
+      } else {
+        this.uploadTaskList["pcIcon"] = this.tempTaskList["pcIcon"];
+        this.uploadTaskList["appIcon"] = this.tempTaskList["appIcon"];
       }
       this.$store.commit("SetInfo", this.info);
       this.$emit("close");

+ 7 - 5
src/views/base/Toolbar.vue

@@ -9,7 +9,7 @@
           </div>
           <div :class="{ 'ui-warning': false }">
             <input
-              v-model="info.name"
+              v-model.trim="info.name"
               @blur="$store.commit('SetInfo',info)"
               type="text"
               class="ui-input"
@@ -73,10 +73,12 @@ export default {
   data() {
     return {
       type:'',
-      settings:[{
-        name:"开场提示",
-        id:"opening"
-      },{
+      settings:[
+      // {
+      //   name:"开场提示",
+      //   id:"opening"
+      // },
+      {
         name:"自动巡游",
         id:"xy"
       },{

+ 14 - 1
src/views/hotspot/Setting.vue

@@ -38,7 +38,7 @@
       :limitFailStr="'过大,请重新上传'"
       accept-type="image/png,image/jpeg"
       media-type="image"
-      :limit="120"
+      :limit="1"
       @file-change="onFileChange"
     ></upload>
 
@@ -150,6 +150,19 @@ export default {
   },
   methods: {
     onFileChange(file) {
+
+      let flag = ['jpeg','jpg','png'].some((iii) => {
+        return file.type.indexOf(iii) > -1;
+      });
+
+      if (!flag) {
+        this.$msg({
+          message: `“${file.name}”格式错误,请上传1MB以内、jpg/png格式的图片`,
+          type: "warning",
+        });
+        return;
+      }
+
       uploadFileBySceneCode(
         {
           sceneCode: this.activeItem.sceneCode,

+ 3 - 3
src/views/information/Toolbar.vue

@@ -81,7 +81,7 @@
                 ></i>
               </div>
               <div class="img">
-                <img :src="item.icon +`?${Math.random()}`" alt="" />
+                <img :src="$cdn + item.icon +`?${Math.random()}`" alt="" />
               </div>
               <div class="oper">
                 <i class="iconfont iconedit_list_more"></i>
@@ -91,8 +91,8 @@
                 </ul>
               </div>
               <div class="ui-title">
-                <span>{{
-                  item.type == "house" ? item.roomName : item.sceneTitle
+                <span :title="item.sceneTitle">{{
+                 item.sceneTitle
                 }}</span>
               </div>
             </li>

+ 1 - 0
src/views/information/index.vue

@@ -153,6 +153,7 @@ export default {
     },
     showList(newVal) {
       if (!newVal) {
+        this.key = ''
         this.paging = {
           pageSize: 8,
           pageNum: 1,

+ 0 - 1
src/views/material/login/index.vue

@@ -1,4 +1,3 @@
-<!--  -->
 <template>
 <div class='layout'>
   <div class="layout-con">