在一家专注于肿瘤免疫治疗的创新药企,研发团队最近完成了一个新靶点的立项评估——从无到有,梳理研究现状、提炼关键机制、形成完整综述报告,只用了不到半天时间。而过去,同样的任务,至少需要5到7个工作日:查文献、读摘要、精读全文、归纳进展、整理参考文献……每一步都像在“搬砖”。但这一次,并没有加班,也没有增加人手。只是悄悄使用了一个新工具——MedPeer Deep Search。于是,效率“开挂”了。
2025年08月18日
在一家专注于肿瘤免疫治疗的创新药企,研发团队最近完成了一个新靶点的立项评估——从无到有,梳理研究现状、提炼关键机制、形成完整综述报告,只用了不到半天时间。而过去,同样的任务,至少需要5到7个工作日:查文献、读摘要、精读全文、归纳进展、整理参考文献……每一步都像在“搬砖”。但这一次,并没有加班,也没有增加人手。只是悄悄使用了一个新工具——MedPeer Deep Search。于是,效率“开挂”了。
2025年08月18日
“面膜竟成了‘二类医疗器械’,‘医用修护敷贴’普通人也能随便用?”
几个月前,河北的陈女士受家人委托,帮忙购买一款医用保湿面膜。点开链接后,她感觉不太对劲:这款面膜的商品宣传图中虽然注明了品牌名称和缩写,但图中展示的商品包装盒上却没有品牌中文名,盒子上能看清的中文字只有中间的“医用修护敷贴”和左上方的“二类医疗器械”。
她翻到商品详情页,想看看这款面膜成分和厂家信息,却发现,详情页里堆叠了五六种不同品牌的面膜图片,但就是没有这款面膜,更别提成分、厂家,这让她更觉蹊跷。
2025年08月18日
以下是五年级小数乘除法中的高频易错点及相应的避免策略,结合典型例题和教学实践整理,帮助学生精准突破计算难点:
2025年08月18日
智东西AI前瞻(公众号:zhidxcomAI)
作者 | 江宇
编辑 | 漠影
智东西8月14日报道,印象笔记完成了一次面向网页版的重要升级。
这次网页版更新的核心亮点是首次引入了AI智能体(Agent)模式,用户只需给出指令,就能让AI自动完成标签整理、思维导图生成、清单提取等任务,让笔记不只是“写下来”,而是由AI协助“整理清楚”。
2025年08月18日
下面是为 Pinia Store 增加关闭所有标签页、关闭其他标签页、关闭左侧标签页和关闭右侧标签页功能的完整实现:
const useTabStore = defineStore('tabs', {
state: () => ({
tabs: [], // 标签页数组
activeTab: '', // 当前激活的标签页
cachedViews: [] // 需要缓存的视图名称
}),
actions: {
// 添加标签页
addTab(route) {
// 检查标签页是否已存在
const exists = this.tabs.some(tab => tab.path === route.path);
if (!exists) {
this.tabs.push({
title: route.meta.title,
path: route.path,
name: route.name,
meta: route.meta
});
// 如果路由需要缓存,则添加到缓存列表
if (route.meta.keepAlive && !this.cachedViews.includes(route.name)) {
this.cachedViews.push(route.name);
}
}
// 设置当前激活的标签页
this.activeTab = route.path;
},
// 关闭标签页
closeTab(tab) {
// 从标签页列表中移除
this.tabs = this.tabs.filter(t => t.path !== tab.path);
// 如果关闭的是当前激活的标签页
if (this.activeTab === tab.path) {
// 激活最后一个标签页
const lastTab = this.tabs[this.tabs.length - 1];
if (lastTab) {
router.push(lastTab.path);
this.activeTab = lastTab.path;
} else {
// 如果没有标签页了,跳转到首页
router.push('/');
}
}
// 如果关闭的是需要缓存的标签页,从缓存中移除
if (tab.meta?.keepAlive) {
this.cachedViews = this.cachedViews.filter(name => name !== tab.name);
}
},
// 切换标签页
switchTab(tab) {
router.push(tab.path);
this.activeTab = tab.path;
},
// 关闭所有标签页
closeAllTabs() {
// 保留首页(如果存在)
const homeTab = this.tabs.find(tab => tab.path === '/');
// 清空标签页数组
this.tabs = [];
// 清空缓存
this.cachedViews = [];
// 如果首页存在,重新添加首页
if (homeTab) {
this.tabs.push(homeTab);
if (homeTab.meta.keepAlive) {
this.cachedViews.push(homeTab.name);
}
router.push('/');
this.activeTab = '/';
} else {
// 如果没有首页,跳转到首页
router.push('/');
this.addTab(router.currentRoute.value);
}
},
// 关闭其他标签页(保留当前页和首页)
closeOtherTabs() {
const currentTab = this.tabs.find(tab => tab.path === this.activeTab);
const homeTab = this.tabs.find(tab => tab.path === '/');
// 保留当前页和首页
const tabsToKeep = [];
if (homeTab) tabsToKeep.push(homeTab);
if (currentTab && currentTab.path !== '/') tabsToKeep.push(currentTab);
// 过滤掉不需要保留的标签页
const tabsToClose = this.tabs.filter(tab => !tabsToKeep.includes(tab));
// 更新标签页列表
this.tabs = tabsToKeep;
// 更新缓存列表
this.cachedViews = this.tabs
.filter(tab => tab.meta.keepAlive)
.map(tab => tab.name);
// 如果当前页被关闭了,跳转到首页
if (!currentTab || !tabsToKeep.includes(currentTab)) {
router.push('/');
this.activeTab = '/';
}
},
// 关闭左侧标签页
closeLeftTabs() {
const currentIndex = this.tabs.findIndex(tab => tab.path === this.activeTab);
if (currentIndex > 1) { // 左侧有标签页需要关闭
// 获取需要关闭的标签页
const tabsToClose = this.tabs.slice(0, currentIndex);
// 保留首页(如果首页在左侧)
const homeTab = this.tabs.find(tab => tab.path === '/');
if (homeTab && tabsToClose.includes(homeTab)) {
// 首页保留
this.tabs = [homeTab, ...this.tabs.slice(currentIndex)];
} else {
// 没有首页,直接保留右侧
this.tabs = this.tabs.slice(currentIndex);
}
// 更新缓存列表
this.cachedViews = this.tabs
.filter(tab => tab.meta.keepAlive)
.map(tab => tab.name);
}
},
// 关闭右侧标签页
closeRightTabs() {
const currentIndex = this.tabs.findIndex(tab => tab.path === this.activeTab);
if (currentIndex < this.tabs.length - 1) { // 右侧有标签页需要关闭
// 获取需要关闭的标签页
const tabsToClose = this.tabs.slice(currentIndex + 1);
// 保留首页(如果首页在右侧)
const homeTab = this.tabs.find(tab => tab.path === '/');
if (homeTab && tabsToClose.includes(homeTab)) {
// 首页保留
this.tabs = [...this.tabs.slice(0, currentIndex + 1), homeTab];
} else {
// 没有首页,直接保留左侧
this.tabs = this.tabs.slice(0, currentIndex + 1);
}
// 更新缓存列表
this.cachedViews = this.tabs
.filter(tab => tab.meta.keepAlive)
.map(tab => tab.name);
}
},
// 关闭除首页外的所有标签页
closeAllExceptHome() {
const homeTab = this.tabs.find(tab => tab.path === '/');
if (homeTab) {
// 只保留首页
this.tabs = [homeTab];
this.cachedViews = homeTab.meta.keepAlive ? [homeTab.name] : [];
if (this.activeTab !== '/') {
router.push('/');
this.activeTab = '/';
}
} else {
// 如果首页不存在,则跳转到首页并添加
router.push('/');
this.addTab(router.currentRoute.value);
}
}
}
});
2025年08月18日
在当今数字化业务场景中,企业上传至云端的文件种类繁多,从图片、视频、日志、备份,到各种静态资源,如何在阿里云OSS中实现有序分类管理,是使用过程中的高频问题之一。
作为阿里云OSS代理商,我们在实际服务客户时,常会被问到:“OSS能不能像本地文件夹一样给文件分类?”其实,虽然OSS是对象存储,不具备真正的文件系统目录结构,但通过合理设计“对象前缀”,完全可以实现灵活、可控的
2025年08月18日
你的错题本是否记满就落灰?花费时间整理却收效甚微?问题可能出在方法上!今天揭秘学霸圈盛行的“三色标记法”,让错题本真正成为你的提分利器。
核心法则:用红、蓝、绿三色笔精准标记,分类攻克。
2025年08月18日
产品多了,分类(Categories)和标签(Tags)是WordPress管理内容的好帮手。但用不好,反而害了你的独立站SEO和用户体验!
分类 vs 标签: