index.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <script setup lang="ts">
  2. import { ref } from "vue";
  3. import { PageSearch, usePageSearch } from "/@/components/PageSearch";
  4. import searchConfig from "./config/search.config";
  5. import contentConfig from "./config/content.config";
  6. import PageAuth from "/@/components/PageAuth";
  7. import { PageModal, usePageModal } from "/@/components/PageModal";
  8. import modalConfig from "./config/modal.config";
  9. import { PageContent } from "/@/components/PageContent";
  10. import type { PageContentInstance } from "/@/components/PageContent";
  11. import { useResponseHandle } from "/@/hooks/useAsync";
  12. import { httpDetail } from "/@/api/mobile/user";
  13. const pageContentRef = ref<PageContentInstance | null>(null);
  14. const {
  15. pageModalRef,
  16. handleUpdateData,
  17. handleCreateData,
  18. handlePreviewData,
  19. handleConfrim,
  20. defaultInfo
  21. } = usePageModal({
  22. pageContentRef
  23. });
  24. const { handleResetClick, handleSearchClick } = usePageSearch();
  25. const responseHandle = useResponseHandle();
  26. async function handleDetailData(row, type) {
  27. const { id } = row;
  28. //
  29. const { code, data, message } = await httpDetail({ id: id });
  30. responseHandle({
  31. code,
  32. message,
  33. handler: () => {
  34. if (type === "preview") {
  35. handlePreviewData(data);
  36. }
  37. if (type === "update") {
  38. handleUpdateData(data);
  39. }
  40. }
  41. });
  42. }
  43. </script>
  44. <template>
  45. <!-- <PageAuth :pageName="pageName"> -->
  46. <PageSearch
  47. :form-config="searchConfig"
  48. @search-btn-click="handleSearchClick"
  49. @reset-btn-click="handleResetClick"
  50. />
  51. <PageContent
  52. ref="pageContentRef"
  53. :content-config="contentConfig"
  54. @create-btn-click="handleCreateData"
  55. @preview-btn-click="row => handleDetailData(row, 'preview')"
  56. @update-btn-click="row => handleDetailData(row, 'update')"
  57. />
  58. <PageModal
  59. ref="pageModalRef"
  60. :modal-config="modalConfig"
  61. :default-info="defaultInfo"
  62. @confirm-btn-click="handleConfrim"
  63. />
  64. <!-- </PageAuth> -->
  65. </template>