fast-element-plus 1.0.7 → 1.0.10

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 (182) hide show
  1. package/dist/index.full.js +894 -757
  2. package/dist/index.full.js.map +1 -1
  3. package/dist/index.full.min.js +1 -1
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +1 -1
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +894 -757
  8. package/dist/index.full.mjs.map +1 -1
  9. package/dist/styles/index.css +41 -23
  10. package/dist/styles/index.css.map +1 -1
  11. package/es/components/avatar/src/avatar.d.ts +4 -4
  12. package/es/components/avatar/src/avatar.mjs +1 -1
  13. package/es/components/avatar/src/avatar.mjs.map +1 -1
  14. package/es/components/button/src/button.mjs.map +1 -1
  15. package/es/components/carNumber/src/carNumber.d.ts +13 -5
  16. package/es/components/carNumber/src/carNumber.mjs +1 -1
  17. package/es/components/carNumber/src/carNumber.mjs.map +1 -1
  18. package/es/components/contextMenu/src/contextMenu.mjs +1 -1
  19. package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
  20. package/es/components/dialog/src/dialog.d.ts +4 -4
  21. package/es/components/dialog/src/dialog.mjs +1 -1
  22. package/es/components/dialog/src/dialog.mjs.map +1 -1
  23. package/es/components/drawer/src/drawer.d.ts +12 -4
  24. package/es/components/drawer/src/drawer.mjs +1 -1
  25. package/es/components/drawer/src/drawer.mjs.map +1 -1
  26. package/es/components/form/src/form.mjs +1 -1
  27. package/es/components/form/src/form.mjs.map +1 -1
  28. package/es/components/form/src/formItem.mjs +1 -1
  29. package/es/components/form/src/formItem.mjs.map +1 -1
  30. package/es/components/formItemTip/src/formItemTip.mjs +1 -1
  31. package/es/components/formItemTip/src/formItemTip.mjs.map +1 -1
  32. package/es/components/icon/src/icon.mjs +1 -1
  33. package/es/components/icon/src/icon.mjs.map +1 -1
  34. package/es/components/iconSelector/src/iconSelector.mjs +1 -1
  35. package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
  36. package/es/components/image/src/image.mjs +1 -1
  37. package/es/components/image/src/image.mjs.map +1 -1
  38. package/es/components/index.d.ts +1 -0
  39. package/es/components/index.mjs +1 -1
  40. package/es/components/inputDialogPage/index.d.ts +14 -0
  41. package/es/components/inputDialogPage/index.mjs +2 -0
  42. package/es/components/inputDialogPage/index.mjs.map +1 -0
  43. package/es/components/inputDialogPage/src/inputDialogPage.d.ts +131 -0
  44. package/es/components/inputDialogPage/src/inputDialogPage.mjs +2 -0
  45. package/es/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -0
  46. package/es/components/layoutGrid/src/layoutGrid.mjs +1 -1
  47. package/es/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
  48. package/es/components/layoutGrid/src/layoutGridItem.d.ts +6 -6
  49. package/es/components/layoutGrid/src/layoutGridItem.mjs +1 -1
  50. package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  51. package/es/components/select/src/select.d.ts +39 -34
  52. package/es/components/select/src/select.mjs +1 -1
  53. package/es/components/select/src/select.mjs.map +1 -1
  54. package/es/components/select/src/selectOption.mjs +1 -1
  55. package/es/components/select/src/selectOption.mjs.map +1 -1
  56. package/es/components/selectPage/src/selectPage.d.ts +39 -25
  57. package/es/components/selectPage/src/selectPage.mjs +1 -1
  58. package/es/components/selectPage/src/selectPage.mjs.map +1 -1
  59. package/es/components/selectV2/src/selectV2.d.ts +36 -44
  60. package/es/components/selectV2/src/selectV2.mjs +1 -1
  61. package/es/components/selectV2/src/selectV2.mjs.map +1 -1
  62. package/es/components/table/src/table.d.ts +6 -6
  63. package/es/components/table/src/table.mjs +1 -1
  64. package/es/components/table/src/table.mjs.map +1 -1
  65. package/es/components/table/src/table.type.d.ts +1 -1
  66. package/es/components/table/src/table.type.mjs.map +1 -1
  67. package/es/components/table/src/tableColumn.mjs +1 -1
  68. package/es/components/table/src/tableColumn.mjs.map +1 -1
  69. package/es/components/table/src/tableColumnSettingDialog.mjs +1 -1
  70. package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  71. package/es/components/table/src/useTable.mjs +1 -1
  72. package/es/components/table/src/useTable.mjs.map +1 -1
  73. package/es/components/table/utils/table.mjs +1 -1
  74. package/es/components/table/utils/table.mjs.map +1 -1
  75. package/es/components/tree/src/tree.d.ts +68 -174
  76. package/es/components/tree/src/tree.mjs +1 -1
  77. package/es/components/tree/src/tree.mjs.map +1 -1
  78. package/es/components/treeSelect/src/treeSelect.d.ts +123 -221
  79. package/es/components/treeSelect/src/treeSelect.mjs +1 -1
  80. package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
  81. package/es/directives/click-copy/index.mjs.map +1 -1
  82. package/es/directives/click-debounce/index.mjs.map +1 -1
  83. package/es/directives/click-draggable/index.mjs.map +1 -1
  84. package/es/directives/click-icon-copy/index.mjs.map +1 -1
  85. package/es/directives/click-longpress/index.mjs.map +1 -1
  86. package/es/directives/click-throttle/index.mjs.map +1 -1
  87. package/es/index.mjs +1 -1
  88. package/es/index.mjs.map +1 -1
  89. package/es/make-installer.mjs +1 -1
  90. package/es/make-installer.mjs.map +1 -1
  91. package/es/version.d.ts +1 -1
  92. package/es/version.mjs +1 -1
  93. package/es/version.mjs.map +1 -1
  94. package/lib/components/avatar/src/avatar.d.ts +4 -4
  95. package/lib/components/avatar/src/avatar.js +1 -1
  96. package/lib/components/avatar/src/avatar.js.map +1 -1
  97. package/lib/components/button/src/button.js.map +1 -1
  98. package/lib/components/carNumber/src/carNumber.d.ts +13 -5
  99. package/lib/components/carNumber/src/carNumber.js +1 -1
  100. package/lib/components/carNumber/src/carNumber.js.map +1 -1
  101. package/lib/components/contextMenu/src/contextMenu.js +1 -1
  102. package/lib/components/contextMenu/src/contextMenu.js.map +1 -1
  103. package/lib/components/dialog/src/dialog.d.ts +4 -4
  104. package/lib/components/dialog/src/dialog.js +1 -1
  105. package/lib/components/dialog/src/dialog.js.map +1 -1
  106. package/lib/components/drawer/src/drawer.d.ts +12 -4
  107. package/lib/components/drawer/src/drawer.js +1 -1
  108. package/lib/components/drawer/src/drawer.js.map +1 -1
  109. package/lib/components/form/src/form.js +1 -1
  110. package/lib/components/form/src/form.js.map +1 -1
  111. package/lib/components/form/src/formItem.js +1 -1
  112. package/lib/components/form/src/formItem.js.map +1 -1
  113. package/lib/components/formItemTip/src/formItemTip.js +1 -1
  114. package/lib/components/formItemTip/src/formItemTip.js.map +1 -1
  115. package/lib/components/icon/src/icon.js +1 -1
  116. package/lib/components/icon/src/icon.js.map +1 -1
  117. package/lib/components/iconSelector/src/iconSelector.js +1 -1
  118. package/lib/components/iconSelector/src/iconSelector.js.map +1 -1
  119. package/lib/components/image/src/image.js +1 -1
  120. package/lib/components/image/src/image.js.map +1 -1
  121. package/lib/components/index.d.ts +1 -0
  122. package/lib/components/index.js +1 -1
  123. package/lib/components/inputDialogPage/index.d.ts +14 -0
  124. package/lib/components/inputDialogPage/index.js +2 -0
  125. package/lib/components/inputDialogPage/index.js.map +1 -0
  126. package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +131 -0
  127. package/lib/components/inputDialogPage/src/inputDialogPage.js +2 -0
  128. package/lib/components/inputDialogPage/src/inputDialogPage.js.map +1 -0
  129. package/lib/components/layoutGrid/src/layoutGrid.js +1 -1
  130. package/lib/components/layoutGrid/src/layoutGrid.js.map +1 -1
  131. package/lib/components/layoutGrid/src/layoutGridItem.d.ts +6 -6
  132. package/lib/components/layoutGrid/src/layoutGridItem.js +1 -1
  133. package/lib/components/layoutGrid/src/layoutGridItem.js.map +1 -1
  134. package/lib/components/select/src/select.d.ts +39 -34
  135. package/lib/components/select/src/select.js +1 -1
  136. package/lib/components/select/src/select.js.map +1 -1
  137. package/lib/components/select/src/selectOption.js +1 -1
  138. package/lib/components/select/src/selectOption.js.map +1 -1
  139. package/lib/components/selectPage/src/selectPage.d.ts +39 -25
  140. package/lib/components/selectPage/src/selectPage.js +1 -1
  141. package/lib/components/selectPage/src/selectPage.js.map +1 -1
  142. package/lib/components/selectV2/src/selectV2.d.ts +36 -44
  143. package/lib/components/selectV2/src/selectV2.js +1 -1
  144. package/lib/components/selectV2/src/selectV2.js.map +1 -1
  145. package/lib/components/table/src/table.d.ts +6 -6
  146. package/lib/components/table/src/table.js +1 -1
  147. package/lib/components/table/src/table.js.map +1 -1
  148. package/lib/components/table/src/table.type.d.ts +1 -1
  149. package/lib/components/table/src/table.type.js.map +1 -1
  150. package/lib/components/table/src/tableColumn.js +1 -1
  151. package/lib/components/table/src/tableColumn.js.map +1 -1
  152. package/lib/components/table/src/tableColumnSettingDialog.js +1 -1
  153. package/lib/components/table/src/tableColumnSettingDialog.js.map +1 -1
  154. package/lib/components/table/src/useTable.js.map +1 -1
  155. package/lib/components/table/utils/table.js +1 -1
  156. package/lib/components/table/utils/table.js.map +1 -1
  157. package/lib/components/tree/src/tree.d.ts +68 -174
  158. package/lib/components/tree/src/tree.js +1 -1
  159. package/lib/components/tree/src/tree.js.map +1 -1
  160. package/lib/components/treeSelect/src/treeSelect.d.ts +123 -221
  161. package/lib/components/treeSelect/src/treeSelect.js +1 -1
  162. package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
  163. package/lib/directives/click-copy/index.js.map +1 -1
  164. package/lib/directives/click-debounce/index.js.map +1 -1
  165. package/lib/directives/click-draggable/index.js.map +1 -1
  166. package/lib/directives/click-icon-copy/index.js.map +1 -1
  167. package/lib/directives/click-longpress/index.js.map +1 -1
  168. package/lib/directives/click-throttle/index.js.map +1 -1
  169. package/lib/index.js +1 -1
  170. package/lib/index.js.map +1 -1
  171. package/lib/make-installer.js.map +1 -1
  172. package/lib/version.d.ts +1 -1
  173. package/lib/version.js +1 -1
  174. package/lib/version.js.map +1 -1
  175. package/package.json +3 -3
  176. package/styles/components/dialog.scss +1 -1
  177. package/styles/components/select.scss +35 -0
  178. package/styles/components/selectPage.scss +0 -30
  179. package/styles/components/table.scss +1 -1
  180. package/styles/components/tree.scss +17 -2
  181. package/styles/index.scss +1 -0
  182. package/types/components.d.ts +110 -1
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../../packages/components/table/utils/table.ts"],"sourcesContent":["import { isArray, isFunction, isString } from \"lodash-unified\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType, PagedSortInput } from \"@fast-element-plus/components\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * @description 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: any): any {\n\t\t// 如果当前值为数组,使用 / 拼接(根据需求自定义)\n\t\t// if (isArray(callValue)) return callValue.length ? callValue.join(\" / \") : \"--\";\n\t\tif (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\t// return callValue ?? \"--\";\n\t\treturn callValue;\n\t},\n\t/**\n\t * @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)\n\t * @param {Object} row 当前行数据\n\t * @param {String} prop 当前 prop\n\t */\n\thandleRowAccordingToProp(row: any, prop: string): any {\n\t\t// if (!prop.includes(\".\")) return row[prop] ?? \"--\";\n\t\tif (!prop.includes(\".\")) return row[prop] ?? null;\n\t\t// prop.split(\".\").forEach((item) => (row = row[item] ?? \"--\"));\n\t\tprop.split(\".\").forEach((item) => (row = row[item]));\n\t\treturn row;\n\t},\n\t/**\n\t * @description 处理 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[propArr.length - 1];\n\t},\n\t/**\n\t * @description 根据枚举列表查询当需要的数据(如果指定了 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: any, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): string {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tlet filterData: any = {};\n\t\tif (isArray(enumData)) {\n\t\t\tfilterData = enumData.find((item: any) => item[value] === callValue);\n\t\t}\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\t// return filterData ? filterData[label] : \"--\";\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 数组动态排序\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: any, b: any) => number {\n\t\treturn function (a: any, b: any) {\n\t\t\tif (sortList && 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\n\t\t\t\t\tconst aValue = a[property];\n\t\t\t\t\tconst bValue = 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 < bValue) return -1;\n\t\t\t\t\t\t\tif (aValue > bValue) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif (aValue > bValue) return -1;\n\t\t\t\t\t\t\tif (aValue < bValue) 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 (isFunction(columnEnum)) {\n\t\t\tcolumnEnum().then((res) => {\n\t\t\t\tenumMap.set(prop, res);\n\t\t\t});\n\t\t} else if (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 = col.show ?? true;\n\t\t\t// col.filterEnum = col.filterEnum ?? col.tag ?? false;\n\n\t\t\tlet enumKey = col.prop ?? col.search?.key;\n\n\t\t\tif (col.enum && isString(col.enum)) {\n\t\t\t\tenumKey = col.enum;\n\t\t\t}\n\n\t\t\t// 设置 enumMap\n\t\t\tthis.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"names":["tableUtil","formatValue","callValue","isArray","length","join","handleRowAccordingToProp","row","prop","includes","split","forEach","item","handleProp","propArr","filterEnum","enumData","fieldNames","type","value","label","filterData","find","arrayDynamicSort","sortList","a","b","condition","property","enField","order","mode","aValue","bValue","comparison","localeCompare","setEnumMap","columnEnum","enumMap","isFunction","then","res","set","flatColumns","columns","flatArr","col","_children","push","this","show","enumKey","search","key","enum","isString","filter"],"mappings":"kHAMaA,EAAY,CAKxBC,YAAYC,GAGPC,UAAQD,GAAmBA,EAAUE,OAASF,EAAUG,KAAK,OAAS,KAEnEH,EAORI,yBAAA,CAAyBC,EAAUC,IAE7BA,EAAKC,SAAS,MAEnBD,EAAKE,MAAM,KAAKC,QAASC,GAAUL,EAAMA,EAAIK,IACtCL,GAHyBA,EAAIC,IAAS,KAS9C,UAAAK,CAAWL,GACV,MAAMM,EAAUN,EAAKE,MAAM,KAC3B,OAAuB,IAAnBI,EAAQV,OAAqBI,EAC1BM,EAAQA,EAAQV,OAAS,EACjC,EAQA,UAAAW,CAAWb,EAAgBc,EAAkCC,EAA+CC,GAC3G,MAAMC,EAAQF,GAAYE,OAAS,QAC7BC,EAAQH,GAAYG,OAAS,QACnC,IAAIC,EAAkB,CAAA,EAItB,OAHIlB,EAAAA,QAAQa,KACXK,EAAaL,EAASM,KAAMV,GAAcA,EAAKO,KAAWjB,IAE9C,QAATgB,EACIG,GAAYH,MAAQ,OAGrBG,EAAaA,EAAWD,GAAS,IACzC,EAIAG,iBAAiBC,GACT,SAAUC,EAAQC,GACxB,GAAIF,GAAYA,EAASpB,OAAS,EACjC,IAAA,MAAWuB,KAAaH,EAAU,CACjC,MAAMI,EAAWD,EAAUE,QACrBC,EAAQH,EAAUI,KAElBC,EAASP,EAAEG,GACXK,EAASP,EAAEE,GAEjB,GAAsB,iBAAXI,GAAyC,iBAAXC,GACxC,GAAc,cAAVH,EAAuB,CAC1B,MAAMI,EAAaF,EAAOG,cAAcF,EAAQ,SAChD,GAAmB,IAAfC,EACH,OAAOA,CAET,MAAA,GAAqB,eAAVJ,EAAwB,CAClC,MAAMI,EAAaD,EAAOE,cAAcH,EAAQ,SAChD,GAAmB,IAAfE,EACH,OAAOA,CAET,OAEA,GAAc,cAAVJ,EAAuB,CAC1B,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,MAAA,GAAqB,eAAVH,EAAwB,CAClC,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,CAEF,CAGD,OAAO,CACR,EAKD,UAAAG,CAAWC,EAAmC7B,EAAc8B,GACtDD,IACDE,EAAAA,WAAWF,GACdA,IAAaG,KAAMC,IAClBH,EAAQI,IAAIlC,EAAMiC,KAETtC,UAAQkC,IAClBC,EAAQI,IAAIlC,EAAM6B,GAEpB,EAIA,WAAAM,CAAYC,EAA6BN,GACxC,MAAMO,EAA8B,GAqBpC,OApBAD,EAAQjC,QAASmC,IACZA,EAAIC,WAAW3C,QAClByC,EAAQG,QAAQC,KAAKN,YAAYG,EAAIC,YAGtCF,EAAQG,KAAKF,GAGbA,EAAII,KAAOJ,EAAII,OAAQ,EAGvB,IAAIC,EAAUL,EAAItC,MAAQsC,EAAIM,QAAQC,IAElCP,EAAIQ,MAAQC,EAAAA,SAAST,EAAIQ,QAC5BH,EAAUL,EAAIQ,MAIfL,KAAKb,WAAWU,EAAIQ,KAAMH,EAASb,KAE7BO,EAAQW,OAAQ5C,IAAUA,EAAKmC,WAAW3C,OAClD"}
1
+ {"version":3,"file":"table.js","sources":["../../../../../packages/components/table/utils/table.ts"],"sourcesContent":["import { isArray, isFunction, isString } from \"lodash-unified\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType, PagedSortInput } from \"@fast-element-plus/components\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * @description 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: any): any {\n\t\t// 如果当前值为数组,使用 / 拼接(根据需求自定义)\n\t\t// if (isArray(callValue)) return callValue.length ? callValue.join(\" / \") : \"--\";\n\t\tif (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\t// return callValue ?? \"--\";\n\t\treturn callValue;\n\t},\n\t/**\n\t * @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)\n\t * @param {Object} row 当前行数据\n\t * @param {String} prop 当前 prop\n\t */\n\thandleRowAccordingToProp(row: any, prop: string): any {\n\t\t// if (!prop.includes(\".\")) return row[prop] ?? \"--\";\n\t\tif (!prop.includes(\".\")) return row[prop] ?? null;\n\t\t// prop.split(\".\").forEach((item) => (row = row[item] ?? \"--\"));\n\t\tprop.split(\".\").forEach((item) => (row = row[item]));\n\t\treturn row;\n\t},\n\t/**\n\t * @description 处理 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[propArr.length - 1];\n\t},\n\t/**\n\t * @description 根据枚举列表查询当需要的数据(如果指定了 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: any, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): string {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tlet filterData: any = {};\n\t\tif (isArray(enumData)) {\n\t\t\tfilterData = enumData.find((item: any) => item[value] === callValue);\n\t\t}\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\t// return filterData ? filterData[label] : \"--\";\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 数组动态排序\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: any, b: any) => number {\n\t\treturn function (a: any, b: any) {\n\t\t\tif (sortList && 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\n\t\t\t\t\tconst aValue = a[property];\n\t\t\t\t\tconst bValue = 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 < bValue) return -1;\n\t\t\t\t\t\t\tif (aValue > bValue) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif (aValue > bValue) return -1;\n\t\t\t\t\t\t\tif (aValue < bValue) 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 (isFunction(columnEnum)) {\n\t\t\tenumMap.set(prop, columnEnum());\n\t\t} else if (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 = col.show ?? true;\n\t\t\t// col.filterEnum = col.filterEnum ?? col.tag ?? false;\n\n\t\t\tlet enumKey = col.prop ?? col.search?.key;\n\n\t\t\tif (col.enum && isString(col.enum)) {\n\t\t\t\tenumKey = col.enum;\n\t\t\t}\n\n\t\t\t// 设置 enumMap\n\t\t\tthis.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"names":["tableUtil","formatValue","callValue","isArray","length","join","handleRowAccordingToProp","row","prop","includes","split","forEach","item","handleProp","propArr","filterEnum","enumData","fieldNames","type","value","label","filterData","find","arrayDynamicSort","sortList","a","b","condition","property","enField","order","mode","aValue","bValue","comparison","localeCompare","setEnumMap","columnEnum","enumMap","isFunction","set","flatColumns","columns","flatArr","col","_children","push","this","show","enumKey","search","key","enum","isString","filter"],"mappings":"kHAMaA,EAAY,CAKxBC,YAAYC,GAGPC,UAAQD,GAAmBA,EAAUE,OAASF,EAAUG,KAAK,OAAS,KAEnEH,EAORI,yBAAA,CAAyBC,EAAUC,IAE7BA,EAAKC,SAAS,MAEnBD,EAAKE,MAAM,KAAKC,QAASC,GAAUL,EAAMA,EAAIK,IACtCL,GAHyBA,EAAIC,IAAS,KAS9C,UAAAK,CAAWL,GACV,MAAMM,EAAUN,EAAKE,MAAM,KAC3B,OAAuB,IAAnBI,EAAQV,OAAqBI,EAC1BM,EAAQA,EAAQV,OAAS,EACjC,EAQA,UAAAW,CAAWb,EAAgBc,EAAkCC,EAA+CC,GAC3G,MAAMC,EAAQF,GAAYE,OAAS,QAC7BC,EAAQH,GAAYG,OAAS,QACnC,IAAIC,EAAkB,CAAA,EAItB,OAHIlB,EAAAA,QAAQa,KACXK,EAAaL,EAASM,KAAMV,GAAcA,EAAKO,KAAWjB,IAE9C,QAATgB,EACIG,GAAYH,MAAQ,OAGrBG,EAAaA,EAAWD,GAAS,IACzC,EAIAG,iBAAiBC,GACT,SAAUC,EAAQC,GACxB,GAAIF,GAAYA,EAASpB,OAAS,EACjC,IAAA,MAAWuB,KAAaH,EAAU,CACjC,MAAMI,EAAWD,EAAUE,QACrBC,EAAQH,EAAUI,KAElBC,EAASP,EAAEG,GACXK,EAASP,EAAEE,GAEjB,GAAsB,iBAAXI,GAAyC,iBAAXC,GACxC,GAAc,cAAVH,EAAuB,CAC1B,MAAMI,EAAaF,EAAOG,cAAcF,EAAQ,SAChD,GAAmB,IAAfC,EACH,OAAOA,CAET,MAAA,GAAqB,eAAVJ,EAAwB,CAClC,MAAMI,EAAaD,EAAOE,cAAcH,EAAQ,SAChD,GAAmB,IAAfE,EACH,OAAOA,CAET,OAEA,GAAc,cAAVJ,EAAuB,CAC1B,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,MAAA,GAAqB,eAAVH,EAAwB,CAClC,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,CAEF,CAGD,OAAO,CACR,EAKD,UAAAG,CAAWC,EAAmC7B,EAAc8B,GACtDD,IACDE,EAAAA,WAAWF,GACdC,EAAQE,IAAIhC,EAAM6B,KACRlC,UAAQkC,IAClBC,EAAQE,IAAIhC,EAAM6B,GAEpB,EAIA,WAAAI,CAAYC,EAA6BJ,GACxC,MAAMK,EAA8B,GAqBpC,OApBAD,EAAQ/B,QAASiC,IACZA,EAAIC,WAAWzC,QAClBuC,EAAQG,QAAQC,KAAKN,YAAYG,EAAIC,YAGtCF,EAAQG,KAAKF,GAGbA,EAAII,KAAOJ,EAAII,OAAQ,EAGvB,IAAIC,EAAUL,EAAIpC,MAAQoC,EAAIM,QAAQC,IAElCP,EAAIQ,MAAQC,EAAAA,SAAST,EAAIQ,QAC5BH,EAAUL,EAAIQ,MAIfL,KAAKX,WAAWQ,EAAIQ,KAAMH,EAASX,KAE7BK,EAAQW,OAAQ1C,IAAUA,EAAKiC,WAAWzC,OAClD"}
@@ -1,7 +1,11 @@
1
- import { NodeDropType, TreeKey } from './tree.props';
2
1
  import { ElTreeOutput } from './tree.type';
3
2
  import { ComponentInternalInstance } from 'vue';
4
3
  export declare const faTreeProps: {
4
+ /** @description whether Select is disabled 重载使其支持 ElForm*/
5
+ disabled: {
6
+ type: BooleanConstructor;
7
+ default: any;
8
+ };
5
9
  /** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */
6
10
  nodeKey: {
7
11
  type: StringConstructor;
@@ -92,9 +96,9 @@ export declare const faTreeProps: {
92
96
  type: BooleanConstructor;
93
97
  default: boolean;
94
98
  };
95
- defaultCheckedKeys: import('vue').PropType<TreeKey[]>;
96
- defaultExpandedKeys: import('vue').PropType<TreeKey[]>;
97
- currentNodeKey: import('vue').PropType<TreeKey>;
99
+ defaultCheckedKeys: import('vue').PropType<import('./tree.props').TreeKey[]>;
100
+ defaultExpandedKeys: import('vue').PropType<import('./tree.props').TreeKey[]>;
101
+ currentNodeKey: import('vue').PropType<import('./tree.props').TreeKey>;
98
102
  renderContent: FunctionConstructor;
99
103
  showCheckbox: {
100
104
  type: BooleanConstructor;
@@ -131,40 +135,22 @@ export declare const faTreeEmits: {
131
135
  /** @description v-model:label 回调 */
132
136
  "update:label": (value: string) => boolean;
133
137
  /** @description 数据改变 */
134
- dataChangeCallBack: (data: ElTreeOutput[], orgData: ElTreeOutput[]) => boolean;
138
+ dataChangeCallBack: (data: ElTreeOutput[]) => boolean;
135
139
  /** @description 改变 */
136
140
  change: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent) => boolean;
137
- /** @description 当节点被点击的时候触发 */
138
- nodeClick: (data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance, event?: MouseEvent) => boolean;
139
- /** @description 当某一节点被鼠标右键点击时会触发该事件 */
140
- nodeContextmenu: (event: Event, data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance) => boolean;
141
- /** @description 当复选框被点击的时候触发 */
142
- checkChange: (data: ElTreeOutput, checked: boolean, indeterminate: boolean) => boolean;
143
- /** @description 点击节点复选框之后触发 */
144
- check: (data: ElTreeOutput, node: {
145
- checkedNodes: ElTreeOutput[];
146
- checkedKeys: TreeKey[];
147
- halfCheckedNodes: ElTreeOutput[];
148
- halfCheckedKeys: TreeKey[];
149
- }) => boolean;
150
- /** @description 当前选中节点变化时触发的事件 */
151
- currentChange: (data: ElTreeOutput, node: any) => boolean;
152
- /** @description 节点被展开时触发的事件 */
153
- nodeExpand: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance) => boolean;
154
- /** @description 节点被关闭时触发的事件 */
155
- nodeCollapse: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance) => boolean;
156
- /** @description 节点开始拖拽时触发的事件 */
157
- nodeDragStart: (node: any, event: DragEvent) => boolean;
158
- /** @description 拖拽进入其他节点时触发的事件 */
159
- nodeDragEnter: (node: any, enterNode: any, event: DragEvent) => boolean;
160
- /** @description 拖拽离开某个节点时触发的事件 */
161
- nodeDragLeave: (node: any, leaveNode: any, event: DragEvent) => boolean;
162
- /** @description 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) */
163
- nodeDragOver: (node: any, dropNode: any, event: DragEvent) => boolean;
164
- /** @description 拖拽结束时(可能未成功)触发的事件 */
165
- nodeDragEnd: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => boolean;
166
- /** @description 拖拽成功完成时触发的事件 */
167
- nodeDrop: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => boolean;
141
+ 'check-change': (data: any, checked: boolean, indeterminate: boolean) => any;
142
+ 'current-change': (data: any | null, node: import('element-plus/es/components/tree/src/model/node.mjs').default | null) => boolean;
143
+ 'node-click': (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null, evt: MouseEvent) => any;
144
+ 'node-contextmenu': (evt: Event, data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null) => any;
145
+ 'node-collapse': (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null) => any;
146
+ 'node-expand': (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null) => any;
147
+ check: (data: any, checkedInfo: import('element-plus').CheckedInfo) => any;
148
+ 'node-drag-start': (node: import('element-plus/es/components/tree/src/model/node.mjs').default, evt: DragEvent) => DragEvent;
149
+ 'node-drag-end': (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropNode: import('element-plus/es/components/tree/src/model/node.mjs').default | null, dropType: import('element-plus').NodeDropType, evt: DragEvent) => DragEvent;
150
+ 'node-drop': (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropType: Exclude<import('element-plus').NodeDropType, "none">, evt: DragEvent) => DragEvent;
151
+ 'node-drag-leave': (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, oldDropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, evt: DragEvent) => DragEvent;
152
+ 'node-drag-enter': (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) => DragEvent;
153
+ 'node-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) => DragEvent;
168
154
  };
169
155
  type FaTreeSlots = {
170
156
  /** @description 默认内容插槽 */
@@ -181,6 +167,11 @@ type FaTreeSlots = {
181
167
  };
182
168
  };
183
169
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
170
+ /** @description whether Select is disabled 重载使其支持 ElForm*/
171
+ disabled: {
172
+ type: BooleanConstructor;
173
+ default: any;
174
+ };
184
175
  /** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */
185
176
  nodeKey: {
186
177
  type: StringConstructor;
@@ -271,9 +262,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
271
262
  type: BooleanConstructor;
272
263
  default: boolean;
273
264
  };
274
- defaultCheckedKeys: import('vue').PropType<TreeKey[]>;
275
- defaultExpandedKeys: import('vue').PropType<TreeKey[]>;
276
- currentNodeKey: import('vue').PropType<TreeKey>;
265
+ defaultCheckedKeys: import('vue').PropType<import('./tree.props').TreeKey[]>;
266
+ defaultExpandedKeys: import('vue').PropType<import('./tree.props').TreeKey[]>;
267
+ currentNodeKey: import('vue').PropType<import('./tree.props').TreeKey>;
277
268
  renderContent: FunctionConstructor;
278
269
  showCheckbox: {
279
270
  type: BooleanConstructor;
@@ -350,41 +341,28 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
350
341
  /** @description v-model:label 回调 */
351
342
  "update:label": (value: string) => boolean;
352
343
  /** @description 数据改变 */
353
- dataChangeCallBack: (data: ElTreeOutput[], orgData: ElTreeOutput[]) => boolean;
344
+ dataChangeCallBack: (data: ElTreeOutput[]) => boolean;
354
345
  /** @description 改变 */
355
346
  change: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent) => boolean;
356
- /** @description 当节点被点击的时候触发 */
357
- nodeClick: (data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance, event?: MouseEvent) => boolean;
358
- /** @description 当某一节点被鼠标右键点击时会触发该事件 */
359
- nodeContextmenu: (event: Event, data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance) => boolean;
360
- /** @description 当复选框被点击的时候触发 */
361
- checkChange: (data: ElTreeOutput, checked: boolean, indeterminate: boolean) => boolean;
362
- /** @description 点击节点复选框之后触发 */
363
- check: (data: ElTreeOutput, node: {
364
- checkedNodes: ElTreeOutput[];
365
- checkedKeys: TreeKey[];
366
- halfCheckedNodes: ElTreeOutput[];
367
- halfCheckedKeys: TreeKey[];
368
- }) => boolean;
369
- /** @description 当前选中节点变化时触发的事件 */
370
- currentChange: (data: ElTreeOutput, node: any) => boolean;
371
- /** @description 节点被展开时触发的事件 */
372
- nodeExpand: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance) => boolean;
373
- /** @description 节点被关闭时触发的事件 */
374
- nodeCollapse: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance) => boolean;
375
- /** @description 节点开始拖拽时触发的事件 */
376
- nodeDragStart: (node: any, event: DragEvent) => boolean;
377
- /** @description 拖拽进入其他节点时触发的事件 */
378
- nodeDragEnter: (node: any, enterNode: any, event: DragEvent) => boolean;
379
- /** @description 拖拽离开某个节点时触发的事件 */
380
- nodeDragLeave: (node: any, leaveNode: any, event: DragEvent) => boolean;
381
- /** @description 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) */
382
- nodeDragOver: (node: any, dropNode: any, event: DragEvent) => boolean;
383
- /** @description 拖拽结束时(可能未成功)触发的事件 */
384
- nodeDragEnd: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => boolean;
385
- /** @description 拖拽成功完成时触发的事件 */
386
- nodeDrop: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => boolean;
347
+ 'check-change': (data: any, checked: boolean, indeterminate: boolean) => any;
348
+ 'current-change': (data: any | null, node: import('element-plus/es/components/tree/src/model/node.mjs').default | null) => boolean;
349
+ 'node-click': (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null, evt: MouseEvent) => any;
350
+ 'node-contextmenu': (evt: Event, data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null) => any;
351
+ 'node-collapse': (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null) => any;
352
+ 'node-expand': (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance | null) => any;
353
+ check: (data: any, checkedInfo: import('element-plus').CheckedInfo) => any;
354
+ 'node-drag-start': (node: import('element-plus/es/components/tree/src/model/node.mjs').default, evt: DragEvent) => DragEvent;
355
+ 'node-drag-end': (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropNode: import('element-plus/es/components/tree/src/model/node.mjs').default | null, dropType: import('element-plus').NodeDropType, evt: DragEvent) => DragEvent;
356
+ 'node-drop': (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropType: Exclude<import('element-plus').NodeDropType, "none">, evt: DragEvent) => DragEvent;
357
+ 'node-drag-leave': (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, oldDropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, evt: DragEvent) => DragEvent;
358
+ 'node-drag-enter': (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) => DragEvent;
359
+ 'node-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) => DragEvent;
387
360
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
361
+ /** @description whether Select is disabled 重载使其支持 ElForm*/
362
+ disabled: {
363
+ type: BooleanConstructor;
364
+ default: any;
365
+ };
388
366
  /** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */
389
367
  nodeKey: {
390
368
  type: StringConstructor;
@@ -475,9 +453,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
475
453
  type: BooleanConstructor;
476
454
  default: boolean;
477
455
  };
478
- defaultCheckedKeys: import('vue').PropType<TreeKey[]>;
479
- defaultExpandedKeys: import('vue').PropType<TreeKey[]>;
480
- currentNodeKey: import('vue').PropType<TreeKey>;
456
+ defaultCheckedKeys: import('vue').PropType<import('./tree.props').TreeKey[]>;
457
+ defaultExpandedKeys: import('vue').PropType<import('./tree.props').TreeKey[]>;
458
+ currentNodeKey: import('vue').PropType<import('./tree.props').TreeKey>;
481
459
  renderContent: FunctionConstructor;
482
460
  showCheckbox: {
483
461
  type: BooleanConstructor;
@@ -531,105 +509,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
531
509
  children?: /*elided*/ any[];
532
510
  showQuantity?: boolean;
533
511
  quantity?: number;
534
- }[], orgData: {
535
- [key: string]: any;
536
- label?: string;
537
- value?: any;
538
- data?: any;
539
- hide?: boolean;
540
- disabled?: boolean;
541
- children?: /*elided*/ any[];
542
- showQuantity?: boolean;
543
- quantity?: number;
544
512
  }[]) => any;
545
- onNodeClick?: (data: {
546
- [key: string]: any;
547
- label?: string;
548
- value?: any;
549
- data?: any;
550
- hide?: boolean;
551
- disabled?: boolean;
552
- children?: /*elided*/ any[];
553
- showQuantity?: boolean;
554
- quantity?: number;
555
- }, node?: any, instance?: ComponentInternalInstance, event?: MouseEvent) => any;
556
- onNodeContextmenu?: (event: Event, data: {
557
- [key: string]: any;
558
- label?: string;
559
- value?: any;
560
- data?: any;
561
- hide?: boolean;
562
- disabled?: boolean;
563
- children?: /*elided*/ any[];
564
- showQuantity?: boolean;
565
- quantity?: number;
566
- }, node?: any, instance?: ComponentInternalInstance) => any;
567
- onCheckChange?: (data: {
568
- [key: string]: any;
569
- label?: string;
570
- value?: any;
571
- data?: any;
572
- hide?: boolean;
573
- disabled?: boolean;
574
- children?: /*elided*/ any[];
575
- showQuantity?: boolean;
576
- quantity?: number;
577
- }, checked: boolean, indeterminate: boolean) => any;
578
- onCheck?: (data: {
579
- [key: string]: any;
580
- label?: string;
581
- value?: any;
582
- data?: any;
583
- hide?: boolean;
584
- disabled?: boolean;
585
- children?: /*elided*/ any[];
586
- showQuantity?: boolean;
587
- quantity?: number;
588
- }, node: {
589
- checkedNodes: ElTreeOutput[];
590
- checkedKeys: TreeKey[];
591
- halfCheckedNodes: ElTreeOutput[];
592
- halfCheckedKeys: TreeKey[];
593
- }) => any;
594
- onCurrentChange?: (data: {
595
- [key: string]: any;
596
- label?: string;
597
- value?: any;
598
- data?: any;
599
- hide?: boolean;
600
- disabled?: boolean;
601
- children?: /*elided*/ any[];
602
- showQuantity?: boolean;
603
- quantity?: number;
604
- }, node: any) => any;
605
- onNodeExpand?: (data: {
606
- [key: string]: any;
607
- label?: string;
608
- value?: any;
609
- data?: any;
610
- hide?: boolean;
611
- disabled?: boolean;
612
- children?: /*elided*/ any[];
613
- showQuantity?: boolean;
614
- quantity?: number;
615
- }, node: any, instance: ComponentInternalInstance) => any;
616
- onNodeCollapse?: (data: {
617
- [key: string]: any;
618
- label?: string;
619
- value?: any;
620
- data?: any;
621
- hide?: boolean;
622
- disabled?: boolean;
623
- children?: /*elided*/ any[];
624
- showQuantity?: boolean;
625
- quantity?: number;
626
- }, node: any, instance: ComponentInternalInstance) => any;
627
- onNodeDragStart?: (node: any, event: DragEvent) => any;
628
- onNodeDragEnter?: (node: any, enterNode: any, event: DragEvent) => any;
629
- onNodeDragLeave?: (node: any, leaveNode: any, event: DragEvent) => any;
630
- onNodeDragOver?: (node: any, dropNode: any, event: DragEvent) => any;
631
- onNodeDragEnd?: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => any;
632
- onNodeDrop?: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => any;
513
+ "onCurrent-change"?: (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default) => any;
514
+ "onCheck-change"?: (data: any, checked: boolean, indeterminate: boolean) => any;
515
+ "onNode-click"?: (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance, evt: MouseEvent) => any;
516
+ "onNode-contextmenu"?: (evt: Event, data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance) => any;
517
+ "onNode-collapse"?: (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance) => any;
518
+ "onNode-expand"?: (data: any, node: import('element-plus/es/components/tree/src/model/node.mjs').default, nodeInstance: ComponentInternalInstance) => any;
519
+ onCheck?: (data: any, checkedInfo: import('element-plus').CheckedInfo) => any;
520
+ "onNode-drag-start"?: (node: import('element-plus/es/components/tree/src/model/node.mjs').default, evt: DragEvent) => any;
521
+ "onNode-drag-end"?: (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropType: import('element-plus').NodeDropType, evt: DragEvent) => any;
522
+ "onNode-drop"?: (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, dropType: "before" | "after" | "inner", evt: DragEvent) => any;
523
+ "onNode-drag-leave"?: (draggingNode: import('element-plus/es/components/tree/src/model/node.mjs').default, oldDropNode: import('element-plus/es/components/tree/src/model/node.mjs').default, evt: DragEvent) => any;
524
+ "onNode-drag-enter"?: (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;
525
+ "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;
633
526
  }>, {
634
527
  props: import('./tree.props').TreeOptionProps;
635
528
  data: {
@@ -643,12 +536,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
643
536
  showQuantity?: boolean;
644
537
  quantity?: number;
645
538
  }[];
539
+ disabled: boolean;
646
540
  lazy: boolean;
647
541
  modelValue: string | number | boolean | object;
648
542
  width: string | number;
649
543
  draggable: boolean;
650
- nodeKey: string;
651
544
  defaultExpandAll: boolean;
545
+ indent: number;
546
+ nodeKey: string;
652
547
  checkOnClickNode: boolean;
653
548
  highlightCurrent: boolean;
654
549
  collapseOnClickNode: boolean;
@@ -663,6 +558,5 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
663
558
  autoExpandParent: boolean;
664
559
  showCheckbox: boolean;
665
560
  accordion: boolean;
666
- indent: number;
667
561
  }, import('vue').SlotsType<Partial<import('@fast-china/utils').MakeSlots<FaTreeSlots>>>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
668
562
  export default _default;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),a=require("@element-plus/icons-vue"),r=require("@fast-china/utils"),l=require("@vueuse/core"),o=require("lodash-unified"),n=require("./tree.props.js"),d={...n.treeProps,nodeKey:{type:String,default:"value"},defaultExpandAll:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!0},highlightCurrent:{type:Boolean,default:!0},collapseOnClickNode:Boolean,modelValue:{type:r.definePropType([String,Number,Boolean,Object]),default:void 0},label:String,width:{type:[String,Number],default:180},defaultSelection:[String,Number],title:String,hamburger:Boolean,hideAll:Boolean,hideFilter:Boolean,allValue:{type:r.definePropType([String,Number,Boolean,Object]),default:void 0},data:{type:r.definePropType(Array),default:()=>[]},requestApi:{type:r.definePropType(Function)},initParam:r.definePropType([String,Number,Object])},i={"update:modelValue":e=>o.isString(e)||o.isNumber(e)||o.isBoolean(e)||o.isObject(e)||o.isNull(e),"update:label":e=>o.isString(e)||o.isNull(e),dataChangeCallBack:(e,t)=>o.isArray(e)&&o.isArray(t),change:(e,t,a,r)=>o.isObject(e)&&o.isObject(t)&&o.isObject(a)&&r instanceof MouseEvent,nodeClick:(e,t,a,r)=>o.isObject(e)&&o.isObject(t)&&o.isObject(a)&&r instanceof MouseEvent,nodeContextmenu:(e,t,a,r)=>e instanceof Event&&o.isObject(t)&&o.isObject(a)&&o.isObject(r),checkChange:(e,t,a)=>o.isObject(e)&&o.isBoolean(t)&&o.isBoolean(a),check:(e,t)=>o.isObject(e)&&o.isObject(t),currentChange:(e,t)=>o.isObject(e)&&o.isObject(t),nodeExpand:(e,t,a)=>o.isObject(e)&&o.isObject(t)&&o.isObject(a),nodeCollapse:(e,t,a)=>o.isObject(e)&&o.isObject(t)&&o.isObject(a),nodeDragStart:(e,t)=>o.isObject(e)&&t instanceof DragEvent,nodeDragEnter:(e,t,a)=>o.isObject(e)&&o.isObject(t)&&a instanceof DragEvent,nodeDragLeave:(e,t,a)=>o.isObject(e)&&o.isObject(t)&&a instanceof DragEvent,nodeDragOver:(e,t,a)=>o.isObject(e)&&o.isObject(t)&&a instanceof DragEvent,nodeDragEnd:(e,t,a,r)=>o.isObject(e)&&o.isObject(t)&&o.isString(a)&&r instanceof DragEvent,nodeDrop:(e,t,a,r)=>o.isObject(e)&&o.isObject(t)&&o.isString(a)&&r instanceof DragEvent},u=e.defineComponent({name:"FaTree",props:d,emits:i,slots:r.makeSlots(),setup(o,{attrs:d,slots:i,emit:u,expose:c}){const s=l.useVModel(o,"label",u,{passive:!0}),p=t.useGlobalSize(),g=e.reactive({value:r.withDefineType(),loading:!1,searchValue:r.withDefineType(),orgTreeData:r.withDefineType([]),treeData:r.withDefineType([]),hamburger:!1,width:e.computed(()=>{if(o.hamburger||g.hamburger)return"130px";{const e=r.addUnit(o.width);return"small"===p.value?`calc(${e} * 0.9)`:e}})}),h=e.computed(()=>0===[...g.orgTreeData].filter(e=>e[o.props.children]?.length>0).length),f=e.ref(),b=e=>{o.hideAll||e.unshift({[o.nodeKey]:o.allValue,label:"全部",all:!0}),g.treeData=e},m=async()=>{let t;if(o.nodeKey&&(t=f.value.getCurrentKey()),o.requestApi){g.loading=!0;const e={...o.initParam??{},searchValue:g.searchValue};try{const t=await o.requestApi(e);g.orgTreeData=t,b(t)}catch(a){r.consoleError("FaTree",a),g.orgTreeData=[],b([]),u("dataChangeCallBack",g.treeData,g.orgTreeData)}finally{g.loading=!1}}else g.orgTreeData=o.data,b(o.data);o.nodeKey&&t?e.nextTick(()=>{f.value.setCurrentKey(t)}):o.defaultSelection&&e.nextTick(()=>{f.value.setCurrentKey(o.defaultSelection)})},v=()=>{o.hamburger||g.hamburger?b(g.orgTreeData):g.treeData=g.orgTreeData.map(e=>({...e,[o.props.children]:[]})),g.hamburger=!g.hamburger},C=(e,t,a)=>{if(!e)return!0;let r=a.parent,l=t.all?[t.label]:[a.label],n=1;for(;n<a.level;)l=[...l,r.label],r=r.parent,n++;const d=l.some(t=>-1!==t.indexOf(e));return o.filterNodeMethod?d&&o.filterNodeMethod(e,t,a):d},N=(e,t,a,r)=>{o.expandOnClickNode&&(t.expanded?t.expanded&&o.collapseOnClickNode&&t.collapse():t.expand()),g.value=t.key,s.value=t.label,u("update:modelValue",g.value),u("change",e,t,a,r),u("nodeClick",e,t,a,r)};e.onMounted(async()=>{await m(),e.watch(()=>o.data,async()=>{o.requestApi||await m()},{deep:!0})});const y=r.useProps(o,n.treeProps,["data","expandOnClickNode","filterNodeMethod"]);return r.useRender(()=>e.withDirectives(e.createVNode("div",{class:["el-card fa-tree",`fa-tree-${p.value}`,{"fa-tree__fold":o.hamburger&&g.hamburger||h.value}],style:{width:g.width}},[(o.title||o.hamburger)&&e.createVNode("div",{class:"fa-tree__title"},[o.title&&e.createVNode("h4",null,[o.title]),o.hamburger&&(g.hamburger?e.createVNode(t.ElIcon,{onClick:v,title:"展开"},{default:()=>[e.createVNode(a.Expand,null,null)]}):e.createVNode(t.ElIcon,{onClick:v,title:"折叠"},{default:()=>[e.createVNode(a.Fold,null,null)]}))]),!o.hideFilter&&e.createVNode(t.ElInput,{class:"fa-tree__search-input",modelValue:g.searchValue,modelModifiers:{trim:!0},"onUpdate:modelValue":e=>g.searchValue=e,placeholder:o.hamburger||g.hamburger?"关键字过滤":"输入关键字进行过滤",clearable:!0,onInput:e=>f.value.filter(e)},null),e.createVNode(t.ElScrollbar,{class:"fa-tree__scrollbar"},{default:()=>[e.createVNode(t.ElTree,e.mergeProps(y.value,{ref:f,data:g.treeData,expandOnClickNode:!o.checkOnClickNode&&o.expandOnClickNode,filterNodeMethod:C,onNodeClick:N,onNodeContextmenu:(e,t,a,r)=>u("nodeContextmenu",e,t,a,r),onCheckChange:(e,t,a)=>u("checkChange",e,t,a),onCheck:(e,t)=>u("check",e,t),onCurrentChange:(e,t)=>u("currentChange",e,t),onNodeExpand:(e,t,a)=>u("nodeExpand",e,t,a),onNodeCollapse:(e,t,a)=>u("nodeCollapse",e,t,a),onNodeDragStart:(e,t)=>u("nodeDragStart",e,t),onNodeDragEnter:(e,t,a)=>u("nodeDragEnter",e,t,a),onNodeDragLeave:(e,t,a)=>u("nodeDragLeave",e,t,a),onNodeDragOver:(e,t,a)=>u("nodeDragOver",e,t,a),onNodeDragEnd:(e,t,a,r)=>u("nodeDragEnd",e,t,a,r),onNodeDrop:(e,t,a,r)=>u("nodeDrop",e,t,a,r)}),{default:({node:t,data:a})=>e.createVNode("span",{class:"el-tree-node__label",title:a?.all?a.label:t.label,style:{paddingLeft:h.value?"3px":""}},[e.createVNode("span",null,[i.label?i.label({node:t,data:a}):a?.all?a.label:t.label]),t.key&&a.showQuantity?e.createVNode("span",null,[e.createTextVNode("["),a.quantity,e.createTextVNode("]")]):null,i.default&&e.createVNode("span",null,[i.default({node:t,data:a})])]),...i.empty&&{empty:()=>i.empty()}})]})]),[[e.resolveDirective("loading"),g.loading]])),r.useExpose(c,{filter:e.computed(()=>f.value?.filter),updateKeyChildren:e.computed(()=>f.value?.updateKeyChildren),getCheckedNodes:e.computed(()=>f.value?.getCheckedNodes),setCheckedNodes:e.computed(()=>f.value?.setCheckedNodes),getCheckedKeys:e.computed(()=>f.value?.getCheckedKeys),setCheckedKeys:e.computed(()=>f.value?.setCheckedKeys),setChecked:e.computed(()=>f.value?.setChecked),getHalfCheckedNodes:e.computed(()=>f.value?.getHalfCheckedNodes),getHalfCheckedKeys:e.computed(()=>f.value?.getHalfCheckedKeys),getCurrentKey:e.computed(()=>f.value?.getCurrentKey),getCurrentNode:e.computed(()=>f.value?.getCurrentNode),setCurrentKey:e.computed(()=>f.value?.setCurrentKey),setCurrentNode:e.computed(()=>f.value?.setCurrentNode),getNode:e.computed(()=>f.value?.getNode),remove:e.computed(()=>f.value?.remove),append:e.computed(()=>f.value?.append),insertBefore:e.computed(()=>f.value?.insertBefore),insertAfter:e.computed(()=>f.value?.insertAfter),loading:e.computed(()=>g.loading),refresh:m})}});exports.default=u,exports.faTreeEmits=i,exports.faTreeProps=d;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),a=require("@element-plus/icons-vue"),l=require("@fast-china/utils"),r=require("@vueuse/core"),d=require("lodash-unified"),o=require("./tree.props.js"),u={...o.treeProps,disabled:{type:Boolean,default:void 0},nodeKey:{type:String,default:"value"},defaultExpandAll:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!0},highlightCurrent:{type:Boolean,default:!0},collapseOnClickNode:Boolean,modelValue:{type:l.definePropType([String,Number,Boolean,Object]),default:void 0},label:String,width:{type:[String,Number],default:180},defaultSelection:[String,Number],title:String,hamburger:Boolean,hideAll:Boolean,hideFilter:Boolean,allValue:{type:l.definePropType([String,Number,Boolean,Object]),default:void 0},data:{type:l.definePropType(Array),default:()=>[]},requestApi:{type:l.definePropType(Function)},initParam:l.definePropType([String,Number,Object])},n={...t.treeEmits,"update:modelValue":e=>d.isString(e)||d.isNumber(e)||d.isBoolean(e)||d.isObject(e)||d.isNull(e),"update:label":e=>d.isString(e)||d.isNull(e),dataChangeCallBack:e=>d.isArray(e),change:(e,t,a,l)=>!0},i=e.defineComponent({name:"FaTree",props:u,emits:n,slots:l.makeSlots(),setup(d,{attrs:u,slots:n,emit:i,expose:c}){const s=r.useVModel(d,"label",i),p=t.useGlobalSize(),h=e.reactive({value:l.withDefineType(),loading:!1,searchValue:l.withDefineType(),orgTreeData:l.withDefineType([]),treeData:l.withDefineType([]),hamburger:d.hamburger||!1,width:e.computed(()=>{if(h.hamburger)return"130px";{const e=l.addUnit(d.width);return"small"===p.value?`calc(${e} * 0.9)`:e}})}),f=e.computed(()=>0===[...h.orgTreeData].filter(e=>e[d.props.children]?.length>0).length),m=e.ref(),g=async()=>{let t;d.nodeKey&&(t=m.value.getCurrentKey());let a=[];if(d.requestApi){h.loading=!0;const e={...d.initParam??{},searchValue:h.searchValue};try{a=await d.requestApi(e)}catch(r){l.consoleError("FaTree",r)}finally{h.loading=!1}}else a=d.data;d.hideAll||a.unshift({[d.nodeKey]:d.allValue,label:"全部",value:null,all:!0}),h.orgTreeData=a,h.treeData=a,i("dataChangeCallBack",h.treeData),d.nodeKey&&t?e.nextTick(()=>{m.value.setCurrentKey(t)}):d.defaultSelection&&e.nextTick(()=>{m.value.setCurrentKey(d.defaultSelection)})},y=()=>{h.hamburger?h.treeData=h.orgTreeData:h.treeData=h.orgTreeData.map(e=>({...e,[d.props.children]:[]})),h.hamburger=!h.hamburger},v=(e,t,a)=>{if(!e)return!0;let l=a.parent,r=t.all?[t.label]:[a.label],o=1;for(;o<a.level;)r=[...r,l.label],l=l.parent,o++;const u=r.some(t=>-1!==t.indexOf(e));return d.filterNodeMethod?u&&d.filterNodeMethod(e,t,a):u},N=(e,t,a,l)=>{d.expandOnClickNode&&(t.expanded?t.expanded&&d.collapseOnClickNode&&t.collapse():t.expand()),h.value=t.key,s.value=t.label,i("update:modelValue",h.value),i("change",e,t,a,l),i("node-click",e,t,a,l)};e.onMounted(async()=>{await g(),e.watch(()=>d.data,async()=>{d.requestApi||await g()},{deep:!0})});const b=l.useProps(d,o.treeProps,["data","expandOnClickNode","filterNodeMethod"]),C=l.useEmits(t.treeEmits,i,["node-click"]);return l.useRender(()=>e.withDirectives(e.createVNode("div",{class:["el-card fa-tree",`fa-tree-${p.value}`,{"fa-tree__fold":h.hamburger||f.value}],style:{width:h.width}},[(d.title||d.hamburger)&&e.createVNode("div",{class:"fa-tree__title"},[d.title&&e.createVNode("h4",null,[d.title]),d.hamburger&&(h.hamburger?e.createVNode(t.ElIcon,{onClick:y,title:"展开"},{default:()=>[e.createVNode(a.Expand,null,null)]}):e.createVNode(t.ElIcon,{onClick:y,title:"折叠"},{default:()=>[e.createVNode(a.Fold,null,null)]}))]),!d.hideFilter&&e.createVNode(t.ElInput,{class:"fa-tree__search-input",modelValue:h.searchValue,modelModifiers:{trim:!0},"onUpdate:modelValue":e=>h.searchValue=e,placeholder:h.hamburger?"关键字过滤":"输入关键字进行过滤",clearable:!0,onInput:e=>m.value.filter(e)},null),e.createVNode(t.ElScrollbar,{class:"fa-tree__scrollbar"},{default:()=>[e.createVNode(t.ElTree,e.mergeProps(b.value,C.value,{ref:m,data:h.treeData,expandOnClickNode:!d.checkOnClickNode&&d.expandOnClickNode,filterNodeMethod:v,onNodeClick:N}),{default:({node:t,data:a})=>e.createVNode("span",{class:"el-tree-node__label",title:a?.all?a.label:t.label,style:{paddingLeft:f.value?"3px":""}},[e.createVNode("div",null,[a?.all?a.label:n.label?n.label({node:t,data:a}):t.label]),t.key&&a.showQuantity?e.createVNode("span",null,[e.createTextVNode("["),a.quantity,e.createTextVNode("]")]):null,!a?.all&&n.default&&e.createVNode("span",null,[n.default({node:t,data:a})])]),...n.empty&&{empty:()=>n.empty()}})]})]),[[e.resolveDirective("loading"),h.loading]])),l.useExpose(c,{filter:e.computed(()=>m.value?.filter),updateKeyChildren:e.computed(()=>m.value?.updateKeyChildren),getCheckedNodes:e.computed(()=>m.value?.getCheckedNodes),setCheckedNodes:e.computed(()=>m.value?.setCheckedNodes),getCheckedKeys:e.computed(()=>m.value?.getCheckedKeys),setCheckedKeys:e.computed(()=>m.value?.setCheckedKeys),setChecked:e.computed(()=>m.value?.setChecked),getHalfCheckedNodes:e.computed(()=>m.value?.getHalfCheckedNodes),getHalfCheckedKeys:e.computed(()=>m.value?.getHalfCheckedKeys),getCurrentKey:e.computed(()=>m.value?.getCurrentKey),getCurrentNode:e.computed(()=>m.value?.getCurrentNode),setCurrentKey:e.computed(()=>m.value?.setCurrentKey),setCurrentNode:e.computed(()=>m.value?.setCurrentNode),getNode:e.computed(()=>m.value?.getNode),remove:e.computed(()=>m.value?.remove),append:e.computed(()=>m.value?.append),insertBefore:e.computed(()=>m.value?.insertBefore),insertAfter:e.computed(()=>m.value?.insertAfter),loading:e.computed(()=>h.loading),refresh:g})}});exports.default=i,exports.faTreeEmits=n,exports.faTreeProps=u;
2
2
  //# sourceMappingURL=tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sources":["../../../../../packages/components/tree/src/tree.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, useGlobalSize } from \"element-plus\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { addUnit, consoleError, definePropType, makeSlots, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport { treeProps } from \"./tree.props\";\nimport type { FilterValue, NodeDropType, TreeKey, TreeNodeData } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\n\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** @description 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 折叠 */\n\thamburger: Boolean,\n\t/** @description 隐藏全部 */\n\thideAll: Boolean,\n\t/** @description 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** @description 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: (): ElTreeOutput[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faTreeEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string): boolean => isString(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElTreeOutput[], orgData: ElTreeOutput[]): boolean => isArray(data) && isArray(orgData),\n\t/** @description 改变 */\n\tchange: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance) && event instanceof MouseEvent,\n\t/** @description 当节点被点击的时候触发 */\n\tnodeClick: (data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance, event?: MouseEvent): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance) && event instanceof MouseEvent,\n\t/** @description 当某一节点被鼠标右键点击时会触发该事件 */\n\tnodeContextmenu: (event: Event, data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance): boolean =>\n\t\tevent instanceof Event && isObject(data) && isObject(node) && isObject(instance),\n\t/** @description 当复选框被点击的时候触发 */\n\tcheckChange: (data: ElTreeOutput, checked: boolean, indeterminate: boolean): boolean =>\n\t\tisObject(data) && isBoolean(checked) && isBoolean(indeterminate),\n\t/** @description 点击节点复选框之后触发 */\n\tcheck: (\n\t\tdata: ElTreeOutput,\n\t\tnode: {\n\t\t\tcheckedNodes: ElTreeOutput[];\n\t\t\tcheckedKeys: TreeKey[];\n\t\t\thalfCheckedNodes: ElTreeOutput[];\n\t\t\thalfCheckedKeys: TreeKey[];\n\t\t}\n\t): boolean => isObject(data) && isObject(node),\n\t/** @description 当前选中节点变化时触发的事件 */\n\tcurrentChange: (data: ElTreeOutput, node: any): boolean => isObject(data) && isObject(node),\n\t/** @description 节点被展开时触发的事件 */\n\tnodeExpand: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 节点被关闭时触发的事件 */\n\tnodeCollapse: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 节点开始拖拽时触发的事件 */\n\tnodeDragStart: (node: any, event: DragEvent): boolean => isObject(node) && event instanceof DragEvent,\n\t/** @description 拖拽进入其他节点时触发的事件 */\n\tnodeDragEnter: (node: any, enterNode: any, event: DragEvent): boolean => isObject(node) && isObject(enterNode) && event instanceof DragEvent,\n\t/** @description 拖拽离开某个节点时触发的事件 */\n\tnodeDragLeave: (node: any, leaveNode: any, event: DragEvent): boolean => isObject(node) && isObject(leaveNode) && event instanceof DragEvent,\n\t/** @description 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) */\n\tnodeDragOver: (node: any, dropNode: any, event: DragEvent): boolean => isObject(node) && isObject(dropNode) && event instanceof DragEvent,\n\t/** @description 拖拽结束时(可能未成功)触发的事件 */\n\tnodeDragEnd: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent): boolean =>\n\t\tisObject(node) && isObject(dropNode) && isString(dropType) && event instanceof DragEvent,\n\t/** @description 拖拽成功完成时触发的事件 */\n\tnodeDrop: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent): boolean =>\n\t\tisObject(node) && isObject(dropNode) && isString(dropType) && event instanceof DragEvent,\n};\n\ntype FaTreeSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: any; data: ElTreeOutput };\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 显示内容插槽 */\n\tlabel: { node: any; data: ElTreeOutput };\n};\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object>(),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\torgTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (props.hamburger || state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addUnit(props.width);\n\t\t\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\n\t\t/** @description 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => [...state.orgTreeData].filter((f) => f[props.props.children]?.length > 0).length === 0);\n\n\t\tconst treeRef = ref<InstanceType<typeof ElTree>>();\n\n\t\tconst setTreeData = (treeData: ElTreeOutput[] | any[]): void => {\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", all: true } as any);\n\t\t\t}\n\t\t\tstate.treeData = treeData;\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\tlet curSelectedData;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tcurSelectedData = treeRef.value.getCurrentKey();\n\t\t\t}\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = { ...(props.initParam ?? {}), searchValue: state.searchValue };\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\tstate.orgTreeData = resData;\n\t\t\t\t\tsetTreeData(resData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaTree\", error);\n\t\t\t\t\tstate.orgTreeData = [];\n\t\t\t\t\tsetTreeData([]);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.treeData, state.orgTreeData);\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstate.orgTreeData = props.data;\n\t\t\t\tsetTreeData(props.data);\n\t\t\t}\n\t\t\tif (props.nodeKey && curSelectedData) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value.setCurrentKey(curSelectedData);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (props.defaultSelection) {\n\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\ttreeRef.value.setCurrentKey(props.defaultSelection);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = (): void => {\n\t\t\tif (props.hamburger || state.hamburger) {\n\t\t\t\tsetTreeData(state.orgTreeData);\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.orgTreeData.map((m) => ({ ...m, [props.props.children]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: any): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels = data.all ? [data.label] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst result = labels.some((label) => label.indexOf(value) !== -1);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): void => {\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.value = node.key;\n\t\t\tselectedLabel.value = node.label;\n\t\t\temit(\"update:modelValue\", state.value);\n\t\t\temit(\"change\", data, node, instance, event);\n\t\t\temit(\"nodeClick\", data, node, instance, event);\n\t\t};\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${_globalSize.value}`, { \"fa-tree__fold\": (props.hamburger && state.hamburger) || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={props.hamburger || state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\tonInput={(value) => treeRef.value.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNodeClick={handleNodeClick}\n\t\t\t\t\t\tonNodeContextmenu={(event: Event, data: ElTreeOutput, node?: any, instance?: ComponentInternalInstance) =>\n\t\t\t\t\t\t\temit(\"nodeContextmenu\", event, data, node, instance)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCheckChange={(data: ElTreeOutput, checked: boolean, indeterminate: boolean) =>\n\t\t\t\t\t\t\temit(\"checkChange\", data, checked, indeterminate)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCheck={(\n\t\t\t\t\t\t\tdata: ElTreeOutput,\n\t\t\t\t\t\t\tnode: {\n\t\t\t\t\t\t\t\tcheckedNodes: ElTreeOutput[];\n\t\t\t\t\t\t\t\tcheckedKeys: TreeKey[];\n\t\t\t\t\t\t\t\thalfCheckedNodes: ElTreeOutput[];\n\t\t\t\t\t\t\t\thalfCheckedKeys: TreeKey[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) => emit(\"check\", data, node)}\n\t\t\t\t\t\tonCurrentChange={(data: ElTreeOutput, node: any) => emit(\"currentChange\", data, node)}\n\t\t\t\t\t\tonNodeExpand={(data: ElTreeOutput, node: any, instance: ComponentInternalInstance) =>\n\t\t\t\t\t\t\temit(\"nodeExpand\", data, node, instance)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNodeCollapse={(data: ElTreeOutput, node: any, instance: ComponentInternalInstance) =>\n\t\t\t\t\t\t\temit(\"nodeCollapse\", data, node, instance)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNodeDragStart={(node: any, event: DragEvent) => emit(\"nodeDragStart\", node, event)}\n\t\t\t\t\t\tonNodeDragEnter={(node: any, enterNode: any, event: DragEvent) => emit(\"nodeDragEnter\", node, enterNode, event)}\n\t\t\t\t\t\tonNodeDragLeave={(node: any, leaveNode: any, event: DragEvent) => emit(\"nodeDragLeave\", node, leaveNode, event)}\n\t\t\t\t\t\tonNodeDragOver={(node: any, dropNode: any, event: DragEvent) => emit(\"nodeDragOver\", node, dropNode, event)}\n\t\t\t\t\t\tonNodeDragEnd={(node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) =>\n\t\t\t\t\t\t\temit(\"nodeDragEnd\", node, dropNode, dropType, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNodeDrop={(node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) =>\n\t\t\t\t\t\t\temit(\"nodeDrop\", node, dropNode, dropType, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: any; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label\"\n\t\t\t\t\t\t\t\t\ttitle={data?.all ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span>{slots.label ? slots.label({ node, data }) : data?.all ? data.label : node.label}</span>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** @description \t若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"names":["faTreeProps","treeProps","nodeKey","type","String","default","defaultExpandAll","Boolean","checkOnClickNode","highlightCurrent","collapseOnClickNode","modelValue","definePropType","Number","Object","undefined","label","width","defaultSelection","title","hamburger","hideAll","hideFilter","allValue","data","Array","requestApi","Function","initParam","faTreeEmits","isString","value","isNumber","isBoolean","isObject","isNull","dataChangeCallBack","orgData","isArray","change","node","instance","event","MouseEvent","nodeClick","nodeContextmenu","Event","checkChange","checked","indeterminate","check","currentChange","nodeExpand","nodeCollapse","nodeDragStart","DragEvent","nodeDragEnter","enterNode","nodeDragLeave","leaveNode","nodeDragOver","dropNode","nodeDragEnd","dropType","nodeDrop","Tree","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","passive","_globalSize","useGlobalSize","state","reactive","withDefineType","loading","searchValue","orgTreeData","treeData","computed","addUnit","fold","filter","f","children","length","treeRef","ref","setTreeData","unshift","all","loadData","async","curSelectedData","getCurrentKey","params","resData","error","consoleError","nextTick","setCurrentKey","handleHamburgerClick","map","m","handleFilterNode","child","parentNode","parent","labels","level","result","some","indexOf","filterNodeMethod","handleNodeClick","expandOnClickNode","expanded","collapse","expand","key","onMounted","watch","deep","elTreeProps","useProps","useRender","_withDirectives","_createVNode","class","style","ElIcon","onClick","Expand","Fold","ElInput","modelModifiers","trim","$event","placeholder","clearable","onInput","ElScrollbar","ElTree","_mergeProps","onNodeClick","onNodeContextmenu","onCheckChange","onCheck","onCurrentChange","onNodeExpand","onNodeCollapse","onNodeDragStart","onNodeDragEnter","onNodeDragLeave","onNodeDragOver","onNodeDragEnd","onNodeDrop","paddingLeft","showQuantity","_createTextVNode","quantity","empty","_resolveDirective","useExpose","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentNode","setCurrentNode","getNode","remove","append","insertBefore","insertAfter","refresh"],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sources":["../../../../../packages/components/tree/src/tree.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, useGlobalSize } from \"element-plus\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { addUnit, consoleError, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport { treeProps } from \"./tree.props\";\nimport type { FilterValue, TreeNodeData } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\n\nexport const faTreeProps = {\n\t...treeProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** @description 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 折叠 */\n\thamburger: Boolean,\n\t/** @description 隐藏全部 */\n\thideAll: Boolean,\n\t/** @description 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** @description 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: (): ElTreeOutput[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string): boolean => isString(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElTreeOutput[]): boolean => isArray(data),\n\t/** @description 改变 */\n\tchange: (data: ElTreeOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): boolean => true,\n};\n\ntype FaTreeSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: any; data: ElTreeOutput };\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 显示内容插槽 */\n\tlabel: { node: any; data: ElTreeOutput };\n};\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit);\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object>(),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\torgTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: props.hamburger || false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addUnit(props.width);\n\t\t\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\n\t\t/** @description 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => [...state.orgTreeData].filter((f) => f[props.props.children]?.length > 0).length === 0);\n\n\t\tconst treeRef = ref<InstanceType<typeof ElTree>>();\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\tlet curSelectedData;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tcurSelectedData = treeRef.value.getCurrentKey();\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[] = [];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = { ...(props.initParam ?? {}), searchValue: state.searchValue };\n\t\t\t\ttry {\n\t\t\t\t\ttreeData = await props.requestApi(params);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaTree\", error);\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data;\n\t\t\t}\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true } as any);\n\t\t\t}\n\t\t\tstate.orgTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChangeCallBack\", state.treeData);\n\t\t\tif (props.nodeKey && curSelectedData) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value.setCurrentKey(curSelectedData);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (props.defaultSelection) {\n\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\ttreeRef.value.setCurrentKey(props.defaultSelection);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = (): void => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.orgTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.orgTreeData.map((m) => ({ ...m, [props.props.children]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: any): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels = data.all ? [data.label] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst result = labels.some((label) => label.indexOf(value) !== -1);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): void => {\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.value = node.key;\n\t\t\tselectedLabel.value = node.label;\n\t\t\temit(\"update:modelValue\", state.value);\n\t\t\temit(\"change\", data, node, instance, event);\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${_globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\tonInput={(value) => treeRef.value.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNodeClick={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: any; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label\"\n\t\t\t\t\t\t\t\t\ttitle={data?.all ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data?.all ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data?.all && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** @description \t若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"names":["faTreeProps","treeProps","disabled","type","Boolean","default","undefined","nodeKey","String","defaultExpandAll","checkOnClickNode","highlightCurrent","collapseOnClickNode","modelValue","definePropType","Number","Object","label","width","defaultSelection","title","hamburger","hideAll","hideFilter","allValue","data","Array","requestApi","Function","initParam","faTreeEmits","treeEmits","isString","value","isNumber","isBoolean","isObject","isNull","dataChangeCallBack","isArray","change","node","instance","event","Tree","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","_globalSize","useGlobalSize","state","reactive","withDefineType","loading","searchValue","orgTreeData","treeData","computed","addUnit","fold","filter","f","children","length","treeRef","ref","loadData","async","curSelectedData","getCurrentKey","params","error","consoleError","unshift","all","nextTick","setCurrentKey","handleHamburgerClick","map","m","handleFilterNode","child","parentNode","parent","labels","level","result","some","indexOf","filterNodeMethod","handleNodeClick","expandOnClickNode","expanded","collapse","expand","key","onMounted","watch","deep","elTreeProps","useProps","elTreeEmits","useEmits","useRender","_withDirectives","_createVNode","class","style","ElIcon","onClick","Expand","Fold","ElInput","modelModifiers","trim","$event","placeholder","clearable","onInput","ElScrollbar","ElTree","_mergeProps","onNodeClick","paddingLeft","showQuantity","_createTextVNode","quantity","empty","_resolveDirective","useExpose","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentNode","setCurrentNode","getNode","remove","append","insertBefore","insertAfter","refresh"],"mappings":"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"}