Browse Source

update1059

tremble 3 years ago
parent
commit
287f491670

+ 4 - 2
backstage/src/components/uploadFile/index.vue

@@ -41,12 +41,14 @@ export default {
         this.$message.error('只允许指定文件格式的文件');
         return type
       }
+
+      let tupeee = this.desc.indexOf('4dage')>-1 
       
-      let size = 500
+      let size = tupeee ? 500 : 2048
       const isLt500M = file.size / 1024 / 1024 < size;
 
       if (!isLt500M) {
-        this.$message.error(`上传文件大小不能超过 ${size}MB!`);
+        this.$message.error(`上传文件大小不能超过${tupeee?'500M':'2GB'}!`);
         return isLt500M;
       }
       this.showLoading()

BIN
web/public/model/Build/WebGl-3DMapPage.data


BIN
web/public/model/Build/WebGl-3DMapPage.wasm


+ 1 - 1
web/public/static/js/manage.js

@@ -1,6 +1,6 @@
   
 var g_ProjectName=window.location.pathname.substring(window.location.pathname.indexOf("/")+1,window.location.pathname.lastIndexOf("/"));
-// var g_Prefix="https://super.4dage.com/";
+// var g_Prefix="http://192.168.0.109:8004/";
 
 var g_Prefix=window.location.origin+'/';
 window.isLocal = true

+ 1 - 0
web/src/App.vue

@@ -12,6 +12,7 @@
   </div>
 </template>
 
+
 <script>
 import '@/assets/style/reset.less'
 import '@/assets/style/public.less'

+ 2 - 0
web/src/newcomponents/hovercom/commentator/index.vue

@@ -62,6 +62,8 @@ export default {
       localStorage.setItem('xunirole',this.active.id)
       this.$bus.$emit('xunirole',this.active)
       this.$emit('close')
+      this.$bus.$emit('moveCan')
+
     }
   },
   mounted() {

+ 3 - 0
web/src/newcomponents/hovercom/index.vue

@@ -5,6 +5,7 @@
         <dati v-else-if="showType=='Q&A'" @close="close"/>
         <donate v-else-if="showType=='donate'" @close="close"/>
         <commentator v-else-if="showType=='commentator'" @close="close"/>
+        <tips v-else-if="showType=='tips'" @close="close"/>
         <message v-else @close="close"/>
       </template>
   </div>
@@ -16,6 +17,7 @@ import message from "@/views/message";
 import donate from "./donate";
 import dati from "./dati";
 import commentator from "./commentator";
+import tips from "./tips";
 
 export default {
   props:['showType'],
@@ -24,6 +26,7 @@ export default {
     message,
     donate,
     dati,
+    tips,
     commentator
   },
   methods:{

+ 244 - 0
web/src/newcomponents/hovercom/tips/data.js

@@ -0,0 +1,244 @@
+let data = [
+  {
+    id: 1,
+    question: "解放军总医院的院训是什么?",
+    answer: [
+      {
+        val: "A",
+        title: "敬业、忠诚、厚德、创新",
+      },
+      {
+        val: "B",
+        title: "忠诚、敬业、创新、厚德",
+      },
+      {
+        val: "C",
+        title: "忠诚、厚德、创新、敬业",
+      },
+      {
+        val: "D",
+        title: "忠诚、敬业、厚德、创新",
+      },
+    ],
+    correct: "D",
+  },
+
+  {
+    id: 2,
+    question: "关于修建解放军总医院提出 “先准备、后建设”的国家领导人是谁?",
+    answer: [
+      {
+        val: "A",
+        title: "周恩来",
+      },
+      {
+        val: "B",
+        title: "毛泽东",
+      },
+      {
+        val: "C",
+        title: "朱德",
+      },
+      {
+        val: "D",
+        title: "聂荣臻",
+      },
+    ],
+    correct: "B",
+  },
+
+  {
+    id: 3,
+    question: "军委直属机关医院改称中国人民解放军第三〇一医院的时间是?",
+    answer: [
+      {
+        val: "A",
+        title: "1954年7月2日",
+      },
+      {
+        val: "B",
+        title: "1955年7月1日",
+      },
+      {
+        val: "C",
+        title: "1953年8月5日",
+      },
+      {
+        val: "D",
+        title: "1954年8月4日",
+      },
+    ],
+    correct: "D",
+  },
+
+  {
+    id: 4,
+    question: "解放军总医院首任院长是谁?",
+    answer: [
+      {
+        val: "A",
+        title: "靳来川",
+      },
+      {
+        val: "B",
+        title: "白崇友",
+      },
+      {
+        val: "C",
+        title: "蒲荣钦",
+      },
+      {
+        val: "D",
+        title: "涂通今",
+      },
+    ],
+    correct: "A",
+  },
+
+  {
+    id: 5,
+    question: "20世纪90年代,解放军总医院哪位专家当选为中国工程院首批院士?",
+    answer: [
+      {
+        val: "A",
+        title: "黄志强",
+      },
+      {
+        val: "B",
+        title: "盛志勇",
+      },
+      {
+        val: "C",
+        title: "姜泗长",
+      },
+      {
+        val: "D",
+        title: "卢世璧",
+      },
+    ],
+    correct: "C",
+  },
+
+  {
+    id: 6,
+    question:
+      "解放军总医院2018年,解放军总医院转隶联勤保障部队的日期是?的院训是什么?",
+    answer: [
+      {
+        val: "A",
+        title: "12月28日",
+      },
+      {
+        val: "B",
+        title: "12月31日",
+      },
+      {
+        val: "C",
+        title: "12月30日",
+      },
+      {
+        val: "D",
+        title: "12月29日",
+      },
+    ],
+    correct: "B",
+  },
+
+  {
+    id: 7,
+    question: "解放军总医院共有几个医学中心、几个医疗区?",
+    answer: [
+      {
+        val: "A",
+        title: "8、5",
+      },
+      {
+        val: "B",
+        title: "9、6",
+      },
+      {
+        val: "C",
+        title: "14 、5",
+      },
+      {
+        val: "D",
+        title: "10、8",
+      },
+    ],
+    correct: "A",
+  },
+
+  {
+    id: 8,
+    question: "解放军总医院共有多少位院士?",
+    answer: [
+      {
+        val: "A",
+        title: "12",
+      },
+      {
+        val: "B",
+        title: "10",
+      },
+      {
+        val: "C",
+        title: "11",
+      },
+      {
+        val: "D",
+        title: "9",
+      },
+    ],
+    correct: "A",
+  },
+
+  {
+    id: 9,
+    question: "解放军总医院共有多少个临床医学部?",
+    answer: [
+      {
+        val: "A",
+        title: "8",
+      },
+      {
+        val: "B",
+        title: "21",
+      },
+      {
+        val: "C",
+        title: "17",
+      },
+      {
+        val: "D",
+        title: "25",
+      },
+    ],
+    correct: "B",
+  },
+
+  {
+    id: 10,
+    question: "解放军总医院获得过几项国家科技进步一等奖?",
+    answer: [
+      {
+        val: "A",
+        title: "9",
+      },
+      {
+        val: "B",
+        title: "14",
+      },
+      {
+        val: "C",
+        title: "12",
+      },
+      {
+        val: "D",
+        title: "15",
+      },
+    ],
+    correct: "C",
+  },
+];
+
+export { data };

+ 131 - 0
web/src/newcomponents/hovercom/tips/index.vue

@@ -0,0 +1,131 @@
+<template>
+  <div class="datiing brightnessBigW" @click.stop>
+    <p class="qtitle">访客须知</p>
+    <div class="qline">
+      <img :src="require(`@/assets/images/icon/star.png`)" alt="" />
+    </div>
+      <div class="dati">
+          欢迎访问中国人民解放军总医院数字史馆测试版,如您在浏览过程中有任何问题或意见,可在互动留言处提交留言反馈。
+      </div>
+      <div class="dati_btn">
+        <span class="default" @click="$emit('close')">我知道了</span>
+        <span class="active" @click="handleLeave">前往留言</span>
+      </div>
+
+    <img
+      @click="$emit('close')"
+      class="close"
+      :src="require('@/assets/images/project/close1.png')"
+      alt=""
+    />
+  </div>
+</template>
+
+<script>
+// import { data } from "./data";
+
+export default {
+  data() {
+    return {
+   
+    };
+  },
+
+  methods: {
+    handleLeave() {
+      this.$bus.$emit("hovershowType", 'message');
+    },
+  }
+};
+</script>
+
+<style lang="less" scoped>
+.datiing {
+  width: 988px;
+  margin: 0 auto;
+  position: fixed;
+  height: 500px;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  z-index: 99;
+  color: #fff;
+  padding: 30px 36px 0;
+  border-top: 8px solid #ccaf8f;
+  background: rgba(3, 51, 48, 0.5);
+  border-bottom: 8px solid #ccaf8f;
+  .qtitle {
+    margin-top: 6px;
+    text-align: center;
+    font-size: 28px;
+    font-weight: bold;
+    line-height: 38px;
+    color: #ffe0a6;
+  }
+  .qline {
+    width: 100%;
+    height: 1px;
+    margin: 26px 0;
+    position: relative;
+     background: linear-gradient(
+      90deg,
+      rgba(255, 255, 255, 0) 0%,
+      #ffffff 48%,
+      rgba(255, 255, 255, 0) 100%
+    );
+    > img {
+      position: absolute;
+      left: 50%;
+      width: 32px;
+      transform: translateX(-50%);
+      top: -12px;
+    }
+  }
+  .dati {
+    width: 100%;
+    height: 50%;
+    overflow-y: auto;
+    margin: 0 auto;
+    background-color: rgba(255, 255, 255, 0.7);
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    text-align: left;
+    text-indent: 40px;
+    line-height: 2.5;
+    font-size: 20px;
+    padding: 0 66px;
+  }
+
+
+  .dati_btn {
+    > span {
+      display: inline-block;
+      color: #FCF5D3;
+      font-size: 16px;
+      line-height: 36px;
+      height: 36px;
+      cursor: pointer;
+      width: 106px;
+      margin: 20px;
+      border: 1px solid #FCF5D3;
+      color: #fff;
+      &.active {
+        color: #fff;
+        background: #ccaf8f;
+        border-color: #ccaf8f;
+      }
+    }
+  }
+
+  .close {
+    position: absolute;
+    top: 45px;
+    right: 38px;
+    width: 20px;
+    height: 20px;
+    cursor: pointer;
+    z-index: 9999999;
+  }
+}
+</style>

+ 1 - 1
web/src/newcomponents/searchcon/detail/expert.vue

@@ -6,7 +6,7 @@
           <img v-viewer :src="currentItem.thumb" alt=""/>
           <h2>
             {{currentItem.name}}
-            <span>{{`(${currentItem.years})`}}</span>
+            <span>{{currentItem.years?`(${currentItem.years})`:''}}</span>
           </h2>
           <h3>{{currentItem.title || g_typeStr[currentItem.type]}}</h3>
           <p>{{currentItem.description}}</p>

+ 74 - 186
web/src/views/digital/aside.vue

@@ -1,63 +1,57 @@
 <template>
   <div class="aside">
-
     <ul class="tabul" v-if="currentItem.idstar == 'star1'">
-      <li @click="handleStar('star1_1')" :class="active=='star1_1'?'active brightness':''">
+      <li @click="handleStar('star1_1')" :class="active == 'star1_1' ? 'active brightness' : ''">
         解放军总医院
       </li>
-      <li  @click="handleStar('star1_2')" :class="active=='star1_2'?'active brightness':''">
+      <li @click="handleStar('star1_2')" :class="active == 'star1_2' ? 'active brightness' : ''">
         第一医学中心
       </li>
     </ul>
 
     <div class="asidecon brightness">
+      <div class="img" v-if="currentItem.thumb">
+        <img :src="currentItem.thumb" alt="" />
+      </div>
+
       <div class="atitle">
-        <p class="qtitle">{{currentItem.name}}</p>
+        <p class="qtitle">{{ currentItem.name }}</p>
         <div class="qline">
           <img :src="require(`@/assets/images/icon/star.png`)" alt="" />
         </div>
       </div>
 
-      <div class="img" v-if="currentItem.thumb">
-        <img :src="currentItem.thumb" alt="" />
-      </div>
-
       <div class="desc">
-        <p>介绍:</p>
         <p v-html="currentItem.description"></p>
       </div>
 
-      <div class="intro" v-if="currentItem.urls&&currentItem.urls[0].urlName.trim()&&currentItem.urls[0].url.trim()" @click="open(currentItem.urls[0])">
-        <span>{{currentItem.urls[0].urlName}}</span>
-        <img :src="require(`@/assets/images/project/enter.png`)" alt="">
+      <div class="intro" v-if="currentItem.urls && currentItem.urls[0].urlName.trim() && currentItem.urls[0].url.trim()" @click="open(currentItem.urls[0])">
+        <span>{{ currentItem.urls[0].urlName }}</span>
+        <img :src="require(`@/assets/images/project/enter.png`)" alt="" />
       </div>
     </div>
 
-    <div class="btn" @click="$emit('close'),active='star1_1'">
-      <div class="btncon brightness">
-        <div class="inside"></div>
-      </div>
-    </div>
-    <div class="shadow" :class="{shorts:currentItem.idstar == 'star1'}"></div>
+    <img @click="$emit('close'), (active = 'star1_1')" class="close" :src="require('@/assets/images/project/cancel.png')" alt="" />
+
   </div>
 </template>
 
 <script>
 export default {
-  props:['currentItem'],
-  data(){
+  props: ["currentItem"],
+  data() {
     return {
-      active: 'star1_1'
-    }
+      active: "star1_1",
+    };
   },
   methods: {
-    handleStar(data){
-      this.active = data
-      this.$emit('switch',data)
+    handleStar(data) {
+      this.active = data;
+      this.$emit("switch", data);
     },
     open(item) {
       let windowObjectReference = window.open();
-      let temp = this.changetohttp(item.url)
+      let temp = this.changetohttp(item.url);
       windowObjectReference.location.href = temp;
       // window.open(item.url,'_blank')
     },
@@ -66,100 +60,67 @@ export default {
 </script>
 
 <style lang="less" scoped>
+@w: 895px;
 .aside {
   position: fixed;
   top: 0;
-  right: 0;
+  left: 0;
+  width: 100%;
   height: 100%;
-  width: 606px;
-  transition: 0.5s ease all;
+  transition: 0.3s ease all;
+  z-index: 999;
   color: #fff;
-  .tabul{
+  .tabul {
     position: absolute;
-    left: -70px;
-    width: 70px;
+    bottom: 74px;
+    right: 50px;
     font-size: 0;
-    >li{
-      width: 100%;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      writing-mode: vertical-lr;
+    z-index: 99999;
+    
+    > li {
+      display: inline-block;
+      min-width: 150px;
+      height: 55px;
+      line-height: 55px;
       margin: 0 auto;
       position: relative;
-      letter-spacing: 2px;
-      padding: 20px 0;
+      padding: 0 20px;
       cursor: pointer;
-      font-size: 20px;
-      &:not(&.active){
-        background: linear-gradient(
-          180deg,
-          rgba(165, 177, 236, 0.7) 0%,
-          rgba(134, 145, 199, 0.7) 100%
-        );
-        transform: translateX(4%);
-        width: 90%;
-      }
-      &.active{
-        width: 100%;
-        background: linear-gradient(
-          180deg,
-          rgba(165, 177, 236, 0.7) 0%,
-          rgba(134, 145, 199, 0.7) 100%
-        );
-        clip-path: inset(0px round 10px 0 0 10px);
-        overflow: hidden;
-        box-shadow: 0 -2px 5px rgba(165, 177, 236, 0.7);
-        &::after{
-          display: inline-block;
-          content: '';
-          width: 98%;
-          height: 98%;
-          position: absolute;
-          bottom: 0%;
-          left: 0%;
-          z-index: 100;
-          filter: blur(3px);
-          background: none;
-          border-radius: 10px 0px 0px 10px;
-          box-shadow: -2px -4px 0px rgba(255, 255, 255, 1);
-        }
+      font-size: 18px;
+      margin: 0 10px;
+      background: rgba(255, 255, 255, 0.3);
+      color: #fff;
+      &.active {
+        background: rgba(78, 86, 144, 1);
       }
     }
   }
   .asidecon {
-    background: linear-gradient(
-      180deg,
-      rgba(165, 177, 236, 0.7) 0%,
-      rgba(134, 145, 199, 0.7) 100%
-    );
-    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 55%, 8% 50%, 0 45%);
+    // background: linear-gradient(180deg, rgba(165, 177, 236, 0.7) 0%, rgba(134, 145, 199, 0.7) 100%);
     width: 100%;
+    // clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
     height: 100%;
     padding: 62px 78px;
     .atitle {
-      width: 100%;
-      margin: 0 auto;
+      margin: 45px auto 0;
+      width: @w;
+
       .qtitle {
         width: 100%;
-        height: 30px;
-        font-size: 30px;
+        height: 24px;
+        font-size: 24px;
         display: inline-block;
         font-weight: bold;
         line-height: 38px;
         text-align: center;
+        color: #fff;
       }
       .qline {
         width: 100%;
         height: 1px;
         margin: 26px 0;
         position: relative;
-        background: linear-gradient(
-          90deg,
-          rgba(255, 255, 255, 0) 0%,
-          #ffffff 48%,
-          rgba(255, 255, 255, 0) 100%
-        );
+        background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #ffffff 48%, rgba(255, 255, 255, 0) 100%);
         > img {
           position: absolute;
           left: 50%;
@@ -169,54 +130,49 @@ export default {
         }
       }
     }
-    .img{
-      width: 450px;
+    .img {
+      width: 880px;
       margin: 20px auto;
       position: relative;
-      min-height: 260px;
-      max-height: 400px;
+      min-height: 460px;
+      max-height: 500px;
       overflow: hidden;
-      >img{
+      > img {
         width: 100%;
         position: absolute;
         top: 50%;
         left: 50%;
-        transform: translate(-50%,-50%);
+        transform: translate(-50%, -50%);
       }
     }
-    .desc{
-      color: #fff;
+    .desc {
       text-align: justify;
-      >p{
+      width: @w;
+      margin: 0 auto;
+      > p {
         line-height: 1.8;
         font-size: 20px;
-        max-height: 20vh;
+        max-height: 10vh;
         overflow-y: auto;
         padding-right: 10px;
-        &:first-of-type{
-          font-size: 24px;
-          font-weight: bold;
-          margin: 20px auto;
-        }
       }
     }
 
-    .intro{
+    .intro {
       margin: 30px auto 0;
       background: rgba(65, 74, 199, 0.4);
       height: 66px;
       line-height: 66px;
       position: relative;
       display: inline-block;
-      padding: 0 74px;
-
+      padding: 0 90px;
       cursor: pointer;
-      >span{
+      > span {
         font-size: 24px;
         width: 100%;
         display: inline-block;
       }
-      >img{
+      > img {
         position: absolute;
         top: 50%;
         transform: translateY(-50%);
@@ -224,83 +180,15 @@ export default {
       }
     }
   }
-  .btn {
-    width: calc(8% - 12px);
-    height: calc(10% - 24px);
-    position: absolute;
-    top: 50%;
-    transform: translateY(-50%);
-    left: 0;
-    .btncon {
-      width: 100%;
-      height: 100%;
-      background: linear-gradient(
-        180deg,
-        rgba(165, 177, 236, 0.7) 0%,
-        rgba(134, 145, 199, 0.7) 100%
-      );
-      clip-path: polygon(0 0, 100% 50%, 0 100%);
-      cursor: pointer;
-      .inside {
-        background: rgba(255, 255, 255, 1);
-        position: absolute;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-        clip-path: polygon(
-          0 0,
-          100% 0,
-          100% 100%,
-          0 100%,
-          0 86%,
-          72% 50%,
-          0 14%
-        );
-      }
-    }
-    &::before {
-      position: absolute;
-      width: 2px;
-      height: 100%;
-      left: 0;
-      content: "";
-      right: 0;
-      display: inline-block;
-      top: 0;
-      box-shadow: -3px 0 2px rgba(173, 165, 243, 0.6);
-    }
-  }
-  .shadow {
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    width: 2px;
-    height: 45%;
-    box-shadow: -3px 0 2px rgba(173, 165, 243, 0.6);
-    &::before {
-      position: absolute;
-      width: 2px;
-      height: 100%;
-      right: 0;
-      content: "";
-      display: inline-block;
-      bottom: 122%;
-      box-shadow: -3px 0 2px rgba(173, 165, 243, 0.6);
-    }
-  }
 
-  .shorts{
-    &::before {
-      position: absolute;
-      width: 2px;
-      height: 16%;
-      right: 0;
-      content: "";
-      display: inline-block;
-      bottom: 122%;
-      box-shadow: -3px 0 2px rgba(173, 165, 243, 0.6);
-    }
+  .close {
+    position: absolute;
+    top: 45px;
+    right: 50px;
+    width: 54px;
+    height: 54px;
+    cursor: pointer;
+    z-index: 9999999;
   }
 }
 </style>

+ 3 - 22
web/src/views/digital/index.vue

@@ -7,14 +7,7 @@
       frameborder="0"
     ></iframe>
     <returnhome/>
-    <loading
-      class="loading"
-      @loadcomplete="isshowaside=true,loadcomplete=true"
-      :style="{ width: `calc(100% - ${isshowaside?xiangsu:'0px'})` }"
-      :currentItem="currentItem"
-      v-if="!loadcomplete"
-    />
-    <vaside @switch="switchtab" @close="()=>{isshowaside=!isshowaside,currentItem={}}" :currentItem="currentItem" :style="{ right: `${isshowaside ? 0 : '-'+xiangsu}` }" />
+    <vaside @switch="switchtab" v-if="isshowaside" @close="()=>{isshowaside=!isshowaside,currentItem={}}" :currentItem="currentItem" />
   </div>
 </template>
 
@@ -196,19 +189,7 @@ export default {
                 !error
               }
 
-            if(this.currentItem.idstar == 'star1'){
-              this.isshowaside=true
-              this.loadcomplete=true
-              return
-            }
-
-            this.loadcomplete = true
-            this.isshowaside = false
-
-            setTimeout(() => {
-              this.loadcomplete = false
-            });
-            // console.log(data.data);
+            this.isshowaside=true
           }
 
           if (data.data.type == "enterStar") {
@@ -282,6 +263,6 @@ export default {
       }
     }
   }
- 
 }
+
 </style>

+ 31 - 18
web/src/views/expert/carousel/bigpic_demo.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="lunbo " id="jssor_1">
-    <ul class="jssor-wrapper" data-u="slides" >
+    <ul ref="jssor" class="jssor-wrapper" data-u="slides" @mousedown="mousedown" @mousemove="mousemove">
       <li
         class="jssor-slide"
         @click.stop="handleItem(item)"
@@ -8,11 +8,10 @@
         v-for="(item, i) in piclist"
         :key="i"
       >
-        <!-- class="animate__animated animate__flip" -->
         <div  data-u="image">
 
         <div class="imgdefault">
-          <!-- 'http://192.168.0.245:8004/'+ -->
+          <!-- 'http://192.168.0.109:8004/'+ -->
 
           <img :class="{ hideImg: noImg }" :src="item.thumb" alt="" />
           <p>
@@ -32,8 +31,8 @@
           </h2>
 
           <!-- 'http://192.168.0.245:8004/'+ -->
-          <div v-if="showVideo && item.video" class="iivideo" :class="{ iimask: showBofang, iinourl: item.url }">
-            <img class="bofang" @click.stop="openVideo(item)" :src="require(`@/assets/images/expert/bofang.png`)" v-if="showBofang" />
+          <div v-if="showVideo && item.video"  @click.stop="openVideo(item)" class="iivideo" :class="{ iimask: showBofang, iinourl: item.url }">
+            <img class="bofang" :src="require(`@/assets/images/expert/bofang.png`)" v-if="showBofang" />
             <img class="poster" :src="item.thumb" v-if="showBofang" />
           </div>
 
@@ -44,19 +43,12 @@
           </div>
         </div>
         </div>
-        <!-- <img class="active" v-if="active===item" :src="require(`@/assets/images/expert/big/${active+1}.png`)" alt=""> -->
       </li>
     </ul>
   </div>
 </template>
 
 <script>
-// import { directive } from "vue-awesome-swiper";
-// // import style (<= Swiper 5.x)
-// import "swiper/css/swiper.css";
-
-
-let SIZE = 6
 
  var jssor_1_options = {
     $AutoPlay: 0,
@@ -84,11 +76,26 @@ export default {
       noImg: false,
       TO: null,
       TT: null,
-      TTT: null
+      TTT: null,
+      isStopProp: true
     };
   },
 
   methods: {
+    mousedown(e){
+      if (this.isStopProp) {
+        e.stopPropagation()
+      }
+    },
+    mousemove(e){
+       if (this.isStopProp) {
+        e.stopPropagation()
+      }
+    },
+    listenFn(){
+      window.jssor_1_slider.$AutoPlay(1)
+      this.isStopProp = false
+    },
     open(item) {
       let windowObjectReference = window.open();
       let temp = this.changetohttp(item.url);
@@ -111,7 +118,9 @@ export default {
 
       if (item == this.active) {
         this.active = "";
-        window.jssor_1_slider.$AutoPlay(1)
+        if (!this.isStopProp) {
+          window.jssor_1_slider.$AutoPlay(1)
+        }
 
         this.noImg = false;
         this.TO && clearTimeout(this.TO);
@@ -121,8 +130,9 @@ export default {
 
       } else {
         this.active = item;
-        window.jssor_1_slider.$AutoPlay(0)
-        
+        if (!this.isStopProp) {
+          window.jssor_1_slider.$AutoPlay(0)
+        }        
         this.TT && clearTimeout(this.TT);
         this.TT = setTimeout(() => {
           this.noImg = true;
@@ -140,11 +150,14 @@ export default {
 
   mounted() {
     window.jssor_1_slider = new $JssorSlider$("jssor_1", jssor_1_options);
+    window.jssor_1_slider.$AutoPlay(0)
+    this.$bus.$on('startLoop',this.listenFn)
   },
 
-  computed: {
-  
+  destroyed() {
+    this.$bus.$off("startLoop", this.listenFn);
   },
+  
 };
 </script>
 

+ 38 - 6
web/src/views/expert/carousel/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="carouselin">
-    <smallpic class="carouseList" v-if="piclist.length>0" @current="data=>{$emit('current',data)}"  :list="piclist"  />
+    <!-- <div class="cmask" v-if="showMask" @click.stop></div> -->
+    <smallpic :class="{carouseList:isstart && !keykkk}" v-if="piclist.length>0" @current="data=>{$emit('current',data)}"  :list="piclist"  />
     <!-- <bigpic :x="translate.x*1.3"/> -->
     <!-- <star :x="translate.x * 1.3" /> -->
   </div>
@@ -20,10 +21,11 @@ import smallpic from "./bigpic_demo.vue";
 // const wh = { width: window.innerWidth, height: window.innerHeight };
 
 export default {
-  props:['piclist'],
+  props:['piclist','keykkk'],
   components: { smallpic },
   data() {
     return {
+      isstart:false,
       loading: true,
       translate: {
         x: 0,
@@ -34,9 +36,11 @@ export default {
       deltaX: 0,
       isStop: true,
       TO:null,
+      TT:null,
       smooth:false,
       isEnd:false,
-      lockEnd:false
+      lockEnd:false,
+      showMask:true
     };
   },
 
@@ -109,6 +113,23 @@ export default {
  
   // },
   mounted() {
+
+    this.$nextTick(()=>{
+      this.isstart = true
+      this.TT && clearTimeout(this.TT)
+
+      console.log(this.keykkk);
+      if (this.keykkk) {
+        
+        this.$bus.$emit('startLoop')
+      }
+      else{
+        this.TT = setTimeout(() => {
+          this.$bus.$emit('startLoop')
+        }, 20.0 * 1000);
+      }
+    })
+
   //   this.$nextTick(() => {
   //     const at = new AnyTouch(this.$el);
 
@@ -142,6 +163,7 @@ export default {
   //   });
   },
   beforeDestroy() {
+      this.TT && clearTimeout(this.TT)
   },
 };
 </script>
@@ -152,17 +174,27 @@ export default {
   height: 100%;
   position: relative;
   .carouseList{
-    animation: transL 10s 1 linear;
+    animation: transL 20s 1 linear;
+  }
+  .cmask{
+    position: absolute;
+    width: 100%;
+    left: 0;
+    top: 0;
+    height: 100%;
+    // background: rgba(0, 0, 0, 0.5);
+    opacity: 0;
+    z-index: 999;
   }
 }
 
 
 @keyframes transL {
   from { 
-    left: 100%;
+    transform: translateX(100%);
   }
   to { 
-    left: 0;
+    transform: translateX(0);
   }
 }
 </style>

+ 2 - 3
web/src/views/expert/index.vue

@@ -49,7 +49,7 @@
       </div>
 
       <div class="carousel" v-if="list.length > 0">
-        <carousel @current="handleCurrent" :key="key" :piclist="list" />
+        <carousel @current="handleCurrent" :keykkk="key" :piclist="list" />
       </div>
     </div>
     <returnhome />
@@ -149,7 +149,6 @@ export default {
       }
 
       if (item.id != "zongcheng") {
-        this.isShowLi = false;
         if (item.parentid != "zongcheng") {
           this.subtitle = ''
         }
@@ -171,7 +170,7 @@ export default {
         {
           pageNum: this.pageNum,
           pageSize: 1000,
-          type: this.key ? null : this.nowActive.id || "loyal_2",
+          type: this.key ? null : (this.nowActive.id == 'zongcheng' ? (this.subtitle=='英模代表专家'?'loyal_2':'loyal_1') : this.nowActive.id) || "loyal_2" || '',
           searchKey: this.key,
         },
         (data) => {

+ 3 - 3
web/src/views/index/data.js

@@ -2,7 +2,7 @@ let data = [
   {
     id: "zongyiyuan",
     name: "解放军总医院数字史馆",
-    en: "Chinese PLA General Hospital Museum",
+    en: "PLA Genaral Hospital's Digital Museum",
     sceneCode: "1149_2",
     list: [
       {
@@ -76,13 +76,13 @@ let data = [
   {
     id: "expert",
     name: "专家风采",
-    en: "Expert Demeanor",
+    en: "Expert's Profile",
     sceneCode: "1149_2",
   },
   {
     id: "digital",
     name: "数字沙盘",
-    en: "Digital Simulative",
+    en: "Digital Guide Map",
     
   },
 ];

+ 2 - 0
web/src/views/index/index.vue

@@ -121,6 +121,7 @@ export default {
       this.lockUpdate = true
       this.isshowall = true
       this.isshow = true
+      this.$bus.$emit("hovershowType", 'tips');
       setTimeout(() => {
         this.isshow = false
       }, 4000);
@@ -143,6 +144,7 @@ export default {
                 this.canjump = false
                 this.lockUpdate = true
               // this.bfshipin()
+                this.$bus.$emit("hovershowType", 'tips');
                   this.isshow = true
                   setTimeout(() => {
                     this.isshow = false

+ 2 - 5
web/src/views/scene/gui/menu.vue

@@ -145,13 +145,13 @@
               />
             </div>
 
-            <div rel="music">
+            <div rel="music" v-if="isMainScene">
               <img title="音频"
               @click="switchBGM"
               class="tttttt icon" :src="require(`@/assets/images/icon/bigscene/music${music?'off':'on'}.png`)" />
             </div>
 
-             <div rel="like" v-if="isMainScene">
+             <div rel="like">
               <div title="点赞" class="likekkk">
                 <img 
                  @click.stop="dianzan"
@@ -401,7 +401,6 @@ export default {
       });
     },
     handleguide(e, outclk){
-      console.log(e,outclk,111111)
       if(outclk){
         if(!this.isGuide){
           $('#pullTab').click()
@@ -460,8 +459,6 @@ export default {
            this.$bus.$emit("resetxlzmode")
         }
       }
-
-      // console.log(window.ISMUTED);
     },
   },
 };

+ 15 - 2
web/src/views/scene/scene.vue

@@ -123,7 +123,6 @@ export default {
         this.loading=false
         this.getHotSpotList();
 
-        
 
         this.isMainScene = window.number == '1149_2'
         
@@ -208,6 +207,19 @@ export default {
         this.showType = data
     })
 
+    this.$bus.$on('moveCan',()=>{
+      if (this.fisrstIn && this.isMainScene) {
+        this.fisrstIn = false
+        let rotate = player.cameraControls.controls.panorama.rotationAcc
+        rotate.x = 0.3
+        setTimeout(() => {
+          rotate.x = 0
+        }, 2000);
+      }
+     
+    })
+
+
   },
   methods:{
     handleShow(data){
@@ -270,7 +282,8 @@ export default {
         cp:'',
         visit:0,
         isShowEXH:false,
-        isMainScene: false
+        isMainScene: false,
+        fisrstIn:true
       }
   }
 }