优化: 前端扫描文案 i18n + parseStack 抽公共 + alert/confirm 换组件
- 扫描/目录状态文案走 $t(Projects/ProjectDetail,zh-CN+en 同步) - parseStack 抽公共到 src/utils/project.ts(删两份本地实现) - 8 处原生 alert/confirm 全换(confirm→ConfirmDialog / alert→Arco Message),控制流语义不变 Sprint 20 审查 ⑥⑦⑧。vue-tsc 0 error,验证 safe 0 issue
This commit is contained in:
20
src/utils/project.ts
Normal file
20
src/utils/project.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
//! 项目相关纯工具函数(无副作用、无依赖,便于跨视图复用)
|
||||
//!
|
||||
//! parseStack 此前在 Projects.vue 与 ProjectDetail.vue 各有一份重复实现,
|
||||
//! 现抽到此处统一维护。
|
||||
|
||||
/**
|
||||
* 解析技术栈 JSON 数组字符串(防崩)。
|
||||
*
|
||||
* 后端将技术栈以 `JSON.stringify(["vue","rust"])` 形式存于 project.stack 字段;
|
||||
* 解析失败或非数组时返回空数组,避免渲染崩溃。
|
||||
*/
|
||||
export function parseStack(stack: string | null | undefined): string[] {
|
||||
if (!stack) return []
|
||||
try {
|
||||
const arr = JSON.parse(stack)
|
||||
return Array.isArray(arr) ? arr : []
|
||||
} catch {
|
||||
return []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user