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 line
13 KiB

{"remainingRequest":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\YuanZhuoLogistics\\WarehouseManagerVue\\src\\components\\Login.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\src\\components\\Login.vue","mtime":1730254082771},{"path":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CmV4cG9ydCBkZWZhdWx0IHsKICAgIG5hbWU6ICJMb2dpbiIsCiAgICBkYXRhKCl7CiAgICAgICAgcmV0dXJuewogICAgICAgICAgICBpc0xvZ2luOiB0cnVlLCAgLy8gdHJ1ZSBmb3IgbG9naW4sIGZhbHNlIGZvciByZWdpc3RlcgogICAgICAgICAgICBzdWJtaXRfZGlzYWJsZWQ6IGZhbHNlLCAgLy/pmLLmraLlpJrmrKHmj5DkuqQKICAgICAgICAgICAgZm9ybTogewogICAgICAgICAgICAgICAgbm86ICcnLAogICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICcnLAogICAgICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkOiAnJyAgLy8gZm9yIHJlZ2lzdHJhdGlvbgogICAgICAgICAgICB9LAogICAgICAgICAgICBydWxlczogewogICAgICAgICAgICAgICAgbm86IFsKICAgICAgICAgICAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl6LSm5Y+3JywgdHJpZ2dlcjogJ2JsdXInIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwYXNzd29yZDogWwogICAgICAgICAgICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fovpPlhaXlr4bnoIEnLCB0cmlnZ2VyOiAnYmx1cicgfSwKICAgICAgICAgICAgICAgICAgICB7IG1pbjogMywgbWF4OiAxNSwgbWVzc2FnZTogJ+WvhueggemVv+W6puWcqCAzIOWIsCAxNSDkuKrlrZfnrKYnLCB0cmlnZ2VyOiAnYmx1cicgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGNvbmZpcm1QYXNzd29yZDogWwogICAgICAgICAgICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7flho3mrKHovpPlhaXlr4bnoIEnLCB0cmlnZ2VyOiAnYmx1cicgfSwKICAgICAgICAgICAgICAgICAgICB7IHZhbGlkYXRvcjogKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuZm9ybS5wYXNzd29yZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfkuKTmrKHovpPlhaXlr4bnoIHkuI3kuIDoh7QnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgdHJpZ2dlcjogJ2JsdXInIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0sCiAgICBtZXRob2RzOnsKICAgICAgICB0b2dnbGVGb3JtKCkgewogICAgICAgICAgICB0aGlzLmlzTG9naW4gPSAhdGhpcy5pc0xvZ2luOwogICAgICAgICAgICB0aGlzLmZvcm0gPSB7IG5vOiAnJywgcGFzc3dvcmQ6ICcnLCBjb25maXJtUGFzc3dvcmQ6ICcnIH07ICAvLyByZXNldCBmb3JtCiAgICAgICAgICAgIHRoaXMuJHJlZnMuZm9ybS5yZXNldEZpZWxkcygpOwogICAgICAgIH0sCiAgICAgICAgc3VibWl0KCkgewogICAgICAgICAgICB0aGlzLnN1Ym1pdF9kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMuJHJlZnMuZm9ybS52YWxpZGF0ZSgodmFsaWQpID0+IHsKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTG9naW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbigpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXIoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0X2Rpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+agoemqjOWksei0pScpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgICBsb2dpbigpIHsKICAgICAgICAgICAgdGhpcy4kYXhpb3MucG9zdCh0aGlzLiRodHRwVXJsKycvdXNlci9sb2dpbicsIHRoaXMuZm9ybSkudGhlbihyZXMgPT4gcmVzLmRhdGEpLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcyk7CiAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiQ3VyVXNlciIsIEpTT04uc3RyaW5naWZ5KHJlcy5kYXRhLnVzZXIpKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoInNldE1lbnUiLCByZXMuZGF0YS5tZW51KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRyb3V0ZXIucmVwbGFjZSgnL0luZGV4Jyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0X2Rpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgYWxlcnQoJ+agoemqjOWksei0pe+8jOeUqOaIt+WQjeaIluWvhueggemUmeivr++8gScpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgICByZWdpc3RlcigpIHsKICAgICAgICAgICAgdGhpcy4kYXhpb3MucG9zdCh0aGlzLiRodHRwVXJsKycvdXNlci9yZWdpc3RlcicsIHRoaXMuZm9ybSkudGhlbihyZXMgPT4gcmVzLmRhdGEpLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcyk7CiAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgICAgICAgICAgYWxlcnQoJ+azqOWGjOaIkOWKn++8gScpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJHJlZnMuZm9ybS5yZXNldEZpZWxkcygpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2dpbiA9IHRydWU7IAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdF9kaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCfms6jlhozlpLHotKXvvIzor7fph43or5XvvIEnKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KfQo="},{"version":3,"sources":["Login.vue"],"names":[],"mappings":";AAsCA;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/components","sourcesContent":["<template>\n <div class=\"loginBody\">\n <div style=\"width:98%;text-align:center;color:white;padding: 100px 100px 0 0;font-size:22px;\">\n <h1>欢迎访问圆桌物流系统</h1>\n </div>\n \n <div class=\"loginDiv\">\n <div class=\"login-content\">\n <h1 class=\"login-title\">{{ isLogin ? '' : '' }}</h1>\r\n\t\t\t\t<h2 class=\"login-title\">{{ isLogin ? '' : '' }}</h2>\n <el-form :model=\"form\" label-width=\"100px\"\n :rules=\"rules\" ref=\"form\">\n <el-form-item label=\"用户名\" prop=\"no\">\n <el-input style=\"width: 200px\" type=\"text\" v-model=\"form.no\" \n autocomplete=\"off\" size=\"small\"></el-input>\n </el-form-item>\n <el-form-item label=\"密码\" prop=\"password\" v-if=\"isLogin\">\n <el-input style=\"width: 200px\" type=\"password\" v-model=\"form.password\"\n show-password autocomplete=\"off\" size=\"small\" @keyup.enter.native=\"submit\"></el-input>\n </el-form-item>\n <el-form-item label=\"密码\" prop=\"password\" v-if=\"!isLogin\">\n <el-input style=\"width: 200px\" type=\"password\" v-model=\"form.password\"\n autocomplete=\"off\" size=\"small\"></el-input>\n </el-form-item>\n <el-form-item label=\"确认密码\" prop=\"confirmPassword\" v-if=\"!isLogin\">\n <el-input style=\"width: 200px\" type=\"password\" v-model=\"form.confirmPassword\"\n autocomplete=\"off\" size=\"small\"></el-input>\n </el-form-item>\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"toggleForm\" :disabled=\"submit_disabled\">{{ isLogin ? '注册' : '返回登录' }}</el-button>\r\n <el-button type=\"primary\" @click=\"submit\" :disabled=\"submit_disabled\">{{ isLogin ? '登 录' : '注 册' }}</el-button>\r\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n</template>\r\n<script>\nexport default {\n name: \"Login\",\n data(){\n return{\n isLogin: true, // true for login, false for register\n submit_disabled: false, //防止多次提交\n form: {\n no: '',\n password: '',\n confirmPassword: '' // for registration\n },\n rules: {\n no: [\n { required: true, message: '请输入账号', trigger: 'blur' }\n ],\n password: [\n { required: true, message: '请输入密码', trigger: 'blur' },\n { min: 3, max: 15, message: '密码长度在 3 到 15 个字符', trigger: 'blur' }\n ],\n confirmPassword: [\n { required: true, message: '请再次输入密码', trigger: 'blur' },\n { validator: (rule, value, callback) => {\n if (value !== this.form.password) {\n callback(new Error('两次输入密码不一致'));\n } else {\n callback();\n }\n }, trigger: 'blur' }\n ]\n }\n }\n },\n methods:{\n toggleForm() {\n this.isLogin = !this.isLogin;\n this.form = { no: '', password: '', confirmPassword: '' }; // reset form\n this.$refs.form.resetFields();\n },\n submit() {\n this.submit_disabled = true;\n this.$refs.form.validate((valid) => {\n if (valid) {\n if (this.isLogin) {\n this.login();\n } else {\n this.register();\n }\n } else {\n this.submit_disabled = false;\n console.log('校验失败');\n return false;\n }\n });\n },\n login() {\n this.$axios.post(this.$httpUrl+'/user/login', this.form).then(res => res.data).then(res => {\n console.log(res);\n if (res.code == 200) {\n sessionStorage.setItem(\"CurUser\", JSON.stringify(res.data.user));\n this.$store.commit(\"setMenu\", res.data.menu);\n this.$router.replace('/Index');\n } else {\n this.submit_disabled = false;\n alert('校验失败,用户名或密码错误!');\n return false;\n }\n });\n },\n register() {\n this.$axios.post(this.$httpUrl+'/user/register', this.form).then(res => res.data).then(res => {\n console.log(res);\n if (res.code == 200) {\n alert('注册成功!');\n this.$refs.form.resetFields();\n this.isLogin = true; \n } else {\n this.submit_disabled = false;\n alert('注册失败,请重试!');\n return false;\n }\n });\n }\n }\n}\n</script>\r\n<style scoped>\n.loginBody {\n position: absolute;\n width: 100%;\n height: 100%;\n background: url('../assets/home.jpg') no-repeat center center / cover;\n overflow-x: hidden;\n}\n\n.loginDiv {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 400px;\n background: rgba(255, 255, 255, 0.8); /* 半透明背景 */\n padding: 16px;\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.login-content {\n width: 100%;\n}\n\n/* 增加标题和表单之间的间距 */\n.login-title {\n margin-bottom: 30px; /* 增加这个值来增加间距 */\n text-align: center;\n color: #ffffff;\n font-size: 24px; /* 调整字体大小 */\n}\n\n/* 使用Flexbox布局使表单项并排显示 */\n.form-row {\n display: flex;\n justify-content: space-between;\n margin-bottom: 15px;\n}\n\n/* 调整表单标签和输入框的样式 */\n.form-item {\n flex: 1;\n margin-right: 10px;\n}\n\n.form-item:last-child {\n margin-right: 0;\n}\n\n.el-form-item__label {\n color: #ffffff;\n font-size: 20px; /* 调整字体大小 */\n}\n\n.el-input__inner {\n color: #ffffff;\n font-size: 16px; /* 调整字体大小 */\n}\n\n.el-button {\n color: #ffffff;\n font-size: 16px; /* 调整字体大小 */\n}\r\n/* 调整按钮的外边距,增加右边距来将按钮向右移动 */\n.el-button[type=\"primary\"]:last-child {\n margin-right: 20px; /* 根据需要调整这个值 */\n}\n\n/* 或者,如果您想要增加按钮内部的空间,可以增加内边距 */\n.el-button[type=\"primary\"]:last-child {\n padding-right: 20px; /* 根据需要调整这个值 */\n}\n</style>"]}]}