activityPublish.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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. value = util.msgToDb(value)
  140. return wx.cloud.callFunction({
  141. name: 'createMessage',
  142. data: value
  143. })
  144. }).then(res => {
  145. wx.hideLoading()
  146. if (res.result.status !== 'OK') {
  147. wx.showToast({
  148. title: res.result.errMsg,
  149. icon: 'none'
  150. })
  151. return
  152. }
  153. this.setData({
  154. currentTab: 4
  155. })
  156. })
  157. },
  158. returnToPublisher: function (e) {
  159. wx.navigateBack()
  160. },
  161. /**
  162. * 生命周期函数--监听页面加载
  163. */
  164. onLoad: function (options) {
  165. this.setData({
  166. publisherId: options.id
  167. })
  168. if (options.msg_id) {
  169. this.setData({
  170. messageId: options.msg_id,
  171. currentTab: -1
  172. })
  173. wx.showLoading({
  174. title: '加载中'
  175. })
  176. wx.cloud.callFunction({
  177. name: 'getMessage',
  178. data: {
  179. msg_id: this.data.messageId
  180. }
  181. }).then(res => {
  182. wx.hideLoading()
  183. if (res.result.status !== 'OK') {
  184. wx.showToast({
  185. title: res.result.errMsg,
  186. icon: 'none'
  187. })
  188. return
  189. }
  190. res.result.data = util.dbToMsg(res.result.data)
  191. const type = res.result.data.type[0].substr(res.result.data.type[0].length - 2)
  192. for (let i = 0; i < this.data.types1.length; i++) {
  193. this.data.types1[i].checked = res.result.data.type.indexOf(this.data.types1[i].value) !== -1
  194. }
  195. for (let i = 0; i < this.data.types2.length; i++) {
  196. this.data.types2[i].checked = res.result.data.tag.indexOf(this.data.types2[i].value) !== -1
  197. }
  198. for (let i = 0; i < this.data.types3.length; i++) {
  199. this.data.types3[i].checked = res.result.data.type.indexOf(this.data.types3[i].value) !== -1
  200. }
  201. this.setData({
  202. types1: this.data.types1,
  203. types2: this.data.types2,
  204. types3: this.data.types3,
  205. currentTab: type === '通知' ? 3 : type === '纳新' ? 2 : 1,
  206. activityInfo: res.result.data
  207. })
  208. })
  209. }
  210. wx.getSystemInfo({
  211. success: function (res) {
  212. this.setData({
  213. winWidth: res.windowWidth
  214. })
  215. this.setData({
  216. winHeight: res.windowHeight
  217. })
  218. }.bind(this),
  219. })
  220. }
  221. })