index.tsx 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { ActionType, PageContainer, ProTable } from "@ant-design/pro-components"
  2. import { columns } from "./tableConfig"
  3. import { useAjax } from "@/Hook/useAjax"
  4. import { useModel } from "@umijs/max"
  5. import PageExtend from "./extend"
  6. import { useEffect, useRef } from "react"
  7. import { listOfPage } from "@/services/miniApp/extend"
  8. type Props = {
  9. isModal?: boolean
  10. value?: any
  11. onChange?: (v: any) => void
  12. onClose?: (v: any) => void
  13. }
  14. const Page: React.FC<Props> = (props) => {
  15. let { isModal, value } = props
  16. let { initialState } = useModel("@@initialState")
  17. const actionRef = useRef<ActionType>();
  18. let getList = useAjax((params) => listOfPage(params), { type: 'table' })
  19. let form = useRef<any>()
  20. // 当作为组件使用时首次打开存在链接名称以链接名称搜索
  21. useEffect(() => {
  22. if (value?.linkName && !value?.bookName) {
  23. form?.current?.setFieldValue("linkName", value?.linkName)
  24. form?.current?.submit()
  25. }
  26. }, [])
  27. return <PageContainer title={false}
  28. header={isModal ? { breadcrumb: {} } : {}}
  29. >
  30. <ProTable<any, any>
  31. scroll={{ x: true }}
  32. actionRef={actionRef}
  33. toolBarRender={() => {
  34. return !isModal ? [
  35. <PageExtend reload={actionRef?.current?.reload} />,
  36. ] : [];
  37. }}
  38. params={{
  39. appId: initialState?.selectApp?.id || "",
  40. appType: initialState?.selectApp?.appType || "",
  41. linkType: 2
  42. }}
  43. headerTitle={"页面推广列表"}
  44. rowKey={(r) => r.linkId}
  45. //多选
  46. rowSelection={!!props?.onChange ? {
  47. hideSelectAll: true,
  48. type: 'radio',
  49. selectedRowKeys: [props?.value?.linkId || props?.value],
  50. onSelect: (record, selected) => {
  51. props?.onChange?.(record)
  52. // props?.onClose?.(false)
  53. },
  54. } : false}
  55. // 点击行
  56. onRow={(record) => ({
  57. onClick: () => {
  58. props?.onChange?.(record)
  59. props?.onClose?.(false)
  60. }
  61. })}
  62. //多选展示按钮
  63. tableAlertOptionRender={false}
  64. //多选展示栏
  65. tableAlertRender={false}
  66. formRef={form}
  67. search={{
  68. labelWidth: 90,
  69. span: 6
  70. }}
  71. request={async (params) => {
  72. return await getList.run(params)
  73. }}
  74. columns={columns()}
  75. // bordered
  76. />
  77. </PageContainer>
  78. }
  79. export default Page