gaokao-pro 0.3.9 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/paths.js +54 -2
- package/package.json +1 -1
package/dist/paths.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// This is the parent-facing "all-paths" summary. It does NOT score or rank;
|
|
15
15
|
// it lists everything the kid is potentially eligible for, with `eligible`
|
|
16
16
|
// + `caveat` annotations so the parent can decide.
|
|
17
|
-
import { listTiqianProgramsByProvince, listZongheSchoolsByProvince, loadGaoshuiYundongdui2025, findXiaoceDetailBySchool } from "./datasets.js";
|
|
17
|
+
import { listTiqianProgramsByProvince, listZongheSchoolsByProvince, loadGaoshuiYundongdui2025, findXiaoceDetailBySchool, loadEmploymentOutcomes } from "./datasets.js";
|
|
18
18
|
import { provinceTiaojiInfo } from "./groups.js";
|
|
19
19
|
// ---- Eligibility helpers ----
|
|
20
20
|
// Approximate "score-floor" for high-bar programs. Used to filter "你这分能不能报"
|
|
@@ -185,7 +185,59 @@ export function paths(profile) {
|
|
|
185
185
|
// We don't loop the whole 强基 list here; instead let the user query xiaoce
|
|
186
186
|
// by-school per-school. Surface top-tier in summary only.
|
|
187
187
|
// (Intentional: paths is a province-filtered view; 强基 is national.)
|
|
188
|
-
// 4)
|
|
188
|
+
// 4) 本科批 lane — surface 二本/民办 candidates from employment-outcomes
|
|
189
|
+
// for personas in 380-510 score band. Personas above 540 typically aim
|
|
190
|
+
// at 985/211 (already covered by recommend/roadmap); 本科批 lane is meant
|
|
191
|
+
// to make 寒门/中产 二本/民办 decisions visible. We include all schools
|
|
192
|
+
// tagged 省重点 / 双一流 (非 985/211) / 民办 — these are the "lower-tier
|
|
193
|
+
// alternative" path. Caveat distinguishes 民办 学费 / 公办二本 / 二本 行业头部.
|
|
194
|
+
//
|
|
195
|
+
// Score-floor logic: 二本 lane shows only when score < 540 (above that
|
|
196
|
+
// recommend already covers 985/211); also 民办 only surfaces when
|
|
197
|
+
// explicitly opted in (score ≤ 450) to avoid steering 中产 toward 民办.
|
|
198
|
+
if (profile.score !== null && profile.score < 540) {
|
|
199
|
+
const employment = loadEmploymentOutcomes();
|
|
200
|
+
const showMinban = profile.score < 460;
|
|
201
|
+
for (const s of (employment.schools || [])) {
|
|
202
|
+
const tier = s.tier_label || "";
|
|
203
|
+
// include 省重点 + 双一流 non-985/211 + 民办 (民办 gated by score)
|
|
204
|
+
const isErben = tier === "省重点" || tier === "双一流";
|
|
205
|
+
const isMinban = tier === "民办";
|
|
206
|
+
if (!isErben && !isMinban)
|
|
207
|
+
continue;
|
|
208
|
+
if (isMinban && !showMinban)
|
|
209
|
+
continue;
|
|
210
|
+
if (!schoolMatch(s.school))
|
|
211
|
+
continue;
|
|
212
|
+
let caveat = null;
|
|
213
|
+
if (isMinban) {
|
|
214
|
+
caveat = "民办本科 学费 2.5-5 万/年 (中西部 2.5-3.5 / 北上沿海 3.5-5) + 住宿 1.5-2.5 万/年; 4 年总投入 20-35 万; 推免 ≈ 0; 寒门强烈避; 行业头部例外 (大连东软/吉林动画/黄河科技/三亚学院)";
|
|
215
|
+
}
|
|
216
|
+
else if (tier === "双一流") {
|
|
217
|
+
caveat = "双一流非 985/211; 学费 ~6 千/年; 中产主力";
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
caveat = "省重点公办二本; 学费 ~5-6 千/年; 寒门/中产 主战场";
|
|
221
|
+
}
|
|
222
|
+
pathways.push({
|
|
223
|
+
category: "本科批",
|
|
224
|
+
program_type: tier,
|
|
225
|
+
school: s.school,
|
|
226
|
+
zs_code: s.zs_code,
|
|
227
|
+
eligible: true,
|
|
228
|
+
caveat,
|
|
229
|
+
details: {
|
|
230
|
+
city: s.city,
|
|
231
|
+
tier_label: tier,
|
|
232
|
+
specialty_strength: s.specialty_strength,
|
|
233
|
+
rates: s.rates,
|
|
234
|
+
notable_employers: (s.notable_employers || []).slice(0, 5),
|
|
235
|
+
confidence_level: s.confidence_level
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// 5) 高水平运动队 if sport tier provided
|
|
189
241
|
if (profile.sport_tier) {
|
|
190
242
|
const gaoshui = loadGaoshuiYundongdui2025();
|
|
191
243
|
for (const s of gaoshui.schools) {
|