1、樹形數據轉換
在處理商品分類數據、企業列表數據等情況下,后臺會返回到前臺所有的數據。我們需要根據parentId,數據ID將數據轉換為樹形數據進行渲染。
/*** 樹形數據轉換* @param {*} data* @param {*} id* @param {*} pid*/
export function treeDataTranslate(data, id = 'id', pid = 'parentId') {var res = []var temp = {}for (var i = 0; i < data.length; i++) {temp[data[i][id]] = data[i]}for (var k = 0; k < data.length; k++) {if (temp[data[k][pid]] && data[k][id] !== data[k][pid]) {if (!temp[data[k][pid]]['children']) {temp[data[k][pid]]['children'] = []}if (!temp[data[k][pid]]['_level']) {temp[data[k][pid]]['_level'] = 1}data[k]['_level'] = temp[data[k][pid]]._level + 1temp[data[k][pid]]['children'].push(data[k])} else {res.push(data[k])}}return res
}
2、獲取當前年月日
/*** 獲取當前年與日* 格式為 YYYY-MM-DD*/
export function getNowFormatDate() {let date = new Date();let seperator1 = "-";let year = date.getFullYear();let month = date.getMonth() + 1;let strDate = date.getDate();if (month >= 1 && month <= 9) {month = "0" + month;}if (strDate >= 0 && strDate <= 9) {strDate = "0" + strDate;}let currentdate = year + seperator1 + month + seperator1 + strDate;return currentdate;
}
3、對象的深拷貝
在vue項目中,常常會碰到編輯數據的問題。當用戶點擊了編輯,進行數據編輯。然而并沒有進行保存,這樣就會導致頁面數據保留更改(雙向數據綁定)造成很不好的體驗。這時就需要對對象進行深拷貝來避免這個問題。
export function deepClone(source) {if (!source && typeof source !== 'object') {throw new Error('error arguments', 'shallowClone')}const targetObj = source.constructor === Array ? [] : {}for (const keys in source) {if (source.hasOwnProperty(keys)) {if (source[keys] && typeof source[keys] === 'object') {targetObj[keys] = source[keys].constructor === Array ? [] : {}targetObj[keys] = deepClone(source[keys])} else {targetObj[keys] = source[keys]}}}return targetObj
}
?
?