dict.jsx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import {Table, Button, Input, Popconfirm} from "antd";
  2. import {useState, useEffect} from "react";
  3. import ModalHooks from "./components/dictType.jsx";
  4. import "./dict.scss";
  5. import axios from "@/utils/axios.js";
  6. const {Column} = Table;
  7. export default function Dict() {
  8. const [inputVal, setInputVal] = useState("");
  9. // 页面数据
  10. const [data, setData] = useState([]);
  11. // 是否展示弹框
  12. const [isModalOpen, setIsModalOpen] = useState(false);
  13. const [row, setRow] = useState({});
  14. // 新增用户页面
  15. function addUser() {
  16. setRow([]);
  17. setIsModalOpen(true);
  18. }
  19. // 关闭页面
  20. function closeModal() {
  21. setIsModalOpen(false);
  22. getData()
  23. }
  24. // 点击修改的回调
  25. function modify(data) {
  26. setRow(data);
  27. setIsModalOpen(true);
  28. }
  29. // 获取数据
  30. async function getData() {
  31. let {data} = await axios.get("/sys/select");
  32. setData(data);
  33. }
  34. /**
  35. * 删除页面
  36. * @param data 删除每一条数据
  37. * @returns {Promise<void>}
  38. */
  39. async function deleteRow(data) {
  40. let {code} = await axios.get('/sys/delete', {params: {id: data.id}})
  41. if (code === 200) {
  42. await getData()
  43. }
  44. }
  45. useEffect(() => {
  46. getData();
  47. }, []);
  48. return (
  49. <div className="user">
  50. <div className="top">
  51. <div className="input">
  52. <Input
  53. value={inputVal}
  54. onChange={(e) => setInputVal(e.target.value)}
  55. />{" "}
  56. <Button type="primary">搜索</Button>
  57. </div>
  58. <div className="button">
  59. <Button type="primary" onClick={addUser}>
  60. 添加字典数值
  61. </Button>
  62. </div>
  63. </div>
  64. <Table
  65. dataSource={data}
  66. pagination={{position: ["bottomRight"]}}
  67. bordered={true}
  68. rowKey="id"
  69. >
  70. <Column title="用户名" dataIndex="account" key="id" width="200px"/>
  71. <Column title="姓名" dataIndex="name" key="id"/>
  72. <Column title="手机号" dataIndex="phone" key="id"/>
  73. <Column
  74. title="类型"
  75. dataIndex="type"
  76. key="id"
  77. render={(type) => (
  78. <>
  79. <span>{type === 0 ? "管理员" : "游客"}</span>
  80. </>
  81. )}
  82. ></Column>
  83. <Column title="备注" dataIndex="remark" key="id"/>
  84. <Column
  85. title="操作"
  86. width="170px"
  87. dataIndex="id"
  88. key="id"
  89. render={(text, record) => (
  90. <div className="btn">
  91. <Button type="primary" onClick={() => modify(record)}>
  92. 修改
  93. </Button>
  94. <Popconfirm
  95. title="删除数据"
  96. description="是否删除本条数据?"
  97. onConfirm={() => deleteRow(record)}
  98. okText="删除"
  99. cancelText="取消"
  100. >
  101. <Button type="primary" danger>
  102. 删除
  103. </Button>
  104. </Popconfirm>
  105. </div>
  106. )}
  107. />
  108. </Table>
  109. <ModalHooks
  110. isModalOpen={isModalOpen}
  111. closeModal={closeModal}
  112. row={row}
  113. ></ModalHooks>
  114. </div>
  115. );
  116. }