StackBar.vue
1.75 KB
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
<template>
<div>
<v-chart :forceFit="true" :height="height" :data="data" :onPlotClick="openWoring">
<v-coord type="fold" direction="LB" />
<v-tooltip />
<v-legend />
<v-axis dataKey="realname" :label="label" />
<v-stack-bar position="realname*工时(分钟)" color="报工人" />
</v-chart>
<j-popup
v-show="showRentPrise"
ref="barChart"
code="home_page_barChart"
:param="Param"
org-fields="realname"
dest-fields="popup"
field="popup"/>
</div>
</template>
<script>
import IndexChart from "../../views/dashboard/IndexChart";
const DataSet = require('@antv/data-set');
export default {
name: 'StackBar',
components:{
IndexChart
},
props: {
dataSource: {
type: Array,
required: true,
},
height: {
type: Number,
default: 254
},
propStartTime:{},
propEndTime:{},
},
data() {
return {
label: { offset: 12 },
completetime0:'',
completetime1:'',
retains:'',
Param: {realname:'',startTime:'',endTime:''},
complete_date:'',
}
},
computed: {
data() {
const dv = new DataSet.View().source(this.dataSource);
dv.transform({
type: 'fold',
fields: ['系统报工', '手动报工'],
key: '报工人',
value: '工时(分钟)',
retains: ['realname'],
});
return dv.rows;
}
},
methods: {
openWoring(ev){
this.Param['realname'] = ev.data._origin.realname
this.Param['endTime'] = this.propEndTime
this.Param['startTime'] =this.propStartTime
this.$refs.barChart.openModal();
}},
}
</script>