/* 全局样式 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; background-color: #f5f5f5; } /* 容器样式 */ .container { max-width: 1400px; margin: 0 auto; padding: 20px; background-color: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); border-radius: 8px; margin-top: 50px; } /* 标题样式 */ h1 { color: #2c3e50; margin-bottom: 30px; text-align: center; font-size: 2.2rem; } h2 { color: #34495e; margin: 20px 0; font-size: 1.5rem; border-bottom: 2px solid #ecf0f1; padding-bottom: 10px; } /* 文件上传区域样式 */ .upload-section { text-align: center; margin-bottom: 40px; padding: 20px; background-color: #f8f9fa; border-radius: 8px; } .upload-section > * { display: inline-block; margin: 0 10px; vertical-align: middle; } .upload-btn { padding: 12px 24px; background-color: #3498db; color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 16px; transition: background-color 0.3s ease; } .upload-btn:hover { background-color: #2980b9; } .file-name { color: #666; min-width: 150px; text-align: left; } .analyze-btn { padding: 12px 24px; background-color: #2ecc71; color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 16px; transition: background-color 0.3s ease; } .analyze-btn:hover:not(:disabled) { background-color: #27ae60; } .analyze-btn:disabled { background-color: #95a5a6; cursor: not-allowed; opacity: 0.6; } /* 分析结果区域样式 */ .analysis-section, .preview-section { margin-bottom: 40px; } .field-analysis, .data-preview { background-color: #f8f9fa; border-radius: 8px; padding: 20px; min-height: 200px; overflow-x: auto; } .field-analysis .placeholder, .data-preview .placeholder { text-align: center; color: #95a5a6; font-style: italic; margin: 20px 0; padding: 40px; background-color: #f8f9fa; border-radius: 8px; } /* 字段卡片样式 */ .field-card { background-color: white; padding: 15px; margin-bottom: 15px; border-radius: 6px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); } .field-card h3 { color: #2c3e50; margin-bottom: 10px; font-size: 1.2rem; } .field-details { margin-left: 20px; } .field-detail { margin-bottom: 5px; color: #555; } /* 表格样式 */ .data-table { width: 100%; border-collapse: collapse; margin-top: 20px; } .data-table th, .data-table td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; } .data-table th { background-color: #34495e; color: white; font-weight: 500; } .data-table tr:nth-child(even) { background-color: #f9f9f9; } .data-table tr:hover { background-color: #f1f1f1; } /* 过滤区域样式 */ .filter-section { margin-bottom: 30px; } .filter-controls { display: flex; gap: 15px; align-items: center; flex-wrap: wrap; } .filter-input { padding: 10px 15px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; min-width: 150px; } .filter-input:focus { outline: none; border-color: #3498db; box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2); } /* 交货计划区域样式 */ .delivery-plan-section { margin-bottom: 40px; } .delivery-plan-table-container { overflow-x: auto; background-color: #f8f9fa; border-radius: 8px; padding: 20px; } /* 交货计划表格样式 */ .delivery-plan-table { width: 100%; border-collapse: collapse; margin-top: 20px; background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); overflow-x: auto; display: block; } .delivery-plan-table th, .delivery-plan-table td { border: 1px solid #ddd; padding: 10px; text-align: left; min-width: 100px; } /* 特定列的宽度调整 */ .delivery-plan-table th:nth-child(1), .delivery-plan-table td:nth-child(1) { min-width: 80px; } /* 工厂代码 */ .delivery-plan-table th:nth-child(2), .delivery-plan-table td:nth-child(2) { min-width: 100px; } /* 物料编码 */ .delivery-plan-table th:nth-child(3), .delivery-plan-table td:nth-child(3) { min-width: 150px; } /* 物料描述 */ .delivery-plan-table th:nth-child(4), .delivery-plan-table td:nth-child(4) { min-width: 100px; } /* 图号 */ .delivery-plan-table th:nth-child(5), .delivery-plan-table td:nth-child(5) { min-width: 80px; } /* 版本 */ .delivery-plan-table th:nth-child(6), .delivery-plan-table td:nth-child(6) { min-width: 120px; } /* 采购订单号 */ .delivery-plan-table th:nth-child(7), .delivery-plan-table td:nth-child(7) { min-width: 80px; } /* 订单行 */ .delivery-plan-table th:nth-child(8), .delivery-plan-table td:nth-child(8) { min-width: 100px; } /* 供应商代码 */ .delivery-plan-table th:nth-child(9), .delivery-plan-table td:nth-child(9) { min-width: 80px; } /* 采购员 */ .delivery-plan-table th:nth-child(10), .delivery-plan-table td:nth-child(10) { min-width: 100px; } /* 供应类型 */ .delivery-plan-table th:nth-child(11), .delivery-plan-table td:nth-child(11) { min-width: 100px; } /* 订单数量 */ .delivery-plan-table th:nth-child(12), .delivery-plan-table td:nth-child(12) { min-width: 100px; } /* 入库数量 */ .delivery-plan-table th:nth-child(13), .delivery-plan-table td:nth-child(13) { min-width: 100px; } /* 在途数量 */ .delivery-plan-table th:nth-child(14), .delivery-plan-table td:nth-child(14) { min-width: 100px; } /* 待交数量 */ .delivery-plan-table th:nth-child(15), .delivery-plan-table td:nth-child(15) { min-width: 100px; } /* 交货数量 */ .delivery-plan-table th:nth-child(16), .delivery-plan-table td:nth-child(16) { min-width: 120px; } /* 交货日期 */ .delivery-plan-table th:nth-child(17), .delivery-plan-table td:nth-child(17) { min-width: 120px; } /* 供应商回复数量 */ .delivery-plan-table th:nth-child(18), .delivery-plan-table td:nth-child(18) { min-width: 120px; } /* 供应商回复交期 */ .delivery-plan-table th:nth-child(19), .delivery-plan-table td:nth-child(19) { min-width: 150px; } /* 备注 */ .delivery-plan-table th:nth-child(20), .delivery-plan-table td:nth-child(20) { min-width: 120px; } /* 操作 */ .editable-input { padding: 6px 10px; border: 1px solid #ddd; border-radius: 4px; width: 100%; box-sizing: border-box; } /* 供应商回复数量输入框样式 - 确保能显示3位数 */ .supplier-reply-quantity { width: 60px; /* 足够显示3位数字的宽度 */ text-align: center; } .editable-input:focus { outline: none; border-color: #3498db; box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2); } /* 操作按钮样式 */ .action-btn { padding: 6px 12px; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; margin-right: 5px; transition: background-color 0.3s ease; } .save-btn { background-color: #2ecc71; color: white; } .save-btn:hover { background-color: #27ae60; } .cancel-btn { background-color: #e74c3c; color: white; } .cancel-btn:hover { background-color: #c0392b; } /* 修改行高亮样式 */ .modified-row { background-color: #fff3cd !important; } .modified-row:hover { background-color: #ffeaa7 !important; } /* 表格底部样式 */ .table-footer { margin-top: 20px; text-align: right; color: #666; font-size: 14px; } /* 统计信息区域样式 */ .stats-section { margin-bottom: 40px; } .stats-cards { display: flex; gap: 20px; flex-wrap: wrap; } .stat-card { flex: 1; min-width: 150px; background-color: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); text-align: center; } .stat-value { font-size: 2rem; font-weight: bold; color: #3498db; margin-bottom: 10px; } .stat-label { color: #666; font-size: 14px; } .stat-formula { font-size: 12px; color: #95a5a6; margin-top: 5px; font-style: italic; } /* 加载指示器样式 */ .loading-indicator { text-align: center; padding: 40px; color: #666; font-style: italic; } /* 响应式设计 */ @media (max-width: 768px) { .container { margin-top: 20px; padding: 15px; } h1 { font-size: 1.8rem; } h2 { font-size: 1.3rem; } .upload-btn { padding: 10px 20px; font-size: 14px; } .filter-controls { flex-direction: column; align-items: stretch; } .filter-input { width: 100%; } .stats-cards { flex-direction: column; } .stat-card { width: 100%; } }