all files / src/table/ th.vue

0% Statements 0/8
100% Branches 0/0
100% Functions 0/0
0% Lines 0/8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82                                                                                                                                                                   
<template>
  <th class="mu-th" @mouseenter="showTooltip" @mouseleave="hideTooltip">
    <div class="mu-th-wrapper" ref="wrapper">
      <slot></slot>
      <tooltip v-if="tooltip" :trigger="tooltipTrigger" :verticalPosition="verticalPosition" :horizontalPosition="horizontalPosition" :show="tooltipShown" :label="tooltip" :touch="touch"></tooltip>
    </div>
  </th>
</template>
 
<script>
import tooltip from '../tooltip'
export default {
  name: 'mu-th',
  props: {
    tooltip: {
      type: String
    },
    tooltipPosition: {
      type: String,
      default: 'bottom-right'
    },
    touch: {
      type: Boolean,
      default: false
    }
  },
  data () {
    return {
      tooltipShown: false,
      tooltipTrigger: null
    }
  },
  mounted () {
    this.tooltipTrigger = this.$refs.wrapper
  },
  computed: {
    verticalPosition () {
      const tooltipPosition = this.tooltipPosition.split('-')
      return tooltipPosition[0]
    },
    horizontalPosition () {
      const tooltipPosition = this.tooltipPosition.split('-')
      return tooltipPosition[1]
    }
  },
  methods: {
    showTooltip () {
      this.tooltipShown = true
    },
    hideTooltip () {
      this.tooltipShown = false
    }
  },
  components: {
    tooltip
  }
}
</script>
 
<style lang="less">
@import "../styles/import.less";
.mu-th {
  font-weight: normal;
  font-size: 12px;
  padding-left: 24px;
  padding-right: 24px;
  height: 56px;
  text-align: left;
  color: @secondaryTextColor;
  position: relative;
}
 
.mu-th-wrapper{
  position: relative;
  padding-top: 12px;
  padding-bottom: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
</style>