|
@@ -248,137 +248,22 @@
|
|
|
var _this = this;
|
|
|
this.hasReportUserList = [];
|
|
|
if (res.code == "ok") {
|
|
|
- //工时总成本
|
|
|
- this.hasReportUserList = this.radio == '人员' ? res.data.userList : res.data.department;
|
|
|
- var xList = [] , yList = [] , list = res.data.list, array = [] , series = [];
|
|
|
-
|
|
|
- var totalHours = 0.0;
|
|
|
- if (list.length > 0) {
|
|
|
- var num = list.length==0?0:list[0].project.length;
|
|
|
- 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 project = list[j].project , num = 0;
|
|
|
- if(project.length != 0) {
|
|
|
- for(var k in project) {
|
|
|
- if(project[k].project == array[i]) {
|
|
|
- dataList.push({
|
|
|
- "value": project[k].cost,
|
|
|
- "cost": project[k].cost
|
|
|
- })
|
|
|
- totalHours += parseFloat(project[k].cost);
|
|
|
- } else {
|
|
|
- num++;
|
|
|
- }
|
|
|
- if(k == project.length-1 && num != project.length-1) {
|
|
|
- dataList.push({
|
|
|
- "value": 0,
|
|
|
- "cost": 0
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- dataList.push({
|
|
|
- "value": 0,
|
|
|
- "cost": 0,
|
|
|
- })
|
|
|
- }
|
|
|
+ if(this.user.userNameNeedTranslate == 1 && (this.radio == '人员' || this.radio == '部门')) {
|
|
|
+ let arr = []
|
|
|
+ for(var i in res.data.list) {
|
|
|
+ let obj = {}
|
|
|
+ if(this.radio == '人员') {
|
|
|
+ obj.type = 'userName'
|
|
|
+ } else {
|
|
|
+ obj.type = 'departmentName'
|
|
|
}
|
|
|
- series.push({
|
|
|
- name: array[i],
|
|
|
- type: 'bar',
|
|
|
- stack:'1',
|
|
|
- barMaxWidth: 30,
|
|
|
- data: dataList,
|
|
|
- })
|
|
|
+ obj.id = res.data.list[i].name
|
|
|
+ arr.push(obj)
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- var myChart = echarts.init(document.getElementById("container"));
|
|
|
- totalHours = totalHours.toFixed(1);
|
|
|
- _this.myChart = myChart;
|
|
|
- var option = {
|
|
|
- //总成本
|
|
|
- title: {
|
|
|
- text: _this.user.timeType.customDataName + '总计' + totalHours,
|
|
|
- left:'left',
|
|
|
- },
|
|
|
-
|
|
|
- // 工具箱
|
|
|
- legend: {
|
|
|
- x: 80,
|
|
|
- y: 10,
|
|
|
- data: yList,
|
|
|
- show: true,
|
|
|
- top:"5%",//与上方的距离 可百分比% 可像素px
|
|
|
- },
|
|
|
- grid : {
|
|
|
- top : 80, //距离容器上边界40像素
|
|
|
- bottom: 35 //距离容器下边界30像素
|
|
|
- },
|
|
|
- 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;
|
|
|
- var res = "";
|
|
|
- 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/>"+_this.user.timeType.customDataName+" : " + params[i].data.cost+"</div>";
|
|
|
- totalTime += Number(params[i].data.cost);
|
|
|
- }
|
|
|
- }
|
|
|
- res = res +'<br/>'+ params[0].name+ '<br/>总计: ' + totalTime.toFixed(1);
|
|
|
- return res;
|
|
|
- }
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- data: xList,
|
|
|
- axisLabel: {
|
|
|
- interval:0,rotate:20
|
|
|
- }
|
|
|
- },
|
|
|
- yAxis: [{
|
|
|
- type : 'value',
|
|
|
- axisLabel: {
|
|
|
- formatter:'{value}'
|
|
|
- }
|
|
|
- }],
|
|
|
- series: series,
|
|
|
- };
|
|
|
- myChart.setOption(option,{notMerge:true});
|
|
|
+ this.dealWithTranslationPlone(arr, res)
|
|
|
+ } else {
|
|
|
+ this.choli(res)
|
|
|
+ }
|
|
|
} else {
|
|
|
this.$message({
|
|
|
message: res.msg,
|
|
@@ -394,6 +279,172 @@
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
+ dealWithTranslationPlone(items, dataList) {
|
|
|
+ console.log(items, '处理的值')
|
|
|
+ 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 dataList.data.list) {
|
|
|
+ dataList.data.list[i].name = result.items[i].data
|
|
|
+ }
|
|
|
+ this.choli(dataList)
|
|
|
+ }
|
|
|
+ myFunOne()
|
|
|
+ },
|
|
|
+ choli(data) {
|
|
|
+ console.log('过来的值', data)
|
|
|
+ var _this = this;
|
|
|
+ //工时总成本
|
|
|
+ // this.hasReportUserList = this.radio == '人员' ? res.data.userList : res.data.department;
|
|
|
+ // var xList = [] , yList = [] , list = res.data.list, array = [] , series = [];
|
|
|
+
|
|
|
+ this.hasReportUserList = this.radio == '人员' ? data.data.userList : data.data.department;
|
|
|
+ var xList = [] , yList = [] , list = data.data.list, array = [] , series = [];
|
|
|
+
|
|
|
+ var totalHours = 0.0;
|
|
|
+ if (list.length > 0) {
|
|
|
+ var num = list.length==0?0:list[0].project.length;
|
|
|
+ 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 project = list[j].project , num = 0;
|
|
|
+ if(project.length != 0) {
|
|
|
+ for(var k in project) {
|
|
|
+ if(project[k].project == array[i]) {
|
|
|
+ dataList.push({
|
|
|
+ "value": project[k].cost,
|
|
|
+ "cost": project[k].cost
|
|
|
+ })
|
|
|
+ totalHours += parseFloat(project[k].cost);
|
|
|
+ } else {
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+ if(k == project.length-1 && num != project.length-1) {
|
|
|
+ dataList.push({
|
|
|
+ "value": 0,
|
|
|
+ "cost": 0
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ dataList.push({
|
|
|
+ "value": 0,
|
|
|
+ "cost": 0,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ series.push({
|
|
|
+ name: array[i],
|
|
|
+ type: 'bar',
|
|
|
+ stack:'1',
|
|
|
+ barMaxWidth: 30,
|
|
|
+ data: dataList,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ var myChart = echarts.init(document.getElementById("container"));
|
|
|
+ totalHours = totalHours.toFixed(1);
|
|
|
+ _this.myChart = myChart;
|
|
|
+ var option = {
|
|
|
+ //总成本
|
|
|
+ title: {
|
|
|
+ text: _this.user.timeType.customDataName + '总计' + totalHours,
|
|
|
+ left:'left',
|
|
|
+ },
|
|
|
+
|
|
|
+ // 工具箱
|
|
|
+ legend: {
|
|
|
+ x: 80,
|
|
|
+ y: 10,
|
|
|
+ data: yList,
|
|
|
+ show: true,
|
|
|
+ top:"5%",//与上方的距离 可百分比% 可像素px
|
|
|
+ },
|
|
|
+ grid : {
|
|
|
+ top : 80, //距离容器上边界40像素
|
|
|
+ bottom: 35 //距离容器下边界30像素
|
|
|
+ },
|
|
|
+ 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;
|
|
|
+ var res = "";
|
|
|
+ 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/>"+_this.user.timeType.customDataName+" : " + params[i].data.cost+"</div>";
|
|
|
+ totalTime += Number(params[i].data.cost);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(_this.user.userNameNeedTranslate != 1) {
|
|
|
+ res = res +'<br/>'+ params[0].name+ '<br/>总计: ' + totalTime.toFixed(1);
|
|
|
+ } else {
|
|
|
+ if(_this.radio == '人员' || _this.radio == '部门') {
|
|
|
+ res = res +'<br/>'+ '' + '<br/>总计: ' + totalTime.toFixed(1);
|
|
|
+ } else {
|
|
|
+ res = res +'<br/>'+ params[0].name+ '<br/>总计: ' + totalTime.toFixed(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ data: xList,
|
|
|
+ axisLabel: {
|
|
|
+ interval:0,rotate:20
|
|
|
+ }
|
|
|
+ },
|
|
|
+ yAxis: [{
|
|
|
+ type : 'value',
|
|
|
+ axisLabel: {
|
|
|
+ formatter:'{value}'
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ series: series,
|
|
|
+ };
|
|
|
+ myChart.setOption(option,{notMerge:true});
|
|
|
+ },
|
|
|
yanjiu() {
|
|
|
// console.log('触发')
|
|
|
},
|