// pages/login/login.js
import WxValidate from '../../utils/wxValidate'
const app = getApp()

Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 主体高度
        infoHeight: '',
        frameStyle: { useTop: true, name: '创建团队', leftArrow: true, useBar: false },
        form: {},
        // 团队logo
        logo: [],
        // 团队类型
        typeList: ['乒乓球', '足球', '篮球'],
        //成员
        members: [],
        show: false,
        // 用户列表
        userList: [],
    },
    //验证必填项
    initValidate() {
        const rules = { name: { required: true }, type: { required: true }, create_user: { required: true }, }
        // 验证字段的提示信息，若不传则调用默认的信息
        const messages = { name: { required: '请输入团队名称' }, type: { required: '请输入团队类型' }, create_user: { required: '请输入团队创建人名称' }, };
        this.WxValidate = new WxValidate(rules, messages)
    },
    back: function () {
        wx.navigateBack({ url: '/pages/me/index' })
    },
    //上传图片
    imgUpload: function (e) {
        const that = this;
        let data = that.data.logo;
        data.push(e.detail)
        that.setData({ logo: data })
    },
    //删除图片
    imgDel: function (e) {
        const that = this;
        let data = that.data.logo;
        let arr = data.filter((i, index) => index != e.detail.index)
        that.setData({ logo: arr })
    },
    // 选择团队类型
    typeChange: function (e) {
        const that = this;
        let index = e.detail.value;
        let data = that.data.typeList[index];
        that.setData({ 'form.type': data })
    },
    // 时间选择
    dataChange: function (e) {
        const that = this;
        let value = e.detail.value;
        that.setData({ 'form.create_time': value })
    },
    // 添加成员
    createMem: function () {
        const that = this;
        that.setData({ show: true })
    },
    // 选择成员
    memChange: function (e) {
        const that = this;
        let data = e.detail.value;
        let user = that.data.userList;
        let members = [];
        for (const val of data) {
            let arr = user.find((i) => i._id == val);
            if (arr) members.push({ id: arr._id, nickname: arr.nickname, icon: arr.icon })
        }
        that.setData({ members: members })
    },
    // 确认选择成员
    memfirmSubmit: function () {
        const that = this;
        that.setData({ show: false });
    },
    // 取消选择成员
    memClose: function () {
        const that = this;
        that.setData({ members: [] });
        that.setData({ show: false });
    },
    //删除成员
    memDel: function (e) {
        var id = e.currentTarget.dataset.id;
        var members = this.data.members;
        for (var i = 0; i < members.length; i++) {
            if (members[i].id == id) {
                members.splice(i, 1)
            }
        }
        this.setData({ members: members })
    },
    //提交
    formSubmit: function (e) {
        const that = this;
        const value = e.detail.value;
        if (!this.WxValidate.checkForm(value)) {
            const error = this.WxValidate.errorList[0];
            wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
            return false
        } else {
            value.logo = that.data.logo;
            value.members = that.data.members;
            wx.request({
                url: `${app.globalData.publicUrl}/courtAdmin/api/team`,
                method: "post",
                data: value,
                success: res => {
                    if (res.data.errcode == 0) {
                        wx.showToast({ title: '创建团队成功', icon: 'success', duration: 2000 })
                        wx.redirectTo({ url: '/pages/me/index' })// 跳转页面
                    } else {
                        wx.showToast({ title: res.data.errmsg, icon: 'error', duration: 2000 })
                    }
                },
                error: err => { }
            })
        }
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        //验证规则函数
        this.initValidate()
        // 计算高度
        this.searchHeight()
        // 监听用户是否登录
        this.watchLogin();
    },
    // 计算高度
    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 })
    },
    // 监听用户是否登录
    watchLogin: function () {
        const that = this;
        wx.getStorage({
            key: 'token',
            success: res => {
                //查询用户列表
                wx.request({
                    url: `${app.globalData.publicUrl}/courtAdmin/api/user`, //接口地址
                    method: "get",
                    data: { status: '1' },
                    header: {},
                    success: arr => {
                        let aee = arr.data.data.filter((i) => i.type == '2')
                        if (aee) {
                            that.setData({ userList: aee });
                            // 过滤当前用户
                            let user = arr.data.data.find((i) => i._id == res.data._id);
                            if (user) that.setData({ 'form.create_user': user.nickname, 'form.create_id': user._id })

                        }
                    },
                    error: err => {
                    }
                })
            },
            fail: res => {
                wx.redirectTo({ url: '/pages/login/index', })
            }
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})