mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 12:56:45 +08:00
feat:合并
This commit is contained in:
@@ -19,3 +19,6 @@ export const GetCourseStudent = (obj) => http.get('/admin/student/getCourseStude
|
||||
|
||||
// 查询评估管理-管理学员的学习信息
|
||||
export const QueryAssessmentManageMessage = (obj) => http.post('/admin/assessment/manage/queryAssessmentManageMessage', obj)
|
||||
|
||||
// 评估管理评估详情查看
|
||||
export const QueryAssessmentDetail = (obj) => http.post('/admin/assessment/manage/queryAssessmentDetail', obj)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
v-if="Assessvisible"
|
||||
:visible="Assessvisible"
|
||||
class="drawerStyle assessment"
|
||||
placement="right"
|
||||
@@ -25,9 +26,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 +37,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
|
||||
class="box1"
|
||||
style="margin-left: 55px; margin-top: 20px; margin-bottom: 30px"
|
||||
>
|
||||
<div class="asstype">选择2:</div>
|
||||
<a-radio :value="2">没用</a-radio>
|
||||
<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-group>
|
||||
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
|
||||
</div>
|
||||
<div v-else-if="values.type==3" class="assessbox" style="margin-top: 30px">
|
||||
</div>
|
||||
<div style="margin-bottom:30px;"></div>
|
||||
</div>
|
||||
<!-- 多项选择 -->
|
||||
<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="asstype">评估类型:</div>
|
||||
<div class="typename">问答题</div>
|
||||
@@ -60,7 +91,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 +100,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-if="values[0].questionType==4" class="assessbox" style="margin-top: 30px">
|
||||
<div class="box1">
|
||||
<div class="asstype">评估类型:</div>
|
||||
<div class="typename">评分题</div>
|
||||
@@ -81,26 +113,18 @@
|
||||
<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].selectAnswer ? '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)
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -352,6 +352,7 @@ export default {
|
||||
"pageNo": state.currentPage,
|
||||
"pageSize": state.pageSize,
|
||||
"studentName": state.name,
|
||||
"status": state.projectName,
|
||||
"targetId": props.datasource.projectId,
|
||||
"taskId": props.datasource.courseId,
|
||||
"type": 1
|
||||
@@ -361,6 +362,7 @@ export default {
|
||||
"pageNo": state.currentPage,
|
||||
"pageSize": state.pageSize,
|
||||
"studentName": state.name,
|
||||
"status": state.projectName,
|
||||
"targetId": props.datasource.projectId,
|
||||
"taskId": props.datasource.courseId,
|
||||
"type": 1
|
||||
|
||||
@@ -371,6 +371,7 @@
|
||||
"pageNo": state.currentPage,
|
||||
"pageSize": state.pageSize,
|
||||
"studentName": state.name,
|
||||
"status": state.projectName,
|
||||
"targetId": props.datasource.routerId,
|
||||
"taskId": props.datasource.courseId,
|
||||
"type": 1
|
||||
@@ -380,6 +381,7 @@
|
||||
"pageNo": state.currentPage,
|
||||
"pageSize": state.pageSize,
|
||||
"studentName": state.name,
|
||||
"status": state.projectName,
|
||||
"targetId": props.datasource.routerId,
|
||||
"taskId": props.datasource.courseId,
|
||||
"type": 1
|
||||
|
||||
@@ -581,7 +581,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
<!--
|
||||
|
||||
<a-tab-pane key="13" tab="共享文档">
|
||||
<div class="sametab">
|
||||
<div class="Gcon">
|
||||
@@ -592,6 +592,7 @@
|
||||
<div class="onetitle">上传共享文档</div>
|
||||
<div class="oneedi">
|
||||
<a-switch
|
||||
size="small"
|
||||
v-model:checked="attachSwitch"
|
||||
@change="checkedClose"
|
||||
></a-switch>
|
||||
@@ -612,7 +613,7 @@
|
||||
>
|
||||
<img
|
||||
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=""
|
||||
/>
|
||||
</a-upload>
|
||||
@@ -628,9 +629,10 @@
|
||||
<div
|
||||
v-for="item in fileList"
|
||||
:key="item.uid"
|
||||
style="margin-bottom: 30px;"
|
||||
class="docListStyle"
|
||||
>
|
||||
<img
|
||||
<!-- <img
|
||||
src="@/assets/images/basicinfo/download.png"
|
||||
style="
|
||||
cursor: pointer;
|
||||
@@ -639,10 +641,37 @@
|
||||
margin-right: 40px;
|
||||
"
|
||||
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;">{{
|
||||
item.name
|
||||
}}</span>
|
||||
<a :href="item.response?item.response.data:''" style="margin-left: 5px">下载</a>
|
||||
<span
|
||||
style="color: #4ea6ff; cursor: pointer"
|
||||
@click="deFile(item.uid)"
|
||||
@@ -654,7 +683,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
-->
|
||||
|
||||
|
||||
</a-tabs>
|
||||
</a-tab-pane>
|
||||
@@ -974,8 +1003,7 @@ export default defineComponent({
|
||||
} catch {
|
||||
state.fileList = [];
|
||||
}
|
||||
state.attachSwitch =
|
||||
res.data.data.projectTemplateInfo.attachSwitch == 1 ? true : false;
|
||||
state.attachSwitch = res.data.data.projectTemplateInfo.attachSwitch == 1 ? true : false;
|
||||
let data = res.data.data.stageList;
|
||||
console.log("data=====", 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) => {
|
||||
console.log(data, a);
|
||||
@@ -1299,6 +1356,7 @@ export default defineComponent({
|
||||
scoresum,
|
||||
checkedClose,
|
||||
editNotice,
|
||||
deFile
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user