import * as React from 'react'; import { Icon, Row, Col, Button, Checkbox } from '@btri-ui/base'; import iconJson from '../iconify.json'; import { useState } from 'react'; function toLine(name: string) { const nameArr = name.match(/([A-Z][a-z]*|\d+)/g); const resName = nameArr?.reduce((pre, cur, index) => { if (index === 0) { return cur.toLowerCase(); } return pre + '-' + cur.toLowerCase(); }, ''); return resName; } function exportJsonFile(icons) { const lineNames = icons.map((iconname) => { return toLine(iconname); }); const newIconsData = lineNames.reduce((pre, curName) => { pre[curName] = iconJson.icons[curName]; return pre; }, {}); // 创建一个包含数据的对象 var data = { prefix: 'ibuilding', width: 1024, height: 1024, icons: newIconsData, }; // 将对象转换为JSON字符串 var jsonData = JSON.stringify(data); // 创建一个Blob对象,用于存储JSON字符串 var blob = new Blob([jsonData], { type: 'application/json' }); // 创建一个a标签并设置文件名 var a = document.createElement('a'); a.download = 'data.json'; a.href = URL.createObjectURL(blob); // 触发点击事件,下载JSON文件 a.click(); } export default () => { const iconsMap = Object.keys(iconJson.icons || {})?.map((icon) => { return icon .split('-') .map((s, i) => i === 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s.charAt(0).toUpperCase() + s.slice(1), ) .join(''); }) || []; const [checkIcon, setCheckIcon] = useState([]); const [openCheck, setOpenCheck] = useState(false); return (
{openCheck && (
0 && checkIcon.length < iconsMap.length } onChange={(e) => { setCheckIcon(e.target.checked ? iconsMap : []); }} label="全选" /> 全选
)} {openCheck && ( )}
{ console.log(value, '9999'); setCheckIcon(value); }} > {iconsMap.map((name) => { return (
{openCheck && }
{name}
); })}
); };