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,30 +1,30 @@
1
- import type { NavigationConfig } from '@el-plus/utils'
2
- import type { AxiosStatic } from 'axios'
3
- import type { App } from 'vue'
4
- type HxtKey = string | { key: string; desc: string; isRouter?: boolean; isRenderDouble?: boolean }
5
- type HxtFn = (key: HxtKey) => string
6
- type HxType = any
7
-
8
- declare global {
9
- const $hxt: HxtFn
10
- const hx: HxType
11
- interface Window {
12
- $EP_SIGN?: string
13
- hx?: HxType
14
- $hxt?: HxtFn
15
- hxlang?: string
16
- openMenuSelect?: (navigationConfig: NavigationConfig) => void
17
- selectedRouterTags?: any[]
18
- closeTag?: (tag: any) => void
19
- currentRouterTagIndex?: number
20
- Vue: any
21
- hxLangPluginInstall: (
22
- app: App,
23
- modules: string[],
24
- options: { callback: () => Promise<void> }
25
- ) => void;
26
- axios: AxiosStatic
27
- ElementUI: any
28
- ElementUIComponents: any
29
- }
30
- }
1
+ import type { NavigationConfig } from '@el-plus/utils'
2
+ import type { AxiosStatic } from 'axios'
3
+ import type { App } from 'vue'
4
+ type HxtKey = string | { key: string; desc: string; isRouter?: boolean; isRenderDouble?: boolean }
5
+ type HxtFn = (key: HxtKey) => string
6
+ type HxType = any
7
+
8
+ declare global {
9
+ const $hxt: HxtFn
10
+ const hx: HxType
11
+ interface Window {
12
+ $EP_SIGN?: string
13
+ hx?: HxType
14
+ $hxt?: HxtFn
15
+ hxlang?: string
16
+ openMenuSelect?: (navigationConfig: NavigationConfig) => void
17
+ selectedRouterTags?: any[]
18
+ closeTag?: (tag: any) => void
19
+ currentRouterTagIndex?: number
20
+ Vue: any
21
+ hxLangPluginInstall: (
22
+ app: App,
23
+ modules: string[],
24
+ options: { callback: () => Promise<void> }
25
+ ) => void;
26
+ axios: AxiosStatic
27
+ ElementUI: any
28
+ ElementUIComponents: any
29
+ }
30
+ }
@@ -1,3 +1,3 @@
1
- export * from './utils.d.ts'
2
- export * from './global.d.ts'
1
+ export * from './utils.d.ts'
2
+ export * from './global.d.ts'
3
3
 
@@ -1,19 +1,19 @@
1
- /** 转换为驼峰命名 */
2
- type CamelCase<S extends string> = S extends `${infer First}-${infer Rest}`
3
- ? `${First}${CamelCase<Capitalize<Rest>>}`
4
- : S
5
- /** 拼接 on 前缀 + 首字母大写 */
6
- export type onCamelCaseAndCamelCase<S extends string> =
7
- `on${Capitalize<CamelCase<S>>}`
8
-
9
- /** 拼接 on 前缀 + 驼峰化 */
10
- export type onCamelCase<S extends string> = `on${Capitalize<S>}`
11
-
12
- /** 遍历对象的所有 key,拼接 on + 首字母大写 */
13
- export type WithOnPrefix<T> = {
14
- [K in keyof T as onCamelCase<K & string>]: T[K]
15
- }
16
- /**遍历对象所有 key,拼接 on + 首字母大写 + 驼峰 */
17
- export type WithOnPrefixAndCamelCase<T> = {
18
- [K in keyof T as onCamelCaseAndCamelCase<K & string>]: T[K]
19
- }
1
+ /** 转换为驼峰命名 */
2
+ type CamelCase<S extends string> = S extends `${infer First}-${infer Rest}`
3
+ ? `${First}${CamelCase<Capitalize<Rest>>}`
4
+ : S
5
+ /** 拼接 on 前缀 + 首字母大写 */
6
+ export type onCamelCaseAndCamelCase<S extends string> =
7
+ `on${Capitalize<CamelCase<S>>}`
8
+
9
+ /** 拼接 on 前缀 + 驼峰化 */
10
+ export type onCamelCase<S extends string> = `on${Capitalize<S>}`
11
+
12
+ /** 遍历对象的所有 key,拼接 on + 首字母大写 */
13
+ export type WithOnPrefix<T> = {
14
+ [K in keyof T as onCamelCase<K & string>]: T[K]
15
+ }
16
+ /**遍历对象所有 key,拼接 on + 首字母大写 + 驼峰 */
17
+ export type WithOnPrefixAndCamelCase<T> = {
18
+ [K in keyof T as onCamelCaseAndCamelCase<K & string>]: T[K]
19
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"bem.mjs","sources":["../../../../packages/utils/bem.ts"],"sourcesContent":["// block-代码块 ep-button\n// element-元素 ep-button__icon\n// modifier-修饰符 ep-button__icon--active\n// state-状态 is-checked\n\nfunction _bem(\n prefix: string,\n block: string,\n element: string,\n modifier: string,\n) {\n if (block) {\n prefix += '-' + block\n }\n if (element) {\n prefix += '__' + element\n }\n if (modifier) {\n prefix += '--' + modifier\n }\n return prefix\n}\nfunction createBEM(prefix: string) {\n return {\n b: (block: string = '') => _bem(prefix, block, '', ''),\n e: (element: string = '') => (element ? _bem(prefix, '', element, '') : ''),\n m: (modifier: string = '') =>\n modifier ? _bem(prefix, '', '', modifier) : '',\n be: (block: string = '', element: string = '') =>\n block && element ? _bem(prefix, block, element, '') : '',\n bm: (block: string = '', modifier: string = '') =>\n block && modifier ? _bem(prefix, block, '', modifier) : '',\n em: (element: string = '', modifier: string = '') =>\n element && modifier ? _bem(prefix, '', element, modifier) : '',\n bem: (block: string = '', element: string = '', modifier: string) =>\n block && element && modifier\n ? _bem(prefix, block, element, modifier)\n : '',\n is: (name: string = '', state: boolean) => (state ? `is-${name}` : ''),\n }\n}\n\nexport function createNameSpace(name) {\n const prefix = `ep-${name}`\n return createBEM(prefix)\n}\n"],"names":[],"mappings":"AAKA,SAAS,IAAA,CACP,MAAA,EACA,KAAA,EACA,OAAA,EACA,QAAA,EACA;AACA,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,MAAA,IAAU,GAAA,GAAM,KAAA;AAAA,EAClB;AACA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAA,IAAU,IAAA,GAAO,OAAA;AAAA,EACnB;AACA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAA,IAAU,IAAA,GAAO,QAAA;AAAA,EACnB;AACA,EAAA,OAAO,MAAA;AACT;AACA,SAAS,UAAU,MAAA,EAAgB;AACjC,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,CAAC,KAAA,GAAgB,EAAA,KAAO,KAAK,MAAA,EAAQ,KAAA,EAAO,IAAI,EAAE,CAAA;AAAA,IACrD,CAAA,EAAG,CAAC,OAAA,GAAkB,EAAA,KAAQ,OAAA,GAAU,KAAK,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,EAAE,CAAA,GAAI,EAAA;AAAA,IACxE,CAAA,EAAG,CAAC,QAAA,GAAmB,EAAA,KACrB,QAAA,GAAW,KAAK,MAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,QAAQ,CAAA,GAAI,EAAA;AAAA,IAC9C,EAAA,EAAI,CAAC,KAAA,GAAgB,EAAA,EAAI,OAAA,GAAkB,EAAA,KACzC,KAAA,IAAS,OAAA,GAAU,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,EAAE,CAAA,GAAI,EAAA;AAAA,IACxD,EAAA,EAAI,CAAC,KAAA,GAAgB,EAAA,EAAI,QAAA,GAAmB,EAAA,KAC1C,KAAA,IAAS,QAAA,GAAW,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,EAAA,EAAI,QAAQ,CAAA,GAAI,EAAA;AAAA,IAC1D,EAAA,EAAI,CAAC,OAAA,GAAkB,EAAA,EAAI,QAAA,GAAmB,EAAA,KAC5C,OAAA,IAAW,QAAA,GAAW,IAAA,CAAK,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,QAAQ,CAAA,GAAI,EAAA;AAAA,IAC9D,GAAA,EAAK,CAAC,KAAA,GAAgB,EAAA,EAAI,UAAkB,EAAA,EAAI,QAAA,KAC9C,KAAA,IAAS,OAAA,IAAW,WAChB,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,QAAQ,CAAA,GACrC,EAAA;AAAA,IACN,EAAA,EAAI,CAAC,IAAA,GAAe,EAAA,EAAI,UAAoB,KAAA,GAAQ,CAAA,GAAA,EAAM,IAAI,CAAA,CAAA,GAAK;AAAA,GACrE;AACF;AAEO,SAAS,gBAAgB,IAAA,EAAM;AACpC,EAAA,MAAM,MAAA,GAAS,MAAM,IAAI,CAAA,CAAA;AACzB,EAAA,OAAO,UAAU,MAAM,CAAA;AACzB;;;;"}
1
+ {"version":3,"file":"bem.mjs","sources":["../../../../packages/utils/bem.ts"],"sourcesContent":["// block-代码块 ep-button\r\n// element-元素 ep-button__icon\r\n// modifier-修饰符 ep-button__icon--active\r\n// state-状态 is-checked\r\n\r\nfunction _bem(\r\n prefix: string,\r\n block: string,\r\n element: string,\r\n modifier: string,\r\n) {\r\n if (block) {\r\n prefix += '-' + block\r\n }\r\n if (element) {\r\n prefix += '__' + element\r\n }\r\n if (modifier) {\r\n prefix += '--' + modifier\r\n }\r\n return prefix\r\n}\r\nfunction createBEM(prefix: string) {\r\n return {\r\n b: (block: string = '') => _bem(prefix, block, '', ''),\r\n e: (element: string = '') => (element ? _bem(prefix, '', element, '') : ''),\r\n m: (modifier: string = '') =>\r\n modifier ? _bem(prefix, '', '', modifier) : '',\r\n be: (block: string = '', element: string = '') =>\r\n block && element ? _bem(prefix, block, element, '') : '',\r\n bm: (block: string = '', modifier: string = '') =>\r\n block && modifier ? _bem(prefix, block, '', modifier) : '',\r\n em: (element: string = '', modifier: string = '') =>\r\n element && modifier ? _bem(prefix, '', element, modifier) : '',\r\n bem: (block: string = '', element: string = '', modifier: string) =>\r\n block && element && modifier\r\n ? _bem(prefix, block, element, modifier)\r\n : '',\r\n is: (name: string = '', state: boolean) => (state ? `is-${name}` : ''),\r\n }\r\n}\r\n\r\nexport function createNameSpace(name) {\r\n const prefix = `ep-${name}`\r\n return createBEM(prefix)\r\n}\r\n"],"names":[],"mappings":"AAKA,SAAS,IAAA,CACP,MAAA,EACA,KAAA,EACA,OAAA,EACA,QAAA,EACA;AACA,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,MAAA,IAAU,GAAA,GAAM,KAAA;AAAA,EAClB;AACA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAA,IAAU,IAAA,GAAO,OAAA;AAAA,EACnB;AACA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAA,IAAU,IAAA,GAAO,QAAA;AAAA,EACnB;AACA,EAAA,OAAO,MAAA;AACT;AACA,SAAS,UAAU,MAAA,EAAgB;AACjC,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,CAAC,KAAA,GAAgB,EAAA,KAAO,KAAK,MAAA,EAAQ,KAAA,EAAO,IAAI,EAAE,CAAA;AAAA,IACrD,CAAA,EAAG,CAAC,OAAA,GAAkB,EAAA,KAAQ,OAAA,GAAU,KAAK,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,EAAE,CAAA,GAAI,EAAA;AAAA,IACxE,CAAA,EAAG,CAAC,QAAA,GAAmB,EAAA,KACrB,QAAA,GAAW,KAAK,MAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,QAAQ,CAAA,GAAI,EAAA;AAAA,IAC9C,EAAA,EAAI,CAAC,KAAA,GAAgB,EAAA,EAAI,OAAA,GAAkB,EAAA,KACzC,KAAA,IAAS,OAAA,GAAU,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,EAAE,CAAA,GAAI,EAAA;AAAA,IACxD,EAAA,EAAI,CAAC,KAAA,GAAgB,EAAA,EAAI,QAAA,GAAmB,EAAA,KAC1C,KAAA,IAAS,QAAA,GAAW,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,EAAA,EAAI,QAAQ,CAAA,GAAI,EAAA;AAAA,IAC1D,EAAA,EAAI,CAAC,OAAA,GAAkB,EAAA,EAAI,QAAA,GAAmB,EAAA,KAC5C,OAAA,IAAW,QAAA,GAAW,IAAA,CAAK,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,QAAQ,CAAA,GAAI,EAAA;AAAA,IAC9D,GAAA,EAAK,CAAC,KAAA,GAAgB,EAAA,EAAI,UAAkB,EAAA,EAAI,QAAA,KAC9C,KAAA,IAAS,OAAA,IAAW,WAChB,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,QAAQ,CAAA,GACrC,EAAA;AAAA,IACN,EAAA,EAAI,CAAC,IAAA,GAAe,EAAA,EAAI,UAAoB,KAAA,GAAQ,CAAA,GAAA,EAAM,IAAI,CAAA,CAAA,GAAK;AAAA,GACrE;AACF;AAEO,SAAS,gBAAgB,IAAA,EAAM;AACpC,EAAA,MAAM,MAAA,GAAS,MAAM,IAAI,CAAA,CAAA;AACzB,EAAA,OAAO,UAAU,MAAM,CAAA;AACzB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.mjs","sources":["../../../../packages/utils/cookie.ts"],"sourcesContent":["import Cookies from 'js-cookie'\nconst tokenKey = 'access_token'\nexport const getToken = () => Cookies.get(tokenKey)\nexport const setToken = (token: string) => Cookies.set(tokenKey, token)\nexport const removeToken = () => Cookies.remove(tokenKey)\nexport { Cookies }\n"],"names":[],"mappings":";;;AACA,MAAM,QAAA,GAAW,cAAA;AACV,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAA,CAAI,QAAQ;AAC3C,MAAM,WAAW,CAAC,KAAA,KAAkB,OAAA,CAAQ,GAAA,CAAI,UAAU,KAAK;AAC/D,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,MAAA,CAAO,QAAQ;;;;"}
1
+ {"version":3,"file":"cookie.mjs","sources":["../../../../packages/utils/cookie.ts"],"sourcesContent":["import Cookies from 'js-cookie'\r\nconst tokenKey = 'access_token'\r\nexport const getToken = () => Cookies.get(tokenKey)\r\nexport const setToken = (token: string) => Cookies.set(tokenKey, token)\r\nexport const removeToken = () => Cookies.remove(tokenKey)\r\nexport { Cookies }\r\n"],"names":[],"mappings":";;;AACA,MAAM,QAAA,GAAW,cAAA;AACV,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAA,CAAI,QAAQ;AAC3C,MAAM,WAAW,CAAC,KAAA,KAAkB,OAAA,CAAQ,GAAA,CAAI,UAAU,KAAK;AAC/D,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,MAAA,CAAO,QAAQ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.mjs","sources":["../../../../packages/utils/dom.ts"],"sourcesContent":["/**\n * @description: 根据el和父节点class获取父节点\n * @param el 节点\n * @param className 父节点class\n */\nexport function getParentEl(el: HTMLElement, className: string) {\n let parent = el.parentNode as HTMLElement\n while (parent && !parent.classList.contains(className)) {\n parent = parent.parentNode as HTMLElement\n }\n return parent as HTMLElement\n}\n\n/**\n * @description: 根据class,获取el的子节点\n * @param el 节点\n * @param className 子节点class\n */\nexport function getChildEl(el: HTMLElement, className: string) {\n return el.querySelector(`.${className}`) as HTMLElement\n}\n"],"names":[],"mappings":"AAKO,SAAS,WAAA,CAAY,IAAiB,SAAA,EAAmB;AAC9D,EAAA,IAAI,SAAS,EAAA,CAAG,UAAA;AAChB,EAAA,OAAO,UAAU,CAAC,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,EAAG;AACtD,IAAA,MAAA,GAAS,MAAA,CAAO,UAAA;AAAA,EAClB;AACA,EAAA,OAAO,MAAA;AACT;AAOO,SAAS,UAAA,CAAW,IAAiB,SAAA,EAAmB;AAC7D,EAAA,OAAO,EAAA,CAAG,aAAA,CAAc,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAA;AACzC;;;;"}
1
+ {"version":3,"file":"dom.mjs","sources":["../../../../packages/utils/dom.ts"],"sourcesContent":["/**\r\n * @description: 根据el和父节点class获取父节点\r\n * @param el 节点\r\n * @param className 父节点class\r\n */\r\nexport function getParentEl(el: HTMLElement, className: string) {\r\n let parent = el.parentNode as HTMLElement\r\n while (parent && !parent.classList.contains(className)) {\r\n parent = parent.parentNode as HTMLElement\r\n }\r\n return parent as HTMLElement\r\n}\r\n\r\n/**\r\n * @description: 根据class,获取el的子节点\r\n * @param el 节点\r\n * @param className 子节点class\r\n */\r\nexport function getChildEl(el: HTMLElement, className: string) {\r\n return el.querySelector(`.${className}`) as HTMLElement\r\n}\r\n"],"names":[],"mappings":"AAKO,SAAS,WAAA,CAAY,IAAiB,SAAA,EAAmB;AAC9D,EAAA,IAAI,SAAS,EAAA,CAAG,UAAA;AAChB,EAAA,OAAO,UAAU,CAAC,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,EAAG;AACtD,IAAA,MAAA,GAAS,MAAA,CAAO,UAAA;AAAA,EAClB;AACA,EAAA,OAAO,MAAA;AACT;AAOO,SAAS,UAAA,CAAW,IAAiB,SAAA,EAAmB;AAC7D,EAAA,OAAO,EAAA,CAAG,aAAA,CAAc,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAA;AACzC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.mjs","sources":["../../../../packages/utils/env.ts"],"sourcesContent":["const getEnv = (mark = 'hxjf', hostname = window.location.hostname) => {\n const tag = hostname.match(new RegExp(`.*(?=${mark})`))\n if (!tag) {\n return 'local'\n }\n return tag[0] ? tag[0].replace('-', '') : 'production'\n}\n\nconst getBaseUrl = (env = 'sit', isOpenApi?: boolean) => {\n let url = ''\n if (getEnv() === 'local') {\n const query: {\n devProxy?: string\n [propName: string]: string | undefined\n } = {}\n // for (const key in new URLSearchParams(location.search.slice(1))) {\n // query[key] = location.search.slice(1)[key]\n // }\n query.devProxy =\n location.search.slice(1).split('=')[1] ||\n location.hash.slice(1).split('=')[1]\n // const query = querystring.parse(location.search.slice(1));\n const devProxy = query.devProxy || `${env}-api`\n url = `${devProxy}${isOpenApi ? '/vue-openapi' : ''}`\n } else if (isOpenApi) {\n url = '/vue-openapi'\n } else {\n url = '/vue-api'\n }\n return url\n}\nconst getLocationEnv = () => {\n const urlParams = new URLSearchParams(window.location.search)\n const devProxy = urlParams.get('devProxy')\n if (devProxy) {\n return devProxy.split('-')[0].replace('/', '')\n }\n return ''\n}\n\nexport { getEnv, getBaseUrl, getLocationEnv }\n"],"names":[],"mappings":"AAAA,MAAM,SAAS,CAAC,IAAA,GAAO,QAAQ,QAAA,GAAW,MAAA,CAAO,SAAS,QAAA,KAAa;AACrE,EAAA,MAAM,GAAA,GAAM,SAAS,KAAA,CAAM,IAAI,OAAO,CAAA,KAAA,EAAQ,IAAI,GAAG,CAAC,CAAA;AACtD,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAO,OAAA;AAAA,EACT;AACA,EAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,GAAI,YAAA;AAC5C;AAEA,MAAM,UAAA,GAAa,CAAC,GAAA,GAAM,KAAA,EAAO,SAAA,KAAwB;AACvD,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,IAAI,MAAA,OAAa,OAAA,EAAS;AACxB,IAAA,MAAM,QAGF,EAAC;AAIL,IAAA,KAAA,CAAM,WACJ,QAAA,CAAS,MAAA,CAAO,MAAM,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IACrC,QAAA,CAAS,KAAK,KAAA,CAAM,CAAC,EAAE,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAErC,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,QAAA,IAAY,CAAA,EAAG,GAAG,CAAA,IAAA,CAAA;AACzC,IAAA,GAAA,GAAM,CAAA,EAAG,QAAQ,CAAA,EAAG,SAAA,GAAY,iBAAiB,EAAE,CAAA,CAAA;AAAA,EACrD,WAAW,SAAA,EAAW;AACpB,IAAA,GAAA,GAAM,cAAA;AAAA,EACR,CAAA,MAAO;AACL,IAAA,GAAA,GAAM,UAAA;AAAA,EACR;AACA,EAAA,OAAO,GAAA;AACT;AACA,MAAM,iBAAiB,MAAM;AAC3B,EAAA,MAAM,SAAA,GAAY,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AAC5D,EAAA,MAAM,QAAA,GAAW,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AACzC,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,QAAA,CAAS,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA,EAC/C;AACA,EAAA,OAAO,EAAA;AACT;;;;"}
1
+ {"version":3,"file":"env.mjs","sources":["../../../../packages/utils/env.ts"],"sourcesContent":["const getEnv = (mark = 'hxjf', hostname = window.location.hostname) => {\r\n const tag = hostname.match(new RegExp(`.*(?=${mark})`))\r\n if (!tag) {\r\n return 'local'\r\n }\r\n return tag[0] ? tag[0].replace('-', '') : 'production'\r\n}\r\n\r\nconst getBaseUrl = (env = 'sit', isOpenApi?: boolean) => {\r\n let url = ''\r\n if (getEnv() === 'local') {\r\n const query: {\r\n devProxy?: string\r\n [propName: string]: string | undefined\r\n } = {}\r\n // for (const key in new URLSearchParams(location.search.slice(1))) {\r\n // query[key] = location.search.slice(1)[key]\r\n // }\r\n query.devProxy =\r\n location.search.slice(1).split('=')[1] ||\r\n location.hash.slice(1).split('=')[1]\r\n // const query = querystring.parse(location.search.slice(1));\r\n const devProxy = query.devProxy || `${env}-api`\r\n url = `${devProxy}${isOpenApi ? '/vue-openapi' : ''}`\r\n } else if (isOpenApi) {\r\n url = '/vue-openapi'\r\n } else {\r\n url = '/vue-api'\r\n }\r\n return url\r\n}\r\nconst getLocationEnv = () => {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const devProxy = urlParams.get('devProxy')\r\n if (devProxy) {\r\n return devProxy.split('-')[0].replace('/', '')\r\n }\r\n return ''\r\n}\r\n\r\nexport { getEnv, getBaseUrl, getLocationEnv }\r\n"],"names":[],"mappings":"AAAA,MAAM,SAAS,CAAC,IAAA,GAAO,QAAQ,QAAA,GAAW,MAAA,CAAO,SAAS,QAAA,KAAa;AACrE,EAAA,MAAM,GAAA,GAAM,SAAS,KAAA,CAAM,IAAI,OAAO,CAAA,KAAA,EAAQ,IAAI,GAAG,CAAC,CAAA;AACtD,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAO,OAAA;AAAA,EACT;AACA,EAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,GAAI,YAAA;AAC5C;AAEA,MAAM,UAAA,GAAa,CAAC,GAAA,GAAM,KAAA,EAAO,SAAA,KAAwB;AACvD,EAAA,IAAI,GAAA,GAAM,EAAA;AACV,EAAA,IAAI,MAAA,OAAa,OAAA,EAAS;AACxB,IAAA,MAAM,QAGF,EAAC;AAIL,IAAA,KAAA,CAAM,WACJ,QAAA,CAAS,MAAA,CAAO,MAAM,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IACrC,QAAA,CAAS,KAAK,KAAA,CAAM,CAAC,EAAE,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAErC,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,QAAA,IAAY,CAAA,EAAG,GAAG,CAAA,IAAA,CAAA;AACzC,IAAA,GAAA,GAAM,CAAA,EAAG,QAAQ,CAAA,EAAG,SAAA,GAAY,iBAAiB,EAAE,CAAA,CAAA;AAAA,EACrD,WAAW,SAAA,EAAW;AACpB,IAAA,GAAA,GAAM,cAAA;AAAA,EACR,CAAA,MAAO;AACL,IAAA,GAAA,GAAM,UAAA;AAAA,EACR;AACA,EAAA,OAAO,GAAA;AACT;AACA,MAAM,iBAAiB,MAAM;AAC3B,EAAA,MAAM,SAAA,GAAY,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AAC5D,EAAA,MAAM,QAAA,GAAW,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AACzC,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,QAAA,CAAS,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA,EAC/C;AACA,EAAA,OAAO,EAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"file.mjs","sources":["../../../../packages/utils/file.ts"],"sourcesContent":["import { http, type AxiosResponse } from './http'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { getEnv, getLocationEnv } from './env'\nimport { encode} from 'js-base64'\n/**\n * 获取全路径\n * @param filePath 附件地址\n * @returns 全路径\n */\n\nexport const getFullUrl = (filePath: string) => {\n return filePath.indexOf('hongxinshop.com') > -1\n ? filePath\n : `${window.location.protocol}//${getEnv() === 'local' ? `${getLocationEnv()}-hxjf.hongxinshop.com` : window.location.host}/image/${filePath}`\n}\nconst downloadSrc = ({\n src,\n fileName,\n blob,\n}: {\n src: string\n fileName: string\n blob?: boolean\n}) => {\n if (src) {\n fileName = fileName || src.split('/')[src.split('/').length - 1]\n const a = document.createElement('a')\n a.style.display = 'none'\n document.body.appendChild(a)\n const event = new MouseEvent('click')\n a.download = fileName\n a.href = blob ? src : getFullUrl(src)\n\n a.target = '_blank'\n a.dispatchEvent(event)\n document.body.removeChild(a)\n }\n}\n\n// 下载文件\nexport async function downloadFile({\n api = '',\n blob,\n data = {},\n src,\n fileName = '',\n config = {},\n}: {\n api?: string\n blob?: boolean\n data?: Record<string, any>\n src?: string\n fileName?: string\n config?: Record<string, any>\n}) {\n if (src) {\n downloadSrc({ src, fileName })\n return\n }\n http\n .request<any, AxiosResponse>(api, {\n method: config.method || 'post',\n data,\n loading: true,\n responseType: blob ? 'blob' : undefined,\n responseReturn: 'raw',\n ...config,\n })\n .then((res) => {\n const { headers } = res\n if (Object.prototype.toString.call(res.data) === '[object Object]' && !res.data?.success) {\n return ElMessage.error(res.data.msg)\n }\n const data = blob?res.data:res.data?.data || res.data?.data?.url || ''\n const lowerHeaders = {}\n for (const key in headers) {\n lowerHeaders[key.toLowerCase()] = headers[key]\n }\n let src = ''\n if (blob) {\n const contentDisposition = lowerHeaders['content-disposition'] || ''\n fileName =\n fileName ||\n decodeURIComponent(contentDisposition.split('filename=')[1])\n const blob = new Blob([data], {\n type: headers['content-type'],\n })\n src = window.URL.createObjectURL(blob)\n setTimeout(() => window.URL.revokeObjectURL(src), 100) // 释放内存\n } else {\n src = data\n }\n downloadSrc({ src, fileName, blob })\n })\n}\n\n// 导入文件\nexport interface ImportFileOptions {\n accept?: string\n multiple?: boolean\n fieldName?: string\n api?: string\n failedFileName?: string // 导入失败时提示的文件名\n extraData?: Record<string, any> // 随文件一同发送的其他表单数据\n}\nexport const importFile = async ({\n accept = '*',\n multiple = false,\n fieldName = 'file',\n failedFileName = '',\n extraData = {},\n api = '',\n}: ImportFileOptions) => {\n return new Promise<Record<string, any>>((resolve, reject) => {\n const input = document.createElement('input')\n input.type = 'file'\n input.accept = accept\n input.multiple = multiple\n const formData = new FormData()\n Object.keys(extraData).forEach((key) => {\n formData.append(key, extraData[key])\n })\n input.onchange = async (event: Event) => {\n const target = event.target as HTMLInputElement\n const files = target.files\n if (files && files.length > 0) {\n if (!multiple) {\n formData.append(fieldName, files[0])\n } else {\n Array.from(files).forEach((file, index) => {\n formData.append(`${fieldName}${index}`, file)\n })\n }\n try {\n const { data } = await http.request<any, AxiosResponse>(api, {\n method: 'post',\n data: formData,\n loading: true,\n responseReturn: 'raw',\n transformRequest: [\n function (data) {\n return data\n },\n ],\n })\n if (data.success) {\n return resolve(data.data)\n }\n if (data.code === -2) {\n const fileName =\n failedFileName ||\n data.data.split('/')[data.data.split('/').length - 1]\n const url = `${window.location.origin}/image/${data.data}`\n const failedHtml = `<div style=\"word-break: break-all;\">失败详情:<a style=\"color:#409EFF;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap\" title=\"${url}\" href=\"${url}\" download=\"${fileName}\">${url}</a></div>`\n ElMessageBox.alert(failedHtml, '提示', {\n confirmButtonText: '确定',\n type: 'error',\n dangerouslyUseHTMLString: true,\n })\n return\n }\n return ElMessage.error(data.msg)\n } catch (error) {\n console.error(error)\n }\n input.onchange = null\n }\n }\n input.click()\n })\n}\n\n// 预览文件\nexport const previewFile = (url: string) => {\n url = getFullUrl(url)\n const origin = getFullUrl('').replace('/image/', '')\n const previewUrl = `${origin}/kfv/onlinePreview?url=${encode(url)}`\n window.open(previewUrl, '_blank')\n}\n"],"names":["data","src","blob"],"mappings":"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"}
1
+ {"version":3,"file":"file.mjs","sources":["../../../../packages/utils/file.ts"],"sourcesContent":["import { http, type AxiosResponse } from './http'\r\nimport { ElMessage, ElMessageBox } from 'element-plus'\r\nimport { getEnv, getLocationEnv } from './env'\r\nimport { encode} from 'js-base64'\r\n/**\r\n * 获取全路径\r\n * @param filePath 附件地址\r\n * @returns 全路径\r\n */\r\n\r\nexport const getFullUrl = (filePath: string) => {\r\n return filePath.indexOf('hongxinshop.com') > -1\r\n ? filePath\r\n : `${window.location.protocol}//${getEnv() === 'local' ? `${getLocationEnv()}-hxjf.hongxinshop.com` : window.location.host}/image/${filePath}`\r\n}\r\nconst downloadSrc = ({\r\n src,\r\n fileName,\r\n blob,\r\n}: {\r\n src: string\r\n fileName: string\r\n blob?: boolean\r\n}) => {\r\n if (src) {\r\n fileName = fileName || src.split('/')[src.split('/').length - 1]\r\n const a = document.createElement('a')\r\n a.style.display = 'none'\r\n document.body.appendChild(a)\r\n const event = new MouseEvent('click')\r\n a.download = fileName\r\n a.href = blob ? src : getFullUrl(src)\r\n\r\n a.target = '_blank'\r\n a.dispatchEvent(event)\r\n document.body.removeChild(a)\r\n }\r\n}\r\n\r\n// 下载文件\r\nexport async function downloadFile({\r\n api = '',\r\n blob,\r\n data = {},\r\n src,\r\n fileName = '',\r\n config = {},\r\n}: {\r\n api?: string\r\n blob?: boolean\r\n data?: Record<string, any>\r\n src?: string\r\n fileName?: string\r\n config?: Record<string, any>\r\n}) {\r\n if (src) {\r\n downloadSrc({ src, fileName })\r\n return\r\n }\r\n http\r\n .request<any, AxiosResponse>(api, {\r\n method: config.method || 'post',\r\n data,\r\n loading: true,\r\n responseType: blob ? 'blob' : undefined,\r\n responseReturn: 'raw',\r\n ...config,\r\n })\r\n .then((res) => {\r\n const { headers } = res\r\n if (Object.prototype.toString.call(res.data) === '[object Object]' && !res.data?.success) {\r\n return ElMessage.error(res.data.msg)\r\n }\r\n const data = blob?res.data:res.data?.data || res.data?.data?.url || ''\r\n const lowerHeaders = {}\r\n for (const key in headers) {\r\n lowerHeaders[key.toLowerCase()] = headers[key]\r\n }\r\n let src = ''\r\n if (blob) {\r\n const contentDisposition = lowerHeaders['content-disposition'] || ''\r\n fileName =\r\n fileName ||\r\n decodeURIComponent(contentDisposition.split('filename=')[1])\r\n const blob = new Blob([data], {\r\n type: headers['content-type'],\r\n })\r\n src = window.URL.createObjectURL(blob)\r\n setTimeout(() => window.URL.revokeObjectURL(src), 100) // 释放内存\r\n } else {\r\n src = data\r\n }\r\n downloadSrc({ src, fileName, blob })\r\n })\r\n}\r\n\r\n// 导入文件\r\nexport interface ImportFileOptions {\r\n accept?: string\r\n multiple?: boolean\r\n fieldName?: string\r\n api?: string\r\n failedFileName?: string // 导入失败时提示的文件名\r\n extraData?: Record<string, any> // 随文件一同发送的其他表单数据\r\n}\r\nexport const importFile = async ({\r\n accept = '*',\r\n multiple = false,\r\n fieldName = 'file',\r\n failedFileName = '',\r\n extraData = {},\r\n api = '',\r\n}: ImportFileOptions) => {\r\n return new Promise<Record<string, any>>((resolve, reject) => {\r\n const input = document.createElement('input')\r\n input.type = 'file'\r\n input.accept = accept\r\n input.multiple = multiple\r\n const formData = new FormData()\r\n Object.keys(extraData).forEach((key) => {\r\n formData.append(key, extraData[key])\r\n })\r\n input.onchange = async (event: Event) => {\r\n const target = event.target as HTMLInputElement\r\n const files = target.files\r\n if (files && files.length > 0) {\r\n if (!multiple) {\r\n formData.append(fieldName, files[0])\r\n } else {\r\n Array.from(files).forEach((file, index) => {\r\n formData.append(`${fieldName}${index}`, file)\r\n })\r\n }\r\n try {\r\n const { data } = await http.request<any, AxiosResponse>(api, {\r\n method: 'post',\r\n data: formData,\r\n loading: true,\r\n responseReturn: 'raw',\r\n transformRequest: [\r\n function (data) {\r\n return data\r\n },\r\n ],\r\n })\r\n if (data.success) {\r\n return resolve(data.data)\r\n }\r\n if (data.code === -2) {\r\n const fileName =\r\n failedFileName ||\r\n data.data.split('/')[data.data.split('/').length - 1]\r\n const url = `${window.location.origin}/image/${data.data}`\r\n const failedHtml = `<div style=\"word-break: break-all;\">失败详情:<a style=\"color:#409EFF;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap\" title=\"${url}\" href=\"${url}\" download=\"${fileName}\">${url}</a></div>`\r\n ElMessageBox.alert(failedHtml, '提示', {\r\n confirmButtonText: '确定',\r\n type: 'error',\r\n dangerouslyUseHTMLString: true,\r\n })\r\n return\r\n }\r\n return ElMessage.error(data.msg)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n input.onchange = null\r\n }\r\n }\r\n input.click()\r\n })\r\n}\r\n\r\n// 预览文件\r\nexport const previewFile = (url: string) => {\r\n url = getFullUrl(url)\r\n const origin = getFullUrl('').replace('/image/', '')\r\n const previewUrl = `${origin}/kfv/onlinePreview?url=${encode(url)}`\r\n window.open(previewUrl, '_blank')\r\n}\r\n"],"names":["data","src","blob"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.mjs","sources":["../../../../../../../packages/utils/http/core/modules/interceptor.ts"],"sourcesContent":["import type { AxiosInstance, AxiosResponse } from 'axios';\n\nimport type {\n RequestInterceptorConfig,\n ResponseInterceptorConfig,\n} from '../types';\n\nconst defaultRequestInterceptorConfig: RequestInterceptorConfig = {\n fulfilled: (response) => response,\n rejected: (error) => Promise.reject(error),\n};\n\nconst defaultResponseInterceptorConfig: ResponseInterceptorConfig = {\n fulfilled: (response: AxiosResponse) => response,\n rejected: (error) => Promise.reject(error),\n};\n\nclass InterceptorManager {\n private axiosInstance: AxiosInstance;\n\n constructor(instance: AxiosInstance) {\n this.axiosInstance = instance;\n }\n\n addRequestInterceptor({\n fulfilled,\n rejected,\n }: RequestInterceptorConfig = defaultRequestInterceptorConfig) {\n this.axiosInstance.interceptors.request.use(fulfilled, rejected);\n }\n\n addResponseInterceptor<T = any>({\n fulfilled,\n rejected,\n }: ResponseInterceptorConfig<T> = defaultResponseInterceptorConfig) {\n this.axiosInstance.interceptors.response.use(fulfilled, rejected);\n }\n}\n\nexport { InterceptorManager };\n"],"names":[],"mappings":"AAOA,MAAM,+BAAA,GAA4D;AAAA,EAChE,SAAA,EAAW,CAAC,QAAA,KAAa,QAAA;AAAA,EACzB,QAAA,EAAU,CAAC,KAAA,KAAU,OAAA,CAAQ,OAAO,KAAK;AAC3C,CAAA;AAEA,MAAM,gCAAA,GAA8D;AAAA,EAClE,SAAA,EAAW,CAAC,QAAA,KAA4B,QAAA;AAAA,EACxC,QAAA,EAAU,CAAC,KAAA,KAAU,OAAA,CAAQ,OAAO,KAAK;AAC3C,CAAA;AAEA,MAAM,kBAAA,CAAmB;AAAA,EAGvB,YAAY,QAAA,EAAyB;AACnC,IAAA,IAAA,CAAK,aAAA,GAAgB,QAAA;AAAA,EACvB;AAAA,EAEA,qBAAA,CAAsB;AAAA,IACpB,SAAA;AAAA,IACA;AAAA,MAC4B,+BAAA,EAAiC;AAC7D,IAAA,IAAA,CAAK,aAAA,CAAc,YAAA,CAAa,OAAA,CAAQ,GAAA,CAAI,WAAW,QAAQ,CAAA;AAAA,EACjE;AAAA,EAEA,sBAAA,CAAgC;AAAA,IAC9B,SAAA;AAAA,IACA;AAAA,MACgC,gCAAA,EAAkC;AAClE,IAAA,IAAA,CAAK,aAAA,CAAc,YAAA,CAAa,QAAA,CAAS,GAAA,CAAI,WAAW,QAAQ,CAAA;AAAA,EAClE;AACF;;;;"}
1
+ {"version":3,"file":"interceptor.mjs","sources":["../../../../../../../packages/utils/http/core/modules/interceptor.ts"],"sourcesContent":["import type { AxiosInstance, AxiosResponse } from 'axios';\r\n\r\nimport type {\r\n RequestInterceptorConfig,\r\n ResponseInterceptorConfig,\r\n} from '../types';\r\n\r\nconst defaultRequestInterceptorConfig: RequestInterceptorConfig = {\r\n fulfilled: (response) => response,\r\n rejected: (error) => Promise.reject(error),\r\n};\r\n\r\nconst defaultResponseInterceptorConfig: ResponseInterceptorConfig = {\r\n fulfilled: (response: AxiosResponse) => response,\r\n rejected: (error) => Promise.reject(error),\r\n};\r\n\r\nclass InterceptorManager {\r\n private axiosInstance: AxiosInstance;\r\n\r\n constructor(instance: AxiosInstance) {\r\n this.axiosInstance = instance;\r\n }\r\n\r\n addRequestInterceptor({\r\n fulfilled,\r\n rejected,\r\n }: RequestInterceptorConfig = defaultRequestInterceptorConfig) {\r\n this.axiosInstance.interceptors.request.use(fulfilled, rejected);\r\n }\r\n\r\n addResponseInterceptor<T = any>({\r\n fulfilled,\r\n rejected,\r\n }: ResponseInterceptorConfig<T> = defaultResponseInterceptorConfig) {\r\n this.axiosInstance.interceptors.response.use(fulfilled, rejected);\r\n }\r\n}\r\n\r\nexport { InterceptorManager };\r\n"],"names":[],"mappings":"AAOA,MAAM,+BAAA,GAA4D;AAAA,EAChE,SAAA,EAAW,CAAC,QAAA,KAAa,QAAA;AAAA,EACzB,QAAA,EAAU,CAAC,KAAA,KAAU,OAAA,CAAQ,OAAO,KAAK;AAC3C,CAAA;AAEA,MAAM,gCAAA,GAA8D;AAAA,EAClE,SAAA,EAAW,CAAC,QAAA,KAA4B,QAAA;AAAA,EACxC,QAAA,EAAU,CAAC,KAAA,KAAU,OAAA,CAAQ,OAAO,KAAK;AAC3C,CAAA;AAEA,MAAM,kBAAA,CAAmB;AAAA,EAGvB,YAAY,QAAA,EAAyB;AACnC,IAAA,IAAA,CAAK,aAAA,GAAgB,QAAA;AAAA,EACvB;AAAA,EAEA,qBAAA,CAAsB;AAAA,IACpB,SAAA;AAAA,IACA;AAAA,MAC4B,+BAAA,EAAiC;AAC7D,IAAA,IAAA,CAAK,aAAA,CAAc,YAAA,CAAa,OAAA,CAAQ,GAAA,CAAI,WAAW,QAAQ,CAAA;AAAA,EACjE;AAAA,EAEA,sBAAA,CAAgC;AAAA,IAC9B,SAAA;AAAA,IACA;AAAA,MACgC,gCAAA,EAAkC;AAClE,IAAA,IAAA,CAAK,aAAA,CAAc,YAAA,CAAa,QAAA,CAAS,GAAA,CAAI,WAAW,QAAQ,CAAA;AAAA,EAClE;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"loading.mjs","sources":["../../../../../../../packages/utils/http/core/modules/loading.ts"],"sourcesContent":["import { ElLoading } from 'element-plus'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nconst { t } = useLocale()\n\n// 1. Loading 计数器与实例\nlet reqNum = 0\nlet loadingInstance\nconst startLoading = () => {\n if (reqNum === 0) {\n loadingInstance = ElLoading.service({\n lock: true,\n text: t('ep.loading.loading'),\n background: 'rgba(0, 0, 0, 0.7)',\n })\n }\n reqNum++\n}\nconst endLoading = () => {\n if (reqNum <= 0) return\n reqNum--\n if (reqNum === 0 && loadingInstance) {\n loadingInstance.close()\n loadingInstance = null\n }\n}\nexport { startLoading, endLoading }\n"],"names":[],"mappings":";;;AAEA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AAGxB,IAAI,MAAA,GAAS,CAAA;AACb,IAAI,eAAA;AACJ,MAAM,eAAe,MAAM;AACzB,EAAA,IAAI,WAAW,CAAA,EAAG;AAChB,IAAA,eAAA,GAAkB,UAAU,OAAA,CAAQ;AAAA,MAClC,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM,EAAE,oBAAoB,CAAA;AAAA,MAC5B,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,EACH;AACA,EAAA,MAAA,EAAA;AACF;AACA,MAAM,aAAa,MAAM;AACvB,EAAA,IAAI,UAAU,CAAA,EAAG;AACjB,EAAA,MAAA,EAAA;AACA,EAAA,IAAI,MAAA,KAAW,KAAK,eAAA,EAAiB;AACnC,IAAA,eAAA,CAAgB,KAAA,EAAM;AACtB,IAAA,eAAA,GAAkB,IAAA;AAAA,EACpB;AACF;;;;"}
1
+ {"version":3,"file":"loading.mjs","sources":["../../../../../../../packages/utils/http/core/modules/loading.ts"],"sourcesContent":["import { ElLoading } from 'element-plus'\r\nimport { useLocale } from '@el-plus/hooks/use-locale'\r\nconst { t } = useLocale()\r\n\r\n// 1. Loading 计数器与实例\r\nlet reqNum = 0\r\nlet loadingInstance\r\nconst startLoading = () => {\r\n if (reqNum === 0) {\r\n loadingInstance = ElLoading.service({\r\n lock: true,\r\n text: t('ep.loading.loading'),\r\n background: 'rgba(0, 0, 0, 0.7)',\r\n })\r\n }\r\n reqNum++\r\n}\r\nconst endLoading = () => {\r\n if (reqNum <= 0) return\r\n reqNum--\r\n if (reqNum === 0 && loadingInstance) {\r\n loadingInstance.close()\r\n loadingInstance = null\r\n }\r\n}\r\nexport { startLoading, endLoading }\r\n"],"names":[],"mappings":";;;AAEA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AAGxB,IAAI,MAAA,GAAS,CAAA;AACb,IAAI,eAAA;AACJ,MAAM,eAAe,MAAM;AACzB,EAAA,IAAI,WAAW,CAAA,EAAG;AAChB,IAAA,eAAA,GAAkB,UAAU,OAAA,CAAQ;AAAA,MAClC,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM,EAAE,oBAAoB,CAAA;AAAA,MAC5B,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,EACH;AACA,EAAA,MAAA,EAAA;AACF;AACA,MAAM,aAAa,MAAM;AACvB,EAAA,IAAI,UAAU,CAAA,EAAG;AACjB,EAAA,MAAA,EAAA;AACA,EAAA,IAAI,MAAA,KAAW,KAAK,eAAA,EAAiB;AACnC,IAAA,eAAA,CAAgB,KAAA,EAAM;AACtB,IAAA,eAAA,GAAkB,IAAA;AAAA,EACpB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"preset-interceptors.mjs","sources":["../../../../../../packages/utils/http/core/preset-interceptors.ts"],"sourcesContent":["import type { MakeErrorMessageFn, ResponseInterceptorConfig } from './types'\nimport { isFunction } from '@vue/shared'\nimport axios from 'axios'\nimport { startLoading, endLoading } from './modules/loading'\nimport { getToken } from '@el-plus/utils/cookie'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nconst { t } = useLocale()\n\nexport const defaultRequestInterceptor = () => {\n return {\n fulfilled: async (config) => {\n if (config.loading) {\n startLoading()\n }\n const token = getToken()\n config.headers.Authorization = token ? `Bearer ${token}` : null\n config.headers = {\n ...config.headers,\n ...window.hx.getSignHeaders({\n sign: window.$EP_SIGN || {},\n config,\n }),\n }\n return config\n },\n rejected: (error) => {\n return Promise.reject(error)\n },\n }\n}\nexport const defaultResponseInterceptor = (options?: {\n /** 响应数据中代表访问结果的字段名 */\n codeField?: string\n /** 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据 */\n dataField?: ((response: any) => any) | string\n /** 当codeField所指定的字段值与successCode相同时,代表接口访问成功。如果提供一个函数,则返回true代表接口访问成功 */\n successCode?: ((code: any) => boolean) | number | string\n makeInfoMessage?: MakeErrorMessageFn\n}): ResponseInterceptorConfig => {\n const {\n codeField = 'code',\n dataField = 'data',\n successCode = 200,\n makeInfoMessage,\n } = options || {}\n return {\n fulfilled: (response) => {\n const { config, data: responseData, status } = response\n if (config.loading) {\n endLoading()\n }\n if (config.responseReturn === 'raw') {\n return response\n }\n if (!responseData.success && !config.noErrorMsg) {\n const msg = responseData.msg || responseData.message || 'Error'\n const error = new Error(msg) as Error & { type: string }\n error.type = 'service-error'\n makeInfoMessage?.(msg, error)\n return Promise.reject(error)\n }\n\n if (status >= 200 && status < 400) {\n if (config.responseReturn === 'body') {\n return responseData\n } else if (\n isFunction(successCode)\n ? successCode(responseData[codeField])\n : responseData[codeField] === successCode\n ) {\n return isFunction(dataField)\n ? dataField(responseData)\n : responseData[dataField]\n }\n }\n throw Object.assign({}, response, { response })\n },\n }\n}\n\n// 错误信息拦截器\nexport const errorMessageResponseInterceptor = (\n makeErrorMessage?: MakeErrorMessageFn,\n): ResponseInterceptorConfig => {\n return {\n rejected: (error: any) => {\n endLoading()\n if (axios.isCancel(error) || error.type === 'service-error') {\n return Promise.reject(error)\n }\n\n const err: string = error?.toString?.() ?? ''\n let errMsg = ''\n if (err?.includes('Network Error')) {\n errMsg = t('ep.http.networkError')\n } else if (error?.message?.includes?.('timeout')) {\n errMsg = t('ep.http.timeout')\n }\n if (errMsg) {\n makeErrorMessage?.(errMsg, error)\n return Promise.reject(error)\n }\n\n let errorMessage = ''\n const status = error?.response?.status\n switch (status) {\n case 400: {\n errorMessage = t('ep.http.requestError')\n break\n }\n case 401: {\n errorMessage = t('ep.http.authExpired')\n break\n }\n case 403: {\n errorMessage = t('ep.http.forbidden')\n break\n }\n case 404: {\n errorMessage = t('ep.http.notFound')\n break\n }\n default: {\n errorMessage = t('ep.http.serverError')\n }\n }\n makeErrorMessage?.(errorMessage, error)\n return Promise.reject(error)\n },\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset-interceptors.mjs","sources":["../../../../../../packages/utils/http/core/preset-interceptors.ts"],"sourcesContent":["import type { MakeErrorMessageFn, ResponseInterceptorConfig } from './types'\r\nimport { isFunction } from '@vue/shared'\r\nimport axios from 'axios'\r\nimport { startLoading, endLoading } from './modules/loading'\r\nimport { getToken } from '@el-plus/utils/cookie'\r\nimport { useLocale } from '@el-plus/hooks/use-locale'\r\nconst { t } = useLocale()\r\n\r\nexport const defaultRequestInterceptor = () => {\r\n return {\r\n fulfilled: async (config) => {\r\n if (config.loading) {\r\n startLoading()\r\n }\r\n const token = getToken()\r\n config.headers.Authorization = token ? `Bearer ${token}` : null\r\n config.headers = {\r\n ...config.headers,\r\n ...window.hx.getSignHeaders({\r\n sign: window.$EP_SIGN || {},\r\n config,\r\n }),\r\n }\r\n return config\r\n },\r\n rejected: (error) => {\r\n return Promise.reject(error)\r\n },\r\n }\r\n}\r\nexport const defaultResponseInterceptor = (options?: {\r\n /** 响应数据中代表访问结果的字段名 */\r\n codeField?: string\r\n /** 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据 */\r\n dataField?: ((response: any) => any) | string\r\n /** 当codeField所指定的字段值与successCode相同时,代表接口访问成功。如果提供一个函数,则返回true代表接口访问成功 */\r\n successCode?: ((code: any) => boolean) | number | string\r\n makeInfoMessage?: MakeErrorMessageFn\r\n}): ResponseInterceptorConfig => {\r\n const {\r\n codeField = 'code',\r\n dataField = 'data',\r\n successCode = 200,\r\n makeInfoMessage,\r\n } = options || {}\r\n return {\r\n fulfilled: (response) => {\r\n const { config, data: responseData, status } = response\r\n if (config.loading) {\r\n endLoading()\r\n }\r\n if (config.responseReturn === 'raw') {\r\n return response\r\n }\r\n if (!responseData.success && !config.noErrorMsg) {\r\n const msg = responseData.msg || responseData.message || 'Error'\r\n const error = new Error(msg) as Error & { type: string }\r\n error.type = 'service-error'\r\n makeInfoMessage?.(msg, error)\r\n return Promise.reject(error)\r\n }\r\n\r\n if (status >= 200 && status < 400) {\r\n if (config.responseReturn === 'body') {\r\n return responseData\r\n } else if (\r\n isFunction(successCode)\r\n ? successCode(responseData[codeField])\r\n : responseData[codeField] === successCode\r\n ) {\r\n return isFunction(dataField)\r\n ? dataField(responseData)\r\n : responseData[dataField]\r\n }\r\n }\r\n throw Object.assign({}, response, { response })\r\n },\r\n }\r\n}\r\n\r\n// 错误信息拦截器\r\nexport const errorMessageResponseInterceptor = (\r\n makeErrorMessage?: MakeErrorMessageFn,\r\n): ResponseInterceptorConfig => {\r\n return {\r\n rejected: (error: any) => {\r\n endLoading()\r\n if (axios.isCancel(error) || error.type === 'service-error') {\r\n return Promise.reject(error)\r\n }\r\n\r\n const err: string = error?.toString?.() ?? ''\r\n let errMsg = ''\r\n if (err?.includes('Network Error')) {\r\n errMsg = t('ep.http.networkError')\r\n } else if (error?.message?.includes?.('timeout')) {\r\n errMsg = t('ep.http.timeout')\r\n }\r\n if (errMsg) {\r\n makeErrorMessage?.(errMsg, error)\r\n return Promise.reject(error)\r\n }\r\n\r\n let errorMessage = ''\r\n const status = error?.response?.status\r\n switch (status) {\r\n case 400: {\r\n errorMessage = t('ep.http.requestError')\r\n break\r\n }\r\n case 401: {\r\n errorMessage = t('ep.http.authExpired')\r\n break\r\n }\r\n case 403: {\r\n errorMessage = t('ep.http.forbidden')\r\n break\r\n }\r\n case 404: {\r\n errorMessage = t('ep.http.notFound')\r\n break\r\n }\r\n default: {\r\n errorMessage = t('ep.http.serverError')\r\n }\r\n }\r\n makeErrorMessage?.(errorMessage, error)\r\n return Promise.reject(error)\r\n },\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-client.mjs","sources":["../../../../../../packages/utils/http/core/request-client.ts"],"sourcesContent":["import type { AxiosInstance, AxiosResponse } from 'axios'\nimport type {\n RequestClientConfig,\n RequestClientOptions,\n HttpSuccessResponse,\n} from './types'\nimport defu from 'defu'\nimport axios from 'axios'\n// import qs from 'qs'\nimport * as qs from 'qs'\nimport { isString } from '@vue/shared'\nimport { bindMethods } from '@el-plus/utils/utils'\nimport { InterceptorManager } from './modules/interceptor'\nfunction getParamsSerializer(\n paramsSerializer: RequestClientOptions['paramsSerializer'],\n) {\n if (isString(paramsSerializer)) {\n switch (paramsSerializer) {\n case 'brackets': {\n return (params: any) =>\n qs.stringify(params, { arrayFormat: 'brackets' })\n }\n case 'comma': {\n return (params: any) => qs.stringify(params, { arrayFormat: 'comma' })\n }\n case 'indices': {\n return (params: any) => qs.stringify(params, { arrayFormat: 'indices' })\n }\n case 'repeat': {\n return (params: any) => qs.stringify(params, { arrayFormat: 'repeat' })\n }\n }\n }\n return paramsSerializer\n}\n\nclass RequestClient {\n public readonly instance: AxiosInstance\n // 拦截器\n public addRequestInterceptor: InterceptorManager['addRequestInterceptor']\n public addResponseInterceptor: InterceptorManager['addResponseInterceptor']\n constructor(options: RequestClientOptions = {}) {\n // 合并默认配置和传入的配置\n const defaultConfig: RequestClientOptions = {\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n responseReturn: 'raw',\n // 默认超时时间10s\n timeout: 10_000,\n }\n const { ...axiosConfig } = options\n const requestConfig = defu(axiosConfig, defaultConfig)\n // requestConfig.paramsSerializer = getParamsSerializer(\n // requestConfig.paramsSerializer,\n // )\n this.instance = axios.create(requestConfig)\n\n bindMethods(this)\n\n // 实例化拦截器管理器\n const interceptorManager = new InterceptorManager(this.instance)\n this.addRequestInterceptor =\n interceptorManager.addRequestInterceptor.bind(interceptorManager)\n this.addResponseInterceptor =\n interceptorManager.addResponseInterceptor.bind(interceptorManager)\n }\n\n /**\n * DELETE请求方法\n */\n public delete<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n data?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request<T>(url, {\n ...config,\n data,\n method: 'DELETE',\n }) as Promise<R>\n }\n\n /**\n * GET请求方法\n */\n public get<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n params?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request<T>(url, {\n ...config,\n method: 'GET',\n params,\n }) as Promise<R>\n }\n\n /**\n * 获取基础URL\n */\n public getBaseUrl() {\n return this.instance.defaults.baseURL\n }\n\n /**\n * POST请求方法\n */\n public post<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n data?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request(url, { ...config, data, method: 'POST' }) as Promise<R>\n }\n\n /**\n * PUT请求方法\n */\n public put<T = any, R = HttpSuccessResponse<T>>(\n url: string,\n data?: any,\n config?: RequestClientConfig,\n ): Promise<R> {\n return this.request(url, { ...config, data, method: 'PUT' }) as Promise<R>\n }\n\n /**\n * 通用的请求方法\n */\n public async request<T, R = HttpSuccessResponse<T>>(\n url: string,\n config: RequestClientConfig,\n ): Promise<R> {\n try {\n const response: AxiosResponse<R> = await this.instance({\n url,\n ...config,\n // ...(config.paramsSerializer\n // ? { paramsSerializer: getParamsSerializer(config.paramsSerializer) }\n // : {}),\n })\n return response as R\n } catch (error: any) {\n throw error.response ? error.response.data : error\n }\n }\n}\nexport { RequestClient }\n"],"names":[],"mappings":";;;;;AAoCA,MAAM,aAAA,CAAc;AAAA,EAKlB,WAAA,CAAY,OAAA,GAAgC,EAAC,EAAG;AAE9C,IAAA,MAAM,aAAA,GAAsC;AAAA,MAC1C,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB;AAAA,OAClB;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA;AAAA,MAEhB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,MAAM,EAAE,GAAG,WAAA,EAAY,GAAI,OAAA;AAC3B,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,WAAA,EAAa,aAAa,CAAA;AAIrD,IAAA,IAAA,CAAK,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,aAAa,CAAA;AAE1C,IAAA,WAAA,CAAY,IAAI,CAAA;AAGhB,IAAA,MAAM,kBAAA,GAAqB,IAAI,kBAAA,CAAmB,IAAA,CAAK,QAAQ,CAAA;AAC/D,IAAA,IAAA,CAAK,qBAAA,GACH,kBAAA,CAAmB,qBAAA,CAAsB,IAAA,CAAK,kBAAkB,CAAA;AAClE,IAAA,IAAA,CAAK,sBAAA,GACH,kBAAA,CAAmB,sBAAA,CAAuB,IAAA,CAAK,kBAAkB,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKO,MAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAW,GAAA,EAAK;AAAA,MAC1B,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,KACT,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKO,GAAA,CACL,GAAA,EACA,MAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAW,GAAA,EAAK;AAAA,MAC1B,GAAG,MAAA;AAAA,MACH,MAAA,EAAQ,KAAA;AAAA,MACR;AAAA,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKO,UAAA,GAAa;AAClB,IAAA,OAAO,IAAA,CAAK,SAAS,QAAA,CAAS,OAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKO,IAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAQ,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,MAAA,EAAQ,CAAA;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAKO,GAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAQ,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,CAAA;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,OAAA,CACX,GAAA,EACA,MAAA,EACY;AACZ,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAA6B,MAAM,IAAA,CAAK,QAAA,CAAS;AAAA,QACrD,GAAA;AAAA,QACA,GAAG;AAAA;AAAA;AAAA;AAAA,OAIJ,CAAA;AACD,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAY;AACnB,MAAA,MAAM,KAAA,CAAM,QAAA,GAAW,KAAA,CAAM,QAAA,CAAS,IAAA,GAAO,KAAA;AAAA,IAC/C;AAAA,EACF;AACF;;;;"}
1
+ {"version":3,"file":"request-client.mjs","sources":["../../../../../../packages/utils/http/core/request-client.ts"],"sourcesContent":["import type { AxiosInstance, AxiosResponse } from 'axios'\r\nimport type {\r\n RequestClientConfig,\r\n RequestClientOptions,\r\n HttpSuccessResponse,\r\n} from './types'\r\nimport defu from 'defu'\r\nimport axios from 'axios'\r\n// import qs from 'qs'\r\nimport * as qs from 'qs'\r\nimport { isString } from '@vue/shared'\r\nimport { bindMethods } from '@el-plus/utils/utils'\r\nimport { InterceptorManager } from './modules/interceptor'\r\nfunction getParamsSerializer(\r\n paramsSerializer: RequestClientOptions['paramsSerializer'],\r\n) {\r\n if (isString(paramsSerializer)) {\r\n switch (paramsSerializer) {\r\n case 'brackets': {\r\n return (params: any) =>\r\n qs.stringify(params, { arrayFormat: 'brackets' })\r\n }\r\n case 'comma': {\r\n return (params: any) => qs.stringify(params, { arrayFormat: 'comma' })\r\n }\r\n case 'indices': {\r\n return (params: any) => qs.stringify(params, { arrayFormat: 'indices' })\r\n }\r\n case 'repeat': {\r\n return (params: any) => qs.stringify(params, { arrayFormat: 'repeat' })\r\n }\r\n }\r\n }\r\n return paramsSerializer\r\n}\r\n\r\nclass RequestClient {\r\n public readonly instance: AxiosInstance\r\n // 拦截器\r\n public addRequestInterceptor: InterceptorManager['addRequestInterceptor']\r\n public addResponseInterceptor: InterceptorManager['addResponseInterceptor']\r\n constructor(options: RequestClientOptions = {}) {\r\n // 合并默认配置和传入的配置\r\n const defaultConfig: RequestClientOptions = {\r\n headers: {\r\n 'Content-Type': 'application/json;charset=utf-8',\r\n },\r\n responseReturn: 'raw',\r\n // 默认超时时间10s\r\n timeout: 10_000,\r\n }\r\n const { ...axiosConfig } = options\r\n const requestConfig = defu(axiosConfig, defaultConfig)\r\n // requestConfig.paramsSerializer = getParamsSerializer(\r\n // requestConfig.paramsSerializer,\r\n // )\r\n this.instance = axios.create(requestConfig)\r\n\r\n bindMethods(this)\r\n\r\n // 实例化拦截器管理器\r\n const interceptorManager = new InterceptorManager(this.instance)\r\n this.addRequestInterceptor =\r\n interceptorManager.addRequestInterceptor.bind(interceptorManager)\r\n this.addResponseInterceptor =\r\n interceptorManager.addResponseInterceptor.bind(interceptorManager)\r\n }\r\n\r\n /**\r\n * DELETE请求方法\r\n */\r\n public delete<T = any, R = HttpSuccessResponse<T>>(\r\n url: string,\r\n data?: any,\r\n config?: RequestClientConfig,\r\n ): Promise<R> {\r\n return this.request<T>(url, {\r\n ...config,\r\n data,\r\n method: 'DELETE',\r\n }) as Promise<R>\r\n }\r\n\r\n /**\r\n * GET请求方法\r\n */\r\n public get<T = any, R = HttpSuccessResponse<T>>(\r\n url: string,\r\n params?: any,\r\n config?: RequestClientConfig,\r\n ): Promise<R> {\r\n return this.request<T>(url, {\r\n ...config,\r\n method: 'GET',\r\n params,\r\n }) as Promise<R>\r\n }\r\n\r\n /**\r\n * 获取基础URL\r\n */\r\n public getBaseUrl() {\r\n return this.instance.defaults.baseURL\r\n }\r\n\r\n /**\r\n * POST请求方法\r\n */\r\n public post<T = any, R = HttpSuccessResponse<T>>(\r\n url: string,\r\n data?: any,\r\n config?: RequestClientConfig,\r\n ): Promise<R> {\r\n return this.request(url, { ...config, data, method: 'POST' }) as Promise<R>\r\n }\r\n\r\n /**\r\n * PUT请求方法\r\n */\r\n public put<T = any, R = HttpSuccessResponse<T>>(\r\n url: string,\r\n data?: any,\r\n config?: RequestClientConfig,\r\n ): Promise<R> {\r\n return this.request(url, { ...config, data, method: 'PUT' }) as Promise<R>\r\n }\r\n\r\n /**\r\n * 通用的请求方法\r\n */\r\n public async request<T, R = HttpSuccessResponse<T>>(\r\n url: string,\r\n config: RequestClientConfig,\r\n ): Promise<R> {\r\n try {\r\n const response: AxiosResponse<R> = await this.instance({\r\n url,\r\n ...config,\r\n // ...(config.paramsSerializer\r\n // ? { paramsSerializer: getParamsSerializer(config.paramsSerializer) }\r\n // : {}),\r\n })\r\n return response as R\r\n } catch (error: any) {\r\n throw error.response ? error.response.data : error\r\n }\r\n }\r\n}\r\nexport { RequestClient }\r\n"],"names":[],"mappings":";;;;;AAoCA,MAAM,aAAA,CAAc;AAAA,EAKlB,WAAA,CAAY,OAAA,GAAgC,EAAC,EAAG;AAE9C,IAAA,MAAM,aAAA,GAAsC;AAAA,MAC1C,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB;AAAA,OAClB;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA;AAAA,MAEhB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,MAAM,EAAE,GAAG,WAAA,EAAY,GAAI,OAAA;AAC3B,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,WAAA,EAAa,aAAa,CAAA;AAIrD,IAAA,IAAA,CAAK,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,aAAa,CAAA;AAE1C,IAAA,WAAA,CAAY,IAAI,CAAA;AAGhB,IAAA,MAAM,kBAAA,GAAqB,IAAI,kBAAA,CAAmB,IAAA,CAAK,QAAQ,CAAA;AAC/D,IAAA,IAAA,CAAK,qBAAA,GACH,kBAAA,CAAmB,qBAAA,CAAsB,IAAA,CAAK,kBAAkB,CAAA;AAClE,IAAA,IAAA,CAAK,sBAAA,GACH,kBAAA,CAAmB,sBAAA,CAAuB,IAAA,CAAK,kBAAkB,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKO,MAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAW,GAAA,EAAK;AAAA,MAC1B,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,KACT,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKO,GAAA,CACL,GAAA,EACA,MAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAW,GAAA,EAAK;AAAA,MAC1B,GAAG,MAAA;AAAA,MACH,MAAA,EAAQ,KAAA;AAAA,MACR;AAAA,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKO,UAAA,GAAa;AAClB,IAAA,OAAO,IAAA,CAAK,SAAS,QAAA,CAAS,OAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKO,IAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAQ,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,MAAA,EAAQ,CAAA;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAKO,GAAA,CACL,GAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,OAAO,IAAA,CAAK,QAAQ,GAAA,EAAK,EAAE,GAAG,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,CAAA;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,OAAA,CACX,GAAA,EACA,MAAA,EACY;AACZ,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAA6B,MAAM,IAAA,CAAK,QAAA,CAAS;AAAA,QACrD,GAAA;AAAA,QACA,GAAG;AAAA;AAAA;AAAA;AAAA,OAIJ,CAAA;AACD,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAY;AACnB,MAAA,MAAM,KAAA,CAAM,QAAA,GAAW,KAAA,CAAM,QAAA,CAAS,IAAA,GAAO,KAAA;AAAA,IAC/C;AAAA,EACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/utils/http/index.ts"],"sourcesContent":["import {\n defaultRequestInterceptor,\n defaultResponseInterceptor,\n errorMessageResponseInterceptor,\n} from './core/preset-interceptors'\nimport { RequestClient } from './core/request-client'\nimport { ElMessage } from 'element-plus'\n\nlet baseURL = '/vue-api'\nif (import.meta.env.DEV) {\n const urlParams = new URLSearchParams(window.location.search)\n const devProxy = urlParams.get('devProxy')\n baseURL = devProxy || '/sit-api'\n}\n\nconst client = new RequestClient({\n baseURL,\n responseReturn: 'body',\n timeout: 50_000,\n})\n\n/**\n * 重新认证逻辑\n */\nasync function doReAuthenticate() {\n let loginUrl = '/pc-vue/login'\n if (import.meta.env.DEV) {\n loginUrl = `${location.pathname}${location.search}#/login`\n }\n\n if (window.parent) {\n window.parent.location.href = loginUrl\n } else {\n window.location.href = loginUrl\n }\n}\n\n// 请求头处理\nclient.addRequestInterceptor(defaultRequestInterceptor())\n\n// 处理成功返回的响应数据格式\nclient.addResponseInterceptor(\n defaultResponseInterceptor({\n makeInfoMessage: (msg) => {\n ElMessage.error(msg)\n },\n }),\n)\n\n// 通用的错误处理,如果没有进入上面的错误处理逻辑,就会进入这里\nclient.addResponseInterceptor(\n errorMessageResponseInterceptor((msg: string, error) => {\n const responseData = error?.response?.data ?? {}\n const errorMessage = responseData?.error ?? responseData?.message ?? ''\n // 如果没有错误信息,则会根据状态码进行提示\n ElMessage.error({\n message: errorMessage || msg,\n onClose: () => {\n if (error?.response?.status === 401) {\n doReAuthenticate()\n }\n },\n })\n }),\n)\n\nexport const http = client\nexport * from './core/types'\n"],"names":[],"mappings":";;;;AAQA,IAAI,OAAA,GAAU,UAAA;AACd,IAAI,MAAA,CAAA,IAAA,CAAY,IAAI,GAAA,EAAK;AACvB,EAAA,MAAM,SAAA,GAAY,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AAC5D,EAAA,MAAM,QAAA,GAAW,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AACzC,EAAA,OAAA,GAAU,QAAA,IAAY,UAAA;AACxB;AAEA,MAAM,MAAA,GAAS,IAAI,aAAA,CAAc;AAAA,EAC/B,OAAA;AAAA,EACA,cAAA,EAAgB,MAAA;AAAA,EAChB,OAAA,EAAS;AACX,CAAC,CAAA;AAKD,eAAe,gBAAA,GAAmB;AAChC,EAAA,IAAI,QAAA,GAAW,eAAA;AACf,EAAA,IAAI,MAAA,CAAA,IAAA,CAAY,IAAI,GAAA,EAAK;AACvB,IAAA,QAAA,GAAW,CAAA,EAAG,QAAA,CAAS,QAAQ,CAAA,EAAG,SAAS,MAAM,CAAA,OAAA,CAAA;AAAA,EACnD;AAEA,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,MAAA,CAAO,MAAA,CAAO,SAAS,IAAA,GAAO,QAAA;AAAA,EAChC,CAAA,MAAO;AACL,IAAA,MAAA,CAAO,SAAS,IAAA,GAAO,QAAA;AAAA,EACzB;AACF;AAGA,MAAA,CAAO,qBAAA,CAAsB,2BAA2B,CAAA;AAGxD,MAAA,CAAO,sBAAA;AAAA,EACL,0BAAA,CAA2B;AAAA,IACzB,eAAA,EAAiB,CAAC,GAAA,KAAQ;AACxB,MAAA,SAAA,CAAU,MAAM,GAAG,CAAA;AAAA,IACrB;AAAA,GACD;AACH,CAAA;AAGA,MAAA,CAAO,sBAAA;AAAA,EACL,+BAAA,CAAgC,CAAC,GAAA,EAAa,KAAA,KAAU;AACtD,IAAA,MAAM,YAAA,GAAe,KAAA,EAAO,QAAA,EAAU,IAAA,IAAQ,EAAC;AAC/C,IAAA,MAAM,YAAA,GAAe,YAAA,EAAc,KAAA,IAAS,YAAA,EAAc,OAAA,IAAW,EAAA;AAErE,IAAA,SAAA,CAAU,KAAA,CAAM;AAAA,MACd,SAAS,YAAA,IAAgB,GAAA;AAAA,MACzB,SAAS,MAAM;AACb,QAAA,IAAI,KAAA,EAAO,QAAA,EAAU,MAAA,KAAW,GAAA,EAAK;AACnC,UAAA,gBAAA,EAAiB;AAAA,QACnB;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH,CAAC;AACH,CAAA;AAEO,MAAM,IAAA,GAAO;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/utils/http/index.ts"],"sourcesContent":["import {\r\n defaultRequestInterceptor,\r\n defaultResponseInterceptor,\r\n errorMessageResponseInterceptor,\r\n} from './core/preset-interceptors'\r\nimport { RequestClient } from './core/request-client'\r\nimport { ElMessage } from 'element-plus'\r\n\r\nlet baseURL = '/vue-api'\r\nif (import.meta.env.DEV) {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const devProxy = urlParams.get('devProxy')\r\n baseURL = devProxy || '/sit-api'\r\n}\r\n\r\nconst client = new RequestClient({\r\n baseURL,\r\n responseReturn: 'body',\r\n timeout: 50_000,\r\n})\r\n\r\n/**\r\n * 重新认证逻辑\r\n */\r\nasync function doReAuthenticate() {\r\n let loginUrl = '/pc-vue/login'\r\n if (import.meta.env.DEV) {\r\n loginUrl = `${location.pathname}${location.search}#/login`\r\n }\r\n\r\n if (window.parent) {\r\n window.parent.location.href = loginUrl\r\n } else {\r\n window.location.href = loginUrl\r\n }\r\n}\r\n\r\n// 请求头处理\r\nclient.addRequestInterceptor(defaultRequestInterceptor())\r\n\r\n// 处理成功返回的响应数据格式\r\nclient.addResponseInterceptor(\r\n defaultResponseInterceptor({\r\n makeInfoMessage: (msg) => {\r\n ElMessage.error(msg)\r\n },\r\n }),\r\n)\r\n\r\n// 通用的错误处理,如果没有进入上面的错误处理逻辑,就会进入这里\r\nclient.addResponseInterceptor(\r\n errorMessageResponseInterceptor((msg: string, error) => {\r\n const responseData = error?.response?.data ?? {}\r\n const errorMessage = responseData?.error ?? responseData?.message ?? ''\r\n // 如果没有错误信息,则会根据状态码进行提示\r\n ElMessage.error({\r\n message: errorMessage || msg,\r\n onClose: () => {\r\n if (error?.response?.status === 401) {\r\n doReAuthenticate()\r\n }\r\n },\r\n })\r\n }),\r\n)\r\n\r\nexport const http = client\r\nexport * from './core/types'\r\n"],"names":[],"mappings":";;;;AAQA,IAAI,OAAA,GAAU,UAAA;AACd,IAAI,MAAA,CAAA,IAAA,CAAY,IAAI,GAAA,EAAK;AACvB,EAAA,MAAM,SAAA,GAAY,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AAC5D,EAAA,MAAM,QAAA,GAAW,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AACzC,EAAA,OAAA,GAAU,QAAA,IAAY,UAAA;AACxB;AAEA,MAAM,MAAA,GAAS,IAAI,aAAA,CAAc;AAAA,EAC/B,OAAA;AAAA,EACA,cAAA,EAAgB,MAAA;AAAA,EAChB,OAAA,EAAS;AACX,CAAC,CAAA;AAKD,eAAe,gBAAA,GAAmB;AAChC,EAAA,IAAI,QAAA,GAAW,eAAA;AACf,EAAA,IAAI,MAAA,CAAA,IAAA,CAAY,IAAI,GAAA,EAAK;AACvB,IAAA,QAAA,GAAW,CAAA,EAAG,QAAA,CAAS,QAAQ,CAAA,EAAG,SAAS,MAAM,CAAA,OAAA,CAAA;AAAA,EACnD;AAEA,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,MAAA,CAAO,MAAA,CAAO,SAAS,IAAA,GAAO,QAAA;AAAA,EAChC,CAAA,MAAO;AACL,IAAA,MAAA,CAAO,SAAS,IAAA,GAAO,QAAA;AAAA,EACzB;AACF;AAGA,MAAA,CAAO,qBAAA,CAAsB,2BAA2B,CAAA;AAGxD,MAAA,CAAO,sBAAA;AAAA,EACL,0BAAA,CAA2B;AAAA,IACzB,eAAA,EAAiB,CAAC,GAAA,KAAQ;AACxB,MAAA,SAAA,CAAU,MAAM,GAAG,CAAA;AAAA,IACrB;AAAA,GACD;AACH,CAAA;AAGA,MAAA,CAAO,sBAAA;AAAA,EACL,+BAAA,CAAgC,CAAC,GAAA,EAAa,KAAA,KAAU;AACtD,IAAA,MAAM,YAAA,GAAe,KAAA,EAAO,QAAA,EAAU,IAAA,IAAQ,EAAC;AAC/C,IAAA,MAAM,YAAA,GAAe,YAAA,EAAc,KAAA,IAAS,YAAA,EAAc,OAAA,IAAW,EAAA;AAErE,IAAA,SAAA,CAAU,KAAA,CAAM;AAAA,MACd,SAAS,YAAA,IAAgB,GAAA;AAAA,MACzB,SAAS,MAAM;AACb,QAAA,IAAI,KAAA,EAAO,QAAA,EAAU,MAAA,KAAW,GAAA,EAAK;AACnC,UAAA,gBAAA,EAAiB;AAAA,QACnB;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH,CAAC;AACH,CAAA;AAEO,MAAM,IAAA,GAAO;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"mitt.mjs","sources":["../../../../packages/utils/mitt.ts"],"sourcesContent":["import mitt, { Emitter, EventType, Handler } from 'mitt'\n\n// 扩展Emitter类型,添加asyncOn方法\n// interface ExtendedEmitter<T = Record<EventType, unknown>> extends Emitter<T> {\n// once: <T = any>(eventName: EventType) => Promise<T>\n// }\n// 1. 定义你的事件类型映射\ntype Events = {\n [key: string]: any\n}\ntype CustomEmitter<T extends Record<EventType, unknown>> = Emitter<T> & {\n once<K extends keyof T>(eventName: K): Promise<T[K]>\n}\nexport const bus = mitt<Events>() as CustomEmitter<Events>\nbus.once = (eventName) => {\n return new Promise((resolve) => {\n const handler: Handler<Events[typeof eventName]> = (payload) => {\n // 触发后立即注销,防止内存泄漏\n bus.off(eventName, handler)\n resolve(payload)\n }\n bus.on(eventName, handler)\n })\n}\n"],"names":[],"mappings":";;AAaO,MAAM,MAAM,IAAA;AACnB,GAAA,CAAI,IAAA,GAAO,CAAC,SAAA,KAAc;AACxB,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC9B,IAAA,MAAM,OAAA,GAA6C,CAAC,OAAA,KAAY;AAE9D,MAAA,GAAA,CAAI,GAAA,CAAI,WAAW,OAAO,CAAA;AAC1B,MAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,IACjB,CAAA;AACA,IAAA,GAAA,CAAI,EAAA,CAAG,WAAW,OAAO,CAAA;AAAA,EAC3B,CAAC,CAAA;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"mitt.mjs","sources":["../../../../packages/utils/mitt.ts"],"sourcesContent":["import mitt, { Emitter, EventType, Handler } from 'mitt'\r\n\r\n// 扩展Emitter类型,添加asyncOn方法\r\n// interface ExtendedEmitter<T = Record<EventType, unknown>> extends Emitter<T> {\r\n// once: <T = any>(eventName: EventType) => Promise<T>\r\n// }\r\n// 1. 定义你的事件类型映射\r\ntype Events = {\r\n [key: string]: any\r\n}\r\ntype CustomEmitter<T extends Record<EventType, unknown>> = Emitter<T> & {\r\n once<K extends keyof T>(eventName: K): Promise<T[K]>\r\n}\r\nexport const bus = mitt<Events>() as CustomEmitter<Events>\r\nbus.once = (eventName) => {\r\n return new Promise((resolve) => {\r\n const handler: Handler<Events[typeof eventName]> = (payload) => {\r\n // 触发后立即注销,防止内存泄漏\r\n bus.off(eventName, handler)\r\n resolve(payload)\r\n }\r\n bus.on(eventName, handler)\r\n })\r\n}\r\n"],"names":[],"mappings":";;AAaO,MAAM,MAAM,IAAA;AACnB,GAAA,CAAI,IAAA,GAAO,CAAC,SAAA,KAAc;AACxB,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC9B,IAAA,MAAM,OAAA,GAA6C,CAAC,OAAA,KAAY;AAE9D,MAAA,GAAA,CAAI,GAAA,CAAI,WAAW,OAAO,CAAA;AAC1B,MAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,IACjB,CAAA;AACA,IAAA,GAAA,CAAI,EAAA,CAAG,WAAW,OAAO,CAAA;AAAA,EAC3B,CAAC,CAAA;AACH,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.mjs","sources":["../../../../packages/utils/navigation.ts"],"sourcesContent":["import { useLocale } from '@el-plus/hooks/use-locale'\nconst { t } = useLocale()\n\nexport interface NavigationConfig {\n id?: number\n name?: string // 路由name\n title?: string // 标题\n url?: string\n query?: Record<string, string>\n}\nexport const gotoTaskTrace = (workflowId: string) => {\n const item: NavigationConfig = {\n id: Date.now(),\n name: t('ep.bpm.approvalLog'),\n url: `/bpm-pc/#/bpm/trace/taskTrace?pid=&aid=&wid=&tid=${workflowId}`,\n }\n if (window.parent && window.parent.openMenuSelect) {\n window.parent.openMenuSelect(item)\n } else {\n window.open(item.url)\n }\n}\n"],"names":[],"mappings":";;AACA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AASjB,MAAM,aAAA,GAAgB,CAAC,UAAA,KAAuB;AACnD,EAAA,MAAM,IAAA,GAAyB;AAAA,IAC7B,EAAA,EAAI,KAAK,GAAA,EAAI;AAAA,IACb,IAAA,EAAM,EAAE,oBAAoB,CAAA;AAAA,IAC5B,GAAA,EAAK,oDAAoD,UAAU,CAAA;AAAA,GACrE;AACA,EAAA,IAAI,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB;AACjD,IAAA,MAAA,CAAO,MAAA,CAAO,eAAe,IAAI,CAAA;AAAA,EACnC,CAAA,MAAO;AACL,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,EACtB;AACF;;;;"}
1
+ {"version":3,"file":"navigation.mjs","sources":["../../../../packages/utils/navigation.ts"],"sourcesContent":["import { useLocale } from '@el-plus/hooks/use-locale'\r\nconst { t } = useLocale()\r\n\r\nexport interface NavigationConfig {\r\n id?: number\r\n name?: string // 路由name\r\n title?: string // 标题\r\n url?: string\r\n query?: Record<string, string>\r\n}\r\nexport const gotoTaskTrace = (workflowId: string) => {\r\n const item: NavigationConfig = {\r\n id: Date.now(),\r\n name: t('ep.bpm.approvalLog'),\r\n url: `/bpm-pc/#/bpm/trace/taskTrace?pid=&aid=&wid=&tid=${workflowId}`,\r\n }\r\n if (window.parent && window.parent.openMenuSelect) {\r\n window.parent.openMenuSelect(item)\r\n } else {\r\n window.open(item.url)\r\n }\r\n}\r\n"],"names":[],"mappings":";;AACA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AASjB,MAAM,aAAA,GAAgB,CAAC,UAAA,KAAuB;AACnD,EAAA,MAAM,IAAA,GAAyB;AAAA,IAC7B,EAAA,EAAI,KAAK,GAAA,EAAI;AAAA,IACb,IAAA,EAAM,EAAE,oBAAoB,CAAA;AAAA,IAC5B,GAAA,EAAK,oDAAoD,UAAU,CAAA;AAAA,GACrE;AACA,EAAA,IAAI,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB;AACjD,IAAA,MAAA,CAAO,MAAA,CAAO,eAAe,IAAI,CAAA;AAAA,EACnC,CAAA,MAAO;AACL,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,EACtB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","sources":["../../../../packages/utils/props.ts"],"sourcesContent":["import type { Api, ReqBefore, ReqAfter, Method } from '@el-plus/utils/http'\nimport type { PropType, SetupContext, MaybeRef, ExtractPropTypes } from 'vue'\nimport { useAttrs } from 'vue'\nexport const apiProps = {\n api: {\n type: [String, Function] as PropType<Api>,\n },\n method: {\n type: String as PropType<Method>,\n },\n reqData: {\n type: Object,\n },\n reqParams: {\n type: Object,\n },\n reqBefore: {\n type: Function as PropType<ReqBefore>,\n },\n reqAfter: {\n type: Function as PropType<ReqAfter>,\n },\n}\ntype IVisible = boolean | ((T: unknown) => boolean)\nexport const visibleProps = {\n show: {\n type: [Boolean, Function] as PropType<IVisible>,\n },\n hide: {\n type: [Boolean, Function] as PropType<IVisible>,\n },\n}\nexport type VisibleProps = ExtractPropTypes<typeof visibleProps>\nexport const prepareProps = <T extends Record<string, any>>( // eslint-disable-line @typescript-eslint/no-explicit-any\n props: T,\n excludeKeys: string[] = [],\n): Partial<T> => {\n return Object.keys(props).reduce((acc, key) => {\n if (!excludeKeys.includes(key)) {\n acc[key as keyof T] = props[key]\n }\n return acc\n }, {} as Partial<T>)\n}\n\nexport type IDisabled = boolean | ((...args: any[]) => boolean)\nexport const disabledProps = {\n disabled: {\n type: [Boolean, Function] as PropType<IDisabled>,\n },\n}\nexport type DisabledProps = ExtractPropTypes<typeof disabledProps>\nexport const prepareEvents = <T extends Record<string, unknown> | string[]>(\n emit: SetupContext<T>['emit'],\n eventKeys: string[],\n // (keyof T & string)[] = [],\n) => {\n return eventKeys.reduce(\n (acc, key) => {\n // 转换on+事件名\n let eventName\n if (key.startsWith('on')) {\n eventName = key\n } else {\n if (key.includes('-')) {\n eventName =\n 'on' +\n key\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join('')\n } else {\n eventName = `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\n }\n }\n acc[eventName] = (...args: unknown[]) => emit(key, ...args)\n return acc\n },\n {} as Record<string, unknown>,\n )\n}\n\nexport const prepareClassNames = () => {\n return useAttrs().class || ''\n}\nexport const prepareStyles = () => {\n return useAttrs().style || {}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,QAAA,GAAW;AAAA,EACtB,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,CAAC,MAAA,EAAQ,QAAQ;AAAA,GACzB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA;AAEV;AAEO,MAAM,YAAA,GAAe;AAAA,EAC1B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA,GAC1B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA;AAE5B;AAEO,MAAM,YAAA,GAAe,CAC1B,KAAA,EACA,WAAA,GAAwB,EAAC,KACV;AACf,EAAA,OAAO,OAAO,IAAA,CAAK,KAAK,EAAE,MAAA,CAAO,CAAC,KAAK,GAAA,KAAQ;AAC7C,IAAA,IAAI,CAAC,WAAA,CAAY,QAAA,CAAS,GAAG,CAAA,EAAG;AAC9B,MAAA,GAAA,CAAI,GAAc,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACjC;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAgB,CAAA;AACrB;AAGO,MAAM,aAAA,GAAgB;AAAA,EAC3B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA;AAE5B;AAEO,MAAM,aAAA,GAAgB,CAC3B,IAAA,EACA,SAAA,KAEG;AACH,EAAA,OAAO,SAAA,CAAU,MAAA;AAAA,IACf,CAAC,KAAK,GAAA,KAAQ;AAEZ,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACxB,QAAA,SAAA,GAAY,GAAA;AAAA,MACd,CAAA,MAAO;AACL,QAAA,IAAI,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG;AACrB,UAAA,SAAA,GACE,IAAA,GACA,IACG,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,KAAgB,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAC1D,KAAK,EAAE,CAAA;AAAA,QACd,CAAA,MAAO;AACL,UAAA,SAAA,GAAY,CAAA,EAAA,EAAK,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,EAAG,GAAA,CAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,QAC7D;AAAA,MACF;AACA,MAAA,GAAA,CAAI,SAAS,CAAA,GAAI,CAAA,GAAI,SAAoB,IAAA,CAAK,GAAA,EAAK,GAAG,IAAI,CAAA;AAC1D,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAC,GACH;AACF;AAEO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO,QAAA,GAAW,KAAA,IAAS,EAAA;AAC7B;AACO,MAAM,gBAAgB,MAAM;AACjC,EAAA,OAAO,QAAA,EAAS,CAAE,KAAA,IAAS,EAAC;AAC9B;;;;"}
1
+ {"version":3,"file":"props.mjs","sources":["../../../../packages/utils/props.ts"],"sourcesContent":["import type { Api, ReqBefore, ReqAfter, Method } from '@el-plus/utils/http'\r\nimport type { PropType, SetupContext, MaybeRef, ExtractPropTypes } from 'vue'\r\nimport { useAttrs } from 'vue'\r\nexport const apiProps = {\r\n api: {\r\n type: [String, Function] as PropType<Api>,\r\n },\r\n method: {\r\n type: String as PropType<Method>,\r\n },\r\n reqData: {\r\n type: Object,\r\n },\r\n reqParams: {\r\n type: Object,\r\n },\r\n reqBefore: {\r\n type: Function as PropType<ReqBefore>,\r\n },\r\n reqAfter: {\r\n type: Function as PropType<ReqAfter>,\r\n },\r\n}\r\ntype IVisible = boolean | ((T: unknown) => boolean)\r\nexport const visibleProps = {\r\n show: {\r\n type: [Boolean, Function] as PropType<IVisible>,\r\n },\r\n hide: {\r\n type: [Boolean, Function] as PropType<IVisible>,\r\n },\r\n}\r\nexport type VisibleProps = ExtractPropTypes<typeof visibleProps>\r\nexport const prepareProps = <T extends Record<string, any>>( // eslint-disable-line @typescript-eslint/no-explicit-any\r\n props: T,\r\n excludeKeys: string[] = [],\r\n): Partial<T> => {\r\n return Object.keys(props).reduce((acc, key) => {\r\n if (!excludeKeys.includes(key)) {\r\n acc[key as keyof T] = props[key]\r\n }\r\n return acc\r\n }, {} as Partial<T>)\r\n}\r\n\r\nexport type IDisabled = boolean | ((...args: any[]) => boolean)\r\nexport const disabledProps = {\r\n disabled: {\r\n type: [Boolean, Function] as PropType<IDisabled>,\r\n },\r\n}\r\nexport type DisabledProps = ExtractPropTypes<typeof disabledProps>\r\nexport const prepareEvents = <T extends Record<string, unknown> | string[]>(\r\n emit: SetupContext<T>['emit'],\r\n eventKeys: string[],\r\n // (keyof T & string)[] = [],\r\n) => {\r\n return eventKeys.reduce(\r\n (acc, key) => {\r\n // 转换on+事件名\r\n let eventName\r\n if (key.startsWith('on')) {\r\n eventName = key\r\n } else {\r\n if (key.includes('-')) {\r\n eventName =\r\n 'on' +\r\n key\r\n .split('-')\r\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\r\n .join('')\r\n } else {\r\n eventName = `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\r\n }\r\n }\r\n acc[eventName] = (...args: unknown[]) => emit(key, ...args)\r\n return acc\r\n },\r\n {} as Record<string, unknown>,\r\n )\r\n}\r\n\r\nexport const prepareClassNames = () => {\r\n return useAttrs().class || ''\r\n}\r\nexport const prepareStyles = () => {\r\n return useAttrs().style || {}\r\n}\r\n"],"names":[],"mappings":";;AAGO,MAAM,QAAA,GAAW;AAAA,EACtB,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,CAAC,MAAA,EAAQ,QAAQ;AAAA,GACzB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA;AAEV;AAEO,MAAM,YAAA,GAAe;AAAA,EAC1B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA,GAC1B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA;AAE5B;AAEO,MAAM,YAAA,GAAe,CAC1B,KAAA,EACA,WAAA,GAAwB,EAAC,KACV;AACf,EAAA,OAAO,OAAO,IAAA,CAAK,KAAK,EAAE,MAAA,CAAO,CAAC,KAAK,GAAA,KAAQ;AAC7C,IAAA,IAAI,CAAC,WAAA,CAAY,QAAA,CAAS,GAAG,CAAA,EAAG;AAC9B,MAAA,GAAA,CAAI,GAAc,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACjC;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAgB,CAAA;AACrB;AAGO,MAAM,aAAA,GAAgB;AAAA,EAC3B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA;AAE5B;AAEO,MAAM,aAAA,GAAgB,CAC3B,IAAA,EACA,SAAA,KAEG;AACH,EAAA,OAAO,SAAA,CAAU,MAAA;AAAA,IACf,CAAC,KAAK,GAAA,KAAQ;AAEZ,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACxB,QAAA,SAAA,GAAY,GAAA;AAAA,MACd,CAAA,MAAO;AACL,QAAA,IAAI,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG;AACrB,UAAA,SAAA,GACE,IAAA,GACA,IACG,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,KAAgB,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAC1D,KAAK,EAAE,CAAA;AAAA,QACd,CAAA,MAAO;AACL,UAAA,SAAA,GAAY,CAAA,EAAA,EAAK,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,EAAG,GAAA,CAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,QAC7D;AAAA,MACF;AACA,MAAA,GAAA,CAAI,SAAS,CAAA,GAAI,CAAA,GAAI,SAAoB,IAAA,CAAK,GAAA,EAAK,GAAG,IAAI,CAAA;AAC1D,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAC,GACH;AACF;AAEO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO,QAAA,GAAW,KAAA,IAAS,EAAA;AAC7B;AACO,MAAM,gBAAgB,MAAM;AACjC,EAAA,OAAO,QAAA,EAAS,CAAE,KAAA,IAAS,EAAC;AAC9B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"time.mjs","sources":["../../../../packages/utils/time.ts"],"sourcesContent":["import dayjs from 'dayjs'\nexport const getUnifyTime = function (\n date: string | number | Date,\n format?: string,\n): string | number | null {\n if (!date) return date === 0 ? null : date\n if (format === 'date') {\n format = 'YYYY-MM-DD'\n } else if (format === 'time') {\n format = 'YYYY-MM-DD HH:mm:ss'\n }\n if (format === 's') return dayjs(date).startOf('day').valueOf()\n if (format === 'e') return dayjs(date).endOf('day').valueOf()\n return format ? dayjs(date).format(format) : dayjs(date).valueOf()\n}\nexport { dayjs }\n"],"names":[],"mappings":";;;AACO,MAAM,YAAA,GAAe,SAC1B,IAAA,EACA,MAAA,EACwB;AACxB,EAAA,IAAI,CAAC,IAAA,EAAM,OAAO,IAAA,KAAS,IAAI,IAAA,GAAO,IAAA;AACtC,EAAA,IAAI,WAAW,MAAA,EAAQ;AACrB,IAAA,MAAA,GAAS,YAAA;AAAA,EACX,CAAA,MAAA,IAAW,WAAW,MAAA,EAAQ;AAC5B,IAAA,MAAA,GAAS,qBAAA;AAAA,EACX;AACA,EAAA,IAAI,MAAA,KAAW,KAAK,OAAO,KAAA,CAAM,IAAI,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,OAAA,EAAQ;AAC9D,EAAA,IAAI,MAAA,KAAW,KAAK,OAAO,KAAA,CAAM,IAAI,CAAA,CAAE,KAAA,CAAM,KAAK,CAAA,CAAE,OAAA,EAAQ;AAC5D,EAAA,OAAO,MAAA,GAAS,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA,CAAO,MAAM,CAAA,GAAI,KAAA,CAAM,IAAI,CAAA,CAAE,OAAA,EAAQ;AACnE;;;;"}
1
+ {"version":3,"file":"time.mjs","sources":["../../../../packages/utils/time.ts"],"sourcesContent":["import dayjs from 'dayjs'\r\nexport const getUnifyTime = function (\r\n date: string | number | Date,\r\n format?: string,\r\n): string | number | null {\r\n if (!date) return date === 0 ? null : date\r\n if (format === 'date') {\r\n format = 'YYYY-MM-DD'\r\n } else if (format === 'time') {\r\n format = 'YYYY-MM-DD HH:mm:ss'\r\n }\r\n if (format === 's') return dayjs(date).startOf('day').valueOf()\r\n if (format === 'e') return dayjs(date).endOf('day').valueOf()\r\n return format ? dayjs(date).format(format) : dayjs(date).valueOf()\r\n}\r\nexport { dayjs }\r\n"],"names":[],"mappings":";;;AACO,MAAM,YAAA,GAAe,SAC1B,IAAA,EACA,MAAA,EACwB;AACxB,EAAA,IAAI,CAAC,IAAA,EAAM,OAAO,IAAA,KAAS,IAAI,IAAA,GAAO,IAAA;AACtC,EAAA,IAAI,WAAW,MAAA,EAAQ;AACrB,IAAA,MAAA,GAAS,YAAA;AAAA,EACX,CAAA,MAAA,IAAW,WAAW,MAAA,EAAQ;AAC5B,IAAA,MAAA,GAAS,qBAAA;AAAA,EACX;AACA,EAAA,IAAI,MAAA,KAAW,KAAK,OAAO,KAAA,CAAM,IAAI,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,OAAA,EAAQ;AAC9D,EAAA,IAAI,MAAA,KAAW,KAAK,OAAO,KAAA,CAAM,IAAI,CAAA,CAAE,KAAA,CAAM,KAAK,CAAA,CAAE,OAAA,EAAQ;AAC5D,EAAA,OAAO,MAAA,GAAS,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA,CAAO,MAAM,CAAA,GAAI,KAAA,CAAM,IAAI,CAAA,CAAE,OAAA,EAAQ;AACnE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../../packages/utils/utils.ts"],"sourcesContent":["export const mergeListByKey = (defaultList, list, key = 'prop') => {\n // 合并默认按钮属性\n list.forEach((item) => {\n const defaultIndex = defaultList.findIndex(\n (item1) => item1[key] === item[key],\n )\n if (defaultIndex !== -1) {\n defaultList[defaultIndex] = {\n ...defaultList[defaultIndex],\n ...item,\n }\n }\n })\n const allList = defaultList.concat(list!)\n const mergeList = allList.reduce((arr, item) => {\n if (!Reflect.has(item, key) || !arr.some((obj) => obj[key] === item[key])) {\n arr.push(item)\n }\n return arr\n }, [])\n return mergeList\n}\n\nexport function bindMethods<T extends object>(instance: T): void {\n const prototype = Object.getPrototypeOf(instance)\n const propertyNames = Object.getOwnPropertyNames(prototype)\n\n propertyNames.forEach((propertyName) => {\n const descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName)\n const propertyValue = instance[propertyName as keyof T]\n\n if (\n typeof propertyValue === 'function' &&\n propertyName !== 'constructor' &&\n descriptor &&\n !descriptor.get &&\n !descriptor.set\n ) {\n instance[propertyName as keyof T] = propertyValue.bind(instance)\n }\n })\n}\n"],"names":[],"mappings":"AAAO,MAAM,cAAA,GAAiB,CAAC,WAAA,EAAa,IAAA,EAAM,MAAM,MAAA,KAAW;AAEjE,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,IAAA,KAAS;AACrB,IAAA,MAAM,eAAe,WAAA,CAAY,SAAA;AAAA,MAC/B,CAAC,KAAA,KAAU,KAAA,CAAM,GAAG,CAAA,KAAM,KAAK,GAAG;AAAA,KACpC;AACA,IAAA,IAAI,iBAAiB,EAAA,EAAI;AACvB,MAAA,WAAA,CAAY,YAAY,CAAA,GAAI;AAAA,QAC1B,GAAG,YAAY,YAAY,CAAA;AAAA,QAC3B,GAAG;AAAA,OACL;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACD,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,MAAA,CAAO,IAAK,CAAA;AACxC,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,CAAO,CAAC,KAAK,IAAA,KAAS;AAC9C,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,GAAG,KAAK,CAAC,GAAA,CAAI,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,GAAG,MAAM,IAAA,CAAK,GAAG,CAAC,CAAA,EAAG;AACzE,MAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,IACf;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,SAAA;AACT;AAEO,SAAS,YAA8B,QAAA,EAAmB;AAC/D,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,cAAA,CAAe,QAAQ,CAAA;AAChD,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,mBAAA,CAAoB,SAAS,CAAA;AAE1D,EAAA,aAAA,CAAc,OAAA,CAAQ,CAAC,YAAA,KAAiB;AACtC,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,wBAAA,CAAyB,SAAA,EAAW,YAAY,CAAA;AAC1E,IAAA,MAAM,aAAA,GAAgB,SAAS,YAAuB,CAAA;AAEtD,IAAA,IACE,OAAO,aAAA,KAAkB,UAAA,IACzB,YAAA,KAAiB,aAAA,IACjB,UAAA,IACA,CAAC,UAAA,CAAW,GAAA,IACZ,CAAC,UAAA,CAAW,GAAA,EACZ;AACA,MAAA,QAAA,CAAS,YAAuB,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,QAAQ,CAAA;AAAA,IACjE;AAAA,EACF,CAAC,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../../packages/utils/utils.ts"],"sourcesContent":["export const mergeListByKey = (defaultList, list, key = 'prop') => {\r\n // 合并默认按钮属性\r\n list.forEach((item) => {\r\n const defaultIndex = defaultList.findIndex(\r\n (item1) => item1[key] === item[key],\r\n )\r\n if (defaultIndex !== -1) {\r\n defaultList[defaultIndex] = {\r\n ...defaultList[defaultIndex],\r\n ...item,\r\n }\r\n }\r\n })\r\n const allList = defaultList.concat(list!)\r\n const mergeList = allList.reduce((arr, item) => {\r\n if (!Reflect.has(item, key) || !arr.some((obj) => obj[key] === item[key])) {\r\n arr.push(item)\r\n }\r\n return arr\r\n }, [])\r\n return mergeList\r\n}\r\n\r\nexport function bindMethods<T extends object>(instance: T): void {\r\n const prototype = Object.getPrototypeOf(instance)\r\n const propertyNames = Object.getOwnPropertyNames(prototype)\r\n\r\n propertyNames.forEach((propertyName) => {\r\n const descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName)\r\n const propertyValue = instance[propertyName as keyof T]\r\n\r\n if (\r\n typeof propertyValue === 'function' &&\r\n propertyName !== 'constructor' &&\r\n descriptor &&\r\n !descriptor.get &&\r\n !descriptor.set\r\n ) {\r\n instance[propertyName as keyof T] = propertyValue.bind(instance)\r\n }\r\n })\r\n}\r\n"],"names":[],"mappings":"AAAO,MAAM,cAAA,GAAiB,CAAC,WAAA,EAAa,IAAA,EAAM,MAAM,MAAA,KAAW;AAEjE,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,IAAA,KAAS;AACrB,IAAA,MAAM,eAAe,WAAA,CAAY,SAAA;AAAA,MAC/B,CAAC,KAAA,KAAU,KAAA,CAAM,GAAG,CAAA,KAAM,KAAK,GAAG;AAAA,KACpC;AACA,IAAA,IAAI,iBAAiB,EAAA,EAAI;AACvB,MAAA,WAAA,CAAY,YAAY,CAAA,GAAI;AAAA,QAC1B,GAAG,YAAY,YAAY,CAAA;AAAA,QAC3B,GAAG;AAAA,OACL;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACD,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,MAAA,CAAO,IAAK,CAAA;AACxC,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,CAAO,CAAC,KAAK,IAAA,KAAS;AAC9C,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,GAAG,KAAK,CAAC,GAAA,CAAI,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,GAAG,MAAM,IAAA,CAAK,GAAG,CAAC,CAAA,EAAG;AACzE,MAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,IACf;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,SAAA;AACT;AAEO,SAAS,YAA8B,QAAA,EAAmB;AAC/D,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,cAAA,CAAe,QAAQ,CAAA;AAChD,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,mBAAA,CAAoB,SAAS,CAAA;AAE1D,EAAA,aAAA,CAAc,OAAA,CAAQ,CAAC,YAAA,KAAiB;AACtC,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,wBAAA,CAAyB,SAAA,EAAW,YAAY,CAAA;AAC1E,IAAA,MAAM,aAAA,GAAgB,SAAS,YAAuB,CAAA;AAEtD,IAAA,IACE,OAAO,aAAA,KAAkB,UAAA,IACzB,YAAA,KAAiB,aAAA,IACjB,UAAA,IACA,CAAC,UAAA,CAAW,GAAA,IACZ,CAAC,UAAA,CAAW,GAAA,EACZ;AACA,MAAA,QAAA,CAAS,YAAuB,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,QAAQ,CAAA;AAAA,IACjE;AAAA,EACF,CAAC,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"with-install.mjs","sources":["../../../../packages/utils/with-install.ts"],"sourcesContent":["import type { Plugin, App, Component } from 'vue'\n\n// 绑定install,使得可以app.use注册为全局组件\ntype SFCWithInstall<T> = T & Plugin\nexport function withInstall<T extends Component>(comp: T) {\n ;(comp as SFCWithInstall<T>).install = (app: App) => {\n app.component((comp as { name: string }).name, comp)\n }\n return comp as SFCWithInstall<T>\n}\n"],"names":[],"mappings":"AAIO,SAAS,YAAiC,IAAA,EAAS;AACvD,EAAC,IAAA,CAA2B,OAAA,GAAU,CAAC,GAAA,KAAa;AACnD,IAAA,GAAA,CAAI,SAAA,CAAW,IAAA,CAA0B,IAAA,EAAM,IAAI,CAAA;AAAA,EACrD,CAAA;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
1
+ {"version":3,"file":"with-install.mjs","sources":["../../../../packages/utils/with-install.ts"],"sourcesContent":["import type { Plugin, App, Component } from 'vue'\r\n\r\n// 绑定install,使得可以app.use注册为全局组件\r\ntype SFCWithInstall<T> = T & Plugin\r\nexport function withInstall<T extends Component>(comp: T) {\r\n ;(comp as SFCWithInstall<T>).install = (app: App) => {\r\n app.component((comp as { name: string }).name, comp)\r\n }\r\n return comp as SFCWithInstall<T>\r\n}\r\n"],"names":[],"mappings":"AAIO,SAAS,YAAiC,IAAA,EAAS;AACvD,EAAC,IAAA,CAA2B,OAAA,GAAU,CAAC,GAAA,KAAa;AACnD,IAAA,GAAA,CAAI,SAAA,CAAW,IAAA,CAA0B,IAAA,EAAM,IAAI,CAAA;AAAA,EACrD,CAAA;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
package/global.d.ts CHANGED
@@ -1,21 +1,21 @@
1
- /* prettier-ignore */
2
-
3
- // GlobalComponents是vue3自带,用于扩展接口,给用户自定义全局组件补充类型提示
4
- declare module 'vue' {
5
- export interface GlobalComponents {
6
- // 接口自动合并 GlobalComponents for Volar
7
- EpButtons: typeof import('el-plus')['EpButtons']
8
- EpCustomColumn: typeof import('el-plus')['EpCustomColumn']
9
- EpDatePickerRange: typeof import('el-plus')['EpDatePickerRange']
10
- EpForm: typeof import('el-plus')['EpForm']
11
- EpHeader: typeof import('el-plus')['EpHeader']
12
- EpInput: typeof import('el-plus')['EpInput']
13
- EpLink: typeof import('el-plus')['EpLink']
14
- EpSearchListPage: typeof import('el-plus')['EpSearchListPage']
15
- EpSelect: typeof import('el-plus')['EpSelect']
16
- EpTable: typeof import('el-plus')['EpTable']
17
- EpTitle: typeof import('el-plus')['EpTitle']
18
- }
19
- }
20
-
21
- export {}
1
+ /* prettier-ignore */
2
+
3
+ // GlobalComponents是vue3自带,用于扩展接口,给用户自定义全局组件补充类型提示
4
+ declare module 'vue' {
5
+ export interface GlobalComponents {
6
+ // 接口自动合并 GlobalComponents for Volar
7
+ EpButtons: typeof import('el-plus')['EpButtons']
8
+ EpCustomColumn: typeof import('el-plus')['EpCustomColumn']
9
+ EpDatePickerRange: typeof import('el-plus')['EpDatePickerRange']
10
+ EpForm: typeof import('el-plus')['EpForm']
11
+ EpHeader: typeof import('el-plus')['EpHeader']
12
+ EpInput: typeof import('el-plus')['EpInput']
13
+ EpLink: typeof import('el-plus')['EpLink']
14
+ EpSearchListPage: typeof import('el-plus')['EpSearchListPage']
15
+ EpSelect: typeof import('el-plus')['EpSelect']
16
+ EpTable: typeof import('el-plus')['EpTable']
17
+ EpTitle: typeof import('el-plus')['EpTitle']
18
+ }
19
+ }
20
+
21
+ export {}
@@ -46,11 +46,15 @@ export declare const EpAttachment: {
46
46
  type: import("vue").PropType<any[]>;
47
47
  };
48
48
  }>> & Readonly<{
49
+ onCancel?: (() => any) | undefined;
50
+ onConfirm?: ((data: any[] | undefined) => any) | undefined;
49
51
  "onUpdate:modelValue"?: ((value: any[] | undefined) => any) | undefined;
50
52
  }>, {
51
53
  open: () => Promise<any>;
52
54
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
- "update:modelValue": (value: any[] | undefined) => any;
55
+ cancel: () => void;
56
+ confirm: (data: any[] | undefined) => void;
57
+ "update:modelValue": (value: any[] | undefined) => void;
54
58
  }, import("vue").PublicProps, {
55
59
  formatColumns: Partial<import("element-plus").TableColumnCtx & {
56
60
  [key: string]: any;
@@ -124,6 +128,8 @@ export declare const EpAttachment: {
124
128
  type: import("vue").PropType<any[]>;
125
129
  };
126
130
  }>> & Readonly<{
131
+ onCancel?: (() => any) | undefined;
132
+ onConfirm?: ((data: any[] | undefined) => any) | undefined;
127
133
  "onUpdate:modelValue"?: ((value: any[] | undefined) => any) | undefined;
128
134
  }>, {
129
135
  open: () => Promise<any>;
@@ -184,11 +190,15 @@ export declare const EpAttachment: {
184
190
  type: import("vue").PropType<any[]>;
185
191
  };
186
192
  }>> & Readonly<{
193
+ onCancel?: (() => any) | undefined;
194
+ onConfirm?: ((data: any[] | undefined) => any) | undefined;
187
195
  "onUpdate:modelValue"?: ((value: any[] | undefined) => any) | undefined;
188
196
  }>, {
189
197
  open: () => Promise<any>;
190
198
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
191
- "update:modelValue": (value: any[] | undefined) => any;
199
+ cancel: () => void;
200
+ confirm: (data: any[] | undefined) => void;
201
+ "update:modelValue": (value: any[] | undefined) => void;
192
202
  }, string, {
193
203
  formatColumns: Partial<import("element-plus").TableColumnCtx & {
194
204
  [key: string]: any;
@@ -8,6 +8,7 @@ var attachment = require('./src/attachment.js');
8
8
 
9
9
  const EpAttachment = withInstall.withInstall(attachment_vue_vue_type_script_setup_true_lang.default);
10
10
 
11
+ exports.attachmentEmits = attachment.attachmentEmits;
11
12
  exports.attachmentProps = attachment.attachmentProps;
12
13
  exports.EpAttachment = EpAttachment;
13
14
  exports.default = EpAttachment;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/attachment/index.ts"],"sourcesContent":["import Attachment from './src/attachment.vue'\nimport { withInstall } from '@el-plus/utils/with-install'\n\nexport const EpAttachment = withInstall(Attachment)\nexport default EpAttachment\nexport * from './src/attachment'\n"],"names":["withInstall","Attachment"],"mappings":";;;;;;;;AAGO,MAAM,YAAA,GAAeA,wBAAYC,sDAAU;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/attachment/index.ts"],"sourcesContent":["import Attachment from './src/attachment.vue'\r\nimport { withInstall } from '@el-plus/utils/with-install'\r\n\r\nexport const EpAttachment = withInstall(Attachment)\r\nexport default EpAttachment\r\nexport * from './src/attachment'\r\n"],"names":["withInstall","Attachment"],"mappings":";;;;;;;;AAGO,MAAM,YAAA,GAAeA,wBAAYC,sDAAU;;;;;;;"}
@@ -1,4 +1,5 @@
1
1
  import type { ExtractPublicPropTypes, PropType } from 'vue';
2
+ import type { TableProps } from 'el-plus/es/components/table';
2
3
  import type { PageMode } from 'el-plus/es/hooks/use-navigation';
3
4
  import type { Permission } from 'el-plus/es/directives/permission';
4
5
  export declare const attachmentProps: {
@@ -33,3 +34,8 @@ export declare const attachmentProps: {
33
34
  };
34
35
  };
35
36
  export type AttachmentProps = ExtractPublicPropTypes<typeof attachmentProps>;
37
+ export declare const attachmentEmits: {
38
+ confirm: (data: TableProps["data"]) => boolean;
39
+ cancel: () => boolean;
40
+ };
41
+ export type AttachmentEmits = typeof attachmentEmits;
@@ -40,6 +40,13 @@ const attachmentProps = {
40
40
  type: String
41
41
  }
42
42
  };
43
+ const attachmentEmits = {
44
+ // 确认
45
+ confirm: (data) => true,
46
+ // 取消
47
+ cancel: () => true
48
+ };
43
49
 
50
+ exports.attachmentEmits = attachmentEmits;
44
51
  exports.attachmentProps = attachmentProps;
45
52
  //# sourceMappingURL=attachment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.js","sources":["../../../../../../packages/components/attachment/src/attachment.ts"],"sourcesContent":["import type { ExtractPublicPropTypes, PropType } from 'vue'\nimport { tableProps } from '@el-plus/components/table'\nimport type { PageMode } from '@el-plus/hooks/use-navigation'\nimport type {Permission} from '@el-plus/directives/permission'\nexport const attachmentProps = {\n // 格式化列\n formatColumns: {\n ...tableProps.formatColumns,\n },\n // 页面模式\n mode: {\n type: String as PropType<PageMode>,\n },\n // 展示模式\n openType: {\n type: String as PropType<'dialog' | 'normal'>,\n default: 'dialog',\n },\n // 是否需要类型\n isType: {\n type: Boolean,\n default: true,\n },\n // 是否需要备注\n isNote: {\n type: Boolean,\n default: false,\n },\n // 是否需要打开弹窗按钮\n isShowOpenDialogButton: {\n type: Boolean,\n default: false,\n },\n // 添加前校验\n beforeAdd: {\n type: Function as PropType<(fileItem: Record<string, any>) => boolean>,\n },\n // 权限\n permission: {\n type: String as PropType<Permission>,\n },\n\n} as const\nexport type AttachmentProps = ExtractPublicPropTypes<typeof attachmentProps>\n"],"names":["tableProps"],"mappings":";;;;AAIO,MAAM,eAAA,GAAkB;AAAA;AAAA,EAE7B,aAAA,EAAe;AAAA,IACb,GAAGA,gBAAA,CAAW;AAAA,GAChB;AAAA;AAAA,EAEA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,GACR;AAAA;AAAA,EAEA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,sBAAA,EAAwB;AAAA,IACtB,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA;AAAA,EAEA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM;AAAA;AAGV;;;;"}
1
+ {"version":3,"file":"attachment.js","sources":["../../../../../../packages/components/attachment/src/attachment.ts"],"sourcesContent":["import type { ExtractPublicPropTypes, PropType } from 'vue'\r\nimport { tableProps } from '@el-plus/components/table'\r\nimport type { TableProps } from '@el-plus/components/table'\r\nimport type { PageMode } from '@el-plus/hooks/use-navigation'\r\nimport type {Permission} from '@el-plus/directives/permission'\r\nexport const attachmentProps = {\r\n // 格式化列\r\n formatColumns: {\r\n ...tableProps.formatColumns,\r\n },\r\n // 页面模式\r\n mode: {\r\n type: String as PropType<PageMode>,\r\n },\r\n // 展示模式\r\n openType: {\r\n type: String as PropType<'dialog' | 'normal'>,\r\n default: 'dialog',\r\n },\r\n // 是否需要类型\r\n isType: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n // 是否需要备注\r\n isNote: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n // 是否需要打开弹窗按钮\r\n isShowOpenDialogButton: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n // 添加前校验\r\n beforeAdd: {\r\n type: Function as PropType<(fileItem: Record<string, any>) => boolean>,\r\n },\r\n // 权限\r\n permission: {\r\n type: String as PropType<Permission>,\r\n },\r\n\r\n} as const\r\nexport type AttachmentProps = ExtractPublicPropTypes<typeof attachmentProps>\r\nexport const attachmentEmits = {\r\n // 确认\r\n confirm: (data: TableProps['data']) => true,\r\n // 取消\r\n cancel: () => true,\r\n}\r\nexport type AttachmentEmits = typeof attachmentEmits\r\n"],"names":["tableProps"],"mappings":";;;;AAKO,MAAM,eAAA,GAAkB;AAAA;AAAA,EAE7B,aAAA,EAAe;AAAA,IACb,GAAGA,gBAAA,CAAW;AAAA,GAChB;AAAA;AAAA,EAEA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,GACR;AAAA;AAAA,EAEA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,sBAAA,EAAwB;AAAA,IACtB,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA;AAAA,EAEA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM;AAAA;AAGV;AAEO,MAAM,eAAA,GAAkB;AAAA;AAAA,EAE7B,OAAA,EAAS,CAAC,IAAA,KAA6B,IAAA;AAAA;AAAA,EAEvC,QAAQ,MAAM;AAChB;;;;;"}