<template>
  <div id='prescriptionPrint'>
    <div v-for="(i,index) in printData">
      <div v-for="(item,index) in i.prescriptions" :key="index">
        <div id='prescription-print' class="prescription-print" style="page-break-after: always;">
            <div class="printTitle" v-if="item.med_type == '1111'">{{orgname}}第一类精神处方笺</div>
            <div class="printTitle"  v-if="item.med_type == '1112'">{{orgname}}第二类精神处方笺</div>
            <div class="printTitle" v-if="item.med_type != '1111' && item.med_type != '1112'">{{orgname}}处方笺</div>
            <!--<div class="printTitle">{{orgname}}处方笺</div>-->
            <div class="infoTitle">
                <p>姓名：{{i.his_patient.id != 0?i.his_patient.name:i.name}}</p>
                <p>性别：
                  <span>
                    <span v-if="i.gender == 1">男</span>
                    <span v-if="i.gender == 2">女</span>
                  </span>
                </p>
                <p>年龄：{{i.his_patient.id != 0?getAge(i.his_patient):i.age}}岁</p>
            </div>
            <div class="infoMain">
                <div style="margin-bottom: 10px;">门诊号：{{i.his_patient.id != 0?i.his_patient.number:""}}</div>
                <div style="margin-bottom: 10px;">科室：{{i.his_patient.id != 0?getDepart(i.his_patient.departments):''}}</div>
                <div style="margin-bottom: 10px;">医保卡号：{{i.his_patient.id != 0?i.his_patient.id_card_no:""}}</div>
                <div style="margin-bottom: 10px;" v-if="org_id != 10188">电话：{{i.phone}}</div>
                <div style="margin-bottom: 10px;" v-else>日期：{{getTime(i.info.ctime)?getTime(i.info.ctime):""}}</div>
                <div>地址：{{i.home_address}}</div>
                <div style="display:flex;width:50%;">临床诊断：{{getDiagnosis(i.info.diagnosis)}}</div>
            </div>
            <div class="prescriptionBox">
                <div class="Rp">Rp:</div>
                <div class="drugsBox" v-for="(it,index) in item.advices" :key="index">
                    <!-- <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{it.advice_name?it.advice_name:""}}&nbsp;&nbsp;{{it.single_dose}}{{it.single_dose_unit}}&nbsp;×&nbsp; {{it.prescribing_number}}{{it.prescribing_number_unit}}</div> -->
                    <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{it.advice_name?it.advice_name:""}}&nbsp;&nbsp;<span v-if="it.drug.min_unit != it.drug.dose_unit">{{it.drug.dose}}{{it.drug.dose_unit}}&nbsp;* &nbsp;</span>{{it.drug.min_number}}{{it.drug.min_unit}}/{{it.drug.max_unit}}&nbsp;×&nbsp; {{it.prescribing_number}}{{it.prescribing_number_unit}}</div>
                    <div style="margin-left:100px;"><span>用法：{{it.single_dose}}{{it.single_dose_unit}}</span>&nbsp;&nbsp;<span>{{it.execution_frequency}}&nbsp;{{it.delivery_way}}&nbsp;</span>&nbsp;&nbsp;<span>{{it.advice_desc}}</span></div>
                </div>
                <div class="drugsBox" v-for="(it,i) in item.additionalcharge" :key="i">
                  <div class="drugsOne">{{it.item_name?it.item_name:""}}:&nbsp;{{it.price}}元/{{it.count}}次</div>
                </div>

                <div class="drugsBox" v-for="(it,index) in item.project" :key="index">
                    <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{it.type == 2?getProjectName(it.project_id)?getProjectName(it.project_id):"":it.good_info.good_name}}&nbsp;&nbsp;{{it.single_dose}}{{it.single_dose_unit}}&nbsp;×&nbsp; {{it.count}}{{unit}}</div>
                    <div style="margin-left:100px;"><span>用法：{{it.single_dose}}{{it.single_dose_unit}}</span>&nbsp;&nbsp;<span>{{it.delivery_way}}</span>&nbsp;&nbsp;<span>{{it.advice_desc}}</span></div>
                </div>
                <div class="drugsBox" v-for="(it,i) in item.additionalcharge" :key="i">
                  <div class="drugsOne">{{it.project_id?it.project_id:""}}:&nbsp;{{it.price.toFixed(2)}}元/{{it.count}}次</div>
                </div>
                <div style="text-align:center;" >(以下空白)</div>

            </div>
            <div class="doctorBox" v-if="org_id != 10188">
                <p>医师：{{i.info.doctor?i.info.doctor:""}}</p>
                <p>日期：{{getTime(i.info.ctime)?getTime(i.info.ctime):""}}</p>
            </div>
            <div class="doctorBox" v-else>
              <p>药师：</p>
              <p>医师：{{i.info.doctor?i.info.doctor:""}}</p>
            </div>
            <div class="actionBar" v-if="org_id != 10188">
                  <!-- <p>审核：{{getDoctor(item.advices[0].checker)?getDoctor(item.advices[0].checker):""}}</p>
                  <p>配对：</p>
                  <p>核对：{{getDoctor(item.advices[0].checker)?getDoctor(item.advices[0].checker):""}}</p>
                  <p>发药：{{getDoctor(item.advices[0].execution_staff)?getDoctor(item.advices[0].execution_staff):""}}</p>
                  <p>药费：{{getTotalOne(item.id)?getTotalOne(item.id):0}}元</p> -->

                  <p>审核：</p>
                  <p>配对：</p>
                  <p>核对：</p>
                  <p>发药：</p>
                  <p>药费：{{getTotalOne(item.advices).toFixed(2)?getTotalOne(item.advices).toFixed(2):0}}元</p>
  <!--            <p>药费：466.2元</p>-->

            </div>
            <div class="actionBar" v-else>
              <p style="visibility: hidden;">审核：</p>
              <p style="visibility: hidden;">配对：</p>
              <p style="visibility: hidden;">核对：</p>
              <p style="visibility: hidden;">发药：</p>
              <p>药费：{{getTotalOne(item.advices).toFixed(2)?getTotalOne(item.advices).toFixed(2):0}}元</p>
  <!--            <p>药费：551.2元</p>-->
  <!--            <p>药费：466.2元</p>-->


            </div>
            <div style="page-break-after:always"></div>
        </div>
      </div>
    </div>
  </div>


</template>
<script>
import { jsGetAge, uParseTime } from '@/utils/tools'
import {getAllDoctorList,getPrescriptionPrint,getHisPatientDetail} from "@/api/project/project"
import {getInitData} from "@/api/his/his"
export default {
    props:{
      patient_id:Number,
      record_date:String,
      prescription_id:Number,
      ids:String,
      printData:Array
    },
    data(){
      return {
        doctorList:[],
        advicePrint:{},
        patient:{},
        tableData:[],
        prescriptionInfo:[],
        hisPatient:{},
        department:[],
        prescriptions:[],
        projectList:[],
        orgname:"",
        diagnoses:[],
        org_id: 0
      }
    },
   methods:{
     getAge(patient){
       var thisLen = patient.id_card_no.length
       var birth = ''
       if (thisLen == 15) {
         birth = '19' + patient.id_card_no.substr(6, 6)
       } else {
         birth = patient.id_card_no.substr(6, 8)
       }
       var births =
         birth.substr(0, 4) +
         '-' +
         birth.substr(4, 2) +
         '-' +
         birth.substr(6, 2)
       return jsGetAge(births, '-')

     },

     getAllDoctorList(){
      getAllDoctorList().then(response=>{
        if(response.data.state == 1){
               var doctor =  response.data.data.doctor

               this.doctorList = doctor
             }
         })
     },

      getDoctor(id){
        var name = ""
        for(let i=0;i<this.doctorList.length;i++){
          if(id == this.doctorList[i].admin_user_id){
              name = this.doctorList[i].user_name
          }
        }
        return name
      },
      getTime(value, temp) {
        if (value != undefined) {
            return uParseTime(value, temp)
        }
        return ''
     },
       getPrescriptionPrint(){
         var params = {
          // patient_id:this.patient_id,
          // record_date:this.record_date,
          // prescription_id:this.prescription_id,
          patient_id:this.patient_id,
          record_date:this.record_date,
          prescription_id:this.prescription_id,
          ids:this.ids
        }
        console.log("params",params)
       getPrescriptionPrint(params).then(response=>{
         if(response.data.state == 1){
            var advicePrint =  response.data.data.advicePrint
            console.log("adviceprint9999",advicePrint)
            this.advicePrint = advicePrint
            this.prescriptions = advicePrint
            console.log("处方222222",this.prescriptions)
            var hisPatient = response.data.data.hisPatient
            console.log("hisPatient",hisPatient)
            this.hisPatient = hisPatient
            var projectlist =  response.data.data.projectlist
            console.log("所有项目列表",projectlist)
            this.projectList = projectlist
          }
       })
     },
     getHisPatientDetail(){
          const params = {
              patient_id:this.patient_id
          }
       getHisPatientDetail(params).then(response=>{
          if(response.data.state == 1){
             var hisPatient =  response.data.data.hisPatient
             console.log("挂号病人",hisPatient)
             this.hisPatient = hisPatient
          }
       })
     },
     getInitData(){
       getInitData().then(response=>{
          if(response.data.state == 1){
            this.department = response.data.data.department
            this.diagnoses = response.data.data.diagnose
            console.log("争端",this.diagnoses)
          }
       })
     },
     getDepart(id){
         var name = ""
       for(let i=0;i<this.department.length;i++){
           if(id == this.department[i].id){
               name = this.department[i].name
           }
       }
       return name
     },
    getTotalOne(advices) {
      let total = 0
      advices.map(item => {
        total += item.price * item.prescribing_number
      })
      return total
    },

     getProjectName(id){
        var project_name = ""
        for(let i=0;i<this.projectList.length;i++){
           if(id == this.projectList[i].id){
               project_name = this.projectList[i].project_name
           }
        }
        return project_name
     },

     getDiagnosis(id){
        var name = ""
        for(let i=0;i<this.diagnoses.length;i++){
          if(id == this.diagnoses[i].id){
             name = this.diagnoses[i].class_name
          }
        }
        return name
     }

   },
   created(){
      console.log('this.printData',this.printData)
      // this.getAllDoctorList()
      this.getInitData()
      // this.getPrescriptionPrint()
      // this.getHisPatientDetail()
      var xtuser = this.$store.getters.xt_user;
      this.orgname = xtuser.org.org_name;
      this.org_id = xtuser.org.id
   },
   watch:{
     ids:function(val){
      this.ids = val
      // this.getPrescriptionPrint()
    }
   }
}
</script>


<style lang="scss" scoped>
.prescription-print{
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
    margin-bottom: 20px;
    padding:20px 10px;
}
.printTitle{
    font-size: 22px;
    text-align: center;
    font-weight: bold;
}
.infoTitle{
    display: flex;
    border-bottom: 2px solid #000;
    margin-top:10px;
    line-height: 24px;
    padding:0 10px;
}
.infoTitle p{
    width: 200px;
}
.infoMain{
    display: flex;
    flex-wrap: wrap;
    border-bottom: 2px solid #000;
    padding:0 10px;
}
.infoMain div{
    width: 50%;
    line-height: 24px;
}
.prescriptionBox{
    padding:0 10px;
    min-height:450px;
}
.Rp{
    font-size: 22px;
    font-weight: bold;
}
.drugsBox{
    padding-left: 40px;
    margin-bottom: 10px;
}
.drugsBox div{
    line-height: 20px;
}
.drugsOne{
    line-height: 24px;
}
.drugsOne span{
    margin-right: 20px;
}
.doctorBox{
    display: flex;
    justify-content: space-between;
    padding:0 10px;
    line-height: 24px;
    border-bottom: 2px solid #000;
}
.actionBar{
    display: flex;
    justify-content: space-between;
    line-height: 24px;
    padding:0 10px;
}
.actionBar p{
    width:150px;
}
</style>
