<template> <div class="page page-home"> <!-- 欢迎你,{{userData}} --> <el-row type="flex" align="top" justify="space-between" :gutter="40"> <el-col :span="6" :xs="12"> <el-card> <div class="data_left"> <div class="title" style="margin-bottom:40px">本月数据洞察</div> <div class="cell1"> <div class="title">人事数据</div> <div class="datas flex flex-align-center flex-pack-justify flex_warp" > <div class="item"> <div>总人数</div> <div>{{ homeStat.totalPersonNum }}</div> </div> <div class="item"> <div>部门数量</div> <div>{{ homeStat.totalDeptNum }}</div> </div> </div> </div> <div class="cell1"> <div class="title">考勤数据</div> <div class="datas flex flex-align-center flex-pack-justify flex_warp" > <div class="item"> <div>打卡人数</div> <div>{{ homeStat.attendPersonNum }}</div> </div> <div class="item"> <div>出勤率</div> <div>{{ homeStat.attendRadio }}</div> </div> <div class="item"> <div>请假人数</div> <div>{{ homeStat.levealPersonNum }}</div> </div> <div class="item"> <div>迟到人数</div> <div>{{ homeStat.latePersonNum }}</div> </div> <div class="item"> <div>早退人数</div> <div>{{ homeStat.leftEarlyPersonNum }}</div> </div> <div class="item"> <div>缺卡人数</div> <div>{{ homeStat.missCardPersonNum }}</div> </div> </div> </div> </div> </el-card> </el-col> <el-col :span="18" :xs="12"> <el-card class="right_card"> <div class="data_right"> <div class="title">科学化、精细化、以人为本知行合一的管理理念</div> <div class="textWord"> 坚持政治性与人民性的根本遵循、制度化与规范化的根本依托、考人与考事的相互结合<br /> 创新性与技术性的重要支撑以及效能性与发展性的不懈追求 </div> <div class="selectBars flex flex-align-center flex-pack-justify flex_warp" > <div class="Bar_item" v-for="(item, index) in barList" :key="index" @click="tabChildren(item.barName)" > <div class="icon"> <img :src="item.icon" /> </div> <div class="barnam">{{ item.barName }}</div> <div class="des" v-html="item.desc"></div> </div> </div> </div> </el-card> </el-col> </el-row> </div> </template> <script> export default { computed: { userData() { return this.$store.state.userData; }, menu() { return this.mapMenu(this.userData.barList); }, }, data() { return { // 数据洞察 homeStat: { totalPersonNum: 0, //总人数 totalDeptNum: 0, //部门数 attendPersonNum: 0, //考勤人数 attendRadio: 0, //出勤率 levealPersonNum: 0, //请假人数 latePersonNum: 0, //迟到人数 leftEarlyPersonNum: 0, //早退人数 missCardPersonNum: 0, //缺卡人数 }, barList: [ { icon: require("@/assets/images/u148.png"), barName: "智能人事", desc: "提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能", navList: [], }, { icon: require("@/assets/images/u153.png"), barName: "考勤打卡", desc: "提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能", navList: [], }, { icon: require("@/assets/images/u158.png"), barName: "绩效管理", desc: "根据部门/个人承担的目标和任务完成情况以及工作<br>评价结果、加减分纪实现考核结果自动生成。", navList: [], }, // { // icon: require('@/assets/images/u167.png'), // barName: 'OA审批', // desc: '无纸化审批流程,轻松完成打卡请假、移动审批等<br>操作,审批资料查找方便', // navList: [] // }, // { // icon: require('@/assets/images/u172.png'), // barName: '数据分析', // desc: '完整团队经营状态的数字化,人财物事数据分析<br>展示,为管理提供智能决策依据', // navList: [] // }, { icon: require("@/assets/images/u177.png"), barName: "系统设置", desc: "提供包括RBAC用户-角色-权限管理、版本管理、<br>操作及登录日志管理等功能", navList: [], }, ], }; }, created() { this.$store.commit("setHeadBar", []); this.$store.commit("setCurrentParentName", ""); this.$store.commit("setCurrentThirdArr", []); this.$store.commit("setCurrentSecondPath", ""); this.$store.commit("setThirdPath", ""); this.homeNum(); }, methods: { tabChildren(name) { console.log("name:" + name); this.$store.commit("setCurrentParentName", name); //存储选择路由 let result = this.menu.find((item) => item.name === name); this.$store.commit("setHeadBar", result); console.log("result:", result); if (result) { // 路由跳转 if (result.children.length > 0) { this.$store.commit("setCurrentThirdArr", result.children[0].children); this.$store.commit("setCurrentSecondPath", result.children[0].path); this.$store.commit("setThirdPath", result.children[0].path); this.$router.push({ path: result.children[0].path }); } else { this.$message.error("暂未完成添加"); } } else { this.$message.error("暂无权限"); } }, mapMenu(arr) { if (arr.length === 0) return []; let result = arr.map((item) => { const url = item.url ? item.url : item.childList[0] ? item.childList[0].url || "" : ""; return { name: item.name, path: url, id: item.id, icon: item.imgPath, children: item.childList.length === 0 ? [] : this.mapMenu(item.childList), }; }); return result; }, // 查询统计数据 homeNum() { this.$post("/login/index").then((res) => { const { code, data } = res; if (code == 1) { this.homeStat = Object.assign({}, this.homeStat, data.homeStat); console.log(data, "####"); } }); }, }, }; </script> <style scoped lang="less"> .page-home { width: 100%; min-width: 1400px; height: 100vh; box-sizing: border-box; // padding: 2% 5%; background-color: #f3f2f2; .data_left { padding: 50px 20px 0 20px; .cell1 { font-size: 16px; .title { color: #409eff; margin-bottom: 20px; } .item { text-align: left; width: 50%; margin-bottom: 20px; } .item div:first-child { color: gray; margin-bottom: 20px; } border-bottom: 1px solid rgb(245, 245, 245); padding: 10px 0; } .cell1:last-child { border: none; } } // 数据标题 .data_left > .title, .data_right > .title { text-align: center; font-size: 22px; font-weight: bold; } .right_card { background-image: url("~@/assets/images/u162.svg"); background-repeat: no-repeat; background-size: 100% auto; background-position: bottom; } // 导航栏 .data_right { padding-top: 40px; .textWord { text-align: center; margin-top: 30px; font-size: 16px; line-height: 1.5em; } } .selectBars { padding: 0 20px; } .Bar_item { width: 30%; margin-top: 50px; border-radius: 10px; padding: 20px 0; text-align: center; background: linear-gradient( 90deg, rgba(187, 193, 255, 0.3), rgb(235, 235, 235) ); cursor: pointer; .icon img { width: 40px; height: 40px; } .barnam { font-size: 18px; margin-top: 10px; } .des { font-size: 14px; color: #666; margin-top: 15px; } } } ::v-deep .el-row, ::v-deep .el-col { height: 100%; } ::v-deep .el-card { height: 100%; } </style>