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
This commit is contained in:
2026-04-09 12:08:55 +08:00
parent f9e1286ab1
commit a9da04fbb8
26 changed files with 1203 additions and 2516 deletions

View File

@@ -1,5 +1,16 @@
# 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:183``equipment.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大模块
@@ -18,6 +29,20 @@
- 每个页面通过 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 组件。
## 页面风格升级 - 玻璃态+渐变
所有制造业管理后台页面已升级为现代风格: