foucui 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +8 -8
  2. package/README.publish.md +19 -0
  3. package/dist/components/{QiuAnchor → FouAnchor}/context.d.ts +4 -4
  4. package/dist/components/{QiuBadge → FouBadge}/composables/useTableHostHeight.d.ts +1 -1
  5. package/dist/components/FouBadge/index.d.ts +18 -0
  6. package/dist/components/{QiuBadge → FouBadge}/shared/BadgeTemplateRenderer.vue.d.ts +1 -1
  7. package/dist/components/{QiuBadge → FouBadge}/shared/badgeTemplate.d.ts +1 -1
  8. package/dist/components/{QiuButton → FouButton}/index.vue.d.ts +4 -4
  9. package/dist/components/{QiuCanvasKit/QiuCanvasEditor.vue.d.ts → FouCanvasKit/FouCanvasEditor.vue.d.ts} +4 -2
  10. package/dist/components/{QiuCanvasKit → FouCanvasKit}/components/DataModulesPanel.vue.d.ts +1 -0
  11. package/dist/components/{QiuCanvasKit → FouCanvasKit}/index.d.ts +4 -4
  12. package/dist/components/{QiuCanvasKit → FouCanvasKit}/types.d.ts +1 -1
  13. package/dist/components/{QiuCarousel → FouCarousel}/context.d.ts +4 -4
  14. package/dist/components/{QiuCascader → FouCascader}/types.d.ts +7 -7
  15. package/dist/components/{QiuCheckbox → FouCheckbox}/types.d.ts +1 -1
  16. package/dist/components/{QiuCollapse → FouCollapse}/context.d.ts +2 -2
  17. package/dist/components/{QiuDescriptions → FouDescriptions}/context.d.ts +4 -4
  18. package/dist/components/{QiuDropdown → FouDropdown}/context.d.ts +2 -2
  19. package/dist/components/{QiuForm → FouForm}/types.d.ts +10 -10
  20. package/dist/components/FouLoading/index.d.ts +26 -0
  21. package/dist/components/{QiuLoading → FouLoading}/spinner.vue.d.ts +3 -3
  22. package/dist/components/{QiuLoading → FouLoading}/types.d.ts +2 -2
  23. package/dist/components/{QiuMenu → FouMenu}/context.d.ts +2 -2
  24. package/dist/components/{QiuMenuNav → FouMenuNav}/context.d.ts +2 -2
  25. package/dist/components/{QiuMsg/QiuMsgItem.vue.d.ts → FouMsg/FouMsgItem.vue.d.ts} +3 -3
  26. package/dist/components/FouMsg/index.d.ts +30 -0
  27. package/dist/components/{QiuMsg → FouMsg}/types.d.ts +5 -5
  28. package/dist/components/{QiuMsgBox → FouMsgBox}/index.d.ts +3 -3
  29. package/dist/components/{QiuNotification/QiuNotificationItem.vue.d.ts → FouNotification/FouNotificationItem.vue.d.ts} +3 -3
  30. package/dist/components/FouNotification/index.d.ts +30 -0
  31. package/dist/components/FouNotification/types.d.ts +12 -0
  32. package/dist/components/{QiuRadio → FouRadio}/types.d.ts +1 -1
  33. package/dist/components/FouRow/types.d.ts +4 -0
  34. package/dist/components/{QiuSelect → FouSelect}/index.vue.d.ts +3 -3
  35. package/dist/components/{QiuSelect → FouSelect}/types.d.ts +3 -3
  36. package/dist/components/{QiuStep → FouStep}/index.vue.d.ts +1 -1
  37. package/dist/components/{QiuSteps → FouSteps}/context.d.ts +5 -5
  38. package/dist/components/{QiuTabBar → FouTabBar}/index.vue.d.ts +3 -3
  39. package/dist/components/{QiuTabBar → FouTabBar}/types.d.ts +5 -5
  40. package/dist/components/{QiuTable → FouTable}/export.d.ts +5 -5
  41. package/dist/components/FouTable/index.d.ts +3 -0
  42. package/dist/components/{QiuTable → FouTable}/index.vue.d.ts +60 -60
  43. package/dist/components/FouTable/registry.d.ts +39 -0
  44. package/dist/components/{QiuTable → FouTable}/types.d.ts +60 -60
  45. package/dist/components/{QiuTable → FouTable}/useArea.d.ts +10 -10
  46. package/dist/components/{QiuTable → FouTable}/useColumns.d.ts +5 -5
  47. package/dist/components/FouTable/useEdit.d.ts +36 -0
  48. package/dist/components/{QiuTable → FouTable}/useHistory.d.ts +5 -5
  49. package/dist/components/{QiuTable → FouTable}/useMerge.d.ts +6 -6
  50. package/dist/components/{QiuTable → FouTable}/useScrollSync.d.ts +1 -1
  51. package/dist/components/{QiuTable → FouTable}/utils.d.ts +17 -17
  52. package/dist/components/FouTree/types.d.ts +13 -0
  53. package/dist/components/{QiuUpload → FouUpload}/index.vue.d.ts +17 -17
  54. package/dist/foucui.css +1 -1
  55. package/dist/foucui.js +10749 -10646
  56. package/dist/foucui.umd.cjs +40 -40
  57. package/dist/index.d.ts +43 -43
  58. package/dist/src/bridge/@/config/index.d.ts +1 -1
  59. package/dist/src/bridge/@fou/plugins/shortcuts.d.ts +2 -0
  60. package/package.json +27 -15
  61. package/components/QiuAffix/index.vue +0 -186
  62. package/components/QiuAlert/index.vue +0 -208
  63. package/components/QiuAnchor/context.ts +0 -18
  64. package/components/QiuAnchor/index.vue +0 -180
  65. package/components/QiuAnchorLink/index.vue +0 -67
  66. package/components/QiuApp/index.vue +0 -9
  67. package/components/QiuAutocomplete/index.vue +0 -408
  68. package/components/QiuAvatar/index.vue +0 -140
  69. package/components/QiuBacktop/index.vue +0 -121
  70. package/components/QiuBadge/api/index.ts +0 -389
  71. package/components/QiuBadge/components/BadgeImagePickerDialog.vue +0 -243
  72. package/components/QiuBadge/components/BadgeLibraryManagerDialog.vue +0 -30
  73. package/components/QiuBadge/components/BadgeLibraryPanel.vue +0 -182
  74. package/components/QiuBadge/composables/useTableHostHeight.ts +0 -53
  75. package/components/QiuBadge/index.ts +0 -18
  76. package/components/QiuBadge/shared/BadgeTemplateRenderer.vue +0 -32
  77. package/components/QiuBadge/shared/assetUrl.ts +0 -26
  78. package/components/QiuBadge/shared/badgeTemplate.ts +0 -309
  79. package/components/QiuBadge/utils/chinaAreaData.ts +0 -44
  80. package/components/QiuBadge/utils/hostRegion.ts +0 -22
  81. package/components/QiuBadge/utils/pca-code.json +0 -1
  82. package/components/QiuBadge/utils/pdfFromElement.ts +0 -348
  83. package/components/QiuBadge/views/BadgeLibraryView.vue +0 -32
  84. package/components/QiuBadge/views/BadgeManageView.vue +0 -1364
  85. package/components/QiuBadge/views/BadgeTemplateEditorView.vue +0 -10
  86. package/components/QiuBadge/views/BadgeTemplateListView.vue +0 -229
  87. package/components/QiuBadge/views/DeskLabelTemplateListView.vue +0 -227
  88. package/components/QiuBadge/views/DeskLabelView.vue +0 -683
  89. package/components/QiuBadgeDot/index.vue +0 -87
  90. package/components/QiuButton/index.vue +0 -247
  91. package/components/QiuButtonGroup/index.vue +0 -63
  92. package/components/QiuCanvasKit/QiuCanvasEditor.vue +0 -5503
  93. package/components/QiuCanvasKit/QiuCanvasRenderer.vue +0 -348
  94. package/components/QiuCanvasKit/assetUrl.ts +0 -11
  95. package/components/QiuCanvasKit/components/DataModulesPanel.vue +0 -352
  96. package/components/QiuCanvasKit/export/html.ts +0 -132
  97. package/components/QiuCanvasKit/export/pdf.ts +0 -48
  98. package/components/QiuCanvasKit/export/png.ts +0 -50
  99. package/components/QiuCanvasKit/index.ts +0 -20
  100. package/components/QiuCanvasKit/modules/badgeCompat.ts +0 -84
  101. package/components/QiuCanvasKit/modules/dataRegistry.ts +0 -207
  102. package/components/QiuCanvasKit/modules/merge.ts +0 -71
  103. package/components/QiuCanvasKit/presets/badge.ts +0 -67
  104. package/components/QiuCanvasKit/presets/banner.ts +0 -79
  105. package/components/QiuCanvasKit/types.ts +0 -138
  106. package/components/QiuCard/index.vue +0 -104
  107. package/components/QiuCarousel/context.ts +0 -16
  108. package/components/QiuCarousel/index.vue +0 -343
  109. package/components/QiuCarouselItem/index.vue +0 -47
  110. package/components/QiuCascader/index.vue +0 -879
  111. package/components/QiuCascader/types.ts +0 -48
  112. package/components/QiuCheckbox/QiuCheckboxGroup.vue +0 -78
  113. package/components/QiuCheckbox/index.vue +0 -231
  114. package/components/QiuCheckbox/types.ts +0 -8
  115. package/components/QiuCode/index.vue +0 -64
  116. package/components/QiuCol/col.scss +0 -55
  117. package/components/QiuCol/index.vue +0 -64
  118. package/components/QiuCollapse/context.ts +0 -10
  119. package/components/QiuCollapse/index.vue +0 -70
  120. package/components/QiuCollapseItem/index.vue +0 -167
  121. package/components/QiuColorField/index.vue +0 -296
  122. package/components/QiuColorPicker/README.md +0 -118
  123. package/components/QiuColorPicker/index.vue +0 -60
  124. package/components/QiuColorfulCard/index.vue +0 -101
  125. package/components/QiuCombobox/index.vue +0 -277
  126. package/components/QiuConfigProvider/index.vue +0 -31
  127. package/components/QiuContextMenu/index.vue +0 -209
  128. package/components/QiuDate/index.vue +0 -1134
  129. package/components/QiuDescriptions/context.ts +0 -20
  130. package/components/QiuDescriptions/index.vue +0 -115
  131. package/components/QiuDescriptionsItem/index.vue +0 -103
  132. package/components/QiuDialog/index.vue +0 -828
  133. package/components/QiuDigitalCard/index.vue +0 -159
  134. package/components/QiuDivider/index.vue +0 -185
  135. package/components/QiuDot/index.vue +0 -83
  136. package/components/QiuDrawer/index.vue +0 -350
  137. package/components/QiuDropdown/QiuDropdownItem.vue +0 -74
  138. package/components/QiuDropdown/QiuDropdownMenu.vue +0 -22
  139. package/components/QiuDropdown/context.ts +0 -9
  140. package/components/QiuDropdown/index.vue +0 -189
  141. package/components/QiuEmpty/index.vue +0 -73
  142. package/components/QiuForm/index.vue +0 -172
  143. package/components/QiuForm/types.ts +0 -39
  144. package/components/QiuFormItem/index.vue +0 -276
  145. package/components/QiuFullscreen/index.vue +0 -11
  146. package/components/QiuGrid/index.vue +0 -408
  147. package/components/QiuHoverCard/index.vue +0 -192
  148. package/components/QiuIcon/index.vue +0 -117
  149. package/components/QiuIconPicker/iconify.libraries.ts +0 -182
  150. package/components/QiuIconPicker/icons.catalog.ts +0 -3072
  151. package/components/QiuIconPicker/index.vue +0 -488
  152. package/components/QiuImage/index.vue +0 -177
  153. package/components/QiuInput/index.vue +0 -328
  154. package/components/QiuInputNumber/index.vue +0 -295
  155. package/components/QiuInputOtp/index.vue +0 -190
  156. package/components/QiuKbd/index.vue +0 -57
  157. package/components/QiuLayoutContainer/index.vue +0 -50
  158. package/components/QiuLinkPreview/index.vue +0 -224
  159. package/components/QiuLoading/index.ts +0 -176
  160. package/components/QiuLoading/spinner.vue +0 -820
  161. package/components/QiuLoading/types.ts +0 -44
  162. package/components/QiuMention/index.vue +0 -299
  163. package/components/QiuMenu/QiuMenuRoot.vue +0 -241
  164. package/components/QiuMenu/components/QiuMenuItem.vue +0 -340
  165. package/components/QiuMenu/components/QiuSubMenu.vue +0 -504
  166. package/components/QiuMenu/context.ts +0 -21
  167. package/components/QiuMenu/index.vue +0 -43
  168. package/components/QiuMenuNav/QiuMenuNavItem.vue +0 -100
  169. package/components/QiuMenuNav/QiuMenuNavSub.vue +0 -120
  170. package/components/QiuMenuNav/context.ts +0 -14
  171. package/components/QiuMenuNav/index.vue +0 -148
  172. package/components/QiuMsg/QiuMsgItem.vue +0 -180
  173. package/components/QiuMsg/index.ts +0 -158
  174. package/components/QiuMsg/types.ts +0 -23
  175. package/components/QiuMsgBox/index.ts +0 -147
  176. package/components/QiuNotification/QiuNotificationItem.vue +0 -168
  177. package/components/QiuNotification/index.ts +0 -155
  178. package/components/QiuNotification/types.ts +0 -14
  179. package/components/QiuPage/index.vue +0 -12
  180. package/components/QiuPageHeader/index.vue +0 -115
  181. package/components/QiuPageMain/index.vue +0 -78
  182. package/components/QiuPagination/index.vue +0 -421
  183. package/components/QiuPasswordStrength/index.vue +0 -101
  184. package/components/QiuPopconfirm/index.vue +0 -196
  185. package/components/QiuPopover/index.vue +0 -277
  186. package/components/QiuProgress/index.vue +0 -235
  187. package/components/QiuQrcode/index.vue +0 -302
  188. package/components/QiuQueryForm/components/QiuQueryFormBottomPanel.vue +0 -13
  189. package/components/QiuQueryForm/components/QiuQueryFormLeftPanel.vue +0 -37
  190. package/components/QiuQueryForm/components/QiuQueryFormRightPanel.vue +0 -37
  191. package/components/QiuQueryForm/components/QiuQueryFormTopPanel.vue +0 -13
  192. package/components/QiuQueryForm/index.vue +0 -117
  193. package/components/QiuRadio/QiuRadioGroup.vue +0 -75
  194. package/components/QiuRadio/index.vue +0 -191
  195. package/components/QiuRadio/types.ts +0 -9
  196. package/components/QiuRate/index.vue +0 -184
  197. package/components/QiuRefresh/index.vue +0 -32
  198. package/components/QiuResult/index.vue +0 -103
  199. package/components/QiuRow/index.vue +0 -60
  200. package/components/QiuRow/types.ts +0 -5
  201. package/components/QiuScrollbar/index.vue +0 -107
  202. package/components/QiuSearchBar/index.vue +0 -154
  203. package/components/QiuSegmented/index.vue +0 -120
  204. package/components/QiuSelect/QiuOption.vue +0 -93
  205. package/components/QiuSelect/index.vue +0 -452
  206. package/components/QiuSelect/types.ts +0 -15
  207. package/components/QiuSkeleton/index.vue +0 -78
  208. package/components/QiuSlider/index.vue +0 -266
  209. package/components/QiuSpace/index.vue +0 -95
  210. package/components/QiuSparkline/index.vue +0 -92
  211. package/components/QiuStatistic/index.vue +0 -4
  212. package/components/QiuStatistics/index.vue +0 -123
  213. package/components/QiuStep/index.vue +0 -220
  214. package/components/QiuSteps/context.ts +0 -25
  215. package/components/QiuSteps/index.vue +0 -84
  216. package/components/QiuSwitch/index.vue +0 -145
  217. package/components/QiuTabBar/index.vue +0 -218
  218. package/components/QiuTabBar/types.ts +0 -19
  219. package/components/QiuTabPane/index.vue +0 -82
  220. package/components/QiuTable/columns.ts +0 -16
  221. package/components/QiuTable/export.ts +0 -102
  222. package/components/QiuTable/index.ts +0 -24
  223. package/components/QiuTable/index.vue +0 -3503
  224. package/components/QiuTable/registry.ts +0 -75
  225. package/components/QiuTable/styles/table.scss +0 -1230
  226. package/components/QiuTable/types.ts +0 -413
  227. package/components/QiuTable/useArea.ts +0 -202
  228. package/components/QiuTable/useColumns.ts +0 -325
  229. package/components/QiuTable/useEdit.ts +0 -136
  230. package/components/QiuTable/useExtras.ts +0 -115
  231. package/components/QiuTable/useHistory.ts +0 -77
  232. package/components/QiuTable/useMerge.ts +0 -105
  233. package/components/QiuTable/useResize.ts +0 -86
  234. package/components/QiuTable/useScrollSync.ts +0 -152
  235. package/components/QiuTable/useVirtual.ts +0 -97
  236. package/components/QiuTable/utils.ts +0 -165
  237. package/components/QiuTableColumn/index.vue +0 -101
  238. package/components/QiuTag/index.vue +0 -143
  239. package/components/QiuText/index.vue +0 -99
  240. package/components/QiuTime/index.vue +0 -548
  241. package/components/QiuTimeAgo/index.vue +0 -103
  242. package/components/QiuTimeline/index.vue +0 -54
  243. package/components/QiuTimelineItem/index.vue +0 -140
  244. package/components/QiuTips/index.vue +0 -323
  245. package/components/QiuTooltip/index.vue +0 -237
  246. package/components/QiuTransfer/index.vue +0 -277
  247. package/components/QiuTree/QiuTreeNode.vue +0 -146
  248. package/components/QiuTree/index.vue +0 -143
  249. package/components/QiuTree/types.ts +0 -30
  250. package/components/QiuTreeSelect/index.vue +0 -259
  251. package/components/QiuTrend/index.vue +0 -92
  252. package/components/QiuUpload/index.vue +0 -628
  253. package/components/QiuUploadCrop/index.vue +0 -1267
  254. package/components/QiuWatermark/index.vue +0 -121
  255. package/components/useBodyScrollLock.ts +0 -28
  256. package/dist/components/QiuBadge/index.d.ts +0 -18
  257. package/dist/components/QiuBadge/utils/pca-code.json.d.ts +0 -3
  258. package/dist/components/QiuLoading/index.d.ts +0 -26
  259. package/dist/components/QiuMsg/index.d.ts +0 -30
  260. package/dist/components/QiuNotification/index.d.ts +0 -30
  261. package/dist/components/QiuNotification/types.d.ts +0 -12
  262. package/dist/components/QiuRow/types.d.ts +0 -4
  263. package/dist/components/QiuTable/index.d.ts +0 -3
  264. package/dist/components/QiuTable/registry.d.ts +0 -39
  265. package/dist/components/QiuTable/useEdit.d.ts +0 -36
  266. package/dist/components/QiuTree/types.d.ts +0 -13
  267. package/dist/src/bridge/@qiu/plugins/shortcuts.d.ts +0 -2
  268. package/plugins/qiu.ts +0 -83
  269. package/plugins/shortcuts.ts +0 -69
  270. package/src/bridge/@/api/media.ts +0 -8
  271. package/src/bridge/@/api/notice.ts +0 -5
  272. package/src/bridge/@/config/index.ts +0 -38
  273. package/src/bridge/@/config/media.config.ts +0 -37
  274. package/src/bridge/@/config/security.config.ts +0 -8
  275. package/src/bridge/@/i18n/index.ts +0 -6
  276. package/src/bridge/@/store/modules/bing.ts +0 -9
  277. package/src/bridge/@/store/modules/errorLog.ts +0 -9
  278. package/src/bridge/@/store/modules/media.ts +0 -10
  279. package/src/bridge/@/store/modules/routes.ts +0 -10
  280. package/src/bridge/@/store/modules/settings.ts +0 -9
  281. package/src/bridge/@/store/modules/tabs.ts +0 -9
  282. package/src/bridge/@/store/modules/user.ts +0 -9
  283. package/src/bridge/@/utils/convertToCamelCase.ts +0 -11
  284. package/src/bridge/@/utils/index.ts +0 -9
  285. package/src/bridge/@/utils/pageTitle.ts +0 -4
  286. package/src/bridge/@/utils/routes.ts +0 -14
  287. package/src/bridge/@/utils/validate.ts +0 -17
  288. package/src/bridge/@qiu/plugins/shortcuts.ts +0 -3
  289. package/src/i18n.ts +0 -8
  290. package/src/icons/qiu-logo.svg +0 -1
  291. package/styles/dark.scss +0 -194
  292. package/styles/normalize.css +0 -349
  293. package/styles/plain.scss +0 -423
  294. package/styles/qiu-tokens.scss +0 -40
  295. package/styles/qiu.scss +0 -1149
  296. package/styles/technology.scss +0 -452
  297. package/styles/var.scss +0 -382
  298. package/styles/variables.scss +0 -77
  299. /package/dist/components/{QiuAnchorLink → FouAnchorLink}/index.vue.d.ts +0 -0
  300. /package/dist/components/{QiuBadge → FouBadge}/api/index.d.ts +0 -0
  301. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeImagePickerDialog.vue.d.ts +0 -0
  302. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeLibraryManagerDialog.vue.d.ts +0 -0
  303. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeLibraryPanel.vue.d.ts +0 -0
  304. /package/dist/components/{QiuBadge → FouBadge}/shared/assetUrl.d.ts +0 -0
  305. /package/dist/components/{QiuBadge → FouBadge}/utils/chinaAreaData.d.ts +0 -0
  306. /package/dist/components/{QiuBadge → FouBadge}/utils/hostRegion.d.ts +0 -0
  307. /package/dist/components/{QiuBadge → FouBadge}/utils/pdfFromElement.d.ts +0 -0
  308. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeLibraryView.vue.d.ts +0 -0
  309. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeManageView.vue.d.ts +0 -0
  310. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeTemplateListView.vue.d.ts +0 -0
  311. /package/dist/components/{QiuBadge → FouBadge}/views/DeskLabelTemplateListView.vue.d.ts +0 -0
  312. /package/dist/components/{QiuBadge → FouBadge}/views/DeskLabelView.vue.d.ts +0 -0
  313. /package/dist/components/{QiuCanvasKit/QiuCanvasRenderer.vue.d.ts → FouCanvasKit/FouCanvasRenderer.vue.d.ts} +0 -0
  314. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/assetUrl.d.ts +0 -0
  315. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/html.d.ts +0 -0
  316. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/pdf.d.ts +0 -0
  317. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/png.d.ts +0 -0
  318. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/badgeCompat.d.ts +0 -0
  319. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/dataRegistry.d.ts +0 -0
  320. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/merge.d.ts +0 -0
  321. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/presets/badge.d.ts +0 -0
  322. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/presets/banner.d.ts +0 -0
  323. /package/dist/components/{QiuCarouselItem → FouCarouselItem}/index.vue.d.ts +0 -0
  324. /package/dist/components/{QiuCheckbox/QiuCheckboxGroup.vue.d.ts → FouCheckbox/FouCheckboxGroup.vue.d.ts} +0 -0
  325. /package/dist/components/{QiuCheckbox → FouCheckbox}/index.vue.d.ts +0 -0
  326. /package/dist/components/{QiuCode → FouCode}/index.vue.d.ts +0 -0
  327. /package/dist/components/{QiuCollapseItem → FouCollapseItem}/index.vue.d.ts +0 -0
  328. /package/dist/components/{QiuColorField → FouColorField}/index.vue.d.ts +0 -0
  329. /package/dist/components/{QiuColorPicker → FouColorPicker}/index.vue.d.ts +0 -0
  330. /package/dist/components/{QiuCombobox → FouCombobox}/index.vue.d.ts +0 -0
  331. /package/dist/components/{QiuContextMenu → FouContextMenu}/index.vue.d.ts +0 -0
  332. /package/dist/components/{QiuDescriptionsItem → FouDescriptionsItem}/index.vue.d.ts +0 -0
  333. /package/dist/components/{QiuDigitalCard → FouDigitalCard}/index.vue.d.ts +0 -0
  334. /package/dist/components/{QiuDropdown/QiuDropdownItem.vue.d.ts → FouDropdown/FouDropdownItem.vue.d.ts} +0 -0
  335. /package/dist/components/{QiuDropdown/QiuDropdownMenu.vue.d.ts → FouDropdown/FouDropdownMenu.vue.d.ts} +0 -0
  336. /package/dist/components/{QiuDropdown → FouDropdown}/index.vue.d.ts +0 -0
  337. /package/dist/components/{QiuHoverCard → FouHoverCard}/index.vue.d.ts +0 -0
  338. /package/dist/components/{QiuIcon → FouIcon}/index.vue.d.ts +0 -0
  339. /package/dist/components/{QiuIconPicker → FouIconPicker}/iconify.libraries.d.ts +0 -0
  340. /package/dist/components/{QiuIconPicker → FouIconPicker}/icons.catalog.d.ts +0 -0
  341. /package/dist/components/{QiuInput → FouInput}/index.vue.d.ts +0 -0
  342. /package/dist/components/{QiuInputNumber → FouInputNumber}/index.vue.d.ts +0 -0
  343. /package/dist/components/{QiuInputOtp → FouInputOtp}/index.vue.d.ts +0 -0
  344. /package/dist/components/{QiuKbd → FouKbd}/index.vue.d.ts +0 -0
  345. /package/dist/components/{QiuLayoutContainer → FouLayoutContainer}/index.vue.d.ts +0 -0
  346. /package/dist/components/{QiuLinkPreview → FouLinkPreview}/index.vue.d.ts +0 -0
  347. /package/dist/components/{QiuMention → FouMention}/index.vue.d.ts +0 -0
  348. /package/dist/components/{QiuMenu/QiuMenuRoot.vue.d.ts → FouMenu/FouMenuRoot.vue.d.ts} +0 -0
  349. /package/dist/components/{QiuMenuNav/QiuMenuNavItem.vue.d.ts → FouMenuNav/FouMenuNavItem.vue.d.ts} +0 -0
  350. /package/dist/components/{QiuMenuNav/QiuMenuNavSub.vue.d.ts → FouMenuNav/FouMenuNavSub.vue.d.ts} +0 -0
  351. /package/dist/components/{QiuMenuNav → FouMenuNav}/index.vue.d.ts +0 -0
  352. /package/dist/components/{QiuPageMain → FouPageMain}/index.vue.d.ts +0 -0
  353. /package/dist/components/{QiuPagination → FouPagination}/index.vue.d.ts +0 -0
  354. /package/dist/components/{QiuPasswordStrength → FouPasswordStrength}/index.vue.d.ts +0 -0
  355. /package/dist/components/{QiuQrcode → FouQrcode}/index.vue.d.ts +0 -0
  356. /package/dist/components/{QiuRadio/QiuRadioGroup.vue.d.ts → FouRadio/FouRadioGroup.vue.d.ts} +0 -0
  357. /package/dist/components/{QiuSearchBar → FouSearchBar}/index.vue.d.ts +0 -0
  358. /package/dist/components/{QiuSelect/QiuOption.vue.d.ts → FouSelect/FouOption.vue.d.ts} +0 -0
  359. /package/dist/components/{QiuSparkline → FouSparkline}/index.vue.d.ts +0 -0
  360. /package/dist/components/{QiuSwitch → FouSwitch}/index.vue.d.ts +0 -0
  361. /package/dist/components/{QiuTabPane → FouTabPane}/index.vue.d.ts +0 -0
  362. /package/dist/components/{QiuTable → FouTable}/columns.d.ts +0 -0
  363. /package/dist/components/{QiuTable → FouTable}/useExtras.d.ts +0 -0
  364. /package/dist/components/{QiuTable → FouTable}/useResize.d.ts +0 -0
  365. /package/dist/components/{QiuTable → FouTable}/useVirtual.d.ts +0 -0
  366. /package/dist/components/{QiuTime → FouTime}/index.vue.d.ts +0 -0
  367. /package/dist/components/{QiuTimeAgo → FouTimeAgo}/index.vue.d.ts +0 -0
  368. /package/dist/components/{QiuTimelineItem → FouTimelineItem}/index.vue.d.ts +0 -0
  369. /package/dist/components/{QiuTooltip → FouTooltip}/index.vue.d.ts +0 -0
  370. /package/dist/components/{QiuTrend → FouTrend}/index.vue.d.ts +0 -0
  371. /package/dist/components/{QiuUploadCrop → FouUploadCrop}/index.vue.d.ts +0 -0
@@ -1,408 +0,0 @@
1
- <template>
2
- <div class="qiu-grid" :class="{ 'qiu-grid--loading': proxyLoading }">
3
- <div v-if="showForm && ($slots.form || formConfig)" class="qiu-grid__form">
4
- <slot name="form" :query="proxyQuery" :form="formModel" :reload="reload">
5
- <div v-if="formFields.length" class="qiu-grid__form-inner">
6
- <label v-for="f in formFields" :key="f.field" class="qiu-grid__form-item">
7
- <span>{{ f.title || f.field }}</span>
8
- <input
9
- v-model="formModel[f.field]"
10
- class="qiu-grid__form-input"
11
- :placeholder="f.title || f.field"
12
- @keydown.enter="reload()"
13
- />
14
- </label>
15
- <button type="button" class="qiu-grid__form-btn" @click="reload()">查询</button>
16
- <button type="button" class="qiu-grid__form-btn is-plain" @click="resetForm">重置</button>
17
- </div>
18
- </slot>
19
- </div>
20
-
21
- <qiu-table
22
- ref="tableRef"
23
- v-bind="tableBind"
24
- :data="tableData"
25
- :loading="proxyLoading || loading"
26
- :pager-config="mergedPager"
27
- :show-toolbar="showToolbar"
28
- :show-export="toolbarConfig?.export !== false"
29
- @page-change="onPageChange"
30
- @refresh="reload"
31
- @sort-change="onSortChange"
32
- @filter-change="onFilterChange"
33
- >
34
- <template v-if="$slots.toolbar" #toolbar>
35
- <slot name="toolbar" :reload="reload" :proxy="proxyState" />
36
- </template>
37
- <template v-if="$slots['toolbar-left']" #toolbar-left>
38
- <slot name="toolbar-left" :reload="reload" :proxy="proxyState" />
39
- </template>
40
- <template v-if="$slots['toolbar-center']" #toolbar-center>
41
- <slot name="toolbar-center" :reload="reload" :proxy="proxyState" />
42
- </template>
43
- <template v-if="$slots['toolbar-right']" #toolbar-right>
44
- <slot name="toolbar-right" :reload="reload" :proxy="proxyState" />
45
- </template>
46
- <template v-if="$slots['toolbar-tools']" #toolbar-tools>
47
- <slot name="toolbar-tools" />
48
- </template>
49
- <slot />
50
- </qiu-table>
51
- </div>
52
- </template>
53
-
54
- <script lang="ts" setup>
55
- /**
56
- * QiuGrid — 配置式表格(对齐 vxe-grid 开源能力子集)
57
- * columns + toolbar + pager + 轻量 form + proxyConfig
58
- */
59
- import type {
60
- QiuTableColumnConfig,
61
- QiuTablePagerConfig,
62
- QiuTableToolbarConfig,
63
- QiuTableToolbarTool,
64
- } from '../QiuTable/types'
65
-
66
- defineOptions({ name: 'QiuGrid' })
67
-
68
- export interface QiuGridFormItem {
69
- field: string
70
- title?: string
71
- itemRender?: any
72
- }
73
-
74
- export interface QiuGridProxyAjax {
75
- query?: (params: {
76
- page: { currentPage: number; pageSize: number }
77
- form: Record<string, any>
78
- sorts?: { prop: string; order: string | null }[]
79
- filters?: Record<string, any[]>
80
- }) => Promise<
81
- | { result?: any[]; page?: { total?: number }; data?: any[]; total?: number }
82
- | any[]
83
- >
84
- delete?: (params: { body: any[] }) => Promise<any>
85
- }
86
-
87
- export interface QiuGridProxyConfig {
88
- enabled?: boolean
89
- autoLoad?: boolean
90
- ajax?: QiuGridProxyAjax
91
- props?: {
92
- result?: string
93
- total?: string
94
- }
95
- }
96
-
97
- export interface QiuGridToolbarConfig {
98
- enabled?: boolean
99
- refresh?: boolean
100
- export?: boolean
101
- import?: boolean
102
- print?: boolean
103
- custom?: boolean
104
- zoom?: boolean
105
- /** Excel 复制按钮 */
106
- copy?: boolean
107
- /** 内置工具按钮位置,默认 right */
108
- toolsPlacement?: 'left' | 'center' | 'right'
109
- /** 自定义工具插件 */
110
- customTools?: QiuTableToolbarTool[]
111
- }
112
-
113
- const props = withDefaults(
114
- defineProps<{
115
- columns?: QiuTableColumnConfig[]
116
- data?: any[]
117
- loading?: boolean
118
- height?: string | number
119
- maxHeight?: string | number
120
- border?: boolean | string
121
- stripe?: boolean
122
- round?: boolean
123
- editable?: boolean
124
- editTrigger?: string
125
- editConfig?: Record<string, any>
126
- rowKey?: string | ((row: any) => string)
127
- showIndex?: boolean
128
- showSelection?: boolean
129
- showFooter?: boolean
130
- tree?: boolean
131
- pagerConfig?: QiuTablePagerConfig | boolean
132
- toolbarConfig?: QiuGridToolbarConfig | boolean
133
- formConfig?: { items?: QiuGridFormItem[]; enabled?: boolean } | boolean
134
- proxyConfig?: QiuGridProxyConfig
135
- sortConfig?: Record<string, any>
136
- filterConfig?: Record<string, any>
137
- columnConfig?: Record<string, any>
138
- rowConfig?: Record<string, any>
139
- customConfig?: Record<string, any>
140
- menuConfig?: Record<string, any>
141
- editRules?: Record<string, any>
142
- virtualYConfig?: Record<string, any> | boolean
143
- spanMethod?: Function
144
- mergeCells?: any[]
145
- }>(),
146
- {
147
- columns: () => [],
148
- data: () => [],
149
- loading: false,
150
- border: true,
151
- proxyConfig: undefined,
152
- }
153
- )
154
-
155
- const emit = defineEmits<{
156
- 'proxy-query': [payload: any]
157
- 'proxy-delete': [payload: any]
158
- }>()
159
-
160
- const tableRef = ref<any>(null)
161
- const proxyLoading = ref(false)
162
- const remoteData = ref<any[] | null>(null)
163
- const remoteTotal = ref<number | null>(null)
164
- const innerPage = ref(1)
165
- const innerPageSize = ref(10)
166
- const lastSort = ref<{ prop: string; order: string | null } | null>(null)
167
- const lastFilters = ref<Record<string, any[]>>({})
168
- const formModel = reactive<Record<string, any>>({})
169
-
170
- const toolbarConfig = computed(() => {
171
- if (props.toolbarConfig === false) return { enabled: false }
172
- if (props.toolbarConfig === true || props.toolbarConfig == null) {
173
- return { enabled: true, refresh: true, export: true, zoom: true, custom: true }
174
- }
175
- return { enabled: true, ...props.toolbarConfig }
176
- })
177
-
178
- const showToolbar = computed(() => toolbarConfig.value.enabled !== false)
179
-
180
- const tableToolbarConfig = computed((): QiuTableToolbarConfig => {
181
- const cfg = toolbarConfig.value
182
- return {
183
- enabled: cfg.enabled,
184
- refresh: cfg.refresh,
185
- export: cfg.export,
186
- import: cfg.import,
187
- print: cfg.print,
188
- custom: cfg.custom,
189
- zoom: cfg.zoom,
190
- copy: cfg.copy,
191
- toolsPlacement: cfg.toolsPlacement,
192
- customTools: cfg.customTools,
193
- }
194
- })
195
-
196
- const slots = useSlots()
197
-
198
- const showForm = computed(() => {
199
- if (props.formConfig === false) return false
200
- if (props.formConfig === true) return true
201
- if (props.formConfig && typeof props.formConfig === 'object') {
202
- return props.formConfig.enabled !== false
203
- }
204
- return !!slots.form
205
- })
206
-
207
- const formFields = computed(() => {
208
- if (props.formConfig && typeof props.formConfig === 'object') {
209
- return props.formConfig.items || []
210
- }
211
- return [] as QiuGridFormItem[]
212
- })
213
-
214
- watch(
215
- formFields,
216
- (items) => {
217
- items.forEach((f) => {
218
- if (!(f.field in formModel)) formModel[f.field] = ''
219
- })
220
- },
221
- { immediate: true }
222
- )
223
-
224
- const proxyEnabled = computed(
225
- () =>
226
- props.proxyConfig?.enabled !== false &&
227
- !!props.proxyConfig?.ajax?.query
228
- )
229
-
230
- const tableData = computed(() => {
231
- if (proxyEnabled.value && remoteData.value) return remoteData.value
232
- return props.data || []
233
- })
234
-
235
- const mergedPager = computed(() => {
236
- const base =
237
- props.pagerConfig === true
238
- ? { enabled: true }
239
- : props.pagerConfig && typeof props.pagerConfig === 'object'
240
- ? { ...props.pagerConfig }
241
- : proxyEnabled.value
242
- ? { enabled: true }
243
- : false
244
- if (!base || base === false) return false
245
- return {
246
- ...base,
247
- currentPage: innerPage.value,
248
- pageSize: innerPageSize.value,
249
- total: remoteTotal.value ?? base.total ?? tableData.value.length,
250
- }
251
- })
252
-
253
- const tableBind = computed(() => {
254
- const {
255
- data: _d,
256
- loading: _l,
257
- pagerConfig: _p,
258
- toolbarConfig: _t,
259
- formConfig: _f,
260
- proxyConfig: _px,
261
- ...rest
262
- } = props
263
- return {
264
- ...rest,
265
- toolbarConfig: tableToolbarConfig.value,
266
- showExport: toolbarConfig.value.export !== false,
267
- customConfig:
268
- props.customConfig ||
269
- (toolbarConfig.value.custom !== false ? { enabled: true } : undefined),
270
- showPrint: toolbarConfig.value.print === true,
271
- showImport: toolbarConfig.value.import === true,
272
- showCopy: toolbarConfig.value.copy === true,
273
- }
274
- })
275
-
276
- const proxyState = computed(() => ({
277
- loading: proxyLoading.value,
278
- data: tableData.value,
279
- total: remoteTotal.value,
280
- form: formModel,
281
- }))
282
-
283
- const getByPath = (obj: any, path: string) => {
284
- if (!path) return obj
285
- return path.split('.').reduce((o, k) => (o == null ? o : o[k]), obj)
286
- }
287
-
288
- const reload = async () => {
289
- if (!proxyEnabled.value || !props.proxyConfig?.ajax?.query) {
290
- emit('proxy-query', { form: { ...formModel } })
291
- return
292
- }
293
- proxyLoading.value = true
294
- try {
295
- const res = await props.proxyConfig.ajax.query({
296
- page: { currentPage: innerPage.value, pageSize: innerPageSize.value },
297
- form: { ...formModel },
298
- sorts: lastSort.value ? [lastSort.value] : [],
299
- filters: lastFilters.value,
300
- })
301
- const resultPath = props.proxyConfig.props?.result || 'result'
302
- const totalPath = props.proxyConfig.props?.total || 'page.total'
303
- if (Array.isArray(res)) {
304
- remoteData.value = res
305
- remoteTotal.value = res.length
306
- } else {
307
- const list = getByPath(res, resultPath) ?? (res as any).data ?? []
308
- remoteData.value = Array.isArray(list) ? list : []
309
- const total =
310
- getByPath(res, totalPath) ??
311
- (res as any).total ??
312
- (res as any).page?.total ??
313
- remoteData.value.length
314
- remoteTotal.value = Number(total) || 0
315
- }
316
- emit('proxy-query', { form: { ...formModel }, result: remoteData.value })
317
- } finally {
318
- proxyLoading.value = false
319
- }
320
- }
321
-
322
- const resetForm = () => {
323
- Object.keys(formModel).forEach((k) => {
324
- formModel[k] = ''
325
- })
326
- innerPage.value = 1
327
- reload()
328
- }
329
-
330
- const proxyQuery = reload
331
-
332
- const onPageChange = (p: { currentPage: number; pageSize: number }) => {
333
- innerPage.value = p.currentPage
334
- innerPageSize.value = p.pageSize
335
- if (proxyEnabled.value) reload()
336
- }
337
-
338
- const onSortChange = (p: { prop: string; order: string | null }) => {
339
- lastSort.value = p
340
- if (props.sortConfig?.remote && proxyEnabled.value) reload()
341
- }
342
-
343
- const onFilterChange = (p: Record<string, any[]>) => {
344
- lastFilters.value = p
345
- if (props.filterConfig?.remote && proxyEnabled.value) reload()
346
- }
347
-
348
- onMounted(() => {
349
- if (proxyEnabled.value && props.proxyConfig?.autoLoad !== false) reload()
350
- })
351
-
352
- defineExpose({
353
- reload,
354
- getTable: () => tableRef.value,
355
- commitProxy: reload,
356
- formModel,
357
- })
358
- </script>
359
-
360
- <style lang="scss" scoped>
361
- .qiu-grid {
362
- display: flex;
363
- flex-direction: column;
364
- gap: 8px;
365
- width: 100%;
366
- min-height: 0;
367
- }
368
-
369
- .qiu-grid__form-inner {
370
- display: flex;
371
- flex-wrap: wrap;
372
- gap: 8px 12px;
373
- align-items: flex-end;
374
- padding: 8px 0;
375
- }
376
-
377
- .qiu-grid__form-item {
378
- display: flex;
379
- flex-direction: column;
380
- gap: 4px;
381
- font-size: 12px;
382
- color: #606266;
383
- }
384
-
385
- .qiu-grid__form-input {
386
- min-width: 140px;
387
- height: 28px;
388
- padding: 0 8px;
389
- border: 1px solid #dcdfe6;
390
- border-radius: 4px;
391
- }
392
-
393
- .qiu-grid__form-btn {
394
- height: 28px;
395
- padding: 0 12px;
396
- color: #fff;
397
- border: 1px solid var(--qiu-color-primary, #0f766e);
398
- border-radius: 4px;
399
- background: var(--qiu-color-primary, #0f766e);
400
- cursor: pointer;
401
-
402
- &.is-plain {
403
- color: #606266;
404
- background: #fff;
405
- border-color: #dcdfe6;
406
- }
407
- }
408
- </style>
@@ -1,192 +0,0 @@
1
- <template>
2
- <span ref="triggerRef" class="qiu-hover-card" @mouseenter="onEnter" @mouseleave="onLeave">
3
- <slot name="trigger" />
4
- </span>
5
-
6
- <Teleport to="body">
7
- <Transition name="qiu-hover-card-fade">
8
- <div
9
- v-if="visible"
10
- ref="cardRef"
11
- class="qiu-hover-card__panel"
12
- :class="[`qiu-hover-card--${placement}`]"
13
- :style="panelStyle"
14
- @mouseenter="onCardEnter"
15
- @mouseleave="onCardLeave"
16
- >
17
- <div v-if="title || $slots.title" class="qiu-hover-card__title">
18
- <slot name="title">{{ title }}</slot>
19
- </div>
20
- <div class="qiu-hover-card__body">
21
- <slot />
22
- </div>
23
- </div>
24
- </Transition>
25
- </Teleport>
26
- </template>
27
-
28
- <script lang="ts" setup>
29
- import { nextTick, ref } from 'vue'
30
-
31
- defineOptions({ name: 'QiuHoverCard' })
32
-
33
- type Placement = 'top' | 'bottom' | 'left' | 'right'
34
-
35
- const props = withDefaults(
36
- defineProps<{
37
- title?: string
38
- placement?: Placement
39
- width?: number
40
- /** 悬停延迟(ms) */
41
- openDelay?: number
42
- closeDelay?: number
43
- }>(),
44
- {
45
- title: '',
46
- placement: 'top',
47
- width: 280,
48
- openDelay: 80,
49
- closeDelay: 120,
50
- }
51
- )
52
-
53
- const emit = defineEmits<{ visibleChange: [boolean] }>()
54
-
55
- const triggerRef = ref<HTMLElement | null>(null)
56
- const cardRef = ref<HTMLElement | null>(null)
57
- const visible = ref(false)
58
- const panelStyle = ref<Record<string, string>>({})
59
- let openTimer: ReturnType<typeof setTimeout> | undefined
60
- let closeTimer: ReturnType<typeof setTimeout> | undefined
61
- let inCard = false
62
-
63
- const clearTimers = () => {
64
- if (openTimer) clearTimeout(openTimer)
65
- if (closeTimer) clearTimeout(closeTimer)
66
- }
67
-
68
- const open = async () => {
69
- clearTimers()
70
- openTimer = setTimeout(async () => {
71
- visible.value = true
72
- emit('visibleChange', true)
73
- await nextTick()
74
- updatePosition()
75
- }, props.openDelay)
76
- }
77
-
78
- const scheduleClose = () => {
79
- clearTimers()
80
- closeTimer = setTimeout(() => {
81
- if (!inCard) {
82
- visible.value = false
83
- emit('visibleChange', false)
84
- }
85
- }, props.closeDelay)
86
- }
87
-
88
- const onEnter = () => open()
89
- const onLeave = () => scheduleClose()
90
- const onCardEnter = () => {
91
- inCard = true
92
- clearTimers()
93
- }
94
- const onCardLeave = () => {
95
- inCard = false
96
- scheduleClose()
97
- }
98
-
99
- const updatePosition = () => {
100
- const trigger = triggerRef.value
101
- const card = cardRef.value
102
- if (!trigger || !card) return
103
- const rect = trigger.getBoundingClientRect()
104
- const cardRect = card.getBoundingClientRect()
105
- const gap = 10
106
- let top = 0
107
- let left = 0
108
- switch (props.placement) {
109
- case 'top':
110
- top = rect.top - cardRect.height - gap
111
- left = rect.left + rect.width / 2 - cardRect.width / 2
112
- break
113
- case 'left':
114
- top = rect.top + rect.height / 2 - cardRect.height / 2
115
- left = rect.left - cardRect.width - gap
116
- break
117
- case 'right':
118
- top = rect.top + rect.height / 2 - cardRect.height / 2
119
- left = rect.right + gap
120
- break
121
- default:
122
- top = rect.bottom + gap
123
- left = rect.left + rect.width / 2 - cardRect.width / 2
124
- }
125
- left = Math.min(Math.max(4, left), window.innerWidth - cardRect.width - 4)
126
- top = Math.min(Math.max(4, top), window.innerHeight - cardRect.height - 4)
127
- panelStyle.value = {
128
- position: 'fixed',
129
- top: `${top}px`,
130
- left: `${left}px`,
131
- width: `${props.width}px`,
132
- zIndex: '2100',
133
- }
134
- }
135
-
136
- const onScrollOrResize = () => visible.value && updatePosition()
137
-
138
- watch(visible, (v) => {
139
- if (v) {
140
- window.addEventListener('scroll', onScrollOrResize, true)
141
- window.addEventListener('resize', onScrollOrResize)
142
- } else {
143
- window.removeEventListener('scroll', onScrollOrResize, true)
144
- window.removeEventListener('resize', onScrollOrResize)
145
- }
146
- })
147
-
148
- onBeforeUnmount(() => {
149
- clearTimers()
150
- window.removeEventListener('scroll', onScrollOrResize, true)
151
- window.removeEventListener('resize', onScrollOrResize)
152
- })
153
- </script>
154
-
155
- <style lang="scss" scoped>
156
- .qiu-hover-card {
157
- display: inline-flex;
158
- vertical-align: middle;
159
- }
160
-
161
- .qiu-hover-card__panel {
162
- box-sizing: border-box;
163
- background: var(--qiu-bg-color-overlay, #fff);
164
- border: 1px solid var(--qiu-border-color-light, #e4e7ed);
165
- border-radius: 8px;
166
- box-shadow: var(--qiu-box-shadow-light, 0 6px 16px rgba(0, 0, 0, 0.12));
167
- }
168
-
169
- .qiu-hover-card__title {
170
- padding: 12px 14px 4px;
171
- font-size: 14px;
172
- font-weight: 600;
173
- color: var(--qiu-text-color-primary, #303133);
174
- }
175
-
176
- .qiu-hover-card__body {
177
- padding: 8px 14px 14px;
178
- font-size: 13px;
179
- line-height: 1.6;
180
- color: var(--qiu-text-color-regular, #606266);
181
- }
182
-
183
- .qiu-hover-card-fade-enter-active,
184
- .qiu-hover-card-fade-leave-active {
185
- transition: opacity 0.15s ease;
186
- }
187
-
188
- .qiu-hover-card-fade-enter-from,
189
- .qiu-hover-card-fade-leave-to {
190
- opacity: 0;
191
- }
192
- </style>
@@ -1,117 +0,0 @@
1
- <template>
2
- <span
3
- v-if="isIconify"
4
- aria-hidden="true"
5
- class="qiu-icon qiu-icon--iconify"
6
- @click="onClick"
7
- >
8
- <Icon :icon="iconifyName" width="1em" height="1em" />
9
- </span>
10
- <svg
11
- v-else-if="isCustomSvg"
12
- aria-hidden="true"
13
- class="qiu-icon qiu-icon--svg"
14
- :class="{ 'is-keep-color': keepColor }"
15
- :viewBox="viewBox || undefined"
16
- @click="onClick"
17
- >
18
- <use :href="symbolHref" :xlink:href="symbolHref" />
19
- </svg>
20
- <i
21
- v-else
22
- aria-hidden="true"
23
- class="qiu-icon"
24
- :class="riClass"
25
- @click="onClick"
26
- />
27
- </template>
28
-
29
- <script lang="ts" setup>
30
- /**
31
- * QiuIcon
32
- * - Remix 本地字体:home-2-line / ri-home-2-line
33
- * - Iconify:mdi:home / ant-design:home-outlined
34
- * - 自定义 SVG:isCustomSvg + vite-plugin-svg-icons
35
- */
36
- import { Icon } from '@iconify/vue'
37
-
38
- defineOptions({
39
- name: 'QiuIcon',
40
- })
41
-
42
- const props = withDefaults(
43
- defineProps<{
44
- icon?: string
45
- isCustomSvg?: boolean
46
- /** 保留 SVG 原色(布局预览等多色图标) */
47
- keepColor?: boolean
48
- viewBox?: string
49
- }>(),
50
- {
51
- icon: '',
52
- isCustomSvg: false,
53
- keepColor: false,
54
- viewBox: '',
55
- }
56
- )
57
-
58
- const emit = defineEmits<{ click: [MouseEvent] }>()
59
-
60
- const iconName = computed(() => String(props.icon || '').trim())
61
-
62
- const isIconify = computed(() => {
63
- const name = iconName.value
64
- return !!name && name.includes(':') && !name.startsWith('http') && !props.isCustomSvg
65
- })
66
-
67
- const iconifyName = computed(() => iconName.value)
68
-
69
- const riClass = computed(() => {
70
- const name = iconName.value
71
- if (!name) return ''
72
- return name.startsWith('ri-') ? name : `ri-${name}`
73
- })
74
-
75
- const symbolHref = computed(() => `#qiu-icon-${iconName.value}`)
76
-
77
- const onClick = (e: MouseEvent) => emit('click', e)
78
- </script>
79
-
80
- <style scoped>
81
- .qiu-icon {
82
- display: inline-flex;
83
- align-items: center;
84
- justify-content: center;
85
- width: 1em;
86
- height: 1em;
87
- font-family: remixicon !important;
88
- font-size: inherit;
89
- font-style: normal;
90
- line-height: 1;
91
- vertical-align: middle;
92
- speak: never;
93
- }
94
-
95
- .qiu-icon--svg {
96
- width: 1em;
97
- height: 1em;
98
- overflow: hidden;
99
- /* 单色图标可用 currentColor;多色自定义 SVG 由使用方覆盖 fill */
100
- fill: currentColor;
101
- }
102
-
103
- .qiu-icon--svg.is-keep-color,
104
- .qiu-icon--svg[data-keep-color] {
105
- fill: unset;
106
- }
107
-
108
- .qiu-icon--iconify {
109
- font-family: inherit !important;
110
-
111
- :deep(svg) {
112
- display: block;
113
- width: 1em;
114
- height: 1em;
115
- }
116
- }
117
- </style>