车辆权限与有效期 {draft.vehicleGrants.length} 辆}
+ headerLine
+ headerExtraContent={draft.vehicleGrants.length ?
+ {mobileLayout && draft.vehicleGrants.length ? : undefined}
+ aria-controls="v2-user-vehicle-composer"
+ aria-expanded={vehicleComposerOpen}
+ aria-label={vehicleComposerOpen ? '收起添加车辆' : '添加授权车辆'}
+ onClick={() => setVehicleComposerOpen((value) => !value)}
+ >{vehicleComposerOpen ? '收起' : '添加'} : null}
+ {draft.vehicleGrants.length ? : null}
+
: null}
+ >
+ {vehicleComposerVisible ? : null}
{draft.vehicleGrants.length ? <>
已授权车辆{assignedKeyword ? `${filteredAssignedGrants.length} 条匹配结果` : `${draft.vehicleGrants.length} 辆车拥有当前访问权限`}
diff --git a/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts b/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts
index b67f3eb6..e2cead77 100644
--- a/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts
+++ b/vehicle-data-platform/apps/web/src/v2/productionEntry.test.ts
@@ -237,7 +237,8 @@ describe('V2 production entry', () => {
expect(corePageSources.UsersPage).toContain("'关闭账号详情'");
expect(corePageSources.UsersPage).toContain(' span {
+ min-width: 0;
+}
+
+.v2-user-editor-last-login {
+ flex: 0 0 auto;
+}
+
.v2-user-editor-sheet-title .v2-user-status {
display: flex;
min-width: 92px;
@@ -9248,6 +9258,17 @@
box-shadow: 0 6px 22px rgba(31, 53, 80, .05);
}
+.v2-user-section-actions {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+
+.v2-user-vehicle-composer {
+ display: grid;
+ gap: 10px;
+}
+
.v2-user-editor-sidesheet .semi-sidesheet-footer {
min-height: 64px;
border-top: 1px solid #e2e9f1;
@@ -9325,6 +9346,10 @@
font-size: 9px;
}
+ .v2-user-editor-last-login {
+ display: none;
+ }
+
.v2-user-editor-sheet-title .v2-user-status {
min-width: 34px;
}
@@ -9358,6 +9383,54 @@
-webkit-overflow-scrolling: touch;
}
+ .v2-user-section-actions > .semi-button {
+ min-width: 0;
+ min-height: 32px;
+ border-radius: 7px;
+ padding-inline: 8px;
+ font-size: 9px;
+ }
+
+ .v2-user-vehicle-tools-toggle.semi-button {
+ min-width: 58px;
+ }
+
+ .v2-user-vehicle-composer {
+ gap: 8px;
+ }
+
+ .v2-user-editor-sidesheet .v2-vehicle-permission-tools {
+ gap: 8px;
+ }
+
+ .v2-user-vehicle-section.is-composer-collapsed .v2-assigned-toolbar {
+ margin-top: 0;
+ border-top: 0;
+ padding-top: 1px;
+ }
+
+ .v2-user-editor-sidesheet .v2-assigned-toolbar {
+ grid-template-columns: 104px minmax(0, 1fr);
+ align-items: end;
+ gap: 8px;
+ }
+
+ .v2-user-editor-sidesheet .v2-assigned-toolbar > .semi-input-wrapper {
+ min-height: 40px;
+ }
+
+ .v2-user-editor-sidesheet .v2-assigned-vins > .v2-assigned-vehicle-card.semi-card {
+ min-height: 90px;
+ padding: 9px 10px;
+ contain-intrinsic-size: auto 90px;
+ }
+
+ .v2-user-editor-sidesheet .v2-assigned-vehicle-card > .semi-card-body > .v2-assigned-vehicle-interval {
+ gap: 6px;
+ margin-top: 7px;
+ padding-top: 6px;
+ }
+
.v2-user-editor-sidesheet .v2-user-editor-tabs > .semi-tabs-content::-webkit-scrollbar {
width: 11px;
}