index.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // commpents/timePicker/index.js
  2. Component({
  3. /**
  4. * 组件的属性列表
  5. */
  6. properties: {
  7. label: { type: String },
  8. model: { type: String },
  9. value: {
  10. type: String,
  11. observer: function (val) {
  12. this.initData()
  13. }
  14. }
  15. },
  16. /**
  17. * 组件的初始数据
  18. */
  19. data: {
  20. minDate: new Date().getTime(),
  21. currentDate: new Date().getTime(),
  22. text: '',
  23. show: false,
  24. },
  25. /**
  26. * 组件的方法列表
  27. */
  28. methods: {
  29. initData() {
  30. const val = this.properties.value
  31. if (!val) return;
  32. this.setData({ text: val })
  33. },
  34. toConfirm(event) {
  35. const data = event.detail;
  36. const datetimestr = this.getDateString(data)
  37. this.setData({
  38. currentDate: event.detail,
  39. text: datetimestr
  40. });
  41. this.triggerEvent('selected', { value: datetimestr, model: this.properties.model })
  42. this.toClose();
  43. },
  44. getDateString(datetime) {
  45. datetime = new Date(datetime);
  46. const year = datetime.getFullYear();
  47. let month = datetime.getMonth() + 1;
  48. if (month < 10) month = `0${month}`
  49. let date = datetime.getDate();
  50. if (date < 10) date = `0${date}`
  51. let hours = datetime.getHours();
  52. if (hours < 10) hours = `0${hours}`
  53. let min = datetime.getMinutes();
  54. if (min < 10) min = `0${min}`
  55. return `${year}-${month}-${date} ${hours}:${min}`
  56. },
  57. toOpen() {
  58. this.setData({
  59. show: true
  60. })
  61. },
  62. toClose() {
  63. this.setData({
  64. show: false,
  65. })
  66. },
  67. }
  68. })