|
@@ -2,32 +2,57 @@
|
|
|
<div>
|
|
|
<div style="background: #fff; padding: 10px 0; height: 100%">
|
|
|
<div class="sd_person_button">
|
|
|
- <span @click="setType(1)" :class="{ active: type == 1 }">全部</span>
|
|
|
- <span @click="setType(2)" :class="{ active: type == 2 }">本项目</span>
|
|
|
- <span @click="setType(3)" :class="{ active: type == 3 }">其他项目</span>
|
|
|
+ <span @click="setType(1)" :class="{ active: type == 1 }">项目目标设置</span>
|
|
|
+ <span @click="setType(2)" :class="{ active: type == 2 }">班级项目评价得分占比</span>
|
|
|
+ <!-- <span @click="setType(3)" :class="{ active: type == 3 }">其他项目</span> -->
|
|
|
</div>
|
|
|
<div style="display: flex; width: 100%; height: calc(100% - 50px)">
|
|
|
- <div
|
|
|
- id="person_canvas1"
|
|
|
- class="echart"
|
|
|
- style="width: 50%; height: 100%"
|
|
|
- ></div>
|
|
|
- <div
|
|
|
- id="person_canvas2"
|
|
|
- class="echart"
|
|
|
- style="width: 50%; height: 100%; margin: 0 0 0 1rem"
|
|
|
- ></div>
|
|
|
+ <div id="person_canvas1" class="echart" v-if="type == 1"
|
|
|
+ style="width: 100%; height: 100%;display: flex;align-items: center;justify-content: center;">
|
|
|
+ <span v-if="!eJson">暂无数据</span>
|
|
|
+ </div>
|
|
|
+ <div id="person_canvas2" class="echart" v-if="type == 2" style="width: 100%; height: 100%;display: flex;align-items: center;justify-content: center;">
|
|
|
+ <div class="box2" v-if="work.length">
|
|
|
+ <div v-for="(item,index) in work" :key="index" class="target_box">
|
|
|
+ <div class="target_task">
|
|
|
+ <span>第{{item.stage+1}}阶段</span>
|
|
|
+ <span>任务{{item.task+1}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="target_content_box">
|
|
|
+ <div v-for="(target,k) in item.work" :key="index+'-'+k"
|
|
|
+ :style="{width:(target.count / item.count * 100)+'%',backgroundColor:color[k]}">
|
|
|
+
|
|
|
+ <el-tooltip :content="target.name+' '+target.count">
|
|
|
+ <span class="targetA">{{target.count}}</span>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span v-if="!work.length">暂无数据</span>
|
|
|
+
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { L } from 'caniuse-lite/data/browserVersions';
|
|
|
+
|
|
|
+
|
|
|
export default {
|
|
|
+ props: ["userid", "courseid"],
|
|
|
data() {
|
|
|
return {
|
|
|
chartObj2: null,
|
|
|
chartObj3: null,
|
|
|
+ color: [],
|
|
|
+ workW: [],
|
|
|
+ work: [],
|
|
|
+ eJson: "",
|
|
|
type: 1,
|
|
|
option2: {
|
|
|
//color:colors,
|
|
@@ -41,7 +66,7 @@ export default {
|
|
|
series: {
|
|
|
type: "sunburst",
|
|
|
data: [],
|
|
|
- radius: [20, "100%"],
|
|
|
+ radius: [20, "80%"],
|
|
|
itemStyle: {
|
|
|
borderRadius: 7,
|
|
|
borderWidth: 2,
|
|
@@ -53,51 +78,95 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
option3: {
|
|
|
- xAxis: {
|
|
|
- type: "category",
|
|
|
- data: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
|
|
|
- boundaryGap: false,
|
|
|
- splitLine: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
+ // title: {
|
|
|
+ // text: "项目活跃度:不同任务的学习时间占比",
|
|
|
+ // textStyle: {
|
|
|
+ // fontSize: 13,
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ tooltip: {
|
|
|
+ trigger: "axis",
|
|
|
+ axisPointer: {
|
|
|
+ // Use axis to trigger tooltip
|
|
|
+ type: "shadow", // 'shadow' as default; can also be 'line' or 'shadow'
|
|
|
},
|
|
|
},
|
|
|
+ grid: {
|
|
|
+ left: "15%",
|
|
|
+ right: "15%",
|
|
|
+ bottom: "15%",
|
|
|
+ top: "15%",
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ type: "value",
|
|
|
+ },
|
|
|
yAxis: {
|
|
|
type: "category",
|
|
|
- data: [
|
|
|
- "信息应用意识",
|
|
|
- "信息安全意识",
|
|
|
- "信息感知意识",
|
|
|
- "信息社会责任",
|
|
|
- "信息法律法规",
|
|
|
- "信息应用技能",
|
|
|
- "信息科学知识",
|
|
|
- "信息思维",
|
|
|
- "信息行为",
|
|
|
- ],
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
+ data: ["阶段1", "阶段2", "阶段3", "阶段4", "阶段5"],
|
|
|
},
|
|
|
- grid: {
|
|
|
- left: '20%',
|
|
|
- bottom: '10%',
|
|
|
- right: '10%',
|
|
|
- top: '10%',
|
|
|
+ legend: {
|
|
|
+ show: false
|
|
|
},
|
|
|
series: [
|
|
|
{
|
|
|
- name: "Punch Card",
|
|
|
- type: "scatter",
|
|
|
- symbolSize: function (val) {
|
|
|
- return val[2] * 2;
|
|
|
+ name: "任务1",
|
|
|
+ type: "bar",
|
|
|
+ stack: "total",
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ focus: "series",
|
|
|
+ },
|
|
|
+ data: [0, 0, 0, 0, 0],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "任务2",
|
|
|
+ type: "bar",
|
|
|
+ stack: "total",
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ focus: "series",
|
|
|
+ },
|
|
|
+ data: [0, 0, 0, 0, 0],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "任务3",
|
|
|
+ type: "bar",
|
|
|
+ stack: "total",
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
},
|
|
|
- data: [],
|
|
|
- animationDelay: function (idx) {
|
|
|
- return idx * 5;
|
|
|
+ emphasis: {
|
|
|
+ focus: "series",
|
|
|
},
|
|
|
+ data: [0, 0, 0, 0, 0],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "任务4",
|
|
|
+ type: "bar",
|
|
|
+ stack: "total",
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ focus: "series",
|
|
|
+ },
|
|
|
+ data: [0, 0, 0, 0, 0],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "任务5",
|
|
|
+ type: "bar",
|
|
|
+ stack: "total",
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ focus: "series",
|
|
|
+ },
|
|
|
+ data: [0, 0, 0, 0, 0],
|
|
|
},
|
|
|
],
|
|
|
},
|
|
@@ -111,97 +180,163 @@ export default {
|
|
|
});
|
|
|
//然后异步执行echarts的初始化函数
|
|
|
newPromise.then(() => {
|
|
|
- const chartObj2 = this.$echarts.init(
|
|
|
- //劳动课程
|
|
|
- this.$el.querySelector("#person_canvas1")
|
|
|
- );
|
|
|
- this.option2.series.data = [
|
|
|
- {
|
|
|
- name: "信息意识",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息应用意识",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息安全意识",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息感知意识",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息社会责任",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息伦理道德",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息法律法规",
|
|
|
- value: this.randomNum(1, 10),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息知识与技能",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息应用技能",
|
|
|
- value: 5,
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息科学知识",
|
|
|
- value: 10,
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息思维与行为",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息思维",
|
|
|
- value: this.randomNum(1, 10),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息行为",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- ];
|
|
|
- const chartObj3 = this.$echarts.init(
|
|
|
- //劳动课程
|
|
|
- this.$el.querySelector("#person_canvas2")
|
|
|
- );
|
|
|
- let data = [];
|
|
|
- for (var i = 1; i < 10; i++) {
|
|
|
- for (var j = 0; j < 9; j++) {
|
|
|
- var x = i;
|
|
|
- var y = j;
|
|
|
- var z = this.randomNum(0, 10);
|
|
|
- data.push([x, y, z]);
|
|
|
+ if (this.type == 1 && this.eJson) {
|
|
|
+ const chartObj2 = this.$echarts.init(
|
|
|
+ //劳动课程
|
|
|
+ this.$el.querySelector("#person_canvas1")
|
|
|
+ );
|
|
|
+ // this.option2.series.data = [
|
|
|
+ // {
|
|
|
+ // name: "信息意识",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息应用意识",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息安全意识",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息感知意识",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息社会责任",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息伦理道德",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息法律法规",
|
|
|
+ // value: this.randomNum(1, 10),
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息知识与技能",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息应用技能",
|
|
|
+ // value: 5,
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息科学知识",
|
|
|
+ // value: 10,
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息思维与行为",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息思维",
|
|
|
+ // value: this.randomNum(1, 10),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息行为",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+ var res = this.eJson;
|
|
|
+ var _array = [];
|
|
|
+ let i = 0;
|
|
|
+ for (var item in res) {
|
|
|
+ let num = Object.keys(res);
|
|
|
+ let count = 10 / num.length;
|
|
|
+ let _item = res[item];
|
|
|
+ _array.push({ name: _item.name, value: count, children: [] });
|
|
|
+ let j = 0;
|
|
|
+ for (var item2 in _item.child) {
|
|
|
+ let num2 = Object.keys(res);
|
|
|
+ let count2 = count / num2.length;
|
|
|
+ let _item2 = _item.child[item2];
|
|
|
+ _array[i].children.push({
|
|
|
+ name: _item2.name,
|
|
|
+ value: count2,
|
|
|
+ children: [],
|
|
|
+ });
|
|
|
+ for (var item3 in _item2.child) {
|
|
|
+ let num3 = Object.keys(res);
|
|
|
+ let count3 = count2 / num3.length;
|
|
|
+ let _item3 = _item2.child[item3];
|
|
|
+ _array[i].children[j].children.push({
|
|
|
+ name: _item3.name,
|
|
|
+ value: count3,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+ i++;
|
|
|
+ console.log(item);
|
|
|
+ }
|
|
|
+ this.option2.series.data = _array
|
|
|
+ // 初始化雷达图
|
|
|
+ this.chartObj2 = chartObj2;
|
|
|
+ this.chartObj2.setOption(this.option2);
|
|
|
+ } else if (this.type == 2) {
|
|
|
+ // const chartObj3 = this.$echarts.init(
|
|
|
+ // //劳动课程
|
|
|
+ // this.$el.querySelector("#person_canvas2")
|
|
|
+ // );
|
|
|
+ // let _array21 = [];
|
|
|
+ // let _array22 = [];
|
|
|
+ // let _array23 = [];
|
|
|
+ // let _array24 = [];
|
|
|
+ // let _array25 = [];
|
|
|
+ // for (var i = 0; i < 5; i++) {
|
|
|
+ // // this.option.series[0].data[i].value = this.randomNum(30, 80);
|
|
|
+ // _array21.push(this.randomNum(2, 20));
|
|
|
+ // _array22.push(this.randomNum(2, 20));
|
|
|
+ // _array23.push(this.randomNum(2, 20));
|
|
|
+ // _array24.push(this.randomNum(2, 20));
|
|
|
+ // _array25.push(this.randomNum(2, 20));
|
|
|
+ // }
|
|
|
+ // this.option3.series[0].data = _array21;
|
|
|
+ // this.option3.series[1].data = _array22;
|
|
|
+ // this.option3.series[2].data = _array23;
|
|
|
+ // this.option3.series[3].data = _array24;
|
|
|
+ // this.option3.series[4].data = _array25;
|
|
|
+
|
|
|
+ // this.chartObj3 = chartObj3;
|
|
|
+ // this.chartObj3.setOption(this.option3);
|
|
|
+ var _work = []
|
|
|
+
|
|
|
+ for (var i = 0; i < this.workW.length; i++) {
|
|
|
+ _work[i] = { stage: this.workW[i].stage, task: this.workW[i].task, work: [], count: 0 }
|
|
|
+ for (var j = 0; j < this.workW[i].work.length; j++) {
|
|
|
+ for (var k = 0; k < this.workW[i].work[j].target.length; k++) {
|
|
|
+ this.color.push(this.color16())
|
|
|
+ _work[i].work.push(this.workW[i].work[j].target[k])
|
|
|
+ _work[i].count += this.workW[i].work[j].target[k].count
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ this.work = _work;
|
|
|
+ console.log(_work);
|
|
|
}
|
|
|
- this.option3.series[0].data = data;
|
|
|
- // console.log(this.option.series[0].data);
|
|
|
- // 初始化雷达图
|
|
|
- this.chartObj2 = chartObj2;
|
|
|
- this.chartObj3 = chartObj3;
|
|
|
- this.chartObj2.setOption(this.option2);
|
|
|
- this.chartObj3.setOption(this.option3);
|
|
|
});
|
|
|
let _this = this;
|
|
|
window.addEventListener("resize", () => {
|
|
|
+ // if (_this.chartObj2) {
|
|
|
+ // _this.chartObj2.resize();
|
|
|
+ // _this.chartObj3.resize();
|
|
|
+ // }
|
|
|
+
|
|
|
if (_this.chartObj2) {
|
|
|
_this.chartObj2.resize();
|
|
|
+
|
|
|
+ }
|
|
|
+ if (_this.chartObj3) {
|
|
|
_this.chartObj3.resize();
|
|
|
}
|
|
|
});
|
|
@@ -219,87 +354,289 @@ export default {
|
|
|
break;
|
|
|
}
|
|
|
},
|
|
|
+ getInfo() {
|
|
|
+ let params = {
|
|
|
+ uid: this.userid,
|
|
|
+ cid: this.courseid,
|
|
|
+ };
|
|
|
+ console.log(this.userid);
|
|
|
+ if (!this.userid) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.ajax
|
|
|
+ .get(this.$store.state.api + "getUserInfo", params)
|
|
|
+ .then((res) => {
|
|
|
+ let chapters = JSON.parse(res.data[2][0].chapters);
|
|
|
+ var tool = 0;
|
|
|
+ let workJson = []
|
|
|
+ let _pWork = res.data[3];
|
|
|
+ let _allWork = res.data[4];
|
|
|
+ let _allComment = res.data[5];
|
|
|
+ let _isWorks = res.data[6];
|
|
|
+
|
|
|
+ this.eJson = res.data[2][0].content ? JSON.parse(res.data[2][0].content) : "";
|
|
|
+
|
|
|
+ for (var i = 0; i < chapters.length; i++) {
|
|
|
+ workJson[i] = { tool: 0, ptool: 0, work: 0, ishuo: 0, isCan: 0 }
|
|
|
+ for (
|
|
|
+ var j = 0;
|
|
|
+ j < chapters[i].chapterInfo[0].taskJson.length;
|
|
|
+ j++
|
|
|
+ ) {
|
|
|
+ // 1、电子白板,3、思维导图,6协同文档,7思维网格 16、作业提交,40.项目-学生互评 41.项目-下拉选择题 42.项目-录音功能
|
|
|
+ let _toolsAarry = [1, 3, 6, 7, 16, 15, 4, 40, 41, 42];
|
|
|
+ for (
|
|
|
+ var k = 0;
|
|
|
+ k < chapters[i].chapterInfo[0].taskJson[j].toolChoose.length;
|
|
|
+ k++
|
|
|
+ ) {
|
|
|
+ if (
|
|
|
+ _toolsAarry.indexOf(
|
|
|
+ chapters[i].chapterInfo[0].taskJson[j].toolChoose[k].tool[0]
|
|
|
+ ) != -1
|
|
|
+ ) {
|
|
|
+ tool++;
|
|
|
+ workJson[i].tool++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (var k = 0; k < _pWork.length; k++) {
|
|
|
+ if (_pWork[k].stage == i) {
|
|
|
+ workJson[i].ptool++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var k = 0; k < _allComment.length; k++) {
|
|
|
+ if (_allComment[k].stage == i) {
|
|
|
+ workJson[i].ishuo++
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ this.userinfo = res.data[0][0];
|
|
|
+ this.ccount = tool;
|
|
|
+ this.islearn = tool - parseInt(res.data[1][0].vcount);
|
|
|
+
|
|
|
+ this.iscount = res.data[1][0].vcount;
|
|
|
+ this.vcount = 0;
|
|
|
+
|
|
|
+ for (var i = 0; i < workJson.length; i++) {
|
|
|
+ if (workJson[i].ptool > workJson[i].tool) {
|
|
|
+ workJson[i].work = 5
|
|
|
+ } else if (workJson[i].tool === 0) {
|
|
|
+ workJson[i].work = 5
|
|
|
+ } else {
|
|
|
+ workJson[i].work = Math.round(workJson[i].ptool / workJson[i].tool * 100 / 20)
|
|
|
+ }
|
|
|
+ if (workJson[i].ptool) {
|
|
|
+ workJson[i].isCan = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.workJson = workJson
|
|
|
+
|
|
|
+ console.log(workJson);
|
|
|
+ this.setChart();
|
|
|
+ let _workW = []
|
|
|
+ for (var i = 0; i < _isWorks.length; i++) {
|
|
|
+ if (chapters[_isWorks[i].stage].chapterInfo[0].taskJson[_isWorks[i].task].eList) {
|
|
|
+ _workW.push({ stage: _isWorks[i].stage, task: _isWorks[i].task, rate: JSON.parse(_isWorks[i].rate), elist: chapters[_isWorks[i].stage].chapterInfo[0].taskJson[_isWorks[i].task].eList })
|
|
|
+ } else {
|
|
|
+ let elist = [
|
|
|
+ {
|
|
|
+ "value": "意识能力",
|
|
|
+ "score": 5,
|
|
|
+ "target": [
|
|
|
+ {
|
|
|
+ "name": "意识能力1",
|
|
|
+ "per": 0.5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "意识能力2",
|
|
|
+ "per": 0.5
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "value": "科学探究能力",
|
|
|
+ "score": 5,
|
|
|
+ "target": [
|
|
|
+ {
|
|
|
+ "name": "科学探究能力1",
|
|
|
+ "per": 0.5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "科学探究能力2",
|
|
|
+ "per": 0.5
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "value": "实践创新能力",
|
|
|
+ "score": 5,
|
|
|
+ "target": [
|
|
|
+ {
|
|
|
+ "name": "实践创新能力1",
|
|
|
+ "per": 0.5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "实践创新能力2",
|
|
|
+ "per": 0.5
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "value": "学习反思能力",
|
|
|
+ "score": 5,
|
|
|
+ "target": [
|
|
|
+ {
|
|
|
+ "name": "学习反思能力1",
|
|
|
+ "per": 0.5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "学习反思能力2",
|
|
|
+ "per": 0.5
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "value": "工程思维能力",
|
|
|
+ "score": 5,
|
|
|
+ "target": [
|
|
|
+ {
|
|
|
+ "name": "工程思维能力1",
|
|
|
+ "per": 0.5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "工程思维能力2",
|
|
|
+ "per": 0.5
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ _workW.push({ stage: _isWorks[i].stage, task: _isWorks[i].task, rate: JSON.parse(_isWorks[i].rate), elist: elist })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var i = 0; i < _workW.length; i++) {
|
|
|
+ _workW[i].work = []
|
|
|
+ for (var j = 0; j < _workW[i].elist.length; j++) {
|
|
|
+ for (var k = 0; k < _workW[i].elist[j].target.length; k++) {
|
|
|
+ _workW[i].elist[j].target[k].count = _workW[i].rate[_workW[i].elist[j].value] * _workW[i].elist[j].target[k].per
|
|
|
+ }
|
|
|
+ _workW[i].work.push({ name: _workW[i].elist[j].value, target: _workW[i].elist[j].target })
|
|
|
+ _workW[i].work[_workW[i].work.length - 1][_workW[i].elist[j].value] = _workW[i].rate[_workW[i].elist[j].value]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log('chapter=-----', chapters);
|
|
|
+ console.log('_workW=-----', _workW);
|
|
|
+ this.workW = _workW
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
+ },
|
|
|
setType(type) {
|
|
|
this.type = type;
|
|
|
- this.option2.series.data = [
|
|
|
- {
|
|
|
- name: "信息意识",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息应用意识",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息安全意识",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息感知意识",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息社会责任",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息伦理道德",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息法律法规",
|
|
|
- value: this.randomNum(1, 10),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息知识与技能",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息应用技能",
|
|
|
- value: 5,
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息科学知识",
|
|
|
- value: 10,
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息思维与行为2",
|
|
|
- value: 15,
|
|
|
- children: [
|
|
|
- {
|
|
|
- name: "信息思维",
|
|
|
- value: this.randomNum(1, 10),
|
|
|
- },
|
|
|
- {
|
|
|
- name: "信息行为",
|
|
|
- value: this.randomNum(1, 5),
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- ];
|
|
|
- this.chartObj2.setOption(this.option2);
|
|
|
- let data = [];
|
|
|
- for (var i = 1; i < 10; i++) {
|
|
|
- for (var j = 0; j < 9; j++) {
|
|
|
- var x = i;
|
|
|
- var y = j;
|
|
|
- var z = this.randomNum(0, 10);
|
|
|
- data.push([x, y, z]);
|
|
|
- }
|
|
|
+ if (this.chartObj2) {
|
|
|
+ this.chartObj2.dispose();
|
|
|
+
|
|
|
}
|
|
|
- this.option3.series[0].data = data;
|
|
|
- this.chartObj3.setOption(this.option3);
|
|
|
+ if (this.chartObj3) {
|
|
|
+ this.chartObj3.dispose();
|
|
|
+
|
|
|
+ }
|
|
|
+ this.getInfo();
|
|
|
+ // this.option2.series.data = [
|
|
|
+ // {
|
|
|
+ // name: "信息意识",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息应用意识",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息安全意识",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息感知意识",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息社会责任",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息伦理道德",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息法律法规",
|
|
|
+ // value: this.randomNum(1, 10),
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息知识与技能",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息应用技能",
|
|
|
+ // value: 5,
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息科学知识",
|
|
|
+ // value: 10,
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息思维与行为2",
|
|
|
+ // value: 15,
|
|
|
+ // children: [
|
|
|
+ // {
|
|
|
+ // name: "信息思维",
|
|
|
+ // value: this.randomNum(1, 10),
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: "信息行为",
|
|
|
+ // value: this.randomNum(1, 5),
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+ // this.chartObj2.setOption(this.option2);
|
|
|
+ // let data = [];
|
|
|
+ // for (var i = 1; i < 10; i++) {
|
|
|
+ // for (var j = 0; j < 9; j++) {
|
|
|
+ // var x = i;
|
|
|
+ // var y = j;
|
|
|
+ // var z = this.randomNum(0, 10);
|
|
|
+ // data.push([x, y, z]);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // this.option3.series[0].data = data;
|
|
|
+ // this.chartObj3.setOption(this.option3);
|
|
|
+ },
|
|
|
+ color16() {//十六进制颜色随机
|
|
|
+ var r = Math.floor(Math.random() * 256);
|
|
|
+ var g = Math.floor(Math.random() * 256);
|
|
|
+ var b = Math.floor(Math.random() * 256);
|
|
|
+ var color = '#' + r.toString(16) + g.toString(16) + b.toString(16);
|
|
|
+ return color;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ userid(newValue, oldValue) {
|
|
|
+ this.getInfo();
|
|
|
},
|
|
|
},
|
|
|
mounted() {
|
|
|
this.$nextTick(() => {
|
|
|
- this.setChart();
|
|
|
+ this.getInfo();
|
|
|
});
|
|
|
},
|
|
|
};
|
|
@@ -322,4 +659,53 @@ export default {
|
|
|
border-bottom: 2px solid rgb(30, 146, 255);
|
|
|
color: rgb(30, 146, 255);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+.target_box {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: 80%;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+
|
|
|
+.target_box+.target_box {
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.target_task {
|
|
|
+ width: 100px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ color: rgb(91, 91, 91);
|
|
|
+}
|
|
|
+
|
|
|
+.target_content_box {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: calc(100% - 100px);
|
|
|
+}
|
|
|
+
|
|
|
+.target_content_box div {
|
|
|
+ height: 50px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.box2 {
|
|
|
+ margin-top: 40px;
|
|
|
+ height: 80%;
|
|
|
+ width: 100%;
|
|
|
+ overflow: auto;
|
|
|
+}
|
|
|
+
|
|
|
+.targetA {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
</style>
|