index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <div class="calendar">
  3. <!-- <el-calendar>
  4. <template #dateCell="{ data }">
  5. <p :class="data.isSelected ? 'is-selected' : ''">
  6. {{ data.day.split('-').slice(1).join('-') }}
  7. {{ data.isSelected ? '✔️' : '' }}
  8. </p>
  9. </template>
  10. </el-calendar> -->
  11. <el-calendar ref="calendar" id="el-calendar-table">
  12. <template #dateCell="{ data }">
  13. <p :class="data.isSelected ? 'is-selected' : ''">
  14. <!-- {{data}} -->
  15. {{ data.day.split('-').slice(2).join('-') }}
  16. <span style="display: block" v-for="ref in 10" :key="ref">
  17. <el-tooltip
  18. class="item"
  19. effect="dark"
  20. :content="dataContent"
  21. placement="top"
  22. >
  23. <span>{{ data.isSelected ? dataContent : '' }}</span>
  24. </el-tooltip>
  25. </span>
  26. </p>
  27. </template>
  28. <template #header="{ date }">
  29. <span>{{ date }}</span>
  30. <el-button-group>
  31. <el-button size="mini" @click="selectDate('prev-year')">
  32. 上一年
  33. </el-button>
  34. <el-button size="mini" @click="selectDate('prev-month')">
  35. 上一月
  36. </el-button>
  37. <el-button size="mini" @click="selectDate('today')">今天</el-button>
  38. <el-button size="mini" @click="selectDate('next-month')">
  39. 下一月
  40. </el-button>
  41. <el-button size="mini" @click="selectDate('next-year')">
  42. 下一年
  43. </el-button>
  44. </el-button-group>
  45. </template>
  46. </el-calendar>
  47. </div>
  48. </template>
  49. <script>
  50. import { defineComponent, ref, onMounted } from 'vue'
  51. export default defineComponent({
  52. name: 'calendar',
  53. components: {},
  54. props: {},
  55. setup() {
  56. const calendar = ref()
  57. const selectDate = (val) => {
  58. calendar.value.selectDate(val)
  59. }
  60. onMounted(() => {
  61. const th = document
  62. .getElementById('el-calendar-table')
  63. .getElementsByClassName('el-calendar__body')[0]
  64. .getElementsByClassName('el-calendar-table')[0].childNodes[0].children
  65. for (let i in th) {
  66. th[i].innerHTML == 'Sun'
  67. ? (th[i].innerHTML = '周一')
  68. : th[i].innerHTML == 'Mon'
  69. ? (th[i].innerHTML = '周二')
  70. : th[i].innerHTML == 'Tue'
  71. ? (th[i].innerHTML = '周三')
  72. : th[i].innerHTML == 'Wed'
  73. ? (th[i].innerHTML = '周四')
  74. : th[i].innerHTML == 'Thu'
  75. ? (th[i].innerHTML = '周五')
  76. : th[i].innerHTML == 'Fri'
  77. ? (th[i].innerHTML = '周六')
  78. : th[i].innerHTML == 'Sat'
  79. ? (th[i].innerHTML = '周日')
  80. : ''
  81. }
  82. })
  83. return {
  84. calendar,
  85. selectDate,
  86. dataContent: ref('1111111111111111111111111222222222222'),
  87. }
  88. },
  89. })
  90. </script>
  91. <style>
  92. .is-selected {
  93. color: #1989fa;
  94. overflow-y: auto;
  95. height: 100%;
  96. }
  97. .el-calendar {
  98. --el-calendar-selected-background-color: #76ff4d70 !important;
  99. }
  100. .is-selected::-webkit-scrollbar {
  101. display: none;
  102. }
  103. #el-calendar-table .el-calendar-table > thead > th {
  104. text-align: center;
  105. }
  106. </style>