|  | @@ -48,10 +48,14 @@
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |          <div class="sources-box" :style="{ height: height + 'px' }" v-if="height > 0" v-loading="boxLoading">
 | 
	
		
			
				|  |  | -          <div v-for="(item, index) in list" :key="index" @click="selectSourceNode(item)" class="sources-item">
 | 
	
		
			
				|  |  | -            <template v-if="type_index === 0">
 | 
	
		
			
				|  |  | -              <el-image :src="item.file_url" :preview-src-list="[item.file_url]" fit="contain"></el-image
 | 
	
		
			
				|  |  | -            ></template>
 | 
	
		
			
				|  |  | +          <div
 | 
	
		
			
				|  |  | +            v-for="(item, index) in list"
 | 
	
		
			
				|  |  | +            :key="index"
 | 
	
		
			
				|  |  | +            @click="selectSourceNode(item)"
 | 
	
		
			
				|  |  | +            class="sources-item"
 | 
	
		
			
				|  |  | +            :class="[select_sources_id === item.id ? 'active' : '']"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <template v-if="type_index === 0"> <el-image :src="item.file_url" fit="contain"></el-image></template>
 | 
	
		
			
				|  |  |              <template v-if="type_index === 1">
 | 
	
		
			
				|  |  |                <AudioLine
 | 
	
		
			
				|  |  |                  ref="audioLine"
 | 
	
	
		
			
				|  | @@ -107,7 +111,12 @@
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  |  import MenuPage from '../common/menu.vue';
 | 
	
		
			
				|  |  |  import MenuTree from './components/MenuTree.vue';
 | 
	
		
			
				|  |  | -import { ChapterGetBookChapterStruct, MangerAddResource, MangerDeleteResource } from '@/api/book';
 | 
	
		
			
				|  |  | +import {
 | 
	
		
			
				|  |  | +  ChapterGetBookChapterStruct,
 | 
	
		
			
				|  |  | +  MangerAddResource,
 | 
	
		
			
				|  |  | +  MangerDeleteResource,
 | 
	
		
			
				|  |  | +  MangerUpdateResourceFile,
 | 
	
		
			
				|  |  | +} from '@/api/book';
 | 
	
		
			
				|  |  |  import { GetProjectBaseInfo } from '@/api/project';
 | 
	
		
			
				|  |  |  import PaginationPage from '@/components/PaginationPage.vue';
 | 
	
		
			
				|  |  |  import { PageQueryProjectResourceList } from '@/api/list';
 | 
	
	
		
			
				|  | @@ -283,12 +292,21 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 设置信息
 | 
	
		
			
				|  |  | -    handleSetInfo() {},
 | 
	
		
			
				|  |  | +    handleSetInfo() {
 | 
	
		
			
				|  |  | +      if (this.select_sources_id) {
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.$message.warning('请先选择文件');
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      // 更换文件
 | 
	
		
			
				|  |  |      handleChangeFile() {
 | 
	
		
			
				|  |  | -      this.limit = 1;
 | 
	
		
			
				|  |  | -      this.uploadTip = '只能上传 1 个文件';
 | 
	
		
			
				|  |  | -      this.sourceAddFlag = true;
 | 
	
		
			
				|  |  | +      if (this.select_sources_id) {
 | 
	
		
			
				|  |  | +        this.limit = 1;
 | 
	
		
			
				|  |  | +        this.uploadTip = '只能上传 1 个文件';
 | 
	
		
			
				|  |  | +        this.sourceAddFlag = true;
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.$message.warning('请先选择文件');
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // 设置项目成员资源使用权限
 | 
	
	
		
			
				|  | @@ -354,23 +372,43 @@ export default {
 | 
	
		
			
				|  |  |      // 确定新增资源
 | 
	
		
			
				|  |  |      submitAdd() {
 | 
	
		
			
				|  |  |        this.loading = true;
 | 
	
		
			
				|  |  | -      let data = {
 | 
	
		
			
				|  |  | -        project_id: this.book_id,
 | 
	
		
			
				|  |  | -        book_chapter_node_id: this.select_node,
 | 
	
		
			
				|  |  | -        type: this.type_list[this.type_index].value,
 | 
	
		
			
				|  |  | -        file_id_list: this.file_id_list,
 | 
	
		
			
				|  |  | -      };
 | 
	
		
			
				|  |  | -      MangerAddResource(data)
 | 
	
		
			
				|  |  | -        .then((res) => {
 | 
	
		
			
				|  |  | -          this.loading = false;
 | 
	
		
			
				|  |  | -          this.sourceAddFlag = false;
 | 
	
		
			
				|  |  | -          if (res.status === 1) {
 | 
	
		
			
				|  |  | -            this.queryList('');
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        .catch(() => {
 | 
	
		
			
				|  |  | -          this.loading = false;
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +      if (this.limit === 1) {
 | 
	
		
			
				|  |  | +        // 更换文件
 | 
	
		
			
				|  |  | +        let data = {
 | 
	
		
			
				|  |  | +          id: this.select_sources_id,
 | 
	
		
			
				|  |  | +          file_id: this.file_id_list[0],
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        MangerUpdateResourceFile(data)
 | 
	
		
			
				|  |  | +          .then((res) => {
 | 
	
		
			
				|  |  | +            this.loading = false;
 | 
	
		
			
				|  |  | +            this.sourceAddFlag = false;
 | 
	
		
			
				|  |  | +            if (res.status === 1) {
 | 
	
		
			
				|  |  | +              this.queryList('');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          .catch(() => {
 | 
	
		
			
				|  |  | +            this.loading = false;
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        // 上传文件
 | 
	
		
			
				|  |  | +        let data = {
 | 
	
		
			
				|  |  | +          project_id: this.book_id,
 | 
	
		
			
				|  |  | +          book_chapter_node_id: this.select_node,
 | 
	
		
			
				|  |  | +          type: this.type_list[this.type_index].value,
 | 
	
		
			
				|  |  | +          file_id_list: this.file_id_list,
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        MangerAddResource(data)
 | 
	
		
			
				|  |  | +          .then((res) => {
 | 
	
		
			
				|  |  | +            this.loading = false;
 | 
	
		
			
				|  |  | +            this.sourceAddFlag = false;
 | 
	
		
			
				|  |  | +            if (res.status === 1) {
 | 
	
		
			
				|  |  | +              this.queryList('');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          .catch(() => {
 | 
	
		
			
				|  |  | +            this.loading = false;
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 点击资源
 | 
	
		
			
				|  |  |      selectSourceNode(item) {
 | 
	
	
		
			
				|  | @@ -477,6 +515,7 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        .sources-item {
 | 
	
		
			
				|  |  |          width: 200px;
 | 
	
		
			
				|  |  | +        cursor: pointer;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          .el-image {
 | 
	
		
			
				|  |  |            width: 100%;
 | 
	
	
		
			
				|  | @@ -494,6 +533,17 @@ export default {
 | 
	
		
			
				|  |  |          :deep .audioLine {
 | 
	
		
			
				|  |  |            background: #f2f3f5;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        &.active {
 | 
	
		
			
				|  |  | +          .el-image {
 | 
	
		
			
				|  |  | +            border-color: #f90;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          .name,
 | 
	
		
			
				|  |  | +          .label {
 | 
	
		
			
				|  |  | +            color: #f90;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 |