← 返回

⚙️ 技术准备系统

角色:待定
🌳 BOM结构树
加载中...
📦 零件明细
🔍 当前显示: 的零件 清除筛选
选择组件查看零件...
/* 数据清洗模块样式 */ .data-clean-panel { display: none; width: 100%; height: 100%; padding: 20px; overflow-y: auto; background: white; } .data-clean-panel.active { display: block; } .clean-tabs { display: flex; gap: 8px; margin-bottom: 20px; border-bottom: 2px solid var(--border); padding-bottom: 10px; } .clean-tab { padding: 8px 16px; font-size: 13px; cursor: pointer; border: 1px solid var(--border); border-radius: 4px 4px 0 0; background: #f5f5f5; color: var(--text-light); transition: all 0.2s; } .clean-tab:hover { background: var(--primary-bg); border-color: var(--primary); color: var(--primary); } .clean-tab.active { background: var(--primary); color: white; border-color: var(--primary); } .clean-card { border: 1px solid var(--border); border-radius: 8px; padding: 16px; margin-bottom: 16px; background: white; } .clean-card h3 { font-size: 14px; color: var(--primary); margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--border); } .clean-card h3 .icon { margin-right: 6px; } .clean-mode-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; } .clean-mode-item { border: 1px solid var(--border); border-radius: 6px; padding: 14px; cursor: pointer; transition: all 0.2s; text-align: center; } .clean-mode-item:hover { border-color: var(--primary); background: var(--primary-bg); transform: translateY(-2px); box-shadow: 0 2px 8px rgba(0,0,0,0.1); } .clean-mode-item.selected { border-color: var(--primary); background: var(--primary-bg); } .clean-mode-item .icon { font-size: 28px; margin-bottom: 8px; } .clean-mode-item .name { font-size: 13px; font-weight: 500; color: var(--text); } .clean-mode-item .desc { font-size: 11px; color: var(--text-muted); margin-top: 4px; } .clean-upload-zone { border: 2px dashed var(--border); border-radius: 8px; padding: 30px; text-align: center; cursor: pointer; transition: all 0.2s; margin: 12px 0; } .clean-upload-zone:hover { border-color: var(--primary); background: var(--primary-bg); } .clean-upload-zone.dragover { border-color: var(--primary); background: var(--primary-bg); } .clean-upload-zone .icon { font-size: 36px; color: var(--text-muted); margin-bottom: 10px; } .clean-upload-zone p { font-size: 13px; color: var(--text-light); } .clean-upload-zone small { font-size: 11px; color: var(--text-muted); } .clean-preview-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 12px; } .clean-preview-table th { background: #f5f7fa; padding: 8px 10px; text-align: left; font-weight: 500; border-bottom: 2px solid var(--border); white-space: nowrap; } .clean-preview-table td { padding: 8px 10px; border-bottom: 1px solid #f0f0f0; } .clean-preview-table tr:hover { background: #fafafa; } .clean-status-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; } .clean-status-badge.normal { background: #e8f5e9; color: var(--success); } .clean-status-badge.warning { background: #fff3e0; color: var(--warning); } .clean-status-badge.error { background: #ffebee; color: var(--danger); } .clean-btn { padding: 8px 16px; font-size: 13px; border: none; border-radius: 4px; cursor: pointer; transition: all 0.2s; } .clean-btn-primary { background: var(--primary); color: white; } .clean-btn-primary:hover { background: var(--primary-light); } .clean-btn-secondary { background: #f5f5f5; color: var(--text); border: 1px solid var(--border); } .clean-btn-secondary:hover { background: #e0e0e0; } .clean-btn-success { background: var(--success); color: white; } .clean-btn-success:hover { background: #388e3c; } .clean-btn-danger { background: var(--danger); color: white; } .clean-btn-danger:hover { background: #d32f2f; } .clean-btn:disabled { opacity: 0.5; cursor: not-allowed; } .clean-form-group { margin-bottom: 12px; } .clean-form-group label { display: block; font-size: 12px; color: var(--text-light); margin-bottom: 4px; font-weight: 500; } .clean-form-group input, .clean-form-group select { width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: 4px; font-size: 13px; } .clean-form-group input:focus, .clean-form-group select:focus { outline: none; border-color: var(--primary); } .clean-stats { display: flex; gap: 20px; padding: 12px; background: #f8f9fa; border-radius: 6px; margin-bottom: 16px; } .clean-stat-item { text-align: center; } .clean-stat-item .num { font-size: 24px; font-weight: 600; color: var(--primary); } .clean-stat-item .label { font-size: 11px; color: var(--text-muted); } .clean-stat-item.success .num { color: var(--success); } .clean-stat-item.warning .num { color: var(--warning); } .clean-stat-item.error .num { color: var(--danger); } .clean-template-list { border: 1px solid var(--border); border-radius: 6px; overflow: hidden; } .clean-template-item { display: flex; align-items: center; padding: 12px; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background 0.15s; } .clean-template-item:last-child { border-bottom: none; } .clean-template-item:hover { background: #f5f5f5; } .clean-template-item.selected { background: var(--primary-bg); } .clean-template-item .name { flex: 1; font-size: 13px; font-weight: 500; } .clean-template-item .meta { font-size: 11px; color: var(--text-muted); } .clean-template-item .actions { display: flex; gap: 8px; } .clean-template-item .actions button { padding: 4px 10px; font-size: 11px; border: 1px solid var(--border); border-radius: 4px; background: white; cursor: pointer; } .clean-template-item .actions button:hover { background: var(--primary-bg); border-color: var(--primary); color: var(--primary); } .clean-mapping-row { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; } .clean-mapping-row .source { width: 200px; } .clean-mapping-row .arrow { color: var(--text-muted); } .clean-mapping-row .target { width: 200px; } .clean-step-indicator { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; } .clean-step { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); } .clean-step.active { color: var(--primary); font-weight: 500; } .clean-step.done { color: var(--success); } .clean-step-num { width: 22px; height: 22px; border-radius: 50%; background: #e0e0e0; color: white; display: flex; align-items: center; justify-content: center; font-size: 11px; } .clean-step.active .clean-step-num { background: var(--primary); } .clean-step.done .clean-step-num { background: var(--success); } .clean-step-line { flex: 1; height: 2px; background: #e0e0e0; max-width: 50px; }