# 开发日志 ## 2026-10-15:新增 Web 数据分析页面(W6) - 新增 `src/views/analysis/index.vue` + `src/api/analysis/index.js`。 - 布局:处理时效(按级别)与积分排行(积分/上报/兑换三 Tab)左右一行;隐患分类分布(echarts 横向柱状)、隐患级别分布(echarts 饼图);底部月度安全运营报告(月份选择 + 导出)。 - 接口:`analysis/stats/category`·`stats/level`·`timeliness/level`·`ranking/points|report|exchange`·`report/monthly`(+`/export`)。 - 接口修正:`report/monthly` 与 `/export` 实际还需**必填参数 `year`**(api.json 文档未写,联调报错 500 `Required request parameter 'year' ... is not present`);已补 `year` 并新增年份选择(默认当前年)。 - 按甲方调整:**去掉隐患热力图、去掉顶部筛选列**;“处理时效漏斗”与“积分排行”改为左右布局占一行。 - 说明:原型“超期未处理表”无对应接口,未实现;导出用 `file-saver` + `blobValidate` 处理。 - 菜单(需后端配置):一级「分析与风控」→「数据分析」,路由 `analysis/index`,组件 `analysis/index`(`/analysis/index`)。 - 验证:`eslint --no-ignore` 通过、`npm run build:prod` 通过(仅既有 warning)。 ## 2026-10-15:新增 Web 安全兑换管理页面(W5) - 新增 `src/views/exchange/security/index.vue`:安全校验总开关(`switch/status` + `switch/toggle`)、兑换限额(每日/每月/每年/次数/单笔最小最大)、预警与大额审批(快速兑换阈值+窗口、大额阈值、大额审批开关)、防刷配置(上报/积分获取/兑换/自报自审)。 - 新增 `src/api/exchange/config.js`:`exchange/config/active`·`switch/status`·`switch/toggle`·`add`·`updateById`、`anti/farm/active`·`updateById`。 - “保存配置”:有记录走 `updateById`,无记录提示后走 `add`;“校验配置”为**前端本地一致性校验**(单笔最小≤最大、每日≤每月≤每年),无后端校验配置接口。 - 菜单(需后端配置):一级「安全兑换管理」,路由 `exchange/security`,组件 `exchange/security/index`(`/exchange/security`)。 - 验证:`eslint --no-ignore` 通过、`npm run build:prod` 通过(仅既有 warning)。 ## 2026-10-15:申诉处理 Tab 复用申诉台账组件 - 将申诉台账核心逻辑抽成可复用组件 `src/views/points/appeal/components/AppealLedgerPanel.vue`(列表/详情/审批)。 - 独立页 `src/views/points/appeal/index.vue` 改为仅包裹该组件。 - 积分管理 `src/views/points/management/index.vue` 启用第 2 个 Tab「申诉处理」(`v-if` 懒加载),复用同一组件。 - 验证:`eslint --no-ignore` 通过、`npm run build:prod` 通过(仅既有 warning)。 ## 2026-10-15:新增 Web 积分管理「流水冲正」Tab(W4) - 新增 `src/views/points/management/components/TransactionReversePanel.vue`:积分流水分页列表(筛选:业务类型 / 状态 / 流水号),行操作“冲正”(二次确认,仅 `status=1` 有效可冲正)。 - 新增 `src/api/points/transaction.js`:`listTransactions`(`transaction/getListByPage`)、`reverseTransaction`(`transaction/reverse/{logId}`)。 - 在 `src/views/points/management/index.vue` 启用第 4 个 Tab「流水冲正」(`v-if` 懒加载),第 3 个 Tab「手动调整」仍禁用。 - 备注:流水明细无用户姓名字段,列表“用户”列显示 `userId`。 - 验证:新文件 `eslint --no-ignore` 通过、`npm run build:prod` 通过(仅既有 warning)、页面诊断无错误。 ## 2026-10-15:新增 Web 申诉台账页面(含审批) - 新增 `src/views/points/appeal/index.vue`:独立「申诉台账」页,抄隐患台账结构(筛选/表格/分页/详情弹窗)+ 审批弹窗(通过/驳回 + 调整积分 + 意见)。 - 新增 `src/api/points/appeal.js`:`listAppealTodo`、`getAppealDetail`、`getAppealProcessDetail`、`completeAppealFlow`,对应 `appeal/todoList`、`appeal/detail/{id}`、`flowable/busiInfo/getProcessDetail`、`appeal/completeFlow`。 - 审批走新流程 `completeFlow`:taskId 由 `flowable/busiInfo/getProcessDetail`(按 `flowInstanceId`)取当前待办任务补全,与隐患审核一致;无 taskId 时提示不可提交。 - **待联调确认**:① `completeFlow` 的 taskId 取值方式;② 改判补分的 `adjustPoints` 传参(当前放入 `variables`)。 - 菜单(需后端配置):一级「积分与商城」→ 菜单「申诉台账」,路由 `points/appeal`,组件 `points/appeal/index`(`/points/appeal`)。原型积分管理内原“申诉处理 Tab”暂保持禁用。 - 验证:`eslint --no-ignore` 通过、`npm run build:prod` 通过(仅既有 warning)。 ## 2026-10-15:新增 Web 工作台页面 - 新增 `src/views/workbench/index.vue`:6 项 KPI(待审核 / 本月已闭环 / 平台同步失败 / 今日新增上报 / 今日兑换单 / 今日发放积分)、近 7 日上报趋势柱状图、待办与预警表、最新上报(前 5 条)。 - 新增 `src/api/analysis/home.js`:`getHomeOverview()`、`getHomeTodoWarning()`、`getHomeTrendLatest()`,对应 `analysis/home/overview|todo-warning|trend-latest`。 - 交互约定:“平台同步失败”KPI 与待办表“重试”后端无接口,展示 `—` / 禁用并 tooltip 说明;风控预警“处理”目标页未开发,禁用并提示;KPI 与待办跳转隐患台账 / 积分管理;最新上报表“审核”按 `id` 跳 `/hazard/audit/detail`。 - 视觉沿用 `prototype-theme.scss` 变量与既有卡片风格;图表用 `echarts` + `views/dashboard/mixins/resize`(含销毁 dispose)。 - 菜单(需后端配置):一级菜单「工作台」,路由地址 `workbench`,组件路径 `workbench/index`,访问地址 `/workbench`。 - 验证:`eslint --no-ignore` 通过、`npm run build:prod` 通过(仅既有 warning)、dev server 编译成功。 ## 2026-10-08:隐患审核积分档位按厂区查询 - 问题:审核页“积分档位”下拉为空且显示裸规则ID;根因是 `rulesByLevel` 未按隐患所属厂区查询——超管无厂区上下文返回空 `children`,而 `trialCalculate` 带了 `deptId` 故能命中。 - `src/api/points/rule.js`:`getRulesByLevel(params)` 改为接收参数对象,支持 `deptId`。 - `src/views/hazard/audit/components/AuditActionForm.vue`:调用时补传 `deptId = report.factoryDeptId`;新增 `applyTierFallback()`,档位列表为空但详情已有 `finalFlowLevelId` 时用详情档位兜底展示,避免裸 ID。 - 依赖后端已为 `rulesByLevel` 增加 `deptId`(线上已更新)。验证:无诊断错误,`npm run build:prod` 通过,仅既有资源体积 warning。 ## 2026-10-08:左侧菜单隐藏“隐患审核” - 左侧菜单由后端菜单接口下发。在 `src/store/modules/permission.js` 的 `GenerateRoutes` 中,对仅用于侧栏展示的路由副本调用新增的 `filterHiddenSidebarRoutes()`,按组件路径 `hazard/audit/index`(或标题“隐患审核”)剔除该菜单项。 - 仅过滤侧栏/顶栏展示数据,`rewriteRoutes` 路由注册保持不变,`/hazard/audit` 与基础路由 `/hazard/audit/detail` 仍可跳转,台账“去审核”入口不受影响。 - 验证:无诊断错误,`npm run build:prod` 通过,仅有既有资源体积 warning。 ## 2026-10-08:隐患流程配置新增“流程类型”字段并列表展示 - 新增/修改弹窗增加“流程类型”下拉,字段 `bizType`,选项来自字典 `flow_biz_type`(组件注册 `dicts: ['flow_biz_type']`),提交时取字典项键值;`createEmptyForm`、`normalizeForm`、`formRules`、`buildPayload` 同步纳入该字段。 - 列表在“厂区名称”后新增“流程类型”列,用 `el-tag` 展示;新增 `bizTypeLabel(row)` 按字典 `flow_biz_type` 反查 label,字段为空时模板显示 `-`。 - 字段名以 `api.json` 为准使用 `bizType`(非下划线 `biz_type`)。验证:无诊断错误,`npm run build:prod` 通过,仅有既有资源体积 warning。 ## 2026-10-08:隐患台账非管理员单位筛选改用 myFactory 并归位 /system/dept 封装 - 修复非管理员进入隐患台账右上角弹出“当前操作没有权限”:根因是 `getUnits()` 调用了 `GET /system/user/deptTree`(用户管理权限,非管理员无权,且不在最新 `api.json`)。 - 台账页 `getUnits()` 按角色分流:超级管理员调用 `listFactoryDepartments()`(`/system/dept/factoryList`),非管理员调用 `getMyFactoryDepartment()`(`/system/dept/myFactory`);非管理员隐藏“单位”筛选项,仅静默按本厂区过滤。 - `created` 调整为 `getUnits().finally(() => getList())`,保证非管理员首屏列表请求已带 `unitId`;移除不再使用的 `deptTreeSelect` 引用和 `flattenTree`。 - 将 `listFactoryDepartments()`、`getMyFactoryDepartment()` 从 `src/api/flowable/hazardConfig.js` 和 `src/api/points/rule.js` 归位到 `src/api/system/dept.js` 并删除重复定义;同步更新隐患流程配置页和积分管理页的 import。 - 验证:相关文件无诊断错误,`npm run build:prod` 通过,仅有项目既有资源体积/Browserslist warning。后端 `todoList` 是否按 `unitId` 过滤仍需联调确认。 ## 2026-09-19:隐患台账切换待办接口并自动补齐审批 taskId - 隐患台账列表请求由 `GET /business/hazard/getListByPage` 切换为 `GET /flowable/hazard/todoList`,保留原分页、筛选、详情弹窗和审核入口逻辑。 - 台账“去审核”只携带隐患 `id`,不再依赖列表行中的 `taskId/taskID/todoTaskId`。 - 审核页新增 `getHazardProcessDetail` 封装,调用 `GET /flowable/busiInfo/getProcessDetail?id={flowInstanceId}`;详情加载后若 `canApprove=true` 且有 `flowInstanceId`,自动获取当前任务并补齐 `taskId`。 - 兼容 `getProcessDetail` 返回数组或 `list/rows/records/tasks/taskList/flowList/data` 等结构,并优先选择未结束任务;路由仍允许显式传入 `taskId` 作为兜底。 - 台账跳转补充携带 `canApprove` 和 `flowInstanceId`,避免审核详情缺少这两个流程字段时无法补齐任务;流程详情解析改为递归查找含 `taskId` 的对象。 - Web 审核页上传附件由错误的 `/flowable/hazard/uploadAttachment` 改为 `/business/hazard/uploadAttachment`;后端实测要求 `multipart/form-data`,请求字段名确认为 `files`。 - App 端 `uploadHazardAttachment` 同步改为 `/business/hazard/uploadAttachment` 的 `multipart/form-data` 请求,字段名使用 `files`。 - 审核动作卡片中新上传的附件由纯文本 Tag 改为可点击卡片:图片使用 `el-image` 大图预览,文档点击后新窗口打开,并保留移除按钮。 - 定向 ESLint 和生产构建通过;构建仅有既有资源体积、Browserslist 和 Webpack 弃用 warning。`getProcessDetail` 的真实响应结构和“当前任务”选择规则仍需联调确认。 ## 2026-09-19:SelectTree 机构/人员回显修复 - 修复 `SelectTree` 回显时可能直接展示原始 `id` 的问题:树节点 ID 与 `echoBack` 改为字符串归一化比较,避免接口返回字符串 `"108"` 而详情返回数字 `108` 导致匹配失败。 - 在 `orgdata_bm` 树数据异步加载完成后重新执行回显,避免初始化时树数据尚未就绪导致首次回显停留在原始 ID。 - 生产构建通过;`git diff --check` 通过。`SelectTree` 全文件 ESLint 仍存在项目既有格式问题,本次未做无关的全文件格式化。 ## 2026-09-19:隐患审核页字典、分类标准与 Tag 展示调整 - 对齐 App 端 `ReportFormScreen.tsx` 字典:审核动作卡片“管理级别”由前端硬编码 `general/major/critical` 改为读取 `hazard_management_level` 字典,并补入组件 `dicts` 列表;切换等级弹窗的当前等级改读 `currentFlowLevel/hazardCategory`,避免把管理级别字典值当作流程等级。 - 左侧“上报内容”卡片在“隐患信息”模块的整改负责人、专业下方新增“分类标准”独占一行的展示,优先展示 `hazardClassificationStandard`,兼容 `criteriaNames`、`hazardClassificationStandardLabel`;隐患分类为 `general/一般` 时固定显示 `-`。 - 左侧卡片的“隐患状态”“隐患分类”使用 `el-tag` 展示;隐患分类按值映射颜色:一般 `primary`、较大 `warning`、重大 `danger`,并修复 tag 在 `info-item` 网格内被拉伸为整行宽的问题。 - 未新增或修改接口。两个组件定向 ESLint、`git diff --check` 和生产构建通过,构建仅有既有资源体积、Browserslist 和构建工具 warning。 ## 2026-09-19:隐患审核页缺 taskId 时仍可查看详情 - 台账“去审核”不再因列表行缺少 `taskId` 而拦截跳转,统一携带 `id`,仅在行数据存在 `taskId/taskID/todoTaskId` 时附加 `taskId`。 - 审核页路由校验改为仅要求 `id`;缺 `taskId` 时仍加载并展示隐患详情和附件,页面顶部提示仅可查看、无法审批。 - `AuditActionForm` 的 `taskId` 改为可选属性,缺少时禁用通过/驳回/重新评估等级,并显示“从待办任务办理入口进入”的提示。 - 未新增或修改接口;审批仍需后端返回或入口传入 `taskId`。定向 ESLint、生产构建和 `git diff --check` 通过,构建仅有既有资源体积和 Browserslist warning。 ## 2026-09-18:积分规则支持厂区管理员管理并增加厂区列 - 积分规则“新建”入口向可进入页面的管理员开放;超级管理员继续调用 `factoryList` 选择厂区,厂区管理员改为调用 `myFactory` 展示并锁定所属厂区。 - 厂区管理员列表查询显式移除 `deptId`,新增请求不发送 `deptId/deptName`,由后端按登录用户过滤或自动填充;所属厂区加载失败时禁用提交。启停和删除继续使用原接口,由后端校验规则归属。 - 规则列表增加“厂区”列,优先显示 `deptName`,其次显示 `deptId`,均无时显示“全局规则”;详情同步使用相同兜底。 - 新建表单将“规则名称”设为必填,校验通过后继续使用现有 `ruleName` 字段提交;未增加编辑按钮或更新接口,其余 Tab、分页和当前页排序逻辑保持不变。 - `src/api/points/rule.js` 定向 ESLint 通过,积分页面可成功生产编译;页面整文件 ESLint 仍有既有压缩模板及脚本格式问题,未做无关的全文件格式化。生产构建成功,仅有项目既有 warning;未使用真实厂区管理员账号联调。 ## 2026-09-15:隐患台账状态与附件展示调整 - 列表状态按后端字典统一为 `draft` 待提交、`reviewing` 审核中、`rectifying` 整改中、`approved` 已通过、`rejected` 已驳回;历史数字值和旧状态名称仅作兼容识别。 - “去审核”按钮仅在审核中显示,筛选项、统计、Tag、详情状态和底部状态说明同步更新为五态文案。 - 主列表“平台同步”列暂时注释,保留同步字段、失败判断、重试方法和详情流程字段,后续可直接恢复。 - 详情附件改为三列图片九宫格:图片按 `fileUrl/filePath` 生成访问地址,点击 `el-image` 打开同组大图预览;非图片附件显示文件块并支持新窗口打开。 - 未新增或修改接口;继续使用台账列表、详情和附件接口。单文件 ESLint、Vue 模板编译、生产构建和 `git diff --check` 通过,构建仅有既有资源体积 warning。 ## 2026-09-15:隐患台账新版 Table UI 改造 - 隐患台账主列表由独立筛选栏和 `el-card` 切换为统一的 ``,筛选、当前筛选/本页状态统计、表格、分页和状态说明按新版列表结构布局。 - 主表增加 Element UI 原生 `border` 并移除 `stripe`,由 `modern-table` 隐藏外框和竖向分隔线,在保持新版视觉的同时支持拖拽表头列宽。 - 详情、去审核和同步重试按钮采用新版紧凑按钮样式;列表字段、状态 Tag、固定操作列、溢出提示和空态保持完整。 - 未修改台账列表、详情、附件、同步重试或部门树接口,也未调整查询、分页、详情、审核及同步重试业务逻辑。 - 单文件 ESLint、开发服务热编译、生产构建和 `git diff --check` 通过;构建仅有项目既有 dotenv、Browserslist、webpack 弃用及资源体积 warning。 ## 2026-09-15:Token 过期回跳、角色更多操作与 Table 列拖拽修复 - 定位 404 根因:过期 Token 和主动退出仍跳转已废弃 `/index`,无 Token 路由守卫将其写入 `redirect`,登录成功恢复该地址后命中 404。 - 过期会话改为前端登出,清空 Token、角色和权限后替换到 `/login`,不再使用失效 Token 请求后端退出;主动退出及获取用户信息失败也统一避开 `/index`。 - 登录页增加历史回跳兜底,`/index`、`/404`、`/login` 均回落至 `/hazard/ledger`,避免已打开的旧登录链接继续触发 404。 - 角色列表将原“更多”文本入口改为带 Tooltip 的省略号图标按钮,点击展开既有“数据权限、分配用户”,权限字符和事件逻辑不变。 - 为 16 个 `DataListPanel` Card 主列表补回 Element UI 的 `border` 行为属性,从而恢复表头列宽拖拽;既有 Card CSS 继续隐藏外框和竖向单元格线。 - 按追加要求为 `DataListPanel` 增加默认关闭的 `modern-table` 参数,无竖线 Table 样式只在显式开启时生效;16 个已改造页面全部传入该参数,未改造页面继续使用 Element UI 原竖线样式。 - 补齐系统监控旧表格的原生 `border`:在线用户、定时任务、调度日志和缓存列表共 5 张表恢复竖向分隔线与列宽拖拽;操作日志、登录日志保持新版无竖线样式。 - `src/permission.js` 定向 ESLint、开发编译、生产构建和 `git diff --check` 通过;其他相关历史文件仍有既有 ESLint 格式问题,构建仅有项目既有 warning。真实过期 Token 和角色权限账号仍需在测试环境端到端回归。 ## 2026-09-14:登录框响应式居中修复 - 修复登录页拖拽浏览器宽高时登录框偏移:移除装饰层固定 `1920×1080` 尺寸、绝对定位和固定负边距,改为视口尺寸与 Flex 水平/垂直居中。 - 背景图和平台装饰图改用 `cover` 保持比例;登录框保留 550px 桌面宽度并增加窄屏安全边距,低高度窗口支持滚动,验证码区域可随宽度收缩。 - 未修改验证码、记住密码、登录接口、路由跳转及用户现有“积分管理系统”文案。 - 开发服务热编译和生产构建成功,仅有项目既有构建 warning;定向 ESLint 仍报告该文件未修改模板/脚本中的历史格式问题。 ## 2026-09-14:隐患流程配置页面 - 新增 `src/api/flowable/hazardConfig.js`,封装流程模板配置列表、详情、新增、修改、删除、当前厂区已配置模板、全部厂区和当前用户厂区请求。 - 将空白隐患流程配置页实现为最新 `DataListPanel` Card 列表:厂区/隐患等级/状态筛选、批量选择、分页、新增、修改、状态 Tag、删除确认和行内操作。 - 列表状态按用户要求只展示 Tag:正常为绿色、停用为灰色;启用/停用通过编辑弹窗和 `PUT /flowable/hazardFlowConfig` 修改完整配置,删除继续使用现有 `DELETE /flowable/hazardFlowConfig/{id}`。 - 超级管理员通过 `admin` 角色标识加载并选择全部厂区;二级管理员调用 `myFactory` 显示禁用的所属厂区控件,列表和新增请求不主动传 `deptId/deptName`,由后端按用户权限过滤和填充。 - 真实列表响应已确认使用 `data.list` 和字符串 `data.total`,页面固定解析并将总数转为数字;状态字段和状态筛选保留。定向 ESLint 和生产构建通过,仅有项目既有构建 warning。 ## 2026-09-12:流程管理四个主列表 Card UI 统一 - 流程监听、流程定义、表单配置、流程表达式四个页面的主列表统一复用共享 `DataListPanel`,采用紧凑筛选、批量操作、白色 Card、无竖向单元格线和 Card 内分页结构。 - 新增/修改、删除、导出及行内操作按钮按现有用户/角色管理样式统一主次配色,同时保留原权限指令、选中禁用条件和事件。 - 流程定义页保留原“流程设计说明”,并将其放在主列表 Card 头部;流程图、XML 上传、主表单配置等弹窗及挂载表单弹窗内部表格未修改。 - 四页继续使用现有 `listener`、`definition`、`form`、`expression` API 封装,接口、查询参数、字段、响应解析和业务脚本均未改变。 - 开发服务热编译、`git diff --check` 和生产构建通过;构建仅有既有 Browserslist、Webpack 弃用和资源体积 warning。定向 ESLint 仍有四页历史格式问题,本次未越界批量格式化。 ## 2026-09-12:积分规则列表 Card UI 统一 - 积分管理的积分规则页复用共享 `DataListPanel`,筛选、新建、表格和分页沿用用户/角色管理列表的 Card 结构及无竖向单元格线样式。 - 将“同一隐患等级支持 A/B/C…”说明移动到“积分规则配置 · 多档位”标题下方;将档位标准说明移动到两个底部按钮下方。 - 底部按钮按确认稿调整为“保存为新版本 V4”蓝色主按钮和“历史月份试算”白色次按钮;点击仍使用原未接接口提示,不新增请求。 - 未修改积分规则的接口、字段、权限、排序、筛选、新增、详情、启停、删除或分页逻辑;部门管理已由用户确认完成,本次未继续调整。 - `git diff --check` 和生产构建通过;构建仅有既有 Browserslist、Webpack 弃用和资源体积 warning。定向 ESLint 显示积分页面已有整文件格式问题,本次按 UI 范围未做全文件自动格式化。 ## 2026-09-10:系统管理八个列表页 Card UI 批量替换 - 菜单管理、部门管理、岗位管理、字典管理、参数管理、通知公告、操作日志和登录日志统一使用共享 `DataListPanel` 的筛选、操作、Card 表格和分页插槽。 - 扩展 `DataListPanel` 通用样式类,统一紧凑筛选控件、按钮布局、无竖向单元格线、行内操作和移动端换行,供后续列表页继续复用。 - 菜单和部门继续使用原树形表格并保持展开/折叠;其余分页页面只将原分页移入 Card footer;操作日志和登录日志的默认排序及 `sort-change` 原样保留。 - 页面现有列表字段、权限指令、API 导入、查询参数、业务方法、缓存刷新、清空、解锁、详情和编辑弹窗均未修改,也未新增任何模块。 - 公共 `DataListPanel` 定向 ESLint 通过,`git diff --check` 通过,生产构建成功;仅有项目既有 Browserslist、Webpack 弃用和资源体积 warning。 ## 2026-09-10:角色管理 Card 列表 UI 替换 - 角色管理 `src/views/system/role/index.vue` 的列表区域改用共享 `DataListPanel`,采用筛选区、批量操作区、白色 Card 表格和底部分页结构。 - 保留角色编号、角色名称、权限字符、显示顺序、状态、创建时间和操作列;表格沿用全局紧凑字号与无竖向单元格线样式。 - 新增/修改/删除/导出按钮、状态开关、行内修改/删除/更多(数据权限、分配用户)及权限指令均保持原事件和权限字符,仅调整视觉呈现。 - 未增加左侧部门树或其他模块,角色新增/编辑、数据权限弹窗和分配用户入口代码未改动;未新增或修改接口。 - `git diff --check` 通过;定向 ESLint 仍报告角色页面原有脚本格式问题(本次新增模板仅有少量既有规则 warning),公共 `DataListPanel` 无新增错误;生产构建成功,仅有既有 Browserslist、Webpack 弃用和资源体积 warning。 ## 2026-09-09:用户管理 Card 列表试点 - 新增全局注册的 `src/components/DataListPanel/index.vue`,提供筛选、操作、标题、表格和分页插槽,并统一白色 Card、圆角、浅边框和无竖向单元格线的表格外观。 - 用户管理保留“左侧部门树 + 右侧列表”,右侧调整为顶部用户账号、手机号、状态、日期和岗位筛选,加批量操作及 Card 列表。 - 左侧部门树数据仍使用原接口和 `deptId` 参数,保留部门名称搜索、节点点击查询及重置联动;此前改为顶部 `Treeselect` 的方案已按用户反馈撤回。 - 按截图统一按钮:搜索/新增/修改/更多为蓝色,删除为红色,重置/导入/导出为白底;状态使用绿色/灰色标签并保留点击二次确认切换。 - 用户列表、增删改、状态、导入导出、权限字符和分页逻辑全部沿用现有实现,没有修改接口协议。 - 新公共组件定向 ESLint 通过,`git diff --check` 通过,生产构建成功;只有项目既有 Browserslist、Webpack 弃用和资源体积 warning。 ## 2026-09-09:管理后台原型视觉统一第一阶段 - 以交付原型的浅色管理后台规范为基准,保留现有 Vue 2、Element UI、登录、动态菜单、权限和接口逻辑,在 `zhongyou_web` 内进行整体 UI 改造。 - 移除 `App.vue` 中固定 1920×1080 的 `ScaleBox` 全局缩放,恢复正常流式后台布局,避免字体和间距随屏幕失真。 - 侧栏由 200px 改为 212px,Header 由 50px 改为 52px;统一菜单行高、字号、选中态、浅色分割线、Logo 和主内容偏移。 - 新增 `src/assets/styles/prototype-theme.scss`,统一页面色板以及 Element UI 的 Card、Tabs、Table、Form、Input、Button、Tag、Dialog、Switch、Pagination 和 Descriptions。 - 默认主题色切换为 `#1890ff`、表格字号切换为 12px;为本地布局配置增加 `prototype-v1` 版本标识,避免旧缓存覆盖新视觉默认值。 - 调整 Header 消息、APK、用户名、面包屑以及公共分页组件;积分管理、隐患台账、隐患审核同步适配新背景和 52px 顶部高度。 - 本次没有新增或修改接口,也没有调整鉴权、权限或动态菜单行为。 - `git diff --check` 通过;生产构建成功,仅有既有 Browserslist、Webpack 弃用和资源体积 warning。定向 ESLint 仍报告相关历史文件已有格式问题,未在本次任务中批量改写。 ## 2026-09-05:隐患台账构建验证 - 执行 `npm run build:prod`,构建成功;仅保留 dotenv 配置行、Browserslist 数据过期和资源体积 warning。 - `git diff --check` 通过。 - 默认 `npm run lint` 因项目 `.eslintignore` 同时忽略 `*.js` 与 `*.vue`,ESLint 将 `src` 判定为全部 ignored;未修改既有忽略规则,待后续统一调整校验配置。 ## 2026-09-04:隐患台账页面 - 按原型完成状态/单位/名称筛选、统计摘要、9 列台账表格、分页和导出入口。 - 详情使用宽屏 Element UI 弹窗,分组展示基础信息、整改流程、描述处理和附件,并支持待审核记录进入隐患审核页。 - 接入 `business/hazard/getListByPage`、`info/{id}`、`attachment/{reportId}` 和 `export`。 - 核对 `api.json` 未发现同步重试接口;页面保留明确的待后端确认提示,不显示虚假成功。 ## 2026-09-03:开发文档和 AI 交接规范 - 新增根目录 `AGENTS.md`,规定新 AI 窗口的阅读、接口梳理、开发、验证和交接流程。 - 新增开发手册、当前状态和当前任务模板。 - 记录动态菜单、请求 baseURL、鉴权头不一致、OpenSSL 兼容等关键上下文。 - 明确后续每次页面开发前先填写 `CURRENT_TASK.md`,完成后更新状态、日志和页面接口映射。 - 本次仅新增文档,没有修改页面业务逻辑。 ## 2026-09-03:API 文档整理 - 将上级目录 `api.json` 的 278 个接口整理为 27 个业务模块文档。 - 生成 32 个数据模型字段字典和机器可检索的 `catalog.json`。 - 新增页面接口映射,覆盖隐患审核、隐患台账、积分管理、隐患流程配置、切换日志和商城相关接口。 - 新增 `npm run docs:api` 自动生成命令。 - 发现切换日志缺少明确列表接口、手动调整积分请求模型不完整。 ## 2026-09-03:空白业务页面 - 新增隐患审核:`src/views/hazard/audit/index.vue`。 - 新增隐患台账:`src/views/hazard/ledger/index.vue`。 - 新增积分管理:`src/views/points/management/index.vue`。 - 新增隐患流程配置:`src/views/flowable/hazardConfig/index.vue`。 - 新增切换日志:`src/views/flowable/switchLog/index.vue`。 - 各页面均创建同级 `components/` 目录。 - 页面当前都是空白占位,未接入接口。 ## 2026-09-03:左侧菜单和浅色布局 - 一级、二级菜单统一调整到左侧。 - Logo 从 Header 移至左侧栏顶部。 - Header 改为折叠按钮、面包屑和右侧用户功能布局。 - 默认主题改为浅色,保留明暗主题切换。 - 修复 Header、用户名、箭头、APK 等元素在浅色背景下的文字颜色。 - 修改生产构建脚本以兼容 Node 22/OpenSSL 3。 - 生产构建通过;只有旧 Browserslist 数据和资源体积警告。 # 2026-09-09 ## 默认登录首页调整 - 登录成功且没有 `redirect` 参数时,默认跳转到隐患台账 `/hazard/ledger`。 - 两处根路由重定向统一为 `/hazard/ledger`,已登录用户访问登录页时也通过根路由进入隐患台账。 - 保留已有 `redirect` 参数优先级,用户被登录拦截后仍返回原目标页面。 - 首次实测进入 404 后,在已有隐藏 `/hazard` 基础路由下增加 `ledger` 子路由,避免默认首页依赖动态菜单注册时序或菜单响应是否包含该路径;侧栏菜单仍由后端控制,接口仍执行后端鉴权和数据权限。 - 生产构建通过,仅有既有 Browserslist、构建工具弃用和资源体积 warning;相关历史文件仍存在与本次无关的 ESLint 格式问题。 # 2026-09-08 ## 重新生成 API 文档 - 使用上级目录最新 `api.json` 重新生成 `docs/api/`。 - 当前文档包含 28 个模块、278 个接口和 32 个模型。 - 新增/更新积分规则接口及厂区接口资料,供积分管理页面开发使用。 - 同步更新积分管理页面的接口映射和开发前任务梳理;尚未修改业务 Vue 代码。 ## 积分管理需求确认 - 确认档位使用 `hazardCategory`,以 A、B、C…表示,用户可修改;新增时前端按当前隐患等级已有最大档位生成下一字母。 - 确认隐患等级下拉:`general`=一般隐患、`major`=较大隐患、`critical`=重大隐患。 - 确认规则列表按一般→较大→重大分组,各组内按档位字母升序排列;`enabled` 新增默认 1。 - 确认 `hazardLevel`、档位、`points` 为必填;`priority` 可由前端按当前等级最大值+1生成,用户可修改。 - 确认超级管理员使用 `admin` 角色判断;详情字段由页面按主要业务和审计字段定义。 - 补充确认:新建规则必须指定 `deptId`,页面暂不提供新建全局规则入口。超级管理员厂区选择使用 `factoryList` 返回的全部数据并展开。前端 API 封装只保留一层 `/gd_dataserver` 前缀之后的业务路径。 ## 积分规则页面开发完成 - 新增 `src/api/points/rule.js`,封装规则分页、厂区列表、新增、详情、启停和删除接口。 - 完成积分管理页面:四个 Tab(后三个暂禁用)、积分规则卡片、超级管理员厂区筛选和新建入口、等级分组/档位排序、分页、详情弹窗、Switch 启停、删除二次确认。 - 新增规则校验 `deptId/hazardLevel/hazardCategory/points` 必填,默认 `enabled=1`,档位按当前等级已有最大字母自动生成,`priority` 可修改;页面暂不提供新建全局规则入口。 - “保存为新版本”“V4历史月份试算”暂以提示按钮展示,不调用接口。 - ESLint 检查通过;生产构建通过,仅有既有资源体积和 Browserslist warning。