Jelajahi Sumber

Merge branch 'develop5.0-tmd' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop5.0-tmd

OnePsycho 4 tahun lalu
induk
melakukan
c44d45504b

+ 31 - 3
TEAMModelOS/ClientApp/src/api/studentWeb.js

@@ -13,8 +13,8 @@ var mocktime = [];
 var mockStudydata = [];
 var mockStudydata2 = [];
 var mockQASheet = [];
-
-
+var courseList = [];
+var students = [];
 for (var i = 1; i <= 30; i++) {
     var data = Mock.mock({
 
@@ -38,6 +38,34 @@ for (var i = 1; i <= 30; i++) {
 
 
     });
+    for (let p = 1; p <= 38; p++) {
+        let studentsData = Mock.mock({
+            name: Random.cname(),
+            group: Random.integer(1, 5),
+            "isUploadHomework|1": true, //一個是否有交作業的參數,同學互評使用
+            "isGivenComment|1": true, //一個是否有被給評的參數,同學互評使用
+        });
+        students.push(studentsData); //學生名單資料
+    }
+    var courseItem = Mock.mock({
+        "courseType|1": ["表定", "臨時"],
+        courseName: Random.ctitle(12, 20),
+        courseID: Random.id(), //課程代碼
+        courseAddDate: Random.date('2020.01.dd'), //加入課程的日期
+        "courseSubject|1": ["國文", "英文", "數學"],
+        //tab1 基本資料
+        attendTime: "每星期三 " + Random.time("HH:00"), //上課時間
+        classroom: "classroom A" + Random.integer(60, 70), //上課地點
+        teacher: Random.cname(), //授課教師
+        assistantTeachers: [Random.cname(), Random.cname(), Random.cname()], //授課教師
+
+        //tab2 課程概述
+        courseDesc: Random.cparagraph(17, 27), //課程描述
+
+        //tab3 學生名單
+        students: students,
+    });
+    courseList.push(courseItem);
     var data2 = Mock.mock({
 
         "string|1-5": "★",//隨意產生1-10個星星
@@ -139,7 +167,7 @@ export default {
     mockStudydata,
     mockStudydata2,
     mockQASheet,
-
+    courseList,
     //查询学生参与评量数据
     FindExamPaper: function (data) {
         return post('/common/exam/find-all-by-student', data)

+ 3 - 3
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContent.vue

@@ -9,13 +9,13 @@
             <div v-if="this.$store.getters.getItemTitle.eventType=='homeWork'">
               <Homework/>
             </div>-->
-            <div v-if="this.$store.getters.getItemTitle.eventType == 'exam'">
+            <div v-if="this.$store.getters.getItemTitle.eventType == 'Exam'">
                 <PaperView />
             </div>
-            <div v-if="this.$store.getters.getItemTitle.eventType == 'vote'">
+            <div v-if="this.$store.getters.getItemTitle.eventType == 'Vote'">
                 <Vote />
             </div>
-            <div v-if="this.$store.getters.getItemTitle.eventType == 'survey'">
+            <div v-if="this.$store.getters.getItemTitle.eventType == 'Survey'">
                 <QuesNaire />
             </div>
         </div>

+ 10 - 2
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReport.vue

@@ -335,6 +335,7 @@
                     this.Message.warning(this.$t('studentWeb.exam.report.pdfErr'))
                 })
             },
+            //获取文件授权
             async getFileSas(data) {
                 if (data) {
                     let req = {
@@ -347,6 +348,7 @@
                     return curFile
                 }
             },
+            //下载补救文件资源
             async downloadFile(data) {
                 let blobData = await this.getFileSas(data)
                 const downloadRes = async () => {
@@ -419,7 +421,8 @@
                     }
                 }
             },
-            async getItem(data) { //获取学生作答数据
+            //获取学生作答数据
+            async getItem(data) {
                 let datas = []
                 if (data !== undefined) {
                     let codes = this.$store.getters.getItemTitle
@@ -436,7 +439,8 @@
                     return []
                 }
             },
-            formUrl(data) {  //处理学生作答数据blob地址
+            //处理学生作答数据blob地址
+            formUrl(data) { 
                 let container = data.code
                 let a = ""
                 if (data.blob.indexOf('https://teammodelstorage') > -1) {
@@ -481,6 +485,10 @@
                if (this.paperData.length) {
                    this.ansData = await this.getItem(this.examInfo.stuAns[0])
                }
+               console.log('5456465456456')
+               console.log(this.paperData)
+               console.log(this.ansData)
+               console.log(this.examInfo)
             },
             closeDetail() {
                 this.closeAnsDetail = !this.closeAnsDetail;

+ 14 - 14
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventList.vue

@@ -75,14 +75,14 @@
                     :key="index">
                     <ul>
                         <li class="list-item-icon">
-                            <svg-icon v-if="item.eventType == 'homeWork'" icon-class="doc" />
-                            <svg-icon v-if="item.eventType == 'preview'"  icon-class="selflearninginTime" />
-                            <svg-icon v-if="item.eventType == 'exam'"     icon-class="multiTest" />
-                            <svg-icon v-if="item.eventType == 'vote'"     icon-class="vote" />
-                            <svg-icon v-if="item.eventType == 'survey'"   icon-class="quesnaire" />
+                            <svg-icon v-if="item.eventType == 'HomeWork'" icon-class="doc" />
+                            <svg-icon v-if="item.eventType == 'Preview'"  icon-class="selflearninginTime" />
+                            <svg-icon v-if="item.eventType == 'Exam'"     icon-class="multiTest" />
+                            <svg-icon v-if="item.eventType == 'Vote'"     icon-class="vote" />
+                            <svg-icon v-if="item.eventType == 'Survey'"   icon-class="quesnaire" />
                         </li>
                         <li class="list-item-info"
-                            v-if="item.eventType == 'exam'">
+                            v-if="item.eventType == 'Exam'">
                             <p class="list-item-title">
                                 <span class="list-item-typeMark">{{item.scope == 'school' ? $t('studentWeb.public.schoolExam'):$t('studentWeb.public.privateExam')}}</span>
                                 <span>{{ item.name }}</span>
@@ -92,7 +92,7 @@
                             </p>
                         </li>             
                         <li class="list-item-info"
-                            v-if="item.eventType == 'vote'">
+                            v-if="item.eventType == 'Vote'">
                             <p class="list-item-title">
                                 <span class="list-item-typeMark">{{item.scope == 'school' ? $t('studentWeb.public.schoolVote'):$t('studentWeb.public.privateVote')}}</span>
                                 <span>{{ item.name }}</span>
@@ -102,7 +102,7 @@
                             </p>
                         </li>       
                         <li class="list-item-info"
-                            v-if="item.eventType == 'survey'">
+                            v-if="item.eventType == 'Survey'">
                             <p class="list-item-title">
                                 <span class="list-item-typeMark">{{item.scope == 'school' ? $t('studentWeb.public.schoolSurvey'):$t('studentWeb.public.privateSurvey')}}</span>
                                 <span>{{ item.name }}</span>
@@ -149,29 +149,29 @@
                 havejustfinishedItem: false, //無剛完成的數據情況,清單項目變動將會影響空白狀態之呈現
                 typeNametoIcon: [
                     {
-                        eventType: "preview",
+                        eventType: "Hreview",
                         iconClass: "selflearninginTime",
                     },
                     {
-                        eventType: "exam",
+                        eventType: "Exam",
                         iconClass: "test",
                     },
                     {
-                        eventType: "homeWork",
+                        eventType: "HomeWork",
                         iconClass: "doc",
                     },
                     {
-                        eventType: "vote",
+                        eventType: "Vote",
                         iconClass: "vote",
                     },
                     {
-                        eventType: "survey",
+                        eventType: "Survey",
                         iconClass: "quesnaire",
                     },
                 ],
                 activityType: this.$t('studentWeb.state'),
                 mockdata: "",
-                eventPageType: ["preview", "exam", "homeWork", "vote", "survey"], //本頁出現的類型
+                eventPageType: ["Preview", "Exam", "HomeWork", "Vote", "Survey"], //本頁出現的類型
                 openSearch: false, //打開搜尋器
                 search: "",
                 alreadyScrolltimes: 0,

+ 3 - 7
TEAMModelOS/ClientApp/src/components/student-web/HomeView/CourseList.vue

@@ -291,8 +291,6 @@
 </template>
 
 <script>
-import Mockdata from "@/api/newData";
-import MockdataEn from "@/api/newDataEn";
 export default {
   name: "CourseList",
   data() {
@@ -303,10 +301,7 @@ export default {
         localStorage.getItem("lang") == "tw"
           ? ["時間", "一", "二", "三", "四", "五"]
           : ["time", "Mon", "Tue", "Wed", "Thu", "Fri"],
-      courseList:
-        localStorage.getItem("lang") == "tw"
-          ? Mockdata.courseList
-          : MockdataEn.courseList,
+        courseList: this.$api.studentWeb.courseList
     };
   },
   created() {
@@ -319,7 +314,8 @@ export default {
       this.currentView=type
     },
     sentFirstItemActive() {
-      let tempArr = [];
+        let tempArr = [];
+        console.log(this.$api.studentWeb.courseList)
       for (let i = 0; i < this.courseList.length; i++) {
         if (this.courseList[i].courseType != "臨時") {
           tempArr.push(this.courseList[i]);

+ 13 - 18
TEAMModelOS/ClientApp/src/components/student-web/HomeView/HomeView.vue

@@ -48,8 +48,7 @@
                                         </li>
                                         <li class="list-item-info">
                                             <p class="list-item-title"
-                                               :class="{ 'list-item-titleEn': getCurrentLang() == 'en', }"
-                                               >
+                                               :class="{ 'list-item-titleEn': getCurrentLang() == 'en', }">
                                                 <span class="list-item-typeMark">{{ item.eventType }}</span>
                                                 <span>{{ item.eventName }}</span>
                                             </p>
@@ -60,25 +59,23 @@
                                         <li class="list-item-unDone"></li>
                                     </ul>
                                     <!--<router-link :to="`/studentWeb/eventView#${item.eventID}`">
-                                    </router-link>-->
+                        </router-link>-->
                                 </li>
                             </div>
                         </div>
                     </div>
                 </Card>
                 <br />
-                <!--<router-link to="/courseList">
-                </router-link>-->
-                <Card style="overflow: hidden" @click.native="noData">
-                    <h3 style="color: #575757; font-weight: 700">
-                        <svg-icon class="titleIcon" icon-class="course" />
-                        {{ $t("studentWeb.coursesCardTitle") }}
-                        <Icon type="ios-arrow-forward" />
-                    </h3>
-
-                    <p class="course-new">{{ $t("studentWeb.newAddCourse") }}</p>
-                </Card>
-
+                <router-link to="/studentWeb/courseList">
+                    <Card style="overflow: hidden">
+                        <h3 style="color: #575757; font-weight: 700">
+                            <svg-icon class="titleIcon" icon-class="course" />
+                            {{ $t("studentWeb.coursesCardTitle") }}
+                            <Icon type="ios-arrow-forward" />
+                        </h3>
+                        <p class="course-new">{{ $t("studentWeb.newAddCourse") }}</p>
+                    </Card>
+                </router-link>
                 <br />
             </i-col>
             <i-col :xs="24" :sm="24" :md="12" :lg="8">
@@ -239,9 +236,7 @@
                         "eventType": "問卷"
                     }
                 ],
-                MyEventData: parseFloat(
-                    this.$store.getters.getCountedIsDonePercent
-                ).toFixed(0),
+                MyEventData: parseFloat(this.$store.getters.getCountedIsDonePercent).toFixed(0),
                 spanCharts: false,
                 todaydaylineListHeight: 0,
             };

+ 7 - 7
TEAMModelOS/ClientApp/src/components/student-web/HomeView/MissionListCard.vue

@@ -16,20 +16,20 @@
                     v-for="(item, index) in testData" :key="index">
                     <ul>
                         <li class="list-item-icon">
-                            <svg-icon v-if="item.eventType == 'homework'" icon-class="doc" />
-                            <svg-icon v-if="item.eventType == 'preview'"
+                            <svg-icon v-if="item.eventType == 'Homework'" icon-class="doc" />
+                            <svg-icon v-if="item.eventType == 'Learn'"
                                       icon-class="selflearninginTime" />
                             <svg-icon v-if="  item.eventType == 'exam'"
                                       icon-class="test"
                                       class="reset-testIcon" />
-                            <svg-icon v-if="item.eventType == 'vote'" icon-class="vote" />
-                            <svg-icon v-if="item.eventType == 'survey'" icon-class="quesnaire" />
+                            <svg-icon v-if="item.eventType == 'Vote'" icon-class="vote" />
+                            <svg-icon v-if="item.eventType == 'Survey'" icon-class="quesnaire" />
                         </li>
                         <li class="list-item-info">
                             <p class="list-item-title">
-                                <span v-show="item.eventType == 'exam'" class="list-item-typeMark">{{item.scope == 'school'? $t('studentWeb.public.schoolExam'):$t('studentWeb.public.privateExam')}}</span>
-                                <span v-show="item.eventType == 'vote'" class="list-item-typeMark">{{item.scope == 'school'? $t('studentWeb.public.schoolVote'):$t('studentWeb.public.privateVote')}}</span>
-                                <span v-show="item.eventType == 'survey'" class="list-item-typeMark">{{item.scope == 'school'? $t('studentWeb.public.schoolSurvey'):$t('studentWeb.public.privateSurvey')}}</span>
+                                <span v-show="item.eventType == 'Exam'" class="list-item-typeMark">{{item.scope == 'school'? $t('studentWeb.public.schoolExam'):$t('studentWeb.public.privateExam')}}</span>
+                                <span v-show="item.eventType == 'Vote'" class="list-item-typeMark">{{item.scope == 'school'? $t('studentWeb.public.schoolVote'):$t('studentWeb.public.privateVote')}}</span>
+                                <span v-show="item.eventType == 'Survey'" class="list-item-typeMark">{{item.scope == 'school'? $t('studentWeb.public.schoolSurvey'):$t('studentWeb.public.privateSurvey')}}</span>
                                 <span>{{ item.name }}</span>
                                 <div style="float:right;margin-top:-20px">
                                     <div class="list-item-unDone" v-show="item.progress == 'going'">

+ 1 - 0
TEAMModelOS/ClientApp/src/utils/evTools.js

@@ -450,6 +450,7 @@ export default {
 			try {
 				let jsonInfo = await $tools.getFile(paper.blob + sasString.sas)
 				let jsonData = JSON.parse(jsonInfo)
+				console.log(jsonData)
 				// 获取试卷包含的试题数据并包装好
 				if (jsonData.length) {
 					r(jsonData)

+ 3 - 7
TEAMModelOS/ClientApp/src/view/learnactivity/PaperScore.vue

@@ -123,7 +123,7 @@
                                     <!--其余题型答案-->
                                     <div v-else-if="studentAnswer.answers[getScoreIndex(typeIndex,index)]" :id="'answer'+ getScoreIndex(typeIndex,index)">
                                         <div>
-                                            <span v-html="studentAnswer.answers[getScoreIndex(typeIndex,index)].join(',')"></span>
+                                            <span v-html="studentAnswer.answers[getScoreIndex(typeIndex,index)].toString()"></span>
                                         </div>
                                     </div>
                                 </div>
@@ -243,9 +243,9 @@
                                             <span v-for="(answerItem,answerIndex) in studentAnswer.answers[getScoreIndex(typeIndex,index,childIndex)]" :key="'an'+ (index+answerIndex+childIndex)" v-html="answerItem" style="display:inline-block;"></span>
                                         </div>
                                         <!--其余题型答案-->
-                                        <div v-else-if="studentAnswer.answers[typeIndex + index + childIndex]" :id="'answer'+ getScoreIndex(typeIndex,index,childIndex)">
+                                        <div v-else-if="studentAnswer.answers[getScoreIndex(typeIndex,index,childIndex)]" :id="'answer'+ getScoreIndex(typeIndex,index,childIndex)">
                                             <div>
-                                                <span v-html="studentAnswer.answers[getScoreIndex(typeIndex,index,childIndex)].join(',')"></span><br />
+                                                <span v-html="studentAnswer.answers[getScoreIndex(typeIndex,index,childIndex)].toString()"></span><br />
                                             </div>
                                         </div>
                                     </div>
@@ -465,7 +465,6 @@ export default {
         //快速定位题目
         goToQuestion(index) {
             this.activeIndex = index
-            console.log(index)
             this.$el.querySelector('#qustion' + index).scrollIntoView({
                 behavior: "smooth",  // 平滑过渡
                 block: "center"  // 上边框与视窗顶部平齐。默认值
@@ -585,7 +584,6 @@ export default {
         },
         paperInfo: {
             handler(newPaper) {
-                console.log('newPaper', newPaper)
                 if (newPaper && newPaper.item) {
                     this.dataLoading = true
                     let that = this
@@ -616,7 +614,6 @@ export default {
         },
         studentAnswer: {
             async handler(newValue, oldValue) {
-                console.log('获取答案', JSON.stringify(newValue))
                 if (!this.studentAnswer.status) {
                     if (newValue.answers.length) {
                         try {
@@ -644,7 +641,6 @@ export default {
                             } else {
                                 this.$set(this.studentAnswer, 'answers', [])
                             }
-                            console.log(this.studentAnswer)
                         } catch (e) {
                             console.log('error', e)
                         }

+ 1 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/PrivScoring.vue

@@ -104,7 +104,7 @@ export default {
                     key: "name",
                     fixed: "left",
                     align: "center",
-                    minWidth: 150,
+                    width: 150,
                 },
                 {
                     title: this.$t('learnActivity.score.column2'),

+ 1 - 3
TEAMModelOS/ClientApp/src/view/learnactivity/Scoring.vue

@@ -110,7 +110,7 @@ export default {
                     key: "name",
                     fixed: "left",
                     align: "center",
-                    minWidth: 150,
+                    width: 150,
                 },
                 {
                     title: this.$t('learnActivity.score.column2'),
@@ -154,8 +154,6 @@ export default {
                 default:
                     break
             }
-            console.log('1', this.studentScore[0].name)
-            console.log(2, this.originData[0].name)
             this.pageChange(1)
         },
         // 页面size变化