# meiyuzhou **Repository Path**: ping1991/meiyuzhou ## Basic Information - **Project Name**: meiyuzhou - **Description**: 煤宇宙,煤炭产业上下游产业的宇宙 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-08-13 - **Last Updated**: 2026-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 煤宇宙 CoalNav 晋陕蒙新四省煤炭产业企业检索导航(V1:纯 Next.js 单体,部署腾讯云 EdgeOne Pages)。 ## 目录结构约定 | 目录 | 用途 | |---|---| | `app/` | Next.js App Router 页面与 Route Handlers(`app/api/**/route.ts`) | | `components/` | 可复用 React 组件(检索筛选、企业卡片等) | | `data/` | 本地 JSON 数据(随应用打包):`regions.json` / `enterprises.json` / `licenses.json` / `sources.json` | | `lib/` | 数据服务与工具(内存加载、查询过滤、类型定义),`lib/data.ts` 等 | | `scripts/` | 本地采集/校验/合规脚本(**仅本地运行,不部署**) | | `docs/` | 需求/产品/技术/实施文档 | ## 开发命令 ```bash npm install # 安装依赖 npm run dev # 本地开发 http://localhost:3000 npm run build # 构建(前置数据校验,非法数据阻断构建) npm run start # 生产模式运行 npm run lint # ESLint 检查 npm run validate # 数据校验(zod Schema + 引用完整性 + 信用代码 + 联系方式合规) npm run self-check# 采集框架核心函数自测 npm run publish:data # 采集产出合并发布到 data/ ``` ## 数据采集与发布(M3,仅本地运行) ```bash npx tsx scripts/crawl/index.ts --dry-run # 查看采集计划(不抓取) npx tsx scripts/crawl/index.ts --batch luliang # 吕梁批次采集(断点续采) npx tsx scripts/crawl/index.ts --batch yulin # 榆林批次采集 npx tsx scripts/crawl/index.ts --reset # 清空断点续采状态重采 ``` - 来源配置:`scripts/crawl/config/*.json`(逐站确认 URL 后 `enabled: true` + `status: active`) - 采集产出:`scripts/crawl/output/*.json` → `npm run validate` 校验通过 → `npm run publish:data` 合并到 `data/` - 断点续采:`scripts/crawl/state.json`(任务状态/去重表/快照索引),失败源可重复执行续采 - 原文快照:`scripts/crawl/snapshots/{source_id}/{date}/`(供追溯复核) ## API 清单(V1 Route Handlers) 响应统一包裹 `{ code, message, data }`: | 方法 | 路径 | 说明 | |---|---|---| | GET | `/api/enterprises/search` | 企业多维检索(keyword/province/city/county/chain_node/ownership/status/standard_level/capacity_min/capacity_max/compliance/sort/page/page_size) | | GET | `/api/enterprises/{id}` | 企业详情(证照状态实时派生 + 联系方式脱敏) | | GET | `/api/regions/tree` | 区域树(省→市→县) | | GET | `/api/stats/overview` | 统计概览(总量/省份/环节/状态/合规数) | ## 检索参数 URL 化 `/search?keyword=xxx&province=140000&city=141100&county=141102&chain_node=mining&compliance=1&sort=capacity&page=2` —— 任意筛选条件可分享、可回退。 ## 数据更新流程 采集(`scripts/crawl/`)→ `npm run validate` 校验 → git push → EdgeOne Pages 自动构建发布(构建命令 `npm run build`,内置校验)。 详见 `docs/04-V1实施文档.md` 与 `docs/09-EdgeOne部署手册.md`。