Commit ae1b32f4 by H.wb.wang.peixun

审阅批卷页面对接

parent e03b4576
...@@ -10,10 +10,11 @@ export function listTestPaper(query) { ...@@ -10,10 +10,11 @@ export function listTestPaper(query) {
} }
// 查询试卷详细 // 查询试卷详细
export function getTestPaper(id) { export function getTestPaper(query) {
return request({ return request({
url: '/school-paper/testPaper/' + id, url: '/school-paper/questionBankTestPaper/list',
method: 'get' method: 'get',
params: query
}) })
} }
// 新增试卷 // 新增试卷
......
...@@ -17,10 +17,11 @@ export function listgetClassList(query) { ...@@ -17,10 +17,11 @@ export function listgetClassList(query) {
}) })
} }
// 查询答题记录详细 // 查询答题记录详细
export function getTestPaperRecord(id) { export function getTestPaperRecord(query) {
return request({ return request({
url: '/school-paper/testPaperRecord/' + id, url: '/school-paper/testPaperRecordDetail/getStudentAnswerRecordList',
method: 'get' method: 'get',
params: query
}) })
} }
...@@ -36,12 +37,26 @@ export function addTestPaperRecord(data) { ...@@ -36,12 +37,26 @@ export function addTestPaperRecord(data) {
// 修改答题记录 // 修改答题记录
export function updateTestPaperRecord(data) { export function updateTestPaperRecord(data) {
return request({ return request({
url: '/school-paper/testPaperRecord', url: '/school-paper/testPaperRecordDetail',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 批卷完成
// export function completeReadOver(query) {
// return request({
// url: '',
// method: 'get',
// data: query
// })
// }
export function completeReadOver(query) {
return request({
url: '/school-paper/testPaperRecord/completeReadOver',
method: 'get',
params: query
})
}
// 删除答题记录 // 删除答题记录
export function delTestPaperRecord(id) { export function delTestPaperRecord(id) {
return request({ return request({
......
<template> <template>
<div class="upload-file"> <div class="upload-file">
<el-upload <el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload" :file-list="fileList" :limit="limit"
multiple :on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess" :show-file-list="false"
:action="uploadFileUrl" :headers="headers" :disabled="disabled" class="upload-file-uploader" ref="fileUpload">
:before-upload="handleBeforeUpload"
:file-list="fileList"
:limit="limit"
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:show-file-list="false"
:headers="headers"
class="upload-file-uploader"
ref="fileUpload"
>
<!-- 上传按钮 --> <!-- 上传按钮 -->
<el-button size="mini" type="primary">选取文件</el-button> <el-button size="mini" type="primary">选取文件</el-button>
<!-- 上传提示 --> <!-- 上传提示 -->
...@@ -31,7 +20,7 @@ ...@@ -31,7 +20,7 @@
<el-link :href="`${file.url}`" :underline="false" target="_blank"> <el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span> <span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link> </el-link>
<div class="ele-upload-list__item-content-action"> <div class="ele-upload-list__item-content-action" v-if="!disabled">
<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link> <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
</div> </div>
</li> </li>
...@@ -67,6 +56,10 @@ export default { ...@@ -67,6 +56,10 @@ export default {
isShowTip: { isShowTip: {
type: Boolean, type: Boolean,
default: true default: true
},
disabled: {
type: Boolean,
default: false
} }
}, },
data() { data() {
...@@ -100,11 +93,11 @@ export default { ...@@ -100,11 +93,11 @@ export default {
} }
// 然后将数组转为对象数组 // 然后将数组转为对象数组
this.fileList = list.map(item => { this.fileList = list.map(item => {
item = { url: item.url,name:item.name}; item = { url: item.url, name: item.name };
// item.uid = item.uid || new Date().getTime() + temp++; // item.uid = item.uid || new Date().getTime() + temp++;
return item; return item;
}); });
console.log(this.fileList,'fileList---------') console.log(this.fileList, 'fileList---------')
} else { } else {
this.fileList = []; this.fileList = [];
return []; return [];
...@@ -157,7 +150,7 @@ export default { ...@@ -157,7 +150,7 @@ export default {
// 上传成功回调 // 上传成功回调
handleUploadSuccess(res, file) { handleUploadSuccess(res, file) {
if (res.code === 200) { if (res.code === 200) {
this.uploadList.push({ name: res.data.originalFilename, url: res.data.url}); this.uploadList.push({ name: res.data.originalFilename, url: res.data.url });
this.uploadedSuccessfully(); this.uploadedSuccessfully();
} else { } else {
this.number--; this.number--;
...@@ -186,7 +179,7 @@ export default { ...@@ -186,7 +179,7 @@ export default {
}, },
// 获取文件名称 // 获取文件名称
getFileName(name) { getFileName(name) {
console.log(name,'===========') console.log(name, '===========')
// 如果是url那么取最后的名字 如果不是直接返回 // 如果是url那么取最后的名字 如果不是直接返回
if (name.lastIndexOf("/") > -1) { if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1); return name.slice(name.lastIndexOf("/") + 1);
...@@ -211,18 +204,21 @@ export default { ...@@ -211,18 +204,21 @@ export default {
.upload-file-uploader { .upload-file-uploader {
margin-bottom: 5px; margin-bottom: 5px;
} }
.upload-file-list .el-upload-list__item { .upload-file-list .el-upload-list__item {
border: 1px solid #e4e7ed; border: 1px solid #e4e7ed;
line-height: 2; line-height: 2;
margin-bottom: 10px; margin-bottom: 10px;
position: relative; position: relative;
} }
.upload-file-list .ele-upload-list__item-content { .upload-file-list .ele-upload-list__item-content {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
color: inherit; color: inherit;
} }
.ele-upload-list__item-content-action .el-link { .ele-upload-list__item-content-action .el-link {
margin-right: 10px; margin-right: 10px;
} }
......
<template> <template>
<div class="component-upload-image"> <div class="component-upload-image">
<el-upload <el-upload multiple :action="uploadImgUrl" list-type="picture-card" :on-success="handleUploadSuccess"
multiple :before-upload="handleBeforeUpload" :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed"
:action="uploadImgUrl" ref="imageUpload" :on-remove="handleDelete" :show-file-list="true" :headers="headers" :file-list="fileList"
list-type="picture-card" :disabled="disabled" :on-preview="handlePictureCardPreview" :class="{ hide: this.fileList.length >= this.limit }">
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
:limit="limit"
:on-error="handleUploadError"
:on-exceed="handleExceed"
ref="imageUpload"
:on-remove="handleDelete"
:show-file-list="true"
:headers="headers"
:file-list="fileList"
:on-preview="handlePictureCardPreview"
:class="{ hide: this.fileList.length >= this.limit }"
>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
...@@ -32,16 +19,8 @@ ...@@ -32,16 +19,8 @@
的文件 的文件
</div> </div>
<el-dialog <el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body>
:visible.sync="dialogVisible" <img :src="dialogImageUrl" style="display: block; max-width: 100%; margin: 0 auto" />
title="预览"
width="800"
append-to-body
>
<img
:src="dialogImageUrl"
style="display: block; max-width: 100%; margin: 0 auto"
/>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -73,6 +52,10 @@ export default { ...@@ -73,6 +52,10 @@ export default {
type: Boolean, type: Boolean,
default: true, default: true,
}, },
disabled: {
type: Boolean,
default: false,
}
}, },
data() { data() {
return { return {
...@@ -206,7 +189,7 @@ export default { ...@@ -206,7 +189,7 @@ export default {
}, },
// 删除图片 // 删除图片
handleDelete(file) { handleDelete(file) {
console.log(file,'文件') console.log(file, '文件')
const findex = this.fileList.map((f) => f.url).indexOf(file.url); const findex = this.fileList.map((f) => f.url).indexOf(file.url);
if (findex > -1) { if (findex > -1) {
this.fileList.splice(findex, 1); this.fileList.splice(findex, 1);
...@@ -266,6 +249,7 @@ export default { ...@@ -266,6 +249,7 @@ export default {
::v-deep.hide .el-upload--picture-card { ::v-deep.hide .el-upload--picture-card {
display: none; display: none;
} }
// 去掉动画效果 // 去掉动画效果
::v-deep .el-list-enter-active, ::v-deep .el-list-enter-active,
::v-deep .el-list-leave-active { ::v-deep .el-list-leave-active {
......
<template>
<!-- <div class="main">
<div class="tree"> -->
<Treeselect
v-model="value"
:options="options"
:placeholder="'请选择人员'"
:multiple="multiple"
@input="treeSelectInput"
@select="treeSelectChange"
@deselect="treeSelectDeselect"
@search-change="treeSelectSearch"
@open="treeSelectOpen"
@close="treeSelectClose"
/>
<!-- </div>
</div> -->
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
// import treeData from './data/tree'
export default {
data() {
return {
value: null,
options: []
}
},
props:{
multiple:{
type:false
}
},
components: { Treeselect },
mounted(){
// 延迟模拟请求数据
setTimeout(() => {
// this.options = treeData
// this.value = [ "1682295245318119426", "1682295184152584194"] // 测试回显操作
}, 300)
this.getDeptTree()
},
methods:{
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then(response => {
this.options = response.data;
});
},
// 选中触发(第一次回显的时候会触发,清除值的时候会触发, value值为undefined) input事件用于v-model双向绑定组件更新父组件值
treeSelectInput(value, instanceId) {
console.log(value, 'input事件')
console.log(this.value, 'this.value -- input') // 这个不需要 延迟
},
// 选中触发(清除值的时候不会触发)
treeSelectChange(raw, instanceId) {
console.log(raw, '当前的对象')
let self = this
setTimeout(() => { // 如果用到this.value 需要setTimeout延迟一下拿到最新的值
console.log(this.value, 'this.value -- select')
if (!this.multiple) {
if (raw.children == undefined) {
} else {
if (self.value == raw.id) {
self.value = null
}
}
}
})
},
// 移除选项时触发 当设置multiple为true时生效 raw为当前移除的对象
treeSelectDeselect(raw, instanceId) {
console.log(raw, 'deselect-->>')
},
// 搜索
treeSelectSearch(searchQuery, instanceId) {
console.log(searchQuery, '当前搜索的值')
},
// 展开触发
treeSelectOpen(instanceId) {
console.log('展开了')
},
// 关闭触发
treeSelectClose(value, instanceId) {
console.log(value, '当前的value值')
},
// 字段默认 id label 用于规范化数据源
tenantIdnormalizer(node, instanceId) {
if (node.children && !node.children.length) {
delete node.children
}
return {
id: node.id,
label: node.title,
children: node.children
}
}
}
}
</script>
<style scoped>
.main {
width: 100%;
height: 100%;
padding: 60px 0 0 200px;
}
.main .tree {
width: 240px;
height: 40px;
}
::v-deep .vue-treeselect__label {
color: #606266;
}
</style>
\ No newline at end of file
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