<template>
  <div class="main-contain">
    <div class="app-container">
        <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;">
            <div>
                <el-input
                size="small"
                style="width: 200px;"
                class="filter-item"
                v-model.trim="searchKey"
                placeholder="请输入药品名称"
                />
                <el-button
                size="small"
                class="filter-item"
                type="primary"
                icon="el-icon-search"
                @click="search"
                >搜索</el-button
                >
                <el-date-picker
                size="small"
                v-model="start_time"
                type="date"
                style="margin-left:5px;width:140px;"
                placeholder="选择日期"
                @change="changeStartTime">
                </el-date-picker>
                <el-date-picker
                size="small"
                v-model="end_time"
                type="date"
                style="margin-left:5px;width:140px;"
                placeholder="选择日期"
                @change="changeEndTime">
                </el-date-picker>
            </div> 
        </div>
        <el-table :data="tableList" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }" >
            <el-table-column type="selection" width="55" align="center"> </el-table-column>
            <el-table-column  prop="date" label="报损日期" align="center">
               <template slot-scope="scope">
                  {{getTime(scope.row.start_time)}}
                </template>
            </el-table-column>
            <el-table-column prop="name" label="药品名称" align="center">
               <template slot-scope="scope">
                  {{scope.row.drug_name}}
                </template>
            </el-table-column>
            <el-table-column prop="name" label="规格" align="center">
               <template slot-scope="scope">
                  {{scope.row.specification_name}}
                </template>
            </el-table-column>
            <el-table-column prop="name" label="总报损数量" align="center">
               <template slot-scope="scope">
                  {{getTotalCount(scope.row.drug_id,scope.row.max_unit,scope.row.min_unit,scope.row.min_number)}}
                </template>
            </el-table-column>
            <el-table-column prop="name" label="总报损金额" align="center">
               <template slot-scope="scope">
                  {{getTotalPrice(scope.row.drug_id,scope.row.min_price)}}
                </template>
            </el-table-column>
            <el-table-column prop="name" label="操作人" align="center">
               <template slot-scope="scope">
                  {{getDoctorName(scope.row.creater)}}
                </template>
            </el-table-column>
            <el-table-column label="操作" align="center" width="200">
                <template slot-scope="scope">
                  <el-button type="primary" size="small" @click="clickDetai(scope.row.drug_id)">查看详情</el-button>
                </template>
            </el-table-column>
        </el-table>
        <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :page-sizes="[10, 20, 40, 100]"
            :page-size="10"
            background
            style="margin-top:20px;text-align: right"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total">
        </el-pagination>
    </div>

    <el-dialog
      title="盘点批次详情"
      :visible.sync="dialogVisible"
      width="80%">
      <span>
        <el-form>
          <el-row>
            <el-col>
              <el-form-item label="入库单号:">
                 <el-input v-model ="form.warehouseing_order" style="width:200px"></el-input>
              </el-form-item>
              <el-form-item label="原因:">
                  <el-select v-model="form.type" placeholder="请选择">
                      <el-option
                        v-for="item in reasonList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id">
                      </el-option>
                  </el-select>
              </el-form-item>
              <el-button type="primary" @click="toQuery">查询</el-button>
            </el-col>
          </el-row>
          <el-row>
            <div>&nbsp;&nbsp;{{drug_name}}  &nbsp;&nbsp;总损耗数量: {{getDamagedCount(total_count)}}    &nbsp;&nbsp;总报损金额:{{(total_count * min_price).toFixed(2)}}</div>
          </el-row>
          <el-row>
            <el-table
              :data="goodList"
              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="name" label="入库单号" width="180" align="center">
                <template slot-scope="scope">
                  {{scope.row.warehousing_order}}
                </template>
              </el-table-column>
              <el-table-column prop="address" label="损耗数量" align="center">
                <template slot-scope="scope">
                  <span v-if="scope.row.last_stock_max_number>0">{{scope.row.last_stock_max_number}}{{scope.row.warehousing_unit}}</span>
                   <span v-if="scope.row.last_stock_min_number>0">{{scope.row.last_stock_min_number}}{{scope.row.min_unit}}</span>
                </template>
              </el-table-column>
              <el-table-column prop="address" label="药损比" align="center">
                  <template slot-scope="scope">
                    {{getDrugDamageRadio(scope.row.count)}}%
                  </template>
              </el-table-column>
              <el-table-column prop="address" label="报损金额" align="center">
                <template slot-scope="scope">
                  <span v-if="scope.row.XtBaseDrug.min_price!=0">{{scope.row.XtBaseDrug.min_price}} </span> 
                </template>
              </el-table-column>

              <el-table-column prop="address" label="盘点原因" align="center">
                <template slot-scope="scope">
                  <span v-if="scope.row.type == 0">默认</span> 
                  <span v-if="scope.row.type == 1">到期退货</span> 
                  <span v-if="scope.row.type == 2">异常退货</span> 
                  <span v-if="scope.row.type == 3">退货</span> 
                  <span v-if="scope.row.type == 4">人为损坏</span> 
                  <span v-if="scope.row.type == 5">不计入报损分析</span> 
                </template>
              </el-table-column>
            </el-table>
          </el-row>
        </el-form>
      </span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import BreadCrumb from "../../components/bread-crumb";
import { getDrugDamageList,getDamagedByDrugId } from "@/api/drug/drug"
import { uParseTime } from '@/utils/tools'
import { getDataConfig } from '@/utils/data'
export default {
    name: "stockModifyPrice",
    components:{
        BreadCrumb
    },
    data() {
        return{
            crumbs: [
                { path: false, name: "库存管理" },
                { path: false, name: "药品管理" },
                { path: false, name: "药品报损" }
            ],
            searchKey:'',
            value1:'',
            value2:'',
            tableData: [],
            dialogVisible:false,
            form: {
                id:"",
                drug_name: '',
                retail_price :'',
                new_price:"",
                count:"",
                remark:"",
                warehousing_order:"",
                manufacturer:"",
                dealer:"",
                number:"",
                warehousing_unit:"",
                specification_name:"",
                buy_price:"",
                drug_id:"",
                packing_unit:"",
                drug_origin_place:"",
                report_count:"",
                total:"",
                dose:"",
                dose_unit:"",
                min_number:"",
                min_unit:"",
                max_unit:"",
                batch_number:"",
                last_price:"",
                warehouse_info_id:"",
                expiry_date:"",
                product_date:"",
                stock_max_number:"",
                stock_min_number:"",
            },
            drugList:[],
            manufacturerList:[],
            dealerList:[],
            currentIndex: 0,
            limit:10,
            page:1,
            tableList:[],
            total: 0,
            start_time:"",
            end_time:"",
            doctorList:[],
            ids:"",
            checkDialogVisible:false,
            checker:this.$store.getters.xt_user.user.id,
            check_time:new Date(),
            editDialogVisible:false,
            modifyDialogVisible:false,
            id:"",
            numberList:[],
            index:0,
            unitList:[],
            datamageList:[],
            reasonList:[
              {id:0,name:"默认"},
              {id:1,name:"到期退货"},
              {id:2,name:"异常退货"},
              {id:3,name:"退货"},
              {id:4,name:"人为损坏"},
              {id:5,name:"不计入报损分析"},
            ],
            goodList:[],
            drug_name:"",
            total_count:0,
            min_number:0,
            max_unit:"",
            min_unit:"",
            min_price:0,
            drug_id:0,
        }
    },
    methods:{
      
        search(){
          this.getlist()
        },
        handleSizeChange(val){
          this.limit = val
          this.getlist()
        },
        handleCurrentChange(val){
          this.page = val
          this.getlist()
        },
       
        getTime(val) {
         if(val < 0){
            return ""
          }
         if(val == ""){
            return ""
          }else {
            return uParseTime(val, '{y}-{m}-{d}')
         }
        },
      getlist(){
        var params = {
          limit:this.limit,
          page:this.page, 
          start_time:this.start_time,
          end_time:this.end_time,
          keyword:this.searchKey,
        }
        getDrugDamageList(params).then(response=>{
           if(response.data.state == 1){
             this.tableList = response.data.data.list
             this.total = response.data.data.total
             this.doctorList = response.data.data.doctorList
             var datamagelist = response.data.data.damagelist
             console.log("hhh233223",datamagelist)
             this.datamageList = datamagelist
           }
        })
      },
    getDoctorName(id){
        var user_name = ""
        for(let i=0;i<this.doctorList.length;i++){
          if(id == this.doctorList[i].admin_user_id){
            user_name = this.doctorList[i].user_name
          }
        } 
        return user_name
     },
     changeStartTime(){

     },
     changeEndTime(){

     },
     getTotalCount(drugid,max_unit,min_unit,min_number){
        
        var total = 0
        var str = ""
        var str_min = ""
        for(let i=0;i<this.datamageList.length;i++){
          if(drugid == this.datamageList[i].drug_id){
             total +=this.datamageList[i].count
          }
        }
        if(parseInt(total/min_number)!=0){
          str = parseInt(total/min_number) + max_unit
        }
        if((total%min_number)!=0){
          str_min = total%min_number + min_unit
        }
        return str+str_min
     },
     getTotalPrice(drugid,minprice){
        var total = 0 
        for(let i=0;i<this.datamageList.length;i++){
          if(drugid == this.datamageList[i].drug_id){
            total+=this.datamageList[i].count
          }
        }
        return (total*minprice).toFixed(2)
     },
     clickDetai(drugid){
        this.drug_id = drugid
         var params = {
           drug_id:drugid,
           warehouseing_order:this.form.warehousing_order,
           type:this.form.type,
         }
        this.dialogVisible = true
        getDamagedByDrugId(params).then(response=>{
           if(response.data.state ==1){
             var list =  response.data.data.list
             for(let i=0;i<list.length;i++){
               list[i].min_number = 0
               list[i].min_number == list[i].XtBaseDrug.min_number
               list[i].total = 0
             }
             console.log("list232232332",list)

             for(let i=0;i<list.length;i++){
               this.drug_name = list[0].drug_name
               list[i].total = list[i].count
             }
             var total = 0
             for(let i=0;i<list.length;i++){
               total += list[i].total
               this.min_number = list[0].XtBaseDrug.min_number
               this.max_unit = list[0].XtBaseDrug.max_unit
               this.min_unit = list[0].XtBaseDrug.min_unit
               this.min_price = list[0].XtBaseDrug.min_price
             }
             this.total_count = total
             this.goodList = list
           }
        })
     },
     getDamagedCount(total){
     
      var str = ""
      var min_str = ""
      if(total< this.min_number){
        str = ""
        min_str = total + this.min_unit
      }
     if(total >= this.min_number){
        if(parseInt(total/this.min_number)!=0){
            str = parseInt(total/this.min_number)+ this.max_unit
        }
       if((total%this.min_number)!=0){
          min_str =  total%this.min_number + this.min_unit
        }
      }
      return str + min_str
     },
    getDamagedCountOne(total){
     
      var str = ""
      var min_str = ""
      if(total< this.min_number){
        str = ""
        min_str = total 
      }
     if(total >= this.min_number){
        if(parseInt(total/this.min_number)!=0){
            str = parseInt(total/this.min_number)
        }
       if((total%this.min_number)!=0){
          min_str =  total%this.min_number
        }
      }
      return str + min_str
     },
     toQuery(){
       this.clickDetai(this.drug_id)
     },
     getDrugDamageRadio(count){

       var total_count =  this.getDamagedCountOne(this.total_count)
       var all_count = 0
       all_count =  total_count * this.min_number
      
       return (count / all_count).toFixed(2)*100
     }
    },
    created(){
      this.getlist()
    },
}
</script>

<style rel="stylesheet/scss" lang="scss">
.app-container {
  // margin: 20px;
  font-size: 15px;
}
.modifyDialog{
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 10px;
    .el-form-item{
        width: 33%;
    }
}
.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;
}
::-webkit-scrollbar{
    height: 20px !important;
}
</style>
