267 lines
4.7 KiB
JavaScript
267 lines
4.7 KiB
JavaScript
|
|
/**
|
||
|
|
* 图片数据集模块样式配置
|
||
|
|
* 参考图片管理模块的精美设计
|
||
|
|
*/
|
||
|
|
|
||
|
|
export const imageDatasetStyles = {
|
||
|
|
// 页面容器
|
||
|
|
pageContainer: {
|
||
|
|
py: 4
|
||
|
|
},
|
||
|
|
|
||
|
|
// 页面头部
|
||
|
|
header: {
|
||
|
|
mb: 4,
|
||
|
|
display: 'flex',
|
||
|
|
justifyContent: 'space-between',
|
||
|
|
alignItems: 'flex-start',
|
||
|
|
flexWrap: 'wrap',
|
||
|
|
gap: 3
|
||
|
|
},
|
||
|
|
|
||
|
|
headerTitle: {
|
||
|
|
display: 'flex',
|
||
|
|
flexDirection: 'column',
|
||
|
|
gap: 0.5
|
||
|
|
},
|
||
|
|
|
||
|
|
title: {
|
||
|
|
fontWeight: 700
|
||
|
|
},
|
||
|
|
|
||
|
|
subtitle: {
|
||
|
|
color: 'text.secondary',
|
||
|
|
fontSize: '0.875rem'
|
||
|
|
},
|
||
|
|
|
||
|
|
headerActions: {
|
||
|
|
display: 'flex',
|
||
|
|
gap: 2,
|
||
|
|
flexWrap: 'wrap'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 筛选区域
|
||
|
|
filterCard: {
|
||
|
|
mb: 3,
|
||
|
|
borderRadius: 2,
|
||
|
|
boxShadow: 1,
|
||
|
|
border: '1px solid',
|
||
|
|
borderColor: 'divider',
|
||
|
|
overflow: 'visible'
|
||
|
|
},
|
||
|
|
|
||
|
|
filterContent: {
|
||
|
|
display: 'flex',
|
||
|
|
gap: 2,
|
||
|
|
alignItems: 'center',
|
||
|
|
flexWrap: 'wrap'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 数据集卡片 - 参考图片管理的设计
|
||
|
|
datasetCard: {
|
||
|
|
height: '100%',
|
||
|
|
display: 'flex',
|
||
|
|
flexDirection: 'column',
|
||
|
|
borderRadius: 3,
|
||
|
|
overflow: 'hidden',
|
||
|
|
transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',
|
||
|
|
border: '1px solid',
|
||
|
|
borderColor: 'divider',
|
||
|
|
bgcolor: 'background.paper',
|
||
|
|
cursor: 'pointer',
|
||
|
|
'&:hover': {
|
||
|
|
transform: 'translateY(-8px)',
|
||
|
|
boxShadow: theme => `0 12px 24px ${theme.palette.mode === 'dark' ? 'rgba(0,0,0,0.4)' : 'rgba(0,0,0,0.15)'}`,
|
||
|
|
borderColor: 'primary.main',
|
||
|
|
'& .image-overlay': {
|
||
|
|
opacity: 1
|
||
|
|
},
|
||
|
|
'& .image-media': {
|
||
|
|
transform: 'scale(1.05)'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 图片包装器
|
||
|
|
imageWrapper: {
|
||
|
|
position: 'relative',
|
||
|
|
overflow: 'hidden',
|
||
|
|
bgcolor: 'grey.100'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 图片媒体
|
||
|
|
imageMedia: {
|
||
|
|
className: 'image-media',
|
||
|
|
height: 220,
|
||
|
|
objectFit: 'cover',
|
||
|
|
transition: 'transform 0.3s ease'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 悬停遮罩
|
||
|
|
imageOverlay: {
|
||
|
|
className: 'image-overlay',
|
||
|
|
position: 'absolute',
|
||
|
|
top: 0,
|
||
|
|
left: 0,
|
||
|
|
right: 0,
|
||
|
|
bottom: 0,
|
||
|
|
background:
|
||
|
|
'linear-gradient(to bottom, rgba(0,0,0,0.6) 0%, transparent 40%, transparent 60%, rgba(0,0,0,0.6) 100%)',
|
||
|
|
opacity: 0,
|
||
|
|
transition: 'opacity 0.3s ease',
|
||
|
|
pointerEvents: 'none'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 状态标签容器 - 右上角
|
||
|
|
statusChipsContainer: {
|
||
|
|
position: 'absolute',
|
||
|
|
top: 12,
|
||
|
|
right: 12,
|
||
|
|
display: 'flex',
|
||
|
|
gap: 0.5,
|
||
|
|
flexDirection: 'column',
|
||
|
|
alignItems: 'flex-end',
|
||
|
|
zIndex: 2
|
||
|
|
},
|
||
|
|
|
||
|
|
// 状态标签
|
||
|
|
statusChip: {
|
||
|
|
backdropFilter: 'blur(10px)',
|
||
|
|
fontWeight: 600,
|
||
|
|
fontSize: '0.75rem',
|
||
|
|
height: 24,
|
||
|
|
boxShadow: 2
|
||
|
|
},
|
||
|
|
|
||
|
|
// 图片名称容器 - 底部
|
||
|
|
imageNameContainer: {
|
||
|
|
position: 'absolute',
|
||
|
|
bottom: 12,
|
||
|
|
left: 12,
|
||
|
|
right: 12,
|
||
|
|
display: 'flex',
|
||
|
|
justifyContent: 'center',
|
||
|
|
zIndex: 2
|
||
|
|
},
|
||
|
|
|
||
|
|
// 图片名称标签
|
||
|
|
imageNameChip: {
|
||
|
|
backdropFilter: 'blur(10px)',
|
||
|
|
bgcolor: 'rgba(255, 255, 255, 0.95)',
|
||
|
|
fontWeight: 600,
|
||
|
|
maxWidth: '90%',
|
||
|
|
boxShadow: 2,
|
||
|
|
'& .MuiChip-label': {
|
||
|
|
overflow: 'hidden',
|
||
|
|
textOverflow: 'ellipsis',
|
||
|
|
whiteSpace: 'nowrap'
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 卡片内容
|
||
|
|
cardContent: {
|
||
|
|
flexGrow: 1,
|
||
|
|
p: 2.5
|
||
|
|
},
|
||
|
|
|
||
|
|
// 问题文本
|
||
|
|
questionText: {
|
||
|
|
fontWeight: 600,
|
||
|
|
fontSize: '0.95rem',
|
||
|
|
lineHeight: 1.5,
|
||
|
|
mb: 1.5,
|
||
|
|
display: '-webkit-box',
|
||
|
|
WebkitLineClamp: 2,
|
||
|
|
WebkitBoxOrient: 'vertical',
|
||
|
|
overflow: 'hidden',
|
||
|
|
textOverflow: 'ellipsis'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 答案预览
|
||
|
|
answerPreview: {
|
||
|
|
color: 'text.secondary',
|
||
|
|
fontSize: '0.875rem',
|
||
|
|
lineHeight: 1.6,
|
||
|
|
display: '-webkit-box',
|
||
|
|
WebkitLineClamp: 2,
|
||
|
|
WebkitBoxOrient: 'vertical',
|
||
|
|
overflow: 'hidden',
|
||
|
|
textOverflow: 'ellipsis',
|
||
|
|
mb: 2
|
||
|
|
},
|
||
|
|
|
||
|
|
// 元数据信息
|
||
|
|
metaInfo: {
|
||
|
|
display: 'flex',
|
||
|
|
gap: 1.5,
|
||
|
|
flexWrap: 'wrap',
|
||
|
|
mt: 2,
|
||
|
|
pt: 2,
|
||
|
|
borderTop: '1px solid',
|
||
|
|
borderColor: 'divider'
|
||
|
|
},
|
||
|
|
|
||
|
|
metaItem: {
|
||
|
|
display: 'flex',
|
||
|
|
alignItems: 'center',
|
||
|
|
gap: 0.5,
|
||
|
|
fontSize: '0.75rem',
|
||
|
|
color: 'text.secondary'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 分页样式
|
||
|
|
pagination: {
|
||
|
|
display: 'flex',
|
||
|
|
justifyContent: 'center',
|
||
|
|
mt: 4
|
||
|
|
},
|
||
|
|
|
||
|
|
// 操作按钮容器
|
||
|
|
actionButtonsContainer: {
|
||
|
|
display: 'flex',
|
||
|
|
justifyContent: 'flex-end',
|
||
|
|
gap: 0.5,
|
||
|
|
mt: 'auto'
|
||
|
|
},
|
||
|
|
|
||
|
|
// 操作按钮样式
|
||
|
|
actionButton: {
|
||
|
|
p: 0.5,
|
||
|
|
borderRadius: 1,
|
||
|
|
color: 'text.secondary',
|
||
|
|
'&:hover': {
|
||
|
|
backgroundColor: 'action.hover',
|
||
|
|
color: 'primary.main'
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 空状态
|
||
|
|
emptyState: {
|
||
|
|
textAlign: 'center',
|
||
|
|
py: 12,
|
||
|
|
px: 3
|
||
|
|
},
|
||
|
|
|
||
|
|
emptyIcon: {
|
||
|
|
width: 120,
|
||
|
|
height: 120,
|
||
|
|
borderRadius: '50%',
|
||
|
|
bgcolor: 'primary.lighter',
|
||
|
|
display: 'flex',
|
||
|
|
alignItems: 'center',
|
||
|
|
justifyContent: 'center',
|
||
|
|
mx: 'auto',
|
||
|
|
mb: 3
|
||
|
|
},
|
||
|
|
|
||
|
|
emptyTitle: {
|
||
|
|
fontWeight: 600,
|
||
|
|
mb: 1
|
||
|
|
},
|
||
|
|
|
||
|
|
emptyDescription: {
|
||
|
|
color: 'text.secondary',
|
||
|
|
mb: 4
|
||
|
|
}
|
||
|
|
};
|