亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue中datepicker的使用教程實例代碼詳解

2019-11-19 11:12:53
字體:
來源:轉載
供稿:網友

寫這個文章主要是記錄下用法,官網已經說的很詳細了

npm install vue-datepicker --save

html代碼

<myDatepicker :date="startTime" :option="multiOption" :limit="limit"></myDatepicker><myDatepicker :date="endtime" :option="timeoption" :limit="limit"></myDatepicker>

js代碼

<script>import myDatepicker from 'vue-datepicker'export default { name: 'PillDetail', components:{  myDatepicker }, data () {  return {   startTime: { // 相當于變量     time: ''    },    endtime: {  // 相當于變量     time: ''    },    timeoption: {     type: 'min', // day , multi-day     week: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],     month: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],     format: 'YYYY-M-D HH:mm', // YYYY-MM-DD 日期     inputStyle: {    // input 樣式      'display': 'inline-block',      'padding': '6px',      'line-height': '22px',      'width':'160px',      'font-size': '16px',      'border': '2px solid #fff',      'box-shadow': '0 1px 3px 0 rgba(0, 0, 0, 0.2)',      'border-radius': '2px',      'color': '#5F5F5F',      'margin':'0'     },     color: {  // 字體顏色      header: '#35acff', // 頭部      headerText: '#fff', // 頭部文案      },     buttons: {  // button 文案      ok: '確定',      cancel: '取消'     },     overlayOpacity: 0.5, // 遮罩透明度     placeholder: '請選時間', // 提示日期     dismissible: true // 默認true 待定   },        multiOption: {     type: 'min',     week: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],     month: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],     format:"YYYY-M-D HH:mm",     inputStyle: {      'display': 'inline-block',      'padding': '6px',      'line-height': '22px',      'width':'160px',      'font-size': '16px',      'border': '2px solid #fff',      'box-shadow': '0 1px 3px 0 rgba(0, 0, 0, 0.2)',      'border-radius': '2px',      'color': '#5F5F5F',      'margin':'0'     },     color: {  // 字體顏色      header: '#35acff', // 頭部      headerText: '#fff', // 頭部文案      },     buttons: {  // button 文案      ok: '確定',      cancel: '取消'     },     placeholder: '請選時間',     dismissible: true   },    limit: [{     type: 'weekday',     available: [1, 2, 3, 4, 5,6,0]   },   {     type: 'fromto',     from: '2016-02-01',     to: '2050-02-20'   }]  } }, methods: {   }}</script>

設置前一天和后一天的時間,我的實現是通過watch來監聽startTime的值,發現變化后,對當前日期和選擇的日期進行對比,超過未來時間就不進行變更,而計算后一天或前一天,只需讓當前時間進行加或減一天的時間即可

這里寫圖片描述

參考代碼:

<template> <div class="menu-container">  <Header :title="title" :xian="xian" :name="name" :food="food"></Header>  <div class="box">    <div class="timeselectbox">      <li class="daybefore" @click="getYesterday(startTime.time)">        < 前一天      </li>      <li class="dateselect">        <myDatepicker :date="startTime" :option="multiOption" :limit="limit"></myDatepicker>        <!-- 2018-04-05 -->      </li>      <li class="nextday" @click="getTomorrow(startTime.time)">        后一天 >      </li>    </div>    <div class="databox">      <div class="allsale" style="border-right:1px solid white">        <p class="p-top">總金額(元)</p>        <p class="p-bott">{{statistics.amount}}</p>      </div>      <div class="eff">        <p class="p-top">總數量(張)</p>        <p class="p-bott">{{statistics.sum}}</p>      </div>    </div>    <div class="paydetail">      <li @click="countvouchertype({       use_date:startTime.time,       ticket_type:1,       active:'koubei'      })" :class="{active:active.koubei}"><span>口碑券:</span>{{statistics.koubei}}筆</li>      <li @click="countvouchertype({       use_date:startTime.time,       ticket_type:2,       active:'meituan'      })" :class="{active:active.meituan}"><span>美團券:</span>{{statistics.meituan}}筆</li>      <li @click="countvouchertype({       use_date:startTime.time,       ticket_type:3,       active:'nuomi'      })" :class="{active:active.nuomi}"><span>糯米券:</span>{{statistics.nuomi}}筆</li>    </div>    <div class="allsale_price">      總金額:¥{{checkCouponList.amount}}    </div>    <div class="table">      <table class="table_data">        <tr class="describe">          <th></th>          <th>券碼</th>          <th>類型</th>          <th>狀態</th>          <th>金額</th>        </tr>        <tr @click="topath({         name:'/checkCouponInfo',         item:item        })" v-for="(item,index) in checkCouponList.data">          <td></td>          <td>{{item.ticket_code}}</td>          <td>{{item.ticket_type}}</td>          <td class="status" :class="item.active == 't' ? 'status-active' : ''">{{item.active == 't' ? '成功' : '失敗'}}</td>          <td>¥{{item.amount}}<b class="right_j"></b></td>        </tr>      </table>    </div>  </div> </div></template><script type="text/javascript"> import Header from '../Mast/Header' import myDatepicker from 'vue-datepicker' export default{  name:'CertificateDetail',  data () {  return {    title:'驗券明細',    xian:false,    name:'launcher',    food:true,    active:{      koubei:true,      meituan:false,      nuomi:false,    },    checkCouponList:{     data:[]    },    statistics:{},    startTime: {     time: ''    },    multiOption: {     type: 'day',     week: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],     month: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],     format:"YYYY-MM-DD",     inputStyle: {      'display': 'inline-block',      'height':'35px',      'line-height': '35px',      'width':'141px',      'font-size': '16px',      'border': 'none',      'color': '#5F5F5F',      'margin':'0',      'text-align':'center'     },     color: {    // 字體顏色      header: '#ff5534', // 頭部      headerText: '#fff', // 頭部文案     },     buttons: {    // button 文案      ok: '確定',      cancel: '取消'     },     placeholder: '請選時間',     dismissible: true    },    limit: [{     type: 'weekday',     available: [1, 2, 3, 4, 5,6,0]    },    {     type: 'fromto',     from: '2016-02-01',     to: '2050-02-20'    }]   }  },  methods:{   topath: function (params) {     this.$store.state.cashtime1 = this.startTime.time;    if(params['name'] == '/checkCouponInfo'){     this.$store.commit('couponInfo',params['item']);    }    this.$router.push({'path':params['name']});   },   getYesterday: function (time) {    let yesterday = new Date(time);    yesterday.setTime(yesterday.getTime() - 24 * 60 * 60 * 1000);    let reduce = '-';    this.startTime.time = yesterday.getFullYear() + reduce + this.addZero(yesterday.getMonth() + 1) + reduce + this.addZero(yesterday.getDate());   },   getTomorrow: function (time) {    let tomorrow = new Date(time);    let nowDate = this.getNowFormatDate();    tomorrow.setTime(tomorrow.getTime() + 24 * 60 * 60 * 1000);    let reduce = '-';    let year = tomorrow.getFullYear() + reduce + this.addZero(tomorrow.getMonth() + 1) + reduce + this.addZero(tomorrow.getDate());    let t_timestamp = Math.round(new Date(year) / 1000);    let n_timestamp = Math.round(new Date(nowDate) / 1000);    if(t_timestamp > n_timestamp){     return mui.toast('不能超過今天');    }else{     this.startTime.time = year;    }   },   getNowFormatDate: function () {    let date = new Date();    let reduce = "-";    let currentdate = date.getFullYear() + reduce + this.addZero(date.getMonth() + 1) + reduce + this.addZero(date.getDate());    return currentdate;   },   addZero: function (time) {    if (time >= 1 && time <= 9) {      time = "0" + time;    }    return time;   },   countvouchertype: function (params) {    // 設置選項卡    for(let key in this.active){     if(params['active'] == key){      this.active[key] = true;     }else{      this.active[key] = false;     }    }    this.$store.state.mastloadding = true;    console.dir(params);    this.API.countvouchertype(params).then((response) => {           this.checkCouponList = response;      console.dir(this.checkCouponList);      this.$store.state.mastloadding = false;    }, (response) => {      this.$store.state.mastloadding = false;      mui.toast('網絡錯誤');    });   },   countvoucherinfo: function (params) {    this.API.countvoucherinfo(params).then((response) => {      console.dir(response);      this.statistics = response;    }, (response) => {      mui.toast('網絡錯誤');    });   }  },  components:{   Header,   myDatepicker  },  mounted(){    this.startTime.time = this.$store.state.cashtime1 ? this.$store.state.cashtime1 : this.getNowFormatDate();   // this.startTime.time = this.getNowFormatDate();  },  watch: {   startTime: {     handler(newValue, oldValue) {       console.log(newValue);       let newTimestamp = Math.round(new Date(newValue .time) / 1000);       let oldTimestamp = Math.round(new Date(this.getNowFormatDate()) / 1000);       if(newTimestamp > oldTimestamp){        this.startTime.time = this.getNowFormatDate();        mui.toast('不能超過今天');       }else{        let active = '';        let ticket_type = 1;        for(let key in this.active){         if(this.active[key]){          active = key          if(key=='meituan'){           ticket_type = 2          }          if(key == 'nuomi')          {           ticket_type = 3          }         }        }        this.countvoucherinfo({         use_date:this.startTime.time        });        this.countvouchertype({         use_date:this.startTime.time,         ticket_type:ticket_type,         active:active        });       }            },     deep:true   }  } }</script><style type="text/css" scoped> .menu-container{  background:#fff; } .box{  width:100%;  margin-top:45px;  background:#fff; } .timeselectbox{  height:60px;  background:#edeeef; } .timeselectbox li{  list-style: none;  float:left;  height:35px;  line-height:35px;  margin-top:10px;  color:black; } .daybefore{  width:28%;  padding-left:10px;  font-size:13.5px; } .dateselect{  border-radius: 3px;  background:#fff;  width:44%;  text-align:center; } .nextday{  text-align: right;  width:28%;  padding-right:10px;  font-size:13.5px; } .databox{  height:115px;  background:#ff5534; } .databox div{  float:left;  height:80px;  margin-top:17.5px;  text-align:center; } .allsale{  width:50%; } .databox p{  color:white; } .p-top{  color:#eaebec;  margin-top:15px; } .p-bott{  font-size:18px;  margin-top:5px;  font-weight: bold; } .eff{  width:49.7%;  border-left:1px solid #cccccc96; } .paydetail{  height:52px;  background:white;  width:100%; } .paydetail li{  display: inline-block;  float:left;  width:33.3%;  font-size:12px;  text-align:center;  height:100%;  line-height: 50px;  overflow: hidden; } .line{  display: block;   margin-left: 32px;   width: 25%;   border: 1px solid #40AAEB; } .active{  color:#ff5534;  border-bottom:1px solid #ff5534; } .allsale_price{  height:40px;  background:#f4f4f4;  text-align: center;  line-height: 40px;  font-size: 12px; } .table{  width:100%; } .table_data{  width:100%; } .table_data th{  height:30px;  font-size:15px; } .describe{  border-bottom:1px solid #f4f4f4; } .describe th:nth-child(1){  width:5%;  /*text-align: left;*/ } .describe th:nth-child(2){  text-align: left; } .table_data tr{  width:100%; } .table_data tr td{  text-align:center;  height:30px;  line-height: 30px;  font-size:13px;  position:relative; } .table_data tr td:nth-child(1){  width:3%; } .table_data tr td:nth-child(2){  text-align: left; } .status{  color:red; } .status-active{  color:green; } .right_j{  /*background:url('/static/img/scancode_right.png') no-repeat;*/  background-size:9px !important;  display: inline-block;  position:absolute;  width:15px;  height:15px;  line-height: 30px;  font-size:18px;  right:5px;  top:5px; }</style>

總結

以上所述是小編給大家介紹的vue中datepicker的使用教程實例代碼詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人网址在线观看| 91久久精品国产91久久性色| 九色91av视频| 欧美日本高清视频| 在线精品视频视频中文字幕| 综合国产在线视频| 51午夜精品视频| 久久99精品久久久久久青青91| 国产精品视频99| 欧美大肥婆大肥bbbbb| 国产精品一区二区久久国产| 欧美日韩亚洲一区二区| 欧美亚洲国产成人精品| 亚洲福利在线看| 日韩高清电影免费观看完整版| 久久中文字幕在线视频| 1769国内精品视频在线播放| 国产精品看片资源| 狠狠色狠狠色综合日日五| 亚洲欧美激情另类校园| 国产v综合v亚洲欧美久久| 久久久噜噜噜久噜久久| 日韩av一区二区在线观看| 97在线观看免费| 精品视频久久久久久久| 夜夜嗨av色一区二区不卡| 综合欧美国产视频二区| 久久精品视频99| 国产精品专区第二| 亚洲精品国产精品乱码不99按摩| 国产一级揄自揄精品视频| 久久艳片www.17c.com| 国产精品v日韩精品| 国内外成人免费激情在线视频网站| 亚洲精品98久久久久久中文字幕| 色偷偷亚洲男人天堂| 在线成人中文字幕| 色婷婷久久一区二区| 欧美性开放视频| 亚洲jizzjizz日本少妇| 久久久亚洲欧洲日产国码aⅴ| 97香蕉超级碰碰久久免费的优势| 中文字幕不卡在线视频极品| 日韩av有码在线| 日本午夜在线亚洲.国产| 欧美美女操人视频| 亚洲国产精品久久久久秋霞蜜臀| 色一情一乱一区二区| 国产91露脸中文字幕在线| 激情久久av一区av二区av三区| 亚洲free嫩bbb| 国产日产亚洲精品| 亚洲黄在线观看| 日韩成人av在线播放| 欧美日本亚洲视频| 国产亚洲精品久久久久久牛牛| 精品国产一区二区三区久久久狼| 日韩精品日韩在线观看| 亚洲码在线观看| 日韩电视剧在线观看免费网站| 91精品久久久久久久久久久久久| 国产精品人成电影在线观看| 国产亚洲精品综合一区91| 国产精品日韩一区| 亚洲男人天堂2024| 日韩在线视频一区| 国产成人久久精品| 中文字幕精品一区二区精品| 国产99在线|中文| 亚洲一区二区三区视频播放| 在线观看中文字幕亚洲| 欧美成人精品在线| 国产精品免费一区二区三区都可以| 26uuu国产精品视频| 亚洲精品中文字幕女同| 色综合久综合久久综合久鬼88| 97精品视频在线播放| 这里只有精品在线观看| 麻豆国产精品va在线观看不卡| 91久久精品一区| 亚洲图片欧美午夜| 少妇高潮 亚洲精品| 精品在线欧美视频| 成人做爰www免费看视频网站| 日韩成人xxxx| 久久人人爽人人爽人人片av高清| 91老司机在线| 久久夜精品香蕉| 中国日韩欧美久久久久久久久| 日韩专区在线播放| 1769国产精品| 日韩精品免费观看| 国产91免费看片| 91香蕉电影院| 久久成人人人人精品欧| 亚洲精品一区久久久久久| 色婷婷亚洲mv天堂mv在影片| 91国语精品自产拍在线观看性色| 久久久久久久久久久久久久久久久久av| 91精品综合久久久久久五月天| 91极品视频在线| 亚洲伊人久久大香线蕉av| 国产999视频| 日韩在线观看网站| 久久精品国产69国产精品亚洲| 国产日韩精品视频| 日本不卡视频在线播放| 综合网日日天干夜夜久久| 亚洲第一男人av| 欧美日韩亚洲一区二区三区| 国产精品视频久久久| 欧美日韩国产中文精品字幕自在自线| 国产成人avxxxxx在线看| 欧美精品在线观看91| 国产精品永久免费观看| 97碰在线观看| 色先锋资源久久综合5566| 日韩精品中文在线观看| 91精品视频大全| 成人女保姆的销魂服务| 欧美激情欧美激情在线五月| 日韩黄色在线免费观看| 国产欧美日韩综合精品| 国模视频一区二区| 日韩成人黄色av| 亚洲xxxx做受欧美| 亚洲国内高清视频| 国产人妖伪娘一区91| 成人黄色激情网| 成人激情在线播放| 欧美一级黑人aaaaaaa做受| 成人免费网站在线| 成人性生交大片免费观看嘿嘿视频| 亚洲精品久久久久久久久| 亚洲最大av网站| 欧美成人高清视频| 国产亚洲成精品久久| 久久中文字幕在线| 久久99久久久久久久噜噜| 亚洲在线视频福利| 亚洲精品国产精品自产a区红杏吧| 国产成人福利视频| 欧美性生交xxxxxdddd| 亚洲天堂成人在线视频| 波霸ol色综合久久| 黑人狂躁日本妞一区二区三区| 欧美国产日韩视频| 深夜福利亚洲导航| 理论片在线不卡免费观看| 中文字幕亚洲一区二区三区五十路| 伊人久久综合97精品| 亚洲国产精品999| 国产欧美日韩视频| 久久精品国产亚洲| 久久人人爽人人爽人人片av高请| 91精品啪aⅴ在线观看国产| 国语自产精品视频在线看抢先版图片| 欧美精品在线播放| 国产高清视频一区三区| 国产一区二区丝袜高跟鞋图片| 欧美成在线视频| 国语自产偷拍精品视频偷| 久久综合色影院| 91精品在线观看视频|