最近在公司的項目中有一個無聊的設計,不知道產品大媽是無聊還是沒事做,讓我在表格中加一個日期選擇器,而且還要判斷數據庫里有沒有該日期,有就直接顯示,沒有的話,就在表格中渲染一個日期選擇器供用戶選擇日期加時間,然后點擊執行可以將該條日期加時間傳到數據庫里。好了,廢話不多說。
1 { 2 title: "Plan-Receiving Time", 3 key: "planReceiveTime", 4 width: 160, 5 render: (h, params) => { 6 var timeDesign; 7 var me = this; 8 if (!params.row.planReceiveTime) { 9 return h('Div', [ 10 h('DatePicker', { 11 props: { 12 type: 'datetime', 13 format: 'yyyy-MM-dd HH:mm', 14 placeholder: 'date', 15 size: 'small', 16 confirm: 'true' 17 }, 18 style :{ 19 marginLeft: '1px' 20 }, 21 on: { 22 'on-change': (val) => { 23 // me.data1[params.index].planReceiveTime 24 //me.data1[params.index].planReceiveTime =val; 25 timeDesign = val; 26 console.log(val); 27 }, 28 'on-ok': () => { 29 me.data1[params.index].planReceiveTime =timeDesign; 30 this.open=false; 31 } 32 } 33 }) 34 ]) 35 }else { 36 return h('div',params.row.planReceiveTime) 37 } 38 } 39 }
實現過程中問題:
在Table中渲染一個Datepicker,如果要選擇到小時或者分鍾的程度,直接用on-change方法會出問題,在Datepicker上點擊一個日期或者作出任何change就會收起Datepicker,然后就不能再選擇時間了。
然后,我又嘗試,直接用on-ok方法,這樣做,當我點擊日期或者作出什么改變,Datepicker不會收起來,點擊確認才會收起來,能選到時間,但是on-ok方法不能得到Datepicker的值,只有on-change方法才能得到值。
解決方法:
渲染的時候on-change 、on-ok方法一起使用,具體見代碼