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
1 line
13 KiB
{"remainingRequest":"D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\babel-loader\\lib\\index.js!D:\\YuanZhuoLogistics\\WarehouseManagerVue\\node_modules\\cache-loader\\dist\\cjs.js??ref--1-0!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\\babel.config.js","mtime":1677915063811},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkxvZ2luIiwKCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGlzTG9naW46IHRydWUsCiAgICAgIC8vIHRydWUgZm9yIGxvZ2luLCBmYWxzZSBmb3IgcmVnaXN0ZXIKICAgICAgc3VibWl0X2Rpc2FibGVkOiBmYWxzZSwKICAgICAgLy/pmLLmraLlpJrmrKHmj5DkuqQKICAgICAgZm9ybTogewogICAgICAgIG5vOiAnJywKICAgICAgICBwYXNzd29yZDogJycsCiAgICAgICAgY29uZmlybVBhc3N3b3JkOiAnJyAvLyBmb3IgcmVnaXN0cmF0aW9uCgogICAgICB9LAogICAgICBydWxlczogewogICAgICAgIG5vOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6LSm5Y+3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHBhc3N3b3JkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5a+G56CBJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH0sIHsKICAgICAgICAgIG1pbjogMywKICAgICAgICAgIG1heDogMTUsCiAgICAgICAgICBtZXNzYWdlOiAn5a+G56CB6ZW/5bqm5ZyoIDMg5YiwIDE1IOS4quWtl+espicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBjb25maXJtUGFzc3dvcmQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7flho3mrKHovpPlhaXlr4bnoIEnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfSwgewogICAgICAgICAgdmFsaWRhdG9yOiAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5mb3JtLnBhc3N3b3JkKSB7CiAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfkuKTmrKHovpPlhaXlr4bnoIHkuI3kuIDoh7QnKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0KICAgIH07CiAgfSwKCiAgbWV0aG9kczogewogICAgdG9nZ2xlRm9ybSgpIHsKICAgICAgdGhpcy5pc0xvZ2luID0gIXRoaXMuaXNMb2dpbjsKICAgICAgdGhpcy5mb3JtID0gewogICAgICAgIG5vOiAnJywKICAgICAgICBwYXNzd29yZDogJycsCiAgICAgICAgY29uZmlybVBhc3N3b3JkOiAnJwogICAgICB9OyAvLyByZXNldCBmb3JtCgogICAgICB0aGlzLiRyZWZzLmZvcm0ucmVzZXRGaWVsZHMoKTsKICAgIH0sCgogICAgc3VibWl0KCkgewogICAgICB0aGlzLnN1Ym1pdF9kaXNhYmxlZCA9IHRydWU7CiAgICAgIHRoaXMuJHJlZnMuZm9ybS52YWxpZGF0ZSh2YWxpZCA9PiB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICBpZiAodGhpcy5pc0xvZ2luKSB7CiAgICAgICAgICAgIHRoaXMubG9naW4oKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXIoKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5zdWJtaXRfZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgIGNvbnNvbGUubG9nKCfmoKHpqozlpLHotKUnKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICBsb2dpbigpIHsKICAgICAgdGhpcy4kYXhpb3MucG9zdCh0aGlzLiRodHRwVXJsICsgJy91c2VyL2xvZ2luJywgdGhpcy5mb3JtKS50aGVuKHJlcyA9PiByZXMuZGF0YSkudGhlbihyZXMgPT4gewogICAgICAgIGNvbnNvbGUubG9nKHJlcyk7CgogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIkN1clVzZXIiLCBKU09OLnN0cmluZ2lmeShyZXMuZGF0YS51c2VyKSk7CiAgICAgICAgICB0aGlzLiRzdG9yZS5jb21taXQoInNldE1lbnUiLCByZXMuZGF0YS5tZW51KTsKICAgICAgICAgIHRoaXMuJHJvdXRlci5yZXBsYWNlKCcvSW5kZXgnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5zdWJtaXRfZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgIGFsZXJ0KCfmoKHpqozlpLHotKXvvIznlKjmiLflkI3miJblr4bnoIHplJnor6/vvIEnKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICByZWdpc3RlcigpIHsKICAgICAgdGhpcy4kYXhpb3MucG9zdCh0aGlzLiRodHRwVXJsICsgJy91c2VyL3JlZ2lzdGVyJywgdGhpcy5mb3JtKS50aGVuKHJlcyA9PiByZXMuZGF0YSkudGhlbihyZXMgPT4gewogICAgICAgIGNvbnNvbGUubG9nKHJlcyk7CgogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIGFsZXJ0KCfms6jlhozmiJDlip/vvIEnKTsKICAgICAgICAgIHRoaXMuJHJlZnMuZm9ybS5yZXNldEZpZWxkcygpOwogICAgICAgICAgdGhpcy5pc0xvZ2luID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5zdWJtaXRfZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgIGFsZXJ0KCfms6jlhozlpLHotKXvvIzor7fph43or5XvvIEnKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQoKICB9Cn07"},{"version":3,"mappings":";AAsCA;EACAA,aADA;;EAEAC;IACA;MACAC,aADA;MACA;MACAC,sBAFA;MAEA;MACAC;QACAC,MADA;QAEAC,YAFA;QAGAC,mBAHA,CAGA;;MAHA,CAHA;MAQAC;QACAH,KACA;UAAAI;UAAAC;UAAAC;QAAA,CADA,CADA;QAIAL,WACA;UAAAG;UAAAC;UAAAC;QAAA,CADA,EAEA;UAAAC;UAAAC;UAAAH;UAAAC;QAAA,CAFA,CAJA;QAQAJ,kBACA;UAAAE;UAAAC;UAAAC;QAAA,CADA,EAEA;UAAAG;YACA;cACAC;YACA,CAFA,MAEA;cACAA;YACA;UACA,CANA;UAMAJ;QANA,CAFA;MARA;IARA;EA4BA,CA/BA;;EAgCAK;IACAC;MACA;MACA;QAAAZ;QAAAC;QAAAC;MAAA,EAFA,CAEA;;MACA;IACA,CALA;;IAMAW;MACA;MACA;QACA;UACA;YACA;UACA,CAFA,MAEA;YACA;UACA;QACA,CANA,MAMA;UACA;UACAC;UACA;QACA;MACA,CAZA;IAaA,CArBA;;IAsBAC;MACA;QACAD;;QACA;UACAE;UACA;UACA;QACA,CAJA,MAIA;UACA;UACAC;UACA;QACA;MACA,CAXA;IAYA,CAnCA;;IAoCAC;MACA;QACAJ;;QACA;UACAG;UACA;UACA;QACA,CAJA,MAIA;UACA;UACAA;UACA;QACA;MACA,CAXA;IAYA;;EAjDA;AAhCA","names":["name","data","isLogin","submit_disabled","form","no","password","confirmPassword","rules","required","message","trigger","min","max","validator","callback","methods","toggleForm","submit","console","login","sessionStorage","alert","register"],"sourceRoot":"src/components","sources":["Login.vue"],"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>"]}]} |