mirror of
https://github.com/Powerful-517/yys-editor.git
synced 2026-03-05 15:05:27 +00:00
refactor: 重构属性编辑面板,支持Tab分离和节点类型切换
- 将属性面板分为游戏属性和图像属性两个Tab - 游戏属性Tab包含节点基本信息、类型切换和特定属性 - 图像属性Tab包含所有样式设置(填充、描边、阴影等) - 资产选择器节点支持在式神和御魂之间切换 - 切换节点类型时自动清空已选资产 - 优化AssetSelectorPanel,移除重复的资产库选择器
This commit is contained in:
53
src/configs/nodeRegistry.ts
Normal file
53
src/configs/nodeRegistry.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* 节点注册表
|
||||
* 定义所有节点类型的配置信息
|
||||
*/
|
||||
|
||||
import { NodeType, NodeCategory, type NodeTypeConfig } from '@/types/nodeTypes'
|
||||
|
||||
export const NODE_REGISTRY: Record<NodeType, NodeTypeConfig> = {
|
||||
[NodeType.RECT]: {
|
||||
type: NodeType.RECT,
|
||||
category: NodeCategory.LAYOUT,
|
||||
label: '矩形',
|
||||
description: '矩形容器,可设置背景和边框'
|
||||
},
|
||||
|
||||
[NodeType.ELLIPSE]: {
|
||||
type: NodeType.ELLIPSE,
|
||||
category: NodeCategory.LAYOUT,
|
||||
label: '椭圆',
|
||||
description: '椭圆容器,可设置背景和边框'
|
||||
},
|
||||
|
||||
[NodeType.ASSET_SELECTOR]: {
|
||||
type: NodeType.ASSET_SELECTOR,
|
||||
category: NodeCategory.ASSET,
|
||||
label: '资产选择器',
|
||||
description: '从预设资产库选择图片(式神、御魂等)',
|
||||
defaultProps: {
|
||||
assetLibrary: 'shikigami' // 默认式神库
|
||||
}
|
||||
},
|
||||
|
||||
[NodeType.IMAGE_UPLOAD]: {
|
||||
type: NodeType.IMAGE_UPLOAD,
|
||||
category: NodeCategory.ASSET,
|
||||
label: '自定义图片',
|
||||
description: '上传自定义图片或填写URL'
|
||||
},
|
||||
|
||||
[NodeType.TEXT_NODE]: {
|
||||
type: NodeType.TEXT_NODE,
|
||||
category: NodeCategory.TEXT,
|
||||
label: '文本',
|
||||
description: '可编辑的文本节点'
|
||||
},
|
||||
|
||||
[NodeType.PROPERTY_SELECT]: {
|
||||
type: NodeType.PROPERTY_SELECT,
|
||||
category: NodeCategory.TEXT,
|
||||
label: '属性选择器',
|
||||
description: '选择游戏属性并配置规则'
|
||||
}
|
||||
}
|
||||
51
src/configs/selectorPresets.ts
Normal file
51
src/configs/selectorPresets.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* 选择器预设配置
|
||||
* 定义各种资产类型的选择器配置
|
||||
*/
|
||||
|
||||
import type { SelectorConfig } from '@/types/selector'
|
||||
import shikigamiData from '@/data/Shikigami.json'
|
||||
import yuhunData from '@/data/Yuhun.json'
|
||||
|
||||
export const SELECTOR_PRESETS: Record<string, SelectorConfig> = {
|
||||
shikigami: {
|
||||
title: '请选择式神',
|
||||
dataSource: shikigamiData,
|
||||
groupField: 'rarity',
|
||||
groups: [
|
||||
{ label: '全部', name: 'ALL' },
|
||||
{ label: 'UR', name: 'UR' },
|
||||
{ label: 'SP', name: 'SP' },
|
||||
{ label: 'SSR', name: 'SSR' },
|
||||
{ label: 'SR', name: 'SR' },
|
||||
{ label: 'R', name: 'R' },
|
||||
{ label: 'N', name: 'N' },
|
||||
{ label: '联动', name: 'L' },
|
||||
{ label: '呱太', name: 'G' }
|
||||
],
|
||||
itemRender: {
|
||||
imageField: 'avatar',
|
||||
labelField: 'name'
|
||||
}
|
||||
},
|
||||
|
||||
yuhun: {
|
||||
title: '请选择御魂',
|
||||
dataSource: yuhunData,
|
||||
groupField: 'type',
|
||||
groups: [
|
||||
{ label: '全部', name: 'ALL' },
|
||||
{ label: '攻击类', name: 'attack' },
|
||||
{ label: '暴击类', name: 'Crit' },
|
||||
{ label: '生命类', name: 'Health' },
|
||||
{ label: '防御类', name: 'Defense' },
|
||||
{ label: '效果命中', name: 'Effect' },
|
||||
{ label: '效果抵抗', name: 'EffectResist' },
|
||||
{ label: '特殊类', name: 'Special' }
|
||||
],
|
||||
itemRender: {
|
||||
imageField: 'avatar',
|
||||
labelField: 'name'
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user