diff --git a/zhenxun/builtin_plugins/shop/_data_source.py b/zhenxun/builtin_plugins/shop/_data_source.py index 70cda841..d4716e9a 100644 --- a/zhenxun/builtin_plugins/shop/_data_source.py +++ b/zhenxun/builtin_plugins/shop/_data_source.py @@ -534,12 +534,16 @@ class ShopManage: icon = None if prop.icon: icon_path = ICON_PATH / prop.icon - icon = icon_path if icon_path.exists() else None + icon = ( + ImageCell(src=icon_path.absolute().as_uri(), width=45, height=45) + if icon_path.exists() + else None + ) table_rows.append( [ icon, - i, + TextCell(content=str(i)), prop.goods_name, user.props[prop_uuid], prop.goods_description, @@ -553,6 +557,8 @@ class ShopManage: table = ui.table(f"{name}的道具仓库", "通过 使用道具[ID/名称] 令道具生效") table.set_headers(column_name).add_rows(table_rows) + table.set_column_widths([70, 80, 150, 80, "auto"]) + table.set_column_alignments(["center", "center", "left", "center", "left"]) return await ui.render(table) @classmethod diff --git a/zhenxun/ui/__init__.py b/zhenxun/ui/__init__.py index 343cdeac..914978bc 100644 --- a/zhenxun/ui/__init__.py +++ b/zhenxun/ui/__init__.py @@ -22,6 +22,7 @@ from .models.components import ( from .models.core import ( CardData, DetailsData, + ImageCell, LayoutData, ListData, MarkdownData, @@ -29,6 +30,7 @@ from .models.core import ( RenderableComponent, TableData, TemplateComponent, + TextCell, TextData, ) from .registry import component, create @@ -420,7 +422,9 @@ async def render_full_result( __all__ = [ "DetailsData", + "ImageCell", "ListData", + "TextCell", "alert", "avatar", "avatar_group",