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.
- package/CHANGELOG.md +24 -0
- package/README.md +85 -85
- package/dist/index.css +1 -1
- package/dist/index.full.js +15 -5
- package/dist/index.full.min.js +4 -4
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +15 -6
- package/docs/CHANGELOG.md +5 -5
- package/docs/api-examples.md +49 -49
- package/docs/components/attachment.md +118 -111
- package/docs/components/buttons.md +179 -179
- package/docs/components/custom-column.md +70 -70
- package/docs/components/date-picker-range.md +61 -61
- package/docs/components/dialog.md +104 -104
- package/docs/components/footer-info.md +101 -101
- package/docs/components/form.md +211 -211
- package/docs/components/header.md +117 -117
- package/docs/components/input.md +111 -111
- package/docs/components/link.md +63 -63
- package/docs/components/search-list-page.md +91 -91
- package/docs/components/select.md +249 -249
- package/docs/components/table.md +145 -145
- package/docs/components/title.md +70 -70
- package/docs/components/use-choose-dialog.md +114 -114
- package/docs/components/use-confirm-dialog.md +86 -86
- package/docs/components/use-form-dialog.md +85 -85
- package/docs/guide/markdown-examples.md +85 -85
- package/docs/hooks/use-navigation.md +131 -131
- package/docs/hooks/use-utils.md +162 -162
- package/docs/index.md +25 -25
- package/docs/overview.md +99 -99
- package/docs/pages/detail.md +66 -66
- package/docs/pages/list.md +74 -74
- package/docs/pages/router.md +151 -151
- package/es/components/attachment/index.d.ts +12 -2
- package/es/components/attachment/index.mjs +1 -1
- package/es/components/attachment/index.mjs.map +1 -1
- package/es/components/attachment/src/attachment.d.ts +6 -0
- package/es/components/attachment/src/attachment.mjs +7 -1
- package/es/components/attachment/src/attachment.mjs.map +1 -1
- package/es/components/attachment/src/attachment.vue.d.ts +5 -1
- package/es/components/attachment/src/attachment.vue2.mjs +7 -4
- package/es/components/attachment/src/attachment.vue2.mjs.map +1 -1
- package/es/components/attachment/src/use-attachment.mjs.map +1 -1
- package/es/components/buttons/index.mjs.map +1 -1
- package/es/components/buttons/src/buttons-vue.mjs.map +1 -1
- package/es/components/buttons/src/buttons.mjs.map +1 -1
- package/es/components/custom-column/index.mjs.map +1 -1
- package/es/components/custom-column/src/custom-column.mjs.map +1 -1
- package/es/components/custom-column/src/custom-column.vue2.mjs.map +1 -1
- package/es/components/date-picker-range/index.mjs.map +1 -1
- package/es/components/date-picker-range/src/date-picker-range.mjs.map +1 -1
- package/es/components/date-picker-range/src/date-picker-range.vue2.mjs.map +1 -1
- package/es/components/footer-info/index.mjs.map +1 -1
- package/es/components/footer-info/src/footer-info.mjs.map +1 -1
- package/es/components/footer-info/src/footer-info.vue2.mjs.map +1 -1
- package/es/components/form/index.mjs.map +1 -1
- package/es/components/form/src/form-item-vue.mjs.map +1 -1
- package/es/components/form/src/form-item.mjs.map +1 -1
- package/es/components/form/src/form.mjs.map +1 -1
- package/es/components/form/src/form.vue2.mjs.map +1 -1
- package/es/components/form/src/hooks/use-form-item.mjs.map +1 -1
- package/es/components/form/src/hooks/use-form.mjs.map +1 -1
- package/es/components/header/index.mjs.map +1 -1
- package/es/components/header/src/header.mjs.map +1 -1
- package/es/components/header/src/header.vue2.mjs.map +1 -1
- package/es/components/header/src/use-header.mjs.map +1 -1
- package/es/components/index.mjs +1 -1
- package/es/components/input/index.mjs.map +1 -1
- package/es/components/input/src/input.mjs.map +1 -1
- package/es/components/input/src/input.vue2.mjs.map +1 -1
- package/es/components/link/index.mjs.map +1 -1
- package/es/components/link/src/link.mjs.map +1 -1
- package/es/components/link/src/link.vue2.mjs.map +1 -1
- package/es/components/search-list-page/index.mjs.map +1 -1
- package/es/components/search-list-page/src/search-list-page.mjs.map +1 -1
- package/es/components/search-list-page/src/search-list-page.vue2.mjs.map +1 -1
- package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
- package/es/components/select/index.mjs.map +1 -1
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/select.vue2.mjs.map +1 -1
- package/es/components/select/src/use-select.mjs.map +1 -1
- package/es/components/table/index.mjs.map +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.vue2.mjs.map +1 -1
- package/es/components/table/src/use-table.mjs.map +1 -1
- package/es/components/title/index.mjs.map +1 -1
- package/es/components/title/src/title.mjs.map +1 -1
- package/es/components/title/src/title.vue2.mjs.map +1 -1
- package/es/components/title/src/use-title.mjs.map +1 -1
- package/es/components/uni-vue/index.mjs.map +1 -1
- package/es/components/uni-vue/src/uni-vue.mjs.map +1 -1
- package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
- package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
- package/es/components.mjs.map +1 -1
- package/es/directives/permission/index.mjs.map +1 -1
- package/es/directives/repeat-click/index.mjs.map +1 -1
- package/es/hooks/dialog/use-choose-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-confirm-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
- package/es/hooks/use-locale.mjs.map +1 -1
- package/es/hooks/use-navigation.mjs.map +1 -1
- package/es/hooks/use-request.mjs.map +1 -1
- package/es/hooks/use-template-promise.mjs.map +1 -1
- package/es/hooks/use-utils.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/es/locale/lang/en.mjs.map +1 -1
- package/es/locale/lang/zh-cn.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/es/plugins/globalProperties.mjs.map +1 -1
- package/es/types/global.d.ts +30 -30
- package/es/types/index.d.ts +2 -2
- package/es/types/utils.d.ts +19 -19
- package/es/utils/bem.mjs.map +1 -1
- package/es/utils/cookie.mjs.map +1 -1
- package/es/utils/dom.mjs.map +1 -1
- package/es/utils/env.mjs.map +1 -1
- package/es/utils/file.mjs.map +1 -1
- package/es/utils/http/core/modules/interceptor.mjs.map +1 -1
- package/es/utils/http/core/modules/loading.mjs.map +1 -1
- package/es/utils/http/core/preset-interceptors.mjs.map +1 -1
- package/es/utils/http/core/request-client.mjs.map +1 -1
- package/es/utils/http/index.mjs.map +1 -1
- package/es/utils/mitt.mjs.map +1 -1
- package/es/utils/navigation.mjs.map +1 -1
- package/es/utils/props.mjs.map +1 -1
- package/es/utils/time.mjs.map +1 -1
- package/es/utils/utils.mjs.map +1 -1
- package/es/utils/with-install.mjs.map +1 -1
- package/global.d.ts +21 -21
- package/lib/components/attachment/index.d.ts +12 -2
- package/lib/components/attachment/index.js +1 -0
- package/lib/components/attachment/index.js.map +1 -1
- package/lib/components/attachment/src/attachment.d.ts +6 -0
- package/lib/components/attachment/src/attachment.js +7 -0
- package/lib/components/attachment/src/attachment.js.map +1 -1
- package/lib/components/attachment/src/attachment.vue.d.ts +5 -1
- package/lib/components/attachment/src/attachment.vue2.js +6 -3
- package/lib/components/attachment/src/attachment.vue2.js.map +1 -1
- package/lib/components/attachment/src/use-attachment.js.map +1 -1
- package/lib/components/buttons/index.js.map +1 -1
- package/lib/components/buttons/src/buttons-vue.js.map +1 -1
- package/lib/components/buttons/src/buttons.js.map +1 -1
- package/lib/components/custom-column/index.js.map +1 -1
- package/lib/components/custom-column/src/custom-column.js.map +1 -1
- package/lib/components/custom-column/src/custom-column.vue2.js.map +1 -1
- package/lib/components/date-picker-range/index.js.map +1 -1
- package/lib/components/date-picker-range/src/date-picker-range.js.map +1 -1
- package/lib/components/date-picker-range/src/date-picker-range.vue2.js.map +1 -1
- package/lib/components/footer-info/index.js.map +1 -1
- package/lib/components/footer-info/src/footer-info.js.map +1 -1
- package/lib/components/footer-info/src/footer-info.vue2.js.map +1 -1
- package/lib/components/form/index.js.map +1 -1
- package/lib/components/form/src/form-item-vue.js.map +1 -1
- package/lib/components/form/src/form-item.js.map +1 -1
- package/lib/components/form/src/form.js.map +1 -1
- package/lib/components/form/src/form.vue2.js.map +1 -1
- package/lib/components/form/src/hooks/use-form-item.js.map +1 -1
- package/lib/components/form/src/hooks/use-form.js.map +1 -1
- package/lib/components/header/index.js.map +1 -1
- package/lib/components/header/src/header.js.map +1 -1
- package/lib/components/header/src/header.vue2.js.map +1 -1
- package/lib/components/header/src/use-header.js.map +1 -1
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/index.js.map +1 -1
- package/lib/components/input/src/input.js.map +1 -1
- package/lib/components/input/src/input.vue2.js.map +1 -1
- package/lib/components/link/index.js.map +1 -1
- package/lib/components/link/src/link.js.map +1 -1
- package/lib/components/link/src/link.vue2.js.map +1 -1
- package/lib/components/search-list-page/index.js.map +1 -1
- package/lib/components/search-list-page/src/search-list-page.js.map +1 -1
- package/lib/components/search-list-page/src/search-list-page.vue2.js.map +1 -1
- package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
- package/lib/components/select/index.js.map +1 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/select.vue2.js.map +1 -1
- package/lib/components/select/src/use-select.js.map +1 -1
- package/lib/components/table/index.js.map +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.vue2.js.map +1 -1
- package/lib/components/table/src/use-table.js.map +1 -1
- package/lib/components/title/index.js.map +1 -1
- package/lib/components/title/src/title.js.map +1 -1
- package/lib/components/title/src/title.vue2.js.map +1 -1
- package/lib/components/title/src/use-title.js.map +1 -1
- package/lib/components/uni-vue/index.js.map +1 -1
- package/lib/components/uni-vue/src/uni-vue.js.map +1 -1
- package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
- package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
- package/lib/components.js.map +1 -1
- package/lib/directives/permission/index.js.map +1 -1
- package/lib/directives/repeat-click/index.js.map +1 -1
- package/lib/hooks/dialog/use-choose-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-confirm-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
- package/lib/hooks/use-locale.js.map +1 -1
- package/lib/hooks/use-navigation.js.map +1 -1
- package/lib/hooks/use-request.js.map +1 -1
- package/lib/hooks/use-template-promise.js.map +1 -1
- package/lib/hooks/use-utils.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/locale/lang/en.js.map +1 -1
- package/lib/locale/lang/zh-cn.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/plugins/globalProperties.js.map +1 -1
- package/lib/types/global.d.ts +30 -30
- package/lib/types/index.d.ts +2 -2
- package/lib/types/utils.d.ts +19 -19
- package/lib/utils/bem.js.map +1 -1
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/dom.js.map +1 -1
- package/lib/utils/env.js.map +1 -1
- package/lib/utils/file.js.map +1 -1
- package/lib/utils/http/core/modules/interceptor.js.map +1 -1
- package/lib/utils/http/core/modules/loading.js.map +1 -1
- package/lib/utils/http/core/preset-interceptors.js.map +1 -1
- package/lib/utils/http/core/request-client.js.map +1 -1
- package/lib/utils/http/index.js.map +1 -1
- package/lib/utils/mitt.js.map +1 -1
- package/lib/utils/navigation.js.map +1 -1
- package/lib/utils/props.js.map +1 -1
- package/lib/utils/time.js.map +1 -1
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils/with-install.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/base.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/attachment.scss +39 -39
- package/theme-chalk/src/base.scss +2 -2
- package/theme-chalk/src/buttons.scss +22 -22
- package/theme-chalk/src/common/common.scss +7 -4
- package/theme-chalk/src/common/transition.scss +9 -9
- package/theme-chalk/src/custom-column.scss +55 -55
- package/theme-chalk/src/dialog.scss +62 -62
- package/theme-chalk/src/footer-info.scss +18 -18
- package/theme-chalk/src/form.scss +80 -72
- package/theme-chalk/src/header.scss +19 -19
- package/theme-chalk/src/index.scss +15 -15
- package/theme-chalk/src/link.scss +5 -5
- package/theme-chalk/src/mixins/config.scss +3 -3
- package/theme-chalk/src/mixins/mixins.scss +37 -37
- package/theme-chalk/src/search-list-page.scss +22 -22
- package/theme-chalk/src/select.scss +10 -10
- package/theme-chalk/src/table.scss +91 -91
- package/theme-chalk/src/tabs.scss +55 -55
- package/theme-chalk/src/title.scss +52 -52
- package/theme-chalk/src/uni-vue.scss +10 -10
package/es/types/global.d.ts
CHANGED
|
@@ -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
|
+
}
|
package/es/types/index.d.ts
CHANGED
|
@@ -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
|
|
package/es/types/utils.d.ts
CHANGED
|
@@ -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
|
+
}
|
package/es/utils/bem.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/cookie.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/dom.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/env.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/file.mjs.map
CHANGED
|
@@ -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":";;;;;AAUO,MAAM,UAAA,GAAa,CAAC,QAAA,KAAqB;AAC9C,EAAA,OAAO,QAAA,CAAS,QAAQ,iBAAiB,CAAA,GAAI,KACzC,QAAA,GACA,CAAA,EAAG,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK,QAAO,KAAM,OAAA,GAAU,GAAG,cAAA,EAAgB,0BAA0B,MAAA,CAAO,QAAA,CAAS,IAAI,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA;AAChJ;AACA,MAAM,cAAc,CAAC;AAAA,EACnB,GAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAIM;AACJ,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,QAAA,GAAW,QAAA,IAAY,GAAA,CAAI,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,GAAS,CAAC,CAAA;AAC/D,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACpC,IAAA,CAAA,CAAE,MAAM,OAAA,GAAU,MAAA;AAClB,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,CAAC,CAAA;AAC3B,IAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,OAAO,CAAA;AACpC,IAAA,CAAA,CAAE,QAAA,GAAW,QAAA;AACb,IAAA,CAAA,CAAE,IAAA,GAAO,IAAA,GAAO,GAAA,GAAM,UAAA,CAAW,GAAG,CAAA;AAEpC,IAAA,CAAA,CAAE,MAAA,GAAS,QAAA;AACX,IAAA,CAAA,CAAE,cAAc,KAAK,CAAA;AACrB,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,CAAC,CAAA;AAAA,EAC7B;AACF,CAAA;AAGA,eAAsB,YAAA,CAAa;AAAA,EACjC,GAAA,GAAM,EAAA;AAAA,EACN,IAAA;AAAA,EACA,OAAO,EAAC;AAAA,EACR,GAAA;AAAA,EACA,QAAA,GAAW,EAAA;AAAA,EACX,SAAS;AACX,CAAA,EAOG;AACD,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,WAAA,CAAY,EAAE,GAAA,EAAK,QAAA,EAAU,CAAA;AAC7B,IAAA;AAAA,EACF;AACA,EAAA,IAAA,CACG,QAA4B,GAAA,EAAK;AAAA,IAChC,MAAA,EAAQ,OAAO,MAAA,IAAU,MAAA;AAAA,IACzB,IAAA;AAAA,IACA,OAAA,EAAS,IAAA;AAAA,IACT,YAAA,EAAc,OAAO,MAAA,GAAS,MAAA;AAAA,IAC9B,cAAA,EAAgB,KAAA;AAAA,IAChB,GAAG;AAAA,GACJ,CAAA,CACA,IAAA,CAAK,CAAC,GAAA,KAAQ;AACb,IAAA,MAAM,EAAE,SAAQ,GAAI,GAAA;AACpB,IAAA,IAAI,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,KAAM,iBAAA,IAAqB,CAAC,GAAA,CAAI,IAAA,EAAM,OAAA,EAAS;AACxF,MAAA,OAAO,SAAA,CAAU,KAAA,CAAM,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAAA,IACrC;AACA,IAAA,MAAMA,KAAAA,GAAO,IAAA,GAAK,GAAA,CAAI,IAAA,GAAK,GAAA,CAAI,MAAM,IAAA,IAAQ,GAAA,CAAI,IAAA,EAAM,IAAA,EAAM,GAAA,IAAO,EAAA;AACpE,IAAA,MAAM,eAAe,EAAC;AACtB,IAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,MAAA,YAAA,CAAa,GAAA,CAAI,WAAA,EAAa,CAAA,GAAI,QAAQ,GAAG,CAAA;AAAA,IAC/C;AACA,IAAA,IAAIC,IAAAA,GAAM,EAAA;AACV,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAM,kBAAA,GAAqB,YAAA,CAAa,qBAAqB,CAAA,IAAK,EAAA;AAClE,MAAA,QAAA,GACE,YACA,kBAAA,CAAmB,kBAAA,CAAmB,MAAM,WAAW,CAAA,CAAE,CAAC,CAAC,CAAA;AAC7D,MAAA,MAAMC,KAAAA,GAAO,IAAI,IAAA,CAAK,CAACF,KAAI,CAAA,EAAG;AAAA,QAC5B,IAAA,EAAM,QAAQ,cAAc;AAAA,OAC7B,CAAA;AACD,MAAAC,IAAAA,GAAM,MAAA,CAAO,GAAA,CAAI,eAAA,CAAgBC,KAAI,CAAA;AACrC,MAAA,UAAA,CAAW,MAAM,MAAA,CAAO,GAAA,CAAI,eAAA,CAAgBD,IAAG,GAAG,GAAG,CAAA;AAAA,IACvD,CAAA,MAAO;AACL,MAAAA,IAAAA,GAAMD,KAAAA;AAAA,IACR;AACA,IAAA,WAAA,CAAY,EAAE,GAAA,EAAAC,IAAAA,EAAK,QAAA,EAAU,MAAM,CAAA;AAAA,EACrC,CAAC,CAAA;AACL;AAWO,MAAM,aAAa,OAAO;AAAA,EAC/B,MAAA,GAAS,GAAA;AAAA,EACT,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,MAAA;AAAA,EACZ,cAAA,GAAiB,EAAA;AAAA,EACjB,YAAY,EAAC;AAAA,EACb,GAAA,GAAM;AACR,CAAA,KAAyB;AACvB,EAAA,OAAO,IAAI,OAAA,CAA6B,CAAC,OAAA,EAAS,MAAA,KAAW;AAC3D,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,IAAA,KAAA,CAAM,IAAA,GAAO,MAAA;AACb,IAAA,KAAA,CAAM,MAAA,GAAS,MAAA;AACf,IAAA,KAAA,CAAM,QAAA,GAAW,QAAA;AACjB,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAC9B,IAAA,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACtC,MAAA,QAAA,CAAS,MAAA,CAAO,GAAA,EAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAAA,IACrC,CAAC,CAAA;AACD,IAAA,KAAA,CAAM,QAAA,GAAW,OAAO,KAAA,KAAiB;AACvC,MAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,MAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,MAAA,IAAI,KAAA,IAAS,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC7B,QAAA,IAAI,CAAC,QAAA,EAAU;AACb,UAAA,QAAA,CAAS,MAAA,CAAO,SAAA,EAAW,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,QACrC,CAAA,MAAO;AACL,UAAA,KAAA,CAAM,KAAK,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,MAAM,KAAA,KAAU;AACzC,YAAA,QAAA,CAAS,OAAO,CAAA,EAAG,SAAS,CAAA,EAAG,KAAK,IAAI,IAAI,CAAA;AAAA,UAC9C,CAAC,CAAA;AAAA,QACH;AACA,QAAA,IAAI;AACF,UAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,QAA4B,GAAA,EAAK;AAAA,YAC3D,MAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAM,QAAA;AAAA,YACN,OAAA,EAAS,IAAA;AAAA,YACT,cAAA,EAAgB,KAAA;AAAA,YAChB,gBAAA,EAAkB;AAAA,cAChB,SAAUD,KAAAA,EAAM;AACd,gBAAA,OAAOA,KAAAA;AAAA,cACT;AAAA;AACF,WACD,CAAA;AACD,UAAA,IAAI,KAAK,OAAA,EAAS;AAChB,YAAA,OAAO,OAAA,CAAQ,KAAK,IAAI,CAAA;AAAA,UAC1B;AACA,UAAA,IAAI,IAAA,CAAK,SAAS,CAAA,CAAA,EAAI;AACpB,YAAA,MAAM,QAAA,GACJ,cAAA,IACA,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,SAAS,CAAC,CAAA;AACtD,YAAA,MAAM,MAAM,CAAA,EAAG,MAAA,CAAO,SAAS,MAAM,CAAA,OAAA,EAAU,KAAK,IAAI,CAAA,CAAA;AACxD,YAAA,MAAM,UAAA,GAAa,6KAAoJ,GAAG,CAAA,QAAA,EAAW,GAAG,CAAA,YAAA,EAAe,QAAQ,KAAK,GAAG,CAAA,UAAA,CAAA;AACvN,YAAA,YAAA,CAAa,KAAA,CAAM,YAAY,cAAA,EAAM;AAAA,cACnC,iBAAA,EAAmB,cAAA;AAAA,cACnB,IAAA,EAAM,OAAA;AAAA,cACN,wBAAA,EAA0B;AAAA,aAC3B,CAAA;AACD,YAAA;AAAA,UACF;AACA,UAAA,OAAO,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;AAAA,QACjC,SAAS,KAAA,EAAO;AACd,UAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,QACrB;AACA,QAAA,KAAA,CAAM,QAAA,GAAW,IAAA;AAAA,MACnB;AAAA,IACF,CAAA;AACA,IAAA,KAAA,CAAM,KAAA,EAAM;AAAA,EACd,CAAC,CAAA;AACH;AAGO,MAAM,WAAA,GAAc,CAAC,GAAA,KAAgB;AAC1C,EAAA,GAAA,GAAM,WAAW,GAAG,CAAA;AACpB,EAAA,MAAM,SAAS,UAAA,CAAW,EAAE,CAAA,CAAE,OAAA,CAAQ,WAAW,EAAE,CAAA;AACnD,EAAA,MAAM,aAAa,CAAA,EAAG,MAAM,CAAA,uBAAA,EAA0B,MAAA,CAAO,GAAG,CAAC,CAAA,CAAA;AACjE,EAAA,MAAA,CAAO,IAAA,CAAK,YAAY,QAAQ,CAAA;AAClC;;;;"}
|
|
@@ -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":";;;;;;AAMA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AAEjB,MAAM,4BAA4B,MAAM;AAC7C,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,OAAO,MAAA,KAAW;AAC3B,MAAA,IAAI,OAAO,OAAA,EAAS;AAClB,QAAA,YAAA,EAAa;AAAA,MACf;AACA,MAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,MAAA,MAAA,CAAO,OAAA,CAAQ,aAAA,GAAgB,KAAA,GAAQ,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,GAAK,IAAA;AAC3D,MAAA,MAAA,CAAO,OAAA,GAAU;AAAA,QACf,GAAG,MAAA,CAAO,OAAA;AAAA,QACV,GAAG,MAAA,CAAO,EAAA,CAAG,cAAA,CAAe;AAAA,UAC1B,IAAA,EAAM,MAAA,CAAO,QAAA,IAAY,EAAC;AAAA,UAC1B;AAAA,SACD;AAAA,OACH;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,MAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;AACO,MAAM,0BAAA,GAA6B,CAAC,OAAA,KAQV;AAC/B,EAAA,MAAM;AAAA,IACJ,SAAA,GAAY,MAAA;AAAA,IACZ,SAAA,GAAY,MAAA;AAAA,IACZ,WAAA,GAAc,GAAA;AAAA,IACd;AAAA,GACF,GAAI,WAAW,EAAC;AAChB,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,CAAC,QAAA,KAAa;AACvB,MAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAc,QAAO,GAAI,QAAA;AAC/C,MAAA,IAAI,OAAO,OAAA,EAAS;AAClB,QAAA,UAAA,EAAW;AAAA,MACb;AACA,MAAA,IAAI,MAAA,CAAO,mBAAmB,KAAA,EAAO;AACnC,QAAA,OAAO,QAAA;AAAA,MACT;AACA,MAAA,IAAI,CAAC,YAAA,CAAa,OAAA,IAAW,CAAC,OAAO,UAAA,EAAY;AAC/C,QAAA,MAAM,GAAA,GAAM,YAAA,CAAa,GAAA,IAAO,YAAA,CAAa,OAAA,IAAW,OAAA;AACxD,QAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,GAAG,CAAA;AAC3B,QAAA,KAAA,CAAM,IAAA,GAAO,eAAA;AACb,QAAA,eAAA,GAAkB,KAAK,KAAK,CAAA;AAC5B,QAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,MAC7B;AAEA,MAAA,IAAI,MAAA,IAAU,GAAA,IAAO,MAAA,GAAS,GAAA,EAAK;AACjC,QAAA,IAAI,MAAA,CAAO,mBAAmB,MAAA,EAAQ;AACpC,UAAA,OAAO,YAAA;AAAA,QACT,CAAA,MAAA,IACE,UAAA,CAAW,WAAW,CAAA,GAClB,WAAA,CAAY,YAAA,CAAa,SAAS,CAAC,CAAA,GACnC,YAAA,CAAa,SAAS,CAAA,KAAM,WAAA,EAChC;AACA,UAAA,OAAO,WAAW,SAAS,CAAA,GACvB,UAAU,YAAY,CAAA,GACtB,aAAa,SAAS,CAAA;AAAA,QAC5B;AAAA,MACF;AACA,MAAA,MAAM,OAAO,MAAA,CAAO,IAAI,QAAA,EAAU,EAAE,UAAU,CAAA;AAAA,IAChD;AAAA,GACF;AACF;AAGO,MAAM,+BAAA,GAAkC,CAC7C,gBAAA,KAC8B;AAC9B,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,CAAC,KAAA,KAAe;AACxB,MAAA,UAAA,EAAW;AACX,MAAA,IAAI,MAAM,QAAA,CAAS,KAAK,CAAA,IAAK,KAAA,CAAM,SAAS,eAAA,EAAiB;AAC3D,QAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,MAC7B;AAEA,MAAA,MAAM,GAAA,GAAc,KAAA,EAAO,QAAA,IAAW,IAAK,EAAA;AAC3C,MAAA,IAAI,MAAA,GAAS,EAAA;AACb,MAAA,IAAI,GAAA,EAAK,QAAA,CAAS,eAAe,CAAA,EAAG;AAClC,QAAA,MAAA,GAAS,EAAE,sBAAsB,CAAA;AAAA,MACnC,CAAA,MAAA,IAAW,KAAA,EAAO,OAAA,EAAS,QAAA,GAAW,SAAS,CAAA,EAAG;AAChD,QAAA,MAAA,GAAS,EAAE,iBAAiB,CAAA;AAAA,MAC9B;AACA,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,gBAAA,GAAmB,QAAQ,KAAK,CAAA;AAChC,QAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,MAC7B;AAEA,MAAA,IAAI,YAAA,GAAe,EAAA;AACnB,MAAA,MAAM,MAAA,GAAS,OAAO,QAAA,EAAU,MAAA;AAChC,MAAA,QAAQ,MAAA;AAAQ,QACd,KAAK,GAAA,EAAK;AACR,UAAA,YAAA,GAAe,EAAE,sBAAsB,CAAA;AACvC,UAAA;AAAA,QACF;AAAA,QACA,KAAK,GAAA,EAAK;AACR,UAAA,YAAA,GAAe,EAAE,qBAAqB,CAAA;AACtC,UAAA;AAAA,QACF;AAAA,QACA,KAAK,GAAA,EAAK;AACR,UAAA,YAAA,GAAe,EAAE,mBAAmB,CAAA;AACpC,UAAA;AAAA,QACF;AAAA,QACA,KAAK,GAAA,EAAK;AACR,UAAA,YAAA,GAAe,EAAE,kBAAkB,CAAA;AACnC,UAAA;AAAA,QACF;AAAA,QACA,SAAS;AACP,UAAA,YAAA,GAAe,EAAE,qBAAqB,CAAA;AAAA,QACxC;AAAA;AAEF,MAAA,gBAAA,GAAmB,cAAc,KAAK,CAAA;AACtC,MAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;;;;"}
|
|
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;;;;"}
|
package/es/utils/mitt.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/props.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/time.mjs.map
CHANGED
|
@@ -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;;;;"}
|
package/es/utils/utils.mjs.map
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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":";;;;
|
|
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;;;;;"}
|