index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const app = getApp()
  2. import {
  3. throttle,
  4. getWaterDrop
  5. } from '../../utils/index/index'
  6. Component({
  7. /**
  8. * 组件的属性列表
  9. */
  10. properties: {
  11. isVisible: {
  12. type: Boolean,
  13. value: false,
  14. observer: "handleVisibilityChange"
  15. }
  16. },
  17. props: {
  18. // 是否显示modal
  19. visible: {
  20. type: Boolean,
  21. value: false
  22. },
  23. // 自定义内容
  24. content: {
  25. type: String,
  26. value: ''
  27. },
  28. // 是否显示取消按钮(默认显示)
  29. // showCancelBtn: true,
  30. showCancelBtn: { // 定义一个属性
  31. type: Boolean,
  32. value: true, // 默认值
  33. observer(newVal, oldVal) {
  34. // 属性变化监听器
  35. console.log('myProperty changed from', oldVal, 'to', newVal);
  36. this.updateValue(newVal);
  37. }
  38. },
  39. // 是否显示确认按钮(默认不显示)
  40. showOkBtn: true,
  41. //取消按钮文本
  42. cancelText: '取消',
  43. //确认按钮文本
  44. okText: '确认',
  45. //取消按钮回调
  46. onCancel: {
  47. type: Function,
  48. value: () => {}
  49. },
  50. //确认按钮回调
  51. onOk: {
  52. type: Function,
  53. value: () => {}
  54. },
  55. },
  56. /**
  57. * 组件的初始数据
  58. */
  59. data: {
  60. btnStatus: true,
  61. },
  62. lifetimes: {
  63. attached() {
  64. // 初始化时手动调用
  65. this.handleVisibilityChange(this.data.isVisible);
  66. }
  67. },
  68. didMount() {
  69. console.log(this.props.showCancelBtn)
  70. },
  71. didUpdate(newVal, oldVal) {
  72. console.log('didUpdate', newVal, oldVal)
  73. console.log(this.props.showCancelBtn)
  74. },
  75. /**
  76. * 组件的方法列表
  77. */
  78. methods: {
  79. handleVisibilityChange(isVisible) {
  80. console.log("Visibility on load:", isVisible);
  81. },
  82. updateValue(newVal) {
  83. console.log(newVal)
  84. // 更新内部数据或执行其他逻辑
  85. this.setData({
  86. btnStatus: newVal
  87. });
  88. },
  89. cancel: throttle( function () {
  90. setTimeout(()=>{
  91. this.props.onCancel();
  92. }, 100)
  93. }, 1000),
  94. confirm: throttle( function () {
  95. setTimeout(()=>{
  96. this.props.onOk();
  97. }, 100)
  98. }, 1000),
  99. },
  100. observers: {}
  101. })