// monitor/pages/materialUse/materialUse.js
var Api = require("../../../utils/util.js");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    type: 1,
    listData: [],
    jgList: [], //可用物料传过来的临时数据
    typeList: [], //物料类型下拉
    specList: [], //物料规格下拉
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if(options.orderId){
      this.setData({
        orderId: options.orderId
      })
    }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // this.getTypeList()
  },
  //文本输入
  inputText: function(e) {
    let name = e.currentTarget.dataset.name
    let index = e.currentTarget.dataset.index
    this.setData({
      [`listData[${index}].${name}`]: e.detail.value,      
    })
  },
  //数字输入
  inputNum: function(e) {
    let name = e.currentTarget.dataset.name
    let index = e.currentTarget.dataset.index
    this.setData({
      [`listData[${index}].${name}`]: Number(e.detail.value),      
    })
  },

  //下拉选择
  changSelect: function(e) {
    let name = e.currentTarget.dataset.name
    let list = e.currentTarget.dataset.list
    let index = e.currentTarget.dataset.index
    let indexVal = Number(e.detail.value);
    this.setData({
      [`listData[${index}].${name}`]: this.data[list][indexVal], 
    })
    if(name == 'materialType'){
      this.setData({
        [`listData[${index}].materialSpec`]: '',//重新选择类型则清空规格
      })
      let key = this.data.typeKeyList[indexVal]
      this.getSpecList(key)
    }
  },

  //物料规格
  getSpecList(key){
    Api.req('blade-platformFittingApply/platformFittingApply/getMaterialSpecList', {
      materialType: key //物料类型
      // orderId: options.id
    }, 'get')
    .then(res => {
      if(res.code == 200){
        this.setData({
          specList: res.data,
        })
      }
    }) 
  },
  //物料类型
  getTypeList(){
    Api.req('blade-system/dict/dictionary', {
      code: 'wl_type'
    }, 'get')
    .then(res => {
      if(res.code == 200){
        this.setData({
          typeList: res.data.map(itm=>itm.dictValue),
          typeKeyList: res.data.map(itm=>itm.dictKey),
        })
      }
    }) 
  },    
  //改变物料归属
  changeType(e){
    if(this.data.listData.length>0){
      wx.showModal({
        title: '提示',
        content: '改变物料归属原数据将会被清空，确定改变吗？',
        complete: (res) => {
          if (res.cancel) {
            if(e.detail.value == '1'){
              this.setData({
                type: 2
              })
            }else{
              this.setData({
                type: 1
              })
            }
          }
          if (res.confirm) {
            this.setData({
              listData: [],
              type: e.detail.value
            })
          }
        }
      })  
    }else{
      this.setData({
        type: e.detail.value
      })
    }
      
  },
  //添加物料
  addList(e){
    let listData = this.data.listData
    if(this.data.type == '1'){//物料甲供--添加物料使用
      wx.navigateTo({
        url: '../materialList/materialList?id=' + e.currentTarget.dataset.id
      })
    }else{
      listData.push({
        materialName: '', //物料名称
        materialCode: '', //物料代码
        materialType: '', //物料类型
        materialSpec: '', //	物料规格
        userAmount: '', //使用数量
      })
      this.setData({
        listData
      })
    }
  }, 


  //添加甲供物料使用
  addJgList(){
    let jgList = this.data.jgList
    let listData = this.data.listData   
    if(jgList.length>0){
      jgList.forEach(item=>{
        listData.push(item)
      })
    }
    this.setData({
      listData
    })
  },
  //删除物料
  delList(e){
    let index = e.currentTarget.dataset.index
    let listData = this.data.listData
    listData.splice(index, 1)
    this.setData({
      listData
    })
  },
  //保存
  submitForm(e){
    let listData = JSON.parse(JSON.stringify(this.data.listData)) 
    let isCheck = true
    if(this.data.listData.length == 0){
      wx.showToast({
        title: '请先添加物料',
        icon: 'error'
      })
      return
    }else if(this.data.type == '1'){//物料甲供      
      try{
        listData.forEach(item=>{
          if(item.userAmount<0 || item.userAmount=='' || !/^[1-9]\d*$/.test(item.userAmount)){
            wx.showToast({
              title: '使用数量只能是大于0的整数',
              icon: 'none',
              duration: 2000
            })
            isCheck = false
            throw Error()
          }
        })
      }catch(e) {
        console.log(e)
      }
    }else if(this.data.type == '2'){//自备物料
      try{
        listData.forEach(item=>{
          if(item.materialType == ''){
            wx.showToast({
              title: '物料类型不能为空',
              icon: 'none',
              duration: 2000
            })
            isCheck = false
            throw Error()
          }else if(item.materialSpec == ''){
            wx.showToast({
              title: '物料规格不能为空',
              icon: 'none',
              duration: 2000
            })
            isCheck = false
            throw Error()
          }else if(item.userAmount<0 || item.userAmount=='' || !/^[1-9]\d*$/.test(item.userAmount)){
            wx.showToast({
              title: '使用数量只能是大于0的整数',
              icon: 'none',
              duration: 2000
            })
            isCheck = false
            throw Error()
          }
        })
      }catch(e) {
        console.log(e)
      }
    }
    if(!isCheck){
      return
    }
    // console.log(1221, this.data.listData)
    // return
    wx.showLoading({
      title: '提交中...',
      mask: true
    })
    var data = {      
      orderId: this.data.orderId, //订单ID
      materialFrom: this.data.type, //物料归属
      userMaterila: this.data.listData, //物料明细
    }
    // console.log("执行",data);
    // return
    Api.req('blade-operationOrderMaterial/operationOrderMaterial/orderFittingUse', data, 'post', '','1')
      .then(res => {
        wx.hideLoading()
        if (res.code == '200') {
          wx.showToast({
            title: '操作成功',
          })
          var page = getCurrentPages();
          let prevPage = page[page.length - 2];
          setTimeout(function() {
            prevPage.getList();
            wx.navigateBack({})
          }, 1000)
        } else {
          wx.showToast({
            title: res.msg,
            icon: 'none',
            duration: 2000  
          })
        }
      })
  }
})