Commit ed6401bd authored by 杨梦雪's avatar 杨梦雪

查看作业-在线预览

parent 2ed5f13e
...@@ -181,12 +181,17 @@ ...@@ -181,12 +181,17 @@
> div { > div {
width: 100%; width: 100%;
.el-image { // .home_icon {
width: 30px; // width: 30px;
height: 30px; // height: 30px;
display: block; // display: block;
margin: 0 auto; // margin: 0 auto;
.el-image{
width: 30px;
height: 30px;
display: block;
margin: 0 auto;
img { img {
width: auto; width: auto;
height: auto; height: auto;
...@@ -204,7 +209,7 @@ ...@@ -204,7 +209,7 @@
} }
.item_remove { .item_remove {
width: 40px; // width: 40px;
font-size: 12px; font-size: 12px;
color: #999999; color: #999999;
font-weight: bold; font-weight: bold;
......
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
// export const SERVER_WS_URL = "wss://123.56.237.167:20202"; // websocket // export const SERVER_WS_URL = "wss://123.56.237.167:20202"; // websocket
// 正式 // 正式
export const SERVER_URL = 'https://api1.testgate.cn' // 正式环境 // export const SERVER_URL = 'https://api1.testgate.cn' // 正式环境
export const DEVELOPMENT_SERVER_URL = 'https://api1.testgate.cn' // 开发环境 // export const DEVELOPMENT_SERVER_URL = 'https://api1.testgate.cn' // 开发环境
export const SERVER_WS_URL = 'wss://api1.testgate.cn' // websocket // export const SERVER_WS_URL = 'wss://api1.testgate.cn' // websocket
// 线上测试 // 线上测试
// export const SERVER_URL = "http://api.campcenter.cn/"; // 正式环境 export const SERVER_URL = "http://api.campcenter.cn/"; // 正式环境
// export const DEVELOPMENT_SERVER_URL = "http://api.campcenter.cn/"; //开发环境 export const DEVELOPMENT_SERVER_URL = "http://api.campcenter.cn/"; //开发环境
// export const SERVER_WS_URL = "ws://api.campcenter.cn"; // websocket export const SERVER_WS_URL = "ws://api.campcenter.cn"; // websocket
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
<div class="homework_name flex"> <div class="homework_name flex">
<div class="work_name">{{ item.work_name }}</div> <div class="work_name">{{ item.work_name }}</div>
<span class="status_0" v-if="item.student_status == 0">未完成</span> <span class="status_0" v-if="item.student_status == 0">未完成</span>
<span class="status_1" v-if="item.student_status == 1">待评</span> <span class="status_1" v-if="item.student_status == 1">待评</span>
<span class="status_2" v-if="item.student_status == 2">已评</span> <span class="status_2" v-if="item.student_status == 2">已评</span>
</div> </div>
<el-button <el-button
class="btn_refer" class="btn_refer"
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
width="520px" width="520px"
center center
> --> > -->
<el-dialog <el-dialog
style="font-size: 26px" style="font-size: 26px"
class="info" class="info"
title="营地声明" title="营地声明"
......
<template> <template>
<el-dialog <div>
:title="work_name" <el-dialog
:visible.sync="dialogVisible" :title="work_name"
width="650px" :visible.sync="dialogVisible"
top="0" width="650px"
:before-close="cancelBtn" top="0"
:close-on-click-modal="false" :before-close="cancelBtn"
@open="open" :close-on-click-modal="false"
> @open="open"
<div class="referHome"> >
<el-form <div class="referHome">
:model="formData" <el-form
:rules="referRules" :model="formData"
ref="formRef_stu" :rules="referRules"
label-position="top" ref="formRef_stu"
class="readForm" label-position="top"
> class="readForm"
<!-- 老师布置的作业 --> >
<div class="cont_title"> <!-- 老师布置的作业 -->
<div class="line"></div> <div class="cont_title">
<div class="lf"> <div class="line"></div>
<span>作业要求</span> <div class="lf">
<span>作业要求</span>
</div>
</div> </div>
</div> <div class="cont_title_2">作业内容</div>
<div class="cont_title_2">作业内容</div> <div v-html="work_contexts" class="cont_info">}</div>
<div v-html="work_contexts" class="cont_info">}</div> <div class="cont_title_2">相关附件</div>
<div class="cont_title_2">相关附件</div> <div class="upload_box">
<div class="upload_box"> <div v-if="teaFileList.length > 0">
<div v-if="teaFileList.length > 0"> <div
<div class="img_list"
class="img_list" v-for="(item, index) in teaFileList"
v-for="(item, index) in teaFileList" :key="index"
:key="index" >
> <div>
<div> <el-image :src="fileImg"></el-image>
<el-image :src="fileImg"></el-image> <div class="item_name">{{ item.name }}</div>
<div class="item_name">{{ item.name }}</div> <div class="item_remove" @click="downloadStuFile(item.url)">
<div class="item_remove" @click="downloadStuFile(item.url)"> 下载
下载 </div>
</div> </div>
</div> </div>
</div> </div>
</div>
<div v-if="teaFileList.length <= 0" class="img_list">
<div>
<div class="item_name">暂无相关附件</div>
</div>
</div>
<div style="clear: both"></div> <div v-if="teaFileList.length <= 0" class="img_list">
</div>
<!-- 我的作业(未提交) -->
<div class="cont_title">
<div class="line"></div>
我的作业
</div>
<el-form-item
label="文字描述(如超过300字,建议以附件形式上传)"
prop="stu_answer"
>
<el-input
ref="stu_answer"
type="textarea"
v-model="formData.stu_answer"
placeholder="请输入300字以内的描述"
size="small"
:maxlength="300"
show-word-limit
:disabled="student_status == 1 || student_status == 2"
/>
</el-form-item>
<el-form-item label="相关附件" prop="stu_enclosure_url">
<div class="fj_info">1、请上传1-10份相关附件;</div>
<div class="fj_info">
2、单个附件大小不超过100M,支持JPG、JPEG、PNG、docx、doc、pdf、mp4等格式;
</div>
<div class="upload_box">
<div
class="img_list"
v-for="(item, index) in fileList"
:key="index"
>
<div> <div>
<el-image :src="fileImg"></el-image> <div class="item_name">暂无相关附件</div>
<div class="item_name">{{ item.name }}</div>
<div
v-show="student_status == 0"
class="item_remove"
@click="handleRemove(item)"
>
删除
</div>
</div> </div>
</div> </div>
<el-upload <div style="clear: both"></div>
v-if="fileList.length < 10 && student_status == 0" </div>
ref="stu_enclosure_url" <!-- 我的作业(未提交) -->
name="multipartFile" <div class="cont_title">
action="#" <div class="line"></div>
:file-list="fileList" 我的作业
:disabled="isUploading || fileList.length >= 10" </div>
:limit="10" <el-form-item
list-type="picture-card" label="文字描述(如超过300字,建议以附件形式上传)"
:show-file-list="false" prop="stu_answer"
:before-upload="beforeAvatarUpload" >
:http-request="uploadPicture" <el-input
> ref="stu_answer"
<i type="textarea"
v-if="!isUploading" v-model="formData.stu_answer"
class="el-icon-plus avatar-uploader-icon" placeholder="请输入300字以内的描述"
></i> size="small"
<i :maxlength="300"
v-if="isUploading" show-word-limit
class="el-icon-loading avatar-uploader-icon" :disabled="student_status == 1 || student_status == 2"
></i> />
</el-upload> </el-form-item>
<div <el-form-item label="相关附件" prop="stu_enclosure_url">
class="upload_box" <div class="fj_info">1、请上传1-10份相关附件;</div>
v-if="student_status == 1 || student_status == 2" <div class="fj_info">
> 2、单个附件大小不超过100M,支持JPG、JPEG、PNG、docx、doc、pdf、mp4等格式;
</div>
<div class="upload_box">
<div <div
class="img_list" class="img_list"
v-for="(item, index) in stu_fileList" v-for="(item, index) in fileList"
:key="index" :key="index"
> >
<div> <div>
<el-image :src="fileImg"></el-image> <el-image class="home_icon" :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div> <div class="item_name">{{ item.name }}</div>
<div class="flex">
<div
v-show="student_status == 0"
class="item_remove"
@click="handleRemove(item)"
>
删除
</div>
<div
v-show="student_status == 0"
class="item_remove"
@click="handleCheck(item.url)"
>
查看作业
</div>
<!--查看作业图片 -->
<el-dialog
title="作业"
:visible.sync="dialogVisibleImage"
width="30%"
:before-close="handleImageClose"
append-to-body
>
<el-image
:src="item.url"
:preview-src-list="srcList"
></el-image>
</el-dialog>
</div>
</div> </div>
</div> </div>
<div v-if="stu_fileList.length <= 0" class="img_list">
<div> <el-upload
<div class="item_name">暂无相关附件</div> v-if="fileList.length < 10 && student_status == 0"
ref="stu_enclosure_url"
name="multipartFile"
action="#"
:file-list="fileList"
:disabled="isUploading || fileList.length >= 10"
:limit="10"
list-type="picture-card"
:show-file-list="false"
:before-upload="beforeAvatarUpload"
:http-request="uploadPicture"
>
<i
v-if="!isUploading"
class="el-icon-plus avatar-uploader-icon"
></i>
<i
v-if="isUploading"
class="el-icon-loading avatar-uploader-icon"
></i>
</el-upload>
<div
class="upload_box"
v-if="student_status == 1 || student_status == 2"
>
<div
class="img_list"
v-for="(item, index) in stu_fileList"
:key="index"
>
<div>
<el-image :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div>
</div>
</div>
<div v-if="stu_fileList.length <= 0" class="img_list">
<div>
<div class="item_name">暂无相关附件</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> <!-- </div> -->
<!-- </div> --> </el-form-item>
</el-form-item> <!-- 我的作业(已提交待评分 -不可编辑 )-->
<!-- 我的作业(已提交待评分 -不可编辑 )--> <!-- <div v-if="student_status == 1 || student_status == 2">
<!-- <div v-if="student_status == 1 || student_status == 2">
<div class="cont_title"> <div class="cont_title">
<div class="line"></div> <div class="line"></div>
我的作业 我的作业
...@@ -181,50 +204,54 @@ ...@@ -181,50 +204,54 @@
</div> </div>
</el-form-item> </el-form-item>
</div> --> </div> -->
<!-- 评阅结果 --> <!-- 评阅结果 -->
<div v-if="student_status == 2" style="height: 350px"> <div v-if="student_status == 2" style="height: 350px">
<div class="cont_title"> <div class="cont_title">
<div class="line"></div> <div class="line"></div>
<div class="lf"> <div class="lf">
<span>评阅结果</span> <span>评阅结果</span>
</div>
</div> </div>
</div> <!-- <div class="cont_title_2">导师评分</div>
<!-- <div class="cont_title_2">导师评分</div>
<div class="cont_info">{{ score }}</div> --> <div class="cont_info">{{ score }}</div> -->
<div class="cont_title_2">导师评语</div> <div class="cont_title_2">导师评语</div>
<div v-html="teacher_commment" class="cont_info">}</div> <div v-html="teacher_commment" class="cont_info">}</div>
<div class="cont_title_2">相关附件</div> <div class="cont_title_2">相关附件</div>
<div class="upload_box"> <div class="upload_box">
<div v-if="tea_scoreFileList.length > 0"> <div v-if="tea_scoreFileList.length > 0">
<div <div
class="img_list" class="img_list"
v-for="(item, index) in tea_scoreFileList" v-for="(item, index) in tea_scoreFileList"
:key="index" :key="index"
> >
<div> <div>
<el-image :src="fileImg"></el-image> <el-image :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div> <div class="item_name">{{ item.name }}</div>
<div class="item_remove" @click="downloadScoreFile(item.url)"> <div
下载 class="item_remove"
@click="downloadScoreFile(item.url)"
>
下载
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
<div v-if="tea_scoreFileList.length <= 0" class="img_list"> <div v-if="tea_scoreFileList.length <= 0" class="img_list">
<div> <div>
<div class="item_name">暂无相关附件</div> <div class="item_name">暂无相关附件</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
<el-form-item class="btn" v-if="student_status == 0"> <el-form-item class="btn" v-if="student_status == 0">
<el-button type="primary" @click="confirm">提交</el-button> <el-button type="primary" @click="confirm">提交</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</el-dialog> </el-dialog>
</div>
</template> </template>
<script> <script>
...@@ -273,6 +300,7 @@ export default { ...@@ -273,6 +300,7 @@ export default {
}; };
return { return {
dialogVisibleImage: false,
referRules: { referRules: {
stu_answer: [ stu_answer: [
{ required: true, validator: validateNum, trigger: "blur" }, { required: true, validator: validateNum, trigger: "blur" },
...@@ -302,6 +330,7 @@ export default { ...@@ -302,6 +330,7 @@ export default {
// score: "", //老师评分 // score: "", //老师评分
teacher_commment: "", //老师评语 teacher_commment: "", //老师评语
tea_scoreFileList: [], //老师评语的附件 tea_scoreFileList: [], //老师评语的附件
srcList: [], //在线预览图片-放大
}; };
}, },
created() { created() {
...@@ -626,23 +655,20 @@ export default { ...@@ -626,23 +655,20 @@ export default {
if (res.data.code != 200) { if (res.data.code != 200) {
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
} }
console.log(this.fileList); // console.log(this.fileList);
// console.log(this.stu_fileListoss); // console.log(this.stu_fileListoss);
this.fileList.forEach((item, idx) => { this.fileList.forEach((item, idx) => {
console.log(idx, "idx"); // console.log(idx, "idx");
// console.log(item.url == file.url); // console.log(item.url == file.url);
if (item.url == file.url) { if (item.url == file.url) {
this.fileList.splice(idx, 1); this.fileList.splice(idx, 1);
let code = this.$store.state.indexIdentity; let code = this.$store.state.indexIdentity;
window.localStorage.setItem( window.localStorage.setItem(
"student_file_" + "student_file_" +
window.localStorage.getItem("phone" + code) + window.localStorage.getItem("phone" + code) +
code, code,
JSON.stringify(this.stu_fileListoss) JSON.stringify(this.stu_fileListoss)
); );
} }
}); });
...@@ -652,7 +678,7 @@ export default { ...@@ -652,7 +678,7 @@ export default {
return item.url; return item.url;
}) })
.join(","); .join(",");
console.log(this.stu_fileListoss); // console.log(this.stu_fileListoss);
// console.log(this.fileList); // console.log(this.fileList);
this.$message.success(res.data.message); this.$message.success(res.data.message);
}); });
...@@ -665,6 +691,42 @@ export default { ...@@ -665,6 +691,42 @@ export default {
}); });
}); });
}, },
// 查看已上传的学生作业
handleCheck(url) {
console.log(url, "url");
// console.log(url.match(/\.(jpeg|jpg|gif|png)$/) != null)
// 是否为图片
if (url.match(/\.(jpeg|jpg|gif|png)$/) != null) {
this.dialogVisibleImage = true;
// console.log(url.split(" "),'111')
this.srcList = url.split(" ");
} else {
let onlineViewType = [
"doc",
"docx",
"xls",
"xlsx",
"xlsm",
"ppt",
"pptx",
];
let fileTypeName = url
.substring(url.lastIndexOf(".") + 1, url.length)
.split("?")[0];
let isWord = onlineViewType.find((type) => type === fileTypeName);
if (isWord) {
url = "http://view.officeapps.live.com/op/view.aspx?src=" + url;
}
window.open(url, "_blank");
}
},
handleImageClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
// 提交按钮 // 提交按钮
confirm() { confirm() {
this.$confirm( this.$confirm(
...@@ -711,6 +773,9 @@ export default { ...@@ -711,6 +773,9 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
@import "a/scss/btn"; @import "a/scss/btn";
@import "a/scss/homework/refer"; @import "a/scss/homework/refer";
.flex {
display: flex;
}
</style> </style>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment