feat:合并

This commit is contained in:
lixg
2023-01-07 19:50:56 +08:00
6 changed files with 168 additions and 40 deletions

View File

@@ -18,4 +18,7 @@ export const QueryOnlineManagementDetail = (obj) => http.post('/admin/online/man
export const GetCourseStudent = (obj) => http.get('/admin/student/getCourseStudent', {params: obj}) export const GetCourseStudent = (obj) => http.get('/admin/student/getCourseStudent', {params: obj})
// 查询评估管理-管理学员的学习信息 // 查询评估管理-管理学员的学习信息
export const QueryAssessmentManageMessage = (obj) => http.post('/admin/assessment/manage/queryAssessmentManageMessage', obj) export const QueryAssessmentManageMessage = (obj) => http.post('/admin/assessment/manage/queryAssessmentManageMessage', obj)
// 评估管理评估详情查看
export const QueryAssessmentDetail = (obj) => http.post('/admin/assessment/manage/queryAssessmentDetail', obj)

View File

@@ -1,5 +1,6 @@
<template> <template>
<a-drawer <a-drawer
v-if="Assessvisible"
:visible="Assessvisible" :visible="Assessvisible"
class="drawerStyle assessment" class="drawerStyle assessment"
placement="right" placement="right"
@@ -25,9 +26,10 @@
<div class="asscontent">-</div> <div class="asscontent">-</div>
</div> </div>
<div <div
v-for="(values, index) in [{type:1},{type:2},{type:3},{type:4},{type:2},{type:3},{type:4}]" v-for="(values, index) in questionListArr"
:key="index"> :key="index">
<div v-if="values.type==1 || values.type==2" class="assessbox" style="margin-top: 30px"> <!-- 单项选择 -->
<div v-if="values[0].questionType==1" class="assessbox" style="margin-top: 30px">
<div class="box1"> <div class="box1">
<div class="asstype">评估类型</div> <div class="asstype">评估类型</div>
<div class="typename">单选</div> <div class="typename">单选</div>
@@ -35,24 +37,53 @@
<div class="box1" style="margin-left: 64px"> <div class="box1" style="margin-left: 64px">
<div class="asstype">题干</div> <div class="asstype">题干</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px"> <div style="color: rgba(153, 153, 153, 1); font-size: 14px">
这个课程你觉得对你有用吗 {{values[0]?.singleStemName}}
</div> </div>
</div> </div>
<a-radio-group v-model:value="value"> <div v-for="(iitem,indexs) in values" :key="indexs">
<div class="box1" style="margin-left: 55px; margin-top: 20px"> <div class="box1" style="margin-left: 55px; margin-top: 20px">
<div class="asstype">选择1</div> <div class="asstype">选择{{indexs+1}}</div>
<a-radio :value="1">有用</a-radio> <div style="display:flex;justify-content:center;align-items:center;">
<div v-if="iitem.select" style="display:flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;">
<div style="width:8px;height:8px;border-radius:4px;background-color:#409eff;"></div>
</div>
<div v-else style="width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;"></div>
{{iitem.singleOptionName}}
</div>
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
</div> </div>
<div </div>
class="box1" <div style="margin-bottom:30px;"></div>
style="margin-left: 55px; margin-top: 20px; margin-bottom: 30px"
>
<div class="asstype">选择2</div>
<a-radio :value="2">没用</a-radio>
</div>
</a-radio-group>
</div> </div>
<div v-else-if="values.type==3" class="assessbox" style="margin-top: 30px"> <!-- 多项选择 -->
<div v-if="values[0].questionType==2" class="assessbox" style="margin-top: 30px">
<div class="box1">
<div class="asstype">评估类型</div>
<div class="typename">多选</div>
</div>
<div class="box1" style="margin-left: 64px">
<div class="asstype">题干</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px">
{{values[0]?.multipleStemName}}
</div>
</div>
<div v-for="(iitem,indexs) in values" :key="indexs">
<div class="box1" style="margin-left: 55px; margin-top: 20px">
<div class="asstype">选择{{indexs+1}}</div>
<div style="display:flex;justify-content:center;align-items:center;">
<div v-if="iitem.select" style="display:flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;">
<div style="width:8px;height:8px;border-radius:4px;background-color:#409eff;"></div>
</div>
<div v-else style="width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;"></div>
{{iitem.multipleOptionName}}
</div>
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
</div>
</div>
<div style="margin-bottom:30px;"></div>
</div>
<!-- 问答题 -->
<div v-if="values[0].questionType==3" class="assessbox" style="margin-top: 30px">
<div class="box1"> <div class="box1">
<div class="asstype">评估类型</div> <div class="asstype">评估类型</div>
<div class="typename">问答题</div> <div class="typename">问答题</div>
@@ -60,7 +91,7 @@
<div class="box1" style="margin-left: 64px"> <div class="box1" style="margin-left: 64px">
<div class="asstype">标题</div> <div class="asstype">标题</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px"> <div style="color: rgba(153, 153, 153, 1); font-size: 14px">
对这个课程有什么建议吗 {{values[0]?.assessmentQaTitle}}
</div> </div>
</div> </div>
<div <div
@@ -69,11 +100,12 @@
> >
<div class="asstype">描述</div> <div class="asstype">描述</div>
<div style="color: rgba(51, 51, 51, 1); font-size: 14px"> <div style="color: rgba(51, 51, 51, 1); font-size: 14px">
希望以后这样的课程能够躲开让我们多多了解 {{ values[0]?.assessmentQaDescribe }}
</div> </div>
</div> </div>
</div> </div>
<div v-else class="assessbox" style="margin-top: 30px"> <!-- 评分题 -->
<div v-if="values[0].questionType==4" class="assessbox" style="margin-top: 30px">
<div class="box1"> <div class="box1">
<div class="asstype">评估类型</div> <div class="asstype">评估类型</div>
<div class="typename">评分题</div> <div class="typename">评分题</div>
@@ -81,26 +113,18 @@
<div class="box1" style="margin-left: 64px"> <div class="box1" style="margin-left: 64px">
<div class="asstype">标题</div> <div class="asstype">标题</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px"> <div style="color: rgba(153, 153, 153, 1); font-size: 14px">
请给当前课程打分 {{values[0]?.assessmentScTitle}}{{ values[0]?.assessmentMinScore }}{{ values[0]?.assessmentMaxScore }}
</div> </div>
</div> </div>
<div class="lastbox"> <div class="lastbox">
<div class="sorcetext">非常不满意</div> <div class="sorcetext">非常不满意</div>
<div class="sorcebox"> <div class="sorcebox" v-for="(iittem, index) in [1,2,3,4,5,6,7,8,9,10]" :key="index">
<div class="numbox">1</div> <div :class="index+1 == values[0].selectAnswer ? 'numbox' : 'numbox1'">{{ iittem }}</div>
<div class="numbox">2</div>
<div class="numbox">3</div>
<div class="numbox">4</div>
<div class="numbox">5</div>
<div class="numbox">6</div>
<div class="numbox">7</div>
<div class="numbox">8</div>
<div class="numbox1">9</div>
<div class="numbox1">10</div>
</div> </div>
<div class="sorcetext">非常满意</div> <div class="sorcetext">非常满意</div>
</div> </div>
</div> </div>
</div> </div>
<div style="margin-top: 30px;margin-bottom: 60px;"></div> <div style="margin-top: 30px;margin-bottom: 60px;"></div>
@@ -115,6 +139,8 @@
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs } from "vue";
import * as api from "@/api/indexTaskManage";
export default { export default {
name: "ViewAssess", name: "ViewAssess",
props: { props: {
@@ -126,6 +152,12 @@ export default {
type: String, type: String,
default: "", default: "",
}, },
basicdata: {
type: Object,
default: function () {
return {};
},
},
datasource: { datasource: {
type: Object, type: Object,
default: function () { default: function () {
@@ -136,15 +168,46 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
value: "1", value: "1",
questionListArr: [],
valueq1:"",
valueq2:""
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Assessvisible", false); ctx.emit("update:Assessvisible", false);
}; };
// 数组去空对象
function formateArr(arr1) {
console.log(arr1, arr1[0], arr1[0].length)
let newarr = []
for (let i = 0; i < arr1.length; i++) {
if (arr1[i].length !== 0) {
newarr.push(arr1[i])
}
}
return newarr
}
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
if(bool){ if(bool){
console.log('我是传递过来的参数', props.datasource) console.log('我是传递过来的参数', props.datasource)
console.log('我是传递过来的参数2', props.basicdata)
api.QueryAssessmentDetail({
"assessmentSubmitId": props.datasource.assessmentSubmitId,
"courseId": props.datasource.courseId,
"studentId": props.datasource.studentId
}).then(res=>{
console.log(res)
if(res.data.code==200){
let qarr = [res.data.data.assessmentEssayQuestionDtoList, res.data.data.assessmentMultipleChoiceDtoList,res.data.data.assessmentScoringQuestionDtoList,res.data.data.assessmentSingleChoiceDtoList]
let newarr = formateArr(qarr).sort((a, b) => { return a[0].orderNumber - b[0].orderNumber})
state.questionListArr = newarr
console.log('我是经过排序后的题目',newarr)
}
}).catch(err=>{
console.log(err)
})
} }
}; };

View File

@@ -352,6 +352,7 @@ export default {
"pageNo": state.currentPage, "pageNo": state.currentPage,
"pageSize": state.pageSize, "pageSize": state.pageSize,
"studentName": state.name, "studentName": state.name,
"status": state.projectName,
"targetId": props.datasource.projectId, "targetId": props.datasource.projectId,
"taskId": props.datasource.courseId, "taskId": props.datasource.courseId,
"type": 1 "type": 1
@@ -361,6 +362,7 @@ export default {
"pageNo": state.currentPage, "pageNo": state.currentPage,
"pageSize": state.pageSize, "pageSize": state.pageSize,
"studentName": state.name, "studentName": state.name,
"status": state.projectName,
"targetId": props.datasource.projectId, "targetId": props.datasource.projectId,
"taskId": props.datasource.courseId, "taskId": props.datasource.courseId,
"type": 1 "type": 1

View File

@@ -371,6 +371,7 @@
"pageNo": state.currentPage, "pageNo": state.currentPage,
"pageSize": state.pageSize, "pageSize": state.pageSize,
"studentName": state.name, "studentName": state.name,
"status": state.projectName,
"targetId": props.datasource.routerId, "targetId": props.datasource.routerId,
"taskId": props.datasource.courseId, "taskId": props.datasource.courseId,
"type": 1 "type": 1
@@ -380,6 +381,7 @@
"pageNo": state.currentPage, "pageNo": state.currentPage,
"pageSize": state.pageSize, "pageSize": state.pageSize,
"studentName": state.name, "studentName": state.name,
"status": state.projectName,
"targetId": props.datasource.routerId, "targetId": props.datasource.routerId,
"taskId": props.datasource.courseId, "taskId": props.datasource.courseId,
"type": 1 "type": 1

View File

@@ -581,7 +581,7 @@
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
<!--
<a-tab-pane key="13" tab="共享文档"> <a-tab-pane key="13" tab="共享文档">
<div class="sametab"> <div class="sametab">
<div class="Gcon"> <div class="Gcon">
@@ -591,7 +591,8 @@
<div class="box"></div> <div class="box"></div>
<div class="onetitle">上传共享文档</div> <div class="onetitle">上传共享文档</div>
<div class="oneedi"> <div class="oneedi">
<a-switch <a-switch
size="small"
v-model:checked="attachSwitch" v-model:checked="attachSwitch"
@change="checkedClose" @change="checkedClose"
></a-switch> ></a-switch>
@@ -612,7 +613,7 @@
> >
<img <img
src="@/assets/images/basicinfo/cloud.png" src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 34px; height: 34px" style="cursor: pointer; width: 24px; height: 24px; margin-left: 8px;margin-bottom: 3px;"
alt="" alt=""
/> />
</a-upload> </a-upload>
@@ -628,9 +629,10 @@
<div <div
v-for="item in fileList" v-for="item in fileList"
:key="item.uid" :key="item.uid"
style="margin-bottom: 30px;"
class="docListStyle" class="docListStyle"
> >
<img <!-- <img
src="@/assets/images/basicinfo/download.png" src="@/assets/images/basicinfo/download.png"
style=" style="
cursor: pointer; cursor: pointer;
@@ -639,10 +641,37 @@
margin-right: 40px; margin-right: 40px;
" "
alt="" alt=""
/> /> -->
<img v-if="
item.name.indexOf('jpg') !== -1 ||
item.name.indexOf('jpeg') !== -1 ||
item.name.indexOf('png') !== -1
"
style="width: 27px;height: 32px;margin-right: 40px;"
src="@/assets/images/coursewareManage/pngpic.png" />
<div v-else>
<img v-if="item.name.indexOf('doc') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/docpic.png" />
<div v-else>
<img v-if="item.name.indexOf('xls') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/xlspic.png" />
<div v-else>
<img v-if="item.name.indexOf('ppt') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/pptpic.png" />
<div v-else>
<img v-if="item.name.indexOf('pdf') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/pdfpic.png" />
<div v-else>
<img v-if="item.name.indexOf('zip') !== -1"
style="width: 27px;height: 32px;margin-right: 40px;"
src="@/assets/images/coursewareManage/zippic.png" />
<img v-else style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/docpic.png" />
</div>
</div>
</div>
</div>
</div>
<span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ <span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
item.name item.name
}}</span> }}</span>
<a :href="item.response?item.response.data:''" style="margin-left: 5px">下载</a>
<span <span
style="color: #4ea6ff; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="deFile(item.uid)" @click="deFile(item.uid)"
@@ -654,7 +683,7 @@
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
-->
</a-tabs> </a-tabs>
</a-tab-pane> </a-tab-pane>
@@ -974,8 +1003,7 @@ export default defineComponent({
} catch { } catch {
state.fileList = []; state.fileList = [];
} }
state.attachSwitch = state.attachSwitch = res.data.data.projectTemplateInfo.attachSwitch == 1 ? true : false;
res.data.data.projectTemplateInfo.attachSwitch == 1 ? true : false;
let data = res.data.data.stageList; let data = res.data.data.stageList;
console.log("data=====", data); console.log("data=====", data);
for (let i in data) { for (let i in data) {
@@ -1197,6 +1225,35 @@ export default defineComponent({
} }
}; };
// 删除图片按钮
const deFile = (id) => {
console.log(id);
let index = state.fileList.findIndex((item) => {
item.uid == id;
});
state.fileList.splice(index, 1);
let str = JSON.stringify(state.fileList);
api
.templateEdit({
sourceBelongId: state.projectInfo.sourceBelongId,
projectTemplateId: localStorage.getItem("projectTemplateId"),
attach: str,
})
.then((res) => {
console.log(res)
message.destroy();
message.success("删除成功");
return
})
.catch((err) => {
console.log(err)
message.destroy();
message.warning("删除失败");
return
});
};
// 设置上传图片开关 // 设置上传图片开关
const checkedClose = (data, a) => { const checkedClose = (data, a) => {
console.log(data, a); console.log(data, a);
@@ -1299,6 +1356,7 @@ export default defineComponent({
scoresum, scoresum,
checkedClose, checkedClose,
editNotice, editNotice,
deFile
}; };
}, },
}); });

View File

@@ -86,7 +86,7 @@
<!-- 分页 --> <!-- 分页 -->
</div> </div>
</div> </div>
<view-assess v-model:Assessvisible="Assessvisible" :datasource="evalDataSource" :evalName="basicInfo.assessmentName"/> <view-assess v-model:Assessvisible="Assessvisible" :datasource="evalDataSource" :evalName="basicInfo.assessmentName" :basicdata="basicInfo"/>
</template> </template>
<script> <script>