// pages/login/login.js import WxValidate from '../../utils/wxValidate' const app = getApp() Page({ /** * 页面的初始数据 */ data: { frameStyle: { useTop: true, name: '编辑赛程信息', leftArrow: true, useBar: false }, // 主体高度 infoHeight: '', // 用户信息 user: {}, // 比赛信息 match_id: '629eb5de78fa03648c0535d9', matchInfo: {}, // 团队列表 teamList: [], // 团队总数 teamTotal: 0, // 表单 form: { red_logo: [], red_members: [], blue_logo: [], blue_members: [] }, // 是否轮空 byeList: ['true', 'false',] }, initValidate() { const rules = { date: { required: true }, time: { required: true }, position: { required: true }, red_position: { required: true }, red_id: { required: true }, blue_position: { required: false }, blue_id: { required: false } } // 验证字段的提示信息,若不传则调用默认的信息 const messages = { date: { required: '比斯日期', }, time: { required: '比赛时间', }, position: { required: '比赛场次轮数', }, red_position: { required: '红方场次编号', }, red_id: { required: '红方团队', }, blue_id: { required: '蓝方团队', }, blue_position: { required: '蓝方场次编号', } }; this.WxValidate = new WxValidate(rules, messages) }, back: function () { wx.navigateBack({ url: '/pages/matchadmin/layoutInfo' }) }, // 选择比赛时间 dateChange: function (e) { const that = this; const { type } = e.currentTarget.dataset; const { value } = e.detail; if (type == 'date') that.setData({ 'form.date': value }) else if (type == 'time') that.setData({ 'form.time': value }); let match_time = that.data.form.date + '-' + that.data.form.time; that.setData({ 'form.match_time': match_time }) }, // 比赛场次轮数 positionBlur: function (e) { const that = this; const { value } = e.detail; that.setData({ 'form.position': value }); that.setData({ 'form.red_position': value + '-' }); that.setData({ 'form.blue_position': value + '-' }); }, // 选择比赛双方 teamChange: function (e) { const that = this; const { type } = e.currentTarget.dataset; const { value } = e.detail; let teamInfo = that.data.teamList[value]; that.setData({ ['form.' + `${type}_id`]: teamInfo.team_id }) that.setData({ ['form.' + `${type}_name`]: teamInfo.team_name }) that.setData({ ['form.' + `${type}_logo`]: teamInfo.logo }) that.setData({ ['form.' + `${type}_members`]: teamInfo.members }) }, // 选择是否轮空 byeChange: function (e) { const that = this; const { value } = e.detail; let data = that.data.byeList[value]; that.setData({ 'form.is_bye': data }) }, // 提交保存 async onSubmit(e) { const that = this; const params = e.detail.value; const data = that.data.form; if (!this.WxValidate.checkForm(params)) { const error = this.WxValidate.errorList[0]; wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 }) return false } else { params.format = data.format; params.red_logo = data.red_logo; params.red_members = data.red_members; params.blue_logo = data.blue_logo; params.blue_members = data.blue_members; const arr = await app.$post(`/courtAdmin/api/schedule`, params) if (arr.errcode == '0') { wx.showToast({ title: `维护信息完成`, icon: 'success', duration: 2000 }); that.back(); } else wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 }) } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { const that = this; const { info_id, id } = options; that.setData({ match_id: id }) that.setData({ info_id: info_id }) //验证规则函数 this.initValidate(); // 计算高度 this.searchHeight(); // 监听用户是否登录 this.watchLogin(); }, // 监听用户是否登录 watchLogin: function () { const that = this; wx.getStorage({ key: 'token', success: async res => { that.setData({ user: res.data }); let arr; // 查询比赛信息 arr = await app.$get(`/courtAdmin/api/match/${that.data.match_id}`); if (arr.errcode == '0') that.setData({ matchInfo: arr.data }); // 查询报名团队 arr = await app.$get(`/courtAdmin/api/matchteam`, { match_id: that.data.match_id }) if (arr.errcode == '0') that.setData({ teamList: arr.data }); that.setData({ teamTotal: arr.total }); // 组织表单数据 let data = { match_id: that.data.matchInfo._id, match_name: that.data.matchInfo.name, format: that.data.matchInfo.format }; that.setData({ form: data }) }, fail: res => { return wx.redirectTo({ url: '/pages/login/index', }) } }) }, // 计算高度 searchHeight: function () { let frameStyle = this.data.frameStyle; let client = app.globalData.client; let infoHeight = client.windowHeight; // 是否去掉状态栏 if (frameStyle.useTop) infoHeight = infoHeight - (client.statusBarHeight + client.getMenu.height + (client.getMenu.top - client.statusBarHeight) * 2); // 是否减去底部菜单 if (frameStyle.useBar) infoHeight = infoHeight - 50; if (infoHeight) this.setData({ infoHeight: infoHeight }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })