refine Semi UI vehicle detail workspace

This commit is contained in:
lingniu
2026-07-18 02:24:21 +08:00
parent 5a8eec16f3
commit c29d41fd86
4 changed files with 626 additions and 31 deletions

View File

@@ -4260,3 +4260,574 @@
min-width: 62px;
}
}
/* Semi UI single-vehicle command workspace. */
.v2-vehicle-command-card.semi-card {
min-height: 0;
overflow: hidden;
border: 1px solid #d7e2ee;
border-radius: 13px;
background: #fff;
box-shadow: 0 10px 30px rgba(31, 53, 80, .065);
content-visibility: visible;
}
.v2-vehicle-command-card > .semi-card-body {
display: block;
min-height: 0;
}
.v2-vehicle-command-header {
display: grid;
grid-template-columns: minmax(310px, .9fr) minmax(360px, 1.15fr) minmax(360px, auto);
align-items: stretch;
background: #fff;
}
.v2-vehicle-command-header .v2-identity-primary {
display: grid;
grid-template-columns: auto auto;
grid-template-rows: auto auto;
align-content: center;
align-items: center;
justify-content: start;
gap: 8px 10px;
padding: 18px 20px;
}
.v2-vehicle-command-header .v2-plate {
min-height: 42px;
border-color: #b9d2fb;
border-radius: 9px;
background: #edf4ff;
padding-inline: 14px;
color: var(--v2-blue);
font-size: 18px;
letter-spacing: .01em;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .65);
}
.v2-vehicle-command-header .v2-online-label.semi-tag {
min-height: 25px;
margin: 0;
border-radius: 999px;
padding-inline: 9px;
font-size: 10px;
font-weight: 700;
}
.v2-identity-vin {
display: flex;
min-width: 0;
grid-column: 1 / -1;
align-items: center;
gap: 7px;
}
.v2-vehicle-command-header .v2-identity-vin small,
.v2-vehicle-command-header .v2-identity-vin b,
.v2-vehicle-command-header .v2-identity-vin .semi-button {
grid-row: auto;
}
.v2-vehicle-command-header .v2-identity-vin small {
flex: 0 0 auto;
color: #8290a2;
font-size: 10px;
font-weight: 600;
}
.v2-vehicle-command-header .v2-identity-vin b {
min-width: 0;
overflow: hidden;
color: #41536a;
font-size: 11px;
font-variant-numeric: tabular-nums;
letter-spacing: .015em;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-vehicle-command-header .v2-identity-vin .semi-button {
width: 28px;
min-width: 28px;
height: 28px;
flex: 0 0 auto;
border-radius: 7px;
color: #73849a;
}
.v2-vehicle-command-header .v2-identity-meta {
display: grid;
min-width: 0;
grid-template-columns: minmax(180px, 1.15fr) minmax(160px, .85fr);
align-items: center;
gap: 0;
border: 0;
border-left: 1px solid #e4eaf2;
padding: 16px 0;
}
.v2-vehicle-command-header .v2-identity-meta > div {
min-width: 0;
padding: 0 20px;
}
.v2-vehicle-command-header .v2-identity-meta > div + div {
margin: 0;
border: 0;
border-left: 1px solid #e7edf4;
padding: 0 20px;
}
.v2-vehicle-command-header .v2-identity-meta small {
display: block;
color: #7b899b;
font-size: 10px;
font-weight: 600;
}
.v2-vehicle-command-header .v2-identity-meta strong {
display: block;
margin-top: 7px;
overflow: hidden;
color: #2c4057;
font-size: 12px;
line-height: 1.45;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-vehicle-command-header .v2-identity-sources {
display: flex;
min-width: 0;
flex-wrap: wrap;
gap: 5px;
margin: 7px 0 0;
}
.v2-vehicle-command-header .v2-identity-meta .semi-tag {
min-height: 22px;
margin: 0;
border-radius: 6px;
padding-inline: 7px;
font-size: 9px;
font-weight: 650;
}
.v2-vehicle-command-header .v2-identity-actions {
display: flex;
min-width: 0;
flex-wrap: wrap;
align-content: center;
justify-content: flex-end;
gap: 7px;
border-left: 1px solid #e4eaf2;
padding: 15px 18px;
}
.v2-vehicle-command-header .v2-identity-actions > .semi-button {
min-width: 100px;
min-height: 38px;
flex: 0 1 auto;
border-radius: 8px;
padding-inline: 12px;
font-size: 11px;
font-weight: 650;
}
.v2-vehicle-command-header .v2-identity-actions > .semi-button-primary {
border-color: #bcd3f8;
background: #edf4ff;
color: var(--v2-blue);
}
.v2-vehicle-live-section {
border-top: 1px solid #dfe7f0;
background: #fbfcfe;
}
.v2-vehicle-live-section > .v2-workspace-panel-header {
min-height: 58px;
border-bottom: 1px solid #e6ecf3;
background: #f8fafd;
padding: 10px 16px;
}
.v2-vehicle-live-section .v2-live-report-meta {
max-width: min(520px, 42vw);
color: #65778d;
font-size: 10px;
font-variant-numeric: tabular-nums;
}
.v2-vehicle-command-card .v2-live-grid {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
background: #fff;
}
.v2-vehicle-command-card .v2-live-grid > div {
position: relative;
min-width: 0;
min-height: 104px;
border-top: 0;
border-left: 1px solid #e7edf4;
padding: 15px 16px 14px;
}
.v2-vehicle-command-card .v2-live-grid > div:first-child {
border-left: 0;
}
.v2-vehicle-command-card .v2-live-grid > div:nth-child(4) {
border-left: 1px solid #e7edf4;
}
.v2-vehicle-command-card .v2-live-grid > div:nth-child(n + 4) {
border-top: 0;
}
.v2-vehicle-command-card .v2-live-grid > div::after {
position: absolute;
right: 16px;
bottom: 0;
left: 16px;
height: 3px;
border-radius: 999px 999px 0 0;
background: #dce5ef;
content: "";
}
.v2-vehicle-command-card .v2-live-grid > div:nth-child(-n + 4)::after {
background: #8eb6f3;
}
.v2-vehicle-command-card .v2-live-grid small {
color: #6c7d92;
font-size: 10px;
font-weight: 600;
}
.v2-vehicle-command-card .v2-live-grid strong,
.v2-vehicle-command-card .v2-live-source-link {
margin-top: 9px;
color: #213950;
font-size: 22px;
font-weight: 750;
letter-spacing: -.025em;
line-height: 1;
}
.v2-vehicle-command-card .v2-live-grid strong.is-text {
font-size: 15px;
letter-spacing: 0;
}
.v2-vehicle-command-card .v2-live-source-link .semi-button-content {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 6px;
}
.v2-vehicle-command-card .v2-live-grid em {
margin-left: 4px;
color: #8290a3;
font-size: 9px;
letter-spacing: 0;
}
.v2-vehicle-command-card .v2-live-grid > div > span:last-child {
display: block;
margin-top: 8px;
overflow: hidden;
color: #8996a7;
font-size: 9px;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.v2-vehicle-command-card .v2-current-location {
min-height: 58px;
grid-template-columns: minmax(310px, .8fr) minmax(420px, 1.2fr);
border-top: 1px solid #e4eaf2;
background: #f8fafd;
}
.v2-vehicle-command-card .v2-current-location > span {
padding: 9px 16px;
}
.v2-vehicle-command-card .v2-current-location small {
font-size: 10px;
font-weight: 600;
}
.v2-vehicle-command-card .v2-current-location strong {
color: #405269;
font-size: 11px;
}
.v2-vehicle-command-card .v2-current-address-action.semi-button {
min-height: 30px;
border-radius: 7px;
font-size: 10px;
}
.v2-vehicle-record-page .v2-record-grid {
gap: 14px;
}
.v2-vehicle-record-page .v2-events-card .v2-event-list .v2-event-row {
min-height: 48px;
}
.v2-vehicle-record-page .v2-events-card .v2-event-row strong {
font-size: 11px;
}
.v2-vehicle-record-page .v2-events-card .v2-event-row p,
.v2-vehicle-record-page .v2-events-card .v2-event-row time {
font-size: 9px;
}
@media (max-width: 1400px) {
.v2-vehicle-command-header {
grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
}
.v2-vehicle-command-header .v2-identity-actions {
grid-column: 1 / -1;
flex-wrap: nowrap;
justify-content: flex-start;
overflow-x: auto;
border-top: 1px solid #e4eaf2;
border-left: 0;
padding: 9px 14px;
scrollbar-width: thin;
}
.v2-vehicle-command-header .v2-identity-actions > .semi-button {
min-width: 118px;
flex: 0 0 auto;
}
}
@media (max-width: 900px) {
.v2-vehicle-record-page {
gap: 10px;
padding: 10px 12px 14px;
}
.v2-vehicle-command-header {
grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
}
.v2-vehicle-command-header .v2-identity-primary {
padding: 14px 16px;
}
.v2-vehicle-command-header .v2-identity-meta {
grid-template-columns: minmax(0, 1.1fr) minmax(130px, .9fr);
border-top: 0;
border-bottom: 0;
border-left: 1px solid #e4eaf2;
padding: 13px 0;
}
.v2-vehicle-command-header .v2-identity-meta > div {
padding-inline: 15px;
}
.v2-vehicle-command-header .v2-identity-meta > div + div {
margin: 0;
border-top: 0;
border-left: 1px solid #e7edf4;
padding: 0 15px;
}
.v2-vehicle-command-header .v2-identity-actions {
display: flex;
grid-template-columns: none;
gap: 7px;
}
.v2-vehicle-command-card .v2-live-grid {
display: flex;
overflow-x: auto;
overscroll-behavior-x: contain;
scroll-snap-type: x proximity;
scrollbar-width: thin;
}
.v2-vehicle-command-card .v2-live-grid > div {
min-width: 148px;
min-height: 100px;
flex: 0 0 148px;
border-top: 0;
border-left: 1px solid #e7edf4;
scroll-snap-align: start;
}
.v2-vehicle-command-card .v2-live-grid > div:first-child {
border-left: 0;
}
.v2-vehicle-command-card .v2-current-location {
grid-template-columns: minmax(210px, .78fr) minmax(0, 1.22fr);
}
.v2-vehicle-command-card .v2-current-location > span + span {
border-top: 0;
border-left: 1px solid #e4eaf2;
}
.v2-vehicle-record-nav .v2-workspace-panel-header {
min-height: 50px;
padding: 7px 9px;
}
.v2-vehicle-record-nav .v2-workspace-panel-copy > .semi-typography {
display: none;
}
}
@media (max-width: 680px) {
.v2-vehicle-record-page {
gap: 8px;
padding: 8px;
}
.v2-vehicle-command-card.semi-card {
border-radius: 11px;
}
.v2-vehicle-command-header {
grid-template-columns: 1fr;
}
.v2-vehicle-command-header .v2-identity-primary {
padding: 13px 13px 11px;
}
.v2-vehicle-command-header .v2-plate {
min-height: 38px;
padding-inline: 12px;
font-size: 16px;
}
.v2-vehicle-command-header .v2-identity-meta {
grid-template-columns: minmax(0, 1.15fr) minmax(120px, .85fr);
border-top: 1px solid #e7edf4;
border-left: 0;
padding: 10px 0;
}
.v2-vehicle-command-header .v2-identity-meta > div {
padding-inline: 12px;
}
.v2-vehicle-command-header .v2-identity-meta > div + div {
padding-inline: 12px;
}
.v2-vehicle-command-header .v2-identity-meta strong {
margin-top: 5px;
font-size: 11px;
}
.v2-vehicle-command-header .v2-identity-sources {
flex-wrap: nowrap;
overflow-x: auto;
margin-top: 5px;
scrollbar-width: none;
}
.v2-vehicle-command-header .v2-identity-meta .semi-tag {
flex: 0 0 auto;
}
.v2-vehicle-command-header .v2-identity-actions {
display: flex;
grid-template-columns: none;
gap: 6px;
padding: 7px 10px;
scrollbar-width: none;
}
.v2-vehicle-command-header .v2-identity-actions::-webkit-scrollbar,
.v2-vehicle-command-header .v2-identity-sources::-webkit-scrollbar {
display: none;
}
.v2-vehicle-command-header .v2-identity-actions > .semi-button {
width: auto;
min-width: 112px;
min-height: 38px;
flex: 0 0 auto;
}
.v2-vehicle-live-section > .v2-workspace-panel-header {
min-height: 52px;
padding: 8px 11px;
}
.v2-vehicle-live-section .v2-workspace-panel-copy > .semi-typography {
display: none;
}
.v2-vehicle-live-section .v2-live-report-meta {
max-width: 48vw;
font-size: 9px;
}
.v2-vehicle-command-card .v2-live-grid > div {
min-width: 138px;
min-height: 94px;
flex-basis: 138px;
padding: 13px 12px 12px;
}
.v2-vehicle-command-card .v2-live-grid strong,
.v2-vehicle-command-card .v2-live-source-link {
margin-top: 8px;
font-size: 20px;
}
.v2-vehicle-command-card .v2-current-location {
grid-template-columns: 1fr;
}
.v2-vehicle-command-card .v2-current-location > span {
min-height: 46px;
padding: 8px 11px;
}
.v2-vehicle-command-card .v2-current-location > span + span {
border-top: 1px solid #e4eaf2;
border-left: 0;
}
.v2-vehicle-record-nav .v2-workspace-panel-header {
grid-template-columns: auto minmax(0, 1fr);
}
.v2-vehicle-record-nav .v2-workspace-panel-copy > h5.semi-typography {
font-size: 11px;
}
.v2-vehicle-section-nav > .semi-button {
min-height: 32px;
}
.v2-vehicle-record-page .v2-record-grid {
gap: 10px;
}
.v2-vehicle-record-page .v2-single-map-card {
min-height: 330px;
}
}