当前位置: 首页 > news >正文

东莞创意网站设计app网站及其特色

东莞创意网站设计,app网站及其特色,seo排名赚app下载,手机网站建设多少钱一个本文使用vue2.0elementui 制作一个上门取件时间组件#xff0c;类似顺丰#xff0c;样式如下#xff1a; 大概功能#xff1a;点击期望上门时间#xff0c;下面出现一个弹框可以选择时间#xff1a; 首先我们定义一些需要的数据#xff1a; data() {return {isDropdown…本文使用vue2.0elementui 制作一个上门取件时间组件类似顺丰样式如下 大概功能点击期望上门时间下面出现一个弹框可以选择时间 首先我们定义一些需要的数据 data() {return {isDropdown: false,dayList: [],listArray: [08:00~09:00,09:00~10:00,10:00~11:00,11:00~12:00,12:00~13:00,13:00~14:00,14:00~15:00,15:00~16:00,16:00~17:00,17:00~18:00,18:00~19:00,19:00~19:30,],timeToList: {},timeValue: 今天,clickValue: 一小时内,clickDay: 今天,time: ,}}, 接着我们画一个期望上门时间的长框点击可以出现弹窗点击外部弹窗消失这中间我们使用了import Clickoutside from element-ui/src/utils/clickoutside 这一组件来帮助我们达到这个目的 templatediv classtime-picker clickopenDown v-clickoutsideclickoutsidediv classcontent-firstdiv classredSpan*/divdiv期望上门时间/div/divdiv classcontent-firstdiv{{ time }}/divi classel-icon-s-order/i/div /template 接下来画一个弹出页面弹出页面顶部是一个tab组件这里通过daylist循环获得 div classtimediv v-foritem in dayList classitem :classtimeValue item.lable ? active : clickdayChange(item)div{{ item.lable }}/divdiv{{ item.ymd }}/div/div/div tab组件中的内容是下单时间的按钮集合通过timeToList 这个结构体 先获取数组再循环生成 div classtimeListdiv v-foritem in timeToList[timeValue] clicktimeChange(item) classtimeBox:classclickDay item.day clickValue item.lable ? active : {{ item.lable }}/div/div 页面写好了我们开始写逻辑代码先需要一些工具函数获取小时、分钟、年月日一个用来判定点击了哪个按钮的list由于是双层结构tabbutton集所以需要两个值来判定一个获取今天按钮列表的函数 getHours() {const now new Date();return now.getHours();},getMinute() {const now new Date();return now.getMinutes();},formatDate(date) {const year date.getFullYear();const month String(date.getMonth() 1).padStart(2, 0);const day String(date.getDate()).padStart(2, 0);return ${year}-${month}-${day};},transTime(arr, day) {let temp []arr.forEach((item) {temp.push({lable: item,day: day})})return temp},getTodayList(arr) {let minute this.getMinute()let hour this.getHours()if (hour 8)return arrif (hour 19 minute 30)return []arr arr.slice(hour - 7)arr [一小时内, ...arr]return arr} 然后我们需要先初始化数据 initial() {let minute this.getMinute()let hour this.getHours()if (hour 9) {this.clickValue 08:00~09:00this.clickDay 今天return}if (hour 19 minute 30) {this.clickValue 08:00~09:00this.clickDay 明天return}},然后将时间赋值这里其实可以用computed但是我还是习惯自己做这部分操作 setTime() {this.time this.clickDay this.clickValue}, 接下来我们需要生成tab表单dayList以及每个tab页面下面的时间选项用了上面的两个工具函数getTodayList(),transTime() getDay() {const today new Date()const tomorrow new Date(today)tomorrow.setDate(tomorrow.getDate() 1)const afterTomorrow new Date(today)afterTomorrow.setDate(afterTomorrow.getDate() 2)let dayArray [this.formatDate(today), this.formatDate(tomorrow), this.formatDate(afterTomorrow)]let dayName [今天, 明天, 后天]this.dayList dayName.map((item, index) {return {lable: item,ymd: dayArray[index]}})},getTimeToList() {this.dayList.forEach((item) {let arr JSON.parse(JSON.stringify(this.listArray))if (item.lable 今天)arr this.getTodayList(arr)this.timeToList[item.lable] this.transTime(arr, item.lable)})},通过上面的初始化函数,可以生成下拉页面的组件内容函数顺序如下 mounted() {this.initial()this.setTime()this.getDay()this.getTimeToList()}, 最后我们添加一些点击动作,完整代码 openDown() {//打开下来框this.isDropdown true},clickoutside(e) {//关闭下拉框if (!e) {this.isDropdown falsethis.timeValue this.clickDay}},dayChange(item) {//切换tab页面this.timeValue item.lable},timeChange(item) {//选择下单时间this.clickValue item.lablethis.clickDay item.daythis.setTime()}, 贴一下css代码 style langscss scoped .time-picker {background-color: #f4f5f7;width: 336px;height: 32px;padding: 0 6px;display: flex;justify-content: space-between;cursor: pointer;.content-first {display: flex;align-items: center;gap: 3px;.redSpan {color: red;}}.dropdown {position: absolute;top: 32px;right: 0px;z-index: 99;width: 100%;height: 220px;background-color: #fff;box-shadow: 0 8px 12px 0 rgba(0, 0, 0, 0.04);border-radius: 10px;padding: 6px;.time {display: flex;.item {width: 33%;height: 45px;text-align: center;font-size: 14px;line-height: 18px;border-bottom: 1px solid #cccccc;}.active {color: red;border-bottom: 1px solid red;}}.timeList {padding: 10px;display: flex;align-items: center;flex-wrap: wrap;gap: 10px;.timeBox {width: 93px;height: 29px;background-color: #f7f8fa;text-align: center;}.timeBox:hover {color: red;}.active {color: red;background-color: #ffefef;}}}} /style 完整代码已经上传githubhttps://github.com/majinihao123/vue-Component 有需要的自取麻烦给git一个星星 以后要开始好好搞github自己的个人项目了
http://www.zqtcl.cn/news/677423/

相关文章:

  • 北京网站建设的公网站订票策划方案
  • 做搜狗网站快速排名福田瑞沃自卸车
  • 帮人做图挣外快的网站做网站刷流量挣钱吗
  • 网站改版被降权从0到建网站
  • dedese网站牛客网官网
  • 网站到期续费要多少钱如何做一个电商
  • 试述网站建设的步骤石家庄公司网站如何制作
  • 百度推广自己做网站吗韶关东莞网站建设
  • 濮阳建站建设室内设计效果图图片
  • 上海找做网站公司国外网站国内做好还是国外做
  • 一个vps建两个网站怎么弄数据库济南地产行业网站开发
  • 网站到期请续费站长网
  • 个人网站名字可以用哪些促销网站怎么做
  • 网站开发需要提供哪些东西镇江网络违法网站
  • 都江堰建设局官方网站wordpress分享此文章
  • 素材网站整站下载赣州网站建设信息
  • 网上做问卷报酬不错的网站是iis 如何新建网站
  • 济南建设监理协会网站雄安网站建设单位
  • 微网站模板怎么用公司网站无法打开
  • 查询网站备案进度做外贸的数据网站
  • 广州建网站哪儿济南兴田德润简介室内设计效果图手绘图
  • 网站页面设计要求做搜狗网站优化
  • 家纺代发网站建设百度怎么做开锁网站
  • 哈尔滨网站建设有哪些做互联网项目怎么推广
  • 网站首页代码怎么做温州设计集团有限公司官网
  • 如何更换网站图片自己做头像的网站漫画
  • 网站设计风格确认书网站标题 没有排名
  • iis内网站设置允许脚本执行免费行情100个软件
  • 网站如何做团购网站域名做链接怎么做
  • 绿色蔬菜网站模板怎么做网站网站的代理