index.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <view class="dayNum_wrap" @click="handleClickDayNum">
  3. <view class="text">{{dayName}}</view>
  4. <u-icon name="arrow-down-fill" color="#aaa" size="12"></u-icon>
  5. <ld-select :list="dayNumDict" label-key="name" value-key="value" placeholder="" v-model="dayNum" clearable
  6. @change="handleDayNumChange" ref="dayNum" class="dayNumSelect"></ld-select>
  7. </view>
  8. </template>
  9. <script>
  10. import dayjs from 'dayjs';
  11. export default {
  12. data() {
  13. return {
  14. dayNumDict: [{
  15. name: "今天",
  16. value: "0"
  17. }, {
  18. name: "昨天",
  19. value: "1"
  20. }, {
  21. name: "7天",
  22. value: "7"
  23. }, {
  24. name: "30天",
  25. value: "30"
  26. }, {
  27. name: "全部",
  28. value: null
  29. }],
  30. dayNum: "0",
  31. dayName: "今天",
  32. queryParams: {
  33. createTimeStart: "",
  34. createTimeEnd: "",
  35. },
  36. }
  37. },
  38. mounted() {
  39. this.handleDayNumChange({
  40. name: this.dayName,
  41. value: this.dayNum
  42. });
  43. },
  44. methods: {
  45. handleClickDayNum() {
  46. this.$refs.dayNum.showModal();
  47. },
  48. handleDayNumChange(val) {
  49. const {
  50. name,
  51. value
  52. } = val;
  53. this.dayName = name;
  54. this.dayNum = value;
  55. if (this.dayNum === null) {
  56. this.queryParams.createTimeStart = "";
  57. this.queryParams.createTimeEnd = "";
  58. } else {
  59. this.queryParams.createTimeStart = dayjs().subtract(this.dayNum, 'day').format("YYYY-MM-DD ") +
  60. "00:00:00";
  61. if (this.dayNum === '1') {
  62. this.queryParams.createTimeEnd = dayjs().subtract(this.dayNum, 'day').format("YYYY-MM-DD ") +
  63. "23:59:59";
  64. } else {
  65. this.queryParams.createTimeEnd = dayjs().format("YYYY-MM-DD ") + "23:59:59";
  66. }
  67. }
  68. this.$emit("confirm", this.queryParams);
  69. },
  70. }
  71. }
  72. </script>
  73. <style scoped lang="scss">
  74. .dayNum_wrap {
  75. display: flex;
  76. align-items: center;
  77. .text {
  78. font-size: 28rpx;
  79. color: #b8b8b8;
  80. margin-right: 20rpx;
  81. }
  82. }
  83. .dayNumSelect {
  84. height: 0px;
  85. width: 0px;
  86. overflow: hidden;
  87. }
  88. </style>