index.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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. value.logo = that.data.logo;
  104. value.members = that.data.members;
  105. if (!this.WxValidate.checkForm(value)) {
  106. const error = this.WxValidate.errorList[0];
  107. wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
  108. return false
  109. } else {
  110. if (value.logo.length > 0 && value.members.length > 0) {
  111. wx.request({
  112. url: `${app.globalData.publicUrl}/courtAdmin/api/team`,
  113. method: "post",
  114. data: value,
  115. success: res => {
  116. if (res.data.errcode == 0) {
  117. wx.showToast({ title: '创建团队成功', icon: 'success', duration: 2000 })
  118. wx.redirectTo({ url: '/pages/me/index' })
  119. } else {
  120. wx.showToast({ title: res.data.errmsg, icon: 'error', duration: 2000 })
  121. }
  122. },
  123. error: err => { }
  124. })
  125. } else {
  126. wx.showToast({ title: `缺少必填项`, icon: 'error', duration: 2000 })
  127. }
  128. }
  129. },
  130. /**
  131. * 生命周期函数--监听页面加载
  132. */
  133. onLoad: function (options) {
  134. //验证规则函数
  135. this.initValidate()
  136. // 计算高度
  137. this.searchHeight()
  138. // 监听用户是否登录
  139. this.watchLogin();
  140. },
  141. // 计算高度
  142. searchHeight: function () {
  143. let frameStyle = this.data.frameStyle;
  144. let client = app.globalData.client;
  145. let infoHeight = client.windowHeight;
  146. // 是否去掉状态栏
  147. if (frameStyle.useTop) infoHeight = infoHeight - (client.statusBarHeight + client.getMenu.height + (client.getMenu.top - client.statusBarHeight) * 2);
  148. // 是否减去底部菜单
  149. if (frameStyle.useBar) infoHeight = infoHeight - 50;
  150. if (infoHeight) this.setData({ infoHeight: infoHeight })
  151. },
  152. // 监听用户是否登录
  153. watchLogin: function () {
  154. const that = this;
  155. wx.getStorage({
  156. key: 'token',
  157. success: res => {
  158. //查询用户列表
  159. wx.request({
  160. url: `${app.globalData.publicUrl}/courtAdmin/api/user`, //接口地址
  161. method: "get",
  162. data: { status: '1' },
  163. header: {},
  164. success: arr => {
  165. let aee = arr.data.data.filter((i) => i.type == '2')
  166. if (aee) {
  167. that.setData({ userList: aee });
  168. // 过滤当前用户
  169. let user = arr.data.data.find((i) => i._id == res.data._id);
  170. if (user) that.setData({ 'form.create_user': user.nickname, 'form.create_id': user._id })
  171. }
  172. },
  173. error: err => {
  174. }
  175. })
  176. },
  177. fail: res => {
  178. wx.redirectTo({ url: '/pages/login/index', })
  179. }
  180. })
  181. },
  182. /**
  183. * 生命周期函数--监听页面初次渲染完成
  184. */
  185. onReady: function () {
  186. },
  187. /**
  188. * 生命周期函数--监听页面显示
  189. */
  190. onShow: function () {
  191. },
  192. /**
  193. * 生命周期函数--监听页面隐藏
  194. */
  195. onHide: function () {
  196. },
  197. /**
  198. * 生命周期函数--监听页面卸载
  199. */
  200. onUnload: function () {
  201. },
  202. /**
  203. * 页面相关事件处理函数--监听用户下拉动作
  204. */
  205. onPullDownRefresh: function () {
  206. },
  207. /**
  208. * 页面上拉触底事件的处理函数
  209. */
  210. onReachBottom: function () {
  211. },
  212. /**
  213. * 用户点击右上角分享
  214. */
  215. onShareAppMessage: function () {
  216. }
  217. })