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

青岛微网站制作做网站赚钱

青岛微网站制作,做网站赚钱,推荐坪山网站建设,广州市广园路建设公司网站需求:需要先让用户选择一个时间区间,然后再这个时间区间中,让用户再次去单选其种特殊日期。 思路: 1.先用Antd组件库中日期选择DatePicker.RangePicker实现让用户选择时间区间 2.在选择完时间区间后,用这个时间区间…

需求:需要先让用户选择一个时间区间,然后再这个时间区间中,让用户再次去单选其种特殊日期。

思路:

1.先用Antd组件库中日期选择DatePicker.RangePicker实现让用户选择时间区间
2.在选择完时间区间后,用这个时间区间,弹出一个在这个时间区间范围内的日历组件Calendar
3.通过Calendar组件(日历)的onSelect(点击事件)获得点击value,然后通过dateCellRender(自定义渲染日期单元格)将选中的时间给用户颜色提示
4.最后将日期选择,还有区间内时间传给后端

第一步:先用Antd组件库中日期选择DatePicker.RangePicker实现让用户选择时间区间

页面:  

代码: 

<RangePickerdefaultValue={[moment(archiveStartTime, 'YYYY-MM-DD'), moment(archiveEndTime, 'YYYY-MM-DD')]}onChange={this.archiveTime}format={'YYYY-MM-DD'}
/>
  archiveTime = async (date: any, dateString: any) => {  //日期改变//这时候  先弹框,并且暂存时间区间this.setState({restVis: true, //弹框dateString, //暂存时间区间})}

第二步,第三步

2.在选择完时间区间后,用这个时间区间,弹出一个在这个时间区间范围内的日历组件Calendar

3.通过Calendar组件(日历)的onSelect(点击事件)获得点击value,然后通过dateCellRender(自定义渲染日期单元格)将选中的时间给用户颜色提示

刚弹出:选中后:

弹框中装入一个日历组件 
<Modaltitle="选择休息日"visible={restVis} //显示onOk={this.restHandleOk} //确定onCancel={this.restHandleCancel}  //取消
><CalendarclassName={styles.backgrand}  //改变默认选中蓝色的样式  不然每次点击颜色变化会影响用户选中判断fullscreen={false}  //不显示大日历onSelect={this.onSelect}  //点击时间dateCellRender={this.dateCellRender}  //日期渲染validRange={[moment(archiveStartTime), moment(archiveEndTime)]}  //可选时间区间,这边取上面日期选择组件的值/>
</Modal>

 上面日历组件中用global改变组件样式

.backgrand {:global {.ant-fullcalendar-selected-day .ant-fullcalendar-value,.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value {background-color: #fff !important;color: #595959;}}
}

日历组件两个事件

onSelect = (date: any) => { // 点击选择日期回调const { restDay } = this.state; //选中值集合let vis = true  //判断这个值是否选中if (restDay && Array.isArray(restDay)) {restDay.map((item: any) => {if (item == moment(date).format('YYYY-MM-DD')) {vis = false}})if (vis) { restDay.push(moment(date).format('YYYY-MM-DD')) } //如果未选中  增加这个选中值if (!vis) { restDay.splice(restDay.indexOf(moment(date).format('YYYY-MM-DD')), 1) }//如果已选中  删除这个选中值}this.setState({ restDay })
}
dateCellRender = (val: any) => { //自定义渲染日期单元格,返回内容会被追加到单元格const { restDay } = this.state; //选中值集合if (restDay && Array.isArray(restDay) && restDay.length > 0 && restDay.indexOf(moment(val).format('YYYY-MM-DD')) > -1) {return <div style={{ position: 'relative' }}><div style={{ //这边这个样式如果不处理,默认是在每个时间的下方color: 'red', backgroundColor: 'green',width: 25, height: 23, opacity: 0.4,position: 'absolute', left: 20, bottom: 18,}}></div></div>}
}
最终Modal弹框打开关闭事件,其中restDay,dateString就是最终用户一套花里胡哨操作后,我们最终需要得到两个参数
restHandleOk = async () => {const { dateString, restDay } = this.stateawait this.updateState({archiveStartTime: dateString[0],archiveEndTime: dateString[1],});console.log('此时单独选中:', restDay)console.log('此时时间区间:', dateString)this.restHandleCancel()
}
restHandleCancel = () => {this.setState({ restVis: false })
}

http://www.yayakq.cn/news/548307/

相关文章:

  • 吉林网站优化合肥网站建设q479185700惠
  • 建站系统主要包括最新软件发布平台
  • 邀请码网站怎么做帝国cms做淘宝客网站
  • 机械厂网站建设方案网站在线演示
  • 新乡网站建设制作硬件开发属于什么行业
  • 河北高端网站定制公司长沙好的做网站品牌
  • 网站广告赚钱吗服务公司名字大全
  • 男人和女人在床上做那个网站jsp是做网站后台的吗
  • 急招临时工200元一天福州seo公司排名
  • 免费制作一个企业网站wordpress不支持ie9
  • 代刷业务网站建设模板制作工艺流程
  • 网站开发的编程语言有哪些做网站的硬件和软件环境
  • 一个公司备案多个网站要注意站长工具备案查询
  • 果洛州wap网站建设公司sem培训哪家强
  • 网站开发投资成本完成公司门户网站建设
  • 手机模板的网站哪个好企业邮箱哪个好
  • 如何使用域名访问网站网页制作网站建设
  • 郑州网站建设e橙网熊掌号网站下载小说
  • 男科医院网站建设网站的友情链接怎么做
  • 网站开发角色分配权限免费1级做爰片在线网站
  • 做蛋糕的网站甘肃省引洮工程建设管理局官方网站
  • 平台网站建设方案书wordpress倒计时代码
  • opencart做的网站用服务器做网站
  • 设计的有趣的网站推荐营销网站建设公司效果
  • 廊坊网站建设推广经验中小企业电子商务网站建设
  • 网站开发的开发工具免费制作相册
  • 这个是以前我自己做的一个网站eclipse网站开发例子
  • 5080电影电视剧大全安徽网站优化价格咨询
  • 开发网站的技术路线9元建站节
  • 做网站成本wordpress 学会主题