统一分类排序和名称标准化
This commit is contained in:
parent
2b1044ddb2
commit
238383d3d8
|
|
@ -109,11 +109,17 @@ export default function News() {
|
|||
let sortedData = data || []
|
||||
if (activeTab === 'deal') {
|
||||
const categoryOrder = ['带4号', '带7号', '永恒号', '天马号', '天马王', '金山号', '金山王', '钻石号', '朦胧号', '朦胧王', '金马号', '金马王', '倒置号', '圆圆号']
|
||||
// 标准化分类名称(通货->带4号,无4->带7号)
|
||||
const normalizeCat = (c) => {
|
||||
if (c === '通货') return '带4号'
|
||||
if (c === '无4') return '带7号'
|
||||
return c
|
||||
}
|
||||
sortedData = [...(data || [])].sort((a, b) => {
|
||||
const contentA = a.content || ''
|
||||
const contentB = b.content || ''
|
||||
const catA = contentA.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || a.category || ''
|
||||
const catB = contentB.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || b.category || ''
|
||||
const catA = normalizeCat(contentA.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || a.category || '')
|
||||
const catB = normalizeCat(contentB.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || b.category || '')
|
||||
const idxA = categoryOrder.indexOf(catA)
|
||||
const idxB = categoryOrder.indexOf(catB)
|
||||
return (idxA === -1 ? 999 : idxA) - (idxB === -1 ? 999 : idxB)
|
||||
|
|
@ -590,9 +596,11 @@ export default function News() {
|
|||
const avg = prices.length > 0 ? Math.round(prices.reduce((a,b) => a+b, 0) / prices.length) : 0
|
||||
return { cat, avg }
|
||||
}).filter(c => c.avg > 0)
|
||||
// 按平均价格从低到高排序
|
||||
// 分类名称标准化并按固定顺序排序
|
||||
catAvg.sort((a, b) => a.avg - b.avg)
|
||||
const sortedCats = catAvg.map(c => c.cat)
|
||||
const categoryOrder = ['带4号', '带7号', '永恒号', '天马号', '天马王', '金山号', '金山王', '钻石号', '朦胧号', '朦胧王', '金马号', '金马王', '倒置号', '圆圆号']
|
||||
const sortedCats = categoryOrder.filter(cat => catAvg.some(c => c.cat === cat))
|
||||
.concat(catAvg.filter(c => !categoryOrder.includes(c.cat)).map(c => c.cat))
|
||||
|
||||
return sortedCats.map(cat => {
|
||||
const rowData = packagings.map(pkg => calcAvg(pkg, cat))
|
||||
|
|
|
|||
Loading…
Reference in New Issue