hongluan-business-ui
Version:
Hongluan Business Component Library for Vue 3
1 lines • 7.24 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/table-toolbar/src/index.vue"],"sourcesContent":["<template>\n <hl-group\n full=\"full-x\"\n align=\"items-middle items-between\"\n gap=\"var(--lg)\"\n :class=\"prefix + '-table-toolbar'\"\n >\n <slot name=\"selection\">\n <div v-if=\"selection.show || false\" class=\"table-counts static\">当前共 <strong>{{ selection.total }}</strong> 条数据<span v-if=\"selection.count > 0\">,已选中 <strong>{{ selection.count }}</strong> 条</span></div>\n </slot>\n <hl-group class=\"toolbar-batch\">\n <hl-group gap=\"var(--xs)\" :class=\"['batch-wrap', action.show ? 'show': '']\">\n <hl-button\n v-for=\"(item, idx) in shownActionItems\"\n v-show=\"'show' in item ? item.show : true\"\n :key=\"idx\"\n v-bind=\"item\"\n @click=\"doAction(item)\"\n >\n {{ item.label }}\n <template #icon>\n <slot name=\"action-icon\" :item=\"item\"></slot>\n </template>\n </hl-button>\n <hl-dropdown v-if=\"hiddenActionItems.length > 0\">\n <hl-button type=\"link\" equal>\n <hl-icon>\n <system-more />\n </hl-icon>\n </hl-button>\n <template #dropdown>\n <hl-dropdown-menu>\n <hl-dropdown-item\n v-for=\"(item, idx) in hiddenActionItems\"\n :key=\"idx\"\n v-bind=\"item\"\n @click=\"doAction(item)\"\n >\n {{ item.label }}\n <template #icon>\n <slot name=\"action-icon\" :item=\"item\"></slot>\n </template>\n </hl-dropdown-item>\n </hl-dropdown-menu>\n </template>\n </hl-dropdown>\n </hl-group>\n </hl-group>\n <hl-group class=\"static toolbar-setting\" gap=\"var(--xs)\">\n <slot name=\"extra-before\"></slot>\n <col-config\n v-if=\"extra.showColConfig\"\n :cols=\"extra.colConfig?.cols\"\n :store-key=\"extra.colConfig?.storeKey\"\n :version=\"extra.colConfig?.version\"\n :col-label-field=\"extra.colConfig?.colLabelField\"\n @col-change=\"$emit('col-change')\"\n >\n <template #reference>\n <hl-button type=\"primary\" equal effect=\"light\">\n <hl-icon><system-filter /></hl-icon>\n </hl-button>\n </template>\n </col-config>\n <slot name=\"extra-after\"></slot>\n </hl-group>\n </hl-group>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent } from 'vue'\nimport { HlGroup, HlButton, HlDropdown, HlDropdownMenu, HlDropdownItem, HlIcon, SystemFilter, SystemMore } from 'hongluan-ui'\nimport { usePrefix } from '@hongluan-business-ui/utils/util'\nimport ColConfig from './col-config.vue'\n\nimport type { PropType } from 'vue'\nimport type { ToolbarSelection, ToolbarAction, ToolbarExtra, ToolbarActionItem } from './toolbar'\n\nexport default defineComponent({\n name: 'TableToolbar',\n components: { HlGroup, HlButton, HlDropdown, HlDropdownMenu, HlDropdownItem, ColConfig, HlIcon, SystemFilter, SystemMore },\n props: {\n selection: {\n type: Object as PropType<ToolbarSelection>,\n default: () => ({ show: false, count: '--', total: '--' }),\n },\n action: {\n type: Object as PropType<ToolbarAction>,\n default: () => ({ show: true, showCount: 1, actions: [] }),\n },\n extra: {\n type: Object as PropType<ToolbarExtra>,\n default: () => ({\n showColConfig: true,\n colConfig: {},\n }),\n },\n },\n emits: ['action', 'col-change'],\n setup(props, { emit }) {\n const { prefix } = usePrefix()\n\n const shownActionItems = computed(() => {\n let arr: ToolbarActionItem[] = []\n if (props.action.showCount > 0) {\n arr = props.action.actions.filter(a => a.show || !('show' in a)).slice(0, props.action.showCount)\n }\n return arr\n })\n const hiddenActionItems = computed(() => {\n let arr: ToolbarActionItem[] = []\n if (props.action.showCount > 0) {\n arr = props.action.actions.filter(a => a.show || !('show' in a)).slice(props.action.showCount)\n }\n arr = arr.filter(item => 'show' in item ? item.show : true)\n return arr\n })\n\n const doAction = (item: ToolbarActionItem) => {\n emit('action', item)\n }\n\n return {\n prefix,\n shownActionItems,\n hiddenActionItems,\n doAction,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_normalizeClass","_renderSlot","_createElementBlock","_createElementVNode","_createVNode","_Fragment","_mergeProps","_withCtx","_openBlock"],"mappings":"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"}