fast-element-plus 2.0.21 → 2.0.22

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 (118) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/component.d.ts +15 -15
  3. package/dist/components/avatar/index.d.ts +3 -3
  4. package/dist/components/avatar/index.mjs.map +1 -1
  5. package/dist/components/button/index.d.ts +3 -3
  6. package/dist/components/button/index.mjs.map +1 -1
  7. package/dist/components/button/src/button.d.ts +1 -1
  8. package/dist/components/carNumber/index.d.ts +1 -1
  9. package/dist/components/carNumber/index.mjs.map +1 -1
  10. package/dist/components/contextMenu/index.d.ts +1 -1
  11. package/dist/components/contextMenu/index.mjs.map +1 -1
  12. package/dist/components/contextMenu/src/contextMenu.type.d.ts +1 -1
  13. package/dist/components/dialog/index.d.ts +3 -3
  14. package/dist/components/dialog/index.mjs.map +1 -1
  15. package/dist/components/dialog/src/dialog.d.ts +3 -3
  16. package/dist/components/drawer/index.d.ts +3 -3
  17. package/dist/components/drawer/index.mjs.map +1 -1
  18. package/dist/components/drawer/src/drawer.d.ts +3 -3
  19. package/dist/components/form/index.d.ts +4 -4
  20. package/dist/components/form/index.mjs.map +1 -1
  21. package/dist/components/form/utils/form.d.ts +2 -2
  22. package/dist/components/form/utils/form.mjs +2 -2
  23. package/dist/components/form/utils/form.mjs.map +1 -1
  24. package/dist/components/formItemTip/index.d.ts +2 -2
  25. package/dist/components/formItemTip/index.mjs.map +1 -1
  26. package/dist/components/icon/index.d.ts +2 -2
  27. package/dist/components/icon/index.mjs.map +1 -1
  28. package/dist/components/iconSelector/index.d.ts +1 -1
  29. package/dist/components/iconSelector/index.mjs.map +1 -1
  30. package/dist/components/image/index.d.ts +2 -2
  31. package/dist/components/image/index.mjs.map +1 -1
  32. package/dist/components/image/src/image.d.ts +1 -1
  33. package/dist/components/inputDialogPage/index.d.ts +3 -3
  34. package/dist/components/inputDialogPage/index.mjs.map +1 -1
  35. package/dist/components/layoutGrid/index.d.ts +2 -2
  36. package/dist/components/layoutGrid/index.mjs.map +1 -1
  37. package/dist/components/select/index.d.ts +4 -4
  38. package/dist/components/select/index.mjs.map +1 -1
  39. package/dist/components/select/src/select.d.ts +1 -1
  40. package/dist/components/select/src/select.type.d.ts +2 -2
  41. package/dist/components/selectPage/index.d.ts +3 -3
  42. package/dist/components/selectPage/index.mjs.map +1 -1
  43. package/dist/components/selectPage/src/selectPage.d.ts +1 -1
  44. package/dist/components/selectV2/index.d.ts +3 -3
  45. package/dist/components/selectV2/index.mjs.map +1 -1
  46. package/dist/components/selectV2/src/selectV2.d.ts +1 -1
  47. package/dist/components/table/index.d.ts +4 -4
  48. package/dist/components/table/index.mjs.map +1 -1
  49. package/dist/components/table/src/page.type.d.ts +2 -2
  50. package/dist/components/table/src/table.type.d.ts +5 -5
  51. package/dist/components/table/src/table.type.mjs.map +1 -1
  52. package/dist/components/table/src/tableColumn.d.ts +2 -2
  53. package/dist/components/table/src/tableColumn.mjs.map +1 -1
  54. package/dist/components/table/utils/table.d.ts +18 -15
  55. package/dist/components/table/utils/table.mjs +18 -15
  56. package/dist/components/table/utils/table.mjs.map +1 -1
  57. package/dist/components/tree/index.d.ts +3 -3
  58. package/dist/components/tree/index.mjs.map +1 -1
  59. package/dist/components/tree/src/tree.props.d.ts +2 -2
  60. package/dist/components/tree/src/tree.type.d.ts +2 -2
  61. package/dist/components/treeSelect/index.d.ts +3 -3
  62. package/dist/components/treeSelect/index.mjs.map +1 -1
  63. package/dist/components/treeSelect/src/treeSelect.d.ts +1 -1
  64. package/dist/components/upload/index.d.ts +3 -3
  65. package/dist/components/upload/index.mjs.map +1 -1
  66. package/dist/components/upload/utils/upload.d.ts +15 -10
  67. package/dist/components/upload/utils/upload.mjs +15 -10
  68. package/dist/components/upload/utils/upload.mjs.map +1 -1
  69. package/dist/components/uploadImage/index.d.ts +3 -3
  70. package/dist/components/uploadImage/index.mjs.map +1 -1
  71. package/dist/components/uploadImages/index.d.ts +3 -3
  72. package/dist/components/uploadImages/index.mjs.map +1 -1
  73. package/dist/index.global.min.js +4 -4
  74. package/dist/index.global.min.js.map +1 -1
  75. package/dist/internal/props.d.ts +1 -1
  76. package/dist/internal/props.mjs.map +1 -1
  77. package/dist/utils/async/index.d.ts +4 -4
  78. package/dist/utils/async/index.mjs +9 -9
  79. package/dist/utils/async/index.mjs.map +1 -1
  80. package/dist/utils/date/index.d.ts +8 -8
  81. package/dist/utils/date/index.mjs +16 -16
  82. package/dist/utils/date/index.mjs.map +1 -1
  83. package/dist/utils/dom/index.d.ts +1 -1
  84. package/dist/utils/dom/index.mjs +4 -4
  85. package/dist/utils/dom/index.mjs.map +1 -1
  86. package/dist/utils/object/index.d.ts +10 -10
  87. package/dist/utils/object/index.mjs +6 -6
  88. package/dist/utils/object/index.mjs.map +1 -1
  89. package/dist/utils/string/index.d.ts +4 -4
  90. package/dist/utils/string/index.mjs +14 -40
  91. package/dist/utils/string/index.mjs.map +1 -1
  92. package/dist/utils/vue/emits.d.ts +8 -8
  93. package/dist/utils/vue/emits.mjs +7 -7
  94. package/dist/utils/vue/emits.mjs.map +1 -1
  95. package/dist/utils/vue/expose.d.ts +3 -3
  96. package/dist/utils/vue/expose.mjs +3 -3
  97. package/dist/utils/vue/expose.mjs.map +1 -1
  98. package/dist/utils/vue/func.d.ts +2 -2
  99. package/dist/utils/vue/func.mjs +2 -2
  100. package/dist/utils/vue/func.mjs.map +1 -1
  101. package/dist/utils/vue/install.d.ts +9 -9
  102. package/dist/utils/vue/install.mjs +24 -24
  103. package/dist/utils/vue/install.mjs.map +1 -1
  104. package/dist/utils/vue/props.d.ts +4 -4
  105. package/dist/utils/vue/props.mjs +5 -5
  106. package/dist/utils/vue/props.mjs.map +1 -1
  107. package/dist/utils/vue/render.d.ts +1 -1
  108. package/dist/utils/vue/render.mjs +2 -2
  109. package/dist/utils/vue/render.mjs.map +1 -1
  110. package/dist/utils/vue/slots.d.ts +4 -4
  111. package/dist/utils/vue/slots.mjs.map +1 -1
  112. package/dist/utils/vue/with.d.ts +1 -1
  113. package/dist/utils/vue/with.mjs +1 -1
  114. package/dist/utils/vue/with.mjs.map +1 -1
  115. package/dist/version.d.ts +1 -1
  116. package/dist/version.mjs +1 -1
  117. package/dist/version.mjs.map +1 -1
  118. package/package.json +1 -1
@@ -4,17 +4,18 @@
4
4
  */
5
5
  const tableUtil = {
6
6
  /**
7
- * 处理无数据情况
8
- * @param {String} callValue 需要处理的值
7
+ * 将非空数组连接为逗号分隔的文本,空数组返回 null;其他值原样返回。
8
+ * @param callValue - 需要处理的值
9
9
  */
10
10
  formatValue(callValue) {
11
11
  if (Array.isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;
12
12
  return callValue;
13
13
  },
14
14
  /**
15
- * 处理 prop 为多级嵌套的情况(列如: prop:user.name)
16
- * @param {Object} row 当前行数据
17
- * @param {String} prop 当前 prop
15
+ * 按点分隔的属性路径读取行数据,例如 user.name。
16
+ * @param row - 当前行数据
17
+ * @param prop - 当前 prop
18
+ * @returns 目标属性值;中间节点不是对象或属性不存在时返回 undefined。
18
19
  */
19
20
  handleRowAccordingToProp(row, prop) {
20
21
  let value = row;
@@ -25,8 +26,8 @@ const tableUtil = {
25
26
  return value;
26
27
  },
27
28
  /**
28
- * 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop
29
- * @param {String} prop 当前 prop
29
+ * 返回点分隔属性路径的最后一级名称。
30
+ * @param prop - 当前 prop
30
31
  */
31
32
  handleProp(prop) {
32
33
  const propArr = prop.split(".");
@@ -34,11 +35,12 @@ const tableUtil = {
34
35
  return propArr.at(-1) ?? prop;
35
36
  },
36
37
  /**
37
- * 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)
38
- * @param {String} callValue 当前单元格值
39
- * @param {Array} enumData 字典列表
40
- * @param {Array} fieldNames 指定 label && value 的 key 值
41
- * @param {String} type 过滤类型(目前只有 tag)
38
+ * 按值匹配枚举项,并读取指定的标签字段或 Tag 类型。
39
+ * @param callValue - 当前单元格值
40
+ * @param enumData - 字典列表
41
+ * @param fieldNames - 标签与值的字段名
42
+ * @param type - 过滤类型(目前只有 tag)
43
+ * @returns 匹配项的标签;未匹配时返回 null。查询 Tag 类型时默认返回 info。
42
44
  */
43
45
  filterEnum(callValue, enumData, fieldNames, type) {
44
46
  const value = fieldNames?.value ?? "value";
@@ -48,7 +50,7 @@ const tableUtil = {
48
50
  return filterData ? filterData[label] : null;
49
51
  },
50
52
  /**
51
- * 数组动态排序
53
+ * 创建按排序条件依次比较行数据的函数,支持点分隔的属性路径。
52
54
  */
53
55
  arrayDynamicSort(sortList) {
54
56
  return (a, b) => {
@@ -78,7 +80,7 @@ const tableUtil = {
78
80
  };
79
81
  },
80
82
  /**
81
- * 设置枚举
83
+ * 将静态枚举或同步枚举函数的返回值存入映射。
82
84
  */
83
85
  setEnumMap(columnEnum, prop, enumMap) {
84
86
  if (!columnEnum) return;
@@ -86,7 +88,8 @@ const tableUtil = {
86
88
  else if (Array.isArray(columnEnum)) enumMap.set(prop, columnEnum);
87
89
  },
88
90
  /**
89
- * 扁平化 columns
91
+ * 收集叶子列,并补齐列的 show 默认值与枚举映射。
92
+ * @remarks 会修改传入列的 show 属性;嵌套子列不继承本次枚举映射参数。
90
93
  */
91
94
  flatColumns(columns, enumMap) {
92
95
  const flatArr = [];
@@ -1 +1 @@
1
- {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/utils/table.ts"],"sourcesContent":["import type { PagedSortInput } from \"../src/page.type\";\nimport type { DefaultRow } from \"../src/table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType } from \"../src/table.type\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: unknown): unknown {\n\t\t// 如果当前值为数组,使用 / 拼接(根据需求自定义)\n\t\tif (Array.isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\treturn callValue;\n\t},\n\t/**\n\t * 处理 prop 为多级嵌套的情况(列如: prop:user.name)\n\t * @param {Object} row 当前行数据\n\t * @param {String} prop 当前 prop\n\t */\n\thandleRowAccordingToProp(row: DefaultRow, prop: string): unknown {\n\t\tlet value: unknown = row;\n\t\tfor (const item of prop.split(\".\")) {\n\t\t\tif (typeof value !== \"object\" || value === null) return undefined;\n\t\t\tvalue = (value as Record<string, unknown>)[item];\n\t\t}\n\t\treturn value;\n\t},\n\t/**\n\t * 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop\n\t * @param {String} prop 当前 prop\n\t */\n\thandleProp(prop: string): string {\n\t\tconst propArr = prop.split(\".\");\n\t\tif (propArr.length === 1) return prop;\n\t\treturn propArr.at(-1) ?? prop;\n\t},\n\t/**\n\t * 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)\n\t * @param {String} callValue 当前单元格值\n\t * @param {Array} enumData 字典列表\n\t * @param {Array} fieldNames 指定 label && value 的 key 值\n\t * @param {String} type 过滤类型(目前只有 tag)\n\t */\n\tfilterEnum(callValue: unknown, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): unknown {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tconst filterData = enumData.find((item) => item[value] === callValue);\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 数组动态排序\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: DefaultRow, b: DefaultRow) => number {\n\t\treturn (a, b) => {\n\t\t\tif (sortList.length > 0) {\n\t\t\t\tfor (const condition of sortList) {\n\t\t\t\t\tconst property = condition.enField;\n\t\t\t\t\tconst order = condition.mode;\n\t\t\t\t\tif (!property) continue;\n\n\t\t\t\t\tconst aValue = this.handleRowAccordingToProp(a, property);\n\t\t\t\t\tconst bValue = this.handleRowAccordingToProp(b, property);\n\n\t\t\t\t\tif (typeof aValue === \"string\" && typeof bValue === \"string\") {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tconst comparison = aValue.localeCompare(bValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tconst comparison = bValue.localeCompare(aValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t};\n\t},\n\t/**\n\t * 设置枚举\n\t */\n\tsetEnumMap(columnEnum: FaTableEnumColumnType, prop: string, enumMap: Map<string, FaTableEnumColumnCtx[]>): void {\n\t\tif (!columnEnum) return;\n\t\tif (typeof columnEnum === \"function\") {\n\t\t\tenumMap.set(prop, columnEnum());\n\t\t} else if (Array.isArray(columnEnum)) {\n\t\t\tenumMap.set(prop, columnEnum);\n\t\t}\n\t},\n\t/**\n\t * 扁平化 columns\n\t */\n\tflatColumns(columns: FaTableColumnCtx[], enumMap?: Map<string, FaTableEnumColumnCtx[]>): FaTableColumnCtx[] {\n\t\tconst flatArr: FaTableColumnCtx[] = [];\n\t\tcolumns.forEach((col) => {\n\t\t\tif (col._children?.length) {\n\t\t\t\tflatArr.push(...this.flatColumns(col._children));\n\t\t\t}\n\n\t\t\tflatArr.push(col);\n\n\t\t\t// 给每一项 column 添加 show && filterEnum 默认属性\n\t\t\tcol.show ??= true;\n\t\t\tlet enumKey = col.prop ?? col.search?.key;\n\n\t\t\tif (col.enum && typeof col.enum === \"string\") {\n\t\t\t\tenumKey = col.enum;\n\t\t\t}\n\n\t\t\t// 设置 enumMap\n\t\t\tif (col.enum && enumKey && enumMap) this.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"mappings":";;;;AAOA,MAAa,YAAY;;;;;CAKxB,YAAY,WAA6B;EAExC,IAAI,MAAM,QAAQ,SAAS,GAAG,OAAO,UAAU,SAAS,UAAU,KAAK,KAAK,IAAI;EAChF,OAAO;CACR;;;;;;CAMA,yBAAyB,KAAiB,MAAuB;EAChE,IAAI,QAAiB;EACrB,KAAK,MAAM,QAAQ,KAAK,MAAM,GAAG,GAAG;GACnC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO,KAAA;GACxD,QAAS,MAAkC;EAC5C;EACA,OAAO;CACR;;;;;CAKA,WAAW,MAAsB;EAChC,MAAM,UAAU,KAAK,MAAM,GAAG;EAC9B,IAAI,QAAQ,WAAW,GAAG,OAAO;EACjC,OAAO,QAAQ,GAAG,EAAE,KAAK;CAC1B;;;;;;;;CAQA,WAAW,WAAoB,UAAkC,YAA+C,MAAuB;EACtI,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,aAAa,SAAS,MAAM,SAAS,KAAK,WAAW,SAAS;EACpE,IAAI,SAAS,OACZ,OAAO,YAAY,QAAQ;EAE5B,OAAO,aAAa,WAAW,SAAS;CACzC;;;;CAIA,iBAAiB,UAAsE;EACtF,QAAQ,GAAG,MAAM;GAChB,IAAI,SAAS,SAAS,GACrB,KAAK,MAAM,aAAa,UAAU;IACjC,MAAM,WAAW,UAAU;IAC3B,MAAM,QAAQ,UAAU;IACxB,IAAI,CAAC,UAAU;IAEf,MAAM,SAAS,KAAK,yBAAyB,GAAG,QAAQ;IACxD,MAAM,SAAS,KAAK,yBAAyB,GAAG,QAAQ;IAExD,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,UAAU;KAC7D,IAAI,UAAU,aAAa;MAC1B,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET,OAAO,IAAI,UAAU,cAAc;MAClC,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET;IACD,OACC,IAAI,UAAU,aAAa;KAC1B,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD,OAAO,IAAI,UAAU,cAAc;KAClC,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD;GAEF;GAGD,OAAO;EACR;CACD;;;;CAIA,WAAW,YAAmC,MAAc,SAAoD;EAC/G,IAAI,CAAC,YAAY;EACjB,IAAI,OAAO,eAAe,YACzB,QAAQ,IAAI,MAAM,WAAW,CAAC;OACxB,IAAI,MAAM,QAAQ,UAAU,GAClC,QAAQ,IAAI,MAAM,UAAU;CAE9B;;;;CAIA,YAAY,SAA6B,SAAmE;EAC3G,MAAM,UAA8B,CAAC;EACrC,QAAQ,SAAS,QAAQ;GACxB,IAAI,IAAI,WAAW,QAClB,QAAQ,KAAK,GAAG,KAAK,YAAY,IAAI,SAAS,CAAC;GAGhD,QAAQ,KAAK,GAAG;GAGhB,IAAI,SAAS;GACb,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ;GAEtC,IAAI,IAAI,QAAQ,OAAO,IAAI,SAAS,UACnC,UAAU,IAAI;GAIf,IAAI,IAAI,QAAQ,WAAW,SAAS,KAAK,WAAW,IAAI,MAAM,SAAS,OAAO;EAC/E,CAAC;EACD,OAAO,QAAQ,QAAQ,SAAS,CAAC,KAAK,WAAW,MAAM;CACxD;AACD"}
1
+ {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/utils/table.ts"],"sourcesContent":["import type { PagedSortInput } from \"../src/page.type\";\nimport type { DefaultRow } from \"../src/table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType } from \"../src/table.type\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * 将非空数组连接为逗号分隔的文本,空数组返回 null;其他值原样返回。\n\t * @param callValue - 需要处理的值\n\t */\n\tformatValue(callValue: unknown): unknown {\n\t\tif (Array.isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\treturn callValue;\n\t},\n\t/**\n\t * 按点分隔的属性路径读取行数据,例如 user.name。\n\t * @param row - 当前行数据\n\t * @param prop - 当前 prop\n\t * @returns 目标属性值;中间节点不是对象或属性不存在时返回 undefined。\n\t */\n\thandleRowAccordingToProp(row: DefaultRow, prop: string): unknown {\n\t\tlet value: unknown = row;\n\t\tfor (const item of prop.split(\".\")) {\n\t\t\tif (typeof value !== \"object\" || value === null) return undefined;\n\t\t\tvalue = (value as Record<string, unknown>)[item];\n\t\t}\n\t\treturn value;\n\t},\n\t/**\n\t * 返回点分隔属性路径的最后一级名称。\n\t * @param prop - 当前 prop\n\t */\n\thandleProp(prop: string): string {\n\t\tconst propArr = prop.split(\".\");\n\t\tif (propArr.length === 1) return prop;\n\t\treturn propArr.at(-1) ?? prop;\n\t},\n\t/**\n\t * 按值匹配枚举项,并读取指定的标签字段或 Tag 类型。\n\t * @param callValue - 当前单元格值\n\t * @param enumData - 字典列表\n\t * @param fieldNames - 标签与值的字段名\n\t * @param type - 过滤类型(目前只有 tag)\n\t * @returns 匹配项的标签;未匹配时返回 null。查询 Tag 类型时默认返回 info。\n\t */\n\tfilterEnum(callValue: unknown, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): unknown {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tconst filterData = enumData.find((item) => item[value] === callValue);\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 创建按排序条件依次比较行数据的函数,支持点分隔的属性路径。\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: DefaultRow, b: DefaultRow) => number {\n\t\treturn (a, b) => {\n\t\t\tif (sortList.length > 0) {\n\t\t\t\tfor (const condition of sortList) {\n\t\t\t\t\tconst property = condition.enField;\n\t\t\t\t\tconst order = condition.mode;\n\t\t\t\t\tif (!property) continue;\n\n\t\t\t\t\tconst aValue = this.handleRowAccordingToProp(a, property);\n\t\t\t\t\tconst bValue = this.handleRowAccordingToProp(b, property);\n\n\t\t\t\t\tif (typeof aValue === \"string\" && typeof bValue === \"string\") {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tconst comparison = aValue.localeCompare(bValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tconst comparison = bValue.localeCompare(aValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t};\n\t},\n\t/**\n\t * 将静态枚举或同步枚举函数的返回值存入映射。\n\t */\n\tsetEnumMap(columnEnum: FaTableEnumColumnType, prop: string, enumMap: Map<string, FaTableEnumColumnCtx[]>): void {\n\t\tif (!columnEnum) return;\n\t\tif (typeof columnEnum === \"function\") {\n\t\t\tenumMap.set(prop, columnEnum());\n\t\t} else if (Array.isArray(columnEnum)) {\n\t\t\tenumMap.set(prop, columnEnum);\n\t\t}\n\t},\n\t/**\n\t * 收集叶子列,并补齐列的 show 默认值与枚举映射。\n\t * @remarks 会修改传入列的 show 属性;嵌套子列不继承本次枚举映射参数。\n\t */\n\tflatColumns(columns: FaTableColumnCtx[], enumMap?: Map<string, FaTableEnumColumnCtx[]>): FaTableColumnCtx[] {\n\t\tconst flatArr: FaTableColumnCtx[] = [];\n\t\tcolumns.forEach((col) => {\n\t\t\tif (col._children?.length) {\n\t\t\t\tflatArr.push(...this.flatColumns(col._children));\n\t\t\t}\n\n\t\t\tflatArr.push(col);\n\n\t\t\t// 给每一项 column 添加 show && filterEnum 默认属性\n\t\t\tcol.show ??= true;\n\t\t\tlet enumKey = col.prop ?? col.search?.key;\n\n\t\t\tif (col.enum && typeof col.enum === \"string\") {\n\t\t\t\tenumKey = col.enum;\n\t\t\t}\n\n\t\t\t// 设置 enumMap\n\t\t\tif (col.enum && enumKey && enumMap) this.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"mappings":";;;;AAOA,MAAa,YAAY;;;;;CAKxB,YAAY,WAA6B;EACxC,IAAI,MAAM,QAAQ,SAAS,GAAG,OAAO,UAAU,SAAS,UAAU,KAAK,KAAK,IAAI;EAChF,OAAO;CACR;;;;;;;CAOA,yBAAyB,KAAiB,MAAuB;EAChE,IAAI,QAAiB;EACrB,KAAK,MAAM,QAAQ,KAAK,MAAM,GAAG,GAAG;GACnC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO,KAAA;GACxD,QAAS,MAAkC;EAC5C;EACA,OAAO;CACR;;;;;CAKA,WAAW,MAAsB;EAChC,MAAM,UAAU,KAAK,MAAM,GAAG;EAC9B,IAAI,QAAQ,WAAW,GAAG,OAAO;EACjC,OAAO,QAAQ,GAAG,EAAE,KAAK;CAC1B;;;;;;;;;CASA,WAAW,WAAoB,UAAkC,YAA+C,MAAuB;EACtI,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,aAAa,SAAS,MAAM,SAAS,KAAK,WAAW,SAAS;EACpE,IAAI,SAAS,OACZ,OAAO,YAAY,QAAQ;EAE5B,OAAO,aAAa,WAAW,SAAS;CACzC;;;;CAIA,iBAAiB,UAAsE;EACtF,QAAQ,GAAG,MAAM;GAChB,IAAI,SAAS,SAAS,GACrB,KAAK,MAAM,aAAa,UAAU;IACjC,MAAM,WAAW,UAAU;IAC3B,MAAM,QAAQ,UAAU;IACxB,IAAI,CAAC,UAAU;IAEf,MAAM,SAAS,KAAK,yBAAyB,GAAG,QAAQ;IACxD,MAAM,SAAS,KAAK,yBAAyB,GAAG,QAAQ;IAExD,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,UAAU;KAC7D,IAAI,UAAU,aAAa;MAC1B,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET,OAAO,IAAI,UAAU,cAAc;MAClC,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET;IACD,OACC,IAAI,UAAU,aAAa;KAC1B,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD,OAAO,IAAI,UAAU,cAAc;KAClC,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD;GAEF;GAGD,OAAO;EACR;CACD;;;;CAIA,WAAW,YAAmC,MAAc,SAAoD;EAC/G,IAAI,CAAC,YAAY;EACjB,IAAI,OAAO,eAAe,YACzB,QAAQ,IAAI,MAAM,WAAW,CAAC;OACxB,IAAI,MAAM,QAAQ,UAAU,GAClC,QAAQ,IAAI,MAAM,UAAU;CAE9B;;;;;CAKA,YAAY,SAA6B,SAAmE;EAC3G,MAAM,UAA8B,CAAC;EACrC,QAAQ,SAAS,QAAQ;GACxB,IAAI,IAAI,WAAW,QAClB,QAAQ,KAAK,GAAG,KAAK,YAAY,IAAI,SAAS,CAAC;GAGhD,QAAQ,KAAK,GAAG;GAGhB,IAAI,SAAS;GACb,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ;GAEtC,IAAI,IAAI,QAAQ,OAAO,IAAI,SAAS,UACnC,UAAU,IAAI;GAIf,IAAI,IAAI,QAAQ,WAAW,SAAS,KAAK,WAAW,IAAI,MAAM,SAAS,OAAO;EAC/E,CAAC;EACD,OAAO,QAAQ,QAAQ,SAAS,CAAC,KAAK,WAAW,MAAM;CACxD;AACD"}
@@ -7,9 +7,9 @@ export default FaTree;
7
7
  export { faTreeProps, faTreeEmits };
8
8
  export type { FaTreeSlots } from "./src/tree";
9
9
  export type * from "./src/tree.type";
10
- /** FaTree 暴露的组件实例类型。 */
10
+ /** FaTree 暴露的组件实例类型 */
11
11
  export type FaTreeInstance = InstanceType<typeof Tree>;
12
- /** FaTree 的完整 Props 类型。 */
12
+ /** FaTree 的完整 Props 类型 */
13
13
  export type FaTreeProps = ExtractPropTypes<typeof faTreeProps>;
14
- /** FaTree 的 Emits 类型。 */
14
+ /** FaTree 的 Emits 类型 */
15
15
  export type FaTreeEmits = typeof faTreeEmits;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["Tree"],"sources":["../../../src/components/tree/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport Tree, { faTreeEmits, faTreeProps } from \"./src/tree\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 支持远程加载、筛选和节点操作的树组件。 */\nexport const FaTree: TSXWithInstall<typeof Tree> = withInstall(Tree);\nexport default FaTree;\n\nexport { faTreeProps, faTreeEmits };\nexport type { FaTreeSlots } from \"./src/tree\";\nexport type * from \"./src/tree.type\";\n\n/** FaTree 暴露的组件实例类型。 */\nexport type FaTreeInstance = InstanceType<typeof Tree>;\n\n/** FaTree 的完整 Props 类型。 */\nexport type FaTreeProps = ExtractPropTypes<typeof faTreeProps>;\n\n/** FaTree 的 Emits 类型。 */\nexport type FaTreeEmits = typeof faTreeEmits;\n"],"mappings":";;;;AAMA,MAAa,SAAsC,YAAYA,YAAI"}
1
+ {"version":3,"file":"index.mjs","names":["Tree"],"sources":["../../../src/components/tree/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport Tree, { faTreeEmits, faTreeProps } from \"./src/tree\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 支持远程加载、筛选和节点操作的树组件。 */\nexport const FaTree: TSXWithInstall<typeof Tree> = withInstall(Tree);\nexport default FaTree;\n\nexport { faTreeProps, faTreeEmits };\nexport type { FaTreeSlots } from \"./src/tree\";\nexport type * from \"./src/tree.type\";\n\n/** FaTree 暴露的组件实例类型 */\nexport type FaTreeInstance = InstanceType<typeof Tree>;\n\n/** FaTree 的完整 Props 类型 */\nexport type FaTreeProps = ExtractPropTypes<typeof faTreeProps>;\n\n/** FaTree 的 Emits 类型 */\nexport type FaTreeEmits = typeof faTreeEmits;\n"],"mappings":";;;;AAMA,MAAa,SAAsC,YAAYA,YAAI"}
@@ -12,11 +12,11 @@ export interface TreeNode {
12
12
  }
13
13
  /** 树组件的数据集合。 */
14
14
  export type TreeData = TreeNodeData[];
15
- /** 树节点的唯一键类型。 */
15
+ /** 树节点的唯一键类型 */
16
16
  export type TreeKey = string | number;
17
17
  /** 树节点的懒加载方法。 */
18
18
  export type LoadFunction = (rootNode: TreeNode, loadedCallback: (data: TreeData) => void, stopLoading: () => void) => void;
19
- /** 树节点字段映射配置。 */
19
+ /** 树节点字段映射配置 */
20
20
  export interface TreeOptionProps {
21
21
  children?: string;
22
22
  label?: string | ((data: TreeNodeData, node: TreeNode) => string);
@@ -1,6 +1,6 @@
1
- /** 树组件支持的节点值类型。 */
1
+ /** 树组件支持的节点值类型 */
2
2
  export type ElTreeValue = string | number | boolean | object | null;
3
- /** 树组件标准化后的节点数据。 */
3
+ /** 树组件标准化后的节点数据 */
4
4
  export interface ElTreeOutput<T = ElTreeValue, Data = any> {
5
5
  /**
6
6
  * 显示
@@ -6,9 +6,9 @@ export declare const FaTreeSelect: TSXWithInstall<typeof TreeSelect>;
6
6
  export default FaTreeSelect;
7
7
  export { faTreeSelectProps, faTreeSelectEmits };
8
8
  export type { FaTreeSelectSlots } from "./src/treeSelect";
9
- /** FaTreeSelect 暴露的组件实例类型。 */
9
+ /** FaTreeSelect 暴露的组件实例类型 */
10
10
  export type FaTreeSelectInstance = InstanceType<typeof TreeSelect>;
11
- /** FaTreeSelect 的完整 Props 类型。 */
11
+ /** FaTreeSelect 的完整 Props 类型 */
12
12
  export type FaTreeSelectProps = ExtractPropTypes<typeof faTreeSelectProps>;
13
- /** FaTreeSelect 的 Emits 类型。 */
13
+ /** FaTreeSelect 的 Emits 类型 */
14
14
  export type FaTreeSelectEmits = typeof faTreeSelectEmits;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["TreeSelect"],"sources":["../../../src/components/treeSelect/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport TreeSelect, { faTreeSelectEmits, faTreeSelectProps } from \"./src/treeSelect\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 组合树结构浏览与选择交互的树选择器组件。 */\nexport const FaTreeSelect: TSXWithInstall<typeof TreeSelect> = withInstall(TreeSelect);\nexport default FaTreeSelect;\n\nexport { faTreeSelectProps, faTreeSelectEmits };\nexport type { FaTreeSelectSlots } from \"./src/treeSelect\";\n\n/** FaTreeSelect 暴露的组件实例类型。 */\nexport type FaTreeSelectInstance = InstanceType<typeof TreeSelect>;\n\n/** FaTreeSelect 的完整 Props 类型。 */\nexport type FaTreeSelectProps = ExtractPropTypes<typeof faTreeSelectProps>;\n\n/** FaTreeSelect 的 Emits 类型。 */\nexport type FaTreeSelectEmits = typeof faTreeSelectEmits;\n"],"mappings":";;;;AAMA,MAAa,eAAkD,YAAYA,kBAAU"}
1
+ {"version":3,"file":"index.mjs","names":["TreeSelect"],"sources":["../../../src/components/treeSelect/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport TreeSelect, { faTreeSelectEmits, faTreeSelectProps } from \"./src/treeSelect\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 组合树结构浏览与选择交互的树选择器组件。 */\nexport const FaTreeSelect: TSXWithInstall<typeof TreeSelect> = withInstall(TreeSelect);\nexport default FaTreeSelect;\n\nexport { faTreeSelectProps, faTreeSelectEmits };\nexport type { FaTreeSelectSlots } from \"./src/treeSelect\";\n\n/** FaTreeSelect 暴露的组件实例类型 */\nexport type FaTreeSelectInstance = InstanceType<typeof TreeSelect>;\n\n/** FaTreeSelect 的完整 Props 类型 */\nexport type FaTreeSelectProps = ExtractPropTypes<typeof faTreeSelectProps>;\n\n/** FaTreeSelect 的 Emits 类型 */\nexport type FaTreeSelectEmits = typeof faTreeSelectEmits;\n"],"mappings":";;;;AAMA,MAAa,eAAkD,YAAYA,kBAAU"}
@@ -976,10 +976,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
976
976
  "onNode-drag-over"?: ((draggingNode: import("element-plus/es/components/tree/src/model/node.mjs").default, dropNode: import("element-plus/es/components/tree/src/model/node.mjs").default, evt: DragEvent) => any) | undefined;
977
977
  }>, {
978
978
  data: ElSelectorOutput<ElSelectorValue, any>[];
979
- loading: boolean;
980
979
  props: SelectComponentProps;
981
980
  offset: number;
982
981
  placement: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "auto" | "bottom" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "auto" | "bottom" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | null)[], import("element-plus").Placement, unknown>;
982
+ loading: boolean;
983
983
  disabled: boolean;
984
984
  modelValue: ElSelectorModelValue;
985
985
  autocomplete: string;
@@ -6,9 +6,9 @@ export declare const FaUpload: TSXWithInstall<typeof Upload>;
6
6
  export default FaUpload;
7
7
  export { faUploadProps, faUploadEmits };
8
8
  export type { FaUploadSlots } from "./src/upload";
9
- /** FaUpload 暴露的组件实例类型。 */
9
+ /** FaUpload 暴露的组件实例类型 */
10
10
  export type FaUploadInstance = InstanceType<typeof Upload>;
11
- /** FaUpload 的完整 Props 类型。 */
11
+ /** FaUpload 的完整 Props 类型 */
12
12
  export type FaUploadProps = ExtractPropTypes<typeof faUploadProps>;
13
- /** FaUpload 的 Emits 类型。 */
13
+ /** FaUpload 的 Emits 类型 */
14
14
  export type FaUploadEmits = typeof faUploadEmits;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["Upload"],"sources":["../../../src/components/upload/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport Upload, { faUploadEmits, faUploadProps } from \"./src/upload\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 统一上传校验、进度和文件列表处理的上传组件。 */\nexport const FaUpload: TSXWithInstall<typeof Upload> = withInstall(Upload);\nexport default FaUpload;\n\nexport { faUploadProps, faUploadEmits };\nexport type { FaUploadSlots } from \"./src/upload\";\n\n/** FaUpload 暴露的组件实例类型。 */\nexport type FaUploadInstance = InstanceType<typeof Upload>;\n\n/** FaUpload 的完整 Props 类型。 */\nexport type FaUploadProps = ExtractPropTypes<typeof faUploadProps>;\n\n/** FaUpload 的 Emits 类型。 */\nexport type FaUploadEmits = typeof faUploadEmits;\n"],"mappings":";;;;AAMA,MAAa,WAA0C,YAAYA,cAAM"}
1
+ {"version":3,"file":"index.mjs","names":["Upload"],"sources":["../../../src/components/upload/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport Upload, { faUploadEmits, faUploadProps } from \"./src/upload\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 统一上传校验、进度和文件列表处理的上传组件。 */\nexport const FaUpload: TSXWithInstall<typeof Upload> = withInstall(Upload);\nexport default FaUpload;\n\nexport { faUploadProps, faUploadEmits };\nexport type { FaUploadSlots } from \"./src/upload\";\n\n/** FaUpload 暴露的组件实例类型 */\nexport type FaUploadInstance = InstanceType<typeof Upload>;\n\n/** FaUpload 的完整 Props 类型 */\nexport type FaUploadProps = ExtractPropTypes<typeof faUploadProps>;\n\n/** FaUpload 的 Emits 类型 */\nexport type FaUploadEmits = typeof faUploadEmits;\n"],"mappings":";;;;AAMA,MAAa,WAA0C,YAAYA,cAAM"}
@@ -15,19 +15,24 @@ export declare const uploadUtil: {
15
15
  /** 判断文件是否符合 HTML accept 规则。 */
16
16
  matchesAccept(file: File, accept?: string): boolean;
17
17
  /**
18
- * 文件上传
19
- * @param url 地址
20
- * @param file 文件
21
- * @param fileName 文件名称
22
- * @param params 参数
18
+ * 使用 multipart/form-data 上传文件。
19
+ * @param url - 地址
20
+ * @param file - 文件
21
+ * @param fileName - 文件名称
22
+ * @param params - 附加表单字段
23
+ * @param request - 请求头、方法与凭据选项
24
+ * @returns 响应正文文本
25
+ * @remarks 地址为空、网络失败或 HTTP 状态失败时,返回的 Promise 被拒绝。
23
26
  */
24
27
  uploadFile(url: string, file: File, fileName: string, params?: UploadData, request?: UploadRequestConfig): Promise<string>;
25
28
  /**
26
- * 文件上传
27
- * @param url 地址
28
- * @param file 文件
29
- * @param fileName 文件名称
30
- * @param params 参数
29
+ * 通过指定接口上传文件。
30
+ * @param api - 接收表单数据并返回上传结果的接口
31
+ * @param file - 文件
32
+ * @param fileName - 文件名称
33
+ * @param params - 附加表单字段
34
+ * @returns 接口返回的上传结果
35
+ * @remarks 接口未提供或调用失败时,返回的 Promise 被拒绝。
31
36
  */
32
37
  uploadFileByApi(api: ((formData: FormData) => Promise<string>) | null | undefined, file: File, fileName: string, params?: UploadData): Promise<string>;
33
38
  };
@@ -41,11 +41,14 @@ const uploadUtil = {
41
41
  });
42
42
  },
43
43
  /**
44
- * 文件上传
45
- * @param url 地址
46
- * @param file 文件
47
- * @param fileName 文件名称
48
- * @param params 参数
44
+ * 使用 multipart/form-data 上传文件。
45
+ * @param url - 地址
46
+ * @param file - 文件
47
+ * @param fileName - 文件名称
48
+ * @param params - 附加表单字段
49
+ * @param request - 请求头、方法与凭据选项
50
+ * @returns 响应正文文本
51
+ * @remarks 地址为空、网络失败或 HTTP 状态失败时,返回的 Promise 被拒绝。
49
52
  */
50
53
  async uploadFile(url, file, fileName, params, request) {
51
54
  if (!url) {
@@ -77,11 +80,13 @@ const uploadUtil = {
77
80
  }
78
81
  },
79
82
  /**
80
- * 文件上传
81
- * @param url 地址
82
- * @param file 文件
83
- * @param fileName 文件名称
84
- * @param params 参数
83
+ * 通过指定接口上传文件。
84
+ * @param api - 接收表单数据并返回上传结果的接口
85
+ * @param file - 文件
86
+ * @param fileName - 文件名称
87
+ * @param params - 附加表单字段
88
+ * @returns 接口返回的上传结果
89
+ * @remarks 接口未提供或调用失败时,返回的 Promise 被拒绝。
85
90
  */
86
91
  async uploadFileByApi(api, file, fileName, params) {
87
92
  if (!api) {
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","names":[],"sources":["../../../../src/components/upload/utils/upload.ts"],"sourcesContent":["import { ElMessage } from \"element-plus\";\nimport { FaMimeType } from \"../../../constants\";\ntype UploadData = Record<string, string | Blob | [string | Blob, string] | string[]>;\n\ninterface UploadRequestConfig {\n\tmethod?: string;\n\theaders?: HeadersInit;\n\twithCredentials?: boolean;\n}\n\n/** 将 Element Plus 上传附加数据写入 FormData。 */\nconst appendUploadData = (formData: FormData, params: UploadData): void => {\n\tfor (const [key, value] of Object.entries(params)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 2 && value[0] instanceof Blob && typeof value[1] === \"string\") {\n\t\t\t\tformData.append(key, value[0], value[1]);\n\t\t\t} else {\n\t\t\t\tvalue.forEach((item) => formData.append(key, item));\n\t\t\t}\n\t\t} else {\n\t\t\tformData.append(key, value);\n\t\t}\n\t}\n};\n\nconst FaMimeTypeNames: Record<string, keyof typeof FaMimeType> = {};\n\nfor (const [kName, vAccept] of Object.entries(FaMimeType)) {\n\tvAccept.split(\",\").forEach((tItem) => {\n\t\tFaMimeTypeNames[tItem.trim()] = kName as keyof typeof FaMimeType;\n\t});\n}\n\n/**\n * 上传工具类\n */\nexport const uploadUtil = {\n\t/**\n\t * 识别文件类型\n\t */\n\tdetectFileType(accept: string): string {\n\t\tconst detectTypes = new Set<string>();\n\t\taccept.split(\",\").forEach((mimeType) => {\n\t\t\tconst normalizedMimeType = mimeType.trim();\n\t\t\tif (normalizedMimeType) detectTypes.add(FaMimeTypeNames[normalizedMimeType] ?? normalizedMimeType);\n\t\t});\n\t\treturn Array.from(detectTypes).join(\",\");\n\t},\n\t/** 判断文件是否符合 HTML accept 规则。 */\n\tmatchesAccept(file: File, accept?: string): boolean {\n\t\tif (!accept?.trim()) return true;\n\t\tconst fileName = file.name.toLowerCase();\n\t\tconst fileType = file.type.toLowerCase();\n\t\treturn accept.split(\",\").some((item) => {\n\t\t\tconst rule = item.trim().toLowerCase();\n\t\t\tif (!rule) return false;\n\t\t\tif (rule.startsWith(\".\")) return fileName.endsWith(rule);\n\t\t\tif (rule.endsWith(\"/*\")) return fileType.startsWith(rule.slice(0, -1));\n\t\t\treturn fileType === rule;\n\t\t});\n\t},\n\t/**\n\t * 文件上传\n\t * @param url 地址\n\t * @param file 文件\n\t * @param fileName 文件名称\n\t * @param params 参数\n\t */\n\tasync uploadFile(url: string, file: File, fileName: string, params?: UploadData, request?: UploadRequestConfig): Promise<string> {\n\t\tif (!url) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传地址为空。\");\n\t\t\tElMessage.error(\"文件上传地址为空!\");\n\t\t\tthrow new Error(\"文件上传地址为空!\");\n\t\t}\n\t\tconst formData = new FormData();\n\t\tformData.append(\"file\", file);\n\t\tformData.append(\"fileName\", fileName);\n\t\tif (params) appendUploadData(formData, params);\n\t\ttry {\n\t\t\tconst response = await fetch(url, {\n\t\t\t\theaders: request?.headers,\n\t\t\t\tmethod: request?.method ?? \"POST\",\n\t\t\t\tcredentials: request?.withCredentials ? \"include\" : \"same-origin\",\n\t\t\t\tbody: formData,\n\t\t\t});\n\t\t\tif (!response.ok) {\n\t\t\t\tconsole.error(\"[Fast:uploadUtil]\", `文件上传失败,HTTP 状态码:${response.status.toString()}。`);\n\t\t\t\tElMessage.error(\"文件上传失败!\");\n\t\t\t\tthrow new Error(\"文件上传失败!\");\n\t\t\t}\n\t\t\treturn await response.text();\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传失败。\", error);\n\t\t\tElMessage.error(\"文件上传失败!\");\n\t\t\tthrow error instanceof Error ? error : new Error(\"文件上传失败!\");\n\t\t}\n\t},\n\t/**\n\t * 文件上传\n\t * @param url 地址\n\t * @param file 文件\n\t * @param fileName 文件名称\n\t * @param params 参数\n\t */\n\tasync uploadFileByApi(\n\t\tapi: ((formData: FormData) => Promise<string>) | null | undefined,\n\t\tfile: File,\n\t\tfileName: string,\n\t\tparams?: UploadData\n\t): Promise<string> {\n\t\tif (!api) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传接口为空。\");\n\t\t\tElMessage.error(\"文件上传接口为空!\");\n\t\t\tthrow new Error(\"文件上传接口为空!\");\n\t\t}\n\t\tconst formData = new FormData();\n\t\tformData.append(\"file\", file);\n\t\tformData.append(\"fileName\", fileName);\n\t\tif (params) appendUploadData(formData, params);\n\t\ttry {\n\t\t\treturn await api(formData);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传失败。\", error);\n\t\t\tElMessage.error(\"文件上传失败!\");\n\t\t\tthrow error instanceof Error ? error : new Error(\"文件上传失败!\");\n\t\t}\n\t},\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"upload.mjs","names":[],"sources":["../../../../src/components/upload/utils/upload.ts"],"sourcesContent":["import { ElMessage } from \"element-plus\";\nimport { FaMimeType } from \"../../../constants\";\ntype UploadData = Record<string, string | Blob | [string | Blob, string] | string[]>;\n\ninterface UploadRequestConfig {\n\tmethod?: string;\n\theaders?: HeadersInit;\n\twithCredentials?: boolean;\n}\n\n/** 将 Element Plus 上传附加数据写入 FormData。 */\nconst appendUploadData = (formData: FormData, params: UploadData): void => {\n\tfor (const [key, value] of Object.entries(params)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 2 && value[0] instanceof Blob && typeof value[1] === \"string\") {\n\t\t\t\tformData.append(key, value[0], value[1]);\n\t\t\t} else {\n\t\t\t\tvalue.forEach((item) => formData.append(key, item));\n\t\t\t}\n\t\t} else {\n\t\t\tformData.append(key, value);\n\t\t}\n\t}\n};\n\nconst FaMimeTypeNames: Record<string, keyof typeof FaMimeType> = {};\n\nfor (const [kName, vAccept] of Object.entries(FaMimeType)) {\n\tvAccept.split(\",\").forEach((tItem) => {\n\t\tFaMimeTypeNames[tItem.trim()] = kName as keyof typeof FaMimeType;\n\t});\n}\n\n/**\n * 上传工具类\n */\nexport const uploadUtil = {\n\t/**\n\t * 识别文件类型\n\t */\n\tdetectFileType(accept: string): string {\n\t\tconst detectTypes = new Set<string>();\n\t\taccept.split(\",\").forEach((mimeType) => {\n\t\t\tconst normalizedMimeType = mimeType.trim();\n\t\t\tif (normalizedMimeType) detectTypes.add(FaMimeTypeNames[normalizedMimeType] ?? normalizedMimeType);\n\t\t});\n\t\treturn Array.from(detectTypes).join(\",\");\n\t},\n\t/** 判断文件是否符合 HTML accept 规则。 */\n\tmatchesAccept(file: File, accept?: string): boolean {\n\t\tif (!accept?.trim()) return true;\n\t\tconst fileName = file.name.toLowerCase();\n\t\tconst fileType = file.type.toLowerCase();\n\t\treturn accept.split(\",\").some((item) => {\n\t\t\tconst rule = item.trim().toLowerCase();\n\t\t\tif (!rule) return false;\n\t\t\tif (rule.startsWith(\".\")) return fileName.endsWith(rule);\n\t\t\tif (rule.endsWith(\"/*\")) return fileType.startsWith(rule.slice(0, -1));\n\t\t\treturn fileType === rule;\n\t\t});\n\t},\n\t/**\n\t * 使用 multipart/form-data 上传文件。\n\t * @param url - 地址\n\t * @param file - 文件\n\t * @param fileName - 文件名称\n\t * @param params - 附加表单字段\n\t * @param request - 请求头、方法与凭据选项\n\t * @returns 响应正文文本\n\t * @remarks 地址为空、网络失败或 HTTP 状态失败时,返回的 Promise 被拒绝。\n\t */\n\tasync uploadFile(url: string, file: File, fileName: string, params?: UploadData, request?: UploadRequestConfig): Promise<string> {\n\t\tif (!url) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传地址为空。\");\n\t\t\tElMessage.error(\"文件上传地址为空!\");\n\t\t\tthrow new Error(\"文件上传地址为空!\");\n\t\t}\n\t\tconst formData = new FormData();\n\t\tformData.append(\"file\", file);\n\t\tformData.append(\"fileName\", fileName);\n\t\tif (params) appendUploadData(formData, params);\n\t\ttry {\n\t\t\tconst response = await fetch(url, {\n\t\t\t\theaders: request?.headers,\n\t\t\t\tmethod: request?.method ?? \"POST\",\n\t\t\t\tcredentials: request?.withCredentials ? \"include\" : \"same-origin\",\n\t\t\t\tbody: formData,\n\t\t\t});\n\t\t\tif (!response.ok) {\n\t\t\t\tconsole.error(\"[Fast:uploadUtil]\", `文件上传失败,HTTP 状态码:${response.status.toString()}。`);\n\t\t\t\tElMessage.error(\"文件上传失败!\");\n\t\t\t\tthrow new Error(\"文件上传失败!\");\n\t\t\t}\n\t\t\treturn await response.text();\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传失败。\", error);\n\t\t\tElMessage.error(\"文件上传失败!\");\n\t\t\tthrow error instanceof Error ? error : new Error(\"文件上传失败!\");\n\t\t}\n\t},\n\t/**\n\t * 通过指定接口上传文件。\n\t * @param api - 接收表单数据并返回上传结果的接口\n\t * @param file - 文件\n\t * @param fileName - 文件名称\n\t * @param params - 附加表单字段\n\t * @returns 接口返回的上传结果\n\t * @remarks 接口未提供或调用失败时,返回的 Promise 被拒绝。\n\t */\n\tasync uploadFileByApi(\n\t\tapi: ((formData: FormData) => Promise<string>) | null | undefined,\n\t\tfile: File,\n\t\tfileName: string,\n\t\tparams?: UploadData\n\t): Promise<string> {\n\t\tif (!api) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传接口为空。\");\n\t\t\tElMessage.error(\"文件上传接口为空!\");\n\t\t\tthrow new Error(\"文件上传接口为空!\");\n\t\t}\n\t\tconst formData = new FormData();\n\t\tformData.append(\"file\", file);\n\t\tformData.append(\"fileName\", fileName);\n\t\tif (params) appendUploadData(formData, params);\n\t\ttry {\n\t\t\treturn await api(formData);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[Fast:uploadUtil]\", \"文件上传失败。\", error);\n\t\t\tElMessage.error(\"文件上传失败!\");\n\t\t\tthrow error instanceof Error ? error : new Error(\"文件上传失败!\");\n\t\t}\n\t},\n};\n"],"mappings":"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"}
@@ -6,9 +6,9 @@ export declare const FaUploadImage: TSXWithInstall<typeof UploadImage>;
6
6
  export default FaUploadImage;
7
7
  export { faUploadImageProps, faUploadImageEmits };
8
8
  export type { FaUploadImageSlots } from "./src/uploadImage";
9
- /** FaUploadImage 暴露的组件实例类型。 */
9
+ /** FaUploadImage 暴露的组件实例类型 */
10
10
  export type FaUploadImageInstance = InstanceType<typeof UploadImage>;
11
- /** FaUploadImage 的完整 Props 类型。 */
11
+ /** FaUploadImage 的完整 Props 类型 */
12
12
  export type FaUploadImageProps = ExtractPropTypes<typeof faUploadImageProps>;
13
- /** FaUploadImage 的 Emits 类型。 */
13
+ /** FaUploadImage 的 Emits 类型 */
14
14
  export type FaUploadImageEmits = typeof faUploadImageEmits;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["UploadImage"],"sources":["../../../src/components/uploadImage/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport UploadImage, { faUploadImageEmits, faUploadImageProps } from \"./src/uploadImage\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 支持预览、校验和状态同步的单图片上传组件。 */\nexport const FaUploadImage: TSXWithInstall<typeof UploadImage> = withInstall(UploadImage);\nexport default FaUploadImage;\n\nexport { faUploadImageProps, faUploadImageEmits };\nexport type { FaUploadImageSlots } from \"./src/uploadImage\";\n\n/** FaUploadImage 暴露的组件实例类型。 */\nexport type FaUploadImageInstance = InstanceType<typeof UploadImage>;\n\n/** FaUploadImage 的完整 Props 类型。 */\nexport type FaUploadImageProps = ExtractPropTypes<typeof faUploadImageProps>;\n\n/** FaUploadImage 的 Emits 类型。 */\nexport type FaUploadImageEmits = typeof faUploadImageEmits;\n"],"mappings":";;;;AAMA,MAAa,gBAAoD,YAAYA,mBAAW"}
1
+ {"version":3,"file":"index.mjs","names":["UploadImage"],"sources":["../../../src/components/uploadImage/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport UploadImage, { faUploadImageEmits, faUploadImageProps } from \"./src/uploadImage\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\n\n/** 支持预览、校验和状态同步的单图片上传组件。 */\nexport const FaUploadImage: TSXWithInstall<typeof UploadImage> = withInstall(UploadImage);\nexport default FaUploadImage;\n\nexport { faUploadImageProps, faUploadImageEmits };\nexport type { FaUploadImageSlots } from \"./src/uploadImage\";\n\n/** FaUploadImage 暴露的组件实例类型 */\nexport type FaUploadImageInstance = InstanceType<typeof UploadImage>;\n\n/** FaUploadImage 的完整 Props 类型 */\nexport type FaUploadImageProps = ExtractPropTypes<typeof faUploadImageProps>;\n\n/** FaUploadImage 的 Emits 类型 */\nexport type FaUploadImageEmits = typeof faUploadImageEmits;\n"],"mappings":";;;;AAMA,MAAa,gBAAoD,YAAYA,mBAAW"}
@@ -7,9 +7,9 @@ export declare const FaUploadImages: TSXWithInstall<typeof UploadImages>;
7
7
  export default FaUploadImages;
8
8
  export { faUploadImagesEmits, faUploadImagesProps } from "./src/uploadImages";
9
9
  export type { FaUploadImagesSlots } from "./src/uploadImages";
10
- /** FaUploadImages 暴露的组件实例类型。 */
10
+ /** FaUploadImages 暴露的组件实例类型 */
11
11
  export type FaUploadImagesInstance = InstanceType<typeof UploadImages>;
12
- /** FaUploadImages 的完整 Props 类型。 */
12
+ /** FaUploadImages 的完整 Props 类型 */
13
13
  export type FaUploadImagesProps = ExtractPropTypes<typeof faUploadImagesProps>;
14
- /** FaUploadImages 的 Emits 类型。 */
14
+ /** FaUploadImages 的 Emits 类型 */
15
15
  export type FaUploadImagesEmits = typeof faUploadImagesEmits;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["UploadImages"],"sources":["../../../src/components/uploadImages/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport UploadImages from \"./src/uploadImages\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\nimport type { faUploadImagesEmits, faUploadImagesProps } from \"./src/uploadImages\";\n\n/** 支持排序、预览、校验和状态同步的多图片上传组件。 */\nexport const FaUploadImages: TSXWithInstall<typeof UploadImages> = withInstall(UploadImages);\nexport default FaUploadImages;\n\nexport { faUploadImagesEmits, faUploadImagesProps } from \"./src/uploadImages\";\nexport type { FaUploadImagesSlots } from \"./src/uploadImages\";\n\n/** FaUploadImages 暴露的组件实例类型。 */\nexport type FaUploadImagesInstance = InstanceType<typeof UploadImages>;\n\n/** FaUploadImages 的完整 Props 类型。 */\nexport type FaUploadImagesProps = ExtractPropTypes<typeof faUploadImagesProps>;\n\n/** FaUploadImages 的 Emits 类型。 */\nexport type FaUploadImagesEmits = typeof faUploadImagesEmits;\n"],"mappings":";;;;AAOA,MAAa,iBAAsD,YAAYA,oBAAY"}
1
+ {"version":3,"file":"index.mjs","names":["UploadImages"],"sources":["../../../src/components/uploadImages/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport UploadImages from \"./src/uploadImages\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\nimport type { faUploadImagesEmits, faUploadImagesProps } from \"./src/uploadImages\";\n\n/** 支持排序、预览、校验和状态同步的多图片上传组件。 */\nexport const FaUploadImages: TSXWithInstall<typeof UploadImages> = withInstall(UploadImages);\nexport default FaUploadImages;\n\nexport { faUploadImagesEmits, faUploadImagesProps } from \"./src/uploadImages\";\nexport type { FaUploadImagesSlots } from \"./src/uploadImages\";\n\n/** FaUploadImages 暴露的组件实例类型 */\nexport type FaUploadImagesInstance = InstanceType<typeof UploadImages>;\n\n/** FaUploadImages 的完整 Props 类型 */\nexport type FaUploadImagesProps = ExtractPropTypes<typeof faUploadImagesProps>;\n\n/** FaUploadImages 的 Emits 类型 */\nexport type FaUploadImagesEmits = typeof faUploadImagesEmits;\n"],"mappings":";;;;AAOA,MAAa,iBAAsD,YAAYA,oBAAY"}