From 53698e78322738a503132b59aab416e79993af85 Mon Sep 17 00:00:00 2001 From: let5sne Date: Thu, 9 Jul 2026 11:03:47 +0800 Subject: [PATCH] feat(aihr): clarify org snapshot field usage --- frontend/src/views/admin/org-permission.vue | 66 +++++++++++++++++---- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/frontend/src/views/admin/org-permission.vue b/frontend/src/views/admin/org-permission.vue index 986ec4d9..74cd30f9 100644 --- a/frontend/src/views/admin/org-permission.vue +++ b/frontend/src/views/admin/org-permission.vue @@ -19,6 +19,18 @@ +
+
+

配置与使用

+
+ + + + + + +
+

组织人员快照

@@ -160,23 +172,56 @@ const orgPage = reactive({ }); const metrics = [ - { label: '权威组织源', value: '快照', note: '阶段三前用 aihr_org_snapshot' }, - { label: '数据范围主体', value: '项目', note: '主管只看本项目训练/复盘' }, - { label: '试点岗位', value: '管家(生活顾问)', note: 'position 标签沿用现有值' }, + { label: '权威组织源', value: '快照', note: '外部同步写入 aihr_org_snapshot' }, + { label: '数据范围主体', value: '项目', note: '使用 project_code / project_name' }, + { label: '试点岗位', value: '管家(生活顾问)', note: '使用 position_name / position_level' }, { label: 'SSO', value: '暂缓', note: '北森对接归阶段三' } ]; +const usageRules = [ + { + item: '人员主键', + source: 'ext_party_id', + configure: '同步时自动写入,不手工编辑', + usage: '关联训练记录、复盘记录、能力画像、移动端账号' + }, + { + item: '项目范围', + source: 'project_code / project_name', + configure: '从组织快照自动生成项目筛选', + usage: '限制主管查看本项目员工、训练记录、复盘和画像' + }, + { + item: '岗位条线', + source: 'dept_name / position_name', + configure: '按同步岗位名称识别生活顾问、客服、工程等条线', + usage: '筛选试点对象、匹配训练场景和统计岗位覆盖' + }, + { + item: '岗位层级', + source: 'position_level', + configure: '同步时由岗位名称派生: 一线 / 主管 / 项目经理', + usage: '区分学员、主管复盘人、项目管理视角' + }, + { + item: '在职状态', + source: 'employment_status', + configure: '同步 active / departed,默认只看 active', + usage: '离职人员不进入默认派训和运营统计' + } +]; + const identityAxes = [ - { axis: '横向条线', source: 'position_code', example: '管家/客服、工程、保洁、保安', status: '已定义', type: 'success' }, - { axis: '纵向层级', source: '岗位/组织映射', example: '一线、主管、项目经理、片区经理', status: '最小集', type: 'warning' }, - { axis: '管辖范围', source: '组织树 + 项目', example: '单项目 / 多项目 / 城市 / 集团', status: 'P0', type: 'danger' } + { axis: '横向条线', source: 'dept_name / position_name', example: '管家/客服、工程、保洁、保安', status: '已接入', type: 'success' }, + { axis: '纵向层级', source: 'position_level', example: '一线、主管、项目经理', status: '最小集', type: 'warning' }, + { axis: '管辖范围', source: 'project_code / project_name', example: '单项目 / 多项目 / 城市 / 集团', status: 'P0', type: 'danger' } ]; const roleMappings = [ - { match: 'position = 生活顾问', role: '学员', scope: '本人训练与今日安排', owner: 'HR' }, - { match: 'position = 项目主管', role: '主管', scope: '本项目团队训练与复盘', owner: '项目经理' }, - { match: 'role = hr_operator', role: 'HR运营', scope: '场景、Rubric、候选资料审核', owner: 'HR' }, - { match: 'admin', role: '管理员', scope: '模型、资料处理、组织同步', owner: '技术' } + { match: 'position_name 包含 管家/生活顾问', role: '学员', scope: '本人训练与今日安排', owner: 'HR' }, + { match: 'position_level = 主管/项目经理', role: '主管', scope: '本项目团队训练与复盘', owner: '项目经理' }, + { match: '管理后台 role = hr_operator', role: 'HR运营', scope: '场景、Rubric、候选资料审核', owner: 'HR' }, + { match: '管理后台 admin', role: '管理员', scope: '模型、资料处理、组织同步', owner: '技术' } ]; const projectScopes = computed(() => @@ -307,6 +352,7 @@ onMounted(loadOrgSnapshot); font-size: 17px; } +.usage-panel, .org-panel { margin-top: 16px; }