Browse Source

修改答题卡题目排列顺序,修改客观题评判规则

shmily1213 3 ngày trước cách đây
mục cha
commit
706bbd8a4d

+ 1 - 1
src/composables/useExam.ts

@@ -346,7 +346,7 @@ export const useExam = () => {
     answer1 = answer1 || '';
     answer2 = answer2 || '';
     if ([EnumQuestionType.SINGLE_CHOICE, EnumQuestionType.JUDGMENT].includes(typeId)) {
-      return answer1.includes(answers[0]);
+      return answer1.trim() === answers[0];
     } else if ([EnumQuestionType.MULTIPLE_CHOICE].includes(typeId)) {
       return answers.length === answer1.length && answers.every(item => answer1.includes(item));
     } else {

+ 17 - 24
src/pagesStudy/pages/exam-start/components/exam-stats-card.vue

@@ -35,30 +35,23 @@
           <view class="popup-content">
             <view class="flex-1 min-h-1">
               <scroll-view class="h-full" scroll-y>
-                <view v-for="(item, i) in groupedQuestionList" :key="i" class="">
-                  <template v-if="item.list.length > 0">
-                    <view class="h-70 bg-back px-20 leading-70 text-fore-subcontent sticky top-0 z-1">
-                      {{ questionTypeDesc[item.type] }}
+                <view class="grid grid-cols-5 place-items-center gap-x-20 gap-y-30 p-30 relative z-0">
+                  <view v-for="(qs, j) in flatQuestionList" :key="j"
+                    class="aspect-square flex items-center justify-center" @click="hanadleNavigate(qs, qs.index)">
+                    <view
+                      class="w-74 h-74 rounded-full flex items-center justify-center bg-white border border-solid border-border relative"
+                      :class="{
+                        'is-done': !isViewMode && qs.isDone,
+                        'is-not-know': !isViewMode && qs.isNotKnow,
+                        'is-mark': !isViewMode && qs.isMark,
+                        'is-correct': isViewMode && qs.isCorrect,
+                        'is-incorrect': isViewMode && !qs.isCorrect,
+                      }">
+                      <text class="z-1 font-bold text-32">{{ qs.index + 1 }}</text>
+                      <ie-image v-if="qs.isMark" src="/pagesStudy/static/image/icon-mark-active.png"
+                        custom-class="absolute -top-12 left-14 w-28 h-28 z-1" mode="aspectFill" />
                     </view>
-                    <view class="grid grid-cols-5 place-items-center gap-x-20 gap-y-30 p-30 relative z-0">
-                      <view v-for="(qs, j) in item.list" :key="j" class="aspect-square flex items-center justify-center"
-                        @click="hanadleNavigate(qs.question, qs.index)">
-                        <view
-                          class="w-74 h-74 rounded-full flex items-center justify-center bg-white border border-solid border-border relative"
-                          :class="{
-                            'is-done': !isViewMode && qs.question.isDone,
-                            'is-not-know': !isViewMode && qs.question.isNotKnow,
-                            'is-mark': !isViewMode && qs.question.isMark,
-                            'is-correct': isViewMode && qs.question.isCorrect,
-                            'is-incorrect': isViewMode && !qs.question.isCorrect,
-                          }">
-                          <text class="z-1 font-bold text-32">{{ qs.index + 1 }}</text>
-                          <ie-image v-if="qs.question.isMark" src="/pagesStudy/static/image/icon-mark-active.png"
-                            custom-class="absolute -top-12 left-14 w-28 h-28 z-1" mode="aspectFill" />
-                        </view>
-                      </view>
-                    </view>
-                  </template>
+                  </view>
                 </view>
               </scroll-view>
             </view>
@@ -89,7 +82,7 @@ const props = defineProps<{
   readonly?: boolean;
 }>();
 const examData = inject(EXAM_DATA) || {} as ReturnType<typeof useExam>;
-const { doneCount, virtualTotalCount, groupedQuestionList, questionTypeDesc, reset, startTiming, stopTiming, changeIndex } = examData;
+const { doneCount, virtualTotalCount, groupedQuestionList, flatQuestionList, questionTypeDesc, reset, startTiming, stopTiming, changeIndex } = examData;
 const examPageOptions = inject(EXAM_PAGE_OPTIONS) || {} as Transfer.ExamAnalysisPageOptions;
 const isViewMode = computed(() => {
   return examPageOptions?.readonly || false;

+ 4 - 1
src/pagesStudy/pages/knowledge-practice-history/knowledge-practice-history.vue

@@ -14,7 +14,7 @@
             </view>
             <view class="mt-10 text-28">
               <text class=" text-fore-light">完成时间:</text>
-              <text class="text-fore-title">{{ item.endTime }}</text>
+              <text class="text-fore-title">{{ getTime(item.endTime) }}</text>
             </view>
           </view>
           <view class="text-24 text-white bg-primary w-fit px-40 py-12 rounded-full text-center"
@@ -52,6 +52,9 @@ const handleViewHistory = (item: Study.PracticeHistory) => {
 }
 
 const pagingRef = ref();
+const getTime = (time: string) => {
+  return uni.$ie.formatTime(time, 'yyyy-mm-dd hh:MM:ss');
+}
 const handleQuery = (pageNum: number, pageSize: number) => {
   getPracticeHistory({
     pageNum,