feige
2024-02-02 bd40473c9c634005bc7e62e7fc901bcd8b598fa0
1
{"remainingRequest":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\src\\views\\login.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\src\\views\\login.vue","mtime":1679726301957},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGdldENvZGVJbWcgfSBmcm9tICJAL2FwaS9sb2dpbiI7CmltcG9ydCBDb29raWVzIGZyb20gImpzLWNvb2tpZSI7CmltcG9ydCB7IGVuY3J5cHQsIGRlY3J5cHQgfSBmcm9tICdAL3V0aWxzL2pzZW5jcnlwdCcKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiTG9naW4iLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBjb2RlVXJsOiAiaHR0cDovLzQ3LjkzLjE4OS4yNTU6ODA4MC9jYXB0Y2hhSW1hZ2UiLAogICAgICBsb2dpbkZvcm06IHsKICAgICAgICB1c2VybmFtZTogImFkbWluIiwKICAgICAgICBwYXNzd29yZDogImFkbWluMTIzIiwKICAgICAgICByZW1lbWJlck1lOiBmYWxzZSwKICAgICAgICBjb2RlOiAiIiwKICAgICAgICB1dWlkOiAiIgogICAgICB9LAogICAgICBsb2dpblJ1bGVzOiB7CiAgICAgICAgdXNlcm5hbWU6IFsKICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIHRyaWdnZXI6ICJibHVyIiwgbWVzc2FnZTogIuivt+i+k+WFpeaCqOeahOi0puWPtyIgfQogICAgICAgIF0sCiAgICAgICAgcGFzc3dvcmQ6IFsKICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIHRyaWdnZXI6ICJibHVyIiwgbWVzc2FnZTogIuivt+i+k+WFpeaCqOeahOWvhueggSIgfQogICAgICAgIF0sCiAgICAgICAgY29kZTogW3sgcmVxdWlyZWQ6IHRydWUsIHRyaWdnZXI6ICJjaGFuZ2UiLCBtZXNzYWdlOiAi55So5oi35ZCN5LiN5a2Y5Zyo5oiW5a+G56CB6ZSZ6K+v77yI6aqM6K+B56CB6ZSZ6K+v77yJIiAsIHN0eWxlOiJtYXJnaW4tbGVmdD0xMDBweCJ9XQogICAgICB9LAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgLy8g6aqM6K+B56CB5byA5YWzCiAgICAgIGNhcHRjaGFFbmFibGVkOiB0cnVlLAogICAgICAvLyDms6jlhozlvIDlhbMKICAgICAgcmVnaXN0ZXI6IGZhbHNlLAogICAgICByZWRpcmVjdDogdW5kZWZpbmVkCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgICRyb3V0ZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbihyb3V0ZSkgewogICAgICAgIHRoaXMucmVkaXJlY3QgPSByb3V0ZS5xdWVyeSAmJiByb3V0ZS5xdWVyeS5yZWRpcmVjdDsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRDb2RlKCk7CiAgICB0aGlzLmdldENvb2tpZSgpOwogIH0sCiAgbWV0aG9kczogewogICAgZ2V0Q29kZSgpIHsKICAgICAgZ2V0Q29kZUltZygpLnRoZW4ocmVzID0+IHsKICAgICAgICB0aGlzLmNhcHRjaGFFbmFibGVkID0gcmVzLmRhdGEuY2FwdGNoYUVuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRydWUgOiByZXMuY2FwdGNoYUVuYWJsZWQ7CiAgICAgICAgaWYgKHRoaXMuY2FwdGNoYUVuYWJsZWQpIHsKICAgICAgICAgIHRoaXMuY29kZVVybCA9ICJkYXRhOmltYWdlL2dpZjtiYXNlNjQsIiArIHJlcy5kYXRhLmltZzsKICAgICAgICAgIHRoaXMubG9naW5Gb3JtLnV1aWQgPSByZXMuZGF0YS51dWlkOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgZ2V0Q29va2llKCkgewogICAgICBjb25zdCB1c2VybmFtZSA9IENvb2tpZXMuZ2V0KCJ1c2VybmFtZSIpOwogICAgICBjb25zdCBwYXNzd29yZCA9IENvb2tpZXMuZ2V0KCJwYXNzd29yZCIpOwogICAgICBjb25zdCByZW1lbWJlck1lID0gQ29va2llcy5nZXQoJ3JlbWVtYmVyTWUnKQogICAgICB0aGlzLmxvZ2luRm9ybSA9IHsKICAgICAgICB1c2VybmFtZTogdXNlcm5hbWUgPT09IHVuZGVmaW5lZCA/IHRoaXMubG9naW5Gb3JtLnVzZXJuYW1lIDogdXNlcm5hbWUsCiAgICAgICAgcGFzc3dvcmQ6IHBhc3N3b3JkID09PSB1bmRlZmluZWQgPyB0aGlzLmxvZ2luRm9ybS5wYXNzd29yZCA6IGRlY3J5cHQocGFzc3dvcmQpLAogICAgICAgIHJlbWVtYmVyTWU6IHJlbWVtYmVyTWUgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogQm9vbGVhbihyZW1lbWJlck1lKQogICAgICB9OwogICAgfSwKICAgIGhhbmRsZUxvZ2luKCkgewogICAgICB0aGlzLiRyZWZzLmxvZ2luRm9ybS52YWxpZGF0ZSh2YWxpZCA9PiB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgaWYgKHRoaXMubG9naW5Gb3JtLnJlbWVtYmVyTWUpIHsKICAgICAgICAgICAgQ29va2llcy5zZXQoInVzZXJuYW1lIiwgdGhpcy5sb2dpbkZvcm0udXNlcm5hbWUsIHsgZXhwaXJlczogMzAgfSk7CiAgICAgICAgICAgIENvb2tpZXMuc2V0KCJwYXNzd29yZCIsIGVuY3J5cHQodGhpcy5sb2dpbkZvcm0ucGFzc3dvcmQpLCB7IGV4cGlyZXM6IDMwIH0pOwogICAgICAgICAgICBDb29raWVzLnNldCgncmVtZW1iZXJNZScsIHRoaXMubG9naW5Gb3JtLnJlbWVtYmVyTWUsIHsgZXhwaXJlczogMzAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBDb29raWVzLnJlbW92ZSgidXNlcm5hbWUiKTsKICAgICAgICAgICAgQ29va2llcy5yZW1vdmUoInBhc3N3b3JkIik7CiAgICAgICAgICAgIENvb2tpZXMucmVtb3ZlKCdyZW1lbWJlck1lJyk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgiTG9naW4iLCB0aGlzLmxvZ2luRm9ybSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsgcGF0aDogdGhpcy5yZWRpcmVjdCB8fCAiLyIgfSkuY2F0Y2goKCk9Pnt9KTsKICAgICAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIGlmICh0aGlzLmNhcHRjaGFFbmFibGVkKSB7CiAgICAgICAgICAgICAgdGhpcy5nZXRDb2RlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfQp9Owo="},{"version":3,"sources":["login.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoIA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"login.vue","sourceRoot":"src/views","sourcesContent":["<template>\n  <div class=\"login Group_132\">\n    <el-form ref=\"loginForm\" :model=\"loginForm\" :rules=\"loginRules\" class=\"login-form\">\n      <h3 class=\"title\" style=\"margin-top: 111px;margin-right: 108px;margin-bottom: 0;margin-left: 109px;\">欢迎来到张氏APP</h3>\n      <div class=\"second-box\" style=\" margin-top: 25px;\n    margin-left: 140px;\n    margin-right: 141px;\n\">\n        <div class=\"little-title\" style=\" margin-top: 20px;\">\n      <h5 >登录可查看更多信息</h5>\n      <h5 >未注册的账号登录成功后会自动注册</h5></div></div>\n      <div class=\"yonghuming\" style=\"margin-left: 99px;margin-right: 425px;\">用户名</div>\n\n      <el-form-item prop=\"username\" style=\"\n    width: 380px;\n    height: 48px;\n    margin-left: 96px;\n    margin-right: 96px;\n\">\n        \n        <el-input\n          v-model=\"loginForm.username\"\n          type=\"text\"\n          auto-complete=\"off\"\n          placeholder=\"请输入用户名\"\n          style=\"height: 50px\"\n        >\n          <!-- <svg-icon slot=\"prefix\" icon-class=\"user\" class=\"el-input__icon input-icon\" /> -->\n        </el-input>\n      </el-form-item>\n\n      <div class=\"mima\" style=\"\n    margin-left: 99px;\n    margin-right: 441px;\">密码</div>\n      <el-form-item prop=\"password\" style=\"\n    margin-left: 96px;\n    margin-right: 96px;\n    width: 380px;\n    height: 48px;\">\n        <el-input\n          v-model=\"loginForm.password\"\n          type=\"password\"\n          auto-complete=\"off\"\n          placeholder=\"密码\"\n          @keyup.enter.native=\"handleLogin\"\n          style=\"height: 50px\"\n          show-password\n        >\n        <!-- <svg-icon slot=\"suffix\" icon-class=\"eye\" class=\"el-input_icon input-icon\" onclick=\"show()\"></svg-icon> -->\n\n        <!-- <el-input type=\"password\" prefix-icon=\"el-icon-lock\" v-model=\"loginForm.passWord\" show-password></el-input> -->\n\n      \n        <!-- <el-input :type=\"showPass ? 'text' : 'password'\"\n         prefix-icon=\"el-icon-lock\" \n         v-model=\"loginForm.password\"\n        @keyup.enter.native=\"handleLogin\" \n        placeholder=\"密码\"\n        style=\"height: 50px\"> -->\n\n       \n      \n\n\n\n          <!-- <svg-icon slot=\"prefix\" icon-class=\"password\" class=\"el-input__icon input-icon\" /> -->\n        </el-input>\n      </el-form-item>\n\n\n      <div class=\"验证码\" style=\"margin-left: 99px;margin-right: 425px;width: 48px;height: 20px;\">验证码</div>\n      <el-form-item prop=\"code\" v-if=\"captchaEnabled\" style=\"margin-bottom: 76px;width: 264;\"  >\n        <el-input\n          v-model=\"loginForm.code\"\n          auto-complete=\"off\"\n          placeholder=\"请输入验证码\"\n          style=\"width: 258px ;\n          margin-left: 96px \"\n          \n        \n                  \n          @keyup.enter.native=\"handleLogin\"\n        >\n\n          <!-- <svg-icon slot=\"prefix\" icon-class=\"validCode\" class=\"el-input__icon input-icon\" /> -->\n         \n        </el-input>\n        <div class=\"login-code\"  >\n          <img :src=\"codeUrl\" @click=\"getCode\" class=\"login-code-img\"/>\n        </div>\n\n        <div class=\"code\" @click=\"getCode\" style=\"width: 24px;\n        margin-left: 452px;\n      height: 16px;\n      font-size: 12px;\n      font-family: Microsoft YaHei-Regular, Microsoft YaHei;\n      font-weight: 400;\n      color: #37AADB;\n      line-height: 14px;\" >刷新</div> \n\n      </el-form-item>\n     \n\n\n      <!-- <el-checkbox v-model=\"loginForms.rememberMe\" style=\"margin:0px 0px 25px 0px;\">记住密码</el-checkbox> -->\n      <el-form-item s style=\"width: 572px;height: 72px;margin-bottom: 75px;background: rgba(239,113,155,0.8);\"> \n\n\n        <el-button\n          :loading=\"loading\"\n          style=\"width: 572px;height: 72px; background: rgba(239,113,155,0.8);\"\n          size=\"medium\"\n          type=\"primary\"\n          @click.native.prevent=\"handleLogin\"\n        >\n          <span v-if=\"!loading\" style=\"width: 97px;height: 62px;\">登录</span>\n          <span v-else>登 录 中...</span>\n        </el-button>\n        <div style=\"float: right\n        height:94px;\" v-if=\"register\">\n          <router-link class=\"link-type\" :to=\"'/register'\">立即注册</router-link>\n        </div>\n      </el-form-item>\n    </el-form>\n    <!--  底部  -->\n    <div class=\"el-login-footer\">\n      <span>Copyright © GDUT All Rights Reserved.</span>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { getCodeImg } from \"@/api/login\";\nimport Cookies from \"js-cookie\";\nimport { encrypt, decrypt } from '@/utils/jsencrypt'\n\nexport default {\n  name: \"Login\",\n  data() {\n    return {\n      codeUrl: \"http://47.93.189.255:8080/captchaImage\",\n      loginForm: {\n        username: \"admin\",\n        password: \"admin123\",\n        rememberMe: false,\n        code: \"\",\n        uuid: \"\"\n      },\n      loginRules: {\n        username: [\n          { required: true, trigger: \"blur\", message: \"请输入您的账号\" }\n        ],\n        password: [\n          { required: true, trigger: \"blur\", message: \"请输入您的密码\" }\n        ],\n        code: [{ required: true, trigger: \"change\", message: \"用户名不存在或密码错误(验证码错误)\" , style:\"margin-left=100px\"}]\n      },\n      loading: false,\n      // 验证码开关\n      captchaEnabled: true,\n      // 注册开关\n      register: false,\n      redirect: undefined\n    };\n  },\n  watch: {\n    $route: {\n      handler: function(route) {\n        this.redirect = route.query && route.query.redirect;\n      },\n      immediate: true\n    }\n  },\n  created() {\n    this.getCode();\n    this.getCookie();\n  },\n  methods: {\n    getCode() {\n      getCodeImg().then(res => {\n        this.captchaEnabled = res.data.captchaEnabled === undefined ? true : res.captchaEnabled;\n        if (this.captchaEnabled) {\n          this.codeUrl = \"data:image/gif;base64,\" + res.data.img;\n          this.loginForm.uuid = res.data.uuid;\n        }\n      });\n    },\n    getCookie() {\n      const username = Cookies.get(\"username\");\n      const password = Cookies.get(\"password\");\n      const rememberMe = Cookies.get('rememberMe')\n      this.loginForm = {\n        username: username === undefined ? this.loginForm.username : username,\n        password: password === undefined ? this.loginForm.password : decrypt(password),\n        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)\n      };\n    },\n    handleLogin() {\n      this.$refs.loginForm.validate(valid => {\n        if (valid) {\n          this.loading = true;\n          if (this.loginForm.rememberMe) {\n            Cookies.set(\"username\", this.loginForm.username, { expires: 30 });\n            Cookies.set(\"password\", encrypt(this.loginForm.password), { expires: 30 });\n            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });\n          } else {\n            Cookies.remove(\"username\");\n            Cookies.remove(\"password\");\n            Cookies.remove('rememberMe');\n          }\n          this.$store.dispatch(\"Login\", this.loginForm).then(() => {\n            this.$router.push({ path: this.redirect || \"/\" }).catch(()=>{});\n          }).catch(() => {\n            this.loading = false;\n            if (this.captchaEnabled) {\n              this.getCode();\n            }\n          });\n        }\n      });\n    }\n  }\n};\n</script>\n\n<style rel=\"stylesheet/scss\" lang=\"scss\">\n.Group_132{\n  // background: no-repeat center/40% url(\"../assets/images/Group 132.png\");\n  height: 100%;\n  width:  100%;\n  background-color: #FEF7FC;\n  //background-position: 49.5% 16.2% ;\n  // background-position: 81.7px 71.3px;\n  //background-size: auto;\n\n}\n\n.login {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n  height: 100%;\n  width:  100%;\n  background: no-repeat center/40% url(\"../assets/images/Group 132.png\");\n  background-color: #FEF7FC;\n\n  // background-size: 955px 905px;\n  background-position: 183px 145px;\n  //background-image: url(\"../assets/images/login-background.jpg\");\n  //background-size: cover;\n}\n.title {\n  margin: 109px 0 108px 0 ;\n  width:355px;\n  height: 58px;\n  font-size: 44px;\n  text-align: center;\n  font-family: Microsoft YaHei-Bold, Microsoft YaHei;\n  font-weight: bold;\n  color: #000000;\n\n}\n.second-box {\n  width: 386px;\n  height: 100px;\n  border-radius: 0px 0px 0px 0px;\n  opacity: 1;\n}\n.little-title {\nwidth: 291px;\nheight: 72px;\nfont-size: 18px;\nfont-family: Microsoft YaHei-Regular, Microsoft YaHei;\nfont-weight: 400;\ncolor: #4D4D4D;\nline-height: 21px;\ntext-align:center;\n// -webkit-background-clip: text;\n// -webkit-text-fill-color: transparent;\n}\n\n.yonghuming {\n    width: 48px;\n  height: 22px;\n  font-size: 16px;\n  font-family: Hind Madurai-Regular, Hind Madurai;\n  font-weight: 400;\n  color: #1D2129;\n  line-height: 19px;\n\n  // -webkit-background-clip: text;\n  // -webkit-text-fill-color: transparent;\n  }\n  \n  .mima{\n  width: 32px;\n  height: 20px;\n  font-size: 16px;\n  font-family: Abel-Regular, Abel;\n  font-weight: 400;\n  color: #1D2129;\n  line-height: 19px;\n\n  // -webkit-background-clip: text;\n  // -webkit-text-fill-color: transparent;\n  }\n  \n  .yanzhengma {\n  width: 48px;\n  height: 20px;\n  font-size: 16px;\n  font-family: Abel-Regular, Abel;\n  font-weight: 400;\n  color: #1D2129;\n  line-height: 19px;\n \n  // -webkit-background-clip: text;\n  // -webkit-text-fill-color: transparent;\n  }\n\n\n.login-form {\n  border-radius: 6px;\n  background: #FEF7FC;\n  width: 572px;\n  padding: 25px 25px 5px 25px;\n  margin: 211px 142px 237px 1206px;\n  .el-input {\n    height: 48px;\n    input {\n      height: 48px;\n    }\n  }\n  .input-icon {\n    height: 39px;\n    width: 14px;\n    margin-left: 2px;\n  }\n}\n.login-tip {\n  font-size: 13px;\n  text-align: center;\n  color: #bfbfbf;\n}\n.login-code {\n  width: 108px;\n  height: 48px;\n  float: right;\n  margin-right: 46px;\n  \n\n  img {\n    cursor: pointer;\n    vertical-align: middle;\n    \n    border: 1px solid #D9D9D9;\n  }\n}\n.el-login-footer {\n  height: 40px;\n  line-height: 40px;\n  position: fixed;\n  bottom: 0;\n  width: 100%;\n  text-align: center;\n  color: #fff;\n  font-family: Arial;\n  font-size: 12px;\n  letter-spacing: 1px;\n}\n.login-code-img {\n  height: 48px;\n  width: 110px;\n}\n\n.code {\n  margin-left: 452px;\n}\n</style>\n"]}]}