// pages/workorder/index.js
const api = require('../../api/index.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    array:['日常','故障','其他'],
    namelist:[],
    typelist:['日常','故障','其他'],
    devicedata:[],
    index:1,
    nameindex:'',
    typeindex:0,
    deviceindex:'',
    date:'',
    partnerAvite:[],
    priority:'1',
    workorderContent:'',
    switchtype:true,
    datestart:'',
    dateend:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(options.name);
    this.setData({
      index:options.name
    })
this.getselectinformationall()
this.getselectdevicelist()
  },
  onworkorder(){

    if (this.data.workorderName==''||this.data.workorderAddress==''||this.data.dateend==''||this.data.datestart==''||this.data.nameindex==''||this.data.deviceindex=='') {
      wx.showToast({
        title: '请填写完整工单',
        icon: 'none'
      });
      return
    }
       
    if (!this.data.switchtype) {
      return
    }
    this.setData({
      switchtype:false
    })
    let data = {
      workorderName:this.data.workorderName,
      workorderAddress:this.data.workorderAddress,
      workorderImg:this.data.partnerAvite.length>0?this.data.partnerAvite.toString():'',
      workorderContent:this.data.workorderContent,
      workoderPartner:this.data.namelist[this.data.nameindex].partnerId,
      workorderEndtime:this.data.dateend,   // 开始时间
      workorderStarttime:this.data.datestart,  // 结束时间
      workorderGrade:this.data.priority,
      type:(this.data.index*1)+1,
      deviceId:this.data.devicedata[this.data.deviceindex].deviceId
    }
    api.request(`/workoder/createworkorder`, 'POST',data)
    .then((res) => {
      console.log(res);
   if (res.code==200) {
    // this.requestSubscribeMessage();
    // this.loadMessages();
    this.setData({
      switchtype:true
    })
     wx.switchTab({
       url: '/pages/index/index',
     })
   }
    })
    .catch((err) => {
      console.error('请求失败：', err);
      // 在这里处理请求失败的情况
      this.setData({
        switchtype:true
      })
    });
  },

  // 用户信息
  getselectinformationall(){
    let data = {
   
    }
    api.request(`/partner/selectinformationall`, 'POST',data)
    .then((res) => {
      console.log(res);
      this.setData({
        namelist:res.data
      })
    })
    .catch((err) => {
      console.error('请求失败：', err);
      // 在这里处理请求失败的情况
    });
  },
    // 设备列表
    getselectdevicelist(){
      let data = {
      }
      api.request(`/device/selectdevicelist`, 'POST',data)
      .then((res) => {
        console.log(res);
        this.setData({
          devicedata:res.data
        })
      })
      .catch((err) => {
        console.error('请求失败：', err);
        // 在这里处理请求失败的情况
      });
    },
  onPeakprice(e){
    console.log(e.detail.value);
    this.setData({
      workorderName:e.detail.value
    })
  },
  onaddress(e){
    console.log(e.detail.value);
    this.setData({
      workorderAddress:e.detail.value
    })
  },
  ontextarea(e){
    console.log(e);
    this.setData({
      workorderContent:e.detail.value
    })
  },
  bindPickerChange(e){
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      nameindex: e.detail.value
    })
  },
  binddeviceChange(e){
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      deviceindex: e.detail.value,
      workorderAddress:this.data.devicedata[e.detail.value].devicesName
    })
  },
  bindeventChange(e){
    this.setData({
      index: e.detail.value
    })
  },
  // 开始时间
  bindstartChange: function(e) {
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      datestart: e.detail.value
    })
  },
  // 结束时间
  bindendChange: function(e) {
    const selectedEnd = e.detail.value;
    console.log('picker发送选择改变，携带值为', e.detail.value)
    const { datestart } = this.data;
  
    // 检查结束时间是否早于开始时间
    if (datestart && selectedEnd < datestart) {
      wx.showToast({
        title: '结束时间不能早于开始时间',
        icon: 'none',
        duration: 2000
      });
      return;  // 不更新结束时间
    }
    
    // 验证通过，更新结束时间
    this.setData({
      dateend: selectedEnd
    });
  
  },
  // 工单优先级 
  onradio(e){
console.log(e.detail.value); 
this.setData({
  priority:e.detail.value
})
  },
   // 预览图片
   previewImage(e) {
    const src = e.currentTarget.dataset.src;
    wx.previewImage({
      current: src, // 当前显示图片的http链接
      urls: [src]   // 需要预览的图片http链接列表
    });
  },
  bindCancel(e){
    console.log(e.currentTarget.dataset.index);
    let index = e.currentTarget.dataset.index
      // 使用 filter 方法创建新数组（推荐）
  const newPartnerAvite = this.data.partnerAvite.filter((item, i) => i !== index);
  
  this.setData({
    partnerAvite: newPartnerAvite
  });
  },
  // 上传头像--项目--文件1
bindtoImage(){
  let _this = this
  // 先检查隐私授权状态 
  wx.getPrivacySetting({
    success: (res) => {
      if (res.needAuthorization) {
        // 弹出隐私协议弹窗
        wx.requirePrivacyAuthorize({
          success: () => {
            console.log('用户已同意隐私协议');
            _this.choosetoImage(); // 继续执行上传
          },
          fail: () => {
            console.log('用户拒绝了隐私协议');
            wx.showToast({
              title: '需同意隐私协议才能使用',
              icon: 'none'
            });
          }
        });
      } else {
          _this.choosetoImage(); // 已授权，直接上传
      }
    }
  });
},
// 上传头像图片
choosetoImage() {
  let _this = this
  wx.chooseMedia({    
    count: 1,
    mediaType: ['image','video'],
    sourceType: ['album', 'camera'],
    success(res) {
      console.log(res);
      const tempFiles = res.tempFiles;
      _this.setData({
        imageList: tempFiles.map(file => file.tempFilePath),
      });
      _this.uploadtoImages(tempFiles);
    },
    fail(err) {
      console.error("选择失败:", err);
    }
  })
  },
  // 上传到服务器
  uploadtoImages(files) {
  let _this =this
  const token = wx.getStorageSync('token');
  files.forEach((file) => {
  wx.uploadFile({
  url: 'https://esos-iot.bjdexn.cn:8443/config/upload/webPost',
  filePath: file.tempFilePath,
  name: 'file',
  formData: {
    file:file.tempFilePath
  },
  header: {
    'Authorization': 'Bearer ' + token // Also add to header if needed
  },
  success: (res) => {
  console.log(res);
  const obj = JSON.parse(res.data);
  this.data.partnerAvite.push(obj.data.partnerAvite)
  this.setData({
    partnerAvite:this.data.partnerAvite
   })
  },
  fail: (err) => {
    console.error('上传失败', err);
  },
  });
  });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

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

  },

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

  },

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

  },

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

  },

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

  },

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

  }
})