最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)簡單的日歷效果

 更新時(shí)間:2020年09月24日 09:25:03   作者:沐離歌  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡單的日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

最近在項(xiàng)目中遇到了一個(gè)需求,在vue中創(chuàng)建一個(gè)組件,這個(gè)組件顯示的是當(dāng)前的日期,以及在當(dāng)前的日需要處理的事項(xiàng),處理的事項(xiàng)的信息會(huì)以后端的接口的形式返回。

需求確認(rèn)后,搭建了一下,在這里記錄了一下,現(xiàn)在是簡單的實(shí)現(xiàn)了這個(gè)需求,但是肯定的是后期需要進(jìn)行修改。

vue就不多說了,在vue中使用的是原生JS

效果圖(基本沒有樣式,很low)

現(xiàn)在實(shí)現(xiàn)的都是最初級(jí)的版本,代碼里面的容錯(cuò),還有一些性能上的處理,并沒有書寫。

不多說,上代碼:

首先是vue的html結(jié)構(gòu),很簡單,里面添加了一些其他時(shí)間形式的顯示,可根據(jù)具體使用場景增刪

<div id="dateContainer">
  <div class="date__showNowTime">
  今天是 <span v-text="ynow"></span>年<span v-text="mnow+1"></span>月<span v-text="dnow"></span>日
  </div>
  <div class="nowTime">
  <button class="preMon" @click="preMon">上個(gè)月</button>
  <div class="thisMon">
   <span v-text="ynow"></span>/
   <span v-text="mnow+1"></span>
  </div>
  <button class="nextMon" @click="nextMon">下個(gè)月</button>
  </div>
  <table border="1" id="table">
 
  </table>
 
</div>

接下來是實(shí)現(xiàn)我們的這個(gè)需求的JS代碼的位置了,關(guān)于js的代碼,在代碼里面存在一些注釋,具體可以根據(jù),代碼的注釋進(jìn)行解讀

export default {
 data() {
  return {
  newDate: '',//當(dāng)前的日期的信息
  ynow: '',//當(dāng)前的年數(shù)
  mnow: '',//當(dāng)前的月份
  dnow: '',//當(dāng)前的天數(shù)
  firstDay: '',//第一天
  firstnow: '',//當(dāng)前的星期
  m_days: [],//每個(gè)月的天數(shù)
  tr_str: '',//行數(shù)
  }
 },
 methods: {
  getDaysInfo() {
  var _this = this;
  this.sureDate(_this);
  },
  is_leap(year) {//判斷是不是閏年
  return (year%100==0?(year%400==0?1:0):(year%4==0?1:0));
  },
  //下面的是畫表格的方法,這個(gè)方法會(huì)根據(jù)數(shù)據(jù)畫出我們需要的表格
  drawTable(jsonHtml) {
  var _this = this;
  var str = `
  <tr class="xiqi">
   <td class="isRed">星期日</td>
   <td>星期一</td>
   <td>星期二</td>
   <td>星期三</td>
   <td>星期四</td>
   <td>星期五</td>
   <td class="isRed">星期六</td>
  </tr>`;
  var idx = '',date_str = '',isRed = '',hasMsg='';
  for(var i = 0; i< _this.tr_str; i++) {
   str+='<tr>';
   for(var k = 0; k < 7; k++) {
 
    idx = i*7+k;
    isRed = (k===0||k===6)?"isRed":"";
    date_str=idx-_this.firstnow+1;
   (date_str<=0 || date_str>this.m_days[this.mnow]) ? date_str=" " : date_str=idx-_this.firstnow+1;
   date_str==_this.dnow?hasMsg='<td class="thisDay" date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span></td>':hasMsg='<td date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span></td>';
 
   for(var l = 0, len = jsonHtml.length; l < len; l++) {
   if(date_str== jsonHtml[l].date) {
    var newStr = '<p>'+jsonHtml[l].msg +'</p>';
    date_str==_this.dnow?hasMsg='<td class="thisDay" date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span>'+ newStr+'</td>':hasMsg='<td date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span>'+ newStr+'</td>';
 
   }
   }
   str+=hasMsg;
   }
   str+='</tr>';
  }
  var table = document.getElementById('table');
  table.innerHTML = str;
  },
  //兩個(gè)參數(shù)代表的含義分別是this對(duì)象以及判斷當(dāng)前的操作是不是在進(jìn)行月份的修改
  sureDate(_this,other) {
  this.newDate = new Date();
  this.ynow = this.newDate.getFullYear();
  if(!other) {
   this.mnow=this.newDate.getMonth(); //月份
  }
  this.dnow=this.newDate.getDate(); //今日日期
  this.firstDay = new Date(this.ynow,this.mnow,1);
  this.firstnow=this.firstDay.getDay();
  this.m_days = [31,28+this.is_leap(this.ynow),31,30,31,30,31,31,30,31,30,31];
  this.tr_str = Math.ceil((_this.m_days[this.mnow] + this.firstnow)/7);
  this.showMsg();
  },
  preMon() {
  var _this = this;
  this.mnow--;
  this.sureDate(_this,"up");
  },
  nextMon() {
  var _this = this;
  this.mnow++;
  this.sureDate(_this,"next");
  },
  //通過接口返回的是我們當(dāng)前的月份對(duì)應(yīng)在日歷中需要處理的事項(xiàng)
  showMsg() {
  var jsonHtml = [{
   date: 2,
   msg: '吃飯'
  },
  {
   date: 3,
   msg: '睡覺'
  },
  {
   date: 4,
   msg: '打豆豆'
  },
  {
   date: 6,
   msg: '豆豆不在家'
  },
  {
   date: 12,
   msg: '~~~~~'
  },
  {
   date: 15,
   msg: '怎么辦~~~~'
  },
  {
   date: 20,
   msg: '找豆豆'
  }];
  this.drawTable(jsonHtml)
  }
 
 },
 mounted() {
  //畫出當(dāng)前的月份的天數(shù)對(duì)應(yīng)的表格
  this.getDaysInfo();
  //進(jìn)行數(shù)據(jù)的獲取,顯示到對(duì)應(yīng)的位置
 }

js的代碼目前的來說也就是這么多,里面只是初步實(shí)現(xiàn)了功能,其他什么都沒進(jìn)行處理~~~~

具體的實(shí)現(xiàn)可以訪問我的github獲取--點(diǎn)擊打開鏈接

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何解決element-ui中多個(gè)table在tab切換時(shí)出現(xiàn)寬度縮小問題

    如何解決element-ui中多個(gè)table在tab切換時(shí)出現(xiàn)寬度縮小問題

    這篇文章主要介紹了如何解決element-ui中多個(gè)table在tab切換時(shí)出現(xiàn)寬度縮小問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue實(shí)現(xiàn)滑動(dòng)到底部加載更多效果

    vue實(shí)現(xiàn)滑動(dòng)到底部加載更多效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)滑動(dòng)到底部加載更多效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • vue用vis插件如何實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D

    vue用vis插件如何實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D

    這篇文章主要介紹了vue用vis插件如何實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 解決vue+elementui項(xiàng)目打包后樣式變化問題

    解決vue+elementui項(xiàng)目打包后樣式變化問題

    這篇文章主要介紹了解決vue+elementui項(xiàng)目打包后樣式變化問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue Element-UI中el-table實(shí)現(xiàn)單選的示例代碼

    Vue Element-UI中el-table實(shí)現(xiàn)單選的示例代碼

    在element-ui中是為我們準(zhǔn)備好了可直接使用的單選與多選屬性的,本文主要介紹了Vue Element-UI中el-table實(shí)現(xiàn)單選的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • vue實(shí)現(xiàn)簡單表格組件實(shí)例詳解

    vue實(shí)現(xiàn)簡單表格組件實(shí)例詳解

    vue的核心思想就是組件,什么是組件呢?按照我的理解組件就是裝配頁面的零件,vue三大核心組件 路由 狀態(tài)管理,路由控制頁面的渲染,頁面由組件組成,數(shù)據(jù)有vuex進(jìn)行管理和改變。下面我會(huì)以一個(gè)簡單的案例來說
    2017-04-04
  • 淺談vuex為什么不建議在action中修改state

    淺談vuex為什么不建議在action中修改state

    這篇文章主要介紹了淺談vuex為什么不建議在action中修改state,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 淺談Vue 性能優(yōu)化之深挖數(shù)組

    淺談Vue 性能優(yōu)化之深挖數(shù)組

    這篇文章主要介紹了淺談Vue 性能優(yōu)化之深挖數(shù)組,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 一文搞懂vue編譯器(DSL)原理

    一文搞懂vue編譯器(DSL)原理

    本文主要介紹了一文搞懂vue編譯器(DSL)原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 關(guān)于vue.js中實(shí)現(xiàn)方法內(nèi)某些代碼延時(shí)執(zhí)行

    關(guān)于vue.js中實(shí)現(xiàn)方法內(nèi)某些代碼延時(shí)執(zhí)行

    今天小編就為大家分享一篇關(guān)于vue.js中實(shí)現(xiàn)方法內(nèi)某些代碼延時(shí)執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評(píng)論

洛阳市| 唐山市| 潞西市| 化隆| 沙湾县| 资中县| 襄城县| 辉南县| 兰溪市| 乐都县| 云梦县| 柏乡县| 白沙| 华宁县| 泰和县| 酉阳| 花莲市| 钟山县| 肃宁县| 驻马店市| 新丰县| 额尔古纳市| 延长县| 宝清县| 丹江口市| 西乌| 刚察县| 云安县| 乐都县| 平昌县| 新和县| 昌平区| 凌源市| 汾西县| 荥阳市| 临湘市| 温泉县| 平原县| 安福县| 巩留县| 汤阴县|