index.vue 1.4 KB

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