You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
Component ( {
options : {
addGlobalClass : true ,
multipleSlots : true , // 在组件定义时的选项中启用多slot支持
} ,
externalClasses : [
'title-class' ,
'desc-class' ,
'num-class' ,
'thumb-class' ,
'specs-class' ,
'price-class' ,
'origin-price-class' ,
'price-prefix-class' ,
] ,
relations : {
'../order-card/index' : {
type : 'ancestor' ,
linked ( target ) {
this . parent = target ;
} ,
} ,
} ,
properties : {
id : String ,
hidden : {
// 设置为null代表不做类型转换
type : null ,
observer ( hidden ) {
// null就是代表没有设置, 没有设置的话不setData, 防止祖先组件触发的setHidden操作被覆盖
if ( hidden !== null ) {
this . setHidden ( ! ! hidden ) ;
}
} ,
} ,
data : Object ,
layout : {
type : String ,
value : 'horizontal' ,
} ,
thumbMode : {
type : String ,
value : 'aspectFill' ,
} ,
thumbWidth : Number ,
thumbHeight : Number ,
thumbWidthInPopup : Number ,
thumbHeightInPopup : Number ,
priceFill : {
type : Boolean ,
value : true ,
} ,
currency : {
type : String ,
value : '¥' ,
} ,
lazyLoad : Boolean ,
centered : Boolean ,
showCart : Boolean ,
pricePrefix : String ,
cartSize : {
type : Number ,
value : 48 ,
} ,
cartColor : {
type : String ,
value : '#FA550F' ,
} ,
disablePopup : Boolean ,
} ,
data : {
hiddenInData : false ,
specsPopup : {
insert : false ,
show : false ,
} ,
} ,
currentInTapSpecs : false ,
lifetimes : {
ready ( ) {
const { hidden } = this . properties ;
if ( hidden !== null ) {
this . setHidden ( ! ! hidden ) ;
}
} ,
} ,
methods : {
closeSpecsPopup ( ) {
this . setData ( {
'specsPopup.show' : false ,
} ) ;
this . triggerEvent ( 'specsclose' , { good : this . properties . data } ) ;
} ,
removeSpecsPopup ( ) {
this . setData ( {
'specsPopup.insert' : false ,
} ) ;
} ,
onClick ( e ) {
if ( this . currentInTapSpecs ) {
this . currentInTapSpecs = false ;
return ;
}
this . triggerEvent ( 'click' , e . detail ) ;
} ,
onClickThumb ( e ) {
this . triggerEvent ( 'thumb' , e . detail ) ;
} ,
onClickTag ( e ) {
this . triggerEvent ( 'tag' , e . detail ) ;
} ,
onClickCart ( e ) {
this . triggerEvent ( 'add-cart' , e . detail ) ;
} ,
setHidden ( hidden ) {
this . setData ( { hiddenInData : ! ! hidden } ) ;
} ,
} ,
} ) ;