|
@@ -40,7 +40,11 @@
|
|
|
:value="item.userid"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-model="chooseDy" placeholder="请选择阶段" @change="searchWork1">
|
|
|
+ <el-select
|
|
|
+ v-model="chooseDy"
|
|
|
+ placeholder="请选择阶段"
|
|
|
+ @change="searchWork1"
|
|
|
+ >
|
|
|
<el-option label="所有阶段" value></el-option>
|
|
|
<el-option
|
|
|
v-for="(item, index) in dyList"
|
|
@@ -49,7 +53,11 @@
|
|
|
:value="item.id"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-model="chooseTask" placeholder="请选择任务" @change="searchWork2">
|
|
|
+ <el-select
|
|
|
+ v-model="chooseTask"
|
|
|
+ placeholder="请选择任务"
|
|
|
+ @change="searchWork2"
|
|
|
+ >
|
|
|
<el-option label="所有任务" value></el-option>
|
|
|
<el-option
|
|
|
v-for="(item, index) in dyList[chooseDy]
|
|
@@ -77,30 +85,62 @@
|
|
|
:row-class-name="tableRowClassName"
|
|
|
stripe
|
|
|
>
|
|
|
- <el-table-column prop="sName" label="姓名" min-width="15" align="center"></el-table-column>
|
|
|
- <el-table-column prop="class" label="班级" min-width="20" align="center">
|
|
|
+ <el-table-column
|
|
|
+ prop="sName"
|
|
|
+ label="姓名"
|
|
|
+ min-width="15"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="class"
|
|
|
+ label="班级"
|
|
|
+ min-width="20"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.class ? scope.row.class : "暂无班级" }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="course" label="项目" min-width="20" align="center"></el-table-column>
|
|
|
- <el-table-column prop="course" label="阶段" min-width="20" align="center">
|
|
|
+ <el-table-column
|
|
|
+ prop="course"
|
|
|
+ label="项目"
|
|
|
+ min-width="20"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="course"
|
|
|
+ label="阶段"
|
|
|
+ min-width="20"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
- <div>{{ dyList.length > 0 ? dyList[scope.row.stage].name : "" }}</div>
|
|
|
+ <div>
|
|
|
+ {{ dyList.length > 0 ? dyList[scope.row.stage].name : "" }}
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="course" label="任务" min-width="20" align="center">
|
|
|
+ <el-table-column
|
|
|
+ prop="course"
|
|
|
+ label="任务"
|
|
|
+ min-width="20"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
{{
|
|
|
- dyList.length > 0
|
|
|
- ? dyList[scope.row.stage].taskList[scope.row.task].name
|
|
|
- : ""
|
|
|
+ dyList.length > 0
|
|
|
+ ? dyList[scope.row.stage].taskList[scope.row.task].name
|
|
|
+ : ""
|
|
|
}}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="time" label="时间" width="200px" align="center"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="time"
|
|
|
+ label="时间"
|
|
|
+ width="200px"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
<el-table-column label="操作" width="200px">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
@@ -114,7 +154,8 @@
|
|
|
scope.row.task
|
|
|
)
|
|
|
"
|
|
|
- >查看作业</el-button>
|
|
|
+ >查看作业</el-button
|
|
|
+ >
|
|
|
<!-- <el-button
|
|
|
type="primary"
|
|
|
size="small"
|
|
@@ -132,7 +173,8 @@
|
|
|
scope.row.task
|
|
|
)
|
|
|
"
|
|
|
- >导出报告</el-button>
|
|
|
+ >导出报告</el-button
|
|
|
+ >
|
|
|
<!-- <el-button
|
|
|
class="de_button"
|
|
|
type="primary"
|
|
@@ -155,17 +197,20 @@
|
|
|
<div class="course_t">
|
|
|
<span>
|
|
|
{{
|
|
|
- "第" + (sInfo.stage + 1) + "阶段 " + dyList[sInfo.stage].name
|
|
|
+ "第" +
|
|
|
+ (sInfo.stage + 1) +
|
|
|
+ "阶段 " +
|
|
|
+ dyList[sInfo.stage].name
|
|
|
}}
|
|
|
</span>
|
|
|
<!-- <span>{{ "任务"+(sInfo.task + 1)+' ' + dyList[sInfo.stage].taskList[sInfo.task].name }}</span> -->
|
|
|
</div>
|
|
|
<span>
|
|
|
{{
|
|
|
- "任务" +
|
|
|
- (sInfo.task + 1) +
|
|
|
- " " +
|
|
|
- dyList[sInfo.stage].taskList[sInfo.task].name
|
|
|
+ "任务" +
|
|
|
+ (sInfo.task + 1) +
|
|
|
+ " " +
|
|
|
+ dyList[sInfo.stage].taskList[sInfo.task].name
|
|
|
}}-{{ sInfo.sName }}
|
|
|
</span>
|
|
|
<!-- <span v-if="item.askJson" @click="checkAsk(item.askJson)">查看问卷</span> -->
|
|
@@ -173,16 +218,26 @@
|
|
|
<div class="zyBox">
|
|
|
<div class="left">
|
|
|
<div class="left_top">
|
|
|
- <div class="bigImg" v-if="worksDetail.img && worksDetail.img.length">
|
|
|
+ <div
|
|
|
+ class="bigImg"
|
|
|
+ v-if="worksDetail.img && worksDetail.img.length"
|
|
|
+ >
|
|
|
<img :src="worksDetail.img[worksDetail.imgIndex].src" alt />
|
|
|
</div>
|
|
|
- <div class="thumbnail" v-if="worksDetail.img && worksDetail.img.length">
|
|
|
+ <div
|
|
|
+ class="thumbnail"
|
|
|
+ v-if="worksDetail.img && worksDetail.img.length"
|
|
|
+ >
|
|
|
<div
|
|
|
v-for="(item, index) in worksDetail.img"
|
|
|
:key="index"
|
|
|
:class="worksDetail.imgIndex == index ? 'isClick' : ''"
|
|
|
>
|
|
|
- <img :src="item.src" alt @click="worksDetail.imgIndex = index" />
|
|
|
+ <img
|
|
|
+ :src="item.src"
|
|
|
+ alt
|
|
|
+ @click="worksDetail.imgIndex = index"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="work_nopicture" v-else>暂无上传截图</div>
|
|
@@ -194,9 +249,17 @@
|
|
|
>{{ "任务"+(sInfo.task + 1)+' ' + dyList[sInfo.stage].taskList[sInfo.task].name }}</div>-->
|
|
|
<div class="ask_Answer" v-if="worksDetail.askInfo">
|
|
|
<div class="ask_Answer_title">问卷调查</div>
|
|
|
- <div class="ask_Answer_content" v-if="!worksDetail.askInfo.length">暂无提交问卷</div>
|
|
|
+ <div
|
|
|
+ class="ask_Answer_content"
|
|
|
+ v-if="!worksDetail.askInfo.length"
|
|
|
+ >
|
|
|
+ 暂无提交问卷
|
|
|
+ </div>
|
|
|
<div class="ask_body" v-else>
|
|
|
- <div v-for="(item, index) in worksDetail.askInfo" :key="index">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in worksDetail.askInfo"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
<span>
|
|
|
问卷-
|
|
|
{{ item.askTitle }}
|
|
@@ -211,8 +274,15 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="width: 310px; margin-right: 10px">
|
|
|
- <div class="sd_score" style="box-sizing: border-box; width: 100%; box-shadow: none">
|
|
|
- <div class="score_box" v-for="(item, index) in worksDetail.eList" :key="index">
|
|
|
+ <div
|
|
|
+ class="sd_score"
|
|
|
+ style="box-sizing: border-box; width: 100%; box-shadow: none"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="score_box"
|
|
|
+ v-for="(item, index) in worksDetail.eList"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
<el-tooltip
|
|
|
class="item"
|
|
|
effect="dark"
|
|
@@ -221,7 +291,10 @@
|
|
|
>
|
|
|
<span>{{ item.value }}</span>
|
|
|
</el-tooltip>
|
|
|
- <el-rate style="min-width: 120px" v-model="worksDetail.rateList[item.value]"></el-rate>
|
|
|
+ <el-rate
|
|
|
+ style="min-width: 120px"
|
|
|
+ v-model="worksDetail.rateList[item.value]"
|
|
|
+ ></el-rate>
|
|
|
</div>
|
|
|
<!-- <div class="score_box">
|
|
|
<span>意识能力</span>
|
|
@@ -260,7 +333,12 @@
|
|
|
<div class="right">
|
|
|
<div class="comment" v-if="worksDetail.answerInfo">
|
|
|
<div class="comment_title">问答</div>
|
|
|
- <div class="other_Answer" v-if="!worksDetail.answerInfo.length">暂无提交问答</div>
|
|
|
+ <div
|
|
|
+ class="other_Answer"
|
|
|
+ v-if="!worksDetail.answerInfo.length"
|
|
|
+ >
|
|
|
+ 暂无提交问答
|
|
|
+ </div>
|
|
|
<div class="comment_body" v-else>
|
|
|
<div
|
|
|
class="answer_body"
|
|
@@ -360,7 +438,11 @@
|
|
|
</div>
|
|
|
<div class="a_addBox">
|
|
|
<div style="font-size: 16px; color: #c7c7c7">问卷内容</div>
|
|
|
- <div class="a_add_box" v-for="(item, index) in askJson.askJson" :key="index">
|
|
|
+ <div
|
|
|
+ class="a_add_box"
|
|
|
+ v-for="(item, index) in askJson.askJson"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
<div class="a_add_head">
|
|
|
<div style="display: flex">
|
|
|
{{ index + 1 + "、" }}
|
|
@@ -376,7 +458,8 @@
|
|
|
:label="checkIndex1"
|
|
|
class="redioStyle"
|
|
|
disabled
|
|
|
- >{{ item3 }}</el-radio>
|
|
|
+ >{{ item3 }}</el-radio
|
|
|
+ >
|
|
|
</el-radio-group>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -384,7 +467,9 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="dialogVisible4 = false">关 闭</el-button>
|
|
|
+ <el-button type="primary" @click="dialogVisible4 = false"
|
|
|
+ >关 闭</el-button
|
|
|
+ >
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -530,6 +615,91 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ // 雷达图的数据
|
|
|
+ radarOption: {
|
|
|
+ splitNumber: 5,
|
|
|
+ tooltip: {
|
|
|
+ triggerOn: "mousemove",
|
|
|
+ //雷达图的tooltip不会超出div,也可以设置position属性,position定位的tooltip 不会随着鼠标移动而位置变化,不友好
|
|
|
+ confine: true,
|
|
|
+ enterable: true, //鼠标是否可以移动到tooltip区域内
|
|
|
+ backgroundColor: "rgba(255,255,255,0.7)",
|
|
|
+ textStyle: {
|
|
|
+ // 文字样式
|
|
|
+ align: "left",
|
|
|
+ },
|
|
|
+ left: "right",
|
|
|
+ top: "bottom",
|
|
|
+ },
|
|
|
+ radar: {
|
|
|
+ shape: "circle",
|
|
|
+ center: ["50%", "50%"],
|
|
|
+ axisName: {
|
|
|
+ textStyle: {
|
|
|
+ // 文字样式
|
|
|
+ color: "#58a5e6",
|
|
|
+ },
|
|
|
+ formatter: function (value, indicator) {
|
|
|
+ value = value.replace(/\S{3}/g, function (match) {
|
|
|
+ return match + "\n";
|
|
|
+ });
|
|
|
+ // return "{a|" + value + "}";
|
|
|
+ return "";
|
|
|
+ },
|
|
|
+ rich: {
|
|
|
+ a: {
|
|
|
+ fontSize: 12,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ indicator: [
|
|
|
+ // 雷达图的指示器,用来指定雷达图中的多个变量(维度)
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ // 雷达图背景的颜色,在这儿随便设置了一个颜色,完全不透明度为0,就实现了透明背景
|
|
|
+ splitArea: {
|
|
|
+ show: true,
|
|
|
+ areaStyle: {
|
|
|
+ color: "rgba(255,0,0,0)", // 图表背景的颜色
|
|
|
+ },
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ width: 1,
|
|
|
+ color: "rgba(131,141,158,.1)", // 设置网格的颜色
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "能力图", // tooltip中的标题
|
|
|
+ type: "radar", // 表示是雷达图
|
|
|
+ symbol: "circle", // 拐点的样式,还可以取值'rect','angle'等
|
|
|
+ symbolSize: 8, // 拐点的大小
|
|
|
+ areaStyle: {
|
|
|
+ normal: {
|
|
|
+ width: 1,
|
|
|
+ opacity: 0.2,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ // 设置各个指标原始值
|
|
|
+ value: [],
|
|
|
+ // 设置区域边框和区域的颜色
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: "#58a5e6",
|
|
|
+ lineStyle: {
|
|
|
+ color: "#58a5e6",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
askJson: {},
|
|
|
dyList: [],
|
|
|
userAarray: [],
|
|
@@ -703,12 +873,19 @@ export default {
|
|
|
|
|
|
setTimeout(() => {
|
|
|
var _ooption = JSON.parse(JSON.stringify(this.ooption));
|
|
|
- var _option = JSON.parse(JSON.stringify(this.option));
|
|
|
+ // var _option = JSON.parse(JSON.stringify(this.option));
|
|
|
+ var _option = JSON.parse(JSON.stringify(this.radarOption));
|
|
|
+
|
|
|
+ for (var i = 0; i < _ooption.length; i++) {
|
|
|
+ _option.radar.indicator.push({ name: _ooption[i].name, max: 5 });
|
|
|
+ _option.series[0].data[0].value.push(_ooption[i].value);
|
|
|
+ }
|
|
|
+ console.log(_option);
|
|
|
if (this.chartObj) {
|
|
|
- _option.series[0].data = _ooption;
|
|
|
+ // _option.series[0].data = _ooption;
|
|
|
this.chartObj.setOption(_option);
|
|
|
} else {
|
|
|
- _option.series[0].data = _ooption;
|
|
|
+ // _option.series[0].data = _ooption;
|
|
|
this.setChart(_option);
|
|
|
}
|
|
|
// this.setChart(this.option);
|
|
@@ -882,7 +1059,7 @@ export default {
|
|
|
type: "success",
|
|
|
});
|
|
|
var _ooption = JSON.parse(JSON.stringify(this.ooption));
|
|
|
- var _option = JSON.parse(JSON.stringify(this.option));
|
|
|
+ // var _option = JSON.parse(JSON.stringify(this.option));
|
|
|
|
|
|
var _rate = this.worksDetail.rateList;
|
|
|
var _rateList = Object.keys(this.worksDetail.rateList);
|
|
@@ -892,8 +1069,15 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ var _option = JSON.parse(JSON.stringify(this.radarOption));
|
|
|
+
|
|
|
+ for (var i = 0; i < _ooption.length; i++) {
|
|
|
+ _option.radar.indicator.push({ name: _ooption[i].name, max: 5 });
|
|
|
+ _option.series[0].data[0].value.push(_ooption[i].value);
|
|
|
+ }
|
|
|
+ console.log(_option);
|
|
|
if (this.chartObj) {
|
|
|
- _option.series[0].data = _ooption;
|
|
|
+ // _option.series[0].data = _ooption;
|
|
|
this.chartObj.setOption(_option);
|
|
|
} else {
|
|
|
this.setChart(_ooption);
|