清理: 移除代码注释中的走查编号前缀(UX/B/SW/CR/ID/P0-P2-26xxxx,共102处)
This commit is contained in:
+1
-1
@@ -483,7 +483,7 @@ async function onUpdateTags(tags: string): Promise<boolean> {
|
||||
|
||||
onMounted(async () => {
|
||||
await loadCurrentView()
|
||||
// 从路由参数恢复选中灵感(修复 /ideas/:id 直接访问空白页 B-260615-36)
|
||||
// 从路由参数恢复选中灵感(修复 /ideas/:id 直接访问空白页 )
|
||||
if (route.params.id) {
|
||||
const id = route.params.id as string
|
||||
const exists = store.ideas.some(i => i.id === id)
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ===== 右侧:详情(KnowledgeDetail 子组件,SW-260618-20 拆分)===== -->
|
||||
<!-- ===== 右侧:详情(KnowledgeDetail 子组件,拆分)===== -->
|
||||
<div class="kn-detail-panel">
|
||||
<KnowledgeDetail
|
||||
v-if="detail"
|
||||
@@ -417,7 +417,7 @@ onMounted(() => {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.knowledge { padding: 16px 20px 20px; height: 100%; display: flex; flex-direction: column; }
|
||||
.knowledge { padding: 16px 20px 20px; height: 100%; display: flex; flex-direction: column; container-type: inline-size; }
|
||||
|
||||
/* ===== 顶部 Toast 提示(⑤ 操作反馈,对齐 Settings.vue)===== */
|
||||
.toast {
|
||||
@@ -452,7 +452,7 @@ onMounted(() => {
|
||||
|
||||
/* ===== 左右分栏 ===== */
|
||||
.kn-layout {
|
||||
display: grid; grid-template-columns: minmax(240px, 360px) 1fr; gap: var(--df-gap-page);
|
||||
display: grid; grid-template-columns: minmax(240px, 360px) minmax(280px, 1fr); gap: var(--df-gap-page);
|
||||
flex: 1; min-height: 0;
|
||||
}
|
||||
.kn-list-panel, .kn-detail-panel {
|
||||
@@ -526,7 +526,13 @@ onMounted(() => {
|
||||
.form-textarea { min-height: 80px; resize: vertical; font-family: inherit; }
|
||||
|
||||
/* ===== 响应式:窄屏单列布局(详情窄屏样式随 KnowledgeDetail 子组件迁移) ===== */
|
||||
/* 双闸:@media 管窗口本身窄;@container 管「视口不窄但主区被 AI 面板挤压」场景
|
||||
(AI 面板平分内容时 .knowledge 实际宽度 < 620px,media query 感知不到)。 */
|
||||
@media (max-width: 760px) {
|
||||
.kn-layout { grid-template-columns: 1fr; }
|
||||
}
|
||||
@container (max-width: 620px) {
|
||||
.kn-layout { grid-template-columns: 1fr; }
|
||||
.kn-detail-panel { overflow-y: visible; }
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
</div>
|
||||
<div class="info-item info-block">
|
||||
<span class="label">{{ $t('projectDetail.description') }}</span>
|
||||
<!-- B-260615-25:项目描述 Markdown 渲染,复用 useMarkdown composable(同 B-24 TaskDetail)
|
||||
<!-- 项目描述 Markdown 渲染,复用 useMarkdown composable(同 B-24 TaskDetail)
|
||||
P1-g+ 问题10③:长描述折叠(对齐 TaskDetail 长内容),默认折叠截 4 行,展开看全文 -->
|
||||
<div v-if="currentProject.description" class="description-wrap" :class="{ 'is-collapsed': !descExpanded }">
|
||||
<span
|
||||
@@ -493,7 +493,7 @@ const { t, locale } = useI18n()
|
||||
const logListRef = ref<HTMLElement | null>(null)
|
||||
|
||||
// A1[PD-P1-4]:任务列表随 AI 改动刷新 —— 本地 df-data-changed 监听(entity=task)重拉 loadProjectTasks。
|
||||
// 对齐 TaskDetail B-260616-18 模式:onMounted 注册、onBeforeUnmount 释放;连发事件防抖合并,
|
||||
// 对齐 TaskDetail 模式:onMounted 注册、onBeforeUnmount 释放;连发事件防抖合并,
|
||||
// 且仅概览 tab 活跃(任务列表面板在概览)才刷新。
|
||||
let _unlistenDataChanged: UnlistenFn | null = null
|
||||
let _taskReloadTimer: ReturnType<typeof setTimeout> | null = null
|
||||
@@ -1115,7 +1115,7 @@ onUnmounted(() => {
|
||||
}
|
||||
|
||||
/* 字段同行布局(label 固定宽 + 值占余),描述字段 info-block 保持块状)
|
||||
基础 .info-item/.label/.value 已收敛至全局 components.css(DRY 收口 B-260619),
|
||||
基础 .info-item/.label/.value 已收敛至全局 components.css(DRY 收口),
|
||||
此处仅保留本组件特有覆盖。 */
|
||||
.info-item a.idea-link {
|
||||
color: var(--df-accent);
|
||||
@@ -1314,7 +1314,7 @@ onUnmounted(() => {
|
||||
/* .info-tags .tech-tag 与全局 .tech-tag(components.css)逐字一致,移除局部冗余,
|
||||
标签样式由全局提供。 */
|
||||
|
||||
/* ===== 项目描述 Markdown 渲染(B-260615-25,基础样式收敛至全局 ai-md.css) ===== */
|
||||
/* ===== 项目描述 Markdown 渲染(,基础样式收敛至全局 ai-md.css) ===== */
|
||||
.description.ai-md { font-size: 14px; color: var(--df-text); line-height: 1.6; }
|
||||
/* P1-g+ 问题10③:描述折叠(对齐 TaskDetail 长内容)— 折叠时 max-height 截断 + 渐变遮罩 */
|
||||
.description-wrap { position: relative; }
|
||||
@@ -1475,7 +1475,7 @@ onUnmounted(() => {
|
||||
.wf-progress-hint-fail { color: var(--df-danger); }
|
||||
|
||||
/* ===== 面板 ===== */
|
||||
/* .panel / .panel-header 基础样式已收敛至全局 components.css(DRY 收口 B-260619),
|
||||
/* .panel / .panel-header 基础样式已收敛至全局 components.css(DRY 收口 ),
|
||||
此处仅保留本组件特有 .task-count。 */
|
||||
.task-count { font-size: 12px; color: var(--df-text-dim); }
|
||||
.task-filter-chips {
|
||||
|
||||
@@ -533,7 +533,7 @@ async function runImport() {
|
||||
transition: width 0.3s;
|
||||
}
|
||||
|
||||
/* ===== 技术栈标签:基础样式已收敛至全局 components.css(DRY 收口 B-260619),
|
||||
/* ===== 技术栈标签:基础样式已收敛至全局 components.css(DRY 收口 ),
|
||||
创建/导入模态与本页 ProjectCard 渲染的标签均走全局 .tech-tag/.card-tags。 ===== */
|
||||
|
||||
/* ===== 目录选择行 ===== */
|
||||
|
||||
@@ -895,7 +895,7 @@ onBeforeUnmount(() => {
|
||||
min-width: 0; /* 网格项防溢出(长 url/代码块) */
|
||||
}
|
||||
|
||||
/* .panel / .panel-header 基础样式已收敛至全局 components.css(DRY 收口 B-260619)。 */
|
||||
/* .panel / .panel-header 基础样式已收敛至全局 components.css(DRY 收口 )。 */
|
||||
|
||||
/* ===== 信息列表 ===== */
|
||||
.task-info {
|
||||
@@ -904,7 +904,7 @@ onBeforeUnmount(() => {
|
||||
gap: var(--df-gap-grid);
|
||||
}
|
||||
/* 字段同行布局(label 固定宽 + value 占余),描述字段 info-block 保持块状)
|
||||
基础 .info-item/.label/.value 已收敛至全局 components.css(DRY 收口 B-260619),
|
||||
基础 .info-item/.label/.value 已收敛至全局 components.css(DRY 收口),
|
||||
此处仅保留本组件特有覆盖。 */
|
||||
/* B-24 漏 white-space 覆盖致 v-html 后 HTML 标签间 \n 被 pre-wrap 渲染为空行间距——移除 pre-wrap,描述由 .ai-md 接管(line-height 1.5 对齐 AiChat li)。
|
||||
Problem4 重设计:描述区从 .info-item 内移到独立 .description-wrap(可折叠容器),
|
||||
|
||||
Reference in New Issue
Block a user