Files
sh-app/assets/css/page.scss
T

894 lines
14 KiB
SCSS
Raw Normal View History

2026-06-09 19:29:04 +08:00
.wrap {}
// 登录
.login {
width: 100vw;
height: 100vh;
background-color: $u-bg-white;
.sys-name {
font-size: 48rpx;
font-weight: 700;
color: #333333;
position: absolute;
top: 300rpx;
width: 100%;
text-align: center;
}
.login-form {
position: absolute;
bottom: 240rpx;
right: 60rpx;
left: 60rpx;
}
}
// 首页
.home {
2026-06-10 14:17:54 +08:00
padding-top: 80px;
2026-06-11 14:11:56 +08:00
2026-06-09 19:29:04 +08:00
.u-border-bottom:after {
border: none;
}
.slot-wrap {
padding: 20rpx;
width: 220rpx;
.u-input__input {
color: #ffffff;
}
}
&-icons {
2026-06-10 14:17:54 +08:00
position: fixed;
top: 95px;
height: 80px;
2026-06-09 19:29:04 +08:00
width: 100%;
background-color: $u-type-primary;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding: 0 20rpx;
}
&-icon {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
>text {
margin-top: 6rpx;
color: #ffffff;
}
}
&-icon+&-icon {
margin-left: 60rpx;
}
&-hj {
margin: 20rpx;
background: #fff;
border-radius: 16rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
overflow: hidden;
.hj-title {
font-size: 28rpx;
font-weight: 600;
color: #333;
padding: 24rpx 32rpx;
border-bottom: 1px solid #f0f0f0;
}
.hj-content {
padding: 24rpx 32rpx;
.hj-row {
display: flex;
justify-content: space-between;
&:not(:last-child) {
margin-bottom: 24rpx;
}
}
.hj-cell {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
padding: 16rpx 0;
border-radius: 8rpx;
&:not(:last-child) {
border-right: 1px solid #f0f0f0;
padding-right: 24rpx;
}
}
.hj-label {
font-size: 24rpx;
color: #666;
margin-bottom: 12rpx;
}
.hj-value {
font-size: 28rpx;
font-weight: 500;
color: #333;
&.hj-sub {
font-size: 22rpx;
color: #999;
}
}
}
.hj-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding: 24rpx 32rpx;
background: linear-gradient(90deg, #f8f9fa 0%, #fff 100%);
border-top: 1px solid #f0f0f0;
.hj-footer-label {
font-size: 26rpx;
color: #666;
}
.hj-footer-value {
font-size: 36rpx;
font-weight: 700;
color: $u-type-primary;
}
}
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
// 快捷应用 & 业务查询公共样式
.section-card {
margin: 20rpx;
background: #fff;
border-radius: 16rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
padding: 24rpx;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.section-title {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 24rpx;
font-size: 28rpx;
font-weight: 600;
color: #333;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.title-left {
display: flex;
align-items: center;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.title-line {
display: inline-block;
width: 8rpx;
height: 28rpx;
background: $u-type-primary;
border-radius: 4rpx;
margin-right: 16rpx;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-btn {
padding: 8rpx;
opacity: 0.8;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
&:active {
opacity: 1;
}
}
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.section-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24rpx 16rpx;
overflow-x: hidden;
2026-06-10 17:26:36 +08:00
.empty-tip {
grid-column: 1 / -1;
text-align: center;
padding: 40rpx 0;
font-size: 26rpx;
color: #999;
}
2026-06-10 14:17:54 +08:00
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.grid-item {
display: flex;
flex-direction: column;
align-items: center;
padding: 16rpx 8rpx;
border-radius: 12rpx;
transition: background 0.2s;
min-width: 0;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
&:active {
background: #f5f6f8;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.icon-box {
width: 100rpx;
height: 100rpx;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.item-label {
margin-top: 12rpx;
font-size: 22rpx;
color: #666;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
}
}
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
// 编辑快捷应用弹窗样式
.edit-quick {
padding: 32rpx 32rpx 0 32rpx;
height: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-title {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
font-weight: 600;
color: #333;
padding-bottom: 24rpx;
border-bottom: 1rpx solid #f0f0f0;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-tip {
font-size: 24rpx;
color: #999;
font-weight: 400;
}
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-grid {
width: 100%;
overflow-y: scroll;
display: grid;
grid-template-columns: repeat(4, calc(25% - 20rpx));
gap: 20rpx;
padding: 24rpx 0;
min-height: 0;
box-sizing: border-box;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 160rpx;
background: #f8f9fa;
border-radius: 16rpx;
position: relative;
transition: all 0.25s;
box-sizing: border-box;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
&.active {
background: rgba($color: #4a7df5, $alpha: 0.08);
border: 2rpx solid $u-type-primary;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.icon-box {
width: 96rpx;
height: 96rpx;
display: flex;
align-items: center;
justify-content: center;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-label {
margin-top: 14rpx;
font-size: 22rpx;
color: #666;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.selected-mark {
position: absolute;
top: 6rpx;
right: 6rpx;
width: 40rpx;
height: 40rpx;
border-radius: 50%;
background: $u-type-primary;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4rpx 12rpx rgba($color: $u-type-primary, $alpha: 0.3);
}
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.edit-btns {
display: flex;
gap: 24rpx;
padding-top: 20rpx;
padding-bottom: 10rpx;
position: absolute;
2026-06-11 14:11:56 +08:00
bottom: 10px;
left: 0;
right: 0;
2026-06-10 14:17:54 +08:00
.u-size-medium {
width: 40%;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.btn-cancel,
.btn-confirm {
height: 88rpx;
font-size: 30rpx;
border: none;
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
&::after {
border: none;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.btn-cancel {
background: #f5f6f8;
color: #666;
}
2026-06-11 14:11:56 +08:00
2026-06-10 14:17:54 +08:00
.btn-confirm {
box-shadow: 0 4rpx 16rpx rgba($color: $u-type-primary, $alpha: 0.25);
}
}
}
2026-06-10 17:26:36 +08:00
}
// 列表页通用样式
.page-list {
display: flex;
flex-direction: column;
height: 100vh;
background: #f5f6f8;
// 头部过滤区域
.filter-header {
background: #ffffff;
padding: 20rpx 24rpx;
border-bottom: 1rpx solid #f0f0f0;
2026-06-11 14:11:56 +08:00
// 第一行:单位选择 + 刷新
2026-06-10 17:26:36 +08:00
.filter-row {
display: flex;
align-items: center;
gap: 16rpx;
2026-06-10 17:35:55 +08:00
margin-bottom: 16rpx;
2026-06-10 17:26:36 +08:00
2026-06-11 14:11:56 +08:00
.project-select-btn {
2026-06-10 17:26:36 +08:00
flex: 1;
2026-06-11 14:11:56 +08:00
display: flex;
align-items: center;
background: #f5f6f8;
border-radius: 12rpx;
padding: 0 16rpx;
max-height: 70rpx;
min-width: 0;
:deep(.u-input) {
flex: 1;
}
:deep(.u-input__input) {
font-size: 28rpx;
color: #333;
background: transparent;
}
}
.refresh-btn {
width: 72rpx;
height: 72rpx;
display: flex;
align-items: center;
justify-content: center;
background: #f5f6f8;
border-radius: 50%;
flex-shrink: 0;
.rotating {
animation: rotate 1s linear infinite;
}
2026-06-10 17:26:36 +08:00
}
}
2026-06-11 14:11:56 +08:00
// 第二行:搜索框
2026-06-10 17:35:55 +08:00
.search-box {
display: flex;
align-items: center;
background: #f5f6f8;
border-radius: 12rpx;
padding: 0 16rpx;
max-height: 70rpx;
2026-06-11 14:11:56 +08:00
.u-icon {
flex-shrink: 0;
}
2026-06-10 17:35:55 +08:00
.search-input {
flex: 1;
font-size: 28rpx;
color: #333;
padding: 0 12rpx;
height: 60rpx;
}
.search-clear {
display: flex;
align-items: center;
padding: 4rpx;
2026-06-11 14:11:56 +08:00
flex-shrink: 0;
2026-06-10 17:35:55 +08:00
}
}
2026-06-11 14:11:56 +08:00
// 搜索框 + 刷新按钮布局(用于 packaging/list
.search-row {
2026-06-10 17:26:36 +08:00
display: flex;
align-items: center;
2026-06-11 14:11:56 +08:00
gap: 12rpx;
margin-bottom: 16rpx;
.u-search {
flex: 1;
}
.refresh-btn {
width: 72rpx;
height: 72rpx;
display: flex;
align-items: center;
justify-content: center;
background: #f5f6f8;
border-radius: 50%;
flex-shrink: 0;
2026-06-10 17:26:36 +08:00
2026-06-11 14:11:56 +08:00
.rotating {
animation: rotate 1s linear infinite;
}
2026-06-10 17:26:36 +08:00
}
}
}
2026-06-11 14:11:56 +08:00
// 车次关联 + 单位选择布局(用于 packaging/list
.filter-row.has-radio {
2026-06-10 17:26:36 +08:00
display: flex;
align-items: center;
2026-06-11 14:11:56 +08:00
gap: 16rpx;
flex-wrap: wrap;
2026-06-10 17:26:36 +08:00
2026-06-11 14:11:56 +08:00
.u-radio-group {
display: flex;
gap: 12rpx;
2026-06-10 17:26:36 +08:00
}
2026-06-11 14:11:56 +08:00
.unit-select-btn {
flex-shrink: 0;
display: flex;
align-items: center;
padding: 12rpx 20rpx;
background: #f5f6f8;
border-radius: 8rpx;
.unit-name {
font-size: 26rpx;
color: #666;
margin-right: 6rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 300rpx;
}
}
2026-06-10 17:26:36 +08:00
}
2026-06-11 14:11:56 +08:00
// 悬浮新增按钮
.fab-btn {
position: fixed;
right: 30rpx;
bottom: 100rpx;
width: 100rpx;
height: 100rpx;
background: $u-type-primary;
border-radius: 50%;
2026-06-10 17:26:36 +08:00
display: flex;
align-items: center;
2026-06-11 14:11:56 +08:00
justify-content: center;
box-shadow: 0 4rpx 20rpx rgba($color: $u-type-primary, $alpha: 0.4);
z-index: 99;
2026-06-10 17:26:36 +08:00
&:active {
2026-06-11 14:11:56 +08:00
opacity: 0.8;
transform: scale(0.95);
2026-06-10 17:26:36 +08:00
}
2026-06-11 14:11:56 +08:00
}
}
2026-06-10 17:26:36 +08:00
2026-06-11 14:11:56 +08:00
@keyframes rotate {
from {
transform: rotate(0deg);
}
2026-06-10 17:26:36 +08:00
2026-06-11 14:11:56 +08:00
to {
transform: rotate(360deg);
}
}
// 列表区域
.list-scroll {
flex: 1;
overflow-y: auto;
}
// 加载中
.loading-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
padding: 80rpx 0;
.loading-text {
margin-top: 20rpx;
font-size: 26rpx;
color: #999;
}
}
.list-wrap {
padding: 24rpx 24rpx 60rpx;
}
// 列表项:序号 + 标题 + 箭头
.list-item {
display: flex;
align-items: center;
padding: 24rpx 28rpx;
background-color: #ffffff;
margin-bottom: 20rpx;
border-radius: 12rpx;
&:active {
background: #f8f9fa;
2026-06-10 17:26:36 +08:00
}
2026-06-11 14:11:56 +08:00
.item-index {
width: 44rpx;
height: 44rpx;
2026-06-10 17:26:36 +08:00
display: flex;
align-items: center;
2026-06-11 14:11:56 +08:00
justify-content: center;
background: #f0f3ff;
color: $u-type-primary;
2026-06-10 17:26:36 +08:00
font-size: 24rpx;
2026-06-11 14:11:56 +08:00
font-weight: 600;
border-radius: 50%;
margin-right: 20rpx;
flex-shrink: 0;
2026-06-10 17:26:36 +08:00
}
2026-06-11 14:11:56 +08:00
.item-title {
flex: 1;
font-size: 30rpx;
font-weight: 500;
color: #333;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
2026-06-10 17:26:36 +08:00
}
2026-06-11 14:11:56 +08:00
}
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
.loading-more {
display: flex;
flex-direction: column;
align-items: center;
padding: 32rpx 0;
color: #999;
font-size: 24rpx;
}
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
.no-more {
text-align: center;
padding: 32rpx 0;
color: #ccc;
font-size: 24rpx;
}
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
// 操作按钮区域
.action-bar {
display: flex;
justify-content: space-between;
padding: 20rpx 24rpx;
background: #ffffff;
.action-btn {
flex: 1;
text-align: center;
padding: 16rpx 0;
background: $u-type-primary;
color: #ffffff;
font-size: 28rpx;
border-radius: 8rpx;
margin: 0 8rpx;
&:active {
opacity: 0.7;
2026-06-11 09:43:42 +08:00
}
}
2026-06-11 14:11:56 +08:00
}
// 批号信息
.batch-info {
display: flex;
align-items: center;
padding: 24rpx;
background: #ffffff;
margin-top: 2rpx;
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
.batch-refresh {
margin-left: auto;
2026-06-11 09:43:42 +08:00
display: flex;
align-items: center;
2026-06-11 14:11:56 +08:00
.rotating {
animation: rotate 1s linear infinite;
2026-06-11 09:43:42 +08:00
}
}
2026-06-11 14:11:56 +08:00
.batch-label {
width: 160rpx;
font-size: 28rpx;
color: #333;
}
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
.batch-value {
flex: 1;
font-size: 28rpx;
color: #666;
}
}
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
// 卡片项
.card-item {
background: #ffffff;
border-radius: 16rpx;
padding: 24rpx;
margin-bottom: 20rpx;
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
&:last-child {
margin-bottom: 0;
}
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
.card-header {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #f0f0f0;
2026-06-11 09:43:42 +08:00
2026-06-11 14:11:56 +08:00
.card-code {
font-size: 30rpx;
font-weight: 600;
2026-06-11 09:43:42 +08:00
color: #333;
}
.card-tag {
display: inline-block;
2026-06-11 14:11:56 +08:00
padding: 6rpx 16rpx;
2026-06-11 09:43:42 +08:00
border-radius: 20rpx;
font-size: 24rpx;
background: rgba(244, 67, 54, 0.1);
color: #f44336;
2026-06-11 14:11:56 +08:00
&.status-0 {
background: rgba(153, 153, 153, 0.1);
color: #999;
}
&.status-1 {
background: rgba(255, 167, 38, 0.1);
color: #ffa726;
}
&.status-2 {
2026-06-11 09:43:42 +08:00
background: rgba(76, 175, 80, 0.1);
color: #4caf50;
}
}
}
2026-06-11 14:11:56 +08:00
.card-body {
padding-top: 20rpx;
.card-row {
display: flex;
align-items: center;
padding: 14rpx 0;
&:not(:last-child) {
border-bottom: 1rpx dashed #f0f0f0;
}
.row-label {
width: 200rpx;
font-size: 26rpx;
color: #999;
flex-shrink: 0;
}
.row-value {
font-size: 28rpx;
color: #333;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
2026-06-11 09:43:42 +08:00
}
// 详情页通用样式
.page-detail {
min-height: 100vh;
background: #f5f6f8;
padding-bottom: 180rpx;
}
// 信息分组
.info-group {
background: #ffffff;
margin: 24rpx;
border-radius: 16rpx;
overflow: hidden;
}
.info-item {
display: flex;
align-items: center;
padding: 28rpx 32rpx;
2026-06-11 15:49:17 +08:00
border-bottom: 1rpx solid #f0f0f0;
2026-06-11 09:43:42 +08:00
&:last-child {
border-bottom: none;
}
.info-label {
width: 200rpx;
font-size: 28rpx;
color: #666;
flex-shrink: 0;
2026-06-11 15:49:17 +08:00
display: flex;
align-items: center;
.required {
color: #ff4d4f;
margin-right: 4rpx;
}
2026-06-11 09:43:42 +08:00
}
.info-value {
flex: 1;
font-size: 28rpx;
color: #333;
2026-06-11 15:49:17 +08:00
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
2026-06-11 09:43:42 +08:00
}
2026-06-11 15:49:17 +08:00
.u-input {
flex: 1;
background: transparent;
2026-06-11 09:43:42 +08:00
}
}
// 底部按钮
.bottom-btns {
position: fixed;
left: 30rpx;
right: 30rpx;
bottom: 40rpx;
display: flex;
justify-content: space-between;
align-items: center;
gap: 16rpx;
.u-size-medium {
height: 80rpx;
font-size: 28rpx;
border-radius: 8rpx;
2026-06-11 15:49:17 +08:00
flex: 1;
2026-06-11 09:43:42 +08:00
margin: 0;
}
}
2026-06-11 14:11:56 +08:00
2026-06-11 09:43:42 +08:00
// 网格页面(试压管理等)
.page-grid {
min-height: 100vh;
background: #f5f6f8;
padding: 24rpx;
}
.grid-card {
background: #ffffff;
border-radius: 16rpx;
padding: 24rpx;
}
.grid-list {
display: flex;
flex-wrap: wrap;
gap: 16rpx;
}
.grid-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
flex: 1;
min-width: 45%;
padding: 32rpx 16rpx;
border-radius: 12rpx;
transition: all 0.2s;
&:active {
background: #f0f3ff;
transform: scale(0.98);
}
.grid-icon {
display: flex;
align-items: center;
justify-content: center;
}
.grid-text {
margin-top: 20rpx;
font-size: 26rpx;
color: #666;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
}
2026-06-11 14:11:56 +08:00
}