dusenyao 3 years ago
parent
commit
35fdb50001

+ 24 - 3
src/common/show_file/index.vue

@@ -3,9 +3,10 @@
     class="show-file"
     :visible="dialogVisibleShowFile"
     width="900px"
-    title="查看文件"
     @close="dialogShowFileClose"
   >
+    <div slot="title">查看文件【{{ fileName }}】</div>
+
     <template v-if="fileType === 'pdf'">
       <pdf v-for="i in numPages" :key="i" :src="pdfSrc" :page="i" />
     </template>
@@ -33,6 +34,7 @@
 
 <script>
 import pdf from 'vue-pdf';
+import { GetFileStoreInfo } from '@/api/app';
 
 export default {
   components: { pdf },
@@ -41,7 +43,7 @@ export default {
       default: '',
       type: String
     },
-    fileUrl: {
+    fileId: {
       default: '',
       type: String
     }
@@ -50,7 +52,8 @@ export default {
     return {
       dialogVisibleShowFile: false,
       pdfSrc: '',
-      numPages: 1
+      numPages: 1,
+      fileUrl: ''
     };
   },
   computed: {
@@ -58,7 +61,21 @@ export default {
       return this.fileName.slice(this.fileName.lastIndexOf('.') + 1, this.fileName.length);
     }
   },
+  watch: {
+    fileId() {
+      this.getFileStoreInfo();
+    }
+  },
   methods: {
+    getFileStoreInfo() {
+      GetFileStoreInfo({ file_id: this.fileId }).then(({ file_url_https }) => {
+        this.fileUrl = file_url_https;
+        if (this.fileType === 'pdf') {
+          this.getNumPages(file_url_https);
+        }
+      });
+    },
+
     getNumPages(url) {
       let loadingTask = pdf.createLoadingTask(url);
       loadingTask.promise
@@ -93,6 +110,10 @@ export default {
 .show-file {
   @include dialog;
 
+  .el-dialog__header {
+    font-weight: bold;
+  }
+
   .image-parent {
     display: flex;
     justify-content: center;

+ 3 - 3
src/views/task_details/TaskTop.vue

@@ -13,7 +13,7 @@
         color="#fff"
         :title="item.file_name"
       >
-        <span @click="emitViewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
+        <span @click="emitViewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
       </el-tag>
     </div>
   </div>
@@ -35,8 +35,8 @@ export default {
     }
   },
   methods: {
-    emitViewFile(fileName, fileUrl) {
-      this.$emit('viewFile', fileName, fileUrl);
+    emitViewFile(fileName, fileId) {
+      this.$emit('viewFile', fileName, fileId);
     }
   }
 };

+ 6 - 6
src/views/task_details/student/index.vue

@@ -34,7 +34,7 @@
             color="#fff"
             :title="item.file_name"
           >
-            <span @click="viewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
+            <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
           </el-tag>
         </div>
       </div>
@@ -50,7 +50,7 @@
                 color="#fff"
                 :title="item.file_name"
               >
-                <span @click="viewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
+                <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
               </el-tag>
             </div>
           </div>
@@ -150,7 +150,7 @@
       @dialogClose="dialogClose"
     />
 
-    <show-file ref="file" :file-name="showCurFileName" :file-url="showCurFileUrl" />
+    <show-file ref="file" :file-name="showCurFileName" :file-id="showCurFileId" />
   </div>
 </template>
 
@@ -200,7 +200,7 @@ export default {
       student_score: 0,
       loading: false,
       showCurFileName: '',
-      showCurFileUrl: ''
+      showCurFileId: ''
     };
   },
   computed: {
@@ -287,9 +287,9 @@ export default {
       });
     },
 
-    viewFile(fileName, fileUrl) {
+    viewFile(fileName, fileId) {
       this.showCurFileName = fileName;
-      this.showCurFileUrl = fileUrl;
+      this.showCurFileId = fileId;
       this.$refs.file.showDialog();
     },
 

+ 6 - 6
src/views/task_details/teacher/index.vue

@@ -55,7 +55,7 @@
           <div class="title">文档列表</div>
           <div>
             <el-tag v-for="item in accessory_list" :key="item.file_id" :title="item.file_name">
-              <span @click="viewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
+              <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
             </el-tag>
           </div>
           <div class="title">作业列表</div>
@@ -66,7 +66,7 @@
               color="#fff"
               :title="item.file_name"
             >
-              <span @click="viewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
+              <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
             </el-tag>
           </div>
           <div class="title">学生留言</div>
@@ -104,7 +104,7 @@
       @dialogClose="dialogClose"
     />
 
-    <show-file ref="file" :file-name="showCurFileName" :file-url="showCurFileUrl" />
+    <show-file ref="file" :file-name="showCurFileName" :file-id="showCurFileId" />
   </div>
 </template>
 
@@ -157,7 +157,7 @@ export default {
       loading: false,
       student_list_height: 490,
       showCurFileName: '',
-      showCurFileUrl: ''
+      showCurFileId: ''
     };
   },
   created() {
@@ -251,9 +251,9 @@ export default {
       this.dialogVisible = false;
     },
 
-    viewFile(fileName, fileUrl) {
+    viewFile(fileName, fileId) {
       this.showCurFileName = fileName;
-      this.showCurFileUrl = fileUrl;
+      this.showCurFileId = fileId;
       this.$refs.file.showDialog();
     },