lsc 1 year ago
parent
commit
ce2749cbe4

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.e139e9bd7430848ce7cc1e57d74c2fd4.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.8bd1b5137932833f55f6.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.77b355a085a06ddf51d2bf482bbe0d4d.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.0d5285a5f32e69b02fad.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.77b355a085a06ddf51d2bf482bbe0d4d.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.77b355a085a06ddf51d2bf482bbe0d4d.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.0d5285a5f32e69b02fad.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.0d5285a5f32e69b02fad.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/manifest.3512a67a6213c2df4180.js.map


+ 26 - 11
src/components/pages/addCourse.vue

@@ -8338,18 +8338,27 @@ export default {
       this.testJson = isTestJson;
       this.$forceUpdate();
     },
-    pasteTask() {
-      let iframe = top.document.querySelectorAll("#AIChat iframe")[0];
-      if (!iframe) {
-        this.$message.error("请使用AI共创生成");
-        return;
-      }
-      let copyData = iframe.contentWindow.copyData;
-      if (!copyData || !copyData.tasksData || !copyData.tasksData.length) {
-        this.$message.error("请使用AI共创生成");
-        return;
+    pasteTask(taskJson) {
+      let stageTasksData = [];
+      if(taskJson){
+        stageTasksData = taskJson
+      }else {
+        let iframe = top.document.querySelectorAll("#AIChat iframe")[0];
+        let iframe2 = top.document.querySelectorAll("#AIChat aigpt")[0];
+        if (!iframe && !iframe2) {
+          this.$message.error("请使用AI共创生成");
+          return;
+        }
+        let copyData = iframe ? iframe.contentWindow.copyData : '';
+        let copyData2 = iframe2 ? iframe2.contentWindow.copyData : '';
+        if ((!copyData || !copyData.tasksData || !copyData.tasksData.length) && (!copyData2 || !copyData2.tasksData || !copyData2.tasksData.length)) {
+          this.$message.error("请使用AI共创生成");
+          return;
+        }
+        stageTasksData = copyData ? copyData.tasksData : copyData2 ? copyData2.tasksData : [{taskName:'',taskDecs:''}];
       }
-      let stageTasksData = copyData.tasksData;
+      
+      
       let taskA = [];
       let tasks = stageTasksData;
       for (var j = 0; j < tasks.length; j++) {
@@ -9962,6 +9971,9 @@ export default {
       if (copyData && copyData.tasksData && copyData.tasksData.length) {
         this.isPasteTask = true
       }
+      if (copyData2 && copyData2.tasksData && copyData2.tasksData.length) {
+        this.isPasteTask = true
+      }
     },
     searchImage() {
       var _this = this;
@@ -10317,6 +10329,9 @@ export default {
     window.pasteStage = function(json){
       _this.pasteStage(json)
     }
+    window.pasteTask = function(json){
+      _this.pasteTask(json)
+    }
   },
 };
 </script>

+ 1 - 1
src/components/pages/dataBoardNew/school/courseInfo/index.vue

@@ -32,7 +32,7 @@ export default {
               },
               series: [
                   {
-                      avoidLabelOverlap: true,  //是否启用防止标签重叠策略
+                      avoidLabelOverlap: true, //是否启用防止标签重叠策略
                       labelLine: { // 设置指示线的长度
                           length: 8,
                           length2: 5

+ 43 - 119
src/components/pages/dataBoardTest/course/chartList/bar.vue

@@ -1,11 +1,15 @@
 <template>
   <div class="data_body">
-    <div style="width: 100%; height: 100%">
-      <div
-        id="charts_canvas"
-        class="echart"
-        style="width: 100%; height: 100%"
-      ></div>
+    <div style="width: 100%; height: 100%;overflow: auto;">
+      <el-table :data="tableData" style="width: 100%" :header-cell-style="{ background: '#E0EAFB',color: '#000' }"
+        :row-class-name="tableRowClassName" class="tableClass">
+        <el-table-column prop="subject" label="序号" min-width="30" align="center">
+        </el-table-column>
+        <el-table-column prop="score1" label="教师姓名" min-width="100" align="center">
+        </el-table-column>
+        <el-table-column prop="score2" label="教师提交次数" min-width="90" align="center">
+        </el-table-column>
+      </el-table>
     </div>
   </div>
 </template>
@@ -13,143 +17,59 @@
 <script>
 export default {
   props: {
-    workList: {
+    courseNumberArray: {
       type: Array,
     },
   },
   data() {
     return {
-      chartObj: null,
-      ooption: {
-        xdata: [],
-        type: [],
-      },
-      option: {
-        title: {
-          text: "授课时长",
-          textStyle: {
-            fontSize: 12,
-          },
-          padding: [10, 0, 0, 10],
-        },
-        tooltip: {
-          trigger: "axis",
-          axisPointer: {
-            type: "shadow",
-          },
-        },
-        dataZoom: [
-          {
-            // start: 50,
-            type: "inside",
-            yAxisIndex: 0,
-          },
-          {
-            type: "slider",
-            yAxisIndex: 0,
-          },
-        ],
-        grid: {
-          top: "10%",
-          left: "5%",
-          right: "5%",
-          bottom: "5%",
-          containLabel: true,
-        },
-        xAxis: {
-          type: "value",
-          boundaryGap: [0, 0.01],
-        },
-        yAxis: {
-          type: "category",
-          // data: ["六年级", "五年级", "四年级", "三年级", "二年级", "一年级"],
-          data: [],
-        },
-        series: [
-          {
-            name: "授课时长(时)",
-            type: "bar",
-            // data: [60, 110, 25, 130, 65, 80],
-            data: [],
-            itemStyle: {
-              normal: {
-                color: function (params) {
-                  return "#106bff";
-                },
-              },
-            },
-          },
-        ],
-      },
+      tableData: [
+
+      ],
     };
   },
   methods: {
-    setChart(option) {
-      // 雷达图显示的标签
-      let newPromise = new Promise((resolve) => {
-        resolve();
-      });
-      //然后异步执行echarts的初始化函数
-      newPromise.then(() => {
-        const chartObj = this.$echarts.init(
-          this.$el.querySelector("#charts_canvas")
-        );
-        this.option.yAxis.data = option.xdata;
-        this.option.series[0].data = option.type;
-        // 初始化雷达图
-        this.chartObj = chartObj;
-        this.chartObj.setOption(this.option);
-      });
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "even_row";
+      } else {
+        return "";
+      }
     },
+    setArray(array){
+      this.tableData = []
+      for(var i = 0;i<array.length;i++){
+        this.tableData.push({
+          sum:array[i].course,
+          name:array[i].name
+        })
+      }
+      this.tableData = this.tableData.sort(function(a,b){
+        return b.sum - a.sum;
+      })
+    }
   },
   watch: {
-    workList: {
+    courseNumberArray: {
       immediate: true,
       deep: true,
       handler(newValue, oldValue) {
-        this.ooption = {
-          xdata: [],
-          type: [],
-        };
-        let _array = newValue;
-        for (var i = 0; i < _array.length; i++) {
-          this.ooption.xdata.push(_array[i].name);
-          this.ooption.type.push(_array[i].time);
-        }
-
-        if (!this.chartObj) {
-          this.setChart(this.ooption);
-        } else {
-          this.option.yAxis.data = this.ooption.xdata;
-          this.option.series[0].data = this.ooption.type;
-          this.chartObj.setOption(this.option);
-        }
+        // this.setArray(newValue)
         this.$forceUpdate();
       },
     },
   },
   mounted() {
-    this.ooption = {
-      xdata: [],
-      type: [],
-    };
-    let _array = this.workList;
-    for (var i = 0; i < _array.length; i++) {
-      this.ooption.xdata.push(_array[i].name);
-      this.ooption.type.push(_array[i].time);
-    }
-    this.setChart(this.ooption);
-    var _this = this;
-    window.addEventListener("resize", () => {
-      if (_this.chartObj) {
-        _this.chartObj.resize();
-      }
-    });
+    // this.setArray(this.courseNumberArray)
   },
 };
 </script>
 
 <style scoped>
+.el-table>>>.even_row {
+  background-color: #f2f7ff !important;
+}
+
 .data_body {
   height: 100%;
   /* display: flex; */
@@ -162,4 +82,8 @@ export default {
   width: 95%;
   background: #fff;
 }
+
+.tableClass >>> td, .tableClass >>> th{
+  padding: 5px 0;
+}
 </style>

+ 29 - 144
src/components/pages/dataBoardTest/course/chartList/cateRank.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="data_body">
-        <div style="width: 100%; height: 100%" :style="{minWidth:ooption.hours.length * 75 + 'px'}">
+        <div style="width: 100%; height: 100%" >
             <div id="charts_canvas" class="echart" style="width: 100%; height: 100%; "></div>
         </div>
     </div>
@@ -23,62 +23,40 @@ export default {
             },
             option: {
                 tooltip: {
-                    position: 'top',
-                    formatter: function (params) {
-                        // console.log(params);
-                        return params.marker + params.name + ' ' + params.data[2];//params.seriesName + '<br>' + params.
-
+                    trigger: 'axis',
+                    axisPointer: {
+                        type: 'shadow'
                     }
                 },
                 grid: {
-                    top: '5%',
-                    left: 0,
-                    bottom: '5%',
-                    right: '5%',
+                    left: '3%',
+                    right: '3%',
+                    bottom: '3%',
+                    top: '3%',
                     containLabel: true
                 },
-                xAxis: {
-                    type: 'category',
-                    data: [],
-                    boundaryGap: false,
-                    splitLine: {
-                        show: true
-                    },
-                    axisLine: {
-                        show: false
+                xAxis: [
+                    {
+                        type: 'value'
                     }
-                },
-                yAxis: {
-                    type: 'category',
-                    data: [],
-                    axisLine: {
-                        show: false
+                ],
+                yAxis: [
+                    {
+                        type: 'category',
+                        data: ['综合', '艺术', '英语', '数学', '语文'],
+                        axisTick: {
+                            alignWithLabel: true
+                        }
                     }
-                },
+                ],
                 series: [
                     {
-                        name: 'Punch Card',
-                        type: 'scatter',
-                        symbolSize: function (val) {
-                            return val[2] * 3;
-                        },
-                        data: [],
-                        animationDelay: function (idx) {
-                            return idx * 5;
-                        },
-                        itemStyle: {
-                            color: function(params) {
-                            // 根据行索引设置不同的颜色
-                            var row = params.value[1];
-                            var colorList = ['hsl(170, 80%, 75%)', 'hsl(300, 99%, 70%)', 'hsl(139, 93%, 60%)', 'hsl(56, 73%, 69%)', 'hsl(352, 98%, 69%)', 'hsl(288, 76%, 66%)', 'hsl(167, 89%, 60%)', 'hsl(83, 81%, 74%)', 'hsl(359, 84%, 66%)', 'hsl(208, 96%, 66%)', 'hsl(259, 82%, 62%)', 'hsl(224, 95%, 64%)', 'hsl(119, 89%, 71%)', 'hsl(35, 75%, 70%)', 'hsl(48, 73%, 76%)', 'hsl(10, 73%, 69%)', 'hsl(112, 88%, 71%)', 'hsl(90, 87%, 61%)', 'hsl(37, 83%, 66%)', 'hsl(192, 86%, 72%)'];
-                            return colorList[row % colorList.length];
-                            }
-                        }
+                        name: '',
+                        type: 'bar',
+                        barWidth: '60%',
+                        data: [100, 502, 200, 334, 390, 330, 220]
                     }
                 ]
-                // title: [],
-                // singleAxis: [],
-                // series: []
             },
         };
     },
@@ -94,67 +72,7 @@ export default {
                     //劳动课程
                     this.$el.querySelector("#charts_canvas")
                 );
-                const hours = option.hours
-                // [
-                //     // '语文', '数学', '英语', '科学', '体育', '音乐', '美术',
-                //     // '劳动', '其他',
-                // ];
-                // prettier-ignore
-                const days = option.days
-                // [
-                //     // '一年级', '二年级', '三年级', '四年级', '五年级', '六年级'
-                // ];
-                // prettier-ignore
-                const data = option.data
-                // [
-                //     // [0, 0, 2], [0, 1, 1], [0, 2, 3], [0, 3, 0], [0, 4, 5], [0, 5, 5], [0, 6, 7], [0, 7, 8], [0, 8, 1],
-                //     // [1, 0, 5], [1, 1, 1], [1, 2, 2], [1, 3, 0], [1, 4, 5], [1, 5, 7], [1, 6, 7], [1, 7, 8], [1, 8, 6],
-                //     // [2, 0, 5], [2, 1, 2], [2, 2, 0], [2, 3, 2], [2, 4, 1], [2, 5, 5], [2, 6, 4], [2, 7, 4], [2, 8, 1],
-                //     // [3, 0, 1], [3, 1, 1], [3, 2, 1], [3, 3, 0], [3, 4, 5], [3, 5, 2], [3, 6, 7], [3, 7, 8], [3, 8, 5],
-                //     // [4, 0, 5], [4, 1, 3], [4, 2, 0], [4, 3, 3], [4, 4, 4], [4, 5, 2], [4, 6, 3], [4, 7, 5], [4, 8, 1],
-                //     // [5, 0, 5], [5, 1, 1], [5, 2, 0], [5, 3, 0], [5, 4, 5], [5, 5, 5], [5, 6, 7], [5, 7, 8], [5, 8, 3],
-                // ];
-                const title = [];
-                const singleAxis = [];
-                const series = [];
-                // days.forEach(function (day, idx) {
-                //     title.push({
-                //         textBaseline: 'middle',
-                //         top: ((idx + 0.5) * 90) / days.length + '%',
-                //         text: day,
-                //         textStyle: {
-                //             fontSize: 12,
-                //         },
-                //     });
-                //     singleAxis.push({
-                //         left: 70,
-                //         type: 'category',
-                //         boundaryGap: false,
-                //         data: hours,
-                //         top: (idx * 90) / days.length + 5 + '%',
-                //         height: 90 / days.length - 10 + '%'
-                //     });
-                //     series.push({
-                //         singleAxisIndex: idx,
-                //         coordinateSystem: 'singleAxis',
-                //         type: 'scatter',
-                //         data: [],
-                //         symbolSize: function (dataItem) {
-                //             return dataItem[1] * 3;
-                //         }
-                //     });
-                // });
-                // data.forEach(function (dataItem) {
-                //     series[dataItem[0]].data.push([dataItem[1], dataItem[2]]);
-                // });
-                this.option.xAxis.data = hours
-                    this.option.yAxis.data = days
-                    this.option.series[0].data = data.map(function (item) {
-                        return [item[1], item[0], item[2]];
-                    })
-                // this.option.title = title
-                // this.option.singleAxis = singleAxis
-                // this.option.series = series
+        
                 // 初始化雷达图
                 this.chartObj = chartObj;
                 this.chartObj.setOption(this.option);
@@ -197,36 +115,7 @@ export default {
                     const title = [];
                     const singleAxis = [];
                     const series = [];
-                    // days.forEach(function (day, idx) {
-                    //     title.push({
-                    //         textBaseline: 'middle',
-                    //         top: ((idx + 0.5) * 90) / days.length + '%',
-                    //         text: day,
-                    //         textStyle: {
-                    //             fontSize: 12,
-                    //         },
-                    //     });
-                    //     singleAxis.push({
-                    //         left: 70,
-                    //         type: 'category',
-                    //         boundaryGap: false,
-                    //         data: hours,
-                    //         top: (idx * 90) / days.length + 5 + '%',
-                    //         height: 90 / days.length - 10 + '%'
-                    //     });
-                    //     series.push({
-                    //         singleAxisIndex: idx,
-                    //         coordinateSystem: 'singleAxis',
-                    //         type: 'scatter',
-                    //         data: [],
-                    //         symbolSize: function (dataItem) {
-                    //             return dataItem[1] * 3;
-                    //         }
-                    //     });
-                    // });
-                    // data.forEach(function (dataItem) {
-                    //     series[dataItem[0]].data.push([dataItem[1], dataItem[2]]);
-                    // });
+
                     this.option.xAxis.data = hours
                     this.option.yAxis.data = days
                     this.option.series[0].data = data.map(function (item) {
@@ -245,18 +134,14 @@ export default {
             immediate: true,
             deep: true,
             handler(newValue, oldValue) {
-                // newValue = newValue.filter(item => {
-                //     return ['一年级','二年级','三年级','四年级','五年级','六年级','七年级'].indexOf(item.name) !== -1
-                // })
+
                 this.setJson(newValue)
                 this.$forceUpdate();
             },
         },
     },
     mounted() {
-        // this.courseArray = this.courseArray.filter(item => {
-        //     return ['一年级','二年级','三年级','四年级','五年级','六年级','七年级'].indexOf(item.name) !== -1
-        // })
+        this.setChart(this.ooption);
         this.setJson(this.courseArray)
         var _this = this;
         window.addEventListener("resize", () => {
@@ -278,7 +163,7 @@ export default {
     padding: 0;
     width: 95%;
     background: #fff;
-    overflow: auto;
+    overflow: hidden;
 }
 </style>
   

+ 34 - 30
src/components/pages/dataBoardTest/course/chartList/courseAna.vue

@@ -21,37 +21,41 @@ export default {
       },
       option: {
         tooltip: {
-          trigger: "item",
-        },
-        grid: {
-          top: "5%",
-          left: "5%",
-          right: "5%",
-          bottom: "5%",
-          containLabel: true,
+          trigger: 'item'
         },
         series: [
           {
-            type: "pie",
-            radius: '50%',
-            avoidLabelOverlap: true,
+            avoidLabelOverlap: true, //是否启用防止标签重叠策略
+            labelLine: {
+              // 设置指示线的长度
+              length: 8,
+              length2: 5
+            },
+            label: {
+              fontSize: 12,
+              position: 'outer'
+              // alignTo:'labelLine'
+            },
+            labelLayout: {
+              hideOverlap: false
+            },
+            type: 'pie',
             emphasis: {
               label: {
                 show: true,
-                fontSize: 16,
-                fontWeight: "bold",
-              },
+                fontSize: 13,
+                fontWeight: 'bold'
+              }
             },
             data: [
-              // { value: 123, name: "一年级" },
-              // { value: 200, name: "二年级" },
-              // { value: 250, name: "三年级" },
-              // { value: 450, name: "四年级" },
-              // { value: 300, name: "五年级" },
-              // { value: 100, name: "六年级" },
-            ],
-          },
-        ],
+              { value: 1048, name: '校级' },
+              { value: 735, name: '区级' },
+              { value: 580, name: '国家级' },
+              { value: 484, name: '省级' },
+              { value: 300, name: '市级' }
+            ]
+          }
+        ]
       },
     };
   },
@@ -67,13 +71,13 @@ export default {
           //劳动课程
           this.$el.querySelector("#charts_canvas")
         );
-        this.option.series[0].data = this.ooption.data.filter(item => item.value !== 0);
-        chartObj.off('click')
-        let _this = this
-        chartObj.on('click', function (param) {
-          console.log(param);  //X轴的值
-          _this.$emit('openCourse', param.dataIndex)
-        });
+        // this.option.series[0].data = this.ooption.data.filter(item => item.value !== 0);
+        // chartObj.off('click')
+        // let _this = this
+        // chartObj.on('click', function (param) {
+        //   console.log(param);  //X轴的值
+        //   _this.$emit('openCourse', param.dataIndex)
+        // });
         // 初始化雷达图
         this.chartObj = chartObj;
         this.chartObj.setOption(this.option);

+ 29 - 27
src/components/pages/dataBoardTest/course/chartList/toolChart.vue

@@ -22,39 +22,41 @@ export default {
       chartObj: null,
       option: {
         tooltip: {
-          trigger: "item",
-        },
-        grid: {
-          left: 0,
-          right: 0,
-          bottom: 0,
-          containLabel: true,
+          trigger: 'item'
         },
         series: [
           {
-            type: "pie",
-            radius: ["40%", "70%"],
+            avoidLabelOverlap: true, //是否启用防止标签重叠策略
+            labelLine: {
+              // 设置指示线的长度
+              length: 8,
+              length2: 5
+            },
+            label: {
+              fontSize: 12,
+              position: 'outer'
+              // alignTo:'labelLine'
+            },
+            labelLayout: {
+              hideOverlap: false
+            },
+            type: 'pie',
             emphasis: {
               label: {
                 show: true,
-                fontSize: 14,
-                fontWeight: "bold",
-              },
-            },
-            labelLine: {
-              show: true,
+                fontSize: 13,
+                fontWeight: 'bold'
+              }
             },
-            // data: [
-            //   { value: 123, name: "思维类" },
-            //   { value: 200, name: "评价类" },
-            //   { value: 250, name: "学科类" },
-            //   { value: 450, name: "其他类" },
-            //   { value: 300, name: "逻辑类" },
-            //   { value: 100, name: "动作类" },
-            // ],
-            data: [],
-          },
-        ],
+            data: [
+              { value: 1048, name: '其他' },
+              { value: 735, name: '特等奖' },
+              { value: 580, name: '一等奖' },
+              { value: 484, name: '二等奖' },
+              { value: 300, name: '三等奖' }
+            ]
+          }
+        ]
       },
     };
   },
@@ -69,7 +71,7 @@ export default {
         const chartObj = this.$echarts.init(
           this.$el.querySelector("#charts_canvas")
         );
-        this.option.series[0].data = arrArray;
+        // this.option.series[0].data = arrArray;
         // 初始化雷达图
         this.chartObj = chartObj;
         this.chartObj.setOption(this.option);

+ 32 - 13
src/components/pages/dataBoardTest/course/chartList/workNum.vue

@@ -25,29 +25,33 @@ export default {
       },
       option: {
         xAxis: {
-          name: "任务数量",
+          name: "发展规划提交数",
           nameTextStyle: {
-            padding: [25, 0, 0, 0],
+            padding: [15, 0, 0, 0],
             verticalAlign:'top'
           },
           nameGap: -45
         },
         grid: {
-          top: "20%",
+          top: "10%",
           left: "5%",
           right: "5%",
           bottom: "15%",
           containLabel: true,
         },
         yAxis: {
-          name: "作业提交数量",
+          name: "教育观念提交数",
+          nameTextStyle: {
+            padding: [0, 0, 0, 40],
+            verticalAlign:'top'
+          },
         },
         color: ["#3681FC"],
         tooltip: {
           formatter: function (params) {
             return (
               params.marker +
-              params.data[2] +
+              // params.data[2] +
               "<br/>" +
               "任务数量:" +
               params.data[0] +
@@ -60,7 +64,28 @@ export default {
         series: [
           {
             symbolSize: 8,
-            data: [],
+            data: [ [10, 8],
+        [8, 6],
+        [13, 7],
+        [8, 8],
+        [11, 8],
+        [14, 7],
+        [13, 6],
+        [10, 6],
+        [14, 8],
+        [12, 6],
+        [9, 7],
+        [11, 7],
+        [3, 4],
+        [12, 7],
+        [2, 4],
+        [1, 3],
+        [4, 4],
+        [6, 7],
+        [12, 6],
+        [12, 8],
+        [7, 5],
+        [5, 5]],
             type: "scatter",
           },
         ],
@@ -79,14 +104,8 @@ export default {
           //劳动课程
           this.$el.querySelector("#charts_canvas")
         );
-        this.option.series[0].data = this.ooption.data;
+        // this.option.series[0].data = this.ooption.data;
 
-        chartObj.off('click')
-        let _this = this
-        chartObj.on('click', function (param) {
-          console.log(param);  //X轴的值
-          _this.$emit('openCourse', param.data[3])
-        });
         // 初始化雷达图
         this.chartObj = chartObj;
         this.chartObj.setOption(this.option);

+ 29 - 27
src/components/pages/dataBoardTest/course/chartList/workTime.vue

@@ -22,39 +22,41 @@ export default {
       chartObj: null,
       option: {
         tooltip: {
-          trigger: "item",
-        },
-        grid: {
-          left: 0,
-          right: 0,
-          bottom: 0,
-          containLabel: true,
+          trigger: 'item'
         },
         series: [
           {
-            type: "pie",
-            radius: ["40%", "70%"],
+            avoidLabelOverlap: true, //是否启用防止标签重叠策略
+            labelLine: {
+              // 设置指示线的长度
+              length: 8,
+              length2: 5
+            },
+            label: {
+              fontSize: 12,
+              position: 'outer'
+              // alignTo:'labelLine'
+            },
+            labelLayout: {
+              hideOverlap: false
+            },
+            type: 'pie',
             emphasis: {
               label: {
                 show: true,
-                fontSize: 14,
-                fontWeight: "bold",
-              },
-            },
-            labelLine: {
-              show: true,
+                fontSize: 13,
+                fontWeight: 'bold'
+              }
             },
-            // data: [
-            //   { value: 123, name: "思维类" },
-            //   { value: 200, name: "评价类" },
-            //   { value: 250, name: "学科类" },
-            //   { value: 450, name: "其他类" },
-            //   { value: 300, name: "逻辑类" },
-            //   { value: 100, name: "动作类" },
-            // ],
-            data: [],
-          },
-        ],
+            data: [
+              { value: 1048, name: '校级' },
+              { value: 735, name: '区级' },
+              { value: 580, name: '国家级' },
+              { value: 484, name: '省级' },
+              { value: 300, name: '市级' }
+            ]
+          }
+        ]
       },
     };
   },
@@ -69,7 +71,7 @@ export default {
         const chartObj = this.$echarts.init(
           this.$el.querySelector("#charts_canvas")
         );
-        this.option.series[0].data = arrArray;
+        // this.option.series[0].data = arrArray;
         // 初始化雷达图
         this.chartObj = chartObj;
         this.chartObj.setOption(this.option);

+ 134 - 208
src/components/pages/dataBoardTest/course/index.vue

@@ -9,218 +9,108 @@
         <div class="dataBox">
           <div class="info_box">
             <div class="info blueBG">
-              <span>课程总数</span>
-              <span>{{ allCourse }}</span>
+              <span>教师总数</span>
+              <span>{{ 113 }}</span>
             </div>
             <div class="info blueBG">
-              <span>本月新增课程环比</span>
-              <span v-if="loginCountMonthArray.length">{{ (loginCountMonthArray[loginCountMonthArray.length - 1].course) >
-                0 ? (((loginCountMonthArray[loginCountMonthArray.length - 1].course) / allCourse) * 100).toFixed(0) + '%'
-                : 0 }}</span>
+              <span>考核项目总数</span>
+              <span>{{ 9 }}</span>
             </div>
             <div class="info blueBG">
-              <span>模板课程总数</span>
-              <span>{{ 0 }}</span>
+              <span>提交人数</span>
+              <span>{{ 89 }}</span>
             </div>
             <div class="info blueBG">
-              <span>本月新增课程总数</span>
-              <span v-if="loginCountMonthArray.length">{{
-                loginCountMonthArray[loginCountMonthArray.length - 1].course
-              }}</span>
+              <span>数据总数</span>
+              <span>{{ 1113 }}</span>
             </div>
           </div>
-          <TeaFre style="height: calc(100% - 140px)" :monthArray="loginCountMonthArray"></TeaFre>
+          <div class="depth_box" style="height: calc(100% - 140px)">
+            <div class="depth">
+              <span>考核项目完成率</span>
+              <div>
+                <el-progress :width="100" type="circle" :percentage="70" :stroke-width="15" :format="format" color="#106BFF"></el-progress>
+              </div>
+            </div>
+            <div class="depth">
+              <span>教师项目提交率</span>
+              <div>
+                <el-progress :width="100" type="circle" :percentage="80" :stroke-width="15" :format="format" color="#106BFF"></el-progress>
+              </div>
+            </div>
+          </div>
+          <!-- <div style="height: calc(100% - 140px)">
+            <TeaFre style="height: calc(100%)" :monthArray="loginCountMonthArray"></TeaFre>
+          </div> -->
         </div>
       </div>
       <div class="bottom">
         <div class="titleBox">
-          <div class="title" :class="{ isClick: skType == 0 }" @click="skType = 0"
-            style="cursor: pointer; padding: 0 0 5px 0">
-            授课时长
+          <div class="title" >
+            培训心得
           </div>
-          <div class="title" :class="{ isClick: skType == 1 }" @click="skType = 1"
-            style="cursor: pointer; padding: 0 0 5px 0">
-            作业数量
-          </div>
-          <el-select v-if="skType == 0" v-model="lType" @change="typeChange1" class="selectBox" style="margin-left: auto">
-            <el-option label="年级" value="grade"></el-option>
-            <el-option label="主题" value="theme"></el-option>
-            <el-option label="学科" value="subject"></el-option>
-          </el-select>
-          <el-select v-if="skType == 1" v-model="lType1" @change="typeChange2" class="selectBox"
-            style="margin-left: auto">
-            <el-option label="年级" value="grade"></el-option>
-            <el-option label="主题" value="theme"></el-option>
-            <el-option label="学科" value="subject"></el-option>
-          </el-select>
         </div>
 
         <div class="dataBox">
-          <div class="info_box" style="width: 96%" v-if="skType == 0">
-            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
-              <span>累计时长</span>
-              <span>{{ allTime }}</span>
-            </div>
-            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
-              <span>课程实施总数</span>
-              <span>{{ courseLength }}</span>
-            </div>
-            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
-              <span>课均时长</span>
-              <span>{{
-                allTime == 0 ? 0 : (allTime / courseLength).toFixed(0)
-              }}</span>
-            </div>
-          </div>
-          <div class="info_box" style="width: 96%" v-if="skType == 1">
-            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
-              <span>作业数量</span>
-              <span>{{ worksCount }}</span>
-            </div>
-            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
-              <span>课程开展总数</span>
-              <span>{{ haveWorksCourse }}</span>
-            </div>
-            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
-              <span>课程平均作业数量</span>
-              <span>{{
-                worksCount == 0 ? 0 : (worksCount / haveWorksCourse).toFixed(0)
-              }}</span>
-            </div>
-          </div>
-          <Bar style="height: calc(100% - 100px)" v-if="skType == 0 && !oType" :workList="tedurArray"></Bar>
-          <ToolUse2 style="height: calc(100% - 100px)" v-if="skType == 0 && oType" :yearArray="courseWorksCountYearArray2"></ToolUse2>
-
-          <ToolUse style="height: calc(100% - 100px)" v-if="skType == 1 && !oType2"
-            :yearArray="courseWorksCountYearArray"></ToolUse>
-          <Bar2 style="height: calc(100% - 100px)" v-if="skType == 1 && oType2" :workList="tedurArray2"></Bar2>
-          <div class="otherCss" v-if="skType == 0">
-            <div v-if="!oType">切换为热力图</div>
-            <div v-if="oType">切换为柱状图</div>
-            <div class="otherImg" @click="otherEchart">
-              <img src="../../../../assets/icon/other.png" alt="" />
+          <div class="info_box" style="width: 96%" >
+            <div class="info blueBG">
+              <span>提交总数</span>
+              <span>{{ 257 }}</span>
             </div>
-          </div>
-          <div class="otherCss" v-if="skType == 1">
-            <div v-if="!oType2">切换为柱状图</div>
-            <div v-if="oType2">切换为热力图</div>
-            <div class="otherImg" @click="otherEchart2">
-              <img src="../../../../assets/icon/other.png" alt="" />
+            <div class="info blueBG">
+              <span>人均提交次数</span>
+              <span>{{ 4 }}</span>
             </div>
           </div>
+          <Bar style="height: calc(100% - 70px)" :workList="tedurArray"></Bar>
         </div>
       </div>
     </div>
     <div class="center">
       <div class="top">
-        <div class="titleBox">
-          <div class="title" :class="{ isClick: courseType == 0 }" @click="courseType = 0"
-            style="cursor: pointer; padding: 0 0 5px 0">
-            课程分布
-          </div>
-          <div class="title" :class="{ isClick: courseType == 1 }" @click="courseType = 1"
-            style="cursor: pointer; padding: 0 0 5px 0">
-            课程总数变化
+        <div class="titleBox" style="justify-content: space-between">
+          <div class="title">
+            教学设计
           </div>
+          <!-- <el-select v-model="cType" @change="typeChange" class="selectBox" v-if="toolType == 0">
+            <el-option label="全部" value=""></el-option>
+          </el-select> -->
         </div>
         <div class="dataBox">
-          <CateRank v-if="courseType == 0" style="height: calc(100%)" :courseArray="courseArray"></CateRank>
-          <CourseNum v-if="courseType == 1" style="height: calc(100%)" :weekCourse2="weekCourse2"></CourseNum>
+          <div class="info_box" style="width: 96%" >
+            <div class="info blueBG">
+              <span>提交总数</span>
+              <span>{{ 60 }}</span>
+            </div>
+            <div class="info blueBG">
+              <span>人均人数</span>
+              <span>{{ 39 }}</span>
+            </div>
+          </div>
+          <CateRank style="height:calc(100% - 70px);" :courseArray="courseArray"></CateRank>
         </div>
       </div>
       <div class="bottom">
         <div class="titleBox" style="justify-content: space-between">
-          <div class="title">课程实施程度</div>
+          <div class="title">教师活动</div>
         </div>
         <div class="dataBox">
-          <div class="allBox" v-if="!shType" style="height: calc(100% - 30px)">
-            <div class="allBox_left">
-              <CourseTime v-if="!shType" :pusaDep="pusaDep"></CourseTime>
-            </div>
-            <div class="allBox_right">
-              <div class="depth">
-                <span>已提交作业</span>
-                <div>
-                  <el-progress :width="80" type="circle" :percentage="allCourse
-                    ? parseInt(
-                      ((haveWorksCourse / allCourse) * 100).toFixed(0)
-                    )
-                    : 0
-                    " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
-                </div>
-              </div>
-              <div class="depth">
-                <span>设置评价</span>
-                <div>
-                  <el-progress :width="80" type="circle" :percentage="allCourse
-                    ? parseInt(((evaCount / allCourse) * 100).toFixed(0))
-                    : 0
-                    " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
-                </div>
-              </div>
-              <div class="depth">
-                <span>已评价课程</span>
-                <div>
-                  <el-progress :width="80" type="circle" :percentage="allCourse
-                    ? parseInt(
-                      ((evaWorksCount / allCourse) * 100).toFixed(0)
-                    )
-                    : 0
-                    " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
-                </div>
-              </div>
-              <div class="depth">
-                <span>教学评一体化</span>
-                <div>
-                  <el-progress :width="80" type="circle" :percentage="allCourse
-                    ? parseInt(
-                      ((evaWorksCount / allCourse) * 100).toFixed(0)
-                    )
-                    : 0
-                    " :stroke-width="5" :format="format" color="#106BFF"></el-progress>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div class="info_box" v-if="shType">
-            <div class="info blueBG" style="width: calc(100% / 4 - 10px)">
-              <span>平台实施课程总数</span>
-              <!-- <span>{{ count }}</span> -->
-              <span>{{ isCourseCount }}</span>
-            </div>
-            <div class="info blueBG" style="width: calc(100% / 4 - 10px)">
-              <span>平台实施课程占比</span>
-              <!-- <span>{{ weekCount }}</span> -->
-              <span>{{
-                isCourseCount
-                ? ((isCourseCount / allCourseCount) * 100).toFixed(0) + "%"
-                : "0%"
-              }}</span>
+          <div class="info_box">
+            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
+              <span>提交总数</span>
+              <span>{{ 62 }}</span>
             </div>
-            <div class="info blueBG" style="width: calc(100% / 4 - 10px)">
-              <span>课程平均任务数量</span>
-              <!-- <span>{{ weekCount }}</span> -->
-              <span>{{
-                isCourseCount ? (taskCount / isCourseCount).toFixed(0) : 0
-              }}</span>
+            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
+              <span>发展规划提交总数</span>
+              <span>{{ 30 }}</span>
             </div>
-            <div class="info blueBG" style="width: calc(100% / 4 - 10px)">
-              <span>课程平均作业数量</span>
-              <!-- <span>{{ weekCount }}</span> -->
-              <span>{{
-                isCourseCount ? (workCount / isCourseCount).toFixed(0) : 0
-              }}</span>
+            <div class="info blueBG" style="width: calc(100% / 3 - 10px)">
+              <span>教育观念提交总数</span>
+              <span>{{ 32 }}</span>
             </div>
           </div>
-          <WorkNum style="height: calc(100% - 95px)" :workNumList="workNumList" @openCourse="openCourse" v-if="shType">
+          <WorkNum style="height: calc(100% - 70px)" :workNumList="workNumList" >
           </WorkNum>
-          <div class="otherCss">
-            <div v-if="!shType">转换为散点图</div>
-            <div v-if="shType">转换为漏斗图</div>
-            <div class="otherImg" @click="shEchart">
-              <img src="../../../../assets/icon/other.png" alt="" />
-            </div>
-          </div>
         </div>
       </div>
     </div>
@@ -235,39 +125,48 @@
             ">
             <div class="title" :class="{ isClick: toolType == 0 }" @click="toolType = 0"
               style="cursor: pointer; padding: 0 0 5px 0">
-              课程占比
+              获奖级别
             </div>
             <div class="title" :class="{ isClick: toolType == 1 }" @click="toolType = 1"
               style="cursor: pointer; padding: 0 0 5px 0">
-              工具使用
+              获奖名次
             </div>
           </div>
-          <el-select v-model="cType4" @change="typeChange" class="selectBox" v-if="toolType == 0">
-            <!-- <el-option label="全部" value=""></el-option> -->
-            <el-option label="年级" value="grade"></el-option>
-            <el-option label="主题" value="theme"></el-option>
-            <el-option label="学科" value="subject"></el-option>
-          </el-select>
+          <!-- <el-select v-model="cType4" @change="typeChange" class="selectBox" v-if="toolType == 0">
+            <el-option label="全部" value=""></el-option>
+          </el-select> -->
         </div>
         <div class="dataBox">
-          <CourseAna style="height: calc(100%)" :courseNumberArray="courseNumberArray" v-if="toolType == 0"></CourseAna>
+          <div class="info_box" v-if="toolType == 0">
+            <div class="info blueBG">
+              <span>获奖总数</span>
+              <span>{{ 49 }}</span>
+            </div>
+            <div class="info blueBG">
+              <span>获奖人数</span>
+              <span>{{ 39 }}</span>
+            </div>
+          </div>
+          <CourseAna style="height: calc(100% - 70px)" :courseNumberArray="courseNumberArray" v-if="toolType == 0"></CourseAna>
           <ToolChart style="height: calc(100%)" :toolArray="toolList" v-if="toolType == 1"></ToolChart>
         </div>
       </div>
       <div class="bottom">
         <div class="titleBox">
-          <div class="title">课程协同情况</div>
+          <div class="title">德育获奖</div>
         </div>
         <div class="dataBox">
-          <WorkTime style="height: calc(100% - 25px)" :personArray="personList" v-if="xtType"></WorkTime>
-          <Subjuect style="height: calc(100% - 25px)" v-if="!xtType" :resultSubject="resultSubject"></Subjuect>
-          <div class="otherCss">
-            <div v-if="!xtType">转换为人员协同</div>
-            <div v-if="xtType">转换为学科协同</div>
-            <div class="otherImg" @click="xtEchart">
-              <img src="../../../../assets/icon/other.png" alt="" />
+          <div class="info_box" v-if="toolType == 0">
+            <div class="info blueBG">
+              <span>获奖总数</span>
+              <span>{{ 9 }}</span>
+            </div>
+            <div class="info blueBG">
+              <span>获奖人数</span>
+              <span>{{ 9 }}</span>
             </div>
           </div>
+          <WorkTime style="height: calc(100% - 70px)" :personArray="personList"></WorkTime>
         </div>
       </div>
     </div>
@@ -315,8 +214,8 @@ export default {
   data() {
     return {
       isLoading: false,
-      cType: "全部年级",
-      cType4: "grade",
+      cType: "",
+      cType4: "",
       cType7: "全部课程",
       toolType: 0,
       tType: 0,
@@ -466,7 +365,7 @@ export default {
         },
       ];
       this.ajax
-        .post(this.$store.state.api + "selectDataBoardCourseNew", params)
+        .post(this.$store.state.api + "selectDataBoardTest", params)
         .then((res) => {
           this.isLoading = false;
           
@@ -505,62 +404,62 @@ export default {
 }
 
 .left {
-  width: calc(100% / 4 * 1);
+  width: calc(100% / 3 * 1 - (20px / 3));
   height: 100%;
 }
 
 .left>.top {
   width: 100%;
-  height: calc(100% / 2 - 10px);
+  height: calc(100% / 2 - 5px);
   background: #fff;
   border-radius: 5px;
-  margin: 0 0 20px 0;
+  margin: 0 0 10px 0;
 }
 
 .left>.bottom {
   width: 100%;
-  height: calc(100% / 2 - 10px);
+  height: calc(100% / 2 - 5px);
   background: #fff;
   border-radius: 5px;
 }
 
 .center {
-  width: calc(100% / 4 * 2 - 40px);
+  width: calc(100% / 3 - (20px / 3));
   height: 100%;
-  margin: 0 20px;
+  margin: 0 10px;
 }
 
 .center>.top {
   width: 100%;
-  height: calc(100% / 5 * 3 - 10px);
+  height: calc(100% / 2 - 5px);
   background: #fff;
   border-radius: 5px;
-  margin: 0 0 20px 0;
+  margin: 0 0 10px 0;
 }
 
 .center>.bottom {
   width: 100%;
-  height: calc(100% / 5 * 2 - 10px);
+  height: calc(100% / 2 - 5px);
   background: #fff;
   border-radius: 5px;
 }
 
 .right {
-  width: calc(100% / 4 * 1);
+  width: calc(100% / 3 - (20px / 3));
   height: 100%;
 }
 
 .right>.top {
   width: 100%;
-  height: calc(100% / 2 - 10px);
+  height: calc(100% / 2 - 5px);
   background: #fff;
   border-radius: 16px;
-  margin: 0 0 20px 0;
+  margin: 0 0 10px 0;
 }
 
 .right>.bottom {
   width: 100%;
-  height: calc(100% / 2 - 10px);
+  height: calc(100% / 2 - 5px);
   background: #fff;
   border-radius: 5px;
 }
@@ -794,4 +693,31 @@ export default {
 .blueBG {
   background: rgb(243, 248, 253);
   border: 2px solid rgb(234, 246, 255);
-}</style>
+}
+
+
+.depth_box {
+  display: flex;
+  flex-wrap: wrap;
+  height: 100%;
+  width: 95%;
+  margin: 0 auto;
+  overflow: hidden;
+  justify-content: space-between;
+}
+
+.depth {
+  width: calc(100% / 2 - 10px);
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+}
+
+.depth>span:nth-child(1) {
+  font-size: 14px;
+  font-weight: 700;
+  margin: 0 0 10px;
+}
+
+.depth>div:nth-child(1) {}</style>

+ 1 - 1
src/components/pages/trainCourse/course.vue

@@ -213,7 +213,7 @@
             </div>
             <div class="three_bottom">
               <!-- v-if="role == '1'" -->
-              <!-- <div @click="get(item)">预览</div> -->
+              <div @click="get(item)">预览</div>
               <!-- <div @click="jump(item.courseId)" v-else>评课</div> -->
               <div v-if="((item.userid == userid) ||
                 (item.course_teacher &&

Some files were not shown because too many files changed in this diff