| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\src\\views\\login.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\src\\views\\login.vue","mtime":1647228900850},{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\css-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\最新\\supervision-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKDQoubG9naW4gew0KICBkaXNwbGF5OiBmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgaGVpZ2h0OiAxMDAlOw0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltYWdlcy9iZy5qcGciKSBjZW50ZXIgbm8tcmVwZWF0Ow0KICAvLyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KfQ0KLnRpdGxlIHsNCiAgbWFyZ2luOiAwcHggYXV0byAzMHB4IGF1dG87DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgY29sb3I6ICMwMWNmZmY7DQp9DQoNCi5sb2dpbi1mb3JtIHsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIHdpZHRoOiA2NjBweDsNCiAgaGVpZ2h0OiA1NTFweDsNCiAgcGFkZGluZzogMjAzcHggNTZweCA1MHB4IDc5cHg7DQogIGJhY2tncm91bmQ6IHVybCgiLi4vaW1hZ2VzL2xvZ2luLnBuZyIpIG5vLXJlcGVhdCAwcHggMTFweDsNCiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsNCiAgLmVsLWlucHV0IHsNCiAgICBoZWlnaHQ6IDM4cHg7DQogICAgbWFyZ2luLWxlZnQ6IDU4cHg7DQogICAgbWFyZ2luLXJpZ2h0OiA2M3B4Ow0KICAgIGlucHV0IHsNCiAgICAgIGhlaWdodDogNDdweDsNCiAgICAgIHdpZHRoOiAzOTBweDsNCiAgICB9DQogIH0NCiAgLmlucHV0LWljb24gew0KICAgIGhlaWdodDogMzlweDsNCiAgICB3aWR0aDogMTRweDsNCiAgICBtYXJnaW4tbGVmdDogMnB4Ow0KICB9DQp9DQoubG9naW4tdGlwIHsNCiAgZm9udC1zaXplOiAxM3B4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGNvbG9yOiAjYmZiZmJmOw0KfQ0KLmxvZ2luLWNvZGUgew0KICB3aWR0aDogMzMlOw0KICBoZWlnaHQ6IDM4cHg7DQogIGZsb2F0OiByaWdodDsNCiAgaW1nIHsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgfQ0KfQ0KLmVsLWxvZ2luLWZvb3RlciB7DQogIGhlaWdodDogNDBweDsNCiAgbGluZS1oZWlnaHQ6IDQwcHg7DQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgYm90dG9tOiAwOw0KICB3aWR0aDogMTAwJTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBjb2xvcjogI2ZmZjsNCiAgZm9udC1mYW1pbHk6IEFyaWFsOw0KICBmb250LXNpemU6IDBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCn0NCi5sb2dpbi1jb2RlLWltZyB7DQogIGhlaWdodDogMzhweDsNCn0NCi5sb2dpbi1mb3JtIC5lbC1idXR0b24tLXByaW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM4NGVhOw0KICBmb250LXNpemU6IDIwcHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIG1hcmdpbi10b3A6IDM0cHg7DQogIG1hcmdpbi1sZWZ0OiA1OHB4Ow0KICBtYXJnaW4tcmlnaHQ6IDYzcHg7DQogIHdpZHRoOiAzOTBweCAhaW1wb3J0YW50Ow0KfQ0KLmVsLWlucHV0X19pbm5lciB7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBjb2xvcjogI2ZmZjsNCiAgYm9yZGVyOiAxcHggc29saWQgIzAxY2ZmZjsNCn0NCi5lbC1mb3JtLWl0ZW1fX2Vycm9yIHsNCiAgbGVmdDogNjVweDsNCn0NCi5pbWcgew0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIGJvdHRvbTogLTI1cHg7DQogIGxlZnQ6IC0xcHg7DQogIHdpZHRoOiA2NjFweDsNCn0NCi5sb2dpbi1mb3JtIC5lbC1mb3JtLWl0ZW0gew0KICBtYXJnaW4tYm90dG9tOiA0MHB4Ow0KICBtYXJnaW4tdG9wOiAzMHB4Ow0KfQ0K"},{"version":3,"sources":["login.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8LA;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;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","sourcesContent":["<template>\r\n <div class=\"login\">\r\n <el-form\r\n ref=\"loginForm\"\r\n :model=\"loginForm\"\r\n :rules=\"loginRules\"\r\n class=\"login-form\"\r\n >\r\n <img src=\"../images/dibu1.png\" alt=\"\" class=\"img\" />\r\n <!-- <h3 class=\"title\">智能督察管理平台</h3> -->\r\n <el-form-item prop=\"username\">\r\n <el-input\r\n v-model=\"loginForm.username\"\r\n type=\"text\"\r\n auto-complete=\"off\"\r\n placeholder=\"账号\"\r\n >\r\n <svg-icon\r\n slot=\"prefix\"\r\n icon-class=\"user\"\r\n class=\"el-input__icon input-icon\"\r\n />\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item prop=\"password\">\r\n <el-input\r\n v-model=\"loginForm.password\"\r\n type=\"password\"\r\n auto-complete=\"off\"\r\n placeholder=\"密码\"\r\n @keyup.enter.native=\"handleLogin\"\r\n class=\"password\"\r\n >\r\n <svg-icon\r\n slot=\"prefix\"\r\n icon-class=\"password\"\r\n class=\"el-input__icon input-icon\"\r\n />\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item v-if=\"captchaOnOff\" v-show=\"false\">\r\n <el-input\r\n v-model=\"loginForm.code\"\r\n auto-complete=\"off\"\r\n placeholder=\"验证码\"\r\n style=\"width: 63%\"\r\n @keyup.enter.native=\"handleLogin\"\r\n >\r\n <svg-icon\r\n slot=\"prefix\"\r\n icon-class=\"validCode\"\r\n class=\"el-input__icon input-icon\"\r\n />\r\n </el-input>\r\n <div class=\"login-code\">\r\n <img :src=\"codeUrl\" @click=\"getCode\" class=\"login-code-img\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item style=\"width: 100%\">\r\n <el-button\r\n :loading=\"loading\"\r\n size=\"medium\"\r\n type=\"primary\"\r\n style=\"width: 100%\"\r\n @click.native.prevent=\"handleLogin\"\r\n >\r\n <span v-if=\"!loading\">登 录</span>\r\n <span v-else>登 录 中...</span>\r\n </el-button>\r\n <div style=\"float: right\" v-if=\"register\">\r\n <router-link class=\"link-type\" :to=\"'/register'\"\r\n >立即注册</router-link\r\n >\r\n </div>\r\n </el-form-item>\r\n </el-form>\r\n <!-- 底部 -->\r\n <!-- <div class=\"el-login-footer\">\r\n <span>Copyright © 2018-2021 supervision.vip All Rights Reserved.</span>\r\n </div> -->\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { getCodeImg } from \"@/api/login\";\r\nimport Cookies from \"js-cookie\";\r\nimport { encrypt, decrypt } from \"@/utils/jsencrypt\";\r\n\r\nexport default {\r\n name: \"Login\",\r\n data() {\r\n return {\r\n codeUrl: \"\",\r\n cookiePassword: \"\",\r\n loginForm: {\r\n username: \"admin\",\r\n password: \"admin123\",\r\n rememberMe: false,\r\n code: \"\",\r\n uuid: \"\",\r\n },\r\n loginRules: {\r\n username: [\r\n { required: true, trigger: \"blur\", message: \"请输入您的账号\" },\r\n ],\r\n password: [\r\n { required: true, trigger: \"blur\", message: \"请输入您的密码\" },\r\n ],\r\n // code: [{ required: true, trigger: \"change\", message: \"请输入验证码\" }],\r\n },\r\n loading: false,\r\n // 验证码开关\r\n captchaOnOff: true,\r\n // 注册开关\r\n register: false,\r\n redirect: undefined,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler: function (route) {\r\n this.redirect = route.query && route.query.redirect;\r\n },\r\n immediate: true,\r\n },\r\n },\r\n created() {\r\n this.getCode();\r\n this.getCookie();\r\n },\r\n methods: {\r\n getCode() {\r\n getCodeImg().then((res) => {\r\n this.captchaOnOff =\r\n res.captchaOnOff === undefined ? true : res.captchaOnOff;\r\n if (this.captchaOnOff) {\r\n this.codeUrl = \"data:image/gif;base64,\" + res.img;\r\n // this.loginForm.uuid = res.uuid;\r\n }\r\n });\r\n },\r\n getCookie() {\r\n const username = Cookies.get(\"username\");\r\n const password = Cookies.get(\"password\");\r\n const rememberMe = Cookies.get(\"rememberMe\");\r\n this.loginForm = {\r\n username: username === undefined ? this.loginForm.username : username,\r\n password:\r\n password === undefined ? this.loginForm.password : decrypt(password),\r\n rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),\r\n };\r\n },\r\n // 请求\r\n handleLogin() {\r\n this.$refs.loginForm.validate((valid) => {\r\n if (valid) {\r\n this.loading = true;\r\n if (this.loginForm.rememberMe) {\r\n Cookies.set(\"username\", this.loginForm.username, { expires: 30 });\r\n Cookies.set(\"password\", encrypt(this.loginForm.password), {\r\n expires: 30,\r\n });\r\n Cookies.set(\"rememberMe\", this.loginForm.rememberMe, {\r\n expires: 30,\r\n });\r\n } else {\r\n Cookies.remove(\"username\");\r\n Cookies.remove(\"password\");\r\n // Cookies.remove(\"rememberMe\");\r\n }\r\n this.$store\r\n .dispatch(\"Login\", this.loginForm)\r\n .then(() => {\r\n // this.$router.push({ path: this.redirect || \"/\" }).catch(() => {});\r\n this.$router.push({ path: \"/pt\" }).catch(() => {});\r\n })\r\n .catch(() => {\r\n this.loading = false;\r\n if (this.captchaOnOff) {\r\n this.getCode();\r\n }\r\n });\r\n }\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style rel=\"stylesheet/scss\" lang=\"scss\">\r\n.login {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n background: url(\"../images/bg.jpg\") center no-repeat;\r\n // background-size: cover;\r\n}\r\n.title {\r\n margin: 0px auto 30px auto;\r\n text-align: center;\r\n color: #01cfff;\r\n}\r\n\r\n.login-form {\r\n position: relative;\r\n border-radius: 6px;\r\n width: 660px;\r\n height: 551px;\r\n padding: 203px 56px 50px 79px;\r\n background: url(\"../images/login.png\") no-repeat 0px 11px;\r\n background-size: cover;\r\n .el-input {\r\n height: 38px;\r\n margin-left: 58px;\r\n margin-right: 63px;\r\n input {\r\n height: 47px;\r\n width: 390px;\r\n }\r\n }\r\n .input-icon {\r\n height: 39px;\r\n width: 14px;\r\n margin-left: 2px;\r\n }\r\n}\r\n.login-tip {\r\n font-size: 13px;\r\n text-align: center;\r\n color: #bfbfbf;\r\n}\r\n.login-code {\r\n width: 33%;\r\n height: 38px;\r\n float: right;\r\n img {\r\n cursor: pointer;\r\n vertical-align: middle;\r\n }\r\n}\r\n.el-login-footer {\r\n height: 40px;\r\n line-height: 40px;\r\n position: fixed;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: center;\r\n color: #fff;\r\n font-family: Arial;\r\n font-size: 0px;\r\n letter-spacing: 1px;\r\n}\r\n.login-code-img {\r\n height: 38px;\r\n}\r\n.login-form .el-button--primary {\r\n background-color: #0384ea;\r\n font-size: 20px;\r\n font-weight: 700;\r\n margin-top: 34px;\r\n margin-left: 58px;\r\n margin-right: 63px;\r\n width: 390px !important;\r\n}\r\n.el-input__inner {\r\n background-color: transparent;\r\n color: #fff;\r\n border: 1px solid #01cfff;\r\n}\r\n.el-form-item__error {\r\n left: 65px;\r\n}\r\n.img {\r\n position: absolute;\r\n bottom: -25px;\r\n left: -1px;\r\n width: 661px;\r\n}\r\n.login-form .el-form-item {\r\n margin-bottom: 40px;\r\n margin-top: 30px;\r\n}\r\n</style>\r\n"]}]}
|