122 lines
3.4 KiB
Vue
122 lines
3.4 KiB
Vue
<template>
|
||
<a-card :bordered="false">
|
||
<!-- 左侧文件树 -->
|
||
<a-col :span="4" class="clName">
|
||
<a-tree
|
||
:treeData="treeData"
|
||
:defaultExpandAll="defaultExpandAll"
|
||
@select="this.onSelect"
|
||
style="height: 500px;overflow-y: auto;"
|
||
>
|
||
</a-tree>
|
||
</a-col>
|
||
<!-- 中间面板 -->
|
||
<a-col :span="2"/>
|
||
<!--右侧缩略图-->
|
||
<a-col :span="18">
|
||
<a-spin tip="Loading..." :spinning="spinning">
|
||
<div v-for="(file, key) in dataSource" :key="key">
|
||
<a-row>
|
||
<a-col :span="24"><p><a-divider orientation="left">{{ file.fileName }}</a-divider></p></a-col>
|
||
<!-- 预览区域 -->
|
||
<a-col :span="24">
|
||
<template v-if="file.filePdfPath">
|
||
<div style="float: left;width:104px;height:104px;margin-right: 10px;margin: 0 8px 8px 0;">
|
||
<div style="width: 100%;height: 100%;position: relative;padding: 8px;" @click="pdfPreview(file.title)">
|
||
<img style="width: 100%;" src="~@/assets/pdf4.jpg">
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<template v-else>
|
||
(暂无材料,点击"选择文件"或"扫描上传"上传文件)
|
||
</template>
|
||
</a-col>
|
||
</a-row>
|
||
</div>
|
||
</a-spin>
|
||
</a-col>
|
||
<pdf-preview-modal ref="pdfmodal"></pdf-preview-modal >
|
||
</a-card>
|
||
</template>
|
||
|
||
<script>
|
||
|
||
import { getAction } from '@/api/manage'
|
||
import { ACCESS_TOKEN } from "@/store/mutation-types"
|
||
import Vue from 'vue'
|
||
import PdfPreviewModal from './modules/PdfPreviewModal'
|
||
const mockdata=[{
|
||
"id": "1",
|
||
"key": "1",
|
||
"title": "实例.pdf",
|
||
"fileCode": "shili",
|
||
"fileName": "实例",
|
||
"filePdfPath": "实例"
|
||
}]
|
||
|
||
export default {
|
||
name: "JeecgPdfView",
|
||
components:{
|
||
PdfPreviewModal
|
||
},
|
||
data () {
|
||
return {
|
||
description: 'PDF预览页面',
|
||
// 文件类型集
|
||
treeData:[{
|
||
title: '所有PDF电子档',
|
||
key: '0-0',
|
||
children: mockdata }],
|
||
// 文件数据集
|
||
dataSource: mockdata,
|
||
allData:mockdata,
|
||
// 上传文件集
|
||
defaultExpandAll: true,
|
||
// 加载中
|
||
spinning:false,
|
||
url: {
|
||
pdfList: "/mock/api/pdfList",
|
||
},
|
||
}
|
||
},
|
||
created() {
|
||
//this.loadData();
|
||
},
|
||
methods: {
|
||
loadData (){
|
||
this.spinning = false;
|
||
getAction(this.url.pdfList).then((res)=>{
|
||
if(res.length>0){
|
||
this.allData = res;
|
||
this.dataSource = res;
|
||
this.treeData[0].children = res;
|
||
}
|
||
this.spinning = false;
|
||
})
|
||
},
|
||
pdfPreview:function(title){
|
||
const token = Vue.ls.get(ACCESS_TOKEN);
|
||
this.headers = {"X-Access-Token":token}
|
||
this.$refs.pdfmodal.previewFiles(title,token);
|
||
},
|
||
// 选择文件类型
|
||
onSelect (selectedKeys, info) {
|
||
this.dataSource = [];
|
||
if(selectedKeys[0] === undefined || selectedKeys[0] === '0-0'){
|
||
this.dataSource = this.allData;
|
||
}else{
|
||
this.dataSource.push(info.node._props.dataRef);
|
||
}
|
||
console.log("SELECT-->dataSource",this.dataSource );
|
||
},
|
||
// model回调
|
||
modalFormOk () {
|
||
this.loadData();
|
||
},
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
.clName .ant-tree li span.ant-tree-switcher, .ant-tree li span.ant-tree-iconEle{width:10px}
|
||
</style> |