feat:增加评估管理学员情况列表-查看评估详情答题信息展示

This commit is contained in:
wyx
2023-01-07 18:19:03 +08:00
parent 288fa545d1
commit beeb3fcbc7
3 changed files with 98 additions and 32 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 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

@@ -25,9 +25,10 @@
<div class="asscontent">-</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">
<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="asstype">评估类型</div>
<div class="typename">单选</div>
@@ -35,24 +36,53 @@
<div class="box1" style="margin-left: 64px">
<div class="asstype">题干</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px">
这个课程你觉得对你有用吗
{{values[0]?.singleStemName}}
</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="asstype">选择1</div>
<a-radio :value="1">有用</a-radio>
<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.singleOptionName}}
</div>
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
</div>
<div
class="box1"
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 style="margin-bottom:30px;"></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-else-if="values[0].questionType==3" class="assessbox" style="margin-top: 30px">
<div class="box1">
<div class="asstype">评估类型</div>
<div class="typename">问答题</div>
@@ -60,7 +90,7 @@
<div class="box1" style="margin-left: 64px">
<div class="asstype">标题</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px">
对这个课程有什么建议吗
{{values[0]?.assessmentQaTitle}}
</div>
</div>
<div
@@ -69,11 +99,12 @@
>
<div class="asstype">描述</div>
<div style="color: rgba(51, 51, 51, 1); font-size: 14px">
希望以后这样的课程能够躲开让我们多多了解
{{ values[0]?.assessmentQaDescribe }}
</div>
</div>
</div>
<div v-else class="assessbox" style="margin-top: 30px">
<!-- 评分题 -->
<div v-else-if="values[0].questionType==4" class="assessbox" style="margin-top: 30px">
<div class="box1">
<div class="asstype">评估类型</div>
<div class="typename">评分题</div>
@@ -81,26 +112,19 @@
<div class="box1" style="margin-left: 64px">
<div class="asstype">标题</div>
<div style="color: rgba(153, 153, 153, 1); font-size: 14px">
请给当前课程打分
{{values[0]?.assessmentScTitle}}{{ values[0]?.assessmentMinScore }}{{ values[0]?.assessmentMaxScore }}
</div>
</div>
<div class="lastbox">
<div class="sorcetext">非常不满意</div>
<div class="sorcebox">
<div class="numbox">1</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 class="sorcebox" v-for="(iittem, index) in [1,2,3,4,5,6,7,8,9,10]" :key="index">
<div :class="index+1 >= values[0]?.assessmentMinScore && index+1 <= values[0]?.assessmentMaxScore ? 'numbox' : 'numbox1'">{{ iittem }}</div>
</div>
<div class="sorcetext">非常满意</div>
</div>
</div>
</div>
<div style="margin-top: 30px;margin-bottom: 60px;"></div>
@@ -115,6 +139,8 @@
<script>
import { reactive, toRefs } from "vue";
import * as api from "@/api/indexTaskManage";
export default {
name: "ViewAssess",
props: {
@@ -126,6 +152,12 @@ export default {
type: String,
default: "",
},
basicdata: {
type: Object,
default: function () {
return {};
},
},
datasource: {
type: Object,
default: function () {
@@ -136,15 +168,46 @@ export default {
setup(props, ctx) {
const state = reactive({
value: "1",
questionListArr: [],
valueq1:"",
valueq2:""
});
const closeDrawer = () => {
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) => {
console.log("state", bool);
if(bool){
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

@@ -86,7 +86,7 @@
<!-- 分页 -->
</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>
<script>