diff --git a/packages/drip-table-generator/package.json b/packages/drip-table-generator/package.json index 6d568d853..c672ab75b 100755 --- a/packages/drip-table-generator/package.json +++ b/packages/drip-table-generator/package.json @@ -1,6 +1,6 @@ { "name": "drip-table-generator", - "version": "3.2.2-alpha.12", + "version": "3.2.2", "description": "A visualization tool for generating schema of drip-table.", "main": "dist/index.min.js", "module": "lib/index.js", diff --git a/packages/drip-table-generator/src/layouts/table-workstation/editable-table/components/components-selector/selector/index.tsx b/packages/drip-table-generator/src/layouts/table-workstation/editable-table/components/components-selector/selector/index.tsx index 92652827a..22452bbfc 100644 --- a/packages/drip-table-generator/src/layouts/table-workstation/editable-table/components/components-selector/selector/index.tsx +++ b/packages/drip-table-generator/src/layouts/table-workstation/editable-table/components/components-selector/selector/index.tsx @@ -9,7 +9,7 @@ import '../index.less'; import { SearchOutlined } from '@ant-design/icons'; -import { Button, Input, Select } from 'antd'; +import { Button, Image, Input, Select } from 'antd'; import classNames from 'classnames'; import React from 'react'; @@ -17,6 +17,27 @@ import Icon from '@/components/Icon'; import { defaultComponentIcon } from '../configs'; +function checkStringType(str: string | React.ReactSVG | undefined) { + if (typeof str !== 'string') { + return 'NULL'; + } + const trimmed = str.trim(); + + // 检查是否是 SVG 标签 + const svgPattern = /^\s*]*>[\s\S]*<\/svg>\s*$/iu; + if (svgPattern.test(trimmed)) { + return 'SVG'; + } + + // 检查是否是 URL + const urlPattern = /^https?:\/\/\S+$/iu; + if (urlPattern.test(trimmed)) { + return 'URL'; + } + + return 'INVALID'; +} + export interface SelectorProps { openPanel?: boolean; floatPanel?: boolean; @@ -84,7 +105,16 @@ function Selector(props: SelectorProps) { props.onChange(option.value); }} > - + { + ['SVG', 'NULL'].includes(checkStringType(option.icon)) && ( + + ) + } + { + checkStringType(option.icon) === 'URL' && ( + + ) + } { option.label } )) diff --git a/packages/drip-table/package.json b/packages/drip-table/package.json index cff7b471d..17580e8e2 100755 --- a/packages/drip-table/package.json +++ b/packages/drip-table/package.json @@ -1,6 +1,6 @@ { "name": "drip-table", - "version": "3.2.2-alpha.1", + "version": "3.2.2", "description": "A tiny and powerful enterprise-class solution for building tables.", "main": "dist/index.min.js", "module": "lib/index.js",