parent
2ca10823c4
commit
f9107dd04f
@ -1,60 +0,0 @@
|
||||
<template>
|
||||
<div class="file-item-title" @click.stop="titleclick">
|
||||
<input v-if="item.editable" @click.stop="" @dblclick.stop="" type="text" v-model="item.name"/>
|
||||
<div v-else >
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: 'FileTitle',
|
||||
props:{
|
||||
item:{
|
||||
type:Object,
|
||||
required:true,
|
||||
}
|
||||
},
|
||||
setup(props,context){
|
||||
const titleclick = () => {
|
||||
if (props.item.is_selected) {
|
||||
context.emit("changetitlestate");
|
||||
}
|
||||
else {
|
||||
context.emit("leftclick");
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
titleclick,
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.file-item-title{
|
||||
width: 6vw;
|
||||
height: 4vw;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
font-size: 1.2vw;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.file-item-selected {
|
||||
border: 0.1vh solid #99d1ff;
|
||||
background: #cce8ff;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 6vw;
|
||||
height: 1.8vw;
|
||||
overflow: hidden;
|
||||
font-size: 1.2vw;
|
||||
}
|
||||
</style>
|
@ -1,98 +0,0 @@
|
||||
<template>
|
||||
<div @click.stop="leftclick()" @dblclick="doubleclick()" @contextmenu.stop.prevent="rightclick($event)"
|
||||
:class="{ 'file-item-selected' : item.is_selected }"
|
||||
>
|
||||
<div class="file-item-icon" >
|
||||
<img src="@/assets/folder_icon.png" alt="">
|
||||
</div>
|
||||
<FileTitle @leftclick="leftclick" @changetitlestate="changetitlestate" @changetitle="changetitle" :item="item" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import FileTitle from './FileTitle.vue';
|
||||
import { useStore } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'FolderFiled',
|
||||
components:{
|
||||
FileTitle,
|
||||
},
|
||||
props:{
|
||||
item:{
|
||||
type:Object,
|
||||
required:true,
|
||||
}
|
||||
},
|
||||
setup(props,context){
|
||||
let store = useStore();
|
||||
|
||||
const leftclick = () => {
|
||||
context.emit('fileleftclick',props.item);
|
||||
}
|
||||
|
||||
const rightclick = (event) => {
|
||||
context.emit('filerightclick',{
|
||||
item:props.item,
|
||||
menuposition:{
|
||||
top: event.clientY + 'px',
|
||||
left: event.clientX + 'px',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
const doubleclick = () => {
|
||||
store.commit('forwardPath',props.item.name + '/');
|
||||
context.emit('ls');
|
||||
}
|
||||
|
||||
const changetitlestate = () => {
|
||||
context.emit('changetitlestate',props.item);
|
||||
}
|
||||
|
||||
const changetitle = () => {
|
||||
context.emit('changetitle',props.item);
|
||||
}
|
||||
|
||||
return {
|
||||
leftclick,
|
||||
rightclick,
|
||||
doubleclick,
|
||||
changetitle,
|
||||
changetitlestate,
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.file-item {
|
||||
width: 8vw;
|
||||
height: 8vw;
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
margin: 0 0.1vw 1vw 0.1vw;
|
||||
border: 0.1vh solid white;
|
||||
}
|
||||
|
||||
.file-item-icon > img {
|
||||
width: 6vw;
|
||||
height: 6vw;
|
||||
}
|
||||
|
||||
|
||||
.file-item-title{
|
||||
width: 6vw;
|
||||
height: 4vw;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
font-size: 1.2vw;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.file-item-selected {
|
||||
border: 0.1vh solid #99d1ff;
|
||||
background: #cce8ff;
|
||||
}
|
||||
</style>
|
Loading…
Reference in new issue