lsc 1 year ago
parent
commit
c5f5415692

+ 1 - 1
dist/index.html

@@ -27,7 +27,7 @@
     html,
     body{
       font-family: '黑体';
-    }</style><link href=./static/css/app.8846318812133b142a5bb09ff56c3bdd.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.9e36823772011c9fca0d.js></script></body></html><script>function stopSafari() {
+    }</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() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

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


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


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


BIN
dist/static/img/aiAvatar.9613d71.png


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


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


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


+ 6 - 0
src/components/courseDetail.vue

@@ -226,6 +226,9 @@
               <span :class="{ active: type == 1 }" @click="getCTwo"
                 >课程分析</span
               >
+              <!-- <span :class="{ active: type == 3 }" @click="getCThree"
+                >课程评价</span
+              > -->
             </div>
             <div
               v-if="((tType == 1 || tType == 4) && type == 2) || tType == 2"
@@ -1628,6 +1631,9 @@ export default {
       this.type = 1;
       this.getCourseDetail2();
     },
+    getCThree(){
+      this.type = 3
+    },
     getCourseDetail2() {
       const loading = this.$loading.service({
         background: "rgba(255, 255, 255, 0.7)",

+ 9 - 2
src/components/easy2/studyStudent.vue

@@ -8063,6 +8063,8 @@
 					<div class="cb-tabList">
 						<div :class="[commentTagShow==0?'cb-tabItem':'']" @click="commentTagShow=0">评论</div>
 						<div :class="[commentTagShow==1?'cb-tabItem':'']" @click="commentTagShow=1">评分</div>
+                        <!-- v-show="oid == '4c686762-1d0a-11ed-8c78-005056b86db5'" -->
+						<div :class="[commentTagShow==2?'cb-tabItem':'']" @click="commentTagShow=2">总评</div>
 					</div>
           <el-select v-model="pzStype" @change="selectPz" class="selectBox">
             <el-option label="时间降序" :value="1"></el-option>
@@ -8169,6 +8171,9 @@
 			<div class="scoreList" v-if="commentTagShow==1">
 				<scoreItem v-for="item in scoreList.datalist" @refresh="getScoreList" :data="item" :isScore="scoreList.isScoreList.filter(i=>(i.userid==item.userid && i.courseid == item.courseId))" :key="item.courseId"/>
 			</div>
+      <div class="scoreList" v-if="commentTagShow==2" style="position: relative">
+        <scoreZong :courseid="id" :userid="userid"></scoreZong>
+			</div>
     </div>
     <div
       v-if="toolDialogVisible == true"
@@ -11881,6 +11886,7 @@ import EnglishVoice from '../EnglishVoice2/index.vue'
 import checkEnglishVoice from '../checkEnglishVoice/index.vue'
 import correctText from '../components/correctText.vue'
 import scoreItem from '../scoreList/scoreItem.vue'
+import scoreZong from '../scoreZong/index.vue'
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -11954,7 +11960,8 @@ export default {
     EnglishVoice,
     checkEnglishVoice,
 		correctText,
-		scoreItem
+		scoreItem,
+    scoreZong
   },
   data() {
     return {
@@ -22682,7 +22689,7 @@ export default {
 .pzTop2 .checkbox {
   display: flex;
   align-items: center;
-  padding: 5px 30px;
+  padding: 5px 10px;
   flex: 0 0 auto;
   font-weight: bold;
   border-bottom: 1px solid #eee;

+ 9 - 2
src/components/easy3/studyStudent.vue

@@ -8050,6 +8050,8 @@
 					<div class="cb-tabList">
 						<div :class="[commentTagShow==0?'cb-tabItem':'']" @click="commentTagShow=0">评论</div>
 						<div :class="[commentTagShow==1?'cb-tabItem':'']" @click="commentTagShow=1">评分</div>
+                        <!-- v-show="oid == '4c686762-1d0a-11ed-8c78-005056b86db5'" -->
+						<div :class="[commentTagShow==2?'cb-tabItem':'']" @click="commentTagShow=2">总评</div>
 					</div>
           <el-select v-model="pzStype" @change="selectPz" class="selectBox">
             <el-option label="时间降序" :value="1"></el-option>
@@ -8156,6 +8158,9 @@
 			<div class="scoreList" v-if="commentTagShow==1">
 				<scoreItem v-for="item in scoreList.datalist" @refresh="getScoreList" :data="item" :isScore="scoreList.isScoreList.filter(i=>(i.userid==item.userid && i.courseid == item.courseId))" :key="item.courseId"/>
 			</div>
+      <div class="scoreList" v-if="commentTagShow==2" style="position: relative">
+        <scoreZong :courseid="id" :userid="userid"></scoreZong>
+			</div>
     </div>
     <div
       v-if="toolDialogVisible == true"
@@ -11872,6 +11877,7 @@ import EnglishVoice from '../EnglishVoice2/index.vue'
 import checkEnglishVoice from '../checkEnglishVoice/index.vue'
 import correctText from '../components/correctText.vue'
 import scoreItem from '../scoreList/scoreItem.vue'
+import scoreZong from '../scoreZong/index.vue'
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -11945,7 +11951,8 @@ export default {
     EnglishVoice,
     checkEnglishVoice,
 		correctText,
-		scoreItem
+		scoreItem,
+    scoreZong
   },
   data() {
     return {
@@ -22684,7 +22691,7 @@ export default {
 .pzTop2 .checkbox {
   display: flex;
   align-items: center;
-  padding: 5px 30px;
+  padding: 5px 10px;
   flex: 0 0 auto;
   font-weight: bold;
   border-bottom: 1px solid #eee;

+ 289 - 0
src/components/scoreZong/index.vue

@@ -0,0 +1,289 @@
+<template>
+    <div class="sz_body" v-loading="loading" style="position: unset !important;">
+        <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="请输入评分" />
+                </div>
+            </div>
+            <div v-if="item.type == '2'">
+                <textarea rows="8" class="binfo_input binfo_textarea" cols v-model="item.answer"
+                    placeholder="你还有哪些补充"></textarea>
+            </div>
+        </div>
+        <div class="btn">
+            <el-button type="primary" size="default" @click="confirm">确认</el-button>
+
+        </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,
+                            uscore: 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: ''
+                },
+            ],
+            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,
+                uid: this.userid,
+            };
+            this.loading = true
+            this.ajax
+                .get(this.$store.state.api + "getCourseScoreP", params)
+                .then((res) => {
+                    console.log(res.data);
+                    if(res.data[0].length > 0){
+                        this.testList = JSON.parse(res.data[0][0].json)
+                    }
+                    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;
+}
+
+.c_input {
+    width: 120px;
+}
+
+.binfo_input {
+    width: 100%;
+    margin: 0;
+    padding: 12px 14px;
+    display: block;
+    min-width: 0;
+    outline: none;
+    box-sizing: border-box;
+    background: none;
+    border: none;
+    border-radius: 4px;
+    background: #fff;
+    font-size: 16px;
+    resize: none;
+    font-family: "Microsoft YaHei";
+    min-height: 48px;
+    /* border: 1px solid #3682fc00; */
+    border: 1.5px solid #cad1dc;
+    margin-top: 10px;
+}
+
+.binfo_textarea {
+    border: 1.5px solid #cad1dc;
+    font-size: 16px;
+    resize: none;
+    /* background: #f6f6f6; */
+    font-family: "Microsoft YaHei";
+}
+
+.binfo_input:focus-visible {
+    border: 1.5px solid #3681fc !important;
+}
+
+.btn {
+    text-align: right;
+}
+</style>

+ 12 - 5
src/components/studyStudent.vue

@@ -8076,6 +8076,8 @@
 					<div class="cb-tabList">
 						<div :class="[commentTagShow==0?'cb-tabItem':'']" @click="commentTagShow=0">评论</div>
 						<div :class="[commentTagShow==1?'cb-tabItem':'']" @click="commentTagShow=1">评分</div>
+            <!-- v-show="oid == '4c686762-1d0a-11ed-8c78-005056b86db5'" -->
+						<div :class="[commentTagShow==2?'cb-tabItem':'']" @click="commentTagShow=2">总评</div>
 					</div>
           <el-select v-model="pzStype" @change="selectPz" class="selectBox">
             <el-option label="时间降序" :value="1"></el-option>
@@ -8182,6 +8184,9 @@
 			<div class="scoreList" v-if="commentTagShow==1">
 				<scoreItem v-for="item in scoreList.datalist" @refresh="getScoreList" :data="item" :isScore="scoreList.isScoreList.filter(i=>(i.userid==item.userid && i.courseid == item.courseId))" :key="item.courseId"/>
 			</div>
+			<div class="scoreList" v-if="commentTagShow==2" style="position: relative">
+        <scoreZong :courseid="id" :userid="userid"></scoreZong>
+			</div>
     </div>
     <div
       v-if="toolDialogVisible == true"
@@ -11870,6 +11875,7 @@ import EnglishVoice from './EnglishVoice2/index.vue'
 import checkEnglishVoice from './checkEnglishVoice/index.vue'
 import correctText from './components/correctText.vue'
 import scoreItem from './scoreList/scoreItem.vue'
+import scoreZong from './scoreZong/index.vue'
 import classRoomHelper from './classRoomHelper/index.vue'
 
 const getFile = (url) => {
@@ -11945,7 +11951,8 @@ export default {
     checkEnglishVoice,
 		correctText,
 		scoreItem,
-    classRoomHelper
+    classRoomHelper,
+    scoreZong
   },
   data() {
     return {
@@ -19873,12 +19880,12 @@ export default {
       };
     },
 		commentRight(){
-			if(this.$refs["classRoomHelperRef"].type==0){
+			if((this.org == '1973f6c7-1561-11ee-91d8-005056b86db5' || this.org == '777559d2-7239-11ee-b98c-005056b86db5') && this.$refs["classRoomHelperRef"].type==0){
 				return "100px";
-			}else if(this.$refs["classRoomHelperRef"].type==1){
+			}else if((this.org == '1973f6c7-1561-11ee-91d8-005056b86db5' || this.org == '777559d2-7239-11ee-b98c-005056b86db5') && this.$refs["classRoomHelperRef"].type==1){
 				return "502px"
 			}else{
-				return "0px"
+				return "35px"
 			}
 		},
     checkUpload() {
@@ -22684,7 +22691,7 @@ export default {
 .pzTop2 .checkbox {
   display: flex;
   align-items: center;
-  padding: 5px 30px;
+  padding: 5px 10px;
   flex: 0 0 auto;
   font-weight: bold;
   border-bottom: 1px solid #eee;

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