import config from '../../config'
import {
    getToken
} from '../../utils/auth'
import {
    findProjectInfo,
    findProjectDepts,
    findProSubDeptsUserByParams
} from '../../api/project'
import {
    findSubDeptsUsers,
    findDaysAttendanceView,
    findUsersAttendanceView,
    findSubDeptsAttendanceView
} from '../../api/attendance'
import {
    findMyTask
} from '../../api/flowable'
const app = getApp();
Page({
    /**
     * 页面的初始数据
     */
    data: {
        title: "项目详情",
        activeNames: ["base"],
        //项目信息
        projectInfo: {},
        projectDeptsList: [],
        deptTypes: [{
            "name": "建设单位",
            "iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/jsdw.png"
        }, {
            "name": "监理单位",
            "iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/jldw.png"
        }, {
            "name": "设计单位",
            "iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/sjdw.png"
        }, {
            "name": "检测单位",
            "iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/jcjg.png"
        }, {
            "name": "勘察单位",
            "iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/fbdw.png"
        }, {
            "name": "总包单位",
            "iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/zbdw.png"
        }],
        active: 0,
        projectId: '',
        projectName: '',
        initData: {},
        todoDb: 0,
        approveDb: 0,
        aq: 0,
        nactive: 0,
        labourData: [{
                name: "管理人员",
                total: 0,
                unit: "人",
                yesMonitor: 180
            },
            {
                name: "劳务人员",
                yesMonitor: 0,
                total: 0,
                unit: "人"
            },
            {
                name: "特殊工种",
                yesMonitor: 0,
                total: 0,
                unit: "人"
            },
        ],
        labourDataList: [],
        labourDays: [{
                name: "管理人员",
                total: 0,
                unit: "人",
                yesMonitor: 180
            },
            {
                name: "劳务人员",
                yesMonitor: 0,
                total: 0,
                unit: "人"
            },
            {
                name: "特殊工种",
                yesMonitor: 0,
                total: 0,
                unit: "人"
            },
        ],
        labourDaysTotal: 0,
        labourImg: "https://szgcwx.jhncidg.com/staticFiles/icon/zgry.png",
        labourName: "在岗人员",
        labourTotal: 0,
        labourTypeList: [{
            name: "在岗人员",
            total: 0,
            img: "https://szgcwx.jhncidg.com/staticFiles/icon/zgry.png"
        }, {
            name: "离岗人员",
            total: 0,
            img: "https://szgcwx.jhncidg.com/staticFiles/icon/rylg.png"
        }],
        animation: true,
        animationData: {},
        labourDatas: {
            unit: '人',
            legend: ['出勤人数', '当前在岗'],
            color: ['#2e6ed0', '#fb9300'],
            Xdata: ['01-01', '01-02', '01-03', '01-04', '01-05', '01-06', '01-07'],
            Ydata: [
                [0, 0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0, 0]
            ]
        },
        switchChart: false,
        attendanceListData: [],
        subDeptUserInfo: {},
        imgBaseUrl: config.baseImgUrl
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        this.setData({
            labourImg: this.data.labourTypeList[this.data.nactive].img,
        });
        this.initAnimationData();
        if (getToken()) {
            this.setData({
                userData: app.globalData.userData,
                projectId: app.globalData.useProjectId,
                projectName: app.globalData.useProjectName,
                initData: {
                    id: app.globalData.useProjectId,
                    text: app.globalData.useProjectName,
                }
            });
            //项目基本信息
            this.getProjectInfo(app.globalData.useProjectId);
            //项目单位信息
            //this.getProjectDepts(app.globalData.useProjectId);
            //劳务人员信息
            if (app.globalData.userData.userType != '77') {
                //统计劳务人员信息
                this.getSubDeptsUsers(app.globalData.useProjectId);
                this.initSubDeptDaysCharts(app.globalData.useProjectId);
                this.awaitTask();
            }
            //今日出勤信息
            if (app.globalData.userData.userType != '80' && app.globalData.userData.userType != '79' && app.globalData.userData.userType != '78' && app.globalData.userData.userType != '77') {
                this.getSubDeptsAttendanceView(app.globalData.useProjectId);
            }
            //人员出勤信息
            if (app.globalData.userData.userType == '77') {
                //统计劳务人员信息
                this.getUsersAttendanceView(app.globalData.useProjectId);
            }
            //初始化二维码
            if (app.globalData.userData.userType == '80' || app.globalData.userData.userType == '79' || app.globalData.userData.userType == '78') {
                this.getProSubDeptsUserInfo(app.globalData.useProjectId);
            }
        } else {
            console.log("未查询到Token...{}...准备重新登录")
            wx.redirectTo({
                url: '../login/login',
            })
        }
    },

    /**
     * 统计劳务人员信息
     * @param {*} proId 
     */
    getSubDeptsUsers(proId) {
        findSubDeptsUsers(proId).then(res => {
            if (res.code == 200) {
                let zg = 0;
                let lg = 0;
                res.data.forEach(item => {
                    if (item.useStatus == '1') {
                        zg += item.total;
                    } else {
                        lg += item.total;
                    }
                });
                this.setData({
                    "labourTypeList[0].total": zg,
                    "labourTypeList[1].total": lg,
                    labourTotal: zg,
                    labourDataList: res.data || []
                })
                this.initSubDeptUsersCharts();
            }
        });
    },

    /**
     * 初始化动画
     */
    initAnimationData() {
        var animation = wx.createAnimation({
            duration: 1000,
            timingFunction: 'linear',
        })
        this.animation = animation;
        if (this.data.animation) {
            animation.translateY(-8).step();
        } else {
            animation.translateY(8).step();
        }
        this.setData({
            animation: this.data.animation ? false : true,
            animationData: animation.export()
        })
        setTimeout(() => {
            this.initAnimationData();
        }, 1200)
    },

    /**
     * 初始化统计图表
     */
    initSubDeptUsersCharts() {
        let labourDataList = this.data.labourDataList;
        if (labourDataList.length > 0) {
            let gl = 0;
            let ts = 0;
            let lw = 0;
            labourDataList.forEach(item => {
                if (this.data.nactive == 0) {
                    if (item.useStatus == '1') {
                        if (item.craftType == '2') {
                            ts += item.total;
                        } else if (item.craftType == '3') {
                            gl += item.total;
                        } else {
                            lw += item.total;
                        }
                    }
                } else {
                    if (item.useStatus != '1') {
                        if (item.craftType == '2') {
                            ts += item.total;
                        } else if (item.craftType == '3') {
                            gl += item.total;
                        } else {
                            lw += item.total;
                        }
                    }
                }
            });
            this.setData({
                "labourData[0].total": gl,
                "labourData[0].yesMonitor": gl,
                "labourData[1].total": ts,
                "labourData[1].yesMonitor": ts,
                "labourData[2].total": lw,
                "labourData[2].yesMonitor": lw,
                labourTotal: this.data.labourTypeList[this.data.nactive].total
            })
            if (this.data.switchChart) {
                let chats = this.selectComponent("#userChart");
                chats.initChart();
            }
        }
    },

    /**
     * 初始化
     * 今日考勤
     * @param {*} proId 
     */
    initSubDeptDaysCharts(proId) {
        findDaysAttendanceView(proId).then(res => {
            if (res.code == 200) {
                let gl = 0;
                let ts = 0;
                let lw = 0;
                res.data.forEach(item => {
                    if (item.craftType == '2') {
                        ts += item.total;
                    } else if (item.craftType == '3') {
                        gl += item.total;
                    } else {
                        lw += item.total;
                    }
                });
                this.setData({
                    "labourDays[0].total": gl,
                    "labourDays[0].yesMonitor": gl,
                    "labourDays[1].total": ts,
                    "labourDays[1].yesMonitor": ts,
                    "labourDays[2].total": lw,
                    "labourDays[2].yesMonitor": lw,
                    labourDaysTotal: gl + ts + lw
                })
                if (this.data.switchChart) {
                    let chats = this.selectComponent("#attsChart");
                    chats.initChart();
                }
            }
        });
    },

    /**
     * 统计
     * 最近出勤信息
     * @param {*} proId 
     */
    getSubDeptsAttendanceView(proId) {
        findSubDeptsAttendanceView(proId).then(res => {
            if (res.code == 200) {
                let xd = [];
                let yd1 = [];
                let yd2 = [];
                res.data.list.forEach(item => {
                    xd.push(item.attendanceTime);
                    yd1.push(item.total);
                });
                if (xd.length < 7) {
                    let n = 7 - xd.length;
                    for (let i = 0; i < n; i++) {
                        xd.push('-');
                        yd1.push(0);
                    }
                }
                for (let y = 0; y < 7; y++) {
                    yd2.push(res.data.user);
                }
                let yd = [];
                yd.push(yd1);
                yd.push(yd2);
                this.setData({
                    "labourDatas.Xdata": xd,
                    "labourDatas.Ydata": yd
                });
                if (this.data.switchChart) {
                    let chats = this.selectComponent("#chartBar");
                    chats.initChart();
                }
            }
        });
    },

    /**
     * 查询用户考勤
     * @param {*} proId 
     */
    getUsersAttendanceView(proId) {
        findUsersAttendanceView(proId).then(res => {
            if (res.code == 200) {
                this.setData({
                    attendanceListData: res.data
                });
            }
        })
    },

    /**
     * 查询单位人员信息
     * @param {*} proId 
     */
    getProSubDeptsUserInfo(proId) {
        findProSubDeptsUserByParams(proId).then(res => {
            app.globalData.subDeptUserData = res.data;
            this.setData({
                subDeptUserInfo: res.data
            });
        });
    },

    /**
     * 查询公众号消息授权
     */
    reUserOpenMsgId() {
        let userInfos = this.selectComponent("#userInfos");
        userInfos.loadUserInfo();
    },

    // 底部导航
    onChange(event) {
        // event.detail 的值为当前选中项的索引
        this.setData({
            active: event.detail
        });
    },

    /**
     * 初始化曲线图表
     */
    initLabourDatas() {
        findGroupAllByDays({
            projectId: app.globalData.projectId
        }).then(res => {
            if (res.code == 200) {
                let xd = [];
                let yd1 = [];
                let yd2 = [];
                res.data.list.forEach(item => {
                    xd.push(item.attendanceTime);
                    yd1.push(item.total);
                });
                if (xd.length < 7) {
                    let n = 7 - xd.length;
                    for (let i = 0; i < n; i++) {
                        xd.push('');
                        yd1.push(0);
                    }
                }
                for (let y = 0; y < 7; y++) {
                    yd2.push(res.data.user);
                }
                let yd = [];
                yd.push(yd1);
                yd.push(yd2);
                this.setData({
                    "labourDatas.Xdata": xd,
                    "labourDatas.Ydata": yd
                });
                if (this.data.switchChart) {
                    let chats = this.selectComponent("#chartBar");
                    chats.initChart();
                }
            }
        });
    },

    /**
     * 查询项目详情
     * @param {*} proId 
     */
    getProjectInfo: function (proId) {
        findProjectInfo(proId).then(res => {
            if (res.data.scheduledStartTime) {
                res.data.scheduledStartTime = res.data.scheduledStartTime.split("T")[0];
            } else {
                res.data.scheduledStartTime = " - ";
            }
            if (res.data.actualOperatingTime) {
                res.data.actualOperatingTime = res.data.actualOperatingTime.split("T")[0];
            } else {
                res.data.actualOperatingTime = " - ";
            }
            if (res.data.plannedCompletionTime) {
                res.data.plannedCompletionTime = res.data.plannedCompletionTime.split("T")[0];
            } else {
                res.data.plannedCompletionTime = " - ";
            }
            res.data.projectDeptsList.forEach(item => {
                this.data.deptTypes.forEach(_it => {
                    if (_it.name == item.deptType) {
                        item.iconSrc = _it.iconSrc;
                    }
                })
            });
            this.setData({
                projectInfo: res.data,
                projectDeptsList: res.data.projectDeptsList
            })
        });
    },

    /**
     * 查询
     * 项目参建单位
     * @param {*} proId 
     */
    getProjectDepts: function (proId) {
        findProjectDepts(proId).then(res => {
            that.setData({
                projectDeptsList: res.data
            })
        });
    },

    // 页签选中事件
    selectedTab(e) {
        this.setData({
            nactive: e.target.dataset.set,
            labourImg: this.data.labourTypeList[e.target.dataset.set].img,
        })
        this.initSubDeptUsersCharts();
    },

    //项目切换 返回值
    onProjectSelect(e) {
        let projectId = e.detail.id;
        let projectName = e.detail.text;
        app.globalData.useProjectId = projectId;
        app.globalData.useProjectName = projectName;
        this.setData({
            switchChart: true
        })
        this.onLoad();
    },

    // 手风琴
    onCollChange(event) {
        this.setData({
            activeNames: event.detail,
        });
    },

    /**
     * 拨打电话
     * @param {*} event 
     */
    calling: function (event) {
        let callPhone = event.currentTarget.dataset.phone;
        wx.makePhoneCall({
            phoneNumber: callPhone,
            success: function () {
                console.log("拨打电话成功!")
            },
            fail: function () {
                console.log("拨打电话失败!")
            }
        })
    },

    /**
     * 劳务管理查看详细
     */
    goLWGL: function () {
        if (this.data.nactive == 2) {
            wx.redirectTo({
                url: '../../pageage/project_attendance/project_attendanceData/list/index'
            })
        } else {
            let type;
            if (this.data.nactive == 0) {
                type = 1;
            } else {
                type = 2;
            }
            wx.redirectTo({
                url: '../../pageage/project_attendance/project_attendanceUser/list/index?type=' + type
            })
        }
    },

    /**
     * 最近出勤
     */
    goZJCQ: function () {
        wx.redirectTo({
            url: '../../pageage/project_attendance/project_attendanceData/list/index'
        })
    },

    //跳转到安全管控
    XMSP: function () {
        app.toast("正在建设中");
        // wx.redirectTo({
        //     url: '../safety_manage/index'
        // })
    },

    //跳转到质量管理
    ZLGL: function () {
        app.toast("正在建设中");
        // wx.redirectTo({
        //     url: '../quality_manage/index'
        // })
    },

    //跳转到进度管理
    JDGL2: function () {
        app.toast("正在建设中");
        // wx.redirectTo({
        //     url: '../../pageage/project_schedule/list/index'
        // })
    },

    //跳转到更多功能
    GDGN: function () {
        wx.redirectTo({
            url: '../project_more/index'
        })
    },

    //跳转到项目列表
    XMLB: function () {
        wx.redirectTo({
            url: '../project_list/index'
        })
    },

    /**
     * 统计代办
     */
    awaitTask() {
        let param = "proId=" + app.globalData.useProjectId;
        findMyTask(param).then(res => {
            if(res.code==200){
                this.setData({
                    todoDb: res.data.todo
                })
            }
        });
    },
})