riku
2023-12-21 c24a5a2a99515b365ebc343b04538bb862790de1
src/sfc/TimeShortCuts.vue
@@ -14,12 +14,15 @@
      },
  ***
-->
<script>
import dayjs from 'dayjs';
import time from '@/utils/time.js'
export default {
  props: {
    beginAndEndTime:{
      type:Object,
      type:Array,
      default: ()=>{
        return []
      }
@@ -27,6 +30,11 @@
    timeType: {
      type: String,
      default: 'month'
    },
    // 是否设置只读属性
    readOnly: {
      type: Boolean,
      default:false
    }
  },
  emits: ['submitTime'],
@@ -56,34 +64,89 @@
  },
  methods: {
    initShortCuts() {
      // this.shortcuts = [
      //   {
      //     text: '前一日',
      //     value: () => {
      //       const start = dayjs().subtract(1,'day').format('YYYY-MM-DD 00:00:00')
      //       const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59')
      //       return [start, end];
      //     }
      //   },
      //   {
      //     text: '前7天',
      //     value: () => {
      //       const start = dayjs().subtract(7,'day').format('YYYY-MM-DD 00:00:00');
      //       const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59');
      //       return [start, end];
      //     }
      //   },
      //   {
      //     text: '上一月',
      //     value: () => {
      //       const start = dayjs().subtract(1,'month').startOf('month').format('YYYY-MM-DD HH:mm:ss');
      //       const end = dayjs().subtract(1,'month').endOf('month').format('YYYY-MM-DD HH:mm:ss');
      //       return [start, end];
      //     }
      //   }
      // ];
      this.shortcuts = [
        {
          text: '前一日',
          value: () => {
            const start = dayjs().subtract(1,'day').format('YYYY-MM-DD 00:00:00')
            const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59')
            return [start, end];
            if (this.time[0]=='2023-06-01 12:00:00' && this.time[1] == '2023-06-20 16:00:00'){
              const start = dayjs().subtract(1,'day').format('YYYY-MM-DD 00:00:00')
              const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59')
              return [start, end];
            }else{
              const start = dayjs(this.time[0]).subtract(1,'day').format('YYYY-MM-DD 00:00:00')
              const end = dayjs(this.time[1]).subtract(1,'day').format('YYYY-MM-DD 23:59:59')
              return [start, end];
            }
          }
        },
        {
          text: '前7天',
          value: () => {
            const start = dayjs().subtract(7,'day').format('YYYY-MM-DD 00:00:00');
            const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59');
            if (this.time[0]=='2023-06-01 12:00:00' && this.time[1] == '2023-06-20 16:00:00'){
              const start = dayjs().subtract(7,'day').format('YYYY-MM-DD 00:00:00');
              const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59');
            return [start, end];
            }else{
              const start = dayjs(this.time[0]).subtract(7,'day').format('YYYY-MM-DD 00:00:00')
              const end = dayjs(this.time[1]).subtract(7,'day').format('YYYY-MM-DD 23:59:59')
              return [start, end];
            }
          }
        },
        {
          text: '上一月',
          value: () => {
            const start = dayjs().subtract(1,'month').startOf('month').format('YYYY-MM-DD HH:mm:ss');
            const end = dayjs().subtract(1,'month').endOf('month').format('YYYY-MM-DD HH:mm:ss');
            return [start, end];
            if (this.time[0]=='2023-06-01 12:00:00' && this.time[1] == '2023-06-20 16:00:00'){
              const start = dayjs().subtract(1,'month').startOf('month').format('YYYY-MM-DD HH:mm:ss');
              const end = dayjs().subtract(1,'month').endOf('month').format('YYYY-MM-DD HH:mm:ss');
              return [start, end];
            }else{
              const start = dayjs(this.time[0]).subtract(1,'month').format('YYYY-MM-DD HH:mm:ss')
              const end = dayjs(this.time[1]).subtract(1,'month').format('YYYY-MM-DD HH:mm:ss')
              return [start, end];
            }
          }
        }
      ];
    },
    initOneWeekAgoTime() {
      switch (this.timeType) {
        case 'day':
@@ -110,12 +173,15 @@
        // 防止在每月的1号,出现time[0]>time[1]的情况
        if(this.time[0]<this.time[1]){
          break  
        }
          }
        default:
          this.time[0] = dayjs().subtract(1, 'month').format('YYYY-MM-DD HH:mm:ss');
          this.time[1] = dayjs().format('YYYY-MM-DD HH:mm:ss');
      }
    }
    },
    judgeDateValid(date) {
          return time.judgeDateValid(date)
        }
  }
};
</script>
@@ -132,10 +198,13 @@
      start-placeholder="开始时间"
      end-placeholder="结束时间"
      value-format="YYYY-MM-DD HH:mm:ss"
      :disabled-date="judgeDateValid"
      @change="$emit('submitTime', time)"
      :default-time = "defaultTime"
      :readonly="readOnly"
    />
  </div>
  </div>
</template>
@@ -151,7 +220,5 @@
  font-size: 14px;
}
/* .pick-date {
  width: 200px;
} */
</style>