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自定义样式
1302 0
|
JavaScript
vue 实现表格循环滚动 vue-seamless-scroll插件的安装与使用
vue 实现表格循环滚动 vue-seamless-scroll插件的安装与使用
1402 0
|
JavaScript
手搓日历组件,大屏样式最佳解决方案!
【10月更文挑战第6天】手搓日历组件,大屏样式最佳解决方案!
294 4
手搓日历组件,大屏样式最佳解决方案!
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
10477 46
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
存储 资源调度
在 Pinia 中如何实现状态持久化?
在 Pinia 中如何实现状态持久化?
2607 57
|
移动开发 前端开发 JavaScript
React DnD:实现拖拽功能的终极方案?
本文首发于微信公众号“前端徐徐”,介绍了一个强大的 React 拖拽库——React DnD。React DnD 帮助开发者轻松创建复杂的拖拽界面,适用于 Trello 风格的应用、列表重排序、可拖拽的 UI 组件等场景。文章详细介绍了 React DnD 的基本信息、主要特点、使用场景及快速上手指南。
1590 3
React DnD:实现拖拽功能的终极方案?
|
资源调度 JavaScript API
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
【Vue2 / Vue3】 一个贼nb,贼强大的自定义打印插件
12076 120
|
数据采集 资源调度 JavaScript
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。
|
JSON JavaScript 定位技术
Echarts 绘制地图(中国、省市、区县),保姆级教程!
Echarts 绘制地图(中国、省市、区县),保姆级教程!
24657 154
|
自然语言处理 JavaScript 开发者
通义灵码插件:VSCode 的智能编程助手
通义灵码插件:VSCode 的智能编程助手
12559 5

热门文章

最新文章