giime 0.6.45 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/index.css +116 -116
  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/index.css +116 -116
  34. package/es/utils/index.mjs +1 -1
  35. package/es/utils/src/http/index.mjs +1 -1
  36. package/es/utils/src/http/url.d.ts +7 -0
  37. package/es/utils/src/http/url.mjs +14 -1
  38. package/es/utils/src/http/url.mjs.map +1 -1
  39. package/es/utils/src/vue/resolver.d.ts +4 -1
  40. package/es/utils/src/vue/resolver.mjs +4 -1
  41. package/es/utils/src/vue/resolver.mjs.map +1 -1
  42. package/lib/api/gstore/request.js +2 -1
  43. package/lib/api/gstore/request.js.map +1 -1
  44. package/lib/api/guardBasic/request.js +5 -9
  45. package/lib/api/guardBasic/request.js.map +1 -1
  46. package/lib/api/materialApi/request.js +5 -8
  47. package/lib/api/materialApi/request.js.map +1 -1
  48. package/lib/api/productCenter/request.js +5 -5
  49. package/lib/api/productCenter/request.js.map +1 -1
  50. package/lib/api/resource/request.js +5 -9
  51. package/lib/api/resource/request.js.map +1 -1
  52. package/lib/api/shopAdmin/request.js +4 -3
  53. package/lib/api/shopAdmin/request.js.map +1 -1
  54. package/lib/api/utils/createModes.d.ts +17 -0
  55. package/lib/api/utils/createModes.js +22 -0
  56. package/lib/api/utils/createModes.js.map +1 -0
  57. package/lib/api/utils/index.d.ts +1 -0
  58. package/lib/api/utils/index.js +2 -0
  59. package/lib/api/utils/index.js.map +1 -1
  60. package/lib/api/utils/resetAxiosBaseUrl.js.map +1 -1
  61. package/lib/components/src/base/row/Row.vue.d.ts +6 -6
  62. package/lib/components/src/base/row/index.d.ts +16 -16
  63. package/lib/components/src/base/row/row.d.ts +1 -1
  64. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +7 -5
  65. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
  66. package/lib/components/src/business/uploadPro/UploadPro.vue.d.ts +35 -35
  67. package/lib/components/src/business/uploadPro/UploadPro.vue.js +1 -1
  68. package/lib/components/src/business/uploadPro/UploadPro.vue2.js +1 -1
  69. package/lib/components/src/business/uploadPro/UploadPro.vue2.js.map +1 -1
  70. package/lib/components/src/business/uploadPro/index.d.ts +10 -10
  71. package/lib/giime/index.js +1 -0
  72. package/lib/giime/index.js.map +1 -1
  73. package/lib/giime/version.d.ts +1 -1
  74. package/lib/index.css +116 -116
  75. package/lib/utils/index.js +1 -0
  76. package/lib/utils/index.js.map +1 -1
  77. package/lib/utils/src/http/index.js +1 -0
  78. package/lib/utils/src/http/index.js.map +1 -1
  79. package/lib/utils/src/http/url.d.ts +7 -0
  80. package/lib/utils/src/http/url.js +14 -0
  81. package/lib/utils/src/http/url.js.map +1 -1
  82. package/lib/utils/src/vue/resolver.d.ts +4 -1
  83. package/lib/utils/src/vue/resolver.js +4 -1
  84. package/lib/utils/src/vue/resolver.js.map +1 -1
  85. package/package.json +1 -1
@@ -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.0";
package/es/index.css CHANGED
@@ -873,6 +873,11 @@ video {
873
873
  .gm-group:hover .group-hover\:gm-block {
874
874
  display: block;
875
875
  }
876
+
877
+ .gm-range-number .el-form-item[data-v-1ae16d96] {
878
+ margin: 0;
879
+ }
880
+
876
881
  .gm-flex-center[data-v-c17deec9] {
877
882
  align-items: center;
878
883
  }
@@ -880,157 +885,193 @@ video {
880
885
  .gm-flex-justify-between[data-v-c17deec9] {
881
886
  justify-content: space-between;
882
887
  }
883
- .gm-upload-preview-dialog[data-v-62eb3199] [data-v-62eb3199] .el-dialog__body {
888
+ .gm-upload-pro-preview-dialog[data-v-c2c42dbb] [data-v-c2c42dbb] .el-dialog__body {
884
889
  padding: 0;
885
890
  }
886
891
 
887
- .gm-upload-file-picture-card[data-v-62eb3199] [data-v-62eb3199] .el-upload-list__item, .gm-upload-file-picture-card[data-v-62eb3199] [data-v-62eb3199] .el-upload--picture-card {
892
+ .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 {
888
893
  width: auto;
889
894
  height: auto;
890
895
  }
891
- .gm-upload-file {
896
+ .gm-upload-pro-file {
892
897
  line-height: normal;
893
898
  }
894
- .gm-upload-file .el-checkbox {
899
+ .gm-upload-pro-file .el-checkbox-group {
900
+ font-size: unset;
901
+ }
902
+ .gm-upload-pro-file .el-checkbox {
895
903
  position: absolute;
896
904
  left: 10px;
897
905
  top: 0;
898
906
  z-index: 9;
899
907
  }
900
- .gm-upload-file .el-upload-list--picture-card {
908
+ .gm-upload-pro-file .el-upload-list--picture-card {
901
909
  gap: 10px;
902
910
  }
903
- .gm-upload-file .el-upload-list__item {
911
+ .gm-upload-pro-file .el-upload-list__item {
904
912
  margin: 0;
905
913
  }
906
- .gm-upload-file .el-upload-list__item-file-name {
907
- line-height: normal;
914
+ .gm-upload-pro-file .el-upload-list__item-file-name {
915
+ line-height: 1.7;
908
916
  }
909
- .gm-upload-file .el-upload-dragger {
917
+ .gm-upload-pro-file .el-upload-dragger {
910
918
  padding: 0;
911
919
  border: none;
912
920
  width: 100%;
913
921
  height: 100%;
914
922
  display: flex;
915
923
  }
916
- .gm-upload-file .el-upload--picture-card {
924
+ .gm-upload-pro-file .el-upload--picture-card {
917
925
  border: none;
918
926
  }
919
927
 
920
- .gm-upload-file-disabled .el-upload--picture-card {
928
+ .gm-upload-pro-file-disabled .el-upload--picture-card {
921
929
  display: none;
922
930
  }
923
- .gm-upload-file-disabled .el-upload-list__item-status-label {
931
+ .gm-upload-pro-file-disabled .el-upload-list__item-status-label {
924
932
  display: none;
925
933
  }
926
- .circular[data-v-d7b04fae] {
927
- animation: loading-rotate-d7b04fae 2s linear infinite;
934
+ [data-v-98c2e804] .gmTableNoBorder .el-table__body .el-table__cell {
935
+ border-right: none;
928
936
  }
929
937
 
930
- .path[data-v-d7b04fae] {
931
- animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
932
- stroke-dasharray: 90, 150;
933
- stroke-dashoffset: 0;
934
- stroke: var(--el-color-primary);
935
- stroke-linecap: round;
938
+ [data-v-98c2e804] .gmTableNoBorder .el-table__inner-wrapper:before {
939
+ height: 0;
936
940
  }
937
941
 
938
- @keyframes loading-rotate-d7b04fae {
939
- to {
940
- transform: rotate(360deg);
941
- }
942
+ [data-v-98c2e804] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
943
+ height: 0;
942
944
  }
943
- @keyframes loading-dash-d7b04fae {
944
- 0% {
945
- stroke-dasharray: 1, 200;
946
- stroke-dashoffset: 0;
947
- }
948
- 50% {
949
- stroke-dasharray: 90, 150;
950
- stroke-dashoffset: -40px;
951
- }
952
- 100% {
953
- stroke-dasharray: 90, 150;
954
- stroke-dashoffset: -120px;
955
- }
945
+
946
+ [data-v-98c2e804] .gmTableNoBorder.el-table--border:after {
947
+ height: 0;
956
948
  }
957
949
 
958
- .gm-range-number .el-form-item[data-v-1ae16d96] {
959
- margin: 0;
950
+ [data-v-98c2e804] .gmTableNoBorder.el-table--border:before {
951
+ height: 0;
960
952
  }
961
953
 
962
- .gm-upload-pro-preview-dialog[data-v-ae0312c1] [data-v-ae0312c1] .el-dialog__body {
954
+ [data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
955
+ height: 0;
956
+ }
957
+ [data-v-488ca110] .gmSearchForm .el-form-item {
958
+ margin-right: 0;
959
+ margin-bottom: 4px;
960
+ }
961
+ .gm-number-interval-single[data-v-4e6f4d6f] {
962
+ border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
963
+ box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
964
+ background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
965
+ }
966
+ .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
967
+ box-shadow: none;
968
+ background: none;
969
+ }
970
+
971
+ .gm-number-interval-close[data-v-4e6f4d6f] {
972
+ display: none;
973
+ color: var(--el-input-icon-color, var(--el-text-color-placeholder));
974
+ }
975
+
976
+ .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
977
+ display: flex;
978
+ }
979
+ .gm-upload-preview-dialog[data-v-62eb3199] [data-v-62eb3199] .el-dialog__body {
963
980
  padding: 0;
964
981
  }
965
982
 
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 {
983
+ .gm-upload-file-picture-card[data-v-62eb3199] [data-v-62eb3199] .el-upload-list__item, .gm-upload-file-picture-card[data-v-62eb3199] [data-v-62eb3199] .el-upload--picture-card {
967
984
  width: auto;
968
985
  height: auto;
969
986
  }
970
- .gm-upload-pro-file {
971
- line-height: normal;
987
+ [data-v-2c351ff8] .gmTableNoBorder .el-table__body .el-table__cell {
988
+ border-right: none;
972
989
  }
973
- .gm-upload-pro-file .el-checkbox-group {
974
- font-size: unset;
990
+
991
+ [data-v-2c351ff8] .gmTableNoBorder .el-table__inner-wrapper:before {
992
+ height: 0;
975
993
  }
976
- .gm-upload-pro-file .el-checkbox {
994
+
995
+ [data-v-2c351ff8] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
996
+ height: 0;
997
+ }
998
+
999
+ [data-v-2c351ff8] .gmTableNoBorder.el-table--border:after {
1000
+ height: 0;
1001
+ }
1002
+
1003
+ [data-v-2c351ff8] .gmTableNoBorder.el-table--border:before {
1004
+ height: 0;
1005
+ }
1006
+
1007
+ [data-v-2c351ff8] .gmTableNoBorder .el-table__border-left-patch {
1008
+ height: 0;
1009
+ }
1010
+ .gm-upload-file {
1011
+ line-height: normal;
1012
+ }
1013
+ .gm-upload-file .el-checkbox {
977
1014
  position: absolute;
978
1015
  left: 10px;
979
1016
  top: 0;
980
1017
  z-index: 9;
981
1018
  }
982
- .gm-upload-pro-file .el-upload-list--picture-card {
1019
+ .gm-upload-file .el-upload-list--picture-card {
983
1020
  gap: 10px;
984
1021
  }
985
- .gm-upload-pro-file .el-upload-list__item {
1022
+ .gm-upload-file .el-upload-list__item {
986
1023
  margin: 0;
987
1024
  }
988
- .gm-upload-pro-file .el-upload-list__item-file-name {
989
- line-height: 1.7;
1025
+ .gm-upload-file .el-upload-list__item-file-name {
1026
+ line-height: normal;
990
1027
  }
991
- .gm-upload-pro-file .el-upload-dragger {
1028
+ .gm-upload-file .el-upload-dragger {
992
1029
  padding: 0;
993
1030
  border: none;
994
1031
  width: 100%;
995
1032
  height: 100%;
996
1033
  display: flex;
997
1034
  }
998
- .gm-upload-pro-file .el-upload--picture-card {
1035
+ .gm-upload-file .el-upload--picture-card {
999
1036
  border: none;
1000
1037
  }
1001
1038
 
1002
- .gm-upload-pro-file-disabled .el-upload--picture-card {
1039
+ .gm-upload-file-disabled .el-upload--picture-card {
1003
1040
  display: none;
1004
1041
  }
1005
- .gm-upload-pro-file-disabled .el-upload-list__item-status-label {
1042
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
1006
1043
  display: none;
1007
1044
  }
1008
- [data-v-488ca110] .gmSearchForm .el-form-item {
1009
- margin-right: 0;
1010
- margin-bottom: 4px;
1011
- }
1012
- [data-v-2c351ff8] .gmTableNoBorder .el-table__body .el-table__cell {
1013
- border-right: none;
1014
- }
1015
-
1016
- [data-v-2c351ff8] .gmTableNoBorder .el-table__inner-wrapper:before {
1017
- height: 0;
1018
- }
1019
-
1020
- [data-v-2c351ff8] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1021
- height: 0;
1045
+ .circular[data-v-d7b04fae] {
1046
+ animation: loading-rotate-d7b04fae 2s linear infinite;
1022
1047
  }
1023
1048
 
1024
- [data-v-2c351ff8] .gmTableNoBorder.el-table--border:after {
1025
- height: 0;
1049
+ .path[data-v-d7b04fae] {
1050
+ animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
1051
+ stroke-dasharray: 90, 150;
1052
+ stroke-dashoffset: 0;
1053
+ stroke: var(--el-color-primary);
1054
+ stroke-linecap: round;
1026
1055
  }
1027
1056
 
1028
- [data-v-2c351ff8] .gmTableNoBorder.el-table--border:before {
1029
- height: 0;
1057
+ @keyframes loading-rotate-d7b04fae {
1058
+ to {
1059
+ transform: rotate(360deg);
1060
+ }
1030
1061
  }
1031
-
1032
- [data-v-2c351ff8] .gmTableNoBorder .el-table__border-left-patch {
1033
- height: 0;
1062
+ @keyframes loading-dash-d7b04fae {
1063
+ 0% {
1064
+ stroke-dasharray: 1, 200;
1065
+ stroke-dashoffset: 0;
1066
+ }
1067
+ 50% {
1068
+ stroke-dasharray: 90, 150;
1069
+ stroke-dashoffset: -40px;
1070
+ }
1071
+ 100% {
1072
+ stroke-dasharray: 90, 150;
1073
+ stroke-dashoffset: -120px;
1074
+ }
1034
1075
  }
1035
1076
 
1036
1077
  .pagination-container[data-v-47d35e7b] {
@@ -1041,24 +1082,6 @@ video {
1041
1082
  display: none;
1042
1083
  }
1043
1084
 
1044
- .gm-number-interval-single[data-v-4e6f4d6f] {
1045
- border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
1046
- box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
1047
- background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
1048
- }
1049
- .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
1050
- box-shadow: none;
1051
- background: none;
1052
- }
1053
-
1054
- .gm-number-interval-close[data-v-4e6f4d6f] {
1055
- display: none;
1056
- color: var(--el-input-icon-color, var(--el-text-color-placeholder));
1057
- }
1058
-
1059
- .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
1060
- display: flex;
1061
- }
1062
1085
  @charset "UTF-8";
1063
1086
  .custom-operate-drawer .el-drawer__header {
1064
1087
  padding: 10px 15px;
@@ -1115,29 +1138,6 @@ video {
1115
1138
  border-radius: 10px;
1116
1139
  background: #eee;
1117
1140
  }
1118
- [data-v-98c2e804] .gmTableNoBorder .el-table__body .el-table__cell {
1119
- border-right: none;
1120
- }
1121
-
1122
- [data-v-98c2e804] .gmTableNoBorder .el-table__inner-wrapper:before {
1123
- height: 0;
1124
- }
1125
-
1126
- [data-v-98c2e804] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1127
- height: 0;
1128
- }
1129
-
1130
- [data-v-98c2e804] .gmTableNoBorder.el-table--border:after {
1131
- height: 0;
1132
- }
1133
-
1134
- [data-v-98c2e804] .gmTableNoBorder.el-table--border:before {
1135
- height: 0;
1136
- }
1137
-
1138
- [data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
1139
- height: 0;
1140
- }
1141
1141
  @charset "UTF-8";
1142
1142
  .table-custom-header-drawer .el-drawer__header {
1143
1143
  padding: 10px 15px;
@@ -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
@@ -3,3 +3,10 @@
3
3
  * @example https://www.baidu.com/s?wd=hello&ie=utf-8 => .baidu.com
4
4
  */
5
5
  export declare function getDomain(): string | undefined;
6
+ /**
7
+ * 拼接 url 路径,自动处理多余的 /
8
+ * @param {...string[]} parts 路径片段
9
+ * @returns {string}
10
+ * @example urlJoin('https://www.baidu.com', 's', 'wd=hello') => https://www.baidu.com/s/wd=hello
11
+ */
12
+ export declare function urlJoin(...parts: string[]): string;
@@ -16,6 +16,19 @@ function getDomain() {
16
16
  }
17
17
  return void 0;
18
18
  }
19
+ function urlJoin(...parts) {
20
+ if (parts.length === 0)
21
+ return "";
22
+ if (parts.length === 1)
23
+ return parts[0];
24
+ return parts.map((part, i) => {
25
+ if (i === 0)
26
+ return part.replace(/\/+$/, "");
27
+ if (i === parts.length - 1)
28
+ return part.replace(/^\/+/, "");
29
+ return part.replace(/^\/+|\/+$/g, "");
30
+ }).filter(Boolean).join("/");
31
+ }
19
32
 
20
- export { getDomain };
33
+ export { getDomain, urlJoin };
21
34
  //# sourceMappingURL=url.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.mjs","sources":["../../../../../../packages/utils/src/http/url.ts"],"sourcesContent":["/**\n * 获取当前页面的域\n * @example https://www.baidu.com/s?wd=hello&ie=utf-8 => .baidu.com\n */\nexport function getDomain() {\n const url = window.location.href;\n // eslint-disable-next-line no-useless-escape\n const domainPattern = /https?:\\/\\/([^\\/]+)/;\n const match = url.match(domainPattern);\n\n if (match) {\n const domain = match[1];\n // 检查是否是IP地址或localhost\n if (/^(localhost|(\\d{1,3}\\.){3}\\d{1,3})$/.test(domain)) {\n return undefined;\n }\n\n // 提取主域名部分\n const domainParts = domain.split('.');\n if (domainParts.length > 2) {\n return `.${domainParts.slice(-2).join('.')}`;\n } else {\n return `.${domain}`;\n }\n }\n\n return undefined;\n}\n\n// // 使用示例\n// console.log(getDomain());\n"],"names":[],"mappings":"AAIO,SAAS,SAAY,GAAA;AAC1B,EAAM,MAAA,GAAA,GAAM,OAAO,QAAS,CAAA,IAAA,CAAA;AAE5B,EAAA,MAAM,aAAgB,GAAA,qBAAA,CAAA;AACtB,EAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AAErC,EAAA,IAAI,KAAO,EAAA;AACT,IAAM,MAAA,MAAA,GAAS,MAAM,CAAC,CAAA,CAAA;AAEtB,IAAI,IAAA,qCAAA,CAAsC,IAAK,CAAA,MAAM,CAAG,EAAA;AACtD,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACT;AAGA,IAAM,MAAA,WAAA,GAAc,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AACpC,IAAI,IAAA,WAAA,CAAY,SAAS,CAAG,EAAA;AAC1B,MAAA,OAAO,IAAI,WAAY,CAAA,KAAA,CAAM,EAAE,CAAE,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,KACrC,MAAA;AACL,MAAA,OAAO,IAAI,MAAM,CAAA,CAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"url.mjs","sources":["../../../../../../packages/utils/src/http/url.ts"],"sourcesContent":["/**\n * 获取当前页面的域\n * @example https://www.baidu.com/s?wd=hello&ie=utf-8 => .baidu.com\n */\nexport function getDomain() {\n const url = window.location.href;\n // eslint-disable-next-line no-useless-escape\n const domainPattern = /https?:\\/\\/([^\\/]+)/;\n const match = url.match(domainPattern);\n\n if (match) {\n const domain = match[1];\n // 检查是否是IP地址或localhost\n if (/^(localhost|(\\d{1,3}\\.){3}\\d{1,3})$/.test(domain)) {\n return undefined;\n }\n\n // 提取主域名部分\n const domainParts = domain.split('.');\n if (domainParts.length > 2) {\n return `.${domainParts.slice(-2).join('.')}`;\n } else {\n return `.${domain}`;\n }\n }\n\n return undefined;\n}\n\n// // 使用示例\n// console.log(getDomain());\n/**\n * 拼接 url 路径,自动处理多余的 /\n * @param {...string[]} parts 路径片段\n * @returns {string}\n * @example urlJoin('https://www.baidu.com', 's', 'wd=hello') => https://www.baidu.com/s/wd=hello\n */\nexport function urlJoin(...parts: string[]): string {\n if (parts.length === 0) return '';\n if (parts.length === 1) return parts[0];\n\n return parts\n .map((part, i) => {\n if (i === 0) return part.replace(/\\/+$/, ''); // 第一个去掉结尾/\n if (i === parts.length - 1) return part.replace(/^\\/+/, ''); // 最后一个去掉开头/\n\n return part.replace(/^\\/+|\\/+$/g, ''); // 中间的去掉头尾/\n })\n .filter(Boolean)\n .join('/');\n}\n"],"names":[],"mappings":"AAIO,SAAS,SAAY,GAAA;AAC1B,EAAM,MAAA,GAAA,GAAM,OAAO,QAAS,CAAA,IAAA,CAAA;AAE5B,EAAA,MAAM,aAAgB,GAAA,qBAAA,CAAA;AACtB,EAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AAErC,EAAA,IAAI,KAAO,EAAA;AACT,IAAM,MAAA,MAAA,GAAS,MAAM,CAAC,CAAA,CAAA;AAEtB,IAAI,IAAA,qCAAA,CAAsC,IAAK,CAAA,MAAM,CAAG,EAAA;AACtD,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACT;AAGA,IAAM,MAAA,WAAA,GAAc,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AACpC,IAAI,IAAA,WAAA,CAAY,SAAS,CAAG,EAAA;AAC1B,MAAA,OAAO,IAAI,WAAY,CAAA,KAAA,CAAM,EAAE,CAAE,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,KACrC,MAAA;AACL,MAAA,OAAO,IAAI,MAAM,CAAA,CAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAA,CAAA;AACT,CAAA;AAUO,SAAS,WAAW,KAAyB,EAAA;AAClD,EAAA,IAAI,MAAM,MAAW,KAAA,CAAA;AAAG,IAAO,OAAA,EAAA,CAAA;AAC/B,EAAA,IAAI,MAAM,MAAW,KAAA,CAAA;AAAG,IAAA,OAAO,MAAM,CAAC,CAAA,CAAA;AAEtC,EAAA,OAAO,KACJ,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,CAAM,KAAA;AAChB,IAAA,IAAI,CAAM,KAAA,CAAA;AAAG,MAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,EAAQ,EAAE,CAAA,CAAA;AAC3C,IAAI,IAAA,CAAA,KAAM,MAAM,MAAS,GAAA,CAAA;AAAG,MAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,EAAQ,EAAE,CAAA,CAAA;AAE1D,IAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,YAAA,EAAc,EAAE,CAAA,CAAA;AAAA,GACrC,CACA,CAAA,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA,CAAA;AACb;;;;"}
@@ -4,7 +4,10 @@ import type { ProxyOptions } from 'vite';
4
4
  import * as http from 'node:http';
5
5
  export declare function kebabCase(key: string): string;
6
6
  export declare const GiimeResolver: () => ComponentResolver[];
7
+ export interface GiimeBypassOptions {
8
+ showLog?: boolean;
9
+ }
7
10
  /**
8
11
  * webpack-dev-server style bypass function
9
12
  */
10
- export declare const bypass: (req: http.IncomingMessage, res: http.ServerResponse | undefined, options: ProxyOptions) => void;
13
+ export declare const bypass: (req: http.IncomingMessage, res: http.ServerResponse | undefined, options: ProxyOptions, giimeOptions?: GiimeBypassOptions) => void;
@@ -20,11 +20,14 @@ const GiimeResolver = () => {
20
20
  }
21
21
  ];
22
22
  };
23
- const bypass = (req, res, options) => {
23
+ const bypass = (req, res, options, giimeOptions) => {
24
24
  const targetPath = new URL(options.target?.toString() ?? "").pathname.replace(/\/$/, "");
25
25
  const rewrittenPath = options.rewrite?.(req.url) ?? "";
26
26
  const fullPath = `${targetPath}${rewrittenPath}`;
27
27
  const proxyUrl = new URL(fullPath, options.target?.toString());
28
+ if (giimeOptions?.showLog) {
29
+ console.log("proxyUrl", proxyUrl.toString());
30
+ }
28
31
  res?.setHeader("x-giime-proxy-url", proxyUrl.toString());
29
32
  };
30
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.mjs","sources":["../../../../../../packages/utils/src/vue/resolver.ts"],"sourcesContent":["import type { ComponentResolver } from 'unplugin-vue-components';\nimport type { ProxyOptions } from 'vite';\nimport * as http from 'node:http';\n\nexport function kebabCase(key: string) {\n const result = key.replace(/([A-Z])/g, ' $1').trim();\n return result.split(' ').join('-').toLowerCase();\n}\nexport const GiimeResolver = (): ComponentResolver[] => {\n return [\n {\n type: 'component',\n resolve: async (name: string) => {\n if (!name.match(/^Gm[A-Z]/)) return;\n // const partialName = kebabCase(name.slice(2));\n // where `componentName` is always CapitalCase\n return { name, from: 'giime' };\n },\n },\n {\n type: 'directive',\n resolve: async () => {\n return;\n },\n },\n ];\n};\n/**\n * webpack-dev-server style bypass function\n */\nexport const bypass = (\n req: http.IncomingMessage,\n /** undefined for WebSocket upgrade requests */\n res: http.ServerResponse | undefined,\n options: ProxyOptions,\n) => {\n // 获取请求路径,处理后缀斜杠的问题\n const targetPath = new URL(options.target?.toString() ?? '').pathname.replace(/\\/$/, '');\n // 使用 rewrite 函数处理请求路径,并处理后缀斜杠的问题\n const rewrittenPath = options.rewrite?.(req.url!) ?? '';\n // 合并路径\n const fullPath = `${targetPath}${rewrittenPath}`;\n\n // 构造完整的代理 URL\n const proxyUrl = new URL(fullPath, options.target?.toString());\n\n // 设置响应头\n res?.setHeader('x-giime-proxy-url', proxyUrl.toString());\n};\n"],"names":[],"mappings":"AAIO,SAAS,UAAU,GAAa,EAAA;AACrC,EAAA,MAAM,SAAS,GAAI,CAAA,OAAA,CAAQ,UAAY,EAAA,KAAK,EAAE,IAAK,EAAA,CAAA;AACnD,EAAA,OAAO,OAAO,KAAM,CAAA,GAAG,EAAE,IAAK,CAAA,GAAG,EAAE,WAAY,EAAA,CAAA;AACjD,CAAA;AACO,MAAM,gBAAgB,MAA2B;AACtD,EAAO,OAAA;AAAA,IACL;AAAA,MACE,IAAM,EAAA,WAAA;AAAA,MACN,OAAA,EAAS,OAAO,IAAiB,KAAA;AAC/B,QAAI,IAAA,CAAC,IAAK,CAAA,KAAA,CAAM,UAAU,CAAA;AAAG,UAAA,OAAA;AAG7B,QAAO,OAAA,EAAE,IAAM,EAAA,IAAA,EAAM,OAAQ,EAAA,CAAA;AAAA,OAC/B;AAAA,KACF;AAAA,IACA;AAAA,MACE,IAAM,EAAA,WAAA;AAAA,MACN,SAAS,YAAY;AACnB,QAAA,OAAA;AAAA,OACF;AAAA,KACF;AAAA,GACF,CAAA;AACF,EAAA;AAIO,MAAM,MAAS,GAAA,CACpB,GAEA,EAAA,GAAA,EACA,OACG,KAAA;AAEH,EAAA,MAAM,UAAa,GAAA,IAAI,GAAI,CAAA,OAAA,CAAQ,MAAQ,EAAA,QAAA,EAAc,IAAA,EAAE,CAAE,CAAA,QAAA,CAAS,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA,CAAA;AAEvF,EAAA,MAAM,aAAgB,GAAA,OAAA,CAAQ,OAAU,GAAA,GAAA,CAAI,GAAI,CAAK,IAAA,EAAA,CAAA;AAErD,EAAA,MAAM,QAAW,GAAA,CAAA,EAAG,UAAU,CAAA,EAAG,aAAa,CAAA,CAAA,CAAA;AAG9C,EAAA,MAAM,WAAW,IAAI,GAAA,CAAI,UAAU,OAAQ,CAAA,MAAA,EAAQ,UAAU,CAAA,CAAA;AAG7D,EAAA,GAAA,EAAK,SAAU,CAAA,mBAAA,EAAqB,QAAS,CAAA,QAAA,EAAU,CAAA,CAAA;AACzD;;;;"}
1
+ {"version":3,"file":"resolver.mjs","sources":["../../../../../../packages/utils/src/vue/resolver.ts"],"sourcesContent":["import type { ComponentResolver } from 'unplugin-vue-components';\nimport type { ProxyOptions } from 'vite';\nimport * as http from 'node:http';\n\nexport function kebabCase(key: string) {\n const result = key.replace(/([A-Z])/g, ' $1').trim();\n return result.split(' ').join('-').toLowerCase();\n}\nexport const GiimeResolver = (): ComponentResolver[] => {\n return [\n {\n type: 'component',\n resolve: async (name: string) => {\n if (!name.match(/^Gm[A-Z]/)) return;\n // const partialName = kebabCase(name.slice(2));\n // where `componentName` is always CapitalCase\n return { name, from: 'giime' };\n },\n },\n {\n type: 'directive',\n resolve: async () => {\n return;\n },\n },\n ];\n};\nexport interface GiimeBypassOptions {\n showLog?: boolean;\n}\n\n/**\n * webpack-dev-server style bypass function\n */\nexport const bypass = (\n req: http.IncomingMessage,\n /** undefined for WebSocket upgrade requests */\n res: http.ServerResponse | undefined,\n options: ProxyOptions,\n giimeOptions?: GiimeBypassOptions,\n) => {\n // 获取请求路径,处理后缀斜杠的问题\n const targetPath = new URL(options.target?.toString() ?? '').pathname.replace(/\\/$/, '');\n // 使用 rewrite 函数处理请求路径,并处理后缀斜杠的问题\n const rewrittenPath = options.rewrite?.(req.url!) ?? '';\n // 合并路径\n const fullPath = `${targetPath}${rewrittenPath}`;\n\n // 构造完整的代理 URL\n const proxyUrl = new URL(fullPath, options.target?.toString());\n\n if (giimeOptions?.showLog) {\n console.log('proxyUrl', proxyUrl.toString());\n }\n // 设置响应头\n res?.setHeader('x-giime-proxy-url', proxyUrl.toString());\n};\n"],"names":[],"mappings":"AAIO,SAAS,UAAU,GAAa,EAAA;AACrC,EAAA,MAAM,SAAS,GAAI,CAAA,OAAA,CAAQ,UAAY,EAAA,KAAK,EAAE,IAAK,EAAA,CAAA;AACnD,EAAA,OAAO,OAAO,KAAM,CAAA,GAAG,EAAE,IAAK,CAAA,GAAG,EAAE,WAAY,EAAA,CAAA;AACjD,CAAA;AACO,MAAM,gBAAgB,MAA2B;AACtD,EAAO,OAAA;AAAA,IACL;AAAA,MACE,IAAM,EAAA,WAAA;AAAA,MACN,OAAA,EAAS,OAAO,IAAiB,KAAA;AAC/B,QAAI,IAAA,CAAC,IAAK,CAAA,KAAA,CAAM,UAAU,CAAA;AAAG,UAAA,OAAA;AAG7B,QAAO,OAAA,EAAE,IAAM,EAAA,IAAA,EAAM,OAAQ,EAAA,CAAA;AAAA,OAC/B;AAAA,KACF;AAAA,IACA;AAAA,MACE,IAAM,EAAA,WAAA;AAAA,MACN,SAAS,YAAY;AACnB,QAAA,OAAA;AAAA,OACF;AAAA,KACF;AAAA,GACF,CAAA;AACF,EAAA;AAQO,MAAM,MAAS,GAAA,CACpB,GAEA,EAAA,GAAA,EACA,SACA,YACG,KAAA;AAEH,EAAA,MAAM,UAAa,GAAA,IAAI,GAAI,CAAA,OAAA,CAAQ,MAAQ,EAAA,QAAA,EAAc,IAAA,EAAE,CAAE,CAAA,QAAA,CAAS,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA,CAAA;AAEvF,EAAA,MAAM,aAAgB,GAAA,OAAA,CAAQ,OAAU,GAAA,GAAA,CAAI,GAAI,CAAK,IAAA,EAAA,CAAA;AAErD,EAAA,MAAM,QAAW,GAAA,CAAA,EAAG,UAAU,CAAA,EAAG,aAAa,CAAA,CAAA,CAAA;AAG9C,EAAA,MAAM,WAAW,IAAI,GAAA,CAAI,UAAU,OAAQ,CAAA,MAAA,EAAQ,UAAU,CAAA,CAAA;AAE7D,EAAA,IAAI,cAAc,OAAS,EAAA;AACzB,IAAA,OAAA,CAAQ,GAAI,CAAA,UAAA,EAAY,QAAS,CAAA,QAAA,EAAU,CAAA,CAAA;AAAA,GAC7C;AAEA,EAAA,GAAA,EAAK,SAAU,CAAA,mBAAA,EAAqB,QAAS,CAAA,QAAA,EAAU,CAAA,CAAA;AACzD;;;;"}
@@ -8,8 +8,9 @@ var resetAxiosBaseUrl = require('../utils/resetAxiosBaseUrl.js');
8
8
 
9
9
  const viteModes = [
10
10
  { mode: "development", url: "/gstore-api" },
11
+ { mode: "test", url: "http://192.168.4.125:10086/gstore/" },
11
12
  { mode: "production", url: "https://thirdshop-gstore.giikin.com" },
12
- { mode: "test", url: "http://192.168.4.125:10086/gstore/" }
13
+ { mode: "giiktok.production", url: "https://manage.kingkungmeta.com/third/gstore/" }
13
14
  ];
14
15
  const baseUrlEnvKey = "VITE_GIIME_GSTORE_API";
15
16
  const { service } = createAxios.createAxios({