feat: 完成客户端联调与通用列表组件
This commit is contained in:
@@ -27,6 +27,16 @@ test('implements company details, contact information and qualification workflow
|
||||
assert.match(profileSource, /function removeSelectedFile\(\)/)
|
||||
assert.match(profileSource, /qualificationSubmitting/)
|
||||
assert.match(profileSource, /class="mobile-qualification-list"/)
|
||||
assert.match(profileSource, /import DataTable, \{ type DataTableColumn \} from '@\/components\/common\/DataTable\.vue'/)
|
||||
assert.match(profileSource, /const qualificationColumns: DataTableColumn\[\]/)
|
||||
assert.match(profileSource, /slotName: 'actions'/)
|
||||
assert.match(profileSource, /<DataTable[\s\S]*v-model:page="qualificationPage"[\s\S]*v-model:page-size="qualificationPageSize"[\s\S]*:columns="qualificationColumns"/)
|
||||
assert.doesNotMatch(profileSource, /<el-table class="desktop-qualification-table"/)
|
||||
assert.match(profileSource, /ref="profileFormRef" :model="draft" :rules="profileFormRules"/)
|
||||
assert.match(profileSource, /prop="companyName" required><el-input v-model="draft\.companyName" placeholder="请输入公司名称"/)
|
||||
assert.match(profileSource, /prop="fileName" required :error="qualificationFileError"/)
|
||||
assert.match(profileSource, /const valid = await profileFormRef\.value\?\.validate\(\)/)
|
||||
assert.match(profileSource, /qualificationFileError\.value = '请选择营业执照图片'/)
|
||||
assert.match(profileSource, /downloadQualificationImage/)
|
||||
assert.match(profileSource, /URL\.createObjectURL/)
|
||||
assert.match(profileSource, /URL\.revokeObjectURL/)
|
||||
@@ -47,10 +57,20 @@ test('implements member list, role assignment, password reset and status control
|
||||
assert.match(membersSource, /v-model="form\.password"/)
|
||||
assert.match(membersSource, /企业成员加载失败/)
|
||||
assert.match(membersSource, /@click="loadMembers"/)
|
||||
assert.match(membersSource, /const memberRules: FormRules/)
|
||||
assert.match(membersSource, /ref="formRef" :model="form" :rules="memberRules"/)
|
||||
assert.match(membersSource, /prop="roleIds" required/)
|
||||
assert.match(membersSource, /await formRef\.value\?\.validate\(\)/)
|
||||
assert.match(membersSource, /import QueryToolbar.*QueryToolbar\.vue/)
|
||||
assert.match(membersSource, /import DataTable.*DataTable\.vue/)
|
||||
assert.match(membersSource, /<QueryToolbar v-model="memberFilters"/)
|
||||
assert.match(membersSource, /<DataTable v-model:page="memberPage" v-model:page-size="memberPageSize"/)
|
||||
assert.match(membersSource, /fixed: 'left'/)
|
||||
assert.doesNotMatch(membersSource, /member-metrics/)
|
||||
})
|
||||
|
||||
test('protects built-in roles and exposes role permission assignment', () => {
|
||||
assert.match(rolesSource, /auth\.hasPermission\('company:role:write'\) && !role\.builtin/)
|
||||
assert.match(rolesSource, /auth\.hasPermission\('company:role:write'\).*\.builtin/)
|
||||
assert.match(rolesSource, /function assignPermissions\(role: TenantRole\)/)
|
||||
assert.match(storeSource, /if \(role\.builtin\) throw new Error\('内置角色不能删除'\)/)
|
||||
assert.match(storeSource, /if \(members\.value\.some\(\(member\) => member\.roleIds\.includes\(id\)\)\)/)
|
||||
@@ -63,6 +83,15 @@ test('protects built-in roles and exposes role permission assignment', () => {
|
||||
assert.match(rolesSource, /await store\.deleteRole/)
|
||||
assert.match(rolesSource, /企业角色加载失败/)
|
||||
assert.match(rolesSource, /@click="loadRoles"/)
|
||||
assert.match(rolesSource, /const roleRules: FormRules/)
|
||||
assert.match(rolesSource, /ref="formRef" :model="form" :rules="roleRules"/)
|
||||
assert.match(rolesSource, /placeholder="例如 订单操作员"/)
|
||||
assert.match(rolesSource, /import QueryToolbar.*QueryToolbar\.vue/)
|
||||
assert.match(rolesSource, /import DataTable.*DataTable\.vue/)
|
||||
assert.match(rolesSource, /<QueryToolbar v-model="roleFilters"/)
|
||||
assert.match(rolesSource, /<DataTable v-model:page="rolePage" v-model:page-size="rolePageSize"/)
|
||||
assert.match(rolesSource, /fixed: 'left'/)
|
||||
assert.doesNotMatch(rolesSource, /role-guidance/)
|
||||
})
|
||||
|
||||
test('shows company audit status and applies button permissions', () => {
|
||||
@@ -84,6 +113,9 @@ test('implements grouped menu and action permission editing', () => {
|
||||
assert.match(permissionsSource, /await store\.setRolePermissions/)
|
||||
assert.match(permissionsSource, /角色权限加载失败/)
|
||||
assert.match(permissionsSource, /当前企业暂无可用角色/)
|
||||
assert.match(permissionsSource, /const saving = ref\(false\)/)
|
||||
assert.match(permissionsSource, /:loading="saving"/)
|
||||
assert.match(permissionsSource, /button:focus-visible/)
|
||||
assert.doesNotMatch(permissionsSource, /当前只读展示权限资源/)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user