index.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. // pages/login/login.js
  2. import WxValidate from '../../utils/wxValidate'
  3. const app = getApp()
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. // 主体高度
  10. infoHeight: '',
  11. frameStyle: { useTop: true, name: '创建团队', leftArrow: true, useBar: false },
  12. form: {},
  13. // 团队logo
  14. logo: [],
  15. // 团队类型
  16. typeList: ['乒乓球', '足球', '篮球'],
  17. //成员
  18. members: [],
  19. show: false,
  20. // 用户列表
  21. userList: [],
  22. },
  23. //验证必填项
  24. initValidate() {
  25. const rules = { name: { required: true }, type: { required: true }, create_user: { required: true }, }
  26. // 验证字段的提示信息,若不传则调用默认的信息
  27. const messages = { name: { required: '请输入团队名称' }, type: { required: '请输入团队类型' }, create_user: { required: '请输入团队创建人名称' }, };
  28. this.WxValidate = new WxValidate(rules, messages)
  29. },
  30. back: function () {
  31. wx.navigateBack({ url: '/pages/me/index' })
  32. },
  33. //上传图片
  34. imgUpload: function (e) {
  35. const that = this;
  36. let data = that.data.logo;
  37. data.push(e.detail)
  38. that.setData({ logo: data })
  39. },
  40. //删除图片
  41. imgDel: function (e) {
  42. const that = this;
  43. let data = that.data.logo;
  44. let arr = data.filter((i, index) => index != e.detail.index)
  45. that.setData({ logo: arr })
  46. },
  47. // 选择团队类型
  48. typeChange: function (e) {
  49. const that = this;
  50. let index = e.detail.value;
  51. let data = that.data.typeList[index];
  52. that.setData({ 'form.type': data })
  53. },
  54. // 时间选择
  55. dataChange: function (e) {
  56. const that = this;
  57. let value = e.detail.value;
  58. that.setData({ 'form.create_time': value })
  59. },
  60. // 添加成员
  61. createMem: function () {
  62. const that = this;
  63. that.setData({ show: true })
  64. },
  65. // 选择成员
  66. memChange: function (e) {
  67. const that = this;
  68. let data = e.detail.value;
  69. let user = that.data.userList;
  70. let members = [];
  71. for (const val of data) {
  72. let arr = user.find((i) => i._id == val);
  73. if (arr) members.push({ id: arr._id, nickname: arr.nickname, icon: arr.icon })
  74. }
  75. that.setData({ members: members })
  76. },
  77. // 确认选择成员
  78. memfirmSubmit: function () {
  79. const that = this;
  80. that.setData({ show: false });
  81. },
  82. // 取消选择成员
  83. memClose: function () {
  84. const that = this;
  85. that.setData({ members: [] });
  86. that.setData({ show: false });
  87. },
  88. //删除成员
  89. memDel: function (e) {
  90. var id = e.currentTarget.dataset.id;
  91. var members = this.data.members;
  92. for (var i = 0; i < members.length; i++) {
  93. if (members[i].id == id) {
  94. members.splice(i, 1)
  95. }
  96. }
  97. this.setData({ members: members })
  98. },
  99. //提交
  100. formSubmit: function (e) {
  101. const that = this;
  102. const value = e.detail.value;
  103. if (!this.WxValidate.checkForm(value)) {
  104. const error = this.WxValidate.errorList[0];
  105. wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
  106. return false
  107. } else {
  108. value.logo = that.data.logo;
  109. value.members = that.data.members;
  110. wx.request({
  111. url: `${app.globalData.publicUrl}/courtAdmin/api/team`,
  112. method: "post",
  113. data: value,
  114. success: res => {
  115. if (res.data.errcode == 0) {
  116. wx.showToast({ title: '创建团队成功', icon: 'success', duration: 2000 })
  117. wx.redirectTo({ url: '/pages/me/index' })// 跳转页面
  118. } else {
  119. wx.showToast({ title: res.data.errmsg, icon: 'error', duration: 2000 })
  120. }
  121. },
  122. error: err => { }
  123. })
  124. }
  125. },
  126. /**
  127. * 生命周期函数--监听页面加载
  128. */
  129. onLoad: function (options) {
  130. //验证规则函数
  131. this.initValidate()
  132. // 计算高度
  133. this.searchHeight()
  134. // 监听用户是否登录
  135. this.watchLogin();
  136. },
  137. // 计算高度
  138. searchHeight: function () {
  139. let frameStyle = this.data.frameStyle;
  140. let client = app.globalData.client;
  141. let infoHeight = client.windowHeight;
  142. // 是否去掉状态栏
  143. if (frameStyle.useTop) infoHeight = infoHeight - (client.statusBarHeight + client.getMenu.height + (client.getMenu.top - client.statusBarHeight) * 2);
  144. // 是否减去底部菜单
  145. if (frameStyle.useBar) infoHeight = infoHeight - 50;
  146. if (infoHeight) this.setData({ infoHeight: infoHeight })
  147. },
  148. // 监听用户是否登录
  149. watchLogin: function () {
  150. const that = this;
  151. wx.getStorage({
  152. key: 'token',
  153. success: res => {
  154. //查询用户列表
  155. wx.request({
  156. url: `${app.globalData.publicUrl}/courtAdmin/api/user`, //接口地址
  157. method: "get",
  158. data: { status: '1' },
  159. header: {},
  160. success: arr => {
  161. let aee = arr.data.data.filter((i) => i.type == '2')
  162. if (aee) {
  163. that.setData({ userList: aee });
  164. // 过滤当前用户
  165. let user = arr.data.data.find((i) => i._id == res.data._id);
  166. if (user) that.setData({ 'form.create_user': user.nickname, 'form.create_id': user._id })
  167. }
  168. },
  169. error: err => {
  170. }
  171. })
  172. },
  173. fail: res => {
  174. wx.redirectTo({ url: '/pages/login/index', })
  175. }
  176. })
  177. },
  178. /**
  179. * 生命周期函数--监听页面初次渲染完成
  180. */
  181. onReady: function () {
  182. },
  183. /**
  184. * 生命周期函数--监听页面显示
  185. */
  186. onShow: function () {
  187. },
  188. /**
  189. * 生命周期函数--监听页面隐藏
  190. */
  191. onHide: function () {
  192. },
  193. /**
  194. * 生命周期函数--监听页面卸载
  195. */
  196. onUnload: function () {
  197. },
  198. /**
  199. * 页面相关事件处理函数--监听用户下拉动作
  200. */
  201. onPullDownRefresh: function () {
  202. },
  203. /**
  204. * 页面上拉触底事件的处理函数
  205. */
  206. onReachBottom: function () {
  207. },
  208. /**
  209. * 用户点击右上角分享
  210. */
  211. onShareAppMessage: function () {
  212. }
  213. })