1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

133 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 });
},
},
});