FinMovilizaciones.jsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import { useRef, useState } from "react";
  2. import { Form, Modal, Tooltip, notification } from "antd";
  3. import { DeleteOutlined, PlusOutlined } from "@ant-design/icons";
  4. import { Tabla } from "../../../components";
  5. import { SimpleTableLayout } from "../../../components/layouts";
  6. import { ActionsButton } from "../../../components";
  7. import { isEllipsis, eliminarRegistro } from "../../../utilities";
  8. import { Link, useNavigate } from "react-router-dom";
  9. import Formulario from "./Formulario";
  10. const endPoint = "fin-movilizacion";
  11. const endPointEliminar = "fin-movilizacion/eliminar";
  12. const FinMovilizaciones = () => {
  13. const tablaRef = useRef(null);
  14. const navigate = useNavigate();
  15. const [form] = Form.useForm();
  16. const [buscarParams, setBuscarParams] = useState({
  17. padre: true,
  18. });
  19. const onFinish = (values) => {
  20. const { q } = values;
  21. const params = {
  22. q: q ?? "",
  23. padre: true,
  24. };
  25. setBuscarParams(params);
  26. };
  27. const botones = [
  28. {
  29. onClick: () => navigate(`/administracion/catalogos/finMovilizaciones/agregar`),
  30. props: { disabled: false, type: "primary", block: false },
  31. text: "Nuevo",
  32. icon: <PlusOutlined />,
  33. },
  34. ];
  35. const linkText = (value, row, key) => (
  36. <Link
  37. to={`/administracion/catalogos/finMovilizaciones/editar?id=${row.id}`}
  38. style={{ color: "black" }}
  39. >
  40. {isEllipsis(columns, key) ? (
  41. <Tooltip title={value}>{value}</Tooltip>
  42. ) : (
  43. value
  44. )}
  45. </Link>
  46. );
  47. const columns = [
  48. {
  49. title: "Acciones",
  50. key: "correo",
  51. dataIndex: "correo",
  52. width: 100,
  53. align: "center",
  54. render: (_, item) => (
  55. <ActionsButton
  56. data={[
  57. {
  58. label: "Editar",
  59. onClick: () =>
  60. navigate(`/administracion/catalogos/finMovilizaciones/editar?id=${item?.id}`),
  61. },
  62. {
  63. label: "Eliminar",
  64. onClick: () => {
  65. eliminarRegistro(`${item.nombre}`, item.id, endPointEliminar, () =>
  66. tablaRef.current.refresh()
  67. );
  68. },
  69. danger: true,
  70. },
  71. ]}
  72. />
  73. ),
  74. },
  75. {
  76. title: "Nombre",
  77. key: "nombre",
  78. dataIndex: "nombre",
  79. render: linkText,
  80. },
  81. {
  82. title: "ID Sagarhpa",
  83. key: "idSagarhpa",
  84. dataIndex: "idSagarhpa",
  85. render: linkText,
  86. },
  87. ];
  88. return (
  89. <SimpleTableLayout
  90. btnGroup={{
  91. btnGroup: botones,
  92. }}
  93. >
  94. <Formulario
  95. form={form}
  96. onFinish={onFinish}
  97. />
  98. <Tabla
  99. columns={columns}
  100. nameURL={endPoint}
  101. extraParams={buscarParams}
  102. scroll={{ x: "30vw" }}
  103. ref={tablaRef}
  104. />
  105. </SimpleTableLayout>
  106. );
  107. };
  108. export default FinMovilizaciones;