From 44609be8c717db5f2b4219169ad2e6b107f66013 Mon Sep 17 00:00:00 2001 From: Sisyphus Date: Fri, 26 Jun 2026 16:25:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BA=BF=E7=B4=A2=E6=B1=A0=E5=93=81?= =?UTF-8?q?=E7=B1=BB=E9=80=89=E9=A1=B9=E6=89=A9=E5=B1=95=E3=80=81=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E6=95=B0=E9=87=8F=E5=88=97=E3=80=81=E9=87=87=E9=9B=86?= =?UTF-8?q?=E5=99=A8=E6=8C=89=E9=92=AE=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- apps/web/.env.production | 2 +- apps/web/src/components/InquiryPage.tsx | 27 +++++++++++----------- apps/web/src/components/RuleCenterPage.tsx | 10 +++++--- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/apps/web/.env.production b/apps/web/.env.production index afb3e74..3c51e33 100644 --- a/apps/web/.env.production +++ b/apps/web/.env.production @@ -1 +1 @@ -NEXT_PUBLIC_API_URL= +NEXT_PUBLIC_API_URL=/api diff --git a/apps/web/src/components/InquiryPage.tsx b/apps/web/src/components/InquiryPage.tsx index 94435fc..1184b38 100644 --- a/apps/web/src/components/InquiryPage.tsx +++ b/apps/web/src/components/InquiryPage.tsx @@ -35,7 +35,7 @@ function mapLead(raw: any): Lead { id: raw.id, title: raw.title, star: raw.star || 0, - level: raw.level || 'C', + level: raw.level ? raw.level + '级' : 'C级', amount: raw.amount || '待确认', status: raw.status || '待复核', deadline: raw.deadline || '', @@ -58,9 +58,9 @@ function mapLead(raw: any): Lead { } const STATUS_OPTIONS = ['全部状态', '待复核', '待跟进', '跟进中', '已转询价', '已转协同', '已成交', '无效线索'] -const LEVEL_OPTIONS = ['全部级别', 'S级', 'A级', 'B级'] -const CAT_OPTIONS = ['全部品类', '防火门', '配电箱', '电线电缆', '阀门', '钢材', '涂料', '混凝土'] -const SOURCE_OPTIONS = ['全部来源', 'PowerChina 招采', '新矿集团', '发改委审批', '行业资讯'] +const LEVEL_OPTIONS = ['全部级别', 'S级', 'A级', 'B级', 'C级', 'D级'] +const CAT_OPTIONS = ['全部品类', '防火门', '配电箱', '电线电缆', '阀门', '钢材', '涂料', '混凝土', '变压器', '水泵', '风机', '管材', '开关', '灯具', '仪表', '电机'] +const SOURCE_OPTIONS = ['全部来源', '中电建', '新矿集团', '中核集团'] const PERSON_OPTIONS = ['全部人员', '郑钊', '赵主任', '运营管理员', '未分配'] function getStatusClass(status: string) { @@ -110,7 +110,7 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri const showToast = (msg: string) => { setToast(msg); setTimeout(() => setToast(''), 2500) } - const [fTime, setFTime] = useState('全部时间') + const [fTime, setFTime] = useState('全部日期') const [fStar, setFStar] = useState('全部星级') const [fStatus, setFStatus] = useState('全部状态') const [fLevel, setFLevel] = useState('全部级别') @@ -118,7 +118,7 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri const [fSource, setFSource] = useState('全部来源') const [fPerson, setFPerson] = useState('全部人员') - const loadLeads = useCallback(async (star?: string, status?: string, level?: string, cat?: string, source?: string, person?: string) => { + const loadLeads = useCallback(async (star?: string, status?: string, level?: string, cat?: string, source?: string, person?: string, timeRange?: string) => { setLoading(true) const params = new URLSearchParams() if (star && star !== '全部星级') { @@ -128,11 +128,12 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri else if (star === '2星及以下') params.set('star', '2星及以下') } if (status && status !== '全部状态') params.set('status', status) - if (level && level !== '全部级别') params.set('level', level) + if (level && level !== '全部级别') params.set('level', level.replace('级', '')) if (cat && cat !== '全部品类') params.set('category', cat) if (source && source !== '全部来源') params.set('source', source) if (person && person !== '全部人员' && person !== '未分配') params.set('assignedTo', person) if (person === '未分配') params.set('assignedTo', '未分配') + if (timeRange && timeRange !== '全部日期') params.set('timeRange', timeRange) try { const qs = params.toString() const data: any[] = await fetch(`${API}${qs ? '?' + qs : ''}`).then(r => r.json()) @@ -144,10 +145,10 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri setLoading(false) }, []) - useEffect(() => { loadLeads(fStar, fStatus, fLevel, fCat, fSource, fPerson) }, [loadLeads, fStar, fStatus, fLevel, fCat, fSource, fPerson]) + useEffect(() => { loadLeads(fStar, fStatus, fLevel, fCat, fSource, fPerson, fTime) }, [loadLeads, fStar, fStatus, fLevel, fCat, fSource, fPerson, fTime]) const refreshLeads = async () => { - await loadLeads(fStar, fStatus, fLevel, fCat, fSource, fPerson) + await loadLeads(fStar, fStatus, fLevel, fCat, fSource, fPerson, fTime) } const totalPages = Math.ceil(filtered.length / pageSize) @@ -392,7 +393,7 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri
{[ - { label: '时间范围', value: fTime, set: setFTime, opts: ['全部时间', '今天', '昨天', '本周', '本月'] }, + { label: '公告日期', value: fTime, set: setFTime, opts: ['全部日期', '今天', '昨天', '本周', '本月'] }, { label: '星级', value: fStar, set: setFStar, opts: ['全部星级', '5星', '4星', '3星', '2星及以下'] }, { label: '状态', value: fStatus, set: setFStatus, opts: STATUS_OPTIONS }, { label: '甲方级别', value: fLevel, set: setFLevel, opts: LEVEL_OPTIONS }, @@ -445,7 +446,6 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri 星级 甲方级别 金额(万) - 数量 状态 投标截止 公告日期 @@ -454,9 +454,9 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri {loading ? ( - 加载中... + 加载中... ) : pageLeads.length === 0 ? ( - 暂无数据 + 暂无数据 ) : pageLeads.map(lead => { const stars = '★'.repeat(lead.star) + '☆'.repeat(5 - lead.star) return ( @@ -476,7 +476,6 @@ export default function InquiryPage({ onLeadDetail }: { onLeadDetail?: (id: stri {lead.amount} - {lead.quantity ? `${lead.quantity}${lead.unit || ''}` : '-'} {lead.status} {lead.deadline ? lead.deadline.slice(5, 10) : '-'} {lead.publishTime ? lead.publishTime.slice(0, 10) : '-'} diff --git a/apps/web/src/components/RuleCenterPage.tsx b/apps/web/src/components/RuleCenterPage.tsx index 6406fdd..404c66b 100644 --- a/apps/web/src/components/RuleCenterPage.tsx +++ b/apps/web/src/components/RuleCenterPage.tsx @@ -796,12 +796,16 @@ export default function RuleCenterPage() {
) : 全部} - +