|
|
1 viikko sitten | |
|---|---|---|
| public | 1 viikko sitten | |
| src | 1 viikko sitten | |
| word | 2 kuukautta sitten | |
| .gitignore | 2 viikkoa sitten | |
| API进度查询接口对接文档.md | 1 viikko sitten | |
| README.md | 1 viikko sitten | |
| favicon.ico | 2 viikkoa sitten | |
| favicon2.ico | 2 viikkoa sitten | |
| index.html | 2 kuukautta sitten | |
| package-lock.json | 3 viikkoa sitten | |
| package.json | 3 viikkoa sitten | |
| tsconfig.json | 2 viikkoa sitten | |
| tsconfig.node.json | 2 viikkoa sitten | |
| vite.config.ts | 2 viikkoa sitten |
申勤物业数字化平台 — 面向物业项目全生命周期的管理后台系统,涵盖项目台账、市场信息、投标准备、招标监控、投标结果等核心业务模块,并集成基于 Mapbox 的"一张图"空间可视化能力。
| 分类 | 技术 | 版本 |
|---|---|---|
| 框架 | Vue 3 | ^3.4 |
| 语言 | TypeScript | ^5.3 |
| 构建 | Vite | ^5.1 |
| 路由 | Vue Router | ^4.3 |
| 状态管理 | Pinia | ^2.1 |
| UI 组件库 | Element Plus | ^2.6 |
| 网络请求 | Axios | ^1.6 |
| 地图 | Mapbox GL | ^3.27 |
| 地图标注 | Mapbox GL Draw | ^1.5 |
| 地理空间分析 | @turf/turf | ^7.3 |
| 图表 | ECharts | ^5.5 |
| 工具库 | moment.js / qs / markdown-it / vue-clipboard3 / wellknown | — |
npm install
npm run dev
开发服务器启动后访问 http://localhost:5173(Vite 默认端口)。所有 /api 前缀的请求会被代理到后端服务。
npm run build
执行 vue-tsc 类型检查后,Vite 将项目编译到 dist/ 目录。
npm run preview
项目使用运行时注入的方式加载配置,避免构建时硬编码。配置文件位于 public/static/config/config.js,会在 HTML 入口处被加载,并将配置挂载到 window.CONFIG。
前端通过 src/utils/config.ts 读取 window.CONFIG,支持读取失败时的默认值兜底。
window.CONFIG 包含以下字段:
| 字段 | 说明 |
|---|---|
OAUTH_URL |
认证中心服务地址(登录/改密等) |
DMS_URL |
文档管理服务地址(内容 CRUD、文件上传) |
SQ_URL |
申勤业务服务地址(统计、招标生成等) |
ONEMAP_URL |
一张图服务地址 |
FILEPATH |
文件访问基路径 |
COLUMNIDARR |
DMS 栏目 ID 数组 |
MODELIDARR |
DMS 模型 ID 数组 |
TASKLIST |
任务配置列表 |
MAPBOX_ACCESS_TOKEN |
Mapbox 访问令牌 |
MAPBOX_TILES_NORMAL |
普通地图瓦片 URL |
MAPBOX_TILES_BLUE |
蓝色风格地图瓦片 URL |
MAPBOX_TILES_YXT |
杨浦特地图瓦片 URL |
部署注意:上线前必须修改
public/static/config/config.js中的服务地址与 Mapbox Token 为实际生产值。
vite.config.ts 中配置了开发代理:
/api → http://121.43.55.7:10081(路径前缀 /api 会被去掉)
如需代理到本地或其他后端,修改 server.proxy 中的 target 即可。
sq_manage/
├── public/
│ ├── favicon.ico
│ └── static/
│ ├── config/config.js # ⭐ 运行时配置(后端地址 / Mapbox Token)
│ ├── data/ # 静态数据文件(md / html)
│ └── plugins/ # 第三方插件(如 createAuth)
│
├── src/
│ ├── api/common.ts # ⭐ 后端 API 接口集合
│ ├── components/
│ │ ├── bidResult/ # 投标结果公共组件(AddContent、AddProject)
│ │ ├── map/ # 地图绘制组件(MapDraw)
│ │ ├── renewal/ # 续标相关组件(BidRenewal、Renew)
│ │ ├── tenderpool/ # 招标池组件(Intention、Monitor、Notice)
│ │ └── view/ # 通用视图组件(GeoJsonEditor)
│ ├── layouts/MainLayout.vue # 主布局(侧边栏 + 顶部 + 内容区)
│ ├── router/index.ts # ⭐ 路由配置(Hash 模式)
│ ├── stores/user.ts # Pinia 用户状态(登录/登出/token)
│ ├── styles/ # 全局样式 & 自定义 Element Plus 主题
│ ├── types/ # TypeScript 类型声明(md.d.ts / window.d.ts)
│ ├── utils/
│ │ ├── config.ts # 读取 window.CONFIG
│ │ ├── request.ts # Axios 实例 + token 拦截器
│ │ ├── encrypt.ts # 加密工具
│ │ └── util.ts # 通用工具函数
│ ├── views/
│ │ ├── home/Dashboard.vue # 首页看板(ECharts 图表)
│ │ ├── map/OneMap.vue # 一张图(Mapbox 地图 + GeoJSON 展示)
│ │ ├── ledger/Projects.vue # 项目台账列表
│ │ ├── ledger/ProjectDetail.vue # 项目台账详情
│ │ ├── market/Market.vue # 市场信息
│ │ ├── bidPreparation/Renewal.vue # 续标列表
│ │ ├── bidPreparation/RenewalDetail.vue # 续标详情
│ │ ├── bidPreparation/RenewalExpireDetail.vue # 续标到期详情
│ │ ├── bidPreparation/RenewalXQDetail.vue # 续标详情(XQ)
│ │ ├── bidMonitor/TenderPool.vue # 招标池 / 开标监控
│ │ ├── bidResult/BidResult.vue # 投标结果
│ │ └── login/Login.vue # 登录页
│ ├── App.vue
│ ├── main.ts
│ └── env.d.ts
│
├── word/ # 产品需求 & 设计文档
├── harness/ # AI Agent 管理文件(功能清单、进度、初始化脚本)
│ ├── feature_list.json # 功能清单与状态追踪
│ ├── progress.md # 会话进度日志
│ ├── init.sh / init.ps1 # 一键初始化(安装依赖 + 验证)
│ ├── session-handoff.md # 会话交接模板
│ ├── clean-state-checklist.md # 收尾检查清单
│ ├── evaluator-rubric.md # 评审评分表
│ └── quality-document.md # 代码库质量快照
├── AGENTS.md # AI Agent 操作手册(根指令文件)
├── vite.config.ts # ⭐ Vite 构建配置(别名 @、开发代理)
├── tsconfig.json
├── index.html
└── package.json
| 模块 | 路由 | 说明 |
|---|---|---|
| 登录 | / |
用户登录,token 存储到 localStorage |
| 首页看板 | /#/dashboard |
项目统计、图表可视化 |
| 一张图 | /#/onemap |
Mapbox 地图展示物业项目空间分布,支持 GeoJSON 绘制 |
| 项目台账 | /#/projects |
物业项目全生命周期管理,含详情页 |
| 市场信息 | /#/market |
市场情报 & 竞争对手信息 |
| 续标管理 | /#/renewal |
投标准备阶段的续标工作流;核心指挥页 /#/renewal-expire-detail/:id 覆盖标书上传、生成与获取 |
| 招标池 | /#/tender-pool |
招标公告、投标意向、开标监控 |
| 投标结果 | /#/bid-result |
投标结果录入与展示 |
项目采用基于 Token 的认证机制,核心逻辑在 src/utils/request.ts 和 src/stores/user.ts:
api.login(),成功后 token 存入 localStoragelocalStorage 读取 token,附加到请求头 token 字段无效token 或 401/403 状态码时,自动清除本地登录态并跳转回登录页后端接口统一由 src/api/common.ts 导出,按服务归属分为三类:
| 服务 | 前缀 | 用途 |
|---|---|---|
| OAUTH | CONFIG.OAUTH_URL |
登录、修改密码 |
| DMS | CONFIG.DMS_URL |
栏目查询、内容 CRUD、文件上传、审核 |
| SQ | CONFIG.SQ_URL |
统计、历史合作方、招标生成、标书生成进度查询 |
常用 SQ 能力说明:
| 接口方法 | 路径 | 说明 |
|---|---|---|
getGenerateTender |
POST /tender/generate |
发起 AI 标书生成(投续标 ID) |
getTenderProgress |
GET /tender/api/v1/jobs/{txbId}/progress |
查询标书生成步骤进度 |
对接说明见仓库根目录 API进度查询接口对接文档.md。
所有请求走 /api 代理前缀,开发时由 Vite 转发到后端。
@ → src/(在 vite.config.ts 和 tsconfig.json 中均已配置)base 设为 ./,产物可直接部署到任意子路径无效token 或 HTTP 401/403 时,前端会自动清理登录态并跳转登录页uploadFile 接口使用 multipart/form-data,需传 FormDataAGENTS.md,通过 harness/init.ps1(PowerShell)或 bash harness/init.sh(Git Bash/WSL)一键完成依赖安装与基线验证Internal use only.
2023-07-10 1、 初始版本,包含基础功能 2、 登录流程,添加 token 过期检测 3、 首页看板图表,添加项目统计 4、 项目台账模块,添加项目详情页 5、 市场信息模块,添加竞争对手信息 6、 续标管理模块,添加续标到期详情页 7、 招标池模块,添加开标监控 8、 投标结果模块,添加投标结果录入与展示 9、 登录页,添加登录失败提示
2023-07-17 1、 优化登录页,添加登录失败提示 2、 优化项目台账模块,添加项目详情页的项目统计 3、 优化市场信息模块,添加竞争对手详情页 4、 优化续标管理模块,添加续标详情页的项目统计 5、 优化招标池模块,添加开标监控页的项目统计 6、 优化投标结果模块,添加投标结果详情页的项目统计
2023-08-04 1、 增加Mapbox引擎,展示物业项目空间分布,支持 GeoJSON 绘制 2、 增加JSONEDIT功能,用于编辑项目空间分布的 GeoJSON 数据 3、 优化项目台账模块,添加项目详情页的项目统计 4、 优化市场信息模块,添加竞争对手详情页 5、 优化续标管理模块,添加续标详情页的项目统计 6、 优化招标池模块,添加开标监控页的项目统计 7、 优化投标结果模块,添加中标流程功能,包含中标确认、中标结果展示、中标项目详情
2023-08-11 1、 优化Mapbox引擎,展示物业项目空间分布,支持 GeoJSON 绘制 2、 优化JSONEDIT功能,用于编辑项目空间分布的 GeoJSON 数据 3、 优化市场信息模块,添加竞争对手详情页 4、 优化续标管理模块,添加续标详情页的项目统计 5、 优化招标池模块,添加开标监控页的项目统计 6、 优化投标结果模块,添加投标结果详情页的项目统计
2023-08-28 1、 优化接口调用AI生成标书功能,支持文件上传 2、 优化判断标书文件格式是否正确,仅支持 .docx 格式 3、 优化匹配招标公告功能,根据项目信息自动匹配相关招标 4、 优化检测标书是否中标功能,根据项目信息自动检测标书是否中标, 5、 优化确认中标功能,手动确认中标并生成新的项目
2023-09-01 1、 增加AI Agent 开发,项目已集成 Harness 工程文件 2、 修改项目布局和Logo图标
2026-09-10
1、 优化投续标指挥页「标书制作」:任务4完成后可上传资料;行内「生成标书」+ 招标/采购/参考/澄清四类上传
2、 任务5更名为「招标公告与需求拆解」;待确认前须具备招标文件、采购需求与有效参考标书(docx)
3、 对接标书生成进度查询接口 getTenderProgress,获取标书按 c_ai_sczt(完成/失败/生成中)分流处理
4、 生成中刷新页面不再误回退到「生成标书」;失败仅在主动「获取标书」或进度失败时回退并清空状态
5、 续标创建时,在管项目历史标书为 docx 则写入投续标参考标书字段 c_ckbs
6、 修复投标结果页组件导入路径大小写,保证 Windows 下 vue-tsc 构建通过
7、 增加项目详情页的地图展示,支持点击面展示相关信息,如有员工可查看员工相关数据