You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
8.5 KiB
1 lines
8.5 KiB
{"remainingRequest":"F:\\money\\system\\springboot\\vue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\money\\system\\springboot\\vue\\src\\views\\Manage.vue?vue&type=script&lang=js","dependencies":[{"path":"F:\\money\\system\\springboot\\vue\\src\\views\\Manage.vue","mtime":1691375244241},{"path":"F:\\money\\system\\springboot\\vue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1713785856543},{"path":"F:\\money\\system\\springboot\\vue\\node_modules\\babel-loader\\lib\\index.js","mtime":1713785857863},{"path":"F:\\money\\system\\springboot\\vue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1713785856543},{"path":"F:\\money\\system\\springboot\\vue\\node_modules\\vue-loader\\lib\\index.js","mtime":1713785858382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiTWFuYWdlciIsCgogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB1c2VyOiB7fSwKICAgICAgdGltZTogZ2V0VGltZSgpLAogICAgICBjb2xsYXBzZTogZmFsc2UsCiAgICAgIG1lbnVXaWR0aDogJzIwMHB4JywKICAgICAgaWNvbjogJ2VsLWljb24tcy1mb2xkJywKICAgIH0KICB9LAogIGNyZWF0ZWQoKSB7CiAgICAvLyDku47lkI7lj7Dojrflj5bmnIDmlrDnmoRVc2Vy5pWw5o2uCiAgICB0aGlzLmdldFVzZXIoKQoKICAgIHNldEludGVydmFsKCgpID0+IHsKICAgICAgdGhpcy50aW1lID0gZ2V0VGltZSgpCiAgICB9LCAxMDAwKQogIH0sCiAgbWV0aG9kczogewogICAgaGFuZGxlQ29sbGFwc2UoKSB7CiAgICAgIHRoaXMuY29sbGFwc2UgPSAhdGhpcy5jb2xsYXBzZQogICAgICB0aGlzLm1lbnVXaWR0aCA9IHRoaXMubWVudVdpZHRoID09PSAnNjRweCcgPyAnMjAwcHgnIDogJzY0cHgnCiAgICAgIHRoaXMuaWNvbiA9IHRoaXMuaWNvbiA9PT0gJ2VsLWljb24tcy11bmZvbGQnID8gJ2VsLWljb24tcy1mb2xkJyA6ICdlbC1pY29uLXMtdW5mb2xkJwogICAgfSwKICAgIGdldFVzZXIoKSB7CiAgICAgIGxldCB1c2VySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidXNlciIpID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidXNlciIpKS5pZCA6IDAKICAgICAgaWYgKHVzZXJJZCkgewogICAgICAgIC8vIOS7juWQjuWPsOiOt+WPllVzZXLmlbDmja4KICAgICAgICB0aGlzLnJlcXVlc3QuZ2V0KCIvdXNlci8iICsgdXNlcklkKS50aGVuKHJlcyA9PiB7CiAgICAgICAgICAvLyDph43mlrDotYvlgLzlkI7lj7DnmoTmnIDmlrBVc2Vy5pWw5o2uCiAgICAgICAgICB0aGlzLnVzZXIgPSByZXMuZGF0YQogICAgICAgIH0pCiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goJy9sb2dpbicpCiAgICAgIH0KICAgIH0sCiAgICBsb2dvdXQoKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd1c2VyJykKICAgICAgdGhpcy4kcm91dGVyLnB1c2goJy9sb2dpbicpCiAgICB9CiAgfQp9CgpmdW5jdGlvbiBnZXRUaW1lKCkgewogIC8vIOiOt+WPluaXtumXtOaIswogIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSgpOwogIGNvbnN0IHllYXIgPSBuZXdEYXRlLmdldEZ1bGxZZWFyKCk7CiAgbGV0IG1vbnRoID0gbmV3RGF0ZS5nZXRNb250aCgpICsgMTsKICBjb25zdCBkYXRlID0gbmV3RGF0ZS5nZXREYXRlKCk7CiAgbGV0IGhvdXIgPSBuZXdEYXRlLmdldEhvdXJzKCk7CiAgbGV0IG1pbnV0ZSA9IG5ld0RhdGUuZ2V0TWludXRlcygpOwogIGxldCBzZWNvbmQgPSBuZXdEYXRlLmdldFNlY29uZHMoKTsKICBpZiAoaG91ciA8IDEwKSB7CiAgICBob3VyID0gIjAiICsgaG91cgogIH0KICBpZiAobWludXRlIDwgMTApIHsKICAgIG1pbnV0ZSA9ICIwIiArIG1pbnV0ZQogIH0KICBpZiAoc2Vjb25kIDwgMTApIHsKICAgIHNlY29uZCA9ICIwIiArIHNlY29uZAogIH0KICByZXR1cm4gYCR7eWVhcn0vJHttb250aH0vJHtkYXRlfSAke2hvdXJ9OiR7bWludXRlfToke3NlY29uZH1gOwp9Cg=="},{"version":3,"sources":["Manage.vue"],"names":[],"mappings":";AAmFA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Manage.vue","sourceRoot":"src/views","sourcesContent":["\n<template>\n <div>\n <!-- header-->\n <div style=\"height: 40px; line-height: 40px; background-color: dodgerblue; display: flex\">\n <div style=\"font-size: 16px; color: #eee; font-weight: bold; width: 200px; text-align: center\">\n 企业员工管理系统\n </div>\n\n <div style=\"flex: 1\">\n <i :class=\"icon\" style=\"font-size: 20px; color: white; position: relative; top: 2px; cursor: pointer;\" @click=\"handleCollapse\"></i>\n </div>\n\n <div style=\"width: 400px; display: flex; padding-right: 30px;\">\n <div style=\"flex: 1; color: white; font-size: 14px; text-align: right; margin-right: 10px\">北京时间: {{ time }}</div>\n <el-dropdown placement=\"bottom\" style=\"text-align: right;\">\n <el-avatar :size=\"30\" style=\"margin-top: 5px\" :src=\"user.avatarUrl\"></el-avatar>\n\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item><div @click=\"$router.push('/person')\">个人信息</div></el-dropdown-item>\n <el-dropdown-item><div @click=\"logout\">退出登录</div></el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n\n </div>\n </div>\n\n <!-- bottom -->\n <div style=\"display: flex; min-height: calc(100vh - 40px)\">\n <!-- aside -->\n <div :style=\"{'width': menuWidth }\">\n <el-menu style=\"min-height: 100%; overflow-x: hidden;\"\n :default-active=\"$route.path\"\n :collapse=\"collapse\"\n :collapse-transition=\"false\"\n router\n >\n <el-menu-item index=\"/home\">\n <i class=\"el-icon-s-home\"></i>\n <span slot=\"title\">主页</span>\n </el-menu-item>\n <el-menu-item index=\"/front/home\" v-if=\"user.role === 'ROLE_USER'\">\n <i class=\"el-icon-eleme\"></i>\n <span slot=\"title\">前端页面</span>\n </el-menu-item>\n <el-menu-item index=\"/department\" v-if=\"user.role === 'ROLE_ADMIN'\">\n <i class=\"el-icon-menu\"></i>\n <span slot=\"title\">部门管理</span>\n </el-menu-item>\n <el-menu-item index=\"/employee\" v-if=\"user.role === 'ROLE_ADMIN'\">\n <i class=\"el-icon-user\"></i>\n <span slot=\"title\">员工管理</span>\n </el-menu-item>\n <el-menu-item index=\"/salary\" v-if=\"user.role === 'ROLE_ADMIN'\">\n <i class=\"el-icon-star-on\"></i>\n <span slot=\"title\">工资管理</span>\n </el-menu-item>\n <el-menu-item index=\"/leaverecords\" v-if=\"user.role === 'ROLE_ADMIN'\">\n <i class=\"el-icon-user-solid\"></i>\n <span slot=\"title\">请假管理</span>\n </el-menu-item>\n <el-menu-item index=\"/attendrecords\" v-if=\"user.role === 'ROLE_ADMIN'\">\n <i class=\"el-icon-phone\"></i>\n <span slot=\"title\">出勤管理</span>\n </el-menu-item>\n <el-menu-item index=\"/user\" v-if=\"user.role === 'ROLE_ADMIN'\">\n <i class=\"el-icon-s-custom\"></i>\n <span slot=\"title\">用户管理</span>\n </el-menu-item>\n\n </el-menu>\n </div>\n\n <!-- main -->\n <div style=\"width: 0; flex: 1; padding: 10px\">\n <router-view @refreshUser=\"getUser\" />\n </div>\n </div>\n\n </div>\n</template>\n\n<script>\nexport default {\n name: \"Manager\",\n\n data() {\n return {\n user: {},\n time: getTime(),\n collapse: false,\n menuWidth: '200px',\n icon: 'el-icon-s-fold',\n }\n },\n created() {\n // 从后台获取最新的User数据\n this.getUser()\n\n setInterval(() => {\n this.time = getTime()\n }, 1000)\n },\n methods: {\n handleCollapse() {\n this.collapse = !this.collapse\n this.menuWidth = this.menuWidth === '64px' ? '200px' : '64px'\n this.icon = this.icon === 'el-icon-s-unfold' ? 'el-icon-s-fold' : 'el-icon-s-unfold'\n },\n getUser() {\n let userId = localStorage.getItem(\"user\") ? JSON.parse(localStorage.getItem(\"user\")).id : 0\n if (userId) {\n // 从后台获取User数据\n this.request.get(\"/user/\" + userId).then(res => {\n // 重新赋值后台的最新User数据\n this.user = res.data\n })\n } else {\n this.$router.push('/login')\n }\n },\n logout() {\n localStorage.removeItem('user')\n this.$router.push('/login')\n }\n }\n}\n\nfunction getTime() {\n // 获取时间戳\n const newDate = new Date();\n const year = newDate.getFullYear();\n let month = newDate.getMonth() + 1;\n const date = newDate.getDate();\n let hour = newDate.getHours();\n let minute = newDate.getMinutes();\n let second = newDate.getSeconds();\n if (hour < 10) {\n hour = \"0\" + hour\n }\n if (minute < 10) {\n minute = \"0\" + minute\n }\n if (second < 10) {\n second = \"0\" + second\n }\n return `${year}/${month}/${date} ${hour}:${minute}:${second}`;\n}\n</script>\n\n<style scoped>\n.el-submenu /deep/.el-submenu__title {\n height: 40px;\n line-height: 40px;\n}\n/deep/.el-menu-item {\n height: 40px;\n line-height: 40px;\n}\n\n</style>"]}]} |