From f47973d6ecefc78139f705c681d6af61da62962c Mon Sep 17 00:00:00 2001 From: yanghang Date: Wed, 9 Jul 2025 21:08:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AD=A6=E4=B9=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/course/components/talkingItem.vue | 30 ++++++-- src/pages/course/study.vue | 77 ++++++++++++++++----- 2 files changed, 84 insertions(+), 23 deletions(-) diff --git a/src/pages/course/components/talkingItem.vue b/src/pages/course/components/talkingItem.vue index 4cbb7541..2ba3a20b 100644 --- a/src/pages/course/components/talkingItem.vue +++ b/src/pages/course/components/talkingItem.vue @@ -27,7 +27,7 @@ - + @@ -59,7 +59,7 @@ 继续学 @@ -70,13 +70,23 @@ v-if="showNextBtn && [5].indexOf(type) >= 0 && isLast" @click.stop="goOnRestart" > - 重新学 + 重新答 - + + + 继续 + + + {{ changeBr(dataInfo.suggestContent || '--') }} + + @@ -274,6 +284,10 @@ const audioCacheObj = computed(() => storageStore.audioObj) return _str.replace(/\/n/g,"\n") }) + const changeBr = (str = '') => { + return str.replace(/\/n/g,"\n") + } + onUnload(()=>{ pauseVoice() }) @@ -403,6 +417,9 @@ const audioCacheObj = computed(() => storageStore.audioObj) const goOnRestart = () => { emit('nextQuestion', unref(dataInfo), 'reStart') } + const goOnRestartPrgh = () => { + emit('nextQuestion', unref(dataInfo), 'reStartPrgh') + } // 撤回 const withdraw = (data) => { emit('withdraw',data) @@ -452,7 +469,7 @@ const audioCacheObj = computed(() => storageStore.audioObj) border-radius: 15rpx; background-color: #fff; overflow: hidden; - padding-bottom: 40rpx; + padding-bottom: 30rpx; &.talking-info-less{ float: left; min-width: 400rpx; @@ -470,7 +487,7 @@ const audioCacheObj = computed(() => storageStore.audioObj) } } .talking-cont{ - margin-top: 16rpx; + margin: 16rpx 0; overflow: hidden; min-height: 48rpx; .talking-text{ @@ -633,6 +650,7 @@ const audioCacheObj = computed(() => storageStore.audioObj) padding: 20rpx; border-radius: 15rpx; background-color: #06f; + padding-bottom: 30rpx; color: #fff; .talking-gif{ width: 200rpx; diff --git a/src/pages/course/study.vue b/src/pages/course/study.vue index b7e0d361..50aedcda 100644 --- a/src/pages/course/study.vue +++ b/src/pages/course/study.vue @@ -45,6 +45,9 @@ 课程学习 + + {{ showOrder }} / {{ pgrphNum }} + - - {{ showOrder }} / {{ pgrphNum }} - { scrollToBottomNow(0) getQuestionInfoUnStudy(info.pgrphId) }) - }else if( type === 'reStart'){ + }else if(type === 'reStart'){ + talkingList.value.push({ + crsId: info.crsId, + pgrphId: info.pgrphId, + talkingContent: '重新学', + type: 0, + id: _id + }) // 重新回答 textChartApi({ - processType: 'NEW-ANSER', + processType: 'NEW-ANSER',//NEW-KNOW requestBody: info.qstLogId }).then(res=>{ let _body = res.body|| {} @@ -426,6 +433,40 @@ const nextQuestionSuccess = (info, type='next') => { qstLogId.value = _body.chatBody.qstLogId scrollToBottomNow() }) + }else if (type === 'reStartPrgh'){ + talkingList.value.push({ + crsId: info.crsId, + pgrphId: info.pgrphId, + talkingContent: '重新学', + type: 0, + id: _id + }) + textChartApi({ + processType: 'NEW-KNOW', + requestBody: JSON.stringify({ + logId: info.logId, + pgrphId: info.pgrphId + }) + }).then(res=>{ + let _body = res.body|| {} + if(!_body.chatBody) { + return + } + lastTalkingInfo.value = { + crsId: info.crsId, + qstLogId: _body.chatBody, + pgrphId: info.pgrphId, + chatContent: _body.chatContent, + userInfo: {...choiceTeacherInfo.value}, + ..._body.chatBody, + type: Number(_body.bodyTyp) || 0, + id: _id, + isQuestion: true + } + talkingList.value.push(lastTalkingInfo.value) + qstLogId.value = _body.chatBody.qstLogId + scrollToBottomNow() + }) } } const scrollBoxRef = ref() @@ -782,28 +823,30 @@ const chooseRateNow = (item) => { color: #000; } } + .study-num{ + height: 36rpx; + line-height: 36rpx; + text-align: center; + padding-top: 30rpx; + box-sizing: content-box; + background: url(@/static/images/course/study-bg.png) no-repeat; + border-radius: 30rpx 30rpx 0 0; + .color-blue{ + color: #06f; + display: inline; + } + } .talking-list{ flex:1; overflow-y: auto; - padding: 30rpx; + padding: 10rpx 30rpx; background: url(@/static/images/course/study-bg.png) no-repeat; background-size: cover; - border-radius: 30rpx 30rpx 0 0; box-sizing: border-box; width: 100%; .talking-list-cont{ padding: 0; } - .study-num{ - height: 36rpx; - line-height: 36rpx; - text-align: center; - margin-bottom: 15rpx; - .color-blue{ - color: #06f; - display: inline; - } - } .talking-item{ margin-bottom: 46rpx; }