Commit 7ac47adc authored by 杨梦雪's avatar 杨梦雪

11

parent a3ca3264
...@@ -3,14 +3,8 @@ ...@@ -3,14 +3,8 @@
display: flex; display: flex;
} }
.referHome { .referHome {
padding: 20px ;
.lf {
float: left;
}
.rt {
float: right;
}
::v-deep .readForm { ::v-deep .readForm {
flex: 1; flex: 1;
...@@ -119,7 +113,54 @@ ...@@ -119,7 +113,54 @@
} }
} }
} }
.image_add {
position: relative;
margin-top: 24px;
.image_in {
.limit_10 {
display: none;
}
.el-upload-list--picture-card {
.item_img {
width: 100%;
}
}
}
//去除upload组件过渡效果 css
.el-upload-list__item {
transition: none !important;
.is-ready {
display: none;
}
div {
height: 100%;
}
}
.el-upload--picture-card {
display: inline-block;
}
.el-upload {
position: relative;
.el-icon-circle-plus {
font-size: 52px;
color: var(--color);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
i {
font-size: 22px;
color: #ffffff;
}
.text {
font-size: 14px;
color: #a7a2a6;
text-align: center;
}
}
.upload_box { .upload_box {
.img_list { .img_list {
position: relative; position: relative;
......
...@@ -7,12 +7,15 @@ import store from './store' ...@@ -7,12 +7,15 @@ import store from './store'
import ElementUI from 'element-ui' import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css' import 'element-ui/lib/theme-chalk/index.css'
import '@/assets/scss/index.scss' import '@/assets/scss/index.scss'
import {download, upload} from "r/index/network.js";
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(ElementUI) Vue.use(ElementUI)
Vue.prototype.download = download
Vue.prototype.upload = upload
Vue.prototype.$errorScroll = function errorScroll(callback) { Vue.prototype.$errorScroll = function errorScroll(callback) {
this.$nextTick(() => { this.$nextTick(() => {
......
/* eslint-disable */
import {
request
} from './network'
import store from '@/store'
// 添加地址
export function setAddress(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/setAddress ',
params: data
})
}
// 获取地址
export function getAddress(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/getAddress ',
params: data
})
}
...@@ -24,14 +24,24 @@ export function downloadTeacherWork(data) { ...@@ -24,14 +24,24 @@ export function downloadTeacherWork(data) {
}) })
} }
// 获取学生上传作业的oss // 获取学生上传作业的oss
export function getPostWorkStudent(data) { export function PostWorkStudentOss(data) {
data['identity'] = store.state.indexIdentity; data['identity'] = store.state.indexIdentity;
return request({ return request({
method: 'post', method: 'post',
url: '/web/download/getPostWorkStudent', url: '/web/download/getPostWorkStudent',
params: data data
}) })
} }
//删除图片
export function delPic(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/delPic',
params:data
})
}
// 获取学生提交营地作业 // 获取学生提交营地作业
export function getStudentWork(data) { export function getStudentWork(data) {
data['identity'] = store.state.indexIdentity; data['identity'] = store.state.indexIdentity;
......
/* eslint-disable */ /* eslint-disable */
import axios from 'axios' import axios from 'axios'
import store from '@/store' import store from '@/store'
import qs from 'qs'
import {tansParams} from '@/store/common.js'
import { import {
SERVER_URL, SERVER_URL,
DEVELOPMENT_SERVER_URL DEVELOPMENT_SERVER_URL
...@@ -28,6 +30,7 @@ const instance = axios.create({ ...@@ -28,6 +30,7 @@ const instance = axios.create({
instance.interceptors.request.use( instance.interceptors.request.use(
(config) => { (config) => {
if (config.method === "post" && !config.notQs) { if (config.method === "post" && !config.notQs) {
console.log(config)
config.data = qs.stringify(config.data); config.data = qs.stringify(config.data);
} }
if (config.url.indexOf(SERVER_URL) === -1) { if (config.url.indexOf(SERVER_URL) === -1) {
...@@ -50,14 +53,6 @@ instance.interceptors.request.use( ...@@ -50,14 +53,6 @@ instance.interceptors.request.use(
return Promise.reject(error); return Promise.reject(error);
} }
); );
// instance.interceptors.response.use(
// (response) => {
// return response.data;
// },
// (error) => {
// return Promise.reject(error);
// }
// );
export default instance; export default instance;
...@@ -338,6 +333,41 @@ export function upload(url, data = {}) { ...@@ -338,6 +333,41 @@ export function upload(url, data = {}) {
); );
}); });
} }
// 通用下载方法
export function download(url, params, filename) {
console.log(url, params, filename)
return instance.post(url, params, {
transformRequest: [
params => {
return tansParams(params);
}
],
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
responseType: "blob"
})
.then(data => {
const content = data;
console.log(content)
const blob = new Blob([content]);
if ("download" in document.createElement("a")) {
const elink = document.createElement("a");
elink.download = filename;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href);
document.body.removeChild(elink);
} else {
navigator.msSaveBlob(blob, filename);
}
})
.catch(r => {
console.error(r);
});
}
// 合并多个请求 // 合并多个请求
export function allRequest(arrRequest) { export function allRequest(arrRequest) {
return axios.all(arrRequest) return axios.all(arrRequest)
......
...@@ -15,14 +15,14 @@ export default [{ ...@@ -15,14 +15,14 @@ export default [{
} }
}, },
{ // {
path: '/homework/refer', // path: '/homework/refer',
name: 'homework-refer', // name: 'homework-refer',
component: () => import('v/index/camp/homework/refer.vue'), // component: () => import('v/index/camp/homework/refer.vue'),
meta: { // meta: {
title: '提交作业' // title: '提交作业'
}, // },
}, // },
{ {
path: '/certificate', path: '/certificate',
name: 'index-certificate', name: 'index-certificate',
......
export function tansParams(params) {
let result = ''
Object.keys(params).forEach((key) => {
if (!Object.is(params[key], undefined) && !Object.is(params[key], null) && !Object.is(JSON.stringify(params[key]), '{}')) {
result += encodeURIComponent(key) + '=' + encodeURIComponent(params[key]) + '&'
}
})
return result
}
\ No newline at end of file
...@@ -132,6 +132,7 @@ ...@@ -132,6 +132,7 @@
<script> <script>
/* eslint-disable */ /* eslint-disable */
import { getProAndCity, getSchool } from "r/index/signUp"; import { getProAndCity, getSchool } from "r/index/signUp";
import { setAddress} from "r/index/certificate";
import validator from "common/validator"; import validator from "common/validator";
export default { export default {
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
<div class="title"> <div class="title">
<div class="homework_titile">营地作业</div> <div class="homework_titile">营地作业</div>
</div> </div>
<!-- <div class="empty_content"> <div class="empty_content" v-if="!this.homeworkList">
<div> <div>
<img src="@/assets/img/homework/homework.png" alt="" /> <img src="@/assets/img/homework/homework.png" alt="" />
</div> </div>
<p>同学你好,老师暂未发布作业</p> <p>同学你好,老师暂未发布作业</p>
<p>请于2021年XX年XX月XX日 前往网站查看作业</p> <p>请于2021年XX年XX月XX日 前往网站查看作业</p>
</div> --> </div>
<div class="home_content"> <div class="home_content">
<div class="each_content" v-for="item in homeworkList" :key="item.id"> <div class="each_content" v-for="item in homeworkList" :key="item.id">
<div class="top flex"> <div class="top flex">
...@@ -36,18 +36,33 @@ ...@@ -36,18 +36,33 @@
<div> <div>
<el-pagination layout="prev, pager, next" :total="50"> </el-pagination> <el-pagination layout="prev, pager, next" :total="50"> </el-pagination>
</div> </div>
<!-- 下载作业 -->
<refer
:dialogVisibleFu="dialogVisibleFu"
:work_contexts="work_context"
:enclosure_urls="enclosure_url"
:work_nums="work_num"
@closeDialog="closeDialog"
></refer>
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import refer from "v/index/camp/homework/refer";
import { getTeacherWork } from "r/index/homework"; import { getTeacherWork } from "r/index/homework";
import Bus from "config/bus.js"; import Bus from "config/bus.js";
export default { export default {
name: "homework", name: "homework",
components: {
refer,
},
data() { data() {
return { return {
homeworkList: {}, homeworkList: {},
dialogVisibleFu: false,
work_context: "",
enclosure_url: "",
work_num: 0,
}; };
}, },
created() { created() {
...@@ -55,15 +70,19 @@ export default { ...@@ -55,15 +70,19 @@ export default {
}, },
watch: {}, watch: {},
methods: { methods: {
// 子组件触发,关闭确认报名弹框
closeDialog(val, type) {
this.dialogVisibleFu = val;
// if (type) {
// clearInterval(this.timer);
// }
},
toRefer(item) { toRefer(item) {
// console.log(val,'val') this.dialogVisibleFu = true;
let code = this.$store.state.indexIdentity; // console.log(item.work_num,'val')
this.$router.push("/homework/refer?code=" + code); this.work_context = item.work_context;
this.$emit("torefer", 3); this.enclosure_url = item.enclosure_url;
window.localStorage.setItem("work_context" + code, item.work_context); this.work_num = item.work_num;
window.localStorage.setItem("enclosure_url" + code, item.enclosure_url);
// Bus.$emit("work_context", item.work_context);
// Bus.$emit("enclosure_url", item.enclosure_url);
}, },
getTeacherWork() { getTeacherWork() {
getTeacherWork({ page: 1 }).then((res) => { getTeacherWork({ page: 1 }).then((res) => {
...@@ -90,25 +109,25 @@ export default { ...@@ -90,25 +109,25 @@ export default {
// width: 856px; // width: 856px;
// 空状态 // 空状态
// .title { .title {
// padding: 50px; padding: 50px;
// .homework_titile { .homework_titile {
// font-size: 24px; font-size: 24px;
// font-weight: 500; font-weight: 500;
// color: #1b1419; color: #1b1419;
// line-height: 24px; line-height: 24px;
// margin-bottom: 40px; margin-bottom: 40px;
// text-align: center; text-align: center;
// } }
// } }
// .content_empty { .content_empty {
// padding-bottom: 200px; padding-bottom: 200px;
// p, p,
// div { div {
// text-align: center; text-align: center;
// } }
// } }
// 有作业时候F // 有作业时候F
.title { .title {
......
...@@ -32,12 +32,12 @@ ...@@ -32,12 +32,12 @@
<SignUp @getStatus="getStatus" v-if="this.campindex_type == 0"> <SignUp @getStatus="getStatus" v-if="this.campindex_type == 0">
</SignUp> </SignUp>
<Homework <Homework
v-if="this.campindex_type == 1 && this.homework_val == null" v-if="this.campindex_type == 1"
@torefer="torefer"
> >
</Homework> </Homework>
<Certificate v-if="this.campindex_type == 2"> </Certificate> <Certificate v-if="this.campindex_type == 2"> </Certificate>
<homeRefer v-if="this.homework_val == 3"> </homeRefer> <!-- <homeRefer v-if="this.homework_val == 3"> </homeRefer> -->
</div> </div>
</div> </div>
</div> </div>
...@@ -56,7 +56,7 @@ import svg3 from "@/assets/img/signUp/icon-2.svg"; ...@@ -56,7 +56,7 @@ import svg3 from "@/assets/img/signUp/icon-2.svg";
import SignUp from "v/index/camp/SignUp"; import SignUp from "v/index/camp/SignUp";
import Homework from "v/index/camp/Homework"; import Homework from "v/index/camp/Homework";
import Certificate from "v/index/camp/Certificate"; import Certificate from "v/index/camp/Certificate";
import homeRefer from "v/index/camp/homework/refer"; // import homeRefer from "v/index/camp/homework/refer";
export default { export default {
name: "campIndex", name: "campIndex",
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
SignUp, SignUp,
Homework, Homework,
Certificate, Certificate,
homeRefer, // homeRefer,
}, },
// props:{} // props:{}
data() { data() {
...@@ -98,13 +98,13 @@ export default { ...@@ -98,13 +98,13 @@ export default {
campindex_type: 0, campindex_type: 0,
index_status: "", index_status: "",
homework_val: "", // homework_val: "",
}; };
}, },
watch: {}, watch: {},
created() { created() {
this.getStatus(); this.getStatus();
this.torefer(); // this.torefer();
}, },
mounted() { mounted() {
window.addEventListener("scroll", this.handleScrollX, true); window.addEventListener("scroll", this.handleScrollX, true);
...@@ -115,10 +115,10 @@ export default { ...@@ -115,10 +115,10 @@ export default {
window.removeEventListener("resize", this.onResize, true); window.removeEventListener("resize", this.onResize, true);
}, },
methods: { methods: {
torefer(val) { // torefer(val) {
console.log(val, "val"); // console.log(val, "val");
this.homework_val = val; // this.homework_val = val;
}, // },
getStatus(val) { getStatus(val) {
// console.log(val, "index_type"); // console.log(val, "index_type");
this.index_status = val; this.index_status = val;
......
<template> <template>
<el-dialog
:title="'第' + titleName + '次课程论文'"
:visible.sync="dialogVisible"
width="650px"
top="0"
:before-close="cancelBtn"
:close-on-click-modal="false"
@open="open"
>
<div class="referHome"> <div class="referHome">
<div class="rh_top flex">
<i class="el-icon-arrow-left"></i>
<div>第三次课程论文</div>
</div>
<el-form <el-form
v-loading="loading" v-loading="loading"
ref="formRef" ref="formRef"
:model="formData" :model="formData"
:rules="rules"
label-position="top" label-position="top"
class="readForm" class="readForm"
> >
<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>
{{ stuWork.jiguanProvince
}}{{
stuWork.jiguanProvince == stuWork.jiguanCity
? ""
: stuWork.jiguanCity
}}{{ stuWork.school }}</span
>
<span>{{ stuWork.name }}</span>
<span>提交的作业</span>
</div> </div>
<div class="rt" v-if="type == 1">编号: {{ stuInfo.workNum }}</div>
</div> </div>
<div class="cont_title_2">文字描述</div> <div class="cont_title_2">作业内容</div>
<div class="cont_info">{{ $store.state.work_context }}</div> <div v-html="this.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 <div
...@@ -59,34 +52,29 @@ ...@@ -59,34 +52,29 @@
<div class="line"></div> <div class="line"></div>
评阅结果 评阅结果
</div> </div>
<el-form-item label="导师评分" prop="score"> <el-form-item
<el-input label="文字描述(如超过300字,建议以附件形式上传)"
v-model="formData.score" prop="stu_answer"
size="small" >
placeholder="请评分(输入0-100之内的整数)"
@input="inputValue"
/>
</el-form-item>
<el-form-item label="导师评语" prop="teaCommment">
<el-input <el-input
type="textarea" type="textarea"
v-model="formData.teaCommment" v-model="formData.stu_answer"
placeholder="请输入300字以内的评语" placeholder="请输入300字以内的描述"
size="small" size="small"
:maxlength="300" :maxlength="300"
show-word-limit show-word-limit
/> />
</el-form-item> </el-form-item>
<el-form-item label="相关附件" prop="teacherUrl"> <el-form-item label="相关附件" prop="teacherUrl">
<div class="fj_info">1、请上传1-10份相关附件;</div> <div class="fj_info">1、请上传1-10份相关附件;</div>
<div class="fj_info"> <div class="fj_info">
2、单个附件大小不超过100M,支持JPG、JPEG、PNG、docx、doc、pdf、mp4等格式; 2、单个附件大小不超过100M,支持JPG、JPEG、PNG、docx、doc、pdf、mp4等格式;
</div> </div>
<div class="upload_box"> <div class="upload_box">
<div <div
class="img_list" class="img_list"
v-for="(item, index) in teaFileList" v-for="(item, index) in fileList"
:key="index" :key="index"
> >
<div> <div>
...@@ -97,37 +85,48 @@ ...@@ -97,37 +85,48 @@
</div> </div>
<el-upload <el-upload
v-if="teaFileList.length < 10" v-if="fileList.length < 10"
ref="systemLogo" ref="systemLogo"
name="multipartFile" name="multipartFile"
:action="imgAction" action="#"
:file-list="teaFileList" :file-list="fileList"
:disabled="upLoading" :disabled="isUploading || fileList.length >= 10"
:limit="10"
list-type="picture-card" list-type="picture-card"
:show-file-list="false" :show-file-list="false"
:before-upload="beforeUpload" :before-upload="beforeAvatarUpload"
:on-progress="handleProgress" :on-progress="handleUploadProgress"
:on-success="handleSuccess" :on-success="uploadSuccess"
:http-request="uploadPicture"
> >
<i v-if="!upLoading" class="el-icon-plus avatar-uploader-icon"></i> <i
v-if="!upLoading"
class="el-icon-plus avatar-uploader-icon"
></i>
<i <i
v-if="upLoading" v-if="upLoading"
class="el-icon-loading avatar-uploader-icon" class="el-icon-loading avatar-uploader-icon"
></i> ></i>
</el-upload> </el-upload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item class="btn"> <el-form-item class="btn">
<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>
</template> </template>
<script> <script>
// import {getToken} from "@/utils/auth";
import Bus from "config/bus.js"; import Bus from "config/bus.js";
import { import {
downloadTeacherWork,
PostWorkStudentOss,
delPic,
subStudentWork,
GetStuWork, GetStuWork,
SaveTheRead, SaveTheRead,
GetAllReadInfo, GetAllReadInfo,
...@@ -135,110 +134,59 @@ import { ...@@ -135,110 +134,59 @@ import {
} from "r/index/homework"; } from "r/index/homework";
import fileImg from "@/assets/img/homework/file_img.png"; import fileImg from "@/assets/img/homework/file_img.png";
export default { export default {
name: "ReadForm", name: "ReadForm",
props: { props: {
// dialogVisibleFu: Boolean, dialogVisibleFu: Boolean,
campIdFu: [Number, String], work_contexts: [Number, String], //作业内容
stuInfoFu: [Object, String], enclosure_urls: [Object, String], //老师作业地址
typeFu: [Number, String], work_nums: [Number],
}, },
data() { data() {
return { return {
titleName: "",
isUploading: false, // 图片上传蒙层
work_context: "", //简介 work_context: "", //简介
fileImg: fileImg, fileImg: fileImg,
loading: false, loading: false,
dialogVisible: this.dialogVisibleFu, dialogVisible: this.dialogVisibleFu,
type: this.typeFu, // 来源(1-未评阅 2-已评阅) dialogVisibleimage: false,
campId: this.campIdFu,
stuInfo: this.stuInfoFu, // 学生-信息
stuWork: {}, // 学生-作业 stuWork: {}, // 学生-作业
stuFileList: [], // 学生-相关附件 stuFileList: [], // 学生-相关附件
teaFileList: [], // 老师-相关附件 teaFileList: [], // 老师-相关附件
formData: { formData: {
campId: null, stu_work_num: "",
stuWorkNum: null, stu_answer: "",
uuid: null, stu_enclosure_url: "",
score: null,
teaCommment: null,
teacherUrl: null,
}, // 老师-评阅结果 }, // 老师-评阅结果
rules: {
score: [
{
required: true,
message: "请评分(输入0-100之内的整数)",
trigger: "blur",
},
],
},
upLoading: false, // 老师-上传loading upLoading: false, // 老师-上传loading
// 上传图片请求头 fileList: [],
// headers: { stu_fileList: "",
// Authorization: "Bearer " + getToken()
// }, disabled: false, //限制输入框
imgAction:
process.env.VUE_APP_BASE_API +
"/modules-campsite/ld/UploadWorkForStudent",
}; };
}, },
created() { created() {
console.log( this.$store.state.work_context) console.log(this.enclosure_urls);
// this.work_context = this.$store.state.work_context; let code = this.$store.state.indexIdentity;
let studentFile = window.localStorage.getItem(
"student_file_" + window.localStorage.getItem("phone" + code) + code
);
if (studentFile && JSON.parse(studentFile).length > 0) {
this.fileList = JSON.parse(studentFile);
}
}, },
methods: { methods: {
open() { open() {
if (this.type == 1) { console.log(this.stu_work_nums);
this.getStuWork(); this.titleName = this.work_nums;
} else if (this.type == 2) { this.getTeachList();
this.getYiStuWork();
}
},
// 保存按钮
confirm() {
this.$refs["formRef"].validate((valid) => {
if (!valid) return;
if (this.type == 1) {
this.notReadHandle();
} else if (this.type == 2) {
this.yiReadHandle();
}
});
}, },
// 下载学生附件 //老师作业展示
downloadStuFile(url) { getTeachList() {
window.location.href = url; let url = this.enclosure_urls;
}, console.log(this.enclosure_urls);
// 导师评分0-100限制 if (this.enclosure_urls) {
inputValue(value) {
if (value.length > 1 && value.slice(0, 1) == 0) {
return (this.formData.score = 0);
} else if (value.length >= 3 && value > 100) {
return (this.formData.score = 100);
}
this.formData.score = value.replace(/[^\d]/g, "");
},
// 已评阅-获取学生答案
getYiStuWork() {
GetAllReadInfo({
campId: this.campId,
stuWorkNum: this.stuInfo.stuWorkNum,
uuid: this.stuInfo.uuid,
})
.then((response) => {
console.log(response);
if (response.code != 200) {
return this.msgError(response.msg);
}
this.stuWork = response.data;
this.formData.score = this.stuWork["score"];
this.formData.teaCommment = this.stuWork["teacherCommment"];
this.formData.teacherUrl = this.stuWork["teacherUrl"];
let url = this.stuWork.stuEnclosureUrl;
if (this.stuWork.stuEnclosureUrl) {
let arr = url.split(","); let arr = url.split(",");
arr.forEach((item) => { arr.forEach((item) => {
this.stuFileList.push({ this.stuFileList.push({
...@@ -250,85 +198,52 @@ export default { ...@@ -250,85 +198,52 @@ export default {
} else { } else {
this.stuFileList = []; this.stuFileList = [];
} }
let urlT = this.stuWork.teacherUrl;
if (this.stuWork.teacherUrl) {
let arr = urlT.split(",");
arr.forEach((item) => {
this.teaFileList.push({
url: item,
name: item.split("/workforstudent/")[1],
status: "success",
});
});
} else {
this.teaFileList = [];
}
})
.catch((error) => {
console.log(error);
});
}, },
// 已评阅-评阅 // 下载老师附件
// yiReadHandle(){ downloadStuFile(url) {
// this.formData.campId = this.campId; this.download(
// this.formData.stuWorkNum = this.stuInfo.stuWorkNum; 'http://api.campcenter.cn/web/download/downloadTeacherWork',
// this.formData.uuid = this.stuInfo.uuid; {
// SaveYiRead(this.formData) enclosure_url:url,
// .then(response => { identity : this.$store.state.indexIdentity
// console.log(response); },
// if (response.code != 200) { ''
// return this.msgError(response.msg); )
// downloadTeacherWork({ enclosure_url:url }).then((res) => {
// console.log(res, "res");
// if (res.code != 200) {
// return this.$message.error(res.data.message);
// } // }
// this.msgSuccess(response.msg); // this.$message.success(res.data.message);
// this.cancelBtnTrue();
// })
// .catch(error => {
// console.log(error);
// }); // });
// }, // window.location.href = url;
// 未评阅-获取学生答案 },
getStuWork() {
GetStuWork({ // 保存按钮
campId: this.campId, confirm() {
stuWorkNum: this.stuInfo.stuWorkNum, this.$refs["formRef"].validate((valid) => {
uuid: this.stuInfo.uuid, if (!valid) return;
}) // if (this.type == 1) {
.then((response) => { // 未完成
console.log(response); this.notReadHandle();
if (response.code != 200) { // } else if (this.type == 2) {
return this.msgError(response.msg); // 已完成
} // this.yiReadHandle();
this.stuWork = response.data; // }
let url = this.stuWork.stuEnclosureUrl;
if (this.stuWork.stuEnclosureUrl) {
let arr = url.split(",");
arr.forEach((item) => {
this.stuFileList.push({
url: item,
name: item.split("/work/")[1],
status: "success",
});
});
} else {
this.stuFileList = [];
}
})
.catch((error) => {
console.log(error);
}); });
}, },
// 未评阅-评阅
// 未完成
notReadHandle() { notReadHandle() {
this.formData.campId = this.campId; this.formData.stu_work_num = this.work_nums;
this.formData.stuWorkNum = this.stuInfo.stuWorkNum; this.formData.stu_enclosure_url = this.stu_fileList;
this.formData.uuid = this.stuInfo.uuid; subStudentWork(this.formData)
SaveTheRead(this.formData)
.then((response) => { .then((response) => {
console.log(response); console.log(response);
if (response.code != 200) { if (response.code != 200) {
return this.msgError(response.msg); return this.$message.error(response.message);
} }
this.msgSuccess(response.msg); this.$message.success(response.message);
this.cancelBtnTrue(); this.cancelBtnTrue();
}) })
.catch((error) => { .catch((error) => {
...@@ -352,53 +267,181 @@ export default { ...@@ -352,53 +267,181 @@ export default {
this.dialogVisible = false; this.dialogVisible = false;
this.$emit("closeDialog", this.dialogVisible, false); this.$emit("closeDialog", this.dialogVisible, false);
}, },
// 删除文件 //上传前
handleRemove(data) { beforeAvatarUpload(file) {
this.teaFileList = this.teaFileList.filter((item) => { const isLt10M = file.size / 1024 / 1024 < 10;
return item != data; if (!isLt10M) {
}); this.$message.info("上传图片大小不能超过 10MB!");
this.formData.teacherUrl = this.teaFileList }
.map((item) => { return isLt10M;
return item.url;
})
.join(",");
console.log(this.teaFileList);
console.log(this.formData.teacherUrl);
}, },
// 文件上传成功时的钩子
handleSuccess(res, file, fileList) { // handlePictureCardPreview(file) {
if (res.code != 200) { // console.log(file, "11111111");
this.upLoading = false; // this.resultPicture = file.url;
return this.msgError(res.msg); // this.dialogVisibleimage = true;
// },
// 文件上传中处理
handleUploadProgress(event, file, fileList) {
// console.log(fileList);
this.isUploading = true;
if (this.fileList.lenge < 10) {
return this.$message.info("chaochushuliamng");
} }
let length = this.teaFileList.length; },
this.teaFileList[length] = { uploadSuccess(res, file, fileList) {
status: "success", // console.log(res, "res");
name: res.msg.split("/workforstudent/")[1], console.log(file, "file");
url: res.msg, // console.log(fileList, "fileList");
this.referForm.achievementPath = res;
this.fileList = {
name: file.name,
url: res,
};
this.$refs["imgUrl"].clearFiles(); //上传成功之后清除历史记录
},
uploadPicture(params) {
console.log("已经准备好上传图片", params);
this.file = params.file;
console.log(this.file, "1111");
let raw = params.file;
let image = {
name: raw.name,
size: raw.size,
type: raw.type,
};
this.getOssConfigs(image, params.file);
},
async getOssConfigs(image, file) {
// let code = this.$store.state.indexIdentity;
// let stu_work_num = window.localStorage.getItem("stu_work_num" + code);
// console.log(
// window.localStorage.getItem("stu_work_num" + code),
// "stu_work_num"
// );
let obj = {
url: "",
savefile: "",
}; };
this.formData.teacherUrl = this.teaFileList await PostWorkStudentOss({
image: image,
stu_work_num: this.stu_work_nums,
})
.then((res) => {
console.log(res, "开始上传图片");
if (res.data.code === 200) {
let oss_url = res.data.config.host;
let filename = res.data.config.file;
let formData = new FormData();
formData.append("OSSAccessKeyId", res.data.config.accessid);
formData.append("policy", res.data.config.policy);
formData.append("signature", res.data.config.signature);
formData.append("filename", res.data.config.file);
formData.append("key", res.data.config.savefile);
formData.append("callback", res.data.config.callback);
formData.append("success_action_status", 200);
formData.append("file", file);
// console.log(formData);
this.upload(oss_url, formData)
.then((ress) => {
console.log(ress, "ress");
if (ress.data.code != 200) {
console.log(ress, "ress");
return this.$message.error(ress.data.message);
}
this.resultPicture = filename + "?t=" + Date.parse(new Date());
this.$forceUpdate();
this.$message.success("上传成功");
obj = {
url: ress.data.picture_path,
savefile: res.data.config.savefile,
};
this.fileList.push(obj);
// let stu_obj={
// url: ress.data.picture_path,
// }
// this.stu_fileList.push(stu_obj);
// let arrNew = [];
this.stu_fileList = this.fileList
.map((item) => { .map((item) => {
return item.url; return item.url;
}) })
.join(","); .join(",");
this.upLoading = false; // console.log(this.stu_fileList)
this.msgSuccess("上传成功"); let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"student_file_" +
+window.localStorage.getItem("phone" + code) +
code,
JSON.stringify(this.fileList)
);
})
.catch((err) => {
this.$message.error(err);
});
} else {
this.$message.error(res.data.message);
}
})
.catch((err) => {
// console.log(err);
});
}, },
handleProgress(event, file, fileList) { // 下载证明资料图片
this.upLoading = true; handleDownload(file) {
// console.log(file,'file22');
window.location.href = file.url;
}, },
// 上传文件之前的钩子 //删除图片
beforeUpload(file) { handleRemove(file) {
const isLt10M = file.size / 1024 / 1024 <= 100; console.log(file, "file");
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
if (!isLt10M) { confirmButtonText: "确定",
this.$message.error("上传的附件大小不能超过 100M!"); cancelButtonText: "取消",
return false; type: "warning",
})
.then(() => {
let getfile = file.url;
// console.log(savefile.match(/^(?:[^\/]|\/\/)*/),'222222');//获取域名
let str = getfile.split(
"https://campiste.oss-cn-beijing.aliyuncs.com/"
); //https://yingdi-achievement.oss-cn-beijing.aliyuncs.com/进行分割,
console.log(str, "str");
let savefile = str[1];
// console.log(savefile, "savefile");
delPic({ object: savefile }).then((res) => {
// console.log(res, "delpic");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
} }
return isLt10M; this.fileList.forEach((item, idx) => {
// console.log(item.url == file.url);
if (item.url == file.url) {
this.fileList.splice(idx, 1);
let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"student_file_" +
window.localStorage.getItem("phone" + code) +
code,
JSON.stringify(this.fileList)
);
}
});
// console.log(this.fileList);
this.$message.success(res.data.message);
});
})
.catch((err) => {
this.$message({
type: "info",
message: "取消删除",
});
});
}, },
}, },
watch: { watch: {
dialogVisibleFu() { dialogVisibleFu() {
this.dialogVisible = this.dialogVisibleFu; this.dialogVisible = this.dialogVisibleFu;
......
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