Files
OJ2/apps/web/src/oj/problem/composables/draftKey.ts
T
xuyueandClaude Opus 5.5 1b703d13ae
Deploy / deploy (push) Canceled after 0s
style(专题): 「题单」改名「专题」,顶栏、列表、详情、后台、成就说法统一
只改界面文字和注释:网址 /problemset、接口、表名、字段名都不动,老链接照常能打开。
设计稿页名「题单重设计」和已执行的迁移文件保留原样。
线上 3 个成就(题单收藏家 / 入门 / 通关)已同步改名。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 00:12:18 +08:00

26 lines
1.3 KiB
TypeScript

import { useCodeStore } from 'oj/store/code'
import { useProblemStore } from 'oj/store/problem'
/**
* 这道题、这门语言的本地代码草稿存在哪个键下。编辑器(存、读草稿)和「重置代码」
* (删草稿)都用这一份 —— 原来键在编辑器里拼、再作为 prop 传给工具栏,手机上「重置」
* 挪进页签行的「⋯」之后就够不着了,再拼一份迟早和编辑器那份对不上。
*
* 专题入口单独一份:原来题库和专题共用 `problem_题号_contest_null_语言`,加入专题之前
* 在题库里写对的代码,一进专题就摆在编辑器里(设计文档第 11 节 4)。
* **键的最后一段必须是语言**,编辑器换语言时靠它判断草稿是不是这门语言的。
*/
export function useDraftKey() {
const route = useRoute()
const codeStore = useCodeStore()
const problemStore = useProblemStore()
return computed(() => {
const id = problemStore.problem?._id
if (!id) return ''
const language = codeStore.code.language
const problemSetId = route.params.problemSetId
if (problemSetId) return `problem_${id}_problemset_${problemSetId}_lang_${language}`
return `problem_${id}_contest_${route.params.contestID || null}_lang_${language}`
})
}