fix(drivers): refresh cached list and summary when returning from details
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user