Merge branch 'dev-0120' of http://25.13.9.101:9000/K17_AITS/tra-app into dev-0120

This commit is contained in:
杨航
2026-01-13 10:48:52 +08:00
16 changed files with 247 additions and 578 deletions
+11 -7
View File
@@ -1,5 +1,5 @@
<template>
<view class="main_div max_page">
<view class="main_div max_page no-touch">
<nav-bar :is_seat="true"></nav-bar>
<view class="nav-div">
<view class="title ellipsis-text">PK中</view>
@@ -93,11 +93,14 @@
<view class="fixed-box font_pf" :style="{ marginBottom: popup_input_bottom }">
<view class="touch-btn-div" :class="{ show: showTouchBtn }">
<TouchBtn
ref="touchBtnRef"
class="talk-btns"
@submit="touchBtnSubmit"
disabledText="只能进行一条回答"
:isDisabled="touchIsDisabled"
ref="touchBtnRef"
@uploadVoice="touchBtnSubmit('voice',$event)"
@submitAnswer="touchBtnSubmit('text',$event)"
:isLoading="touchIsDisabled"
loadingText="只能进行一条回答"
:adjustPosition="false"
:isDisabled="false"
/>
</view>
</view>
@@ -117,7 +120,8 @@
import Dialog from '@/pages/examination/components/dialog.vue';
import Subject from '@/components/examination/subject.vue';
import CharactersSubject from '@/components/examination/characters-subject.vue';
import TouchBtn from '@/components/examination/touchBtn.vue';
// import TouchBtn from '@/components/examination/touchBtn.vue';
import TouchBtn from '@/pages/course/components/touchBtn.vue';
import common from '@/common/common';
import { setPageCache, formatSeconds, getPageCache, setupKeyboardHeightListener, formatName } from '@/common/common';
import { commonUploadVoiceFile } from '@/api/common.js';
@@ -326,7 +330,7 @@
// 录音组件提交
const touchBtnSubmit = (type, submitObj) => {
const topic = topicList[questionNumber.value];
touchBtnRef.value?.clearinputText(); // 清除发送框数据
// touchBtnRef.value?.clearinputText(); // 清除发送框数据
if (type === 'voice') {
if (topic.es_status === '00') return;
topic.es_status = '00'; // 00转圈
+14 -7
View File
@@ -1,5 +1,5 @@
<template>
<view class="main_div max_page">
<view class="main_div max_page no-touch">
<nav-bar :is_seat="true"></nav-bar>
<view class="nav-div">
<view class="title ellipsis-text" @click="hand_in_paper_button_click()">
@@ -99,10 +99,13 @@
<TouchBtn
class="talk-btns"
ref="touchBtnRef"
@submit="touchBtnSubmit"
disabledText="只能进行一条回答"
:isLoading="!answerIsOver"
:isDisabled="touchIsDisabled"
@uploadVoice="touchBtnSubmit('voice',$event)"
@submitAnswer="touchBtnSubmit('text',$event)"
:isLoading="touchIsDisabled"
loadingText="只能进行一条回答"
:adjustPosition="false"
:isDisabled="false"
:answerMethod="answerMethod"
/>
</view>
</view>
@@ -157,7 +160,8 @@
import Feedback from './components/feedback.vue';
import Dialog from './components/dialog.vue';
import Subject from '@/components/examination/subject.vue';
import TouchBtn from '@/components/examination/touchBtn.vue';
// import TouchBtn from '@/components/examination/touchBtn.vue';
import TouchBtn from '@/pages/course/components/touchBtn.vue';
import { ref, reactive, computed, onMounted, nextTick } from 'vue';
import { onLoad, onBackPress } from '@dcloudio/uni-app';
import common from '@/common/common';
@@ -172,6 +176,7 @@
const popupRef = ref(null);
const touchBtnRef = ref(null);
const countDownRef = ref(null);
const answerMethod = ref('01');
let examinationStartTime = 0; // 考试开始时间
let examinationAnswerCacheKey;
const style_button_1 = {
@@ -306,7 +311,7 @@
// 录音按钮提交
const touchBtnSubmit = (type, submitObj) => {
const topic = topicList[questionNumber.value];
touchBtnRef.value?.clearinputText(); // 清除发送框数据
// touchBtnRef.value?.clearinputText(); // 清除发送框数据
if (type === 'voice') {
if (topic.es_status == '00') return;
topic.es_status = '00'; // 00转圈
@@ -389,6 +394,8 @@
paperData.flagQuery = examination.flagQuery || 'Y';
paperData.flagQueryDetail = examination.flagQueryDetail || 'Y';
mode = paperData.examId ? 'PAPERS' : 'CRS'; // 课程考试CRS,考试中心考试PAPERS
answerMethod.value = examination.answerMethod ?? '01'
console.log('answerMethod', answerMethod.value);
// 设置缓存的键的名称
examinationAnswerCacheKey = 'examinationAnswerCache' + paperData.execId;
+23 -6
View File
@@ -1,5 +1,5 @@
<template>
<view class="main_div max_page">
<view class="main_div max_page no-touch">
<nav-bar :is_seat="true"></nav-bar>
<view class="nav-div">
<view class="title ellipsis-text">
@@ -64,14 +64,26 @@
</swiper-item>
</swiper>
</view>
<view class="fixed-box font_pf" :style="{ marginBottom: popup_input_bottom }">
<view class="touch-btn-div" :class="{ show: showTouchBtn }">
<TouchBtn
<!-- <TouchBtn
ref="touchBtnRef"
class="talk-btns"
@submit="touchBtnSubmit"
disabledText="只能进行一条回答"
:isDisabled="touchIsDisabled"
/> -->
<TouchBtn
class="talk-btns"
ref="touchBtnRef"
@uploadVoice="touchBtnSubmit('voice',$event)"
@submitAnswer="touchBtnSubmit('text',$event)"
:isLoading="touchIsDisabled"
loadingText="只能进行一条回答"
:adjustPosition="false"
:isDisabled="false"
:answerMethod="answerMethod"
/>
</view>
</view>
@@ -90,7 +102,8 @@
import Dialog from '@/pages/examination/components/dialog.vue';
import Subject from '@/components/examination/subject.vue';
import CharactersSubject from '@/components/examination/characters-subject.vue';
import TouchBtn from '@/components/examination/touchBtn.vue';
// import TouchBtn from '@/components/examination/touchBtn.vue';
import TouchBtn from '@/pages/course/components/touchBtn.vue';
import common from '@/common/common';
import { setPageCache, formatSeconds, getPageCache, setupKeyboardHeightListener } from '@/common/common';
import { commonUploadVoiceFile } from '@/api/common.js';
@@ -103,12 +116,15 @@
const feedbackRef = ref(null);
const dialogRef = ref(null);
const touchBtnRef = ref(null);
const answerMethod = ref('01');
const practiceTime = ref(0); // 当前练习时间
let practiceStartTime = 0; // 练习开始时间
let practiceTimeTimer = null; // 练习计时器
let leaveDuration = 0; // 当前总计离开时间
let leaveStartTime = 0; // 离开开始时间
const mode = ref('practice'); // 考试 examination 练习practice
const systemInfo = uni.getSystemInfoSync();
const paperData = reactive({
exrId: '',
crsId: '',
@@ -301,7 +317,7 @@
// 录音组件提交
const touchBtnSubmit = (type, submitObj) => {
const topic = topicList[questionNumber.value];
touchBtnRef.value?.clearinputText(); // 清除发送框数据
// touchBtnRef.value?.clearinputText(); // 清除发送框数据
if (type === 'voice') {
if (topic.es_status === '00') return;
topic.es_status = '00'; // 00转圈
@@ -363,6 +379,8 @@
es_status: '', // 预设一下问答题的状态,'' 空为没有 00 转圈 01 播放,其他暂定
my_answer: []
}));
answerMethod.value = practice.answerMethod ?? '01'
console.log('answerMethod', answerMethod.value);
addProblem();
// 记录练习起始时间
practiceStartTime = new Date().getTime();
@@ -476,7 +494,6 @@
<style scoped lang="scss">
$bg-margin-left: 30rpx;
.popup_title_text {
color: red;
}
@@ -769,7 +786,7 @@
flex-direction: column;
background: linear-gradient(to top, #3480ff, #0066ff);
/* 确保背景占满整个视口高度 */
min-height: 100vh;
// min-height: 100vh;
margin: 0;
}
</style>
@@ -13,15 +13,6 @@
<subject :item="item" mode="mistake" :isPreview="true" :clearResult="false"></subject>
</view>
</view>
<!-- <view class="max_page detail-main">
<scroll-view :scroll-y="true" class="scroll-Y" :show-scrollbar="false" @scrolltolower="scrolltolower"> -->
<!-- <view class="content" v-for="(item, index) in data_list">
<subject :item="item" mode="mistake" :isPreview="true" :clearResult="false"></subject>
</view> -->
<!-- <list-no-data v-if="total === 0 && status == 'nomore'">暂无错题</list-no-data> -->
<!-- <uv-load-more v-if="total !== 0" :status="status" loadmore-text="轻轻上拉加载" :height="30"></uv-load-more> -->
<!-- </scroll-view>
</view> -->
<template #bottom>
<view class="fixed-box" v-if="show_fixed_button_statue"></view>
</template>
+11 -7
View File
@@ -1,5 +1,5 @@
<template>
<view class="main_div max_page">
<view class="main_div max_page no-touch">
<nav-bar :is_seat="true"></nav-bar>
<view class="nav-div">
<view class="title ellipsis-text">
@@ -64,11 +64,14 @@
<view class="fixed-box font_pf" :style="{ marginBottom: popup_input_bottom }">
<view class="touch-btn-div" :class="{ show: showTouchBtn }">
<TouchBtn
ref="touchBtnRef"
class="talk-btns"
@submit="touchBtnSubmit"
disabledText="只能进行一条回答"
:isDisabled="touchIsDisabled"
ref="touchBtnRef"
@uploadVoice="touchBtnSubmit('voice',$event)"
@submitAnswer="touchBtnSubmit('text',$event)"
:isLoading="touchIsDisabled"
loadingText="只能进行一条回答"
:adjustPosition="false"
:isDisabled="false"
/>
</view>
</view>
@@ -85,7 +88,8 @@
import Feedback from '@/pages/examination/components/feedback.vue';
import Dialog from '@/pages/examination/components/dialog.vue';
import Subject from '@/components/examination/subject.vue';
import TouchBtn from '@/components/examination/touchBtn.vue';
// import TouchBtn from '@/components/examination/touchBtn.vue';
import TouchBtn from '@/pages/course/components/touchBtn.vue';
import common from '@/common/common';
import { getPageCache, setupKeyboardHeightListener } from '@/common/common';
import { commonUploadVoiceFile } from '@/api/common.js';
@@ -288,7 +292,7 @@
// 录音组件提交
const touchBtnSubmit = (type, submitObj) => {
const topic = topicList[questionNumber.value];
touchBtnRef.value?.clearinputText(); // 清除发送框数据
// touchBtnRef.value?.clearinputText(); // 清除发送框数据
console.log('录音组件提交');
if (type === 'voice') {
if (topic.es_status == '00') return;