| | |
| | | const activeCell = ref<{ table: 'summary' | 'detail'; rowIndex: number; field: string } | null>(null); |
| | | const editModalOpen = ref(false); |
| | | const editValue = ref(''); |
| | | const editMeta = ref<{ table: 'summary' | 'detail'; rowIndex: number; field: string; label: string } | null>( |
| | | null |
| | | ); |
| | | const editMeta = ref<{ table: 'summary' | 'detail'; rowIndex: number; field: string; label: string } | null>(null); |
| | | |
| | | const summaryFieldLabels: Record<string, string> = { |
| | | sampleNo: '样品编号', |
| | |
| | | |
| | | function isActiveCell(table: 'summary' | 'detail', rowIndex: number, field: string) { |
| | | return ( |
| | | activeCell.value?.table === table && |
| | | activeCell.value?.rowIndex === rowIndex && |
| | | activeCell.value?.field === field |
| | | activeCell.value?.table === table && activeCell.value?.rowIndex === rowIndex && activeCell.value?.field === field |
| | | ); |
| | | } |
| | | |
| | |
| | | <NCard |
| | | :bordered="false" |
| | | size="small" |
| | | class="card-wrapper flex flex-col sm:flex-1-hidden" |
| | | class="flex flex-col card-wrapper sm:flex-1-hidden" |
| | | content-style="padding: 0; flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column;" |
| | | > |
| | | <div class="report-root"> |
| | |
| | | v-for="opt in segmentOptions" |
| | | :key="opt.key" |
| | | class="report-pill" |
| | | :class="[ |
| | | `report-pill--${opt.tone}`, |
| | | { 'report-pill--active': opt.key === activeSegment } |
| | | ]" |
| | | :class="[`report-pill--${opt.tone}`, { 'report-pill--active': opt.key === activeSegment }]" |
| | | type="button" |
| | | @click="activeSegment = opt.key" |
| | | > |
| | |
| | | |
| | | <div class="report-title report-title--sub">卷烟包装检验结果汇总表</div> |
| | | |
| | | <div class="report-table-scroll" ref="detailScrollRef"> |
| | | <div ref="detailScrollRef" class="report-table-scroll"> |
| | | <table class="report-table report-table--detail"> |
| | | <thead> |
| | | <tr> |
| | |
| | | v-for="opt in bottomOptions" |
| | | :key="opt.key" |
| | | class="report-pill report-pill--bottom" |
| | | :class="[ |
| | | `report-pill--${opt.tone}`, |
| | | { 'report-pill--active': opt.key === activeBottom } |
| | | ]" |
| | | :class="[`report-pill--${opt.tone}`, { 'report-pill--active': opt.key === activeBottom }]" |
| | | type="button" |
| | | @click="activeBottom = opt.key" |
| | | > |