fast-element-plus 1.0.2 → 1.0.3

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 (73) hide show
  1. package/dist/index.full.js +119 -94
  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 +119 -94
  8. package/dist/index.full.mjs.map +1 -1
  9. package/dist/styles/index.css +1 -1
  10. package/es/components/avatar/src/avatar.d.ts +10 -9
  11. package/es/components/avatar/src/avatar.mjs +1 -1
  12. package/es/components/avatar/src/avatar.mjs.map +1 -1
  13. package/es/components/button/src/button.d.ts +4 -4
  14. package/es/components/carNumber/src/carNumber.d.ts +3 -3
  15. package/es/components/form/src/formItem.d.ts +18 -4
  16. package/es/components/image/src/image.d.ts +7 -0
  17. package/es/components/image/src/image.mjs +1 -1
  18. package/es/components/image/src/image.mjs.map +1 -1
  19. package/es/components/table/index.d.ts +2 -2
  20. package/es/components/table/index.mjs.map +1 -1
  21. package/es/components/table/src/table.d.ts +38 -4
  22. package/es/components/table/src/table.mjs +1 -1
  23. package/es/components/table/src/table.mjs.map +1 -1
  24. package/es/components/table/src/table.state.d.ts +0 -4
  25. package/es/components/table/src/table.type.d.ts +3 -62
  26. package/es/components/table/src/table.type.mjs.map +1 -1
  27. package/es/components/table/src/tableColumn.d.ts +5 -0
  28. package/es/components/table/src/tableColumn.mjs +1 -1
  29. package/es/components/table/src/tableColumn.mjs.map +1 -1
  30. package/es/components/table/src/tableColumnSettingDialog.d.ts +3 -3
  31. package/es/components/table/src/tableColumnSettingDialog.mjs +1 -1
  32. package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  33. package/es/components/table/src/useTable.mjs +1 -1
  34. package/es/components/table/src/useTable.mjs.map +1 -1
  35. package/es/components/upload/src/upload.d.ts +4 -4
  36. package/es/components/uploadImage/src/uploadImage.d.ts +4 -4
  37. package/es/components/uploadImages/src/uploadImages.d.ts +4 -4
  38. package/es/version.d.ts +1 -1
  39. package/es/version.mjs +1 -1
  40. package/es/version.mjs.map +1 -1
  41. package/lib/components/avatar/src/avatar.d.ts +10 -9
  42. package/lib/components/avatar/src/avatar.js +1 -1
  43. package/lib/components/avatar/src/avatar.js.map +1 -1
  44. package/lib/components/button/src/button.d.ts +4 -4
  45. package/lib/components/carNumber/src/carNumber.d.ts +3 -3
  46. package/lib/components/form/src/formItem.d.ts +18 -4
  47. package/lib/components/image/src/image.d.ts +7 -0
  48. package/lib/components/image/src/image.js +1 -1
  49. package/lib/components/image/src/image.js.map +1 -1
  50. package/lib/components/table/index.d.ts +2 -2
  51. package/lib/components/table/index.js.map +1 -1
  52. package/lib/components/table/src/table.d.ts +38 -4
  53. package/lib/components/table/src/table.js +1 -1
  54. package/lib/components/table/src/table.js.map +1 -1
  55. package/lib/components/table/src/table.state.d.ts +0 -4
  56. package/lib/components/table/src/table.type.d.ts +3 -62
  57. package/lib/components/table/src/table.type.js.map +1 -1
  58. package/lib/components/table/src/tableColumn.d.ts +5 -0
  59. package/lib/components/table/src/tableColumn.js +1 -1
  60. package/lib/components/table/src/tableColumn.js.map +1 -1
  61. package/lib/components/table/src/tableColumnSettingDialog.d.ts +3 -3
  62. package/lib/components/table/src/tableColumnSettingDialog.js +1 -1
  63. package/lib/components/table/src/tableColumnSettingDialog.js.map +1 -1
  64. package/lib/components/table/src/useTable.js +1 -1
  65. package/lib/components/table/src/useTable.js.map +1 -1
  66. package/lib/components/upload/src/upload.d.ts +4 -4
  67. package/lib/components/uploadImage/src/uploadImage.d.ts +4 -4
  68. package/lib/components/uploadImages/src/uploadImages.d.ts +4 -4
  69. package/lib/version.d.ts +1 -1
  70. package/lib/version.js +1 -1
  71. package/lib/version.js.map +1 -1
  72. package/package.json +5 -5
  73. package/styles/components/table.scss +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tableColumn.mjs","sources":["../../../../../packages/components/table/src/tableColumn.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { ElIcon, ElImage, ElMessage, ElTableColumn, ElTag, ElText, dayjs, useGlobalSize } from \"element-plus\";\nimport { CopyDocument } from \"@element-plus/icons-vue\";\nimport FaImage from \"@fast-element-plus/components/image\";\nimport { consoleError, dateUtil, definePropType, makeSlots, stringUtil, useProps, useRender } from \"@fast-china/utils\";\nimport { isNumber, isObject, isString } from \"lodash-unified\";\nimport artwork from \"../images/artwork.png\";\nimport notImage from \"../images/notImage.png\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableColumnDateFormat, FaTableColumnType, FaTableDefaultSlotsResult, FaTableEnumColumnType } from \"./table.type\";\nimport type { TableColumnCtx } from \"element-plus\";\nimport type { ComputedRef, PropType, VNode } from \"vue\";\n\ntype DefaultRow = any;\n\nexport const tableColumnProps = {\n\t/**\n\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: \"default\",\n\t},\n\t/**\n\t * @description column label\n\t */\n\tlabel: String,\n\t/**\n\t * @description class name of cells in the column\n\t */\n\tclassName: String,\n\t/**\n\t * @description class name of the label of this column\n\t */\n\tlabelClassName: String,\n\t/**\n\t * @description\n\t */\n\tproperty: String,\n\t/**\n\t * @description field name. You can also use its alias: `property`\n\t */\n\tprop: String,\n\t/**\n\t * @description column width\n\t */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description column minimum width. Columns with `width` has a fixed width, while columns with `min-width` has a width that is distributed in proportion\n\t */\n\tminWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description render function for table header of this column\n\t */\n\trenderHeader: Function as PropType<TableColumnCtx<DefaultRow>[\"renderHeader\"]>,\n\t/**\n\t * @description whether column can be sorted. Remote sorting can be done by setting this attribute to 'custom' and listening to the `sort-change` event of Table\n\t */\n\tsortable: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\t/**\n\t * @description sorting method, works when `sortable` is `true`. Should return a number, just like Array.sort\n\t */\n\tsortMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"sortMethod\"]>,\n\t/**\n\t * @description specify which property to sort by, works when `sortable` is `true` and `sort-method` is `undefined`. If set to an Array, the column will sequentially sort by the next property if the previous one is equal\n\t */\n\tsortBy: [String, Function, Array] as PropType<TableColumnCtx<DefaultRow>[\"sortBy\"]>,\n\t/**\n\t * @description whether column width can be resized, works when `border` of `el-table` is `true`\n\t */\n\tresizable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description column's key. If you need to use the filter-change event, you need this attribute to identify which column is being filtered\n\t */\n\tcolumnKey: String,\n\t/**\n\t * @description alignment, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\talign: String,\n\t/**\n\t * @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\theaderAlign: String,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell\n\t */\n\tshowOverflowTooltip: {\n\t\ttype: [Boolean, Object] as PropType<TableColumnCtx<DefaultRow>[\"showOverflowTooltip\"]>,\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description whether column is fixed at left / right. Will be fixed at left if `true`\n\t */\n\tfixed: [Boolean, String],\n\t/**\n\t * @description function that formats cell content\n\t */\n\tformatter: Function as PropType<TableColumnCtx<DefaultRow>[\"formatter\"]>,\n\t/**\n\t * @description function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\tselectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n\t/**\n\t * @description whether to reserve selection after data refreshing, works when `type` is 'selection'. Note that `row-key` is required for this to work\n\t */\n\treserveSelection: Boolean,\n\t/**\n\t * @description data filtering method. If `filter-multiple` is on, this method will be called multiple times for each row, and a row will display if one of the calls returns `true`\n\t */\n\tfilterMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"filterMethod\"]>,\n\t/**\n\t * @description filter value for selected data, might be useful when table header is rendered with `render-header`\n\t */\n\tfilteredValue: Array as PropType<TableColumnCtx<DefaultRow>[\"filteredValue\"]>,\n\t/**\n\t * @description an array of data filtering options. For each element in this array, `text` and `value` are required\n\t */\n\tfilters: Array as PropType<TableColumnCtx<DefaultRow>[\"filters\"]>,\n\t/**\n\t * @description placement for the filter dropdown\n\t */\n\tfilterPlacement: String,\n\t/**\n\t * @description whether data filtering supports multiple options\n\t */\n\tfilterMultiple: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description className for the filter dropdown\n\t */\n\tfilterClassName: String,\n\t/**\n\t * @description customize indices for each row, works on columns with `type=index`\n\t */\n\tindex: [Number, Function] as PropType<TableColumnCtx<DefaultRow>[\"index\"]>,\n\t/**\n\t * @description the order of the sorting strategies used when sorting the data, works when `sortable` is `true`. Accepts an array, as the user clicks on the header, the column is sorted in order of the elements in the array\n\t */\n\tsortOrders: {\n\t\ttype: Array as PropType<TableColumnCtx<DefaultRow>[\"sortOrders\"]>,\n\t\tdefault: (): TableColumnCtx<DefaultRow>[\"sortOrders\"] => {\n\t\t\treturn [\"ascending\", \"descending\", null];\n\t\t},\n\t\tvalidator: (val: TableColumnCtx<unknown>[\"sortOrders\"]): boolean => {\n\t\t\treturn val.every((order: string) => [\"ascending\", \"descending\", null].includes(order));\n\t\t},\n\t},\n};\n\ntype FaTableColumnSlotsResult = {\n\t/** @description slots为表格内容的时候才会返回 */\n\trow?: any;\n\t/** @description slot为表头内容的时候返回 'TableColumnCtx<any>' 否则返回 'FaTableColumnCtx' */\n\tcolumn?: TableColumnCtx<any> | FaTableColumnCtx;\n\t$index?: number;\n};\n\ntype FaTableColumnDefaultSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & FaTableColumnSlotsResult;\n};\n\ntype FaTableColumnSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: FaTableDefaultSlotsResult & { row: any; column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义表头的内容 */\n\theader: FaTableDefaultSlotsResult & { column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义 filter 图标 */\n\tfilterIcon: FaTableDefaultSlotsResult & { filterOpened: boolean };\n} & FaTableColumnDefaultSlots;\n\nexport default defineComponent({\n\tname: \"FaTableColumn\",\n\tprops: {\n\t\t...tableColumnProps,\n\t\t/**\n\t\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t\t */\n\t\ttype: {\n\t\t\ttype: definePropType<FaTableColumnType>(String),\n\t\t\tdefault: \"default\",\n\t\t},\n\t\t/**\n\t\t * @description column width\n\t\t */\n\t\twidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\t/** @description alignment, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\talign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\theaderAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description 是否显示在表格当中 */\n\t\tshow: Boolean,\n\t\t/** @description 小页面的宽度,如果为空,则继承默认宽度 */\n\t\tsmallWidth: {\n\t\t\ttype: [String, Number],\n\t\t},\n\t\t/** @description 自适应宽度 */\n\t\tautoWidth: Boolean,\n\t\t/** @description 插槽名称 */\n\t\tslot: String,\n\t\t/** @description 表格头部插槽名称 */\n\t\theaderSlot: String,\n\t\t/** @description 自定义表头内容渲染(tsx语法) */\n\t\theaderRender: {\n\t\t\ttype: definePropType<({ column, $index }: { column: TableColumnCtx<any>; $index: number } & FaTableDefaultSlotsResult) => VNode[]>(\n\t\t\t\tFunction\n\t\t\t),\n\t\t},\n\t\t/** @description 自定义单元格内容渲染(tsx语法) */\n\t\trender: {\n\t\t\ttype: definePropType<\n\t\t\t\t({ row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult) => VNode[]\n\t\t\t>(Function),\n\t\t},\n\t\t/** @description 多级表头 */\n\t\t_children: {\n\t\t\ttype: definePropType<FaTableColumnCtx[]>(Array),\n\t\t},\n\t\t/** @description 复制 */\n\t\tcopy: Boolean,\n\t\t/** @description 是否为 Link Button */\n\t\tlink: Boolean,\n\t\t/** @description 合并行字段 */\n\t\tspanProp: String,\n\t\t/** @description Link 按钮的点击事件,优先级最高 */\n\t\tclick: {\n\t\t\ttype: definePropType<({ row, $index }: { row: any; $index?: number }) => void>(Function),\n\t\t},\n\t\t/** @description 点击Emits事件回调 */\n\t\tclickEmit: String,\n\t\t/** @description 显示时间格式化字符串 */\n\t\tdateFix: Boolean,\n\t\t/** @description 显示在页面中的日期格式 */\n\t\tdateFormat: {\n\t\t\ttype: definePropType<FaTableColumnDateFormat>(String),\n\t\t},\n\t\t/** @description 是否是标签展示 */\n\t\ttag: Boolean,\n\t\t/** @description 枚举类型(渲染值的字典) */\n\t\tenum: {\n\t\t\ttype: definePropType<FaTableEnumColumnType>([Array, Function]),\n\t\t},\n\t\t/** @description 数据删除字段,如果为 true 会显示遮罩层 */\n\t\tdataDeleteField: String,\n\t\t/** @description 制单信息计算 */\n\t\tsubmitInfoField: {\n\t\t\ttype: definePropType<{ submitClerkName?: string; submitTime?: string }>(Object),\n\t\t\tdefault: () => ({\n\t\t\t\tsubmitClerkName: \"createdUserName\",\n\t\t\t\tsubmitTime: \"createdTime\",\n\t\t\t}),\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 图片预览 */\n\t\timagePreview: (url: string): boolean => isString(url),\n\t\t/** @description 自定义单元格点击事件 */\n\t\tcustomCellClick: (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): boolean =>\n\t\t\tisString(emitName) && isObject(row) && isObject(column) && isNumber($index),\n\t},\n\tslots: makeSlots<FaTableColumnSlots>(),\n\tsetup(props, { slots, emit }) {\n\t\tconst _globalSize = useGlobalSize();\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst columnCtx = computed(() => props as unknown as FaTableColumnCtx);\n\n\t\tconst renderCellData = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(tableUtil.handleRowAccordingToProp(row, props.prop));\n\t\t\t}\n\t\t};\n\n\t\tconst getTagType = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\") as any;\n\t\t};\n\n\t\tconst getWidth = (defAttr: string): string | number => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn computed(() => {\n\t\t\t\t\tconst findInfo = tableState.autoColumnWidth.find((f) => f.prop === props.prop);\n\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\treturn `${findInfo.width}px`;\n\t\t\t\t\t}\n\t\t\t\t\treturn \"auto\";\n\t\t\t\t}).value;\n\t\t\t}\n\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\treturn props.smallWidth ?? props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t\t}\n\t\t\treturn props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t};\n\n\t\tconst autoWidthHeaderRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn (\n\t\t\t\t\t<div class={[\"fa-table__auto-width-column__cell-header\", `__fa-table__auto-width-column__cell-header__${props.prop}`]}>{el}</div>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst headerRender = ({ column, $index }: { column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.headerRender) {\n\t\t\t\treturn autoWidthHeaderRender(props.headerRender({ column, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.headerSlot) {\n\t\t\t\treturn autoWidthHeaderRender(\n\t\t\t\t\tslots[props.headerSlot] && slots[props.headerSlot]({ column, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn autoWidthHeaderRender(<span>{props.label}</span>);\n\t\t\t}\n\t\t};\n\n\t\tconst autoWidthRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn <div class={[\"fa-table__auto-width-column__cell\", `__fa-table__auto-width-column__cell__${props.prop}`]}>{el}</div>;\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst handleCopyClick = async (value): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"复制失败\",\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst copyRender = (value, copy?: boolean): VNode[] => {\n\t\t\treturn (\n\t\t\t\t(props.copy || copy) &&\n\t\t\t\tvalue && (\n\t\t\t\t\t<ElIcon class=\"fa__copy-icon\" title=\"复制\" onClick={() => handleCopyClick(value)}>\n\t\t\t\t\t\t<CopyDocument />\n\t\t\t\t\t</ElIcon>\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\tconst formatterRender = (row: any, column: TableColumnCtx<any>, cellValue: any, index: number): any => {\n\t\t\tif (column.formatter) {\n\t\t\t\treturn column.formatter(row, column, cellValue, index);\n\t\t\t} else {\n\t\t\t\treturn cellValue;\n\t\t\t}\n\t\t};\n\n\t\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"submitInfo\") {\n\t\t\t\tconst submitClerkName = row[props.submitInfoField?.submitClerkName ?? \"createdUserName\"];\n\t\t\t\tconst submitTime = row[props.submitInfoField?.submitTime ?? \"createdTime\"];\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={submitTime}>\n\t\t\t\t\t\t\t{submitClerkName && <span style=\"margin-right: 5px;\">{submitClerkName}</span>}\n\t\t\t\t\t\t\t<span>{submitTime}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{submitTime && (\n\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(submitTime))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.tag) {\n\t\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue ? <ElTag type={getTagType({ row })}>{renderValue}</ElTag> : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tlet dateFormat;\n\t\t\t\tswitch (props.type) {\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t\t: null;\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\tprops.type === \"d2\" ||\n\t\t\t\tprops.type === \"d4\" ||\n\t\t\t\tprops.type === \"d6\" ||\n\t\t\t\tprops.type === \"gd2\" ||\n\t\t\t\tprops.type === \"gd4\" ||\n\t\t\t\tprops.type === \"gd6\"\n\t\t\t) {\n\t\t\t\tconst renderValue = row[props.prop];\n\t\t\t\tif (renderValue) {\n\t\t\t\t\tif (isNumber(renderValue)) {\n\t\t\t\t\t\tlet useGrouping = false;\n\t\t\t\t\t\tlet maximumFractionDigits: number;\n\t\t\t\t\t\tswitch (props.type) {\n\t\t\t\t\t\t\tcase \"d2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\t\t\tuseGrouping,\n\t\t\t\t\t\t}) as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn renderValue;\n\t\t\t} else if (props.link) {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t\t</ElText>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.slot) {\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\tslots[props.slot] && slots[props.slot]({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tlet elTableColumnProps: ComputedRef<TableColumnCtx<any>> = useProps(props, tableColumnProps, [\n\t\t\t\"type\",\n\t\t\t\"width\",\n\t\t\t\"minWidth\",\n\t\t\t\"sortable\",\n\t\t\t\"sortOrders\",\n\t\t\t\"resizable\",\n\t\t\t\"showOverflowTooltip\",\n\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\n\t\twatch(\n\t\t\t() => props,\n\t\t\t() => {\n\t\t\t\telTableColumnProps = useProps(props, tableColumnProps, [\n\t\t\t\t\t\"type\",\n\t\t\t\t\t\"minWidth\",\n\t\t\t\t\t\"sortable\",\n\t\t\t\t\t\"sortOrders\",\n\t\t\t\t\t\"resizable\",\n\t\t\t\t\t\"showOverflowTooltip\",\n\t\t\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{\n\t\t\t\t\t// 如果有配置多级表头的数据,则递归该组件\n\t\t\t\t\tprops._children?.length ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t\tprops._children.map((col: FaTableColumnCtx) =>\n\t\t\t\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\t\t\t\tresolveComponent(\"FaTableColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...col,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : props.type === \"image\" ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"fa-table__image-column\"\n\t\t\t\t\t\t\tminWidth=\"50px\"\n\t\t\t\t\t\t\tsortable={false}\n\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\trow[props.prop] ? (\n\t\t\t\t\t\t\t\t\t\ttableState.hideImage ? (\n\t\t\t\t\t\t\t\t\t\t\t<ElImage\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-image\"\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={artwork}\n\t\t\t\t\t\t\t\t\t\t\t\tfit=\"cover\"\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewSrcList={[row[props.prop]]}\n\t\t\t\t\t\t\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\t\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewTeleported\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<FaImage lazy src={row[props.prop]} fit=\"cover\" original />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ElImage class=\"fa-image\" lazy src={notImage} fit=\"cover\" />\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// 其他正常的列\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tdefaultRender({ row, column, $index }),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableColumnProps","type","String","default","label","className","labelClassName","property","prop","width","Number","minWidth","renderHeader","Function","sortable","Boolean","sortMethod","sortBy","Array","resizable","columnKey","align","headerAlign","showOverflowTooltip","undefined","fixed","formatter","selectable","reserveSelection","filterMethod","filteredValue","filters","filterPlacement","filterMultiple","filterClassName","index","sortOrders","validator","val","every","order","includes","TableColumn","name","props","definePropType","show","smallWidth","autoWidth","slot","headerSlot","headerRender","render","_children","copy","link","spanProp","click","clickEmit","dateFix","dateFormat","tag","enum","dataDeleteField","submitInfoField","submitClerkName","submitTime","emits","imagePreview","url","isString","customCellClick","emitName","row","column","$index","isObject","isNumber","slots","makeSlots","setup","emit","_globalSize","useGlobalSize","tableState","inject","tableStateKey","enumMap","enumMapKey","columnCtx","computed","getTagType","enumKey","enumData","get","tableUtil","filterEnum","handleRowAccordingToProp","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","getTableDefaultSlots","autoWidthRender","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","handleCopyClick","CopyDocument","formatterRender","cellValue","defaultRender","_slot","_Fragment","style","ElTag","round","effect","size","dateUtil","dateTimeFix","renderValue","renderCellData","formatValue","_slot2","dayjs","format","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","ElText","elTableColumnProps","useProps","watch","useRender","length","ElTableColumn","_mergeProps","header","map","col","h","resolveComponent","hideImage","ElImage","lazy","src","artwork","fit","previewSrcList","closeOnPressEscape","hideOnClickModal","previewTeleported","FaImage","original","notImage"],"mappings":"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"}
1
+ {"version":3,"file":"tableColumn.mjs","sources":["../../../../../packages/components/table/src/tableColumn.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { ElIcon, ElImage, ElMessage, ElTableColumn, ElTag, ElText, dayjs, useGlobalSize } from \"element-plus\";\nimport { CopyDocument } from \"@element-plus/icons-vue\";\nimport FaImage from \"@fast-element-plus/components/image\";\nimport { consoleError, dateUtil, definePropType, makeSlots, stringUtil, useProps, useRender } from \"@fast-china/utils\";\nimport { isNumber, isObject, isString } from \"lodash-unified\";\nimport artwork from \"../images/artwork.png\";\nimport notImage from \"../images/notImage.png\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableColumnDateFormat, FaTableColumnType, FaTableDefaultSlotsResult, FaTableEnumColumnType } from \"./table.type\";\nimport type { TableColumnCtx } from \"element-plus\";\nimport type { ComputedRef, PropType, VNode } from \"vue\";\n\ntype DefaultRow = any;\n\nexport const tableColumnProps = {\n\t/**\n\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: \"default\",\n\t},\n\t/**\n\t * @description column label\n\t */\n\tlabel: String,\n\t/**\n\t * @description class name of cells in the column\n\t */\n\tclassName: String,\n\t/**\n\t * @description class name of the label of this column\n\t */\n\tlabelClassName: String,\n\t/**\n\t * @description\n\t */\n\tproperty: String,\n\t/**\n\t * @description field name. You can also use its alias: `property`\n\t */\n\tprop: String,\n\t/**\n\t * @description column width\n\t */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description column minimum width. Columns with `width` has a fixed width, while columns with `min-width` has a width that is distributed in proportion\n\t */\n\tminWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description render function for table header of this column\n\t */\n\trenderHeader: Function as PropType<TableColumnCtx<DefaultRow>[\"renderHeader\"]>,\n\t/**\n\t * @description whether column can be sorted. Remote sorting can be done by setting this attribute to 'custom' and listening to the `sort-change` event of Table\n\t */\n\tsortable: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\t/**\n\t * @description sorting method, works when `sortable` is `true`. Should return a number, just like Array.sort\n\t */\n\tsortMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"sortMethod\"]>,\n\t/**\n\t * @description specify which property to sort by, works when `sortable` is `true` and `sort-method` is `undefined`. If set to an Array, the column will sequentially sort by the next property if the previous one is equal\n\t */\n\tsortBy: [String, Function, Array] as PropType<TableColumnCtx<DefaultRow>[\"sortBy\"]>,\n\t/**\n\t * @description whether column width can be resized, works when `border` of `el-table` is `true`\n\t */\n\tresizable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description column's key. If you need to use the filter-change event, you need this attribute to identify which column is being filtered\n\t */\n\tcolumnKey: String,\n\t/**\n\t * @description alignment, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\talign: String,\n\t/**\n\t * @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\theaderAlign: String,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell\n\t */\n\tshowOverflowTooltip: {\n\t\ttype: [Boolean, Object] as PropType<TableColumnCtx<DefaultRow>[\"showOverflowTooltip\"]>,\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description whether column is fixed at left / right. Will be fixed at left if `true`\n\t */\n\tfixed: [Boolean, String],\n\t/**\n\t * @description function that formats cell content\n\t */\n\tformatter: Function as PropType<TableColumnCtx<DefaultRow>[\"formatter\"]>,\n\t/**\n\t * @description function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\tselectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n\t/**\n\t * @description whether to reserve selection after data refreshing, works when `type` is 'selection'. Note that `row-key` is required for this to work\n\t */\n\treserveSelection: Boolean,\n\t/**\n\t * @description data filtering method. If `filter-multiple` is on, this method will be called multiple times for each row, and a row will display if one of the calls returns `true`\n\t */\n\tfilterMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"filterMethod\"]>,\n\t/**\n\t * @description filter value for selected data, might be useful when table header is rendered with `render-header`\n\t */\n\tfilteredValue: Array as PropType<TableColumnCtx<DefaultRow>[\"filteredValue\"]>,\n\t/**\n\t * @description an array of data filtering options. For each element in this array, `text` and `value` are required\n\t */\n\tfilters: Array as PropType<TableColumnCtx<DefaultRow>[\"filters\"]>,\n\t/**\n\t * @description placement for the filter dropdown\n\t */\n\tfilterPlacement: String,\n\t/**\n\t * @description whether data filtering supports multiple options\n\t */\n\tfilterMultiple: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description className for the filter dropdown\n\t */\n\tfilterClassName: String,\n\t/**\n\t * @description customize indices for each row, works on columns with `type=index`\n\t */\n\tindex: [Number, Function] as PropType<TableColumnCtx<DefaultRow>[\"index\"]>,\n\t/**\n\t * @description the order of the sorting strategies used when sorting the data, works when `sortable` is `true`. Accepts an array, as the user clicks on the header, the column is sorted in order of the elements in the array\n\t */\n\tsortOrders: {\n\t\ttype: Array as PropType<TableColumnCtx<DefaultRow>[\"sortOrders\"]>,\n\t\tdefault: (): TableColumnCtx<DefaultRow>[\"sortOrders\"] => {\n\t\t\treturn [\"ascending\", \"descending\", null];\n\t\t},\n\t\tvalidator: (val: TableColumnCtx<unknown>[\"sortOrders\"]): boolean => {\n\t\t\treturn val.every((order: string) => [\"ascending\", \"descending\", null].includes(order));\n\t\t},\n\t},\n};\n\ntype FaTableColumnSlotsResult = {\n\t/** @description slots为表格内容的时候才会返回 */\n\trow?: any;\n\t/** @description slot为表头内容的时候返回 'TableColumnCtx<any>' 否则返回 'FaTableColumnCtx' */\n\tcolumn?: TableColumnCtx<any> | FaTableColumnCtx;\n\t$index?: number;\n};\n\ntype FaTableColumnDefaultSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & FaTableColumnSlotsResult;\n};\n\ntype FaTableColumnSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: FaTableDefaultSlotsResult & { row: any; column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义表头的内容 */\n\theader: FaTableDefaultSlotsResult & { column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义 filter 图标 */\n\tfilterIcon: FaTableDefaultSlotsResult & { filterOpened: boolean };\n} & FaTableColumnDefaultSlots;\n\nexport default defineComponent({\n\tname: \"FaTableColumn\",\n\tprops: {\n\t\t...tableColumnProps,\n\t\t/**\n\t\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t\t */\n\t\ttype: {\n\t\t\ttype: definePropType<FaTableColumnType>(String),\n\t\t\tdefault: \"default\",\n\t\t},\n\t\t/**\n\t\t * @description column width\n\t\t */\n\t\twidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\t/** @description alignment, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\talign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\theaderAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description 是否显示在表格当中 */\n\t\tshow: Boolean,\n\t\t/** @description 小页面的宽度,如果为空,则继承默认宽度 */\n\t\tsmallWidth: {\n\t\t\ttype: [String, Number],\n\t\t},\n\t\t/** @description 自适应宽度 */\n\t\tautoWidth: Boolean,\n\t\t/** @description 插槽名称 */\n\t\tslot: String,\n\t\t/** @description 表格头部插槽名称 */\n\t\theaderSlot: String,\n\t\t/** @description 自定义表头内容渲染(tsx语法) */\n\t\theaderRender: {\n\t\t\ttype: definePropType<({ column, $index }: { column: TableColumnCtx<any>; $index: number } & FaTableDefaultSlotsResult) => VNode[]>(\n\t\t\t\tFunction\n\t\t\t),\n\t\t},\n\t\t/** @description 自定义单元格内容渲染(tsx语法) */\n\t\trender: {\n\t\t\ttype: definePropType<\n\t\t\t\t({ row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult) => VNode[]\n\t\t\t>(Function),\n\t\t},\n\t\t/** @description 多级表头 */\n\t\t_children: {\n\t\t\ttype: definePropType<FaTableColumnCtx[]>(Array),\n\t\t},\n\t\t/** @description 隐藏图片 */\n\t\thideImage: Boolean,\n\t\t/** @description 复制 */\n\t\tcopy: Boolean,\n\t\t/** @description 是否为 Link Button */\n\t\tlink: Boolean,\n\t\t/** @description 合并行字段 */\n\t\tspanProp: String,\n\t\t/** @description Link 按钮的点击事件,优先级最高 */\n\t\tclick: {\n\t\t\ttype: definePropType<({ row, $index }: { row: any; $index?: number }) => void>(Function),\n\t\t},\n\t\t/** @description 点击Emits事件回调 */\n\t\tclickEmit: String,\n\t\t/** @description 显示时间格式化字符串 */\n\t\tdateFix: Boolean,\n\t\t/** @description 显示在页面中的日期格式 */\n\t\tdateFormat: {\n\t\t\ttype: definePropType<FaTableColumnDateFormat>(String),\n\t\t},\n\t\t/** @description 是否是标签展示 */\n\t\ttag: Boolean,\n\t\t/** @description 枚举类型(渲染值的字典) */\n\t\tenum: {\n\t\t\ttype: definePropType<FaTableEnumColumnType>([Array, Function]),\n\t\t},\n\t\t/** @description 数据删除字段,如果为 true 会显示遮罩层 */\n\t\tdataDeleteField: String,\n\t\t/** @description 制单信息计算 */\n\t\tsubmitInfoField: {\n\t\t\ttype: definePropType<{ submitClerkName?: string; submitTime?: string }>(Object),\n\t\t\tdefault: () => ({\n\t\t\t\tsubmitClerkName: \"createdUserName\",\n\t\t\t\tsubmitTime: \"createdTime\",\n\t\t\t}),\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 图片预览 */\n\t\timagePreview: (url: string): boolean => isString(url),\n\t\t/** @description 自定义单元格点击事件 */\n\t\tcustomCellClick: (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): boolean =>\n\t\t\tisString(emitName) && isObject(row) && isObject(column) && isNumber($index),\n\t},\n\tslots: makeSlots<FaTableColumnSlots>(),\n\tsetup(props, { slots, emit }) {\n\t\tconst _globalSize = useGlobalSize();\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst columnCtx = computed(() => props as unknown as FaTableColumnCtx);\n\n\t\tconst renderCellData = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(tableUtil.handleRowAccordingToProp(row, props.prop));\n\t\t\t}\n\t\t};\n\n\t\tconst getTagType = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\") as any;\n\t\t};\n\n\t\tconst getWidth = (defAttr: string): string | number => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn computed(() => {\n\t\t\t\t\tconst findInfo = tableState.autoColumnWidth.find((f) => f.prop === props.prop);\n\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\treturn `${findInfo.width}px`;\n\t\t\t\t\t}\n\t\t\t\t\treturn \"auto\";\n\t\t\t\t}).value;\n\t\t\t}\n\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\treturn props.smallWidth ?? props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t\t}\n\t\t\treturn props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t};\n\n\t\tconst autoWidthHeaderRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn (\n\t\t\t\t\t<div class={[\"fa-table__auto-width-column__cell-header\", `__fa-table__auto-width-column__cell-header__${props.prop}`]}>{el}</div>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst headerRender = ({ column, $index }: { column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.headerRender) {\n\t\t\t\treturn autoWidthHeaderRender(props.headerRender({ column, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.headerSlot) {\n\t\t\t\treturn autoWidthHeaderRender(\n\t\t\t\t\tslots[props.headerSlot] && slots[props.headerSlot]({ column, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn autoWidthHeaderRender(<span>{props.label}</span>);\n\t\t\t}\n\t\t};\n\n\t\tconst autoWidthRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn <div class={[\"fa-table__auto-width-column__cell\", `__fa-table__auto-width-column__cell__${props.prop}`]}>{el}</div>;\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst handleCopyClick = async (value): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"复制失败\",\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst copyRender = (value, copy?: boolean): VNode[] => {\n\t\t\treturn (\n\t\t\t\t(props.copy || copy) &&\n\t\t\t\tvalue && (\n\t\t\t\t\t<ElIcon class=\"fa__copy-icon\" title=\"复制\" onClick={() => handleCopyClick(value)}>\n\t\t\t\t\t\t<CopyDocument />\n\t\t\t\t\t</ElIcon>\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\tconst formatterRender = (row: any, column: TableColumnCtx<any>, cellValue: any, index: number): any => {\n\t\t\tif (column.formatter) {\n\t\t\t\treturn column.formatter(row, column, cellValue, index);\n\t\t\t} else {\n\t\t\t\treturn cellValue;\n\t\t\t}\n\t\t};\n\n\t\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"submitInfo\") {\n\t\t\t\tconst submitClerkName = row[props.submitInfoField?.submitClerkName ?? \"createdUserName\"];\n\t\t\t\tconst submitTime = row[props.submitInfoField?.submitTime ?? \"createdTime\"];\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={submitTime}>\n\t\t\t\t\t\t\t{submitClerkName && <span style=\"margin-right: 5px;\">{submitClerkName}</span>}\n\t\t\t\t\t\t\t<span>{submitTime}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{submitTime && (\n\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(submitTime))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.tag) {\n\t\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue ? <ElTag type={getTagType({ row })}>{renderValue}</ElTag> : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tlet dateFormat;\n\t\t\t\tswitch (props.type) {\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t\t: null;\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\tprops.type === \"d2\" ||\n\t\t\t\tprops.type === \"d4\" ||\n\t\t\t\tprops.type === \"d6\" ||\n\t\t\t\tprops.type === \"gd2\" ||\n\t\t\t\tprops.type === \"gd4\" ||\n\t\t\t\tprops.type === \"gd6\"\n\t\t\t) {\n\t\t\t\tconst renderValue = row[props.prop];\n\t\t\t\tif (renderValue) {\n\t\t\t\t\tif (isNumber(renderValue)) {\n\t\t\t\t\t\tlet useGrouping = false;\n\t\t\t\t\t\tlet maximumFractionDigits: number;\n\t\t\t\t\t\tswitch (props.type) {\n\t\t\t\t\t\t\tcase \"d2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\t\t\tuseGrouping,\n\t\t\t\t\t\t}) as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn renderValue;\n\t\t\t} else if (props.link) {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t\t</ElText>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.slot) {\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\tslots[props.slot] && slots[props.slot]({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tlet elTableColumnProps: ComputedRef<TableColumnCtx<any>> = useProps(props, tableColumnProps, [\n\t\t\t\"type\",\n\t\t\t\"width\",\n\t\t\t\"minWidth\",\n\t\t\t\"sortable\",\n\t\t\t\"sortOrders\",\n\t\t\t\"resizable\",\n\t\t\t\"showOverflowTooltip\",\n\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\n\t\twatch(\n\t\t\t() => props,\n\t\t\t() => {\n\t\t\t\telTableColumnProps = useProps(props, tableColumnProps, [\n\t\t\t\t\t\"type\",\n\t\t\t\t\t\"minWidth\",\n\t\t\t\t\t\"sortable\",\n\t\t\t\t\t\"sortOrders\",\n\t\t\t\t\t\"resizable\",\n\t\t\t\t\t\"showOverflowTooltip\",\n\t\t\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{\n\t\t\t\t\t// 如果有配置多级表头的数据,则递归该组件\n\t\t\t\t\tprops._children?.length ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t\tprops._children.map((col: FaTableColumnCtx) =>\n\t\t\t\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\t\t\t\tresolveComponent(\"FaTableColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...col,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : props.type === \"image\" ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"fa-table__image-column\"\n\t\t\t\t\t\t\tminWidth=\"50px\"\n\t\t\t\t\t\t\tsortable={false}\n\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\trow[props.prop] ? (\n\t\t\t\t\t\t\t\t\t\tprops.hideImage ? (\n\t\t\t\t\t\t\t\t\t\t\t<ElImage\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-image\"\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={artwork}\n\t\t\t\t\t\t\t\t\t\t\t\tfit=\"cover\"\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewSrcList={[row[props.prop]]}\n\t\t\t\t\t\t\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\t\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewTeleported\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<FaImage lazy src={row[props.prop]} fit=\"cover\" original />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ElImage class=\"fa-image\" lazy src={notImage} fit=\"cover\" />\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// 其他正常的列\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tdefaultRender({ row, column, $index }),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableColumnProps","type","String","default","label","className","labelClassName","property","prop","width","Number","minWidth","renderHeader","Function","sortable","Boolean","sortMethod","sortBy","Array","resizable","columnKey","align","headerAlign","showOverflowTooltip","undefined","fixed","formatter","selectable","reserveSelection","filterMethod","filteredValue","filters","filterPlacement","filterMultiple","filterClassName","index","sortOrders","validator","val","every","order","includes","TableColumn","name","props","definePropType","show","smallWidth","autoWidth","slot","headerSlot","headerRender","render","_children","hideImage","copy","link","spanProp","click","clickEmit","dateFix","dateFormat","tag","enum","dataDeleteField","submitInfoField","submitClerkName","submitTime","emits","imagePreview","url","isString","customCellClick","emitName","row","column","$index","isObject","isNumber","slots","makeSlots","setup","emit","_globalSize","useGlobalSize","tableState","inject","tableStateKey","enumMap","enumMapKey","columnCtx","computed","getTagType","enumKey","enumData","get","tableUtil","filterEnum","handleRowAccordingToProp","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","getTableDefaultSlots","autoWidthRender","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","handleCopyClick","CopyDocument","formatterRender","cellValue","defaultRender","_slot","_Fragment","style","ElTag","round","effect","size","dateUtil","dateTimeFix","renderValue","renderCellData","formatValue","_slot2","dayjs","format","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","ElText","elTableColumnProps","useProps","watch","useRender","length","ElTableColumn","_mergeProps","header","map","col","h","resolveComponent","ElImage","lazy","src","artwork","fit","previewSrcList","closeOnPressEscape","hideOnClickModal","previewTeleported","FaImage","original","notImage"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { FaTableChangeColumnsCtx } from './table.type';
1
+ import { FaTableColumnCtx } from './table.type';
2
2
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
3
3
  /** @description 改变 */
4
4
  change: {
5
- type: import('vue').PropType<(columns: FaTableChangeColumnsCtx[]) => Promise<void>>;
5
+ type: import('vue').PropType<(columns: FaTableColumnCtx[]) => Promise<void>>;
6
6
  };
7
7
  }>, {
8
8
  /** @description 打开 */
@@ -12,7 +12,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
12
12
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
13
13
  /** @description 改变 */
14
14
  change: {
15
- type: import('vue').PropType<(columns: FaTableChangeColumnsCtx[]) => Promise<void>>;
15
+ type: import('vue').PropType<(columns: FaTableColumnCtx[]) => Promise<void>>;
16
16
  };
17
17
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
18
18
  export default _default;
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,inject as l,reactive as a,ref as o,createVNode as d,Fragment as t,mergeProps as n,createTextVNode as r,resolveComponent as i}from"vue";import{ElNotification as s,ElMessage as c,ElTable as u,ElTableColumn as m,ElInput as h,ElRadioGroup as p,ElRadio as b,ElInputNumber as f,ElSwitch as g}from"element-plus";import{FaDialog as w}from"../../dialog/index.mjs";import{stringUtil as y,useRender as x,useExpose as V,definePropType as C}from"@fast-china/utils";import v from"sortablejs";import{tableStateKey as S}from"./useTable.mjs";const T=/* @__PURE__ */e({name:"FaTableColumnsSettingDialog",props:{change:{type:C(Function)}},setup(e,{expose:C}){const T=l(S),U=a({tableKey:y.generateRandomString(8),sortableInstance:void 0,change:!1}),W=o(),_=e=>e+1,I=async()=>{e.change&&(U.change?(await e.change(T.orgColumns.map(e=>({columnID:e.columnID,label:e.label,fixed:e.fixed,width:e.width,smallWidth:e.smallWidth,order:e.order,sortable:e.sortable,copy:e.copy,autoWidth:e.autoWidth,show:e.show,search:{label:e.search?.label,order:e.search?.order}}))),c.success("保存列配置成功")):c.info("列配置未发生变化"))},k=()=>{W.value.close(async()=>{await I()})},K=()=>{U.change=!0;let e=T.orgColumns.filter(e=>!e?.pureSearch);e=e.sort((l,a)=>l.order!==a.order?l.order-a.order:e.indexOf(a)-e.indexOf(l)),T.orgColumns=[...e,...T.orgColumns.filter(e=>e?.pureSearch)],T.orgColumns.forEach((e,l)=>{e.order=l+1})},P=()=>{U.change=!0},j=(e,l=!1)=>{const a={modelValue:void 0,disabled:!1,placeholder:void 0};if(e?.type)switch(e?.type){case"expand":a.disabled=!0,a.placeholder="暂不支持宽度配置";break;case"image":a.disabled=!0,a.placeholder="图片列无需配置";break;case"date":case"time":case"dateTime":a.disabled=!0,a.placeholder="时间/日期列无需配置";break;case"submitInfo":a.disabled=!0,a.placeholder="当前列无需配置"}else e?.tag?(a.disabled=!0,a.placeholder="标签列无需配置"):e?.autoWidth&&(a.disabled=!0,a.placeholder="自动列宽无需配置");return a.disabled||(delete a.disabled,delete a.modelValue,delete a.placeholder),l&&delete a.placeholder,a},D=(e,l=!1,a=!1,o=!1)=>{const d={modelValue:void 0,disabled:!1,placeholder:void 0};return e?.pureSearch&&(d.disabled=!0,d.placeholder="搜索列无需配置"),d.disabled?o&&delete d.modelValue:(delete d.disabled,delete d.modelValue,delete d.placeholder),l&&delete d.placeholder,a&&(d.placeholder="999"),d};return x(()=>d(w,{ref:W,class:"fa-table__column-setting-dialog",onConfirmClick:k,showFullscreen:!1,confirmButtonText:U.change?"保存更改":"确认",fillHeight:!0},{header:()=>d(t,null,[r("列表配置(留空则恢复默认配置)"),d(i("el-text"),{type:"info"},{default:()=>[r("点击保存才会进行数据缓存,点击取消为本此生效")]})]),default:()=>d(u,{class:["fa-table__column-setting",`fa-table__column-setting-${U.tableKey}`],data:T.orgColumns,rowKey:"prop",border:!0},{default:()=>d(t,null,[d(m,{type:"index",fixed:"left",align:"center",width:45,index:_},null),d(m,{label:"列显示名称",minWidth:200},{default:({row:e})=>"image"===e.type?d(h,{disabled:!0,readonly:!0,modelValue:e.label,"onUpdate:modelValue":l=>e.label=l,placeholder:"请输入列显示名称",onChange:P},null):d(h,n({modelValue:e.label,"onUpdate:modelValue":l=>e.label=l,placeholder:"请输入列显示名称"},D(e),{onChange:P}),null)}),d(m,{label:"固定",width:230},{default:({row:e})=>d(p,n({modelValue:e.fixed,"onUpdate:modelValue":l=>e.fixed=l},D(e,!1,!1,!0),{onChange:P}),{default:()=>[d(b,{value:!1},{default:()=>[r("无")]}),d(b,{value:"left"},{default:()=>[r("左侧")]}),d(b,{value:"right"},{default:()=>[r("右侧")]})]})}),d(m,{label:"宽度",width:200},{default:({row:e})=>d(f,n({modelValue:e.width,"onUpdate:modelValue":l=>e.width=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入宽度"},j(e),D(e),{onChange:P}),null)}),d(m,{label:"小的宽度",width:200},{default:({row:e})=>d(f,n({modelValue:e.smallWidth,"onUpdate:modelValue":l=>e.smallWidth=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入小的宽度"},j(e),D(e),{onChange:P}),null)}),d(m,{label:"顺序",width:100},{default:({row:e})=>d(f,n({modelValue:e.order,"onUpdate:modelValue":l=>e.order=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入顺序"},D(e,!1,!0),{onChange:K}),null)}),d(m,{label:"排序",width:65},{default:({row:e})=>d(g,n({modelValue:e.sortable,"onUpdate:modelValue":l=>e.sortable=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:e.disabledSortable||"image"===e?.type},D(e,!0),{onChange:P}),null)}),d(m,{label:"复制",width:65},{default:({row:e})=>d(g,n({modelValue:e.copy,"onUpdate:modelValue":l=>e.copy=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:!!e?.type||!!e?.slot},D(e,!0),{onChange:P}),null)}),d(m,{label:"自动宽度",width:85},{default:({row:e})=>d(g,n({modelValue:e.autoWidth,"onUpdate:modelValue":l=>e.autoWidth=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:!!e?.type},D(e,!0),{onChange:P}),null)}),d(m,{label:"显示",width:75},{default:({row:e})=>d(g,{modelValue:e.show,"onUpdate:modelValue":l=>e.show=l,inlinePrompt:!0,activeText:"显示",inactiveText:"隐藏",onChange:P},null)}),d(m,{label:"搜索框名称",minWidth:200},{default:({row:e})=>e.search?d(h,{modelValue:e.search.label,"onUpdate:modelValue":l=>e.search.label=l,placeholder:"请输入搜索框名称",onChange:P},null):d(h,{disabled:!0,placeholder:"当前列暂无搜索项配置"},null)}),d(m,{label:"搜索框顺序",width:200},{default:({row:e})=>e.search?d(f,{modelValue:e.search.order,"onUpdate:modelValue":l=>e.search.order=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入搜索框顺序",onChange:P},null):d(f,{disabled:!0,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"当前列暂无搜索项配置"},null)})])})})),V(C,{open:()=>{W.value.open(()=>{(()=>{const e=document.querySelector(`.fa-table__column-setting-${U.tableKey} .el-table__body-wrapper tbody`);U.sortableInstance&&U.sortableInstance.destroy(),U.sortableInstance=new v(e,{animation:150,delay:0,onEnd(e){const{newIndex:l,oldIndex:a}=e;if(l!==a){U.change=!0;const e=T.orgColumns.splice(a,1)[0];T.orgColumns.splice(l,0,e),T.orgColumns=T.orgColumns.map((e,l)=>({...e,order:l+1}))}}})})(),s({message:"点击保存才会进行数据缓存,点击取消为本此生效",type:"info"})})},change:I})}});export{T as default};
1
+ import{defineComponent as e,inject as l,reactive as a,ref as o,createVNode as t,Fragment as d,mergeProps as n,createTextVNode as r,resolveComponent as i}from"vue";import{ElNotification as s,ElMessage as c,ElTable as u,ElTableColumn as m,ElInput as h,ElRadioGroup as p,ElRadio as b,ElInputNumber as f,ElSwitch as g}from"element-plus";import{FaDialog as w}from"../../dialog/index.mjs";import{stringUtil as y,useRender as V,useExpose as x,definePropType as C}from"@fast-china/utils";import v from"sortablejs";import{tableStateKey as S}from"./useTable.mjs";const T=/* @__PURE__ */e({name:"FaTableColumnsSettingDialog",props:{change:{type:C(Function)}},setup(e,{expose:C}){const T=l(S),U=a({tableKey:y.generateRandomString(8),sortableInstance:void 0,change:!1}),_=o(),I=e=>e+1,W=async()=>{U.change&&e.change?await e.change(T.orgColumns):c.info("列配置未发生变化")},k=()=>{_.value.close(async()=>{await W()})},K=()=>{U.change=!0;let e=T.orgColumns.filter(e=>!e?.pureSearch);e=e.sort((l,a)=>l.order!==a.order?l.order-a.order:e.indexOf(a)-e.indexOf(l)),T.orgColumns=[...e,...T.orgColumns.filter(e=>e?.pureSearch)],T.orgColumns.forEach((e,l)=>{e.order=l+1})},P=()=>{U.change=!0},j=(e,l=!1)=>{const a={modelValue:void 0,disabled:!1,placeholder:void 0};if(e?.type)switch(e?.type){case"expand":a.disabled=!0,a.placeholder="暂不支持宽度配置";break;case"image":a.disabled=!0,a.placeholder="图片列无需配置";break;case"date":case"time":case"dateTime":a.disabled=!0,a.placeholder="时间/日期列无需配置";break;case"submitInfo":a.disabled=!0,a.placeholder="当前列无需配置"}else e?.tag?(a.disabled=!0,a.placeholder="标签列无需配置"):e?.autoWidth&&(a.disabled=!0,a.placeholder="自动列宽无需配置");return a.disabled||(delete a.disabled,delete a.modelValue,delete a.placeholder),l&&delete a.placeholder,a},F=(e,l=!1,a=!1,o=!1)=>{const t={modelValue:void 0,disabled:!1,placeholder:void 0};return e?.pureSearch&&(t.disabled=!0,t.placeholder="搜索列无需配置"),t.disabled?o&&delete t.modelValue:(delete t.disabled,delete t.modelValue,delete t.placeholder),l&&delete t.placeholder,a&&(t.placeholder="999"),t};return V(()=>t(w,{ref:_,class:"fa-table__column-setting-dialog",onConfirmClick:k,showFullscreen:!1,confirmButtonText:U.change?"保存更改":"确认",fillHeight:!0},{header:()=>t(d,null,[r("列表配置(留空则恢复默认配置)"),t(i("el-text"),{type:"info"},{default:()=>[r("点击保存才会进行数据缓存,点击取消为本此生效")]})]),default:()=>t(u,{class:["fa-table__column-setting",`fa-table__column-setting-${U.tableKey}`],data:T.orgColumns,rowKey:"prop",border:!0},{default:()=>t(d,null,[t(m,{type:"index",fixed:"left",align:"center",width:45,index:I},null),t(m,{label:"列显示名称",minWidth:200},{default:({row:e})=>"image"===e.type?t(h,{disabled:!0,readonly:!0,modelValue:e.label,"onUpdate:modelValue":l=>e.label=l,placeholder:"请输入列显示名称",onChange:P},null):t(h,n({modelValue:e.label,"onUpdate:modelValue":l=>e.label=l,placeholder:"请输入列显示名称"},F(e),{onChange:P}),null)}),t(m,{label:"固定",width:230},{default:({row:e})=>t(p,n({modelValue:e.fixed,"onUpdate:modelValue":l=>e.fixed=l},F(e,!1,!1,!0),{onChange:P}),{default:()=>[t(b,{value:!1},{default:()=>[r("无")]}),t(b,{value:"left"},{default:()=>[r("左侧")]}),t(b,{value:"right"},{default:()=>[r("右侧")]})]})}),t(m,{label:"宽度",width:200},{default:({row:e})=>t(f,n({modelValue:e.width,"onUpdate:modelValue":l=>e.width=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入宽度"},j(e),F(e),{onChange:P}),null)}),t(m,{label:"小的宽度",width:200},{default:({row:e})=>t(f,n({modelValue:e.smallWidth,"onUpdate:modelValue":l=>e.smallWidth=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入小的宽度"},j(e),F(e),{onChange:P}),null)}),t(m,{label:"顺序",width:100},{default:({row:e})=>t(f,n({modelValue:e.order,"onUpdate:modelValue":l=>e.order=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入顺序"},F(e,!1,!0),{onChange:K}),null)}),t(m,{label:"排序",width:65},{default:({row:e})=>t(g,n({modelValue:e.sortable,"onUpdate:modelValue":l=>e.sortable=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:e.disabledSortable||"image"===e?.type},F(e,!0),{onChange:P}),null)}),t(m,{label:"复制",width:65},{default:({row:e})=>t(g,n({modelValue:e.copy,"onUpdate:modelValue":l=>e.copy=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:!!e?.type||!!e?.slot},F(e,!0),{onChange:P}),null)}),t(m,{label:"自动宽度",width:85},{default:({row:e})=>t(g,n({modelValue:e.autoWidth,"onUpdate:modelValue":l=>e.autoWidth=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:!!e?.type},F(e,!0),{onChange:P}),null)}),t(m,{label:"显示",width:75},{default:({row:e})=>t(g,{modelValue:e.show,"onUpdate:modelValue":l=>e.show=l,inlinePrompt:!0,activeText:"显示",inactiveText:"隐藏",onChange:P},null)}),t(m,{label:"搜索框名称",minWidth:200},{default:({row:e})=>e.search?t(h,{modelValue:e.search.label,"onUpdate:modelValue":l=>e.search.label=l,placeholder:"请输入搜索框名称",onChange:P},null):t(h,{disabled:!0,placeholder:"当前列暂无搜索项配置"},null)}),t(m,{label:"搜索框顺序",width:200},{default:({row:e})=>e.search?t(f,{modelValue:e.search.order,"onUpdate:modelValue":l=>e.search.order=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入搜索框顺序",onChange:P},null):t(f,{disabled:!0,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"当前列暂无搜索项配置"},null)})])})})),x(C,{open:()=>{_.value.open(()=>{(()=>{const e=document.querySelector(`.fa-table__column-setting-${U.tableKey} .el-table__body-wrapper tbody`);U.sortableInstance&&U.sortableInstance.destroy(),U.sortableInstance=new v(e,{animation:150,delay:0,onEnd(e){const{newIndex:l,oldIndex:a}=e;if(l!==a){U.change=!0;const e=T.orgColumns.splice(a,1)[0];T.orgColumns.splice(l,0,e),T.orgColumns=T.orgColumns.map((e,l)=>({...e,order:l+1}))}}})})(),s({message:"点击保存才会进行数据缓存,点击取消为本此生效",type:"info"})})},change:W})}});export{T as default};
2
2
  //# sourceMappingURL=tableColumnSettingDialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableColumnSettingDialog.mjs","sources":["../../../../../packages/components/table/src/tableColumnSettingDialog.tsx"],"sourcesContent":["import { Fragment, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElInput, ElInputNumber, ElMessage, ElNotification, ElRadio, ElRadioGroup, ElSwitch, ElTable, ElTableColumn } from \"element-plus\";\nimport { FaDialog } from \"@fast-element-plus/components/dialog\";\nimport { definePropType, stringUtil, useExpose, useRender } from \"@fast-china/utils\";\nimport Sortable from \"sortablejs\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaTableChangeColumnsCtx, FaTableColumnCtx } from \"./table.type\";\nimport type { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport type { TableColumnCtx } from \"element-plus\";\n\nexport default defineComponent({\n\tname: \"FaTableColumnsSettingDialog\",\n\tprops: {\n\t\t/** @description 改变 */\n\t\tchange: {\n\t\t\ttype: definePropType<(columns: FaTableChangeColumnsCtx[]) => Promise<void>>(Function),\n\t\t},\n\t},\n\tsetup(props, { expose }) {\n\t\tconst tableState = inject(tableStateKey);\n\n\t\tconst state = reactive({\n\t\t\ttableKey: stringUtil.generateRandomString(8),\n\t\t\tsortableInstance: undefined,\n\t\t\tchange: false,\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\n\t\tconst indexMethod = (index: number): number => {\n\t\t\treturn index + 1;\n\t\t};\n\n\t\t// /**\n\t\t// * 处理固定行ClassName\n\t\t// */\n\t\t// const handleFixedRowClassName = (row: FaTableColumnCtx) => {\n\t\t// \tif (row.fixed) {\n\t\t// \t\treturn \"fa-table__setting-fixed-column\";\n\t\t// \t}\n\t\t// };\n\n\t\tconst tableRowDrop = (): void => {\n\t\t\tconst tBody = document.querySelector(`.fa-table__column-setting-${state.tableKey} .el-table__body-wrapper tbody`) as any;\n\n\t\t\t// 销毁现有Sortable实例(如果存在)\n\t\t\tif (state.sortableInstance) {\n\t\t\t\tstate.sortableInstance.destroy();\n\t\t\t}\n\n\t\t\tstate.sortableInstance = new Sortable(tBody, {\n\t\t\t\t// ms, number 单位:ms,定义排序动画的时间\n\t\t\t\tanimation: 150,\n\t\t\t\tdelay: 0,\n\t\t\t\t// filter: \".fa-table__setting-fixed-column\",\n\t\t\t\t// onMove(evt: any) {\n\t\t\t\t// \tconst { related } = evt;\n\t\t\t\t// \treturn !related.classList.contains(\"fa-table__setting-fixed-column\");\n\t\t\t\t// },\n\t\t\t\tonEnd(evt: any): void {\n\t\t\t\t\tconst { newIndex, oldIndex } = evt;\n\t\t\t\t\tif (newIndex !== oldIndex) {\n\t\t\t\t\t\tstate.change = true;\n\t\t\t\t\t\tconst curRow = tableState.orgColumns.splice(oldIndex, 1)[0];\n\t\t\t\t\t\ttableState.orgColumns.splice(newIndex, 0, curRow);\n\t\t\t\t\t\ttableState.orgColumns = tableState.orgColumns.map((item, index) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\torder: index + 1,\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\n\t\tconst open = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\ttableRowDrop();\n\t\t\t\tElNotification({\n\t\t\t\t\tmessage: \"点击保存才会进行数据缓存,点击取消为本此生效\",\n\t\t\t\t\ttype: \"info\",\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleChange = async (): Promise<void> => {\n\t\t\tif (props.change) {\n\t\t\t\tif (state.change) {\n\t\t\t\t\tawait props.change(\n\t\t\t\t\t\ttableState.orgColumns.map((m) => ({\n\t\t\t\t\t\t\tcolumnID: m.columnID,\n\t\t\t\t\t\t\tlabel: m.label,\n\t\t\t\t\t\t\tfixed: m.fixed,\n\t\t\t\t\t\t\twidth: m.width,\n\t\t\t\t\t\t\tsmallWidth: m.smallWidth,\n\t\t\t\t\t\t\torder: m.order,\n\t\t\t\t\t\t\tsortable: m.sortable,\n\t\t\t\t\t\t\tcopy: m.copy,\n\t\t\t\t\t\t\tautoWidth: m.autoWidth,\n\t\t\t\t\t\t\tshow: m.show,\n\t\t\t\t\t\t\tsearch: {\n\t\t\t\t\t\t\t\tlabel: m.search?.label,\n\t\t\t\t\t\t\t\torder: m.search?.order,\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\tElMessage.success(\"保存列配置成功\");\n\t\t\t\t} else {\n\t\t\t\t\tElMessage.info(\"列配置未发生变化\");\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(async () => {\n\t\t\t\tawait handleChange();\n\t\t\t});\n\t\t};\n\n\t\tconst handleOrderChange = (): void => {\n\t\t\tstate.change = true;\n\t\t\tlet orderColumns = tableState.orgColumns.filter((f) => !f?.pureSearch);\n\t\t\torderColumns = orderColumns.sort((a, b) => {\n\t\t\t\tif (a.order !== b.order) {\n\t\t\t\t\treturn a.order - b.order;\n\t\t\t\t} else {\n\t\t\t\t\treturn orderColumns.indexOf(b) - orderColumns.indexOf(a);\n\t\t\t\t}\n\t\t\t});\n\t\t\ttableState.orgColumns = [...orderColumns, ...tableState.orgColumns.filter((f) => f?.pureSearch)];\n\t\t\ttableState.orgColumns.forEach((item, index) => {\n\t\t\t\titem.order = index + 1;\n\t\t\t});\n\t\t};\n\n\t\tconst handleColumnChange = (): void => {\n\t\t\tstate.change = true;\n\t\t};\n\n\t\tconst autoWidthDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.type) {\n\t\t\t\tswitch (row?.type) {\n\t\t\t\t\tcase \"expand\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"暂不支持宽度配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"图片列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"时间/日期列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"submitInfo\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"当前列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (row?.tag) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"标签列无需配置\";\n\t\t\t} else if (row?.autoWidth) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"自动列宽无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst pureSearchDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false,\n\t\t\torderEl = false,\n\t\t\tradioEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.pureSearch) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"搜索列无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t} else {\n\t\t\t\tif (radioEl) {\n\t\t\t\t\tdelete result.modelValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (orderEl) {\n\t\t\t\tresult.placeholder = \"999\";\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<FaDialog\n\t\t\t\tref={faDialogRef}\n\t\t\t\tclass=\"fa-table__column-setting-dialog\"\n\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\tshowFullscreen={false}\n\t\t\t\tconfirmButtonText={state.change ? \"保存更改\" : \"确认\"}\n\t\t\t\tfillHeight\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t列表配置(留空则恢复默认配置)\n\t\t\t\t\t\t\t<el-text type=\"info\">点击保存才会进行数据缓存,点击取消为本此生效</el-text>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElTable\n\t\t\t\t\t\t\tclass={[\"fa-table__column-setting\", `fa-table__column-setting-${state.tableKey}`]}\n\t\t\t\t\t\t\tdata={tableState.orgColumns}\n\t\t\t\t\t\t\trowKey=\"prop\"\n\t\t\t\t\t\t\tborder\n\t\t\t\t\t\t\t// rowClassName={handleFixedRowClassName}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn type=\"index\" fixed=\"left\" align=\"center\" width={45} index={indexMethod} />\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"列显示名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.type === \"image\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"固定\" width={230}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadioGroup\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.fixed}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value={false}>无</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"left\">左侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"right\">右侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElRadioGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.width}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"小的宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.smallWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入小的宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"顺序\" width={100}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleOrderChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"排序\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.sortable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={row.disabledSortable || row?.type === \"image\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"复制\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.copy}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type || !!row?.slot}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"自动宽度\" width={85}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.autoWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"显示\" width={75}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.show}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"显示\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"隐藏\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput disabled placeholder=\"当前列暂无搜索项配置\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框顺序\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"当前列暂无搜索项配置\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTable>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</FaDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 打开 */\n\t\t\topen,\n\t\t\t/** @description 列改变 */\n\t\t\tchange: handleChange,\n\t\t});\n\t},\n});\n"],"names":["TableColumnsSettingDialog","name","props","change","type","definePropType","Function","setup","expose","tableState","inject","tableStateKey","state","reactive","tableKey","stringUtil","generateRandomString","sortableInstance","undefined","faDialogRef","ref","indexMethod","index","handleChange","async","orgColumns","map","m","columnID","label","fixed","width","smallWidth","order","sortable","copy","autoWidth","show","search","ElMessage","success","info","handleConfirmClick","value","close","handleOrderChange","orderColumns","filter","f","pureSearch","sort","a","b","indexOf","forEach","item","handleColumnChange","autoWidthDisabled","row","switchEl","result","modelValue","disabled","placeholder","tag","pureSearchDisabled","orderEl","radioEl","useRender","_createVNode","FaDialog","class","onConfirmClick","showFullscreen","confirmButtonText","fillHeight","header","_Fragment","_createTextVNode","_resolveComponent","default","ElTable","data","rowKey","border","ElTableColumn","align","minWidth","ElInput","readonly","$event","onChange","_mergeProps","ElRadioGroup","ElRadio","ElInputNumber","min","max","stepStrictly","controls","clearable","ElSwitch","inlinePrompt","activeText","inactiveText","disabledSortable","slot","useExpose","open","tableRowDrop","tBody","document","querySelector","destroy","Sortable","animation","delay","onEnd","evt","newIndex","oldIndex","curRow","splice","ElNotification","message"],"mappings":"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"}
1
+ {"version":3,"file":"tableColumnSettingDialog.mjs","sources":["../../../../../packages/components/table/src/tableColumnSettingDialog.tsx"],"sourcesContent":["import { Fragment, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElInput, ElInputNumber, ElMessage, ElNotification, ElRadio, ElRadioGroup, ElSwitch, ElTable, ElTableColumn } from \"element-plus\";\nimport { FaDialog } from \"@fast-element-plus/components/dialog\";\nimport { definePropType, stringUtil, useExpose, useRender } from \"@fast-china/utils\";\nimport Sortable from \"sortablejs\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx } from \"./table.type\";\nimport type { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport type { TableColumnCtx } from \"element-plus\";\n\nexport default defineComponent({\n\tname: \"FaTableColumnsSettingDialog\",\n\tprops: {\n\t\t/** @description 改变 */\n\t\tchange: {\n\t\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t\t},\n\t},\n\tsetup(props, { expose }) {\n\t\tconst tableState = inject(tableStateKey);\n\n\t\tconst state = reactive({\n\t\t\ttableKey: stringUtil.generateRandomString(8),\n\t\t\tsortableInstance: undefined,\n\t\t\tchange: false,\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\n\t\tconst indexMethod = (index: number): number => {\n\t\t\treturn index + 1;\n\t\t};\n\n\t\t// /**\n\t\t// * 处理固定行ClassName\n\t\t// */\n\t\t// const handleFixedRowClassName = (row: FaTableColumnCtx) => {\n\t\t// \tif (row.fixed) {\n\t\t// \t\treturn \"fa-table__setting-fixed-column\";\n\t\t// \t}\n\t\t// };\n\n\t\tconst tableRowDrop = (): void => {\n\t\t\tconst tBody = document.querySelector(`.fa-table__column-setting-${state.tableKey} .el-table__body-wrapper tbody`) as any;\n\n\t\t\t// 销毁现有Sortable实例(如果存在)\n\t\t\tif (state.sortableInstance) {\n\t\t\t\tstate.sortableInstance.destroy();\n\t\t\t}\n\n\t\t\tstate.sortableInstance = new Sortable(tBody, {\n\t\t\t\t// ms, number 单位:ms,定义排序动画的时间\n\t\t\t\tanimation: 150,\n\t\t\t\tdelay: 0,\n\t\t\t\t// filter: \".fa-table__setting-fixed-column\",\n\t\t\t\t// onMove(evt: any) {\n\t\t\t\t// \tconst { related } = evt;\n\t\t\t\t// \treturn !related.classList.contains(\"fa-table__setting-fixed-column\");\n\t\t\t\t// },\n\t\t\t\tonEnd(evt: any): void {\n\t\t\t\t\tconst { newIndex, oldIndex } = evt;\n\t\t\t\t\tif (newIndex !== oldIndex) {\n\t\t\t\t\t\tstate.change = true;\n\t\t\t\t\t\tconst curRow = tableState.orgColumns.splice(oldIndex, 1)[0];\n\t\t\t\t\t\ttableState.orgColumns.splice(newIndex, 0, curRow);\n\t\t\t\t\t\ttableState.orgColumns = tableState.orgColumns.map((item, index) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\torder: index + 1,\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\n\t\tconst open = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\ttableRowDrop();\n\t\t\t\tElNotification({\n\t\t\t\t\tmessage: \"点击保存才会进行数据缓存,点击取消为本此生效\",\n\t\t\t\t\ttype: \"info\",\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleChange = async (): Promise<void> => {\n\t\t\tif (state.change && props.change) {\n\t\t\t\tawait props.change(tableState.orgColumns);\n\t\t\t} else {\n\t\t\t\tElMessage.info(\"列配置未发生变化\");\n\t\t\t}\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(async () => {\n\t\t\t\tawait handleChange();\n\t\t\t});\n\t\t};\n\n\t\tconst handleOrderChange = (): void => {\n\t\t\tstate.change = true;\n\t\t\tlet orderColumns = tableState.orgColumns.filter((f) => !f?.pureSearch);\n\t\t\torderColumns = orderColumns.sort((a, b) => {\n\t\t\t\tif (a.order !== b.order) {\n\t\t\t\t\treturn a.order - b.order;\n\t\t\t\t} else {\n\t\t\t\t\treturn orderColumns.indexOf(b) - orderColumns.indexOf(a);\n\t\t\t\t}\n\t\t\t});\n\t\t\ttableState.orgColumns = [...orderColumns, ...tableState.orgColumns.filter((f) => f?.pureSearch)];\n\t\t\ttableState.orgColumns.forEach((item, index) => {\n\t\t\t\titem.order = index + 1;\n\t\t\t});\n\t\t};\n\n\t\tconst handleColumnChange = (): void => {\n\t\t\tstate.change = true;\n\t\t};\n\n\t\tconst autoWidthDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.type) {\n\t\t\t\tswitch (row?.type) {\n\t\t\t\t\tcase \"expand\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"暂不支持宽度配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"图片列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"时间/日期列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"submitInfo\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"当前列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (row?.tag) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"标签列无需配置\";\n\t\t\t} else if (row?.autoWidth) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"自动列宽无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst pureSearchDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false,\n\t\t\torderEl = false,\n\t\t\tradioEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.pureSearch) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"搜索列无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t} else {\n\t\t\t\tif (radioEl) {\n\t\t\t\t\tdelete result.modelValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (orderEl) {\n\t\t\t\tresult.placeholder = \"999\";\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<FaDialog\n\t\t\t\tref={faDialogRef}\n\t\t\t\tclass=\"fa-table__column-setting-dialog\"\n\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\tshowFullscreen={false}\n\t\t\t\tconfirmButtonText={state.change ? \"保存更改\" : \"确认\"}\n\t\t\t\tfillHeight\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t列表配置(留空则恢复默认配置)\n\t\t\t\t\t\t\t<el-text type=\"info\">点击保存才会进行数据缓存,点击取消为本此生效</el-text>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElTable\n\t\t\t\t\t\t\tclass={[\"fa-table__column-setting\", `fa-table__column-setting-${state.tableKey}`]}\n\t\t\t\t\t\t\tdata={tableState.orgColumns}\n\t\t\t\t\t\t\trowKey=\"prop\"\n\t\t\t\t\t\t\tborder\n\t\t\t\t\t\t\t// rowClassName={handleFixedRowClassName}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn type=\"index\" fixed=\"left\" align=\"center\" width={45} index={indexMethod} />\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"列显示名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.type === \"image\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"固定\" width={230}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadioGroup\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.fixed}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value={false}>无</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"left\">左侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"right\">右侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElRadioGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.width}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"小的宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.smallWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入小的宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"顺序\" width={100}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleOrderChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"排序\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.sortable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={row.disabledSortable || row?.type === \"image\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"复制\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.copy}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type || !!row?.slot}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"自动宽度\" width={85}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.autoWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"显示\" width={75}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.show}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"显示\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"隐藏\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput disabled placeholder=\"当前列暂无搜索项配置\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框顺序\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"当前列暂无搜索项配置\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTable>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</FaDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 打开 */\n\t\t\topen,\n\t\t\t/** @description 列改变 */\n\t\t\tchange: handleChange,\n\t\t});\n\t},\n});\n"],"names":["TableColumnsSettingDialog","name","props","change","type","definePropType","Function","setup","expose","tableState","inject","tableStateKey","state","reactive","tableKey","stringUtil","generateRandomString","sortableInstance","undefined","faDialogRef","ref","indexMethod","index","handleChange","async","orgColumns","ElMessage","info","handleConfirmClick","value","close","handleOrderChange","orderColumns","filter","f","pureSearch","sort","a","b","order","indexOf","forEach","item","handleColumnChange","autoWidthDisabled","row","switchEl","result","modelValue","disabled","placeholder","tag","autoWidth","pureSearchDisabled","orderEl","radioEl","useRender","_createVNode","FaDialog","class","onConfirmClick","showFullscreen","confirmButtonText","fillHeight","header","_Fragment","_createTextVNode","_resolveComponent","default","ElTable","data","rowKey","border","ElTableColumn","fixed","align","width","label","minWidth","ElInput","readonly","$event","onChange","_mergeProps","ElRadioGroup","ElRadio","ElInputNumber","min","max","stepStrictly","controls","clearable","smallWidth","ElSwitch","sortable","inlinePrompt","activeText","inactiveText","disabledSortable","copy","slot","show","search","useExpose","open","tableRowDrop","tBody","document","querySelector","destroy","Sortable","animation","delay","onEnd","evt","newIndex","oldIndex","curRow","splice","map","ElNotification","message"],"mappings":"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"}
@@ -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 d}from"../utils/table.mjs";import{getTableDefaultSlots as m}from"./table.type.mjs";const u=Symbol("tableState"),b=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,hideImage:o(()=>P.hideImage),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(d.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()},I=()=>{let a=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=d.flatColumns(a,D)},Y=()=>{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")]}},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 z()},W=async()=>{y.orgColumns=[],y.autoColumnWidth=[],y.tableData=[],await c.debounceAsync(async()=>{I(),await R()},300)};return n(()=>P.tableKey,async()=>{await W()}),n(()=>P.searchForm,a=>{y.searchForm=a}),{_globalSize:w,state:y,elementRef:S,tableRef:_,handleTableColumnAutoWidth:x,getRequestParam:k,loadTableColumns:I,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:Y,tableSearch:R,tableReset:async()=>{y.tablePagination.pageIndex=1,y.searchParam={},Y(),Object.keys(y.initParam??{}).forEach(a=>{y.searchParam[a]=y.initParam[a]}),C("reset",y.searchParam),await z()},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:o})=>{C("customCellClick",a,{row:e,column:t,$index:o,...m(y)})}}};export{b as enumMapKey,u as tableStateKey,P as useTable};
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 d}from"../utils/table.mjs";import{getTableDefaultSlots as m}from"./table.type.mjs";const u=Symbol("tableState"),b=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(d.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;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=d.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,...m(y)})}}};export{b as enumMapKey,u 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\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
+ {"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;\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","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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"}
@@ -133,7 +133,7 @@ export declare const faUploadProps: {
133
133
  new (): any;
134
134
  readonly prototype: any;
135
135
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
136
- disabled: BooleanConstructor;
136
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
137
137
  };
138
138
  export declare const faUploadEmits: {
139
139
  /** @description v-model 回调 */
@@ -290,7 +290,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
290
290
  new (): any;
291
291
  readonly prototype: any;
292
292
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
293
- disabled: BooleanConstructor;
293
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
294
294
  }>, {
295
295
  /** @description 取消上传请求 */
296
296
  abort: import('vue').ComputedRef<(file: import('element-plus/es/components/upload/src/upload.mjs').UploadFile) => void>;
@@ -491,7 +491,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
491
491
  new (): any;
492
492
  readonly prototype: any;
493
493
  })[], unknown, unknown, import('element-plus').UploadRequestHandler, boolean>;
494
- disabled: BooleanConstructor;
494
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
495
495
  }>> & Readonly<{
496
496
  "onUpdate:modelValue"?: (value: string | string[]) => any;
497
497
  onChange?: (value: string | string[]) => any;
@@ -500,7 +500,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
500
500
  name: string;
501
501
  onError: (error: Error, uploadFile: UploadFile, uploadFiles: import('element-plus').UploadFiles) => void;
502
502
  data: import('element-plus/es/utils/typescript.mjs').Mutable<{}>;
503
- disabled: boolean;
503
+ disabled: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
504
504
  onChange: (uploadFile: UploadFile, uploadFiles: import('element-plus').UploadFiles) => void;
505
505
  drag: boolean;
506
506
  onProgress: (evt: import('element-plus').UploadProgressEvent, uploadFile: UploadFile, uploadFiles: import('element-plus').UploadFiles) => void;