<template>
    <view class="member-wrapper">
        <!-- 成员基本信息 -->
        <view class="member-item">
            <view class="member-avatar">
                <image :src="member.hanHaiMember.headImage" mode="aspectFill" />
            </view>
            <view class="member-info">
                <text class="member-name">{{ member.hanHaiMember.nickName }}</text>
            </view>
            <view class="check-food-btn check-btn" @click="toggleExpand">
                <text>{{ isExpanded ? '收起餐点' : '查看餐点' }}</text>
                <uv-icon :name="isExpanded ? 'arrow-up' : 'arrow-down'" color="#019245" size="30rpx"></uv-icon>
            </view>
            <view v-if="status === '1'" class="check-notice-btn check-btn" @click="sendNotice">
                <text>通知取餐</text>
            </view>
            <view v-if="status === '2'" class="check-notice-btn check-btn" @click="completeOrder">
                <text>完成取餐</text>
            </view>
        </view>

        <!-- 餐点列表展开区域 - 使用v-if替代uv-transition -->
        <view class="food-detail" v-if="isExpanded">
            <view class="food-list">
                <view class="food-item" v-for="(food, index) in member.goodsList" :key="index">
                    <view class="food-left">
                        <image class="food-image" :src="food.goods.image" mode="aspectFill" />
                        <view class="food-info">
                            <text class="food-name">{{ food.goods.title }}</text>
                            <view class="food-sold">
                                <uv-icon name="checkmark-circle" color="#ccc" size="24rpx"></uv-icon>
                                <text>已售出 {{ food.goods.sales }}单</text>
                            </view>
                            <text class="food-price"> <text style="font-size: 20rpx; margin-right: 5rpx;">¥</text> {{ food.goods.price.toFixed(2) }}</text>
                        </view>
                    </view>
                    <view class="food-right">
                        <text class="food-quantity">×{{ food.num }}</text>
                    </view>
                </view>
            </view>
        </view>
    </view>
</template>

<script>
export default {
    name: 'MemberFoodItem',
    props: {
        // 成员信息，包含头像、姓名和餐点列表
        member: {
            type: Object,
            required: true
        },
        // 是否默认展开
        defaultExpanded: {
            type: Boolean,
            default: false
        },
        // 从父页面获取的订单状态
        status: {
            type: String,
            default: '0'
        }
    },
    data() {
        return {
            isExpanded: false
        }
    },
    created() {
        // 初始化展开状态
        this.isExpanded = this.defaultExpanded;
    },
    methods: {
        // 切换展开/收起状态
        toggleExpand() {
            this.isExpanded = !this.isExpanded;
            // 触发事件，通知父组件状态变化
            this.$emit('toggle', {
                member: this.member,
                expanded: this.isExpanded
            });
        },
        sendNotice() {
            this.$emit('sendNotice')
            // 模拟通知体验
            // setTimeout(() => {
            //     uni.showLoading({
            //         title: '通知中...',
            //         icon: 'loading',
            //         duration: 2000
            //     })
            //     setTimeout(() => {
            //         uni.hideLoading()
            //         uni.showToast({
            //             title: '通知成功',
            //             icon: 'success',
            //             duration: 2000
            //         })
            //     }, 1200)
            // }, 200)
            // 这里存放通知函数的逻辑....
        },
        completeOrder() {
            this.$emit('completeOrder')
            // 模拟体验
            // setTimeout(() => {
            //     uni.showLoading({
            //         title: '请稍等...',
            //         icon: 'loading',
            //         duration: 2000
            //     })
            //     setTimeout(() => {
            //         uni.hideLoading()
            //         uni.showToast({
            //             title: '已完成',
            //             icon: 'success',
            //             duration: 2000
            //         })
            //     }, 1200)
            // }, 200)
            // 这里执行函数逻辑
        }
    }
}
</script>

<style lang="scss" scoped>
.member-wrapper {
    margin-bottom: 20rpx;
    border-radius: 10rpx;
    overflow: hidden;

    .member-item {
        display: flex;
        align-items: center;
        background-color: #fff;
        padding: 30rpx 20rpx;

        .member-avatar {
            width: 70rpx;
            height: 70rpx;
            margin-right: 20rpx;

            image {
                width: 100%;
                height: 100%;
                border-radius: 10rpx;
            }
        }

        .member-info {
            flex: 1;

            .member-name {
                font-size: 30rpx;
                font-weight: 500;
            }
        }

        .check-btn{
            border-radius: 30rpx;
            display: flex;
            align-items: center;
            font-size: 26rpx;
            gap: 10rpx;
            transition: all 0.3s;

            &:active {
                opacity: 0.8;
                transform: scale(0.98);
            }
        }
        .check-food-btn {
            border: 2rpx solid $uni-color;
            color: $uni-color;
            padding: 10rpx 20rpx;
        }
        .check-notice-btn{
            padding: 10rpx 40rpx;
            background-color: $uni-color;
            color: #fff;
            margin-left: 20rpx;
        }

    }

    .food-detail {
        background-color: #fff;
        padding: 20rpx;
        box-shadow: inset 0 4rpx 8rpx rgba(0, 0, 0, 0.05);

        .fold-handle {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 10rpx 0;
            margin-bottom: 10rpx;
            border-bottom: 1px dashed #eeeeee;

            .fold-text {
                font-size: 24rpx;
                color: $uni-color-third;
                margin-left: 10rpx;
            }

            &:active {
                opacity: 0.8;
            }
        }

        .food-list {
            .food-item {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 15rpx 0;
                border-bottom: 1px solid #f5f5f5;

                &:last-child {
                    border-bottom: none;
                }

                .food-left {
                    display: flex;
                    align-items: center;

                    .food-image {
                        width: 120rpx;
                        height: 120rpx;
                        // border-radius: 8rpx;
                        margin-right: 15rpx;
                    }

                    .food-info {
                        .food-name {
                            font-size: 28rpx;
                            color: #333;
                            margin-bottom: 10rpx;
                            display: block;
                        }

                        .food-sold {
                            display: flex;
                            align-items: center;
                            font-size: 24rpx;
                            color: $uni-color-third;

                            text {
                                margin-left: 4rpx;
                            }
                        }
                        .food-price {
                            font-size: 28rpx;
                            color: $uni-color-second;
                            display: block;
                            margin-bottom: 10rpx;
                        }
                    }
                }

                .food-right {
                    text-align: right;


                    .food-quantity {
                        font-size: 24rpx;
                        color: #333;
                        display: block;
                    }
                }
            }
        }
    }
}
</style>