企业成员加载失败{{ loadError }}
重新加载
@@ -167,7 +167,7 @@ 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 || '-' }}
@@ -215,7 +215,7 @@ async function resetPassword(member: TenantMember) {
.member-identity strong, .member-identity small, .member-contact small { overflow-wrap: anywhere; }
.member-identity small, .member-contact small { color: var(--muted); font-size: 10px; }
.role-tags { display: flex; gap: 5px; flex-wrap: wrap; }
-.mobile-member-list { display: none; }
+.mobile-member-list, .mobile-member-empty { display: none; }
.member-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.member-form-tip { display: flex; gap: 10px; padding: 13px; border: 1px solid #cfe1dc; background: #f2f7f6; color: var(--muted); font-size: 11px; line-height: 1.6; }
.member-form-tip svg { flex: 0 0 17px; color: var(--primary); }
diff --git a/src/modules/tenant-management/views/RolesView.vue b/src/modules/tenant-management/views/RolesView.vue
index f6ecce1..3c5111b 100644
--- a/src/modules/tenant-management/views/RolesView.vue
+++ b/src/modules/tenant-management/views/RolesView.vue
@@ -138,7 +138,7 @@ function assignPermissions(role: TenantRole) {
-
+
企业角色加载失败{{ loadError }}
重新加载
@@ -148,7 +148,7 @@ function assignPermissions(role: TenantRole) {
-
+
{{ auth.hasPermission('company:permission:assign') && !(row as TenantRole).builtin ? '分配权限' : '查看权限' }}编辑{{ (row as TenantRole).status === 'ACTIVE' ? '停用' : '启用' }}删除
{{ (row as TenantRole).name }}{{ (row as TenantRole).code }}
{{ store.roleMemberCount((row as TenantRole).id) }}
diff --git a/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs b/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs
index 2838b87..f320865 100644
--- a/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs
+++ b/src/modules/tenant-management/views/TenantAdministrationViews.test.mjs
@@ -92,6 +92,8 @@ 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, /\.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, /store\.loadMembers\(\)/)
assert.match(membersSource, /await store\.resetMemberPassword/)
assert.match(membersSource, /await store\.toggleMemberStatus/)
@@ -106,6 +108,8 @@ test('implements member list, role assignment, password reset and status control
assert.match(membersSource, /import DataTable.*DataTable\.vue/)
assert.match(membersSource, //)
+ assert.doesNotMatch(membersSource, /]*:loading="loading"/)
assert.match(membersSource, /fixed: 'left'/)
assert.match(membersSource, /class="table-actions"/)
assert.doesNotMatch(membersSource, /template #actions>/)
+ assert.doesNotMatch(rolesSource, /]*:loading="loading"/)
assert.match(rolesSource, /fixed: 'left'/)
assert.match(rolesSource, /class="table-actions"/)
assert.doesNotMatch(rolesSource, /template #actions>