crud-detail.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. const app = getApp()
  2. Page({
  3. onShareAppMessage() {
  4. return {
  5. title: '基本操作',
  6. path: 'packageCloud/pages/crud/crud'
  7. }
  8. },
  9. data: {
  10. theme: 'light',
  11. openid: '',
  12. todoId: '',
  13. description: '',
  14. done: false,
  15. updating: false,
  16. deleting: false
  17. },
  18. onLoad(options) {
  19. const {todoId} = options
  20. this.setData({
  21. todoId
  22. })
  23. if (app.globalData.openid) {
  24. this.setData({
  25. openid: app.globalData.openid
  26. })
  27. this.queryTodo()
  28. } else {
  29. wx.showLoading({
  30. title: '正在初始化...'
  31. })
  32. app.getUserOpenIdViaCloud()
  33. .then(openid => {
  34. this.setData({
  35. openid
  36. })
  37. wx.hideLoading()
  38. this.queryTodo()
  39. return openid
  40. }).catch(err => {
  41. console.error(err)
  42. wx.hideLoading()
  43. })
  44. }
  45. },
  46. queryTodo() {
  47. wx.showLoading({
  48. title: '正在查询...'
  49. })
  50. const db = wx.cloud.database()
  51. db.collection('todos').doc(this.data.todoId).get({
  52. success: res => {
  53. this.setData({
  54. description: res.data.description,
  55. done: res.data.done
  56. })
  57. console.log('[数据库] [查询记录] 成功: ', res)
  58. },
  59. fail: err => {
  60. wx.showToast({
  61. icon: 'none',
  62. title: '查询记录失败'
  63. })
  64. console.error('[数据库] [查询记录] 失败:', err)
  65. },
  66. complete: () => {
  67. wx.hideLoading()
  68. }
  69. })
  70. },
  71. updateTodo() {
  72. if (this.data.updating || !this.data.todoId) {
  73. return
  74. }
  75. const {todoId, description} = this.data
  76. if (!description) {
  77. return
  78. }
  79. this.setData({updating: true})
  80. const db = wx.cloud.database()
  81. db.collection('todos').doc(todoId).update({
  82. data: {
  83. description
  84. },
  85. success: () => {
  86. console.log('he')
  87. wx.showToast({
  88. title: '更新成功',
  89. })
  90. wx.navigateBack()
  91. },
  92. fail: err => {
  93. wx.showToast({
  94. icon: 'none',
  95. title: '更新失败',
  96. })
  97. console.error('[数据库] [更新记录] 失败:', err)
  98. },
  99. complete: () => {
  100. this.setData({updating: false})
  101. }
  102. })
  103. },
  104. removeTodo() {
  105. if (this.data.deleting || !this.data.todoId) {
  106. return
  107. }
  108. const {todoId} = this.data
  109. this.setData({deleting: true})
  110. const db = wx.cloud.database()
  111. db.collection('todos').doc(todoId).remove({
  112. success: () => {
  113. wx.showToast({
  114. title: '删除成功',
  115. })
  116. wx.navigateBack()
  117. },
  118. fail: err => {
  119. wx.showToast({
  120. icon: 'none',
  121. title: '删除失败',
  122. })
  123. console.error('[数据库] [删除记录] 失败:', err)
  124. },
  125. complete: () => {
  126. this.setData({deleting: false})
  127. }
  128. })
  129. },
  130. onInputContent(e) {
  131. this.setData({
  132. description: e.detail.value
  133. })
  134. }
  135. })