@dt-frames/ui 1.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 (363) hide show
  1. package/README.md +15 -0
  2. package/es/assets/app-antd-dark-theme-style.e3b0c442.css +0 -0
  3. package/es/assets/app-theme-style.e3b0c442.css +0 -0
  4. package/es/assets/data/icon.d.ts +4 -0
  5. package/es/assets/data/icon.ts +69 -0
  6. package/es/assets/data/icon11.ts +69 -0
  7. package/es/assets/data/icons/actions.d.ts +1 -0
  8. package/es/assets/data/icons/actions.ts +427 -0
  9. package/es/assets/data/icons/code.d.ts +1 -0
  10. package/es/assets/data/icons/code.ts +10 -0
  11. package/es/assets/data/icons/commuticate.d.ts +1 -0
  12. package/es/assets/data/icons/commuticate.ts +190 -0
  13. package/es/assets/data/icons/currency.d.ts +1 -0
  14. package/es/assets/data/icons/currency.ts +46 -0
  15. package/es/assets/data/icons/devices.d.ts +1 -0
  16. package/es/assets/data/icons/devices.ts +128 -0
  17. package/es/assets/data/icons/edit.d.ts +1 -0
  18. package/es/assets/data/icons/edit.ts +165 -0
  19. package/es/assets/data/icons/file.d.ts +1 -0
  20. package/es/assets/data/icons/file.ts +104 -0
  21. package/es/assets/data/icons/math.d.ts +1 -0
  22. package/es/assets/data/icons/math.ts +53 -0
  23. package/es/assets/data/icons/message.d.ts +1 -0
  24. package/es/assets/data/icons/message.ts +75 -0
  25. package/es/assets/data/icons/navigate.d.ts +1 -0
  26. package/es/assets/data/icons/navigate.ts +181 -0
  27. package/es/assets/data/icons/other.d.ts +1 -0
  28. package/es/assets/data/icons/other.ts +333 -0
  29. package/es/assets/data/icons.d.ts +4 -0
  30. package/es/assets/data/icons.ts +58 -0
  31. package/es/assets/imgs/logo/logo.png +0 -0
  32. package/es/assets/locales/en_US.json +3 -0
  33. package/es/assets/locales/zh_CN.json +3 -0
  34. package/es/assets/style/index.less +10 -0
  35. package/es/assets/style/reset.less +20 -0
  36. package/es/assets/style/var.less +42 -0
  37. package/es/components/container/index.d.ts +3 -0
  38. package/es/components/container/src/bar.d.ts +14 -0
  39. package/es/components/container/src/scroll-bar.d.ts +93 -0
  40. package/es/components/container/src/scroll-container.d.ts +99 -0
  41. package/es/components/curd/index.d.ts +2 -0
  42. package/es/components/curd/src/components/dialog.d.ts +1494 -0
  43. package/es/components/curd/src/components/props.d.ts +33 -0
  44. package/es/components/curd/src/hooks/useCurd.d.ts +11 -0
  45. package/es/components/curd/src/types/curd.type.d.ts +19 -0
  46. package/es/components/excel/index.d.ts +2 -0
  47. package/es/components/excel/src/export2Excel.d.ts +3 -0
  48. package/es/components/forms/index.d.ts +5 -0
  49. package/es/components/forms/src/componentMap.d.ts +4 -0
  50. package/es/components/forms/src/components/formButton.d.ts +75 -0
  51. package/es/components/forms/src/components/formIcon.d.ts +2845 -0
  52. package/es/components/forms/src/components/formItem.d.ts +59 -0
  53. package/es/components/forms/src/components/radioButton.d.ts +33 -0
  54. package/es/components/forms/src/const/form.const.d.ts +7 -0
  55. package/es/components/forms/src/hooks/helper.d.ts +6 -0
  56. package/es/components/forms/src/hooks/useForm.d.ts +5 -0
  57. package/es/components/forms/src/hooks/useFormActions.d.ts +13 -0
  58. package/es/components/forms/src/hooks/useFormEvents.d.ts +26 -0
  59. package/es/components/forms/src/hooks/useFormValue.d.ts +3 -0
  60. package/es/components/forms/src/hooks/useFormValues.d.ts +14 -0
  61. package/es/components/forms/src/hooks/useLabelWidth.d.ts +35 -0
  62. package/es/components/forms/src/index.d.ts +186 -0
  63. package/es/components/forms/src/prop.d.ts +79 -0
  64. package/es/components/forms/src/types/form.type.d.ts +124 -0
  65. package/es/components/icons/index.d.ts +3 -0
  66. package/es/components/icons/pick-icon.d.ts +529 -0
  67. package/es/components/icons/src/pick-icon.d.ts +432 -0
  68. package/es/components/icons/src/svg-icon.d.ts +44 -0
  69. package/es/components/icons/svg-icon.d.ts +44 -0
  70. package/es/components/iframe/index.d.ts +2 -0
  71. package/es/components/iframe/src/index.d.ts +967 -0
  72. package/es/components/index.d.ts +14 -0
  73. package/es/components/modal/index.d.ts +3 -0
  74. package/es/components/modal/src/components/close-icon.d.ts +344 -0
  75. package/es/components/modal/src/components/modal-wrap.d.ts +236 -0
  76. package/es/components/modal/src/components/modal.d.ts +194 -0
  77. package/es/components/modal/src/components/modalFooter.d.ts +102 -0
  78. package/es/components/modal/src/hooks/useDrag.d.ts +7 -0
  79. package/es/components/modal/src/hooks/useFullScreen.d.ts +12 -0
  80. package/es/components/modal/src/hooks/useModal.d.ts +4 -0
  81. package/es/components/modal/src/index.d.ts +1187 -0
  82. package/es/components/modal/src/props.d.ts +89 -0
  83. package/es/components/modal/src/types/modal.type.d.ts +22 -0
  84. package/es/components/router/base-router.d.ts +2 -0
  85. package/es/components/router/index.d.ts +2 -0
  86. package/es/components/source/index.d.ts +1 -0
  87. package/es/components/source/src/hooks/useFetch.d.ts +5 -0
  88. package/es/components/source/src/hooks/useSource.d.ts +33 -0
  89. package/es/components/source/src/index.d.ts +2 -0
  90. package/es/components/source/src/types/source.type.d.ts +31 -0
  91. package/es/components/source/src/types/table.type.d.ts +7 -0
  92. package/es/components/table/index.d.ts +3 -0
  93. package/es/components/table/src/components/TableActions.d.ts +1279 -0
  94. package/es/components/table/src/components/TableHeader.d.ts +28 -0
  95. package/es/components/table/src/components/TableRender.d.ts +25 -0
  96. package/es/components/table/src/components/setting/Column.d.ts +1349 -0
  97. package/es/components/table/src/components/setting/Download.d.ts +1144 -0
  98. package/es/components/table/src/components/setting/Fullscreen.d.ts +270 -0
  99. package/es/components/table/src/components/setting/Size.d.ts +1145 -0
  100. package/es/components/table/src/components/setting/index.d.ts +26 -0
  101. package/es/components/table/src/const.d.ts +12 -0
  102. package/es/components/table/src/hooks/useColumns.d.ts +12 -0
  103. package/es/components/table/src/hooks/useDataSource.d.ts +16 -0
  104. package/es/components/table/src/hooks/useFormat.d.ts +2 -0
  105. package/es/components/table/src/hooks/useLoading.d.ts +6 -0
  106. package/es/components/table/src/hooks/usePagination.d.ts +122 -0
  107. package/es/components/table/src/hooks/useRowSelection.d.ts +13 -0
  108. package/es/components/table/src/hooks/useRows.d.ts +5 -0
  109. package/es/components/table/src/hooks/useTable.d.ts +5 -0
  110. package/es/components/table/src/hooks/useTableHeader.d.ts +8 -0
  111. package/es/components/table/src/hooks/useTableInstance.d.ts +13 -0
  112. package/es/components/table/src/hooks/useTableScroll.d.ts +12 -0
  113. package/es/components/table/src/hooks/useVirtualScroll.d.ts +5 -0
  114. package/es/components/table/src/index.d.ts +565 -0
  115. package/es/components/table/src/props.d.ts +192 -0
  116. package/es/components/table/src/types/table.type.d.ts +89 -0
  117. package/es/components/table/src/types/tableHeader.type.d.ts +23 -0
  118. package/es/components/table/src/utils/format.d.ts +1 -0
  119. package/es/directives/icon.d.ts +2 -0
  120. package/es/directives/index.d.ts +6 -0
  121. package/es/directives/permission.d.ts +2 -0
  122. package/es/global.d.ts +8 -0
  123. package/es/index.css +1 -0
  124. package/es/index.d.ts +3 -0
  125. package/es/index.js +8867 -0
  126. package/es/style/assets/style/index.less +10 -0
  127. package/es/style/assets/style/reset.less +20 -0
  128. package/es/style/assets/style/var.less +42 -0
  129. package/es/style/components/container/index.less +85 -0
  130. package/es/style/components/forms/src/index.less +82 -0
  131. package/es/style/components/icons/index.less +96 -0
  132. package/es/style/components/icons/src/index.less +96 -0
  133. package/es/style/components/iframe/src/index.less +3 -0
  134. package/es/style/components/modal/src/index.less +60 -0
  135. package/es/style/components/table/src/index.less +162 -0
  136. package/es/style/theme/footer/index.less +16 -0
  137. package/es/style/theme/header/index.less +438 -0
  138. package/es/style/theme/header/set-theme.less +68 -0
  139. package/es/style/theme/sider/index.less +203 -0
  140. package/es/style/theme/tabs/index.less +165 -0
  141. package/es/style/theme/theme.less +66 -0
  142. package/es/style/theme/transition.less +99 -0
  143. package/es/theme/content/index.d.ts +29 -0
  144. package/es/theme/feature/back-top.d.ts +105 -0
  145. package/es/theme/feature/index.d.ts +107 -0
  146. package/es/theme/footer/index.d.ts +30 -0
  147. package/es/theme/header/components/bread-crumb.d.ts +127 -0
  148. package/es/theme/header/components/fullscreen.d.ts +5 -0
  149. package/es/theme/header/components/handler.d.ts +2 -0
  150. package/es/theme/header/components/index.d.ts +10 -0
  151. package/es/theme/header/components/lang-picker.d.ts +290 -0
  152. package/es/theme/header/components/logo.d.ts +40 -0
  153. package/es/theme/header/components/menu-search.d.ts +528 -0
  154. package/es/theme/header/components/notify.d.ts +269 -0
  155. package/es/theme/header/components/setting-theme.d.ts +2550 -0
  156. package/es/theme/header/components/theme-drawer/enum.d.ts +5 -0
  157. package/es/theme/header/components/theme-drawer/feature.d.ts +1096 -0
  158. package/es/theme/header/components/theme-drawer/index.d.ts +3 -0
  159. package/es/theme/header/components/theme-drawer/menu-type.d.ts +273 -0
  160. package/es/theme/header/components/theme-drawer/select-item.d.ts +778 -0
  161. package/es/theme/header/components/theme-drawer/switch-item.d.ts +289 -0
  162. package/es/theme/header/components/trigger.d.ts +14 -0
  163. package/es/theme/header/components/user-info.d.ts +452 -0
  164. package/es/theme/header/const/index.d.ts +20 -0
  165. package/es/theme/header/helper/menu-tree.d.ts +3 -0
  166. package/es/theme/header/index.d.ts +4369 -0
  167. package/es/theme/header/multiple-header.d.ts +2001 -0
  168. package/es/theme/index.d.ts +2 -0
  169. package/es/theme/sider/components/basic-menu/basic-menu-item.d.ts +121 -0
  170. package/es/theme/sider/components/basic-menu/basic-menu.d.ts +752 -0
  171. package/es/theme/sider/components/basic-menu/basic-sub-menu-item.d.ts +250 -0
  172. package/es/theme/sider/components/basic-menu/menu-item-content.d.ts +34 -0
  173. package/es/theme/sider/components/drag-bar.d.ts +14 -0
  174. package/es/theme/sider/components/layout-menu.d.ts +22 -0
  175. package/es/theme/sider/components/props.d.ts +69 -0
  176. package/es/theme/sider/components/sider-trigger.d.ts +68 -0
  177. package/es/theme/sider/helper/sider.d.ts +12 -0
  178. package/es/theme/sider/helper/split-menu.d.ts +10 -0
  179. package/es/theme/sider/hooks/useDragLine.d.ts +2 -0
  180. package/es/theme/sider/hooks/useOpenKeys.d.ts +13 -0
  181. package/es/theme/sider/index.d.ts +152 -0
  182. package/es/theme/styles/hooks/changeTheme.d.ts +1 -0
  183. package/es/theme/styles/hooks/generate.d.ts +13 -0
  184. package/es/theme/styles/index.d.ts +2 -0
  185. package/es/theme/tabs/components/TabContent.d.ts +887 -0
  186. package/es/theme/tabs/components/TabRedo.d.ts +49 -0
  187. package/es/theme/tabs/hooks/useMultifyTabs.d.ts +7 -0
  188. package/es/theme/tabs/hooks/useTabDropdown.d.ts +6 -0
  189. package/es/theme/tabs/index.d.ts +1399 -0
  190. package/es/theme/tabs/types/tabs.type.d.ts +7 -0
  191. package/es/theme/theme/initTheme.d.ts +3 -0
  192. package/es/theme/theme/util.d.ts +5 -0
  193. package/es/theme/theme.d.ts +4911 -0
  194. package/es/themes/generate.ts +74 -0
  195. package/es/themes/index.ts +10 -0
  196. package/es/themes/modifyVars.ts +33 -0
  197. package/es/themes/themePlugiin.ts +74 -0
  198. package/package.json +49 -0
  199. package/src/assets/data/icons/actions.ts +427 -0
  200. package/src/assets/data/icons/code.ts +10 -0
  201. package/src/assets/data/icons/commuticate.ts +190 -0
  202. package/src/assets/data/icons/currency.ts +46 -0
  203. package/src/assets/data/icons/devices.ts +128 -0
  204. package/src/assets/data/icons/edit.ts +165 -0
  205. package/src/assets/data/icons/file.ts +104 -0
  206. package/src/assets/data/icons/math.ts +53 -0
  207. package/src/assets/data/icons/message.ts +75 -0
  208. package/src/assets/data/icons/navigate.ts +181 -0
  209. package/src/assets/data/icons/other.ts +333 -0
  210. package/src/assets/data/icons.ts +58 -0
  211. package/src/assets/imgs/logo/logo.png +0 -0
  212. package/src/assets/locales/en_US.json +3 -0
  213. package/src/assets/locales/zh_CN.json +3 -0
  214. package/src/assets/style/index.less +10 -0
  215. package/src/assets/style/reset.less +20 -0
  216. package/src/components/container/index.less +85 -0
  217. package/src/components/container/index.ts +8 -0
  218. package/src/components/container/src/bar.ts +107 -0
  219. package/src/components/container/src/lazy-container.vue +9 -0
  220. package/src/components/container/src/scroll-bar.vue +117 -0
  221. package/src/components/container/src/scroll-container.vue +61 -0
  222. package/src/components/curd/index.ts +5 -0
  223. package/src/components/curd/src/components/dialog.vue +65 -0
  224. package/src/components/curd/src/components/props.ts +32 -0
  225. package/src/components/curd/src/hooks/useCurd.tsx +72 -0
  226. package/src/components/curd/src/types/curd.type.ts +29 -0
  227. package/src/components/excel/index.ts +6 -0
  228. package/src/components/excel/src/export2Excel.ts +44 -0
  229. package/src/components/forms/index.ts +12 -0
  230. package/src/components/forms/src/componentMap.ts +44 -0
  231. package/src/components/forms/src/components/formButton.vue +150 -0
  232. package/src/components/forms/src/components/formIcon.vue +50 -0
  233. package/src/components/forms/src/components/formItem.vue +407 -0
  234. package/src/components/forms/src/components/radioButton.vue +58 -0
  235. package/src/components/forms/src/const/form.const.ts +7 -0
  236. package/src/components/forms/src/hooks/helper.ts +70 -0
  237. package/src/components/forms/src/hooks/useForm.ts +130 -0
  238. package/src/components/forms/src/hooks/useFormActions.ts +63 -0
  239. package/src/components/forms/src/hooks/useFormEvents.ts +247 -0
  240. package/src/components/forms/src/hooks/useFormValue.ts +49 -0
  241. package/src/components/forms/src/hooks/useFormValues.ts +131 -0
  242. package/src/components/forms/src/hooks/useLabelWidth.ts +57 -0
  243. package/src/components/forms/src/index.less +82 -0
  244. package/src/components/forms/src/index.vue +306 -0
  245. package/src/components/forms/src/prop.ts +80 -0
  246. package/src/components/forms/src/types/form.type.ts +269 -0
  247. package/src/components/icons/index.ts +7 -0
  248. package/src/components/icons/src/index.less +96 -0
  249. package/src/components/icons/src/pick-icon.vue +117 -0
  250. package/src/components/icons/src/svg-icon.vue +117 -0
  251. package/src/components/iframe/index.ts +5 -0
  252. package/src/components/iframe/src/index.less +3 -0
  253. package/src/components/iframe/src/index.vue +38 -0
  254. package/src/components/index.ts +46 -0
  255. package/src/components/modal/index.ts +8 -0
  256. package/src/components/modal/src/components/close-icon.vue +47 -0
  257. package/src/components/modal/src/components/modal-wrap.vue +118 -0
  258. package/src/components/modal/src/components/modal.tsx +30 -0
  259. package/src/components/modal/src/components/modalFooter.vue +38 -0
  260. package/src/components/modal/src/hooks/useDrag.ts +107 -0
  261. package/src/components/modal/src/hooks/useFullScreen.ts +27 -0
  262. package/src/components/modal/src/hooks/useModal.ts +177 -0
  263. package/src/components/modal/src/index.less +60 -0
  264. package/src/components/modal/src/index.vue +173 -0
  265. package/src/components/modal/src/props.ts +43 -0
  266. package/src/components/modal/src/types/modal.type.ts +27 -0
  267. package/src/components/router/base-router.vue +11 -0
  268. package/src/components/router/index.ts +3 -0
  269. package/src/components/source/index.ts +1 -0
  270. package/src/components/source/src/hooks/useFetch.ts +70 -0
  271. package/src/components/source/src/hooks/usePage.ts +3 -0
  272. package/src/components/source/src/hooks/useSource.ts +178 -0
  273. package/src/components/source/src/index.ts +5 -0
  274. package/src/components/source/src/types/source.type.ts +68 -0
  275. package/src/components/source/src/types/table.type.ts +8 -0
  276. package/src/components/table/index.ts +7 -0
  277. package/src/components/table/src/components/TableActions.vue +108 -0
  278. package/src/components/table/src/components/TableHeader.vue +77 -0
  279. package/src/components/table/src/components/TableRender.vue +76 -0
  280. package/src/components/table/src/components/setting/Column.vue +355 -0
  281. package/src/components/table/src/components/setting/Download.vue +55 -0
  282. package/src/components/table/src/components/setting/Fullscreen.vue +43 -0
  283. package/src/components/table/src/components/setting/Size.vue +42 -0
  284. package/src/components/table/src/components/setting/index.vue +64 -0
  285. package/src/components/table/src/const.ts +13 -0
  286. package/src/components/table/src/hooks/useColumns.ts +319 -0
  287. package/src/components/table/src/hooks/useCustomRow.ts +0 -0
  288. package/src/components/table/src/hooks/useDataSource.ts +99 -0
  289. package/src/components/table/src/hooks/useLoading.ts +29 -0
  290. package/src/components/table/src/hooks/usePagination.ts +76 -0
  291. package/src/components/table/src/hooks/useRowSelection.ts +146 -0
  292. package/src/components/table/src/hooks/useRows.ts +30 -0
  293. package/src/components/table/src/hooks/useTable.ts +77 -0
  294. package/src/components/table/src/hooks/useTableHeader.ts +48 -0
  295. package/src/components/table/src/hooks/useTableInstance.ts +29 -0
  296. package/src/components/table/src/hooks/useTableScroll.ts +227 -0
  297. package/src/components/table/src/index.less +162 -0
  298. package/src/components/table/src/index.vue +198 -0
  299. package/src/components/table/src/props.ts +152 -0
  300. package/src/components/table/src/types/table.type.ts +133 -0
  301. package/src/components/table/src/types/tableHeader.type.ts +27 -0
  302. package/src/components/type.ts +0 -0
  303. package/src/directives/icon.ts +36 -0
  304. package/src/directives/index.ts +26 -0
  305. package/src/directives/permission.ts +21 -0
  306. package/src/global.d.ts +8 -0
  307. package/src/index.ts +4 -0
  308. package/src/theme/content/index.vue +37 -0
  309. package/src/theme/feature/back-top.vue +11 -0
  310. package/src/theme/feature/index.vue +7 -0
  311. package/src/theme/footer/index.less +16 -0
  312. package/src/theme/footer/index.vue +24 -0
  313. package/src/theme/header/components/bread-crumb.vue +26 -0
  314. package/src/theme/header/components/fullscreen.vue +14 -0
  315. package/src/theme/header/components/handler.ts +81 -0
  316. package/src/theme/header/components/index.ts +21 -0
  317. package/src/theme/header/components/lang-picker.vue +36 -0
  318. package/src/theme/header/components/logo.vue +33 -0
  319. package/src/theme/header/components/menu-search.vue +62 -0
  320. package/src/theme/header/components/notify.vue +23 -0
  321. package/src/theme/header/components/setting-theme.vue +123 -0
  322. package/src/theme/header/components/theme-drawer/enum.ts +12 -0
  323. package/src/theme/header/components/theme-drawer/feature.vue +75 -0
  324. package/src/theme/header/components/theme-drawer/index.ts +7 -0
  325. package/src/theme/header/components/theme-drawer/menu-type.vue +40 -0
  326. package/src/theme/header/components/theme-drawer/select-item.vue +46 -0
  327. package/src/theme/header/components/theme-drawer/switch-item.vue +39 -0
  328. package/src/theme/header/components/theme-drawer/theme-color.vue +26 -0
  329. package/src/theme/header/components/trigger.vue +14 -0
  330. package/src/theme/header/components/user-info.vue +43 -0
  331. package/src/theme/header/const/index.ts +40 -0
  332. package/src/theme/header/helper/menu-tree.ts +67 -0
  333. package/src/theme/header/index.less +438 -0
  334. package/src/theme/header/index.ts +0 -0
  335. package/src/theme/header/index.vue +96 -0
  336. package/src/theme/header/multiple-header.vue +67 -0
  337. package/src/theme/header/set-theme.less +68 -0
  338. package/src/theme/index.ts +3 -0
  339. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +14 -0
  340. package/src/theme/sider/components/basic-menu/basic-menu.vue +122 -0
  341. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +46 -0
  342. package/src/theme/sider/components/basic-menu/menu-item-content.vue +13 -0
  343. package/src/theme/sider/components/drag-bar.vue +26 -0
  344. package/src/theme/sider/components/layout-menu.vue +132 -0
  345. package/src/theme/sider/components/props.ts +97 -0
  346. package/src/theme/sider/components/sider-trigger.vue +24 -0
  347. package/src/theme/sider/helper/sider.ts +52 -0
  348. package/src/theme/sider/helper/split-menu.ts +147 -0
  349. package/src/theme/sider/hooks/useDragLine.ts +86 -0
  350. package/src/theme/sider/hooks/useOpenKeys.ts +57 -0
  351. package/src/theme/sider/index.less +203 -0
  352. package/src/theme/sider/index.vue +88 -0
  353. package/src/theme/tabs/components/TabContent.vue +37 -0
  354. package/src/theme/tabs/components/TabRedo.vue +18 -0
  355. package/src/theme/tabs/hooks/useMultifyTabs.ts +96 -0
  356. package/src/theme/tabs/hooks/useTabDropdown.ts +89 -0
  357. package/src/theme/tabs/index.less +165 -0
  358. package/src/theme/tabs/index.vue +98 -0
  359. package/src/theme/tabs/types/tabs.type.ts +8 -0
  360. package/src/theme/theme.less +66 -0
  361. package/src/theme/theme.vue +89 -0
  362. package/src/theme/transition.less +99 -0
  363. package/tsconfig.json +28 -0
@@ -0,0 +1,8 @@
1
+ import { useModal, useModalOut } from './src/hooks/useModal'
2
+ import DtModal from './src/index.vue'
3
+
4
+ export {
5
+ DtModal,
6
+ useModal,
7
+ useModalOut
8
+ }
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <div :class="getClass">
3
+ <template v-if="canFullscreen">
4
+ <Tooltip title="退出全屏" placement="bottom" v-if="fullScreen">
5
+ <i v-icon="'ic:baseline-fullscreen-exit'" @click="handleFullScreen" />
6
+ </Tooltip>
7
+ <Tooltip title="全屏" placement="bottom" v-else>
8
+ <i v-icon="'ic:baseline-fullscreen'" @click="handleFullScreen" />
9
+ </Tooltip>
10
+ </template>
11
+
12
+ <DtIcon icon-class="mdi:close" @click="handleCancel" />
13
+ </div>
14
+ </template>
15
+
16
+ <script lang="ts" setup>
17
+ import { computed } from 'vue';
18
+ import { Tooltip } from 'ant-design-vue';
19
+ import { DtIcon } from '../../../icons';
20
+
21
+ const props = defineProps({
22
+ canFullscreen: { type: Boolean, default: true },
23
+ fullScreen: { type: Boolean }
24
+ });
25
+
26
+ const emit = defineEmits(['cancel', 'fullscreen']);
27
+
28
+ const getClass = computed(() => {
29
+ return [
30
+ 'dt-basic-modal-close',
31
+ `dt-basic-modal-close--custom`,
32
+ {
33
+ [`dt-basic-modal-close--can-full`]: props.canFullscreen,
34
+ }
35
+ ]
36
+ });
37
+
38
+ function handleCancel(e: Event) {
39
+ emit('cancel', e);
40
+ }
41
+
42
+ function handleFullScreen(e: Event) {
43
+ e?.stopPropagation();
44
+ e?.preventDefault();
45
+ emit('fullscreen');
46
+ }
47
+ </script>
@@ -0,0 +1,118 @@
1
+ <template>
2
+ <ScrollContainer ref="wrapperRef">
3
+ <div ref="spinRef" :style="spinStyle">
4
+ <slot></slot>
5
+ </div>
6
+ </ScrollContainer>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { ref, unref, computed, onMounted, watchEffect, watch, nextTick } from 'vue';
11
+ import { ScrollContainer } from '../../../container';
12
+ import { windowResizeFn } from '@dt-frames/core';
13
+
14
+ const wrapperRef = ref(null);
15
+ const spinRef = ref(null);
16
+ const realHeightRef = ref(0);
17
+ const minRealHeightRef = ref(0);
18
+ let realHeight = 0;
19
+
20
+ const props = defineProps({
21
+ loading : { type: Boolean },
22
+ useWrapper : { type: Boolean, default: true },
23
+ modalHeaderHeight : { type: Number, default: 55 },
24
+ modalFooterHeight : { type: Number, default: 58 },
25
+ minHeight : { type: Number, default: 200 },
26
+ height : { type: Number },
27
+ footerOffset : { type: Number, default: 0 },
28
+ visible : { type: Boolean },
29
+ fullScreen : { type: Boolean },
30
+ loadingTip : { type: String },
31
+ });
32
+
33
+ const emits = defineEmits(['ext-height', 'height-change']);
34
+
35
+ const spinStyle = computed(() => {
36
+ return {
37
+ minHeight: `${props.minHeight}px`,
38
+ [props.fullScreen ? 'height' : 'maxHeight']: `${unref(realHeightRef)}px`,
39
+ };
40
+ });
41
+
42
+ onMounted(() => {
43
+ const { modalHeaderHeight, modalFooterHeight } = props;
44
+ emits('ext-height', modalHeaderHeight + modalFooterHeight);
45
+ });
46
+
47
+ async function setModalHeight() {
48
+ if (!props.visible) return;
49
+ const wrapperRefDom = unref(wrapperRef);
50
+ if (!wrapperRefDom) return;
51
+
52
+ const bodyDom = wrapperRefDom.$el.parentElement;
53
+ if (!bodyDom) return;
54
+ bodyDom.style.padding = '0';
55
+ await nextTick();
56
+
57
+ try {
58
+ const modalDom = bodyDom.parentElement && bodyDom.parentElement.parentElement;
59
+ if (!modalDom) return;
60
+
61
+ const modalRect = getComputedStyle(modalDom as Element).top;
62
+ const modalTop = Number.parseInt(modalRect);
63
+
64
+ let maxHeight =
65
+ window.innerHeight -
66
+ modalTop * 2 +
67
+ (props.footerOffset! || 0) -
68
+ props.modalFooterHeight -
69
+ props.modalHeaderHeight;
70
+
71
+ // 距离顶部过进会出现滚动条
72
+ if (modalTop < 40) {
73
+ maxHeight -= 26;
74
+ }
75
+ await nextTick();
76
+ const spinEl = unref(spinRef);
77
+
78
+ if (!spinEl) return;
79
+ await nextTick();
80
+ realHeight = spinEl.scrollHeight;
81
+
82
+ if (props.fullScreen) {
83
+ console.log(props.modalFooterHeight,props.modalHeaderHeight)
84
+ realHeightRef.value =
85
+ window.innerHeight - props.modalFooterHeight - props.modalHeaderHeight;
86
+ } else {
87
+ realHeightRef.value = props.height
88
+ ? props.height
89
+ : realHeight > maxHeight
90
+ ? maxHeight
91
+ : realHeight;
92
+ }
93
+ emits('height-change', unref(realHeightRef));
94
+ } catch (error) {
95
+ console.log(error);
96
+ }
97
+
98
+ }
99
+
100
+ windowResizeFn(setModalHeight.bind(null, false));
101
+
102
+ watchEffect(() => {
103
+ props.useWrapper && setModalHeight();
104
+ });
105
+
106
+ watch(
107
+ () => props.fullScreen,
108
+ (v) => {
109
+ setModalHeight();
110
+ if (!v) {
111
+ realHeightRef.value = minRealHeightRef.value;
112
+ } else {
113
+ minRealHeightRef.value = realHeightRef.value;
114
+ }
115
+ },
116
+ );
117
+
118
+ </script>
@@ -0,0 +1,30 @@
1
+ import { defineComponent, Slots, toRefs, unref } from "vue";
2
+ import { Modal } from 'ant-design-vue';
3
+ import { useAttrs, useSlots } from '@dt-frames/core';
4
+ import { basicProps } from '../props';
5
+ import { useDragMove } from "../hooks/useDrag";
6
+
7
+
8
+ export default defineComponent({
9
+ name: 'Modal',
10
+ inheritAttrs: false,
11
+ props: basicProps,
12
+ emits: ['cancel'],
13
+ setup( props, { slots } ){
14
+ const { visible, draggable, destroyOnClose } = toRefs(props);
15
+ const attrs = useAttrs();
16
+
17
+ useDragMove({
18
+ visible,
19
+ destroyOnClose,
20
+ draggable,
21
+ })
22
+
23
+ const { extendSlots } = useSlots();
24
+
25
+ return () => {
26
+ const propsData = { ...unref(attrs), ...props } as any;
27
+ return <Modal {...propsData}>{extendSlots(slots as any)}</Modal>;
28
+ };
29
+ }
30
+ })
@@ -0,0 +1,38 @@
1
+ <template>
2
+ <slot name="appendFooter"></slot>
3
+ <FormButtons
4
+ :mode="'dialog'"
5
+ :buttonList="buttonActions"
6
+ @handle-method="handleMethod($event)"
7
+ ></FormButtons>
8
+ </template>
9
+
10
+ <script lang="ts" setup>
11
+ import { FormButtons, ButtonProps } from '../../../forms';
12
+
13
+ const emits = defineEmits([
14
+ 'handleSave',
15
+ 'handleCancel'
16
+ ])
17
+
18
+ const props = defineProps({
19
+ showSave: {
20
+ type: Boolean,
21
+ default: true
22
+ }
23
+ })
24
+
25
+ const buttonActions: ButtonProps[] = [
26
+ { name: '保存', preIcon: 'mdi:content-save', type: 'primary', flag: 'OK', show: props.showSave },
27
+ { name: '关闭', preIcon: 'mdi:close', flag: 'CANCEL' },
28
+ ]
29
+
30
+ // 处理按钮点击事件
31
+ function handleMethod(item: ButtonProps) {
32
+ switch( item.flag ) {
33
+ case 'OK': emits('handleSave'); break
34
+ case 'CANCEL': emits('handleCancel'); break
35
+ }
36
+ }
37
+
38
+ </script>
@@ -0,0 +1,107 @@
1
+ import { Ref, unref, watchEffect } from 'vue';
2
+ import { useTimeoutFn } from '@dt-frames/core';
3
+
4
+ export interface UseModalDragMoveContext {
5
+ draggable: Ref<boolean>;
6
+ destroyOnClose: Ref<boolean | undefined> | undefined;
7
+ visible: Ref<boolean>;
8
+ }
9
+
10
+ export function useDragMove(context: UseModalDragMoveContext) {
11
+ const getStyle = (dom: any, attr: any) => {
12
+ return getComputedStyle(dom)[attr];
13
+ };
14
+ const drag = (wrap: any) => {
15
+ if (!wrap) return;
16
+ wrap.setAttribute('data-drag', unref(context.draggable));
17
+ const dialogHeaderEl = wrap.querySelector('.ant-modal-header');
18
+ const dragDom = wrap.querySelector('.ant-modal');
19
+
20
+ if (!dialogHeaderEl || !dragDom || !unref(context.draggable)) return;
21
+
22
+ dialogHeaderEl.style.cursor = 'move';
23
+
24
+ dialogHeaderEl.onmousedown = (e: any) => {
25
+ if (!e) return;
26
+ // 鼠标按下,计算当前元素距离可视区的距离
27
+ const disX = e.clientX;
28
+ const disY = e.clientY;
29
+ const screenWidth = document.body.clientWidth; // body当前宽度
30
+ const screenHeight = document.documentElement.clientHeight; // 可见区域高度(应为body高度,可某些环境下无法获取)
31
+
32
+ const dragDomWidth = dragDom.offsetWidth; // 对话框宽度
33
+ const dragDomheight = dragDom.offsetHeight; // 对话框高度
34
+
35
+ const minDragDomLeft = dragDom.offsetLeft;
36
+
37
+ const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth;
38
+ const minDragDomTop = dragDom.offsetTop;
39
+ const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomheight;
40
+ // 获取到的值带px 正则匹配替换
41
+ const domLeft = getStyle(dragDom, 'left');
42
+ const domTop = getStyle(dragDom, 'top');
43
+ let styL = +domLeft;
44
+ let styT = +domTop;
45
+
46
+ // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
47
+ if (domLeft.includes('%')) {
48
+ styL = +document.body.clientWidth * (+domLeft.replace(/%/g, '') / 100);
49
+ styT = +document.body.clientHeight * (+domTop.replace(/%/g, '') / 100);
50
+ } else {
51
+ styL = +domLeft.replace(/px/g, '');
52
+ styT = +domTop.replace(/px/g, '');
53
+ }
54
+
55
+ document.onmousemove = function (e) {
56
+ // 通过事件委托,计算移动的距离
57
+ let left = e.clientX - disX;
58
+ let top = e.clientY - disY;
59
+
60
+ // 边界处理
61
+ if (-left > minDragDomLeft) {
62
+ left = -minDragDomLeft;
63
+ } else if (left > maxDragDomLeft) {
64
+ left = maxDragDomLeft;
65
+ }
66
+
67
+ if (-top > minDragDomTop) {
68
+ top = -minDragDomTop;
69
+ } else if (top > maxDragDomTop) {
70
+ top = maxDragDomTop;
71
+ }
72
+
73
+ // 移动当前元素
74
+ dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`;
75
+ };
76
+
77
+ document.onmouseup = () => {
78
+ document.onmousemove = null;
79
+ document.onmouseup = null;
80
+ };
81
+ };
82
+ };
83
+
84
+ const handleDrag = () => {
85
+ const dragWraps = document.querySelectorAll('.ant-modal-wrap');
86
+ for (const wrap of Array.from(dragWraps)) {
87
+ if (!wrap) continue;
88
+ const display = getStyle(wrap, 'display');
89
+ const draggable = wrap.getAttribute('data-drag');
90
+ if (display !== 'none') {
91
+ // 拖拽位置
92
+ if (draggable === null || unref(context.destroyOnClose)) {
93
+ drag(wrap);
94
+ }
95
+ }
96
+ }
97
+ };
98
+
99
+ watchEffect(() => {
100
+ if (!unref(context.visible) || !unref(context.draggable)) {
101
+ return;
102
+ }
103
+ useTimeoutFn(() => {
104
+ handleDrag();
105
+ }, 30);
106
+ });
107
+ }
@@ -0,0 +1,27 @@
1
+ import { ref, Ref, unref, computed } from "vue";
2
+
3
+ interface FullScreenOptions{
4
+ wrapClassName: Ref<string | undefined>;
5
+ modalWrapperRef: Ref<any>;
6
+ extHeightRef: Ref<number>;
7
+ }
8
+
9
+ export function useFullScreen(options: FullScreenOptions) {
10
+ const fullScreenRef = ref(false);
11
+
12
+ const getWrapClassName = computed(() => {
13
+ const clsName = unref(options.wrapClassName) || '';
14
+ return unref(fullScreenRef) ? `fullscreen-modal ${clsName} ` : unref(clsName);
15
+ });
16
+
17
+ function toggleFullScreen(e: Event) {
18
+ e && e.stopPropagation();
19
+ fullScreenRef.value = !unref(fullScreenRef);
20
+ }
21
+
22
+ return {
23
+ fullScreenRef,
24
+ getWrapClassName,
25
+ toggleFullScreen
26
+ }
27
+ }
@@ -0,0 +1,177 @@
1
+ import { error, isFunction, Nullable } from "@dt-frames/core";
2
+ import { ModalProps } from "@dt-frames/core"
3
+ import { isEqual } from 'lodash-es'
4
+ import { tryOnUnmounted } from '@vueuse/core'
5
+ import { basicProps } from '../props'
6
+ import { ModalMethods, ReturnInnerMethods, ReturnMethods, UseModalInnerReturnType, UseModalReturnType } from '../types/modal.type';
7
+ import { computed, ExtractPropTypes, getCurrentInstance, nextTick, onUnmounted, reactive, ref, toRaw, unref, watch, watchEffect } from "vue";
8
+
9
+ const dataTransfer = reactive<any>({})
10
+ const visibleData = reactive<{ [key: number]: boolean }>({})
11
+
12
+ export function useModalOut(): UseModalReturnType{
13
+ const modal = ref<Nullable<ModalMethods>>(null)
14
+ const loaded = ref<Nullable<boolean>>(true)
15
+ const uid = ref<string>('')
16
+
17
+ function register(modalMethod: ModalMethods, uuid: string) {
18
+ if( !getCurrentInstance() ) {
19
+ throw new Error('useModal只能在setup()或者函数中使用')
20
+ }
21
+
22
+ uid.value = uuid
23
+
24
+ onUnmounted(() => {
25
+ modal.value = null
26
+ loaded.value = false
27
+ dataTransfer[unref(uid)] = null
28
+ })
29
+
30
+ if( unref(loaded) && modalMethod === unref(modal) ) return
31
+
32
+ modal.value = modalMethod
33
+ loaded.value = true
34
+ modalMethod.emitVisible = (visible: boolean, uid: number) => {
35
+ visibleData[uid] = visible
36
+ }
37
+ }
38
+
39
+ const getInstance = () => {
40
+ const instance = unref( modal )
41
+
42
+ if( !instance ) {
43
+ error('useModalOut 实例未定义')
44
+ }
45
+
46
+ return instance
47
+ }
48
+
49
+ const methods: ReturnMethods = {
50
+ // 设置弹框属性
51
+ setModalProps: ( props: Partial<ModalProps> ) => {
52
+ getInstance()?.setModalProps(props)
53
+ },
54
+
55
+ getVisible: computed(() => {
56
+ return visibleData[~~unref(uid)]
57
+ }),
58
+
59
+ redoModalHeight: () => {
60
+ getInstance()?.redoModalHeight?.()
61
+ },
62
+
63
+ openModal: <T = any>(visable = true, data?: T, openOnSet = true) => {
64
+ getInstance()?.setModalProps({
65
+ visible: visable
66
+ })
67
+
68
+ if( !data ) return
69
+
70
+ const id = unref(uid)
71
+
72
+ if( openOnSet ) {
73
+ dataTransfer[id] = toRaw(data);
74
+ return;
75
+ }
76
+
77
+ const equal = isEqual(toRaw(dataTransfer[id]), toRaw(data))
78
+ if (!equal) {
79
+ dataTransfer[id] = toRaw(data);
80
+ }
81
+ },
82
+
83
+ closeModal: () => {
84
+ getInstance()?.setModalProps({ visible: false })
85
+ }
86
+ }
87
+
88
+ return [register, methods]
89
+ }
90
+
91
+
92
+ export function useModal(props?: Partial<ModalProps>,callbackFn?: Function): UseModalInnerReturnType {
93
+ const modalInstanceRef = ref<Nullable<ModalMethods>>(null)
94
+ const currentInstance = getCurrentInstance()
95
+ const uidRef = ref<string>('')
96
+
97
+ const getInstance = () => {
98
+ const instance = unref(modalInstanceRef)
99
+ if( !instance ) {
100
+ error('useModal 实例未定义')
101
+ }
102
+
103
+ return instance
104
+ }
105
+
106
+ const register = ( modalInstance: ModalMethods, uuid: string) => {
107
+ tryOnUnmounted(() => {
108
+ modalInstanceRef.value = null;
109
+ })
110
+
111
+ uidRef.value = uuid
112
+ modalInstanceRef.value = modalInstance
113
+
114
+ /**
115
+ * 深度监听props的变化,首次监听
116
+ * 动态更改表单实例
117
+ */
118
+ watch(
119
+ () => props,
120
+ () => props && modalInstance.setModalProps(props),
121
+ {
122
+ immediate: true,
123
+ deep: true
124
+ }
125
+ )
126
+
127
+ currentInstance?.emit('register', modalInstance, uuid)
128
+ }
129
+
130
+ watchEffect(() => {
131
+ const data = dataTransfer[unref(uidRef)]
132
+ if (!data) return
133
+ if (!callbackFn || !isFunction(callbackFn)) return
134
+ nextTick(() => {
135
+ callbackFn(data);
136
+ })
137
+ })
138
+
139
+ const methods: ReturnInnerMethods = {
140
+ changeLoading: (loading = true) => {
141
+ getInstance()?.setModalProps({ loading })
142
+ },
143
+ getVisible: computed(() => visibleData[~~unref(uidRef)]),
144
+ closeModal: () => {
145
+ getInstance()?.setModalProps({ visible: false });
146
+ },
147
+ openModal: <T = any>(visable = true, data?: T, openOnSet = true) => {
148
+ getInstance()?.setModalProps({
149
+ visible: visable
150
+ })
151
+
152
+ if( !data ) return
153
+
154
+ const id = unref(uidRef)
155
+
156
+ if( openOnSet ) {
157
+ dataTransfer[id] = toRaw(data);
158
+ return;
159
+ }
160
+
161
+ const equal = isEqual(toRaw(dataTransfer[id]), toRaw(data))
162
+ if (!equal) {
163
+ dataTransfer[id] = toRaw(data);
164
+ }
165
+ },
166
+ setModalProps: (props: Partial<ModalProps>) => {
167
+ getInstance()?.setModalProps(props);
168
+ },
169
+
170
+ redoModalHeight: () => {
171
+ const callRedo = getInstance()?.redoModalHeight;
172
+ callRedo && callRedo();
173
+ },
174
+ }
175
+
176
+ return [register, methods]
177
+ }
@@ -0,0 +1,60 @@
1
+ .fullscreen-modal {
2
+ overflow: hidden;
3
+
4
+ .ant-modal {
5
+ top: 0 !important;
6
+ right: 0 !important;
7
+ bottom: 0 !important;
8
+ left: 0 !important;
9
+ width: 100% !important;
10
+ height: 100%;
11
+ padding: 0;
12
+
13
+ &-content {
14
+ height: 100%;
15
+ }
16
+ }
17
+ }
18
+
19
+ .dt-basic-modal-close {
20
+ display: flex;
21
+ height: 95%;
22
+ align-items: center;
23
+ justify-content: space-around;
24
+
25
+ > span {
26
+ margin-left: 48px;
27
+ font-size: 16px;
28
+ }
29
+
30
+ &--can-full {
31
+ margin-right: 15px;
32
+ > i {
33
+ padding-right: 15px;
34
+ width: 40px;
35
+ }
36
+ }
37
+
38
+ &:not(&--can-full) {
39
+ > i:nth-child(1) {
40
+ &:hover {
41
+ font-weight: 700;
42
+ }
43
+ }
44
+
45
+ &>i:nth-child(1) {
46
+ display: inline-block;
47
+ padding: 10px;
48
+
49
+ &:hover {
50
+ color: @primary-color;
51
+ }
52
+ }
53
+
54
+ &>i:last-child {
55
+ &:hover {
56
+ color: @error-color;
57
+ }
58
+ }
59
+ }
60
+ }