<template>
							 | 
						|
								    <!-- 邮箱填写弹窗 -->
							 | 
						|
								    <uv-popup ref="emailPopup" :round="30" :safeAreaInsetBottom="false">
							 | 
						|
								        <view class="email-popup">
							 | 
						|
								            <view class="email-title">
							 | 
						|
								                完善邮箱信息
							 | 
						|
								            </view>
							 | 
						|
								            <view class="email-desc">
							 | 
						|
								                为了更好的服务体验,请填写您的邮箱地址
							 | 
						|
								            </view>
							 | 
						|
								            <view class="email-input-box">
							 | 
						|
								                <input 
							 | 
						|
								                    type="email" 
							 | 
						|
								                    v-model="emailForm.mail" 
							 | 
						|
								                    placeholder="请输入邮箱地址"
							 | 
						|
								                    class="email-input"
							 | 
						|
								                />
							 | 
						|
								            </view>
							 | 
						|
								            <view class="email-buttons">
							 | 
						|
								                <view class="email-btn cancel-btn" @click="skipEmail">
							 | 
						|
								                    跳过
							 | 
						|
								                </view>
							 | 
						|
								                <view class="email-btn confirm-btn" @click="saveEmail">
							 | 
						|
								                    确认
							 | 
						|
								                </view>
							 | 
						|
								            </view>
							 | 
						|
								        </view>
							 | 
						|
								    </uv-popup>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
								export default {
							 | 
						|
								    name: 'EmailPopup',
							 | 
						|
								    data() {
							 | 
						|
								        return {
							 | 
						|
								            emailForm: {
							 | 
						|
								                mail: ''
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    },
							 | 
						|
								    methods: {
							 | 
						|
								        // 显示邮箱填写弹窗
							 | 
						|
								        show() {
							 | 
						|
								            this.$refs.emailPopup.open('center')
							 | 
						|
								        },
							 | 
						|
								        
							 | 
						|
								        // 隐藏邮箱填写弹窗
							 | 
						|
								        hide() {
							 | 
						|
								            this.$refs.emailPopup.close()
							 | 
						|
								        },
							 | 
						|
								        
							 | 
						|
								        // 跳过邮箱填写
							 | 
						|
								        skipEmail() {
							 | 
						|
								            this.hide()
							 | 
						|
								            this.resetForm()
							 | 
						|
								            this.$emit('skip')
							 | 
						|
								        },
							 | 
						|
								        
							 | 
						|
								        // 保存邮箱
							 | 
						|
								        saveEmail() {
							 | 
						|
								            if (!this.emailForm.mail) {
							 | 
						|
								                uni.showToast({
							 | 
						|
								                    title: '请输入邮箱地址',
							 | 
						|
								                    icon: 'none'
							 | 
						|
								                })
							 | 
						|
								                return
							 | 
						|
								            }
							 | 
						|
								            
							 | 
						|
								            // 验证邮箱格式
							 | 
						|
								            const emailReg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
							 | 
						|
								            if (!emailReg.test(this.emailForm.mail)) {
							 | 
						|
								                uni.showToast({
							 | 
						|
								                    title: '请输入正确的邮箱格式',
							 | 
						|
								                    icon: 'none'
							 | 
						|
								                })
							 | 
						|
								                return
							 | 
						|
								            }
							 | 
						|
								            
							 | 
						|
								            // 更新用户邮箱信息
							 | 
						|
								            this.$api('updateInfo', {
							 | 
						|
								                mail: this.emailForm.mail
							 | 
						|
								            }, res => {
							 | 
						|
								                if (res.code == 200) {
							 | 
						|
								                    // 更新本地用户信息
							 | 
						|
								                    this.$store.commit('getUserInfo')
							 | 
						|
								                    this.hide()
							 | 
						|
								                    this.resetForm()
							 | 
						|
								                    uni.showToast({
							 | 
						|
								                        title: '邮箱保存成功',
							 | 
						|
								                        icon: 'success'
							 | 
						|
								                    })
							 | 
						|
								                    this.$emit('confirm', this.emailForm.mail)
							 | 
						|
								                }
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								        
							 | 
						|
								        // 重置表单
							 | 
						|
								        resetForm() {
							 | 
						|
								            this.emailForm.mail = ''
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								<style scoped lang="scss">
							 | 
						|
								.email-popup {
							 | 
						|
								    padding: 40rpx;
							 | 
						|
								    width: 600rpx;
							 | 
						|
								    
							 | 
						|
								    .email-title {
							 | 
						|
								        font-size: 36rpx;
							 | 
						|
								        font-weight: bold;
							 | 
						|
								        text-align: center;
							 | 
						|
								        margin-bottom: 20rpx;
							 | 
						|
								        color: #333;
							 | 
						|
								    }
							 | 
						|
								    
							 | 
						|
								    .email-desc {
							 | 
						|
								        font-size: 28rpx;
							 | 
						|
								        color: #666;
							 | 
						|
								        text-align: center;
							 | 
						|
								        margin-bottom: 40rpx;
							 | 
						|
								        line-height: 1.5;
							 | 
						|
								    }
							 | 
						|
								    
							 | 
						|
								    .email-input-box {
							 | 
						|
								        margin-bottom: 40rpx;
							 | 
						|
								        
							 | 
						|
								        .email-input {
							 | 
						|
								            width: 100%;
							 | 
						|
								            height: 80rpx;
							 | 
						|
								            border: 2rpx solid #e5e5e5;
							 | 
						|
								            border-radius: 10rpx;
							 | 
						|
								            padding: 0 20rpx;
							 | 
						|
								            font-size: 28rpx;
							 | 
						|
								            box-sizing: border-box;
							 | 
						|
								            
							 | 
						|
								            &:focus {
							 | 
						|
								                border-color: $uni-color-primary;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								    
							 | 
						|
								    .email-buttons {
							 | 
						|
								        display: flex;
							 | 
						|
								        gap: 20rpx;
							 | 
						|
								        
							 | 
						|
								        .email-btn {
							 | 
						|
								            flex: 1;
							 | 
						|
								            height: 80rpx;
							 | 
						|
								            line-height: 80rpx;
							 | 
						|
								            text-align: center;
							 | 
						|
								            border-radius: 10rpx;
							 | 
						|
								            font-size: 28rpx;
							 | 
						|
								            
							 | 
						|
								            &.cancel-btn {
							 | 
						|
								                background-color: #f5f5f5;
							 | 
						|
								                color: #666;
							 | 
						|
								            }
							 | 
						|
								            
							 | 
						|
								            &.confirm-btn {
							 | 
						|
								                background-color: $uni-color-primary;
							 | 
						|
								                color: #fff;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								</style>
							 |