index.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <script setup lang="ts">
  2. import { PageSearch, usePageSearch } from "/@/components/PageSearch";
  3. import { PageModal, usePageModal } from "/@/components/PageModal";
  4. import { PageContent } from "/@/components/PageContent";
  5. import searchFormConfig from "./config/search.config";
  6. import modalConfig from "./config/modal.config";
  7. import contentConfig from "./config/content.config";
  8. import { useRouter } from "vue-router";
  9. import PagePower from "/@/components/PagePower/PagePower.vue";
  10. import { usePermission } from "/@/hooks";
  11. defineOptions({
  12. name: "invoiceheader"
  13. });
  14. const { push } = useRouter();
  15. const { pageContentRef, handleResetClick, handleSearchClick } = usePageSearch();
  16. const { pageModalRef, handleConfrim } = usePageModal({
  17. pageContentRef
  18. });
  19. function toDetail(returnCode) {
  20. push({
  21. path: "/InvoiceSales/returnTicketDetail",
  22. query: {
  23. id: returnCode
  24. }
  25. });
  26. }
  27. const { permission, contentConfigRef } = usePermission({
  28. pageName: "returnTicket",
  29. contentConfig,
  30. callback: powers => (contentConfig.powers = powers)
  31. });
  32. </script>
  33. <template>
  34. <div class="main role">
  35. <PagePower :is-show="permission.list">
  36. <div w-full>
  37. <PageSearch
  38. :form-config="searchFormConfig"
  39. @search-btn-click="handleSearchClick"
  40. @reset-btn-click="handleResetClick"
  41. />
  42. <PageContent
  43. ref="pageContentRef"
  44. :content-config="contentConfigRef"
  45. @preview-btn-click="({ returnCode }) => toDetail(returnCode)"
  46. @create-btn-click="() => push('/InvoiceSales/returnTicketDetail')"
  47. />
  48. </div>
  49. <PageModal
  50. ref="pageModalRef"
  51. :modalConfig="modalConfig"
  52. @confirm-btn-click="handleConfrim"
  53. />
  54. </PagePower>
  55. </div>
  56. </template>
  57. <style scoped lang="scss">
  58. :deep(.el-dropdown-menu__item i) {
  59. margin: 0;
  60. }
  61. </style>