import { rechargeCenter, getAccountRule } from '@/service/api/rechargeApi.js';
/*
  该混入在 消费详情和记录页中用到， 主要混入了isMoreAccount和config两个属性
  和对该属性的一些配置
*/
export default {
  data() {
    return {
      isMoreAccount: false, // 是否多账户
      config: {
        showAllDepartment: false, // 是否超管或部门权限为可见所有的用户
        accountDepartId: '' // 普通商户(不是超管也不是部门权限为可见所有)进来时自身得账号部门Id,仅在单商户和多商户且不是超管且不是部门权限为所有时使用
      }
    };
  },
  methods: {
    extend(to, from) {
      for (let key in to) {
        if (!from.hasOwnProperty(key)) continue;
        to[key] = from[key];
      }
    },
    // 获取超管、部门权限为所有的权限值
    async getAuth() {
      try {
        let res = await rechargeCenter();
        this.extend(this.config, res.result.account || {});
        // this.config.showAllDepartment = false;
        return this.config;
      } catch (err) {
        console.log(err);
      }
    },
    // 获取计费规则-是否为多商户
    async getRule() {
      const result = await getAccountRule();
      const res = result.result || {};
      this.isMoreAccount = !!res.status;
      return true;
    }
  },
  computed: {
    setAccountDepartId() {
      return (id, config) => {
        const isMoreAccount = this.isMoreAccount;
        const { showAllDepartment, accountDepartId: defaultAccountId } = config;
        return isMoreAccount ? (showAllDepartment ? id : defaultAccountId) : defaultAccountId;
      };
    }
  }
};
