purchase.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <script setup lang="ts">
  2. import { ref } from "vue";
  3. import contentConfig from "./purchase-config/content.config";
  4. import searchConfig from "./purchase-config/search.config";
  5. import { usePageSearch, type PageHooks, type PageEvents } from "/@/hooks/page";
  6. import InvoiceModal from "./components/invoice-modal.vue";
  7. import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
  8. import { useRouter } from "vue-router";
  9. import { PageContent } from "/@/components/PageContent";
  10. const PageName = "query";
  11. const baseUrl = "/purchase/ticketReturnDetail";
  12. const invStatus = ["3", "4", "5", "6", "9", "10", "12"];
  13. const pageContentRef = ref<InstanceType<typeof PageContent> | null>(null);
  14. const invoiceModalRef = ref<any>(null);
  15. const { push } = useRouter();
  16. const hooks: PageHooks = {
  17. pageSearchHook: () => usePageSearch(undefined, undefined, searchConfig)
  18. };
  19. const events: PageEvents = {
  20. content: {
  21. preview: ({ hpNo }) => push(`${baseUrl}?id=${hpNo}`),
  22. create: () => push(baseUrl)
  23. }
  24. };
  25. </script>
  26. <template>
  27. <PageAuth :pageName="PageName">
  28. <PageContainer
  29. :hooks="hooks"
  30. :events="events"
  31. :contentConfig="contentConfig"
  32. :search-config="searchConfig"
  33. :get-content-ref="(ref:any) => (pageContentRef = ref)"
  34. >
  35. <template #content_action="row">
  36. <ElButton
  37. v-if="invStatus.includes(String(row.status))"
  38. link
  39. type="primary"
  40. :icon="useRenderIcon('scaletooriginal')"
  41. @click="() => invoiceModalRef.onDisplay(row.invoiceNumber)"
  42. />
  43. </template>
  44. </PageContainer>
  45. <InvoiceModal inv-type="purchase" ref="invoiceModalRef" />
  46. </PageAuth>
  47. </template>