export default { data() { return {} }, methods: { /** * 列表数组排序 * @param list [Array] 要进行排序的数组 * @param field {String} 要进行排序的字段 * @param reduce {Boolean} 排序规则 默认为正序排列 false 正序 true 倒序 */ mixinsSort(list, field, reduce = false) { let _list = list.concat([]) let arr = field.split(':') if (reduce) { // 倒序 _list = _list.sort((a, b) => { let val1 = a[arr[0]], val2 = b[arr[0]] if (arr.length > 1) { for (let i = 1; i < arr.length; i++) { val1 = val1[arr[i]] val2 = val2[arr[i]] } } return this._compare(val2, val1) }) } else { // 正序 _list = _list.sort((a, b) => { let val1 = a[arr[0]], val2 = b[arr[0]] if (arr.length > 1) { for (let i = 1; i < arr.length; i++) { val1 = val1[arr[i]] val2 = val2[arr[i]] } } return this._compare(val1, val2) }) } return _list }, _compare(a, b) { // 小于 0 ,那么 a 会被排列到 b 之前 // 等于 0 , a 和 b 的相对位置不变 // 大于 0 , b 会被排列到 a 之前 if (a < b) { return -1; } if (a > b) { return 1; } return 0; } } }