vben
2020-12-31 9c2f3f30bbd8abcccc4f256183ed7794da7fcda2
提交 | 用户 | age
9c2f3f 1 <template>
V 2   <EditTableHeaderCell v-if="getIsEdit">
3     {{ getTitle }}
4   </EditTableHeaderCell>
5   <span v-else>{{ getTitle }}</span>
6   <BasicHelp v-if="getHelpMessage" :text="getHelpMessage" :class="`${prefixCls}__help`" />
7 </template>
8 <script lang="ts">
9   import type { PropType } from 'vue';
10   import type { BasicColumn } from '../types/table';
11
12   import { defineComponent, computed } from 'vue';
13
14   import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
15   import { useDesign } from '/@/hooks/web/useDesign';
16   export default defineComponent({
17     name: 'TableHeaderCell',
18     components: {
19       EditTableHeaderCell: createAsyncComponent(() => import('./EditTableHeaderIcon.vue')),
20       BasicHelp: createAsyncComponent(() => import('/@/components/Basic/src/BasicHelp.vue')),
21     },
22     props: {
23       column: {
24         type: Object as PropType<BasicColumn>,
25         default: {},
26       },
27     },
28     setup(props) {
29       const { prefixCls } = useDesign('basic-table-header-cell');
30       const getIsEdit = computed(() => {
31         return !!props.column?.edit;
32       });
33
34       const getTitle = computed(() => {
35         return props.column?.customTitle;
36       });
37
38       const getHelpMessage = computed(() => {
39         return props.column?.helpMessage;
40       });
41
42       return { prefixCls, getIsEdit, getTitle, getHelpMessage };
43     },
44   });
45 </script>
46 <style lang="less">
47   @prefix-cls: ~'@{namespace}-basic-table-header-cell';
48
49   .@{prefix-cls} {
50     &__help {
51       margin-left: 8px;
52       color: rgba(0, 0, 0, 0.65) !important;
53     }
54   }
55 </style>