统一分类排序和名称标准化

This commit is contained in:
甲辰生产 2026-04-11 22:21:22 +08:00
parent 2b1044ddb2
commit 238383d3d8
1 changed files with 12 additions and 4 deletions

View File

@ -109,11 +109,17 @@ export default function News() {
let sortedData = data || [] let sortedData = data || []
if (activeTab === 'deal') { if (activeTab === 'deal') {
const categoryOrder = ['带4号', '带7号', '永恒号', '天马号', '天马王', '金山号', '金山王', '钻石号', '朦胧号', '朦胧王', '金马号', '金马王', '倒置号', '圆圆号'] const categoryOrder = ['带4号', '带7号', '永恒号', '天马号', '天马王', '金山号', '金山王', '钻石号', '朦胧号', '朦胧王', '金马号', '金马王', '倒置号', '圆圆号']
// ->44->7
const normalizeCat = (c) => {
if (c === '通货') return '带4号'
if (c === '无4') return '带7号'
return c
}
sortedData = [...(data || [])].sort((a, b) => { sortedData = [...(data || [])].sort((a, b) => {
const contentA = a.content || '' const contentA = a.content || ''
const contentB = b.content || '' const contentB = b.content || ''
const catA = contentA.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || a.category || '' const catA = normalizeCat(contentA.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || a.category || '')
const catB = contentB.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || b.category || '' const catB = normalizeCat(contentB.match(/分类:\s*(.+?)(?:\n|$)/)?.[1]?.trim() || b.category || '')
const idxA = categoryOrder.indexOf(catA) const idxA = categoryOrder.indexOf(catA)
const idxB = categoryOrder.indexOf(catB) const idxB = categoryOrder.indexOf(catB)
return (idxA === -1 ? 999 : idxA) - (idxB === -1 ? 999 : idxB) 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 const avg = prices.length > 0 ? Math.round(prices.reduce((a,b) => a+b, 0) / prices.length) : 0
return { cat, avg } return { cat, avg }
}).filter(c => c.avg > 0) }).filter(c => c.avg > 0)
// //
catAvg.sort((a, b) => a.avg - b.avg) 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 => { return sortedCats.map(cat => {
const rowData = packagings.map(pkg => calcAvg(pkg, cat)) const rowData = packagings.map(pkg => calcAvg(pkg, cat))