Files
cpms_operation_platform/src/assets/styles/index.less
T

146 lines
2.8 KiB
Plaintext
Raw Normal View History

2026-07-14 10:31:17 +08:00
// ===== 全局样式入口 =====
// CSS Reset 已由 ant-design-vue 的 reset.css 提供,这里补充全局变量与基础样式
// 全局 less 变量
@primary-color: #1677ff;
@text-color: rgba(0, 0, 0, 0.88);
@border-color: #f0f0f0;
@bg-color: #f5f5f5;
// 基础重置
* {
box-sizing: border-box;
}
html,
body,
#app {
height: 100%;
margin: 0;
padding: 0;
}
body {
font-family:
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'PingFang SC',
'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
font-size: 14px;
color: @text-color;
background-color: @bg-color;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
color: @primary-color;
text-decoration: none;
&:hover {
opacity: 0.85;
}
}
// 滚动条美化
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.2);
border-radius: 3px;
}
::-webkit-scrollbar-track {
background: transparent;
}
2026-07-27 17:02:25 +08:00
// ===== 页面布局公共类 =====
// 页面容器:纵向 flex,占满高度;筛选区与表格区作为直接子元素
.page-container {
display: flex;
flex-direction: column;
height: 100%;
}
// 页面筛选区域:横向 flex,可换行
.page-filter {
display: flex;
flex-wrap: wrap;
align-items: center;
column-gap: 16px;
row-gap: 12px;
flex-shrink: 0;
padding: 16px;
background-color: #fff;
border-radius: 10px;
}
// 筛选区域操作按钮组:横向 flex
.page-filter-actions {
display: flex;
align-items: center;
gap: 10px;
margin-left: 0;
}
// 表格显示区域:纵向 flex,占据剩余高度。
// overflow: hidden 防止子元素撑开容器,滚动由 Table 的 scroll.x/y 接管。
// 分页组件作为独立子元素置于 Table 下方,不占用 Table 的 scroll 空间。
.page-table {
display: flex;
flex-direction: column;
flex: 1;
background-color: #fff;
min-height: 0;
min-width: 0;
margin-top: 16px;
overflow: hidden;
border-radius: 10px;
}
.page-pagination {
flex-shrink: 0;
display: flex;
justify-content: flex-end;
padding: 14px;
}
2026-07-25 09:39:56 +08:00
// ===== antd 组件覆盖 =====
// Tag 默认 margin-right: 8px,会挤开表格列或卡片内间距,统一去掉
.ant-tag {
margin-right: 0;
}
2026-07-28 15:24:42 +08:00
// ===== 页面切换动画(KeepAlive + RouterView =====
.page-fade-slide-enter-active,
.page-fade-slide-leave-active {
width: 100%;
height: 100%;
min-height: 0;
transition:
2026-07-29 11:03:54 +08:00
opacity 0.24s cubic-bezier(0.4, 0, 0.2, 1),
transform 0.24s cubic-bezier(0.4, 0, 0.2, 1);
2026-07-28 15:24:42 +08:00
}
.page-fade-slide-enter-from {
opacity: 0;
transform: translateX(12px);
}
.page-fade-slide-leave-to {
opacity: 0;
transform: translateX(-12px);
}
.page-fade-slide-leave-active {
position: absolute;
inset: 0;
width: 100%;
overflow: hidden;
}