1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import Vue from "vue";
- import Vuex from "vuex";
- import { queryDep } from "@/services/project";
- Vue.use(Vuex);
- const store = new Vuex.Store({
- state: {
- showSearch: true,
- allType: {},
- currentProject: {},
- depUserTree: [],
- },
- mutations: {
- setCurrentProject(state, project) {
- state.currentProject = project;
- },
- setShowSearch(state, value){
- state.showSearch = value;
- },
- setDep(state, dep) {
- const getDepUserTree = (data) => {
- let ret = {};
- ret.text = data.Name;
- ret.value = `${data.ID}-0`;
- if (data.children) {
- if (!ret.children) ret.children = [];
- data.children.forEach((item) => {
- ret.children.push(getDepUserTree(item));
- });
- }
- if (data.Users && data.Users.length !== 0) {
- if (!ret.children) ret.children = [];
- data.Users.forEach((item) => {
- let user = {};
- user.text = item.CName;
- user.value = `${data.ID}-${item.ID}`;
- ret.children.push(user);
- });
- }
- return ret;
- };
- state.depUserTree = dep.data.list.map((item) => getDepUserTree(item));
- },
- },
- actions: {
-
- getDep: async function ({ commit, state }, value) {
- if (state.depUserTree.length > 0) return;
- commit("setDep", await queryDep());
- },
- },
- });
- export default store;
|