activityPublish.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. const util = require('../../utils/util.js')
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. publisherId: '',
  8. messageId: '',
  9. activityInfo: {},
  10. currentTab: 0,
  11. winWidth: 0,
  12. winHeight: 0,
  13. types1: [{
  14. value: '志愿活动',
  15. checked: false
  16. }, {
  17. value: '文艺活动',
  18. checked: false
  19. }, {
  20. value: '体育活动',
  21. checked: false
  22. }, {
  23. value: '学术活动',
  24. checked: false
  25. }, {
  26. value: '素质拓展',
  27. checked: false
  28. }, {
  29. value: '精品课程',
  30. checked: false
  31. }, {
  32. value: '其他活动',
  33. checked: false
  34. }],
  35. types2: [{
  36. value: '二课分',
  37. checked: false
  38. }, {
  39. value: '三课分',
  40. checked: false
  41. }, {
  42. value: '四课分',
  43. checked: false
  44. }, {
  45. value: '勤工助学',
  46. checked: false
  47. }, {
  48. value: '志愿者小时数',
  49. checked: false
  50. }, {
  51. value: '综素',
  52. checked: false
  53. }],
  54. types3: [{
  55. value: '水电通知',
  56. checked: false
  57. }, {
  58. value: '缴费通知',
  59. checked: false
  60. }, {
  61. value: '假期通知',
  62. checked: false
  63. }, {
  64. value: '后勤通知',
  65. checked: false
  66. }, {
  67. value: '图书馆通知',
  68. checked: false
  69. }, {
  70. value: '选课通知',
  71. checked: false
  72. }, {
  73. value: '竞赛通知',
  74. checked: false
  75. }, {
  76. value: '考试通知',
  77. checked: false
  78. }, {
  79. value: '其他通知',
  80. checked: false
  81. }]
  82. },
  83. switch1: function (e) {
  84. this.setData({
  85. currentTab: 1
  86. })
  87. },
  88. switch2: function (e) {
  89. this.setData({
  90. currentTab: 2
  91. })
  92. },
  93. switch3: function (e) {
  94. this.setData({
  95. currentTab: 3
  96. })
  97. },
  98. switch4: function (e) {
  99. const value = e.detail.value
  100. if (this.data.currentTab === 2) {
  101. value.type = ['纳新']
  102. }
  103. if (value.name === '' || value.type.length === 0 || this.data.detail === '') {
  104. wx.showToast({
  105. title: '请确认信息填写完整',
  106. icon: 'none'
  107. })
  108. return
  109. }
  110. wx.showLoading({
  111. title: '上传图片'
  112. })
  113. const arr = []
  114. if (value.poster.length !== 0) {
  115. arr.push(wx.cloud.uploadFile({
  116. cloudPath: `messagePoster/${util.randomString(16)}.jpg`,
  117. filePath: value.poster[0]
  118. }))
  119. }
  120. for (let i = 0; i < value.photo.length; i++) {
  121. arr.push(wx.cloud.uploadFile({
  122. cloudPath: `messagePhoto/${util.randomString(16)}.jpg`,
  123. filePath: value.photo[i]
  124. }))
  125. }
  126. Promise.all(arr).then(res => {
  127. wx.hideLoading()
  128. wx.showLoading({
  129. title: '正在发布'
  130. })
  131. value.pub_id = this.data.publisherId
  132. if (value.poster.length !== 0) {
  133. value.poster[0] = res[0].fileID
  134. res.splice(0, 1)
  135. }
  136. for (let i = 0; i < value.photo.length; i++) {
  137. value.photo[i] = res[i].fileID
  138. }
  139. return wx.cloud.callFunction({
  140. name: 'createMessage',
  141. data: util.msgToDb(value)
  142. })
  143. }).then(res => {
  144. wx.hideLoading()
  145. if (res.result.status !== 'OK') {
  146. wx.showToast({
  147. title: res.result.errMsg,
  148. icon: 'none'
  149. })
  150. return
  151. }
  152. this.setData({
  153. currentTab: 4
  154. })
  155. })
  156. },
  157. returnToPublisher: function (e) {
  158. wx.navigateBack()
  159. },
  160. /**
  161. * 生命周期函数--监听页面加载
  162. */
  163. onLoad: function (options) {
  164. this.setData({
  165. publisherId: options.id
  166. })
  167. if (options.msg_id) {
  168. this.setData({
  169. messageId: options.msg_id,
  170. currentTab: -1
  171. })
  172. wx.showLoading({
  173. title: '加载中'
  174. })
  175. wx.cloud.callFunction({
  176. name: 'getMessage',
  177. data: {
  178. msg_id: this.data.messageId
  179. }
  180. }).then(res => {
  181. wx.hideLoading()
  182. if (res.result.status !== 'OK') {
  183. wx.showToast({
  184. title: res.result.errMsg,
  185. icon: 'none'
  186. })
  187. return
  188. }
  189. res.result.data = util.dbToMsg(res.result.data)
  190. const type = res.result.data.type[0].substr(res.result.data.type[0].length - 2)
  191. for (let i = 0; i < this.data.types1.length; i++) {
  192. this.data.types1[i].checked = res.result.data.type.indexOf(this.data.types1[i].value) !== -1
  193. }
  194. for (let i = 0; i < this.data.types2.length; i++) {
  195. this.data.types2[i].checked = res.result.data.tag.indexOf(this.data.types2[i].value) !== -1
  196. }
  197. for (let i = 0; i < this.data.types3.length; i++) {
  198. this.data.types3[i].checked = res.result.data.type.indexOf(this.data.types3[i].value) !== -1
  199. }
  200. this.setData({
  201. types1: this.data.types1,
  202. types2: this.data.types2,
  203. types3: this.data.types3,
  204. currentTab: type === '通知' ? 3 : type === '纳新' ? 2 : 1,
  205. activityInfo: res.result.data
  206. })
  207. })
  208. }
  209. wx.getSystemInfo({
  210. success: function (res) {
  211. this.setData({
  212. winWidth: res.windowWidth
  213. })
  214. this.setData({
  215. winHeight: res.windowHeight
  216. })
  217. }.bind(this),
  218. })
  219. }
  220. })