<view class="recorder"><block wx:if="{{showTop}}"><view class="re-top"><view data-event-opts="{{[['tap',[['cancel',['$event']]]]]}}" class="re-cancel" bindtap="__e">取消</view><view data-event-opts="{{[['tap',[['confirm',['$event']]]]]}}" class="re-confirm" style="{{'color:'+(theme)+';'}}" bindtap="__e">{{confirmText}}</view></view></block><text class="title">{{finish?'点击播放':'长按录制语音'}}</text><block wx:if="{{!finish}}"><view data-event-opts="{{[['tap',[['handle',['$event']]]],['longpress',[['onStartRecoder',['$event']]]],['touchend',[['onEndRecoder',['$event']]]]]}}" class="recorder-box" bindtap="__e" bindlongpress="__e" bindtouchend="__e"><u-circle-progress vue-id="49062d1a-1" active-color="{{theme}}" duration="{{0}}" percent="{{calcProgress}}" bind:__l="__l" vue-slots="{{['default']}}"><view class="u-progress-content"><image style="{{'width:'+(width)+';'+('height:'+(height)+';')}}" src="/static/sound-recording/voice.png" mode="aspectFit"></image></view></u-circle-progress></view></block><block wx:else><view data-event-opts="{{[['tap',[['playVoice',['$event']]]]]}}" class="recorder-box" bindtap="__e"><u-circle-progress vue-id="49062d1a-2" active-color="{{theme}}" duration="{{0}}" percent="{{playProgress}}" bind:__l="__l" vue-slots="{{['default']}}"><view class="u-progress-content"><block wx:if="{{!playStatus}}"><image style="{{'width:'+(width)+';'+('height:'+(height)+';')}}" src="/static/sound-recording/play.png" mode="aspectFit"></image></block><block wx:else><image style="{{'width:'+(width)+';'+('height:'+(height)+';')}}" src="/static/sound-recording/pause.png" mode="aspectFit"></image></block></view></u-circle-progress></view></block><text class="now-date">{{reDate}}</text><view data-event-opts="{{[['tap',[['reset',['$event']]]]]}}" bindtap="__e">重新录制</view></view>