1. 程式人生 > 程式設計 >vue實現日曆表格(element-ui)

vue實現日曆表格(element-ui)

本文例項為大家分享了vue實現日曆表格的具體程式碼,供大家參考,具體內容如下

效果如圖:

vue實現日曆表格(element-ui)

html:後面的日期是迴圈出來的

<div class="calendar-title">
  <span class="calendar-left" @click="lastDateclick">&lt;</span>
  <span class="calendar-center">近期事件</span>
  <span class="calendar-right" @click="nextDateclick">></span>
</div>
<el-table ref="table"t :data="filterData" border stripe>
  <el-table-column align="center" type="index" width="50" label="序號"></el-table-column>
  <el-table-column align="center" prop="code" label="程式碼">
  </el-table-column>
  <el-table-column align="center" prop="name" label="名稱"></el-table-column>
  <el-table-column align="center" v-for="(item,index) in dateArr" :key="index + item" :label="item">
   <template slot-scope="scope">
   <span v-html="dateInfoDesc(item,scope.row)"></span>
   </template>
  </el-table-column>
</el-table>

這裡注意一下:key="index + item" ,之前我的key設定的只等於index,然後到了後面資料刪選的時候就各種出錯,找了半天,才發現是key值不唯一導致的!!

data:

bondList: [],// 獲取到資料組
leftDate: "",rightDate: "",TempleftDate: "",TemprightDate: "",dateArr: []

js:

computed: {
 // 監聽資料的日期滿足條件,則顯示該資料
 filterData() {
  var tableData = new Array();
  var _this = this;
  this.dataList.filter(item => {
  if (
   _this.dateArr.includes(item.startDate) ||
   _this.dateArr.includes(item.endDate) ||
   _this.dateArr.includes(item.refundDate)
  ) {
   tableData.push(item);
  } else {
   return;
  }
  });
  return tableData;
 }
},methods: {
 // 顯示該資料在當前日期對應的描述內容
 dateInfoDesc(date,row) {
  var msg = "";
  if (row.startDate == date) {
  msg = "起始日";
  } else if (row.endDate == date) {
  msg = "結束日";
  } else if (row.otherDate == date) {
  msg = "其他";
  }
  return msg;
 },// 獲取資料
 getDataList() {
  this.$axios.post(url).then(res => {
  this.dataList = res.data.data.rows;
  });
 },// 獲取日期資料,返回的全是日期
 getDateList() {
  var params = new URLSearchParams();
  params.append("leftDate",this.leftDate);
  params.append("rightDate",this.rightDate);
  this.$axios({
  method: "post",url: `url2`,params: params
  }).then(res => {
  this.dateArr = res.data.data; //日期資料
  this.TempleftDate = this.dateArr[0]; // 該區間日期第一位
  this.TemprightDate = this.dateArr[this.dateArr.length - 1]; // 該區間日期最後一位
  this.leftDate = [];
  this.rightDate = [];
  });
 },// 上一區間的日期
 lastDateclick() {
  this.leftDate = this.TempleftDate;
  this.getDateList();
 },// 下一區間的日期
 nextDateclick() {
  this.rightDate = this.TemprightDate;
  this.getDateList();
 },}

有問題留言哈,希望能帶給你幫助。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。