Vue 日期下拉框
<!-- html -->
<template>
<!-- 控件样式 -->
<div class="select">
<div class="select_button" v-if="selectType === '1'" @click='selectAction'>
<div class="title_view">
<div class="title" v-if='selectValue.length===0'> {{title}} </div>
<div class="title" v-else> {{selectValue}} </div>
</div>
<img src="../../assets/select.png" class="select_photo">
</div>
<!-- 控件点选样式 -->
<div class="suite_view" ref='suite' v-if='isShow'>
<ul class="item_view" v-if="items.length > 0">
<li class="item" v-for='item in items' :key='item' @click='selectItemAction'>{{item}}</li>
</ul>
<ul class="item_view" v-else>
<li class="item" v-for='day in days' :key='day' @click='selectItemAction'>{{day}}</li>
</ul>
</div> <!--不可选-->
<div class="select_button" v-if="selectType === '2'">
<div class="title_view">
<div class="title" v-if='selectValue.length===0' style="color: gray"> {{title}} </div>
<div class="title" style="color: gray" v-else> {{selectValue}} </div>
</div>
<img src="../../assets/selectNO.png" class="select_photo">
</div> </div>
</template> <!-- js -->
<script>
export default {
name: 'select',
props: {
selectType: '', // 该值为1:可点选,2:不可点选
title: '',
unit: '',
items: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
isShow: false,
selectValue: '',
days: []
}
},
methods: {
// 点击 弹出套件
selectAction: function () {
this.isShow = !this.isShow
this.$emit('selectAction')
},
// 获取用户点选的数值 并且传给父控件
selectItemAction: function () {
this.isShow = !this.isShow
this.selectValue = event.target.innerText
this.$emit('itemSelectAction', this.selectValue)
},
// 通过 $refs 操作执行该方法(通过判断平年闰年来确定日期)
calculationOfDay: function (year, month) {
year = parseInt(year)
month = parseInt(month)
// 闰年
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) {
this.setDays(31)
} else {
// 二月份 闰年28天
if (month === 2) {
this.setDays(29)
} else {
this.setDays(30)
}
}
} else {
// 平年
if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) {
this.setDays(31)
} else {
// 二月份 闰年28天
if (month === 2) {
this.setDays(28)
} else {
this.setDays(30)
}
}
}
},
setDays: function (max) {
this.days = [] // 清空
for (var i = 1; i <= max; i++) {
this.days.push(i)
}
},
setDefaultValue: function (value) {
this.selectValue = value
}
},
created () {
// 设置日期默认值
this.setDays(30)
},
mounted () {
} }
</script> <!-- css -->
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.select {
height: 3rem;
width: 25vw;
}
.select_button {
height: 100%;
width: 100%;
border-style: solid;
border-width: 0.05rem;
border-color: black;
display: flex;
flex-direction: row;
align-items: center;
}
.title_view {
width: 18vw;
/*height: 100%;*/
/*background-color: red;*/
display: flex;
flex-direction: row;
align-items: center;
}
.title {
width: 100%;
font-size: 1rem;
text-align: center;
color: black;
/*background-color: blue;*/
}
.select_photo {
margin-left: 1vw;
height: 1rem;
width: 1rem;
}
.suite_view {
position: absolute;
-webkit-overflow-scrolling: touch;
/*margin-top: 0.1rem;*/
height: 13rem;
width: 25.5vw;
background-color: lightgray;
display: flex;
flex-direction: column;
align-items: center;
overflow-y: scroll;
font-size: 1rem;
text-align: center;
}
.item_view {
padding: 0;
width: 100%;
}
.item {
width: 100%;
margin-top: 0.5rem;
font-size: 1rem;
color: black;
text-align: center;
}
</style>
Vue 日期下拉框的更多相关文章
- vue获取下拉框值
vue获取下拉框的值,用vue-modle,只有点击下拉框的值才会赋值到下拉框中,初始时下拉框没有数据,而改用$event就不会出现这样的问题,下面看代码以及图解: v-model解决方式: < ...
- vue select下拉框绑定默认值
vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当 ...
- VUE 单选下拉框Select中动态加载 默认选中第一个
<lable>分类情况</lable> <select v-model="content.tid"> <option v-for=&quo ...
- vue实现下拉框全选和输入匹配
实际项目中的一个需求: 点击文本框,弹出带有复选框的选项,然后获取选中项的数据,传给后面的一个功能.在文本框输入内容,也会动态的匹配下拉列表,并且列表带有全选功能. 朴素的效果图: 我选择了用vue实 ...
- vue自定义下拉框组件
创建下拉框组件 Select.vue <template> <div class="selects"> <div :class="{sele ...
- vue+element下拉框样式的点击按钮
项目中点击按钮实在太多了,怎么办呢?我们就可以将它们制作成像下拉框那样的类似操作 1.HTML样式部分:关键点在于command 方法和属性 1 <el-dropdown 2 size=&quo ...
- vue 根据下拉框动态切换form的rule
taskCategorySelect (val) { // 任务类别下拉选择 if ( val == 5 ) { this.cameraORgateway = false; // true不可以使用 ...
- vue 树形下拉框 亲测 好用
https://vue-treeselect.js.org/ 顺带说一个开发中使用这个组件遇到的问题,关于回显之后无法修改的问题 找了很长时间 原因是数据类型导致的问题,数组里面应该是数字类型,直接 ...
- Vue中-下拉框可以选择可以填写
<el-form-item label="方法名称"> <el-autocomplete popper-class="my-autocomplete&q ...
随机推荐
- 【C# 开发技巧】 Application.DoEvents( ) 使用笔记
该方法可以处理当前队列的消息,比如一个for循环 5000次 向TextBox中追加文本,那肯定会假死一会儿的. 此时便可使用Application.DoEvents()来处理队列的信息. 简单说下使 ...
- 第 20 课 go如何实现继承的 && 给引用模块起别名
golang语言中没有继承,但是可以依靠组合来模拟继承和多态. package controllers import ( "encoding/json" md "gowe ...
- VS2010调试warning MSB8012:路径不匹配问题
VS2010调试warning MSB8012:路径不匹配问题 调试信息如下: warning MSB8012: TargetPath(D:\J2KCodecSDK\Samples\C++\a_Eas ...
- 使用Homebrew来安装Node等工具
原文转载自:https://www.cnblogs.com/richard-youth/p/9718349.html 使用 React Native,必须安装的依赖有:Node.Watchman 和 ...
- Zookeeper学习之Watcher事件类型和ZK状态
1.Zookeepe Watcherr的事件类型和ZK状态. zookeeper:Watcher.ZK状态,事件类型(一)zookeeper有watch事件,是一次性触发的,当watch监视的数据发 ...
- [转帖]为何 CPU 只用硅,而不用能耗更低的锗制作?知乎好文章
作者:鲁超链接:https://www.zhihu.com/question/28935966/answer/617701106来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- python 脚本定时删除 elk索引
脚本如下 一.python 脚本如下 #! /usr/bin/python # -*- coding=utf-8 -*- import urllib import urllib.request imp ...
- 《Mysql 锁 - 概述》
一:锁类型(加锁范围区分类型) - MySQL里面的锁可以分为:全局锁.表级锁.行级锁. 二:全局锁 - 作用 - 对整个数据库实例加锁. - 加锁方式 - MySQL提供加全局读锁的方法:Flus ...
- js实现——鼠标移动时跟随着一连的小图片
首先放置一连的image <body> <div><img src="yezi.png" alt="tu"></div ...
- GstStaticCaps的初始化
struct _GstStaticCaps { /*< public >*/ GstCaps *caps; const char *string; /*< private >* ...