// pageage/safetyManagement/addSafetyInspect/index.js
const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        id:"",
        maxDate:new Date(2088,1,1).getTime(),
        currentDate:new Date().getTime(),
        deptId:"",
        projectId:"",
        projectName:"",
        loginName:"",
        rectifierData:[],
        loadShow:false,
        checkTypeList:[],
        checkType:"1",
        materialName:"",
        usePosition:"",
        sampleNum:"",
        qualifiedFlag:"Y",
        witnessUser:"",
        witnessUserName:"",
        checkTime:"",
        laboratoryName:"",
        infoData:{},
        detectionFiles:"",
        fileUrls:"",
        fileUrlArray:[],
        activeName:"",
        flowRecordList:[],
        qualifiedFlagList:[{id:'Y',text:"是"},{id:'N',text:"否"}],
        detectionFileData:[],
        fileType:["pdf","png","jpg","jpeg"],
        request:app.globalData.reqUrl,
        flowNodes:[{text:'开始'},{text:'提交申请'},{text:'检测报告'},{text:'监理审批'},{text:'结束'}],
        active: 1
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        let {id} = options
        //获取缓存数据
        wx.getStorage({
        key: 'userinfo',
        success:res=>{
            this.setData({
            id,    
            projectId:app.globalData.projectId,
            projectName:app.globalData.projectName,
            deptId:res.data.deptId,
            loginName:res.data.loginName,
            }) 
            this.getProjectUserData();
            this.getTypeList();
            this.getInfo();
            this.getAuditinfo();
        }  
        }) 
    },

    //查询项目人员数据
    getProjectUserData(){
        let that = this
        wx.request({
            url: app.globalData.reqUrl+'/wechat/projectuserinfo/selectProjectUnitUser',
            method:"get",
            data:{
                unitType:"4",
                projectId:that.data.projectId
            },
            header:{
              'content-type': 'application/x-www-form-urlencoded'  
            },
            success(res){
                res = res.data
                if(res.code == 200){
                    that.setData({
                        rectifierData:res.data
                    })
                }
            }
        })
    },

    getTypeList(){
        let that = this
        wx.request({
            url: app.globalData.reqUrl+'/wechat/projectDetection/queryType',
            method:"get",
            data:{},
            header:{
              'content-type': 'application/x-www-form-urlencoded'  
            },
            success(res){
                res = res.data
                if(res.code == 200){
                    let list=[];
                    res.data.forEach(it =>{
                        list.push({"id":it.dictValue,"text":it.dictLabel});
                    })
                    that.setData({
                        checkTypeList:list
                    })
                }
            }
        })
    },

    /**
     * 获取安全检查详情信息
     * 
     */
    getInfo(){
        let {id} = this.data
        let that = this
        wx.request({
          url: app.globalData.reqUrl+'/wechat/projectDetection/info',
          method:"get",
          data:{
              id:id          
          },
          success(res){
            res = res.data
            if(res.code == 200){
              let fileUrls = [];
              let fileNames = [];
              let fileUrlArray=[];
              //判断附件
              if(res.data.detectionFile){
                res.data.detectionFile.split(',').forEach(element => {
                  let it = element.split('/');
                  fileNames.push(it[it.length-1]);
                  fileUrls.push(element);
                  fileUrlArray.push({name:it[it.length-1],path:element});
                });
              }
              that.setData({
                  infoData:res.data,
                  detectionFiles:fileNames,
                  fileUrlArray,
                  fileUrls,
                  detectionFileData:fileUrlArray,
                  checkType:res.data.checkType,
                  materialName:res.data.materialName,
                  usePosition:res.data.usePosition,
                  sampleNum:res.data.sampleNum,
                  qualifiedFlag:res.data.qualifiedFlag,
                  witnessUser:res.data.witnessUser,
                  witnessUserName:res.data.witnessUserName,
                  checkTime:res.data.checkTime,
                  laboratoryName:res.data.laboratoryName,
                  loadShow:false
              })
            }
          }
        })
    },

    /**
     * 查询流程日志
     */
    getAuditinfo(){
      let that = this
      wx.request({
        url: app.globalData.reqUrl+'/wechat/projectAuditinfo/selectProjectAuditinfo',
        method:"get",
        data:{
            fromType:"1",
            fromId:this.data.id          
        },
        success(res){
          res = res.data
          if(res.code == 200){
            that.setData({
              flowRecordList:res.data
            })
          }
        }
      })
  },

  fileUpload(options){
    let file=options.detail;
    this.setData({
      detectionFileData: file
    });
  },

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

    //材料名称
    onInputMaterialNameValue(e){
        let materialName = e.detail.value
        this.setData({
            materialName
        })
    },

    //使用部位
    onInputUsePositionValue(e){
        let usePosition = e.detail.value
        this.setData({
            usePosition
        })
    },
    //取样数量
    onInputSampleNumValue(e){
        let sampleNum = e.detail.value
        this.setData({
            sampleNum
        })
    },
    //送检实验室名称
    onInputLaboratoryNameValue(e){
        let laboratoryName = e.detail.value
        this.setData({
            laboratoryName
        })
    },
    
    //验收时间
    onInputTime(e){
        let checkTime = e.detail
        this.setData({
            checkTime
        })
    },

    //添加监理专员
    onAddSend(e){
        if(e.detail.length>0){
            let phoneNumbers="";
            let userNames="";
            e.detail.forEach(it =>{
                phoneNumbers+=","+it.phoneNumber;
                userNames+=","+it.userName;
            });
            this.setData({
                witnessUserName:userNames.substring(1),
                witnessUser:phoneNumbers.substring(1)
            })
        }else{
            this.setData({
                witnessUser:"",
                witnessUserName:""
            })
        }
    },
    
    //取消页面
    cancelSaveView(){
        this.returnToPage()
    },

    //保存
    onSubmitSave(){
        this.setData({
            loadShow:true
        })
        let that = this
        let {id,checkType,
        materialName,
        usePosition,
        sampleNum,
        qualifiedFlag,
        witnessUser,
        witnessUserName,
        checkTime,
        laboratoryName,loginName,detectionFileData} =  that.data;
        //数据效验
        if(id==""){
            app.toast("数据异常,请刷新页面重试!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(checkType==""){
            app.toast("请选择送检类型!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(materialName==""){
            app.toast("请填写材料名称!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(sampleNum==""){
            app.toast("请填写取样数量!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(usePosition==""){
            app.toast("请填写使用部位!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(qualifiedFlag==""){
            app.toast("请选择是否提供合格证!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(qualifiedFlag==""){
            app.toast("请选择是否提供合格证!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(witnessUser==""||witnessUserName==""){
            app.toast("请选择见证人!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(checkTime==""){
            app.toast("请选择送检时间!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(laboratoryName==""){
            app.toast("请填写送检实验室名称!")
            that.setData({
                loadShow:false
            })
            return;
        }
        if(this.data.infoData.detectionFile!=null && detectionFileData.length==0){
            app.toast("请上传检测报告!")
            that.setData({
                loadShow:false
            })
            return;
        }
        let path=this.data.infoData.detectionFile;
        if(detectionFileData.length>0){
            let _fileType = detectionFileData[0].path.split('.');
            _fileType = _fileType[_fileType.length-1].toLowerCase();
            //判断附件类型,如果是图片直接展示,非图片则显示附件
            if(this.data.fileType.indexOf(_fileType)==-1){
                app.toast("检测报告不支持 [ "+_fileType+" ] 格式!")
                that.setData({
                    loadShow:false
                });
                return;
            }
        }else{
            detectionFileData.push(null);
        }
        detectionFileData.forEach(async (item)=>{
            if(item!=null && item.path.indexOf("/profile/")==-1){
                let uploadUrl = app.globalData.uploadUrl+'/common/upload'
                let uploadName = "file" 
                //这里复杂的图片上传,改为同步上传,因为小程序只能上传一张图片
                let obj = await that.syncUploadImage(uploadUrl,item.path,uploadName);
                path = obj.data.fileName;
            }
            let params = {
                id,
                checkType,
                materialName,
                usePosition,
                sampleNum,
                qualifiedFlag,
                witnessUser,
                witnessUserName,
                checkTime:checkTime+":00",
                laboratoryName,
                updateBy:loginName,
                detectionFile:path,
                approveStatus:path==null?null:"1"
            }
            wx.request({
                url: app.globalData.reqUrl + '/wechat/projectDetection/edit',
                method:"POST",
                data:params,
                header: {
                    "Username": loginName,
                    "Content-Type": "application/json"
                },
                success(res){
                    that.setData({
                        loadShow:false
                    })
                    res = res.data
                    if(res.code == 200){
                        app.toast("修改成功!")
                        setTimeout(()=>{
                        wx.redirectTo({
                            url: '../list/index',
                        })
                        },200)
                    }
                }
            })
        })  
    },

    /**
     * 这里考虑上传图片异步问题,封装为同步
     */
    syncUploadImage(url,uploadFile,name) {
        return new Promise((resolve, reject) => {
            wx.uploadFile({
            url, // 上传的服务器接口地址
            filePath: uploadFile,
            header: {
                "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"      
            },
            name, //上传的所需字段,后端提供
            formData: { user: 'test' },
            success: (res) => {
                // 上传完成操作
                const data = JSON.parse(res.data)
                resolve({
                    data: data
                })
            },
            fail: (err) => {
                //上传失败:修改pedding为reject
                console.log("访问接口失败", err);
                wx.showToast({
                title: "网络出错,上传失败",
                icon: 'none',
                duration: 1000
                });
                reject(err)
            }
            });
        })
    },

    //选择检测类型
    onSelectCheckType(e){
        this.setData({
            checkType:e.detail.id
        })
  },
      //选择是否提供合格证
      onSelectQualifiedFlag(e){
        this.setData({
            qualified:e.detail.id
        })
  },
  
  returnToPage: function () {
    /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
    wx.redirectTo({
        url: '../list/index',
    })
  },

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

    },

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

    },

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

    },

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

    },

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

    },

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

    },

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

    }
})