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
61
62
63
64
65
66
67
<script lang="ts" setup>
import type { MesProFeedbackApi } from '#/api/mes/pro/feedback';
 
import { onMounted, ref } from 'vue';
import { useRouter } from 'vue-router';
 
import { Page } from '@vben/common-ui';
import { useTabs } from '@vben/hooks';
 
import { Card, Tabs } from 'ant-design-vue';
 
import { TableAction } from '#/adapter/vxe-table';
import { getFeedback } from '#/api/mes/pro/feedback';
import { useDescription } from '#/components/description';
 
import { useDetailSchema } from '../data';
import ItemConsumeList from '../modules/item-consume-list.vue';
import ProductProduceList from '../modules/product-produce-list.vue';
 
const props = defineProps<{ id: string }>();
 
const router = useRouter();
const tabs = useTabs();
 
const loading = ref(false);
const feedbackId = ref(0);
const feedback = ref<MesProFeedbackApi.Feedback>({});
const activeTab = ref('itemConsume');
 
const [Descriptions] = useDescription({
  bordered: false,
  column: 4,
  schema: useDetailSchema(),
});
 
async function loadFeedbackDetail() {
  loading.value = true;
  try {
    feedback.value = await getFeedback(feedbackId.value);
  } finally {
    loading.value = false;
  }
}
 
function handleBack() {
  tabs.closeCurrentTab();
  router.push({ path: '/mes/pro/feedback' });
}
 
onMounted(() => {
  feedbackId.value = Number(props.id);
  loadFeedbackDetail();
});
</script>
 
<template>
  <Page
    auto-content-height
    :loading="loading"
    :title="feedback.code ? `生产报工详情 - ${feedback.code}` : '生产报工详情'"
  >
    <Card class="min-h-[10%]">
      <Descriptions :data="feedback" />
    </Card>
 
  </Page>
</template>