vue DateTimePicker 日期時間選擇器 懸浮框顯示所選日期差異天數


需求:

 

 

效果說明:即懸浮框內顯示為首選日期與鼠標懸浮日期得差異

 

解決辦法:

1.拿到需求,找對應組件事件表,發現組件庫僅提供三種事件,沒有懸浮狀態觸發事件,且沒有首日期選中立即更改綁定model

 

 

2.思路整理

A:重寫組件,耗時巨大,且不確定性因素多

B:現有功能調整,JS獲取鼠標移入移出區域及事件,定義移入事件觸發懸浮框顯示,並不斷刷新懸浮目標與首要日期得比值差異。首要日期選用

onPick方法全局修改,事實刷新。
 

3.難點:

A:鼠標懸浮獲取得innerText僅為一個數字(日)實際上時間段選擇器樣式為可跨年跨月,所以需要根據子元素及父元素關聯屬性向上獲取父元素下年月,之后通過正則表達式篩選數字,獲取年月,組合形成當前鼠標懸浮時間

 

 

B:改組件首要日期選中並沒有立刻綁定至Model,需手動綁定,才能在組件展開選擇受日期后,直接計算天數

 

代碼塊:

A:懸浮計算日期代碼塊,該代碼塊綁定到日期控件獲取焦點事件

 @focus="changeFocus()"

 

 

B:綁定日期選定,

  :picker-options="pickerOptions"

立刻更改當前model,此處必要更改,不增加回導致日期滯后計算

 

 

 

最終效果展示:

 

 

最后修改,因為模態框無法到懸浮框之下,所以可以重組組件,直接將日期顯示到組件上,不使用懸浮狀態

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM