fast-element-plus 1.0.0-alpha.9 → 1.0.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.
- package/dist/index.full.js +3180 -4581
- package/dist/index.full.js.map +1 -1
- package/dist/index.full.min.js +5 -5
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +5 -5
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +3180 -4581
- package/dist/index.full.mjs.map +1 -1
- package/dist/styles/index.css +2 -2
- package/es/components/avatar/index.d.ts +1 -1
- package/es/components/avatar/index.mjs.map +1 -1
- package/es/components/avatar/src/avatar.d.ts +18 -102
- package/es/components/avatar/src/avatar.mjs +1 -2
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/button/index.d.ts +1 -1
- package/es/components/button/index.mjs.map +1 -1
- package/es/components/button/src/button.d.ts +35 -180
- package/es/components/button/src/button.mjs +14 -4
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/carNumber/src/carNumber.d.ts +58 -194
- package/es/components/contextMenu/src/contextMenu.mjs +1 -1
- package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
- package/es/components/dialog/src/dialog.d.ts +45 -297
- package/es/components/drawer/src/drawer.d.ts +72 -450
- package/es/components/form/src/form.d.ts +28 -133
- package/es/components/form/src/formItem.d.ts +32 -137
- package/es/components/iconSelector/src/iconSelector.mjs +2 -2
- package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
- package/es/components/image/src/image.d.ts +43 -253
- package/es/components/select/src/select.d.ts +25 -81
- package/es/components/select/src/select.mjs +1 -0
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/selectPage/src/selectPage.d.ts +19 -61
- package/es/components/selectV2/src/selectV2.d.ts +25 -81
- package/es/components/selectV2/src/selectV2.mjs +1 -0
- package/es/components/selectV2/src/selectV2.mjs.map +1 -1
- package/es/components/table/src/table.d.ts +5 -12
- package/es/components/table/src/table.mjs +4 -6
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.state.d.ts +1 -1
- package/es/components/table/src/table.type.d.ts +4 -1
- package/es/components/table/src/table.type.mjs.map +1 -1
- package/es/components/table/src/tableColumn.d.ts +1 -1
- package/es/components/table/src/tableColumn.mjs +7 -7
- package/es/components/table/src/tableColumn.mjs.map +1 -1
- package/es/components/table/src/tableSearchForm.d.ts +6 -4
- package/es/components/table/src/tableSearchForm.mjs +2 -2
- package/es/components/table/src/tableSearchForm.mjs.map +1 -1
- package/es/components/table/src/useTable.mjs +3 -3
- package/es/components/table/src/useTable.mjs.map +1 -1
- package/es/components/tree/src/tree.d.ts +23 -653
- package/es/components/tree/src/tree.mjs +1 -1
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/tree/src/tree.type.d.ts +1 -1
- package/es/components/treeSelect/src/treeSelect.d.ts +20 -62
- package/es/components/treeSelect/src/treeSelect.mjs +1 -0
- package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/es/components/upload/src/upload.d.ts +298 -460
- package/es/components/upload/src/useUpload.mjs +2 -2
- package/es/components/upload/src/useUpload.mjs.map +1 -1
- package/es/components/uploadImage/src/uploadImage.d.ts +295 -394
- package/es/components/uploadImage/src/uploadImage.mjs +1 -1
- package/es/components/uploadImage/src/uploadImage.mjs.map +1 -1
- package/es/components/uploadImages/src/uploadImages.d.ts +300 -420
- package/es/components/uploadImages/src/uploadImages.mjs +4 -4
- package/es/components/uploadImages/src/uploadImages.mjs.map +1 -1
- package/es/constants/regex.mjs +13 -13
- package/es/constants/regex.mjs.map +1 -1
- package/es/directive.d.ts +1 -1
- package/es/directives/click-copy/index.d.ts +1 -1
- package/es/directives/click-debounce/index.d.ts +1 -1
- package/es/directives/click-draggable/index.d.ts +1 -1
- package/es/directives/click-icon-copy/index.d.ts +1 -1
- package/es/directives/click-longpress/index.d.ts +1 -1
- package/es/directives/click-throttle/index.d.ts +1 -1
- package/es/element-plus.mjs +1 -1
- package/es/element-plus.mjs.map +1 -1
- package/es/make-installer.mjs +4 -0
- package/es/make-installer.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/avatar/index.d.ts +1 -1
- package/lib/components/avatar/index.js.map +1 -1
- package/lib/components/avatar/src/avatar.d.ts +18 -102
- package/lib/components/avatar/src/avatar.js +1 -1
- package/lib/components/avatar/src/avatar.js.map +1 -1
- package/lib/components/button/index.d.ts +1 -1
- package/lib/components/button/index.js.map +1 -1
- package/lib/components/button/src/button.d.ts +35 -180
- package/lib/components/button/src/button.js +1 -1
- package/lib/components/button/src/button.js.map +1 -1
- package/lib/components/carNumber/src/carNumber.d.ts +58 -194
- package/lib/components/contextMenu/src/contextMenu.js +1 -1
- package/lib/components/contextMenu/src/contextMenu.js.map +1 -1
- package/lib/components/dialog/src/dialog.d.ts +45 -297
- package/lib/components/drawer/src/drawer.d.ts +72 -450
- package/lib/components/form/src/form.d.ts +28 -133
- package/lib/components/form/src/formItem.d.ts +32 -137
- package/lib/components/image/src/image.d.ts +43 -253
- package/lib/components/select/src/select.d.ts +25 -81
- package/lib/components/select/src/select.js +1 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/selectPage/src/selectPage.d.ts +19 -61
- package/lib/components/selectV2/src/selectV2.d.ts +25 -81
- package/lib/components/selectV2/src/selectV2.js +1 -1
- package/lib/components/selectV2/src/selectV2.js.map +1 -1
- package/lib/components/table/src/table.d.ts +5 -12
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.state.d.ts +1 -1
- package/lib/components/table/src/table.type.d.ts +4 -1
- package/lib/components/table/src/table.type.js.map +1 -1
- package/lib/components/table/src/tableColumn.d.ts +1 -1
- package/lib/components/table/src/tableColumn.js +1 -1
- package/lib/components/table/src/tableColumn.js.map +1 -1
- package/lib/components/table/src/tableSearchForm.d.ts +6 -4
- package/lib/components/table/src/tableSearchForm.js +1 -1
- package/lib/components/table/src/tableSearchForm.js.map +1 -1
- package/lib/components/table/src/useTable.js +1 -1
- package/lib/components/table/src/useTable.js.map +1 -1
- package/lib/components/tree/src/tree.d.ts +23 -653
- package/lib/components/tree/src/tree.js +1 -1
- package/lib/components/tree/src/tree.js.map +1 -1
- package/lib/components/tree/src/tree.type.d.ts +1 -1
- package/lib/components/treeSelect/src/treeSelect.d.ts +20 -62
- package/lib/components/treeSelect/src/treeSelect.js +1 -1
- package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
- package/lib/components/upload/src/upload.d.ts +298 -460
- package/lib/components/upload/src/useUpload.js +1 -1
- package/lib/components/upload/src/useUpload.js.map +1 -1
- package/lib/components/uploadImage/src/uploadImage.d.ts +295 -394
- package/lib/components/uploadImage/src/uploadImage.js +1 -1
- package/lib/components/uploadImage/src/uploadImage.js.map +1 -1
- package/lib/components/uploadImages/src/uploadImages.d.ts +300 -420
- package/lib/components/uploadImages/src/uploadImages.js +1 -1
- package/lib/components/uploadImages/src/uploadImages.js.map +1 -1
- package/lib/constants/regex.js +1 -1
- package/lib/constants/regex.js.map +1 -1
- package/lib/directive.d.ts +1 -1
- package/lib/directives/click-copy/index.d.ts +1 -1
- package/lib/directives/click-debounce/index.d.ts +1 -1
- package/lib/directives/click-draggable/index.d.ts +1 -1
- package/lib/directives/click-icon-copy/index.d.ts +1 -1
- package/lib/directives/click-longpress/index.d.ts +1 -1
- package/lib/directives/click-throttle/index.d.ts +1 -1
- package/lib/element-plus.js +1 -1
- package/lib/element-plus.js.map +1 -1
- package/lib/make-installer.js +1 -1
- package/lib/make-installer.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +8 -8
- package/styles/components/contextMenu.scss +2 -2
|
@@ -14,7 +14,7 @@ const useUpload = (componentName, fileTypeName, props, emit, data) => {
|
|
|
14
14
|
const maxSizeKB = new Decimal(isNumber(data?.maxSize) ? data?.maxSize : Number(data?.maxSize));
|
|
15
15
|
const maxSizeMB = maxSizeKB.div(mbNum);
|
|
16
16
|
onMounted(() => {
|
|
17
|
-
if (!data.uploadApi && !data.uploadUrl) {
|
|
17
|
+
if (props.autoUpload && !data.uploadApi && !data.uploadUrl) {
|
|
18
18
|
consoleWarn(componentName, "['uploadApi', 'uploadUrl'] 属性必须二选一。");
|
|
19
19
|
}
|
|
20
20
|
});
|
|
@@ -43,7 +43,7 @@ const useUpload = (componentName, fileTypeName, props, emit, data) => {
|
|
|
43
43
|
if (props.data) {
|
|
44
44
|
propsData = uploadUtil.getPropsData(options.file, props.data);
|
|
45
45
|
}
|
|
46
|
-
if (!data?.
|
|
46
|
+
if (!data?.uploadApi && !data?.uploadUrl) {
|
|
47
47
|
ElMessage.error(`上传${fileTypeName}Api或地址不能为空`);
|
|
48
48
|
consoleError(componentName, `上传${fileTypeName}接口 “uploadApi” 或地址 “uploadUrl” 不能为空`);
|
|
49
49
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpload.mjs","sources":["../../../../../packages/components/upload/src/useUpload.ts"],"sourcesContent":["import { inject, onMounted, ref, watch } from \"vue\";\nimport { ElMessage, ElNotification, formContextKey, formItemContextKey, genFileId } from \"element-plus\";\nimport { consoleError, consoleWarn } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { Decimal } from \"decimal.js\";\nimport { isArray, isNumber, isString } from \"lodash-unified\";\nimport { uploadUtil } from \"../utils/upload\";\nimport type { UploadFile, UploadFiles, UploadProps, UploadRawFile, UploadRequestOptions, UploadUserFile } from \"element-plus\";\n\nexport const useUpload = <T extends string | string[]>(\n\tcomponentName: string,\n\tfileTypeName: string,\n\tprops: UploadProps & {\n\t\tmodelValue: T;\n\t},\n\temit: ((event: \"update:fileList\", value: UploadUserFile[]) => void) &\n\t\t((event: \"update:modelValue\", value: T) => void) &\n\t\t((event: \"change\", value: T) => void),\n\tdata?: {\n\t\tmaxSize?: string | number;\n\t\tuploadApi?: (formData: FormData) => Promise<string>;\n\t\tuploadUrl?: string;\n\t}\n\t// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\n) => {\n\tconst fileList = useVModel(props, \"fileList\", emit, { passive: true });\n\n\tconst loading = ref(false);\n\n\t// 获取 el-form 组件上下文\n\tconst formContext = inject(formContextKey, undefined);\n\t// 获取 el-form-item 组件上下文\n\tconst formItemContext = inject(formItemContextKey, undefined);\n\n\tconst mbNum = new Decimal(1024);\n\tconst maxSizeKB = new Decimal(isNumber(data?.maxSize) ? data?.maxSize : Number(data?.maxSize));\n\tconst maxSizeMB = maxSizeKB.div(mbNum);\n\n\tonMounted(() => {\n\t\tif (!data.uploadApi && !data.uploadUrl) {\n\t\t\tconsoleWarn(componentName, \"['uploadApi', 'uploadUrl'] 属性必须二选一。\");\n\t\t}\n\t});\n\n\tconst handleValue = (): void => {\n\t\tif (fileList.value.length > 0) {\n\t\t\tif (isString(props.modelValue)) {\n\t\t\t\temit(\"update:modelValue\", fileList.value[0].url as T);\n\t\t\t\temit(\"change\", fileList.value[0].url as T);\n\t\t\t} else {\n\t\t\t\tif (props.multiple) {\n\t\t\t\t\tconst value = fileList.value.map((m) => m.url);\n\t\t\t\t\temit(\"update:modelValue\", value as T);\n\t\t\t\t\temit(\"change\", value as T);\n\t\t\t\t} else {\n\t\t\t\t\temit(\"update:modelValue\", fileList.value[0].url as T);\n\t\t\t\t\temit(\"change\", fileList.value[0].url as T);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"change\", null);\n\t\t}\n\t};\n\n\tconst handleHttpRequest = async (options: UploadRequestOptions): Promise<void> => {\n\t\tlet propsData;\n\t\tif (props.data) {\n\t\t\tpropsData = uploadUtil.getPropsData(options.file, props.data);\n\t\t}\n\t\tif (!data?.
|
|
1
|
+
{"version":3,"file":"useUpload.mjs","sources":["../../../../../packages/components/upload/src/useUpload.ts"],"sourcesContent":["import { inject, onMounted, ref, watch } from \"vue\";\nimport { ElMessage, ElNotification, formContextKey, formItemContextKey, genFileId } from \"element-plus\";\nimport { consoleError, consoleWarn } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { Decimal } from \"decimal.js\";\nimport { isArray, isNumber, isString } from \"lodash-unified\";\nimport { uploadUtil } from \"../utils/upload\";\nimport type { UploadFile, UploadFiles, UploadProps, UploadRawFile, UploadRequestOptions, UploadUserFile } from \"element-plus\";\n\nexport const useUpload = <T extends string | string[]>(\n\tcomponentName: string,\n\tfileTypeName: string,\n\tprops: UploadProps & {\n\t\tmodelValue: T;\n\t},\n\temit: ((event: \"update:fileList\", value: UploadUserFile[]) => void) &\n\t\t((event: \"update:modelValue\", value: T) => void) &\n\t\t((event: \"change\", value: T) => void),\n\tdata?: {\n\t\tmaxSize?: string | number;\n\t\tuploadApi?: (formData: FormData) => Promise<string>;\n\t\tuploadUrl?: string;\n\t}\n\t// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\n) => {\n\tconst fileList = useVModel(props, \"fileList\", emit, { passive: true });\n\n\tconst loading = ref(false);\n\n\t// 获取 el-form 组件上下文\n\tconst formContext = inject(formContextKey, undefined);\n\t// 获取 el-form-item 组件上下文\n\tconst formItemContext = inject(formItemContextKey, undefined);\n\n\tconst mbNum = new Decimal(1024);\n\tconst maxSizeKB = new Decimal(isNumber(data?.maxSize) ? data?.maxSize : Number(data?.maxSize));\n\tconst maxSizeMB = maxSizeKB.div(mbNum);\n\n\tonMounted(() => {\n\t\tif (props.autoUpload && !data.uploadApi && !data.uploadUrl) {\n\t\t\tconsoleWarn(componentName, \"['uploadApi', 'uploadUrl'] 属性必须二选一。\");\n\t\t}\n\t});\n\n\tconst handleValue = (): void => {\n\t\tif (fileList.value.length > 0) {\n\t\t\tif (isString(props.modelValue)) {\n\t\t\t\temit(\"update:modelValue\", fileList.value[0].url as T);\n\t\t\t\temit(\"change\", fileList.value[0].url as T);\n\t\t\t} else {\n\t\t\t\tif (props.multiple) {\n\t\t\t\t\tconst value = fileList.value.map((m) => m.url);\n\t\t\t\t\temit(\"update:modelValue\", value as T);\n\t\t\t\t\temit(\"change\", value as T);\n\t\t\t\t} else {\n\t\t\t\t\temit(\"update:modelValue\", fileList.value[0].url as T);\n\t\t\t\t\temit(\"change\", fileList.value[0].url as T);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"change\", null);\n\t\t}\n\t};\n\n\tconst handleHttpRequest = async (options: UploadRequestOptions): Promise<void> => {\n\t\tlet propsData;\n\t\tif (props.data) {\n\t\t\tpropsData = uploadUtil.getPropsData(options.file, props.data);\n\t\t}\n\t\tif (!data?.uploadApi && !data?.uploadUrl) {\n\t\t\tElMessage.error(`上传${fileTypeName}Api或地址不能为空`);\n\t\t\tconsoleError(componentName, `上传${fileTypeName}接口 “uploadApi” 或地址 “uploadUrl” 不能为空`);\n\t\t\treturn;\n\t\t}\n\t\tloading.value = true;\n\t\ttry {\n\t\t\tlet fileUrl: string;\n\t\t\tif (data.uploadApi) {\n\t\t\t\tfileUrl = await uploadUtil.uploadFileByApi(data.uploadApi, options.file, options.filename, propsData);\n\t\t\t} else {\n\t\t\t\tfileUrl = await uploadUtil.uploadFile(data.uploadUrl, options.file, options.filename, propsData);\n\t\t\t}\n\t\t\toptions.onSuccess(fileUrl);\n\t\t} finally {\n\t\t\tloading.value = false;\n\t\t}\n\t};\n\n\tconst handleOnSuccess = (fileUrl: string, uploadFile: UploadFile, uploadFiles: UploadFiles): void => {\n\t\tif (!fileUrl) return;\n\t\tif (!props.multiple && uploadFiles.length > 1) {\n\t\t\tuploadFiles.shift();\n\t\t}\n\t\tuploadFile.url = fileUrl;\n\t\thandleValue();\n\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop as string]);\n\t\tElMessage.success(\"上传成功\");\n\t\tprops.onSuccess && props.onSuccess(fileUrl, uploadFile, uploadFiles);\n\t};\n\n\tconst handleOnError = (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles): void => {\n\t\tElNotification({\n\t\t\tmessage: `【${uploadFile.name}】${fileTypeName}上传失败,请您重新上传`,\n\t\t\ttype: \"error\",\n\t\t});\n\t\tprops.onError && props.onError(error, uploadFile, uploadFiles);\n\t};\n\n\tconst handleOnExceed = (files: File[], uploadFiles: UploadUserFile[]): void => {\n\t\tElMessage.warning(`最多只能上传 ${props.limit} 个${fileTypeName},请移除后再进行上传`);\n\t\tprops.onExceed && props.onExceed(files, uploadFiles);\n\t};\n\n\tconst handleOnUpload = (file: UploadFile | UploadRawFile): boolean => {\n\t\tconst fileSizeKB = new Decimal(file.size).div(mbNum);\n\n\t\tif (fileSizeKB.greaterThan(maxSizeKB)) {\n\t\t\tconsoleWarn(componentName, `【${file.name}】${fileTypeName}上传大小不能超过 ${maxSizeMB.toString()}MB`);\n\t\t\tElMessage.warning(`【${file.name}】${fileTypeName}上传大小不能超过 ${maxSizeMB.toString()}MB`);\n\t\t\treturn false;\n\t\t}\n\n\t\tconst fileType = \"type\" in file ? file.type : file.raw.type;\n\n\t\tif (props.accept && props.accept.split(\",\").every((e) => e !== fileType)) {\n\t\t\tconst uploadFileNames = uploadUtil.detectFileType(props.accept);\n\t\t\tconsoleError(componentName, `只允许上传【${uploadFileNames}】格式的${fileTypeName}`);\n\t\t\tElMessage.error(`只允许上传【${uploadFileNames}】格式的${fileTypeName}`);\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\t/**\n\t * 监听 v-model 绑定数据\n\t */\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newValue) => {\n\t\t\tif (newValue) {\n\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\tfileList.value = newValue.map((m) => {\n\t\t\t\t\t\tconst find = fileList.value.find((f) => f.url === m);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tname: \"\",\n\t\t\t\t\t\t\tstatus: \"success\",\n\t\t\t\t\t\t\tuid: find?.uid ?? genFileId(),\n\t\t\t\t\t\t\turl: m,\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst find = fileList.value.find((f) => f.url === newValue);\n\t\t\t\t\tfileList.value = [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"\",\n\t\t\t\t\t\t\tstatus: \"success\",\n\t\t\t\t\t\t\tuid: find?.uid ?? genFileId(),\n\t\t\t\t\t\t\turl: newValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\timmediate: true,\n\t\t}\n\t);\n\n\treturn {\n\t\tfileList,\n\t\tloading,\n\t\tformContext,\n\t\tformItemContext,\n\t\tmaxSizeMB,\n\t\thandleValue,\n\t\thandleHttpRequest,\n\t\thandleOnSuccess,\n\t\thandleOnError,\n\t\thandleOnExceed,\n\t\thandleOnUpload,\n\t};\n};\n"],"names":[],"mappings":"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"}
|