JLBA202505130001_关于吉林银行新建AI智能培训系统的需求_合并冲突
This commit is contained in:
@@ -15,8 +15,10 @@ VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7003'
|
||||
# VITE_APP_BASE_API_Url = 'http://192.168.108.129'
|
||||
# dev
|
||||
|
||||
|
||||
#VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001'
|
||||
|
||||
|
||||
# sit
|
||||
|
||||
#VITE_APP_BASE_API_Url = 'http://25.18.122.91:9786'
|
||||
|
||||
@@ -12,4 +12,5 @@ VITE_APP_BASE_H5_API_Url = 'http://25.18.122.91:9786'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.32.154:9601'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.32.158:9601'
|
||||
# VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.32.154:9602'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAASK = 'http://25.64.32.157:9605'
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<view class="item" :class="{'no-touch':qnsTyp === 'ES' && !isDisabled && ['examination', 'practice', 'mistake_in', 'pk_in'].includes(props.mode)}">
|
||||
<view class="top">
|
||||
<view class="type">{{ subject_type_text }}</view>
|
||||
<!-- v-if="!['study'].includes(props.mode)" -->
|
||||
<view class="type" v-if="!['study_answer'].includes(props.mode)">{{ subject_type_text }}</view>
|
||||
<view class="score" v-if="['settlement', 'examination', 'pk_in'].includes(props.mode)">
|
||||
{{ item.tgtGrade }}分
|
||||
</view>
|
||||
@@ -40,12 +41,12 @@
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
<view class="question_text">
|
||||
<view class="question_text" v-if="!['study_answer'].includes(props.mode)">
|
||||
{{ subject_data.qnsContent }}
|
||||
</view>
|
||||
<view :style="{ height: animationHeight }" :class="{ collapse_wrapper: props.mode === 'mistake' }" ref="wrapperRef">
|
||||
<view class="collapse-content" ref="contentRef">
|
||||
<view class="option_div">
|
||||
<view class="option_div" v-if="!['study_answer'].includes(props.mode)">
|
||||
|
||||
<template v-if="qnsTyp === 'ES'">
|
||||
|
||||
@@ -72,7 +73,7 @@
|
||||
class="option_div_button"
|
||||
v-if="
|
||||
qnsTyp === 'MU' &&
|
||||
['practice', 'study', 'pk_in', 'mistake_in'].includes(props.mode) &&
|
||||
['practice', 'study', 'study_answer', 'pk_in', 'mistake_in'].includes(props.mode) &&
|
||||
!props.isPreview &&
|
||||
clearResult
|
||||
"
|
||||
@@ -93,7 +94,7 @@
|
||||
class="analysis_div"
|
||||
v-if="
|
||||
!clearResult &&
|
||||
['study', 'mistake', 'settlement', 'practice', 'mistake_in', 'practice_record', 'pk_in'].includes(props.mode)
|
||||
['study', 'study_answer', 'mistake', 'settlement', 'practice', 'mistake_in', 'practice_record', 'pk_in'].includes(props.mode)
|
||||
"
|
||||
>
|
||||
<view class="analysis_title" v-if="qnsTyp !== 'ES'">
|
||||
@@ -103,7 +104,7 @@
|
||||
<text :class="right_or_wrong_class ? 'success' : 'error'">{{ myResultLabel.join('') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="reference_answer" v-if="qnsTyp === 'ES'">
|
||||
<view class="reference_answer" v-if="qnsTyp === 'ES' && !['study', 'study_answer'].includes(props.mode)">
|
||||
<view class="reference_answer_title">你的答案:</view>
|
||||
{{ subject_data.anserResult ?? '' }}
|
||||
</view>
|
||||
@@ -167,7 +168,7 @@
|
||||
// 学习: study
|
||||
// 考试结算页 settlement
|
||||
// 练习记录页 practice_record, 'practice_record'
|
||||
return ['examination', 'practice', 'mistake', 'mistake_in', 'study', 'settlement', 'practice_record', 'pk_in'].includes(
|
||||
return ['examination', 'practice', 'mistake', 'mistake_in', 'study', 'study_answer', 'settlement', 'practice_record', 'pk_in'].includes(
|
||||
value
|
||||
);
|
||||
}
|
||||
@@ -314,7 +315,7 @@
|
||||
if (item_answer.value.includes(analysisVo.itemId)) {
|
||||
item_answer.value = item_answer.value.filter((id) => id !== analysisVo.itemId);
|
||||
modelValue.value = item_answer.value;
|
||||
if (!['study'].includes(props.mode)) {
|
||||
if (!['study','study_answer'].includes(props.mode)) {
|
||||
muCheckbox('choose');
|
||||
}
|
||||
} else if (props.item.qnsTyp === 'SN') {
|
||||
@@ -328,7 +329,7 @@
|
||||
// 多选直接插入
|
||||
item_answer.value.push(analysisVo.itemId);
|
||||
modelValue.value = item_answer.value;
|
||||
if (!['study'].includes(props.mode)) {
|
||||
if (!['study','study_answer'].includes(props.mode)) {
|
||||
muCheckbox('choose');
|
||||
}
|
||||
} else if (props.item.qnsTyp === 'JD') {
|
||||
|
||||
@@ -33,11 +33,17 @@
|
||||
<!-- 加载状态 -->
|
||||
<CommonLoading color="#06f" v-show="dataInfo.isLoading" />
|
||||
<!-- 参考答案 -->
|
||||
<view class="talking-text" v-if="type === 5 && !dataInfo.isLoading" style="overflow: hidden">
|
||||
<view class="talking-text" v-if="
|
||||
false
|
||||
//type === 5
|
||||
&& !dataInfo.isLoading" style="overflow: hidden">
|
||||
参考答案:{{ dataInfo.itemAnswer }}
|
||||
</view>
|
||||
<!-- 维度信息预览 -->
|
||||
<view v-if="type === 5 && !dataInfo.isLoading" style="padding-top: 16rpx">
|
||||
<view v-if="
|
||||
false
|
||||
//type === 5
|
||||
&& !dataInfo.isLoading" style="padding-top: 16rpx">
|
||||
<ChartFour v-if="dataInfo.evalDimens.length === 4" :dataList="dataInfo.evalDimens"
|
||||
:score="dataInfo.asrGrade" />
|
||||
<ChartThree v-if="dataInfo.evalDimens.length === 3" :dataList="dataInfo.evalDimens"
|
||||
@@ -46,16 +52,17 @@
|
||||
:score="dataInfo.asrGrade" />
|
||||
</view>
|
||||
<!-- 题干/段落内容 -->
|
||||
<text class="talking-text" v-if="[3, 5, 6, 9].indexOf(type) >= 0 && !dataInfo.isLoading">
|
||||
<text class="talking-text" v-if="[3,
|
||||
// 5,
|
||||
6, 9].indexOf(type) >= 0 && !dataInfo.isLoading">
|
||||
{{ type === 5 ? '试题解析:' : '' }}{{ showContent }}
|
||||
</text>
|
||||
<view class="type-tag" v-if="[4].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'">问答题</view>
|
||||
<!-- <view class="type-tag" v-if="[4].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'">问答题</view>
|
||||
<text class="talking-text" v-if="[4].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'">
|
||||
<!-- 请您思考并作答:<br> -->
|
||||
{{ showContent }}
|
||||
</text>
|
||||
</text> -->
|
||||
<!-- 试题问题 -->
|
||||
<Subject v-if="[4, 8].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :isPreview="!isLast" :item="subjectInfo"
|
||||
<Subject v-if="[4, 5, 8].indexOf(type) >= 0 && !dataInfo.isLoading" :isPreview="!isLast" :item="subjectInfo"
|
||||
:mode="mode" :clearResult="type === 4" @subject_click="subject_click" />
|
||||
<!-- 试题问题反馈 -->
|
||||
<!-- <RadioSubjectRequest v-if="[8].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :item="dataInfo" :mode="mode" @subject_click="subject_click" /> -->
|
||||
@@ -324,10 +331,26 @@
|
||||
return {
|
||||
...dataInfo.value,
|
||||
...(dataInfo.value?.traQnsInfoVo || {}),
|
||||
my_answer: dataInfo.value?.traQnsInfoVo?.anserResult || ''
|
||||
my_answer: dataInfo.value?.traQnsInfoVo?.anserResult || '',
|
||||
...(props.type === 5?{
|
||||
"qnsTyp": "ES",
|
||||
my_answer: dataInfo.value,
|
||||
itemVos: [{
|
||||
...dataInfo.value,
|
||||
"qnsTyp": "ES",
|
||||
"qnsId": dataInfo.value.qnsId,
|
||||
"itemAnswer": dataInfo.value.itemAnswer,
|
||||
"relKeyword": dataInfo.value.relKeyword,
|
||||
anserResult:dataInfo.value?.traQnsInfoVo?.anserResult || '',
|
||||
"evalSettingVos": dataInfo.value?.essayEvalVo,
|
||||
}]
|
||||
}:{})
|
||||
|
||||
};
|
||||
});
|
||||
const mode = ref('study'); // 考试 examination 练习practice 学习study
|
||||
const mode = computed(()=>{
|
||||
return props.type == 5 ? 'study_answer' : 'study'
|
||||
}); // 考试 examination 练习practice 学习study 学习结果study_answer
|
||||
|
||||
const imgAddrs = computed(()=>{
|
||||
return (dataInfo.value.imageAddrs || [])
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
placeholder="请输入文字"></uv-input>
|
||||
</view>
|
||||
<!-- @click="showTalkingModel = true" -->
|
||||
<view class="talk-btn-box" v-show="!onlyVoice">
|
||||
<view class="talk-btn-box" v-show="!onlyVoice && props.answerMethod !== '03'">
|
||||
<image class="talk-btn-icon" v-show="!keyboardIsShow" src="/src/static/images/course/jianpan.png" mode=""
|
||||
@click="changeBtn"></image>
|
||||
<image class="talk-btn-icon" v-show="keyboardIsShow && !answerValue" src="/src/static/images/course/record.png"
|
||||
@@ -36,7 +36,7 @@
|
||||
</view>
|
||||
<view class="btns-box" v-if="transVoiceIng">
|
||||
<view class="cancel-btn transVoiceIng" @click="closeModel()"></view>
|
||||
<view class="trans-btn transVoiceIng" @click="sendVoice()"></view>
|
||||
<view class="trans-btn transVoiceIng" @click="sendVoice()" v-show="props.answerMethod !== '02'"></view>
|
||||
<view class="send-btn" @click="sendText()">发送</view>
|
||||
</view>
|
||||
<view class="btns-box" v-else>
|
||||
@@ -51,10 +51,10 @@
|
||||
<image class="btn-box" v-else src="/src/static/images/course/translate-active.png" mode="heightFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view :class="['talk-dialog', isOut ? 'is-out' : '']" v-show="!isOutRight">
|
||||
<view :class="['talk-dialog', isOut ? 'is-out' : '']" v-show="!isOutRight && !transVoiceIng">
|
||||
<image src="@/static/images/course/voice-white.gif" mode="" class="gif-box"></image>
|
||||
</view>
|
||||
<view :class="['talk-dialog talk-textarea' ]" v-show="isOutRight" @click.stop>
|
||||
<view :class="['talk-dialog talk-textarea' ]" v-show="isOutRight || transVoiceIng" @click.stop>
|
||||
<view class="trans-loading-box" v-show="transLoading">
|
||||
<CommonLoading color="#fff" class="loading-box" />
|
||||
</view>
|
||||
@@ -231,7 +231,8 @@
|
||||
}
|
||||
audioPath.value = res.tempFilePath;
|
||||
console.log(isOut.value, isOutLeft.value, isOutRight.value)
|
||||
if (!isOut.value) {
|
||||
if (!isOut.value && (props.answerMethod !== '02')) {
|
||||
console.log(11111111111)
|
||||
if (startFlag.value !== 2) {
|
||||
closeModel(() => {
|
||||
nextTick(() => {
|
||||
@@ -249,7 +250,7 @@
|
||||
} else if (isOutLeft.value) {
|
||||
console.log('取消')
|
||||
closeModel();
|
||||
} else if (isOutRight.value) {
|
||||
} else if (isOutRight.value || (props.answerMethod === '02')) {
|
||||
console.log('转文本')
|
||||
transLoading.value = true
|
||||
commonUploadVoiceFile(audioPath.value, '/traapp/voice/voiceChart', {}).then(res => {
|
||||
@@ -551,7 +552,7 @@
|
||||
isMoving.value = false;
|
||||
if (!showTalkingModel.value) return;
|
||||
//#ifdef APP-PLUS
|
||||
transVoiceIng.value = isOutRight.value
|
||||
transVoiceIng.value = isOutRight.value || (props.answerMethod === '02')
|
||||
stopRecord();
|
||||
// #endif
|
||||
|
||||
|
||||
@@ -80,6 +80,20 @@
|
||||
<!-- </view> -->
|
||||
</scroll-view>
|
||||
<TouchBtn
|
||||
v-if="answerMethod !== '03'"
|
||||
class="talk-btns"
|
||||
@uploadVoice="uploadRecordNow"
|
||||
@submitAnswer="submitAnswerNow"
|
||||
@startRecord="changePlayItemId('')"
|
||||
:isLoading="isUploadingVoice"
|
||||
:onlyVoice="answerOnlyVoice"
|
||||
:canAnswer="testAnswer"
|
||||
:adjustPosition="true"
|
||||
:canAnswerText="canAnswerText"
|
||||
:answerMethod="answerMethod"
|
||||
:isDisabled="(lastTalkingInfo.type || 0) !== 4 || ['SN', 'MU', 'JD'].includes(lastTalkingInfo.qnsTyp)" />
|
||||
<TouchBtnOnlyVoice
|
||||
v-else
|
||||
class="talk-btns"
|
||||
@uploadVoice="uploadRecordNow"
|
||||
@submitAnswer="submitAnswerNow"
|
||||
@@ -152,6 +166,7 @@ import TalkingItem from '@/pages/course/components/talkingItem.vue'
|
||||
import ImagePreview from '@/components/image-preview/image-preview.vue'
|
||||
import PreviewDetail from '@/components/image-preview/preview-detail.vue'
|
||||
import TouchBtn from '@/pages/course/components/touchBtn.vue'
|
||||
import TouchBtnOnlyVoice from '@/pages/course/components/touchBtnOnlyVoice.vue'
|
||||
import badge from '@/components/points-and-badge/badge';
|
||||
import points from '@/components/points-and-badge/points';
|
||||
import usePointsAndBadge from '@/components/points-and-badge/usePointsAndBadge';
|
||||
@@ -406,7 +421,7 @@ const backRouter = () => {
|
||||
}
|
||||
|
||||
const answerOnlyVoice = computed(() => {
|
||||
return lastTalkingInfo.value.answerWay === 'V'
|
||||
return lastTalkingInfo.value.answerWay === 'V' || (answerMethod.value === '03')
|
||||
})
|
||||
|
||||
const canAnswerText = computed(() => {
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
{{ showContent }}
|
||||
</text>
|
||||
<!-- 试题问题 -->
|
||||
<Subject v-if="[4, 8].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :isPreview="!isLast" :item="subjectInfo"
|
||||
<Subject v-if="[4, 8].indexOf(type) >= 0" :isPreview="!isLast" :item="subjectInfo"
|
||||
:mode="mode" :clearResult="type === 4" @subject_click="subject_click" />
|
||||
<esQuestion v-if="[4, 8].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'" @changePlay="changePlay"
|
||||
:activeVoiceId="activeVoiceId" :dataInfo="esSubjectInfo" />
|
||||
<!-- <esQuestion v-if="[4, 8].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'" @changePlay="changePlay"
|
||||
:activeVoiceId="activeVoiceId" :dataInfo="esSubjectInfo" /> -->
|
||||
<!-- 试题问题反馈 -->
|
||||
<!-- <RadioSubjectRequest v-if="[8].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :item="dataInfo" :mode="mode" @subject_click="subject_click" /> -->
|
||||
<!-- 段落图片视频预览 -->
|
||||
@@ -55,14 +55,14 @@
|
||||
></VideoPreview>
|
||||
</view>
|
||||
<!-- 维度信息预览 -->
|
||||
<view v-if="[4, 8].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'" style="padding-top: 16rpx;">
|
||||
<!-- <view v-if="[4, 8].indexOf(type) >= 0 && dataInfo.qnsTyp === 'ES'" style="padding-top: 16rpx;">
|
||||
<ChartFour v-if="esSubjectInfo?.evalSettingVos?.length === 4" :dataList="esSubjectInfo.evalSettingVos"
|
||||
:score="intrctGrade" />
|
||||
<ChartThree v-if="esSubjectInfo?.evalSettingVos?.length === 3" :dataList="esSubjectInfo.evalSettingVos"
|
||||
:score="intrctGrade" />
|
||||
<ChartFive v-if="esSubjectInfo?.evalSettingVos?.length === 5" :dataList="esSubjectInfo.evalSettingVos"
|
||||
:score="intrctGrade" />
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- 参考答案 -->
|
||||
<view class="talking-text" v-if="type === 5 && !dataInfo.isLoading" style="overflow: hidden;">
|
||||
参考答案:{{ dataInfo.itemAnswer }}
|
||||
|
||||
Reference in New Issue
Block a user