var vms = Vue.component("Company-amplify-czzqk", { template: `
`, props: { businessdata:{ type:Object } }, data() { return { show:false, certInfoData:{}, height:380, //操作证数据 data:[ { text:"职工", value:0 },{ text:"劳务派遣", value:0 },{ text:"其他", value:0 }, ], } }, mounted(){ }, methods: { openAmplify(){ this.show = true this.getCertInfoData() }, closeAmplify(){ this.show = false }, closeAmplifyAll(e){ if(e.target.className == 'amplify-fixed'){ this.show = false } }, //操作证情况统计 getCertInfoData(){ axios.post(this.businessdata.requestUrl+"getCertInfoData?deptId="+this.businessdata.deptId+"&projectId="+this.businessdata.projectIdStr, { }).then(res => { this.certInfoData = res.data.data; this.data = [{text:"职工",value:res.data.data.zgCount},{text:"劳务派遣",value:res.data.data.lwCount},{text:"其他",value:res.data.data.qtCount}] this.getChartData() }).catch(err => { }) }, getChartData(){ //品类金额占比 饼图 var chChart = echarts.init(this.$refs.chart); this.echart(chChart,this.data) }, echart(chChart,chartData){ let newPromise = new Promise((resolve) => { resolve() }) //然后异步执行echarts的初始化函数 newPromise.then(() => { var value = [] var text = [] var total = 0 var bgd = [] for (let i = 0; i < chartData.length; i++) { value.push(chartData[i].value) text.push(chartData[i].text) bgd.push(100) total += chartData[i].value } var prop = [] for (let j = 0; j < value.length; j++) { if(total != 0) { prop.push((value[j]/total * 100).toFixed(1)) } else { prop.push(0.0) } } this.option = { grid: { left: "5%", right: "5%", bottom: "-10%", top: "2%", containLabel: true, }, xAxis: { show: false, type: "value", }, yAxis: [ { type: "category", inverse: true, axisLabel: { show: true, textStyle: { color: "#cbdaff", fontSize: "14", }, }, splitLine: { show: false, }, axisTick: { show: false, }, axisLine: { show: false, }, data: text, }, { type: "category", inverse: true, axisTick: "none", axisLine: "none", show: true, axisLabel: { textStyle: { color: "#cbdaff", fontSize: "16", }, formatter: function(params,i){ var text = "{a|" + value[i] + "}{a| "+ prop[i]+ "%}"; return text; }, rich: { a: { fontSize: '16px', color: "#cbdaff", }, }, }, data: prop, }, ], series: [ { type: "bar", zlevel: 1, itemStyle: { normal: { color: "#6ab9fe", }, }, barWidth: 8, data: prop, }, { type: "bar", barWidth: 8, barGap: "-100%", data: bgd, itemStyle: { normal: { color: "rgba(24,31,68,1)", }, }, }, ], }; chChart.setOption(this.option); window.onresize = chChart.resize; }) }, }, watch:{ data: function (n,o) { this.getChartData(this.data) } }, })