前端工作小结44-初始登录样式

简介: 前端工作小结44-初始登录样式
<!--GY歌谣控制登录页面的功能-->
<template>
  <div class="main">
    <div>
   <h1> <img src="./geyao.png" style="width: 29px;height: 29px;margin-right: 10px;line-height: 29px" alt="">星传经管系统</h1>
    </div>
   <!-- <h1>欢迎登录</h1>-->
    <div class="login-head">
    <div class="login-form">
      <!--登录的用户名-->
      <el-form  :model="form" label-width="40px">
        <el-form-item  label="用户">
          <el-input v-model="form.account" />
        </el-form-item>
        <!--登录的密码-->
        <el-form-item  label="密码" >
          <el-input v-model="form.password" show-password/>
        </el-form-item>
        <el-form-item>
          <!--登录按钮 登录的时候调用方法-->
          <el-button
            type="primary"
            style="display: block; width: 100%"
            @click="login"
          >
            登录
          </el-button>
        </el-form-item>
      </el-form>
    </div>
    </div>
    <mode-selection-dialog ref="mode" @select="modeSelected" />
  </div>
</template>
<script>
import Vue from "vue";
/*状态管理*/
import store from "@/store";
/*引入调用的方法*/
import { postAction } from "@/api";
import {ACCESS_MODE, ACCESS_TOKEN} from "@/store/KeyConstants";
import { HOME_PATH } from "@/router/staticRoutes";
import { SET_USER, SET_DEPARTMENT, SET_MODE } from "@/store/mutation-types";
/*引入封装的组件 登录框组件*/
import ModeSelectionDialog from "./ModeSelectionDialog";
export default {
  name: "Login",
  components: { ModeSelectionDialog },
  data() {
    return {
      /*登录界面存储账号和密码*/
      form: {
        /*存储账号*/
        account: "",
        /*存储密码*/
        password: ""
      },
      url: {
        login: "/user/login"
      }
    };
  },
  created() {
  },
  methods: {
    /*登录的方法*/
    login() {
      /*第一个参数传入要跳转的链接地址  第一个传入数据参数*/
      postAction(this.url.login, this.form).then(res => {
        if (res.code === 0) {
        /*  /!*设置token令牌*!/*/
          Vue.ls.set(ACCESS_TOKEN, res.data.access_token);
          /*Vue.ls.set(ACCESS_MODE, res.data.mode);*/
       /*   /!*获取user的数据*!/*/
          const user = res.data.user;
          const dept = user.department;
          const properties = dept.property.split(",");
        /*  所有的状态开始存储到vuex*/
          store.commit(SET_USER, {
            name: user.name,
            role: user.role
          });
          store.commit(SET_DEPARTMENT, {
            id: dept.id,
            name: dept.name,
            property: properties
          });
          // select mode
          if (!properties || properties.length === 0) {
            this.$message.error("请设定部门属性!");
          } else if (properties.length === 1) {
            this.modeSelected(properties[0]);
          } else if (properties.length === 2) {
            this.$refs["mode"].show();
          } else {
            this.$message.error("部门属性错误!");
            console.error(res);
          }
        } else {
          this.$message.warning("用户名或密码错误!");
        }
      }).catch(error => {
        console.log(error);
      }
      );
    },
    modeSelected(mode) {
   /*   if(mode==0){
        store.commit(SET_MODE, mode);
        this.$router.push(HOME_PATH);
        Vue.ls.set(ACCESS_MODE,mode);
      }else{
        store.commit(SET_MODE, mode);
        this.$router.push(HOME_PATH);
        Vue.ls.set(ACCESS_MODE,mode);
      }*/
      /*只使用一个路由*/
      store.commit(SET_MODE, mode);
      this.$router.push(HOME_PATH);
      Vue.ls.set(ACCESS_MODE,mode);
    },
  }
};
</script>
<style lang="scss" scoped>
.main {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background: url("./login_bg.jpg") no-repeat;
  background-size: cover;
  .login-form{
    background-color: #F5F5F5;
    padding: 50px;
    min-width: 300px;
  }
}
</style>

image.png

相关文章
|
3月前
|
前端开发 JavaScript
乾坤qiankun(微前端)样式隔离解决方案--使用插件替换前缀
乾坤qiankun(微前端)样式隔离解决方案--使用插件替换前缀
591 8
|
3月前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
344 1
|
4月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
144 1
|
5月前
|
前端开发 JavaScript 应用服务中间件
【uniapp】谷歌授权登录,前端uniapp直调(含源码)
本文介绍如何在uniapp项目中实现谷歌授权登录,无需后端参与。文章分为三部分:1)谷歌授权登录流程,详细说明从用户点击登录到获取用户信息的整个过程;2)谷歌开发者控制台配置,包括创建项目、配置同意屏幕及OAuth客户端ID等步骤;3)uniapp前端实操,提供具体代码示例,展示如何获取授权码并用其交换访问令牌,最终获取用户信息
239 2
【uniapp】谷歌授权登录,前端uniapp直调(含源码)
|
4月前
|
存储 JSON 前端开发
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
本文介绍了在Node.js中使用token实现前端验证码和登录功能的详细流程,包括生成验证码、账号密码验证以及token验证和过期处理。
74 0
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
|
4月前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
87 11
|
5月前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
64 0
|
5月前
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
270 0
|
6月前
|
存储 开发框架 前端开发
循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志
循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志
|
6月前
|
前端开发 开发工具 数据库
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
下一篇
开通oss服务