index.vue 3.7 KB
Newer Older
Pan's avatar
Pan committed
1
<template>
yanzhongrong's avatar
yanzhongrong committed
2
  <!-- 首页 -->
Pan's avatar
Pan committed
3
  <div class="dashboard-container">
yanzhongrong's avatar
yanzhongrong committed
4
    <div>
yanzhongrong's avatar
yanzhongrong committed
5
      <orgTree ref="tree" style="float:left" @selectItem="selectItem" @defaultSite="defaultSite" @dblClick="dblClick"/>
yanzhongrong's avatar
yanzhongrong committed
6
      <div class="ml300">
yanzhongrong's avatar
yanzhongrong committed
7
        <type v-loading="loading" :type="type" :curInfo="curInfo" :selectId="selectId" :curId="curId" />
yanzhongrong's avatar
yanzhongrong committed
8
      </div>
yanzhongrong's avatar
yanzhongrong committed
9
    </div>
Pan's avatar
Pan committed
10
  </div>
Pan's avatar
Pan committed
11 12 13
</template>

<script>
yanzhongrong's avatar
yanzhongrong committed
14 15 16
import { treeBaseInfo } from './api'
import orgTree from '@/components/orgTree.vue'
import Type from './components/index.vue'
neogcg's avatar
neogcg committed
17

Pan's avatar
Pan committed
18
export default {
19
  name: 'Dashboard',
yanzhongrong's avatar
yanzhongrong committed
20 21
  data() {
    return {
yanzhongrong's avatar
yanzhongrong committed
22
      type: 1,
yanzhongrong's avatar
yanzhongrong committed
23
      curInfo: {},
yanzhongrong's avatar
yanzhongrong committed
24 25 26
      loading: false,
      curId: null,
      selectId: null
yanzhongrong's avatar
yanzhongrong committed
27
    }
yanzhongrong's avatar
yanzhongrong committed
28
  },
yanzhongrong's avatar
yanzhongrong committed
29 30
  components: {
    orgTree,
neogcg's avatar
neogcg committed
31
    Type,
yanzhongrong's avatar
yanzhongrong committed
32 33
  },
  methods: {
yanzhongrong's avatar
yanzhongrong committed
34
    // 初始化选中第一条数据
neogcg's avatar
neogcg committed
35
    defaultSite(data){
yanzhongrong's avatar
yanzhongrong committed
36
      this.getDetailNode(data);
neogcg's avatar
neogcg committed
37
    },
yanzhongrong's avatar
yanzhongrong committed
38
    // 单击树
yanzhongrong's avatar
yanzhongrong committed
39
    selectItem(data) {
yanzhongrong's avatar
yanzhongrong committed
40 41 42 43 44 45
      this.selectId = data.id;
      this.curId = data.code;
      this.type = data.type;
      this.getDetailNode(data.id);
    },
    // 双击树
yanzhongrong's avatar
yanzhongrong committed
46
    dblClick(data, node) {
yanzhongrong's avatar
yanzhongrong committed
47
      this.changeTreeNodeStatus(node);
yanzhongrong's avatar
yanzhongrong committed
48
    },
yanzhongrong's avatar
yanzhongrong committed
49
    // 双击树,收起节点
yanzhongrong's avatar
yanzhongrong committed
50
    changeTreeNodeStatus (node) {
yanzhongrong's avatar
yanzhongrong committed
51
      node.expanded = true;
yanzhongrong's avatar
yanzhongrong committed
52 53
      for (let i = 0; i < node.childNodes.length; i++) {
        // 改变节点的自身expanded状态
yanzhongrong's avatar
yanzhongrong committed
54
        node.childNodes[i].expanded = true;
yanzhongrong's avatar
yanzhongrong committed
55 56
        // 遍历子节点
        if (node.childNodes[i].childNodes.length > 0) {
yanzhongrong's avatar
yanzhongrong committed
57
          this.changeTreeNodeStatus(node.childNodes[i]);
yanzhongrong's avatar
yanzhongrong committed
58 59 60
        }
      }
    },
yanzhongrong's avatar
yanzhongrong committed
61
    // 获取节点的详情
yanzhongrong's avatar
yanzhongrong committed
62 63 64 65 66
    getDetailNode(data) {
      let param = {
        type: this.type,
        id: data
      }
yanzhongrong's avatar
yanzhongrong committed
67
      this.loading = true;
yanzhongrong's avatar
yanzhongrong committed
68
      treeBaseInfo(param).then(res => {
yanzhongrong's avatar
yanzhongrong committed
69
        let controlLimit = res.controlLimit || [];
yanzhongrong's avatar
yanzhongrong committed
70 71
        if(controlLimit) {
          controlLimit.map(item => {
yanzhongrong's avatar
yanzhongrong committed
72
            res[`type${item.type}`]= item.sum;
yanzhongrong's avatar
yanzhongrong committed
73 74
          })
        }
yanzhongrong's avatar
yanzhongrong committed
75 76
        this.curInfo = res;
        this.loading = false;
yanzhongrong's avatar
yanzhongrong committed
77
      })
yanzhongrong's avatar
yanzhongrong committed
78
    }
Pan's avatar
Pan committed
79 80
  }
}
Pan's avatar
Pan committed
81
</script>
Pan's avatar
Pan committed
82

花裤衩's avatar
花裤衩 committed
83
<style lang="scss" scoped>
yanzhongrong's avatar
yanzhongrong committed
84 85 86 87 88 89
.header_title {
  font-size: 23px;
  font-family: Source Han Sans CN;
  font-weight: 500;
  line-height: 40px;
  text-align: center;
yanzhongrong's avatar
yanzhongrong committed
90
  color: #0058ff;
yanzhongrong's avatar
yanzhongrong committed
91
  letter-spacing: 5px;
yanzhongrong's avatar
yanzhongrong committed
92 93 94
  opacity: 1;
  margin-bottom: 20px;
}
yanzhongrong's avatar
yanzhongrong committed
95
::v-deep.el-card {
yanzhongrong's avatar
yanzhongrong committed
96
  border: 1px solid #e3e3e3;
yanzhongrong's avatar
yanzhongrong committed
97
  border-radius: 8px;
neogcg's avatar
neogcg committed
98
  min-height: 243px;
yanzhongrong's avatar
yanzhongrong committed
99 100 101 102 103 104 105 106
  .el-card__header {
    font-size: 18px;
    color: #333333;
    font-weight: 500;
    text-align: center;
    background: rgba(226, 235, 255, 0.39);
    opacity: 1;
  }
neogcg's avatar
neogcg committed
107 108
  .el-card__body {
    padding: 0px;
yanzhongrong's avatar
yanzhongrong committed
109
  }
neogcg's avatar
neogcg committed
110
}
yanzhongrong's avatar
yanzhongrong committed
111
.posa {
neogcg's avatar
neogcg committed
112 113
  position: relative;
}
yanzhongrong's avatar
yanzhongrong committed
114
.savebtn {
neogcg's avatar
neogcg committed
115
  position: absolute;
yanzhongrong's avatar
yanzhongrong committed
116
  right: 2%;
neogcg's avatar
neogcg committed
117
}
yanzhongrong's avatar
yanzhongrong committed
118
.text {
neogcg's avatar
neogcg committed
119
  padding: 10px 20px 10px 20px;
yanzhongrong's avatar
yanzhongrong committed
120
  border-bottom: 1px solid #e3e3e3;
yanzhongrong's avatar
yanzhongrong committed
121 122
  &:last-child {
    border-bottom: none;
neogcg's avatar
neogcg committed
123
  }
yanzhongrong's avatar
yanzhongrong committed
124 125 126 127
  .item_name,
  .item_data,
  .value_handle {
    height: 16px;
neogcg's avatar
neogcg committed
128
    line-height: 16px;
yanzhongrong's avatar
yanzhongrong committed
129
    margin-top: 12px;
neogcg's avatar
neogcg committed
130
    margin-bottom: 12px;
yanzhongrong's avatar
yanzhongrong committed
131 132 133
  }
  .item_name {
    width: 262px;
neogcg's avatar
neogcg committed
134 135
    height: 16px;
    line-height: 16px;
yanzhongrong's avatar
yanzhongrong committed
136
    color: #7e7e7e;
neogcg's avatar
neogcg committed
137 138 139 140
    margin-top: 12px;
    margin-bottom: 12px;
  }

yanzhongrong's avatar
yanzhongrong committed
141
  .value_handle {
yanzhongrong's avatar
yanzhongrong committed
142
    color: red;
yanzhongrong's avatar
yanzhongrong committed
143
    margin-right: 10px;
neogcg's avatar
neogcg committed
144
  }
yanzhongrong's avatar
yanzhongrong committed
145 146
  .alarmbtn {
    margin-top: 6px;
neogcg's avatar
neogcg committed
147
    margin-bottom: 6px;
Pan's avatar
Pan committed
148
  }
neogcg's avatar
neogcg committed
149 150
  .el-card:last-child .text {
    border-bottom: none !important;
yanzhongrong's avatar
yanzhongrong committed
151
  }
neogcg's avatar
neogcg committed
152 153 154
}
.text2 {
  padding: 10px 20px 10px 20px;
yanzhongrong's avatar
yanzhongrong committed
155 156 157 158 159
  border-bottom: 1px solid #e3e3e3;
  .item_name,
  .item_data,
  .value_handle {
    height: 16px;
neogcg's avatar
neogcg committed
160
    line-height: 16px;
yanzhongrong's avatar
yanzhongrong committed
161
    margin-top: 12px;
neogcg's avatar
neogcg committed
162 163 164 165 166 167
    margin-bottom: 12px;
  }
  .item_name {
    width: 262px;
    height: 16px;
    line-height: 16px;
yanzhongrong's avatar
yanzhongrong committed
168
    color: #7e7e7e;
neogcg's avatar
neogcg committed
169 170 171 172
    margin-top: 12px;
    margin-bottom: 12px;
  }
  .value_handle {
yanzhongrong's avatar
yanzhongrong committed
173
    color: red;
neogcg's avatar
neogcg committed
174
    margin-right: 10px;
neogcg's avatar
neogcg committed
175
    min-width: 52px;
neogcg's avatar
neogcg committed
176
  }
yanzhongrong's avatar
yanzhongrong committed
177 178
  .alarmbtn {
    margin-top: 6px;
neogcg's avatar
neogcg committed
179 180 181 182
    margin-bottom: 6px;
  }
  .el-card:last-child .text {
    border-bottom: none !important;
yanzhongrong's avatar
yanzhongrong committed
183
  }
neogcg's avatar
neogcg committed
184
}
Pan's avatar
Pan committed
185
</style>