de00f4c8b16b8e6ea202cc1a937a32e8.json 12 KB

1
  1. {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/login/login.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/login/login.vue","mtime":1655259873000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnTG9naW4nLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyDnmbvlvZXmoYbmlrnlkJEsIDDlsYXkuK0sIDHlsYXlj7MsIDLlsYXlt6YKICAgICAgZGlyZWN0aW9uOiAxLAogICAgICAvLyDliqDovb3nirbmgIEKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIC8vIOihqOWNleaVsOaNrgogICAgICBmb3JtOiB7CiAgICAgICAgdXNlcm5hbWU6ICdhZG1pbicsCiAgICAgICAgcGFzc3dvcmQ6ICcxMjM0NTYnLAogICAgICAgIGNhcHRjaGE6ICcnLAogICAgICAgIHJlbWVtYmVyOiB0cnVlLAogICAgICAgIGtleTonJwogICAgICB9LAogICAgICAvLyDooajljZXpqozor4Hop4TliJkKICAgICAgcnVsZXM6IHsgIC8vIOihqOWNlemqjOivgeinhOWImQogICAgICAgIHVzZXJuYW1lOiBbCiAgICAgICAgICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fovpPlhaXotKblj7cnLCB0cmlnZ2VyOiAnYmx1cid9CiAgICAgICAgXSwKICAgICAgICBwYXNzd29yZDogWwogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl5a+G56CBJywgdHJpZ2dlcjogJ2JsdXInfQogICAgICAgIF0sCiAgICAgICAgY2FwdGNoYTogWwogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl6aqM6K+B56CBJywgdHJpZ2dlcjogJ2JsdXInfQogICAgICAgIF0KICAgICAgfSwKICAgICAgY2FwdGNoYTogJycsCiAgICB9CiAgfSwKICBtb3VudGVkKCkgewogICAgaWYgKHRoaXMuJHN0b3JlLnN0YXRlLnVzZXIudG9rZW4pIHRoaXMuJHJvdXRlci5wdXNoKHRoaXMuJHJvdXRlLnF1ZXJ5LmZyb20gfHwgJy8nKTsKICAgIHRoaXMuY2hhbmdlQ2FwdGNoYSgpOwogIH0sCiAgbWV0aG9kczogewogICAgLyog5o+Q5LqkICovCiAgICBkb1N1Ym1pdCgpIHsKICAgICAgdGhpcy4kcmVmc1snbG9naW5Gb3JtJ10udmFsaWRhdGUoKHZhbGlkKSA9PiB7CiAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICAvLyBpZiAodGhpcy5mb3JtLmNhcHRjaGEudG9Mb3dlckNhc2UoKSAhPT0gdGhpcy50ZXh0KSB7CiAgICAgICAgLy8gICB0aGlzLiRtZXNzYWdlLmVycm9yKCfpqozor4HnoIHplJnor68nKTsKICAgICAgICAvLyAgIHJldHVybjsKICAgICAgICAvLyB9CiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAvLyBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgICAgICAvLyBmb3IgKGxldCBrZXkgaW4gdGhpcy5mb3JtKSB7CiAgICAgICAgLy8gICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB0aGlzLmZvcm1ba2V5XSk7CiAgICAgICAgLy8gfQogICAgICAgIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmZvcm0pIGZvcm1EYXRhLmFwcGVuZChrZXksIHRoaXMuZm9ybVtrZXldKTsKICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm0pCiAgICAgICAgdGhpcy4kaHR0cC5wb3N0KCcvbG9naW4nLCB0aGlzLmZvcm0pLnRoZW4oKHJlcykgPT4gewogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHt0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2U6ICfnmbvlvZXmiJDlip8nfSk7CiAgICAgICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCd1c2VyL3NldFRva2VuJywgJ0JlYXJlciAnICsgcmVzLmRhdGEuZGF0YS5hY2Nlc3NfdG9rZW4pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHRoaXMuJHJvdXRlLnF1ZXJ5LmZyb20gfHwgJy8nKS5jYXRjaCgoKSA9PiB7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOwogICAgICAgICAgfQogICAgICAgIH0pLmNhdGNoKGUgPT4gewogICAgICAgICAgY29uc29sZS5sb2coZSkKICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigi55So5oi35ZCN5oiW5a+G56CB5LiN5q2j56GuIik7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8qIOabtOaNouWbvuW9oumqjOivgeeggSAqLwogICAgY2hhbmdlQ2FwdGNoYSgpIHsKICAgICAgdGhpcy4kaHR0cC5nZXQoJy9jYXB0Y2hhJykudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICB0aGlzLmNhcHRjaGEgPSByZXMuZGF0YS5kYXRhLmNhcHRjaGE7CiAgICAgICAgICB0aGlzLmZvcm0ua2V5ID0gcmVzLmRhdGEuZGF0YS5rZXk7CiAgICAgICAgICAvLyB0aGlzLmZvcm0uY2FwdGNoYSA9IHRoaXMudGV4dDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZSA9PiB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlLm1lc3NhZ2UpOwogICAgICB9KTsKICAgIH0KICB9Cn0K"},{"version":3,"sources":["login.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA","file":"login.vue","sourceRoot":"src/views/login","sourcesContent":["<template>\n <div :class=\"['login-wrapper', ['','login-form-right','login-form-left'][direction]]\">\n <el-form\n ref=\"loginForm\"\n :model=\"form\"\n :rules=\"rules\"\n class=\"login-form ele-bg-white\"\n size=\"large\"\n @keyup.enter.native=\"doSubmit\">\n <h4>后台管理</h4>\n <el-form-item prop=\"username\">\n <el-input\n placeholder=\"请输入登录账号\"\n v-model=\"form.username\"\n prefix-icon=\"el-icon-user\"\n clearable/>\n </el-form-item>\n <el-form-item prop=\"password\">\n <el-input\n placeholder=\"请输入登录密码\"\n v-model=\"form.password\"\n prefix-icon=\"el-icon-lock\"\n show-password/>\n </el-form-item>\n <el-form-item prop=\"captcha\">\n <div class=\"login-input-group\">\n <el-input\n placeholder=\"请输入验证码\"\n v-model=\"form.captcha\"\n prefix-icon=\"el-icon-_vercode\"/>\n <img\n v-if=\"captcha\"\n :src=\"captcha\"\n @click=\"changeCaptcha\"\n class=\"login-captcha\"\n alt=\"\"/>\n </div>\n </el-form-item>\n <div class=\"el-form-item\">\n <el-checkbox\n v-model=\"form.remember\">记住密码\n </el-checkbox>\n <!-- <el-link\n @click=\"$router.push('/forget')\"\n type=\"primary\"\n class=\"ele-pull-right\"\n :underline=\"false\">忘记密码\n </el-link> -->\n </div>\n <div class=\"el-form-item\">\n <el-button\n @click=\"doSubmit\"\n :loading=\"loading\"\n type=\"primary\"\n class=\"login-btn\"\n size=\"large\">\n {{ loading ? '登录中' : '登录' }}\n </el-button>\n </div>\n </el-form>\n <div class=\"login-copyright\">Copyright © 2017~2021 www.laravel.cn. All rights reserved.</div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'Login',\n data() {\n return {\n // 登录框方向, 0居中, 1居右, 2居左\n direction: 1,\n // 加载状态\n loading: false,\n // 表单数据\n form: {\n username: 'admin',\n password: '123456',\n captcha: '',\n remember: true,\n key:''\n },\n // 表单验证规则\n rules: { // 表单验证规则\n username: [\n {required: true, message: '请输入账号', trigger: 'blur'}\n ],\n password: [\n {required: true, message: '请输入密码', trigger: 'blur'}\n ],\n captcha: [\n {required: true, message: '请输入验证码', trigger: 'blur'}\n ]\n },\n captcha: '',\n }\n },\n mounted() {\n if (this.$store.state.user.token) this.$router.push(this.$route.query.from || '/');\n this.changeCaptcha();\n },\n methods: {\n /* 提交 */\n doSubmit() {\n this.$refs['loginForm'].validate((valid) => {\n if (!valid) {\n return false;\n }\n // if (this.form.captcha.toLowerCase() !== this.text) {\n // this.$message.error('验证码错误');\n // return;\n // }\n this.loading = true;\n // let formData = new FormData();\n // for (let key in this.form) {\n // formData.append(key, this.form[key]);\n // }\n let formData = new FormData();\n for (let key in this.form) formData.append(key, this.form[key]);\n console.log(this.form)\n this.$http.post('/login', this.form).then((res) => {\n this.loading = false;\n if (res.data.code === 0) {\n this.$message({type: 'success', message: '登录成功'});\n this.$store.dispatch('user/setToken', 'Bearer ' + res.data.data.access_token).then(() => {\n this.$router.push(this.$route.query.from || '/').catch(() => {\n });\n });\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n console.log(e)\n this.loading = false;\n this.$message.error(\"用户名或密码不正确\");\n });\n });\n },\n /* 更换图形验证码 */\n changeCaptcha() {\n this.$http.get('/captcha').then(res => {\n if (res.data.code === 0) {\n this.captcha = res.data.data.captcha;\n this.form.key = res.data.data.key;\n // this.form.captcha = this.text;\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n this.$message.error(e.message);\n });\n }\n }\n}\n</script>\n\n<style scoped>\n.login-wrapper {\n padding: 50px 20px;\n position: relative;\n box-sizing: border-box;\n background-image: url(\"~@/assets/bg-login.png\");\n background-repeat: no-repeat;\n background-size: cover;\n min-height: 100vh;\n background-size: 100% 100%;\n}\n\n.login-wrapper:before {\n content: \"\";\n background-color: rgba(0, 0, 0, .2);\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.login-form {\n margin: 0 auto;\n width: 360px;\n max-width: 100%;\n padding: 25px 30px;\n position: relative;\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);\n box-sizing: border-box;\n border-radius: 4px;\n z-index: 2;\n}\n\n.login-form-right .login-form {\n margin: 0 15% 0 auto;\n}\n\n.login-form-left .login-form {\n margin: 0 auto 0 15%;\n}\n\n.login-form h4 {\n text-align: center;\n margin: 0 0 25px 0;\n}\n\n.login-form > .el-form-item {\n margin-bottom: 25px;\n}\n\n.login-input-group {\n display: flex;\n align-items: center;\n}\n\n.login-input-group ::v-deep .el-input {\n flex: 1;\n}\n\n.login-captcha {\n height: 38px;\n width: 102px;\n margin-left: 10px;\n border-radius: 4px;\n border: 1px solid #DCDFE6;\n text-align: center;\n cursor: pointer;\n}\n\n.login-captcha:hover {\n opacity: .75;\n}\n\n.login-btn {\n display: block;\n width: 100%;\n}\n\n.login-oauth-icon {\n color: #FFF;\n padding: 5px;\n margin: 0 10px;\n font-size: 18px;\n border-radius: 50%;\n cursor: pointer;\n}\n\n.login-copyright {\n color: #eee;\n padding-top: 20px;\n text-align: center;\n position: relative;\n z-index: 1;\n}\n\n@media screen and (min-height: 550px) {\n .login-form {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: -220px;\n }\n\n .login-form-right .login-form,\n .login-form-left .login-form {\n left: auto;\n right: 15%;\n transform: translateX(0);\n margin: -220px 100px auto auto;\n }\n\n .login-form-left .login-form {\n right: auto;\n left: 15%;\n }\n\n .login-copyright {\n position: absolute;\n bottom: 20px;\n right: 0;\n left: 0;\n }\n}\n\n@media screen and (max-width: 768px) {\n .login-form-right .login-form,\n .login-form-left .login-form {\n left: 50%;\n right: auto;\n transform: translateX(-50%);\n margin-right: auto;\n }\n}\n</style>\n"]}]}