浏览代码

管理中心-创建作品-素材选择弹窗:上传素材功能适应文件夹功能

任一存 2 年之前
父节点
当前提交
fa75546fb8
共有 1 个文件被更改,包括 66 次插入64 次删除
  1. 66 64
      packages/qjkankan-editor/src/components/materialSelectorForManageCenter.vue

+ 66 - 64
packages/qjkankan-editor/src/components/materialSelectorForManageCenter.vue

@@ -67,65 +67,67 @@
         :infinite-scroll-disabled="!hasMorePanoData || isRequestingMorePanoData"
       >
         <!-- vuex中的上传中数据 -->
-        <div class="table-body-row" v-for="(item, i) in uploadStatusListPano" :key="item.uid" @click="onClickRow">
-          <!-- 如果已经上传成功 -->
-          <template v-if="item.status === 'SUCCESS'">
-            <span class="table-data">
-              <RadioOrCheckbox class="checkbox" :isLightTheme="true" :isMultiSelection="isMultiSelection"
-                :isCheckedInitial="select.some(i => i[primaryKey] === item.successInfo[primaryKey])"
-                @change="v => selectItem(item.successInfo, v)" />
-            </span>
-            <span class="table-data" v-for="(tableItemStructure, idx) in tableHeadersForPano" :key="idx">
-              <div v-if="tableItemStructure.type == 'image'" class="list-img">
-                <img
-                  :src="item.successInfo[tableItemStructure.key] + (Number(item.fileSize) > 512 ? $imgsuffix : ``)"
-                  alt="">
-              </div>
-              <span v-else class="ellipsis"
-                v-title="tableItemStructure.key === 'name' ? item.successInfo[tableItemStructure.key] : ''">{{
-                    item.successInfo[tableItemStructure.key]
-                }}</span>
-            </span>
-          </template>
-          <!-- 如果还在上传或切图处理中 -->
-          <template v-else-if="item.status === 'LOADING'">
-            <span class="table-data">
-              <div class="checkbox">
-                <span class="for-outer-circle"></span>
-                <span class="for-inner-circle disabled"></span>
-              </div>
-            </span>
-            <span class="table-data" v-for="(tableItemStructure, idx) in tableHeadersForPano" :key="idx">
-              <div v-if="tableItemStructure.type == 'image'" class="list-img">
-                <img src="@/assets/images/icons/upload-file-type-icon-image@2x.png" alt="">
-              </div>
-              <span v-if="tableItemStructure.key !== 'name' && tableItemStructure.key !== 'fileSize'"></span>
-              <span v-if="tableItemStructure.key === 'fileSize' && item.ifKnowProgress">{{$i18n.t(`gather.upload_material`)}} {{ Math.round(item.progress
-                  * 100)
-              }}%</span>
-              <span v-if="tableItemStructure.key === 'fileSize' && !item.ifKnowProgress">{{ item.statusText }}</span>
-              <span v-if="tableItemStructure.key === 'name'" class="ellipsis"
-                v-title="tableItemStructure.key === 'name' ? item.title : ''">{{ item.title }}</span>
-            </span>
-          </template>
-          <!-- 如果上传失败了 -->
-          <template v-else-if="item.status === 'FAIL'">
-            <span class="table-data">
-              <div class="checkbox">
-                <span class="for-outer-circle"></span>
-                <span class="for-inner-circle disabled"></span>
-              </div>
-            </span>
-            <span class="table-data" v-for="(tableItemStructure, idx) in tableHeadersForPano" :key="idx">
-              <div v-if="tableItemStructure.type == 'image'" class="list-img">
-                <img src="@/assets/images/icons/upload-file-type-icon-image@2x.png" alt="">
-              </div>
-              <span v-if="tableItemStructure.key !== 'name' && tableItemStructure.key !== 'fileSize'"></span>
-              <span v-if="tableItemStructure.key === 'fileSize'">{{ $i18n.t(`tips_code.FAILURE_3025`) }}</span>
-              <span v-if="tableItemStructure.key === 'name'" class="ellipsis"
-                v-title="tableItemStructure.key === 'name' ? item.title : ''">{{ item.title }}</span>
-            </span>
-          </template>
+        <div v-for="(item, i) in uploadStatusListPano" :key="item.uid">
+          <div class="table-body-row" v-if="item.parentFolderId === currentFolderId"  @click="onClickRow">
+            <!-- 如果已经上传成功 -->
+            <template v-if="item.status === 'SUCCESS'">
+              <span class="table-data">
+                <RadioOrCheckbox class="checkbox" :isLightTheme="true" :isMultiSelection="isMultiSelection"
+                  :isCheckedInitial="select.some(i => i[primaryKey] === item.successInfo[primaryKey])"
+                  @change="v => selectItem(item.successInfo, v)" />
+              </span>
+              <span class="table-data" v-for="(tableItemStructure, idx) in tableHeadersForPano" :key="idx">
+                <div v-if="tableItemStructure.type == 'image'" class="list-img">
+                  <img
+                    :src="item.successInfo[tableItemStructure.key] + (Number(item.fileSize) > 512 ? $imgsuffix : ``)"
+                    alt="">
+                </div>
+                <span v-else class="ellipsis"
+                  v-title="tableItemStructure.key === 'name' ? item.successInfo[tableItemStructure.key] : ''">{{
+                      item.successInfo[tableItemStructure.key]
+                  }}</span>
+              </span>
+            </template>
+            <!-- 如果还在上传或切图处理中 -->
+            <template v-else-if="item.status === 'LOADING'">
+              <span class="table-data">
+                <div class="checkbox">
+                  <span class="for-outer-circle"></span>
+                  <span class="for-inner-circle disabled"></span>
+                </div>
+              </span>
+              <span class="table-data" v-for="(tableItemStructure, idx) in tableHeadersForPano" :key="idx">
+                <div v-if="tableItemStructure.type == 'image'" class="list-img">
+                  <img src="@/assets/images/icons/upload-file-type-icon-image@2x.png" alt="">
+                </div>
+                <span v-if="tableItemStructure.key !== 'name' && tableItemStructure.key !== 'fileSize'"></span>
+                <span v-if="tableItemStructure.key === 'fileSize' && item.ifKnowProgress">{{$i18n.t(`gather.upload_material`)}} {{ Math.round(item.progress
+                    * 100)
+                }}%</span>
+                <span v-if="tableItemStructure.key === 'fileSize' && !item.ifKnowProgress">{{ item.statusText }}</span>
+                <span v-if="tableItemStructure.key === 'name'" class="ellipsis"
+                  v-title="tableItemStructure.key === 'name' ? item.title : ''">{{ item.title }}</span>
+              </span>
+            </template>
+            <!-- 如果上传失败了 -->
+            <template v-else-if="item.status === 'FAIL'">
+              <span class="table-data">
+                <div class="checkbox">
+                  <span class="for-outer-circle"></span>
+                  <span class="for-inner-circle disabled"></span>
+                </div>
+              </span>
+              <span class="table-data" v-for="(tableItemStructure, idx) in tableHeadersForPano" :key="idx">
+                <div v-if="tableItemStructure.type == 'image'" class="list-img">
+                  <img src="@/assets/images/icons/upload-file-type-icon-image@2x.png" alt="">
+                </div>
+                <span v-if="tableItemStructure.key !== 'name' && tableItemStructure.key !== 'fileSize'"></span>
+                <span v-if="tableItemStructure.key === 'fileSize'">{{ $i18n.t(`tips_code.FAILURE_3025`) }}</span>
+                <span v-if="tableItemStructure.key === 'name'" class="ellipsis"
+                  v-title="tableItemStructure.key === 'name' ? item.title : ''">{{ item.title }}</span>
+              </span>
+            </template>
+          </div>
         </div>
         <!-- 本组件内的列表数据 -->
         <div
@@ -643,15 +645,15 @@ export default {
           uid: `u_${this.$randomWord(true, 8, 8)}`,
           abortHandler: null,
           backendId: '',
+          parentFolderId: this.currentFolderId,
         };
 
         itemInUploadList.abortHandler = uploadMaterial(
           {
-            file: eachFile
-          },
-          {
+            dirId: this.currentFolderId,
+            file: eachFile,
+            tempId: itemInUploadList.uid,
             type: 'pano',
-            uid: itemInUploadList.uid,
           },
           (response) => { // 上传成功
             if (response.code !== 0) {
@@ -898,7 +900,7 @@ export default {
     display: inline-block;
     width: 100%;
 
-    >.table-body-row {
+    .table-body-row {
       height: 50px;
       border-bottom: 1px solid #EBEDF0;
       display: flex;