index.js 7.2 KB

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