// custom-tab-bar/index.js
Component({
  data: {
    tabList: [],  // 动态生成的tab列表
    currentPath: ''  // 当前页面路径
  },

  attached() {
    // 1. 先初始化tab列表（确保有数据可匹配）
    this.initTabList();

    // 2. 初始化当前路径
    this.updateCurrentPath();

    // 3. 监听小程序显示事件（覆盖切换tab、后台切前台等场景）
    this.appShowListener = () => {
      // 延迟确保页面栈已更新（真机需要更长时间）
      setTimeout(() => {
        this.updateCurrentPath();
      }, 300);
    };
    wx.onAppShow(this.appShowListener);
  },

  detached() {
    // 移除监听，避免内存泄漏
    wx.offAppShow(this.appShowListener);
  },

  methods: {
    // 初始化tab列表（根据角色筛选）
    initTabList() {
      const role = wx.getStorageSync('partnerPosition') || {};
      
      // 全部角色的tab配置
      const allTabs = [
        { 
          pagePath: '/pages/home/index', 
          text: '电站',
          iconPath: '/static/station2.png',
          selectedIconPath: '/static/station1.png'
        },
        { 
          pagePath: '/pages/index/index', 
          text: '首页',
          iconPath: '/static/sz3.png',
          selectedIconPath: '/static/sz4.png'
        },
        { 
          pagePath: '/pages/tool/index',
          text: '工单',
          iconPath: '/static/tool.png',
          selectedIconPath: '/static/tool1.png'
        },
        {
          pagePath: '/pages/setup/index',
          text: '我的',
          iconPath: '/static/user1.png',
          selectedIconPath: '/static/user2.png'
        }
      ];

      // 客户角色的tab配置
      const customerTabs = [
        { 
          pagePath: '/pages/home/index', 
          text: '电站',
          iconPath: '/static/station2.png',
          selectedIconPath: '/static/station1.png'
        },
        { 
          pagePath: '/pages/tool/index',
          text: '工单',
          iconPath: '/static/tool.png',
          selectedIconPath: '/static/tool1.png'
        },
        {
          pagePath: '/pages/setup/index',
          text: '我的',
          iconPath: '/static/user1.png',
          selectedIconPath: '/static/user2.png'
        }
      ];

      // 根据角色筛选tab
      let tabList = allTabs;
      if (role.partnerPosition === 5) {
        tabList = customerTabs;
      }

      // 确保tabList更新后重新校验路径
      this.setData({ tabList }, () => {
        this.updateCurrentPath();
      });
    },

    // 更新当前页面路径（核心方法）
    updateCurrentPath() {
      const pages = getCurrentPages();
      if (pages.length === 0) return;

      // 获取当前页面完整路径
      const currentPage = pages[pages.length - 1];
      const currentPath = `/${currentPage.route}`;

      // 仅在路径变化且为tab页时更新
      const isTabPage = this.data.tabList.some(item => item.pagePath === currentPath);
      if (isTabPage && this.data.currentPath !== currentPath) {
        this.setData({ currentPath }, () => {
          console.log('路径已同步：', currentPath);
        });
      }
    },

    // 切换tab页
    switchTab(e) {
      const path = e.currentTarget.dataset.path;
      if (!path) return;

      // 提前记录目标路径（用于预更新状态）
      const targetPath = path;

      wx.switchTab({
        url: targetPath,
        success: () => {
          // 延长延迟确保页面完全切换（解决异步滞后问题）
          setTimeout(() => {
            this.updateCurrentPath();
          }, 500);
        },
        fail: (err) => {
          console.error('切换tab失败：', err);
        }
      });
    }
  }
});