import memberService from '../../utils/member.js';

Page({
  onShow() {
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 3
      });
    }
    
    // 加载会员信息
    this.loadMemberInfo();
  },

  data:{
    avatarUrl:'/images/avatar-default.png',
    nickname:'用户'+Math.floor(Math.random()*10000),
    hasUserInfo: false,
    memberInfo: {},
    memberLevel: {},
    nextLevel: null,
    menuItems: [
      {
        id: 'orders',
        title: '我的订单',
        icon: '📋',
        desc: '订单管理',
        url: '/pages/orders/orders'
      },
      {
        id: 'passengers',
        title: '乘车人管理',
        icon: '👥',
        desc: '乘车人信息',
        url: '/pages/passenger-management/passenger-management'
      },
      {
        id: 'coupons',
        title: '我的优惠券',
        icon: '🎫',
        desc: '优惠券',
        url: '/pages/my-coupons/my-coupons'
      },
      {
        id: 'points',
        title: '积分商城',
        icon: '🏪',
        desc: '积分兑换',
        url: '/pages/points-mall/points-mall'
      }
    ],
    serviceItems: [
      {
        id: 'contact',
        title: '联系客服',
        icon: '💬',
        desc: '客服支持'
      },
      {
        id: 'feedback',
        title: '意见反馈',
        icon: '📝',
        desc: '意见反馈'
      },
      {
        id: 'about',
        title: '关于我们',
        icon: 'ℹ️',
        desc: '产品信息'
      },
      {
        id: 'cooperation',
        title: '合作加盟',
        icon: '🤝',
        desc: '合作加盟'
      }
    ]
  },
  
  onLoad() {
    // 检查是否已有用户信息
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        avatarUrl: userInfo.avatarUrl,
        nickname: userInfo.nickName,
        hasUserInfo: true
      });
    }
    
    // 加载会员信息
    this.loadMemberInfo();
    
    // 添加数据变化监听器
    this.memberDataListener = (memberInfo) => {
      this.loadMemberInfo();
    };
    memberService.addListener(this.memberDataListener);
  },

  onUnload() {
    // 移除监听器
    if (this.memberDataListener) {
      memberService.removeListener(this.memberDataListener);
    }
  },

  // 加载会员信息
  loadMemberInfo() {
    const memberInfo = memberService.getUserMemberInfo();
    const memberLevel = memberService.getMemberLevelInfo(memberInfo.level);
    const nextLevel = memberService.getNextLevelInfo(memberInfo.level);
    
    this.setData({
      memberInfo,
      memberLevel,
      nextLevel
    });
  },

  // 查看会员详情
  viewMemberDetails() {
    const { memberInfo, memberLevel, nextLevel } = this.data;
    
    let content = `当前等级：${memberLevel.name}\n`;
    content += `会员值：${memberInfo.memberValue}\n`;
    content += `当前积分：${memberInfo.points}\n`;
    content += `累计消费：¥${memberInfo.totalSpent}\n`;
    
    if (nextLevel && nextLevel.nextLevel) {
      const needed = nextLevel.needed - memberInfo.memberValue;
      content += `\n距离${nextLevel.nextLevelInfo.name}还需：${needed}会员值`;
    } else {
      content += '\n您已是最高等级会员！';
    }
    
    wx.showModal({
      title: '会员详情',
      content,
      showCancel: false,
      confirmText: '知道了'
    });
  },
  
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail;
    this.setData({
      avatarUrl
    });
    
    // 保存到本地存储
    const userInfo = {
      avatarUrl,
      nickName: this.data.nickname
    };
    wx.setStorageSync('userInfo', userInfo);
  },
  
  onNicknameInput(e) {
    const nickname = e.detail.value;
    this.setData({
      nickname
    });
    
    // 保存到本地存储
    const userInfo = {
      avatarUrl: this.data.avatarUrl,
      nickName: nickname
    };
    wx.setStorageSync('userInfo', userInfo);
  },
  
  onGetUserProfile() {
    // 使用新的头像昵称填写能力
    wx.chooseAvatar({
      success: (res) => {
        this.setData({
          avatarUrl: res.avatarUrl,
          hasUserInfo: true
        });
        
        // 保存头像到本地存储
        const userInfo = {
          avatarUrl: res.avatarUrl,
          nickName: this.data.nickname
        };
        wx.setStorageSync('userInfo', userInfo);
        
        wx.showToast({title: '头像设置成功', icon: 'success'});
      },
      fail: () => {
        wx.showToast({title: '选择头像失败', icon: 'none'});
      }
    });
  },
  
  onMenuItemTap(e) {
    const id = e.currentTarget.dataset.id;
    const item = this.data.menuItems.find(item => item.id === id);
    
    if (item && item.url) {
      wx.navigateTo({
        url: item.url,
        fail: () => {
          wx.switchTab({
            url: item.url
          });
        }
      });
    } else {
      wx.showToast({title: '功能开发中', icon: 'none'});
    }
  },
  
  onServiceItemTap(e) {
    const id = e.currentTarget.dataset.id;
    
    switch(id) {
      case 'contact':
        this.contactUs();
        break;
      case 'feedback':
        this.feedback();
        break;
      case 'about':
        this.aboutUs();
        break;
      case 'cooperation':
        this.cooperation();
        break;
    }
  },
  
  contactUs(){
    wx.showActionSheet({
      itemList: ['拨打客服电话', '添加客服微信', '在线客服'],
      success: (res) => {
        switch(res.tapIndex) {
          case 0:
            wx.makePhoneCall({
              phoneNumber: '400-8888-888',
              fail: () => {
                wx.showToast({title: '拨打失败', icon: 'none'});
              }
            });
            break;
          case 1:
            wx.showModal({
              title: '客服微信',
              content: '请添加客服微信：bus_service\n工作时间：9:00-21:00',
              showCancel: false,
              confirmText: '知道了'
            });
            break;
          case 2:
            wx.showToast({title: '在线客服功能开发中', icon: 'none'});
            break;
        }
      }
    });
  },
  
  feedback() {
    wx.showModal({
      title: '意见反馈',
      content: '您可以通过以下方式反馈意见：\n1. 拨打客服电话 400-8888-888\n2. 发送邮件至 feedback@busservice.com\n3. 在小程序内留言',
      showCancel: false,
      confirmText: '知道了'
    });
  },
  
  aboutUs(){
    wx.showModal({
      title: '关于我们',
      content: '去看出行小程序\n版本：v1.0.0\n\n为用户提供便捷的去看出行服务，包括大巴拼车、商务车拼车、包车等多种出行方式。\n\n技术支持：XX科技有限公司',
      showCancel: false,
      confirmText: '知道了'
    });
  },
  
  cooperation() {
    wx.showActionSheet({
      itemList: ['司机加盟', '车辆合作', '企业合作', '投资合作'],
      success: (res) => {
        switch(res.tapIndex) {
          case 0:
            wx.showModal({
              title: '司机加盟',
              content: '欢迎加入我们的司机团队！\n\n要求：\n• 持有A1或A2驾驶证\n• 3年以上驾驶经验\n• 无重大交通事故记录\n• 良好的服务意识\n\n联系方式：400-8888-888',
              showCancel: false,
              confirmText: '知道了'
            });
            break;
          case 1:
            wx.showModal({
              title: '车辆合作',
              content: '我们诚邀优质车辆加入！\n\n合作条件：\n• 车辆年限不超过8年\n• 定期保养维护\n• 保险齐全\n• 符合安全标准\n\n联系方式：400-8888-888',
              showCancel: false,
              confirmText: '知道了'
            });
            break;
          case 2:
            wx.showModal({
              title: '企业合作',
              content: '企业级出行解决方案！\n\n服务内容：\n• 员工通勤班车\n• 商务接待用车\n• 会议活动用车\n• 定制化出行方案\n\n联系方式：400-8888-888',
              showCancel: false,
              confirmText: '知道了'
            });
            break;
          case 3:
            wx.showModal({
              title: '投资合作',
              content: '携手共创出行新生态！\n\n投资方向：\n• 技术研发投入\n• 市场拓展支持\n• 运营优化升级\n• 品牌建设推广\n\n联系方式：400-8888-888',
              showCancel: false,
              confirmText: '知道了'
            });
            break;
        }
      }
    });
  }
});