| | |
| | | <div> |
| | | <PanelHeader title="生产订单完成进度" /> |
| | | <div class="main-panel"> |
| | | <div class="panel-item-customers"> |
| | | <div class="panel-item-customers bi-panel"> |
| | | <CarouselCards :items="cardItems" :visible-count="4" /> |
| | | <div |
| | | class="progress-table-container" |
| | |
| | | import { getProgressStatistics } from '@/api/viewIndex.js' |
| | | import PanelHeader from './PanelHeader.vue' |
| | | import CarouselCards from './CarouselCards.vue' |
| | | import { BI_COLORS } from '../theme.js' |
| | | |
| | | const progressTableRef = ref(null) |
| | | const progressTableScrollTimer = ref(null) |
| | |
| | | // 根据进度百分比返回颜色 |
| | | const progressColor = (percentage) => { |
| | | const p = percentage || 0 |
| | | if (p < 30) return '#f56c6c' |
| | | if (p < 50) return '#e6a23c' |
| | | if (p < 80) return '#409eff' |
| | | return '#67c23a' |
| | | if (p < 30) return BI_COLORS.red |
| | | if (p < 50) return BI_COLORS.amber |
| | | if (p < 80) return BI_COLORS.primary |
| | | return BI_COLORS.green |
| | | } |
| | | |
| | | const setRowRef = (el, index) => { |
| | |
| | | } |
| | | |
| | | .panel-item-customers { |
| | | border: 1px solid #1a58b0; |
| | | padding: 18px; |
| | | width: 100%; |
| | | height: 428px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 12px; |
| | | } |
| | | |
| | | .progress-table-container { |
| | | height: 320px; |
| | | flex: 1; |
| | | min-height: 0; |
| | | overflow-y: auto; |
| | | overflow-x: hidden; |
| | | margin-top: 10px; |
| | | scrollbar-width: none; |
| | | -ms-overflow-style: none; |
| | | } |
| | |
| | | .progress-table { |
| | | width: 100%; |
| | | border-collapse: collapse; |
| | | color: #b8c8e0; |
| | | color: var(--bi-text-secondary); |
| | | font-size: 12px; |
| | | table-layout: fixed; |
| | | } |
| | |
| | | .progress-table thead { |
| | | position: sticky; |
| | | top: 0; |
| | | background-color: rgba(26, 88, 176, 0.9); |
| | | background-color: var(--bi-surface-2); |
| | | z-index: 10; |
| | | } |
| | | |
| | |
| | | padding: 8px 6px; |
| | | text-align: left; |
| | | font-weight: 500; |
| | | border-bottom: 1px solid rgba(184, 200, 224, 0.3); |
| | | color: #b8c8e0; |
| | | border-bottom: 1px solid var(--bi-divider); |
| | | color: var(--bi-text); |
| | | font-size: 12px; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | |
| | | |
| | | .progress-table td { |
| | | padding: 8px 6px; |
| | | border-bottom: 1px solid rgba(184, 200, 224, 0.1); |
| | | border-bottom: 1px solid var(--bi-divider); |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | |
| | | } |
| | | |
| | | .progress-table tbody tr:hover { |
| | | background-color: rgba(184, 200, 224, 0.1); |
| | | background-color: rgba(159, 176, 207, 0.06); |
| | | } |
| | | |
| | | .progress-table tbody tr.row-under-header { |
| | |
| | | } |
| | | |
| | | .progress-table :deep(.el-progress-bar__outer) { |
| | | background-color: rgba(184, 200, 224, 0.2); |
| | | background-color: rgba(159, 176, 207, 0.15); |
| | | } |
| | | |
| | | .progress-table :deep(.el-progress__text) { |
| | | color: #b8c8e0; |
| | | color: var(--bi-text-secondary); |
| | | font-size: 11px; |
| | | } |
| | | </style> |