giime 0.6.45 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/index.css +2 -2
  2. package/es/api/gstore/request.mjs +2 -1
  3. package/es/api/gstore/request.mjs.map +1 -1
  4. package/es/api/guardBasic/request.mjs +5 -9
  5. package/es/api/guardBasic/request.mjs.map +1 -1
  6. package/es/api/materialApi/request.mjs +5 -8
  7. package/es/api/materialApi/request.mjs.map +1 -1
  8. package/es/api/productCenter/request.mjs +5 -5
  9. package/es/api/productCenter/request.mjs.map +1 -1
  10. package/es/api/resource/request.mjs +5 -9
  11. package/es/api/resource/request.mjs.map +1 -1
  12. package/es/api/shopAdmin/request.mjs +4 -3
  13. package/es/api/shopAdmin/request.mjs.map +1 -1
  14. package/es/api/utils/createModes.d.ts +17 -0
  15. package/es/api/utils/createModes.mjs +20 -0
  16. package/es/api/utils/createModes.mjs.map +1 -0
  17. package/es/api/utils/index.d.ts +1 -0
  18. package/es/api/utils/index.mjs +1 -0
  19. package/es/api/utils/index.mjs.map +1 -1
  20. package/es/api/utils/resetAxiosBaseUrl.mjs.map +1 -1
  21. package/es/components/src/base/row/Row.vue.d.ts +6 -6
  22. package/es/components/src/base/row/index.d.ts +16 -16
  23. package/es/components/src/base/row/row.d.ts +1 -1
  24. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +7 -5
  25. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
  26. package/es/components/src/business/uploadPro/UploadPro.vue.d.ts +35 -35
  27. package/es/components/src/business/uploadPro/UploadPro.vue.mjs +1 -1
  28. package/es/components/src/business/uploadPro/UploadPro.vue2.mjs +1 -1
  29. package/es/components/src/business/uploadPro/UploadPro.vue2.mjs.map +1 -1
  30. package/es/components/src/business/uploadPro/index.d.ts +10 -10
  31. package/es/giime/index.mjs +1 -1
  32. package/es/giime/version.d.ts +1 -1
  33. package/es/giime/version.mjs +1 -1
  34. package/es/giime/version.mjs.map +1 -1
  35. package/es/index.css +2 -2
  36. package/es/utils/__tests__/http/url.test.d.ts +1 -0
  37. package/es/utils/index.mjs +1 -1
  38. package/es/utils/src/http/index.mjs +1 -1
  39. package/es/utils/src/http/url.d.ts +10 -0
  40. package/es/utils/src/http/url.mjs +26 -5
  41. package/es/utils/src/http/url.mjs.map +1 -1
  42. package/es/utils/src/vue/resolver.d.ts +4 -1
  43. package/es/utils/src/vue/resolver.mjs +4 -1
  44. package/es/utils/src/vue/resolver.mjs.map +1 -1
  45. package/lib/api/gstore/request.js +2 -1
  46. package/lib/api/gstore/request.js.map +1 -1
  47. package/lib/api/guardBasic/request.js +5 -9
  48. package/lib/api/guardBasic/request.js.map +1 -1
  49. package/lib/api/materialApi/request.js +5 -8
  50. package/lib/api/materialApi/request.js.map +1 -1
  51. package/lib/api/productCenter/request.js +5 -5
  52. package/lib/api/productCenter/request.js.map +1 -1
  53. package/lib/api/resource/request.js +5 -9
  54. package/lib/api/resource/request.js.map +1 -1
  55. package/lib/api/shopAdmin/request.js +4 -3
  56. package/lib/api/shopAdmin/request.js.map +1 -1
  57. package/lib/api/utils/createModes.d.ts +17 -0
  58. package/lib/api/utils/createModes.js +22 -0
  59. package/lib/api/utils/createModes.js.map +1 -0
  60. package/lib/api/utils/index.d.ts +1 -0
  61. package/lib/api/utils/index.js +2 -0
  62. package/lib/api/utils/index.js.map +1 -1
  63. package/lib/api/utils/resetAxiosBaseUrl.js.map +1 -1
  64. package/lib/components/src/base/row/Row.vue.d.ts +6 -6
  65. package/lib/components/src/base/row/index.d.ts +16 -16
  66. package/lib/components/src/base/row/row.d.ts +1 -1
  67. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +7 -5
  68. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
  69. package/lib/components/src/business/uploadPro/UploadPro.vue.d.ts +35 -35
  70. package/lib/components/src/business/uploadPro/UploadPro.vue.js +1 -1
  71. package/lib/components/src/business/uploadPro/UploadPro.vue2.js +1 -1
  72. package/lib/components/src/business/uploadPro/UploadPro.vue2.js.map +1 -1
  73. package/lib/components/src/business/uploadPro/index.d.ts +10 -10
  74. package/lib/giime/index.js +1 -0
  75. package/lib/giime/index.js.map +1 -1
  76. package/lib/giime/version.d.ts +1 -1
  77. package/lib/giime/version.js +1 -1
  78. package/lib/giime/version.js.map +1 -1
  79. package/lib/index.css +2 -2
  80. package/lib/utils/__tests__/http/url.test.d.ts +1 -0
  81. package/lib/utils/index.js +1 -0
  82. package/lib/utils/index.js.map +1 -1
  83. package/lib/utils/src/http/index.js +1 -0
  84. package/lib/utils/src/http/index.js.map +1 -1
  85. package/lib/utils/src/http/url.d.ts +10 -0
  86. package/lib/utils/src/http/url.js +26 -4
  87. package/lib/utils/src/http/url.js.map +1 -1
  88. package/lib/utils/src/vue/resolver.d.ts +4 -1
  89. package/lib/utils/src/vue/resolver.js +4 -1
  90. package/lib/utils/src/vue/resolver.js.map +1 -1
  91. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LoginDialog.vue2.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <iframe v-if=\"loginStore.showLogin\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\n// import { isObject } from '@vue/shared';\nimport { ElDialog } from 'element-plus';\nimport Cookies from 'js-cookie';\n// import router from 'vue-router';\nimport { useLoginStore } from '@giime/hooks';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isString } from '@giime/utils';\nimport { getDomain } from '@giime/utils/src/http/url';\nimport { loginDialogProps } from './loginDialog';\n\nconst props = defineProps(loginDialogProps);\nconst router = useGlobalConfig('router');\n\n// const router = useRouter();\nconst route = computed(() => (router.value ? router.value.currentRoute.value : undefined));\nconst loginStore = useLoginStore();\nconst loginUrl = ref('');\nconst viteModes = [\n { mode: 'dev', loginUrl: 'https://manage-dev.giikin.cn/guard/sso/public/auth' }, // 旧版开发环境\n { mode: 'develop', loginUrl: 'https://manage-dev.giikin.cn/guard/sso/public/auth' }, // 开发环境\n { mode: 'development', loginUrl: 'https://manage-dev.giikin.cn/guard/sso/public/auth' }, // 本地开发\n { mode: 'test', loginUrl: 'https://manage-test.giikin.cn/guard/sso/public/auth' },\n { mode: 'release', loginUrl: 'https://manage-pre.giikin.com/guard/sso/public/auth' },\n { mode: 'production', loginUrl: 'https://manage.giikin.com/guard/sso/public/auth' },\n];\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\nlet originLoginUrl = ``;\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n const curMode = viteModes.find(item => item.mode == importMetaEnv.value.MODE);\n originLoginUrl = curMode?.loginUrl ?? 'https://manage.giikin.com/guard/sso/public/auth';\n}\nconst handleLogin = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\n\n loginUrl.value = `${originLoginUrl}?_system=${props.system}`;\n if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? '')) {\n loginUrl.value += '&is_dashboard=1';\n }\n\n // 公司id\n const guard_company = Cookies.get('guard_company');\n if (guard_company) {\n loginUrl.value += `&companyId=${guard_company}`;\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n handleLogin();\n }\n },\n);\n// 超过5分钟没扫码 会不能扫码 定时没登录的话3分钟刷新次\nconst reloadTimer = ref<number>();\nif (route.value) {\n watch(route, (newValue, oldValue) => {\n if (!oldValue || !newValue) {\n return;\n }\n if (oldValue.name && props.needScanningRouteNames.includes(oldValue.name.toString())) {\n window.clearInterval(reloadTimer.value);\n }\n if (newValue.name && props.needScanningRouteNames.includes(newValue.name.toString())) {\n reloadTimer.value = window.setInterval(\n () => {\n if (!loginStore.showLogin) {\n return;\n }\n // 登录超时后 3分钟刷新次页面\n window.location.reload();\n },\n 3 * 60 * 1000,\n );\n }\n });\n}\n\ninterface GiikinLogged {\n type: string;\n data: {\n token: string;\n userId: string;\n /**token 或者 loginSuccess 控制当前登录是否成功*/\n loginSuccess?: boolean;\n /**禁止写入cookie */\n disabledWrite?: boolean;\n disabledClose?: boolean;\n };\n cookies?: string[];\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n handleLogin();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n const data: GiikinLogged = e.data;\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n if (\n // 测试环境 但是需要登陆的情况\n (importMetaEnv.value.MODE !== 'production' && data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (importMetaEnv.value.MODE === 'production' && !token && data?.data?.token)\n ) {\n // loginStore.userToken = data.data.token;\n loginStore.userId = data.data.userId;\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n const curDomain = getDomain();\n // 不禁用 则写入cookie\n if (!data.data.disabledWrite) {\n // cookieMap\n if (data.cookies && Array.isArray(data.cookies)) {\n data.cookies.forEach((cookie: string) => {\n document.cookie = cookie;\n });\n }\n // 可能出现测试环境调正式,需要写入token\n Cookies.set('token', data.data.token, { expires: now, domain: importMetaEnv.value.MODE === 'production' ? curDomain : undefined });\n\n if (!Cookies.get('sso_user_id') && data.data.userId) {\n Cookies.set('sso_user_id', data.data.userId, {\n expires: now,\n domain: importMetaEnv.value.MODE === 'production' ? curDomain : undefined,\n });\n }\n }\n }\n if (!data.data.disabledClose) {\n // 触发登录成功监听\n if (data?.data?.token || data?.data?.loginSuccess) {\n await loginStore.triggerLoginResult(true);\n }\n // ElMessage.success('登录成功,请关闭弹窗');\n loginStore.showLogin = false;\n if (route.value && props.needRealodRouteNames.includes(route.value.name?.toString() ?? '')) {\n window.location.reload();\n }\n }\n }\n });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoginDialog.vue2.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <iframe v-if=\"loginStore.showLogin\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\n// import { isObject } from '@vue/shared';\nimport { ElDialog } from 'element-plus';\nimport Cookies from 'js-cookie';\n// import router from 'vue-router';\nimport { useLoginStore } from '@giime/hooks';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isString } from '@giime/utils';\nimport { getDomain } from '@giime/utils/src/http/url';\nimport { loginDialogProps } from './loginDialog';\n\nconst props = defineProps(loginDialogProps);\nconst router = useGlobalConfig('router');\n\n// const router = useRouter();\nconst route = computed(() => (router.value ? router.value.currentRoute.value : undefined));\nconst loginStore = useLoginStore();\nconst loginUrl = ref('');\nconst viteModes = [\n { mode: 'dev', loginUrl: 'https://manage-dev.giikin.cn/guard/sso/public/auth' }, // 旧版开发环境\n { mode: 'develop', loginUrl: 'https://manage-dev.giikin.cn/guard/sso/public/auth' }, // 开发环境\n { mode: 'development', loginUrl: 'https://manage-dev.giikin.cn/guard/sso/public/auth' }, // 本地开发\n { mode: 'test', loginUrl: 'https://manage-test.giikin.cn/guard/sso/public/auth' },\n { mode: 'release', loginUrl: 'https://manage-pre.giikin.com/guard/sso/public/auth' },\n { mode: 'production', loginUrl: 'https://manage.giikin.com/guard/sso/public/auth' },\n { mode: 'giiktok.production', loginUrl: 'https://manage.kingkungmeta.com/fe/basic/login' },\n];\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\nlet originLoginUrl = ``;\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n const curMode = viteModes.find(item => item.mode == importMetaEnv.value.MODE);\n originLoginUrl = curMode?.loginUrl ?? 'https://manage.giikin.com/guard/sso/public/auth';\n}\nconst handleLogin = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\n\n loginUrl.value = `${originLoginUrl}?_system=${props.system}`;\n if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? '')) {\n loginUrl.value += '&is_dashboard=1';\n }\n\n // 公司id\n const guard_company = Cookies.get('guard_company');\n if (guard_company) {\n loginUrl.value += `&companyId=${guard_company}`;\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n handleLogin();\n }\n },\n);\n// 超过5分钟没扫码 会不能扫码 定时没登录的话3分钟刷新次\nconst reloadTimer = ref<number>();\nif (route.value) {\n watch(route, (newValue, oldValue) => {\n if (!oldValue || !newValue) {\n return;\n }\n if (oldValue.name && props.needScanningRouteNames.includes(oldValue.name.toString())) {\n window.clearInterval(reloadTimer.value);\n }\n if (newValue.name && props.needScanningRouteNames.includes(newValue.name.toString())) {\n reloadTimer.value = window.setInterval(\n () => {\n if (!loginStore.showLogin) {\n return;\n }\n // 登录超时后 3分钟刷新次页面\n window.location.reload();\n },\n 3 * 60 * 1000,\n );\n }\n });\n}\n\ninterface GiikinLogged {\n type: string;\n data: {\n token: string;\n userId: string;\n /**token 或者 loginSuccess 控制当前登录是否成功*/\n loginSuccess?: boolean;\n /**禁止写入cookie */\n disabledWrite?: boolean;\n disabledClose?: boolean;\n };\n cookies?: string[];\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n handleLogin();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n const data: GiikinLogged = e.data;\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n // const isProduction = importMetaEnv.value.MODE === 'production' || importMetaEnv.value.MODE === 'giiktok.production';\n const isProduction = importMetaEnv.value.MODE.includes('production');\n if (\n // 测试环境 但是需要登陆的情况\n (!isProduction && data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (isProduction && !token && data?.data?.token)\n ) {\n // loginStore.userToken = data.data.token;\n loginStore.userId = data.data.userId;\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n const curDomain = getDomain();\n // 不禁用 则写入cookie\n if (!data.data.disabledWrite) {\n // cookieMap\n if (data.cookies && Array.isArray(data.cookies)) {\n data.cookies.forEach((cookie: string) => {\n document.cookie = cookie;\n });\n }\n // 可能出现测试环境调正式,需要写入token\n Cookies.set('token', data.data.token, { expires: now, domain: isProduction ? curDomain : undefined });\n\n if (!Cookies.get('sso_user_id') && data.data.userId) {\n Cookies.set('sso_user_id', data.data.userId, {\n expires: now,\n domain: isProduction ? curDomain : undefined,\n });\n }\n }\n }\n if (!data.data.disabledClose) {\n // 触发登录成功监听\n if (data?.data?.token || data?.data?.loginSuccess) {\n await loginStore.triggerLoginResult(true);\n }\n // ElMessage.success('登录成功,请关闭弹窗');\n loginStore.showLogin = false;\n if (route.value && props.needRealodRouteNames.includes(route.value.name?.toString() ?? '')) {\n window.location.reload();\n }\n }\n }\n });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { UploadFile, UploadFiles, UploadRawFile } from 'element-plus';
1
+ import type { UploadFile, UploadFiles, UploadRawFile, UploadUserFile } from 'element-plus';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
3
  fileList: {
4
4
  required: true;
5
- type: import("vue").PropType<UploadFile[]>;
5
+ type: import("vue").PropType<UploadUserFile[]>;
6
6
  };
7
7
  checkoutFiles: import("vue").PropType<any[]>;
8
8
  listType: {
@@ -129,12 +129,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
129
129
  new (): any;
130
130
  readonly prototype: any;
131
131
  })[], unknown, unknown, () => void, boolean>;
132
- onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
133
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
132
+ onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
133
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
134
134
  new (): any;
135
135
  readonly prototype: any;
136
- } | ((new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
137
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
136
+ } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
137
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
138
138
  new (): any;
139
139
  readonly prototype: any;
140
140
  })[], unknown, unknown, () => void, boolean>;
@@ -191,12 +191,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
191
191
  readonly onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
192
192
  readonly showFileList: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
193
193
  readonly accept: string;
194
- readonly fileList: import("element-plus").UploadUserFile[];
194
+ readonly fileList: UploadUserFile[];
195
195
  readonly autoUpload: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
196
196
  readonly httpRequest: import("element-plus").UploadRequestHandler;
197
197
  readonly beforeUpload: (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>;
198
198
  readonly onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
199
- readonly onExceed: (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
199
+ readonly onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
200
200
  }> & Omit<{
201
201
  readonly data: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("element-plus/es/utils").Mutable<Record<string, any>> | Promise<import("element-plus/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<import("element-plus/es/utils").Mutable<Record<string, any>>>)) | (() => import("element-plus/es/utils").Awaitable<import("element-plus/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<import("element-plus/es/utils").Mutable<Record<string, any>>>)) | ((new (...args: any[]) => import("element-plus/es/utils").Mutable<Record<string, any>> | Promise<import("element-plus/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<import("element-plus/es/utils").Mutable<Record<string, any>>>)) | (() => import("element-plus/es/utils").Awaitable<import("element-plus/es/utils").Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<import("element-plus/es/utils").Mutable<Record<string, any>>>)))[], unknown, unknown>;
202
202
  readonly method: string;
@@ -212,11 +212,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
212
212
  readonly onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
213
213
  readonly onPreview: (uploadFile: UploadFile) => void;
214
214
  readonly onProgress: (evt: import("element-plus").UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
215
- readonly onExceed: (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
215
+ readonly onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
216
216
  readonly action: string;
217
217
  readonly showFileList: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
218
218
  readonly accept: string;
219
- readonly fileList: import("element-plus").UploadUserFile[];
219
+ readonly fileList: UploadUserFile[];
220
220
  readonly autoUpload: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
221
221
  readonly listType: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "text" | "picture" | "picture-card", unknown>;
222
222
  readonly httpRequest: import("element-plus").UploadRequestHandler;
@@ -294,12 +294,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
294
294
  new (): any;
295
295
  readonly prototype: any;
296
296
  })[], unknown, unknown, () => void, boolean>;
297
- readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
298
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
297
+ readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
298
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
299
299
  new (): any;
300
300
  readonly prototype: any;
301
- } | ((new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
302
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
301
+ } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
302
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
303
303
  new (): any;
304
304
  readonly prototype: any;
305
305
  })[], unknown, unknown, () => void, boolean>;
@@ -324,7 +324,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
324
324
  readonly withCredentials: BooleanConstructor;
325
325
  readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
326
326
  readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
327
- readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadUserFile[]) | (() => import("element-plus").UploadUserFile[]) | ((new (...args: any[]) => import("element-plus").UploadUserFile[]) | (() => import("element-plus").UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
327
+ readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
328
328
  readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
329
329
  readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "text" | "picture" | "picture-card", unknown, "text", boolean>;
330
330
  readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
@@ -422,12 +422,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
422
422
  new (): any;
423
423
  readonly prototype: any;
424
424
  })[], unknown, unknown, () => void, boolean>;
425
- readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
426
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
425
+ readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
426
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
427
427
  new (): any;
428
428
  readonly prototype: any;
429
- } | ((new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
430
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
429
+ } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
430
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
431
431
  new (): any;
432
432
  readonly prototype: any;
433
433
  })[], unknown, unknown, () => void, boolean>;
@@ -452,7 +452,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
452
452
  readonly withCredentials: BooleanConstructor;
453
453
  readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
454
454
  readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
455
- readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadUserFile[]) | (() => import("element-plus").UploadUserFile[]) | ((new (...args: any[]) => import("element-plus").UploadUserFile[]) | (() => import("element-plus").UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
455
+ readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
456
456
  readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
457
457
  readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "text" | "picture" | "picture-card", unknown, "text", boolean>;
458
458
  readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
@@ -489,12 +489,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
489
489
  readonly onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
490
490
  readonly showFileList: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
491
491
  readonly accept: string;
492
- readonly fileList: import("element-plus").UploadUserFile[];
492
+ readonly fileList: UploadUserFile[];
493
493
  readonly autoUpload: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
494
494
  readonly httpRequest: import("element-plus").UploadRequestHandler;
495
495
  readonly beforeUpload: (rawFile: UploadRawFile) => import("element-plus/es/utils").Awaitable<boolean | void | Blob | File | null | undefined>;
496
496
  readonly onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
497
- readonly onExceed: (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
497
+ readonly onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
498
498
  }, {}, string, {}> & {
499
499
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
500
500
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -585,12 +585,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
585
585
  new (): any;
586
586
  readonly prototype: any;
587
587
  })[], unknown, unknown, () => void, boolean>;
588
- readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
589
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
588
+ readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
589
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
590
590
  new (): any;
591
591
  readonly prototype: any;
592
- } | ((new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
593
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
592
+ } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
593
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
594
594
  new (): any;
595
595
  readonly prototype: any;
596
596
  })[], unknown, unknown, () => void, boolean>;
@@ -615,7 +615,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
615
615
  readonly withCredentials: BooleanConstructor;
616
616
  readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
617
617
  readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
618
- readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadUserFile[]) | (() => import("element-plus").UploadUserFile[]) | ((new (...args: any[]) => import("element-plus").UploadUserFile[]) | (() => import("element-plus").UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
618
+ readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
619
619
  readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
620
620
  readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "text" | "picture" | "picture-card", unknown, "text", boolean>;
621
621
  readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus").UploadRequestHandler) | (() => import("element-plus").UploadRequestHandler) | {
@@ -653,7 +653,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
653
653
  handleStart: (rawFile: UploadRawFile) => void;
654
654
  handleRemove: (file: UploadRawFile | UploadFile, rawFile?: UploadRawFile | undefined) => void;
655
655
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
656
- "update:fileList": (fileList: UploadFile[]) => void;
656
+ "update:fileList": (fileList: UploadUserFile[]) => void;
657
657
  "update:checkoutFiles": (checkoutFiles: any[]) => void;
658
658
  handleRemove: (file: {
659
659
  file: UploadFile;
@@ -662,7 +662,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
662
662
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
663
663
  fileList: {
664
664
  required: true;
665
- type: import("vue").PropType<UploadFile[]>;
665
+ type: import("vue").PropType<UploadUserFile[]>;
666
666
  };
667
667
  checkoutFiles: import("vue").PropType<any[]>;
668
668
  listType: {
@@ -789,12 +789,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
789
789
  new (): any;
790
790
  readonly prototype: any;
791
791
  })[], unknown, unknown, () => void, boolean>;
792
- onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
793
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
792
+ onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
793
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
794
794
  new (): any;
795
795
  readonly prototype: any;
796
- } | ((new (...args: any[]) => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void) | {
797
- (): (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
796
+ } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
797
+ (): (files: File[], uploadFiles: UploadUserFile[]) => void;
798
798
  new (): any;
799
799
  readonly prototype: any;
800
800
  })[], unknown, unknown, () => void, boolean>;
@@ -831,7 +831,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
831
831
  disabled: BooleanConstructor;
832
832
  limit: NumberConstructor;
833
833
  }>> & {
834
- "onUpdate:fileList"?: ((fileList: UploadFile[]) => any) | undefined;
834
+ "onUpdate:fileList"?: ((fileList: UploadUserFile[]) => any) | undefined;
835
835
  onHandleRemove?: ((file: {
836
836
  file: UploadFile;
837
837
  index: number;
@@ -855,7 +855,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
855
855
  onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
856
856
  onPreview: (uploadFile: UploadFile) => void;
857
857
  onProgress: (evt: import("element-plus").UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
858
- onExceed: (files: File[], uploadFiles: import("element-plus").UploadUserFile[]) => void;
858
+ onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
859
859
  action: string;
860
860
  showFileList: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
861
861
  accept: string;
@@ -3,7 +3,7 @@ import './UploadPro.vue3.mjs';
3
3
  import './UploadPro.vue4.mjs';
4
4
  import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
5
5
 
6
- var UploadPro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ae0312c1"]]);
6
+ var UploadPro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c2c42dbb"]]);
7
7
 
8
8
  export { UploadPro as default };
9
9
  //# sourceMappingURL=UploadPro.vue.mjs.map
@@ -9,7 +9,7 @@ import { uploadFileProps } from './uploadPro.mjs';
9
9
  import { getGmExports } from '../../../../utils/src/elementPlus/exports.mjs';
10
10
  import { useUploadFile } from '../../../../hooks/base/useUploadFile/index.mjs';
11
11
 
12
- const _withScopeId = (n) => (pushScopeId("data-v-ae0312c1"), n = n(), popScopeId(), n);
12
+ const _withScopeId = (n) => (pushScopeId("data-v-c2c42dbb"), n = n(), popScopeId(), n);
13
13
  const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode(
14
14
  "div",
15
15
  { class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
@@ -1 +1 @@
1
- {"version":3,"file":"UploadPro.vue2.mjs","sources":["../../../../../../../packages/components/src/business/uploadPro/UploadPro.vue"],"sourcesContent":["<template>\n <div>\n <div\n v-loading=\"uploadLoading\"\n ref=\"pasteFileRef\"\n :class=\"{ 'gm-upload-pro-file-picture-card': listType === 'picture-card', 'gm-upload-pro-file-disabled': disabled }\"\n class=\"gm-upload-pro-file\"\n >\n <el-checkbox-group v-model=\"checkoutFiles\">\n <el-upload\n ref=\"uploadFileRef\"\n v-bind=\"props\"\n v-model:file-list=\"fileList\"\n :before-remove=\"beforeRemove\"\n action=\"\"\n :http-request=\"httpRequest\"\n :on-success=\"coverFileSuccess\"\n :on-error=\"coverFileError\"\n >\n <slot v-if=\"!disabled\">\n <template v-if=\"listType === 'picture-card'\">\n <div\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-border gm-border-dashed gm-p-1\"\n style=\"flex-direction: column\"\n :style=\"{ width: width + 'px', height: height + 'px' }\"\n >\n <el-icon :size=\"30\" color=\"#999\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\n 将文件拖到此处,复制粘贴,或 <em class=\"gm-text-blue-700\">点击上传</em>\n </div>\n </div>\n </template>\n <template v-else>\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\n </template>\n </slot>\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\n <el-checkbox v-if=\"checkbox && !disabledCheckboxUids.includes(file.uid)\" :value=\"file\" />\n\n <slot name=\"file\" :file=\"file\">\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\n <el-progress\n v-if=\"file.status === 'uploading' || loadingUids.has(file.uid)\"\n :type=\"listType === 'picture-card' ? 'circle' : 'line'\"\n :stroke-width=\"listType === 'picture-card' ? 6 : 2\"\n :percentage=\"Number(file.percentage)\"\n :style=\"\n listType === 'picture-card'\n ? {\n width: width - 20 + 'px',\n height: width - 20 + 'px',\n }\n : 'margin-top: 0.5rem'\n \"\n :width=\"width - 20\"\n />\n\n <GmFileComponent v-else :file=\"file\" :size=\"width - 40\" :controls=\"false\" :show-icon=\"true\" />\n </div>\n <div class=\"el-upload-list__item-actions\">\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\n <el-icon><View /></el-icon>\n </span>\n <span\n v-if=\"showDelete && !disabledDeleteUids.includes(file.uid)\"\n class=\"el-upload-list__item-delete\"\n @click=\"handleRemove(file, fileList)\"\n >\n <el-icon><Delete /></el-icon>\n </span>\n </div>\n </slot>\n </template>\n <template v-else #file=\"slotValue\">\n <slot name=\"file\" v-bind=\"slotValue\" />\n </template>\n <template v-if=\"slots.trigger\" #trigger>\n <slot name=\"trigger\" />\n </template>\n <template v-if=\"slots.tip\" #tip>\n <div class=\"gm-text-sm\">\n <slot name=\"tip\" />\n </div>\n </template>\n </el-upload>\n </el-checkbox-group>\n\n <GmPreviewFile v-model:dialogVisible=\"dialogVisible\" v-model:file-index=\"fileIndex\" :file-list=\"fileList\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElMessageBox } from 'element-plus';\nimport { computed, ref, useSlots } from 'vue';\n// import { fileValidType } from '@giime/utils/src/file';\n// import { pasteFile } from '@giime/utils/src/pasteFile';\nimport { usePasteFile } from '@giime/hooks/base/usePasteFile';\nimport { GmConfirmBox } from '@giime/components/src/plugins/confirmBox';\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\nimport GmFileComponent from '../../composite/fileComponent';\nimport GmPreviewFile from '../../composite/previewFile';\nimport { GmUploadProUserFile, GmUploadProUserFileResponse, uploadFileProps } from './uploadPro';\nimport type { UploadFile, UploadFiles, UploadInstance, UploadProps, UploadRawFile } from 'element-plus';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { useUploadFile } from '@giime/hooks/base/useUploadFile';\n\ndefineOptions({\n name: 'GmUploadPro',\n});\nconst slots = useSlots();\n\nconst props = defineProps(uploadFileProps);\nconst emit = defineEmits([\"handleRemove\"]);\n\n/** 上传文件 */\nconst fileList = defineModel<UploadFile[]>('fileList', { required: true });\n/** 多选数据 */\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\n/**上传功能 */\nconst { uploadFile, cancelUpload } = useUploadFile();\n\nconst loadingUids = ref<Set<number>>(new Set());\nconst uploadLoading = computed(() => props.showLoading && loadingUids.value.size > 0);\n\n/* 上传 */\nconst httpRequest: UploadProps['httpRequest'] = async options => {\n loadingUids.value.add(options.file.uid);\n return uploadFile(options.file, {\n domainCode: props.domainCode,\n sceneCode: props.sceneCode,\n accept: props.accept,\n acl: props.acl,\n elOptions: options,\n });\n};\n\n/**判断是否全部上传完成 并触发事件 */\nconst checkAllUploadComplete = () => {\n if (loadingUids.value.size === 0) {\n // 全部文件上传完成\n props.onAllComplete?.();\n }\n};\n// 上传成功\nconst coverFileSuccess: UploadProps['onSuccess'] = (response: GmUploadProUserFileResponse, uploadFile, uploadFiles) => {\n loadingUids.value.delete(uploadFile.uid);\n uploadFile.url = response.url;\n props.onSuccess?.(response, uploadFile, uploadFiles);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n};\n// 上传失败\nconst coverFileError: UploadProps['onError'] = (error, uploadFile, uploadFiles) => {\n loadingUids.value.delete(uploadFile.uid);\n props.onError?.(error, uploadFile, uploadFiles);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n};\n\n/* 删除文件前 */\nconst beforeRemove: UploadProps['beforeRemove'] = async (file, files) => {\n if (props.disabled) {\n return false;\n }\n if (props.deleteTip) {\n await GmConfirmBox({ message: '确定删除该文件吗?' }, async () => {});\n }\n // 如果文件正在上传,取消上传请求\n if (file.status === 'uploading' || loadingUids.value.has(file.uid)) {\n cancelUpload(file.uid);\n loadingUids.value.delete(file.uid);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n }\n return props.beforeRemove?.(file, files) ?? true;\n};\n\n/* 删除文件 */\nconst removeFile = (file: UploadFile, uploadFiles: UploadFiles) => {\n // 如果文件正在上传,取消上传请求\n if (file.status === 'uploading' || loadingUids.value.has(file.uid)) {\n cancelUpload(file.uid);\n loadingUids.value.delete(file.uid);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n }\n\n const index = fileList.value.indexOf(file);\n if (index > -1) {\n fileList.value.splice(index, 1);\n emit('handleRemove', { file, index });\n return props.onRemove?.(file, uploadFiles);\n }\n};\n/**点击删除图标 */\nconst handleRemove = async (file: UploadFile, uploadFiles: UploadFiles) => {\n if (props.deleteTip) {\n await GmConfirmBox({ message: '确定删除该文件吗?' }, async () => {});\n }\n\n removeFile(file, uploadFiles);\n};\n\nconst uploadFileRef = ref<UploadInstance>();\nconst exposeEvents = ['abort', 'submit', 'clearFiles', 'handleStart', 'handleRemove'] as const;\nconst { exposeFns } = getGmExports(uploadFileRef, exposeEvents);\n\nconst pasteFileRef = ref<HTMLElement>();\n\n/** 预览 */\nconst dialogVisible = ref(false);\nconst fileIndex = ref(0);\n/**点击预览 */\nconst handlePreview = (file: UploadFile) => {\n fileIndex.value = fileList.value.indexOf(file);\n dialogVisible.value = true;\n};\n\n//** 复制粘贴 */\nconst { onSuccess, onError } = usePasteFile(pasteFileRef, { accept: props.accept, disabled: props.disabled });\nonSuccess((files: File[]) => {\n if (props.disabled) {\n return;\n }\n if (Array.isArray(files) && files.length > 0) {\n files.forEach(file => {\n if (file instanceof File) {\n const rawFile = file as UploadRawFile;\n uploadFileRef.value?.handleStart(rawFile);\n\n // 粘贴成功自动上传\n if (props.autoUpload) {\n uploadFileRef.value?.submit();\n }\n }\n });\n }\n});\n/**粘贴失败 */\nonError((error: Error) => {\n console.error('粘贴错误:', error);\n ElMessageBox.alert(error.message, '提示', {\n type: 'error',\n });\n});\ndefineExpose({\n ...exposeFns,\n uploadFileRef,\n loadingUids,\n});\n</script>\n\n<style scoped lang=\"scss\">\n.gm-upload-pro-preview-dialog {\n :deep(.el-dialog__body) {\n padding: 0;\n }\n}\n.gm-upload-pro-file-picture-card {\n :deep(.el-upload-list__item),\n :deep(.el-upload--picture-card) {\n width: auto;\n height: auto;\n }\n}\n</style>\n<style lang=\"scss\">\n.gm-upload-pro-file {\n line-height: normal;\n .el-checkbox-group {\n font-size: unset;\n }\n .el-checkbox {\n position: absolute;\n left: 10px;\n top: 0;\n z-index: 9;\n }\n .el-upload-list--picture-card {\n gap: 10px;\n }\n .el-upload-list__item {\n margin: 0;\n }\n .el-upload-list__item-file-name {\n line-height: 1.7;\n }\n .el-upload-dragger {\n padding: 0;\n border: none;\n width: 100%;\n height: 100%;\n display: flex;\n }\n .el-upload--picture-card {\n border: none;\n }\n}\n.gm-upload-pro-file-disabled {\n .el-upload--picture-card {\n display: none;\n }\n .el-upload-list__item-status-label {\n display: none;\n }\n}\n</style>\n"],"names":["_useModel","uploadFile"],"mappings":"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"}
1
+ {"version":3,"file":"UploadPro.vue2.mjs","sources":["../../../../../../../packages/components/src/business/uploadPro/UploadPro.vue"],"sourcesContent":["<template>\n <div>\n <div\n v-loading=\"uploadLoading\"\n ref=\"pasteFileRef\"\n :class=\"{ 'gm-upload-pro-file-picture-card': listType === 'picture-card', 'gm-upload-pro-file-disabled': disabled }\"\n class=\"gm-upload-pro-file\"\n >\n <el-checkbox-group v-model=\"checkoutFiles\">\n <el-upload\n ref=\"uploadFileRef\"\n v-bind=\"props\"\n v-model:file-list=\"fileList\"\n :before-remove=\"beforeRemove\"\n action=\"\"\n :http-request=\"httpRequest\"\n :on-success=\"coverFileSuccess\"\n :on-error=\"coverFileError\"\n >\n <slot v-if=\"!disabled\">\n <template v-if=\"listType === 'picture-card'\">\n <div\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-border gm-border-dashed gm-p-1\"\n style=\"flex-direction: column\"\n :style=\"{ width: width + 'px', height: height + 'px' }\"\n >\n <el-icon :size=\"30\" color=\"#999\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\n 将文件拖到此处,复制粘贴,或 <em class=\"gm-text-blue-700\">点击上传</em>\n </div>\n </div>\n </template>\n <template v-else>\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\n </template>\n </slot>\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\n <el-checkbox v-if=\"checkbox && !disabledCheckboxUids.includes(file.uid)\" :value=\"file\" />\n\n <slot name=\"file\" :file=\"file\">\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\n <el-progress\n v-if=\"file.status === 'uploading' || loadingUids.has(file.uid)\"\n :type=\"listType === 'picture-card' ? 'circle' : 'line'\"\n :stroke-width=\"listType === 'picture-card' ? 6 : 2\"\n :percentage=\"Number(file.percentage)\"\n :style=\"\n listType === 'picture-card'\n ? {\n width: width - 20 + 'px',\n height: width - 20 + 'px',\n }\n : 'margin-top: 0.5rem'\n \"\n :width=\"width - 20\"\n />\n\n <GmFileComponent v-else :file=\"file\" :size=\"width - 40\" :controls=\"false\" :show-icon=\"true\" />\n </div>\n <div class=\"el-upload-list__item-actions\">\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\n <el-icon><View /></el-icon>\n </span>\n <span\n v-if=\"showDelete && !disabledDeleteUids.includes(file.uid)\"\n class=\"el-upload-list__item-delete\"\n @click=\"handleRemove(file, fileList)\"\n >\n <el-icon><Delete /></el-icon>\n </span>\n </div>\n </slot>\n </template>\n <template v-else #file=\"slotValue\">\n <slot name=\"file\" v-bind=\"slotValue\" />\n </template>\n <template v-if=\"slots.trigger\" #trigger>\n <slot name=\"trigger\" />\n </template>\n <template v-if=\"slots.tip\" #tip>\n <div class=\"gm-text-sm\">\n <slot name=\"tip\" />\n </div>\n </template>\n </el-upload>\n </el-checkbox-group>\n\n <GmPreviewFile v-model:dialogVisible=\"dialogVisible\" v-model:file-index=\"fileIndex\" :file-list=\"fileList\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElMessageBox } from 'element-plus';\nimport { computed, ref, useSlots } from 'vue';\n// import { fileValidType } from '@giime/utils/src/file';\n// import { pasteFile } from '@giime/utils/src/pasteFile';\nimport { usePasteFile } from '@giime/hooks/base/usePasteFile';\nimport { GmConfirmBox } from '@giime/components/src/plugins/confirmBox';\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\nimport GmFileComponent from '../../composite/fileComponent';\nimport GmPreviewFile from '../../composite/previewFile';\nimport { GmUploadProUserFile, GmUploadProUserFileResponse, uploadFileProps } from './uploadPro';\nimport type { UploadFile, UploadFiles, UploadInstance, UploadProps, UploadRawFile, UploadUserFile } from 'element-plus';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { useUploadFile } from '@giime/hooks/base/useUploadFile';\n\ndefineOptions({\n name: 'GmUploadPro',\n});\nconst slots = useSlots();\n\nconst props = defineProps(uploadFileProps);\nconst emit = defineEmits([\"handleRemove\"]);\n\n/** 上传文件 */\nconst fileList = defineModel<UploadUserFile[]>('fileList', { required: true });\n/** 多选数据 */\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\n/**上传功能 */\nconst { uploadFile, cancelUpload } = useUploadFile();\n\nconst loadingUids = ref<Set<number>>(new Set());\nconst uploadLoading = computed(() => props.showLoading && loadingUids.value.size > 0);\n\n/* 上传 */\nconst httpRequest: UploadProps['httpRequest'] = async options => {\n loadingUids.value.add(options.file.uid);\n return uploadFile(options.file, {\n domainCode: props.domainCode,\n sceneCode: props.sceneCode,\n accept: props.accept,\n acl: props.acl,\n elOptions: options,\n });\n};\n\n/**判断是否全部上传完成 并触发事件 */\nconst checkAllUploadComplete = () => {\n if (loadingUids.value.size === 0) {\n // 全部文件上传完成\n props.onAllComplete?.();\n }\n};\n// 上传成功\nconst coverFileSuccess: UploadProps['onSuccess'] = (response: GmUploadProUserFileResponse, uploadFile, uploadFiles) => {\n loadingUids.value.delete(uploadFile.uid);\n uploadFile.url = response.url;\n props.onSuccess?.(response, uploadFile, uploadFiles);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n};\n// 上传失败\nconst coverFileError: UploadProps['onError'] = (error, uploadFile, uploadFiles) => {\n loadingUids.value.delete(uploadFile.uid);\n props.onError?.(error, uploadFile, uploadFiles);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n};\n\n/* 删除文件前 */\nconst beforeRemove: UploadProps['beforeRemove'] = async (file, files) => {\n if (props.disabled) {\n return false;\n }\n if (props.deleteTip) {\n await GmConfirmBox({ message: '确定删除该文件吗?' }, async () => {});\n }\n // 如果文件正在上传,取消上传请求\n if (file.status === 'uploading' || loadingUids.value.has(file.uid)) {\n cancelUpload(file.uid);\n loadingUids.value.delete(file.uid);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n }\n return props.beforeRemove?.(file, files) ?? true;\n};\n\n/* 删除文件 */\nconst removeFile = (file: UploadFile, uploadFiles: UploadFiles) => {\n // 如果文件正在上传,取消上传请求\n if (file.status === 'uploading' || loadingUids.value.has(file.uid)) {\n cancelUpload(file.uid);\n loadingUids.value.delete(file.uid);\n // 判断是否全部上传完成\n checkAllUploadComplete();\n }\n\n const index = fileList.value.indexOf(file);\n if (index > -1) {\n fileList.value.splice(index, 1);\n emit('handleRemove', { file, index });\n return props.onRemove?.(file, uploadFiles);\n }\n};\n/**点击删除图标 */\nconst handleRemove = async (file: UploadFile, uploadFiles: UploadUserFile[]) => {\n if (props.deleteTip) {\n await GmConfirmBox({ message: '确定删除该文件吗?' }, async () => {});\n }\n\n removeFile(file, uploadFiles as UploadFiles);\n};\n\nconst uploadFileRef = ref<UploadInstance>();\nconst exposeEvents = ['abort', 'submit', 'clearFiles', 'handleStart', 'handleRemove'] as const;\nconst { exposeFns } = getGmExports(uploadFileRef, exposeEvents);\n\nconst pasteFileRef = ref<HTMLElement>();\n\n/** 预览 */\nconst dialogVisible = ref(false);\nconst fileIndex = ref(0);\n/**点击预览 */\nconst handlePreview = (file: UploadFile) => {\n fileIndex.value = fileList.value.indexOf(file);\n dialogVisible.value = true;\n};\n\n//** 复制粘贴 */\nconst { onSuccess, onError } = usePasteFile(pasteFileRef, { accept: props.accept, disabled: props.disabled });\nonSuccess((files: File[]) => {\n if (props.disabled) {\n return;\n }\n if (Array.isArray(files) && files.length > 0) {\n files.forEach(file => {\n if (file instanceof File) {\n const rawFile = file as UploadRawFile;\n uploadFileRef.value?.handleStart(rawFile);\n\n // 粘贴成功自动上传\n if (props.autoUpload) {\n uploadFileRef.value?.submit();\n }\n }\n });\n }\n});\n/**粘贴失败 */\nonError((error: Error) => {\n console.error('粘贴错误:', error);\n ElMessageBox.alert(error.message, '提示', {\n type: 'error',\n });\n});\ndefineExpose({\n ...exposeFns,\n uploadFileRef,\n loadingUids,\n});\n</script>\n\n<style scoped lang=\"scss\">\n.gm-upload-pro-preview-dialog {\n :deep(.el-dialog__body) {\n padding: 0;\n }\n}\n.gm-upload-pro-file-picture-card {\n :deep(.el-upload-list__item),\n :deep(.el-upload--picture-card) {\n width: auto;\n height: auto;\n }\n}\n</style>\n<style lang=\"scss\">\n.gm-upload-pro-file {\n line-height: normal;\n .el-checkbox-group {\n font-size: unset;\n }\n .el-checkbox {\n position: absolute;\n left: 10px;\n top: 0;\n z-index: 9;\n }\n .el-upload-list--picture-card {\n gap: 10px;\n }\n .el-upload-list__item {\n margin: 0;\n }\n .el-upload-list__item-file-name {\n line-height: 1.7;\n }\n .el-upload-dragger {\n padding: 0;\n border: none;\n width: 100%;\n height: 100%;\n display: flex;\n }\n .el-upload--picture-card {\n border: none;\n }\n}\n.gm-upload-pro-file-disabled {\n .el-upload--picture-card {\n display: none;\n }\n .el-upload-list__item-status-label {\n display: none;\n }\n}\n</style>\n"],"names":["_useModel","uploadFile"],"mappings":"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"}
@@ -3,7 +3,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
3
3
  new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<{
4
4
  fileList: {
5
5
  required: true;
6
- type: import("vue").PropType<import("element-plus").UploadFile[]>;
6
+ type: import("vue").PropType<import("element-plus").UploadUserFile[]>;
7
7
  };
8
8
  checkoutFiles: import("vue").PropType<any[]>;
9
9
  listType: {
@@ -172,7 +172,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
172
172
  disabled: BooleanConstructor;
173
173
  limit: NumberConstructor;
174
174
  }>> & {
175
- "onUpdate:fileList"?: ((fileList: import("element-plus").UploadFile[]) => any) | undefined;
175
+ "onUpdate:fileList"?: ((fileList: import("element-plus").UploadUserFile[]) => any) | undefined;
176
176
  onHandleRemove?: ((file: {
177
177
  file: import("element-plus").UploadFile;
178
178
  index: number;
@@ -661,7 +661,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
661
661
  handleStart: (rawFile: import("element-plus").UploadRawFile) => void;
662
662
  handleRemove: (file: import("element-plus").UploadRawFile | import("element-plus").UploadFile, rawFile?: import("element-plus").UploadRawFile | undefined) => void;
663
663
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
664
- "update:fileList": (fileList: import("element-plus").UploadFile[]) => void;
664
+ "update:fileList": (fileList: import("element-plus").UploadUserFile[]) => void;
665
665
  "update:checkoutFiles": (checkoutFiles: any[]) => void;
666
666
  handleRemove: (file: {
667
667
  file: import("element-plus").UploadFile;
@@ -670,7 +670,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
670
670
  }, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
671
671
  fileList: {
672
672
  required: true;
673
- type: import("vue").PropType<import("element-plus").UploadFile[]>;
673
+ type: import("vue").PropType<import("element-plus").UploadUserFile[]>;
674
674
  };
675
675
  checkoutFiles: import("vue").PropType<any[]>;
676
676
  listType: {
@@ -839,7 +839,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
839
839
  disabled: BooleanConstructor;
840
840
  limit: NumberConstructor;
841
841
  }>> & {
842
- "onUpdate:fileList"?: ((fileList: import("element-plus").UploadFile[]) => any) | undefined;
842
+ "onUpdate:fileList"?: ((fileList: import("element-plus").UploadUserFile[]) => any) | undefined;
843
843
  onHandleRemove?: ((file: {
844
844
  file: import("element-plus").UploadFile;
845
845
  index: number;
@@ -888,7 +888,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
888
888
  }, Readonly<import("vue").ExtractPropTypes<{
889
889
  fileList: {
890
890
  required: true;
891
- type: import("vue").PropType<import("element-plus").UploadFile[]>;
891
+ type: import("vue").PropType<import("element-plus").UploadUserFile[]>;
892
892
  };
893
893
  checkoutFiles: import("vue").PropType<any[]>;
894
894
  listType: {
@@ -1057,7 +1057,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
1057
1057
  disabled: BooleanConstructor;
1058
1058
  limit: NumberConstructor;
1059
1059
  }>> & {
1060
- "onUpdate:fileList"?: ((fileList: import("element-plus").UploadFile[]) => any) | undefined;
1060
+ "onUpdate:fileList"?: ((fileList: import("element-plus").UploadUserFile[]) => any) | undefined;
1061
1061
  onHandleRemove?: ((file: {
1062
1062
  file: import("element-plus").UploadFile;
1063
1063
  index: number;
@@ -1585,7 +1585,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
1585
1585
  } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
1586
1586
  fileList: {
1587
1587
  required: true;
1588
- type: import("vue").PropType<import("element-plus").UploadFile[]>;
1588
+ type: import("vue").PropType<import("element-plus").UploadUserFile[]>;
1589
1589
  };
1590
1590
  checkoutFiles: import("vue").PropType<any[]>;
1591
1591
  listType: {
@@ -1754,7 +1754,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
1754
1754
  disabled: BooleanConstructor;
1755
1755
  limit: NumberConstructor;
1756
1756
  }>> & {
1757
- "onUpdate:fileList"?: ((fileList: import("element-plus").UploadFile[]) => any) | undefined;
1757
+ "onUpdate:fileList"?: ((fileList: import("element-plus").UploadUserFile[]) => any) | undefined;
1758
1758
  onHandleRemove?: ((file: {
1759
1759
  file: import("element-plus").UploadFile;
1760
1760
  index: number;
@@ -2243,7 +2243,7 @@ export declare const GmUploadPro: import("../../../../utils").SFCWithInstall<{
2243
2243
  handleStart: (rawFile: import("element-plus").UploadRawFile) => void;
2244
2244
  handleRemove: (file: import("element-plus").UploadRawFile | import("element-plus").UploadFile, rawFile?: import("element-plus").UploadRawFile | undefined) => void;
2245
2245
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
2246
- "update:fileList": (fileList: import("element-plus").UploadFile[]) => void;
2246
+ "update:fileList": (fileList: import("element-plus").UploadUserFile[]) => void;
2247
2247
  "update:checkoutFiles": (checkoutFiles: any[]) => void;
2248
2248
  handleRemove: (file: {
2249
2249
  file: import("element-plus").UploadFile;
@@ -13,7 +13,7 @@ export { createAxios } from '../utils/src/http/createAxios.mjs';
13
13
  export { errorMessage, responseErrorMessage } from '../utils/src/http/errorMessage.mjs';
14
14
  export { req401Interceptors, res401Interceptors } from '../utils/src/http/interceptors.mjs';
15
15
  export { giimeDevProxy } from '../utils/src/http/devProxy.mjs';
16
- export { getDomain } from '../utils/src/http/url.mjs';
16
+ export { getDomain, urlJoin } from '../utils/src/http/url.mjs';
17
17
  export { getModifiedData, hasOwn, keysOf, resetObject } from '../utils/src/objects.mjs';
18
18
  export { getDateShortcuts } from '../utils/src/date/dateShortcuts.mjs';
19
19
  export { genFileId } from 'element-plus';
@@ -1 +1 @@
1
- export declare const version = "0.6.45";
1
+ export declare const version = "0.7.1";
@@ -1,4 +1,4 @@
1
- const version = "0.6.45";
1
+ const version = "0.7.0";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.6.45';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.7.0';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
package/es/index.css CHANGED
@@ -959,11 +959,11 @@ video {
959
959
  margin: 0;
960
960
  }
961
961
 
962
- .gm-upload-pro-preview-dialog[data-v-ae0312c1] [data-v-ae0312c1] .el-dialog__body {
962
+ .gm-upload-pro-preview-dialog[data-v-c2c42dbb] [data-v-c2c42dbb] .el-dialog__body {
963
963
  padding: 0;
964
964
  }
965
965
 
966
- .gm-upload-pro-file-picture-card[data-v-ae0312c1] [data-v-ae0312c1] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-ae0312c1] [data-v-ae0312c1] .el-upload--picture-card {
966
+ .gm-upload-pro-file-picture-card[data-v-c2c42dbb] [data-v-c2c42dbb] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-c2c42dbb] [data-v-c2c42dbb] .el-upload--picture-card {
967
967
  width: auto;
968
968
  height: auto;
969
969
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -23,7 +23,7 @@ export { createAxios } from './src/http/createAxios.mjs';
23
23
  export { errorMessage, responseErrorMessage } from './src/http/errorMessage.mjs';
24
24
  export { req401Interceptors, res401Interceptors } from './src/http/interceptors.mjs';
25
25
  export { giimeDevProxy } from './src/http/devProxy.mjs';
26
- export { getDomain } from './src/http/url.mjs';
26
+ export { getDomain, urlJoin } from './src/http/url.mjs';
27
27
  export { getDateShortcuts } from './src/date/dateShortcuts.mjs';
28
28
  export { genFileId } from 'element-plus';
29
29
  export { b64_hmac_md5, b64_md5, hex_hmac_md5, hex_md5, str_hmac_md5, str_md5, ts_md5_file } from './src/crypto/md5.mjs';
@@ -2,5 +2,5 @@ export { createAxios } from './createAxios.mjs';
2
2
  export { errorMessage, responseErrorMessage } from './errorMessage.mjs';
3
3
  export { req401Interceptors, res401Interceptors } from './interceptors.mjs';
4
4
  export { giimeDevProxy } from './devProxy.mjs';
5
- export { getDomain } from './url.mjs';
5
+ export { getDomain, urlJoin } from './url.mjs';
6
6
  //# sourceMappingURL=index.mjs.map
@@ -1,5 +1,15 @@
1
1
  /**
2
2
  * 获取当前页面的域
3
3
  * @example https://www.baidu.com/s?wd=hello&ie=utf-8 => .baidu.com
4
+ * @example https://127.0.0.1:5000/dashboard => 127.0.0.1
5
+ * @example http://localhost:3000/test => localhost
4
6
  */
5
7
  export declare function getDomain(): string | undefined;
8
+ /**
9
+ * 拼接 url 路径,自动处理多余的 /
10
+ * @param {...string[]} parts 路径片段
11
+ * @returns {string}
12
+ * @example urlJoin('https://www.baidu.com', 's', 'wd=hello') => https://www.baidu.com/s/wd=hello
13
+ * @example urlJoin('/', 'ai/copywriting/gen') => /ai/copywriting/gen
14
+ */
15
+ export declare function urlJoin(...parts: string[]): string;
@@ -4,18 +4,39 @@ function getDomain() {
4
4
  const match = url.match(domainPattern);
5
5
  if (match) {
6
6
  const domain = match[1];
7
- if (/^(localhost|(\d{1,3}\.){3}\d{1,3})$/.test(domain)) {
8
- return void 0;
7
+ const domainWithoutPort = domain.split(":")[0];
8
+ if (/^(\d{1,3}\.){3}\d{1,3}$/.test(domainWithoutPort)) {
9
+ return domainWithoutPort;
9
10
  }
10
- const domainParts = domain.split(".");
11
+ if (domainWithoutPort === "localhost") {
12
+ return "localhost";
13
+ }
14
+ const domainParts = domainWithoutPort.split(".");
11
15
  if (domainParts.length > 2) {
12
16
  return `.${domainParts.slice(-2).join(".")}`;
13
17
  } else {
14
- return `.${domain}`;
18
+ return `.${domainWithoutPort}`;
15
19
  }
16
20
  }
17
21
  return void 0;
18
22
  }
23
+ function urlJoin(...parts) {
24
+ if (parts.length === 0)
25
+ return "";
26
+ if (parts.length === 1)
27
+ return parts[0];
28
+ const result = parts.map((part, i) => {
29
+ if (i === 0) {
30
+ if (part === "/")
31
+ return "";
32
+ return part.replace(/\/+$/, "");
33
+ }
34
+ if (i === parts.length - 1)
35
+ return part.replace(/^\/+/, "");
36
+ return part.replace(/^\/+|\/+$/g, "");
37
+ }).filter(Boolean).join("/");
38
+ return parts[0] === "/" ? "/" + result : result;
39
+ }
19
40
 
20
- export { getDomain };
41
+ export { getDomain, urlJoin };
21
42
  //# sourceMappingURL=url.mjs.map