<style>
  .putinStorage .mimitBody {
    padding: 20px;
    background-color: #fff;
    margin: 10px 0 20px 0;
    display: table;
    width: 100%;
  }

  .putinStorage .tpEdit_header {
    padding: 18px;
    background: #fff;
    color: #606266;
    margin-bottom: 10px;
  }

  .putinStorage .mimitList {
    margin-bottom: 15px;
    display: flex;
    flex-direction: row;
  }

  .putinStorage .mimitBody .el-tag {
    min-width: 120px;
    padding-right: 50px;
  }

  .putinStorage .el-button--small {
    padding: 9px 25px;
  }

  .putinStorage .box_tip {
    width: 100%;
    margin: 10px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #F56C6C;
    font-size: 26px;
  }

</style>
<template>
  <div class="putinStorage">
    <div class="tpEdit_header">
      <span style="color:rgb(64, 158, 255);cursor:pointer;" @click="CommonJump('procurementMange')">采购管理</span><span
        style="margin:0 9px;color:#C0C4CC">/</span><span>入库</span>
    </div>
    <div class="mimitBody">
      <div class='box_tip' v-if="ISoperation == true">
        <span>此仓库正在盘点中,暂不支持任何操作!</span>
      </div>
      <div>
        <span>仓库名称:{{Detaildata.WareHouseName}}</span>
        <span style="margin-left:30px">备注:{{Detaildata.Remark}}</span>
      </div>
      <el-table :data="Detaildata.DetailList" border style="width: 100%;margin-Top:20px">
        <el-table-column prop="Id" label="ID" width="60"></el-table-column>
        <el-table-column prop="ImageList" label="封面图" width="80" align='center'>
          <template slot-scope="scope">
            <img :src="scope.row.MaterialModel.ImageList[0]" alt="" style="width: 50px; height: 50px;">
          </template>
        </el-table-column>
        <el-table-column prop="Name" label="商品名称">
          <template slot-scope="scope">
            <span>{{scope.row.MaterialModel.Name}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="GoodsSpecificationList" label="规格">
          <template slot-scope="scope">
            <span v-for="(x,y) in scope.row.MaterialModel.GoodsSpecificationList" :key="y">{{x}} <span
                v-if="scope.row.MaterialModel.GoodsSpecificationList.length !== y+1"> , </span></span>
          </template>
        </el-table-column>
        <el-table-column prop="Number" label="采购数量" width="80"></el-table-column>
        <el-table-column prop="StockInNum" label="已入数量" width="80">
          <template slot-scope="scope">
            <span>{{scope.row.StockInNum!=null?scope.row.StockInNum:0}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="" label="条码" width="250">
          <template slot-scope="scope">
            <el-input v-model="scope.row.MaterialModel.Barcode"
              @input='getBarcode(scope.row,$event,scope.row,scope.$index)' placeholder="请输入"></el-input>
          </template>
        </el-table-column>
        <el-table-column prop="" label="入库数量" width="200">
          <template slot-scope="scope">
            <el-input v-model="scope.row.InStockNum" type="number" :min='0'
              :max="scope.row.Number -(scope.row.StockInNum!=null?scope.row.StockInNum:0)"
              :disabled="(scope.row.Number -(scope.row.StockInNum!=null?scope.row.StockInNum:0))==0? true:false"
              @input='validation(scope.row.Number -(scope.row.StockInNum!=null?scope.row.StockInNum:0),scope.row,$event,scope.$index)'
              placeholder="请输入"></el-input>
          </template>
        </el-table-column>
      </el-table>

      <div style="margin-top: 10px">
        入库商品 <span style="color: #666666">(如果入库数量改变下列的有效日期会全清空)</span>
      </div>
      <div v-for="(x,y) in Warehousinglist" :key="y">
        <div style="display: flex;align-items: flex-start;justify-content: space-between;margin-top: 15px;">
          <div style="width: 50%;">{{x.name}}</div>
          <div style="display: flex;align-items: flex-start;">
            <el-date-picker v-model="x.time" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
            </el-date-picker>
            <el-button @click="setupTime(y)" type="primary" size="small" style="margin-left: 15px">设置日期</el-button>
          </div>
        </div>
        <el-table :data="x.list" border style="width: 100%;margin-Top:20px"
          @selection-change="handleSelectionChange($event,y)">
          <el-table-column type="selection" width="55">
          </el-table-column>
          <el-table-column label="序号" width="60">
            <template slot-scope="scope">
              {{y+1}}-{{scope.$index+1}}
            </template>
          </el-table-column>
          <el-table-column prop="ImageList" label="封面图" width="80" align='center'>
            <template slot-scope="scope">
              <img :src="scope.row.MaterialModel.ImageList[0]" alt="" style="width: 50px; height: 50px;">
            </template>
          </el-table-column>
          <el-table-column prop="Name" label="商品名称">
            <template slot-scope="scope">
              <span>{{scope.row.MaterialModel.Name}}</span>
            </template>
          </el-table-column>
          <el-table-column prop="GoodsSpecificationList" label="规格">
            <template slot-scope="scope">
              <span v-for="(x,y) in scope.row.MaterialModel.GoodsSpecificationList" :key="y">{{x}} <span
                  v-if="scope.row.MaterialModel.GoodsSpecificationList.length !== y+1"> , </span></span>
            </template>
          </el-table-column>
          <el-table-column prop="" label="有效时间">
            <template slot-scope="scope">
              <el-date-picker v-model="scope.row.time" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
              </el-date-picker>
            </template>
          </el-table-column>
        </el-table>
      </div>
    </div>
    <el-button size="small" type="primary" @click="submitForm()" :disabled='ISoperation' :loading="rukuloading">入库
    </el-button>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        Detaildata: {},
        WareHouseId: 0,
        ISoperation: false,
        rukuloading: false,
        Warehousinglist: [],
      };
    },
    created() {},
    methods: {
      getProcurementInfo(data) {
        this.assetsApipost("/api/property/GetProcurementInfo", {
          ProcurementId: data.ID
        }, res => {
          if (res.data.resultCode == 1) {
            let data = res.data.data
            data.DetailList.forEach((x, y) => {
              x.InStockNum = 0;
              let obj = {
                Id: y + 1,
                UniqueID: x.Id,
                name: x.MaterialModel.Name,
                list: [],
                time: '',
                multipleSelection: []
              }
              this.Warehousinglist.push(obj)
            });
            this.Detaildata = data
          } else {
            this.Error(res.data.message);
          }
        })

      },
      getSuppliesCheckList(WareHouseId) {
        this.assetsApipost("/api/Property/GetSuppliesCheckList", {}, res => {
          if (res.data.resultCode == 1) {
            let data = res.data.data
            if (data.length > 0) {
              data.forEach(x => {
                if (x.WarehouseId == WareHouseId) {
                  this.ISoperation = true //如果有在盘点的仓库
                }
              })
            }
          } else {
            this.Error(res.data.message);
          }
        })
      },
      submitForm() {
        let msg = {
          Id: 0,
          WareHouseId: 0,
          DetailList: []
        };
        msg.Id = this.Detaildata.Id;
        msg.WareHouseId = this.Detaildata.WareHouseId;
        let showtime = false;
        let zonglist = [];
        this.Warehousinglist.map((x, xi) => {
          if (x.list.length > 0) {
            let list = [];
            x.list.map((j, ji) => {
              if (j.time == '') {
                showtime = true
              } else {
                let obj = {
                  ExpirationDate: j.time
                }
                list.push(obj)
              }
            })
            let objlist = {
              ValidityList: list,
              UniqueID: x.UniqueID
            }
            zonglist.push(objlist)
            if (showtime == true) {
              this.Error(x.name + '的有效日期没选择,请选择');
              return
            }
          }
        })
        if (showtime == true) {
          return
        }
        let showtis = false;
        this.Detaildata.DetailList.forEach((x, y) => {
          if (x.InStockNum.length == 0) {
            showtis = true
          }
          let obj = {}
          obj.GoodsId = x.MaterialModel.GoodsId;
          obj.SpecificationKey = x.MaterialModel.SpecificationKey;
          obj.InStockNum = x.InStockNum;
          obj.Barcode = x.MaterialModel.Barcode;
          //2021-4-1加的日期列表
          zonglist.map((item, index) => {
            if (x.Id == item.UniqueID) {
              obj.ValidityList = zonglist[index].ValidityList;
              return
            }
          })
          msg.DetailList.push(obj)
        })
        if (showtis == true) {
          this.Error('请输入入库数量');
          return
        }
        this.rukuloading = true
        this.assetsApipost("/api/property/SetProcurementStockIn", msg, res => {
          this.rukuloading = false
          if (res.data.resultCode == 1) {
            this.Success(res.data.message);
            this.CommonJump('procurementMange')
          } else {
            this.Error(res.data.message);
          }
        })
      },
      validation(v, row, value, index) {
        let that = this
        if (value > v) {
          this.Error('数量不足');
          that.Detaildata.DetailList.forEach(x => {
            if (x.Id == row.Id) {
              x.InStockNum = 0
            }
          })
        } else {
          this.Warehousinglist[index].list = []
          for (let i = 0; i < value; i++) {
            let obj = {
              CostMoney: row.CostMoney,
              Id: row.Id,
              InStockNum: row.InStockNum,
              MaterialId: row.MaterialId,
              MaterialModel: row.MaterialModel,
              Number: row.Number,
              StockInNum: row.StockInNum,
              time: '',
              xuhao: i + 1,
            }
            this.Warehousinglist[index].list.push(obj)
          }
        }
      },
      handleSelectionChange(val, y) {
        this.Warehousinglist[y].multipleSelection = val
      },
      getBarcode(val, row, index) {},
      setupTime(y) { //全体设置
        if (this.Warehousinglist[y].multipleSelection.length == 0) {
          this.Error('请选择要设置的对象');
          return
        }
        if (this.Warehousinglist[y].time == '') {
          this.Error('请选择有效日期');
          return
        }
        this.Warehousinglist[y].multipleSelection.map(x => {
          this.Warehousinglist[y].list.map((j, yi) => {
            if (x.xuhao == j.xuhao) {
              this.Warehousinglist[y].list[yi].time = this.Warehousinglist[y].time;
              return
            }
          })
        })
      }


    },
    mounted() {
      this.WareHouseId = this.$route.query.WareHouseId;
      this.getSuppliesCheckList(this.$route.query.WareHouseId)
      this.getProcurementInfo(this.$route.query)

    }
  };

</script>