el-table排序默認是使用的unicode編碼,在中文排序或英文大小寫混用的情況下需要我們手動自己處理。
- 中文排序,我們想要按照拼音順序排列,需要用到javascript的 localeCompare 方法。
// dom編寫 <el-table-column prop="name" label="名稱" align="center" :sortable="true" :sort-method="sortName" /> // methods中方法定義 sortAuthor(a, b) { return a.name.localeCompare(b.name) }
- 英文大小寫均存在時排序,例如自帶的排序升序時,會按照unicode編碼先排大寫然后小寫,如果我們想要忽略大小寫排序時需要自定義方法如下:
// dom編寫 <el-table-column prop="englishName" label="英文名稱" align="center" :sortable="true" :sort-method="sortEnglishName" /> // methods中方法定義 sortEnglishName(a, b) { let res = 0 const char1 = a.englishName.toUpperCase() const char2 = b.englishName.toUpperCase() res = char1.charCodeAt(0) - char2.charCodeAt(0) return res }