1.2.9 • Published 11 months ago

@digitalzz/login v1.2.9

Weekly downloads
-
License
ISC
Repository
-
Last release
11 months ago

digitalzz/login

介绍

基于 react^16.8.6 的 页面级组件-登录页组件,集成手机验证码登录、短信验证码登录、郑好办扫码登录、郑政钉扫码登录功能

安装

## npm安装

npm install --save @digitalzz/login
或者
npm i @digitalzz/login -S

## yarn 安装
yarn add @digitalzz/login

使用方法

  1. 账号密码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'

/**
 * 账号密码登录接口
 */
const pwdLogin = params => {
  // 使用promise 把结果resolve,可以从success里获取该response
  // 不使用promise 可直接在该函数里处理登录逻辑
  return new Promise(resolve => {
    // 处理输入框字段命名问题,默认用户名:loginName,密码:password
    const data = {
      appId: params.appId,
      username: params.loginName,
      password: params.password
    }
    // 后端api接口方法
    pwdLoginApi(data).then(response => {
      resolve(response)
    })
  })
}

export default () => {
  return (
    <DzrLogin
      params={{ appId: 'xxx-xxx' }}
      headerLogo={headerLogo}
      bgImage={bgImage}
      pwdLogin={pwdLogin}
      loginType={['pwd']}
      success={response => {
        // 登录成功,取response登录接口获取的数据处理登录
      }}
    />
  )
}
  1. 短信验证码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'

/**
 * 发送短信验证码
 */
const sendCode = params => {
  return new Promise(resolve => {
    // 后端api接口方法
    sendCodeApi(data).then(response => {
      resolve(response)
    })
  })
}

/**
 * 短信验证码登录
 */
const sendCodeLogin = params => {
  // 使用promise 把结果resolve,可以从success里获取该response
  // 不使用promise 可直接在该函数里处理登录逻辑
  return new Promise(resolve => {
    // 后端api接口方法
    sendCodeLoginApi(data).then(response => {
      resolve(response)
    })
  })
}

export default () => {
  return (
    <DzrLogin
      params={{ appId: 'xxx-xxx' }}
      headerLogo={headerLogo}
      bgImage={bgImage}
      sendCode={sendCode}
      sendCodeLogin={sendCodeLogin}
      loginType={['sms']}
      success={response => {
        // 登录成功,取response登录接口获取的数据处理登录
      }}
    />
  )
}
  1. 郑好办扫码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'

/**
 * 获取郑好办二维码
 */
const getZhbQrcode = params => {
  return new Promise(resolve => {
    getZhbQrcodeApi(params).then(res => {
      const { code, message, data } = res
      const dataObj = {
        url: data,
        uuid: qs.parse(data).uuid
      }
      const response = { code, message, data: dataObj }
      resolve(response)
    })
  })
}

/**
 * 获取郑好办扫码登录用户信息
 */
const getZhbUserInfo = params => {
  // 使用promise 把结果resolve,可以从success里获取该response
  // 不使用promise 可直接在该函数里处理登录逻辑
  return new Promise(resolve => {
    // 后端api接口方法
    getZhbUserInfoApi(data).then(response => {
      resolve(response)
    })
  })
}

export default () => {
  return (
    <DzrLogin
      params={{ appId: 'xxx-xxx' }}
      headerLogo={headerLogo}
      bgImage={bgImage}
      getZhbQrcode={getZhbQrcode}
      getZhbUserInfo={getZhbUserInfo}
      loginType={['zhb']}
      success={response => {
        // 登录成功,取response登录接口获取的数据处理登录
      }}
    />
  )
}
  1. 郑政钉扫码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'

/**
 * 获取郑政钉扫码登录用户信息
 */
const zzdLogin = params => {
  // 扫码获取code,code给后端换取token
  // 使用promise 把结果resolve,可以从success里获取该response
  // 不使用promise 可直接在该函数里处理登录逻辑
  return new Promise(resolve => {
    // 后端api接口方法
    zzdLoginApi(data).then(response => {
      resolve(response)
    })
  })
}

export default () => {
  return (
    <DzrLogin
      params={{ appId: 'xxx-xxx' }}
      headerLogo={headerLogo}
      bgImage={bgImage}
      zzdIframeUrl="https://login-dingding.zhengzhou.gov.cn/oauth2/auth.htm?response_type=code&client_id=zkp_dingoa&redirect_uri=http://59.207.61.4:11373&scope=get_user_info&authType=QRCODE&embedMode=true"
      zzdLogin={zzdLogin}
      loginType={['zzd']}
      success={response => {
        // 登录成功,取response登录接口获取的数据处理登录
      }}
    />
  )
}

Api

参数描述类型可选值必须默认值版本
showHeader是否显示头部Booleantrue
headerLogo头部 logoString
headerStyle头部区域样式Object{}
showFooter是否显示底部Booleantrue
footer底部模板ReactNodeCopyright©2021 数字郑州科技有限公司
footerStyle底部区域样式Object{}
style页面整体样式Object{}
bodyStyle内容区域样式Object{}
mainTitle主标题String欢迎登录
bgImage页面背景图Stringv1.0.3
bgColor页面背景色String#002766v1.0.3
loginType登录方式Arraystringpwd 账号密码 | sms 短信验证码 | zhb 郑好办扫码 | zzd 郑政钉扫码登录'zhb', 'sms', 'pwd'v1.2.8 支持郑政钉
params预置参数{}
sendSmsCode发送短信验证码方法Function
smsLogin短信验证码登录方法Function
pwdLogin账号密码登录方法Function
forgetPwdLogin忘记密码登录方法Functionv1.2.5
getZhbQrcode获取郑好办二维码方法FunctionloginType 为 zhb 时必要
getZhbUserInfo获取郑好办用户信息方法FunctionloginType 为 zhb 时必要
success登录成功回调Function
graphCodeUrl账号密码模式下是否显示图形验证码链接,不配置无图形验证码Stringv1.1.4
setUuid配置图形验证码处理 Uuid 方法Functionv1.1.4
type组件类型Stringlogin 登录 | forgetPwd 忘记密码loginv1.2.5
mainContent内容区域ReactNodenullv1.2.5
defaultLoginType默认登录方式Stringpwd 账号密码 | sms 短信验证码 | zhb 郑好办扫码默认 loginType 第一位v1.2.5
rules校验规则Objectv1.2.5
showForgetPwd是否显示忘记密码Booleanfalsev1.2.5
theme主题Stringtab,tab 切换 | tile:二维码在左侧平铺tabv1.2.5
zhbOptions郑好办扫码登录配置Object{}v1.2.7
pwdOptions账号密码登录配置Object{}v1.2.7
smsOptions短信验证码登录配置Object{}v1.2.7
forgetPwdOptions忘记密码配置Object{}v1.2.7
tileLoginTypetile 模式下展示的登录类型Stringzhb | zzdv1.2.8
zzdIframeUrl郑政钉 iframe 嵌入链接Stringv1.2.8
zzdIcon郑政钉 icon 链接Stringhttps://cdn.digitalcnzz.com/static/imgs/icon_zzd.pngv1.2.8
zzdLogin郑政钉登录方法Functionv1.2.8
zzdOptions郑政钉登录配置Object{}v1.2.8

默认 rules

export const defaultRules = {
  loginName: [{ required: true, message: '请输入账号' }],
  phone: [
    { required: true, message: '请输入手机号' },
    {
      pattern: /^1[3-9][\d]{9}$/,
      message: '请输入正确的手机号'
    }
  ],
  password: [
    { required: true, message: '请输入密码' },
    { pattern: /^((?=.*[a-zA-Z])|(?=.*\d)).{6,50}$/, message: '请输入不小于6位的密码' }
  ],
  newPassword: [
    { required: true, message: '请输入新密码' },
    { pattern: /^((?=.*[a-zA-Z])|(?=.*\d)).{6,50}$/, message: '请输入不小于6位的新密码' }
  ],
  captcha: [
    { required: true, message: '请输入图形验证码' },
    { pattern: /^[0-9a-zA-Z]{4,10}$/, message: '请输入图形验证码' }
  ],
  smsCaptcha: [
    { required: true, message: '请输入短信验证码' },
    { pattern: /^[0-9]{4,8}$/, message: '请输入短信验证码' }
  ]
}
1.2.8

11 months ago

1.2.9

11 months ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.0

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.2

2 years ago

1.1.3

2 years ago

1.2.1

2 years ago

1.1.2

2 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.1.10

3 years ago

0.1.11

3 years ago

0.1.8

3 years ago

0.1.9

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago