From 14b3ff362956bb058fc0a57b749d1162a873b794 Mon Sep 17 00:00:00 2001 From: anlyyao Date: Mon, 2 Sep 2024 20:55:42 +0800 Subject: [PATCH] fix(Icon): support input required type --- db/TDesign.db | Bin 1003520 -> 1003520 bytes .../tdesign-miniprogram/src/icon/props.ts | 31 ++++++++ .../tdesign-miniprogram/src/icon/type.ts | 40 ++++++++++ packages/scripts/api.json | 74 ------------------ packages/scripts/config/files-combine.js | 4 +- packages/scripts/types/index.js | 2 +- packages/scripts/types/miniprogram.js | 6 +- 7 files changed, 79 insertions(+), 78 deletions(-) create mode 100644 packages/products/tdesign-miniprogram/src/icon/props.ts create mode 100644 packages/products/tdesign-miniprogram/src/icon/type.ts diff --git a/db/TDesign.db b/db/TDesign.db index f0be8ace4029ebd7db13a7a93372fd502d03da38..c00fd8452c0a753951386f4962110ceaf8665e3d 100644 GIT binary patch delta 634 zcmW-eK}Zx)7{}jx^JeGGn;F*@6<4DSGcw2=4_U$H9t>9!DT!JusWl5KL@nEHrUfe$ zgw7m34+&OKx2;&{rH9N*P+d$#g+)kL$xLO00->Ou9)7p~|Nn#U>mCYq4~6;)trSA& zw`4^^`uA6=DO47J_@-s>5Vay`F{PF_V7Jk}NBA>%dL4(LwaYZ2{3gzZ^s<`guBEk9 zeZ?f#U%91nBI&fb2SU4O)&}xDs0)d@5PsLdPtjTA-}HO_WysFPrJ}MA@5J!02v>;S zetZ&(aR-N0!j>U0fTyX>5bIqXz!D-+BvhhGd}4J#%df;yp^j_ASbX@Z1+kc!(B>7Q zF<F>ZyTb-JH=ROqetJX1*_g;>h?6rl%L|L9{=lsrN^8uE z(pROX)i^)m?=U7UzuypcyIM>{Y=LJmDGI`+^DI}dLd^IZZg$$iZeqc0krHzme9Q0x z$Sm?2Y9vt|lr8ayC~IOiR+`6ryl1w>kJW1tmzrg$&4?@#APbyd3QW%TMGo3icYFUrr?veR}Te3X3-@rN& Y9#42i!ZY7`mNukfSx*SFFYDLne@4sG+yDRo delta 1123 zcmZ`%TWAzl7@jj1=ggUz-H@A`D4JqJ8>w+;W^-|1>!3oEYH*{ps6;c#t~ACZ+nB6< zGHHuz!I!x6@aI7xLGW=U2tBpXN?wHaK{SeK5ijHd(I&dKrnR(!XVzQ0QihKiKIZ$* z_xXs>&3uhZtj8TIh^-YZ*6py$Ud`QZI9CJQS@yKiHSdR!KcAo za2|?^Pz`MuMk^6~GR8;f@l)s{L?<)oLy1=~6px^rqAc+IiG>lw;J*b1kwIcuMi)lp zPy^aSrK|Eq#LJlea80g2^p{EbuE47te0NiBe&L`^$tScaOtmTHX$Y5aDNg-Kb%ErR zHJ(}3L{mBCM}n%U^S3f_Lsa*0#mtnXd2nY*g61Yksotmy{anD&Z|eivIcQ0jx#2>GK1AB3qwvof?KhDn1j;=%>j6EW?A*h zt~0{xEThUW>^udrL8S!tx8P-h>tVPzLn>irmNbc^QMd!Ob7U)2%@VSz&JNcV$bBks zmb=cQ_rRDV<-xz4&7USZy4rg`Z|dtENCKKAHE?yBh%hltN`$y4Lh?STl>c-#yGJ@) zXqzV=tcci#QDE#-UkIK6kEcl``Gfs^IMEY#Up2Apy22`3$s>utmOZvdZyor6m0i|sj-IqHwR99kC0_ad9*K?pt~A*{|jTRKynafr3z zwX4mDT~{!KJeA1wvjnU2djy$9k`>xApTWIFwvDY1Nfw+tWGS5^>71I*Y2V~@c~s)` NXZj|p4F{fFdJZ%nRpbBw diff --git a/packages/products/tdesign-miniprogram/src/icon/props.ts b/packages/products/tdesign-miniprogram/src/icon/props.ts new file mode 100644 index 000000000..21856b05e --- /dev/null +++ b/packages/products/tdesign-miniprogram/src/icon/props.ts @@ -0,0 +1,31 @@ +/* eslint-disable */ + +/** + * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC + * */ + +import { TdIconProps } from './type'; +const props: TdIconProps = { + /** 图标颜色 */ + color: { + type: String, + value: '', + }, + /** 图标名称或图片链接 */ + name: { + type: String, + value: '', + required: true, + }, + /** 自定义图标前缀 */ + prefix: { + type: String, + value: '', + }, + /** 图标大小, 如 `20`, `20px`, `48rpx`, 默认单位是 `px` */ + size: { + type: null, + }, +}; + +export default props; diff --git a/packages/products/tdesign-miniprogram/src/icon/type.ts b/packages/products/tdesign-miniprogram/src/icon/type.ts new file mode 100644 index 000000000..6f6f957c5 --- /dev/null +++ b/packages/products/tdesign-miniprogram/src/icon/type.ts @@ -0,0 +1,40 @@ +/* eslint-disable */ + +/** + * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC + * */ + +export interface TdIconProps { + /** + * 图标颜色 + * @default '' + */ + color?: { + type: StringConstructor; + value?: string; + }; + /** + * 图标名称或图片链接 + * @default '' + */ + name: { + type: StringConstructor; + value?: string; + required?: boolean; + }; + /** + * 自定义图标前缀 + * @default '' + */ + prefix?: { + type: StringConstructor; + value?: string; + }; + /** + * 图标大小, 如 `20`, `20px`, `48rpx`, 默认单位是 `px` + */ + size?: { + type: null; + value?: string | number; + }; +} diff --git a/packages/scripts/api.json b/packages/scripts/api.json index 26b0a95b2..021921798 100644 --- a/packages/scripts/api.json +++ b/packages/scripts/api.json @@ -58362,43 +58362,6 @@ "String" ] }, - { - "id": 1706, - "platform_framework": [ - "64" - ], - "component": "Icon", - "field_category": 1, - "field_name": "customStyle", - "field_type": [ - "1" - ], - "field_default_value": "", - "field_enum": "", - "field_desc_zh": "自定义组件样式", - "field_desc_en": null, - "field_required": 0, - "event_input": "", - "create_time": "2021-09-21 08:22:33", - "update_time": "2021-09-21 08:22:33", - "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": [ - "Miniprogram" - ], - "field_type_text": [ - "String" - ] - }, { "id": 1688, "platform_framework": [ @@ -58512,43 +58475,6 @@ "Number" ] }, - { - "id": 3044, - "platform_framework": [ - "64" - ], - "component": "Icon", - "field_category": 1, - "field_name": "style", - "field_type": [ - "1" - ], - "field_default_value": "", - "field_enum": "", - "field_desc_zh": "自定义组件样式", - "field_desc_en": null, - "field_required": 0, - "event_input": "", - "create_time": "2022-10-31 11:19:10", - "update_time": "2022-10-31 11:19:10", - "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": [ - "Miniprogram" - ], - "field_type_text": [ - "String" - ] - }, { "id": 3366, "platform_framework": [ diff --git a/packages/scripts/config/files-combine.js b/packages/scripts/config/files-combine.js index 4839498d9..e31c79649 100644 --- a/packages/scripts/config/files-combine.js +++ b/packages/scripts/config/files-combine.js @@ -122,7 +122,7 @@ const COMPONENT_API_MD_MAP = { includes: ['Vue(PC)', 'VueNext(PC)', 'React(PC)', 'Angular(PC)'], }, ], - Icon: ['IconSVG', 'Iconfont'], + Icon: ['Icon', 'IconSVG', 'Iconfont'], Select: ['Select', 'Option', 'OptionGroup', 'TScroll'], Tag: ['Tag', 'CheckTag', 'CheckTagGroup'], Collapse: ['Collapse', 'CollapsePanel'], @@ -369,7 +369,7 @@ const TYPES_COMBINE_MAP = { list: TABLE_LIST, }, Icon: { - list: ['Iconfont', 'IconSVG'], + list: ['Icon', 'Iconfont', 'IconSVG'], }, Anchor: { list: ['AnchorTarget', 'AnchorItem'], diff --git a/packages/scripts/types/index.js b/packages/scripts/types/index.js index 9a8a405e7..d8c7ed58f 100644 --- a/packages/scripts/types/index.js +++ b/packages/scripts/types/index.js @@ -518,7 +518,7 @@ function getTypeScriptDesc(componentMap, framework) { const rType = framework === 'Miniprogram' && !COMPONENTS_MAP[api.component].type - ? getMiniprogramType(api.field_type_text, type) + ? getMiniprogramType(api.field_type_text, type, api.field_required) : type; const apiContext = [ formatComment(comment, plugin), diff --git a/packages/scripts/types/miniprogram.js b/packages/scripts/types/miniprogram.js index 960ca87b1..e5d7301d5 100644 --- a/packages/scripts/types/miniprogram.js +++ b/packages/scripts/types/miniprogram.js @@ -2,7 +2,7 @@ const shell = require('shelljs'); const { camelCase } = require('lodash'); // 小程序的 props 类型定义特殊 -function getMiniprogramType(type, tsType) { +function getMiniprogramType(type, tsType, required) { const MP_PROP_TYPES = { string: 'StringConstructor', number: 'NumberConstructor', @@ -18,9 +18,13 @@ function getMiniprogramType(type, tsType) { } }); const valueStr = ['function', 'Function'].includes(tsType) ? 'null' : tsType; + + const isRequired = required ? `required?: boolean;` : ''; + return `{ ${`type: ${types.length > 1 ? 'null' : types[0]};`} value?: ${valueStr}; + ${isRequired} }`; }