From 80889e7f32480ae76896f3bd042baa82a0fc9e9e Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 14 十一月 2024 11:39:07 +0800 Subject: [PATCH] 班级成绩图表分析 --- src/views/exam/question/edit/audio.vue | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/views/exam/question/edit/audio.vue b/src/views/exam/question/edit/audio.vue index 7f88df7..f244f47 100644 --- a/src/views/exam/question/edit/audio.vue +++ b/src/views/exam/question/edit/audio.vue @@ -1,21 +1,23 @@ <template> <div class="app-container"> <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> - <el-form-item label="瀛︾锛�" prop="subjectId" required> + <el-form-item label="瀛︾锛�" prop="subjectId"> <el-select v-model="form.subjectId" placeholder="瀛︾"> <el-option v-for="item in subjects" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> - <el-form-item label="棰樺共锛�" prop="title" required> + <el-form-item label="棰樺共锛�" prop="title"> <el-input v-model="form.title" @focus="inputClick(form, 'title')" /> </el-form-item> - <el-form-item label="璇煶锛�" prop="audioFile" required> + <el-form-item label="璇煶锛�" prop="audioFile"> <el-upload v-model="form.audioFile" :action="uploadUrl" :limit="1" accept="audio/*" :on-success="uploadSuccess" - :file-list="audioList"> + :on-remove="handleRemove" :file-list="audioList"> <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + <el-button v-if="form.audioFile" size="small" type="primary" @click.stop="audioPlay(form.audioFile)">{{ + audioInstance ? '鍋滄' : '鎾斁' }}</el-button> </el-upload> </el-form-item> - <el-form-item label="閫夐」锛�" required> + <el-form-item label="閫夐」锛�"> <el-form-item :label="item.prefix" :key="item.prefix" v-for="(item, index) in form.items" label-width="50px" class="question-item-label"> <el-input v-model="item.prefix" style="width:50px;" /> @@ -24,13 +26,13 @@ @click="questionItemRemove(index)"></el-button> </el-form-item> </el-form-item> - <el-form-item label="瑙f瀽锛�" prop="analyze" required> + <el-form-item label="瑙f瀽锛�" prop="analyze"> <el-input v-model="form.analyze" @focus="inputClick(form, 'analyze')" /> </el-form-item> - <el-form-item label="闅惧害锛�" required> + <el-form-item label="闅惧害锛�"> <el-rate v-model="form.difficult" class="question-item-rate"></el-rate> </el-form-item> - <el-form-item label="姝g‘绛旀锛�" prop="correct" required> + <el-form-item label="姝g‘绛旀锛�" prop="correct"> <el-radio-group v-model="form.correct"> <el-radio v-for="item in form.items" :key="item.prefix" :label="item.prefix">{{ item.prefix }}</el-radio> </el-radio-group> @@ -125,7 +127,8 @@ dialog: false, question: null, loading: false - } + }, + audioInstance: null } }, created() { @@ -144,6 +147,18 @@ } }, methods: { + handleRemove() { + this.form.audioFile = '' + }, + audioPlay(url) { + if (this.audioInstance) { + this.audioInstance.pause(); + this.audioInstance = null; + } else { + this.audioInstance = new Audio('/api/files/' + url); + this.audioInstance.play(); + } + }, uploadSuccess(response) { this.form.audioFile = response.data.url; this.form.originalFile = response.data.name; -- Gitblit v1.8.0