使用插件:x2js
this.$request('PROPFIND', url, headers, body).then( res => {
var basicData = this.$x2js.xml2js(res.body).multistatus.response;
console.log('原始数据',basicData)
let detailDate = [];
basicData.forEach( i => {
let propObj = i.propstat[0].prop;
let obj = {};
for(var j in propObj) {
if (propObj[j].__text !== undefined) {
obj[j] = propObj[j].__text;
switch(j) {
case "getlastmodified":
var d = new Date(propObj[j].__text);
var time = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
obj[j] = time;
break;
case "size":
var s = propObj[j].__text/1024/1024;
if (s == 0) {
obj[j] = s + "MB";
} else {
obj[j] = s.toFixed(1) + "MB";
}
break;
default:
obj[j] = propObj[j].__text;
}
}
}
obj.href = decodeURI(i.href.__text);
detailDate.push(obj);
})
this.tableData = [];
detailDate.forEach ( (i, index)=> {
i.id = index+9999;
i.source = i["owner-display-name"];
i.date = i.getlastmodified;
if (i.href != path) {
let hrefArr = i.href.split("/");
let len = hrefArr.length - 1;
let baseName = hrefArr[len];
if (baseName === "") {
let folderName = hrefArr[len - 1];
switch(folderName) {
case ".PublicGroupFolderDoNotDeletecbe098b179c3d43a327230407fc04534": // 公共空间
break;
case ".e91e6348157868de9dd8b25c81aebfb9": // 保险箱
break;
case ".ExternalStorage8062f970c2741dca6dfb3f6e10f87768": // 外置存储
break;
case ".DownloadsDoNotDeletebb6805ee45f87716ec7b5c40dcdfc9e0": // 离线下载
break;
default:
i.name = folderName;
this.tableData.unshift(i);
}
} else {
i.name = baseName;
this.tableData.push(i);
}
}
})
console.log('处理数据',this.tableData)
});
},