| | |
| | | <template> |
| | | <div class="login-view"> |
| | | <Form :model="formInline" :rules="ruleInline" inline ref="refFormInline"> |
| | | <FormItem prop="user"> |
| | | <Input type="text" v-model="formInline.user" placeholder="Username"> |
| | | <template #prepend> |
| | | <Icon type="ios-person-outline"></Icon> |
| | | </template> |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem prop="password"> |
| | | <Input |
| | | type="password" |
| | | v-model="formInline.password" |
| | | placeholder="Password" |
| | | <div class="login-wrap"> |
| | | <div class="login-account"> |
| | | <div class="account-logo"> |
| | | <img src="http://115.29.185.26:5101/userphoto?login=sa" /> |
| | | </div> |
| | | <Form |
| | | class="account-form" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-position="top" |
| | | ref="refFormInline" |
| | | > |
| | | <template #prepend> |
| | | <Icon type="ios-lock-outline"></Icon> |
| | | </template> |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Button type="primary" @click="onSignIn">Signin</Button> |
| | | </FormItem> |
| | | </Form> |
| | | <div class="title">Vue仓库管理系统</div> |
| | | <div class="ivu-login"> |
| | | <FormItem prop="user"> |
| | | <Input |
| | | type="text" |
| | | v-model="form.user" |
| | | prefix="ios-person-outline" |
| | | > |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem prop="password"> |
| | | <Input |
| | | type="password" |
| | | v-model="form.password" |
| | | prefix="ios-lock-outline" |
| | | > |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Button type="primary" @click="onSignIn" long>登录</Button> |
| | | </FormItem> |
| | | </div> |
| | | </Form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | name: "LoginView", |
| | | data() { |
| | | return { |
| | | formInline: { |
| | | user: "", |
| | | password: "", |
| | | form: { |
| | | user: "admin", |
| | | password: "0000", |
| | | }, |
| | | ruleInline: { |
| | | rules: { |
| | | user: [ |
| | | { |
| | | required: true, |
| | |
| | | message: "Please fill in the password.", |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | type: "string", |
| | | min: 6, |
| | | message: "The password length cannot be less than 6 bits", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | onSignIn() { |
| | | // 测试用户 |
| | | if (this.form.user == "admin" && this.form.password == "0000") { |
| | | setToken("uid"); |
| | | this.showSuccess("登录成功"); |
| | | this.$router.push("/"); |
| | | return; |
| | | } |
| | | this.refFormInline.validate(async (valid) => { |
| | | try { |
| | | if (valid) { |
| | | let res = await login({ |
| | | user_login: Base64.encode(this.formInline.user), |
| | | user_psw: Base64.encode(this.formInline.password), |
| | | user_login: Base64.encode(this.form.user), |
| | | user_psw: Base64.encode(this.form.password), |
| | | }); |
| | | setToken(res.session_id); |
| | | this.showSuccess("登录成功"); |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | <style lang="less"> |
| | | .login-view { |
| | | height: 100vh; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | background-position: right bottom; |
| | | background-image: url("../../assets/login_bg.png"); |
| | | background-attachment: fixed; |
| | | .login-wrap { |
| | | height: 100vh; |
| | | overflow: auto; |
| | | } |
| | | .login-account { |
| | | width: 280px; |
| | | padding: 16px 0 0; |
| | | margin: 0 300px 0 auto; |
| | | margin-top: 100px; |
| | | } |
| | | .account-logo { |
| | | width: 80px; |
| | | height: 80px; |
| | | margin: 0 auto; |
| | | border: 1px solid #eee; |
| | | border-radius: 50%; |
| | | background-color: #fafafc; |
| | | img { |
| | | width: 100%; |
| | | border-style: none; |
| | | border-radius: 100%; |
| | | } |
| | | } |
| | | .account-form { |
| | | margin-top: 32px; |
| | | } |
| | | .title { |
| | | font-size: 30px; |
| | | text-align: center; |
| | | margin-bottom: 18px; |
| | | letter-spacing: 3px; |
| | | |
| | | font-weight: bold; |
| | | background: -webkit-linear-gradient(#009df4, #00e9cf); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | background-clip: text; |
| | | color: transparent; |
| | | } |
| | | .ivu-login { |
| | | padding: 60px 30px 3px; |
| | | background-image: url("../../assets/account_bg.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | background-position: right bottom; |
| | | } |
| | | .ivu-form-item { |
| | | margin-bottom: 24px; |
| | | vertical-align: top; |
| | | zoom: 1; |
| | | .ivu-icon { |
| | | color: #0ba1f8; |
| | | } |
| | | .ivu-input { |
| | | border: 2px solid #0ba1f8; |
| | | background-color: transparent; |
| | | color: #fff; |
| | | } |
| | | } |
| | | .ivu-form-item-content { |
| | | position: relative; |
| | | line-height: 32px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | </style> |