lsc 11 月之前
父節點
當前提交
a7c2255ca8

+ 1 - 1
dist/index.html

@@ -27,7 +27,7 @@
     html,
     body{
       font-family: '黑体';
-    }</style><link href=./static/css/app.0179b5dd6c0d3a13816d66a91174e412.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.733814fc48c2bd2222aa.js></script><script type=text/javascript src=./static/js/app.05ebd51d0ab694bbfae2.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.f76964744fc682f7ec8c002f39f24699.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.733814fc48c2bd2222aa.js></script><script type=text/javascript src=./static/js/app.92d7166ac1f77498f3cf.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.0179b5dd6c0d3a13816d66a91174e412.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.0179b5dd6c0d3a13816d66a91174e412.css.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.f76964744fc682f7ec8c002f39f24699.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.f76964744fc682f7ec8c002f39f24699.css.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.92d7166ac1f77498f3cf.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.92d7166ac1f77498f3cf.js.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


+ 11 - 2
src/components/courseDetail.vue

@@ -226,9 +226,9 @@
               <span :class="{ active: type == 1 }" @click="getCTwo"
                 >课程分析</span
               >
-              <!-- <span :class="{ active: type == 3 }" @click="getCThree"
+              <span :class="{ active: type == 3 }" @click="getCThree"
                 >课程评价</span
-              > -->
+              >
             </div>
             <div
               v-if="((tType == 1 || tType == 4) && type == 2) || tType == 2"
@@ -994,6 +994,13 @@
                 {{ '时间:' + item + '次数:' + chaptersJson.time[item] }}</div> -->
               <!-- <div>实施时间:{{ chaptersJson.startTime }}</div> -->
             </div>
+            <div
+              v-if="(type == 3)"
+              :class="courseDetail.brief != '' ? 'rightTd' : 'noBRight'"
+              style="width: 100%; padding-top: 20px"
+            >
+              <scoreZong :courseid="id"></scoreZong>
+            </div>
           </div>
         </div>
 
@@ -1081,6 +1088,7 @@ import { tools } from "../common/tools";
 import axios from "axios";
 import JSZip from "jszip";
 import FileSaver from "file-saver";
+import scoreZong from './scoreZong/get.vue'
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -1136,6 +1144,7 @@ export default {
   components: {
     Heatmap,
     Group,
+    scoreZong
   },
   data() {
     return {

+ 285 - 0
src/components/scoreZong/get.vue

@@ -0,0 +1,285 @@
+<template>
+    <div class="sz_body" v-loading="loading">
+        <div style="font-size: 18px;margin-bottom: 20px;">评分人数:<span class="color">{{ num }}</span>人  总平均分:<span class="color">{{ num ? score ? (score / num).toFixed(1) : 0 : 0 }}</span></div>
+        <div class="test_box" v-for="(item, index) in testList" :key="index">
+            <div class="testTitle">{{ item.title }}</div>
+            <div class="testContent" v-if="item.type == '1'" v-for="(item2, index2) in item.array"
+                :key="index + '-' + index2">
+                <div class="testContent_title">{{ index2 + 1 }}、{{ item2.title }}</div>
+                <div class="testContent_input">
+                    <!-- <el-input v-model="item2.uscore" class="c_input" @change="numberPan(index, index2, item2.score)"
+                        placeholder="请输入评分" /> -->
+                    <span>平均分:</span>
+                    <span class="color">{{ num ? item2.uscore ? (item2.uscore / num).toFixed(2) : 0 : 0 }}</span>
+                </div>
+            </div>
+            <div v-if="item.type == '2'">
+                <div class="test_ping" v-for="(answer, index2) in item.answerArray" :key="index + '-' + index2">
+                    <span>{{ index2 + 1  }}.</span>
+                    <span>{{ answer  }}</span>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    props: {
+        courseid: {
+            type: String,
+            default: ''
+        },
+        userid: {
+            type: String,
+            default: ''
+        },
+    },
+    data() {
+        return {
+            testList: [
+                {
+                    title: '教学目标(5分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '目标结构完整,能够清晰地表达学生的学习过程与预期成果。目标符合学情,具有可行性与逻辑递进性。目标体现学生本位与素养导向,不单纯停留在知识与技能层面。',
+                            score: 5,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '教学内容(5分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '重难点突出,符合课标与教材要求,不超纲。符合学情特点,贴近学生生活,体现积极向上的育人价值观。关注学生学习的最近发展区,有意识地展现因材施教的意图。',
+                            score: 5,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '教学内容(30分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '课堂结构合理、紧密,层次清楚,突出重难点的解决。(10分)',
+                            score: 10,
+                            uscore: 0,
+                        },
+                        {
+                            title: '强调“学”的活动设计,教与学有机结合。(10分)',
+                            score: 10,
+                            uscore: 0,
+                        },
+                        {
+                            title: '课堂管理有序,教学语言清晰准确,能及时、合理地解决课堂问题,体现良好的教学素养。(10分)',
+                            score: 10,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '教学方法与策略(20分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '符合教学内容与学科特点。落实有效,能体现出学生的学习成效,不流于形式。具有一定的新意,展现教师的独立思考与探究意识。',
+                            score: 20,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '教学工具(15分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '合理、科学地使用信息化技术、学习单、自制教学道具、辅助性资源等教学工具。',
+                            score: 15,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '教学评价(10分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '重视评价,有合理的评价手段与工具。评价落实有效,体现针对性和专业性。',
+                            score: 10,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '创新意识(10分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '教学空间的选择、布置有独特想法,且合理有效。敢于尝试多样化的教学形式,如主题式、大单元、项目式、游戏化等。开发特色有效的教学策略与手段,如小组合作探究、跨学科展演等,教师特色鲜明。',
+                            score: 10,
+                            num: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '教学效果(5分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '达成目标,整个过程有资源的生成。学习过程中学生有满足、成功与喜悦等体验,对后续学习更有信心,能力得到发展。',
+                            score: 5,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '加分项(10分)',
+                    type: '1',
+                    array: [
+                        {
+                            title: '某项优点特别突出,如教学风貌、教学理念、教学特色、教学手段等,酌情加5-10分。',
+                            score: 10,
+                            uscore: 0,
+                        }
+                    ],
+                },
+                {
+                    title: '评语',
+                    type: '2',
+                    answer: '',
+                    answerArray: [],
+
+                },
+            ],
+            num: 0,
+            score: 0,
+            loading: false
+        }
+    },
+    mounted () {
+        this.getList();
+    },
+    methods: {
+        numberPan(index, index2, score) {
+            let _score = this.testList[index].array[index2].uscore
+            if (/[^\d]/.test(_score) || _score < 0) {
+                this.$message.error('请输入大于0的整数')
+                this.testList[index].array[index2].uscore = 0
+            }
+            if (parseInt(_score) > parseInt(score)) {
+                this.$message.error('不能输入大于得分的整数')
+                this.testList[index].array[index2].uscore = score
+            }
+            this.$forceUpdate();
+        },
+        confirm() {
+            let params = [
+                {
+                    cid: this.courseid,
+                    uid: this.userid,
+                    json: JSON.stringify(this.testList),
+                },
+            ];
+            this.ajax
+                .post(this.$store.state.api + "opCourseScore", params)
+                .then((res) => {
+                    console.log(res.data);
+                    this.$message({
+                        message: "添加成功",
+                        type: "success",
+                    });
+                    this.getList();
+                    this.$forceUpdate();
+                })
+                .catch((err) => {
+                    console.error(err);
+                });
+        },
+        getList() {
+            let params =
+            {
+                cid: this.courseid,
+            };
+            this.loading = true
+            this.ajax
+                .get(this.$store.state.api + "getCourseScore", params)
+                .then((res) => {
+                    console.log(res.data);
+                    if(res.data[0].length > 0){
+                        // this.testList = JSON.parse(res.data[0][0].json)
+                        let data = res.data[0]
+                        this.num = data.length
+                        let sum = 0
+                        for(var i = 0; i < data.length; i++){
+                            let item = data[i]
+                            let _json = JSON.parse(item.json)
+                            for(var j = 0; j < this.testList.length; j++){
+                                let test = this.testList[j]
+                                if(test.type == '2'){
+                                    if(_json[j].answer){
+                                        test.answerArray.push(_json[j].answer)
+                                    }
+                                }else{
+                                    for(var k = 0; k < test.array.length; k++){
+                                        let _item = test.array[k]
+                                        _item.uscore += parseInt(_json[j].array[k].uscore)
+                                        _item.num++
+                                        sum += parseInt(_json[j].array[k].uscore)
+                                    }
+                                } 
+                            }
+                        }
+                        this.score = sum
+                    }
+                    this.loading = false
+                    this.$forceUpdate();
+                })
+                .catch((err) => {
+                    this.loading = false
+                    console.error(err);
+                });
+        }
+    },
+}
+</script>
+
+<style scoped>
+.sz_body {
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+
+.test_box {
+    margin-bottom: 20px;
+}
+
+.testTitle {
+    font-size: 16px;
+    font-weight: 600;
+}
+
+.testContent {}
+
+.testContent_title {
+    margin-top: 10px;
+}
+
+.testContent_input {
+    margin-top: 5px;
+}
+
+.test_ping{
+    margin-top: 5px;
+    display: flex;
+    word-break: break-all;
+}
+
+.color{
+    color:#3681fc;
+}
+</style>

+ 1 - 1
src/components/scoreZong/index.vue

@@ -16,7 +16,7 @@
             </div>
         </div>
         <div class="btn">
-            <el-button type="primary" size="default" @click="confirm">确认</el-button>
+            <el-button type="primary" size="default" @click="confirm">提交</el-button>
 
         </div>
     </div>

部分文件因文件數量過多而無法顯示