@hzab/qrcode

0.1.0 • Public • Published

@hzab/qrcode

二维码生成组件

  • node@16.16.0

组件

示例

import QRCode from "@hzab/qrcode";

<QRCode value={"123456789"} />;

设置 Logo

import QRCode from "@hzab/qrcode";

const BLACK_COLOR = "#000";
const RED_COLOR = "#f00";

let color = RED_COLOR;

export const SetColorDemo = (props) => {
  return (
    <QRCode
      value={"https://abt.hzabjt.com/d?uId=111111&eId=2222222&tId=3333333"}
      logo="https://abt2023-open.oss-cn-hangzhou.aliyuncs.com/assets/imgs/app/logo.png"
    />
  );
};

点击切换颜色

import { useRef } from "react";
import QRCode from "@hzab/qrcode";

const BLACK_COLOR = "#000";
const RED_COLOR = "#f00";

export const SetColorDemo = (props) => {
  const colorRef = useRef(RED_COLOR);
  return (
    <QRCode
      value={"https://abt.hzabjt.com/d?uId=111111&eId=2222222&tId=3333333"}
      config={{ color: { dark: colorRef.current } }}
      onClick={(e, qrCodeDrawing) => {
        // 在黑色和红色中切换
        colorRef.current = colorRef.current !== BLACK_COLOR ? BLACK_COLOR : RED_COLOR;
        qrCodeDrawing.setCodeColor(colorRef.current);
      }}
    />
  );
};

API

InfoPanel Attributes

参数 类型 必填 默认值 说明
value string - 二维码的信息值
hasPreview boolean - 是否支持点击预览
previewConf Object - 点击预览组件配置
codeConf Object - 二维码 qrcode 组件特有配置项
config Object - 二维码绘制相关配置项
logo string - logo 地址
logoConf Object - logo 配置项
topTexts Array - 二维码顶部文案数组
bottomTexts Array - 二维码底部文案数组

config

  • 包括了 qrcode 组件的参数
参数 类型 必填 默认值 说明
width number 200 二维码宽度,如果宽度太小而无法包含 qr 符号,则该选项将被忽略。优先于 scale。
margin number 0 二维码图片白边大小
color Object 颜色配置
color.dark string #000000ff 深色模块(二维码)的颜色。值必须采用十六进制格式
color.light string #ffffffff 浅色模块(背景)的颜色。值必须采用十六进制格式
scale number 4 比例因子。值为 1 表示每个模块 1px(黑点)
small boolean false 仅与终端渲染器相关。输出较小的二维码
version number - 二维码版本,如果未指定,将计算更合适的值
errorCorrectionLevel string M 纠错级别,可能的值为 low, medium, quartile, high 或 L, M, Q, H
maskPattern number - 用于屏蔽符号的屏蔽图案。可能的值为 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 。
toSJISFunc Function - 内部使用辅助函数将汉字转换为其 Shift JIS 值。如果您需要支持汉字模式。
fontSize number - 字体大小
fillStyle string M 文本颜色
padding number - 绘制的边距

logoConf

参数 类型 必填 默认值 说明
logoSize number 0.2 logo 大小,与 二维码 宽度 的比例
borderSize number 0.05 边框宽度,与 二维码 宽度 的比例
borderColor string - 边框颜色
bgColor string - 背景颜色
borderRadius number - 边框圆角
logoRadius number - logo 圆角
crossOrigin string - 图片跨域配置 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Attributes/crossorigin
hasPreview boolean false 是否支持点击预览

topTexts/bottomTexts

  • 支持传文本数组或对象数组。对象数组支持配置各行文字样式
    • textBaseline?: "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom";
    • fillStyle?: string;
    • fontSize?: number;
    • padding?: number;

组件开发流程

  • 在 config/webpack.config.js 中按需修改 library 配置的文件名
  • 在 config/webpack.config.js 中按需修改 alias 配置的包名,便于本地调试
  • 在 tsconfig.json 中按需修改 paths 配置的包名,解决 ts 报错问题
  • npm run dev

文件目录

  • example 本地开发测试代码
  • src 组件源码
  • lib 组件打包编译后的代码

命令

  • Mac 执行该命令,设置 pre-commit 为可执行文件

    • npm run mac-chmod
    • chmod +x .husky && chmod +x .husky/pre-commit
  • 生成文档:npm run docs

  • 本地运行:npm run dev

  • 打包编译:npm run build

发布

  • 注意:示例代码生效,但发布之后未生效。确认是否执行了编译!!!

  • 编译组件:npm run build

  • 命令:npm publish --access public

  • 发布目录:

    • lib
    • src

配置

配置文件

  • 本地配置文件:config/config.js

webpack 配置文件

  • config/webpack.config.js

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
0.1.01latest

Version History

VersionDownloads (Last 7 Days)Published
0.1.01
0.0.10

Package Sidebar

Install

npm i @hzab/qrcode

Weekly Downloads

1

Version

0.1.0

License

ISC

Unpacked Size

318 kB

Total Files

12

Last publish

Collaborators

  • caiyansong