123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import Vue from "vue";
- import Vuex from "vuex";
- import { queryAllWorkType } from "@/services/workload";
- import { queryDep } from "@/services/project";
- import { queryProjectList, queryUserList } from "@/services/daily";
- Vue.use(Vuex);
- const store = new Vuex.Store({
- state: {
- showSearch: true,
- typeList: [],
- allType: {},
- currentProject: {},
- depUserTree: [],
- projectList: [],
- userList: [],
- },
- mutations: {
- setType(state, values) {
- state.typeList = values.typeList;
- state.allType = values.allType;
- },
- 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));
- },
- saveProjectList(state, list) {
- state.projectList = list;
- },
- saveUserList(state, list) {
- state.userList = list;
- },
- },
- actions: {
- getType: async function ({ commit, state }, value) {
- if (state.typeList.length > 0) return;
- commit("setType", await queryAllWorkType());
- },
- getDep: async function ({ commit, state }, value) {
- if (state.depUserTree.length > 0) return;
- commit("setDep", await queryDep());
- },
- queryProjectList: async function ({ commit, state }, value) {
- const res = await queryProjectList();
- commit("saveProjectList", res.data);
- },
- queryUserList: async function ({ commit, state }, value) {
- // 防止多次请求数据
- if (state.userList.length != 0) return;
- const res = await queryUserList();
- commit("saveUserList", res.data?.list);
- },
- },
- });
- export default store;
|