fast-element-plus 1.0.11 → 1.0.12

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 (67) hide show
  1. package/dist/index.full.js +59 -28
  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 +59 -28
  8. package/dist/index.full.mjs.map +1 -1
  9. package/es/components/avatar/src/avatar.d.ts +37 -9
  10. package/es/components/button/src/button.d.ts +1 -1
  11. package/es/components/dialog/src/dialog.d.ts +3 -3
  12. package/es/components/form/src/form.d.ts +3 -3
  13. package/es/components/form/src/formItem.d.ts +7 -7
  14. package/es/components/icon/src/icon.d.ts +3 -3
  15. package/es/components/image/src/image.d.ts +2 -2
  16. package/es/components/inputDialogPage/src/inputDialogPage.d.ts +3 -3
  17. package/es/components/layoutGrid/src/layoutGrid.d.ts +2 -2
  18. package/es/components/layoutGrid/src/layoutGridItem.d.ts +4 -4
  19. package/es/components/select/src/select.d.ts +4 -4
  20. package/es/components/selectPage/src/selectPage.d.ts +3 -3
  21. package/es/components/selectV2/src/selectV2.d.ts +7 -7
  22. package/es/components/table/src/table.d.ts +27 -20
  23. package/es/components/table/src/table.mjs +1 -1
  24. package/es/components/table/src/table.mjs.map +1 -1
  25. package/es/components/table/src/tableColumn.d.ts +8 -8
  26. package/es/components/table/src/useTable.d.ts +1 -1
  27. package/es/components/table/src/useTable.mjs +1 -1
  28. package/es/components/table/src/useTable.mjs.map +1 -1
  29. package/es/components/tree/src/tree.d.ts +6 -6
  30. package/es/components/treeSelect/src/treeSelect.d.ts +3 -3
  31. package/es/components/upload/src/upload.d.ts +8 -4
  32. package/es/components/upload/src/useUpload.d.ts +4 -4
  33. package/es/components/uploadImage/src/uploadImage.d.ts +17 -13
  34. package/es/components/uploadImages/src/uploadImages.d.ts +11 -7
  35. package/es/version.d.ts +1 -1
  36. package/es/version.mjs +1 -1
  37. package/es/version.mjs.map +1 -1
  38. package/lib/components/avatar/src/avatar.d.ts +37 -9
  39. package/lib/components/button/src/button.d.ts +1 -1
  40. package/lib/components/dialog/src/dialog.d.ts +3 -3
  41. package/lib/components/form/src/form.d.ts +3 -3
  42. package/lib/components/form/src/formItem.d.ts +7 -7
  43. package/lib/components/icon/src/icon.d.ts +3 -3
  44. package/lib/components/image/src/image.d.ts +2 -2
  45. package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +3 -3
  46. package/lib/components/layoutGrid/src/layoutGrid.d.ts +2 -2
  47. package/lib/components/layoutGrid/src/layoutGridItem.d.ts +4 -4
  48. package/lib/components/select/src/select.d.ts +4 -4
  49. package/lib/components/selectPage/src/selectPage.d.ts +3 -3
  50. package/lib/components/selectV2/src/selectV2.d.ts +7 -7
  51. package/lib/components/table/src/table.d.ts +27 -20
  52. package/lib/components/table/src/table.js +1 -1
  53. package/lib/components/table/src/table.js.map +1 -1
  54. package/lib/components/table/src/tableColumn.d.ts +8 -8
  55. package/lib/components/table/src/useTable.d.ts +1 -1
  56. package/lib/components/table/src/useTable.js +1 -1
  57. package/lib/components/table/src/useTable.js.map +1 -1
  58. package/lib/components/tree/src/tree.d.ts +6 -6
  59. package/lib/components/treeSelect/src/treeSelect.d.ts +3 -3
  60. package/lib/components/upload/src/upload.d.ts +8 -4
  61. package/lib/components/upload/src/useUpload.d.ts +4 -4
  62. package/lib/components/uploadImage/src/uploadImage.d.ts +17 -13
  63. package/lib/components/uploadImages/src/uploadImages.d.ts +11 -7
  64. package/lib/version.d.ts +1 -1
  65. package/lib/version.js +1 -1
  66. package/lib/version.js.map +1 -1
  67. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{ref as a,reactive as e,provide as t,computed as o,nextTick as r,watch as n}from"vue";import{useGlobalSize as s,dayjs as l}from"element-plus";import{consoleError as i,clickUtil as c,execFunction as p}from"@fast-china/utils";import{isFunction as h,isArray as g}from"lodash-unified";import{tableUtil as m}from"../utils/table.mjs";import{getTableDefaultSlots as d}from"./table.type.mjs";const u=/* @__PURE__ */Symbol("tableState"),b=/* @__PURE__ */Symbol("enumMap"),P=(P,f,C)=>{const w=s(),S=a(),_=a(),D=e(/* @__PURE__ */new Map);t(b,D);const y=e({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:o(()=>y.orgColumns.filter(a=>a.prop&&!a.pureSearch)),searchColumns:o(()=>y.orgColumns.filter(a=>a.pureSearch||a.search).sort((a,e)=>a.search?.order-e.search?.order)),spanColumns:o(()=>[...y.orgColumns.filter(a=>a.spanProp).map(a=>({prop:a?.prop,spanProp:a?.spanProp})),...P.props.span?[{prop:"__table-index",spanProp:P.props.span},{prop:"__table-selection",spanProp:P.props.span},{prop:"__table-operation",spanProp:P.props.span}]:[]]),tableData:[],tableSpanData:o(()=>{if(y.spanColumns?.length>0&&y.tableData?.length>0){const a=[];y.spanColumns.forEach(e=>{a[e.prop]=new Array(y.tableData.length).fill(1,0,1).fill(0,1),a[`${e.prop}-index`]=0});for(let e=1;e<y.tableData.length;e++)y.spanColumns.forEach(t=>{y.tableData[e][t.spanProp]===y.tableData[e-1][t.spanProp]?a[t.prop][a[`${t.prop}-index`]]++:(a[`${t.prop}-index`]=e,a[t.prop][e]=1)});return a}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",searchForm:P.searchForm,selected:!1,selectedList:[],selectedListIds:o(()=>y.selectedList.map(a=>h(P.rowKey)?P.rowKey(a):a[P.rowKey])),indeterminateSelectedListIds:[],responseConfig:void 0,operationColumnWidth:o(()=>{const a=y.autoColumnWidth.find(a=>"__table-operation"===a.prop);if(a)return`${a.width}px`;switch(w.value){case"large":case"default":return"54px";case"small":return"42px";default:return"auto"}}),imagePreview:!1,previewList:[],tableWidth:void 0,tableHeight:void 0,autoColumnWidth:[]});t(u,y);const x=()=>{y.loading=!0,y.loadingText="加载中...",y.autoColumnWidth=[];const a=y.tableColumns.filter(a=>a.autoWidth);if(f?.operation&&a.push({prop:"__table-operation"}),a?.length>0){const e="default"===w.value?25:17;r(()=>{const t=document.querySelector(`.fa-table__${P.tableKey}`);t&&a.forEach(a=>{const o=t.querySelector(`.__fa-table__auto-width-column__cell-header__${a?.prop}`),r=t.querySelectorAll(`.__fa-table__auto-width-column__cell__${a?.prop}`);let n=0;o&&(n=Math.ceil(o.scrollWidth)+e,a?.sortable&&(n+=24)),r.forEach(a=>{const t=Math.ceil(a.scrollWidth)+e;t>n&&(n=t)});const s=y.autoColumnWidth.find(e=>e.prop===a?.prop);s?s.width=Math.max(s.width,n):y.autoColumnWidth.push({prop:a?.prop,width:n})})})}y.loading=!1},M=a=>{if(P.treeData){const e=[];return a.forEach(a=>{const t=a[P.props.children];g(t)?t.forEach(t=>e.push({...a,...t})):e.push({...a,...t||{}})}),e}return a},k=()=>{const a={...y.searchParam,...P.pagination?y.tablePagination:{}};return delete a.totalRows,a},z=async()=>{if(y.loading=!0,y.loadingText="加载中...",P.requestApi){const e=k();C("refresh",e);let t=[];try{const a=await P.requestApi(e);if(P.dataCallback&&P.dataCallback(a),P.pagination){const e=a;t=e.rows,Object.assign(y.tablePagination,{pageIndex:e.pageIndex,pageSize:e.pageSize,totalRows:e.totalRows})}else t=a,Object.assign(y.tablePagination,{pageIndex:1,pageSize:0,totalRows:t.length});y.tableData=M(t)}catch(a){i("FaTable",a),y.tableData=[]}finally{y.loading=!1}}else{C("refresh",{searchValue:y.searchParam.searchValue});let a=M(P.data);if(a=a.filter(a=>!y.searchParam.searchValue||y.tableColumns.some(e=>a[e.prop]?.toString()?.toLowerCase().includes(y.searchParam.searchValue?.toLowerCase()))),y.searchParam.sortList?.length>0&&(a=a.sort(m.arrayDynamicSort(y.searchParam.sortList))),P.pagination){Object.assign(y.tablePagination,{totalRows:a.length});const e=(y.tablePagination.pageIndex-1)*y.tablePagination.pageSize,t=e+y.tablePagination.pageSize;y.tableData=a.slice(e,t)}else y.tableData=a,Object.assign(y.tablePagination,{pageIndex:1,pageSize:0,totalRows:a.length});y.loading=!1}x()},Y=()=>{let a=P.columns?P.columns:[];a.forEach(a=>{(a.pureSearch||a.search)&&(a.search.key??=a.prop,a.search.label??=a.label,a.search.defaultValue&&(y.searchParam[a.search.key]=a.search.defaultValue))}),a=a.sort((a,e)=>a?.order-e?.order),y.orgColumns=m.flatColumns(a,D)},R=()=>{if(P.hideSearchTime)y.searchParam.searchTimeList=void 0;else{const a=/* @__PURE__ */new Date,e=/* @__PURE__ */new Date;switch(P.dataSearchRange){case"Past1D":e.setDate(e.getDate()-1);break;case"Past3D":e.setDate(e.getDate()-3);break;case"Past1W":e.setDate(e.getDate()-7);break;case"Past1M":e.setMonth(e.getMonth()-1);break;case"Past3M":e.setMonth(e.getMonth()-3);break;case"Past6M":e.setMonth(e.getMonth()-6);break;case"Past1Y":e.setFullYear(e.getFullYear()-1);break;case"Past3Y":e.setFullYear(e.getFullYear()-3)}y.searchParam.searchTimeList=[l(e).format("YYYY-MM-DD 00:00:00"),l(a).format("YYYY-MM-DD 23:59:59")]}},W=async()=>{y.tablePagination.pageIndex=1,(()=>{const a={};for(const e in y.searchParam)y.searchParam[e]||!1===y.searchParam[e]||0===y.searchParam[e]?a[e]=y.searchParam[e]:y.searchParam[e]||delete y.searchParam[e];Object.assign(y.searchParam,a)})(),await z()},I=async()=>{y.orgColumns=[],y.autoColumnWidth=[],y.tableData=[],await c.debounceAsync(async()=>{Y(),await W()},300)};return n(()=>P.tableKey,async()=>{await I()}),n(()=>P.searchForm,a=>{y.searchForm=a}),{_globalSize:w,state:y,elementRef:S,tableRef:_,handleTableColumnAutoWidth:x,getRequestParam:k,loadTableColumns:Y,handleSizeChange:a=>{y.tablePagination.pageIndex=1,y.tablePagination.pageSize=a,C("sizeChange",a),C("paginationChange",1,a),z()},handlePaginationChange:a=>{y.tablePagination.pageIndex=a,C("sizeChange",y.tablePagination.pageSize),C("paginationChange",a,y.tablePagination.pageSize),z()},defaultSearchTime:R,tableSearch:W,tableReset:async()=>{y.tablePagination.pageIndex=1,y.searchParam={},R(),Object.keys(y.initParam??{}).forEach(a=>{y.searchParam[a]=y.initParam[a]}),C("reset",y.searchParam),await z()},doRender:I,doLoading:(a,e="加载中...")=>{y.loading=!0,y.loadingText=e,p(a).then().catch(a=>{i("FaTable",a)}).finally(()=>{y.loading=!1})},handleCustomCellClick:(a,{row:e,column:t,$index:o})=>{C("customCellClick",a,{row:e,column:t,$index:o,...d(y)})}}};export{b as enumMapKey,u as tableStateKey,P as useTable};
1
+ import{ref as a,reactive as e,provide as t,computed as r,nextTick as o,watch as s}from"vue";import{useGlobalSize as n,dayjs as l}from"element-plus";import{consoleError as i,clickUtil as c,execFunction as p}from"@fast-china/utils";import{isFunction as h,isArray as g}from"lodash-unified";import{tableUtil as u}from"../utils/table.mjs";import{getTableDefaultSlots as m}from"./table.type.mjs";const d=/* @__PURE__ */Symbol("tableState"),b=/* @__PURE__ */Symbol("enumMap"),P=(P,f,C)=>{const w=n(),D=a(),S=a(),_=e(/* @__PURE__ */new Map);t(b,_);const y=e({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:r(()=>y.orgColumns.filter(a=>a.prop&&!a.pureSearch)),searchColumns:r(()=>y.orgColumns.filter(a=>a.pureSearch||a.search).sort((a,e)=>a.search?.order-e.search?.order)),spanColumns:r(()=>[...y.orgColumns.filter(a=>a.spanProp).map(a=>({prop:a?.prop,spanProp:a?.spanProp})),...P.props.span?[{prop:"__table-index",spanProp:P.props.span},{prop:"__table-selection",spanProp:P.props.span},{prop:"__table-operation",spanProp:P.props.span}]:[]]),tableData:[],tableSpanData:r(()=>{if(y.spanColumns?.length>0&&y.tableData?.length>0){const a=[];y.spanColumns.forEach(e=>{a[e.prop]=new Array(y.tableData.length).fill(1,0,1).fill(0,1),a[`${e.prop}-index`]=0});for(let e=1;e<y.tableData.length;e++)y.spanColumns.forEach(t=>{y.tableData[e][t.spanProp]===y.tableData[e-1][t.spanProp]?a[t.prop][a[`${t.prop}-index`]]++:(a[`${t.prop}-index`]=e,a[t.prop][e]=1)});return a}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",searchForm:P.searchForm,selected:!1,selectedList:[],selectedListIds:r(()=>y.selectedList.map(a=>h(P.rowKey)?P.rowKey(a):a[P.rowKey])),indeterminateSelectedListIds:[],responseConfig:void 0,operationColumnWidth:r(()=>{const a=y.autoColumnWidth.find(a=>"__table-operation"===a.prop);if(a)return`${a.width}px`;switch(w.value){case"large":case"default":return"54px";case"small":return"42px";default:return"auto"}}),imagePreview:!1,previewList:[],tableWidth:void 0,tableHeight:void 0,autoColumnWidth:[]});t(d,y);const M=()=>{y.loading=!0,y.loadingText="加载中...",y.autoColumnWidth=[];const a=y.tableColumns.filter(a=>a.autoWidth);if(f?.operation&&a.push({prop:"__table-operation"}),a?.length>0){const e="default"===w.value?25:17;o(()=>{const t=document.querySelector(`.fa-table__${P.tableKey}`);t&&a.forEach(a=>{const r=t.querySelector(`.__fa-table__auto-width-column__cell-header__${a?.prop}`),o=t.querySelectorAll(`.__fa-table__auto-width-column__cell__${a?.prop}`);let s=0;r&&(s=Math.ceil(r.scrollWidth)+e,a?.sortable&&(s+=24)),o.forEach(a=>{const t=Math.ceil(a.scrollWidth)+e;t>s&&(s=t)});const n=y.autoColumnWidth.find(e=>e.prop===a?.prop);n?n.width=Math.max(n.width,s):y.autoColumnWidth.push({prop:a?.prop,width:s})})})}y.loading=!1},x=a=>{if(P.treeData){const e=[];return a.forEach(a=>{const t=a[P.props.children];g(t)?t.forEach(t=>e.push({...a,...t})):e.push({...a,...t||{}})}),e}return a},k=()=>{const a={...y.searchParam,...P.pagination?y.tablePagination:{}};return delete a.totalRows,a},Y=async()=>{if(y.loading=!0,y.loadingText="加载中...",P.requestApi){const e=k();C("refresh",e);let t=[];try{const a=await P.requestApi(e);if(P.dataCallback&&P.dataCallback(a),P.pagination){const e=a;t=e.rows,Object.assign(y.tablePagination,{pageIndex:e.pageIndex,pageSize:e.pageSize,totalRows:e.totalRows})}else t=a,Object.assign(y.tablePagination,{pageIndex:1,pageSize:0,totalRows:t.length});y.tableData=x(t)}catch(a){i("FaTable",a),y.tableData=[]}finally{y.loading=!1}}else{C("refresh",{searchValue:y.searchParam.searchValue});let a=x(P.data);if(a=a.filter(a=>!y.searchParam.searchValue||y.tableColumns.some(e=>a[e.prop]?.toString()?.toLowerCase().includes(y.searchParam.searchValue?.toLowerCase()))),y.searchParam.sortList?.length>0&&(a=a.sort(u.arrayDynamicSort(y.searchParam.sortList))),P.pagination){Object.assign(y.tablePagination,{totalRows:a.length});const e=(y.tablePagination.pageIndex-1)*y.tablePagination.pageSize,t=e+y.tablePagination.pageSize;y.tableData=a.slice(e,t)}else y.tableData=a,Object.assign(y.tablePagination,{pageIndex:1,pageSize:0,totalRows:a.length});y.loading=!1}M()},z=()=>{let a=P.columns?P.columns:[];a.forEach(a=>{(a.pureSearch||a.search)&&(a.search.key??=a.prop,a.search.label??=a.label,a.search.defaultValue&&(y.searchParam[a.search.key]=a.search.defaultValue))}),a=a.sort((a,e)=>a?.order-e?.order),y.orgColumns=u.flatColumns(a,_)},F=()=>{if(P.hideSearchTime)y.searchParam.searchTimeList=void 0;else{const a=/* @__PURE__ */new Date,e=/* @__PURE__ */new Date;if(P.futureSearchTime)switch(P.dataSearchRange){case"Past1D":a.setDate(a.getDate()+1);break;case"Past3D":a.setDate(a.getDate()+3);break;case"Past1W":a.setDate(a.getDate()+7);break;case"Past1M":a.setMonth(a.getMonth()+1);break;case"Past3M":a.setMonth(a.getMonth()+3);break;case"Past6M":a.setMonth(a.getMonth()+6);break;case"Past1Y":a.setFullYear(a.getFullYear()+1);break;case"Past3Y":a.setFullYear(a.getFullYear()+3)}else switch(P.dataSearchRange){case"Past1D":e.setDate(e.getDate()-1);break;case"Past3D":e.setDate(e.getDate()-3);break;case"Past1W":e.setDate(e.getDate()-7);break;case"Past1M":e.setMonth(e.getMonth()-1);break;case"Past3M":e.setMonth(e.getMonth()-3);break;case"Past6M":e.setMonth(e.getMonth()-6);break;case"Past1Y":e.setFullYear(e.getFullYear()-1);break;case"Past3Y":e.setFullYear(e.getFullYear()-3)}y.searchParam.searchTimeList=[l(e).format("YYYY-MM-DD 00:00:00"),l(a).format("YYYY-MM-DD 23:59:59")]}},R=async()=>{y.tablePagination.pageIndex=1,(()=>{const a={};for(const e in y.searchParam)y.searchParam[e]||!1===y.searchParam[e]||0===y.searchParam[e]?a[e]=y.searchParam[e]:y.searchParam[e]||delete y.searchParam[e];Object.assign(y.searchParam,a)})(),await Y()},W=async()=>{y.orgColumns=[],y.autoColumnWidth=[],y.tableData=[],await c.debounceAsync(async()=>{z(),await R()},300)};return s(()=>P.tableKey,async()=>{await W()}),s(()=>P.searchForm,a=>{y.searchForm=a}),{_globalSize:w,state:y,elementRef:D,tableRef:S,handleTableColumnAutoWidth:M,getRequestParam:k,loadTableColumns:z,handleSizeChange:a=>{y.tablePagination.pageIndex=1,y.tablePagination.pageSize=a,C("sizeChange",a),C("paginationChange",1,a),Y()},handlePaginationChange:a=>{y.tablePagination.pageIndex=a,C("sizeChange",y.tablePagination.pageSize),C("paginationChange",a,y.tablePagination.pageSize),Y()},defaultSearchTime:F,tableSearch:R,tableReset:async()=>{y.tablePagination.pageIndex=1,y.searchParam={},F(),Object.keys(y.initParam??{}).forEach(a=>{y.searchParam[a]=y.initParam[a]}),C("reset",y.searchParam),await Y()},doRender:W,doLoading:(a,e="加载中...")=>{y.loading=!0,y.loadingText=e,p(a).then().catch(a=>{i("FaTable",a)}).finally(()=>{y.loading=!1})},handleCustomCellClick:(a,{row:e,column:t,$index:r})=>{C("customCellClick",a,{row:e,column:t,$index:r,...m(y)})}}};export{b as enumMapKey,d as tableStateKey,P as useTable};
2
2
  //# sourceMappingURL=useTable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.mjs","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns?.length > 0 && state.tableData?.length > 0) {\n\t\t\t\tconst result = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn [];\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots?.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns?.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item?.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData(props.data);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (state.searchParam.sortList?.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? props.columns : [];\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn a?.order - b?.order;\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"sizeChange\", state.tablePagination.pageSize);\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\tcase \"Past1D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1W\":\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past6M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"names":["tableStateKey","enumMapKey","useTable","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.mjs","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns?.length > 0 && state.tableData?.length > 0) {\n\t\t\t\tconst result = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn [];\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots?.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns?.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item?.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData(props.data);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (state.searchParam.sortList?.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? props.columns : [];\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn a?.order - b?.order;\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"sizeChange\", state.tablePagination.pageSize);\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tif (props.futureSearchTime) {\n\t\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\t\tcase \"Past1D\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3D\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1W\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 7);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past6M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 6);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\t\tcase \"Past1D\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3D\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1W\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past6M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"names":["tableStateKey","enumMapKey","useTable","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","futureSearchTime","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
@@ -37,11 +37,11 @@ export declare const faTreeProps: {
37
37
  label: StringConstructor;
38
38
  /** @description 宽度 */
39
39
  width: {
40
- type: (NumberConstructor | StringConstructor)[];
40
+ type: (StringConstructor | NumberConstructor)[];
41
41
  default: number;
42
42
  };
43
43
  /** @description 默认选择 */
44
- defaultSelection: (NumberConstructor | StringConstructor)[];
44
+ defaultSelection: (StringConstructor | NumberConstructor)[];
45
45
  /** @description 标题 */
46
46
  title: StringConstructor;
47
47
  /** @description 折叠 */
@@ -203,11 +203,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
203
203
  label: StringConstructor;
204
204
  /** @description 宽度 */
205
205
  width: {
206
- type: (NumberConstructor | StringConstructor)[];
206
+ type: (StringConstructor | NumberConstructor)[];
207
207
  default: number;
208
208
  };
209
209
  /** @description 默认选择 */
210
- defaultSelection: (NumberConstructor | StringConstructor)[];
210
+ defaultSelection: (StringConstructor | NumberConstructor)[];
211
211
  /** @description 标题 */
212
212
  title: StringConstructor;
213
213
  /** @description 折叠 */
@@ -394,11 +394,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
394
394
  label: StringConstructor;
395
395
  /** @description 宽度 */
396
396
  width: {
397
- type: (NumberConstructor | StringConstructor)[];
397
+ type: (StringConstructor | NumberConstructor)[];
398
398
  default: number;
399
399
  };
400
400
  /** @description 默认选择 */
401
- defaultSelection: (NumberConstructor | StringConstructor)[];
401
+ defaultSelection: (StringConstructor | NumberConstructor)[];
402
402
  /** @description 标题 */
403
403
  title: StringConstructor;
404
404
  /** @description 折叠 */
@@ -81,7 +81,7 @@ export declare const faTreeSelectProps: {
81
81
  label: import('vue').PropType<string | string[]>;
82
82
  /** @description 宽度 */
83
83
  width: {
84
- type: (NumberConstructor | StringConstructor)[];
84
+ type: (StringConstructor | NumberConstructor)[];
85
85
  default: string;
86
86
  };
87
87
  /** @description 更多细节,只有使用slot的时候有用 */
@@ -391,7 +391,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
391
391
  label: import('vue').PropType<string | string[]>;
392
392
  /** @description 宽度 */
393
393
  width: {
394
- type: (NumberConstructor | StringConstructor)[];
394
+ type: (StringConstructor | NumberConstructor)[];
395
395
  default: string;
396
396
  };
397
397
  /** @description 更多细节,只有使用slot的时候有用 */
@@ -684,7 +684,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
684
684
  label: import('vue').PropType<string | string[]>;
685
685
  /** @description 宽度 */
686
686
  width: {
687
- type: (NumberConstructor | StringConstructor)[];
687
+ type: (StringConstructor | NumberConstructor)[];
688
688
  default: string;
689
689
  };
690
690
  /** @description 更多细节,只有使用slot的时候有用 */
@@ -134,6 +134,7 @@ export declare const faUploadProps: {
134
134
  readonly prototype: any;
135
135
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
136
136
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
137
+ directory: BooleanConstructor;
137
138
  };
138
139
  export declare const faUploadEmits: {
139
140
  /** @description v-model 回调 */
@@ -291,6 +292,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
291
292
  readonly prototype: any;
292
293
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
293
294
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
295
+ directory: BooleanConstructor;
294
296
  }>, {
295
297
  /** @description 取消上传请求 */
296
298
  abort: import('vue').ComputedRef<(file: import('element-plus/es/components/upload/src/upload.mjs').UploadFile) => void>;
@@ -306,6 +308,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
306
308
  loading: import('vue').Ref<boolean, boolean>;
307
309
  /** @description 文件集合 */
308
310
  fileList: import('vue').Ref<{
311
+ size?: number;
312
+ name: string;
309
313
  raw?: {
310
314
  uid: number;
311
315
  isDirectory?: boolean;
@@ -320,14 +324,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
320
324
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
321
325
  text: () => Promise<string>;
322
326
  };
323
- size?: number;
324
- name: string;
325
327
  url?: string;
326
328
  percentage?: number;
327
329
  response?: unknown;
328
330
  status?: import('element-plus').UploadStatus;
329
331
  uid?: number;
330
332
  }[], {
333
+ size?: number;
334
+ name: string;
331
335
  raw?: {
332
336
  uid: number;
333
337
  isDirectory?: boolean;
@@ -342,8 +346,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
342
346
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
343
347
  text: () => Promise<string>;
344
348
  };
345
- size?: number;
346
- name: string;
347
349
  url?: string;
348
350
  percentage?: number;
349
351
  response?: unknown;
@@ -492,6 +494,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
492
494
  readonly prototype: any;
493
495
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
494
496
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
497
+ directory: BooleanConstructor;
495
498
  }>> & Readonly<{
496
499
  "onUpdate:modelValue"?: (value: string | string[]) => any;
497
500
  onChange?: (value: string | string[]) => any;
@@ -520,6 +523,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
520
523
  listType: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "picture" | "text" | "picture-card", unknown>;
521
524
  httpRequest: import('element-plus').UploadRequestHandler;
522
525
  limit: number;
526
+ directory: boolean;
523
527
  maxSize: string | number;
524
528
  }, import('vue').SlotsType<Partial<import('@fast-china/utils').MakeSlots<FaUploadSlots>>>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
525
529
  export default _default;
@@ -8,6 +8,8 @@ export declare const useUpload: <T extends string | string[]>(componentName: str
8
8
  uploadUrl?: string;
9
9
  }) => {
10
10
  fileList: import('vue').Ref<{
11
+ size?: number;
12
+ name: string;
11
13
  raw?: {
12
14
  uid: number;
13
15
  isDirectory?: boolean;
@@ -22,14 +24,14 @@ export declare const useUpload: <T extends string | string[]>(componentName: str
22
24
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
23
25
  text: () => Promise<string>;
24
26
  };
25
- size?: number;
26
- name: string;
27
27
  url?: string;
28
28
  percentage?: number;
29
29
  response?: unknown;
30
30
  status?: import('element-plus').UploadStatus;
31
31
  uid?: number;
32
32
  }[], {
33
+ size?: number;
34
+ name: string;
33
35
  raw?: {
34
36
  uid: number;
35
37
  isDirectory?: boolean;
@@ -44,8 +46,6 @@ export declare const useUpload: <T extends string | string[]>(componentName: str
44
46
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
45
47
  text: () => Promise<string>;
46
48
  };
47
- size?: number;
48
- name: string;
49
49
  url?: string;
50
50
  percentage?: number;
51
51
  response?: unknown;
@@ -24,7 +24,7 @@ export declare const faUploadImageProps: {
24
24
  modelValue: import('vue').PropType<string | string[]>;
25
25
  /** @description 大小限制,单位kb */
26
26
  maxSize: {
27
- type: (NumberConstructor | StringConstructor)[];
27
+ type: (StringConstructor | NumberConstructor)[];
28
28
  default: number;
29
29
  };
30
30
  /** @description 图片上传接口,优先级最高 */
@@ -35,12 +35,12 @@ export declare const faUploadImageProps: {
35
35
  uploadUrl: StringConstructor;
36
36
  /** @description 宽度 */
37
37
  width: {
38
- type: (NumberConstructor | StringConstructor)[];
38
+ type: (StringConstructor | NumberConstructor)[];
39
39
  default: number;
40
40
  };
41
41
  /** @description 高度 */
42
42
  height: {
43
- type: (NumberConstructor | StringConstructor)[];
43
+ type: (StringConstructor | NumberConstructor)[];
44
44
  default: number;
45
45
  };
46
46
  beforeUpload: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (rawFile: import('element-plus').UploadRawFile) => import('element-plus/es/utils/typescript.mjs').Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: import('element-plus').UploadRawFile) => import('element-plus/es/utils/typescript.mjs').Awaitable<void | undefined | null | boolean | File | Blob>) | {
@@ -152,6 +152,7 @@ export declare const faUploadImageProps: {
152
152
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
153
153
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
154
154
  limit: NumberConstructor;
155
+ directory: BooleanConstructor;
155
156
  };
156
157
  export declare const faUploadImageEmits: {
157
158
  /** @description v-model 回调 */
@@ -190,7 +191,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
190
191
  modelValue: import('vue').PropType<string | string[]>;
191
192
  /** @description 大小限制,单位kb */
192
193
  maxSize: {
193
- type: (NumberConstructor | StringConstructor)[];
194
+ type: (StringConstructor | NumberConstructor)[];
194
195
  default: number;
195
196
  };
196
197
  /** @description 图片上传接口,优先级最高 */
@@ -201,12 +202,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
201
202
  uploadUrl: StringConstructor;
202
203
  /** @description 宽度 */
203
204
  width: {
204
- type: (NumberConstructor | StringConstructor)[];
205
+ type: (StringConstructor | NumberConstructor)[];
205
206
  default: number;
206
207
  };
207
208
  /** @description 高度 */
208
209
  height: {
209
- type: (NumberConstructor | StringConstructor)[];
210
+ type: (StringConstructor | NumberConstructor)[];
210
211
  default: number;
211
212
  };
212
213
  beforeUpload: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (rawFile: import('element-plus').UploadRawFile) => import('element-plus/es/utils/typescript.mjs').Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: import('element-plus').UploadRawFile) => import('element-plus/es/utils/typescript.mjs').Awaitable<void | undefined | null | boolean | File | Blob>) | {
@@ -318,6 +319,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
318
319
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
319
320
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
320
321
  limit: NumberConstructor;
322
+ directory: BooleanConstructor;
321
323
  }>, {
322
324
  /** @description 取消上传请求 */
323
325
  abort: import('vue').ComputedRef<(file: import('element-plus').UploadFile) => void>;
@@ -333,6 +335,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
333
335
  loading: import('vue').Ref<boolean, boolean>;
334
336
  /** @description 文件集合 */
335
337
  fileList: import('vue').Ref<{
338
+ size?: number;
339
+ name: string;
336
340
  raw?: {
337
341
  uid: number;
338
342
  isDirectory?: boolean;
@@ -347,14 +351,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
347
351
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
348
352
  text: () => Promise<string>;
349
353
  };
350
- size?: number;
351
- name: string;
352
354
  url?: string;
353
355
  percentage?: number;
354
356
  response?: unknown;
355
357
  status?: import('element-plus').UploadStatus;
356
358
  uid?: number;
357
359
  }[], {
360
+ size?: number;
361
+ name: string;
358
362
  raw?: {
359
363
  uid: number;
360
364
  isDirectory?: boolean;
@@ -369,8 +373,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
369
373
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
370
374
  text: () => Promise<string>;
371
375
  };
372
- size?: number;
373
- name: string;
374
376
  url?: string;
375
377
  percentage?: number;
376
378
  response?: unknown;
@@ -413,7 +415,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
413
415
  modelValue: import('vue').PropType<string | string[]>;
414
416
  /** @description 大小限制,单位kb */
415
417
  maxSize: {
416
- type: (NumberConstructor | StringConstructor)[];
418
+ type: (StringConstructor | NumberConstructor)[];
417
419
  default: number;
418
420
  };
419
421
  /** @description 图片上传接口,优先级最高 */
@@ -424,12 +426,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
424
426
  uploadUrl: StringConstructor;
425
427
  /** @description 宽度 */
426
428
  width: {
427
- type: (NumberConstructor | StringConstructor)[];
429
+ type: (StringConstructor | NumberConstructor)[];
428
430
  default: number;
429
431
  };
430
432
  /** @description 高度 */
431
433
  height: {
432
- type: (NumberConstructor | StringConstructor)[];
434
+ type: (StringConstructor | NumberConstructor)[];
433
435
  default: number;
434
436
  };
435
437
  beforeUpload: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (rawFile: import('element-plus').UploadRawFile) => import('element-plus/es/utils/typescript.mjs').Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: import('element-plus').UploadRawFile) => import('element-plus/es/utils/typescript.mjs').Awaitable<void | undefined | null | boolean | File | Blob>) | {
@@ -541,6 +543,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
541
543
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
542
544
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
543
545
  limit: NumberConstructor;
546
+ directory: BooleanConstructor;
544
547
  }>> & Readonly<{
545
548
  "onUpdate:modelValue"?: (value: string | string[]) => any;
546
549
  onChange?: (value: string | string[]) => any;
@@ -570,6 +573,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
570
573
  autoUpload: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
571
574
  listType: "picture" | "text" | "picture-card";
572
575
  httpRequest: import('element-plus').UploadRequestHandler;
576
+ directory: boolean;
573
577
  maxSize: string | number;
574
578
  }, import('vue').SlotsType<Partial<import('@fast-china/utils').MakeSlots<FaUploadImageSlots>>>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
575
579
  export default _default;
@@ -24,7 +24,7 @@ export declare const faUploadImagesProps: {
24
24
  modelValue: import('vue').PropType<string[]>;
25
25
  /** @description 大小限制,单位kb */
26
26
  maxSize: {
27
- type: (NumberConstructor | StringConstructor)[];
27
+ type: (StringConstructor | NumberConstructor)[];
28
28
  default: number;
29
29
  };
30
30
  /** @description 图片上传接口,优先级最高 */
@@ -142,6 +142,7 @@ export declare const faUploadImagesProps: {
142
142
  readonly prototype: any;
143
143
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
144
144
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
145
+ directory: BooleanConstructor;
145
146
  };
146
147
  export declare const faUploadImagesEmits: {
147
148
  /** @description v-model 回调 */
@@ -180,7 +181,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
180
181
  modelValue: import('vue').PropType<string[]>;
181
182
  /** @description 大小限制,单位kb */
182
183
  maxSize: {
183
- type: (NumberConstructor | StringConstructor)[];
184
+ type: (StringConstructor | NumberConstructor)[];
184
185
  default: number;
185
186
  };
186
187
  /** @description 图片上传接口,优先级最高 */
@@ -298,6 +299,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
298
299
  readonly prototype: any;
299
300
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
300
301
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
302
+ directory: BooleanConstructor;
301
303
  }>, {
302
304
  /** @description 取消上传请求 */
303
305
  abort: import('vue').ComputedRef<(file: import('element-plus/es/components/upload/src/upload.mjs').UploadFile) => void>;
@@ -313,6 +315,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
313
315
  loading: import('vue').Ref<boolean, boolean>;
314
316
  /** @description 文件集合 */
315
317
  fileList: import('vue').Ref<{
318
+ size?: number;
319
+ name: string;
316
320
  raw?: {
317
321
  uid: number;
318
322
  isDirectory?: boolean;
@@ -327,14 +331,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
327
331
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
328
332
  text: () => Promise<string>;
329
333
  };
330
- size?: number;
331
- name: string;
332
334
  url?: string;
333
335
  percentage?: number;
334
336
  response?: unknown;
335
337
  status?: import('element-plus').UploadStatus;
336
338
  uid?: number;
337
339
  }[], {
340
+ size?: number;
341
+ name: string;
338
342
  raw?: {
339
343
  uid: number;
340
344
  isDirectory?: boolean;
@@ -349,8 +353,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
349
353
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
350
354
  text: () => Promise<string>;
351
355
  };
352
- size?: number;
353
- name: string;
354
356
  url?: string;
355
357
  percentage?: number;
356
358
  response?: unknown;
@@ -393,7 +395,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
393
395
  modelValue: import('vue').PropType<string[]>;
394
396
  /** @description 大小限制,单位kb */
395
397
  maxSize: {
396
- type: (NumberConstructor | StringConstructor)[];
398
+ type: (StringConstructor | NumberConstructor)[];
397
399
  default: number;
398
400
  };
399
401
  /** @description 图片上传接口,优先级最高 */
@@ -511,6 +513,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
511
513
  readonly prototype: any;
512
514
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
513
515
  disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
516
+ directory: BooleanConstructor;
514
517
  }>> & Readonly<{
515
518
  "onUpdate:modelValue"?: (value: string[]) => any;
516
519
  onChange?: (value: string[]) => any;
@@ -539,6 +542,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
539
542
  listType: "picture" | "text" | "picture-card";
540
543
  httpRequest: import('element-plus').UploadRequestHandler;
541
544
  limit: number;
545
+ directory: boolean;
542
546
  maxSize: string | number;
543
547
  }, import('vue').SlotsType<Partial<import('@fast-china/utils').MakeSlots<FaUploadImagesSlots>>>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
544
548
  export default _default;
package/es/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "1.0.11";
1
+ export declare const version = "1.0.12";
package/es/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- const o="1.0.11";export{o as version};
1
+ const o="1.0.12";export{o as version};
2
2
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../packages/version.ts"],"sourcesContent":["export const version = \"1.0.11\";\n"],"names":["version"],"mappings":"AAAO,MAAMA,EAAU"}
1
+ {"version":3,"file":"version.mjs","sources":["../../packages/version.ts"],"sourcesContent":["export const version = \"1.0.12\";\n"],"names":["version"],"mappings":"AAAO,MAAMA,EAAU"}