diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 17eab5c..7fdcde8 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -10,7 +10,6 @@
v-if="index===pathList.length-1"
v-model="isShowNewFolder"
placement="bottom"
- trigger="click"
@click="showNewFolderClick"
@after-leave="hideNewFolderName"
>
@@ -28,21 +27,21 @@
+
+
+
+
+
+
@@ -70,6 +69,7 @@
+
@@ -129,7 +129,23 @@
-
+
+
+
+
+
+
{{ scope.row.name }}
@@ -220,6 +236,7 @@ export default {
showNewFolder: false,
isShowNewFolder: false,
newFolderName: '新建文件夹',
+ renameFileName: '',
pathList: [
{ 'folder': '', index: 0 },
{ 'folder': '+', index: 1 }
@@ -278,6 +295,7 @@ export default {
selectRowData: [],
tableLoading: false,
newFolderLoading: false,
+ renameLoading: false,
menuTriangle: '',
cellMouseIndex: -1,
editingIndex: -1
@@ -322,6 +340,16 @@ export default {
destroyed() {
removePath()
},
+ directives: {
+ // 注册一个局部的自定义指令 v-focus
+ focus: {
+ // 指令的定义
+ inserted: function (el) {
+ // 聚焦元素
+ el.querySelector('input').focus()
+ }
+ }
+ },
methods: {
// 行拖拽
rowDrop() {
@@ -359,7 +387,6 @@ export default {
if (number === 0) {
this.path = ''
} else if (number === this.pathList.length - 1) {
- // console.log('this.path' + this.path)
} else {
this.path += '/' + this.pathList[number].folder
}
@@ -368,6 +395,17 @@ export default {
this.getFileList()
},
newFolder() {
+ console.log(879)
+ this.newFolderName = '新建文件夹'
+ let append = 0
+ let filenameList = []
+ this.fileList.forEach(file => {
+ filenameList.push(file.name)
+ })
+ while(filenameList.includes(this.newFolderName)){
+ append += 1
+ this.newFolderName = '新建文件夹' + append
+ }
this.showNewFolder = true
},
hideNewFolderName() {
@@ -377,28 +415,45 @@ export default {
showNewFolderClick() {
this.isShowNewFolder = true
},
+ newFolderNameClickEnter() {
+ this.newFolderNameClick()
+ },
// 新建文件夹
newFolderNameClick() {
- console.log(68790)
- this.newFolderLoading = true
- api.uploadFolder({
- isFolder: true,
- filename: this.newFolderName,
- currentDirectory: this.path,
- username: this.$store.state.user.username,
- userId: this.$store.state.user.userId
- }).then(() => {
- console.log('新建文件夹' + this.newFolderName + '成功!')
- this.getFileList()
- this.newFolderLoading = false
- this.showNewFolder = false
- this.isShowNewFolder = false
- this.$notify({
- title: '新建文件夹成功',
- type: 'success',
- duration: 1000
+ this.newFolderLoading = true
+ if(this.newFolderName){
+ api.uploadFolder({
+ isFolder: true,
+ filename: this.newFolderName,
+ currentDirectory: this.path,
+ username: this.$store.state.user.name,
+ userId: this.$store.state.user.userId
+ }).then((res) => {
+ if(res.data === 1){
+ this.newFolderLoading = false
+ this.$message({
+ message: '该文件夹已存在',
+ type: 'warning'
+ });
+ } else {
+ this.newFolderLoading = false
+ this.showNewFolder = false
+ this.isShowNewFolder = false
+ this.$notify({
+ title: '新建文件夹成功',
+ type: 'success',
+ duration: 1000
+ })
+ this.getFileList()
+ }
})
- })
+ }else{
+ this.newFolderLoading = false
+ this.$message({
+ message: '请输入文件夹名称',
+ type: 'warning'
+ });
+ }
},
getFileList() {
this.tableLoading = true
@@ -514,14 +569,14 @@ export default {
},
// cell-style通过返回值可以实现样式变换利用传递过来的数组index循环改变样式
rowRed({ row, column, rowIndex, columnIndex }) {
- if (this.indexList.length < 1 && columnIndex === 2 && this.cellMouseIndex === rowIndex) {
- return { cursor: 'pointer', color: "#19ACF9" }
- }
- for (let i = 0; i < this.indexList.length; i++) {
- if (rowIndex === this.indexList[i]) {
- return { backgroundColor: '#EBEEF5', color: '#b7b5b6', cursor: 'default' }
+ if (this.indexList.length < 1 && columnIndex === 2 && this.cellMouseIndex === rowIndex) {
+ return { cursor: 'pointer', color: "#19ACF9" }
+ }
+ for (let i = 0; i < this.indexList.length; i++) {
+ if (rowIndex === this.indexList[i]) {
+ return { backgroundColor: '#EBEEF5', color: '#b7b5b6', cursor: 'default' }
+ }
}
- }
},
// 动态添加index到row里面去
tableRowClassName({ row, rowIndex }) {
@@ -537,8 +592,10 @@ export default {
},
// 单元格hover进入时时间
cellMouseEnter(row) {
- if (this.indexList.length < 1) {
- this.cellMouseIndex = row.index
+ if(this.editingIndex === -1){
+ if (this.indexList.length < 1) {
+ this.cellMouseIndex = row.index
+ }
}
},
// 单元格hover退出时时间
@@ -547,48 +604,75 @@ export default {
},
// 单元格点击事件
cellClick(row, column) {
- const columnIndex = column.index
- if (columnIndex === 0) {
- // 点击选中
- this.$refs.fileListTable.toggleRowSelection(row)
- }
- if (columnIndex === 2) {
- if (this.indexList.length < 1) {
- if (row.index !== this.editingIndex) {
- this.fileClick(row)
- this.editingIndex = -1
+ if(this.editingIndex === -1) {
+ const columnIndex = column.index
+ if (columnIndex === 0) {
+ // 点击选中
+ this.$refs.fileListTable.toggleRowSelection(row)
+ }
+ if (columnIndex === 2) {
+ if (this.indexList.length < 1) {
+ if (row.index !== this.editingIndex) {
+ this.fileClick(row)
+ this.editingIndex = -1
+ }
}
}
- }
- if (columnIndex === 4) {
- // // 单个操作
- }
- if (this.indexList.length > 0) {
- this.$refs.fileListTable.toggleRowSelection(row)
+ if (columnIndex === 4) {
+ // // 单个操作
+ }
+ if (this.indexList.length > 0) {
+ this.$refs.fileListTable.toggleRowSelection(row)
+ }
}
},
// 重命名
- rowRename(row) {
- let newFileName = row.name
+ rowRename(newFileName, row) {
if (newFileName) {
+
if (!row.isFolder) {
const ext = '.' + row.suffix
if (!newFileName.endsWith(ext)) {
newFileName += ext
}
}
- console.log('newFileName', this.$store.state.user)
+
+ console.log('newFileName', newFileName)
+
+ this.renameLoading = true
+ const findIndex = this.fileList.findIndex(item => {
+ if(newFileName === item.name){
+ return item;
+ }
+ })
+ console.log(findIndex)
+ if(findIndex > -1){
+ let msg = '该文件已存在'
+ if(row.isFolder){
+ msg = '该文件夹已存在'
+ }
+ this.$message({
+ message: msg,
+ type: 'warning'
+ });
+ this.renameLoading = false
+ return
+ }
+
api.rename({
newFileName: newFileName,
username: this.$store.state.user.name,
id: row.id
}).then(res => {
if (res.data) {
+ this.renameLoading = false
row.name = newFileName
this.fileList[row.index] = row
this.editingIndex = -1
}
})
+ } else {
+ this.editingIndex = -1
}
},
// 更多操作(多选)
@@ -717,16 +801,8 @@ export default {
break
case 'rename':
console.log('重命名')
+ this.renameFileName = this.rowContextData.name
this.editingIndex = this.rowContextData.index
- // if (!this.rowContextData.isFolder) {
- // this.editingIndex = this.rowContextData.index
- // } else {
- // this.$notify({
- // title: '暂不支持文件夹重命名',
- // type: 'warning',
- // duration: 2000
- // })
- // }
break
case 'copy':
console.log('移动或复制')
@@ -806,10 +882,10 @@ export default {
console.log(row)
if (row.isFolder) {
// 打开文件
- this.path += '/' + row.pathname
+ this.path += '/' + row.name
const item1 = {}
- item1['folder'] = row.pathname
+ item1['folder'] = row.name
item1['index'] = this.pathList.length - 1
const item2 = {}
@@ -905,12 +981,17 @@ export default {
cursor: pointer;
font-size: 20px;
}
- .menuitem /deep/ .el-loading-spinner {
+ /deep/ .el-input-group__append /deep/ .el-loading-spinner {
top: 0;
margin-top: 0.75rem;
- width: 100%;
- text-align: center;
- position: absolute;
+ }
+ /deep/ .cell /deep/ .el-loading-spinner {
+ top: 0;
+ margin-top: 0.54rem;
+ }
+ /deep/ .cell /deep/ .el-button {
+ padding: 8px 16px;
+ margin-left: 10px;
}
/deep/ .el-checkbox {
cursor: default;