hongluan-business-ui
Version:
Hongluan Business Component Library for Vue 3
1 lines • 20.8 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/table-list/src/index.vue"],"sourcesContent":["<template>\n <div\n v-loading=\"loading\"\n :class=\"prefix + '-table-list'\"\n :style=\"[padding ? `--table-list-padding: ${padding}`: '' ]\"\n >\n <slot v-if=\"searchbar.show\" name=\"searchbar\">\n <hb-table-searchbar gap=\"var(--sm)\" v-bind=\"searchbar\" @change=\"onSearchbarChanged\">\n <template #prefix>\n <slot name=\"searchbar-prefix\"></slot>\n </template>\n <template #suffix>\n <slot name=\"searchbar-suffix\"></slot>\n </template>\n </hb-table-searchbar>\n </slot>\n <slot name=\"toolbar\">\n <hb-table-toolbar v-bind=\"tableToolbar\">\n <template #extra-after>\n <slot name=\"toolbar-extra-after\"></slot>\n </template>\n <template #extra-before>\n <slot name=\"toolbar-extra-before\"></slot>\n </template>\n </hb-table-toolbar>\n </slot>\n <hl-table\n ref=\"table\"\n :data=\"tableData\"\n :row-style=\"{\n cursor: clickableRow ? 'pointer' : 'auto',\n }\"\n :span-method=\"objectSpanMethod\"\n :default-sort=\"defaultSort\"\n :max-height=\"maxHeight\"\n @row-click=\"rowClick\"\n @selection-change=\"selectionChange\"\n @cell-mouse-enter=\"cellMouseEnter\"\n @cell-mouse-leave=\"cellMouseLeave\"\n >\n <!-- Checkbox Start-->\n <template v-if=\"selection\">\n <!-- 是否有select -->\n <hl-table-column v-if=\"selectionHeader\" width=\"80\" :label=\"selectionHeader\" align=\"left\" :selectable=\"selectable\">\n <template #default=\"{ row, column, $index }\">\n <hl-checkbox :show-label=\"false\" :value=\"isSelected(row)\" :disabled=\"column.selectable ? !column.selectable.call(null, row, $index) : false\" @click.stop=\"() => {}\" @input=\"toggleRowSelection(row)\" />\n </template>\n </hl-table-column>\n <!-- 是否有select -->\n <hl-table-column v-else type=\"selection\" width=\"80\" align=\"left\" :selectable=\"selectable\" />\n </template>\n <!-- Checkbox End -->\n <template v-for=\"(col, index) in cols\">\n <!-- index 序号 -->\n <template v-if=\"col.colType === 'index' && shouldShowCol(col)\">\n <hl-table-column\n :key=\"index\"\n type=\"index\"\n :label=\"col.label\"\n :min-width=\"col.minWidth\"\n :width=\"col.fixedWidth || col.width\"\n :class-name=\"col.className\"\n :align=\"col.align ? col.align : 'left'\"\n :show-overflow-tooltip=\"col.tooltip\"\n />\n </template>\n <!-- 普通的数据展示 -->\n <template v-if=\"(col.colType === 'field' || !col.colType) && shouldShowCol(col)\">\n <hl-table-column\n :key=\"index\"\n :prop=\"col.prop\"\n :label=\"col.label\"\n :min-width=\"col.minWidth\"\n :width=\"col.fixedWidth || col.width\"\n :class-name=\"col.className\"\n :formatter=\"col.formatter\"\n :align=\"col.align ? col.align : 'left'\"\n :show-overflow-tooltip=\"col.tooltip\"\n :sortable=\"col.sortable\"\n >\n <template #default=\"scope\">\n <span v-if=\"col.formatter\">{{ col.formatter(scope.row, col, scope.row[col.prop]) }}</span>\n <span v-else>{{ scope.row[col.prop] || '-' }}</span>\n </template>\n </hl-table-column>\n </template>\n <!-- 自定义 -->\n <template v-if=\"col.colType === 'slot' && shouldShowCol(col)\">\n <hl-table-column\n :key=\"index\"\n :prop=\"col.prop\"\n :label=\"col.label\"\n :min-width=\"col.minWidth\"\n :width=\"col.fixedWidth || col.width\"\n :class-name=\"col.className\"\n :align=\"col.align ? col.align : 'left'\"\n :show-overflow-tooltip=\"col.tooltip\"\n :sortable=\"col.sortable\"\n >\n <template #default=\"scope\">\n <slot :name=\"col.slotName\" :col=\"col\" :row=\"scope.row\"></slot>\n </template>\n </hl-table-column>\n </template>\n <!-- 可点击列跳转 -->\n <template v-if=\"col.colType === 'link' && shouldShowCol(col)\">\n <hl-table-column\n :key=\"index\"\n :prop=\"col.prop\"\n :label=\"col.label\"\n :min-width=\"col.minWidth\"\n :width=\"col.fixedWidth || col.width\"\n :class-name=\"col.className\"\n :formatter=\"col.formatter\"\n :align=\"col.align ? col.align : 'left'\"\n :show-overflow-tooltip=\"col.tooltip\"\n >\n <template #default=\"scope\">\n <hl-button type=\"link\" @click.stop=\"cellClick(col.eventName, scope.row)\">\n {{ col.formatter ? col.formatter(scope.row, col, scope.row[col.prop]) : scope.row[col.prop] }}\n </hl-button>\n </template>\n </hl-table-column>\n </template>\n <!-- 操作图标组 -->\n <template v-if=\"col.colType === 'icons' && shouldShowCol(col)\">\n <hl-table-column\n :key=\"index\"\n :prop=\"col.prop\"\n :label=\"col.label\"\n :min-width=\"col.minWidth\"\n :width=\"col.fixedWidth || col.width\"\n :class-name=\"col.className\"\n :align=\"col.align ? col.align : 'left'\"\n :show-overflow-tooltip=\"false\"\n >\n <template #default=\"{ row }\">\n <hl-group>\n <template v-for=\"(item, spanIdx) in col.iconList\">\n <hl-popover\n v-if=\"!item.show || item.show({ item, row, col })\"\n :key=\"spanIdx\"\n :content=\"item.tooltipText\"\n placement=\"top\"\n effect=\"dark\"\n tooltip\n >\n <template #reference>\n <hl-button type=\"primary\" no-fill equal round>\n <template #icon>\n <hl-icon v-bind=\"item.iconProps || {}\" @click.stop.prevent=\"cellClick(item.eventName, row)\">\n <component :is=\"item.iconName\" />\n </hl-icon>\n </template>\n </hl-button>\n </template>\n </hl-popover>\n </template>\n </hl-group>\n </template>\n </hl-table-column>\n </template>\n <template v-if=\"col.colType === 'links' && shouldShowCol(col)\">\n <hl-table-column\n :key=\"index\"\n :prop=\"col.prop\"\n :label=\"col.label\"\n :min-width=\"col.minWidth\"\n :width=\"col.fixedWidth || col.width\"\n :class-name=\"col.className\"\n :align=\"col.align ? col.align : 'left'\"\n :show-overflow-tooltip=\"false\"\n >\n <template #default=\"{ row }\">\n <hl-group v-for=\"(item, spanIdx) in col.linkList\" :key=\"spanIdx\">\n <hl-button v-if=\"!item.show || item.show({ item, row, col })\" type=\"link\" @click.stop.prevent=\"cellClick(item.eventName, row)\">\n {{ item.label }}\n </hl-button>\n </hl-group>\n </template>\n </hl-table-column>\n </template>\n </template>\n <!-- ele 暂无数据插槽 -->\n <template #empty>\n <slot name=\"empty\">\n <span>{{ t('hl.table.emptyText') }}</span>\n </slot>\n </template>\n </hl-table>\n <slot v-if=\"pagination.show\" name=\"pagination\">\n <hl-pagination\n v-if=\"tableData.length > 0\"\n :page-size=\"pagination.pageSize\"\n :current-page=\"pagination.currentPage\"\n :total=\"pagination.total\"\n layout=\"sizes, total, slot, prev, pager, next, jumper\"\n justify=\"between\"\n @current-change=\"handleCurrentChange\"\n @size-change=\"handleSizeChange\"\n >\n <div style=\"width: 100%\"></div>\n </hl-pagination>\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport { HlTable, HlTableColumn, HlPopover, HlGroup, HlPagination, HlCheckbox, HlButton, HlIcon, HlLoading, useLocale } from 'hongluan-ui'\nimport HbTableToolbar from '@hongluan-business-ui/components/table-toolbar'\nimport HbTableSearchbar from '@hongluan-business-ui/components/table-searchbar'\nimport { usePrefix } from '@hongluan-business-ui/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { TableToolbar } from './table-list'\n\nexport default defineComponent({\n name: 'TableList',\n components: {\n HbTableToolbar,\n HbTableSearchbar,\n HlTable,\n HlTableColumn,\n HlPopover,\n HlGroup,\n HlPagination,\n HlCheckbox,\n HlButton,\n HlIcon,\n },\n directives: {\n loading: HlLoading.directive,\n },\n props: {\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n tableData: {\n type: Array as PropType<unknown[]>,\n default: () => [],\n },\n cols: {\n type: Array as PropType<unknown[]>,\n default: () => [],\n },\n defaultSort: {\n type: Object,\n default: () => ({}),\n },\n objectSpanMethod: Function,\n loading: {\n type: Boolean,\n default: false,\n },\n selection: {\n type: Boolean,\n default: false,\n },\n selectionHeader: {\n type: [Boolean, String],\n default: false,\n },\n selectable: {\n type: Function,\n default: null,\n },\n clickableRow: {\n type: Boolean,\n default: true,\n },\n searchbar: {\n type: Object,\n default: () => ({\n show: true,\n searcher: {\n placeholder: '请输入搜索条件',\n },\n }),\n },\n toolbar: {\n type: Object as PropType<TableToolbar>,\n default: () => ({}),\n },\n pagination: {\n type: Object,\n default: () => ({\n show: true,\n total: 0,\n pageSize: 10,\n currentPage: 1,\n }),\n },\n padding: {\n type:String,\n default: '',\n },\n },\n emits: ['searchbar-change', 'cell-mouse-enter', 'cell-mouse-leave', 'selection-change', 'cell-click', 'current-change', 'size-change'],\n setup(props, { emit }) {\n const { t } = useLocale()\n const selectionItems = ref([])\n const table = ref(null)\n const { prefix } = usePrefix()\n\n const tableToolbar = computed(() => {\n return {\n selection: {\n show: props.toolbar.showSelectionText,\n count: selectionItems.value.length,\n total: props.pagination.total,\n },\n action: props.toolbar.action,\n extra: {\n showColConfig: props.toolbar.showColConfig || true,\n colConfig: {\n cols: props.cols,\n },\n },\n }\n })\n\n const shouldShowCol = (col: { $show$: boolean; }) => {\n return !('$show$' in col) || col.$show$\n }\n const onSearchbarChanged = (urlParams: string, mapParams: Record<string, unknown>, originalParams: Record<string, unknown>) => {\n emit('searchbar-change', urlParams, mapParams, originalParams)\n }\n const cellMouseEnter = (row, column, cell, event) => {\n emit('cell-mouse-enter', row, column, cell, event)\n }\n const cellMouseLeave = (row, column, cell, event) => {\n emit('cell-mouse-leave', row, column, cell, event)\n }\n const rowClick = row => {\n props.clickableRow && cellClick('detail', row)\n }\n const selectionChange = val => {\n selectionItems.value = val\n emit('selection-change', val)\n }\n const cellClick = (eventName, row) => {\n row.eventName = eventName\n emit('cell-click', row)\n }\n const toggleAllSelection = () => {\n props.tableData.forEach(row => {\n table.value.toggleRowSelection(row)\n })\n }\n const clearSelection = () => {\n table.value.clearSelection()\n }\n const toggleRowSelection = row => {\n table.value.toggleRowSelection(row)\n }\n const isSelected = row => {\n const selection = table.value.selection || []\n return selection.indexOf(row) > -1\n }\n const handleCurrentChange = currentPage => {\n emit('current-change', currentPage)\n }\n const handleSizeChange = size => {\n emit('size-change', size)\n }\n const proxy = (funcName: string, ...args: unknown[]) => {\n table.value[funcName](...args)\n }\n\n return {\n t,\n prefix,\n table,\n onSearchbarChanged,\n shouldShowCol,\n tableToolbar,\n cellMouseEnter,\n cellMouseLeave,\n rowClick,\n selectionChange,\n cellClick,\n toggleAllSelection,\n clearSelection,\n toggleRowSelection,\n isSelected,\n handleCurrentChange,\n handleSizeChange,\n proxy,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_normalizeStyle","_renderSlot","_createVNode","_mergeProps","_withCtx","_createElementVNode","_Fragment","_createCommentVNode","_createBlock","_withModifiers","_resolveDynamicComponent"],"mappings":"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"}