[Code Snippets] 全选、反选、多选(未全选)、多选(到全选)
import {useEffect, useState} from "react"; import NewBaseDataService from "src/services/baseData/newIndex"; import Bus from "../utils/eventBus"; import {useControlInfoParam} from "./keyMan/useControlInfoParam"; export function useBizTag(type = '') { const [bizTags, setBizTags] = useState([ { name: '不限', code: 'all', num: 0, }, ]) useEffect(() => { loadData().then(r => r) Bus.addListener('refresh-tags-biz', (payload) => { let {param} = useControlInfoParam(String(payload.sourceUnit)) console.log('output-> [refresh-tags-biz]', param) refreshBizTags(param).then(r => r) }) return () => { Bus.off('refresh-tags-biz', () => {}) } }, []); const refreshBizTags = async (payload) => { const labelRes = await NewBaseDataService.getBusinessLabel(payload); setBizTags([ { name: '不限', code: 'all', num: 0, }, ...labelRes.data, ]) } const loadData = async () => { if (type === 'controlInfo') { setBizTags([ { name: '全部', code: 'all', }, { name: '反恐', code: '1', num: 12, }, { name: '禁毒', code: '2', num: 23, }, { name: '治安', code: '3', num: 4 } ]) } else { const labelRes = await NewBaseDataService.getBusinessLabel({sourceUnit: '', dataSource: '',}); setBizTags([ { name: '不限', code: 'all', num: 0, }, ...labelRes.data, ]) } } const [activeBizTag, setActiveBizTag] = useState([]) const handleBizTag = (tag) => { if (activeBizTag.includes('all') && tag.code === 'all') { setActiveBizTag([]) return } if (!activeBizTag.includes('all') && tag.code === 'all') { setActiveBizTag(bizTags.map(tag => tag.code)) return } if (activeBizTag.includes(tag.code)) { if (activeBizTag.includes('all')) { setActiveBizTag(activeBizTag.filter(arrTag => (arrTag !== 'all' && arrTag !== tag.code))) } else { setActiveBizTag(activeBizTag.filter(arrTag => arrTag !== tag.code)) } } else { setActiveBizTag([...activeBizTag, tag.code]) if ((activeBizTag.length === bizTags.length - 2) && !activeBizTag.includes('all')) { setActiveBizTag(bizTags.map(tag => tag.code)) } } } return { bizTags, handleBizTag, activeBizTag, setActiveBizTag } }
学而不思则罔,思而不学则殆!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2023-06-25 添加默认图片
2023-06-25 根据文件对象下载文件
2021-06-25 SQL优化 - 案例(单表、两表、三表)+ 特殊优化
2021-06-25 SQL优化 - 常用参数