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>

相关文章
Vue2使用v-model封装ElementUI_DatePicker 日期选择器组件
本文介绍了如何在Vue2中使用v-model封装ElementUI的DatePicker日期选择器组件,并实现自定义属性和方法的结合使用,包括禁用日期、格式化日期等功能。
651 2
Vue2使用v-model封装ElementUI_DatePicker 日期选择器组件
|
JavaScript 调度
Vue3 使用 Event Bus
Vue3 使用 Event Bus
310 2
element el-table 设置fixed导致行错乱问题
文章讨论了在使用Element UI的`el-table`组件时,设置固定列(`fixed`)导致行错乱的问题,并提供了解决方案。问题产生的原因是当表格底部有滚动条而固定列底部没有滚动条时,行无法对齐。解决办法是在表格中设置`padding-bottom`的内边距与滚动条高度相等,确保固定列和非固定列的行能够对齐。
3713 0
|
JavaScript 前端开发
JavaScript 中的 NaN:非数字值的深入解析
【8月更文挑战第31天】
622 1
Echarts中tooltip的 formatter用法
Echarts中tooltip的 formatter用法
662 0
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之如何SQL同步数据到Oracle数据库中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
NoSQL 中间件 Redis
vos3000,外呼系统,呼叫中心中间件-sofia(SIP)配置
配置sofia profile ,这个配置修改后不能实时生效的,需要重启FreeSWITCH,或者通过执行命令相关命令才可以生效。 添加删除sofia profile 需要重启fs,或者执行reload mod_sofia,才生效。 添加了网关需要执行命令 sofia profile [profilename] rescan 删除了网关需要执行命令sofia profile [profilename] killgw [gatewayname] 修改了网关配置需要先执行删除命令sofia profile [profilename] killgw [gatewayname],然后执行 sofi
|
JavaScript
vue开发过程中,修改了数据,但是页面死活不渲染改变!没变化!怎么办?6种方法解决~
vue开发过程中,修改了数据,但是页面死活不渲染改变!没变化!怎么办?6种方法解决~
详解element-ui el-table表格中勾选checkbox(selection),高亮当前行高亮某一行(某一行设置特殊的样式)
详解element-ui el-table表格中勾选checkbox(selection),高亮当前行高亮某一行(某一行设置特殊的样式)
|
存储 NoSQL 应用服务中间件
Etcd+Confd实现Nginx配置文件自动管理
Etcd+Confd实现Nginx配置文件自动管理