湖里大屏(劳务管理):人员概览安全培训接口对接

This commit is contained in:
骆乐 2022-08-16 14:36:30 +08:00
parent cd1ce1e903
commit 1001bc99f4
7 changed files with 112 additions and 79 deletions

BIN
dist.zip

Binary file not shown.

View File

@ -45,16 +45,16 @@ export default new Vuex.Store({
// UPLOADURL:'http://10.0.1.43:6023/upload/image',//测试 // UPLOADURL:'http://10.0.1.43:6023/upload/image',//测试
// FILEURL:'http://10.0.1.43:6023/image/',//测试 // FILEURL:'http://10.0.1.43:6023/image/',//测试
BASEURL: baseUrl ? baseUrl : window.location.protocol + '//' + window.location.host + '/', // BASEURL: baseUrl ? baseUrl : window.location.protocol + '//' + window.location.host + '/', //
// UPLOADURL: window.location.protocol + '//' + window.location.host + '/upload/image', // UPLOADURL: window.location.protocol + '//' + window.location.host + '/upload/image', //
// FILEURL: window.location.protocol + '//' + window.location.host + '/image/', //测试 // tag: 本地测试接口 FILEURL: window.location.protocol + '//' + window.location.host + '/image/', //测试 // tag: 本地测试接口
/* 2022-05-16 */ /* 2022-05-16 */
// tag: 部署河南项目时,需要打开这两行代码 // tag: 部署河南项目时,需要打开这两行代码
// UPLOADURL: 'http://124.71.178.44:100/upload/image', // UPLOADURL: 'http://124.71.178.44:100/upload/image',
// FILEURL: 'http://124.71.178.44:100/image/', // FILEURL: 'http://124.71.178.44:100/image/',
/* 2022-06-06 */ // BASEURL:'http://192.168.34.174:6023/', /* 2022-06-06 */ // BASEURL:'http://192.168.34.174:6023/',
UPLOADURL: 'http://192.168.34.125:6023/upload/image', // UPLOADURL: 'http://192.168.34.125:6023/upload/image',
FILEURL: 'http://192.168.34.125:6023/image/', // FILEURL: 'http://192.168.34.125:6023/image/',
// UPLOADURL:'http://192.168.34.246:6023/upload/image', // UPLOADURL:'http://192.168.34.246:6023/upload/image',
// FILEURL:'http://192.168.34.246:6023/image', // FILEURL:'http://192.168.34.246:6023/image',

View File

@ -2,10 +2,10 @@
<div class="container"> <div class="container">
<div class="leftBox"> <div class="leftBox">
<div class="leftTop"> <div class="leftTop">
<leftTop title="在场统计" /> <leftTop title="在场统计" :statisticsCount="statisticsCount" />
</div> </div>
<div class="leftCenter"> <div class="leftCenter">
<leftCenter title="人员概况"></leftCenter> <leftCenter title="人员概况" :statisticsCount="statisticsCount" />
</div> </div>
<div class="leftBottom"> <div class="leftBottom">
<leftBottom title="年龄结构"></leftBottom> <leftBottom title="年龄结构"></leftBottom>
@ -24,7 +24,7 @@
<rightTop title="人员类型"></rightTop> <rightTop title="人员类型"></rightTop>
</div> </div>
<div class="rightCenter"> <div class="rightCenter">
<rightCenter title="安全培训"></rightCenter> <rightCenter title="安全培训" :statisticsCount="statisticsCount" />
</div> </div>
<div class="rightBottom"> <div class="rightBottom">
<rightBottom title="班组统计"></rightBottom> <rightBottom title="班组统计"></rightBottom>
@ -42,15 +42,75 @@ import centerBottom from './centerBottom'
import rightTop from './rightTop' import rightTop from './rightTop'
import rightCenter from './rightCenter' import rightCenter from './rightCenter'
import rightBottom from './rightBottom' import rightBottom from './rightBottom'
import {
selectProjectWorkerStatisticsApi,
} from "@/assets/js/api/dataBoard.js";
export default { export default {
components: { components: {
leftTop,leftCenter,leftBottom,centerTop,centerBottom,rightTop,rightCenter,rightBottom leftTop,leftCenter,leftBottom,centerTop,centerBottom,rightTop,rightCenter,rightBottom
}, },
data() { data() {
return { return {
statisticsCount: {
attendancePersonNum: 0,
educationPersonNum: 0,
workercount: {
lwPersonYesterdayAdd: 0,
eduPersonTotal: 0,
jfGlPersonTotal: 0,
age18: 0,
age18to25: 0,
womanPersonTotal: 0,
lsPersonTotal: 0,
jlGlPersonTotal: 0,
age45to60: 0,
lwPersonTotal: 0,
manPersonTotal: 0,
totalPerson: 0,
age25to35: 0,
glPersonTotal: 0,
yfGlPersonTotal: 0,
avgage: 0,
age35to45: 0,
glPersonYesterdayAdd: 0,
age60: 0,
},
devcount: { ufaceDevNum: 0, videoNum: 0, environmentDevNum: 0 },
presencecount: {
jfGlPersonTotal: 0,
age18: 0,
age18to25: 0,
womanPersonTotal: 0,
lsPersonTotal: 0,
jlGlPersonTotal: 0,
age45to60: 0,
lwPersonTotal: 0,
manPersonTotal: 0,
totalPerson: 0,
age25to35: 0,
glPersonTotal: 0,
yfGlPersonTotal: 0,
avgage: 0,
age35to45: 0,
age60: 0,
},
},
}; };
}, },
mounted(){
this.getStatistics()
},
methods:{
//
getStatistics() {
selectProjectWorkerStatisticsApi({
sn: this.$store.state.projectSn,
}).then((res) => {
console.log('项目人员统计',res);
this.statisticsCount = res.result;
})
}
}
}; };
</script> </script>

View File

@ -7,7 +7,7 @@
<img src="@/assets/images/projectImg/labor_shi.png" /> <img src="@/assets/images/projectImg/labor_shi.png" />
<div class="info"> <div class="info">
<div class="num1"> <div class="num1">
{{ '62,590' }} {{ statisticsCount.workercount.totalPerson }}
</div> </div>
<!-- 实名制人数 --> <!-- 实名制人数 -->
<div class="label label1"> <div class="label label1">
@ -16,13 +16,13 @@
</div> </div>
</div> </div>
<div class="countItem"> <div class="countItem">
<img src="@/assets/images/projectImg/labor_te.png" /> <img src="@//assets/images/dataBoard/training.png" />
<div class="info"> <div class="info">
<div class="num2"> <div class="num2">
{{ 62590 }} {{ statisticsCount.educationPersonNum }}
</div> </div>
<div class="label"> <div class="label">
{{ '特殊工种人数' }} {{ '在场总人数' }}
</div> </div>
</div> </div>
</div> </div>
@ -30,7 +30,19 @@
<img src="@/assets/images/projectImg/labor_men.png" /> <img src="@/assets/images/projectImg/labor_men.png" />
<div class="info"> <div class="info">
<div class="num3"> <div class="num3">
{{ '89%'}} {{
(
(isNaN(
statisticsCount.workercount.manPersonTotal /
(statisticsCount.workercount.womanPersonTotal +
statisticsCount.workercount.manPersonTotal)
)
? 0
: statisticsCount.workercount.manPersonTotal /
(statisticsCount.workercount.womanPersonTotal +
statisticsCount.workercount.manPersonTotal)) * 100
).toFixed(2)
}}%
</div> </div>
<div class="label"> <div class="label">
{{ '在职男女比例' }} {{ '在职男女比例' }}
@ -38,13 +50,13 @@
</div> </div>
</div> </div>
<div class="countItem"> <div class="countItem">
<img src="@/assets/images/projectImg/num_purple.png" /> <img src="@//assets/images/dataBoard/training2.png" />
<div class="info"> <div class="info">
<div class="num4"> <div class="num4">
{{ 62590}} {{ statisticsCount.workercount.totalPerson }}
</div> </div>
<div class="label"> <div class="label">
{{ '入场培训人数' }} {{ '培训人数' }}
</div> </div>
</div> </div>
</div> </div>
@ -60,6 +72,9 @@ export default {
title: { title: {
type: String, type: String,
default: "default title" default: "default title"
},
statisticsCount:{
type: Object,
} }
}, },
data() { data() {
@ -67,8 +82,6 @@ export default {
}; };
}, },
} }
</script> </script>

View File

@ -111,61 +111,14 @@
</template> </template>
<script> <script>
import {
selectProjectWorkerStatisticsApi,
} from "@/assets/js/api/dataBoard.js";
export default { export default {
props: { props: {
title: { title: {
type: String, type: String,
default: "default title" default: "default title"
} },
}, statisticsCount:{
data() { type: Object,
return {
statisticsCount: {
attendancePersonNum: 0,
educationPersonNum: 0,
workercount: {
lwPersonYesterdayAdd: 0,
eduPersonTotal: 0,
jfGlPersonTotal: 0,
womanPersonTotal: 0,
lsPersonTotal: 0,
jlGlPersonTotal: 0,
lwPersonTotal: 0,
manPersonTotal: 0,
totalPerson: 0,
glPersonTotal: 0,
yfGlPersonTotal: 0,
glPersonYesterdayAdd: 0,
},
presencecount: {
jfGlPersonTotal: 0,
womanPersonTotal: 0,
lsPersonTotal: 0,
jlGlPersonTotal: 0,
lwPersonTotal: 0,
manPersonTotal: 0,
totalPerson: 0,
glPersonTotal: 0,
yfGlPersonTotal: 0,
}
}
};
},
mounted(){
this.getStatistics()
},
methods:{
//
getStatistics() {
selectProjectWorkerStatisticsApi({
sn: this.$store.state.projectSn,
}).then((res) => {
console.log('项目人员统计',res);
this.statisticsCount = res.result;
})
} }
} }
}; };

View File

@ -5,20 +5,24 @@
<div class="content"> <div class="content">
<div class="chart"> <div class="chart">
<JRingChart <JRingChart
:title="{ text: 3214, subTitle: '总人数' }" :title="{ text: statisticsCount.workercount.totalPerson , subTitle: '总人数' }"
:color="['#557DEE', '#43D7B5']" :color="['#557DEE', '#43D7B5']"
:data="[{ value: 2314 }, { value: 987 }]" :data="[{ value: statisticsCount.educationPersonNum }, { value: statisticsCount.workercount.totalPerson -
statisticsCount.educationPersonNum }]"
:radius="['55%', '80%']" :radius="['55%', '80%']"
/> />
</div> </div>
<div class="count"> <div class="count">
<div class="count-item"> <div class="count-item">
<div class="label">已培训人数</div> <div class="label">已培训人数</div>
<div class="num">2314</div> <div class="num">{{ statisticsCount.educationPersonNum }}</div>
</div> </div>
<div class="count-item"> <div class="count-item">
<div class="label">为培训人数</div> <div class="label">未培训人数</div>
<div class="num">987</div> <div class="num">
{{statisticsCount.workercount.totalPerson -
statisticsCount.educationPersonNum}}
</div>
</div> </div>
</div> </div>
</div> </div>
@ -26,19 +30,22 @@
</template> </template>
<script> <script>
import JRingChart from '../jChart/pie/JRingChart.vue' import JRingChart from "../jChart/pie/JRingChart.vue";
export default { export default {
components: { JRingChart }, components: { JRingChart },
props: { props: {
title: { title: {
type: String, type: String,
default: 'default title' default: "default title"
},
statisticsCount: {
type: Object
} }
}, },
data() { data() {
return {} return {};
} }
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@ -72,7 +79,7 @@ export default {
position: absolute; position: absolute;
left: -16px; left: -16px;
top: 10px; top: 10px;
content: ''; content: "";
width: 6px; width: 6px;
height: 6px; height: 6px;
border-radius: 50%; border-radius: 50%;

View File

@ -25,7 +25,7 @@
</el-form-item> </el-form-item>
<!-- 整改时间 --> <!-- 整改时间 -->
<el-form-item :label="$t('message.projectManage.rectificationEndTime')" prop="rectificationEndDate"> <el-form-item :label="$t('message.projectManage.rectificationEndTime')" prop="rectificationEndDate">
<el-date-picker v-model="ruleForm.rectificationEndDate" type="date" placeholder="选择日期" value-format="yyyy-M-d"></el-date-picker> <el-date-picker v-model="ruleForm.rectificationEndDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<!-- 附件 --> <!-- 附件 -->
<el-form-item :label="$t('message.projectManage.accessory')" prop="imgUrl"> <el-form-item :label="$t('message.projectManage.accessory')" prop="imgUrl">