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>

相关文章
|
前端开发
饿了么el-dialog自定义内容以及el-dialog自定义样式
饿了么el-dialog自定义内容以及el-dialog自定义样式
1413 0
|
JavaScript
vue 实现表格循环滚动 vue-seamless-scroll插件的安装与使用
vue 实现表格循环滚动 vue-seamless-scroll插件的安装与使用
1546 0
|
JavaScript
Element-ui中 使用图片查看器(el-image-viewer) 预览图片
Element-ui中 使用图片查看器(el-image-viewer) 预览图片
4198 1
Element-ui中 使用图片查看器(el-image-viewer) 预览图片
|
JavaScript
手搓日历组件,大屏样式最佳解决方案!
【10月更文挑战第6天】手搓日历组件,大屏样式最佳解决方案!
352 4
手搓日历组件,大屏样式最佳解决方案!
|
11月前
|
前端开发
给elmentui中的el-table-column 添加背景色怎么加
本示例通过自定义 ECharts 图例的 `formatter` 函数,实现在图例中同时显示名称、数值和百分比。代码中还优化了图例布局和饼图标签样式,使数据展示更清晰直观。
1222 0
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
10744 46
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
存储 资源调度
在 Pinia 中如何实现状态持久化?
在 Pinia 中如何实现状态持久化?
3294 57
|
资源调度 JavaScript API
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
13686 120
|
移动开发 前端开发 JavaScript
React DnD:实现拖拽功能的终极方案?
本文首发于微信公众号“前端徐徐”,介绍了一个强大的 React 拖拽库——React DnD。React DnD 帮助开发者轻松创建复杂的拖拽界面,适用于 Trello 风格的应用、列表重排序、可拖拽的 UI 组件等场景。文章详细介绍了 React DnD 的基本信息、主要特点、使用场景及快速上手指南。
1781 3
React DnD:实现拖拽功能的终极方案?