/** * 工单归属判定(扩展侧 `src/panel/issueOwnership.ts` 的镜像,两个包不共享 * 源码,改一处要同步另一处)。 * * 看板范围切到「团队全部」后同事的工单也会上板,这类卡片只读:不能拖列、 * 不能开会话、不能合并或删除,只保留查看与接管。 */ import type { Issue } from '../types' type OwnershipFacts = Pick /** 该工单是否归当前登录者所有(可写)。身份未知时一律放行,不锁死自己的板。 */ export function isIssueMine(issue: OwnershipFacts, me: string | undefined): boolean { if (me === undefined) return true const assignees = issue.assignees ?? [] if (assignees.length > 0) return assignees.includes(me) return issue.poster === undefined || issue.poster === me } /** 卡片头像取谁:assignee 优先(责任人),否则创建者。 */ export function issueOwnerLogin(issue: OwnershipFacts): string | undefined { return (issue.assignees ?? [])[0] ?? issue.poster }