index.js 6.9 KB

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