tremble před 3 roky
rodič
revize
00ab2e8fc5

+ 4 - 3
.env.prod

@@ -1,5 +1,6 @@
 VUE_APP_MAIN_COLOR=''
 VUE_APP_MAIN_COLOR=''
 VUE_APP_STATIC_DIR=static
 VUE_APP_STATIC_DIR=static
-VUE_APP_INNERNET=https://vr-mc01.fcb.com.cn
-VUE_APP_CDN=https://vr-oss01.fcb.com.cn
-VUE_APP_PROXY_URL=''
+VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
+VUE_APP_CDN=https://4dkk.4dage.com
+VUE_APP_PROXY_URL='http://www.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan

+ 2 - 2
package.json

@@ -4,10 +4,10 @@
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
     "serve": "vue-cli-service serve",
     "serve": "vue-cli-service serve",
-    "serve-uat": "vue-cli-service serve --mode uat",
+    "serve-prod": "vue-cli-service serve --mode prod",
     "serve-local": "vue-cli-service serve --mode bendi",
     "serve-local": "vue-cli-service serve --mode bendi",
     "build": "vue-cli-service build",
     "build": "vue-cli-service build",
-    "build-uat": "vue-cli-service build --mode uat",
+    "build-prod": "vue-cli-service build --mode prod",
     "lint": "vue-cli-service lint"
     "lint": "vue-cli-service lint"
   },
   },
   "dependencies": {
   "dependencies": {

+ 1 - 1
public/showMobile.html

@@ -9,7 +9,7 @@
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
     <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/iconfontQJ1.1.0/iconfont.css"/>
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontVR/iconfont.css"/>
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontVR/iconfont.css"/>
-    <link rel="stylesheet" href="//at.alicdn.com/t/font_2410347_4htx35g8w1b.css"/>
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_2947721_fdnuf7rzr.css"/>
     <link rel="stylesheet" href="//at.alicdn.com/t/font_1064953_6ikt2gc1snb.css"/>
     <link rel="stylesheet" href="//at.alicdn.com/t/font_1064953_6ikt2gc1snb.css"/>
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/animate/animate.min.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.ico" />

+ 3 - 2
src/api/index.js

@@ -18,7 +18,9 @@ const CLIENT_CODE =  config.client_code
 const URL_FILL =  config.urlFill
 const URL_FILL =  config.urlFill
 
 
 
 
+let ossUrl = config.CDN
 
 
+// https://ossxiaoan.4dage.com/720yun_fd_manage
 
 
 
 
 /**
 /**
@@ -28,8 +30,7 @@ const URL_FILL =  config.urlFill
  * @param {*} no 
  * @param {*} no 
  */
  */
  export function getPanoInfo(data, ok, no) {
  export function getPanoInfo(data, ok, no) {
-    let ossUrl = `https://ossxiaoan.4dage.com/720yun_fd_manage`
-    return http.get(`${ossUrl}/${data||number()}/someData.json?_=${Math.random()}`, {}, ok, no)
+    return http.get(`${ossUrl}/720yun_fd_manage/${data||number()}/someData.json?_=${Math.random()}`, {}, ok, no)
 }
 }
 
 
 
 

+ 4 - 3
src/components/audio/index.vue

@@ -224,13 +224,13 @@ export default {
   text-overflow: ellipsis;
   text-overflow: ellipsis;
   overflow: hidden;
   overflow: hidden;
   white-space: nowrap;
   white-space: nowrap;
-  flex: 2;
+  flex: 3;
   margin-right: 10px;
   margin-right: 10px;
 }
 }
 
 
 .audio-right {
 .audio-right {
   height: 100%;
   height: 100%;
-  flex: 1;
+  flex: 2;
 
 
 }
 }
 
 
@@ -262,6 +262,7 @@ export default {
   background-size: contain;
   background-size: contain;
   background-image: url('~@/assets/images/icons/icon-music@2x.png');
   background-image: url('~@/assets/images/icons/icon-music@2x.png');
   width: 44px;
   width: 44px;
+  min-width: 44px;
   height: 50px;
   height: 50px;
   cursor: pointer;
   cursor: pointer;
   &:hover, &--playing {
   &:hover, &--playing {
@@ -311,7 +312,7 @@ export default {
 .namecon{
 .namecon{
   margin-left: 20px;
   margin-left: 20px;
   display: flex;
   display: flex;
-  width: 100%;
+  width: calc(100% - 60px);
   justify-content: space-between;
   justify-content: space-between;
   align-items: center;
   align-items: center;
 }
 }

+ 2 - 2
src/framework/show/list.vue

@@ -7,7 +7,7 @@
             <li class="swiper-slide" :title="item.sceneTitle" @click="handleVR(item,i)" v-for="(item, i) in scenes" :key="i">
             <li class="swiper-slide" :title="item.sceneTitle" @click="handleVR(item,i)" v-for="(item, i) in scenes" :key="i">
               <div :class="{ active: selected.sceneCode == item.sceneCode }">
               <div :class="{ active: selected.sceneCode == item.sceneCode }">
                 <img :src="item.icon + `?${Math.random()}`" alt="" />
                 <img :src="item.icon + `?${Math.random()}`" alt="" />
-                <i class="iconfont iconedit_type_3d" :class="{ iconedit_type_panorama: item.type !== '4dkk' }"></i>
+                <i class="iconfont icon-edit_type_3d" :class="{ iconedit_type_panorama: item.type !== '4dkk' }"></i>
                 <rollName :offset="20" :active="selected.sceneCode == item.sceneCode" class="pic-name" :myref="'subw' + item.id" :name="item.sceneTitle" />
                 <rollName :offset="20" :active="selected.sceneCode == item.sceneCode" class="pic-name" :myref="'subw' + item.id" :name="item.sceneTitle" />
               </div>
               </div>
             </li>
             </li>
@@ -32,7 +32,7 @@
       </div>
       </div>
 
 
       <div class="clip-scroller" ref="sw2" v-swiper:mySwiperb="swiperOptions" v-if="showInfo.catalogRoot.length > 0 && showInfo.catalogs.length > 1">
       <div class="clip-scroller" ref="sw2" v-swiper:mySwiperb="swiperOptions" v-if="showInfo.catalogRoot.length > 0 && showInfo.catalogs.length > 1">
-        <ul class="tap  swiper-wrapper" v-if="showInfo.catalogRoot.length > 1">
+        <ul class="tap swiper-wrapper" v-if="showInfo.catalogRoot.length > 1">
           <li  class="swiper-slide" @click="handleTabone(item,i)" :class="{ active: item.id == taboneActive.id }" v-for="(item, i) in showInfo.catalogRoot" :key="i">
           <li  class="swiper-slide" @click="handleTabone(item,i)" :class="{ active: item.id == taboneActive.id }" v-for="(item, i) in showInfo.catalogRoot" :key="i">
             <rollName
             <rollName
               :offset="30"
               :offset="30"

+ 4 - 4
src/framework/showMobile/index.vue

@@ -83,7 +83,7 @@
       </popup>
       </popup>
 
 
       <div v-if="audioUrl" class="audio-btn" @click="audioUrl = ''">
       <div v-if="audioUrl" class="audio-btn" @click="audioUrl = ''">
-        <i class="iconfont iconedit_soundview"></i>
+        <i class="iconfont icon-edit_soundview"></i>
         停止播放
         停止播放
         <v-audio
         <v-audio
           v-if="audioUrl"
           v-if="audioUrl"
@@ -167,11 +167,11 @@ export default {
       aside: [
       aside: [
         {
         {
           id: "about",
           id: "about",
-          icon: "icontool_about",
+          icon: "icon-tool_about",
         },
         },
         {
         {
           id: "vr",
           id: "vr",
-          icon: "icontool_vr",
+          icon: "icon-tool_vr",
         },
         },
       ],
       ],
     };
     };
@@ -511,7 +511,7 @@ export default {
       border: 1px solid #0076F6;
       border: 1px solid #0076F6;
       color: #0076F6;
       color: #0076F6;
     }
     }
-    .iconedit_soundview{
+    .icon-edit_soundview{
       color: #0076F6;
       color: #0076F6;
       margin-right: 10px;
       margin-right: 10px;
     }
     }

+ 9 - 9
src/framework/showMobile/list.vue

@@ -8,7 +8,7 @@
             <li class="swiper-slide" @click="handleVR(item,i)" v-for="(item,i) in scenes" :key="i">
             <li class="swiper-slide" @click="handleVR(item,i)" v-for="(item,i) in scenes" :key="i">
               <div :class="{active:selected.sceneCode==item.sceneCode}">
               <div :class="{active:selected.sceneCode==item.sceneCode}">
                 <img :src="item.icon+`?${Math.random()}`" alt="" />
                 <img :src="item.icon+`?${Math.random()}`" alt="" />
-                <i class="iconfont" :class="item.type!='4dkk'?'iconedit_type_panorama':'iconedit_type_3d'"></i>
+                <i class="iconfont" :class="item.type!='4dkk'?'icon-edit_type_panorama':'icon-edit_type_3d'"></i>
                 <rollName :offset="20" :active="selected.sceneCode==item.sceneCode" class="pic-name" :myref="'subw'+item.id" :name="item.sceneTitle"/>
                 <rollName :offset="20" :active="selected.sceneCode==item.sceneCode" class="pic-name" :myref="'subw'+item.id" :name="item.sceneTitle"/>
               </div>
               </div>
             </li>
             </li>
@@ -37,12 +37,12 @@
 
 
     <div v-if="selected.type=='4dkk' && isShowDL" class="menu">
     <div v-if="selected.type=='4dkk' && isShowDL" class="menu">
         <div  @click="handleDL" v-if="isShowDL">
         <div  @click="handleDL" v-if="isShowDL">
-            <i class="iconfont" :class="isDaolan?'iconshow_suspension':'iconshow_playback'"></i>
+            <i class="iconfont" :class="isDaolan?'icon-show_suspension':'icon-show_playback'"></i>
         </div>
         </div>
     </div>
     </div>
 
 
     <div class="btn dl" :class="{deepbg:showList}" v-if="!(showInfo.catalogRoot.length == 1 && scenes.length == 1 && showInfo.catalogs.length == 1)" @click="showList = !showList">
     <div class="btn dl" :class="{deepbg:showList}" v-if="!(showInfo.catalogRoot.length == 1 && scenes.length == 1 && showInfo.catalogs.length == 1)" @click="showList = !showList">
-      <i class="iconfont " :class="showList?'iconnav_scene_down':'iconnav_scene_up'"></i>场景导航
+      <i class="iconfont " :class="showList?'icon-nav_scene_down':'icon-nav_scene_up'"></i>场景导航
     </div>
     </div>
 
 
   
   
@@ -67,20 +67,20 @@ export default {
     let menu = [{
     let menu = [{
       id:'pano',
       id:'pano',
       name:'漫游',
       name:'漫游',
-      icon:'iconshow_roaming_normal',
-      active:'iconshow_roaming_selected',
+      icon:'icon-show_roaming_normal',
+      active:'icon-show_roaming_selected',
       params:'pano'
       params:'pano'
     },{
     },{
       id:'2d',
       id:'2d',
       name:'平面',
       name:'平面',
-      icon:'iconshow_plane_normal',
-      active:'iconshow_plane_selected',
+      icon:'icon-show_plane_normal',
+      active:'icon-show_plane_selected',
       params:'2d'
       params:'2d'
     },{
     },{
       id:'3d',
       id:'3d',
       name:'三维',
       name:'三维',
-      icon:'iconshow_3d_normal',
-      active:'iconshow_3d_selected',
+      icon:'icon-show_3d_normal',
+      active:'icon-show_3d_selected',
       params:'3d'
       params:'3d'
     }]
     }]
     return{
     return{

+ 1 - 1
src/framework/showMobile/ui/Show.Header.vue

@@ -15,7 +15,7 @@
                 <span>
                 <span>
                     {{params.title}}
                     {{params.title}}
                 </span>
                 </span>
-                <i class="iconfont iconshow_drop-down"></i>
+                <i class="iconfont icon-show_drop-down"></i>
             </div>
             </div>
         </div>
         </div>
         <div
         <div

+ 46 - 24
src/views/material/popup/share.vue

@@ -1,9 +1,6 @@
 <template>
 <template>
   <popup v-if="show">
   <popup v-if="show">
-    <div
-      class="ui-message ui-message-confirm message-material"
-      style="width: 500px"
-    >
+    <div class="ui-message ui-message-confirm message-material" style="width: 500px">
       <div class="ui-message-header header-material">
       <div class="ui-message-header header-material">
         <span>分享</span>
         <span>分享</span>
         <span @click="$emit('close')">
         <span @click="$emit('close')">
@@ -14,15 +11,7 @@
         <ul>
         <ul>
           <li>
           <li>
             <span>作品链接</span>
             <span>作品链接</span>
-            <input
-              :title="item.share"
-              class="ui-input"
-              disabled
-              type="text"
-              maxlength="15"
-              placeholder="输入名字"
-              v-model="item.share"
-            />
+            <input :title="item.share" class="ui-input" disabled type="text" maxlength="15" placeholder="输入名字" v-model="item.share" />
           </li>
           </li>
           <li>
           <li>
             <span>作品二维码</span>
             <span>作品二维码</span>
@@ -30,7 +19,7 @@
           </li>
           </li>
         </ul>
         </ul>
       </div>
       </div>
-      
+
       <div class="ui-message-footer footer-material">
       <div class="ui-message-footer footer-material">
         <button @click="downloadImg(item)" class="ui-button">
         <button @click="downloadImg(item)" class="ui-button">
           下载二维码
           下载二维码
@@ -46,6 +35,18 @@
 <script>
 <script>
 import Popup from "@/components/shared/popup";
 import Popup from "@/components/shared/popup";
 
 
+let dataUrlToBold = function(url) {
+  let arr = url.split(","),
+    mime = arr[0].match(/:(.*?);/)[1],
+    bStr = atob(arr[1]),
+    n = bStr.length,
+    u8arr = new Uint8Array(n);
+  while (n--) {
+    u8arr[n] = bStr.charCodeAt(n);
+  }
+  return new Blob([u8arr], { type: mime });
+};
+
 export default {
 export default {
   props: ["show", "item"],
   props: ["show", "item"],
   components: {
   components: {
@@ -59,11 +60,34 @@ export default {
   mounted() {},
   mounted() {},
   methods: {
   methods: {
     downloadImg(workItem) {
     downloadImg(workItem) {
-      var a = document.createElement("a");
-      var event = new MouseEvent("click");
-      a.download = workItem.name;
-      a.href = workItem.qrCode;
-      a.dispatchEvent(event);
+      let val = workItem.qrCode
+      // var a = document.createElement("a");
+      // a.download = 'qrcode';
+      // a.href = 'https://4dkk.4dage.com/720yun_fd_manage/620/qrCode.jpg';
+      // a.target
+      // console.log(workItem,11222);
+      // val 为传入的图片地址
+      let _type_index = val.lastIndexOf(".");
+      let _type = val.substr(_type_index + 1); //原始图片类型
+      let image = new Image();
+      image.setAttribute("crossOrigin", "anonymous"); //消除跨域
+      image.src = val;
+      image.onload = function() {
+        //借助canvas实现 消除 图片地址会先直接窗口打开图片地址
+        let canvas = document.createElement("canvas");
+        canvas.width = image.width;
+        canvas.height = image.height;
+        let context = canvas.getContext("2d");
+        context.drawImage(image, 0, 0, image.width, image.height);
+        let url = canvas.toDataURL("image/" + _type);
+        let blob = dataUrlToBold(url);
+        let obj_url = URL.createObjectURL(blob); // 消除Chrome下文件太大 导致下载失败(网络失败)的问题
+        let a = document.createElement("a");
+        let event = new MouseEvent("click");
+        a.download = workItem.name || "qrcode";
+        a.href = obj_url;
+        a.dispatchEvent(event);
+      };
     },
     },
     copy(text) {
     copy(text) {
       var textArea = document.createElement("textarea");
       var textArea = document.createElement("textarea");
@@ -85,11 +109,9 @@ export default {
       textArea.select();
       textArea.select();
 
 
       try {
       try {
-        document.execCommand("copy")
-          ? this.$msg.success("复制成功")
-          : this.$msg.error("复制失败");
+        document.execCommand("copy") ? this.$msg.success("复制成功") : this.$msg.error("复制失败");
       } catch (err) {
       } catch (err) {
-        this.$msg.error("复制失败")
+        this.$msg.error("复制失败");
       }
       }
 
 
       document.body.removeChild(textArea);
       document.body.removeChild(textArea);
@@ -125,7 +147,7 @@ export default {
         }
         }
         > img {
         > img {
           width: 120px;
           width: 120px;
-          border: 1px solid #EBEDF0;
+          border: 1px solid #ebedf0;
           border-radius: 4px;
           border-radius: 4px;
         }
         }
         .ui-input {
         .ui-input {