优化: 清理无意义注释(走查编号前缀/过时历史标注/死代码注释)
This commit is contained in:
@@ -322,7 +322,7 @@ const emit = defineEmits<{
|
||||
(e: 'promote'): void
|
||||
(e: 'delete'): void
|
||||
(e: 'status-change', value: IdeaStatus): void
|
||||
// WK-16:返 Promise<boolean> 让子组件 await 知成功/失败。
|
||||
// 返 Promise<boolean> 让子组件 await 知成功/失败。
|
||||
// true=落库成功(关编辑态);false=失败(保持编辑态,toast 由父组件处理)。
|
||||
(e: 'update-desc', value: string): Promise<boolean>
|
||||
(e: 'update-related', ids: string[]): Promise<void>
|
||||
@@ -344,7 +344,7 @@ function startEdit() {
|
||||
}
|
||||
|
||||
// P1-⑥ saveEdit 改异步:emit 返回 Promise<boolean>(父组件 store.updateIdea 落库结果),
|
||||
// 仅成功时关编辑态;失败保持编辑态 + toast 由父组件处理(WK-16)。
|
||||
// 仅成功时关编辑态;失败保持编辑态 + toast 由父组件处理。
|
||||
async function saveEdit() {
|
||||
if (savingDesc.value) return
|
||||
savingDesc.value = true
|
||||
@@ -392,7 +392,7 @@ watch(() => props.idea.description, () => void nextTick(measureDesc))
|
||||
// P1-④ 状态切换 select → badge 点击:点击当前 badge 展开/收起下拉菜单,
|
||||
// 选中项后 emit('status-change') 交父组件确认+落库(沿用既有契约,不破坏 statusOptions 来源)。
|
||||
const statusMenuOpen = ref(false)
|
||||
// WK-5:状态下拉排除 promoted(立项走独立 promoteToProject 流程,列表状态菜单同排除,
|
||||
// 状态下拉排除 promoted(立项走独立 promoteToProject 流程,列表状态菜单同排除,
|
||||
// 见 Ideas.vue onStatusChange 兜底);statusOptions 仍含 promoted 供 label 映射(已转立项的灵感 badge 正常显示)。
|
||||
const menuStatusOptions = computed(() => props.statusOptions.filter(s => s.value !== 'promoted'))
|
||||
function closeStatusMenu() {
|
||||
@@ -502,7 +502,7 @@ async function saveTagsEdit() {
|
||||
savingTags.value = true
|
||||
try {
|
||||
const tags = tagsEditInput.value.split(',').map(t => t.trim()).filter(Boolean)
|
||||
// WK-16:emit 返回落库结果,失败保持编辑态(成功才关),toast 由父组件处理
|
||||
// emit 返回落库结果,失败保持编辑态(成功才关),toast 由父组件处理
|
||||
const ok = await emit('update-tags', JSON.stringify(tags))
|
||||
if (ok) tagsEditing.value = false
|
||||
await nextTick()
|
||||
@@ -520,9 +520,9 @@ function statusLabelKey(status: IdeaStatus): string {
|
||||
return props.statusOptions.find(s => s.value === status)?.labelKey ?? status
|
||||
}
|
||||
|
||||
// B-260615-25:灵感描述 Markdown 渲染(复用 AiChat/TaskDetail 同款渲染器,模块级单例),
|
||||
// 灵感描述 Markdown 渲染(复用 AiChat/TaskDetail 同款渲染器,模块级单例),
|
||||
// useRendered 封装 computed(读 mdReady 触发响应式 + renderMd)+ ensureLoaded(幂等预热)
|
||||
// BUG-2026-07-08:原漏解构 ensureLoaded + onMounted 未调用,冷启动(marked 未被其他组件预热)
|
||||
// 原漏解构 ensureLoaded + onMounted 未调用,冷启动(marked 未被其他组件预热)
|
||||
// 时 mdReady 永远 false,renderMd 走 escapeFallback 纯文本降级,Markdown 语法不渲染。
|
||||
const { rendered: renderedDesc, ensureLoaded: ensureMdLoaded } = useRendered(
|
||||
() => props.idea.description ?? '',
|
||||
@@ -548,7 +548,7 @@ interface AdversarialEval {
|
||||
|
||||
// 对抗式评估数据持久化在 ai_analysis JSON 字段中,前端解析渲染
|
||||
//
|
||||
// WK-15:旧实现直接 JSON.parse 后强转 AdversarialEval,字段缺失/非数值时
|
||||
// 旧实现直接 JSON.parse 后强转 AdversarialEval,字段缺失/非数值时
|
||||
// 模板对 undefined*100 调 .toFixed 显 NaN,assessmentClass 对 undefined 调
|
||||
// .toLowerCase() 崩。这里在解析层补齐数值默认值(防御式归一化),模板直读不二次判空:
|
||||
// - 数值字段缺失/非数值 → 0
|
||||
@@ -599,7 +599,7 @@ const localAssessmentLabel = (recommendation: string): string =>
|
||||
assessmentLabel(t, recommendation)
|
||||
|
||||
function sentimentClass(sentiment: number) {
|
||||
// 统一三档(FR-C2: 原 >=0 与模板 >0 矛盾,net_sentiment=0 时文案负面样式 positive)
|
||||
// 统一三档原 >=0 与模板 >0 矛盾,net_sentiment=0 时文案负面样式 positive)
|
||||
if (sentiment > 0) return 'positive'
|
||||
if (sentiment < 0) return 'negative'
|
||||
return 'neutral'
|
||||
|
||||
Reference in New Issue
Block a user