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

bug fixes

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