1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
| import type { EvalModeItem, EvalModePageQuery } from './types';
|
| function delay<T>(data: T, ms = 180): Promise<T> {
| return new Promise((resolve) => setTimeout(() => resolve(data), ms));
| }
|
| const store: EvalModeItem[] = [
| {
| id: 'tms_eval_quiz',
| modeCode: 'quiz',
| modeName: '提问',
| needPaper: '0',
| needQuiz: '1',
| needPractice: '0',
| enabled: '1',
| remark: '现场提问考核',
| },
| {
| id: 'tms_eval_practice',
| modeCode: 'practice',
| modeName: '现场操作',
| needPaper: '0',
| needQuiz: '0',
| needPractice: '1',
| enabled: '1',
| remark: '实操评分',
| },
| {
| id: 'tms_eval_exam',
| modeCode: 'exam',
| modeName: '在线考试',
| needPaper: '1',
| needQuiz: '0',
| needPractice: '0',
| enabled: '1',
| remark: '发布任务时生成在线考试待考行',
| },
| {
| id: 'tms_eval_none',
| modeCode: 'none',
| modeName: '无需考核',
| needPaper: '0',
| needQuiz: '0',
| needPractice: '0',
| enabled: '1',
| remark: '',
| },
| ];
|
| export function mockQueryEvalModes(params: EvalModePageQuery = {}) {
| const { currentPage = 1, pageSize = 20, keyword = '', enabled } = params;
| let list = [...store];
| if (enabled) list = list.filter((x) => x.enabled === enabled);
| if (keyword) {
| const k = keyword.trim().toLowerCase();
| list = list.filter(
| (x) => x.modeCode.toLowerCase().includes(k) || x.modeName.toLowerCase().includes(k),
| );
| }
| const start = (currentPage - 1) * pageSize;
| return delay({
| list: list.slice(start, start + pageSize),
| pagination: { total: list.length, currentPage, pageSize },
| });
| }
|
| export async function mockGetEvalMode(id: string) {
| await delay(null);
| const row = store.find((x) => x.id === id);
| if (!row) throw new Error('考核方式不存在');
| return { ...row };
| }
|
| export async function mockSaveEvalMode(data: Partial<EvalModeItem> & { id?: string }) {
| await delay(null);
| if (data.id) {
| const row = store.find((x) => x.id === data.id);
| if (!row) throw new Error('考核方式不存在');
| if (data.modeCode && data.modeCode !== row.modeCode) {
| if (store.some((x) => x.modeCode === data.modeCode && x.id !== data.id)) {
| throw new Error('方式编码已存在');
| }
| }
| Object.assign(row, data);
| return row;
| }
| if (!data.modeCode) throw new Error('请填写方式编码');
| if (store.some((x) => x.modeCode === data.modeCode)) throw new Error('方式编码已存在');
| const row: EvalModeItem = {
| id: `em_${Date.now()}`,
| modeCode: data.modeCode,
| modeName: data.modeName || data.modeCode,
| needPaper: (data.needPaper as any) || '0',
| needQuiz: (data.needQuiz as any) || '0',
| needPractice: (data.needPractice as any) || '0',
| enabled: (data.enabled as any) || '1',
| remark: data.remark || '',
| };
| store.push(row);
| return row;
| }
|
| export async function mockSetEvalModeEnabled(id: string, enabled: '0' | '1') {
| await delay(null);
| const row = store.find((x) => x.id === id);
| if (!row) throw new Error('考核方式不存在');
| row.enabled = enabled;
| return row;
| }
|
| export async function mockDeleteEvalMode(id: string) {
| await delay(null);
| const idx = store.findIndex((x) => x.id === id);
| if (idx < 0) throw new Error('考核方式不存在');
| store.splice(idx, 1);
| return true;
| }
|
|