研发图纸文件管理系统-前端项目
longyvfengyun
2022-07-27 312d34ac315181c4b04ca4bcf6375e56b68fdd66
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<template>
  <div class="work-place">
    <a-row :gutter="18">
      <a-col :span="item.span" v-for="(item, key) in totals" :key="'key'+key">
        <total-card :info="item" :type="item.type" :title="item.title" :num="item.value" @click="changeTotalCard"></total-card>
      </a-col>
    </a-row>
    <div style="margin-top: 8px">
      <my-draw :is-show="'myDraw'==cardName"></my-draw>
      <not-approved :is-show="'approving'==cardName"></not-approved>
      <rejected-list :is-show="'rejected'==cardName"></rejected-list>
      <approved-list :is-show="'approved'==cardName"></approved-list>
      <handling-list :is-show="'handling'==cardName"></handling-list>
      <handled-list :is-show="'handled'==cardName"></handled-list>
    </div>
  </div>
</template>
 
<script>
import MyDraw from "./myDraw";
import TotalCard from "./totalCard";
import NotApproved from "@/pages/workplace/notApproved/NotApproved";
import RejectedList from "@/pages/workplace/rejectedList/RejectedList";
import ApprovedList from "@/pages/workplace/approvedList/ApprovedList";
import const_total from "./const_total";
import {mapGetters, mapState} from "vuex";
import const_role from "@/assets/js/const/const_role";
import getItemByKey from "@/assets/js/tools/getItemByKey";
import {statusStatistic} from "@/pages/workplace/apis";
import HandlingList from "@/pages/workplace/handlingList/HandlingList";
import HandledList from "@/pages/workplace/handledList/HandledList";
export default {
  name: 'WorkPlace',
  components: {
    HandledList,
    HandlingList,
    ApprovedList,
    RejectedList,
    NotApproved,
    MyDraw,
    TotalCard
  },
  data() {
    return {
      loading: false,
      drawUploadVisible: false,
      cardName: "myDraw",
      totals: const_total.normal,
      radio: 0,
    }
  },
  methods: {
    changeTotalCard(info) {
      this.cardName = info.name;
    },
    /**
     * 根据用户角色,变更统计的面板的样式
     * @param type 用户类型:1-普通用户;2-项目经理;3-总经理;4-管理员
     */
    changeTotal(type) {
      switch (type) {
        case 2:
          this.totals = const_total.projectManage;
          break;
        case 3:
          this.totals = const_total.generalManage;
          break;
        default:
          this.totals = const_total.normal;
          break;
      }
      // 查询角色对应的数据值
      this.statusStatistic();
    },
    radioChange() {
      this.changeTotal(this.radio);
    },
    statusStatistic() {
      statusStatistic().then(res=>{
        let rs = res.data;
        if(rs.code == 1) {
          let data = rs.data;
          this.totals.map(item=>{
            let name = item.name;
            item.value = data[name]?data[name]:0;
          });
        }
      }).catch(error => {
        console.log(error);
      });
    }
  },
  computed: {
    ...mapGetters('account', ['roles']),
  },
  mounted() {
    let role = getItemByKey(this.roles[0].id, const_role);
    this.changeTotal(role.value);
  }
}
</script>
 
<style scoped>
.work-place {
  padding-top: 8px;
}
</style>