fast-element-plus 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/README.zh.md +4 -4
- package/dist/index.full.js +9 -41
- package/dist/index.full.js.map +1 -1
- package/dist/index.full.min.js +1 -35
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +1 -35
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +9 -41
- package/dist/index.full.mjs.map +1 -1
- package/es/component.mjs +1 -51
- package/es/component.mjs.map +1 -1
- package/es/components/avatar/index.mjs +1 -7
- package/es/components/avatar/index.mjs.map +1 -1
- package/es/components/avatar/src/avatar.mjs +1 -75
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/button/index.mjs +1 -10
- package/es/components/button/index.mjs.map +1 -1
- package/es/components/button/src/button.mjs +1 -117
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/carNumber/index.mjs +1 -11
- package/es/components/carNumber/index.mjs.map +1 -1
- package/es/components/carNumber/src/carNumber.d.ts +5 -5
- package/es/components/carNumber/src/carNumber.mjs +1 -163
- package/es/components/carNumber/src/carNumber.mjs.map +1 -1
- package/es/components/carNumber/src/common.mjs +1 -74
- package/es/components/carNumber/src/common.mjs.map +1 -1
- package/es/components/contextMenu/index.mjs +1 -8
- package/es/components/contextMenu/index.mjs.map +1 -1
- package/es/components/contextMenu/src/contextMenu.mjs +1 -84
- package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
- package/es/components/dialog/index.mjs +1 -10
- package/es/components/dialog/index.mjs.map +1 -1
- package/es/components/dialog/src/dialog.mjs +1 -284
- package/es/components/dialog/src/dialog.mjs.map +1 -1
- package/es/components/drawer/index.mjs +1 -7
- package/es/components/drawer/index.mjs.map +1 -1
- package/es/components/drawer/src/drawer.d.ts +9 -0
- package/es/components/drawer/src/drawer.mjs +1 -283
- package/es/components/drawer/src/drawer.mjs.map +1 -1
- package/es/components/form/index.mjs +1 -18
- package/es/components/form/index.mjs.map +1 -1
- package/es/components/form/src/form.mjs +1 -108
- package/es/components/form/src/form.mjs.map +1 -1
- package/es/components/form/src/formItem.mjs +1 -116
- package/es/components/form/src/formItem.mjs.map +1 -1
- package/es/components/form/utils/form.mjs +1 -216
- package/es/components/form/utils/form.mjs.map +1 -1
- package/es/components/formItemTip/index.mjs +1 -9
- package/es/components/formItemTip/index.mjs.map +1 -1
- package/es/components/formItemTip/src/formItemTip.mjs +1 -37
- package/es/components/formItemTip/src/formItemTip.mjs.map +1 -1
- package/es/components/icon/index.mjs +1 -7
- package/es/components/icon/index.mjs.map +1 -1
- package/es/components/icon/src/icon.mjs +1 -68
- package/es/components/icon/src/icon.mjs.map +1 -1
- package/es/components/iconSelector/index.mjs +1 -7
- package/es/components/iconSelector/index.mjs.map +1 -1
- package/es/components/iconSelector/src/iconSelector.mjs +1 -142
- package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
- package/es/components/image/index.mjs +1 -9
- package/es/components/image/index.mjs.map +1 -1
- package/es/components/image/src/image.mjs +1 -89
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/index.mjs +1 -99
- package/es/components/index.mjs.map +1 -1
- package/es/components/layoutGrid/index.mjs +1 -13
- package/es/components/layoutGrid/index.mjs.map +1 -1
- package/es/components/layoutGrid/src/layoutGrid.mjs +1 -177
- package/es/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
- package/es/components/layoutGrid/src/layoutGridItem.mjs +1 -96
- package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
- package/es/components/select/index.mjs +1 -16
- package/es/components/select/index.mjs.map +1 -1
- package/es/components/select/src/select.mjs +1 -558
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/selectOption.mjs +1 -70
- package/es/components/select/src/selectOption.mjs.map +1 -1
- package/es/components/selectPage/index.mjs +1 -10
- package/es/components/selectPage/index.mjs.map +1 -1
- package/es/components/selectPage/src/selectPage.mjs +1 -380
- package/es/components/selectPage/src/selectPage.mjs.map +1 -1
- package/es/components/selectV2/index.mjs +1 -10
- package/es/components/selectV2/index.mjs.map +1 -1
- package/es/components/selectV2/src/selectV2.mjs +1 -605
- package/es/components/selectV2/src/selectV2.mjs.map +1 -1
- package/es/components/table/images/artwork.png.mjs +1 -4
- package/es/components/table/images/artwork.png.mjs.map +1 -1
- package/es/components/table/images/notImage.png.mjs +1 -4
- package/es/components/table/images/notImage.png.mjs.map +1 -1
- package/es/components/table/index.mjs +1 -31
- package/es/components/table/index.mjs.map +1 -1
- package/es/components/table/src/page.type.mjs +1 -15
- package/es/components/table/src/page.type.mjs.map +1 -1
- package/es/components/table/src/table.mjs +1 -1045
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.type.mjs +1 -13
- package/es/components/table/src/table.type.mjs.map +1 -1
- package/es/components/table/src/tableColumn.mjs +1 -603
- package/es/components/table/src/tableColumn.mjs.map +1 -1
- package/es/components/table/src/tableColumnSettingDialog.mjs +1 -429
- package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
- package/es/components/table/src/tablePagination.mjs +1 -55
- package/es/components/table/src/tablePagination.mjs.map +1 -1
- package/es/components/table/src/tableSearchForm.mjs +1 -268
- package/es/components/table/src/tableSearchForm.mjs.map +1 -1
- package/es/components/table/src/tableSearchFormItem.mjs +1 -120
- package/es/components/table/src/tableSearchFormItem.mjs.map +1 -1
- package/es/components/table/src/useTable.mjs +1 -373
- package/es/components/table/src/useTable.mjs.map +1 -1
- package/es/components/table/utils/table.mjs +1 -121
- package/es/components/table/utils/table.mjs.map +1 -1
- package/es/components/tree/index.mjs +1 -11
- package/es/components/tree/index.mjs.map +1 -1
- package/es/components/tree/src/tree.mjs +1 -363
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/tree/src/tree.props.mjs +1 -70
- package/es/components/tree/src/tree.props.mjs.map +1 -1
- package/es/components/treeSelect/index.mjs +1 -10
- package/es/components/treeSelect/index.mjs.map +1 -1
- package/es/components/treeSelect/src/treeSelect.mjs +1 -491
- package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/es/components/upload/index.mjs +1 -10
- package/es/components/upload/index.mjs.map +1 -1
- package/es/components/upload/src/upload.mjs +1 -139
- package/es/components/upload/src/upload.mjs.map +1 -1
- package/es/components/upload/src/useUpload.mjs +1 -149
- package/es/components/upload/src/useUpload.mjs.map +1 -1
- package/es/components/upload/utils/upload.mjs +1 -118
- package/es/components/upload/utils/upload.mjs.map +1 -1
- package/es/components/uploadImage/index.mjs +1 -10
- package/es/components/uploadImage/index.mjs.map +1 -1
- package/es/components/uploadImage/src/uploadImage.mjs +1 -206
- package/es/components/uploadImage/src/uploadImage.mjs.map +1 -1
- package/es/components/uploadImages/index.mjs +1 -7
- package/es/components/uploadImages/index.mjs.map +1 -1
- package/es/components/uploadImages/src/uploadImages.mjs +1 -193
- package/es/components/uploadImages/src/uploadImages.mjs.map +1 -1
- package/es/constants/index.mjs +1 -6
- package/es/constants/index.mjs.map +1 -1
- package/es/constants/mime.mjs +1 -61
- package/es/constants/mime.mjs.map +1 -1
- package/es/constants/regex.mjs +1 -78
- package/es/constants/regex.mjs.map +1 -1
- package/es/directive.mjs +1 -10
- package/es/directive.mjs.map +1 -1
- package/es/directives/click-copy/index.mjs +1 -35
- package/es/directives/click-copy/index.mjs.map +1 -1
- package/es/directives/click-debounce/index.mjs +1 -19
- package/es/directives/click-debounce/index.mjs.map +1 -1
- package/es/directives/click-draggable/index.mjs +1 -37
- package/es/directives/click-draggable/index.mjs.map +1 -1
- package/es/directives/click-icon-copy/index.mjs +1 -53
- package/es/directives/click-icon-copy/index.mjs.map +1 -1
- package/es/directives/click-longpress/index.mjs +1 -41
- package/es/directives/click-longpress/index.mjs.map +1 -1
- package/es/directives/click-throttle/index.mjs +1 -30
- package/es/directives/click-throttle/index.mjs.map +1 -1
- package/es/directives/index.mjs +1 -14
- package/es/directives/index.mjs.map +1 -1
- package/es/element-plus.mjs +1 -303
- package/es/element-plus.mjs.map +1 -1
- package/es/hooks/index.mjs +1 -8
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-loading/index.mjs +1 -33
- package/es/hooks/use-loading/index.mjs.map +1 -1
- package/es/hooks/use-overlay/index.mjs +1 -25
- package/es/hooks/use-overlay/index.mjs.map +1 -1
- package/es/hooks/use-screenFull/index.mjs +1 -44
- package/es/hooks/use-screenFull/index.mjs.map +1 -1
- package/es/index.mjs +1 -137
- package/es/index.mjs.map +1 -1
- package/es/make-installer.mjs +1 -26
- package/es/make-installer.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -4
- package/es/version.mjs.map +1 -1
- package/lib/components/carNumber/src/carNumber.d.ts +5 -5
- package/lib/components/drawer/src/drawer.d.ts +9 -0
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/tablePagination.js +1 -1
- package/lib/components/table/src/tablePagination.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +3 -3
|
@@ -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\thideImage: computed(() => props.hideImage),\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;\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":[],"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\thideImage: computed(() => props.hideImage),\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;\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","Symbol","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","hideImage","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,122 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const tableUtil = {
|
|
3
|
-
/**
|
|
4
|
-
* @description 处理无数据情况
|
|
5
|
-
* @param {String} callValue 需要处理的值
|
|
6
|
-
*/
|
|
7
|
-
formatValue(callValue) {
|
|
8
|
-
if (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;
|
|
9
|
-
return callValue;
|
|
10
|
-
},
|
|
11
|
-
/**
|
|
12
|
-
* @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)
|
|
13
|
-
* @param {Object} row 当前行数据
|
|
14
|
-
* @param {String} prop 当前 prop
|
|
15
|
-
*/
|
|
16
|
-
handleRowAccordingToProp(row, prop) {
|
|
17
|
-
if (!prop.includes(".")) return row[prop] ?? null;
|
|
18
|
-
prop.split(".").forEach((item) => row = row[item]);
|
|
19
|
-
return row;
|
|
20
|
-
},
|
|
21
|
-
/**
|
|
22
|
-
* @description 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop
|
|
23
|
-
* @param {String} prop 当前 prop
|
|
24
|
-
*/
|
|
25
|
-
handleProp(prop) {
|
|
26
|
-
const propArr = prop.split(".");
|
|
27
|
-
if (propArr.length === 1) return prop;
|
|
28
|
-
return propArr[propArr.length - 1];
|
|
29
|
-
},
|
|
30
|
-
/**
|
|
31
|
-
* @description 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)
|
|
32
|
-
* @param {String} callValue 当前单元格值
|
|
33
|
-
* @param {Array} enumData 字典列表
|
|
34
|
-
* @param {Array} fieldNames 指定 label && value 的 key 值
|
|
35
|
-
* @param {String} type 过滤类型(目前只有 tag)
|
|
36
|
-
*/
|
|
37
|
-
filterEnum(callValue, enumData, fieldNames, type) {
|
|
38
|
-
const value = fieldNames?.value ?? "value";
|
|
39
|
-
const label = fieldNames?.label ?? "label";
|
|
40
|
-
let filterData = {};
|
|
41
|
-
if (isArray(enumData)) {
|
|
42
|
-
filterData = enumData.find((item) => item[value] === callValue);
|
|
43
|
-
}
|
|
44
|
-
if (type === "tag") {
|
|
45
|
-
return filterData?.type ?? "primary";
|
|
46
|
-
}
|
|
47
|
-
return filterData ? filterData[label] : null;
|
|
48
|
-
},
|
|
49
|
-
/**
|
|
50
|
-
* 数组动态排序
|
|
51
|
-
*/
|
|
52
|
-
arrayDynamicSort(sortList) {
|
|
53
|
-
return function(a, b) {
|
|
54
|
-
if (sortList && sortList.length > 0) {
|
|
55
|
-
for (const condition of sortList) {
|
|
56
|
-
const property = condition.enField;
|
|
57
|
-
const order = condition.mode;
|
|
58
|
-
const aValue = a[property];
|
|
59
|
-
const bValue = b[property];
|
|
60
|
-
if (typeof aValue === "string" && typeof bValue === "string") {
|
|
61
|
-
if (order === "ascending") {
|
|
62
|
-
const comparison = aValue.localeCompare(bValue, "zh-CN");
|
|
63
|
-
if (comparison !== 0) {
|
|
64
|
-
return comparison;
|
|
65
|
-
}
|
|
66
|
-
} else if (order === "descending") {
|
|
67
|
-
const comparison = bValue.localeCompare(aValue, "zh-CN");
|
|
68
|
-
if (comparison !== 0) {
|
|
69
|
-
return comparison;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
} else {
|
|
73
|
-
if (order === "ascending") {
|
|
74
|
-
if (aValue < bValue) return -1;
|
|
75
|
-
if (aValue > bValue) return 1;
|
|
76
|
-
} else if (order === "descending") {
|
|
77
|
-
if (aValue > bValue) return -1;
|
|
78
|
-
if (aValue < bValue) return 1;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return 0;
|
|
84
|
-
};
|
|
85
|
-
},
|
|
86
|
-
/**
|
|
87
|
-
* 设置枚举
|
|
88
|
-
*/
|
|
89
|
-
setEnumMap(columnEnum, prop, enumMap) {
|
|
90
|
-
if (!columnEnum) return;
|
|
91
|
-
if (isFunction(columnEnum)) {
|
|
92
|
-
columnEnum().then((res) => {
|
|
93
|
-
enumMap.set(prop, res);
|
|
94
|
-
});
|
|
95
|
-
} else if (isArray(columnEnum)) {
|
|
96
|
-
enumMap.set(prop, columnEnum);
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
/**
|
|
100
|
-
* 扁平化 columns
|
|
101
|
-
*/
|
|
102
|
-
flatColumns(columns, enumMap) {
|
|
103
|
-
const flatArr = [];
|
|
104
|
-
columns.forEach((col) => {
|
|
105
|
-
if (col._children?.length) {
|
|
106
|
-
flatArr.push(...this.flatColumns(col._children));
|
|
107
|
-
}
|
|
108
|
-
flatArr.push(col);
|
|
109
|
-
col.show = col.show ?? true;
|
|
110
|
-
let enumKey = col.prop ?? col.search?.key;
|
|
111
|
-
if (col.enum && isString(col.enum)) {
|
|
112
|
-
enumKey = col.enum;
|
|
113
|
-
}
|
|
114
|
-
this.setEnumMap(col.enum, enumKey, enumMap);
|
|
115
|
-
});
|
|
116
|
-
return flatArr.filter((item) => !item._children?.length);
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
export {
|
|
120
|
-
tableUtil
|
|
121
|
-
};
|
|
1
|
+
import{isString as e,isFunction as n,isArray as t}from"lodash-unified";const r={formatValue:e=>t(e)?e.length?e.join(" , "):null:e,handleRowAccordingToProp:(e,n)=>n.includes(".")?(n.split(".").forEach(n=>e=e[n]),e):e[n]??null,handleProp(e){const n=e.split(".");return 1===n.length?e:n[n.length-1]},filterEnum(e,n,r,l){const i=r?.value??"value",o=r?.label??"label";let s={};return t(n)&&(s=n.find(n=>n[i]===e)),"tag"===l?s?.type??"primary":s?s[o]:null},arrayDynamicSort:e=>function(n,t){if(e&&e.length>0)for(const r of e){const e=r.enField,l=r.mode,i=n[e],o=t[e];if("string"==typeof i&&"string"==typeof o){if("ascending"===l){const e=i.localeCompare(o,"zh-CN");if(0!==e)return e}else if("descending"===l){const e=o.localeCompare(i,"zh-CN");if(0!==e)return e}}else if("ascending"===l){if(i<o)return-1;if(i>o)return 1}else if("descending"===l){if(i>o)return-1;if(i<o)return 1}}return 0},setEnumMap(e,r,l){e&&(n(e)?e().then(e=>{l.set(r,e)}):t(e)&&l.set(r,e))},flatColumns(n,t){const r=[];return n.forEach(n=>{n._children?.length&&r.push(...this.flatColumns(n._children)),r.push(n),n.show=n.show??!0;let l=n.prop??n.search?.key;n.enum&&e(n.enum)&&(l=n.enum),this.setEnumMap(n.enum,l,t)}),r.filter(e=>!e._children?.length)}};export{r as tableUtil};
|
|
122
2
|
//# sourceMappingURL=table.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.mjs","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 ?? \"primary\";\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":[
|
|
1
|
+
{"version":3,"file":"table.mjs","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 ?? \"primary\";\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":"uEAMO,MAAMA,EAAY,CAKxBC,YAAYC,GAGPC,EAAQD,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,EAAQa,KACXK,EAAaL,EAASM,KAAMV,GAAcA,EAAKO,KAAWjB,IAE9C,QAATgB,EACIG,GAAYH,MAAQ,UAGrBG,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,EAAWF,GACdA,IAAaG,KAAMC,IAClBH,EAAQI,IAAIlC,EAAMiC,KAETtC,EAAQkC,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,EAAST,EAAIQ,QAC5BH,EAAUL,EAAIQ,MAIfL,KAAKb,WAAWU,EAAIQ,KAAMH,EAASb,KAE7BO,EAAQW,OAAQ5C,IAAUA,EAAKmC,WAAW3C,OAClD"}
|
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import Tree from "./src/tree.mjs";
|
|
3
|
-
import { faTreeEmits, faTreeProps } from "./src/tree.mjs";
|
|
4
|
-
import "./src/tree.type.mjs";
|
|
5
|
-
const FaTree = withInstall(Tree);
|
|
6
|
-
export {
|
|
7
|
-
FaTree,
|
|
8
|
-
FaTree as default,
|
|
9
|
-
faTreeEmits,
|
|
10
|
-
faTreeProps
|
|
11
|
-
};
|
|
1
|
+
import{withInstall as r}from"@fast-china/utils";import t from"./src/tree.mjs";import{faTreeEmits as m,faTreeProps as s}from"./src/tree.mjs";import"./src/tree.type.mjs";const e=r(t);export{e as FaTree,e as default,m as faTreeEmits,s as faTreeProps};
|
|
12
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/tree/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport Tree, { faTreeEmits, faTreeProps } from \"./src/tree\";\nimport type { ExtractPropTypes } from \"vue\";\n\nexport const FaTree = withInstall(Tree);\nexport default FaTree;\n\nexport { faTreeProps, faTreeEmits };\nexport * from \"./src/tree.type\";\n\nexport declare type FaTreeInstance = InstanceType<typeof Tree>;\n\nexport declare type FaTreeProps = ExtractPropTypes<typeof faTreeProps>;\n\nexport declare type FaTreeEmits = typeof faTreeEmits;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/tree/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport Tree, { faTreeEmits, faTreeProps } from \"./src/tree\";\nimport type { ExtractPropTypes } from \"vue\";\n\nexport const FaTree = withInstall(Tree);\nexport default FaTree;\n\nexport { faTreeProps, faTreeEmits };\nexport * from \"./src/tree.type\";\n\nexport declare type FaTreeInstance = InstanceType<typeof Tree>;\n\nexport declare type FaTreeProps = ExtractPropTypes<typeof faTreeProps>;\n\nexport declare type FaTreeEmits = typeof faTreeEmits;\n"],"names":["FaTree","withInstall","Tree"],"mappings":"wKAIO,MAAMA,EAASC,EAAYC"}
|