import { onPageLoadInitAuth, post } from '@/utils/https';
import { getAuthInfo, toArray } from '@/utils/util';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    list: [] as any[],
    group_id: '',
    isLogin: false,
  },
  handleLogin(e: any) {
    this.setData({ isLogin: e.detail });
    if (e.detail) {
      this.init();
      this.getList();
    }
  },
  init() {
    this.setData({ authInfo: getAuthInfo() });
  },

  getList() {
    return new Promise<void>((resolve, reject) => {
      post('Groups/getGrpRights', { group_id: this.data.group_id })
        .then((res: any) => {
          const list = toArray(res.right_tree);
          const rights = `${res.rights || ''}`.split(',');
          this.data.list.length = 0;

          toArray(list).forEach((menu) => {
            const arr: any[] = [];
            toArray(menu.children).forEach((menu2) => {
              let flag = false;
              toArray(menu2.children).forEach((fun) => {
                fun.web_checked = rights.includes(`${fun.function_id}`);
                if (fun.web_checked) {
                  flag = true;
                }
              });

              if (flag) {
                arr.push({
                  menu_ch_name: menu2.menu_ch_name,
                  menu_id: menu2.menu_id,
                  functions: toArray(menu2.children),
                });
              }
            });
            if (arr.length) {
              this.data.list.push({
                menu_ch_name: menu.menu_ch_name,
                menu_id: menu.menu_id,
                children: arr,
              });
            }
          });
          // console.log(this.data.list);
          this.setData({ list: this.data.list, isLogin: true });
          resolve(res);
        })
        .catch((res) => {
          this.setData({ isLogin: false });
          reject(res);
        });
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.data.group_id = `${options.group_id}`;
    wx.setNavigationBarTitle({ title: `${decodeURIComponent(`${options.name}`)} 权限` });

    onPageLoadInitAuth(this, () => this.getList());
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
});
