React(二)——Admin主页/Orders页面/Category页面


文章目录

  • 项目地址
  • 一、侧边栏
    • 1.1 具体实现
  • 二、Header
    • 2.1 实现
  • 三、Orders页面
    • 3.1 分页和搜索
    • 3.2 点击箭头显示商家所有订单
    • 3.3 页码按钮以及分页
  • 四、Category页面
    • 4.1 左侧商品添加栏目
    • 4.2 右侧商品上传栏
  • 五、Sellers页面
  • 六、Payment Request 页面(百万数据加载)
  • 七、Deactive Sellers/Seller Request页面
    • 7.1 Deactive
    • 7.2 Seller
    • 7.3 点击绿色小眼睛可以看到seller的详情页


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、侧边栏

在这里插入图片描述
实现功能:
1.根据权限动态加载sideBar,内容和图标
2. 高亮当前路由的侧边栏

项目地址:SideBar

1.1 具体实现

  1. src/layout/Sidebar.jsx:通过useSate获取所有导航,并且通过useEffect加载getNav方法,通该方法获取admin的菜单
const Sidebar = () => {

  //1.获取所有的导航栏
  const [allNav, setAllNav] = useState([]);
  useEffect(() => {
    const navs = getNav("admin");
    setAllNav(navs);
  }, []);
  console.log(allNav);
  
  1. src/navigation/index.js 里创建getNav方法
import { allNav } from "./allNav";

export const getNav = (role) => {
  const finalNavs = [];
  for (let i = 0; i < allNav.length; i++) {
    if (role === allNav[i].role) {
      finalNavs.push(allNav[i]);
    }
  }
  return finalNavs;
};
  1. src/navigation/allNav.js: 创建所有的侧边栏的内容
    在这里插入图片描述
  2. 点击侧边栏高亮显示
//1.获取当前的路由地址
const { pathname } = useLocation();

//2.添加样式
{allNav.map((n, i) => (
  <li key={i}>
    <Link
      to={n.path} // 路由地址
      className={`${
        pathname === n.path //当前路由和循环出来的路由相同的化,添加高亮,不用则正常
          ? "bg-blue-600 shadow-indigo-500/50 text-white duration-500"
          : "text-[#030811] font-bold duration-200 "
      } px-[12px] py-[9px] rounded-sm flex justify-start items-center gap-[12px] hover:pl-4 transition-all w-full mb-1 `}
    >
      <span>{n.icon}</span>
      <span>{n.title}</span>
    </Link>
  </li>
))}            

二、Header

在这里插入图片描述

  1. 响应式按钮:

2.1 实现

  1. src/layout/MainLayout.jsx:添加显示和隐藏SideBar的useState存储状态,并且添加样式
//存储sidebar状态
const [showSidebar, setShowSidebar] = useState(false);

//给两个组件里传递初始值和设置方法
 <Header showSidebar={showSidebar} setShowSidebar={setShowSidebar} />
 <SideBar showSidebar={showSidebar} setShowSidebar={setShowSidebar} />
  1. src/layout/Header.jsx :小屏幕下出现三个按钮,用来显示和隐藏侧边栏
<div className="fixed top-0 left-0 w-full py-5 px-2 lg:px-7 z-40">
  <div className="ml-0 lg:ml-[260px] rounded-md h-[65px] flex justify-between items-center justify-center bg-[#b1addf] px-5 transition-all">
    <div
      onClick={() => setShowSidebar(!showSidebar)}
      className="w-[35px] flex lg:hidden"
    >
      <span>
        <FaList />
      </span>
    </div>
  </div>
</div>
  1. src/layout/Sidebar.jsx:添加sidebar样式,显示和隐藏功能
<div
  onClick={() => setShowSidebar(false)}
  className={`flex duration-200 ${
    !showSidebar ? "invisible" : "visible"
  } w-screen h-screen bg-[#8cbce780] top-0 left-0 z-10`}
></div>
<div
  className={`w-[260px] fixed bg-[#e6e7fb] z-50 top-0 h-screen shadow-[0_0_15px_0_rgb(34_41_47_/_5%)] transition-all ${
    showSidebar ? "left-0" : "-left-[260px] lg:left-0"
  } `}
>

三、Orders页面

在这里插入图片描述

  • 项目地址:
    Orders页码按钮添加 前端完成

3.1 分页和搜索

  • 实现:5页,10页,20页分页
    在这里插入图片描述

3.2 点击箭头显示商家所有订单

  • 实现:
    1. 点击下箭头,实现商家Id下的所有订单
    2. 订单状态显示

在这里插入图片描述

3.3 页码按钮以及分页

在这里插入图片描述

四、Category页面

  • 原始网页
    在这里插入图片描述
  • 响应式网页:
    -在这里插入图片描述

4.1 左侧商品添加栏目

  • 分析:左侧添加栏只是一个小的Orders页面,所以可以将Orders的主结构复制
    在这里插入图片描述

4.2 右侧商品上传栏

在这里插入图片描述

五、Sellers页面

  • 和Orders页面基本一样
    在这里插入图片描述

六、Payment Request 页面(百万数据加载)

  • 使用React Window 对超大数据加载
    在这里插入图片描述

七、Deactive Sellers/Seller Request页面

7.1 Deactive

在这里插入图片描述

7.2 Seller

在这里插入图片描述

7.3 点击绿色小眼睛可以看到seller的详情页

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950097.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

刚体变换矩阵的逆

刚体运动中的变换矩阵为&#xff1a; 求得变换矩阵的逆矩阵为&#xff1a; opencv应用 cv::Mat R; cv::Mat t;R.t(), -R.t()*t

IDEA中Maven依赖包导入失败报红的潜在原因

在上网试了别人的八个问题总结之后依然没有解决&#xff1a; IDEA中Maven依赖包导入失败报红问题总结最有效8种解决方案_idea导入依赖还是报红-CSDN博客https://blog.csdn.net/qq_43705131/article/details/106165960 江郎才尽之后突然想到一个原因&#xff1a;<dep…

UVM:uvm_component methods configure

topic UVM component base class uvm_config_db 建议使用uvm_config_db代替uvm_resource_db uvm factory sv interface 建议&#xff1a;uvm_config_db 以下了解 建议打印error

基于时间维度水平拆分的多 TiDB 集群统一数据路由/联邦查询技术的实践

导读 在大数据时代&#xff0c;金融行业面临着日益增长的数据量和复杂的查询需求&#xff0c;尤其是跨库、跨集群的场景。在这种背景下&#xff0c;如何在保证数据一致性、高可用性的同时&#xff0c;实现业务的快速扩展与高效查询&#xff0c;成为了企业数字化转型的关键挑战…

概率论 期末 笔记

第一章 随机事件及其概率 利用“四大公式”求事件概率 加法公式 减法 条件概率公式 全概率公式与贝叶斯公式 伯努利概型求概率 习题 推导 一维随机变量及其分布 离散型随机变量&#xff08;R.V&#xff09;求分布律 利用常见离散型分布求概率 连续型R.V相关计算 利用常见连续…

把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用

将vue项目发布成npm库文件&#xff0c;第三方通过npm依赖安装使用&#xff1b;使用最近公司接了一个项目&#xff0c;这个项目需要集成到第三方页面&#xff0c;在第三方页面点击项目名称&#xff0c;页面变成我们的项目页面&#xff1b;要求以npm库文件提供给他们&#xff1b;…

《空舞的巨兽》官方学习版

一个以被遗忘之地为背景的原创故事&#xff0c;这是一个充满悲剧的没落王国。扮演外地战士雷恩猎人&#xff08;玩家&#xff09;&#xff0c;踏上危险的任务&#xff0c;结束困扰你自己和村庄的诅咒。你唯一的希望就是杀死不可杀死的可怕巨兽。 《空舞的巨兽》官方版 https:/…

go-zero框架快速入门

文章目录 go-zero 简介安装goctl安装go-zero启动go-zero API语言定义结构体API定义路由API格式化对齐 生成代码生成基本逻辑代码生成数据库model文件 go-zero 简介 go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性&#xff0c;经…

切忌 SELECT *,就算表只有一列

原文地址 尽量避免 SELECT *&#xff0c;即使在单列表上也是如此 – 如果你现在不同意这一点&#xff0c;读完这篇文章&#xff0c;你可能就要动摇了。 2012年的一个故事 这是我 12 年前&#xff08;约 2012-2013 年&#xff09;在客户后台应用程序中遇到的一个真实故事。 当…

了解RabbitMQ中的Exchange:深入解析与实践应用

在分布式系统设计中&#xff0c;消息队列&#xff08;Message Queue&#xff09;扮演着至关重要的角色&#xff0c;而RabbitMQ作为开源消息代理软件的佼佼者&#xff0c;以其高性能、高可用性和丰富的功能特性&#xff0c;成为了众多开发者的首选。在RabbitMQ的核心组件中&…

【linux系统之redis6】redis的基础命令使用及springboot连接redis

redis的基础命令很多&#xff0c;大部分我们都可以在官网上找到&#xff0c;真的用的时候可以去官网找&#xff0c;不用全部记住这些命令 redis通用的基础命令的使用 代码测试 string类型常见的命令 key值的结构&#xff0c;可以区分不同的需求不同的业务名字 hash类型 创建…

基于FPGA的交通信号灯实现 (verilog极简实现)

本文分享利用FPGA实现的交通信号灯&#xff0c;FPGA型号为野火征途Pro开发板&#xff0c;具体功能如下&#xff1a; 此项目旨在模拟东西和南北两路口交通信号灯&#xff0c;初始态两路口均为红灯亮&#xff0c;接着&#xff0c;东西路口绿灯亮&#xff0c;南北路口红灯亮&…

在K8S上部署OceanBase的最佳实践

在K8S上部署OceanBase的最佳实践 目录 1. 背景与选型 1.1 为什么选择OB1.2 为什么选择ob-operator实现OB on K8S 2. 部署实操 2.1 环境准备2.2 安装 ob-operator2.3 配置 OB 集群2.4 配置 OBProxy 集群2.5 Headless Service 和 CoreDNS 配置2.6 监控与运维 2.6.1 Promethues部…

unity开发之shader 管道介质流动特效

效果 shader graph 如果出现下面的效果&#xff0c;那是因为你模型的问题&#xff0c;建模做贴图的时候没有设置好UV映射&#xff0c;只需重新设置下映射即可

【JavaWeb】2. 通用基础代码

以下内容来源&#xff1a;编程导航。 无论在任何后端项目中&#xff0c;都可以复用的代码。 1、自定义异常 自定义错误码&#xff0c;对错误进行收敛&#xff0c;便于前端统一处理。 &#x1f4a1; 这里有 2 个小技巧&#xff1a; 自定义错误码时&#xff0c;建议跟主流的错…

Excel 技巧04 - 如何计算两个时间之差 (★)

本文讲了如何通过Excel计算两个时间的时间差。 1&#xff0c;计算两个时间的时间差 比如 5&#xff1a;50 ~ 19&#xff1a;40 a&#xff09;&#xff0c;用公式 相减 这样默认算出来的是机械的时间加减&#xff0c;即它们之间相差了 13小时50分钟 b&#xff09;&#xff0c;…

win下搭建elk并集成springboot

一、ELK 是什么&#xff1f; ELK 实际上是三个工具的集合&#xff0c;Elasticsearch Logstash Kibana&#xff0c;这三个工具组合形成了一套实用、易用的监控架构&#xff0c;很多公司利用它来搭建可视化的海量日志分析平台。 ElasticSearch ElasticSearch 是一个基于 Lucen…

JUC--线程池

线程池 七、线程池7.1线程池的概述7.2线程池的构建与参数ThreadPoolExecutor 的构造方法核心参数线程池的工作原理 Executors构造方法newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutornewScheduledThreadPool(int corePoolSize) 为什么不推荐使用内置线程池&…

Java到底是值传递还是引用传递????

在搞懂这个问题之前, 我们要首先了解什么是值传递, 什么是引用传递? 值传递: 传递的是数据的副本&#xff0c;修改副本不会影响原始数据。引用传递: 传递的是数据的引用&#xff08;地址&#xff09;&#xff0c;修改引用会直接影响原始数据. 也就是说&#xff0c;值传递和引…

屏幕显示技术再突破!海信RGB- Mini LED,让色彩“活”起来

文 | 智能相对论 作者 | 佘凯文 在今天&#xff0c;屏幕显示技术的日新月异&#xff0c;让每次技术革新都引领行业迈向新的高度。 从黑白到彩色&#xff0c;从标清到高清&#xff0c;再到超高清&#xff0c;回顾曾经彩电显示的技术升级&#xff0c;不仅都极大地提升了观众的…