Vuex使用

Vuex

//store文件夹中的auth.js
import * as types from './mutation-types';
import auth from '../apis/authCommon';

const DATA_TYPE_MAP = {
  org: {
    api: auth.getOrgs,
    mutation: types.SET_AUTH_ORGS,
  },
  member: {
    api: auth.getMembers,
    mutation: types.SET_AUTH_MEMBERS,
  },
};

export const state = () => ({
  orgs: [],// 组织机构信息
  members: [],// 当前权限下所有业务员
});
export const getters = {
  orgsOpts: state => [{
    title: '全部',
    value: '',
  }, ...state.orgs.map(org => ({
    title: org.orgName,
    value: org.orgId,
  }))],
  membersOpts: state => [{
    title: '全部',
    value: '',
  }, ...state.members.map(member => ({
    title: member.name,
    value: member.memberId,
  }))],
};

export const actions = {
  async setData ({ commit, state }, dataType) {
    let list = [];
    try {
      list = await (DATA_TYPE_MAP[dataType].api)();
    } catch (e) { }
    commit(DATA_TYPE_MAP[dataType].mutation, { list });
  },
};

export const mutations = {
  [types.SET_AUTH_ORGS] (state, { list }) {
    if (list) {
      state.orgs = list;
    }
  },
  [types.SET_AUTH_MEMBERS] (state, { list }) {
    if (list) {
      state.members = list;
    }
  },
};
//页面 Test.vue
mounted () {
    this.setData('type');
    this.setData('member');
 },
 computed: {
    ...mapGetters('auth', [
      'renewalUserTypesOpts',
      'membersOpts',
    ]),
    defeatList () {
      return this.$store.state.orderlist.defeatList.rows;
    },
    defeatReasons () {
      return this.$store.state.orderlist.defeatReasons;
    },
    total () {
      let totalNum = this.$store.state.orderlist.defeatList.total;
      if (totalNum) {
        this.paginationProps.total = totalNum;
      }
      return totalNum;
    }
  },
  methods: {
    ...mapActions('auth', ['setData',])
 }
 
 <a-select-option
	   v-for="type in renewalUserTypesOpts"
	  :value="type.value"
	  :key="type.value"
	>{{type.title}}</a-select-option>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值