tremble 2 лет назад
Родитель
Сommit
f1bfbe9e6f
36 измененных файлов с 320 добавлено и 61 удалено
  1. 8 0
      packages/qjkankan-editor/.env.eurdev
  2. 10 0
      packages/qjkankan-editor/.env.eurprod
  3. 1 0
      packages/qjkankan-editor/package.json
  4. 11 0
      packages/qjkankan-editor/src/assets/images/default/logo_white_en.svg
  5. 0 0
      packages/qjkankan-editor/src/assets/images/default/logo_white_zh.svg
  6. BIN
      packages/qjkankan-editor/src/assets/images/default/mask_bg_en.png
  7. 0 0
      packages/qjkankan-editor/src/assets/images/default/mask_bg_zh.png
  8. BIN
      packages/qjkankan-editor/src/assets/images/icons/USA.jpg
  9. BIN
      packages/qjkankan-editor/src/assets/images/icons/USA@2x.jpg
  10. BIN
      packages/qjkankan-editor/src/assets/images/icons/china.png
  11. BIN
      packages/qjkankan-editor/src/assets/images/icons/china@2x.png
  12. 10 10
      packages/qjkankan-editor/src/components/materialSelectorForEditor.vue
  13. 10 10
      packages/qjkankan-editor/src/components/materialSelectorForManageCenter.vue
  14. 4 4
      packages/qjkankan-editor/src/components/materialSelectorFromWorkForEditor.vue
  15. 9 1
      packages/qjkankan-editor/src/components/sceneGroupInEditor.vue
  16. 1 1
      packages/qjkankan-editor/src/framework/EditorHead.vue
  17. 1 1
      packages/qjkankan-editor/src/framework/MenuPC.vue
  18. 168 21
      packages/qjkankan-editor/src/framework/material/header.vue
  19. 7 7
      packages/qjkankan-editor/src/lang/_en.json
  20. 6 0
      packages/qjkankan-editor/src/utils/request.js
  21. 1 1
      packages/qjkankan-editor/src/views/base/customLogoSettings.vue
  22. 2 2
      packages/qjkankan-editor/src/views/base/customMaskSettings.vue
  23. 1 1
      packages/qjkankan-editor/src/views/material/works/index.vue
  24. 21 0
      packages/qjkankan-kankan-view/.env.eurprod
  25. 1 0
      packages/qjkankan-kankan-view/package.json
  26. 9 0
      packages/qjkankan-view/.env.eurdev
  27. 6 0
      packages/qjkankan-view/.env.eurprod
  28. 1 0
      packages/qjkankan-view/package.json
  29. BIN
      packages/qjkankan-view/public/showviewer/lib/krpano/skin/masking_en.png
  30. 0 0
      packages/qjkankan-view/public/showviewer/lib/krpano/skin/masking_zh.png
  31. 11 0
      packages/qjkankan-view/src/assets/images/default/logo_white_en.svg
  32. 1 0
      packages/qjkankan-view/src/assets/images/default/logo_white_zh.svg
  33. 3 1
      packages/qjkankan-view/src/components/UIGather/logo.vue
  34. 3 1
      packages/qjkankan-view/src/components/UIGather/mobile/logo.vue
  35. 8 0
      packages/qjkankan-view/src/pages/show.vue
  36. 6 0
      packages/qjkankan-view/src/pages/showMobile.vue

+ 8 - 0
packages/qjkankan-editor/.env.eurdev

@@ -0,0 +1,8 @@
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_CDN=https://eurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://eur.4dkankan.com'
+VUE_APP_PROXY_URL='https://eur.4dkankan.com/qjkankan/'
+VUE_APP_ORIGIN=aws
+
+VUE_APP_URL_FILL=

+ 10 - 0
packages/qjkankan-editor/.env.eurprod

@@ -0,0 +1,10 @@
+
+NODE_ENV=production
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_CDN=https://eurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://eur.4dkankan.com'
+VUE_APP_PROXY_URL='https://eur.4dkankan.com/qjkankan/'
+VUE_APP_ORIGIN=aws
+
+VUE_APP_URL_FILL=/qjkankan

+ 1 - 0
packages/qjkankan-editor/package.json

@@ -12,6 +12,7 @@
     "build-prod": "vue-cli-service build --mode prod",
     "build-testprod": "vue-cli-service build --mode testprod",
     "build-eurtestprod": "vue-cli-service build --mode eurtestprod",
+    "build-eurprod": "vue-cli-service build --mode eurprod",
     "lint": "vue-cli-service lint"
   },
   "dependencies": {

Разница между файлами не показана из-за своего большого размера
+ 11 - 0
packages/qjkankan-editor/src/assets/images/default/logo_white_en.svg


packages/qjkankan-editor/src/assets/images/default/logo_white.svg → packages/qjkankan-editor/src/assets/images/default/logo_white_zh.svg


BIN
packages/qjkankan-editor/src/assets/images/default/mask_bg_en.png


packages/qjkankan-editor/src/assets/images/default/mask_bg.png → packages/qjkankan-editor/src/assets/images/default/mask_bg_zh.png


BIN
packages/qjkankan-editor/src/assets/images/icons/USA.jpg


BIN
packages/qjkankan-editor/src/assets/images/icons/USA@2x.jpg


BIN
packages/qjkankan-editor/src/assets/images/icons/china.png


BIN
packages/qjkankan-editor/src/assets/images/icons/china@2x.png


+ 10 - 10
packages/qjkankan-editor/src/components/materialSelectorForEditor.vue

@@ -1772,10 +1772,10 @@ export default {
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(416px - 316px);
+    width: calc(380px - 316px);
   }
   &:nth-of-type(5) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1808,11 +1808,11 @@ export default {
     width: calc(146px - 50px);
   }
   &:nth-of-type(3) {
-    width: calc(416px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1845,11 +1845,11 @@ export default {
     width: calc(146px - 50px);
   }
   &:nth-of-type(3) {
-    width: calc(416px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1882,11 +1882,11 @@ export default {
     width: calc(146px - 50px);
   }
   &:nth-of-type(3) {
-    width: calc(416px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1919,11 +1919,11 @@ export default {
     width: calc(146px - 50px);
   }
   &:nth-of-type(3) {
-    width: calc(416px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 

+ 10 - 10
packages/qjkankan-editor/src/components/materialSelectorForManageCenter.vue

@@ -1379,11 +1379,11 @@ export default {
   }
 
   &:nth-of-type(4) {
-    width: calc(400px - 316px);
+    width: calc(380px - 316px);
   }
 
   &:nth-of-type(5) {
-    width: calc(100% - 400px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1399,12 +1399,12 @@ export default {
   }
 
   &:nth-of-type(3) {
-    width: calc(400px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
 
   &:nth-of-type(4) {
-    width: calc(100% - 400px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1420,12 +1420,12 @@ export default {
   }
 
   &:nth-of-type(3) {
-    width: calc(400px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
 
   &:nth-of-type(4) {
-    width: calc(100% - 400px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1441,12 +1441,12 @@ export default {
   }
 
   &:nth-of-type(3) {
-    width: calc(400px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
 
   &:nth-of-type(4) {
-    width: calc(100% - 400px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -1462,12 +1462,12 @@ export default {
   }
 
   &:nth-of-type(3) {
-    width: calc(400px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
 
   &:nth-of-type(4) {
-    width: calc(100% - 400px);
+    width: calc(100% - 380px);
   }
 }
 

+ 4 - 4
packages/qjkankan-editor/src/components/materialSelectorFromWorkForEditor.vue

@@ -404,11 +404,11 @@ export default {
     width: calc(146px - 50px);
   }
   &:nth-of-type(3) {
-    width: calc(416px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 
@@ -422,11 +422,11 @@ export default {
     width: calc(146px - 50px);
   }
   &:nth-of-type(3) {
-    width: calc(416px - 146px);
+    width: calc(380px - 146px);
     padding-right: 30px;
   }
   &:nth-of-type(4) {
-    width: calc(100% - 416px);
+    width: calc(100% - 380px);
   }
 }
 

+ 9 - 1
packages/qjkankan-editor/src/components/sceneGroupInEditor.vue

@@ -253,7 +253,15 @@ export default {
     onClickForRename() {
       this.isRenaming = true
       console.log(this.groupNode.name);
-      this.newName = this.groupNode.name
+
+      if (this.groupNode.name=='默认二级分组') {
+        this.newName = this.$i18n.t('navigation.default_group_two')
+      } else if (this.groupNode.name=='一级分组') {
+        this.newName = this.$i18n.t('navigation.group_one')
+      } else{
+        this.newName = this.groupNode.name
+      }
+
       this.$nextTick(() => {
         // this.$refs['input-for-rename'].focus()
         this.$refs['input-for-rename'].select()

+ 1 - 1
packages/qjkankan-editor/src/framework/EditorHead.vue

@@ -14,7 +14,7 @@
       <i class="iconfont iconeditor_save"></i>
       {{savetips}}
     </div>
-    <preview v-if="info" :key="Math.random()" :name="info.name" :show="showPreview" :ifr="`./show.html?id=${info.id}&rnd=${Math.random()}`" @close="showPreview = false" />
+    <preview v-if="info" :key="Math.random()" :name="info.name" :show="showPreview" :ifr="`./show.html?id=${info.id}&lang=${$lang}&rnd=${Math.random()}`" @close="showPreview = false" />
   </header>
 </template>
 <script>

+ 1 - 1
packages/qjkankan-editor/src/framework/MenuPC.vue

@@ -10,7 +10,7 @@
       </li>
     </ul>
 
-    <a class="help" href="https://docs.4dkankan.com/#/product/4dpano/zh-cn/README" target="_blank">
+    <a class="help" :href="$lang=='en'?'https://docs.4dkankan.com/#/product/4dpano/en-us/README':'https://docs.4dkankan.com/#/product/4dpano/zh-cn/README'" target="_blank">
       <img v-tooltip="$i18n.t('edit_settings.help_center')"  :src="require(`@/assets/images/icons/help_tips.png`)" alt="">
     </a>
 

+ 168 - 21
packages/qjkankan-editor/src/framework/material/header.vue

@@ -5,10 +5,26 @@
         <img :src="require(`@/assets/images/icons/logo_black_${$lang}.svg`)" alt="" />
       </a>
       <ul class="tab">
-        <li @click="handleItem(item)" :class="{active:active.id==item.id}" v-for="(item, i) in tab" :key="i">
+        <li @click="handleItem(item)" :class="{ active: active.id == item.id }" v-for="(item, i) in tab" :key="i">
           {{ item.name }}
         </li>
       </ul>
+
+      <div class="language-w">
+        <div class="list">
+          <a class="header-item" :class="{ 'is-hover': showLangList }" @touchstart="showLangList = !showLangList">
+            <p class="guoqi" :style="{ 'background-image': `url(${languageObj.img})` }">
+              {{ languageObj.name }}
+            </p>
+            <ul class="child-list">
+              <li v-for="item in languageList" :key="item.name" :style="{ 'background-image': `url(${item.img})` }"
+                @click="changeLanguage(item.value)">{{ item.name }}</li>
+            </ul>
+          </a>
+        </div>
+        <!-- <span class="language en" :class="{'is-active': language === 'en'}" @click="changeLanguage('en')">EN</span>
+          <span class="language" :class="{'is-active': language !== 'en'}" @click="changeLanguage('zh')">中</span> -->
+      </div>
       <user-info class="user-info"></user-info>
     </div>
   </div>
@@ -16,7 +32,7 @@
 
 <script>
 import UserInfo from "@/components/userInfo.vue";
-import {i18n} from "@/lang"
+import { i18n } from "@/lang"
 
 export default {
   components: {
@@ -24,38 +40,63 @@ export default {
   },
   data() {
     return {
-      homeLink:process.env.VUE_APP_PROXY_URL_ROOT,
-      active:{},
+      homeLink: process.env.VUE_APP_PROXY_URL_ROOT,
+      langauge: localStorage.getItem('language'),
+      languageList: [
+        {
+          name: '简体中文',
+          img: require('@/assets/images/icons/china@2x.png'),
+          value: 'zh'
+        },
+        {
+          name: 'English',
+          img: require('@/assets/images/icons/USA@2x.jpg'),
+          value: 'en'
+        }
+      ],
+      showLangList: false,
+      active: {},
       tab: [
         {
           name: i18n.t("gather.my_works"),
           id: "works",
-          path:{
-            path:'/works'
+          path: {
+            path: '/works'
           }
         },
         {
           name: i18n.t("gather.my_material"),
           id: "material",
-          path:{
-            path:'/'
+          path: {
+            path: '/pano'
           }
         }
       ],
     };
   },
-  watch:{
-    '$route.meta':{
-      deep:true,
-      handler:function (newVal) {
-        this.active  = this.tab.find(item=>{
-          return item.id == newVal.belong 
+  computed: {
+    languageObj() {
+      console.log(i18n.locale);
+      return this.languageList.find(item => item.value === i18n.locale)
+    },
+  },
+  watch: {
+    '$route.meta': {
+      deep: true,
+      handler: function (newVal) {
+        this.active = this.tab.find(item => {
+          return item.id == newVal.belong
         })
       }
     }
   },
-  methods:{
-    handleItem(item){
+  methods: {
+    changeLanguage(lang) {
+      let arr = location.href.split('#/')
+      location.href = `material.html?lang=${lang}#/${arr[1]}`
+      localStorage.language = lang
+    },
+    handleItem(item) {
       this.$router.push(item.path)
     }
   }
@@ -70,6 +111,7 @@ export default {
   top: 0;
   left: 0;
   z-index: 999;
+
   .con {
     color: #000;
     max-width: 1280px;
@@ -79,31 +121,37 @@ export default {
     margin: 0 auto;
     position: relative;
     padding: 0;
+
     .logo {
       font-size: 24px;
       font-weight: bold;
       height: 100%;
-      >img{
+
+      >img {
         height: 100%;
         vertical-align: middle;
       }
     }
+
     .tab {
       display: flex;
       align-items: center;
       margin-left: 116px;
-      > li {
+
+      >li {
         cursor: pointer;
         margin-right: 50px;
         text-align: left;
         font-size: 16px;
         color: #909090;
-        &.active{
+
+        &.active {
           font-size: 16px;
           font-weight: bold;
           color: #0076F6;
           position: relative;
-          &::before{
+
+          &::before {
             content: '';
             width: 20px;
             height: 2px;
@@ -117,8 +165,107 @@ export default {
         }
       }
     }
-    .user-info {
+
+    .language-w {
       margin-left: auto;
+      .list{
+        height: 100%;
+        display: flex;
+      }
+
+      .header-item {
+        margin-right: 20px !important;
+
+        &:hover,
+        &.is-hover {
+          position: relative;
+          color: #202020;
+
+          .child-list {
+            display: block;
+          }
+        }
+
+        p {
+          color: #323233;
+          font-size: 14px;
+          font-weight: normal;
+          cursor: pointer;
+          background: url(~@/assets/images/icons/china.png) no-repeat left center;
+          background-size: 20px 14px;
+          padding: 10px 0 10px 28px;
+
+          .iconfont {
+            font-size: 10px;
+            color: rgb(144, 144, 144);
+          }
+
+        }
+
+        &:hover p .iconfont::before {
+          content: "\E744";
+        }
+      }
+
+      .child-list {
+        position: absolute;
+        // width: 112px;
+        box-shadow: 0px -2px 6px rgba(113, 113, 113, 0.16);
+        margin-top: 0;
+        left: 50%;
+        transform: translateX(-50%);
+        z-index: 0;
+        display: none;
+        transition: all linear 0.5s;
+        padding-top: 6px;
+        background: #fff;
+
+        &::before {
+          position: absolute;
+          display: block;
+          top: -5px;
+          left: 50%;
+          margin-left: -2px;
+          width: 0;
+          height: 0px;
+          content: '';
+          background: #fff;
+          border-style: solid;
+          border-width: 4px;
+          border-color: #fff #fff transparent transparent;
+          transform: rotate(-45deg);
+          box-shadow: 1px -1px 0px rgba(113, 113, 113, 0.16);
+          z-index: 1;
+        }
+
+        li {
+          height: 48px;
+          line-height: 48px;
+          font-size: 16px;
+          text-align: center;
+          position: relative;
+          background: #fff;
+          cursor: pointer;
+          z-index: 2;
+          padding: 0 25px;
+          white-space: nowrap;
+          color: #909090;
+          font-size: 14px;
+          font-weight: normal;
+          padding: 0 13px 0 40px;
+          background: url(~@/assets/images/icons/china.png) no-repeat 13px center;
+          background-size: 20px 14px;
+
+          &:hover {
+            background-color: #EBEBEB;
+            color: #202020;
+          }
+        }
+      }
+
+    }
+
+    .user-info {
       margin-right: 0;
     }
   }

+ 7 - 7
packages/qjkankan-editor/src/lang/_en.json

@@ -528,13 +528,13 @@
   "material": {
     "works": {
       "my": "My Project",
-      "create": "Create the project",
+      "create": "Create a project",
       "search": "Search",
       "preview": "Preview",
       "edit": "Edit",
       "share": "Share",
       "delete": "Delete",
-      "no_works": "No results found; you do not yet have a project; please create one first~",
+      "no_works": "No results found, you do not yet have a project, please create one first~",
       "work_link": "Project link",
       "work_qrCode": "Project QR Code",
       "download_qrCode": "Download the QR code",
@@ -569,7 +569,7 @@
     }
   },
   "gather": {
-    "select_material": "Select the material",
+    "select_material": "Select the materials",
     "no_title": "No title",
     "my_works": "My Project",
     "my_material": "My Material",
@@ -592,7 +592,7 @@
     "audio_size": "Support MP3 files: ≤ 20MB",
     "audio_limit": "The file is too large. Support MP3 files: ≤ 20MB",
     "audio_fail": "Format error. Support MP3 files: ≤ 20MB",
-    "upload_material": "Upload material",
+    "upload_material": "Upload materials",
     "video_size": "Support MP4 files: ≤ 200MB",
     "video_limit": "The file is too large.Support MP4 files: ≤ 200MB",
     "video_fail": "Format error. Support MP4 files: ≤ 200MB",
@@ -693,7 +693,7 @@
     "title": "Title",
     "description": "Description",
     "work_placeholder": "Please enter the project title",
-    "intro_placeholder": "Please input no more than 500 words of text content.",
+    "intro_placeholder": "Please input no more than 500 words of text content",
     "help_center": "Help Center",
     "display_time": "Display duration",
     "no_display": "(No display)",
@@ -722,7 +722,7 @@
     "创建时间": "Created",
     "修改时间": "Modified",
 
-    "封面": "cover",
+    "封面": "Cover",
     "场景标题": "Scene Title",
     "拍摄时间": "Shooting Time",
     "一级分组":"1st Grouping",
@@ -730,7 +730,7 @@
     "默认二级分组":"Default as 2nd grouping"
   },
   "navigation": {
-    "scene_edit_tips": "Please direct to the 4Dage Personal Center scene editing platform.",
+    "scene_edit_tips": "Please direct to the 4Dage Personal Center scene editing platform",
     "go_scene_editor": "Get started now",
     "scene_navigation": "Navigation",
     "add_group": "Add a grouping",

+ 6 - 0
packages/qjkankan-editor/src/utils/request.js

@@ -147,6 +147,12 @@ export function statusCodesHandler(result, callback) {
     return
   }
 
+  if (result.code == statusCode.FAILURE_CODE_3101) {
+    $alert({ content: i18n.t('tips_code.FAILURE_3101') });
+    return
+  }
+  
+
   if (result.code == statusCode.FAILURE_CODE_5001||result.code === statusCode.FAILURE_CODE_5002) {
     callback(result.code);
     showLoginTips();

+ 1 - 1
packages/qjkankan-editor/src/views/base/customLogoSettings.vue

@@ -9,7 +9,7 @@
     <div class="bottom" :class="{disabled: !info.isLogo}">
         <SelectedImage
           :imgSrc="info.logo"
-          :defaultImgSrc="require('@/assets/images/default/logo_white.svg')"
+          :defaultImgSrc="require(`@/assets/images/default/logo_white_${$lang}.svg`)"
           @cancel="onClickCancelCustomLogo"
         ></SelectedImage>
       <div class="bottom-right">

+ 2 - 2
packages/qjkankan-editor/src/views/base/customMaskSettings.vue

@@ -12,7 +12,7 @@
       <div class="bottom">
         <SelectedImage
           :imgSrc="info && info.customMask && info.customMask.sky.icon"
-          :defaultImgSrc="require('@/assets/images/default/mask_bg.png')"
+          :defaultImgSrc="require(`@/assets/images/default/mask_bg_${$lang}.png`)"
           @cancel="onCancelSelection('sky')"
         ></SelectedImage>
         <div class="bottom-right">
@@ -39,7 +39,7 @@
       <div class="bottom">
         <SelectedImage
           :imgSrc="info && info.customMask && info.customMask.earth.icon"
-          :defaultImgSrc="require('@/assets/images/default/mask_bg.png')"
+          :defaultImgSrc="require(`@/assets/images/default/mask_bg_${$lang}.png`)"
           @cancel="onCancelSelection('earth')"
         ></SelectedImage>
         <div class="bottom-right">

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

@@ -478,7 +478,7 @@ export default {
   .mask {
     position: absolute;
     width: 100%;
-    top: 210px;
+    top: 200px;
     height: 30px;
     background: linear-gradient(rgb(239, 242, 244), rgba(255, 255, 255, 0));
     z-index: 1;

+ 21 - 0
packages/qjkankan-kankan-view/.env.eurprod

@@ -0,0 +1,21 @@
+NODE_ENV=production
+
+# 场景资源地址
+VUE_APP_RESOURCE_URL=https://eurs3.4dkankan.com/
+# 静态资源地址
+VUE_APP_CDN_URL=https://eurs3.4dkankan.com/v4/www/
+# sdk文件地址
+VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/www/sdk/
+
+
+
+# 静态资源目录
+VUE_APP_STATIC_DIR=viewer
+
+
+# 云存储环境
+VUE_APP_REGION_URL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://eur.4dkankan.com/
+

+ 1 - 0
packages/qjkankan-kankan-view/package.json

@@ -7,6 +7,7 @@
     "serve-prod": "vue-cli-service serve --mode prod",
     "build": "vue-cli-service build --mode prod",
     "build-eurtestprod": "vue-cli-service build --mode eurtestprod",
+    "build-eurprod": "vue-cli-service build --mode eurprod",
     "lint": "vue-cli-service lint"
   },
   "dependencies": {

+ 9 - 0
packages/qjkankan-view/.env.eurdev

@@ -0,0 +1,9 @@
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://eurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://eur.4dkankan.com'
+VUE_APP_PROXY_URL='https://eur.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://eur.4dkankan.com/
+

+ 6 - 0
packages/qjkankan-view/.env.eurprod

@@ -0,0 +1,6 @@
+NODE_ENV=production
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://eurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://eur.4dkankan.com'
+VUE_APP_PROXY_URL='https://eur.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan

+ 1 - 0
packages/qjkankan-view/package.json

@@ -8,6 +8,7 @@
     "build": "vue-cli-service build",
     "build-testprod": "vue-cli-service build --mode testprod",
     "build-eurtestprod": "vue-cli-service build --mode eurtestprod",
+    "build-eurprod": "vue-cli-service build --mode eurprod",
     "build-prod": "vue-cli-service build --mode prod",
     "lint": "vue-cli-service lint"
   },

BIN
packages/qjkankan-view/public/showviewer/lib/krpano/skin/masking_en.png


packages/qjkankan-view/public/showviewer/lib/krpano/skin/masking.png → packages/qjkankan-view/public/showviewer/lib/krpano/skin/masking_zh.png


Разница между файлами не показана из-за своего большого размера
+ 11 - 0
packages/qjkankan-view/src/assets/images/default/logo_white_en.svg


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
packages/qjkankan-view/src/assets/images/default/logo_white_zh.svg


+ 3 - 1
packages/qjkankan-view/src/components/UIGather/logo.vue

@@ -1,16 +1,18 @@
 <template>
   <div class="logo" v-if="metadata.isLogo&&fdkkCurrentVersion!='v3'">
-    <img :src="metadata.logo || require('@/assets/images/default/logo_white.svg')" alt="">
+    <img :src="metadata.logo || require(`@/assets/images/default/logo_white_${local}.svg`)" alt="">
   </div>
 </template>
 
 <script setup>
 import { useStore } from "vuex";
 import { ref, onMounted, computed, watch, nextTick } from "vue";
+import { useI18n, getLocale } from '@/i18n'
 
 const store = useStore();
 const metadata = computed(() => store.getters['scene/metadata'])
 const fdkkCurrentVersion = computed(() => store.getters["scene/fdkkCurrentVersion"]);
+const local = getLocale();
 
 </script>
 

+ 3 - 1
packages/qjkankan-view/src/components/UIGather/mobile/logo.vue

@@ -1,16 +1,18 @@
 <template>
   <div class="logo" v-if="metadata.isLogo && currentScene.type=='pano'">
-    <img :src="metadata.logo || require('@/assets/images/default/logo_white.svg')" alt="">
+    <img :src="metadata.logo || require(`@/assets/images/default/logo_white_${local}.svg`)" alt="">
   </div>
 </template>
 
 <script setup>
 import { useStore } from "vuex";
 import { ref, onMounted, computed, watch, nextTick } from "vue";
+import { useI18n, getLocale } from '@/i18n'
 
 const store = useStore();
 const metadata = computed(() => store.getters['scene/metadata'])
 const currentScene = computed(() => store.getters["scene/currentScene"]);
+const local = getLocale();
 
 
 </script>

+ 8 - 0
packages/qjkankan-view/src/pages/show.vue

@@ -48,6 +48,8 @@ const store = useStore();
 const show = ref(false);
 const workEnable = ref(true);
 
+const lang = getLocale()
+
 
 const currentScene = computed(() => store.getters["scene/currentScene"]);
 const currentCatalogRoot = computed(() => store.getters["scene/currentCatalogRoot"]);
@@ -151,8 +153,13 @@ onMounted(async () => {
     if (isHavePano) {
       app.Scene.on("sceneReady", () => {
         if (app.krpanoDom) {
+
+          let defaultMask = `%SWFPATH%/skin/masking_${lang}.png`
+
           if (earthMask.value) {
+            app.krpanoDom.set(`hotspot[nadirlogo].url`, defaultMask);
             app.krpanoDom.set(`hotspot[nadirlogo].visible`, earthMask.value.isShow);
+
             if (earthMask.value.icon) {
               app.krpanoDom.set(`hotspot[nadirlogo].url`, earthMask.value.icon);
             }
@@ -160,6 +167,7 @@ onMounted(async () => {
 
 
           if (skyMask.value) {
+            app.krpanoDom.set(`hotspot[peaklogo].url`, defaultMask);
             app.krpanoDom.set(`hotspot[peaklogo].visible`, skyMask.value.isShow);
             if (skyMask.value.icon) {
               app.krpanoDom.set(`hotspot[peaklogo].url`, skyMask.value.icon);

+ 6 - 0
packages/qjkankan-view/src/pages/showMobile.vue

@@ -48,6 +48,7 @@ const fixOpening = {
 const store = useStore();
 const show = ref(false);
 const workEnable = ref(true);
+const lang = getLocale()
 
 
 const currentScene = computed(() => store.getters["scene/currentScene"]);
@@ -152,8 +153,12 @@ onMounted(async () => {
     if (isHavePano) {
       app.Scene.on("sceneReady", () => {
         if (app.krpanoDom) {
+          let defaultMask = `%SWFPATH%/skin/masking_${lang}.png`
+
           if (earthMask.value) {
+            app.krpanoDom.set(`hotspot[nadirlogo].url`, defaultMask);
             app.krpanoDom.set(`hotspot[nadirlogo].visible`, Boolean(earthMask.value.isShow));
+
             if (earthMask.value.icon) {
               app.krpanoDom.set(`hotspot[nadirlogo].url`, earthMask.value.icon);
             }
@@ -161,6 +166,7 @@ onMounted(async () => {
 
           
           if (skyMask.value) {
+            app.krpanoDom.set(`hotspot[peaklogo].url`, defaultMask);
             app.krpanoDom.set(`hotspot[peaklogo].visible`, Boolean(skyMask.value.isShow));
             if (skyMask.value.icon) {
               app.krpanoDom.set(`hotspot[peaklogo].url`, skyMask.value.icon);