feat(voice): add reusable transcript records
This commit is contained in:
@@ -30,7 +30,15 @@
|
||||
<view class="content-field">
|
||||
<view class="content-label-row">
|
||||
<text class="form-label">反馈内容</text>
|
||||
<text class="content-count">{{contentLength}} / 2000</text>
|
||||
<view class="content-actions">
|
||||
<text class="content-count">{{contentLength}} / 2000</text>
|
||||
<button
|
||||
wx:if="{{contentLength > 0}}"
|
||||
class="content-clear-button"
|
||||
disabled="{{recording || voiceBusy}}"
|
||||
bindtap="clearFeedbackContent"
|
||||
>清空</button>
|
||||
</view>
|
||||
</view>
|
||||
<textarea
|
||||
class="feedback-textarea"
|
||||
@@ -51,10 +59,50 @@
|
||||
<text class="voice-button-icon">{{recording ? '■' : '●'}}</text>
|
||||
<text>{{recording ? '结束录音' : '语音录入'}}</text>
|
||||
</button>
|
||||
<view class="voice-state {{voiceActionable ? 'voice-state-actionable' : ''}}" bindtap="openVoiceDetails">
|
||||
<view class="voice-state {{voiceActionable ? 'voice-state-actionable' : ''}}" bindtap="toggleVoiceDetails">
|
||||
<text class="voice-status">{{voiceStatus}}</text>
|
||||
<text wx:if="{{recording}}" class="recording-time">{{recordingTime}}</text>
|
||||
<text wx:elif="{{voiceActionable}}" class="voice-state-arrow">›</text>
|
||||
<text wx:elif="{{voiceActionable}}" class="voice-state-arrow">{{voiceDetailsExpanded ? '⌃' : '⌄'}}</text>
|
||||
</view>
|
||||
<view wx:if="{{voiceDetailsExpanded}}" class="voice-record-list">
|
||||
<view class="voice-record-list-heading">
|
||||
<text>语音记录</text>
|
||||
<text>{{voiceLessonViews.length}}节</text>
|
||||
</view>
|
||||
<view
|
||||
wx:for="{{voiceLessonViews}}"
|
||||
wx:key="id"
|
||||
wx:for-item="lesson"
|
||||
class="voice-record-item"
|
||||
>
|
||||
<view class="voice-record-header">
|
||||
<view>
|
||||
<text class="voice-record-title">第{{lesson.sequence}}节</text>
|
||||
<text class="voice-record-duration">{{lesson.durationText}} · {{lesson.transcriptLength}}字</text>
|
||||
</view>
|
||||
<text class="voice-record-status">{{lesson.statusText}}</text>
|
||||
</view>
|
||||
<text
|
||||
wx:if="{{lesson.transcript}}"
|
||||
selectable
|
||||
class="voice-record-transcript {{expandedVoiceLessonId === lesson.id ? 'voice-record-transcript-expanded' : ''}}"
|
||||
>{{lesson.transcript}}</text>
|
||||
<text wx:else class="voice-record-empty">{{lesson.emptyText}}</text>
|
||||
<view wx:if="{{lesson.transcript}}" class="voice-record-actions">
|
||||
<button
|
||||
wx:if="{{lesson.transcriptExpandable}}"
|
||||
class="voice-record-text-button"
|
||||
data-lesson-id="{{lesson.id}}"
|
||||
bindtap="toggleVoiceLessonTranscript"
|
||||
>{{expandedVoiceLessonId === lesson.id ? '收起' : '展开'}}</button>
|
||||
<button
|
||||
class="voice-record-add-button"
|
||||
data-lesson-id="{{lesson.id}}"
|
||||
disabled="{{!lesson.canAdd || voiceBusy}}"
|
||||
bindtap="addVoiceLessonToDraft"
|
||||
>{{lesson.addActionText}}</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:if="{{session && session.failedSegmentCount > 0}}" class="voice-failure-recovery">
|
||||
<text class="voice-failure-hint">{{voiceFailureHint}}</text>
|
||||
|
||||
Reference in New Issue
Block a user