fix(drivers): refresh cached list and summary when returning from details

This commit is contained in:
2026-10-03 23:44:35 +08:00
parent 9ec1fb549e
commit 5c4a381d87
2 changed files with 48 additions and 1 deletions
@@ -1,6 +1,6 @@
<script setup lang="ts">
import '@/styles/adminDensity.css'
import { onBeforeUnmount, onMounted, ref, watch } from 'vue'
import { onActivated, onBeforeUnmount, onDeactivated, onMounted, ref, watch } from 'vue'
import { useRouter } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Plus } from '@lucide/vue'
@@ -26,6 +26,7 @@ const rows = ref<DriverDetail[]>([]), total = ref(0), page = ref(1), pageSize =
const error = ref<ApiErrorDetails | null>(null), summary = ref<DriverSummary | null>(null)
const filters = ref<QueryModel>({ keyword: '', region: '', ownership: '', active: '', reviewStatus: '', licenseState: '' })
let applied: Omit<DriverQuery, 'page' | 'size'> = {}, request = 0
let refreshOnReturn = false
const editorOpen = ref(false), editing = ref<DriverDetail | null>(null), actionId = ref('')
const previewOpen = ref(false), preview = ref<DriverDetail | null>(null)
const fields: QueryField[] = [
@@ -101,6 +102,10 @@ function saved(row: DriverDetail) {
watch(editorOpen, (value, previous) => { if (!value && previous) void load() })
watch([page, pageSize], () => void load())
onMounted(load)
onDeactivated(() => { request++; refreshOnReturn = true })
onActivated(() => {
if (refreshOnReturn) { refreshOnReturn = false; void load() }
})
onBeforeUnmount(() => { request++ })
</script>