const errorImg = require ( '../libs/config.js' ) . errorImg ; Component ( { data : { canIUse : ! ! wx . chooseMessageFile , placeholder : "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='225'/>" } , properties : { nodes : Array , lazyLoad : Boolean , loading : String } , methods : { play ( e ) { this . top . group && this . top . group . pause ( this . top . i ) ; if ( this . top . videoContexts . length > 1 && this . top . data . autopause ) for ( var i = this . top . videoContexts . length ; i -- ; ) if ( this . top . videoContexts [ i ] . id != e . currentTarget . id ) this . top . videoContexts [ i ] . pause ( ) ; } , imgtap ( e ) { var attrs = e . currentTarget . dataset . attrs ; if ( ! attrs . ignore ) { var preview = true ; this . top . triggerEvent ( 'imgtap' , { id : e . currentTarget . id , src : attrs . src , ignore : ( ) => preview = false } ) ; if ( preview ) { if ( this . top . group ) return this . top . group . preview ( this . top . i , attrs . i ) ; var urls = this . top . imgList , current = urls [ attrs . i ] ? urls [ attrs . i ] : ( urls = [ attrs . src ] , attrs . src ) ; wx . previewImage ( { current , urls } ) ; } } } , loadImg ( e ) { var i = e . target . dataset . i ; if ( this . data . lazyLoad && ! this . data . nodes [ i ] . load ) this . setData ( { [ `nodes[${ i }].load` ] : 1 } ) ; else if ( this . data . loading && this . data . nodes [ i ] . load != 2 ) this . setData ( { [ `nodes[${ i }].load` ] : 2 } ) ; } , linkpress ( e ) { var jump = true , attrs = e . currentTarget . dataset . attrs ; attrs . ignore = ( ) => jump = false ; this . top . triggerEvent ( 'linkpress' , attrs ) ; if ( jump ) { if ( attrs [ 'app-id' ] ) wx . navigateToMiniProgram ( { appId : attrs [ 'app-id' ] , path : attrs . path } ) ; else if ( attrs . href ) { if ( attrs . href [ 0 ] == '#' ) this . top . navigateTo ( { id : attrs . href . substring ( 1 ) } ) ; else if ( attrs . href . indexOf ( 'http' ) == 0 || attrs . href . indexOf ( '//' ) == 0 ) wx . setClipboardData ( { data : attrs . href , success : ( ) => wx . showToast ( { title : '链接已复制' } ) } ) ; else wx . navigateTo ( { url : attrs . href , fail ( ) { wx . switchTab ( { url : attrs . href , } ) ; } } ) ; } } } , error ( e ) { var source = e . target . dataset . source , i = e . target . dataset . i , node = this . data . nodes [ i ] ; if ( source == 'video' || source == 'audio' ) { var index = ( node . i || 0 ) + 1 ; if ( index < node . attrs . source . length ) return this . setData ( { [ `nodes[${ i }].i` ] : index } ) ; } else if ( source == 'img' && errorImg ) { this . top . imgList . setItem ( e . target . dataset . index , errorImg ) ; this . setData ( { [ `nodes[${ i }].attrs.src` ] : errorImg } ) ; } this . top && this . top . triggerEvent ( 'error' , { source , target : e . target , errMsg : e . detail . errMsg } ) ; } , loadVideo ( e ) { var i = e . target . dataset . i ; this . setData ( { [ `nodes[${ i }].attrs.autoplay` ] : true } ) ; } } } ) ;