import Vue from 'vue' function DataTransfer(data) { if (!(this instanceof DataTransfer)) { return new DataTransfer(data, null, null) } } DataTransfer.treeToArray = function(data, parent, level, expandedAll) { let tmp = [] Array.from(data).forEach(function(record) { if (record._expanded === undefined) { Vue.set(record, '_expanded', expandedAll) } if (parent) { Vue.set(record, '_parent', parent) } let _level = 0 if (level !== undefined && level !== null) { _level = level + 1 } Vue.set(record, '_level', _level) tmp.push(record) if (record.child && record.child.length > 0) { const child = DataTransfer.treeToArray(record.child, record, _level, expandedAll) // delete record['child'] tmp = tmp.concat(child) } }) return tmp } export default DataTransfer