|
|
|
@ -1,33 +1,55 @@
|
|
|
|
|
<script lang="ts" setup> |
|
|
|
|
import { computed } from 'vue' |
|
|
|
|
<script lang="tsx"> |
|
|
|
|
import type { PropType } from 'vue' |
|
|
|
|
import { computed, defineComponent } from 'vue' |
|
|
|
|
import type { BasicColumn } from '../types/table' |
|
|
|
|
import BasicHelp from '/@/components/Basic/src/BasicHelp.vue' |
|
|
|
|
import EditTableHeaderCell from './EditTableHeaderIcon.vue' |
|
|
|
|
import BasicHelp from '@/components/Basic/src/BasicHelp.vue' |
|
|
|
|
import { useDesign } from '@/hooks/web/useDesign' |
|
|
|
|
|
|
|
|
|
defineOptions({ name: 'TableHeaderCell' }) |
|
|
|
|
|
|
|
|
|
const props = defineProps({ |
|
|
|
|
export default defineComponent({ |
|
|
|
|
name: 'TableHeaderCell', |
|
|
|
|
components: { |
|
|
|
|
EditTableHeaderCell, |
|
|
|
|
BasicHelp, |
|
|
|
|
}, |
|
|
|
|
props: { |
|
|
|
|
column: { |
|
|
|
|
type: Object as PropType<BasicColumn>, |
|
|
|
|
default: () => ({}), |
|
|
|
|
}, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
setup(props) { |
|
|
|
|
const { prefixCls } = useDesign('basic-table-header-cell') |
|
|
|
|
|
|
|
|
|
const getIsEdit = computed(() => !!props.column?.edit) |
|
|
|
|
const getTitle = computed(() => props.column?.customTitle || props.column?.title) |
|
|
|
|
const getTitle = computed(() => { |
|
|
|
|
const column = props.column |
|
|
|
|
if (typeof column.customHeaderRender === 'function') |
|
|
|
|
return column.customHeaderRender(props.column) |
|
|
|
|
|
|
|
|
|
return props.column?.customTitle || props.column?.title |
|
|
|
|
}) |
|
|
|
|
const getHelpMessage = computed(() => props.column?.helpMessage) |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<template> |
|
|
|
|
<EditTableHeaderCell v-if="getIsEdit"> |
|
|
|
|
{{ getTitle }} |
|
|
|
|
</EditTableHeaderCell> |
|
|
|
|
<span v-else>{{ getTitle }}</span> |
|
|
|
|
<BasicHelp v-if="getHelpMessage" :text="getHelpMessage" :class="`${prefixCls}__help`" /> |
|
|
|
|
</template> |
|
|
|
|
return () => { |
|
|
|
|
return ( |
|
|
|
|
<div> |
|
|
|
|
{getIsEdit.value |
|
|
|
|
? ( |
|
|
|
|
<EditTableHeaderCell>{getTitle.value}</EditTableHeaderCell> |
|
|
|
|
) |
|
|
|
|
: ( |
|
|
|
|
<span class="default-header-cell">{getTitle.value}</span> |
|
|
|
|
)} |
|
|
|
|
{getHelpMessage.value && ( |
|
|
|
|
<BasicHelp text={getHelpMessage.value} class={`${prefixCls}__help`} /> |
|
|
|
|
)} |
|
|
|
|
</div> |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}) |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style lang="less"> |
|
|
|
|
@prefix-cls: ~'@{namespace}-basic-table-header-cell'; |
|
|
|
|