vue-datepicker的使用

写这个文章主要是记录下用法,官网已经说的很详细了
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-dayweek: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],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 = keyif(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>
更新:回复中有网友说是可以设置不可选未来日期,具体看回复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库怎么选择?终于有人讲明白了

作者 | Alex Petrov所有数据库管理系统的主要工作都是可靠地存储数据并使其对用户可用。我们使用数据库作为数据的主要来源&#xff0c;帮助我们在应用程序的不同部分之间共享数据。我们使用数据库&#xff0c;而不是在每次创建新应用程序时寻找存储和检索信息的方法&#xff0…

医疗数据典型特征及架构发展方向研究

前言 医疗健康产业目前呈高速发展状态&#xff0c;处在互联网对医疗行业赋能的关键阶段&#xff0c;由于医疗行业数据的隐私性较强&#xff0c;通过传统方式很难获取公开的医疗健康数据进行研究&#xff0c;根据阿里云天池比赛赛题设置研究及提供的脱敏数据集着手进行分析是比…

分布式事务 GTS 的价值和原理浅析

GTS 今年双 11 的成绩 今年 2684 亿的背后&#xff0c;有一个默默支撑&#xff0c;低调到几乎被遗忘的中间件云产品——GTS&#xff08;全局事务服务&#xff0c;Global Transaction Service&#xff09;&#xff0c;稳稳地通过了自 2014 年诞生以来的第 5 次“大考”。 2019 …

kafka java.net.UnknownHostException: node4 Error connecting to node node4:9092

解决&#xff1a;修改kafka的server.properties文件 vim /kafka安装路径/config/server.properties 去除下面这行配置的注释&#xff0c;并设置对应的ip地址 #advertised.listenersPLAINTEXT://your.host.name:9092 advertised.listenersPLAINTEXT://192.168.92.104:9092 重启…

看全新升级的KubeSphere 3.0 如何助力企业在容器混合云时代乘风破浪?

数据时代&#xff0c;层出不穷的创新型业务对企业IT提出了更高的要求&#xff0c;业务、技术和管理方面的挑战也逐渐显现。对此&#xff0c;越来越多的企业希望能够快速、简单地创建企业应用&#xff0c;敏捷地满足业务创新的需求&#xff0c;同时还能维持极高的企业级服务水平…

5G的7大用途,你知道几个?

阿里妹导读&#xff1a;5G时代悄悄来临&#xff0c;甚至成为街头巷尾都在讨论的话题。相信你一定有过一些疑问&#xff1a;什么是5G&#xff1f;仅仅只是网速更快吗&#xff1f;5G如何做到毫秒级的延迟&#xff1f;网络切片是什么&#xff1f;5G的标准之争是怎么回事&#xff0…

ALive:淘宝双11直播,技术同学却可以“偷懒”?

“疯狂的”淘宝直播间 今年直播又火了&#xff01; 2019年双11淘宝直播带来近 200亿 成交&#xff0c;以天猫双11交易总额2684亿计算&#xff0c;直播已经占总成交额的近 7.45%&#xff01; 今年的变化 除了以往的手淘和猫客&#xff0c;现在 UC 浏览器、新浪微博、支付宝、…

虚拟机安装centos

到官网下载centos系统&#xff1a; https://www.centos.org/download/ 有三种选择&#xff08;DVD IOS&#xff0c;Everything IOS, Minimal IOS(精简版的)&#xff09;&#xff0c;建议使用DVD IOS 安装虚拟机&#xff1a; #选择典型安装&#xff1a; #选择稍后安装&#…

KAFKA SpringBoot2 Nacos 消息异步发送和消费消息(进阶篇)

文章目录一、基础集成1. 技术选型2. 导入依赖3. kafka配置4. auto-offset-reset 简述5. 新增一个订单类6. 生产者&#xff08;异步&#xff09;7. 消费者8. kafka配置类9.单元测试9. 效果图10. 源码地址11.微服务专栏一、基础集成 1. 技术选型 软件/框架版本jdk1.8.0_202spri…

看懂别人的代码,只是成为高效程序员的第一步!

作者 | SeattleDataGuy译者 | 弯月&#xff0c;责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;在为面试做准备的时候&#xff0c;很多软件工程师都花费了大量时间做编程题和完善简历。最终在找到一份工作后&#xff0c;无论是在创业公司、Google、亚马…

响应速度不给力?解锁正确缓存姿势

阿里妹导读&#xff1a;响应时间长&#xff0c;遇到性能瓶颈时&#xff0c;开发者第一个想到的总是性能优化。《什么技能产品经理不会提&#xff0c;但技术人必须懂&#xff1f;》讲到了什么时候需要使用缓存。但缓存的用法是什么&#xff1f;一旦缓存使用不当&#xff0c;或稍…

Spring Boot2 集成 jasypt 3.0.4 配置文件敏感信息加密

文章目录1. 导入依赖2. yml中添加配置文件3. 加解密工具类4. 敏感信息替换5. 编译打包6. 启动项目1. 导入依赖 <!--敏感信息加密--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifa…

技术直播:1小时突击Java工程师面试核心(限免报名)

后疫情时代&#xff0c;连程序员这个多金的职业也遭受到了一定程度的打击。从各大招聘网站和多次面试经历中&#xff0c;相信大家已经意识到&#xff0c;面试官对程序员技能体系和项目经验考核似乎更严苛了。你在面试中常常为什么苦恼呢&#xff1f;简历撰写&#xff1f;数据算…

重塑云上的 Java 语言

音乐无国界&#xff0c;但是音乐人有国界。 云原生亦如此。虽没有限定的编程语言&#xff0c;但应用所使用的编程语言已经决定了应用部署运行的行为。 Java 诞生于20年前&#xff0c;拥有大量优秀的企业级框架&#xff0c;践行 OOP 理念&#xff0c;更多体现的是严谨以及在长…

5分钟带你看懂 GCanvas渲染引擎的演进

本文内容大纲&#xff1a; 1、轻量级图形渲染引擎与应用 2、渲染引擎演进与优化之路 3、渲染引擎未来的发展方向 GCanvas 的定位是遵循 w3c 标准的跨平台的轻量级图形渲染引擎。有清晰的定位和目标&#xff0c;并且紧贴现有的业务&#xff0c;为业务提供丰富表现形式。 GCa…

免费技术直播:唐宇迪带你一节课了解机器学习经典算法

常常有小伙伴在后台反馈&#xff1a;机器学习经典算法有哪些&#xff1f;自学难度大又没有效果&#xff0c;该怎么办&#xff1f;CSDN为了解决这个难题&#xff0c;联合唐宇迪老师为大家带来了一场精彩的直播【一节课掌握机器学习经典算法-线性回归模型】。本次直播将帮大家了解…

Centos7 安装Go环境

文章目录1. 下载2. 解压 和目录创建3. 配置环境变量4. 刷新环境变量5. 验证1. 下载 https://golang.google.cn/dl/ wget https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz2. 解压 和目录创建 tar -zxvf go1.17.1.linux-amd64.tar.gz -C /usr/local/ mkdir gocode3…

深度学习在商户挂牌语义理解的实践

​导读&#xff1a;高德地图拥有几千万的POI兴趣点&#xff0c;例如大厦、底商、学校等数据&#xff0c;而且每天不断有新的POI出现。为了维持POI数据的鲜度&#xff0c;高德会通过大量的数据采集来覆盖和更新。现实中POI名称复杂&#xff0c;多变&#xff0c;同时&#xff0c;…

云计算与星辰大海的结合——不要回答,来自百亿光年外的未知信号

作者 | 硬核云顶宫责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;今年在疫情的影响下&#xff0c;各国的经济发展都遇到了一些困难&#xff0c;甚至除中国以外的主要经济体都会进入了负增长的情况&#xff0c;不过越是这样的时候&#xff0c;越…

让大数据分析更简单,4步教你玩转MongoDB BI Connector

MongoDB使用BI Connector支持BI组件直接使用SQL或ODBC数据源方式直接访问MongoDB,在早期MongoDB直接使用Postgresql FDW实现 SQL到MQL的转换,后来实现更加轻量级的mongosqld支持BI工具的连接。 安装 BI Connector 参考 Install BI Connectorhttps://docs.mongodb.com/bi-conne…