element整理<el-calendar>日历组件-假期(整理)

简介: element整理<el-calendar>日历组件-假期(整理)
<template>
  <div class="clientRegulate">
    <div class="titleInfo">非工作日</div>
    <div class="table">
    <el-calendar>
        <div slot="dateCell" slot-scope="{ data }" @click="allcalendar(data)" class="temp">
          {{ data.day.split('-').slice(1).join('-') }}
          <div style="width:100%;" v-for="item in scheduleDatas" :key="item">
            <el-tag type="danger"
              v-if="(item.workingDay).indexOf(data.day.split('-').join('-'))!=-1">
              {{item.content}}
            </el-tag>
          </div>
        </div>
      </el-calendar>
    <el-calendar>
        <div slot="dateCell" slot-scope="{ data }" @click="allcalendar(data)" class="temp">
          {{ data.day.split('-').slice(1).join('-') }}
          <div style="width:100%;" v-for="item in scheduleData" :key="item">
            <el-tag type="danger"
              v-if="(item.workingDay).indexOf(data.day.split('-').join('-'))!=-1">
              {{item.content}}
            </el-tag>
          </div>
        </div>
      </el-calendar>
      <el-calendar>
        <div slot="dateCell" slot-scope="{ data }" @click="allcalendar(data)" class="temp">
          {{ data.day.split('-').slice(1).join('-') }}
          <div style="width:100%;" v-for="item in scheduleData" :key="item">
            <el-tag type="danger"
              v-if="(item.workingDay).indexOf(data.day.split('-').slice(2).join('-'))!=-1">
              {{item.content}}
            </el-tag>
          </div>
        </div>
      </el-calendar>
      <el-calendar v-model="calendar">
        <div slot="dateCell" slot-scope="{ data }" @click="allcalendar(data)" class="temp">
          <p :class="data.isSelected ? 'is-selected-1' : ''">
            {{ data.day.split("-").slice(2).join("-") }}
          </p>
        </div>
      </el-calendar>
    </div>
  </div>
</template>
<script>
  //新增和编辑的表单一样,共用一个
  export default {
    name: "",
    components: {},
    data() {
      return {
        value: new Date(),
        calendar: '',
        scheduleDatas: [{
            workingDay: "2022-01-06",
            content: "休",
          },
          {
            workingDay: "2022-01-06",
            content: "休",
          },
        ],
        scheduleData: [{
            workingDay: "02",
            content: "假期",
          },
          {
            workingDay: "03",
            content: "假期",
          },
          {
            workingDay: "04",
            content: "假期",
          },
          {
            workingDay: "05",
            content: "假期",
          },
          {
            workingDay: "06",
            content: "假期",
          },
          {
            workingDay: "07",
            content: "假期",
          },
        ],
      };
    },
    created() {
      this.$nextTick(() => {
        // 点击前一个月
        let prevBtn = document.querySelector(
          ".el-calendar__button-group .el-button-group>button:nth-child(1)"
        );
        prevBtn.addEventListener("click", e => {
          let d = new Date(this.timeValue);
          let resDate1 = d.getFullYear() + '-' + this.handleTime((d.getMonth() + 1)); //2020-08
          var unn = resDate1.split("-")
          // alert(unn)
          console.log(unn[0])
          console.log(unn[1])
          this.giveTake(unn[0],unn[1])
        })
        //点击下一个月
        let nextBtn = document.querySelector(
          ".el-calendar__button-group .el-button-group>button:nth-child(3)"
        );
        nextBtn.addEventListener("click", e => {
          let d = new Date(this.timeValue);
          let resDate2 = d.getFullYear() + '-' + this.handleTime((d.getMonth() + 1)); //2020-10
          var unn = resDate2.split("-")
          // alert(unn)
          console.log(unn[0])
          console.log(unn[1])
          this.giveTake(unn[0],unn[1])
        })
        //点击今天
        let todayBtn = document.querySelector(
          ".el-calendar__button-group .el-button-group>button:nth-child(2)"
        );
        todayBtn.addEventListener("click", e => {
          let d = new Date(this.timeValue);
          let resDate3 = d.getFullYear() + '-' + this.handleTime((d.getMonth() + 1)); //2020-09
          // var unn = resDate3.split("-")
          // alert(unn)
          // console.log(unn[0])
          // console.log(unn[1])
          let nowDate = new Date();
          let date = {
            year: nowDate.getFullYear(),
            month: nowDate.getMonth() + 1,
            date: nowDate.getDate(),
          }
          this.giveTake(date.year.toString(),date.month.toString())
        })
      });
    },
    watch: {},
    methods: {
      //处理时间
      handleTime(s) {
        return s < 10 ? '0' + s : s
      },
      allcalendar(data) {
        this.calendar = data.day
        alert(this.calendar)
      },
    },
    mounted() {
      // 初始化调用接口
      // this.adminOption()
    }
  };
</script>
<style lang="less" scoped>
  /deep/.el-calendar-day {
    box-sizing: border-box;
    padding: 5px;
    height: 80px;
  }
  .el-calendar {
    text-align: center;
  }
  .temp {
    padding: 20px;
  }
  .is-selected-1 {
    width: 100%;
    height: 100%;
  }
  .titleInfo {
    margin-top: 20px;
    margin-left: 20px;
  }
  .table {
    background: #ffffff;
    border-radius: 10px;
    margin-top: 20px;
    padding-bottom: 20px;
    margin-left: 20px;
    margin-right: 20px;
  }
</style>

相关文章
element-el-time-picker 开始时间-结束时间-回显(整理)
element-el-time-picker 开始时间-结束时间-回显(整理)
antdv框架a-date-picker只选择年demo(整理)
antdv框架a-date-picker只选择年demo(整理)
element-使用el-date-picker 选择日期后返回周几(整理)
element-使用el-date-picker 选择日期后返回周几(整理)
|
6月前
|
JavaScript
vue 获取上一周和获取下一周的日期时间
vue 获取上一周和获取下一周的日期时间
46 0
el-date-picker限制只能选当天,当天之后的日期(整理)
el-date-picker限制只能选当天,当天之后的日期(整理)
|
前端开发
#yyds干货盘点 【React工作记录二十七】moment处理日期格式
#yyds干货盘点 【React工作记录二十七】moment处理日期格式
46 0
#yyds干货盘点 【React工作记录二十七】moment处理日期格式
|
前端开发
#yyds干货盘点 react笔记之学习之显示日期
#yyds干货盘点 react笔记之学习之显示日期
59 0
#yyds干货盘点 react笔记之学习之显示日期
|
前端开发
#yyds干货盘点# react笔记之学习之显示日期
#yyds干货盘点# react笔记之学习之显示日期
45 0
#yyds干货盘点# react笔记之学习之显示日期
|
前端开发
react笔记之学习之显示日期
react笔记之学习之显示日期
91 0
react笔记之学习之显示日期
|
JavaScript 前端开发 数据格式
Ant Design Vue 日期选择器,绑定的日期和框内不一致,日期格式化,纠正时差
Ant Design Vue 日期选择器,绑定的日期和框内不一致,日期格式化,纠正时差
769 0
Ant Design Vue 日期选择器,绑定的日期和框内不一致,日期格式化,纠正时差