Browse Source

Merge branch 'dev' of http://192.168.0.115:3000/chenzhiguang/qjkankan_v1.1.1 into dev

rindy 5 months ago
parent
commit
e66f4160c3
1 changed files with 39 additions and 118 deletions
  1. 39 118
      packages/qjkankan-editor/src/views/material/works/cam.vue

+ 39 - 118
packages/qjkankan-editor/src/views/material/works/cam.vue

@@ -1,22 +1,11 @@
 <template>
-  <div
-    class="scroll-container"
-    ref="w-list-ref"
-    @scroll.self="onWorkListScroll"
-  >
+  <div class="scroll-container" ref="w-list-ref" @scroll.self="onWorkListScroll">
     <div class="back-top" @click="onClickBackTop" v-show="isShowBackTopBtn">
       <i class="iconfont icon-top"></i>
     </div>
     <div class="mask" v-show="isShowMask"></div>
     <!-- 断网时,输入关键字触发网络请求后,骨架图的隐藏会触发v-infinite-scroll,原因未知。进而导致循环触发,因此list为空时要禁用v-infinite-scroll -->
-    <ul
-      class="w-list"
-      v-if="!(list.length === 0 && !hasMoreData)"
-      v-infinite-scroll="requestMoreData"
-      :infinite-scroll-disabled="
-        !hasMoreData || isRequestingMoreData || list.length === 0
-      "
-    >
+    <ul class="w-list" v-if="!(list.length === 0 && !hasMoreData)" v-infinite-scroll="requestMoreData" :infinite-scroll-disabled="!hasMoreData || isRequestingMoreData || list.length === 0">
       <!-- <li class="add-work" @click="add">
         <div class="wrapper">
           <div class="add-con">
@@ -35,129 +24,62 @@
           </div>
         </li>
       </template>
-      <li
-        v-for="(item, i) in list"
-        :key="i"
-        :class="{ 'has-more-data': hasMoreData }"
-      >
+      <li v-for="(item, i) in list" :key="i" :class="{ 'has-more-data': hasMoreData }">
         <div class="wrapper" :class="{ disabled: item.calcStatus === 0 }">
           <div class="li-hover">
-            <span class="lipreview" @click="handlePreview(item)">{{
-              preview
-            }}</span>
+            <span class="lipreview" @click="handlePreview(item)">{{ preview }}</span>
             <ul class="oper">
-              <li class="comfirmhover" @click="edit(item)">
-                <i class="iconfont icon-works_editor"></i>{{ edittips }}
-              </li>
-              <li class="comfirmhover" @click="openShare(item)">
-                <i class="iconfont icon-works_share"></i>{{ share }}
-              </li>
-              <li class="cancelhover" @click="del(item, i)">
-                <i class="iconfont icon-works_delete"></i>{{ deltips }}
-              </li>
+              <li class="comfirmhover" @click="edit(item)"><i class="iconfont icon-works_editor"></i>{{ edittips }}</li>
+              <li class="comfirmhover" @click="openShare(item)"><i class="iconfont icon-works_share"></i>{{ share }}</li>
+              <li class="cancelhover" @click="del(item, i)"><i class="iconfont icon-works_delete"></i>{{ deltips }}</li>
             </ul>
           </div>
           <div class="img" @click="handlePreview(item)">
             <img class="real" :src="item.icon || $thumb" alt="" />
-            <span class="snCode" v-if="item.snCode">
-              SN: {{ item.snCode }}</span
-            >
+            <span class="snCode" v-if="item.snCode"> SN: {{ item.snCode }}</span>
             <div class="calc-mask" v-if="item.calcStatus === 0">
               <span>{{ calcing }}</span>
-              <svg
-                xmlns="http://www.w3.org/2000/svg"
-                width="1em"
-                height="1em"
-                viewBox="0 0 24 24"
-              >
+              <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
                 <circle cx="4" cy="12" r="3" fill="currentColor">
-                  <animate
-                    id="svgSpinners3DotsFade0"
-                    fill="freeze"
-                    attributeName="opacity"
-                    begin="0;svgSpinners3DotsFade1.end-0.25s"
-                    dur="0.75s"
-                    values="1;0.2"
-                  />
+                  <animate id="svgSpinners3DotsFade0" fill="freeze" attributeName="opacity" begin="0;svgSpinners3DotsFade1.end-0.25s" dur="0.75s" values="1;0.2" />
                 </circle>
                 <circle cx="12" cy="12" r="3" fill="currentColor" opacity="0.4">
-                  <animate
-                    fill="freeze"
-                    attributeName="opacity"
-                    begin="svgSpinners3DotsFade0.begin+0.15s"
-                    dur="0.75s"
-                    values="1;0.2"
-                  />
+                  <animate fill="freeze" attributeName="opacity" begin="svgSpinners3DotsFade0.begin+0.15s" dur="0.75s" values="1;0.2" />
                 </circle>
                 <circle cx="20" cy="12" r="3" fill="currentColor" opacity="0.3">
-                  <animate
-                    id="svgSpinners3DotsFade1"
-                    fill="freeze"
-                    attributeName="opacity"
-                    begin="svgSpinners3DotsFade0.begin+0.3s"
-                    dur="0.75s"
-                    values="1;0.2"
-                  />
+                  <animate id="svgSpinners3DotsFade1" fill="freeze" attributeName="opacity" begin="svgSpinners3DotsFade0.begin+0.3s" dur="0.75s" values="1;0.2" />
                 </circle>
               </svg>
             </div>
           </div>
           <div class="li-info">
             <div>
-              <span class="shenglve tttttt" :title="item.name || no_title">{{
-                item.name || no_title
-              }}</span>
+              <span class="shenglve tttttt" :title="item.name || no_title">{{ item.name || no_title }}</span>
             </div>
             <div>
               <span>{{ item.createTime.split(" ")[0] }}</span>
-              <div :title="item.visit">
-                <i class="iconfont icon-works_look"></i
-                >{{ item.visit > 10000 ? "1w+" : item.visit }}
-              </div>
+              <div :title="item.visit"><i class="iconfont icon-works_look"></i>{{ item.visit > 10000 ? "1w+" : item.visit }}</div>
             </div>
           </div>
         </div>
       </li>
-      <div
-        class="work-list-loading-wrapper"
-        v-show="isRequestingMoreData && list.length !== 0"
-      >
-        <img
-          class="work-list-loading"
-          :src="require('@/assets/images/icons/work-list-loading.gif')"
-        />
+      <div class="work-list-loading-wrapper" v-show="isRequestingMoreData && list.length !== 0">
+        <img class="work-list-loading" :src="require('@/assets/images/icons/work-list-loading.gif')" />
       </div>
     </ul>
-    <div
-      class="nodata"
-      v-if="list.length == 0 && !hasMoreData && lastestUsedSearchKey"
-    >
+    <div class="nodata" v-if="list.length == 0 && !hasMoreData && lastestUsedSearchKey">
       <img :src="$noresult" alt="" />
       <span>{{ no_search_result }}~</span>
     </div>
-    <div
-      class="nodata"
-      v-if="list.length == 0 && !hasMoreData && !lastestUsedSearchKey"
-    >
+    <div class="nodata" v-if="list.length == 0 && !hasMoreData && !lastestUsedSearchKey">
       <img :src="config.empty" alt="" />
       <span>{{ no_works }}</span>
       <!-- <button @click="add" class="upload-btn-in-table">{{ create }}</button> -->
     </div>
 
-    <share
-      :show="showShare"
-      :item="shareItem"
-      @close="showShare = false"
-    ></share>
-
-    <preview
-      v-if="showItem"
-      :name="showItem.name"
-      :show="showPreview"
-      :ifr="`./show.html?id=${showItem.id}&lang=${$lang}`"
-      :dark="false"
-      @close="showPreview = false"
-    />
+    <share :show="showShare" :item="shareItem" @close="showShare = false"></share>
+
+    <preview v-if="showItem" :name="showItem.name" :show="showPreview" :ifr="`./show.html?id=${showItem.id}&lang=${$lang}`" :dark="false" @close="showPreview = false" />
 
     <div class="dialog" style="z-index: 1000" v-if="isShowMaterialSelector">
       <MaterialSelector
@@ -184,13 +106,7 @@ import { mapGetters } from "vuex";
 import { i18n } from "@/lang";
 import { $waiting } from "@/components/shared/loading";
 
-import {
-  addWorks,
-  getCamWorksList,
-  delWorks,
-  getPanoInfo,
-  saveWorks,
-} from "@/api";
+import { addWorks, getCamWorksList, delWorks, getPanoInfo, saveWorks ,getSceneList} from "@/api";
 
 export default {
   components: {
@@ -291,8 +207,9 @@ export default {
     },
 
     handlePreview(item) {
-      getPanoInfo(item.id, (data) => {
-        if (data.scenes.length <= 0) {
+      getSceneList(item.id, (res) => {
+        let data = res.data;
+        if (data.fdkkList.length <= 0 && data.panoList.length <= 0) {
           return this.$msg.warning(this.$i18n.t("material.works.no_link"));
         }
         this.showItem = {
@@ -301,6 +218,16 @@ export default {
         };
         this.showPreview = true;
       });
+      // getPanoInfo(item.id, (data) => {
+      //   if (data.scenes.length <= 0) {
+      //     return this.$msg.warning(this.$i18n.t("material.works.no_link"));
+      //   }
+      //   this.showItem = {
+      //     ...item,
+      //     ...data,
+      //   };
+      //   this.showPreview = true;
+      // });
     },
     add() {
       // 新建作品,弹窗让用户给作品选择素材。
@@ -401,18 +328,14 @@ export default {
                     },
                     ok2Text: this.$i18n.t("material.works.continue_edit"),
                     ok2: () => {
-                      window.open(
-                        `./edit.html?id=${this.newWorkId}&lang=${this.$lang}`
-                      );
+                      window.open(`./edit.html?id=${this.newWorkId}&lang=${this.$lang}`);
                       this.newWorkId = "";
                       this.$store.commit("SetInfo", {});
                     },
                   });
                 })
                 .catch(() => {
-                  this.$msg.message(
-                    this.$i18n.t("material.works.had_created_but_no_link")
-                  );
+                  this.$msg.message(this.$i18n.t("material.works.had_created_but_no_link"));
                   console.error("已成功新建作品,但刷新作品列表失败。");
                 });
             },
@@ -536,10 +459,8 @@ export default {
         }
 
         const nowTime = Date.now();
-        const assumeScrollTop =
-          totalScroll - ((nowTime - startTime) * totalScroll) / 500;
-        this.$refs["w-list-ref"].scrollTop =
-          assumeScrollTop > 0 ? assumeScrollTop : 0;
+        const assumeScrollTop = totalScroll - ((nowTime - startTime) * totalScroll) / 500;
+        this.$refs["w-list-ref"].scrollTop = assumeScrollTop > 0 ? assumeScrollTop : 0;
         requestAnimationFrame(fn);
       };
       requestAnimationFrame(fn);