提交 3c7c1184 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 f90a57b3
...@@ -107,7 +107,12 @@ function handleUpdate(params: BookCreateItem) { ...@@ -107,7 +107,12 @@ function handleUpdate(params: BookCreateItem) {
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')"> <el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-form ref="formRef" :model="form" :rules="rules" label-width="124px"> <el-form ref="formRef" :model="form" :rules="rules" label-width="124px">
<el-form-item label="实验指导书文件" prop="files"> <el-form-item label="实验指导书文件" prop="files">
<AppUpload v-model="form.files" :limit="1" @success="handleUploadSuccess"> <AppUpload
v-model="form.files"
:limit="1"
accept=".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.pdf,application/pdf,.ppt,.pptx,application/vnd.ms-powerpoint,.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
@success="handleUploadSuccess"
>
<template #tip>实验指导书文件支持格式包含:doc docx xls xlsx pdf ppt pptx,大小不超过50M</template> <template #tip>实验指导书文件支持格式包含:doc docx xls xlsx pdf ppt pptx,大小不超过50M</template>
</AppUpload> </AppUpload>
</el-form-item> </el-form-item>
......
...@@ -10,10 +10,10 @@ defineProps<Props>() ...@@ -10,10 +10,10 @@ defineProps<Props>()
<div class="list-item-hd"> <div class="list-item-hd">
<div class="icon-file"></div> <div class="icon-file"></div>
<div class="button-group"> <div class="button-group">
<div class="button icon-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>
<div class="button icon-edit" @click="$emit('clickEdit', data)"></div> <div class="button icon-edit" @click="$emit('clickEdit', data)" v-permission="'v1-teacher-book-update'"></div>
</div> </div>
</div> </div>
<div class="list-item-title"> <div class="list-item-title">
......
...@@ -59,7 +59,9 @@ function onUpdateSuccess() { ...@@ -59,7 +59,9 @@ function onUpdateSuccess() {
<AppCard title="实验指导书管理"> <AppCard title="实验指导书管理">
<AppList v-bind="listOptions" ref="appList"> <AppList v-bind="listOptions" ref="appList">
<template #header-buttons> <template #header-buttons>
<el-button type="primary" :icon="CirclePlus" @click="handleAdd">新增实验指导书</el-button> <el-button type="primary" :icon="CirclePlus" @click="handleAdd" v-permission="'v1-teacher-book-create'"
>新增实验指导书</el-button
>
</template> </template>
<template #body="{ data }"> <template #body="{ data }">
<div class="list-card" v-if="data.length"> <div class="list-card" v-if="data.length">
......
...@@ -90,7 +90,13 @@ function handleSubmit() { ...@@ -90,7 +90,13 @@ function handleSubmit() {
<div class="tips" v-if="!hasMore">没有更多了</div> <div class="tips" v-if="!hasMore">没有更多了</div>
</div> </div>
<el-form ref="formRef" :rules="rules" :model="form" style="margin-top: 40px"> <el-form
ref="formRef"
:rules="rules"
:model="form"
style="margin-top: 40px"
v-permission="'v1-teacher-discussion-comment'"
>
<el-form-item prop="content"> <el-form-item prop="content">
<el-input type="textarea" v-model="form.content" :autosize="{ minRows: 4, maxRows: 6 }" /> <el-input type="textarea" v-model="form.content" :autosize="{ minRows: 4, maxRows: 6 }" />
</el-form-item> </el-form-item>
......
...@@ -94,7 +94,9 @@ function onUpdateSuccess() { ...@@ -94,7 +94,9 @@ function onUpdateSuccess() {
<span :class="{ 'is-success': row.is_reply === '1' }">{{ row.is_reply_name }}</span> <span :class="{ 'is-success': row.is_reply === '1' }">{{ row.is_reply_name }}</span>
</template> </template>
<template #table-x="{ row }"> <template #table-x="{ row }">
<el-button text type="primary" @click="handleComment(row)">评论</el-button> <el-button text type="primary" @click="handleComment(row)" v-permission="'v1-teacher-discussion-view'"
>评论</el-button
>
</template> </template>
</AppList> </AppList>
</AppCard> </AppCard>
......
...@@ -79,7 +79,7 @@ const listOptions = $computed(() => { ...@@ -79,7 +79,7 @@ const listOptions = $computed(() => {
const { files, open } = useFileDialog() const { files, open } = useFileDialog()
function handleImport() { function handleImport() {
open({ open({
accept: '.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel', accept: '.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel',
multiple: false multiple: false
}) })
} }
...@@ -108,7 +108,9 @@ function onUpdateSuccess() { ...@@ -108,7 +108,9 @@ function onUpdateSuccess() {
<AppList v-bind="listOptions" ref="appList"> <AppList v-bind="listOptions" ref="appList">
<template #header-buttons> <template #header-buttons>
<el-row justify="space-between"> <el-row justify="space-between">
<el-button type="primary" round :icon="Upload" @click="handleImport">批量导入</el-button> <el-button type="primary" round :icon="Upload" @click="handleImport" v-permission="'v1-teacher-record-upload'"
>批量导入</el-button
>
<a :href="LAB_URL" target="_blank"> <a :href="LAB_URL" target="_blank">
<el-button type="primary" round :icon="Promotion">进入实验室</el-button> <el-button type="primary" round :icon="Promotion">进入实验室</el-button>
</a> </a>
...@@ -121,7 +123,14 @@ function onUpdateSuccess() { ...@@ -121,7 +123,14 @@ function onUpdateSuccess() {
<span :class="{ 'is-info': row.score !== '--' }">{{ row.score }}</span> <span :class="{ 'is-info': row.score !== '--' }">{{ row.score }}</span>
</template> </template>
<template #table-x="{ row }"> <template #table-x="{ row }">
<el-button text type="primary" v-if="row.status === 1" @click="handleScore(row)">打分</el-button> <el-button
text
type="primary"
v-if="row.status === 1"
@click="handleScore(row)"
v-permission="'v1-teacher-record-check'"
>打分</el-button
>
</template> </template>
</AppList> </AppList>
</AppCard> </AppCard>
......
...@@ -17,10 +17,17 @@ defineProps<Props>() ...@@ -17,10 +17,17 @@ defineProps<Props>()
<div class="list-item-main"> <div class="list-item-main">
<p>{{ data.name }}</p> <p>{{ data.name }}</p>
<div class="buttons"> <div class="buttons">
<router-link :to="`/admin/lab/video/${data.id}`" target="_blank"> <router-link :to="`/admin/lab/video/${data.id}`" target="_blank" v-permission="'v1-teacher-video-view'">
<el-button type="primary" auto-insert-space>查看</el-button> <el-button type="primary" auto-insert-space>查看</el-button>
</router-link> </router-link>
<el-button plain auto-insert-space @click="$emit('clickEdit', data)" style="margin-left: 10px">编辑</el-button> <el-button
plain
auto-insert-space
@click="$emit('clickEdit', data)"
style="margin-left: 10px"
v-permission="'v1-teacher-video-update'"
>编辑</el-button
>
</div> </div>
</div> </div>
</div> </div>
...@@ -35,7 +42,7 @@ defineProps<Props>() ...@@ -35,7 +42,7 @@ defineProps<Props>()
overflow: hidden; overflow: hidden;
&:hover { &:hover {
overflow: unset; overflow: unset;
transform: scale(1.2); transform: scale(1.1);
z-index: 1; z-index: 1;
.el-icon { .el-icon {
display: block; display: block;
......
...@@ -59,7 +59,9 @@ function onUpdateSuccess() { ...@@ -59,7 +59,9 @@ function onUpdateSuccess() {
<AppCard title="实验操作视频管理"> <AppCard title="实验操作视频管理">
<AppList v-bind="listOptions" ref="appList"> <AppList v-bind="listOptions" ref="appList">
<template #header-buttons> <template #header-buttons>
<el-button type="primary" :icon="CirclePlus" @click="handleAdd">新增操作视频</el-button> <el-button type="primary" :icon="CirclePlus" @click="handleAdd" v-permission="'v1-teacher-video-create'"
>新增操作视频</el-button
>
</template> </template>
<template #body="{ data }"> <template #body="{ data }">
<div class="list-card" v-if="data.length"> <div class="list-card" v-if="data.length">
......
...@@ -33,7 +33,7 @@ const listOptions = { ...@@ -33,7 +33,7 @@ const listOptions = {
{ label: '实验总成绩', prop: 'score' }, { label: '实验总成绩', prop: 'score' },
{ label: '更新人', prop: 'updated_operator_name' }, { label: '更新人', prop: 'updated_operator_name' },
{ label: '更新时间', prop: 'updated_time' }, { label: '更新时间', prop: 'updated_time' },
{ label: '操作', slots: 'table-x', width: 300 } { label: '操作', slots: 'table-x', width: 200 }
] ]
} }
...@@ -69,9 +69,9 @@ function onUpdateSuccess() { ...@@ -69,9 +69,9 @@ function onUpdateSuccess() {
<el-button type="primary" round v-permission="'v1-backend-experiment-view'"> <el-button type="primary" round v-permission="'v1-backend-experiment-view'">
<router-link :to="`/admin/system/experiment/${row.id}`" target="_blank">查看</router-link> <router-link :to="`/admin/system/experiment/${row.id}`" target="_blank">查看</router-link>
</el-button> </el-button>
<el-button type="primary" round v-permission="'v1-backend-experiment-view'"> <!-- <el-button type="primary" round v-permission="'v1-backend-experiment-view'">
<router-link :to="`/admin/system/experiment/${row.id}`" target="_blank">关联班级与分组</router-link> <router-link :to="`/admin/system/experiment/${row.id}`" target="_blank">关联班级与分组</router-link>
</el-button> </el-button> -->
<el-button type="primary" round @click="handleUpdate(row)" v-permission="'v1-backend-experiment-update'" <el-button type="primary" round @click="handleUpdate(row)" v-permission="'v1-backend-experiment-update'"
>编辑</el-button >编辑</el-button
> >
......
...@@ -22,7 +22,12 @@ function handleChange(id: string, type: number) { ...@@ -22,7 +22,12 @@ function handleChange(id: string, type: number) {
</script> </script>
<template> <template>
<div class="bg"></div> <div class="bg">
<router-link to="/admin/lab/book" class="link1"></router-link>
<router-link to="/admin/lab/record" class="link2"></router-link>
<router-link to="/admin/lab/video" class="link3"></router-link>
<router-link to="/" class="link4"></router-link>
</div>
<div class="select-group"> <div class="select-group">
<el-select size="large" placeholder="实验指导书" @change="handleChange($event, 1)"> <el-select size="large" placeholder="实验指导书" @change="handleChange($event, 1)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
...@@ -44,10 +49,39 @@ function handleChange(id: string, type: number) { ...@@ -44,10 +49,39 @@ function handleChange(id: string, type: number) {
<style lang="scss" scoped> <style lang="scss" scoped>
.bg { .bg {
margin: 20px 0; position: relative;
background: url(@/assets/images/home_bg.png) no-repeat center center; margin: 20px auto;
background: url(@/assets/images/home_teacher_bg.png) no-repeat center center;
background-size: contain; background-size: contain;
height: 636px; width: 1308px;
height: 642px;
.link1 {
position: absolute;
bottom: 100px;
width: 400px;
height: 300px;
}
.link2 {
position: absolute;
left: 450px;
bottom: 50px;
width: 310px;
height: 250px;
}
.link3 {
position: absolute;
top: 0;
right: 80px;
width: 400px;
height: 300px;
}
.link4 {
position: absolute;
bottom: 0;
right: 0;
width: 400px;
height: 340px;
}
} }
.select-group { .select-group {
position: fixed; position: fixed;
......
...@@ -20,7 +20,11 @@ function handleChange(id: string, type: number) { ...@@ -20,7 +20,11 @@ function handleChange(id: string, type: number) {
</script> </script>
<template> <template>
<div class="bg"></div> <div class="bg">
<router-link to="/student/lab" class="link1"></router-link>
<router-link to="/student/lab" class="link2"></router-link>
<router-link to="/student/lab" class="link3"></router-link>
</div>
<div class="select-group"> <div class="select-group">
<el-select size="large" placeholder="我的实验课程" @change="handleChange($event, 1)"> <el-select size="large" placeholder="我的实验课程" @change="handleChange($event, 1)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
...@@ -39,10 +43,32 @@ function handleChange(id: string, type: number) { ...@@ -39,10 +43,32 @@ function handleChange(id: string, type: number) {
<style lang="scss" scoped> <style lang="scss" scoped>
.bg { .bg {
margin: 20px 0; position: relative;
background: url(@/assets/images/home_bg.png) no-repeat center center; margin: 20px auto;
background: url(@/assets/images/home_student_bg.png) no-repeat center center;
background-size: contain; background-size: contain;
height: 636px; width: 1215px;
height: 577px;
.link1 {
position: absolute;
top: 160px;
width: 250px;
height: 250px;
}
.link2 {
position: absolute;
left: 400px;
bottom: 0;
width: 300px;
height: 250px;
}
.link3 {
position: absolute;
top: 200px;
right: 0;
width: 300px;
height: 300px;
}
} }
.select-group { .select-group {
position: fixed; position: fixed;
......
...@@ -58,7 +58,7 @@ useInfiniteScroll( ...@@ -58,7 +58,7 @@ useInfiniteScroll(
<template> <template>
<div class="discuss"> <div class="discuss">
<el-radio-group v-model="params.tag" @change="fetchInfo(true)"> <el-radio-group size="small" v-model="params.tag" @change="fetchInfo(true)">
<el-radio :label="1">我发起的</el-radio> <el-radio :label="1">我发起的</el-radio>
<el-radio :label="2">我回复的</el-radio> <el-radio :label="2">我回复的</el-radio>
<el-radio :label="3">我的小组</el-radio> <el-radio :label="3">我的小组</el-radio>
......
...@@ -53,7 +53,11 @@ const update = () => { ...@@ -53,7 +53,11 @@ const update = () => {
> >
<el-form ref="formRef" :model="form" :rules="rules"> <el-form ref="formRef" :model="form" :rules="rules">
<el-form-item label="实验报告文件" prop="files"> <el-form-item label="实验报告文件" prop="files">
<AppUpload v-model="form.files" :limit="1"> <AppUpload
v-model="form.files"
:limit="1"
accept=".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.pdf,application/pdf,.ppt,.pptx,application/vnd.ms-powerpoint"
>
<template #tip>实验报告文件只能上传一个,支持格式包含:doc docx pdf ppt pptx,大小不超过50M</template> <template #tip>实验报告文件只能上传一个,支持格式包含:doc docx pdf ppt pptx,大小不超过50M</template>
</AppUpload> </AppUpload>
</el-form-item> </el-form-item>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论