add.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. // pages/room/add.js
  2. const api = require('../../config/api.js');
  3. const util = require('../../utils/util.js');
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. sceneList: [],
  10. hostList: [],
  11. currentUser: {},
  12. dateMinute: '',
  13. assistantList: [],
  14. detail: {
  15. name: '',
  16. scene: "", //直播label
  17. brandId: '', //直播场景ID
  18. anchorUserId: '', //主持人ID
  19. assistantUserId: '', //助理用户iD
  20. assistant: "", // 助理label
  21. effectiveStartTime: '',
  22. effectiveEndTime: '',
  23. },
  24. fetcherData: {
  25. type: 32,
  26. address: "",
  27. page: 1,
  28. size: 20,
  29. name: "",
  30. }
  31. },
  32. /**
  33. * 生命周期函数--监听页面加载
  34. */
  35. onLoad(options) {
  36. this.getSceneList()
  37. },
  38. /**
  39. * 生命周期函数--监听页面初次渲染完成
  40. */
  41. onReady() {
  42. },
  43. /**
  44. * 生命周期函数--监听页面显示
  45. */
  46. async onShow() {
  47. this.getAssistantsList();
  48. this.getSceneList();
  49. let user = await wx.getStorageSync('userinfoDetail')
  50. this.setData({
  51. currentUser: user,
  52. "detail.anchorUserId": user.userId
  53. })
  54. // debugger
  55. },
  56. /**
  57. * 生命周期函数--监听页面隐藏
  58. */
  59. onHide() {
  60. },
  61. /**
  62. * 生命周期函数--监听页面卸载
  63. */
  64. onUnload() {
  65. },
  66. /**
  67. * 页面相关事件处理函数--监听用户下拉动作
  68. */
  69. onPullDownRefresh() {
  70. },
  71. /**
  72. * 页面上拉触底事件的处理函数
  73. */
  74. onReachBottom() {
  75. },
  76. /**
  77. * 用户点击右上角分享
  78. */
  79. onShareAppMessage() {
  80. },
  81. async getAssistantsList() {
  82. try {
  83. const res = await util.request(api.getAssistants, this.data.fetcherData, 'POST', 'application/json')
  84. console.log('getAssistantsList', res.data);
  85. if (res.code === 200) {
  86. if (Array.isArray(res.data)) {
  87. Array.from(res.data).forEach(assistant => {
  88. assistant.name = assistant.username
  89. assistant.id = assistant.userId
  90. })
  91. this.setData({
  92. assistantList: res.data
  93. })
  94. }
  95. }
  96. } catch (error) {
  97. console.log('getAssistantsList::error', error)
  98. }
  99. },
  100. async getSceneList() {
  101. try {
  102. const res = await util.request(api.BrandList, this.data.fetcherData, 'POST')
  103. console.log('getSceneList', res.data.data);
  104. if (res.code === 200) {
  105. this.setData({
  106. sceneList: res.data.data
  107. })
  108. }
  109. } catch (error) {
  110. console.log('getSceneList::error', error)
  111. }
  112. },
  113. pickerChange: function (e) {
  114. const abj = {
  115. 'scene': this.data.sceneList,
  116. 'host': this.data.hostList,
  117. 'assistant': this.data.assistantList,
  118. }
  119. const {
  120. type,
  121. name
  122. } = e.currentTarget.dataset
  123. let item = abj[name][e.detail.value];
  124. let detail = this.data.detail;
  125. detail[type] = e.detail.value;
  126. detail[name] = item.name;
  127. this.setData({
  128. [name]: item.id,
  129. detail,
  130. }, () => {
  131. console.log('picker值为', type, name, detail, item, )
  132. })
  133. },
  134. handleRoomName: function (e) {
  135. this.setData({
  136. 'detail.name': e.detail.value
  137. })
  138. },
  139. sceneChange: function (e) {
  140. const index = e.detail.value
  141. if (index > -1) {
  142. const select = this.data.sceneList[index]
  143. console.log('picker值为', select)
  144. this.setData({
  145. 'detail.scene': select.name,
  146. "detail.brandId": select.id
  147. })
  148. }
  149. },
  150. assistantChange: function (e) {
  151. const index = e.detail.value
  152. if (index > -1) {
  153. const select = this.data.assistantList[index]
  154. console.log('picker值为', select)
  155. this.setData({
  156. 'detail.assistant': select.username,
  157. "detail.assistantUserId": select.userId
  158. })
  159. }
  160. },
  161. /**
  162. * 年月日时分选择类型的回调函数,可以在该函数得到选择的时间
  163. */
  164. selectDateMinuteChange(ev) {
  165. const {
  166. type
  167. } = ev.currentTarget.dataset
  168. let detail = this.data.detail
  169. detail[type] = ev.detail.value
  170. //判断大小
  171. console.log(detail)
  172. if (detail.effectiveEndTime && detail.effectiveStartTime) {
  173. let value = new Date(detail.effectiveEndTime) - new Date(detail.effectiveStartTime);
  174. console.log(value, detail.effectiveEndTime, detail.effectiveStartTime)
  175. if (value < 0) {
  176. return wx.showToast({
  177. title: '结束时间大于开始时间',
  178. icon: 'error',
  179. duration: 1000
  180. })
  181. }
  182. }
  183. this.setData({
  184. detail
  185. })
  186. },
  187. bindMultiPickerChange: function (e) {
  188. console.log('picker发送选择改变,携带值为', e.detail.value)
  189. this.setData({
  190. multiIndex: e.detail.value
  191. })
  192. },
  193. sbmit: async function () {
  194. const {
  195. name,
  196. id,
  197. brandId,
  198. anchorUserId,
  199. effectiveStartTime,
  200. effectiveEndTime,
  201. assistantUserId
  202. } = this.data.detail
  203. let err = ''
  204. if (!brandId) {
  205. err = '请选择直播场景'
  206. } else if (!anchorUserId) {
  207. err = '请选择主持人'
  208. } else if (!anchorUserId) {
  209. err = '请选择主持人'
  210. } else if (!effectiveStartTime) {
  211. err = '请选择开始时间'
  212. } else if (!effectiveEndTime) {
  213. err = '请选择结束时间'
  214. } else if (!assistantUserId) {
  215. err = '请选择助理'
  216. }
  217. if (err) {
  218. return wx.showToast({
  219. title: err,
  220. icon: 'error',
  221. duration: 1000
  222. })
  223. }
  224. let res = await util.request(api.createOrUpdate, {
  225. name,
  226. brandId, //直播场景ID
  227. anchorUserId, //主持人ID
  228. assistantUserId, //助理用户iD
  229. effectiveStartTime: new Date(effectiveStartTime).getTime() ,
  230. effectiveEndTime: new Date(effectiveEndTime).getTime() ,
  231. }, "POST", 'application/json')
  232. // debugger
  233. if (res.code == 200) {
  234. wx.showToast({
  235. title: '创建成功!!',
  236. icon: "success"
  237. })
  238. // wx.navigateBack({
  239. // delta: 0,
  240. // })
  241. wx.navigateTo({
  242. url: '/pages/roomManger/roomManger',
  243. })
  244. } else {
  245. wx.showToast({
  246. title: res.error || '创建失败!!',
  247. icon: "error"
  248. })
  249. }
  250. }
  251. })