year.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <view>
  3. <view class="search-data">
  4. <text v-for="(val, index) in year" :key="index" :class="val.startShow ? 'active' : ''"
  5. @click="onSeachYear(val, index)">{{ val.lable }}</text>
  6. </view>
  7. </view>
  8. </template>
  9. <script>
  10. export default {
  11. data(){
  12. return{
  13. year: [{
  14. lable: '日',
  15. startShow: false
  16. }, {
  17. lable: '周',
  18. startShow: false
  19. }, {
  20. lable: '月',
  21. startShow: false
  22. }],
  23. }
  24. },
  25. methods: {
  26. onSeachYear(val, index) {
  27. console.log(val, index,99999999);
  28. this.year.map((value, i) => i === index ? value.startShow = !value.startShow : value.startShow = false)
  29. let now = new Date();
  30. let year = now.getFullYear();
  31. let month = now.getMonth() + 1; // 月份是从0开始的,所以需要加1
  32. let day = now.getDate();
  33. if (index == 0 && val.startShow) {
  34. let theDay = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
  35. let beginTime = theDay + ' 00:00:01'
  36. let endTime = theDay + ' 23:59:59'
  37. this.$emit("time",beginTime,endTime)
  38. this.$emit("queryData")
  39. }
  40. else if (index == 1 && val.startShow) {
  41. let dayOfWeek = now.getDay();
  42. let firstDayOfWeek = new Date(year, now.getMonth(), day - dayOfWeek + 1);
  43. let lastDayOfWeek = new Date(year, now.getMonth(), day + (7 - dayOfWeek));
  44. let monday = this.formatDate(firstDayOfWeek);
  45. let sunday = this.formatDate(lastDayOfWeek);
  46. let beginTime = monday + ' 00:00:01'
  47. let endTime = sunday + ' 23:59:59'
  48. this.$emit("time",beginTime,endTime)
  49. this.$emit("queryData")
  50. }
  51. else if (index == 2 && val.startShow) {
  52. let beginTime = this.getCurrentMonthFirst() + ' 00:00:01'
  53. let endTime = this.getCurrentMonthLast() + ' 23:59:59'
  54. this.$emit("time",beginTime,endTime)
  55. this.$emit("queryData")
  56. }
  57. else {
  58. let beginTime = ''
  59. let endTime = ''
  60. // type == 1 ? this.queryData() : this.analysisQueryData()
  61. this.$emit("time",beginTime,endTime)
  62. this.$emit("queryData")
  63. }
  64. },
  65. formatDate(date) {
  66. let year = date.getFullYear();
  67. let month = date.getMonth() + 1;
  68. let day = date.getDate();
  69. month = month < 10 ? '0' + month : month;
  70. day = day < 10 ? '0' + day : day;
  71. return year + '-' + month + '-' + day;
  72. },
  73. getCurrentMonthFirst() {
  74. // 获取当月第一天数据
  75. let date = new Date()
  76. date.setDate(1)
  77. let month = parseInt(date.getMonth() + 1)
  78. let day = date.getDate()
  79. if (month < 10) month = '0' + month
  80. if (day < 10) day = '0' + day
  81. return date.getFullYear() + '-' + month + '-' + day
  82. },
  83. getCurrentMonthLast() {
  84. // 获取当月最后一天数据
  85. let date = new Date()
  86. let year = date.getFullYear()
  87. let month = date.getMonth() + 1
  88. month = month < 10 ? '0' + month : month
  89. let day = new Date(year, month, 0)
  90. return year + '-' + month + '-' + day.getDate()
  91. },
  92. }
  93. }
  94. </script>
  95. <style lang="scss" scoped>
  96. .search-data {
  97. color: #666666;
  98. border: 1px solid #EEEEEE;
  99. .active {
  100. color: #FFFFFF;
  101. background: linear-gradient(132deg, #2DD9FF 0%, #2D6DFF 100%);
  102. }
  103. text {
  104. padding: 5px 6px;
  105. border-left: 1px solid #EEEEEE;
  106. }
  107. text:first-child {
  108. border-left: none
  109. }
  110. }
  111. </style>