zhou zhou
8 天以前 33bd4dd1f0e41131cd8e5bbf87204a1f0b72bb08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<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>