diff --git a/shared/AGENTS.md b/shared/AGENTS.md
index d0032b9..5efe933 100644
--- a/shared/AGENTS.md
+++ b/shared/AGENTS.md
@@ -18,4 +18,3 @@
- 修改导出名称、字段类型、枚举值或常量语义前,搜索当前应用内全部消费者。
- 优先采用兼容性新增;破坏性修改必须同步更新当前应用消费者。
- 本包没有独立质量脚本;变更后运行父应用声明的类型检查、测试或构建命令。
-
diff --git a/shared/README.md b/shared/README.md
index 5b5cb76..fdc627d 100644
--- a/shared/README.md
+++ b/shared/README.md
@@ -3,4 +3,3 @@
本目录存放当前前端应用多个业务模块共同使用的 TypeScript 类型、常量和轻量工具,通过 `@chongchong/shared: link:./shared` 引用。
该目录必须保留在应用内部,以支持 Admin、Client 分别使用自身目录作为容器构建上下文。它不作为 Java 服务端契约来源;接口字段、状态机、权限和业务规则以 `baiyue-firstleg` Controller、DTO 和 OpenAPI 为准。
-
diff --git a/src/modules/tenant-management/views/MembersView.vue b/src/modules/tenant-management/views/MembersView.vue
index 78835e5..17926eb 100644
--- a/src/modules/tenant-management/views/MembersView.vue
+++ b/src/modules/tenant-management/views/MembersView.vue
@@ -167,14 +167,16 @@ async function resetPassword(member: TenantMember) {
-
- 编辑重置密码{{ (row as TenantMember).status === 'ACTIVE' ? '停用' : '启用' }}仅查看
- {{ (row as TenantMember).name.slice(0, 1) }}{{ (row as TenantMember).name }}{{ (row as TenantMember).account }}
- {{ (row as TenantMember).phone }}{{ (row as TenantMember).email || '-' }}
- {{ name }}未分配
- {{ (row as TenantMember).status === 'ACTIVE' ? '正常' : '已停用' }}
- 没有匹配的企业成员,请调整筛选条件。
-
+
+
+ 编辑重置密码{{ (row as TenantMember).status === 'ACTIVE' ? '停用' : '启用' }}仅查看
+ {{ (row as TenantMember).name.slice(0, 1) }}{{ (row as TenantMember).name }}{{ (row as TenantMember).account }}
+ {{ (row as TenantMember).phone }}{{ (row as TenantMember).email || '-' }}
+ {{ name }}未分配
+ {{ (row as TenantMember).status === 'ACTIVE' ? '正常' : '已停用' }}
+ 没有匹配的企业成员,请调整筛选条件。
+
+
@@ -184,7 +186,7 @@ async function resetPassword(member: TenantMember) {
-
没有匹配的企业成员,请调整筛选条件。
+
没有匹配的企业成员,请调整筛选条件。
@@ -223,9 +225,9 @@ async function resetPassword(member: TenantMember) {
.members-page :deep(.el-form-item__error) { line-height: 1.45; overflow-wrap: anywhere; }
@media (max-width: 720px) {
.member-form-grid { grid-template-columns: 1fr; }
- .desktop-member-table :deep(.el-table) { display: none; }
+ .desktop-member-table { display: none; }
.mobile-member-list { display: grid; gap: 10px; padding: 10px; }
- .mobile-member-empty { display: grid; min-height: 150px; place-items: center; }
+ .mobile-member-empty { display: grid; min-height: 150px; place-items: center; border-top: 1px solid var(--border); color: #98a2a9; font-size: 13px; text-align: center; }
.mobile-member-list article { padding: 14px; border: 1px solid var(--border); background: #fff; }
.mobile-member-list header { display: flex; align-items: center; justify-content: space-between; }
.mobile-member-list dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 16px 0; }
diff --git a/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs b/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs
index f320865..3df9593 100644
--- a/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs
+++ b/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs
@@ -92,8 +92,10 @@ test('implements member list, role assignment, password reset and status control
assert.match(membersSource, /function toggleStatus\(member: TenantMember\)/)
assert.match(membersSource, /v-model="form\.roleIds" multiple/)
assert.match(membersSource, /class="mobile-member-list"/)
+ assert.match(membersSource, /class="mobile-member-empty"/)
+ assert.doesNotMatch(membersSource, /class="mobile-member-empty client-empty"/)
assert.match(membersSource, /\.mobile-member-list, \.mobile-member-empty \{ display: none; \}/)
- assert.match(membersSource, /\.mobile-member-empty \{ display: grid; min-height: 150px; place-items: center; \}/)
+ assert.match(membersSource, /\.mobile-member-empty \{ display: grid; min-height: 150px; place-items: center;/)
assert.match(membersSource, /store\.loadMembers\(\)/)
assert.match(membersSource, /await store\.resetMemberPassword/)
assert.match(membersSource, /await store\.toggleMemberStatus/)
@@ -108,6 +110,10 @@ test('implements member list, role assignment, password reset and status control
assert.match(membersSource, /import DataTable.*DataTable\.vue/)
assert.match(membersSource, /\s*]*class="desktop-member-table"/)
+ assert.match(membersSource, /\.desktop-member-table \{ display: none; \}/)
+ assert.doesNotMatch(membersSource, /\.desktop-member-table :deep\(\.el-table\)/)
assert.match(membersSource, //)
assert.doesNotMatch(membersSource, /]*:loading="loading"/)
assert.match(membersSource, /fixed: 'left'/)