提交代码
This commit is contained in:
@@ -66,18 +66,7 @@ export default {
|
||||
},
|
||||
onShow() {
|
||||
queryEngineering().then((res) => {
|
||||
this.engineeringList = res.data.sort((a, b) => {
|
||||
const nameA = a.name
|
||||
const nameB = b.name
|
||||
|
||||
const isANumber = /^\d/.test(nameA)
|
||||
const isBNumber = /^\d/.test(nameB)
|
||||
|
||||
if (isANumber !== isBNumber) {
|
||||
return isANumber ? 1 : -1
|
||||
}
|
||||
return nameA.localeCompare(nameB, 'zh', { sensitivity: 'accent' })
|
||||
})
|
||||
this.engineeringList = this.sortByFirstLetter(res.data)
|
||||
})
|
||||
},
|
||||
onNavigationBarButtonTap(e) {
|
||||
@@ -93,6 +82,33 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 处理函数
|
||||
sortByFirstLetter(data) {
|
||||
// 1. 添加首字母字段
|
||||
const withLetter = data.map((item) => {
|
||||
let letter = '#'
|
||||
const firstChar = item.name?.charAt(0) || ''
|
||||
|
||||
if (/[A-Za-z]/.test(firstChar)) {
|
||||
letter = firstChar.toUpperCase()
|
||||
} else if (/[0-9]/.test(firstChar)) {
|
||||
letter = '#'
|
||||
} else {
|
||||
const py = pinyin(firstChar, { pattern: 'first', toneType: 'none' })
|
||||
letter = py ? py.toUpperCase() : '#'
|
||||
}
|
||||
|
||||
return { ...item, letter }
|
||||
})
|
||||
|
||||
// 2. 排序
|
||||
return withLetter.sort((a, b) => {
|
||||
if (a.letter === '#') return 1
|
||||
if (b.letter === '#') return -1
|
||||
return a.letter.localeCompare(b.letter)
|
||||
})
|
||||
},
|
||||
|
||||
all() {
|
||||
uni.setStorageSync('onceSelectEngineering', {
|
||||
createBy: '',
|
||||
|
||||
Reference in New Issue
Block a user