当前位置: 首页 > news >正文

lol网站怎么做做标识的网站 知乎

lol网站怎么做,做标识的网站 知乎,网站搜索功能实现,哪些行业做网站的多功能点#xff1a; 点击节点前的箭头#xff0c;可以手动展开或折叠该节点的子节点。在搜索框中输入关键词#xff0c;匹配的节点及其父节点会自动展开。清空搜索框后#xff0c;恢复到用户手动控制的展开状态。勾选节点时仍然遵守 最多勾选 6 个节点 和 点击节点前的箭头可以手动展开或折叠该节点的子节点。在搜索框中输入关键词匹配的节点及其父节点会自动展开。清空搜索框后恢复到用户手动控制的展开状态。勾选节点时仍然遵守 最多勾选 6 个节点 和 只能选择同级节点 的限制。 import { Transfer, Tree, Input, message } from antd; import React, { useState } from react;// 判断是否已选中 const isChecked (selectedKeys, eventKey) selectedKeys.includes(eventKey);// 生成树结构并标记禁用状态 const generateTree (treeNodes [], checkedKeys []) treeNodes.map(({ children, ...props }) ({...props,disabled: checkedKeys.includes(props.key),children: generateTree(children, checkedKeys),}));// 搜索功能过滤树节点并展开到匹配节点 const filterTreeData (treeData, searchValue) {const loop (data) data.map((item) {const match item.title.toLowerCase().includes(searchValue.toLowerCase());const children item.children ? loop(item.children) : [];return {...item,children,isMatch: match || children.some((child) child.isMatch),};}).filter((item) item.isMatch);return loop(treeData); };// 自定义 TreeTransfer 组件 const TreeTransfer ({ dataSource, targetKeys, ...restProps }) {const transferDataSource [];const [searchValue, setSearchValue] useState();const [expandedKeys, setExpandedKeys] useState([]); // 控制展开的节点// 展平树结构为一维数组function flatten(list []) {list.forEach((item) {transferDataSource.push(item);flatten(item.children);});}flatten(dataSource);// 动态计算需要展开的节点用于搜索const calculateExpandedKeys (treeData) {const keys [];const loop (data) data.forEach((item) {if (item.isMatch) {keys.push(item.key);if (item.children) loop(item.children);}});loop(treeData);return keys;};// 过滤后的树数据const filteredTreeData filterTreeData(dataSource, searchValue);const autoExpandedKeys calculateExpandedKeys(filteredTreeData);// 更新展开状态const handleExpand (newExpandedKeys) {setExpandedKeys(newExpandedKeys);};return (Transfer{...restProps}targetKeys{targetKeys}dataSource{transferDataSource}classNametree-transferrender{(item) item.title}showSelectAll{false}{({ direction, onItemSelect, selectedKeys }) {if (direction left) {const checkedKeys [...selectedKeys, ...targetKeys];return ({/* 搜索框 */}Inputplaceholder搜索节点value{searchValue}onChange{(e) {setSearchValue(e.target.value);setExpandedKeys(autoExpandedKeys); // 搜索时自动展开匹配节点}}style{{ marginBottom: 16 }}/TreeblockNodecheckablecheckStrictlydefaultExpandAllcheckedKeys{checkedKeys}treeData{filteredTreeData}expandedKeys{searchValue ? autoExpandedKeys : expandedKeys} // 根据搜索状态决定展开哪些节点onExpand{handleExpand} // 手动控制展开/折叠onCheck{(_, { node }) {const { key, parentKey } node;// 检查是否在同一层级const isSameLevel checkedKeys.every((k) {const checkedNode transferDataSource.find((item) item.key k);return !checkedNode || checkedNode.parentKey parentKey;});// 检查是否超过最大勾选数量限制const isWithinLimit checkedKeys.length 6 || checkedKeys.includes(key);if (isSameLevel isWithinLimit) {onItemSelect(key, !isChecked(checkedKeys, key));} else {message.warn(!isSameLevel? 只能选择同级节点: 最多只能同时勾选 6 个节点);}}}onSelect{(_, { node }) {const { key, parentKey } node;// 检查是否在同一层级const isSameLevel checkedKeys.every((k) {const checkedNode transferDataSource.find((item) item.key k);return !checkedNode || checkedNode.parentKey parentKey;});// 检查是否超过最大勾选数量限制const isWithinLimit checkedKeys.length 6 || checkedKeys.includes(key);if (isSameLevel isWithinLimit) {onItemSelect(key, !isChecked(checkedKeys, key));} else {message.warn(!isSameLevel? 只能选择同级节点: 最多只能同时勾选 6 个节点);}}}//);}}}/Transfer); };// 测试数据 const treeData [{key: 0-0,title: Node 0-0,parentKey: null, // 根节点没有父节点},{key: 0-1,title: Node 0-1,parentKey: null,children: [{key: 0-1-0,title: Node 0-1-0,parentKey: 0-1, // 父节点是 0-1},{key: 0-1-1,title: Node 0-1-1,parentKey: 0-1, // 父节点是 0-1},],},{key: 0-2,title: Node 0-3,parentKey: null,}, ];// 主应用组件 const App () {const [targetKeys, setTargetKeys] useState([]);const onChange (keys) {setTargetKeys(keys);};return TreeTransfer dataSource{treeData} targetKeys{targetKeys} onChange{onChange} /; };export default App;
http://www.zqtcl.cn/news/739380/

相关文章:

  • 个人网站吗wordpress超精简主题
  • 手机版免费申请微网站wordpress 跳转链接
  • 网站建设与管理好吗广州白云最新消息
  • 织梦动漫网站模版wordpress 页面文章列表
  • 东莞做网站沃德长沙市网站开发
  • 哪些网站做的最好厦门网站建设网站
  • 网站安全事件应急处置机制建设类似百度的网站
  • 内蒙古知名网站建设网站测速工具
  • 怎样建立网站赚钱怎么登录住建局官网
  • 建站自学网页转向功能网站
  • 网站都有什么费用做酒店网站有哪些目录
  • 本地郑州网站建设东莞网站优化中易
  • 动态域名可以建网站德州公司做网站
  • 深圳建设银行官方网站wordpress 添加qq
  • 甘肃第九建设集团公司网站网站对企业的好处
  • 论坛网站建设规划书公司网站建设与设计制作
  • 做棋牌游戏网站犯法吗如何进行搜索引擎的优化
  • 常见的网站首页布局有哪几种陈光锋网站运营推广新动向
  • 手机网站活动策划方案开一个设计公司
  • 宝塔建设网站教程visual studio 2010 网站开发教程
  • 做网站购买服务器做谷歌网站使用什么统计代码吗
  • 网站系统与网站源码的关系emlog轻松转wordpress
  • 网站的简介怎么在后台炒做吉林省住房城乡建设厅网站首页
  • 泉州易尔通网站建设国际酒店网站建设不好
  • 网页下载网站福田企业网站推广公司
  • 北京网站建设开发公司哪家好网站添加在线留言
  • 新建的网站怎么做seo优化平面广告创意设计
  • yy陪玩网站怎么做软件项目管理计划
  • 西安建网站价格低百度推广区域代理
  • 中英网站模板 照明公司注册在自贸区的利弊