From 8f613e37dd2342742179d018ade030677d823a38 Mon Sep 17 00:00:00 2001 From: FinStab Date: Tue, 1 Sep 2026 20:46:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=BA=E6=99=AF=E7=BB=8F?= =?UTF-8?q?=E9=AA=8C=E4=B8=8D=E5=8F=82=E4=B8=8E=E5=8C=B9=E9=85=8D=EF=BC=9A?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E7=9A=84=E5=9C=BA=E6=99=AF=E5=86=99=E5=85=A5?= =?UTF-8?q?=20matchState=20=E5=B9=B6=E9=9A=8F=20/api/match=20=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=EF=BC=88=E5=8D=95=E4=BA=BA=E8=AF=8A=E6=96=AD=E4=B8=8E?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=B2=97=E4=BD=8D=E6=AD=A4=E5=89=8D=E5=9D=87?= =?UTF-8?q?=E5=86=99=E6=AD=BB=E7=A9=BA=E6=95=B0=E7=BB=84=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=9C=BA=E6=99=AF=E7=BB=B4=E5=BA=A6=E6=81=92=200?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webui/app.js | 7 ++++--- webui/index.html | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/webui/app.js b/webui/app.js index 62f3875..cc12a9c 100644 --- a/webui/app.js +++ b/webui/app.js @@ -1301,7 +1301,7 @@ function renderEvoReplace(jobId) { } /* ================= 人岗匹配(三步向导) ================= */ -const matchState = { step: 1, skills: [], years: 0, result: null, profileText: "" }; +const matchState = { step: 1, skills: [], years: 0, result: null, profileText: "", scenarios: [] }; let lastProfile = null; // 最近一次解析的完整简历画像(结构化模板与导出用) function setMatchStep(n) { @@ -1387,6 +1387,7 @@ function applyParsedProfile(p, sourceDesc) { matchState.profileText = p.raw_masked_text || ""; matchState.skills = [...p.skills]; matchState.years = p.years || 0; + matchState.scenarios = [...(p.scenarios || [])]; // 场景经验参与匹配评分(此前解析后未传入) $("#resume-text").value = p.raw_masked_text || ""; const studentish = (p.education || "").includes("在读") || /应届|在读|大[一二三四]/.test(p.raw_masked_text || ""); @@ -1450,7 +1451,7 @@ $("#btn-run-match").onclick = async () => { try { const m = await post("/api/match", { job_id: jobId, skills: matchState.skills, years: matchState.years, - scenarios: [], + scenarios: matchState.scenarios, }); matchState.result = m; renderMatchResult(m); @@ -1622,7 +1623,7 @@ async function renderRecJobs(current) { box.innerHTML = `
计算中…
`; const others = CN.jobs.filter((j) => j.job_id !== current.job_id).slice(0, 12); const results = await Promise.all(others.map((j) => - post("/api/match", { job_id: j.job_id, skills: matchState.skills, years: matchState.years, scenarios: [] }) + post("/api/match", { job_id: j.job_id, skills: matchState.skills, years: matchState.years, scenarios: matchState.scenarios }) .then((m) => ({ job: j, m })).catch(() => null))); const top = results.filter(Boolean).sort((a, b) => b.m.total_score - a.m.total_score).slice(0, 3); box.innerHTML = top.map(({ job, m }) => ` diff --git a/webui/index.html b/webui/index.html index 4bfb7f1..57c1e09 100644 --- a/webui/index.html +++ b/webui/index.html @@ -705,7 +705,7 @@ - +