| | |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" :title="pdfName" width="60vw" top="2vh" bottom="2vh" |
| | | <el-empty v-if="!loading && details == ''"></el-empty> |
| | | <el-dialog v-model="dialogVisible" :title="pdfName" width="60vw" top="3vh" bottom="2vh" |
| | | :visible.sync="dialogVisible" class="custom-dialog"> |
| | | <div class="pdfInfoBox"> |
| | | <div class="pdfInfoBox" v-loading="pdfLoading" element-loading-text="图片加载中" |
| | | element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0)"> |
| | | <div v-for="(item, index) in pdfList" :key="index" class="pdfItem" :page="index + 1"> |
| | | <img :src="item.showSrc" alt="" style="min-height: 550px" loading="lazy" /> |
| | | <el-divider content-position="center"> 第 {{ index + 1 }} 页 </el-divider> |
| | | </div> |
| | | </div> |
| | | <el-empty v-if="!pdfLoading && !pdfList.length"></el-empty> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | // 查询结果 |
| | | resultList: [], |
| | | loading: false, |
| | | pdfLoading: false, |
| | | }; |
| | | }, |
| | | async mounted() { |
| | | await this.getContent(this.$route.query.id); |
| | | await this.getSelectData(); |
| | | console.log(this.details, "请求出来的数据"); |
| | | |
| | | // 查找关键词相匹配的文章 |
| | | if (this.details.keyWords && this.details.keyWords.length) { |
| | | for (let i = 0; i < this.details.keyWords.length; i++) { |
| | |
| | | this.inputType = "keyWords" |
| | | await this.getItemListOne() |
| | | } |
| | | this.loading = false; |
| | | console.log(this.resultList, "处理好的"); |
| | | } else { |
| | | this.getItemList() |
| | |
| | | if (this.resultList.length == 0) { |
| | | this.getItemList() |
| | | } |
| | | |
| | | //处理文件 |
| | | if (this.details.cmsItemType == "video" || this.details.cmsItemType == "audio") { |
| | | if (this.details.file != "") { |
| | |
| | | methods: { |
| | | // 根据id请求该页面数据 |
| | | async getContent(id) { |
| | | this.loading = true; |
| | | const res = await MG.resource |
| | | .getItem({ |
| | | path: "*", |
| | |
| | | // 设置一个默认值或者进行其他错误处理 |
| | | item.keyWords = []; |
| | | } |
| | | if(item.author && item.author.length>0){ |
| | | if (item.author && item.author.length > 0) { |
| | | item.author = item.author.split(";"); |
| | | } |
| | | const foundItem = this.category.list.find((citem) => citem.value == item.cmsItemType); |
| | | item.resourceTypeName = foundItem ? foundItem.name : ''; |
| | | }) |
| | | this.details = res.datas[0] |
| | | this.loading = false; |
| | | }, |
| | | |
| | | // 在此点击详情 |
| | |
| | | if (this.resultList.length == 0) { |
| | | this.getItemList() |
| | | } |
| | | |
| | | //处理文件 |
| | | if (this.details.cmsItemType == "video" || this.details.cmsItemType == "audio") { |
| | | if (this.details.file != "") { |
| | |
| | | showSrc: '' |
| | | }) |
| | | } |
| | | this.pdfLoading = false; |
| | | // 启动页码观察 |
| | | setTimeout(() => { |
| | | this.initObservation() |
| | |
| | | |
| | | //获取下拉选择框的内容 |
| | | async getSelectData() { |
| | | this.loading = true; |
| | | try { |
| | | // 同时发起两个异步请求,并等待它们的结果 |
| | | const [resourceListResult] = await Promise.all([ |
| | |
| | | this.resultList.push(item); |
| | | } |
| | | }); |
| | | // 排除自身且去重 |
| | | |
| | | // const relatedList = res.datas.filter((item) => { |
| | | // return item.id !== this.details.id; |
| | | // }); |
| | | // this.resultList.push(...relatedList) |
| | | // // 根据id去重 |
| | | // this.resultList = this.uniqueById(this.resultList); |
| | | // //最多显示10条 |
| | | // if (this.resultList.length > 10) { |
| | | // this.resultList = this.resultList.slice(0, 10); |
| | | // } |
| | | this.loading = false; |
| | | }, |
| | | |
| | | async openPdf(name) { |
| | | this.pdfLoading = true; |
| | | this.pdfList = [] |
| | | this.pdfName = name; |
| | | this.dialogVisible = true; |
| | |
| | | } |
| | | |
| | | .keyWord { |
| | | cursor: pointer; |
| | | |
| | | padding: 5px 10px; |
| | | color: #937950; |
| | | border: 1px solid #937950; |