| | |
| | | <div class="content" v-loading="loading" element-loading-background="rgba(5, 5, 15, 0.6)" |
| | | element-loading-text="加载中..."> |
| | | <EmptyState v-if="!sceneList.length && !loading" /> |
| | | <div class="scene-card" v-else v-for="(item, index) in sceneList" :key="index"> |
| | | <div class="scene-card" v-else v-for="(item, index) in sceneList" :key="index" @click="emit('click', item)"> |
| | | <div class="card-header"> |
| | | <el-tooltip class="title-tooltip" :content="item.sceneName || '-'" placement="top" effect="dark" |
| | | :show-after="200"> |
| | |
| | | </div> |
| | | <div class="row"> |
| | | <span class="label">有效时间</span> |
| | | </div> |
| | | <div class="row"> |
| | | <span class="value">{{ formatTimeRange(item.effectiveDateStart, item.effectiveDateEnd) }}</span> |
| | | </div> |
| | | </div> |
| | |
| | | console.error('获取场景统计失败:', error) |
| | | } |
| | | } |
| | | |
| | | const emit = defineEmits(['click']) |
| | | |
| | | const fetchList = async () => { |
| | | // 只有超过200ms才显示loading,避免闪烁 |
| | |
| | | margin-top: 10px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 10px; |
| | | |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: 400; |
| | |
| | | text-transform: none; |
| | | |
| | | .row { |
| | | margin-top: 10px; |
| | | |
| | | line-height: 22px; |
| | | |
| | | .label { |
| | | margin-right: 10px; |
| | | color: #D4D5D7; |
| | | } |
| | | |
| | | &:first-child { |
| | | margin-top: 0; |
| | | } |
| | | |
| | | &:last-child { |
| | | margin-top: 0; |
| | | } |
| | | } |
| | | |
| | | .rows { |
| | | margin-top: 10px; |
| | | |
| | | display: flex; |
| | | |
| | | .col { |