Browse Source

refactor: 抽取 RouteCard 航线库展示卡

main
xiaosi 3 weeks ago
parent
commit
5832dbf142
  1. 22
      src/components/RouteCard.vue
  2. 20
      src/views/TasksView/TasksView.vue

22
src/components/RouteCard.vue

@ -0,0 +1,22 @@
<template>
<article>
<div class="route-map" :class="mapClass">
<svg><use href="#i-route" /></svg>
<span>{{ distance }}</span>
</div>
<div>
<strong>{{ name }}</strong>
<small>{{ waypoints }} 个航点 · 采集于 {{ collectedAt }}</small>
</div>
</article>
</template>
<script setup>
defineProps({
name: { type: String, required: true },
waypoints: { type: Number, required: true },
distance: { type: String, required: true },
collectedAt: { type: String, required: true },
mapClass: { type: String, required: true }
})
</script>

20
src/views/TasksView/TasksView.vue

@ -119,16 +119,15 @@
<t-button variant="outline" @click="openRouteEditor"><svg><use href="#i-plus" /></svg>新建航线</t-button> <t-button variant="outline" @click="openRouteEditor"><svg><use href="#i-plus" /></svg>新建航线</t-button>
</div> </div>
<div class="route-grid"> <div class="route-grid">
<article v-for="r in filteredRoutes" :key="r.id">
<div class="route-map" :class="r.mapClass">
<svg><use href="#i-route" /></svg>
<span>{{ r.distance }}</span>
</div>
<div>
<strong>{{ r.name }}</strong>
<small>{{ r.waypoints }} 个航点 · 采集于 {{ r.collectedAt }}</small>
</div>
</article>
<RouteCard
v-for="r in filteredRoutes"
:key="r.id"
:name="r.name"
:waypoints="r.waypoints"
:distance="r.distance"
:collected-at="r.collectedAt"
:map-class="r.mapClass"
/>
<div v-if="!filteredRoutes.length" class="table-empty" style="grid-column:1/-1">暂无航线</div> <div v-if="!filteredRoutes.length" class="table-empty" style="grid-column:1/-1">暂无航线</div>
</div> </div>
</div> </div>
@ -243,6 +242,7 @@ import { useDeviceStore } from '@/stores/modules/devicesStore'
import * as urls from '@/config/urls' import * as urls from '@/config/urls'
import commonRefs from '@/utils/commonRefs' import commonRefs from '@/utils/commonRefs'
import mapHelper from '@/core/mapHelper' import mapHelper from '@/core/mapHelper'
import RouteCard from '@/components/RouteCard.vue'
const ROUTE_SOURCE = 'task-route' const ROUTE_SOURCE = 'task-route'
const ROUTE_LINE = 'task-route-line' const ROUTE_LINE = 'task-route-line'

Loading…
Cancel
Save