一、效果图

  

二、html代码

 <div class="login-container">
<div class="login-box">
<!-- 账号登录 -->
<form nz-form [formGroup]="user" class="login-form" *ngIf="loginMethod">
<nz-form-item>
<nz-form-control *ngIf="alertConfig.login_state">
<nz-alert [nzType]="alertConfig.alert_type" [nzCloseable]="alertConfig.close_btn" [nzMessage]="alertConfig.alert_msg" [nzShowIcon]="alertConfig.show_icon" (nzOnClose)="afterClose()" style="position: relative;top: -10px;"></nz-alert>
</nz-form-control>
<nz-form-control>
<nz-input-group [nzPrefix]="prefixUser">
<input type="text" nz-input formControlName="userName" placeholder="用户名" >
</nz-input-group>
<nz-form-explain *ngIf="user.get('userName').dirty && user.get('userName').errors">**用户名不能为空!</nz-form-explain>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-control>
<nz-input-group [nzPrefix]="prefixLock">
<input type="password" nz-input formControlName="password" placeholder="密码" autocomplete="on" />
</nz-input-group>
<nz-form-explain *ngIf="user.get('password').dirty && user.get('password').errors">**密码不能为空!</nz-form-explain>
</nz-form-control>
</nz-form-item> <nz-form-item style="margin-bottom:0px;">
<nz-form-control>
<button nz-button class="login-form-button" nzType="primary" (click)="login()" #login_elem [nzLoading]="isLoadingOne">{{logintext}}</button>
<p>
<a style="color: #1890ff;position: relative;text-align: center;line-height: 30px;vertical-align: middle;top: 12px;left: 15px;">
{{version}}
</a>
<a (click)="swithLoginMethod()" style="color: #1890ff;position: relative;text-align: right;top: 20px;right: -80px;">
<!-- 扫码登录 -->
<i nz-icon type="qrcode" style="font-size: 30px; color: #08c;" theme="outline"></i>
</a>
</p>
</nz-form-control>
</nz-form-item>
</form> <ng-template #prefixUser><i nz-icon type="user" style="color:#88bdf3"></i></ng-template>
<ng-template #prefixLock><i nz-icon type="lock" style="color:#88bdf3"></i></ng-template> <!-- 扫码登录 -->
<form nz-form class="login-form" [hidden]="loginMethod"> <nz-form-item style="margin-bottom:0px;">
<p *ngIf="qrcodeStatus" style="color: #bae7ff;margin-top: -10px;margin-bottom: 20px;">请用<span style="color: #1890ff;padding: 0 4px;font-weight: 300;font-size: 15px;">电站管家app</span>扫描二维码安全登录</p>
<p *ngIf="!qrcodeStatus" style="color: #bae7ff;margin-top: -10px;margin-bottom: 20px;">
<i nz-icon type="exclamation-circle" theme="outline" style="color:red;"></i>&nbsp;
二维码已失效,请<a (click)="refreshQrcode()">刷新</a>重试
</p>
<p style="min-height:80px;">
<ng-container #code_container>
<!-- <img src="assets/images/app.png" style="width:50%;" alt=""> -->
</ng-container>
</p>
</nz-form-item> <nz-form-item style="position: relative;left: 0px;margin-top:0px;">
<button nz-button class="login-form-button" [nzType]="'primary'" (click)="swithLoginMethod()">返回</button>
</nz-form-item> </form> <ng-template #code_tpl style="background-color:white;">
<qrcode [qrdata]="qrcodeuuid" [size]="128" [level]="'M'" [colorlight]="'#000000'" [colordark]="'#ffffff'" style="position: relative;left: 24%;background-color: white; "></qrcode>
</ng-template> </div>
</div>

三、说明

  ng-zorro 框架使用可参照其官网,详见:https://ng.ant.design/docs/introduce/zh

  

Angular6+ng-zorro实现登录页面的更多相关文章

  1. java web: eclipse & maven & jetty & struts2 & mysql = 简单登录页面

    第一次接触java web开发,花费了一天半的时间,写了个简单的登录页面,以此文为记. 开发工具 Eclipse Luna Release (4.4.0) 已集成maven,maven目前的体会就是管 ...

  2. 解决使用IE8打开ADFS 3.0登录页面

    系统上线前一天,发现客户竟然有XP系统和2003系统,这些系统都不能访问外网.测试时,客户端是IE8,打开我们系统ADFS的登录页面,一直在Loading,无法打开,也不报错.后来通过fiddler跟 ...

  3. session过期返回登录页面跳出frame

    session 过期返回登录页面 方法1, HttpSession session = request.getSession(); String LOGIN_ID = (String) session ...

  4. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  5. 重写ajax方法实现异步请求session过期时跳转登录页面

    jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _suc ...

  6. 今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下

    要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要 ...

  7. JavaWeb 学习003-简单登录页面功能实现

    先说下题外话:学习不是看你学了多久,重点是学到多少: 这就要求   效率.我在这三个小时,但是有效率的又有多久?只是做了这么一点简单的事. 登录页面 跟数据库交互,进行判断是否登陆成功.我只是实现了一 ...

  8. 文件系统权限引起IIS站点总跳登录页面

    今天在IIS上部署一个ASP.NET站点时遇到一个很奇怪的问题,不管访问什么页面,都会跳到登录页面,即使是访问静态文件. 折腾半天,百思不得其解,百整不得其果... 后来突然想到,是不是站点所在文件夹 ...

  9. Jboss7.1 加入realm auth认证 bootsfaces 美化的登录页面

    jboss-as-7.1.1.Final\standalone\configuration: 1, standalone.xml中 <security-domains>标签里面添加: &l ...

  10. spring security动态管理资源结合自定义登录页面

    如果想将动态管理资源与自定义登录页面一起使用,最简单的办法就是在数据库中将登录页面对应的权限设置为IS_AUTHENTICATED_ANONYMOUSLY. 因此在数据库中添加一条资源信息. INSE ...

随机推荐

  1. Java语言中的面向对象特性

    面向对象的基本特征 1.封装性 封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: ◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位( ...

  2. Memcached详解

    Memcached介绍 Memcached是什么? Free & open source, high-performance, distributed memory object cachin ...

  3. C/C++结构体成员偏移量获取

    分析代码节选自muduo. 以下代码通过offsetof获取sin_family在sockaddr_in6中的字段偏移量. static_assert(offsetof(sockaddr_in6, s ...

  4. 深入浅出 Java 中的包装类

    前阵子,我们分享了<Java中的基本数据类型转换>这篇文章,对许多粉丝还是有带来帮助的,今天讲一下 Java 包装类的的由来,及自动装箱.拆箱的概念和原理. 什么是包装类型 Java 设计 ...

  5. 安装MySQL时候最后一步报无法定位程序输入点fesetround于动态链接库MSVCR120.dll

    今天在装MySQL时到最后一步出现了一个问题[报无法定位程序输入点fesetround于动态链接库MSVCR120.dll]这是由什么原因引起的呢,其实是缺少一个vcredist_x64.exe插件 ...

  6. python基础-循环语句(5)

    一.循环语句介绍 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环 二.常见的循环形式 while循环 ...

  7. Spring Cloud微服务如何设计异常处理机制?

    导读 今天和大家聊一下在采用Spring Cloud进行微服务架构设计时,微服务之间调用时异常处理机制应该如何设计的问题.我们知道在进行微服务架构设计时,一个微服务一般来说不可避免地会同时面向内部和外 ...

  8. ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose)

    前面我写了一系列关于持续集成的文章,最终构建出来的镜像运行之后,应该会发现每次构建运行之后端口都变了,这对于我们来说是十分不方便的,所以我们可以通过修改docker compose的配置文件来完成我们 ...

  9. 导入项目的时候报错Error:Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha7

    问题描述 今天在导入项目的时候报错: Error:Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha ...

  10. java设定一个日期时间,加几分钟(小时或者天)后得到新的日期

    //返回的是字符串型的时间,输入的 //是String day, int x public static String addDateMinut(String day, int x){ SimpleD ...