el-plus 0.0.113 → 0.0.115

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 (255) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +85 -85
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +15 -5
  5. package/dist/index.full.min.js +4 -4
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +4 -4
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +15 -6
  10. package/docs/CHANGELOG.md +5 -5
  11. package/docs/api-examples.md +49 -49
  12. package/docs/components/attachment.md +118 -111
  13. package/docs/components/buttons.md +179 -179
  14. package/docs/components/custom-column.md +70 -70
  15. package/docs/components/date-picker-range.md +61 -61
  16. package/docs/components/dialog.md +104 -104
  17. package/docs/components/footer-info.md +101 -101
  18. package/docs/components/form.md +211 -211
  19. package/docs/components/header.md +117 -117
  20. package/docs/components/input.md +111 -111
  21. package/docs/components/link.md +63 -63
  22. package/docs/components/search-list-page.md +91 -91
  23. package/docs/components/select.md +249 -249
  24. package/docs/components/table.md +145 -145
  25. package/docs/components/title.md +70 -70
  26. package/docs/components/use-choose-dialog.md +114 -114
  27. package/docs/components/use-confirm-dialog.md +86 -86
  28. package/docs/components/use-form-dialog.md +85 -85
  29. package/docs/guide/markdown-examples.md +85 -85
  30. package/docs/hooks/use-navigation.md +131 -131
  31. package/docs/hooks/use-utils.md +162 -162
  32. package/docs/index.md +25 -25
  33. package/docs/overview.md +99 -99
  34. package/docs/pages/detail.md +66 -66
  35. package/docs/pages/list.md +74 -74
  36. package/docs/pages/router.md +151 -151
  37. package/es/components/attachment/index.d.ts +12 -2
  38. package/es/components/attachment/index.mjs +1 -1
  39. package/es/components/attachment/index.mjs.map +1 -1
  40. package/es/components/attachment/src/attachment.d.ts +6 -0
  41. package/es/components/attachment/src/attachment.mjs +7 -1
  42. package/es/components/attachment/src/attachment.mjs.map +1 -1
  43. package/es/components/attachment/src/attachment.vue.d.ts +5 -1
  44. package/es/components/attachment/src/attachment.vue2.mjs +7 -4
  45. package/es/components/attachment/src/attachment.vue2.mjs.map +1 -1
  46. package/es/components/attachment/src/use-attachment.mjs.map +1 -1
  47. package/es/components/buttons/index.mjs.map +1 -1
  48. package/es/components/buttons/src/buttons-vue.mjs.map +1 -1
  49. package/es/components/buttons/src/buttons.mjs.map +1 -1
  50. package/es/components/custom-column/index.mjs.map +1 -1
  51. package/es/components/custom-column/src/custom-column.mjs.map +1 -1
  52. package/es/components/custom-column/src/custom-column.vue2.mjs.map +1 -1
  53. package/es/components/date-picker-range/index.mjs.map +1 -1
  54. package/es/components/date-picker-range/src/date-picker-range.mjs.map +1 -1
  55. package/es/components/date-picker-range/src/date-picker-range.vue2.mjs.map +1 -1
  56. package/es/components/footer-info/index.mjs.map +1 -1
  57. package/es/components/footer-info/src/footer-info.mjs.map +1 -1
  58. package/es/components/footer-info/src/footer-info.vue2.mjs.map +1 -1
  59. package/es/components/form/index.mjs.map +1 -1
  60. package/es/components/form/src/form-item-vue.mjs.map +1 -1
  61. package/es/components/form/src/form-item.mjs.map +1 -1
  62. package/es/components/form/src/form.mjs.map +1 -1
  63. package/es/components/form/src/form.vue2.mjs.map +1 -1
  64. package/es/components/form/src/hooks/use-form-item.mjs.map +1 -1
  65. package/es/components/form/src/hooks/use-form.mjs.map +1 -1
  66. package/es/components/header/index.mjs.map +1 -1
  67. package/es/components/header/src/header.mjs.map +1 -1
  68. package/es/components/header/src/header.vue2.mjs.map +1 -1
  69. package/es/components/header/src/use-header.mjs.map +1 -1
  70. package/es/components/index.mjs +1 -1
  71. package/es/components/input/index.mjs.map +1 -1
  72. package/es/components/input/src/input.mjs.map +1 -1
  73. package/es/components/input/src/input.vue2.mjs.map +1 -1
  74. package/es/components/link/index.mjs.map +1 -1
  75. package/es/components/link/src/link.mjs.map +1 -1
  76. package/es/components/link/src/link.vue2.mjs.map +1 -1
  77. package/es/components/search-list-page/index.mjs.map +1 -1
  78. package/es/components/search-list-page/src/search-list-page.mjs.map +1 -1
  79. package/es/components/search-list-page/src/search-list-page.vue2.mjs.map +1 -1
  80. package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
  81. package/es/components/select/index.mjs.map +1 -1
  82. package/es/components/select/src/select.mjs.map +1 -1
  83. package/es/components/select/src/select.vue2.mjs.map +1 -1
  84. package/es/components/select/src/use-select.mjs.map +1 -1
  85. package/es/components/table/index.mjs.map +1 -1
  86. package/es/components/table/src/table.mjs.map +1 -1
  87. package/es/components/table/src/table.vue2.mjs.map +1 -1
  88. package/es/components/table/src/use-table.mjs.map +1 -1
  89. package/es/components/title/index.mjs.map +1 -1
  90. package/es/components/title/src/title.mjs.map +1 -1
  91. package/es/components/title/src/title.vue2.mjs.map +1 -1
  92. package/es/components/title/src/use-title.mjs.map +1 -1
  93. package/es/components/uni-vue/index.mjs.map +1 -1
  94. package/es/components/uni-vue/src/uni-vue.mjs.map +1 -1
  95. package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
  96. package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
  97. package/es/components.mjs.map +1 -1
  98. package/es/directives/permission/index.mjs.map +1 -1
  99. package/es/directives/repeat-click/index.mjs.map +1 -1
  100. package/es/hooks/dialog/use-choose-dialog.mjs.map +1 -1
  101. package/es/hooks/dialog/use-confirm-dialog.mjs.map +1 -1
  102. package/es/hooks/dialog/use-dialog.mjs.map +1 -1
  103. package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
  104. package/es/hooks/use-locale.mjs.map +1 -1
  105. package/es/hooks/use-navigation.mjs.map +1 -1
  106. package/es/hooks/use-request.mjs.map +1 -1
  107. package/es/hooks/use-template-promise.mjs.map +1 -1
  108. package/es/hooks/use-utils.mjs.map +1 -1
  109. package/es/index.mjs +1 -1
  110. package/es/index.mjs.map +1 -1
  111. package/es/locale/lang/en.mjs.map +1 -1
  112. package/es/locale/lang/zh-cn.mjs.map +1 -1
  113. package/es/package.json.mjs +1 -1
  114. package/es/plugins/globalProperties.mjs.map +1 -1
  115. package/es/types/global.d.ts +30 -30
  116. package/es/types/index.d.ts +2 -2
  117. package/es/types/utils.d.ts +19 -19
  118. package/es/utils/bem.mjs.map +1 -1
  119. package/es/utils/cookie.mjs.map +1 -1
  120. package/es/utils/dom.mjs.map +1 -1
  121. package/es/utils/env.mjs.map +1 -1
  122. package/es/utils/file.mjs.map +1 -1
  123. package/es/utils/http/core/modules/interceptor.mjs.map +1 -1
  124. package/es/utils/http/core/modules/loading.mjs.map +1 -1
  125. package/es/utils/http/core/preset-interceptors.mjs.map +1 -1
  126. package/es/utils/http/core/request-client.mjs.map +1 -1
  127. package/es/utils/http/index.mjs.map +1 -1
  128. package/es/utils/mitt.mjs.map +1 -1
  129. package/es/utils/navigation.mjs.map +1 -1
  130. package/es/utils/props.mjs.map +1 -1
  131. package/es/utils/time.mjs.map +1 -1
  132. package/es/utils/utils.mjs.map +1 -1
  133. package/es/utils/with-install.mjs.map +1 -1
  134. package/global.d.ts +21 -21
  135. package/lib/components/attachment/index.d.ts +12 -2
  136. package/lib/components/attachment/index.js +1 -0
  137. package/lib/components/attachment/index.js.map +1 -1
  138. package/lib/components/attachment/src/attachment.d.ts +6 -0
  139. package/lib/components/attachment/src/attachment.js +7 -0
  140. package/lib/components/attachment/src/attachment.js.map +1 -1
  141. package/lib/components/attachment/src/attachment.vue.d.ts +5 -1
  142. package/lib/components/attachment/src/attachment.vue2.js +6 -3
  143. package/lib/components/attachment/src/attachment.vue2.js.map +1 -1
  144. package/lib/components/attachment/src/use-attachment.js.map +1 -1
  145. package/lib/components/buttons/index.js.map +1 -1
  146. package/lib/components/buttons/src/buttons-vue.js.map +1 -1
  147. package/lib/components/buttons/src/buttons.js.map +1 -1
  148. package/lib/components/custom-column/index.js.map +1 -1
  149. package/lib/components/custom-column/src/custom-column.js.map +1 -1
  150. package/lib/components/custom-column/src/custom-column.vue2.js.map +1 -1
  151. package/lib/components/date-picker-range/index.js.map +1 -1
  152. package/lib/components/date-picker-range/src/date-picker-range.js.map +1 -1
  153. package/lib/components/date-picker-range/src/date-picker-range.vue2.js.map +1 -1
  154. package/lib/components/footer-info/index.js.map +1 -1
  155. package/lib/components/footer-info/src/footer-info.js.map +1 -1
  156. package/lib/components/footer-info/src/footer-info.vue2.js.map +1 -1
  157. package/lib/components/form/index.js.map +1 -1
  158. package/lib/components/form/src/form-item-vue.js.map +1 -1
  159. package/lib/components/form/src/form-item.js.map +1 -1
  160. package/lib/components/form/src/form.js.map +1 -1
  161. package/lib/components/form/src/form.vue2.js.map +1 -1
  162. package/lib/components/form/src/hooks/use-form-item.js.map +1 -1
  163. package/lib/components/form/src/hooks/use-form.js.map +1 -1
  164. package/lib/components/header/index.js.map +1 -1
  165. package/lib/components/header/src/header.js.map +1 -1
  166. package/lib/components/header/src/header.vue2.js.map +1 -1
  167. package/lib/components/header/src/use-header.js.map +1 -1
  168. package/lib/components/index.js +1 -0
  169. package/lib/components/index.js.map +1 -1
  170. package/lib/components/input/index.js.map +1 -1
  171. package/lib/components/input/src/input.js.map +1 -1
  172. package/lib/components/input/src/input.vue2.js.map +1 -1
  173. package/lib/components/link/index.js.map +1 -1
  174. package/lib/components/link/src/link.js.map +1 -1
  175. package/lib/components/link/src/link.vue2.js.map +1 -1
  176. package/lib/components/search-list-page/index.js.map +1 -1
  177. package/lib/components/search-list-page/src/search-list-page.js.map +1 -1
  178. package/lib/components/search-list-page/src/search-list-page.vue2.js.map +1 -1
  179. package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
  180. package/lib/components/select/index.js.map +1 -1
  181. package/lib/components/select/src/select.js.map +1 -1
  182. package/lib/components/select/src/select.vue2.js.map +1 -1
  183. package/lib/components/select/src/use-select.js.map +1 -1
  184. package/lib/components/table/index.js.map +1 -1
  185. package/lib/components/table/src/table.js.map +1 -1
  186. package/lib/components/table/src/table.vue2.js.map +1 -1
  187. package/lib/components/table/src/use-table.js.map +1 -1
  188. package/lib/components/title/index.js.map +1 -1
  189. package/lib/components/title/src/title.js.map +1 -1
  190. package/lib/components/title/src/title.vue2.js.map +1 -1
  191. package/lib/components/title/src/use-title.js.map +1 -1
  192. package/lib/components/uni-vue/index.js.map +1 -1
  193. package/lib/components/uni-vue/src/uni-vue.js.map +1 -1
  194. package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
  195. package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
  196. package/lib/components.js.map +1 -1
  197. package/lib/directives/permission/index.js.map +1 -1
  198. package/lib/directives/repeat-click/index.js.map +1 -1
  199. package/lib/hooks/dialog/use-choose-dialog.js.map +1 -1
  200. package/lib/hooks/dialog/use-confirm-dialog.js.map +1 -1
  201. package/lib/hooks/dialog/use-dialog.js.map +1 -1
  202. package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
  203. package/lib/hooks/use-locale.js.map +1 -1
  204. package/lib/hooks/use-navigation.js.map +1 -1
  205. package/lib/hooks/use-request.js.map +1 -1
  206. package/lib/hooks/use-template-promise.js.map +1 -1
  207. package/lib/hooks/use-utils.js.map +1 -1
  208. package/lib/index.js +1 -0
  209. package/lib/index.js.map +1 -1
  210. package/lib/locale/lang/en.js.map +1 -1
  211. package/lib/locale/lang/zh-cn.js.map +1 -1
  212. package/lib/package.json.js +1 -1
  213. package/lib/plugins/globalProperties.js.map +1 -1
  214. package/lib/types/global.d.ts +30 -30
  215. package/lib/types/index.d.ts +2 -2
  216. package/lib/types/utils.d.ts +19 -19
  217. package/lib/utils/bem.js.map +1 -1
  218. package/lib/utils/cookie.js.map +1 -1
  219. package/lib/utils/dom.js.map +1 -1
  220. package/lib/utils/env.js.map +1 -1
  221. package/lib/utils/file.js.map +1 -1
  222. package/lib/utils/http/core/modules/interceptor.js.map +1 -1
  223. package/lib/utils/http/core/modules/loading.js.map +1 -1
  224. package/lib/utils/http/core/preset-interceptors.js.map +1 -1
  225. package/lib/utils/http/core/request-client.js.map +1 -1
  226. package/lib/utils/http/index.js.map +1 -1
  227. package/lib/utils/mitt.js.map +1 -1
  228. package/lib/utils/navigation.js.map +1 -1
  229. package/lib/utils/props.js.map +1 -1
  230. package/lib/utils/time.js.map +1 -1
  231. package/lib/utils/utils.js.map +1 -1
  232. package/lib/utils/with-install.js.map +1 -1
  233. package/package.json +1 -1
  234. package/theme-chalk/base.css +1 -1
  235. package/theme-chalk/index.css +1 -1
  236. package/theme-chalk/src/attachment.scss +39 -39
  237. package/theme-chalk/src/base.scss +2 -2
  238. package/theme-chalk/src/buttons.scss +22 -22
  239. package/theme-chalk/src/common/common.scss +7 -4
  240. package/theme-chalk/src/common/transition.scss +9 -9
  241. package/theme-chalk/src/custom-column.scss +55 -55
  242. package/theme-chalk/src/dialog.scss +62 -62
  243. package/theme-chalk/src/footer-info.scss +18 -18
  244. package/theme-chalk/src/form.scss +80 -72
  245. package/theme-chalk/src/header.scss +19 -19
  246. package/theme-chalk/src/index.scss +15 -15
  247. package/theme-chalk/src/link.scss +5 -5
  248. package/theme-chalk/src/mixins/config.scss +3 -3
  249. package/theme-chalk/src/mixins/mixins.scss +37 -37
  250. package/theme-chalk/src/search-list-page.scss +22 -22
  251. package/theme-chalk/src/select.scss +10 -10
  252. package/theme-chalk/src/table.scss +91 -91
  253. package/theme-chalk/src/tabs.scss +55 -55
  254. package/theme-chalk/src/title.scss +52 -52
  255. package/theme-chalk/src/uni-vue.scss +10 -10
@@ -1,131 +1,131 @@
1
- # useNavigation 导航
2
-
3
- 提供路由导航、标签页管理和页面模式控制等功能。
4
-
5
- ## 基本用法
6
-
7
- ```vue
8
- <template>
9
- <div>
10
- <el-button @click="handleEdit">编辑</el-button>
11
- <el-button @click="handleGoto">跳转新页面</el-button>
12
- <el-button @click="handleClose">关闭当前页</el-button>
13
- </div>
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import { useNavigation } from 'el-plus'
18
-
19
- const { $goto, $closeTag, mode, setMode, isBrowse, isEdit, isAdd } = useNavigation({
20
- onModeChange: (newMode) => {
21
- console.log('模式变化:', newMode)
22
- }
23
- })
24
-
25
- // 编辑模式
26
- const handleEdit = () => {
27
- setMode('edit')
28
- }
29
-
30
- // 跳转到新页面
31
- const handleGoto = () => {
32
- $goto({
33
- name: 'detail',
34
- query: { id: '123' }
35
- })
36
- }
37
-
38
- // 关闭当前标签页
39
- const handleClose = () => {
40
- $closeTag()
41
- }
42
- </script>
43
- ```
44
-
45
- ## 参数
46
-
47
- ### Config 配置
48
-
49
- | 属性 | 说明 | 类型 | 默认值 |
50
- |------|------|------|--------|
51
- | onModeChange | 模式变化时的回调函数 | `(mode: PageMode) => void` | - |
52
-
53
- ## 返回值
54
-
55
- | 属性 | 说明 | 类型 |
56
- |------|------|------|
57
- | $goto | 打开新窗口或跳转路由 | `(config: NavigationConfig) => void` |
58
- | $closeTag | 关闭当前标签页 | `() => void` |
59
- | mode | 当前页面模式 | `ComputedRef<PageMode>` |
60
- | isBrowse | 是否为浏览模式 | `ComputedRef<boolean>` |
61
- | isEdit | 是否为编辑模式 | `ComputedRef<boolean>` |
62
- | isAdd | 是否为新增模式 | `ComputedRef<boolean>` |
63
- | setMode | 设置页面模式 | `(mode: PageMode, callback?: (mode: PageMode) => void) => void` |
64
-
65
- ## 类型定义
66
-
67
- ### PageMode
68
-
69
- ```ts
70
- type PageMode = 'add' | 'edit' | 'browse'
71
- ```
72
-
73
- ### NavigationConfig
74
-
75
- ```ts
76
- interface NavigationConfig {
77
- id?: number | string // 菜单id
78
- name?: string // 路由模块name,适用于内部跳转
79
- title?: string // 菜单名称,适用于传外部url跳转
80
- url?: string // 菜单url
81
- query?: Record<string, any> // url参数
82
- }
83
- ```
84
-
85
- ## 功能说明
86
-
87
- ### $goto 路由跳转
88
-
89
- 支持两种跳转方式:
90
-
91
- **内部路由跳转**
92
-
93
- ```ts
94
- $goto({
95
- name: 'userDetail',
96
- query: { id: '123', mode: 'browse' }
97
- })
98
- ```
99
-
100
- **外部URL跳转**
101
-
102
- ```ts
103
- $goto({
104
- url: 'https://example.com',
105
- title: '外部链接'
106
- })
107
- ```
108
-
109
- ### setMode 模式切换
110
-
111
- 用于详情页的模式切换,自动更新URL参数并触发回调。
112
-
113
- ```ts
114
- // 切换到编辑模式
115
- setMode('edit')
116
-
117
- // 切换并执行回调
118
- setMode('edit', (mode) => {
119
- console.log('已切换到编辑模式')
120
- })
121
- ```
122
-
123
- ### $closeTag 关闭标签页
124
-
125
- 关闭当前标签页并自动切换到前一个标签页,需要在支持标签页管理的环境中使用。
126
-
127
- ## 注意事项
128
-
129
- - 该 hook 依赖 `vue-router`,必须在路由环境中使用
130
- - `$closeTag` 方法依赖父窗口的标签页管理功能
131
- - `setMode` 会修改URL的query参数,刷新页面后模式会保持
1
+ # useNavigation 导航
2
+
3
+ 提供路由导航、标签页管理和页面模式控制等功能。
4
+
5
+ ## 基本用法
6
+
7
+ ```vue
8
+ <template>
9
+ <div>
10
+ <el-button @click="handleEdit">编辑</el-button>
11
+ <el-button @click="handleGoto">跳转新页面</el-button>
12
+ <el-button @click="handleClose">关闭当前页</el-button>
13
+ </div>
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import { useNavigation } from 'el-plus'
18
+
19
+ const { $goto, $closeTag, mode, setMode, isBrowse, isEdit, isAdd } = useNavigation({
20
+ onModeChange: (newMode) => {
21
+ console.log('模式变化:', newMode)
22
+ }
23
+ })
24
+
25
+ // 编辑模式
26
+ const handleEdit = () => {
27
+ setMode('edit')
28
+ }
29
+
30
+ // 跳转到新页面
31
+ const handleGoto = () => {
32
+ $goto({
33
+ name: 'detail',
34
+ query: { id: '123' }
35
+ })
36
+ }
37
+
38
+ // 关闭当前标签页
39
+ const handleClose = () => {
40
+ $closeTag()
41
+ }
42
+ </script>
43
+ ```
44
+
45
+ ## 参数
46
+
47
+ ### Config 配置
48
+
49
+ | 属性 | 说明 | 类型 | 默认值 |
50
+ |------|------|------|--------|
51
+ | onModeChange | 模式变化时的回调函数 | `(mode: PageMode) => void` | - |
52
+
53
+ ## 返回值
54
+
55
+ | 属性 | 说明 | 类型 |
56
+ |------|------|------|
57
+ | $goto | 打开新窗口或跳转路由 | `(config: NavigationConfig) => void` |
58
+ | $closeTag | 关闭当前标签页 | `() => void` |
59
+ | mode | 当前页面模式 | `ComputedRef<PageMode>` |
60
+ | isBrowse | 是否为浏览模式 | `ComputedRef<boolean>` |
61
+ | isEdit | 是否为编辑模式 | `ComputedRef<boolean>` |
62
+ | isAdd | 是否为新增模式 | `ComputedRef<boolean>` |
63
+ | setMode | 设置页面模式 | `(mode: PageMode, callback?: (mode: PageMode) => void) => void` |
64
+
65
+ ## 类型定义
66
+
67
+ ### PageMode
68
+
69
+ ```ts
70
+ type PageMode = 'add' | 'edit' | 'browse'
71
+ ```
72
+
73
+ ### NavigationConfig
74
+
75
+ ```ts
76
+ interface NavigationConfig {
77
+ id?: number | string // 菜单id
78
+ name?: string // 路由模块name,适用于内部跳转
79
+ title?: string // 菜单名称,适用于传外部url跳转
80
+ url?: string // 菜单url
81
+ query?: Record<string, any> // url参数
82
+ }
83
+ ```
84
+
85
+ ## 功能说明
86
+
87
+ ### $goto 路由跳转
88
+
89
+ 支持两种跳转方式:
90
+
91
+ **内部路由跳转**
92
+
93
+ ```ts
94
+ $goto({
95
+ name: 'userDetail',
96
+ query: { id: '123', mode: 'browse' }
97
+ })
98
+ ```
99
+
100
+ **外部URL跳转**
101
+
102
+ ```ts
103
+ $goto({
104
+ url: 'https://example.com',
105
+ title: '外部链接'
106
+ })
107
+ ```
108
+
109
+ ### setMode 模式切换
110
+
111
+ 用于详情页的模式切换,自动更新URL参数并触发回调。
112
+
113
+ ```ts
114
+ // 切换到编辑模式
115
+ setMode('edit')
116
+
117
+ // 切换并执行回调
118
+ setMode('edit', (mode) => {
119
+ console.log('已切换到编辑模式')
120
+ })
121
+ ```
122
+
123
+ ### $closeTag 关闭标签页
124
+
125
+ 关闭当前标签页并自动切换到前一个标签页,需要在支持标签页管理的环境中使用。
126
+
127
+ ## 注意事项
128
+
129
+ - 该 hook 依赖 `vue-router`,必须在路由环境中使用
130
+ - `$closeTag` 方法依赖父窗口的标签页管理功能
131
+ - `setMode` 会修改URL的query参数,刷新页面后模式会保持
@@ -1,162 +1,162 @@
1
- # useUtils 工具函数
2
-
3
- 提供常用的工具函数集合,包括时间处理、文件操作、Cookie管理等。
4
-
5
- ## 基本用法
6
-
7
- ```vue
8
- <script setup lang="ts">
9
- import { useUtils } from 'el-plus'
10
-
11
- const {
12
- getUnifyTime,
13
- dayjs,
14
- importFile,
15
- downloadFile,
16
- previewFile,
17
- Cookies
18
- } = useUtils()
19
-
20
- // 时间格式化
21
- const time = getUnifyTime('2024-01-01')
22
- const formatted = dayjs().format('YYYY-MM-DD HH:mm:ss')
23
-
24
- // 文件导入
25
- importFile().then(file => {
26
- console.log('导入的文件:', file)
27
- })
28
-
29
- // 文件下载
30
- downloadFile({ api: '/api/download', fileName: 'test.xlsx' })
31
-
32
- // 文件预览
33
- previewFile('/files/document.pdf')
34
-
35
- // Cookie 操作
36
- Cookies.set('token', 'xxx')
37
- const token = Cookies.get('token')
38
- </script>
39
- ```
40
-
41
- ## 返回值
42
-
43
- | 属性 | 说明 | 类型 |
44
- |------|------|------|
45
- | getUnifyTime | 统一时间处理函数 | `(time: string \| number \| Date) => string` |
46
- | dayjs | Day.js 实例 | `typeof dayjs` |
47
- | importFile | 文件导入函数 | `() => Promise<File>` |
48
- | downloadFile | 文件下载函数 | `(config: DownloadConfig) => Promise<void>` |
49
- | previewFile | 文件预览函数 | `(url: string) => void` |
50
- | Cookies | Cookie 操作对象 | `CookiesStatic` |
51
-
52
- ## 功能说明
53
-
54
- ### getUnifyTime 时间处理
55
-
56
- 统一时间格式处理函数。
57
-
58
- ```ts
59
- // 时间戳转格式化字符串
60
- const time1 = getUnifyTime(1609459200000)
61
-
62
- // Date对象转格式化字符串
63
- const time2 = getUnifyTime(new Date())
64
-
65
- // 字符串转格式化字符串
66
- const time3 = getUnifyTime('2024-01-01')
67
- ```
68
-
69
- ### dayjs 日期处理
70
-
71
- 提供 Day.js 的所有功能,用于日期格式化和计算。
72
-
73
- ```ts
74
- // 格式化当前时间
75
- const now = dayjs().format('YYYY-MM-DD HH:mm:ss')
76
-
77
- // 日期计算
78
- const tomorrow = dayjs().add(1, 'day')
79
- const lastMonth = dayjs().subtract(1, 'month')
80
-
81
- // 日期比较
82
- const isBefore = dayjs('2024-01-01').isBefore(dayjs())
83
- ```
84
-
85
- ### importFile 文件导入
86
-
87
- 打开文件选择器,返回选择的文件对象。
88
-
89
- ```ts
90
- importFile().then(file => {
91
- console.log('文件名:', file.name)
92
- console.log('文件大小:', file.size)
93
- console.log('文件类型:', file.type)
94
- })
95
- ```
96
-
97
- ### downloadFile 文件下载
98
-
99
- 触发文件下载,支持直接链接下载和 Blob 流式下载。
100
-
101
- ```ts
102
- // 直接链接下载
103
- downloadFile({
104
- src: '/files/document.pdf',
105
- fileName: '文档.pdf'
106
- })
107
-
108
- // 接口下载(非 Blob,接口返回文件地址)
109
- downloadFile({
110
- api: '/api/export',
111
- fileName: '导出数据.xlsx',
112
- data: { id: '123' }
113
- })
114
-
115
- // Blob 流式下载(接口返回二进制流)
116
- downloadFile({
117
- api: '/api/export',
118
- blob: true,
119
- fileName: '导出数据.xlsx',
120
- data: { id: '123' }
121
- })
122
- ```
123
-
124
- 当 `blob` 为 `true` 时,会以 `responseType: 'blob'` 发起请求,自动从响应头 `Content-Disposition` 中提取文件名,并创建 Blob URL 触发下载,下载完成后自动释放内存。
125
-
126
- ### previewFile 文件预览
127
-
128
- 在新窗口中预览文件。
129
-
130
- ```ts
131
- // PDF预览
132
- previewFile('/files/document.pdf')
133
-
134
- // 图片预览
135
- previewFile('/images/photo.jpg')
136
- ```
137
-
138
- ### Cookies Cookie管理
139
-
140
- 提供 Cookie 的增删改查操作。
141
-
142
- ```ts
143
- // 设置 Cookie
144
- Cookies.set('token', 'xxx', { expires: 7 }) // 7天后过期
145
-
146
- // 获取 Cookie
147
- const token = Cookies.get('token')
148
-
149
- // 删除 Cookie
150
- Cookies.remove('token')
151
-
152
- // 获取所有 Cookie
153
- const allCookies = Cookies.get()
154
- ```
155
-
156
- ## 注意事项
157
-
158
- - `importFile` 会打开系统文件选择器
159
- - `downloadFile` 支持跨域下载,会自动处理 blob 响应
160
- - `downloadFile` 的 `blob` 模式适用于接口直接返回二进制流的场景,会自动从 `Content-Disposition` 响应头提取文件名;若未指定 `fileName` 且响应头中也无文件名信息,可能导致文件名缺失
161
- - `previewFile` 会打开新窗口或标签页
162
- - `Cookies` 基于 js-cookie 库,支持所有其配置选项
1
+ # useUtils 工具函数
2
+
3
+ 提供常用的工具函数集合,包括时间处理、文件操作、Cookie管理等。
4
+
5
+ ## 基本用法
6
+
7
+ ```vue
8
+ <script setup lang="ts">
9
+ import { useUtils } from 'el-plus'
10
+
11
+ const {
12
+ getUnifyTime,
13
+ dayjs,
14
+ importFile,
15
+ downloadFile,
16
+ previewFile,
17
+ Cookies
18
+ } = useUtils()
19
+
20
+ // 时间格式化
21
+ const time = getUnifyTime('2024-01-01')
22
+ const formatted = dayjs().format('YYYY-MM-DD HH:mm:ss')
23
+
24
+ // 文件导入
25
+ importFile().then(file => {
26
+ console.log('导入的文件:', file)
27
+ })
28
+
29
+ // 文件下载
30
+ downloadFile({ api: '/api/download', fileName: 'test.xlsx' })
31
+
32
+ // 文件预览
33
+ previewFile('/files/document.pdf')
34
+
35
+ // Cookie 操作
36
+ Cookies.set('token', 'xxx')
37
+ const token = Cookies.get('token')
38
+ </script>
39
+ ```
40
+
41
+ ## 返回值
42
+
43
+ | 属性 | 说明 | 类型 |
44
+ |------|------|------|
45
+ | getUnifyTime | 统一时间处理函数 | `(time: string \| number \| Date) => string` |
46
+ | dayjs | Day.js 实例 | `typeof dayjs` |
47
+ | importFile | 文件导入函数 | `() => Promise<File>` |
48
+ | downloadFile | 文件下载函数 | `(config: DownloadConfig) => Promise<void>` |
49
+ | previewFile | 文件预览函数 | `(url: string) => void` |
50
+ | Cookies | Cookie 操作对象 | `CookiesStatic` |
51
+
52
+ ## 功能说明
53
+
54
+ ### getUnifyTime 时间处理
55
+
56
+ 统一时间格式处理函数。
57
+
58
+ ```ts
59
+ // 时间戳转格式化字符串
60
+ const time1 = getUnifyTime(1609459200000)
61
+
62
+ // Date对象转格式化字符串
63
+ const time2 = getUnifyTime(new Date())
64
+
65
+ // 字符串转格式化字符串
66
+ const time3 = getUnifyTime('2024-01-01')
67
+ ```
68
+
69
+ ### dayjs 日期处理
70
+
71
+ 提供 Day.js 的所有功能,用于日期格式化和计算。
72
+
73
+ ```ts
74
+ // 格式化当前时间
75
+ const now = dayjs().format('YYYY-MM-DD HH:mm:ss')
76
+
77
+ // 日期计算
78
+ const tomorrow = dayjs().add(1, 'day')
79
+ const lastMonth = dayjs().subtract(1, 'month')
80
+
81
+ // 日期比较
82
+ const isBefore = dayjs('2024-01-01').isBefore(dayjs())
83
+ ```
84
+
85
+ ### importFile 文件导入
86
+
87
+ 打开文件选择器,返回选择的文件对象。
88
+
89
+ ```ts
90
+ importFile().then(file => {
91
+ console.log('文件名:', file.name)
92
+ console.log('文件大小:', file.size)
93
+ console.log('文件类型:', file.type)
94
+ })
95
+ ```
96
+
97
+ ### downloadFile 文件下载
98
+
99
+ 触发文件下载,支持直接链接下载和 Blob 流式下载。
100
+
101
+ ```ts
102
+ // 直接链接下载
103
+ downloadFile({
104
+ src: '/files/document.pdf',
105
+ fileName: '文档.pdf'
106
+ })
107
+
108
+ // 接口下载(非 Blob,接口返回文件地址)
109
+ downloadFile({
110
+ api: '/api/export',
111
+ fileName: '导出数据.xlsx',
112
+ data: { id: '123' }
113
+ })
114
+
115
+ // Blob 流式下载(接口返回二进制流)
116
+ downloadFile({
117
+ api: '/api/export',
118
+ blob: true,
119
+ fileName: '导出数据.xlsx',
120
+ data: { id: '123' }
121
+ })
122
+ ```
123
+
124
+ 当 `blob` 为 `true` 时,会以 `responseType: 'blob'` 发起请求,自动从响应头 `Content-Disposition` 中提取文件名,并创建 Blob URL 触发下载,下载完成后自动释放内存。
125
+
126
+ ### previewFile 文件预览
127
+
128
+ 在新窗口中预览文件。
129
+
130
+ ```ts
131
+ // PDF预览
132
+ previewFile('/files/document.pdf')
133
+
134
+ // 图片预览
135
+ previewFile('/images/photo.jpg')
136
+ ```
137
+
138
+ ### Cookies Cookie管理
139
+
140
+ 提供 Cookie 的增删改查操作。
141
+
142
+ ```ts
143
+ // 设置 Cookie
144
+ Cookies.set('token', 'xxx', { expires: 7 }) // 7天后过期
145
+
146
+ // 获取 Cookie
147
+ const token = Cookies.get('token')
148
+
149
+ // 删除 Cookie
150
+ Cookies.remove('token')
151
+
152
+ // 获取所有 Cookie
153
+ const allCookies = Cookies.get()
154
+ ```
155
+
156
+ ## 注意事项
157
+
158
+ - `importFile` 会打开系统文件选择器
159
+ - `downloadFile` 支持跨域下载,会自动处理 blob 响应
160
+ - `downloadFile` 的 `blob` 模式适用于接口直接返回二进制流的场景,会自动从 `Content-Disposition` 响应头提取文件名;若未指定 `fileName` 且响应头中也无文件名信息,可能导致文件名缺失
161
+ - `previewFile` 会打开新窗口或标签页
162
+ - `Cookies` 基于 js-cookie 库,支持所有其配置选项
package/docs/index.md CHANGED
@@ -1,25 +1,25 @@
1
- ---
2
- # https://vitepress.dev/reference/default-theme-home-page
3
- layout: home
4
-
5
- hero:
6
- name: "el-plus-docs"
7
- text: "宏信组件文档"
8
- tagline: 快速生成 Vue 页面和组件
9
- actions:
10
- - theme: brand
11
- text: 组件库总览
12
- link: /overview
13
- - theme: alt
14
- text: 更新日志
15
- link: /CHANGELOG
16
-
17
- features:
18
- - title: 📄 列表页
19
- details: 快速生成包含搜索、表格、操作按钮的列表页面
20
- - title: 📝 详情页
21
- details: 灵活组合表单、明细表格、附件等组件
22
- - title: 🧩 组件库
23
- details: 丰富的业务组件,支持自由组合配置
24
- ---
25
-
1
+ ---
2
+ # https://vitepress.dev/reference/default-theme-home-page
3
+ layout: home
4
+
5
+ hero:
6
+ name: "el-plus-docs"
7
+ text: "宏信组件文档"
8
+ tagline: 快速生成 Vue 页面和组件
9
+ actions:
10
+ - theme: brand
11
+ text: 组件库总览
12
+ link: /overview
13
+ - theme: alt
14
+ text: 更新日志
15
+ link: /CHANGELOG
16
+
17
+ features:
18
+ - title: 📄 列表页
19
+ details: 快速生成包含搜索、表格、操作按钮的列表页面
20
+ - title: 📝 详情页
21
+ details: 灵活组合表单、明细表格、附件等组件
22
+ - title: 🧩 组件库
23
+ details: 丰富的业务组件,支持自由组合配置
24
+ ---
25
+