From 4dee34f05a5338554b88512cb8a3449c3e41aec3 Mon Sep 17 00:00:00 2001 From: haha Date: Tue, 16 Jan 2024 22:54:45 +0800 Subject: [PATCH] update code --- src/api/workTrain/index.js | 9 ++- src/pages/projectSafety.vue | 119 ++++++++++++++++++++++++++++++++---- vue.config.js | 4 +- 3 files changed, 118 insertions(+), 14 deletions(-) diff --git a/src/api/workTrain/index.js b/src/api/workTrain/index.js index 7d138d5..cda0725 100644 --- a/src/api/workTrain/index.js +++ b/src/api/workTrain/index.js @@ -6,7 +6,14 @@ const getWorkTrainList=(trainType,deptId,projectId)=> { method: 'get' }) } +const getGroupByDataType=(deptId,projectId)=> { + return request({ + url: `bgscreen/workTrain/getGroupByDataType?deptId=${deptId||0}&projectId=${projectId||0}`, + method: 'get' + }) +} export default{ - getWorkTrainList + getWorkTrainList, + getGroupByDataType } \ No newline at end of file diff --git a/src/pages/projectSafety.vue b/src/pages/projectSafety.vue index a20dc4a..60998f0 100644 --- a/src/pages/projectSafety.vue +++ b/src/pages/projectSafety.vue @@ -72,7 +72,9 @@ - + + + - + + +
@@ -301,12 +305,13 @@ import projectInsuranceDlg from './safe/projectInsuranceDlg.vue' import AttendanceDetailDialog from './components/AttendanceDetailDialog.vue' import JobWorkerDialog from './components/JobWorkerDialog.vue' import debounce from 'lodash.debounce' +import enginChart from './engin/enginChart.vue' export default { components: { worktrainDlg, projectSpecialDlg, ProblemmodifyDetail,AttendanceDetailDialog, - projectInsuranceDlg,JobWorkerDialog + projectInsuranceDlg,JobWorkerDialog,enginChart }, data() { return { @@ -324,6 +329,12 @@ export default { fontSize: '12px', height: '32px' }, + //培训图表1 + WorkTrainCnt1:0, + WorkTrainChart1:[], + //培训图表2 + WorkTrainCnt2:0, + WorkTrainChart2:[], // 专项培训数据 workTrainList: [], // 应急演练数据 @@ -393,8 +404,9 @@ export default { this.$bus.$on("projectChange", debounce(res => { this.projectInfo=res; this.doDeptChane(); - this.getWorkTrainList(); - this.getEmergencyDrillList(); + this.getWorkTrainChart(); + //this.getWorkTrainList(); + //this.getEmergencyDrillList(); this.getProjectSpecialView(); this.getDeptSafetyWorksList(); this.getProjectInsuranceList(); @@ -405,8 +417,8 @@ export default { this.$bus.$on("deptChange", debounce(dept => { this.dept = dept; this.doDeptChane(); - this.getWorkTrainList(); - this.getEmergencyDrillList(); + //this.getWorkTrainList(); + //this.getEmergencyDrillList(); this.getProjectSpecialView(); this.getDeptSafetyWorksList(); this.getProjectInsuranceList(); @@ -437,8 +449,9 @@ export default { this.dept=this.$root.dept||{}; this.projects=this.$root.projects||[]; this.doDeptChane(); - this.getWorkTrainList(); - this.getEmergencyDrillList(); + this.getWorkTrainChart(); + //this.getWorkTrainList(); + //this.getEmergencyDrillList(); this.getProjectSpecialView(); this.getDeptSafetyWorksList(); this.getProjectInsuranceList(); @@ -478,6 +491,90 @@ export default { this.fileTitle = _title; }); }, + getWorkTrainChart(){ + this.$api.workTrain.getGroupByDataType(this.dept?.id||0,this.projectInfo?.id||0).then(d => { + this.WorkTrainChart1=(d.data||[]).filter(it=>it.trainType==='a').map(it=>{return {value:it.id||0,name:it.trainTitle}}); + this.WorkTrainChart2=(d.data||[]).filter(it=>it.trainType==='b').map(it=>{return {value:it.id||0,name:it.trainTitle}}); + let cnt=0; + this.WorkTrainChart1.forEach(it=>{cnt+=it.value||0;}) + this.WorkTrainCnt1=cnt; + cnt=0; + this.WorkTrainChart2.forEach(it=>{cnt+=it.value||0;}) + this.WorkTrainCnt2=cnt; + + let opt = { + tooltip: { + trigger: 'item' + }, + series: [{ + type: 'pie', + radius: '60%', + data: this.WorkTrainChart1, + label: { + color: "#fff", + formatter: '{name|{b}}\n{cnt|{c}}', + rich: { + name:{ + + }, + cnt: { + fontSize: 10, + color: '#eee' + } + } + }, + + } + ] + }; + this.$refs.chart3.init(opt); + let tmps=this.WorkTrainChart2; + let opt2 = { + grid: { + left: 10, + right:10, + top:40, + bottom:60 + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + color: ['#409eff'], + xAxis: { + type: 'category', + data: tmps.map(d => d.name.replace("演练","\n演练")), + axisLabel: { + color: "#fff", + fontSize:10, + } + }, + yAxis: { + type: 'value', + axisLabel: { + show:false, + color: "#fff" + } + }, + series: [ + { + + label: { + show:true, + color: '#82c9ff', + position: 'top', + }, + data: tmps.map(d => d.value), + type: 'bar' + + } + ] + }; + this.$refs.chart4.init(opt2); + }); + }, // 获取专项培训列表 getWorkTrainList() { this.$api.workTrain.getWorkTrainList(0, this.dept?.id||0,this.projectInfo?.id||0).then(d => { diff --git a/vue.config.js b/vue.config.js index bd63956..01ca082 100644 --- a/vue.config.js +++ b/vue.config.js @@ -37,8 +37,8 @@ module.exports = defineConfig({ } }, '/jhapi':{ - target: `http://62.234.3.186/jhapi/`, - //target: `http://127.0.0.1:8090/jhapi/`, + //target: `http://62.234.3.186/jhapi/`, + target: `http://127.0.0.1:8090/jhapi/`, changeOrigin: true, pathRewrite: { '^/jhapi':'/'