diff --git a/backend/app/routers/information.py b/backend/app/routers/information.py
index e620732..633999b 100644
--- a/backend/app/routers/information.py
+++ b/backend/app/routers/information.py
@@ -1210,7 +1210,7 @@ async def batch_parse_deals(text: str = Body(..., embed=True)):
3. 价格:¥xxx,xxx 格式,去掉逗号转为数字
4. 评级/包装:PC69/PMG68/爱藏67+/爱藏67 标十 标百 单张
5. 出售者:人名
-6. 号码分类:根据冠字号数字特征判断(圆圆号/倒置号/金马王/金马号/金山王/天马王/金山号/天马号/朦胧王/朦胧号/如意号/钻石/永恒/无4/通货)
+6. 号码分类:根据冠字号数字特征判断(圆圆号/倒置号/金马王/金马号/金山王/天马王/金山号/天马号/朦胧王/朦胧号/如意号/钻石号/永恒号/带7号/带4号)
【输出格式】
返回JSON数组,每条记录包含:
@@ -1364,9 +1364,9 @@ def parse_deals_locally(text: str, default_packaging: str = '', default_date: st
elif not any(c in d for c in ['1','3','4','5','7']): category = '朦胧王'
elif not any(c in d for c in ['3','4','5','7']): category = '朦胧号'
elif not any(c in d for c in ['1','3','4','7']): category = '如意号'
- elif not any(c in d for c in ['3','4','7']): category = '钻石'
- elif not any(c in d for c in ['4','7']): category = '永恒'
- elif '4' not in d: category = '无4'
+ elif not any(c in d for c in ['3','4','7']): category = '钻石号'
+ elif not any(c in d for c in ['4','7']): category = '永恒号'
+ elif '4' not in d: category = '带7号'
# 提取评级机构 PCGS/PMG/ACG/爱藏
grade = ''
diff --git a/frontend/src/pages/Add.jsx b/frontend/src/pages/Add.jsx
index 9ccd98f..47e1382 100644
--- a/frontend/src/pages/Add.jsx
+++ b/frontend/src/pages/Add.jsx
@@ -2,7 +2,7 @@
import React, { useState, useRef } from 'react'
import { APP_VERSION } from '../config/version'
const API_BASE = localStorage.getItem('API_BASE') || ''
-const numberCategoryOptions = [{value:'无2347',label:'无2347'},{value:'无347',label:'无347'},{value:'无247',label:'无247'},{value:'无47',label:'无47'},{value:'无4',label:'无4'},{value:'带4',label:'带4'},{value:'其他',label:'其他'}];
+const numberCategoryOptions = [{value:'无2347',label:'无2347'},{value:'无347',label:'无347'},{value:'无247',label:'无247'},{value:'无47',label:'无47'},{value:'带7号',label:'带7号'},{value:'带4号',label:'带4号'},{value:'其他',label:'其他'}];
// 字段转换函数
const convertField = (obj) => {
@@ -111,10 +111,10 @@ export default function Add() {
if (!d.includes('1') && !d.includes('3') && !d.includes('4') && !d.includes('5') && !d.includes('7')) return '朦胧王'
if (!d.includes('3') && !d.includes('4') && !d.includes('5') && !d.includes('7')) return '朦胧号'
if (!d.includes('1') && !d.includes('3') && !d.includes('4') && !d.includes('7')) return '如意号'
- if (!d.includes('3') && !d.includes('4') && !d.includes('7')) return '钻石'
- if (!d.includes('4') && !d.includes('7')) return '永恒'
- if (!d.includes('4')) return '无4'
- return '通货'
+ if (!d.includes('3') && !d.includes('4') && !d.includes('7')) return '钻石号'
+ if (!d.includes('4') && !d.includes('7')) return '永恒号'
+ if (!d.includes('4')) return '带7号'
+ return '带4号'
}
// 根据 URL 参数确定默认标签
@@ -204,8 +204,8 @@ export default function Add() {
else if (!digits.includes('3') && !digits.includes('4') && !digits.includes('7')) cat = '无347'
else if (!digits.includes('2') && !digits.includes('4') && !digits.includes('7')) cat = '无247'
else if (!digits.includes('4') && !digits.includes('7') && digits.includes('2') && digits.includes('3')) cat = '无47'
- else if (digits.includes('7') && !digits.includes('4')) cat = '无4'
- else if (digits.includes('4')) cat = '带4'
+ else if (digits.includes('7') && !digits.includes('4')) cat = '带7号'
+ else if (digits.includes('4')) cat = '带4号'
else cat = '其他'
}
setForm(prev => ({ ...prev, numberCategory: cat }))
@@ -320,8 +320,8 @@ export default function Add() {
else if (!digits.includes('3') && !digits.includes('4') && !digits.includes('7')) cat = '无347'
else if (!digits.includes('2') && !digits.includes('4') && !digits.includes('7')) cat = '无247'
else if (!digits.includes('4') && !digits.includes('7') && digits.includes('2') && digits.includes('3')) cat = '无47'
- else if (digits.includes('7') && !digits.includes('4')) cat = '无4'
- else if (digits.includes('4')) cat = '带4'
+ else if (digits.includes('7') && !digits.includes('4')) cat = '带7号'
+ else if (digits.includes('4')) cat = '带4号'
else cat = '其他'
formWithCategory.numberCategory = cat
}
@@ -967,7 +967,7 @@ export default function Add() {
newResult[idx].category = e.target.value
setBatchResult(newResult)
}} style={{ width: '100%', padding: '4px', background: 'rgba(0,0,0,0.3)', border: '1px solid rgba(255,255,255,0.1)', borderRadius: '4px', color: '#fff', fontSize: '10px' }}>
- {['圆圆号','倒置号','金马王','金马号','金山王','天马王','金山号','天马号','朦胧王','朦胧号','如意号','钻石','永恒','无4','通货'].map(c => )}
+ {['圆圆号','倒置号','金马王','金马号','金山王','天马王','金山号','天马号','朦胧王','朦胧号','如意号','钻石号','永恒号','带7号','带4号'].map(c => )}
diff --git a/frontend/src/pages/Admin.jsx b/frontend/src/pages/Admin.jsx
index 84695fd..a9c3728 100644
--- a/frontend/src/pages/Admin.jsx
+++ b/frontend/src/pages/Admin.jsx
@@ -482,7 +482,10 @@ export default function Admin() {
-
+
+
+
+
diff --git a/frontend/src/pages/Edit.jsx b/frontend/src/pages/Edit.jsx
index 802fc66..118fc6e 100644
--- a/frontend/src/pages/Edit.jsx
+++ b/frontend/src/pages/Edit.jsx
@@ -46,7 +46,7 @@ const categoryOptions = [
{ value: '其他', label: '其他' }
]
-const numberCategoryOptions = [{value:'无2347',label:'无2347'},{value:'无347',label:'无347'},{value:'无247',label:'无247'},{value:'无47',label:'无47'},{value:'无4',label:'无4'},{value:'带4',label:'带4'},{value:'其他',label:'其他'}];
+const numberCategoryOptions = [{value:'无2347',label:'无2347'},{value:'无347',label:'无347'},{value:'无247',label:'无247'},{value:'无47',label:'无47'},{value:'带7号',label:'带7号'},{value:'带4号',label:'带4号'},{value:'其他',label:'其他'}];
const rarityOptions = [
{ value: '通货', label: '通货' },
{ value: '特色', label: '特色' },
@@ -157,8 +157,8 @@ export default function Edit() {
if (digits) {
if (!digits.includes('2') && !digits.includes('3') && !digits.includes('4') && !digits.includes('7')) cat = '无2347'
else if (!digits.includes('3') && !digits.includes('4') && !digits.includes('7')) cat = '无347'
- else if (digits.includes('4')) cat = '带4'
- else if (digits.includes('7')) cat = '无4'
+ else if (digits.includes('4')) cat = '带4号'
+ else if (digits.includes('7')) cat = '带7号'
else if (!digits.includes('4') && !digits.includes('7')) cat = '无47'
else if (!digits.includes('2') && !digits.includes('4') && !digits.includes('7')) cat = '无247'
else cat = '其他'
diff --git a/frontend/src/pages/Home.jsx b/frontend/src/pages/Home.jsx
index 1476144..90c9aab 100644
--- a/frontend/src/pages/Home.jsx
+++ b/frontend/src/pages/Home.jsx
@@ -282,7 +282,7 @@ export default function Home() {
{(dragonStats.dai4?.deals || 0) + (dragonStats.dai4?.wants || 0)}
-
无4
+
带7号
{dragonStats.wu4?.deals || 0}
{dragonStats.wu4?.wants || 0}
{(dragonStats.wu4?.deals || 0) + (dragonStats.wu4?.wants || 0)}
diff --git a/frontend/src/pages/List.jsx b/frontend/src/pages/List.jsx
index 03a758f..ba6d3d8 100644
--- a/frontend/src/pages/List.jsx
+++ b/frontend/src/pages/List.jsx
@@ -365,7 +365,7 @@ export default function List() {
bVal = rarityOrder[bVal] || 0
} else if (sortField === 'numberCategory') {
// 号码分类按自定义顺序排序
- const numberCategoryOrder = { '无2347': 1, '无347': 2, '无247': 3, '无47': 4, '无4': 5, '带4': 6, '其他': 7 }
+ const numberCategoryOrder = { '无2347': 1, '无347': 2, '无247': 3, '无47': 4, '带7号': 5, '带4号': 6, '其他': 7 }
aVal = numberCategoryOrder[aVal] || 99
bVal = numberCategoryOrder[bVal] || 99
}
@@ -408,7 +408,7 @@ export default function List() {
}
const getNumberCategoryColor = (cat) => {
- const colors = { '无2347': '#8b5cf6', '无347': '#ef4444', '无247': '#fbbf24', '无47': '#3b82f6', '无4': '#06b6d4', '带4': '#22c55e', '其他': '#64748b' };
+ const colors = { '无2347': '#8b5cf6', '无347': '#ef4444', '无247': '#fbbf24', '无47': '#3b82f6', '带7号': '#06b6d4', '带4号': '#22c55e', '其他': '#64748b' };
return colors[cat] || '#64748b';
};
@@ -520,7 +520,7 @@ export default function List() {
@@ -651,47 +651,6 @@ export default function List() {
{/* 行情tab内容 */}
{activeTab === 'deals' && (
- {/* 行情搜索和排序 */}
-
- setDealSearch(e.target.value)}
- style={{
- flex: 1,
- background: 'rgba(255,255,255,0.05)',
- border: '1px solid rgba(255,255,255,0.1)',
- color: '#fff',
- padding: '8px 12px',
- borderRadius: '8px',
- fontSize: '14px',
- outline: 'none'
- }}
- />
-
-
-
{dealsLoading ? (
加载中...
) : filteredDeals.length === 0 ? (
diff --git a/frontend/src/pages/Stats.jsx b/frontend/src/pages/Stats.jsx
index 97ee369..666341d 100644
--- a/frontend/src/pages/Stats.jsx
+++ b/frontend/src/pages/Stats.jsx
@@ -103,7 +103,7 @@ export default function Stats() {
status: { 'in_collection': '#22c55e', 'selling': '#f59e0b', 'sold': '#ef4444', 'grading': '#8b5cf6', 'repairing': '#f97316', 'transit': '#06b6d4', 'seeking': '#ec4899' },
category: { '自持': '#22c55e', '寄存': '#3b82f6', '寄售': '#f59e0b', '共有': '#8b5cf6', '寻号': '#06b6d4', '生肖钞': '#22c55e', '其他': '#64748b' },
profitLoss: { 'profit': '#22c55e', 'loss': '#ef4444' },
- numberCategory: { '无2347': '#8b5cf6', '无347': '#ef4444', '无247': '#fbbf24', '无47': '#3b82f6', '无4': '#06b6d4', '带4': '#22c55e', '其他': '#64748b' },
+ numberCategory: { '无2347': '#8b5cf6', '无347': '#ef4444', '无247': '#fbbf24', '无47': '#3b82f6', '带7号': '#06b6d4', '带4号': '#22c55e', '其他': '#64748b' },
version: {},
gradingCompany: {},
gradingScore: {},
@@ -146,7 +146,7 @@ export default function Stats() {
return Number(val).toLocaleString('zh-CN')
}
- const numberCategoryOrder = ['无2347', '无347', '无247', '无47', '无4', '带4', '其他']
+ const numberCategoryOrder = ['无2347', '无347', '无247', '无47', '带7号', '带4号', '其他']
const getSortedData = (data, type) => {
if (type === 'numberCategory') {
return [...data].sort((a, b) => {