<template>
|
<div class="wave-order-rela-panel">
|
<ArtTable :loading="loading" :data="rows" :columns="columns" />
|
</div>
|
</template>
|
|
<script setup>
|
import { computed, ref, watch } from 'vue'
|
import { useI18n } from 'vue-i18n'
|
import { defaultResponseAdapter } from '@/utils/table/tableUtils'
|
import { fetchWaveOrderRelaPage } from '@/api/wave'
|
import { normalizeWaveOrderRelaRow } from '../wavePage.helpers'
|
import { createWaveOrderRelaColumns } from '../waveTable.columns'
|
|
const props = defineProps({
|
waveId: { type: [Number, String], default: undefined }
|
})
|
|
const loading = ref(false)
|
const rows = ref([])
|
const { t } = useI18n()
|
const columns = computed(() => createWaveOrderRelaColumns(t))
|
|
async function loadRows() {
|
if (props.waveId === undefined || props.waveId === null || props.waveId === '') {
|
rows.value = []
|
return
|
}
|
loading.value = true
|
try {
|
const response = await fetchWaveOrderRelaPage({
|
waveId: Number(props.waveId),
|
current: 1,
|
pageSize: 200
|
})
|
const records = defaultResponseAdapter(response).records
|
rows.value = Array.isArray(records)
|
? records.map((item) => normalizeWaveOrderRelaRow(item))
|
: []
|
} catch {
|
rows.value = []
|
} finally {
|
loading.value = false
|
}
|
}
|
|
watch(
|
() => props.waveId,
|
() => {
|
loadRows()
|
},
|
{ immediate: true }
|
)
|
</script>
|
|
<style scoped>
|
.wave-order-rela-panel {
|
padding: 12px 0;
|
}
|
</style>
|