浏览代码

编辑器-素材选择弹窗-修复bug

任一存 2 年之前
父节点
当前提交
214930e560

+ 33 - 18
packages/qjkankan-editor/src/components/materialSelectorForEditor.vue

@@ -42,7 +42,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersForImage" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="imageListLocalLength !== 0 || hasMoreImageData"
+        v-show="imageListLocalLength !== 0 || hasMoreImageData"
         class="table-body"
         v-infinite-scroll="requestMoreImageData"
         :infinite-scroll-disabled="!hasMoreImageData || isRequestingMoreImageData"
@@ -67,7 +67,7 @@
             </span>
           </template>
           <!-- 如果还在上传中 -->
-          <template v-else-if="item.status = 'LOADING'">
+          <template v-else-if="item.status === 'LOADING'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -84,7 +84,7 @@
             </span>
           </template>
           <!-- 如果上传失败了 -->
-          <template v-else-if="item.status = 'FAIL'">
+          <template v-else-if="item.status === 'FAIL'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -120,7 +120,10 @@
         </div>
       </div>
       <!-- 无数据时的提示 -->
-      <div v-else class="no-data">
+      <div
+        v-show="!(imageListLocalLength !== 0 || hasMoreImageData)"
+        class="no-data"
+      >
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>
@@ -142,7 +145,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersForPano" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="panoListLocalLength !== 0 || hasMorePanoData"
+        v-show="panoListLocalLength !== 0 || hasMorePanoData"
         class="table-body"
         v-infinite-scroll="requestMorePanoData"
         :infinite-scroll-disabled="!hasMorePanoData || isRequestingMorePanoData"
@@ -167,7 +170,7 @@
             </span>
           </template>
           <!-- 如果还在上传或切图处理中 -->
-          <template v-else-if="item.status = 'LOADING'">
+          <template v-else-if="item.status === 'LOADING'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -185,7 +188,7 @@
             </span>
           </template>
           <!-- 如果上传失败了 -->
-          <template v-else-if="item.status = 'FAIL'">
+          <template v-else-if="item.status === 'FAIL'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -221,7 +224,10 @@
         </div>
       </div>
       <!-- 无数据时的提示 -->
-      <div v-else class="no-data">
+      <div
+        v-show="!(panoListLocalLength !== 0 || hasMorePanoData)"
+        class="no-data"
+      >
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>
@@ -243,7 +249,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersForAudio" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="audioListLocalLength !== 0 || hasMoreAudioData"
+        v-show="audioListLocalLength !== 0 || hasMoreAudioData"
         class="table-body"
         v-infinite-scroll="requestMoreAudioData"
         :infinite-scroll-disabled="!hasMoreAudioData || isRequestingMoreAudioData"
@@ -279,7 +285,7 @@
             </span>
           </template>
           <!-- 如果还在上传中 -->
-          <template v-else-if="item.status = 'LOADING'">
+          <template v-else-if="item.status === 'LOADING'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -300,7 +306,7 @@
             </span>
           </template>
           <!-- 如果上传失败了 -->
-          <template v-else-if="item.status = 'FAIL'">
+          <template v-else-if="item.status === 'FAIL'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -351,7 +357,10 @@
         </div>
       </div>
       <!-- 无数据时的提示 -->
-      <div v-else class="no-data">
+      <div
+        v-show="!(audioListLocalLength !== 0 || hasMoreAudioData)"
+        class="no-data"
+      >
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>
@@ -373,7 +382,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersForVideo" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="videoListLocalLength !== 0 || hasMoreVideoData"
+        v-show="videoListLocalLength !== 0 || hasMoreVideoData"
         class="table-body"
         v-infinite-scroll="requestMoreVideoData"
         :infinite-scroll-disabled="!hasMoreVideoData || isRequestingMoreVideoData"
@@ -401,7 +410,7 @@
             </span>
           </template>
           <!-- 如果还在上传中 -->
-          <template v-else-if="item.status = 'LOADING'">
+          <template v-else-if="item.status === 'LOADING'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -422,7 +431,7 @@
             </span>
           </template>
           <!-- 如果上传失败了 -->
-          <template v-else-if="item.status = 'FAIL'">
+          <template v-else-if="item.status === 'FAIL'">
             <span class="table-data">
               <div class="checkbox">
                 <span class="for-outer-circle"></span>
@@ -463,7 +472,10 @@
       </div>
 
       <!-- 无数据时的提示 -->
-      <div v-else class="no-data">
+      <div
+        v-show="!(videoListLocalLength !== 0 || hasMoreVideoData)"
+        class="no-data"
+      >
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>
@@ -485,7 +497,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersFor3D" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="scene3DList.length !== 0 || hasMore3DData"
+        v-show="scene3DList.length !== 0 || hasMore3DData"
         class="table-body"
         v-infinite-scroll="requestMore3DData"
         :infinite-scroll-disabled="!hasMore3DData || isRequestingMore3DData"
@@ -508,7 +520,10 @@
         </div>
       </div>
       <!-- 无数据时的提示 -->
-      <div v-else class="no-data">
+      <div
+        v-show="(scene3DList.length !== 0 || hasMore3DData)"
+        class="no-data"
+      >
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>

+ 18 - 35
packages/qjkankan-editor/src/components/materialSelectorFromWorkForEditor.vue

@@ -26,7 +26,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersForPano" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="panoList.length !== 0"
+        v-show="panoList.length !== 0"
         class="table-body"
       >
         <div class="table-body-row" v-for="(item,i) in panoList" :key="i">
@@ -52,7 +52,7 @@
         </div>
       </div>
       <!-- 无数据时的提示 -->
-      <div v-if="panoList.length === 0" class="no-data">
+      <div v-show="!(panoList.length !== 0)" class="no-data">
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>
@@ -70,7 +70,7 @@
         <span class="table-head" v-for="(item,i) in tableHeadersFor3D" :key="i">{{ item.name && $i18n.t(`zh_key.${item.name}`) }}</span>
       </div>
       <div
-        v-if="scene3DList.length !== 0"
+        v-show="scene3DList.length !== 0"
         class="table-body"
       >
         <div class="table-body-row" v-for="(item,i) in scene3DList" :key="i">
@@ -96,7 +96,7 @@
         </div>
       </div>
       <!-- 无数据时的提示 -->
-      <div v-if="scene3DList.length === 0" class="no-data">
+      <div v-show="!(scene3DList.length !== 0)" class="no-data">
         <div v-if="latestUsedSearchKey">
           <img :src="require('@/assets/images/default/empty_04_search.png')" alt="">
           <span>{{$i18n.t(`gather.no_serch_result`)}}</span>
@@ -184,27 +184,23 @@ export default {
   methods: {
     selectItem(item, e) {
       item.materialType = this.currentMaterialType  // 三维场景数据没有type字段来表明自己是三维场景。所以统一加一个字段。
-      if (false) {
-        // 对于图片,大于600kb的,压缩?
-      } else {
-        if (this.isMultiSelection) {
-          if (e.target.checked) {
-            this.select.push(item)
-          } else {
-            const toDeleteIdx = this.select.findIndex((eachSelect) => {
-              return eachSelect.id === item.id
-            })
-            if (toDeleteIdx >= 0) {
-              this.select.splice(toDeleteIdx, 1)
-            }
-          }
+      if (this.isMultiSelection) {
+        if (e.target.checked) {
+          this.select.push(item)
         } else {
-          if (e.target.checked) {
-            this.select = [item]
-          } else {
-            this.select = []
+          const toDeleteIdx = this.select.findIndex((eachSelect) => {
+            return eachSelect.id === item.id
+          })
+          if (toDeleteIdx >= 0) {
+            this.select.splice(toDeleteIdx, 1)
           }
         }
+      } else {
+        if (e.target.checked) {
+          this.select = [item]
+        } else {
+          this.select = []
+        }
       }
     },
     onClickComfirm: debounce(function() {
@@ -485,19 +481,6 @@ export default {
   display: flex;
   justify-content: flex-end;
   margin-top: 40px;
-  .upload-btn {
-    display: flex;
-    align-items: center;
-    > span {
-      display: inline-block;
-      margin-right: 4px;
-    }
-    i.tool-tip-for-editor {
-      font-size: 12px;
-      transform: scale(0.923) translateY(1px);
-      cursor: default;
-    }
-  }
   > div {
     .deepcancel {
       margin-right: 16px;