diff --git a/db/TDesign.db b/db/TDesign.db
index 4f735b1e..7f83a29b 100644
Binary files a/db/TDesign.db and b/db/TDesign.db differ
diff --git a/package.json b/package.json
index 7aec9142..ccb22c45 100644
--- a/package.json
+++ b/package.json
@@ -68,5 +68,6 @@
"api:configurable": "node packages/scripts/configurable-props"
},
"author": "TDesign",
- "license": "ISC"
+ "license": "ISC",
+ "packageManager": "pnpm@10.6.4+sha512.da3d715bfd22a9a105e6e8088cfc7826699332ded60c423b14ec613a185f1602206702ff0fe4c438cb15c979081ce4cb02568e364b15174503a63c7a8e2a5f6c"
}
diff --git a/packages/products/tdesign-miniprogram/src/qr-code/README.en-US.md b/packages/products/tdesign-miniprogram/src/qr-code/README.en-US.md
new file mode 100644
index 00000000..aadff83d
--- /dev/null
+++ b/packages/products/tdesign-miniprogram/src/qr-code/README.en-US.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+name | type | default | description | required
+-- | -- | -- | -- | --
+style | Object | - | CSS(Cascading Style Sheets) | N
+custom-style | Object | - | CSS(Cascading Style Sheets),used to set style on virtual component | N
+bg-color | String | transparent | QR code background color | N
+borderless | Boolean | false | Is there a border | N
+color | String | - | QR code color | N
+icon | String / Slot | - | The address or custom icon of the picture in the QR code。[see more ts definition](https://github.com/Tencent/tdesign-miniprogram/blob/develop/src/common/common.ts) | N
+icon-size | Number / Object | 40 | The size of the picture in the QR code。Typescript:`number \| { width: number; height: number }` | N
+level | String | M | QR code error correction level。options: L/M/Q/H | N
+size | Number | 160 | QR code size | N
+status | String | active | QR code status。options: active/expired/loading/scanned。Typescript:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[see more ts definition](https://github.com/Tencent/tdesign-miniprogram/tree/develop/src/qr-code/type.ts) | N
+status-render | Slot | - | Custom state renderer。[see more ts definition](https://github.com/Tencent/tdesign-miniprogram/blob/develop/src/common/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-miniprogram/tree/develop/src/qr-code/type.ts) | N
+value | String | - | scanned text | N
+
+### QrCode Events
+
+name | params | description
+-- | -- | --
+refresh | \- | Click the "Click to refresh" callback
diff --git a/packages/products/tdesign-miniprogram/src/qr-code/README.md b/packages/products/tdesign-miniprogram/src/qr-code/README.md
new file mode 100644
index 00000000..36f0f4e8
--- /dev/null
+++ b/packages/products/tdesign-miniprogram/src/qr-code/README.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+名称 | 类型 | 默认值 | 描述 | 必传
+-- | -- | -- | -- | --
+style | Object | - | 样式 | N
+custom-style | Object | - | 样式,一般用于开启虚拟化组件节点场景 | N
+bg-color | String | transparent | 二维码背景颜色 | N
+borderless | Boolean | false | 是否有边框 | N
+color | String | - | 二维码颜色 | N
+icon | String / Slot | - | 二维码中图片的地址或自定义icon。[通用类型定义](https://github.com/Tencent/tdesign-miniprogram/blob/develop/src/common/common.ts) | N
+icon-size | Number / Object | 40 | 二维码中图片的大小。TS 类型:`number \| { width: number; height: number }` | N
+level | String | M | 二维码纠错等级。可选项:L/M/Q/H | N
+size | Number | 160 | 二维码大小 | N
+status | String | active | 二维码状态。可选项:active/expired/loading/scanned。TS 类型:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[详细类型定义](https://github.com/Tencent/tdesign-miniprogram/tree/develop/src/qr-code/type.ts) | N
+status-render | Slot | - | 自定义状态渲染器。[通用类型定义](https://github.com/Tencent/tdesign-miniprogram/blob/develop/src/common/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-miniprogram/tree/develop/src/qr-code/type.ts) | N
+value | String | - | 扫描后的文本 | N
+
+### QrCode Events
+
+名称 | 参数 | 描述
+-- | -- | --
+refresh | \- | 点击"点击刷新"的回调
diff --git a/packages/products/tdesign-miniprogram/src/qr-code/props.ts b/packages/products/tdesign-miniprogram/src/qr-code/props.ts
new file mode 100644
index 00000000..e723d443
--- /dev/null
+++ b/packages/products/tdesign-miniprogram/src/qr-code/props.ts
@@ -0,0 +1,55 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TdQrCodeProps } from './type';
+const props: TdQrCodeProps = {
+ /** 二维码背景颜色 */
+ bgColor: {
+ type: String,
+ value: 'transparent',
+ },
+ /** 是否有边框 */
+ borderless: {
+ type: Boolean,
+ value: false,
+ },
+ /** 二维码颜色 */
+ color: {
+ type: String,
+ value: '',
+ },
+ /** 二维码中图片的地址或自定义icon */
+ icon: {
+ type: String,
+ },
+ /** 二维码中图片的大小 */
+ iconSize: {
+ type: null,
+ value: 40,
+ },
+ /** 二维码纠错等级 */
+ level: {
+ type: String,
+ value: 'M',
+ },
+ /** 二维码大小 */
+ size: {
+ type: Number,
+ value: 160,
+ },
+ /** 二维码状态 */
+ status: {
+ type: String,
+ value: 'active',
+ },
+ /** 扫描后的文本 */
+ value: {
+ type: String,
+ value: '',
+ },
+};
+
+export default props;
diff --git a/packages/products/tdesign-miniprogram/src/qr-code/type.ts b/packages/products/tdesign-miniprogram/src/qr-code/type.ts
new file mode 100644
index 00000000..2e2cd209
--- /dev/null
+++ b/packages/products/tdesign-miniprogram/src/qr-code/type.ts
@@ -0,0 +1,92 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TNode } from '../common/common';
+
+export interface TdQrCodeProps {
+ /**
+ * 二维码背景颜色
+ * @default transparent
+ */
+ bgColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ /**
+ * 是否有边框
+ * @default false
+ */
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ /**
+ * 二维码颜色
+ * @default ''
+ */
+ color?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ /**
+ * 二维码中图片的地址或自定义icon
+ */
+ icon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ /**
+ * 二维码中图片的大小
+ * @default 40
+ */
+ iconSize?: {
+ type: null;
+ value?: number | { width: number; height: number };
+ };
+ /**
+ * 二维码纠错等级
+ * @default M
+ */
+ level?: {
+ type: StringConstructor;
+ value?: 'L' | 'M' | 'Q' | 'H';
+ };
+ /**
+ * 二维码大小
+ * @default 160
+ */
+ size?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ /**
+ * 二维码状态
+ * @default active
+ */
+ status?: {
+ type: StringConstructor;
+ value?: QRStatus;
+ };
+ /**
+ * 自定义状态渲染器
+ */
+ statusRender?: {
+ type: undefined;
+ value?: (info: StatusRenderInfo) => TNode;
+ };
+ /**
+ * 扫描后的文本
+ * @default ''
+ */
+ value?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+
+export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
+
+export type StatusRenderInfo = { status: QRStatus; locale: string; onRefresh?: () => void };
diff --git a/packages/products/tdesign-mobile-react/src/qr-code/defaultProps.ts b/packages/products/tdesign-mobile-react/src/qr-code/defaultProps.ts
new file mode 100644
index 00000000..4834feb3
--- /dev/null
+++ b/packages/products/tdesign-mobile-react/src/qr-code/defaultProps.ts
@@ -0,0 +1,15 @@
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TdQrCodeProps } from './type';
+
+export const qrCodeDefaultProps: TdQrCodeProps = {
+ bgColor: 'transparent',
+ borderless: false,
+ iconSize: 40,
+ level: 'M',
+ size: 160,
+ status: 'active',
+ type: 'canvas',
+};
diff --git a/packages/products/tdesign-mobile-react/src/qr-code/qr-code.en-US.md b/packages/products/tdesign-mobile-react/src/qr-code/qr-code.en-US.md
new file mode 100644
index 00000000..2af5034d
--- /dev/null
+++ b/packages/products/tdesign-mobile-react/src/qr-code/qr-code.en-US.md
@@ -0,0 +1,22 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+name | type | default | description | required
+-- | -- | -- | -- | --
+className | String | - | className of component | N
+style | Object | - | CSS(Cascading Style Sheets),Typescript:`React.CSSProperties` | N
+bgColor | String | transparent | QR code background color | N
+borderless | Boolean | false | Is there a border | N
+color | String | - | QR code color | N
+icon | TNode | - | The address or custom icon of the picture in the QR code。Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N
+iconSize | Number / Object | 40 | The size of the picture in the QR code。Typescript:`number \| { width: number; height: number }` | N
+level | String | M | QR code error correction level。options: L/M/Q/H | N
+size | Number | 160 | QR code size | N
+status | String | active | QR code status。options: active/expired/loading/scanned。Typescript:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/qr-code/type.ts) | N
+statusRender | TElement | - | Custom state renderer。Typescript:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/qr-code/type.ts) | N
+type | String | canvas | render type。options: canvas/svg | N
+value | String | - | scanned text | N
+onRefresh | Function | | Typescript:`() => void`
Click the "Click to refresh" callback | N
diff --git a/packages/products/tdesign-mobile-react/src/qr-code/qr-code.md b/packages/products/tdesign-mobile-react/src/qr-code/qr-code.md
new file mode 100644
index 00000000..0cc8d9ea
--- /dev/null
+++ b/packages/products/tdesign-mobile-react/src/qr-code/qr-code.md
@@ -0,0 +1,22 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+名称 | 类型 | 默认值 | 描述 | 必传
+-- | -- | -- | -- | --
+className | String | - | 类名 | N
+style | Object | - | 样式,TS 类型:`React.CSSProperties` | N
+bgColor | String | transparent | 二维码背景颜色 | N
+borderless | Boolean | false | 是否有边框 | N
+color | String | - | 二维码颜色 | N
+icon | TNode | - | 二维码中图片的地址或自定义icon。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts) | N
+iconSize | Number / Object | 40 | 二维码中图片的大小。TS 类型:`number \| { width: number; height: number }` | N
+level | String | M | 二维码纠错等级。可选项:L/M/Q/H | N
+size | Number | 160 | 二维码大小 | N
+status | String | active | 二维码状态。可选项:active/expired/loading/scanned。TS 类型:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/qr-code/type.ts) | N
+statusRender | TElement | - | 自定义状态渲染器。TS 类型:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-react/blob/develop/src/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/qr-code/type.ts) | N
+type | String | canvas | 渲染类型。可选项:canvas/svg | N
+value | String | - | 扫描后的文本 | N
+onRefresh | Function | | TS 类型:`() => void`
点击"点击刷新"的回调 | N
diff --git a/packages/products/tdesign-mobile-react/src/qr-code/type.ts b/packages/products/tdesign-mobile-react/src/qr-code/type.ts
new file mode 100644
index 00000000..b1340973
--- /dev/null
+++ b/packages/products/tdesign-mobile-react/src/qr-code/type.ts
@@ -0,0 +1,71 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TNode } from '../common';
+
+export interface TdQrCodeProps {
+ /**
+ * 二维码背景颜色
+ * @default transparent
+ */
+ bgColor?: string;
+ /**
+ * 是否有边框
+ * @default false
+ */
+ borderless?: boolean;
+ /**
+ * 二维码颜色
+ * @default ''
+ */
+ color?: string;
+ /**
+ * 二维码中图片的地址或自定义icon
+ */
+ icon?: TNode;
+ /**
+ * 二维码中图片的大小
+ * @default 40
+ */
+ iconSize?: number | { width: number; height: number };
+ /**
+ * 二维码纠错等级
+ * @default M
+ */
+ level?: 'L' | 'M' | 'Q' | 'H';
+ /**
+ * 二维码大小
+ * @default 160
+ */
+ size?: number;
+ /**
+ * 二维码状态
+ * @default active
+ */
+ status?: QRStatus;
+ /**
+ * 自定义状态渲染器
+ */
+ statusRender?: (info: StatusRenderInfo) => TNode;
+ /**
+ * 渲染类型
+ * @default canvas
+ */
+ type?: 'canvas' | 'svg';
+ /**
+ * 扫描后的文本
+ * @default ''
+ */
+ value?: string;
+ /**
+ * 点击"点击刷新"的回调
+ */
+ onRefresh?: () => void;
+}
+
+export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
+
+export type StatusRenderInfo = { status: QRStatus; locale: string; onRefresh?: () => void };
diff --git a/packages/products/tdesign-mobile-vue/src/qr-code/props.ts b/packages/products/tdesign-mobile-vue/src/qr-code/props.ts
new file mode 100644
index 00000000..078731c6
--- /dev/null
+++ b/packages/products/tdesign-mobile-vue/src/qr-code/props.ts
@@ -0,0 +1,75 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TdQrCodeProps } from './type';
+import { PropType } from 'vue';
+
+export default {
+ /** 二维码背景颜色 */
+ bgColor: {
+ type: String,
+ default: 'transparent',
+ },
+ /** 是否有边框 */
+ borderless: Boolean,
+ /** 二维码颜色 */
+ color: {
+ type: String,
+ default: '',
+ },
+ /** 二维码中图片的地址或自定义icon */
+ icon: {
+ type: [String, Function] as PropType,
+ },
+ /** 二维码中图片的大小 */
+ iconSize: {
+ type: [Number, Object] as PropType,
+ default: 40,
+ },
+ /** 二维码纠错等级 */
+ level: {
+ type: String as PropType,
+ default: 'M' as TdQrCodeProps['level'],
+ validator(val: TdQrCodeProps['level']): boolean {
+ if (!val) return true;
+ return ['L', 'M', 'Q', 'H'].includes(val);
+ },
+ },
+ /** 二维码大小 */
+ size: {
+ type: Number,
+ default: 160,
+ },
+ /** 二维码状态 */
+ status: {
+ type: String as PropType,
+ default: 'active' as TdQrCodeProps['status'],
+ validator(val: TdQrCodeProps['status']): boolean {
+ if (!val) return true;
+ return ['active', 'expired', 'loading', 'scanned'].includes(val);
+ },
+ },
+ /** 自定义状态渲染器 */
+ statusRender: {
+ type: Function as PropType,
+ },
+ /** 渲染类型 */
+ type: {
+ type: String as PropType,
+ default: 'canvas' as TdQrCodeProps['type'],
+ validator(val: TdQrCodeProps['type']): boolean {
+ if (!val) return true;
+ return ['canvas', 'svg'].includes(val);
+ },
+ },
+ /** 扫描后的文本 */
+ value: {
+ type: String,
+ default: '',
+ },
+ /** 点击"点击刷新"的回调 */
+ onRefresh: Function as PropType,
+};
diff --git a/packages/products/tdesign-mobile-vue/src/qr-code/qr-code.en-US.md b/packages/products/tdesign-mobile-vue/src/qr-code/qr-code.en-US.md
new file mode 100644
index 00000000..1c45b1e5
--- /dev/null
+++ b/packages/products/tdesign-mobile-vue/src/qr-code/qr-code.en-US.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+name | type | default | description | required
+-- | -- | -- | -- | --
+bgColor | String | transparent | QR code background color | N
+borderless | Boolean | false | Is there a border | N
+color | String | - | QR code color | N
+icon | String / Slot / Function | - | The address or custom icon of the picture in the QR code。Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts) | N
+iconSize | Number / Object | 40 | The size of the picture in the QR code。Typescript:`number \| { width: number; height: number }` | N
+level | String | M | QR code error correction level。options: L/M/Q/H | N
+size | Number | 160 | QR code size | N
+status | String | active | QR code status。options: active/expired/loading/scanned。Typescript:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/qr-code/type.ts) | N
+statusRender | Slot / Function | - | Custom state renderer。Typescript:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/qr-code/type.ts) | N
+type | String | canvas | render type。options: canvas/svg | N
+value | String | - | scanned text | N
+onRefresh | Function | | Typescript:`() => void`
Click the "Click to refresh" callback | N
+
+### QrCode Events
+
+name | params | description
+-- | -- | --
+refresh | \- | Click the "Click to refresh" callback
diff --git a/packages/products/tdesign-mobile-vue/src/qr-code/qr-code.md b/packages/products/tdesign-mobile-vue/src/qr-code/qr-code.md
new file mode 100644
index 00000000..145af54b
--- /dev/null
+++ b/packages/products/tdesign-mobile-vue/src/qr-code/qr-code.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+名称 | 类型 | 默认值 | 描述 | 必传
+-- | -- | -- | -- | --
+bgColor | String | transparent | 二维码背景颜色 | N
+borderless | Boolean | false | 是否有边框 | N
+color | String | - | 二维码颜色 | N
+icon | String / Slot / Function | - | 二维码中图片的地址或自定义icon。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts) | N
+iconSize | Number / Object | 40 | 二维码中图片的大小。TS 类型:`number \| { width: number; height: number }` | N
+level | String | M | 二维码纠错等级。可选项:L/M/Q/H | N
+size | Number | 160 | 二维码大小 | N
+status | String | active | 二维码状态。可选项:active/expired/loading/scanned。TS 类型:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/qr-code/type.ts) | N
+statusRender | Slot / Function | - | 自定义状态渲染器。TS 类型:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/qr-code/type.ts) | N
+type | String | canvas | 渲染类型。可选项:canvas/svg | N
+value | String | - | 扫描后的文本 | N
+onRefresh | Function | | TS 类型:`() => void`
点击"点击刷新"的回调 | N
+
+### QrCode Events
+
+名称 | 参数 | 描述
+-- | -- | --
+refresh | \- | 点击"点击刷新"的回调
diff --git a/packages/products/tdesign-mobile-vue/src/qr-code/type.ts b/packages/products/tdesign-mobile-vue/src/qr-code/type.ts
new file mode 100644
index 00000000..2bab2707
--- /dev/null
+++ b/packages/products/tdesign-mobile-vue/src/qr-code/type.ts
@@ -0,0 +1,71 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TNode } from '../common';
+
+export interface TdQrCodeProps {
+ /**
+ * 二维码背景颜色
+ * @default transparent
+ */
+ bgColor?: string;
+ /**
+ * 是否有边框
+ * @default false
+ */
+ borderless?: boolean;
+ /**
+ * 二维码颜色
+ * @default ''
+ */
+ color?: string;
+ /**
+ * 二维码中图片的地址或自定义icon
+ */
+ icon?: string | TNode;
+ /**
+ * 二维码中图片的大小
+ * @default 40
+ */
+ iconSize?: number | { width: number; height: number };
+ /**
+ * 二维码纠错等级
+ * @default M
+ */
+ level?: 'L' | 'M' | 'Q' | 'H';
+ /**
+ * 二维码大小
+ * @default 160
+ */
+ size?: number;
+ /**
+ * 二维码状态
+ * @default active
+ */
+ status?: QRStatus;
+ /**
+ * 自定义状态渲染器
+ */
+ statusRender?: (info: StatusRenderInfo) => TNode;
+ /**
+ * 渲染类型
+ * @default canvas
+ */
+ type?: 'canvas' | 'svg';
+ /**
+ * 扫描后的文本
+ * @default ''
+ */
+ value?: string;
+ /**
+ * 点击"点击刷新"的回调
+ */
+ onRefresh?: () => void;
+}
+
+export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
+
+export type StatusRenderInfo = { status: QRStatus; locale: string; onRefresh?: () => void };
diff --git a/packages/products/tdesign-react/packages/components/qr-code/defaultProps.ts b/packages/products/tdesign-react/packages/components/qr-code/defaultProps.ts
new file mode 100644
index 00000000..4834feb3
--- /dev/null
+++ b/packages/products/tdesign-react/packages/components/qr-code/defaultProps.ts
@@ -0,0 +1,15 @@
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TdQrCodeProps } from './type';
+
+export const qrCodeDefaultProps: TdQrCodeProps = {
+ bgColor: 'transparent',
+ borderless: false,
+ iconSize: 40,
+ level: 'M',
+ size: 160,
+ status: 'active',
+ type: 'canvas',
+};
diff --git a/packages/products/tdesign-react/packages/components/qr-code/qr-code.en-US.md b/packages/products/tdesign-react/packages/components/qr-code/qr-code.en-US.md
new file mode 100644
index 00000000..40ee13dd
--- /dev/null
+++ b/packages/products/tdesign-react/packages/components/qr-code/qr-code.en-US.md
@@ -0,0 +1,22 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+name | type | default | description | required
+-- | -- | -- | -- | --
+className | String | - | className of component | N
+style | Object | - | CSS(Cascading Style Sheets),Typescript:`React.CSSProperties` | N
+bgColor | String | transparent | QR code background color | N
+borderless | Boolean | false | Is there a border | N
+color | String | - | QR code color | N
+icon | TNode | - | The address or custom icon of the picture in the QR code。Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/common.ts) | N
+iconSize | Number / Object | 40 | The size of the picture in the QR code。Typescript:`number \| { width: number; height: number }` | N
+level | String | M | QR code error correction level。options: L/M/Q/H | N
+size | Number | 160 | QR code size | N
+status | String | active | QR code status。options: active/expired/loading/scanned。Typescript:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[see more ts definition](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/qr-code/type.ts) | N
+statusRender | TElement | - | Custom state renderer。Typescript:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[see more ts definition](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/qr-code/type.ts) | N
+type | String | canvas | render type。options: canvas/svg | N
+value | String | - | scanned text | N
+onRefresh | Function | | Typescript:`() => void`
Click the "Click to refresh" callback | N
diff --git a/packages/products/tdesign-react/packages/components/qr-code/qr-code.md b/packages/products/tdesign-react/packages/components/qr-code/qr-code.md
new file mode 100644
index 00000000..a9f156e2
--- /dev/null
+++ b/packages/products/tdesign-react/packages/components/qr-code/qr-code.md
@@ -0,0 +1,22 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+名称 | 类型 | 默认值 | 描述 | 必传
+-- | -- | -- | -- | --
+className | String | - | 类名 | N
+style | Object | - | 样式,TS 类型:`React.CSSProperties` | N
+bgColor | String | transparent | 二维码背景颜色 | N
+borderless | Boolean | false | 是否有边框 | N
+color | String | - | 二维码颜色 | N
+icon | TNode | - | 二维码中图片的地址或自定义icon。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/common.ts) | N
+iconSize | Number / Object | 40 | 二维码中图片的大小。TS 类型:`number \| { width: number; height: number }` | N
+level | String | M | 二维码纠错等级。可选项:L/M/Q/H | N
+size | Number | 160 | 二维码大小 | N
+status | String | active | 二维码状态。可选项:active/expired/loading/scanned。TS 类型:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[详细类型定义](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/qr-code/type.ts) | N
+statusRender | TElement | - | 自定义状态渲染器。TS 类型:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[通用类型定义](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-react/blob/develop/packages/components/qr-code/type.ts) | N
+type | String | canvas | 渲染类型。可选项:canvas/svg | N
+value | String | - | 扫描后的文本 | N
+onRefresh | Function | | TS 类型:`() => void`
点击"点击刷新"的回调 | N
diff --git a/packages/products/tdesign-react/packages/components/qr-code/type.ts b/packages/products/tdesign-react/packages/components/qr-code/type.ts
new file mode 100644
index 00000000..b1340973
--- /dev/null
+++ b/packages/products/tdesign-react/packages/components/qr-code/type.ts
@@ -0,0 +1,71 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TNode } from '../common';
+
+export interface TdQrCodeProps {
+ /**
+ * 二维码背景颜色
+ * @default transparent
+ */
+ bgColor?: string;
+ /**
+ * 是否有边框
+ * @default false
+ */
+ borderless?: boolean;
+ /**
+ * 二维码颜色
+ * @default ''
+ */
+ color?: string;
+ /**
+ * 二维码中图片的地址或自定义icon
+ */
+ icon?: TNode;
+ /**
+ * 二维码中图片的大小
+ * @default 40
+ */
+ iconSize?: number | { width: number; height: number };
+ /**
+ * 二维码纠错等级
+ * @default M
+ */
+ level?: 'L' | 'M' | 'Q' | 'H';
+ /**
+ * 二维码大小
+ * @default 160
+ */
+ size?: number;
+ /**
+ * 二维码状态
+ * @default active
+ */
+ status?: QRStatus;
+ /**
+ * 自定义状态渲染器
+ */
+ statusRender?: (info: StatusRenderInfo) => TNode;
+ /**
+ * 渲染类型
+ * @default canvas
+ */
+ type?: 'canvas' | 'svg';
+ /**
+ * 扫描后的文本
+ * @default ''
+ */
+ value?: string;
+ /**
+ * 点击"点击刷新"的回调
+ */
+ onRefresh?: () => void;
+}
+
+export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
+
+export type StatusRenderInfo = { status: QRStatus; locale: string; onRefresh?: () => void };
diff --git a/packages/products/tdesign-vue-next/packages/components/qr-code/props.ts b/packages/products/tdesign-vue-next/packages/components/qr-code/props.ts
new file mode 100644
index 00000000..2ea9fbf3
--- /dev/null
+++ b/packages/products/tdesign-vue-next/packages/components/qr-code/props.ts
@@ -0,0 +1,75 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TdQrCodeProps } from './type';
+import { PropType } from 'vue';
+
+export default {
+ /** 二维码背景颜色 */
+ bgColor: {
+ type: String,
+ default: 'transparent',
+ },
+ /** 是否有边框 */
+ borderless: Boolean,
+ /** 二维码颜色 */
+ color: {
+ type: String,
+ default: '',
+ },
+ /** 二维码中图片的地址或自定义icon */
+ icon: {
+ type: [String, Function] as PropType,
+ },
+ /** 二维码中图片的大小 */
+ iconSize: {
+ type: [Number, Object] as PropType,
+ default: 40 as TdQrCodeProps['iconSize'],
+ },
+ /** 二维码纠错等级 */
+ level: {
+ type: String as PropType,
+ default: 'M' as TdQrCodeProps['level'],
+ validator(val: TdQrCodeProps['level']): boolean {
+ if (!val) return true;
+ return ['L', 'M', 'Q', 'H'].includes(val);
+ },
+ },
+ /** 二维码大小 */
+ size: {
+ type: Number,
+ default: 160,
+ },
+ /** 二维码状态 */
+ status: {
+ type: String as PropType,
+ default: 'active' as TdQrCodeProps['status'],
+ validator(val: TdQrCodeProps['status']): boolean {
+ if (!val) return true;
+ return ['active', 'expired', 'loading', 'scanned'].includes(val);
+ },
+ },
+ /** 自定义状态渲染器 */
+ statusRender: {
+ type: Function as PropType,
+ },
+ /** 渲染类型 */
+ type: {
+ type: String as PropType,
+ default: 'canvas' as TdQrCodeProps['type'],
+ validator(val: TdQrCodeProps['type']): boolean {
+ if (!val) return true;
+ return ['canvas', 'svg'].includes(val);
+ },
+ },
+ /** 扫描后的文本 */
+ value: {
+ type: String,
+ default: '',
+ },
+ /** 点击"点击刷新"的回调 */
+ onRefresh: Function as PropType,
+};
diff --git a/packages/products/tdesign-vue-next/packages/components/qr-code/qr-code.en-US.md b/packages/products/tdesign-vue-next/packages/components/qr-code/qr-code.en-US.md
new file mode 100644
index 00000000..150e14a4
--- /dev/null
+++ b/packages/products/tdesign-vue-next/packages/components/qr-code/qr-code.en-US.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+name | type | default | description | required
+-- | -- | -- | -- | --
+bgColor | String | transparent | QR code background color | N
+borderless | Boolean | false | Is there a border | N
+color | String | - | QR code color | N
+icon | String / Slot / Function | - | The address or custom icon of the picture in the QR code。Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/common.ts) | N
+iconSize | Number / Object | 40 | The size of the picture in the QR code。Typescript:`number \| { width: number; height: number }` | N
+level | String | M | QR code error correction level。options: L/M/Q/H | N
+size | Number | 160 | QR code size | N
+status | String | active | QR code status。options: active/expired/loading/scanned。Typescript:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[see more ts definition](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/qr-code/type.ts) | N
+statusRender | Slot / Function | - | Custom state renderer。Typescript:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[see more ts definition](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/qr-code/type.ts) | N
+type | String | canvas | render type。options: canvas/svg | N
+value | String | - | scanned text | N
+onRefresh | Function | | Typescript:`() => void`
Click the "Click to refresh" callback | N
+
+### QrCode Events
+
+name | params | description
+-- | -- | --
+refresh | \- | Click the "Click to refresh" callback
diff --git a/packages/products/tdesign-vue-next/packages/components/qr-code/qr-code.md b/packages/products/tdesign-vue-next/packages/components/qr-code/qr-code.md
new file mode 100644
index 00000000..8011ff0f
--- /dev/null
+++ b/packages/products/tdesign-vue-next/packages/components/qr-code/qr-code.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+名称 | 类型 | 默认值 | 描述 | 必传
+-- | -- | -- | -- | --
+bgColor | String | transparent | 二维码背景颜色 | N
+borderless | Boolean | false | 是否有边框 | N
+color | String | - | 二维码颜色 | N
+icon | String / Slot / Function | - | 二维码中图片的地址或自定义icon。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/common.ts) | N
+iconSize | Number / Object | 40 | 二维码中图片的大小。TS 类型:`number \| { width: number; height: number }` | N
+level | String | M | 二维码纠错等级。可选项:L/M/Q/H | N
+size | Number | 160 | 二维码大小 | N
+status | String | active | 二维码状态。可选项:active/expired/loading/scanned。TS 类型:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[详细类型定义](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/qr-code/type.ts) | N
+statusRender | Slot / Function | - | 自定义状态渲染器。TS 类型:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[通用类型定义](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/qr-code/type.ts) | N
+type | String | canvas | 渲染类型。可选项:canvas/svg | N
+value | String | - | 扫描后的文本 | N
+onRefresh | Function | | TS 类型:`() => void`
点击"点击刷新"的回调 | N
+
+### QrCode Events
+
+名称 | 参数 | 描述
+-- | -- | --
+refresh | \- | 点击"点击刷新"的回调
diff --git a/packages/products/tdesign-vue-next/packages/components/qr-code/type.ts b/packages/products/tdesign-vue-next/packages/components/qr-code/type.ts
new file mode 100644
index 00000000..2bab2707
--- /dev/null
+++ b/packages/products/tdesign-vue-next/packages/components/qr-code/type.ts
@@ -0,0 +1,71 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TNode } from '../common';
+
+export interface TdQrCodeProps {
+ /**
+ * 二维码背景颜色
+ * @default transparent
+ */
+ bgColor?: string;
+ /**
+ * 是否有边框
+ * @default false
+ */
+ borderless?: boolean;
+ /**
+ * 二维码颜色
+ * @default ''
+ */
+ color?: string;
+ /**
+ * 二维码中图片的地址或自定义icon
+ */
+ icon?: string | TNode;
+ /**
+ * 二维码中图片的大小
+ * @default 40
+ */
+ iconSize?: number | { width: number; height: number };
+ /**
+ * 二维码纠错等级
+ * @default M
+ */
+ level?: 'L' | 'M' | 'Q' | 'H';
+ /**
+ * 二维码大小
+ * @default 160
+ */
+ size?: number;
+ /**
+ * 二维码状态
+ * @default active
+ */
+ status?: QRStatus;
+ /**
+ * 自定义状态渲染器
+ */
+ statusRender?: (info: StatusRenderInfo) => TNode;
+ /**
+ * 渲染类型
+ * @default canvas
+ */
+ type?: 'canvas' | 'svg';
+ /**
+ * 扫描后的文本
+ * @default ''
+ */
+ value?: string;
+ /**
+ * 点击"点击刷新"的回调
+ */
+ onRefresh?: () => void;
+}
+
+export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
+
+export type StatusRenderInfo = { status: QRStatus; locale: string; onRefresh?: () => void };
diff --git a/packages/products/tdesign-vue/src/qr-code/props.ts b/packages/products/tdesign-vue/src/qr-code/props.ts
new file mode 100644
index 00000000..078731c6
--- /dev/null
+++ b/packages/products/tdesign-vue/src/qr-code/props.ts
@@ -0,0 +1,75 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TdQrCodeProps } from './type';
+import { PropType } from 'vue';
+
+export default {
+ /** 二维码背景颜色 */
+ bgColor: {
+ type: String,
+ default: 'transparent',
+ },
+ /** 是否有边框 */
+ borderless: Boolean,
+ /** 二维码颜色 */
+ color: {
+ type: String,
+ default: '',
+ },
+ /** 二维码中图片的地址或自定义icon */
+ icon: {
+ type: [String, Function] as PropType,
+ },
+ /** 二维码中图片的大小 */
+ iconSize: {
+ type: [Number, Object] as PropType,
+ default: 40,
+ },
+ /** 二维码纠错等级 */
+ level: {
+ type: String as PropType,
+ default: 'M' as TdQrCodeProps['level'],
+ validator(val: TdQrCodeProps['level']): boolean {
+ if (!val) return true;
+ return ['L', 'M', 'Q', 'H'].includes(val);
+ },
+ },
+ /** 二维码大小 */
+ size: {
+ type: Number,
+ default: 160,
+ },
+ /** 二维码状态 */
+ status: {
+ type: String as PropType,
+ default: 'active' as TdQrCodeProps['status'],
+ validator(val: TdQrCodeProps['status']): boolean {
+ if (!val) return true;
+ return ['active', 'expired', 'loading', 'scanned'].includes(val);
+ },
+ },
+ /** 自定义状态渲染器 */
+ statusRender: {
+ type: Function as PropType,
+ },
+ /** 渲染类型 */
+ type: {
+ type: String as PropType,
+ default: 'canvas' as TdQrCodeProps['type'],
+ validator(val: TdQrCodeProps['type']): boolean {
+ if (!val) return true;
+ return ['canvas', 'svg'].includes(val);
+ },
+ },
+ /** 扫描后的文本 */
+ value: {
+ type: String,
+ default: '',
+ },
+ /** 点击"点击刷新"的回调 */
+ onRefresh: Function as PropType,
+};
diff --git a/packages/products/tdesign-vue/src/qr-code/qr-code.en-US.md b/packages/products/tdesign-vue/src/qr-code/qr-code.en-US.md
new file mode 100644
index 00000000..beb26887
--- /dev/null
+++ b/packages/products/tdesign-vue/src/qr-code/qr-code.en-US.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+name | type | default | description | required
+-- | -- | -- | -- | --
+bgColor | String | transparent | QR code background color | N
+borderless | Boolean | false | Is there a border | N
+color | String | - | QR code color | N
+icon | String / Slot / Function | - | The address or custom icon of the picture in the QR code。Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N
+iconSize | Number / Object | 40 | The size of the picture in the QR code。Typescript:`number \| { width: number; height: number }` | N
+level | String | M | QR code error correction level。options: L/M/Q/H | N
+size | Number | 160 | QR code size | N
+status | String | active | QR code status。options: active/expired/loading/scanned。Typescript:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/qr-code/type.ts) | N
+statusRender | Slot / Function | - | Custom state renderer。Typescript:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[see more ts definition](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/qr-code/type.ts) | N
+type | String | canvas | render type。options: canvas/svg | N
+value | String | - | scanned text | N
+onRefresh | Function | | Typescript:`() => void`
Click the "Click to refresh" callback | N
+
+### QrCode Events
+
+name | params | description
+-- | -- | --
+refresh | \- | Click the "Click to refresh" callback
diff --git a/packages/products/tdesign-vue/src/qr-code/qr-code.md b/packages/products/tdesign-vue/src/qr-code/qr-code.md
new file mode 100644
index 00000000..06a4d1b0
--- /dev/null
+++ b/packages/products/tdesign-vue/src/qr-code/qr-code.md
@@ -0,0 +1,26 @@
+:: BASE_DOC ::
+
+## API
+
+### QrCode Props
+
+名称 | 类型 | 默认值 | 描述 | 必传
+-- | -- | -- | -- | --
+bgColor | String | transparent | 二维码背景颜色 | N
+borderless | Boolean | false | 是否有边框 | N
+color | String | - | 二维码颜色 | N
+icon | String / Slot / Function | - | 二维码中图片的地址或自定义icon。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N
+iconSize | Number / Object | 40 | 二维码中图片的大小。TS 类型:`number \| { width: number; height: number }` | N
+level | String | M | 二维码纠错等级。可选项:L/M/Q/H | N
+size | Number | 160 | 二维码大小 | N
+status | String | active | 二维码状态。可选项:active/expired/loading/scanned。TS 类型:`QRStatus` `type QRStatus = "active" \| "expired" \| "loading" \| "scanned"`。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/qr-code/type.ts) | N
+statusRender | Slot / Function | - | 自定义状态渲染器。TS 类型:`(info:StatusRenderInfo) => TNode` `type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}`。[通用类型定义](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/qr-code/type.ts) | N
+type | String | canvas | 渲染类型。可选项:canvas/svg | N
+value | String | - | 扫描后的文本 | N
+onRefresh | Function | | TS 类型:`() => void`
点击"点击刷新"的回调 | N
+
+### QrCode Events
+
+名称 | 参数 | 描述
+-- | -- | --
+refresh | \- | 点击"点击刷新"的回调
diff --git a/packages/products/tdesign-vue/src/qr-code/type.ts b/packages/products/tdesign-vue/src/qr-code/type.ts
new file mode 100644
index 00000000..2bab2707
--- /dev/null
+++ b/packages/products/tdesign-vue/src/qr-code/type.ts
@@ -0,0 +1,71 @@
+/* eslint-disable */
+
+/**
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
+ * */
+
+import { TNode } from '../common';
+
+export interface TdQrCodeProps {
+ /**
+ * 二维码背景颜色
+ * @default transparent
+ */
+ bgColor?: string;
+ /**
+ * 是否有边框
+ * @default false
+ */
+ borderless?: boolean;
+ /**
+ * 二维码颜色
+ * @default ''
+ */
+ color?: string;
+ /**
+ * 二维码中图片的地址或自定义icon
+ */
+ icon?: string | TNode;
+ /**
+ * 二维码中图片的大小
+ * @default 40
+ */
+ iconSize?: number | { width: number; height: number };
+ /**
+ * 二维码纠错等级
+ * @default M
+ */
+ level?: 'L' | 'M' | 'Q' | 'H';
+ /**
+ * 二维码大小
+ * @default 160
+ */
+ size?: number;
+ /**
+ * 二维码状态
+ * @default active
+ */
+ status?: QRStatus;
+ /**
+ * 自定义状态渲染器
+ */
+ statusRender?: (info: StatusRenderInfo) => TNode;
+ /**
+ * 渲染类型
+ * @default canvas
+ */
+ type?: 'canvas' | 'svg';
+ /**
+ * 扫描后的文本
+ * @default ''
+ */
+ value?: string;
+ /**
+ * 点击"点击刷新"的回调
+ */
+ onRefresh?: () => void;
+}
+
+export type QRStatus = 'active' | 'expired' | 'loading' | 'scanned';
+
+export type StatusRenderInfo = { status: QRStatus; locale: string; onRefresh?: () => void };
diff --git a/packages/scripts/api.json b/packages/scripts/api.json
index 900e4cb8..65a62b00 100644
--- a/packages/scripts/api.json
+++ b/packages/scripts/api.json
@@ -93894,6 +93894,548 @@
"Array"
]
},
+ {
+ "id": 1748524112,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "bgColor",
+ "field_type": [
+ "1"
+ ],
+ "field_default_value": "transparent",
+ "field_enum": "",
+ "field_desc_zh": "二维码背景颜色",
+ "field_desc_en": "QR code background color",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:08:32",
+ "update_time": "2025-05-29 13:08:32",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "String"
+ ]
+ },
+ {
+ "id": 1748524307,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "borderless",
+ "field_type": [
+ "4"
+ ],
+ "field_default_value": "false",
+ "field_enum": "",
+ "field_desc_zh": "是否有边框",
+ "field_desc_en": "Is there a border",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:11:47",
+ "update_time": "2025-05-29 13:11:47",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "Boolean"
+ ]
+ },
+ {
+ "id": 1748524032,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "color",
+ "field_type": [
+ "1"
+ ],
+ "field_default_value": "",
+ "field_enum": "",
+ "field_desc_zh": "二维码颜色",
+ "field_desc_en": "QR code color",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:07:12",
+ "update_time": "2025-05-29 13:07:12",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "String"
+ ]
+ },
+ {
+ "id": 1748523781,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "icon",
+ "field_type": [
+ "1",
+ "64"
+ ],
+ "field_default_value": "",
+ "field_enum": "",
+ "field_desc_zh": "二维码中图片的地址或自定义icon",
+ "field_desc_en": "The address or custom icon of the picture in the QR code",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:03:01",
+ "update_time": "2025-05-29 13:03:01",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "String",
+ "TNode"
+ ]
+ },
+ {
+ "id": 1748523969,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "iconSize",
+ "field_type": [
+ "2",
+ "8"
+ ],
+ "field_default_value": "40",
+ "field_enum": "",
+ "field_desc_zh": "二维码中图片的大小",
+ "field_desc_en": "The size of the picture in the QR code",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:06:09",
+ "update_time": "2025-05-29 13:06:09",
+ "event_output": null,
+ "custom_field_type": "number | { width: number; height: number }",
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "Number",
+ "Object"
+ ]
+ },
+ {
+ "id": 1748524385,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "level",
+ "field_type": [
+ "1"
+ ],
+ "field_default_value": "M",
+ "field_enum": "L/M/Q/H",
+ "field_desc_zh": "二维码纠错等级",
+ "field_desc_en": "QR code error correction level",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:13:05",
+ "update_time": "2025-05-29 13:13:05",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "String"
+ ]
+ },
+ {
+ "id": 1748523868,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "size",
+ "field_type": [
+ "2"
+ ],
+ "field_default_value": "160",
+ "field_enum": "",
+ "field_desc_zh": "二维码大小",
+ "field_desc_en": "QR code size",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:04:28",
+ "update_time": "2025-05-29 13:04:28",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "Number"
+ ]
+ },
+ {
+ "id": 1748524526,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "status",
+ "field_type": [
+ "1"
+ ],
+ "field_default_value": "active",
+ "field_enum": "active/expired/loading/scanned",
+ "field_desc_zh": "二维码状态",
+ "field_desc_en": "QR code status",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:15:26",
+ "update_time": "2025-05-29 13:15:26",
+ "event_output": null,
+ "custom_field_type": "QRStatus【type QRStatus = \"active\" | \"expired\" | \"loading\" | \"scanned\"】",
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "String"
+ ]
+ },
+ {
+ "id": 1748524815,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "statusRender",
+ "field_type": [
+ "64"
+ ],
+ "field_default_value": "",
+ "field_enum": "",
+ "field_desc_zh": "自定义状态渲染器",
+ "field_desc_en": "Custom state renderer",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:20:15",
+ "update_time": "2025-05-29 13:20:15",
+ "event_output": null,
+ "custom_field_type": "(info:StatusRenderInfo) => TNode【type StatusRenderInfo = {status:QRStatus;locale:string;onRefresh?: () => void;}】",
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "TNode"
+ ]
+ },
+ {
+ "id": 1748523474,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "type",
+ "field_type": [
+ "1"
+ ],
+ "field_default_value": "canvas",
+ "field_enum": "canvas/svg",
+ "field_desc_zh": "渲染类型",
+ "field_desc_en": "render type",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 12:57:54",
+ "update_time": "2025-05-29 12:57:54",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)"
+ ],
+ "field_type_text": [
+ "String"
+ ]
+ },
+ {
+ "id": 1748523228,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 1,
+ "field_name": "value",
+ "field_type": [
+ "1"
+ ],
+ "field_default_value": "",
+ "field_enum": "",
+ "field_desc_zh": "扫描后的文本",
+ "field_desc_en": "scanned text",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 12:53:48",
+ "update_time": "2025-05-29 12:53:48",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Props",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "String"
+ ]
+ },
+ {
+ "id": 1748524684,
+ "platform_framework": [
+ "1",
+ "2",
+ "8",
+ "16",
+ "64"
+ ],
+ "component": "QrCode",
+ "field_category": 2,
+ "field_name": "refresh",
+ "field_type": [
+ "32"
+ ],
+ "field_default_value": "",
+ "field_enum": "",
+ "field_desc_zh": "点击\"点击刷新\"的回调",
+ "field_desc_en": "Click the \"Click to refresh\" callback",
+ "field_required": 0,
+ "event_input": "",
+ "create_time": "2025-05-29 13:18:04",
+ "update_time": "2025-05-29 13:18:04",
+ "event_output": null,
+ "custom_field_type": null,
+ "syntactic_sugar": null,
+ "readonly": 1,
+ "html_attribute": 0,
+ "trigger_elements": "",
+ "deprecated": 0,
+ "version": "",
+ "test_description": null,
+ "support_default_value": 0,
+ "field_category_text": "Events",
+ "platform_framework_text": [
+ "Vue(PC)",
+ "React(PC)",
+ "Vue(Mobile)",
+ "React(Mobile)",
+ "Miniprogram"
+ ],
+ "field_type_text": [
+ "Function"
+ ]
+ },
{
"id": 1419,
"platform_framework": [
diff --git a/packages/scripts/map.json b/packages/scripts/map.json
index f18016f7..35a970e4 100644
--- a/packages/scripts/map.json
+++ b/packages/scripts/map.json
@@ -794,6 +794,10 @@
"value": "Progress",
"label": "进度条"
},
+ {
+ "value": "QrCode",
+ "label": "二维码"
+ },
{
"value": "Radio",
"label": "单选框"
diff --git a/packages/server/controllers/ComponentApi/const.ts b/packages/server/controllers/ComponentApi/const.ts
index 74ddc423..d164452e 100644
--- a/packages/server/controllers/ComponentApi/const.ts
+++ b/packages/server/controllers/ComponentApi/const.ts
@@ -350,6 +350,7 @@ export const COMPONENTS_PC: Array = [
{ value: 'WatermarkImage', label: '水印图片配置', type: 'TS' },
{ value: 'TypographyConfig', label: '排版全局配置', type: 'TS' },
{ value: 'AutoCompleteConfig', label: '自动填充全局配置', type: 'TS' },
+ { value: 'QrCode', label: '二维码' },
].sort((a, b) => a.value.localeCompare(b.value));
export const COMPONENTS_MOBILE: Array = [
@@ -434,6 +435,7 @@ export const COMPONENTS_MOBILE: Array = [
{ value: 'ToastOptions', label: '轻提示插件参数', type: 'TS' },
{ value: 'Transition', label: '动画' },
{ value: 'Upload', label: '上传' },
+ { value: 'QrCode', label: '二维码' },
];
export default {