button.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. const types = ['default', 'primary', 'warn']
  2. const pageObject = {
  3. data: {
  4. theme: 'light',
  5. defaultSize: 'default',
  6. primarySize: 'default',
  7. warnSize: 'default',
  8. disabled: false,
  9. plain: false,
  10. loading: false,
  11. canIUseGetUserProfile: false
  12. },
  13. onShareAppMessage() {
  14. return {
  15. title: 'button',
  16. path: 'packageComponent/pages/form/button/button'
  17. }
  18. },
  19. setDisabled() {
  20. this.setData({
  21. disabled: !this.data.disabled
  22. })
  23. },
  24. setPlain() {
  25. this.setData({
  26. plain: !this.data.plain
  27. })
  28. },
  29. setLoading() {
  30. this.setData({
  31. loading: !this.data.loading
  32. })
  33. },
  34. handleContact(e) {
  35. console.log(e.detail)
  36. },
  37. handleGetPhoneNumber(e) {
  38. console.log(e.detail)
  39. },
  40. handleOpenSetting(e) {
  41. console.log(e.detail.authSetting)
  42. },
  43. handleGetUserInfo(e) {
  44. console.log('getUserInfo: ', e.detail.userInfo)
  45. },
  46. handleGetUserProfile(e) {
  47. wx.getUserProfile({
  48. desc: '用于演示 wx.getUserProfile', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
  49. success: (res) => {
  50. console.log('wx.getUserProfile: ', res.userInfo)
  51. }
  52. })
  53. },
  54. onLoad() {
  55. this.setData({
  56. theme: wx.getSystemInfoSync().theme || 'light'
  57. })
  58. if (wx.onThemeChange) {
  59. wx.onThemeChange(({theme}) => {
  60. this.setData({theme})
  61. })
  62. }
  63. if (wx.getUserProfile) {
  64. this.setData({
  65. canIUseGetUserProfile: true
  66. })
  67. }
  68. }
  69. }
  70. for (let i = 0; i < types.length; ++i) {
  71. (function (type) {
  72. pageObject[type] = function () {
  73. const key = `${type}Size`
  74. const changedData = {}
  75. changedData[key] = this.data[key] === 'default' ? 'mini' : 'default'
  76. this.setData(changedData)
  77. }
  78. }(types[i]))
  79. }
  80. Page(pageObject)