CET-cmd-2.0/ant-design-vue-jeecg/src/views/jeecg/ImgTurnPage.vue

147 lines
4.3 KiB
Java
Raw Normal View History

<template>
<a-card title="树形结构图片翻页查看" style="min-width: 800px;overflow-x:auto ">
<a-row>
<!-- 左侧文件树 -->
<a-col :span="5">
<a-tree
showLine
:treeData="treeData"
:expandedKeys="[expandedKeys[0]]"
:selectedKeys="selectedKeys"
:style="{'height':'500px','border-right':'2px solid #c1c1c1','overflow-y':'auto'}"
@expand="onExpand"
@select="this.onSelect"
>
</a-tree>
</a-col>
<!--右侧缩略图-->
<a-col :span="19">
<a-row style="margin-top: 10px">
<a-col :span="24" style="padding-left: 2%;margin-bottom: 10px">
<a-button @click="prev" type="primary"><a-icon type="left" />上一页</a-button>
<a-button @click="next" type="primary" style="margin-left: 8px">下一页<a-icon type="right" /></a-button>
<span style="margin-left: 15%;font-weight: bolder">{{ navName }}</span>
</a-col>
<a-col :span="24" style="padding-left: 2%;">
<img :src="imgUrl" preview>
</a-col>
</a-row>
</a-col>
</a-row>
</a-card>
</template>
<script>
import draggable from 'vuedraggable'
export default {
name: 'ImgTurnPage',
components:{
draggable
},
data() {
return {
description: '图片翻页',
//数据集
treeData: [{
title: '第一页',
key: '0-0',
children: [{
title: '1页',
key: '0-0-0',
imgUrl:'https://static.jeecg.com/upload/test/1_1588149743473.jpg'
}, {
title: '2页',
key: '0-0-1',
imgUrl:'https://static.jeecg.com/upload/test/u27356337152749454924fm27gp0_1588149731821.jpg'
}]
},{
title: '第二页',
key: '0-1',
children: [{
title: '1页',
key: '0-1-0',
imgUrl:'https://static.jeecg.com/upload/test/u24454681402491956848fm27gp0_1588149712663.jpg'
}, {
title: '2页',
key: '0-1-1',
imgUrl:'https://static.jeecg.com/upload/test/u8891206113801177793fm27gp0_1588149704459.jpg'
}]
},{
title: '第三页',
key: '0-2',
children: [{
title: '1页',
key: '0-2-0',
imgUrl:'https://static.jeecg.com/upload/test/1374962_1587621329085.jpg'
}]
}],
selectedKeys:[],
expandedKeys:[],
sort:0,
imgUrl:'',
navName:'',
imgList:[],
}
},
created(){
this.getImgList();
},
methods: {
getImgList(){
var count = 0;
for(var i=0;i<this.treeData.length;i++){
for(var j=0;j<this.treeData[i].children.length;j++){
this.imgList.push({key:this.treeData[i].children[j].key,pkey:this.treeData[i].key,sort:count++,
imgUrl:this.treeData[i].children[j].imgUrl,navName:this.treeData[i].title+"/"+this.treeData[i].children[j].title})
}
}
this.setValue(this.imgList[this.sort]);
},
onSelect (selectedKeys, info) {
for(var i=0;i<this.imgList.length;i++){
if(this.imgList[i].key === selectedKeys[0]){
this.sort = this.imgList[i].sort;
this.setValue(this.imgList[i]);
break;
}
}
},
onExpand (expandedKeys) {
this.expandedKeys = [];
if(expandedKeys !== null && expandedKeys !== ''){
this.expandedKeys[0] = expandedKeys[1];
}
},
prev(){
if(this.sort === 0){
this.sort = this.imgList.length-1;
}else{
this.sort = this.sort - 1;
}
this.setValue(this.imgList[this.sort]);
},
next(){
if(this.sort === this.imgList.length-1){
this.sort = 0;
}else{
this.sort = this.sort + 1;
}
this.setValue(this.imgList[this.sort]);
},
// 设置受控节点值
setValue(value){
this.selectedKeys = [];
this.imgUrl = value.imgUrl;
this.selectedKeys[0] = value.key;
this.expandedKeys[0] = value.pkey;
this.navName = value.navName;
}
}
}
</script>
<style scoped>
</style>