提交 9b56dabb authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 529bce0f
...@@ -152,9 +152,9 @@ const logout = async () => { ...@@ -152,9 +152,9 @@ const logout = async () => {
padding: 0; padding: 0;
border-bottom: 0 !important; border-bottom: 0 !important;
} }
.el-sub-menu__icon-arrow { // .el-sub-menu__icon-arrow {
display: none; // display: none;
} // }
} }
.sub-menu-popper { .sub-menu-popper {
border: 0 !important; border: 0 !important;
......
...@@ -74,7 +74,7 @@ const experimentList = $computed(() => { ...@@ -74,7 +74,7 @@ const experimentList = $computed(() => {
: experiments.value : experiments.value
}) })
function handleUploadSuccess(file: any) { function handleUploadSuccess(file: any) {
form.name = file.name form.name = file.name.split('.').shift()
form.size = (file.size / 1024 / 1024).toString() form.size = (file.size / 1024 / 1024).toString()
form.url = file.raw.url form.url = file.raw.url
form.type = file.raw.type form.type = file.raw.type
...@@ -118,6 +118,7 @@ function handleUpdate(params: BookCreateItem) { ...@@ -118,6 +118,7 @@ function handleUpdate(params: BookCreateItem) {
</el-form-item> </el-form-item>
<el-form-item label="实验指导书名称" prop="name"> <el-form-item label="实验指导书名称" prop="name">
<el-input v-model="form.name"></el-input> <el-input v-model="form.name"></el-input>
<p class="form-tips">实验指导书名称自动取值于文件名称,可以进行二次修改。</p>
</el-form-item> </el-form-item>
<el-form-item label="关联实验课程" prop="course_id"> <el-form-item label="关联实验课程" prop="course_id">
<el-select v-model="form.course_id" filterable style="width: 100%" @change="form.experiment_id = ''"> <el-select v-model="form.course_id" filterable style="width: 100%" @change="form.experiment_id = ''">
...@@ -149,3 +150,10 @@ function handleUpdate(params: BookCreateItem) { ...@@ -149,3 +150,10 @@ function handleUpdate(params: BookCreateItem) {
</el-form> </el-form>
</el-dialog> </el-dialog>
</template> </template>
<style lang="scss" scoped>
.form-tips {
font-size: 12px;
color: #999;
}
</style>
...@@ -20,10 +20,14 @@ const genFileClassNames = $computed(() => { ...@@ -20,10 +20,14 @@ const genFileClassNames = $computed(() => {
<div class="list-item-hd"> <div class="list-item-hd">
<div class="icon-file" :class="genFileClassNames"></div> <div class="icon-file" :class="genFileClassNames"></div>
<div class="button-group"> <div class="button-group">
<el-tooltip effect="dark" content="查看">
<div class="button icon-view" v-permission="'v1-teacher-book-view'"> <div class="button icon-view" v-permission="'v1-teacher-book-view'">
<router-link :to="`/admin/lab/book/${data.id}`" target="_blank"></router-link> <router-link :to="`/admin/lab/book/${data.id}`" target="_blank"></router-link>
</div> </div>
</el-tooltip>
<el-tooltip effect="dark" content="编辑">
<div class="button icon-edit" @click="$emit('clickEdit', data)" v-permission="'v1-teacher-book-update'"></div> <div class="button icon-edit" @click="$emit('clickEdit', data)" v-permission="'v1-teacher-book-update'"></div>
</el-tooltip>
</div> </div>
</div> </div>
<div class="list-item-title"> <div class="list-item-title">
......
...@@ -55,9 +55,9 @@ const score = $computed<number>(() => { ...@@ -55,9 +55,9 @@ const score = $computed<number>(() => {
return parseFloat(result.toFixed(2)) return parseFloat(result.toFixed(2))
}) })
const rules = ref<FormRules>({ const rules = ref<FormRules>({
operate: [{ required: true, message: '请输入0~100数字' }], operate: [{ required: true, message: '请输入1~100数字' }],
result: [{ required: true, message: '请输入0~100数字' }], result: [{ required: true, message: '请输入1~100数字' }],
file: [{ required: true, message: '请输入0~100数字' }] file: [{ required: true, message: '请输入1~100数字' }]
}) })
// 提交 // 提交
...@@ -114,13 +114,13 @@ function handleSubmit() { ...@@ -114,13 +114,13 @@ function handleSubmit() {
style="padding: 5px 0 20px" style="padding: 5px 0 20px"
> >
<el-form-item label="实验操作" prop="operate"> <el-form-item label="实验操作" prop="operate">
<el-input-number :min="0" :max="100" :controls="false" step-strictly v-model="form.operate" /> <el-input-number :min="1" :max="100" :controls="false" step-strictly v-model="form.operate" />
</el-form-item> </el-form-item>
<el-form-item label="实验结果" prop="result"> <el-form-item label="实验结果" prop="result">
<el-input-number :min="0" :max="100" :controls="false" step-strictly v-model="form.result" /> <el-input-number :min="1" :max="100" :controls="false" step-strictly v-model="form.result" />
</el-form-item> </el-form-item>
<el-form-item label="实验报告" prop="file"> <el-form-item label="实验报告" prop="file">
<el-input-number :min="0" :max="100" :controls="false" step-strictly v-model="form.file" /> <el-input-number :min="1" :max="100" :controls="false" step-strictly v-model="form.file" />
</el-form-item> </el-form-item>
<el-form-item label="综合实验成绩"> <el-form-item label="综合实验成绩">
<el-input-number :min="0" :max="100" :controls="false" disabled v-model="score" /> <el-input-number :min="0" :max="100" :controls="false" disabled v-model="score" />
......
...@@ -64,7 +64,7 @@ const title = $computed(() => { ...@@ -64,7 +64,7 @@ const title = $computed(() => {
}) })
function handleUploadSuccess(uploadInfo: any) { function handleUploadSuccess(uploadInfo: any) {
form.name = uploadInfo.file.name form.name = uploadInfo.file.name.split('.').shift()
form.source_id = uploadInfo.videoId form.source_id = uploadInfo.videoId
} }
// 提交 // 提交
...@@ -101,6 +101,7 @@ function handleUpdate(params: VideoCreateItem) { ...@@ -101,6 +101,7 @@ function handleUpdate(params: VideoCreateItem) {
</el-form-item> </el-form-item>
<el-form-item label="实验操作视频名称" prop="name"> <el-form-item label="实验操作视频名称" prop="name">
<el-input v-model="form.name"></el-input> <el-input v-model="form.name"></el-input>
<p class="form-tips">操作视频名称自动取值于文件名称,可以进行二次修改。</p>
</el-form-item> </el-form-item>
<el-form-item label="关联实验课程" prop="course_id"> <el-form-item label="关联实验课程" prop="course_id">
<el-select v-model="form.course_id" filterable style="width: 100%" @change="form.experiment_id = ''"> <el-select v-model="form.course_id" filterable style="width: 100%" @change="form.experiment_id = ''">
...@@ -132,3 +133,10 @@ function handleUpdate(params: VideoCreateItem) { ...@@ -132,3 +133,10 @@ function handleUpdate(params: VideoCreateItem) {
</el-form> </el-form>
</el-dialog> </el-dialog>
</template> </template>
<style lang="scss" scoped>
.form-tips {
font-size: 12px;
color: #999;
}
</style>
<script setup lang="ts"> <script setup lang="ts">
import type { CourseType, ExperimentRecord } from '../types' import type { CourseType, ExperimentRecord } from '../types'
import { HomeFilled } from '@element-plus/icons-vue' import { HomeFilled } from '@element-plus/icons-vue'
import { ElMessageBox, ElMessage } from 'element-plus'
import { useGetCourseList } from '../composables/useGetCourseList' import { useGetCourseList } from '../composables/useGetCourseList'
import { upload } from '@/utils/upload' import { upload } from '@/utils/upload'
import { getExperimentRecord, uploadExperimentPicture, submitExperimentRecord } from '../api' import { getExperimentRecord, uploadExperimentPicture, submitExperimentRecord } from '../api'
...@@ -45,7 +46,11 @@ const LAB_URL = import.meta.env.VITE_LAB_URL ...@@ -45,7 +46,11 @@ const LAB_URL = import.meta.env.VITE_LAB_URL
let iframeKey = $ref(Date.now()) let iframeKey = $ref(Date.now())
// 返回首页 // 返回首页
function handleBackHome() { function handleBackHome() {
ElMessageBox.confirm('此操作将会强制返回到实验室首页,您当前的操作内容有可能丢失,确定返回首页吗?', '提示').then(
() => {
iframeKey = Date.now() iframeKey = Date.now()
}
)
} }
const reportDialogVisible = $ref(false) const reportDialogVisible = $ref(false)
...@@ -63,6 +68,11 @@ let screenshotLoading = $ref(false) ...@@ -63,6 +68,11 @@ let screenshotLoading = $ref(false)
let screenshotTimestamp = $ref(0) let screenshotTimestamp = $ref(0)
// 截图 // 截图
function handleCapture() { function handleCapture() {
const pictures = detail?.pictures || []
if (pictures.length >= 20) {
ElMessage.error('已达到单个实验最大截图数量,无法截图,请在过程与结果功能中删除多余截图之后再进行操作。')
return
}
const iframeWindow = iframeRef?.contentWindow const iframeWindow = iframeRef?.contentWindow
if (!iframeWindow) return if (!iframeWindow) return
screenshotTimestamp = Date.now() screenshotTimestamp = Date.now()
...@@ -97,9 +107,14 @@ function uploadPicture(url: string) { ...@@ -97,9 +107,14 @@ function uploadPicture(url: string) {
} }
// 提交实验 // 提交实验
function handleSubmit() { function handleSubmit() {
ElMessageBox.confirm('此操作将会提交该实验,状态会变为已提交,您将不能再操作该实验,确定提交实验吗?', '提示').then(
() => {
submitExperimentRecord({ experiment_id: form.experiment_id }).then(() => { submitExperimentRecord({ experiment_id: form.experiment_id }).then(() => {
ElMessage({ message: '提交成功', type: 'success' })
fetchInfo() fetchInfo()
}) })
}
)
} }
</script> </script>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论