天天看點

Vue3.0商店背景管理系統項目實戰-登入界面-vuex

參考資料

Vue3.0官方文檔:​​https://cn.vuejs.org/​​​ Element Plus文檔:​​https://element-plus.gitee.io/zh-CN/​​

記錄登陸的狀态

如果是登入狀态 就跳轉到首頁

如果不是登入狀态 就展示登入注冊的界面

首先

在views檔案夾底下建立一個登入的元件login.vue

Vue3.0商店背景管理系統項目實戰-登入界面-vuex

打開router/index.js

登入界面的路由進行配置

//登入界面
  {
    path: '/login',
    name: 'login',
    component: () => import('../views/pages/login.vue'),

  },      
Vue3.0商店背景管理系統項目實戰-登入界面-vuex

編寫登入界面的代碼

<template>
  <div class="login_wrap">
    <div class="form_wrap">
      <el-form
        ref="formRef"
        :model="loginData"
        label-width="100px"
        class="demo-dynamic"
      >
        <el-form-item
          prop="username"
          label="使用者名"
          :rules="[
            {
              required: true,
              message: '此項為必填項',
              trigger: 'blur',
            },
          ]"
        >
          <el-input v-model="loginData.username" />
        </el-form-item>

        <el-form-item
          prop="password"
          label="密碼"
          :rules="[
            {
              required: true,
              message: '此項為必填項',
              trigger: 'blur',
            },
          ]"
        >
          <el-input type="password" v-model="loginData.password" />
        </el-form-item>

        <el-form-item>
          <el-button type="primary" @click="submitForm(formRef)"
            >登入</el-button
          >
          <!-- <el-button @click="addDomain">New domain</el-button>
      <el-button @click="resetForm(formRef)">Reset</el-button> -->
        </el-form-item>
      </el-form>
    </div>
  </div>
</template>

<script>
import { reactive, toRefs } from "vue";
export default {
  name: "login",
  setup() {
    const data = reactive({
      loginData: {
        username: "",
        password: "",
      },
    });
    return {
      ...toRefs(data),
    };
  },
};
</script>
<style scoped>
.login_wrap {
  width: 100%;
  height: 100vh;
  background: #2d3761;
  position: relative;
}
.form_wrap {
  position: fixed;
  top: 50%;
  transform: translate(130%, -50%);
  background: #fff;
  padding: 30px 50px;
  border-radius: 5px;
}
</style>      

繼續閱讀