UNPKG

yunpan

Version:

yunpan demo

215 lines (176 loc) 4.33 kB
$(function() { let selectedFile = ''; let selectedDir = spacePath; let selectedDirList = [spacePath]; if(selectedDirList.length == 1) { $('.fileDir').hide(); } $('.item').on('click', function(ev){ $('.opt-btn').show(); $('.item').removeClass('active'); selectedFile = $(this).attr('name'); $(this).addClass('active'); ev.stopPropagation(); }); $('.fileList').on('click', function(){ $('.opt-btn').hide(); $('.item').removeClass('active'); selectedFile = ''; }); $('.fileList').on('dblclick','.item-dir',function(){ selectedFile = $(this).attr('name'); let path = selectedDir + selectedFile; console.log(path); $.ajax({ type : 'POST', url : '/getfiles', data : { path : path, }, success : function (data) { console.log(data); var code = data.code; var info = data.data; if(data.code) { selectedDirList.push(selectedFile); reflashFile(info); } } }) }); $('.fileDir').on('click',function(){ if(selectedDirList.length == 1) { return; } selectedDirList.pop(); var path = selectedDirList.join('/'); $.ajax({ type : 'POST', url : '/getfiles', data : { path : path, }, success : function (data) { console.log(data); var code = data.code; var info = data.data; if(data.code) { reflashFile(info); } } }) }); function reflashFile(list) { console.log(list); $('.fileList').children().remove(); var nodeHTML = ''; for(var i=0;i<list.length;i++) { var item = list[i]; nodeHTML += `<div name="${item.name}" class="item item-${item.type}"> <div class="itemImage"></div> <div class="itemName"> <div class="staticName">${item.name}</div> <div class="changeName"> <input type="text" autocomplete="off" value="${item.name}" maxlength="50" class="ipt-name inputName"> </div> </div> </div>`; } if(list.length == 0){ nodeHTML = '<div class="nofile">该文件为空</div>'; } $('.fileList').append(nodeHTML); console.log(selectedDirList); if(selectedDirList.length == 1) { $('.fileDir').hide(); } else { $('.fileDir').show(); } } $('#delBtn').on('click', function(ev){ $.ajax({ type : 'POST', url : '/del', data : { file : selectedFile, dir : selectedDir }, success : function (data) { if( data.code ) { $('.item.active').remove(); } } }) }); $('#downloadBtn').on('click', function(ev){ }); $('#copyBtn').on('click', function(ev){ let copyToDst = selectedDir + 'copy/' + selectedFile; let copyPath = selectedDir + selectedFile; $.ajax({ type : 'POST', url : '/copy', data : { src : copyPath, dst : copyToDst, }, success : function (data) { if( data.code ) { } } }) }); $('#renameBtn').on('click', function(ev){ $('.item.active').addClass('rename'); }); $('.inputName').on('blur',function(){ let thisNode = $('.item.rename'); thisNode.removeClass('rename'); var name = $(this).val(); let oldPath = selectedDir + selectedFile; let newPath = selectedDir + name; let that = this; $.ajax({ type : 'POST', url : '/rename', data : { oldPath : oldPath, newPath : newPath }, success : function (data) { if( data.code ) { thisNode.find('.staticName').text(name); } } }) }) $('#uploadBtn').on('click', function(ev){ }); $('#createBtn').on('click', function(ev){ let newFileNode = ` <div name="新建文件夹" class="item item-dir"> <div class="itemImage"></div> <div class="itemName"> <div class="staticName">新建文件夹</div> <div class="changeName"> <input type="text" autocomplete="off" value="新建文件夹" maxlength="50" class="ipt-name inputName"> </div> </div> </div> `; let name = '新建文件夹'; let newPath = selectedDir + name; $.ajax({ type : 'POST', url : '/createFile', data : { newPath : newPath }, success : function (data) { if( data.code ) { $('.fileList').append($(newFileNode)); } } }); }); });