源码:注!原创的!!!!

<template><div id="DATE"><ul class="dateForm" @change="VpushDateTime((ymd+hour+minute))"><!-- 年月日 --><li class="ymd"><div class="postion input"><label  @click.stop.prevent="selectState=true"><input type="text" v-model="ymd"><!----><i class="glyphicon glyphicon-triangle-bottom"></i></label></div><!-- 下拉列表年月日 --><select v-if="selectState" v-model="ymd"  @click.stop="VgetSelect('ymdSelect',$event)"  class="postion list select" id="ymdSelect" size="4"><option v-for="itme in ymdList" v-text="itme" v-bind:value="itme"></option></select></li><!-- 小时 --><li class="hour"><div class="postion input"><label @click.stop="selectState=true"><input type="text" v-model="hour"><!----><i class="glyphicon glyphicon-triangle-bottom"></i></label></div><!-- 下拉列表小时 --><select v-if="selectState" v-model="hour" @click.stop="VgetSelect('hourSelect',$event)" class="postion list select" id="hourSelect" size="4"><option v-for="(itme,i) in hourList" v-text="itme" v-bind:value="itme" ></option></select></li><!-- 分钟 --><li class="minute"><div class="postion input"><label @click.stop="selectState=true"><input type="text" v-model="minute"><!----><i class="glyphicon glyphicon-triangle-bottom"></i></label></div><!-- 下拉列表分钟 --><select v-if="selectState" v-model="minute" @click.stop="VgetSelect('minuteSelect',$event)" class="postion list select" id="minuteSelect" size="4"><option v-for="itme in minuteList" v-text="itme" v-bind:value="itme"></option></select></li></ul><button @click="p=23,ps=!ps">change</button><p v-if="ps">{{p}}</p></div>
</template>
<script>import moment from "moment";//设置时间核心插件语言moment.locale("zh-cn");//字典=》全国放假日[因为不知道明年放假是如何定的,所以只写死今年]const wordBookDate= ["2018年06月16日","2018年06月17日","2018年06月18日","2018年09月22日","2018年09月23日","2018年09月24日","2018年10月01日","2018年10月02日","2018年10月03日","2018年10月04日","2018年10月05日","2018年10月06日","2018年10月07日"];export default {props:{init:''},data() {return {p:'12',ps:false,//输入框//年月日ymd: '',//小时hour: '',//moment().format('HH')+'时'//分钟minute: moment().format('mm')+'分'//下拉框状态,selectState:false};},methods: {//向父组件传值VpushDateTime(data) {const _this = this;//  _this.$emit("getDateTime", _this.ymd);_this.$emit("getDateTime", data);},//下拉列表选择VgetSelect(selectName,e){const _this=this;const oSelec=document.querySelector('#'+selectName);if(selectName.startsWith('ymd')){//console.log('年月日');//_this.ymd=(e.target).innerText;}else if(selectName.startsWith('hour')) {//console.log('小时的');}else if(selectName.startsWith('minute')){//console.log('分钟的');}/*oSelec.addEventListener("click",function(e){console.log(selectName)if(selectName.startsWith('ymd')){console.log('年月日');}else if(selectName.startsWith('hour')) {console.log('小时的');}else if(selectName.startsWith('hour')){console.log('分钟的');}//_this.ymd=(e.target).innerText;_this.ymd=(e.target).innerText;//_this.VpushDateTime(_this.ymd);},false)*/},//检测最终值是否正确Vcheck(date){const _this=this;_this.VpushDateTime(date)},},computed: {/*  year-month-dayhourMinute *///年月日ymdList:()=>{/*const _this=this;*/let arr=[];const month= wordBookDate[(moment().month()+2).toString()];//取60天区间for(let i=0;i<60;i++){let ymd=moment().add(i,'day').format('L');let day=moment(ymd).day();//过滤周六日if(!(day==0||day==6)){ymd=ymd .replace(/[/]/, "年").replace(/[/]/, "月") + "日";arr.push(ymd)}//过滤周六日完毕}//取60天区间完毕//过滤法定节日if(month.length!=0){//传统写法for(let i=0;i<arr.length;i++){for(let m=0;m<=month.length;m++){if(arr[i]==month[m]){//改变原数组arr.splice(i,1);}}}}//过滤法定节日完毕return arr;},//时hourList:()=>{return ['09时','10时','11时','13时','14时'];},//分minuteList:()=>{return ['00分','01分','02分','03分','04分','05分','06分','07分','08分','09分','10分','11分','12分','13分','14分','15分','16分','17分','18分','19分','20分','21分','22分','23分','24分','25分','26分','27分','28分','29分','30分','31分','32分','33分','34分','35分','36分','37分','38分','39分','40分','41分','42分','43分','44分','45分','46分','47分','48分','49分','50分','51分','52分','53分','54分','55分','56分','57分','58分','59分']}},mounted() {const _this = this;//当鼠标点击旁边隐藏下拉框document.documentElement.addEventListener('click',function (e) {_this.selectState=false;});//console.clear();//console.log(_this.init.type);moment().hour() >= 15 ? _this.ymdList.splice(0,1) : '';_this.ymd=_this.ymdList[0];//年月日输入赋值,默认第一个_this.hour=_this.hourList[0];//小时,默认第一个console.log(_this.hourList[0]);_this.VpushDateTime((_this.ymd+_this.hour+_this.minute));},};
</script>
<style lang="scss" scoped>/* 整体样式 */.dateForm{list-style: none;padding: 0;margin:0;&>li{display: inline-block;position: relative;}.postion{position: absolute;top:0;left: 0;}.postion.input{z-index: 2;background:#fff;}.postion.list{padding: 0;box-sizing: border-box;width: 100%;top:28px;}}/* 输入框样式 */label {display: inline-block;height: 26px;line-height: 26px;border: 1px solid #ddd;padding: 0;margin: 0;overflow: hidden;input {padding: 0;margin: 0;outline: none;border: none;box-sizing: border-box;padding-left: 3px;}i {border-left: 1px solid #ddd;display: inline-block;line-height: 26px;vertical-align: bottom;text-align: center;cursor: pointer;font-size: 14px;color: #6d6d6d;}}.ymd {width: 145px;.postion.input{width: 145px;label{width: 145px;}}input {width: 122px;}i {padding-left: 3px;}}.hour,.minute {width: 60px;.postion.input{width: 60px;label{width: 60px;}}input {width: 36px;}i {width: 18px;}}/* 下拉列表样式 */.select{background: #fff;outline: none;margin: 0;padding:0;option{height: 28px;line-height: 28px;padding-top: 5px;padding-left: 5px;cursor: pointer;}option:hover,option:focus,option:active{background: #1883D7;color:#fff;}}.select::-webkit-scrollbar{width:2px;background: #6d6d6d;}
</style>

  

转载于:https://www.cnblogs.com/webSong/p/9342498.html

vue js moment.js 过滤了双休日和法定节假日相关推荐

  1. js获取传统节假日_vue js moment.js 过滤了双休日和法定节假日

    源码:注!原创的!!!! change {{p}} import moment from "moment"; //设置时间核心插件语言 moment.locale("zh ...

  2. js的2021年节假日数据包括法定节假日

    之前免费的返回节假日的接口收费了,手工写一下用吧,需要的来copy 按之前的接口格式返回的格式继续来的 普通节假日 value为1 ,百度搜索日历上 带休的 value为2,json格式 {" ...

  3. Vue Element+Node.js开发企业通用管理后台系统笔记完

    第三四章 Vue进阶 emit和emit 和emit和on 用this.$on来定义一个事件, 并且指定事件的执行对象(函数), 他主要是用来干什么的呢 --事件的定义和消费 使用this.on来定义 ...

  4. vue怎么引入js文件_Vue核心知识:8.3 vuex在vue-cli中的应用,文件之间的导出与引入...

    问题:vuex在vue-cli中的应用 第一步:npm下载vuex资源包: npm install vuex --save 第二步:在 src/main.js 中引入 import Vue from ...

  5. vue项目中主要文件的加载顺序(index.html、App.vue、main.js)

    先后顺序: index.html > App.vue的export外的js代码 > main.js > App.vue的export里面的js代码 > Index.vue的ex ...

  6. 一个vue加egg.js的博客

    之前自己的博客是用hexo做的,后面想做一个有后台的博客就打算用vue加node来试试,于是就有了这个博客. 项目地址 W-Blog W-Blog是一个基于vue和node的小小小博客 前端用vue, ...

  7. Vue中的Js动画与Velocity.js 的结合

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  8. vue生成静态js文件_如何立即使用Vue.js生成静态网站

    vue生成静态js文件 by Ondřej Polesný 通过OndřejPolesný 如何立即使用Vue.js生成静态网站 (How to generate a static website w ...

  9. 工作194:vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: ‘/system‘. This may cause an

    错误如下 拿到公司一个小哥哥的代码,一来就报了一堆bug,吓得我先写一篇博客vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detecte ...

最新文章

  1. 在visual studio 2010中调用ffmpeg
  2. Sentinel: 分布式系统的流量防卫兵 1
  3. 阿里 Midway 正式发布 Serverless v1.0,研发提效 50%
  4. Java黑皮书课后题第6章:**6.26(回文素数)回文素数是指一个数同时为素数和回文数。编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开
  5. linux 编写脚本示范,Linux-scripts-简单脚本和脚本的执行
  6. 二分图的最大匹配问题
  7. 7-9 根据后序和中序遍历输出先序遍历 (10 分)
  8. 《『若水新闻』客户端开发教程》——04.设计新闻分类UI(2)
  9. ubuntu之在ubuntu16.04中搭建gitlab服务器
  10. 从三大标准衡量hypervisor
  11. 读书月巨献丨博文视点大咖直播伴你读
  12. Android中Java与web通信
  13. Linux面试必备20个常用命令
  14. 基于PHP的校园bbs论坛系统
  15. LayoutInflater Factory
  16. 视频教程-Go快速入门强化-Go语言
  17. [经验] 系统封装常见问题大总结(非官方)
  18. 湖北武汉劳务员培训劳务员的现场管理建筑七大员培训
  19. 运行DreamweaverCS6(绿色破解免)时,没有找到mfc100u.dll!
  20. 如何控制H5 video 只能后退(向后拖动)不能快进(向前拖动)

热门文章

  1. 晚上睡不好怎么办?试试这几个睡前助眠小妙招
  2. 首次导入的P12钥匙串密码问题
  3. s6 android 6.0,三星Android 6.0更新升级详细名单:只有国行S6 Edge(G9250)
  4. 看完这一篇,我终于搞懂了什么是应变和应力
  5. 国内交易所协议FIX STEP FAST Binary
  6. 开源协议说明LGPL
  7. 瓴犀强大SRM系统功能模块,可以为企业解决哪些问题
  8. Avada学习之-如何修改Header-logo和favicon图标
  9. 查询所有学生的课程及分数情况
  10. 你还敢用导航吗?独角兽“干掉”GPS和北斗导航