Files
tiantian-system/.workbuddy/memory/2026-04-09.md
赵忠林 a9da04fbb8 fix(oa): 修复多处 Duplicate attribute 错误问题
- 修改 app/components/oa/TaskForm.vue 中 a-input 类型冲突为 a-input-number
- 合并 admin/supply/warehouse.vue 和 production/equipment.vue 中多个 :class 绑定,避免重复属性
- 统一改为数组方式绑定静态和动态 class,防止 Vue 编译器 Duplicate attribute 警告
- 清理缓存并验证构建通过,确保无重复属性错误
- 通过扫描确认 app/ 目录下 Vue 文件不再存在重复属性问题
- 添加 OaTaskForm 组件类型声明及懒加载声明
- 将 ERP 演示独立 HTML 页面整合至 /app/pages,统一布局与导航
- 升级制造业管理后台页面风格,采用玻璃态和渐变设计
- 修订规划文档相关内容,更新 DEMO 系统名称及功能模块描述
- 修改 ecosystem.config.cjs 中运行端口为 10591
2026-04-09 12:08:55 +08:00

3.5 KiB
Raw Blame History

2026-04-09 工作日志

修复 "Duplicate attribute" 错误(多处)

  • 第1处app/components/oa/TaskForm.vue<a-input type="number"> 与组件内部 type 属性冲突 → 替换为 <a-input-number>
  • 第2处app/pages/admin/supply/warehouse.vue:183<span :class=... class=... :class=...> 三重绑定 → 合并为 :class="['static', dynamic1, dynamic2]"
  • 第3处app/pages/admin/production/equipment.vue:183equipment.vue:256 同样的 :class 重复问题 → 同样合并
  • 根本原因:同一元素上同时出现静态 class 和两个动态 :class 绑定Vue 编译器报 Duplicate attribute
  • 修复模式:将 class="static" :class="a" :class="b" 统一改为 :class="['static', a, b]"
  • 构建验证:npx nuxi build 通过,无 Duplicate attribute 错误
  • 后续补丁:用 Vue 编译器 API 全量扫描 app/ 下所有 .vue 文件,确认 0 个文件存在真实重复属性
  • 已清除 .nuxt 和 node_modules/.cache/nuxt 缓存,防止旧缓存继续报错
  • ⚠️ 教训:清除 .nuxt 会导致 tsconfig.json 的 extends 断裂,需执行 npx nuxi prepare 重新生成

制造业数字化管理后台 /admin 重构

将 /admin 从之前的通用SaaS后端改造为制造业数字化标准体系包含4大模块

菜单结构 (admin-nav.ts)

  • 首页总览 /admin
  • 产品生命周期数字化:产品设计 /admin/product/design、营销管理 /admin/product/marketing、售后服务 /admin/product/service
  • 生产执行数字化:计划排程 /admin/production/schedule、生产管控 /admin/production/control、质量管理 /admin/production/quality、设备管理 /admin/production/equipment、安全生产 /admin/production/safety、能耗管理 /admin/production/energy
  • 供应链数字化:采购管理 /admin/supply/purchase、仓储物流 /admin/supply/warehouse
  • 管理决策数字化:财务管理 /admin/management/finance、人力资源 /admin/management/hr、协同办公 /admin/management/office、决策支持 /admin/management/decision
  • 系统设置 /admin/settings(已有,保持不变)

技术说明

  • 所有页面使用 Ant Design Vue
  • 布局复用 admin.vue左侧固定菜单栏支持折叠/展开)
  • 每个页面通过 useNav().activeTab 设置当前菜单高亮
  • 图标全部使用 @ant-design/icons-vue 有效图标

ERP演示站点 - 独立HTML风格页面整合到 /app/pages

将根目录下3个HTML原型文件整合为 Nuxt/Vue 页面,全部放入 /app/pages/

  • index.vue - 工作台首页(已有,更新导航链接)
  • procurement.vue - 采购管理
  • hr.vue - 人力资源管理
  • device.vue - 设备管理(新建)
  • warehouse.vue - 仓储物流(新建)
  • finance.vue - 财务管理(新建)
  • office.vue - 协同办公(新建)

所有页面使用 layout: blank自带左侧导航所有菜单项均为 NuxtLink 可跳转。 设计风格:紫蓝渐变侧边栏 + 玻璃态卡片 + 渐变统计卡 + Ant Design Vue 组件。

页面风格升级 - 玻璃态+渐变

所有制造业管理后台页面已升级为现代风格:

  • 玻璃态效果 (glass): rgba背景 + backdrop-filter模糊
  • 渐变色图标背景
  • 悬停卡片动画 (card-hover)
  • 紫蓝橙绿现代配色

涉及页面:

  • /admin/production/equipment.vue - 设备管理
  • /admin/supply/purchase.vue - 采购管理
  • /admin/supply/warehouse.vue - 仓储物流
  • /admin/management/finance.vue - 财务管理
  • /admin/management/hr.vue - 人力资源
  • /admin/management/office.vue - 协同办公