bug
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 7m10s

This commit is contained in:
sexygoat
2026-04-11 12:19:35 +08:00
parent 90ae585651
commit 33e15314ac
30 changed files with 1077 additions and 532 deletions

View File

@@ -113,10 +113,12 @@
clearable
size="small"
style="width: 180px"
@input="handleLeftRoleSearch"
/>
</div>
<div class="panel-body">
<ElCheckboxGroup v-model="rolesToAdd" class="role-list">
<ElEmpty v-if="filteredAvailableRoles.length === 0" description="暂无角色" />
<ElCheckboxGroup v-else v-model="rolesToAdd" class="role-list">
<div v-for="role in filteredAvailableRoles" :key="role.ID" class="role-item">
<ElCheckbox :label="role.ID" :disabled="selectedRoles.includes(role.ID)">
<span class="role-info">
@@ -201,7 +203,8 @@
ElFormItem,
ElInput,
ElCheckbox,
ElCheckboxGroup
ElCheckboxGroup,
ElEmpty
} from 'element-plus'
import { ArrowLeft } from '@element-plus/icons-vue'
import type { FormInstance, FormRules } from 'element-plus'
@@ -407,7 +410,7 @@
const entityId = Number(route.params.id)
const params: any = {
page: pagination.page,
pageSize: pagination.pageSize,
page_size: pagination.pageSize,
username: searchForm.username || undefined,
phone: searchForm.phone || undefined,
user_type: isShopType.value ? 3 : 4, // 根据页面类型自动设置: 3:代理账号, 4:企业账号
@@ -553,9 +556,16 @@
}
// 加载所有角色列表
const loadAllRoles = async () => {
const loadAllRoles = async (keyword: string = '') => {
try {
const res = await RoleService.getRoles({ page: 1, pageSize: 100 })
const params: any = {
page: 1,
page_size: 20
}
if (keyword) {
params.role_name = keyword
}
const res = await RoleService.getRoles(params)
if (res.code === 0) {
allRoles.value = res.data.items || []
}
@@ -564,6 +574,17 @@
}
}
// 左侧角色搜索防抖
let leftSearchTimer: ReturnType<typeof setTimeout> | null = null
const handleLeftRoleSearch = (val: string) => {
if (leftSearchTimer) {
clearTimeout(leftSearchTimer)
}
leftSearchTimer = setTimeout(() => {
loadAllRoles(val)
}, 300)
}
// 计算属性:过滤后的可分配角色(根据账号类型过滤)
const filteredAvailableRoles = computed(() => {
let roles = allRoles.value
@@ -580,10 +601,7 @@
roles = roles.filter((role) => role.role_type === 2)
}
// 根据搜索关键词过滤
if (!leftRoleFilter.value) return roles
const keyword = leftRoleFilter.value.toLowerCase()
return roles.filter((role) => role.role_name.toLowerCase().includes(keyword))
return roles
})
// 计算属性:过滤后的已分配角色
@@ -675,7 +693,6 @@
onMounted(() => {
getTableData()
loadAllRoles()
})
</script>