import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { NButton, NForm, NFormItem, NInput, NInputGroup, NInputGroupLabel, NInputNumber, NSpace, useMessage } from 'naive-ui'; import { lessonPreTrainingAdd, lessonPreTrainingUpdate } from '/src/views/prepare-lessons/api'; export default defineComponent({ name: 'train-update', props: { /** 初始数据 */ item: { type: Object, default: () => ({}) } }, emits: ['close', 'confirm'], setup(props, { emit }) { // 'practice' | 'evaluation' const message = useMessage(); const forms = reactive({ id: null as any, uploading: false, baseMaxScore: 99, type: 'PRACTICE', musicId: '', coursewareKnowledgeDetailId: '', // 章节编号 minScore: null as any, maxScore: null as any, subjectId: '', coverImg: '', practiceSpeed: null as any, // 练习速度 practiceTimes: null as any, // 练习时长 difficulty: 'BEGINNER', // 评测难度 evaluationSpeed: null as any, // 评测速度 evaluationScore: null as any // 评测分数 }); const formsRef = ref(); const onSubmit = async () => { formsRef.value?.validate(async (err: any) => { if (err) { return; } forms.uploading = true; try { const params = { trainingType: forms.type, musicId: forms.musicId, coursewareKnowledgeDetailId: forms.coursewareKnowledgeDetailId, subjectId: forms.subjectId, id: forms.id, coverImg: forms.coverImg, trainingConfigJson: '' }; const configJson: any = {}; if (forms.type === 'PRACTICE') { configJson.practiceChapterBegin = forms.minScore; configJson.practiceChapterEnd = forms.maxScore; configJson.practiceSpeed = forms.practiceSpeed; configJson.trainingTimes = forms.practiceTimes; } else { configJson.evaluateDifficult = forms.difficulty; configJson.evaluateSpeed = forms.evaluationSpeed; configJson.trainingTimes = forms.evaluationScore; } configJson.practiceChapterMax = forms.baseMaxScore; params.trainingConfigJson = configJson; if (forms.id) { await lessonPreTrainingUpdate(params); message.success('修改成功'); } else { await lessonPreTrainingAdd(params); message.success('添加成功'); } emit('close'); emit('confirm'); } catch { // } forms.uploading = false; }); }; onMounted(() => { const item = props.item; if (item.trainId) { forms.id = item.trainId; forms.minScore = item.practiceChapterBegin; forms.maxScore = item.practiceChapterEnd; forms.practiceSpeed = item.practiceSpeed; if (item.trainingType === 'PRACTICE') { forms.practiceTimes = item.trainingTimes; } else { forms.evaluationScore = item.trainingTimes; } forms.difficulty = item.evaluateDifficult || 'BEGINNER'; forms.evaluationSpeed = item.evaluateSpeed; } else { forms.minScore = 1; forms.maxScore = item.practiceChapterMax ? item.practiceChapterMax : 1; } forms.baseMaxScore = item.practiceChapterMax || 99; forms.musicId = item.id; forms.coursewareKnowledgeDetailId = item.coursewareKnowledgeDetailId; forms.subjectId = item.subjectId; forms.coverImg = item.coverImg; }); return () => (
(forms.type = 'PRACTICE')}> 练习 (forms.type = 'EVALUATION')}> 评测 {forms.type === 'PRACTICE' && ( <>
{ forms.maxScore = null; }} clearable />
-
分钟 )} {forms.type === 'EVALUATION' && ( <> (forms.difficulty = 'BEGINNER')}> 入门级 (forms.difficulty = 'ADVANCED')}> 进阶级 (forms.difficulty = 'PERFORMER')}> 大师级 )} emit('close')}> 取消 onSubmit()}> 确认
); } });