chore(清理): 删掉并行试跑、搬库、Python3 别名、旧链接这些过渡期的兼容写法
Deploy / deploy (push) Canceled after 0s

- 部署:JUDGE_STATE_DIR 不再强制设;删掉搬库脚本和只为搬库存在的自检、提醒
- 语言:Python3 / Python2 别名表删掉,normalizeLanguage 改名 parseLanguage
- 旧链接:后台题单详情的跳转、用户列表 -last_login 的转换
- 旧页面:布置作业必须带 language(null = 没选);不再清旧版出题页草稿

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-26 14:15:04 +08:00
1 parent 9e074f3ab8
commit 8427475337
23 files changed
+47 -386

No files matched your search

+1 -3
View File
@@ -233,14 +233,12 @@ export function getUserList(
className = '',
) {
return api.get<AdminUserList>('admin/users', {
// "-last_login" 是旧接口传下来的取值(路由 query 里可能还存着),改叫 "-lastLogin";
// "-online" 是新增的,原样透传
params: {
offset,
limit,
keyword,
type,
orderBy: orderBy === '-last_login' ? '-lastLogin' : orderBy,
orderBy,
className: className || undefined,
},
})
-2
View File
@@ -521,8 +521,6 @@ function clearDraft() {
}
function loadDraft() {
// 旧版出题页的草稿(另一个 key、另一种形状)不认了
localStorage.removeItem(STORAGE_KEY.ADMIN_PROBLEM)
const saved = draft.value
// 草稿是本机存的,形状不对(旧版本、被别的页面写坏)就当没有,别让整页起不来
if (saved && typeof saved.form === 'object' && Array.isArray(saved.rows)) {
+1 -1
View File
@@ -67,7 +67,7 @@ const adminOptions = [
const sortOptions = [
{ label: '最近建号', value: '' },
{ label: '按用户名', value: 'username' },
{ label: '最近登录', value: '-last_login' },
{ label: '最近登录', value: '-lastLogin' },
{ label: '在线优先', value: '-online' },
]
const [create, toggleCreate] = useToggle(false)
+2 -5
View File
@@ -1,4 +1,4 @@
import { normalizeLanguage } from '@oj2/contract'
import { parseLanguage } from '@oj2/contract'
import { defineStore } from 'pinia'
import { STORAGE_KEY } from 'utils/constants'
import storage from 'utils/storage'
@@ -9,7 +9,7 @@ import type { Code, LANGUAGE } from 'utils/types'
* 管理全局的代码、输入、输出状态
*/
function savedCodeLanguage() {
const saved = normalizeLanguage(storage.get(STORAGE_KEY.LANGUAGE))
const saved = parseLanguage(storage.get(STORAGE_KEY.LANGUAGE))
return saved && saved !== 'Flowchart' ? saved : null
}
@@ -17,9 +17,6 @@ export const useCodeStore = defineStore('code', () => {
// ==================== 状态 ====================
const code = reactive<Code>({
value: '',
// 过一道 normalizeLanguage:上线那一刻学生浏览器的 localStorage 里存的还是
// 旧值 Python3,直接拿来用会被后端的契约挡掉(而且报错看不出是这个原因)
// 以前的版本会把 Flowchart 也记成语言偏好,那种老值在这里一并不认
language: savedCodeLanguage() ?? 'Python',
})
-9
View File
@@ -330,15 +330,6 @@ export const admins: RouteRecordRaw = {
props: true,
meta: { requiresTeacherAdmin: true },
},
// 原来的「详情」页(题目 / 奖章 / 进度三个页签)并进了一屏编辑,老链接转过去
{
path: 'problemset/:problemSetId',
name: 'admin problemset detail',
redirect: (to) => ({
name: 'admin problemset edit',
params: { problemSetId: to.params.problemSetId },
}),
},
{
path: 'ai/reports',
name: 'admin ai reports',
-1
View File
@@ -152,7 +152,6 @@ export const STORAGE_KEY = {
ACCESS_TOKEN: 'accessToken',
REFRESH_TOKEN: 'refreshToken',
LANGUAGE: 'problemLanguage',
ADMIN_PROBLEM: 'adminProblem',
ADMIN_SQL_PROBLEM: 'adminSqlProblem',
ADMIN_CODE_PROBLEM: 'adminCodeProblem',
ADMIN_PROBLEM_TAGS: 'adminProblemTags',