<template>
  <div class="main-contain">
    <div class="position">
      <bread-crumb :crumbs="crumbs"></bread-crumb>
    </div>
    <div class="app-container ">
      <div class="cell clearfix">
       药品名称:<span>{{this.$route.query.drug_name}}</span>&nbsp;
       库存: {{this.$route.query.overPlus}}
       规格:<span>{{this.$route.query.unit}}</span>&nbsp;
       厂家:<span>{{this.$route.query.manufacturer}}</span>&nbsp;

      </div>
      <div class="cell clearfix">
        <span>日期查询:</span>
        <el-date-picker
            size="small"
            v-model="start_time"
            prefix-icon="el-icon-date"
            :editable="false"
            style="width: 196px;"
            type="date"
            placeholder="选择日期时间"
            align="right"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd"
            @change="startTimeChange"
           ></el-date-picker>-
            <el-date-picker
              size="small"
              v-model="end_time"
              prefix-icon="el-icon-date"
              :editable="false"
              style="width: 196px;margin-right:10px;"
              type="date"
              placeholder="选择日期时间"
              align="right"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              @change="endTimeChange"
          ></el-date-picker>

        <span>出入库方式:</span>
        <el-select v-model="stock_type" style="width:160px;margin-right:10px;" placeholder="请选择" @change="changeDrug">
            <el-option
              v-for="(item,index) in stockType"
              :key="index"
              :label="item.name"
              :value="item.id">
            </el-option>
        </el-select>
        
        
      </div>
      
       <el-table
        :data="tableList"
        border
        style="width: 100%">
        <el-table-column prop="date" label="序号" width="180" align="center">
           <template  slot-scope="scope">
              {{scope.$index + 1}}
           </template>
        </el-table-column>
        <el-table-column prop="drug_type" label="出入库方式" width="180" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.consumable_type == 1">手动入库</span>
             <span v-if="scope.row.consumable_type == 2">手动出库</span>
             <span v-if="scope.row.consumable_type == 3">自动出库</span>
             <span v-if="scope.row.consumable_type == 4">手动退库</span>
             <span v-if="scope.row.consumable_type == 5">报损数量</span>
           </template>
        </el-table-column>
        <el-table-column prop="drug_name" label="出/入库单据编码" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.consumable_type == 1">{{scope.row.warehousing_order}}</span>
              <span v-if="scope.row.consumable_type == 2 || scope.row.consumable_type == 3">{{scope.row.warehouse_out_order_number}}</span>
              <span v-if="scope.row.consumable_type == 4">{{scope.row.cancel_order_number}}</span>
              <span v-if="scope.row.consumable_type == 5">{{scope.row.warehouse_out_order_number}}</span>
           </template>
        </el-table-column>
        <el-table-column prop="drug_name" label="操作日期" align="center">
           <template slot-scope="scope">
             {{getTime(scope.row.ctime,"{y}-{h}-{d}")}}
           </template>
        </el-table-column>
         <el-table-column prop="drug_name" label="出入库数量" align="center">
           <template slot-scope="scope">
             <span v-if="scope.row.consumable_type == 1">{{scope.row.count}}{{scope.row.max_unit}}</span>
             <span v-if="scope.row.consumable_type == 2">{{scope.row.count}}{{scope.row.max_unit}}{{scope.row.min_unit}}</span>
             <span v-if="scope.row.consumable_type == 3">{{scope.row.count}}{{scope.row.max_unit}}{{scope.row.min_unit}}</span>
             <span v-if="scope.row.consumable_type == 4">{{scope.row.count}}{{scope.row.max_unit}}{{scope.row.min_unit}}</span>
             <span v-if="scope.row.consumable_type == 5">{{scope.row.count}}{{scope.row.max_unit}}{{scope.row.min_unit}}</span>
           </template>
        </el-table-column>
       
        <el-table-column prop="drug_name" label="进/出货单价" align="center">
           <template slot-scope="scope">
              <span>{{scope.row.price}}</span>
           </template>
        </el-table-column>
         <el-table-column prop="drug_name" label="有效期" align="center">
           <template slot-scope="scope">
              {{getTime(scope.row.expire_date,"{y}-{h}-{d}")}}
            
           </template>
        </el-table-column>
        <el-table-column prop="drug_name" label="批号" align="center">
           <template slot-scope="scope">
             <span>{{scope.row.batch_number}}</span>
           </template>
        </el-table-column>
        <el-table-column prop="drug_name" label="生产商" align="center">
           <template slot-scope="scope">
             {{getManufacturer(scope.row.manufacturer)}}
           </template>
        </el-table-column>
       </el-table>
       
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :page-sizes="[10, 50, 100,500,1000]"
        :page-size="10"
        background
        align="right"
        style="margin-top:20px;"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
      >
      </el-pagination>
    </div>

    <setting-dialog
      ref="dialog"
    ></setting-dialog>

  </div>
</template>

<script>
  import { uParseTime } from '@/utils/tools'
  import BreadCrumb from '@/xt_pages/components/bread-crumb'
  import { getDrugStockFlow,getOutDrugStockFlow,getDrugCountList,getDrugFlow } from '@/api/drug/drug_stock'
  import SettingDialog from './settingDialog/index'
  import { getDictionaryDataConfig } from "@/utils/data";
  export default {
    name: 'stockIn',
    created() {
       var nowDate = new Date();
      var nowYear = nowDate.getFullYear();
      var nowMonth = nowDate.getMonth() + 1;
      var nowDay = nowDate.getDate();
      this.end_time =
        nowYear +
        "-" +
        (nowMonth < 10 ? "0" + nowMonth : nowMonth) +
        "-" +
        (nowDay < 10 ? "0" + nowDay : nowDay);
      nowDate.setMonth(nowDate.getMonth() - 1);
      nowYear = nowDate.getFullYear();
      nowMonth = nowDate.getMonth() + 1;
      nowDay = nowDate.getDate();
      this.start_time =
        nowYear +
        "-" +
        (nowMonth < 10 ? "0" + nowMonth : nowMonth) +
        "-" +
        (nowDay < 10 ? "0" + nowDay : nowDay);
      var drugCategory = getDictionaryDataConfig('system','drug_category')
      this.drugCategory.push(...drugCategory)
      this.drugTypeList = getDictionaryDataConfig('system','drug_type') 
      // this.getlist()
      // this.getOutList()
      // this.getDrugCountList()

      this.getDrugFlow()
    },
    components: {
      SettingDialog,
      BreadCrumb
    },
    data() {
      return {
        crumbs: [
          { path: false, name: '库存管理' },
          { path: '/stock/drugs/stock/query', name: '药品库存查询' },
          { path:'/drugstock/in/drugstockflow',name:'库存流水'}
        ],
        keywords: '',
        total: 0,
        multipleSelection: [],
        signAndWeighBoxPatients: 'sign-and-weigh-box-patients',
        start_time: '',
        end_time: '',
        page: 1,
        limit: 10,
        goodType: [],
        goodInfo: [],
        tempArr: [],
        sameRowArr: [],
        WarehouseInfo: {
          loading: false,
          warehouseInfoDate: []
        },
        tableData:[],
        drug_category:0,
        stock_type:0,
        drugCategory:[
          {id:0,name:"全部"}
        ],
        drugTypeList:[],
        tableList:[],
        manufacturerList:[],
        list:[],
        stockType:[
          {id:0,name:"全部"},
          {id:1,name:"手动入库"},
          {id:2,name:"手动出库"},
          {id:3,name:"自动出库"},
          {id:4,name:"手动退库"},

        ],
        outList:[],
        countList:[],
        outCountList:[],
        autoCountList:[],
        drugOutList:[],
        total:0,
      }
    },
    methods:{
       getlist(){
           var params = {
             drug_id:this.$route.query.drug_id,
             start_time:this.start_time,
             end_time:this.end_time,
             page:this.page,
             limit:this.limit,
             stock_type:this.stock_type,  
           }
         getDrugStockFlow(params).then(response=>{
           if(response.data.state == 1){
            var list = response.data.data.list
            for(let i=0;i<list.length;i++){
               list[i].drug_way = 4
               this.tableList.push(list[i])
            }
            var total = response.data.data.total
            this.total = total
            var manufacturerList = response.data.data.manufacturerList
            this.manufacturerList = manufacturerList
           
           }
         })  
       },
       getOutList(){
          var params = {
             drug_id:this.$route.query.drug_id,
             start_time:this.start_time,
             end_time:this.end_time,
             page:this.page,
             limit:this.limit,
             stock_type:this.stock_type,  
           }
         getOutDrugStockFlow(params).then(response=>{
            if(response.data.state == 1){
               var outList = response.data.data.outList
               console.log("outlist",outList)

              for(let i=0;i<outList.length;i++){
               
                if(outList[i].is_sys == 1){
                  outList[i].drug_way = 2
                }
                if(outList[i].is_sys == 0){
                  console.log("进来22222")
                  outList[i].drug_way = 1
                }
                this.tableList.push(outList[i])
              }
              this.total = response.data.data.total
              console.log("出库列表数据",this.tableList)
            }
         })
       },
       handleSizeChange(val) {
        this.limit = val
        this.getDrugFlow()
      },
      handleCurrentChange(val) {
        this.page = val
        this.getDrugFlow()
      },
        
    startTimeChange: function(val) {
      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
      
      if (time > 0) {
        this.$message.error("开始时间不能大于结束时间");
        this.start_time = "";
      } else {
        this.getDrugFlow()
      }
    },
    endTimeChange: function(val) {
      var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);
      if (time < 0) {
        this.$message.error("结束时间不能小于开始时间");
        this.end_time = "";
      } else {
        this.getDrugFlow()
      }
     },
     getManufacturer(id){
       var name = ""
       for(let i=0;i<this.manufacturerList.length;i++){
         if(id == this.manufacturerList[i].id){
            name = this.manufacturerList[i].manufacturer_name
         }
       }
       return name
     },
    getTime(val) {
      if(val < 0){
          return ""
      }
      if(val == ""){
        return ""
      }else {
        return uParseTime(val, '{y}-{m}-{d}')
      }
     },
    getDrugCountList(){
         var params = {
          keyword: this.keywords,
          start_time:this.start_time,
          end_time:this.end_time,
         }
      getDrugCountList(params).then(response=>{
          if(response.data.state == 1){
            var countlist =  response.data.data.countList
            // console.log("入库数据",countlist)
            this.countList = countlist
            var outcountlist = response.data.data.outCountList
            // console.log("出库数据",outcountlist)
            this.outCountList = outcountlist
            var aucountlist = response.data.data.auCountList
            // console.log("自动数据",aucountlist)
            this.autoCountList = aucountlist
             var minCount = response.data.data.minCount
            // console.log("minCount",minCount)
            this.minCount = minCount
            var info = response.data.data.info
            for(let i=0;i<info.length;i++){
              if(info[i].count_unit == info[i].max_unit){
                 info[i].count = info[i].count * info[i].min_number
              }
            }
            // console.log("info2222222",info)
            this.drugOutList = info
          }
        })
      },
      getInCount(id){
        var count = ""
        for(let i=0;i<this.countList.length;i++){
           if(id == this.countList[i].drug_id){
             count = this.countList[i].count
           }
        }
        return count
      },

      getOutCount(id){
        var count = ""
        for(let i=0;i<this.outCountList.length;i++){
           if(id == this.outCountList[i].drug_id){
               count = this.outCountList[i].count
           }
        }
        return count
      },
      getAutoCount(id){
        var count= ""
        for(let i=0;i<this.autoCountList.length;i++){
          if(id == this.autoCountList[i].drug_id){
            count = this.autoCountList[i].count
          }
        }
        return count
      },
      getTimestamp(time) { // 把时间日期转成时间戳
        return (new Date(time)).getTime() / 1000
      },
      changeDrug(val){
       this.tableList = []
       this.getDrugFlow()
       
      },
      getMinCount(id){
        var count=""
        for(let i=0;i<this.minCount.length;i++){
          if(id == this.minCount[i].drug_id){
            count = this.minCount[i].count
          }
        }
        return count
      },
      getCount(drug_id,min_number,max_unit,min_unit){
        var count= 0
        var str = ""
        var min_str = ""
        for(let i=0;i<this.drugOutList.length;i++){
          if(drug_id == this.drugOutList[i].drug_id){
             count += parseInt(this.drugOutList[i].count)
          }
        }
        if(parseInt(count/min_number)!=0){
          str = parseInt(count/min_number)+ max_unit
        }
        if((count%min_number)!=0){
          min_str =  count%min_number + min_unit
        }
        return str + min_str
      },

     getCountOne(drug_id){
        var count= 0
        for(let i=0;i<this.drugOutList.length;i++){
          if(drug_id == this.drugOutList[i].drug_id){
             count += parseInt(this.drugOutList[i].count)
          }
        }
        return count
      },
     getCountTwo(drug_id,min_number,max_unit,min_unit){
       var total_count = 0
       var out_count = 0
       var count = 0
       var str = ""
       var str_min = ""
       total_count = this.getInCount(drug_id) * min_number
       out_count = this.getCountOne(drug_id)
       count = total_count-out_count
       if(parseInt(count/min_number)!=0){
         str = parseInt(count/min_number) + max_unit
       }
       if((count%min_number)!=0){
         str_min = count%min_number + min_unit
       }
       console.log("str2323222",str)
       console.log("str22333333",str_min)
       return str+str_min
     },

     getDrugFlow(){
       var params = {
          drug_id:this.$route.query.drug_id,
          start_time:this.start_time,
          end_time:this.end_time,
          page:this.page,
          limit:this.limit,
          stock_type:this.stock_type,  
        }
       getDrugFlow(params).then(response=>{
          if(response.data.state ==1){
            var list = response.data.data.list
            console.log("list232323232",list)
            this.tableList = list
            var total = response.data.data.total
            console.log("total23232",total)
            this.total =total
            this.manufacturerList = response.data.data.manufacturerList
            this.dealerList = response.data.data.dealerList
          }
       })
     }
    }
  }
</script>

<style rel="stylesheet/css" lang="scss" scoped>
  .information {
    border: 1px #dcdfe6 solid;
    padding: 30px 20px 30px 20px;

  .border {
    border-bottom: 1px #dcdfe6 solid;
    margin: 0px 0 20px 0;
  }

  }

  .title {
    background: #409eff;
    height: 44px;
    line-height: 44px;
    padding: 0 0 0 10px;
    color: #fff;
    margin: 0 0 10px 0;
  }

  .edit_separater {
    border-top: 1px solid rgb(233, 233, 233);
    margin-top: 15px;
    margin-bottom: 15px;
  }
</style>

<style>
  .sign-and-weigh-box .sign-and-weigh-box-patients .cell {
    font-size: 12px;
  }

  .sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
    background: #6fb5fa;
  }

  .count {
    color: #bd2c00;
  }

  .el-table td,
  .el-table th.is-leaf,
  .el-table--border,
  .el-table--group {
    border-color: #d0d3da;
  }

  .el-table--border::after,
  .el-table--group::after,
  .el-table::before {
    background-color: #d0d3da;
  }
</style>
