|  | @@ -1,6 +1,6 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div v-loading="loading" class="task-detail">
 | 
	
		
			
				|  |  | -    <task-top :item-info="itemInfo" />
 | 
	
		
			
				|  |  | +    <task-top :item-info="itemInfo" @viewFile="viewFile" />
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <div class="task-detail-main">
 | 
	
		
			
				|  |  |        <div class="time-type">{{ timeType }}任务 {{ name }}</div>
 | 
	
	
		
			
				|  | @@ -34,7 +34,7 @@
 | 
	
		
			
				|  |  |              color="#fff"
 | 
	
		
			
				|  |  |              :title="item.file_name"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | -            <a :href="item.file_url" target="_blank">{{ item.file_name }}</a>
 | 
	
		
			
				|  |  | +            <span @click="viewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
 | 
	
		
			
				|  |  |            </el-tag>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        </div>
 | 
	
	
		
			
				|  | @@ -50,7 +50,7 @@
 | 
	
		
			
				|  |  |                  color="#fff"
 | 
	
		
			
				|  |  |                  :title="item.file_name"
 | 
	
		
			
				|  |  |                >
 | 
	
		
			
				|  |  | -                <a :href="item.file_url" target="_blank">{{ item.file_name }}</a>
 | 
	
		
			
				|  |  | +                <span @click="viewFile(item.file_name, item.file_url)">{{ item.file_name }}</span>
 | 
	
		
			
				|  |  |                </el-tag>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  |            </div>
 | 
	
	
		
			
				|  | @@ -109,7 +109,7 @@
 | 
	
		
			
				|  |  |        <template v-else>
 | 
	
		
			
				|  |  |          <div class="submit-homework">
 | 
	
		
			
				|  |  |            <span class="label">提交作业</span>
 | 
	
		
			
				|  |  | -          <el-upload action="no" :http-request="upload" multiple :show-file-list="false" accept="*">
 | 
	
		
			
				|  |  | +          <el-upload action="no" :http-request="upload" multiple :show-file-list="false">
 | 
	
		
			
				|  |  |              <el-button><svg-icon icon-class="upload" /> 上传文件</el-button>
 | 
	
		
			
				|  |  |            </el-upload>
 | 
	
		
			
				|  |  |          </div>
 | 
	
	
		
			
				|  | @@ -149,6 +149,8 @@
 | 
	
		
			
				|  |  |        :dialog-visible="dialogVisible"
 | 
	
		
			
				|  |  |        @dialogClose="dialogClose"
 | 
	
		
			
				|  |  |      />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <show-file ref="file" :file-name="showCurFileName" :file-url="showCurFileUrl" />
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -156,15 +158,18 @@
 | 
	
		
			
				|  |  |  import TaskTop from '../TaskTop.vue';
 | 
	
		
			
				|  |  |  import FinishCourseware from '@/components/course/FinishCourseware.vue';
 | 
	
		
			
				|  |  |  import CompletionView from '@/components/course/CompletionView.vue';
 | 
	
		
			
				|  |  | +import ShowFile from '@/common/show_file';
 | 
	
		
			
				|  |  |  import { fileUpload, FileDownload } from '@/api/app';
 | 
	
		
			
				|  |  |  import { CreateEnterLiveRoomSession } from '@/api/live';
 | 
	
		
			
				|  |  |  import { GetTaskInfo, FillMyTaskExecuteInfo_Student } from '@/api/course';
 | 
	
		
			
				|  |  | +import { isAllowFileType } from '@/utils/validate';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    components: {
 | 
	
		
			
				|  |  |      FinishCourseware,
 | 
	
		
			
				|  |  |      TaskTop,
 | 
	
		
			
				|  |  | -    CompletionView
 | 
	
		
			
				|  |  | +    CompletionView,
 | 
	
		
			
				|  |  | +    ShowFile
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
	
		
			
				|  | @@ -193,7 +198,9 @@ export default {
 | 
	
		
			
				|  |  |        my_execute_info: {},
 | 
	
		
			
				|  |  |        student_remark: '',
 | 
	
		
			
				|  |  |        student_score: 0,
 | 
	
		
			
				|  |  | -      loading: false
 | 
	
		
			
				|  |  | +      loading: false,
 | 
	
		
			
				|  |  | +      showCurFileName: '',
 | 
	
		
			
				|  |  | +      showCurFileUrl: ''
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    computed: {
 | 
	
	
		
			
				|  | @@ -256,6 +263,12 @@ export default {
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  |      upload(file) {
 | 
	
		
			
				|  |  | +      let fileName = file.file.name;
 | 
	
		
			
				|  |  | +      if (!isAllowFileType(fileName)) {
 | 
	
		
			
				|  |  | +        this.$message.warning(`文件:【${fileName}】文件类型,不允许上传`);
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        fileUpload('Open', file).then(({ file_info_list }) => {
 | 
	
		
			
				|  |  |          if (file_info_list.length > 0) {
 | 
	
		
			
				|  |  |            let { file_id, file_name, file_url } = file_info_list[0];
 | 
	
	
		
			
				|  | @@ -274,6 +287,12 @@ export default {
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    viewFile(fileName, fileUrl) {
 | 
	
		
			
				|  |  | +      this.showCurFileName = fileName;
 | 
	
		
			
				|  |  | +      this.showCurFileUrl = fileUrl;
 | 
	
		
			
				|  |  | +      this.$refs.file.showDialog();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      fillTaskExecuteInfo_Student() {
 | 
	
		
			
				|  |  |        let homework_file_id_list = [];
 | 
	
		
			
				|  |  |        this.file_list.forEach(item => {
 | 
	
	
		
			
				|  | @@ -356,6 +375,10 @@ $bor-color: #d9d9d9;
 | 
	
		
			
				|  |  |      border-radius: 4px;
 | 
	
		
			
				|  |  |      margin: 0 8px 6px 0;
 | 
	
		
			
				|  |  |      border-color: $bor-color;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    > span {
 | 
	
		
			
				|  |  | +      cursor: pointer;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    &-main {
 |