crud-detail.js 2.9 KB

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