add.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  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. let {mobile} = wx.getStorageSync('userinfoDetail')
  83. try {
  84. const res = await util.request(api.getAssistants, this.data.fetcherData, 'POST', 'application/json')
  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.filter(ele => ele.name !== mobile)
  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.replace(/-/g, "/")) - new Date(detail.effectiveStartTime.replace(/-/g, "/"));
  174. console.log(value, detail.effectiveEndTime, detail.effectiveStartTime)
  175. if (value < 0) {
  176. return wx.showToast({
  177. title: '结束时间大于开始时间',
  178. icon: 'none',
  179. duration: 1000
  180. })
  181. }
  182. if (new Date(detail.effectiveEndTime.replace(/-/g, "/")).getTime()<new Date()) {
  183. return wx.showToast({
  184. title: '结束时间需大于现在',
  185. icon: 'none',
  186. duration: 1000
  187. })
  188. }
  189. }
  190. this.setData({
  191. detail
  192. })
  193. },
  194. bindMultiPickerChange: function (e) {
  195. console.log('picker发送选择改变,携带值为', e.detail.value)
  196. this.setData({
  197. multiIndex: e.detail.value
  198. })
  199. },
  200. sbmit: async function () {
  201. const {
  202. name,
  203. id,
  204. brandId,
  205. anchorUserId,
  206. effectiveStartTime,
  207. effectiveEndTime,
  208. assistantUserId
  209. } = this.data.detail
  210. let err = ''
  211. if (!name) {
  212. err = '请输入房间名称'
  213. } else if (!brandId) {
  214. err = '请选择直播场景'
  215. } else if (!anchorUserId) {
  216. err = '请选择主持人'
  217. } else if (!anchorUserId) {
  218. err = '请选择主持人'
  219. } else if (!effectiveStartTime) {
  220. err = '请选择开始时间'
  221. } else if (!effectiveEndTime) {
  222. err = '请选择结束时间'
  223. }
  224. if (err) {
  225. return wx.showToast({
  226. title: err,
  227. icon: 'none',
  228. duration: 1000
  229. })
  230. }
  231. let res = await util.request(api.createOrUpdate, {
  232. name,
  233. brandId, //直播场景ID
  234. anchorUserId, //主持人ID
  235. assistantUserId, //助理用户iD
  236. effectiveStartTime: new Date(effectiveStartTime.replace(/-/g, "/")).getTime() ,
  237. effectiveEndTime: new Date(effectiveEndTime.replace(/-/g, "/")).getTime() ,
  238. }, "POST", 'application/json')
  239. // debugger
  240. if (res.code == 200) {
  241. wx.showToast({
  242. title: '创建成功!!',
  243. icon: "success"
  244. })
  245. // wx.navigateBack({
  246. // delta: 0,
  247. // })
  248. wx.navigateTo({
  249. url: '/pages/roomManger/roomManger',
  250. })
  251. } else {
  252. wx.showToast({
  253. title: res.error || '创建失败!!',
  254. icon: "none"
  255. })
  256. }
  257. }
  258. })