91 lines
1.9 KiB
JavaScript
91 lines
1.9 KiB
JavaScript
|
Component({
|
|||
|
externalClasses: ['wr-class', 'header-class', 'title-class'],
|
|||
|
|
|||
|
options: {
|
|||
|
multipleSlots: true,
|
|||
|
},
|
|||
|
|
|||
|
relations: {
|
|||
|
'../order-goods-card/index': {
|
|||
|
type: 'descendant',
|
|||
|
linked(target) {
|
|||
|
this.children.push(target);
|
|||
|
this.setHidden();
|
|||
|
},
|
|||
|
unlinked(target) {
|
|||
|
this.children = this.children.filter((item) => item !== target);
|
|||
|
},
|
|||
|
},
|
|||
|
'../goods-card/index': {
|
|||
|
type: 'descendant',
|
|||
|
linked(target) {
|
|||
|
this.children.push(target);
|
|||
|
this.setHidden();
|
|||
|
},
|
|||
|
unlinked(target) {
|
|||
|
this.children = this.children.filter((item) => item !== target);
|
|||
|
},
|
|||
|
},
|
|||
|
'../specs-goods-card/index': {
|
|||
|
type: 'descendant',
|
|||
|
linked(target) {
|
|||
|
this.children.push(target);
|
|||
|
this.setHidden();
|
|||
|
},
|
|||
|
unlinked(target) {
|
|||
|
this.children = this.children.filter((item) => item !== target);
|
|||
|
},
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
created() {
|
|||
|
this.children = [];
|
|||
|
},
|
|||
|
|
|||
|
properties: {
|
|||
|
order: {
|
|||
|
type: Object,
|
|||
|
observer(order) {
|
|||
|
if (!order?.goodsList) return;
|
|||
|
const goodsCount = order.goodsList.length;
|
|||
|
this.setData({
|
|||
|
goodsCount,
|
|||
|
});
|
|||
|
},
|
|||
|
},
|
|||
|
useTopRightSlot: Boolean,
|
|||
|
// 初始显示的商品数量,超出部分会隐藏。
|
|||
|
defaultShowNum: {
|
|||
|
type: null,
|
|||
|
value: 10,
|
|||
|
},
|
|||
|
useLogoSlot: {
|
|||
|
type: Boolean,
|
|||
|
value: false,
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
data: {
|
|||
|
showAll: true, // 是否展示所有商品,设置为false,可以使用展开更多功能
|
|||
|
goodsCount: 0,
|
|||
|
},
|
|||
|
|
|||
|
methods: {
|
|||
|
setHidden() {
|
|||
|
const isHidden = !this.data.showAll;
|
|||
|
this.children.forEach(
|
|||
|
(c, i) => i >= this.properties.defaultShowNum && c.setHidden(isHidden),
|
|||
|
);
|
|||
|
},
|
|||
|
|
|||
|
onOrderCardTap() {
|
|||
|
this.triggerEvent('cardtap');
|
|||
|
},
|
|||
|
|
|||
|
onShowMoreTap() {
|
|||
|
this.setData({ showAll: true }, () => this.setHidden());
|
|||
|
this.triggerEvent('showall');
|
|||
|
},
|
|||
|
},
|
|||
|
});
|