|
@@ -138,139 +138,21 @@
|
|
|
this.widthHtval = document.body.clientWidth - 230
|
|
|
}
|
|
|
}
|
|
|
- //
|
|
|
- var xList = [] , yList = [] , list = res.data.list, array = [] , series = [];
|
|
|
- if (list.length > 0) {
|
|
|
- this.cost = res.data.totalCostMoney;
|
|
|
- for(var i in list) {
|
|
|
- xList.push(list[i].name);
|
|
|
- var pro = list[i].project;
|
|
|
- for(var j in pro) {
|
|
|
- if(array.indexOf(pro[j].project) == -1) {
|
|
|
- array.push(pro[j].project)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- for(var i in array) {
|
|
|
- yList.push(array[i]);
|
|
|
- var dataList = [];
|
|
|
- for(var j in list) {
|
|
|
- var curUser = list[j];
|
|
|
- var project = list[j].project;
|
|
|
- if(project.length != 0) {
|
|
|
- //找到当前用户对应的项目
|
|
|
- var findProject = project.filter(p=>p.project == array[i]);
|
|
|
- if (findProject.length > 0) {
|
|
|
- dataList.push({
|
|
|
- "value": this.yAxisValue==0?findProject[0].money:findProject[0].time,
|
|
|
- "cost": findProject[0].time,
|
|
|
- "money": findProject[0].money
|
|
|
- })
|
|
|
- } else {
|
|
|
- dataList.push({
|
|
|
- "value": 0,
|
|
|
- "cost": 0,
|
|
|
- "money": 0,
|
|
|
- })
|
|
|
- }
|
|
|
- } else {
|
|
|
- dataList.push({
|
|
|
- "value": 0,
|
|
|
- "cost": 0,
|
|
|
- "money": 0
|
|
|
- })
|
|
|
- }
|
|
|
+ if(this.user.userNameNeedTranslate == '1') {
|
|
|
+ let dealWithList = []
|
|
|
+ let list = res.data.list
|
|
|
+ for(var i in list) {
|
|
|
+ let obj = {}
|
|
|
+ obj.type = 'userName'
|
|
|
+ obj.id = list[i].name
|
|
|
+ dealWithList.push(obj)
|
|
|
}
|
|
|
-
|
|
|
- series.push({
|
|
|
- name: array[i],
|
|
|
- type: 'bar',
|
|
|
- stack:'1',
|
|
|
- barMaxWidth: 30,
|
|
|
- data: dataList,
|
|
|
- })
|
|
|
+ this.dealWithTranslationPlone(dealWithList, res)
|
|
|
+ } else {
|
|
|
+ this.renderingDiagram(res)
|
|
|
}
|
|
|
-
|
|
|
- var myChart = echarts.init(document.getElementById("container"));
|
|
|
- // 设置宽度
|
|
|
- myChart.resize({
|
|
|
- width: this.widthHtval
|
|
|
- })
|
|
|
- _this.myChart = myChart;
|
|
|
- var option = {
|
|
|
- // 工具箱
|
|
|
- legend: {
|
|
|
- x: 80,
|
|
|
- y: 10,
|
|
|
- data: yList
|
|
|
- },
|
|
|
- grid : {
|
|
|
- top : 80, //距离容器上边界40像素
|
|
|
- bottom: 35, //距离容器下边界30像素
|
|
|
- left: 150,
|
|
|
- right: 150
|
|
|
- },
|
|
|
- toolbox: {
|
|
|
- show: true,
|
|
|
- feature:{
|
|
|
- saveAsImage:{
|
|
|
- show:true
|
|
|
- },
|
|
|
- restore:{
|
|
|
- show:true
|
|
|
- },
|
|
|
- dataView:{
|
|
|
- show:true
|
|
|
- },
|
|
|
- dataZoom:{
|
|
|
- show:true
|
|
|
- },
|
|
|
- magicType:{
|
|
|
- type:['line','bar']
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- tooltip:{
|
|
|
- trigger:'axis',
|
|
|
- formatter: function (params,ticket,callback) {
|
|
|
-
|
|
|
- var totalTime = 0.0;
|
|
|
- for(var i in params) {
|
|
|
- totalTime += parseFloat(params[i].data.cost)
|
|
|
- }
|
|
|
- var res = params[0].name + " 工时 : " + totalTime.toFixed(1)+"小时<br/>";
|
|
|
- for(var i in params) {
|
|
|
- if (params[i].data.value > 0) {
|
|
|
- res += "<div style='margin-top:3px;font-size:12px;'><font color='#ddd'>项目名称:" + params[i].seriesName
|
|
|
- + "</font><br/>工作成本 : " + params[i].data.money
|
|
|
- + "元 <br/>工作时长"+" : " + params[i].data.cost + "小时</br></div>";
|
|
|
- }
|
|
|
- }
|
|
|
- return res;
|
|
|
- }
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- data: xList,
|
|
|
- axisLabel: {
|
|
|
- interval:0,rotate:20
|
|
|
- }
|
|
|
- },
|
|
|
- yAxis: [{
|
|
|
- type : 'value',
|
|
|
- axisLabel: {
|
|
|
- formatter:this.yAxisValue==0?'{value} (元)':'{value}(小时)'
|
|
|
- }
|
|
|
- }],
|
|
|
- series: series,
|
|
|
- };
|
|
|
- myChart.setOption(option, {notMerge: true});
|
|
|
- } else {
|
|
|
- this.$message({
|
|
|
- message: "暂无数据",
|
|
|
- type: "error"
|
|
|
- });
|
|
|
- }
|
|
|
+ //
|
|
|
+
|
|
|
} else {
|
|
|
this.$message({
|
|
|
message: res.msg,
|
|
@@ -286,6 +168,167 @@
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
+ dealWithTranslationPlone(items, obj) {
|
|
|
+ if (WWOpenData.initCanvas) {
|
|
|
+ WWOpenData.initCanvas()
|
|
|
+ }
|
|
|
+ const myFunOne = async () => {
|
|
|
+ const result = await new Promise((resolve, reject) => {
|
|
|
+ if(WWOpenData.prefetch) {
|
|
|
+ WWOpenData.prefetch({ items }, (err, data) => {
|
|
|
+ if (err) { return reject(err) }
|
|
|
+ resolve(data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ for(var i in obj.data.list) {
|
|
|
+ if(result.items[i]) {
|
|
|
+ obj.data.list[i].name = result.items[i].data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.renderingDiagram(obj)
|
|
|
+ }
|
|
|
+ myFunOne()
|
|
|
+ },
|
|
|
+ // 渲染图表
|
|
|
+ renderingDiagram (res) {
|
|
|
+ var _this = this;
|
|
|
+ var xList = [] , yList = [] , list = res.data.list, array = [] , series = [];
|
|
|
+ if (list.length > 0) {
|
|
|
+ this.cost = res.data.totalCostMoney;
|
|
|
+ for(var i in list) {
|
|
|
+ xList.push(list[i].name);
|
|
|
+ var pro = list[i].project;
|
|
|
+ for(var j in pro) {
|
|
|
+ if(array.indexOf(pro[j].project) == -1) {
|
|
|
+ array.push(pro[j].project)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(var i in array) {
|
|
|
+ yList.push(array[i]);
|
|
|
+ var dataList = [];
|
|
|
+ for(var j in list) {
|
|
|
+ var curUser = list[j];
|
|
|
+ var project = list[j].project;
|
|
|
+ if(project.length != 0) {
|
|
|
+ //找到当前用户对应的项目
|
|
|
+ var findProject = project.filter(p=>p.project == array[i]);
|
|
|
+ if (findProject.length > 0) {
|
|
|
+ dataList.push({
|
|
|
+ "value": this.yAxisValue==0?findProject[0].money:findProject[0].time,
|
|
|
+ "cost": findProject[0].time,
|
|
|
+ "money": findProject[0].money
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ dataList.push({
|
|
|
+ "value": 0,
|
|
|
+ "cost": 0,
|
|
|
+ "money": 0,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ dataList.push({
|
|
|
+ "value": 0,
|
|
|
+ "cost": 0,
|
|
|
+ "money": 0
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ series.push({
|
|
|
+ name: array[i],
|
|
|
+ type: 'bar',
|
|
|
+ stack:'1',
|
|
|
+ barMaxWidth: 30,
|
|
|
+ data: dataList,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ var myChart = echarts.init(document.getElementById("container"));
|
|
|
+ // 设置宽度
|
|
|
+ myChart.resize({
|
|
|
+ width: this.widthHtval
|
|
|
+ })
|
|
|
+ _this.myChart = myChart;
|
|
|
+ var option = {
|
|
|
+ // 工具箱
|
|
|
+ legend: {
|
|
|
+ x: 80,
|
|
|
+ y: 10,
|
|
|
+ data: yList
|
|
|
+ },
|
|
|
+ grid : {
|
|
|
+ top : 80, //距离容器上边界40像素
|
|
|
+ bottom: 35, //距离容器下边界30像素
|
|
|
+ left: 150,
|
|
|
+ right: 150
|
|
|
+ },
|
|
|
+ toolbox: {
|
|
|
+ show: true,
|
|
|
+ feature:{
|
|
|
+ saveAsImage:{
|
|
|
+ show:true
|
|
|
+ },
|
|
|
+ restore:{
|
|
|
+ show:true
|
|
|
+ },
|
|
|
+ dataView:{
|
|
|
+ show:true
|
|
|
+ },
|
|
|
+ dataZoom:{
|
|
|
+ show:true
|
|
|
+ },
|
|
|
+ magicType:{
|
|
|
+ type:['line','bar']
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ tooltip:{
|
|
|
+ trigger:'axis',
|
|
|
+ formatter: function (params,ticket,callback) {
|
|
|
+
|
|
|
+ var totalTime = 0.0;
|
|
|
+ for(var i in params) {
|
|
|
+ totalTime += parseFloat(params[i].data.cost)
|
|
|
+ }
|
|
|
+ var res
|
|
|
+ if(_this.user.userNameNeedTranslate != 1) {
|
|
|
+ res = params[0].name + " 工时 : " + totalTime.toFixed(1)+"小时<br/>";
|
|
|
+ } else {
|
|
|
+ res = " 工时 : " + totalTime.toFixed(1)+"小时<br/>";
|
|
|
+ }
|
|
|
+
|
|
|
+ for(var i in params) {
|
|
|
+ if (params[i].data.value > 0) {
|
|
|
+ res += "<div style='margin-top:3px;font-size:12px;'><font color='#ddd'>项目名称:" + params[i].seriesName
|
|
|
+ + "</font><br/>工作成本 : " + params[i].data.money
|
|
|
+ + "元 <br/>工作时长"+" : " + params[i].data.cost + "小时</br></div>";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ data: xList,
|
|
|
+ axisLabel: {
|
|
|
+ interval:0,rotate:20
|
|
|
+ }
|
|
|
+ },
|
|
|
+ yAxis: [{
|
|
|
+ type : 'value',
|
|
|
+ axisLabel: {
|
|
|
+ formatter:this.yAxisValue==0?'{value} (元)':'{value}(小时)'
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ series: series,
|
|
|
+ };
|
|
|
+ myChart.setOption(option, {notMerge: true});
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: "暂无数据",
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
// 左右滚动
|
|
|
scrollFunction () {
|
|
|
this.domObj = document.getElementById('clearfix') // 通过id获取要设置的div
|