React + 项目(从基础到实战) -- 第六期

devtools/2024/10/20 6:38:46/

引入ant design ui

ui 组件库介绍

组件总览 - Ant Design (antgroup.com)
安装 - Material-UI (mui.com)
Tailwind UI - Official Tailwind CSS Components & Templates

引入antd

Ant Design of React - Ant Design

常用组件

// 引入antd 美化import { Layout } from 'antd';const { Header, Footer, Content } = Layout;//引入组件import {Button,Space,Divider} from 'antd';//引入图标import {PlusOutlined ,BarsOutlined,StarOutlined,DeleteOutlined,} from '@ant-design/icons';//引入组件import {Space,Typography} from 'antd';//引入图标import { FormOutlined } from '@ant-design/icons';import { HOME_PATH } from '../router';const { Title } = Typography;

定义常用的路由常量

export const HOME_PATH='/'export const LOGIN_PATH='/login'export const REGISTER_PATH='/register'export const MANAGE_PATH='/manage/list'

我的问卷: 列表卡片

问卷卡片 : 气泡弹出框使用

 <Popconfirmtitle="复制问卷?"okText="确定"cancelText="取消"onConfirm={duplicate}><Button type="text" icon={<CopyOutlined/>} size="small">复制</Button></Popconfirm>

问卷卡片:confirm弹出框

const {confirm} = Modal;confirm({title: '确定删除吗?',icon: <ExclamationCircleOutlined />,content: '删除后问卷将无法恢复',okText: '确定',cancelText: '取消',onOk() {message.success("删除成功")},onCancel() {message.error("取消删除")},})

问卷卡片

import React , { FC} from "react";import styles from "./QuestionCard.module.scss";import { Link, useNavigate } from "react-router-dom";//引入组件import{Divider, Space, Tag,Button, message, Popconfirm ,Modal} from "antd";//引入icon图标import { EditOutlined, StarOutlined ,BarsOutlined, CopyOutlined, DeleteOutlined ,ExclamationCircleOutlined} from "@ant-design/icons";const {confirm} = Modal;//组件传值//定义属性type PropsType={id:string,title:string,isPublished:boolean,isStar:boolean,answerCount:numbercreateAt:string,}const QuestionCard:FC<PropsType> = (props:PropsType) => {const {id,title,isPublished,isStar,answerCount,createAt}=propsconst nav=useNavigate();function duplicate(){message.success("执行复制")}function del(){confirm({title: '确定删除吗?',icon: <ExclamationCircleOutlined />,content: '删除后问卷将无法恢复',okText: '确定',cancelText: '取消',onOk() {message.success("删除成功")},onCancel() {message.error("取消删除")},})}return (<><div className={styles.container} ><div className={styles.title}><div className={styles.left}><Link to={isPublished ? `/question/stat/${id}` : `/question/edit/${id}`}><Space>{isStar && <StarOutlined style={{color:'red'}}/>}{title}</Space></Link></div><div className={styles.right}><Space>{isPublished ? <Tag color="processing">已发布</Tag>: <Tag>未发布</Tag>}<span> 答卷数量: {answerCount}  </span><span>{createAt}</span></Space></div></div><Divider style={{margin:'10px 0'}}></Divider><div className={styles.bottom}><div className={styles.left}><Space><Button icon={<EditOutlined/>} type="text" size='small' onClick={()=>nav(`/question/edit/${id}`)} >编辑问卷</Button><Button icon={<BarsOutlined/>} type="text" size='small' onClick={()=>nav(`/question/stat/${id}`)}>问卷统计</Button></Space></div><div className={styles.right}><Space><Button type="text" icon={<StarOutlined/>} size="small">{isStar ? "取消标星" : "标星问卷"}</Button><Popconfirmtitle="复制问卷?"okText="确定"cancelText="取消"onConfirm={duplicate}><Button type="text" icon={<CopyOutlined/>} size="small">复制</Button></Popconfirm><Button type="text" icon={<DeleteOutlined/>} size="small" onClick={del}>删除</Button></Space></div></div></div></>)}export default QuestionCard;

星标问卷:列表卡片+分页

和上面差不多

回收站 : 表格


/表格列const tableColums=[{title:"标题",dataIndex:"title",// key:"title"//循环的key,他会默认取dataIndex的值},{title:"是否发布",dataIndex:"isPublished",render:(isPublished:boolean)=>{return isPublished ?  <Tag color="processing">已发布</Tag> : <Tag>未发布</Tag>}},{title:"答卷",dataIndex:"answerCount"},{title:"创建时间",dataIndex:"createAt"}]//问卷列表数据模拟const rawQuestionList=[{//_id:"1"  mondob数据库id:'1',title:"问卷1",isPublished:false,isStar:true,answerCount:100,createAt:"4月5日 12:23"},{id:'2',title:"问卷2",isPublished:true,isStar:false,answerCount:100,createAt:"4月5日 12:23"},{id:'3',title:"问卷3",isPublished:true,isStar:true,answerCount:100,createAt:"4月5日 12:23"},{id:'4',title:"问卷4",isPublished:false,isStar:false,answerCount:100,createAt:"4月5日 12:23"}]<TabledataSource={questionList}columns={tableColums}pagination={false}rowKey={(record)=>record.id}/>

添加恢复删除功能

 //将jsx片段提取成为变量//表格项提取出来const TableElem = <><div style={{marginBottom:"16px"}}><Space><Button type="primary" disabled={selectedIds.length==0}>恢复</Button><Button danger disabled={selectedIds.length==0} onClick={del}>彻底删除</Button></Space></div><TabledataSource={questionList}columns={tableColums}pagination={false}rowKey={(record)=>record.id}rowSelection={{type:"checkbox",onChange:(selectedRowKeys)=>{setSelectedIds(selectedRowKeys as string[])}}}/></>

http://www.ppmy.cn/devtools/5076.html

相关文章

前端如何将接口返回的码值转成对应的中文展示呢?

后端接口只返回码值,那前端如何将码值转成对应的中文展示呢? 项目中后端接口都是将码值返给前端,前端通过公共获取码值的接口然后将其对应转码 以下是举例操作: created() {//这是公共接口的码值表let oneType [{value: 01,content: 一类,},{value: 02,content: 二类,},];//…

Script file ‘D:\Anaconda\Scripts\pip-script.py‘ is not present.

报错解释&#xff1a; 这个错误表明系统尝试执行的脚本文件 D:\Anaconda\Scripts\pip-script.py 不存在。这通常发生在尝试使用 pip 时&#xff0c;但 pip 没有正确安装或者路径设置不正确时。 解决方法&#xff1a; 确认 pip 是否已经安装在 Anaconda 中。可以通过 Anaconda…

AppBuilder升级!工作流编排正式上线!AssistantsAPI开放邀测!

>>【v0.5.3版本】 上线时间&#xff1a;2024/4/14 关键发版信息&#xff1a; 低代码态&#xff1a;新增工作流&#xff0c;低代码制作组件 自定义组件&#xff1a;支持用户自定义创建组件&#xff0c;并被Agent自动编排调用
 工作流框架&#xff1a;组件支持流式编排…

【深度学习实战(10)】图像推理之预处理

一、预处理流程 在把一张图像送入模型进行推理时&#xff0c;需要先进行预处理&#xff0c;预处理流程包括&#xff1a; &#xff08;1&#xff09;读取图像 &#xff08;2&#xff09;尺寸调整&#xff0c;letter_box&#xff08;不失真&#xff09; &#xff08;3&#xff0…

NLP_知识图谱_三元组实战

文章目录 三元组含义如何构建知识图谱模型的整体结构基于transformers框架的三元组抽取baselinehow to use预训练模型下载地址训练数据下载地址 结构图代码及数据bertconfig.jsonvocab.txt datadev.jsonschemas.jsontrain.jsonvocab.json 与bert跟data同个目录model.pytrain.py…

leetcode做题记录 3011(计算二进制中一的个数)3012

3011. 判断一个数组是否可以变为有序 [题目的“有序”等价于“升序”] 思考 题目要求两个相邻元素在二进制下数位为1的数目相同才可以交换&#xff0c;那就要判断1相同的一块是否是按顺序排序的。从大到小和从小到大都测试一遍。找到一块中最大的和最小的&#xff0c;放在sta…

logistic分叉图

MATLAB代码 % 初始化 r_min 2.5; % 参数r的起始值 r_max 4.0; % 参数r的结束值 r_step 0.001; % 参数r的步长 r_values r_min:r_step:r_max; % 参数r的范围% 分岔图数据初始化 num_iterations 1000; % 总迭代次数 num_last_points 100; % 用于绘图的最后的这些…

Linux的学习之路:9、冯诺依曼与进程(1)

摘要 本章主要是说一下冯诺依曼体系结构和进程的一部分东西。 目录 摘要 一、冯诺依曼体系结构 二、操作系统的概念 三、设计OS的目的 四、管理 五、进程的基本概念 六、PCB 七、在Linux环境下查看进程 八、使用代码创建进程 九、思维导图 一、冯诺依曼体系结构 如…