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

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>天天系统 - 功能菜单脑图</title>
<title>DEMO演示系统 - 功能菜单脑图</title>
<script src="https://cdn.jsdelivr.net/npm/markmap-lib@0.14.4/dist/browser/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/d3@7"></script>
<script src="https://cdn.jsdelivr.net/npm/markmap-view@0.14.4/dist/browser/index.min.js"></script>
@@ -104,16 +104,16 @@
<h1>🗺️ 天天系统功能菜单脑图</h1>
<p>6大核心模块 · 完整功能架构</p>
</div>
<div class="toolbar">
<button class="primary" onclick="zoomIn()">🔍 放大</button>
<button class="primary" onclick="zoomOut()">🔍 缩小</button>
<button class="secondary" onclick="resetZoom()">↺ 重置</button>
<button class="secondary" onclick="downloadImage()">📥 下载PNG</button>
</div>
<div id="mindmap"></div>
<div class="legend">
<div class="legend-item">
<div class="legend-dot" style="background: #667eea;"></div>
@@ -132,9 +132,9 @@
<script>
const { Markmap, loadCSS, loadJS } = markmap;
const data = {
content: "天天系统 ERP",
content: "DEMO演示系统 ERP",
children: [
{
content: "1⃣ 设备管理",
@@ -143,7 +143,7 @@
content: "📊 设备台账",
children: [
"设备列表",
"设备分类",
"设备分类",
"设备档案"
]
},
@@ -432,26 +432,26 @@
function downloadImage() {
const svg = document.querySelector('#mindmap svg');
if (!svg) return;
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const svgData = new XMLSerializer().serializeToString(svg);
const img = new Image();
canvas.width = 2400;
canvas.height = 1600;
img.onload = function() {
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
const link = document.createElement('a');
link.download = '天天系统功能菜单脑图.png';
link.href = canvas.toDataURL('image/png');
link.click();
};
img.src = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(svgData)));
}