diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..af9875b Binary files /dev/null and b/public/favicon.ico differ diff --git a/src/api/index.js b/src/api/index.js index 474bdf5..5292a7d 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -3,10 +3,14 @@ import dept from './dept/index' import schedule from './schedule/index' import quarterlyAssess from './quarterlyAssess/index' import problemmodify from './problemmodify/index' +import workFile from './workFile/index' +import workTrain from './workTrain/index' export default { project, dept, schedule, quarterlyAssess, - problemmodify + problemmodify, + workFile, + workTrain } \ No newline at end of file diff --git a/src/api/workFile/index.js b/src/api/workFile/index.js new file mode 100644 index 0000000..d26f070 --- /dev/null +++ b/src/api/workFile/index.js @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +const getWorkFileList=(fileBelong)=> { + return request({ + url: `bgscreen/workfile/getWorkFileList?fileBelong=${fileBelong}`, + method: 'get' + }) +} + +export default{ + getWorkFileList +} \ No newline at end of file diff --git a/src/api/workTrain/index.js b/src/api/workTrain/index.js new file mode 100644 index 0000000..3771496 --- /dev/null +++ b/src/api/workTrain/index.js @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +const getWorkTrainList=(trainType,deptId)=> { + return request({ + url: `bgscreen/workTrain/getWorkTrainList?trainType=${trainType}&deptId=${deptId}`, + method: 'get' + }) +} + +export default{ + getWorkTrainList +} \ No newline at end of file diff --git a/src/components/header.js b/src/components/header.js index 8a3012f..e544500 100644 --- a/src/components/header.js +++ b/src/components/header.js @@ -182,7 +182,7 @@ Vue.component("screen-header", { this.data=(d?.data||[]).map(it=>{ it.text=it.projectName; return it; - }); + }).filter(it=>+it.progressVisible==0); this.$bus.$emit("loadProjects",this.data); if(this.data.length>0){ this.setScreenLiSel2(this.data[0],init); diff --git a/src/pages/index.vue b/src/pages/index.vue index 11fefd7..c8bff32 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -49,8 +49,8 @@
-
在岗人数
-
今日出勤
+
在岗人数
+
今日出勤
@@ -547,9 +547,9 @@ export default { this.elKey++; }, //劳务人员概况 - onWarningInfoNav(n, text) { + onWarningInfoNav(n) { this.infoNav = n - this.staffText = text + this.staffText = n==0?'在岗人数':'今日出勤' if (n == 0) { this.surveyUrl = 'images/survey_icon_4.png' this.laborPersonnelData = [ diff --git a/src/pages/progress/indexDlg3.vue b/src/pages/progress/indexDlg3.vue index d2647ff..f8af35b 100644 --- a/src/pages/progress/indexDlg3.vue +++ b/src/pages/progress/indexDlg3.vue @@ -67,9 +67,9 @@ p-id="4998"> -
+
-
+
@@ -83,7 +83,8 @@
+ style="flex-grow: 1;max-height: 750px;min-height:750px;overflow: auto;width: calc(100% - 504px);margin-top:8px;display: inline-flex;align-items: center;"> +
+
@@ -159,15 +161,15 @@ export default { }, mounted() { - let objs = window.jhcaches?.progressProjects - if (objs && objs.length > 0) { - this.prjs = objs; - return; - } - this.$api.project.getProgressProjects().then(d => { - this.prjs = d.data || []; - window.jhcaches.progressProjects = this.prjs; - }); + // let objs = window.jhcaches?.progressProjects + // if (objs && objs.length > 0) { + // this.prjs = objs; + // return; + // } + // this.$api.project.getProgressProjects().then(d => { + // this.prjs = d.data || []; + // window.jhcaches.progressProjects = this.prjs; + // }); }, methods: { @@ -217,11 +219,15 @@ export default { hideScreenUlSel2() { this.showSel2 = false }, - showDialog(scheduleInfo, prjs) { - this.scheduleInfo = scheduleInfo; - this.localStorage2 = JSON.parse(localStorage.getItem("data2")) - this.dept2 = this.localStorage2.text; - this.show = true + showDialog(scheduleInfo, prjs,dept) { + //this.$api.project.getProgressProjects(dept.id).then(d => { + //this.prjs = d.data || []; + this.prjs=(prjs||[]).filter(d=>+d.progressVisible==0); + this.scheduleInfo = scheduleInfo; + this.localStorage2 = JSON.parse(localStorage.getItem("data2")) + this.dept2 = this.localStorage2.text; + this.show = true + //}); }, setScreenLiSel2(item) { this.dept2 = item.projectName diff --git a/src/pages/projectSafety.vue b/src/pages/projectSafety.vue index 7f70411..7b8b324 100644 --- a/src/pages/projectSafety.vue +++ b/src/pages/projectSafety.vue @@ -54,32 +54,52 @@ - -
-
-
专项培训
-
- {{it.id}} - {{it.title}} - + +
+
+
+ {{'0'+(index+1)}} + {{it.trainTitle}} +
-
- +
+
-
参与人数:{{it.cnt}}
+
参与人数:{{it.trainParticipants}}
- 培训时间:{{it.start}}~{{it.end}} + 培训时间:{{it.beginDate}}~{{it.endDate}}
-
协作队伍:{{it.team}}
+
协作队伍:{{it.trainDeptNames}}
- + + +
+
+
+ {{'0'+(index+1)}} + {{it.trainTitle}} + +
+
+
+ +
+
+
参与人数:{{it.trainParticipants}}
+
+ 培训时间:{{it.beginDate}}~{{it.endDate}} +
+
+
+
协作队伍:{{it.trainDeptNames}}
+
+
+
- +
- 上级部门 - 集团公司 - 子分公司 + 上级部门 + 集团公司 + 子分公司
-
+
-
{{it.name}}
-
{{it.time}}
-
-
- 查看详情 -
-
- -
- -
-
{{it.name}}
-
{{it.time}}
-
-
- 查看详情 -
-
- -
- -
-
{{it.name}}
-
{{it.time}}
+
{{it.fileName}}
+
{{it.createTime}}
查看详情 @@ -195,6 +193,7 @@
+
@@ -210,39 +209,34 @@ import '../components/rank-chart' import '../components/staff-survey-chart' import '../components/idle-list-chart' import '../components/people-number' +import '../components/people-number' +import woorktrainDlg from './woorktrain/indexDlg' + export default { + components:{ + woorktrainDlg + }, data() { return { elKey:0, dept:null, safeNav:0, - safeText:'汇总总数', + safeText:'汇总总数', rowStyle:{ color:'#B6CFEF', fontSize:'12px', height:'32px' }, - trainingData:[ - {id:'01',title:'消防应急演练',img:'images/840.jpg',cnt:32,start:'2023-05-30',end:'2023-06-08',team:'中铁一局',flag:0}, - {id:'02',title:'防汛应急演练',img:'images/841.jpg',cnt:48,start:'2023-05-14',end:'2023-05-23',team:'中铁一局',flag:0}, - {id:'03',title:'防汛应急培训',img:'images/842.jpg',cnt:25,start:'2023-06-04',end:'2023-06-13',team:'中铁一局,陕西澜海泓森建设工程有限公司',flag:0}, - {id:'04',title:'超重吊装专项培训',img:'images/843.jpg',cnt:16,start:'2023-06-04',end:'2023-06-13',team:'中铁一局,大国工匠',flag:1}, - ], - fileNav:0, - files:[ - {name:'2023.7.28关于泾河在建工程安全管理的通知',time:'2023-07-15 11:22:33',url:'/jhfiles/1.上级部门/2023.7.28关于泾河在建工程安全管理的通知.pdf'}, - ], - files2:[ - {name:'2023.8.7建设项目检查周报',time:'2023-07-15 11:22:33',url:'/jhfiles/2.集团公司/2023.8.7建设项目检查周报.pdf'}, - ], - files3:[ - {name:'1.城投公司项目推进会材料7.17.pdf',time:'2023-07-15 11:22:33',url:'/jhfiles/3.分子公司/1.城投公司项目推进会材料7.24.pdf'}, - {name:'2.置业公司项目推进会材料7.21.pdf',time:'2023-07-15 11:22:33',url:'/jhfiles/3.分子公司/2.置业公司项目推进会材料7.21.pdf'}, - {name:'3.投资公司项目推进会材料7.21.pdf',time:'2023-07-15 11:22:33',url:'/jhfiles/3.分子公司/3.投资公司项目推进会材料7.21.pdf'}, - {name:'4.产发绿能项目推进会材料7.21.pdf',time:'2023-07-15 11:22:33',url:'/jhfiles/3.分子公司/4.产发绿能项目推进会材料7.21.pdf'}, - {name:'5.智能产业园项目推进会材料7.24.pdf',time:'2023-07-15 11:22:33',url:'/jhfiles/3.分子公司/5.智能产业园项目推进会材料7.24.pdf'}, - {name:'6.医疗公司项目推进会材料7.21.pdf',time:'2023-07-15 11:22:33',url:'/jhfiles/3.分子公司/6.医疗公司项目推进会材料7.21.pdf'}, - ], + // 专项培训数据 + workTrainList:[], + // 应急演练数据 + emergencyDrillList:[], + // 传达文件路由 + fileNav:1, + // 传达文件标题 + fileTitle:"传达文件(0)", + // 传达文件列表 + fileList:[], infoNav:0, staffText:'在岗人员', surveyUrl:'images/survey_icon_4.png', @@ -273,15 +267,55 @@ export default { } }, created() { - this.init() + this.init(); + this.getWorkFileList(); + this.getWorkTrainList(); + this.getEmergencyDrillList(); }, mounted() { this.$bus.$on("deptChange",dept=>{ this.dept=dept; this.doDeptChane(); + this.getWorkTrainList(); + this.getEmergencyDrillList(); }); }, methods: { + doShowDlgTrain(it){ + this.$refs.workTrainDlg.showDialog(it) + }, + fileNavChage(val){ + this.fileNav = val; + this.getWorkFileList(); + }, + // 获取传达文件列表 + getWorkFileList(){ + this.$api.workFile.getWorkFileList(this.fileNav).then(d=>{ + this.fileList = d.rows; + let _title = "传达文件("+this.fileList.length+")"; + this.fileTitle = _title; + }); + }, + // 获取专项培训列表 + getWorkTrainList(){ + let deptId = ''; + if(this.dept && this.dept.id!=0){ + deptId = this.dept.id; + } + this.$api.workTrain.getWorkTrainList(0,deptId).then(d=>{ + this.workTrainList = d.rows; + }); + }, + // 获取专项培训列表 + getEmergencyDrillList(){ + let deptId = ''; + if(this.dept && this.dept.id!=0){ + deptId = this.dept.id; + } + this.$api.workTrain.getWorkTrainList(1,deptId).then(d=>{ + this.emergencyDrillList = d.rows; + }); + }, fmt(n){ n=""+n; return " ".substring(0,3-n.length)+n; @@ -333,10 +367,17 @@ export default { }) this.elKey++; }) + }, + // 获取图片映射 + getProfileImage(url){ + if(url){ + return '/jhapi'+url; + } + return url; }, downloadFile(it){ - if(it && it.url){ - window.open(''+it.url); + if(it && it.filePath){ + window.open('/jhapi'+it.filePath); } }, //劳务人员概况 @@ -490,8 +531,23 @@ export default { max-height: calc(100% - 90px); margin-right: 12px; overflow-y: auto; - - + } + .transition-item{ + cursor: pointer; + } + .train-list{ + max-height: calc(100% - 45px); + margin-right: 12px; + overflow-y: auto; + } + .train-img{ + width: 85px; + height: 60px; + } + .train-img-par{ + height: 60px; + overflow: hidden; + margin: 10px 5px 5px 5px; } } \ No newline at end of file diff --git a/src/pages/woorktrain/indexDlg.vue b/src/pages/woorktrain/indexDlg.vue new file mode 100644 index 0000000..f6e74dc --- /dev/null +++ b/src/pages/woorktrain/indexDlg.vue @@ -0,0 +1,211 @@ + + + + + +style lang="less"> +.my-dialog.progress-dlg3 { + .popup-project-introduction-min { + transform: translateY(100px); + } + + &.font-size-2 { + .popup-project-introduction-details { + .col-2 { + font-size: 32px; + line-height: 64px; + + .div-text { + line-height: 64px; + } + } + } + } + + &.font-size-1 { + .popup-project-introduction-details { + .col-2 { + font-size: 24px; + line-height: 48px; + + .div-text { + line-height: 48px; + } + } + } + } + + .font-size-tools { + position: absolute; + top: 18px; + right: 400px; + } + + .popup-project-introduction-details { + padding: 0px; + + &:hover { + .modify-btn { + display: flex; + } + } + + .quality-table { + padding: 0px; + + .prj-info-list { + padding: 0px; + } + } + + .modify-btn { + display: none; + position: absolute; + top: 450px; + z-index: 100; + cursor: pointer; + padding: 0px; + border-radius: 50%; + width: 100px; + height: 100px; + align-items: center; + justify-content: center; + + cursor: pointer; + + &:hover { + background-color: rgba(255, 255, 255, 0.2); + + svg { + * { + fill: #fff; + } + } + } + + &.btn-right { + right: 20px; + } + + &.btn-left { + left: 20px; + } + } + + .col-2 { + line-height: 30px; + + .div-text { + line-height: 30px; + } + } + } + + .head-title-select { + width: 300px; + padding-top: 0px; + } +} \ No newline at end of file