当前位置: 首页 > article >正文

第 39 课:任务详情抽屉里的真实后台内容块

第 39 课任务详情抽屉里的真实后台内容块这一课我们继续沿着“任务管理页主线”往下推进把前面已经做好的“任务详情抽屉”再往真实后台系统推进一步。这次的目标很明确给详情抽屉补上操作记录给详情抽屉补上协作评论给详情抽屉补上相关附件保持抽屉组件仍然只负责展示让当前任务状态变化能联动到操作记录区块补上单元测试、E2E 测试和课程文档这一课一句话在做什么这一课本质上是在做一件事让任务详情抽屉从“只展示基础字段的说明面板”升级成“真正后台里可以承载协作上下文的工作区”。也就是说抽屉里不再只有标题状态优先级描述而是开始出现后台系统里很常见的 3 类内容这条任务最近发生了什么团队围绕这条任务讨论了什么这条任务依赖了哪些材料这一步很重要。因为真实后台页面真正有价值的地方往往不是“字段多”而是上下文完整。为什么这一步很像真实后台因为用户在后台里处理任务时几乎不会只看一段 description。他们真正关心的是这条任务现在进行到哪一步了最近谁改过、改了什么有没有评论意见要先看有没有附件或资料要先确认如果详情抽屉里只有基础字段会有两个明显问题能看见“任务是什么”但看不见“任务是怎么推进的”能看见“当前状态是什么”但看不见“为什么会到这个状态”所以这一课新增的 3 个区块其实是在补时间线上下文协作上下文材料上下文这三类内容加上以后详情抽屉才开始像一个真正能工作的后台详情区。这节课最关键的设计结论1. 详情业务区块数据不应该直接塞回主任务类型字段里乱长这次我们没有把TaskItem直接改成一个越来越重的大对象。而是新增了这些类型TaskDetailActivityItemTaskDetailCommentItemTaskDetailAttachmentItemTaskDetailBusinessData然后再单独做了src/mock/taskDetail.ts这里体现的是一个很重要的分层思路列表主数据和详情展示所需的业务区块数据可以是相关但分层的两份结构。这样做的好处是任务列表主线不会被“详情区块”搅乱详情 mock 可以独立演进后面如果你真的接后端也更容易把“列表接口”和“详情接口”分开理解2. 抽屉组件继续只做展示层这次TaskDetailDrawer.vue虽然变复杂了很多但它仍然没有接管页面业务逻辑。它只是接收taskdetailDatastatusOptionscurrentPositionhasPrevioushasNext然后负责把这些数据渲染出来。这说明展示层组件可以很丰富但仍然不应该顺手接管页面层状态。3. 当前状态变化应该能反向影响业务区块这次在src/mock/taskDetail.ts里专门做了一条“当前状态同步”的置顶操作记录。它不是纯静态写死的而是会基于当前任务状态动态生成。这意味着详情抽屉里的状态标签变了操作记录第一条也会跟着变这个点很值得你记住。因为它体现了后台前端里很常见的一种能力同一份页面状态要同时驱动多个展示区域。这次主要改了哪些文件这一课主要改了这些地方src/types/task.tssrc/mock/taskDetail.tssrc/views/TasksView.vuesrc/components/tasks/TaskDetailDrawer.vuesrc/components/tasks/__tests__/taskDetailDrawer.spec.tse2e/pages/TasksPage.tse2e/app.spec.tsdocs/README.md另外新增了本节文档docs/39-task-detail-drawer-business-blocks.md在src/types/task.ts里学什么这一课不是简单“多加几个字段”。这里真正要学的是先把数据结构说清楚再去写 UI。这次新加的 4 个接口分别在表达一条操作记录长什么样一条评论长什么样一份附件长什么样一整个详情区块数据长什么样这是你后面做真实项目时非常重要的基本功不要一边写模板一边随手拼字段先定义结构再让 mock、组件、测试都围绕这份结构工作在src/mock/taskDetail.ts里学什么这是这一课非常值得你反复看的文件。这里主要做了 4 件事1. 维护主线任务的详情业务区块预设比如第 4 条任务会有专门的评论专门的附件更贴近筛选主线的操作记录这说明 mock 数据也可以分层tasks.ts放列表主数据taskDetail.ts放详情业务数据2. 给任意任务准备默认回退数据如果某条任务没有命中特定预设也不会让抽屉变成空壳。这里会自动生成默认操作记录默认评论默认附件这很像真实项目里常见的“兜底层”设计就算某个接口暂时没有完整数据页面也尽量保持结构稳定。3. 把“当前状态同步”单独做成动态记录这一步让你能明显看到当前任务状态是页面主状态但它可以继续派生出详情区块里的另一块展示内容这就是 Vue 里“一个状态驱动多个视图区域”的典型练习。4. 用共享函数统一生成详情业务数据最终页面层不需要关心这条任务到底有没有专门预设。它只需要调用getTaskDetailBusinessData(task)然后拿到稳定结构即可。这是一种非常实用的工程习惯把“杂乱的判断与兜底逻辑”收口到一个共享函数里。在src/views/TasksView.vue里学什么这次页面层没有去改很多业务主逻辑。只新增了一件很关键的事情用computed基于activeTaskDetail派生activeTaskDetailBusinessData然后再把它传给TaskDetailDrawer这里你要重点体会的是页面层负责拼装当前页面真正需要的“展示输入”。也就是说useTasksPage()继续负责任务页主状态TasksView.vue负责把当前激活任务和详情业务数据拼在一起TaskDetailDrawer.vue只负责吃这份输入并渲染这就是很标准的页面分层。在src/components/tasks/TaskDetailDrawer.vue里学什么这一课里这个组件最大的成长不是“代码变长”。而是它开始承载真正有业务味道的详情结构。现在抽屉里多了 3 类区块1. 操作记录这里练的是列表渲染时间线布局标签映射当前状态联动2. 协作评论这里练的是卡片列表条件 class信息密度控制内容区块分层3. 相关附件这里练的是另一种卡片结构文件名 / 分类 / 上传信息组合展示为什么同一抽屉里不同业务块可以有不同视觉层次这很适合你理解一个事实真实前端页面的复杂度很多时候不是算法复杂而是“多个信息块怎么组织得清楚”。单元测试这次测了什么文件src/components/tasks/__tests__/taskDetailDrawer.spec.ts这次单元测试主要覆盖了两类场景。1. 正常渲染场景验证抽屉会渲染操作记录区抽屉会渲染评论区抽屉会渲染附件区高亮评论会得到对应 class2. 空区块兜底场景验证当detailData.activityLog为空时会显示操作记录空提示当detailData.comments为空时会显示评论空提示当detailData.attachments为空时会显示附件空提示这说明一个重要习惯不仅要测“有数据时能不能显示”还要测“没数据时会不会崩”。E2E 这次测了什么文件e2e/pages/TasksPage.tse2e/app.spec.ts这次我们给 Page Object 补了几个详情抽屉相关方法expectTaskDetailSectionVisibleexpectTaskDetailActivityVisibleexpectTaskDetailCommentVisibleexpectTaskDetailAttachmentVisible然后新增了一条完整 E2Euser can see business blocks inside task detail drawer这条测试会验证打开第 4 条任务详情操作记录 / 协作评论 / 相关附件 3 个区块都出现能看到真实评论内容和真实附件名在详情里改状态后顶部状态摘要和操作记录里的“当前状态同步”会一起更新这条 E2E 很有代表性。因为它测的不是单个按钮而是抽屉展示结构主状态联动业务区块内容这已经越来越接近真实后台系统测试了。你现在真正应该学会什么学完这一课你不应该只记住“抽屉里多了几个区块”。更重要的是理解下面 4 件事1. 后台详情页真正重要的是上下文不只是字段字段只是“静态信息”。而操作记录、评论、附件才是让用户能继续工作的上下文。2. 详情数据可以分层不必全部塞进列表主数据这一课是一个很典型的“列表数据”和“详情数据”分层例子。3. 展示层组件可以很复杂但仍然不应该接管页面状态TaskDetailDrawer.vue现在比前几课复杂很多但它仍然只负责展示。4. 同一份状态应该能驱动多个区域一起变化当前任务状态变化后状态标签会变快捷改状态区会变操作记录第一条也会变这就是典型的 Vue 响应式联动。

相关文章:

第 39 课:任务详情抽屉里的真实后台内容块

第 39 课:任务详情抽屉里的真实后台内容块 这一课我们继续沿着“任务管理页主线”往下推进,把前面已经做好的“任务详情抽屉”再往真实后台系统推进一步。 这次的目标很明确: 给详情抽屉补上 操作记录给详情抽屉补上 协作评论给详情抽屉补上 …...

微信聊天记录永久保存终极指南:5步轻松备份你的数字记忆

微信聊天记录永久保存终极指南:5步轻松备份你的数字记忆 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机丢失、系统重置而永远失去了珍贵的微信…...

DolphinScheduler Switch组件避坑指南:从配置依赖关系到条件表达式,新手最易踩的3个坑

DolphinScheduler Switch组件实战避坑指南:从表达式陷阱到分支逻辑的深度解析 第一次在DolphinScheduler里拖入Switch组件时,那种"拖拽即完成"的错觉很快就会被现实击碎。我清楚地记得凌晨三点盯着屏幕上那个顽固的红色失败标记,明…...

League-Toolkit:英雄联盟玩家必备的终极智能助手完整指南

League-Toolkit:英雄联盟玩家必备的终极智能助手完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为繁琐的游戏操作而烦…...

如何在Video2X中实现GLFW窗口创建与Vulkan表面绑定:完整技术指南

如何在Video2X中实现GLFW窗口创建与Vulkan表面绑定:完整技术指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trendin…...

药物警戒系统中,智能体录入不良反应如何从根源上规避人为误差?

摘要: 站在2026年4月的时点回望,药物警戒(Pharmacovigilance, PV)领域正经历一场从“人工辅助”到“智能体托管”的范式转移。传统模式下,不良反应(ADR)录入高度依赖人工对非结构化临床数据的解…...

写给做低代码审批系统的你:动态表单建模和 Redis 用法一定要提前想清楚

Activiti/Flowable 工作流实战:动态表单怎么设计?再看 Redis 在业务系统里的 6 种用法 很多人做工作流项目时,注意力都会被流程图吸走。 但真正让系统具备平台能力的,往往不是 BPMN 画布,而是两件事: 一件是…...

AI Tech Interview数据结构与算法精讲:面试官最爱问的20个问题

AI Tech Interview数据结构与算法精讲:面试官最爱问的20个问题 【免费下载链接】ai-tech-interview 👩‍💻👨‍💻 AI 엔지니어 기술 면접 스터디 (⭐️ 2k) 项目地址: https://gitcode.com/gh_mirrors/ai/ai-tech-in…...

药品生产环节:用实在Agent自动生成批记录与打印领料单的合规设计与架构落地

摘要: 在2026年的今天,制药行业的数字化转型已从简单的“系统替代”转向“智能体驱动”的深度重构。药品生产批记录(BPR)作为合规性的核心,长期面临数据零散、人工复核压力大及老旧系统API缺失的难题。本文以资深企业架…...

【学习笔记】车道线识别——图像处理方法

一、图像基本知识 1. HLS:色相,亮度,饱和度 色相通道:确定颜色 亮度通道:亮度信息 饱和度通道:饱和度信息对于颜色区分鲜艳程度很关键。 二、视频读取示例 import cv2if __name__ __main__:video c…...

蓝牙实战解析:定向广播ADV_DIRECT_IND的连接建立与占空比策略

1. 定向广播ADV_DIRECT_IND的核心原理 第一次接触ADV_DIRECT_IND时,我误以为它和普通广播差不多,结果在实际项目中踩了个大坑。这种广播类型最特别的地方在于它的精准打击特性——就像用激光笔照射特定目标,而不是普通广播的探照灯模式。 ADV…...

【T5模型架构】从Transformer到T5:架构演进与核心模块拆解

1. Transformer基础回顾:从Attention到Encoder-Decoder 要理解T5模型的创新点,我们得先回到2017年那个改变NLP格局的经典架构——Transformer。当时谷歌大脑团队发表的《Attention is All You Need》论文,彻底抛弃了传统的RNN和CNN结构&#…...

保姆级教程:用Vector Configurator配置Autosar CAN报文接收超时(Deadline Monitor)

保姆级教程:用Vector Configurator配置Autosar CAN报文接收超时(Deadline Monitor) 在汽车电子开发中,CAN总线通信的可靠性直接关系到整车功能的稳定性。当某个ECU节点依赖特定CAN报文进行关键决策时,报文接收超时监测…...

eNSP实战:二层旁挂组网下AP免认证上线与直接转发配置详解

1. 二层旁挂组网环境搭建 第一次接触华为eNSP模拟器时,我被它强大的网络模拟能力震撼到了。今天要分享的这个二层旁挂组网场景,是我在实际项目中经常遇到的典型配置。这种组网方式最大的特点就是简单高效,特别适合中小型办公网络的部署。 先说…...

5分钟快速搭建乳腺癌预测神经网络教程

1. 项目概述:5分钟快速搭建乳腺癌预测神经网络去年在Kaggle社区看到一个乳腺癌预测比赛时,我意识到很多医疗从业者其实并不需要深入理解神经网络的所有数学细节,他们更关注如何快速验证一个基础模型的效果。这就是为什么我开发了一套极简流程…...

告别命令行恐惧:图形界面如何让M3U8视频下载变得像点外卖一样简单?

告别命令行恐惧:图形界面如何让M3U8视频下载变得像点外卖一样简单? 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 你是否曾经面对密密麻麻的命令行参数感…...

3个步骤开启你的英国生物银行数据分析之旅:从零到发现的实战探索

3个步骤开启你的英国生物银行数据分析之旅:从零到发现的实战探索 【免费下载链接】UKB_RAP Access share reviewed code & Jupyter Notebooks for use on the UK Biobank (UKBB) Research Application Platform. Includes resources from DNAnexus webinars, on…...

最新!国内外主流AI编程助手全面盘点

随着AI技术的快速发展,AI编程工具已经从新鲜事物变成了开发者日常工作的标配。不论是专业开发者还是编程初学者,都能借助AI工具提升效率、降低门槛。本文为大家盘点当前最值得关注的AI编程工具,一起来看看吧。工具推荐1. Trae (字节跳动)Trae…...

Weka机器学习数据预处理与可视化实战指南

1. 理解Weka中的机器学习数据基础第一次打开Weka的Explorer界面时,那个密密麻麻的Attribute窗口可能会让人不知所措。作为一款经典的机器学习工具,Weka的数据处理方式有其独特的逻辑。我刚开始使用时,常常对着ARFF文件格式发愣——为什么我的…...

别再为IPsec隧道‘单向通’头疼了!手把手教你排查FortiGate双端互连失败(附实战截图)

FortiGate IPsec隧道双向互通实战:从单向通到全连接的深度排查指南 当企业分支机构与总部之间部署IPsec VPN时,"单向通"问题堪称网络工程师的噩梦——一端能主动发起连接成功,另一端却始终无法建立隧道。这种现象不仅影响业务连续性…...

线程安全崩塌,连接池雪崩,序列化溢出——C++ MCP网关5大致命报错全解析,附GDB+eBPF精准诊断模板

更多请点击: https://intelliparadigm.com 第一章:线程安全崩塌——MCP网关并发失控的根因定位与修复 在高并发场景下,MCP(Microservice Control Plane)网关频繁出现 503 错误与连接超时,日志中反复出现 c…...

oracle和金仓区别,个人睬坑

1、select中使用相关子查询,oracle中正常执行效率,在金仓中严重影响性能。以下是出现问题原SQL修改之后,可在金仓执行效率好,但在oracle效率不好 思路将”select相关子查询“修改成left join多表连接。注意:分页情况时…...

【嵌入式C与轻量大模型适配实战指南】:20年老工程师亲授3大内存对齐陷阱、4类中断冲突规避法及生产环境零宕机部署 checklist

更多请点击: https://intelliparadigm.com 第一章:嵌入式C与轻量大模型适配的工程范式演进 传统嵌入式开发以资源严苛、确定性优先为铁律,而轻量大模型(如TinyLLaMA、Phi-3-mini、MicroLlama)的兴起正倒逼底层工程范式…...

Rust的匹配中的类型指定

Rust的匹配机制是其语言设计中极具特色的一部分,而类型指定在匹配中的灵活运用更是让开发者能够编写出既安全又高效的代码。通过模式匹配,Rust允许开发者对值的结构进行解构,并根据不同的类型或值执行不同的逻辑。这种能力不仅提升了代码的可…...

AMD Ryzen 处理器功耗调校终极实战:RyzenAdj 完整指南

AMD Ryzen 处理器功耗调校终极实战:RyzenAdj 完整指南 【免费下载链接】RyzenAdj Adjust power management settings for Ryzen APUs 项目地址: https://gitcode.com/gh_mirrors/ry/RyzenAdj RyzenAdj 是一款专为 AMD Ryzen 移动处理器设计的开源电源管理工具…...

终极指南:如何免费解锁《原神》60帧限制,体验144Hz流畅游戏

终极指南:如何免费解锁《原神》60帧限制,体验144Hz流畅游戏 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 还在为《原神》PC版只能跑60帧而烦恼吗?想…...

算法基础 第3章 数据结构

1.单调栈 1.什么是单调栈 单调栈&#xff0c;即具有单调性的栈。 实现 #include <iostream> #include <stack> using namespace std; const int N 3e6 10; int a[N], n; void test1() {stack<int> st; // 维护⼀个单调递增的栈for(int i 1; i < n; i…...

Windows窗口置顶终极指南:使用AlwaysOnTop提升多任务效率

Windows窗口置顶终极指南&#xff1a;使用AlwaysOnTop提升多任务效率 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常在多个窗口间来回切换&#xff0c;寻找被覆盖的重…...

技术观察者中的事件通知与状态同步

技术观察者中的事件通知与状态同步 在现代分布式系统和复杂软件架构中&#xff0c;事件通知与状态同步是技术观察者模式的核心机制。观察者模式通过解耦对象间的依赖关系&#xff0c;实现高效的状态传递与事件响应&#xff0c;广泛应用于实时数据处理、用户界面更新和微服务通…...

避坑指南:Win11下用VS2022配置PCL1.12.1,环境变量和VTK警告都帮你搞定了

Win11下VS2022配置PCL1.12.1实战避坑手册 最近在帮团队搭建点云处理开发环境时&#xff0c;发现网上大多数PCL安装教程都存在两个致命问题&#xff1a;要么对环境变量配置一笔带过&#xff0c;要么对VTK版本警告视而不见。这直接导致新手开发者卡在环境配置环节数小时甚至数天。…...