From 426713b66135367cec4fd0734d7d3eea09c69b74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Fri, 3 Mar 2023 18:27:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=91=E5=BD=A2=E9=83=A8=E9=97=A8=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/compenents/index.ts | 3 +- src/compenents/leftMenu/index.tsx | 10 +- .../treeDepartment/index.module.less | 0 src/compenents/treeDepartment/index.tsx | 37 +++ src/pages/member/index.tsx | 290 +++++++++++------- 5 files changed, 229 insertions(+), 111 deletions(-) create mode 100644 src/compenents/treeDepartment/index.module.less create mode 100644 src/compenents/treeDepartment/index.tsx diff --git a/src/compenents/index.ts b/src/compenents/index.ts index a662ea6..d3c2c99 100644 --- a/src/compenents/index.ts +++ b/src/compenents/index.ts @@ -1,4 +1,5 @@ export * from "./footer"; export * from "./header"; export * from "./leftMenu"; -export * from "./uploadImageButton"; \ No newline at end of file +export * from "./uploadImageButton"; +export * from ".//treeDepartment"; \ No newline at end of file diff --git a/src/compenents/leftMenu/index.tsx b/src/compenents/leftMenu/index.tsx index b59f371..69365c0 100644 --- a/src/compenents/leftMenu/index.tsx +++ b/src/compenents/leftMenu/index.tsx @@ -24,7 +24,7 @@ const items = [ getItem("网校装修", "/decoration", , null, null), getItem( "课程内容", - "2", + "3", , [ getItem("视频", "/vod", null, null, null), @@ -35,16 +35,16 @@ const items = [ ), getItem( "学员管理", - "3", + "4", , [getItem("学员", "/member", null, null, null)], null ), - getItem("证书管理", "4", , [], null), - getItem("系统设置", "5", , [,], null), + getItem("证书管理", "5", , [], null), + getItem("系统设置", "6", , [,], null), ]; -const rootSubmenuKeys = ["2", "3", "4", "5"]; +const rootSubmenuKeys = ["3", "4", "5", "6"]; export const LeftMenu: React.FC = () => { //展开的subMenu diff --git a/src/compenents/treeDepartment/index.module.less b/src/compenents/treeDepartment/index.module.less new file mode 100644 index 0000000..e69de29 diff --git a/src/compenents/treeDepartment/index.tsx b/src/compenents/treeDepartment/index.tsx new file mode 100644 index 0000000..e2bb5c5 --- /dev/null +++ b/src/compenents/treeDepartment/index.tsx @@ -0,0 +1,37 @@ +import { Button, Input, message, Tree } from "antd"; +import { useState, useEffect } from "react"; +import { department } from "../../api/index"; + +interface PropInterface { + defaultExpandedKeys: any; + defaultSelectedKeys: any; + defaultCheckedKeys: any; + onUpdate: () => void; +} + +export const TreeDepartment = (props: PropInterface) => { + const [treeData, setTreeData] = useState([]); + const [loading, setLoading] = useState(true); + useEffect(() => { + setLoading(true); + department.departmentList().then((res: any) => { + setTreeData(res.data); + setTimeout(() => { + setLoading(false); + }, 1000); + }); + }, []); + const onSelect = () => {}; + const onCheck = () => {}; + return ( + + ); +}; diff --git a/src/pages/member/index.tsx b/src/pages/member/index.tsx index 7aed163..14b3414 100644 --- a/src/pages/member/index.tsx +++ b/src/pages/member/index.tsx @@ -1,9 +1,21 @@ import React, { useState, useEffect } from "react"; -import { Typography, Input, Select, Button, Space, Table } from "antd"; +import { + Row, + Col, + Typography, + Input, + Select, + Button, + Space, + Table, + Popconfirm, + message, +} from "antd"; import type { ColumnsType } from "antd/es/table"; import styles from "./index.module.less"; import { PlusOutlined, ReloadOutlined } from "@ant-design/icons"; import { user } from "../../api/index"; +import { TreeDepartment } from "../../compenents"; interface DataType { id: React.Key; @@ -14,59 +26,6 @@ interface DataType { is_lock: number; } -const columns: ColumnsType = [ - { - title: "ID", - key: "id", - dataIndex: "id", - }, - { - title: "学员昵称", - dataIndex: "nickname", - render: (text: string) => {text}, - }, - { - title: "邮箱", - dataIndex: "email", - }, - { - title: "积分", - dataIndex: "credit1", - }, - { - title: "注册时间", - dataIndex: "created_at", - }, - { - title: "操作", - key: "action", - render: (_, record) => ( - - - - - ), - }, -]; - -const rowSelection = { - onChange: (selectedRowKeys: React.Key[], selectedRows: DataType[]) => { - console.log( - `selectedRowKeys: ${selectedRowKeys}`, - "selectedRows: ", - selectedRows - ); - }, - getCheckboxProps: (record: DataType) => ({ - disabled: record.nickname === "Disabled User", - name: record.nickname, - }), -}; - export const MemberPage: React.FC = () => { const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [loading, setLoading] = useState(true); @@ -74,7 +33,56 @@ export const MemberPage: React.FC = () => { const [size, setSize] = useState(10); const [list, setList] = useState([]); const [total, setTotal] = useState(0); - const [params, setParams] = useState({}); + const [nickname, setNickname] = useState(""); + const [email, setEmail] = useState(""); + const [id_card, setIdCard] = useState(""); + + const columns: ColumnsType = [ + { + title: "ID", + key: "id", + dataIndex: "id", + }, + { + title: "学员昵称", + dataIndex: "nickname", + render: (text: string) => {text}, + }, + { + title: "邮箱", + dataIndex: "email", + }, + { + title: "积分", + dataIndex: "credit1", + }, + { + title: "注册时间", + dataIndex: "created_at", + }, + { + title: "操作", + key: "action", + render: (_, record) => ( + + + delUser(record.id)} + okText="确定" + cancelText="取消" + > + + + + ), + }, + ]; useEffect(() => { getData(1, size); @@ -89,22 +97,29 @@ export const MemberPage: React.FC = () => { setSize(size); setPage(page); setLoading(true); - user.userList(page, size, params).then((res: any) => { - setList(res.data.data); - setTotal(res.data.total); - setTimeout(() => { - setSelectedRowKeys([]); - setLoading(false); - }, 1000); - }); + user + .userList(page, size, { + nickname: nickname, + email: email, + id_card: id_card, + }) + .then((res: any) => { + setList(res.data.data); + setTotal(res.data.total); + setTimeout(() => { + setSelectedRowKeys([]); + setLoading(false); + }, 1000); + }); }; const resetData = () => { - setList([]); - setParams({}); + setNickname(""); + setEmail(""); + setIdCard(""); setTimeout(() => { getData(1, 10); - }, 500); + }, 1000); }; const rowSelection = { @@ -122,55 +137,120 @@ export const MemberPage: React.FC = () => { }; const handlePageChange = (page: number, pageSize: number) => { - console.log(page, pageSize); setTimeout(() => { getData(page, pageSize); }, 500); }; + const delUser = (id: any) => { + user.destroyUser(id).then((res: any) => { + setTimeout(() => { + message.success("操作成功"); + getData(1, size); + }, 1000); + }); + }; + const hasSelected = selectedRowKeys.length > 0; return ( <> -
-
-
- 昵称或手机号: - + + + { + console.log(111); + }} + > + + +
+
+
+ 昵称: + { + setNickname(e.target.value); + }} + style={{ width: 160 }} + placeholder="请输入昵称" + /> +
+
+ 邮箱: + { + setEmail(e.target.value); + }} + style={{ width: 160 }} + placeholder="请输入邮箱" + /> +
+
+ 身份证号: + { + setIdCard(e.target.value); + }} + style={{ width: 160 }} + placeholder="请输入身份证号" + /> +
+
+ + +
+
-
- - +
+
+
+ +
+
+ +
+
+
+ record.id} + /> + - - -
-
-
- - -
-
- -
-
-
-
- - + + ); };