<template>
    <div id='prescriptionPrint'>
        <div id='prescription-print' class="prescription-print" v-for="(item,index) in advicePrint" :key="index">

            <div style="display:flex;justify-content: space-between;font-weight:bold;align-items:center;">
                <div style="width:200px;display:flex;justify-content: space-between;font-weight:bold;">
                    <span>费别</span>
                    <span>自费</span>
                    <span>公费</span>
                    <span>保险</span>
                    <span>其他</span>
                </div>
                <div>就诊日期：{{getTime(item.ctime,'{y}-{m}-{d}')}}</div>
            </div>

            <div class="printTitle">{{orgname}}</div>
            <div class="printTitle">处方、治疗单</div>

            <div class="infoTitle">
                <div>门诊编号：</div>
                <div>电脑号：</div>
            </div>

            <div class="infoMain">
                <div style="margin-bottom: 10px;width:25%">姓名：{{item.patient.name}}</div>
                <div style="margin-bottom: 10px;width:25%">性别：
                    <span v-if="item.patient.gender == 1">男</span>
                    <span v-if="item.patient.gender == 2">女</span>
                </div>
                <div style="margin-bottom: 10px;width:25%">年龄：
                    <span>{{item.patient.age}}</span>
                </div>
                <div style="margin-bottom: 10px;width:25%">参保类型：{{hisPatient.social_type?hisPatient.social_type:''}}
                </div>
                <div style="margin-bottom: 10px;width:50%;">联系电话：{{item.patient.phone}}</div>
                <div style="width:50%;">地址：{{item.patient.unit_address}}</div>
                <div style="width:100%;">诊断：{{getDiagnosis(item.info.diagnosis)}}</div>
            </div>

            <div class="prescriptionBox">
                <table style="width:100%;text-align:center;line-height:25px;">
                    <tr>
                        <td>序号</td>
                        <td>项目名称</td>
                        <td>数量</td>
                        <td>单位</td>
                        <td>单价</td>
                        <td>部位</td>
                        <td>备注</td>
                        <td>天数</td>
                    </tr>
                    <tr v-for="(it,index) in item.project" :key="index">
                        <td>{{index+1}}</td>
                        <td>{{it.type == 2 ? it.project.project_name : it.good_info.good_name}}</td>
                        <td>{{it.single_dose}}</td>
                        <td>{{getUnit(it.unit)}}</td>
                        <td>{{it.price}}</td>
                        <td></td>
                        <td>{{it.remark}}</td>
                        <td>{{it.day}}</td>

                    </tr>

                    <tr v-for="(it,index) in item.advices" :key="index">
                        <td>{{index+1}}</td>
                        <td>{{it.advice_name?it.advice_name:''}}</td>
                        <td>{{it.single_dose?it.single_dose:''}}</td>
                        <td>{{it.single_dose_unit?it.single_dose_unit:''}}</td>
                        <td>{{it.price}}</td>
                        <td></td>
                        <td>{{it.remark}}</td>
                        <td>{{it.day}}</td>

                    </tr>
                </table>
            </div>

            <div class="infoTitle">
                <div>开单医生：{{item.doctor?item.doctor:''}}</div>
                <div>签章：</div>
            </div>

            <div class="actionBar">
                <div>执行医生：{{item.doctor?item.doctor:''}}</div>
                <div>费用：{{getTotalOne(item.id).toFixed(2)?getTotalOne(item.id).toFixed(2):''}}元</div>
            </div>

            <table style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
                <tr>
                    <td style="width:16%;">治疗时间</td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                </tr>
                <tr>
                    <td style="width:16%;">医生签字</td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                    <td style="width:16%;"></td>
                </tr>
                <tr>
                    <td style="width:16px;">患者签字</td>
                    <td style="width:16px;"></td>
                    <td style="width:16px;"></td>
                    <td style="width:16px;"></td>
                    <td style="width:16px;"></td>
                    <td style="width:16px;"></td>
                </tr>
            </table>
        </div>


        <!-- <div id='prescriptionPrint'>

            <div v-for="(item,index) in advicePrint" :key="index">
                <div id='prescription-print' class="prescription-print" style="page-break-after: always;">
                    <div style="display:flex;justify-content: space-between;font-weight:bold;">
                        <div style="width:200px;display:flex;justify-content: space-between;font-weight:bold;">
                            <span>费别</span>
                            <span>自费</span>
                            <span>公费</span>
                            <span>保险</span>
                            <span>其他</span>
                        </div>
                        <div>就诊日期：{{getTime(item.ctime)}}</div>
                    </div>

                    <div class="printTitle">血液透析中心</div>

                    <div class="printTitle">处方、治疗单</div>

                    <div class="infoTitle">
                        <div>门诊编号：</div>
                        <div>电脑号：</div>
                    </div>

                    <div class="infoMain">
                        <div style="margin-bottom: 10px;width:25%">姓名：{{item.patient.name}}</div>
                        <div style="margin-bottom: 10px;width:25%">性别：
                            <span v-if="item.patient.gender == 1">男</span>
                            <span v-if="item.patient.gender == 2">女</span>
                        </div>
                        <div style="margin-bottom: 10px;width:25%">年龄：
                            <span>{{item.patient.age}}</span>
                        </div>
                        <div style="margin-bottom: 10px;width:25%">参保类型：</div>
                        <div style="margin-bottom: 10px;width:50%;">联系电话：{{item.patient.phone}}</div>
                        <div style="width:50%;">地址：{{item.patient.unit_address}}</div>
                        <div style="width:100%;">诊断：{{item.patient.diagnose}}</div>
                    </div>

                    <div class="prescriptionBox">
                        <table style="width:100%;text-align:center;line-height:25px;">
                            <tr>
                                <td>序号</td>
                                <td>项目名称</td>
                                <td>数量</td>
                                <td>单位</td>
                                <td>单价</td>
                                <td>部位</td>
                                <td>备注</td>
                                <td>天数</td>
                            </tr>
                            <tr v-for="(it,index) in item.project" :key="index">
                                <td>{{index+1}}</td>
                                <td>{{getProjectName(it.project_id)}}</td>
                                <td>{{it.single_dose}}</td>
                                <td>{{getUnit(it.unit)}}</td>
                                <td>{{it.price}}</td>
                                <td></td>
                                <td>{{it.remark}}</td>
                                <td>{{it.day}}</td>

                            </tr>
                        </table>
                    </div>
                    <div class="infoTitle">
                        <div>开单医生：{{getDoctor(item.doctor)?getDoctor(item.doctor):""}}</div>
                        <div>签章：</div>
                    </div>
                    <div class="actionBar">
                        <div>执行医生：{{getDoctor(item.doctor)?getDoctor(item.doctor):""}}</div>
                        <div>费用：</div>
                    </div>
                    <table style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
                        <tr>
                            <td style="width:16%;">治疗时间</td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                        </tr>
                        <tr>
                            <td style="width:16%;">医生签字</td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                            <td style="width:16%;"></td>
                        </tr>
                        <tr>
                            <td style="width:16px;">患者签字</td>
                            <td style="width:16px;"></td>
                            <td style="width:16px;"></td>
                            <td style="width:16px;"></td>
                            <td style="width:16px;"></td>
                            <td style="width:16px;"></td>
                        </tr>
                    </table>
                </div>

            </div>

        </div> -->
    </div>
</template>
<script>
  import { jsGetAge, uParseTime } from '@/utils/tools'
  import { getAllDoctorList, getPrescriptionPrint } from '@/api/project/project'
  import { getInitData } from '@/api/his/his'

  export default {
    props: {
      patient_id: Number,
      record_date: String,
      prescription_id: Number,
      ids: String
    },
    data() {
      return {
        doctorList: [],
        advicePrint: {},
        patient: {},
        tableData: [],
        prescriptionInfo: [],
        projectList: [],
        prescriptions: [],
        settlement:
          [
            { value: 1, label: '医保' },
            { value: 2, label: '自费' },
            { value: 3, label: '公费' },
            { value: 4, label: '农保' },
            { value: 5, label: '会员' },
            { value: 6, label: '职工' },
            { value: 7, label: '合同' },
            { value: 8, label: '医保自费' }

          ],
        hisPatient: {},
        diagnoses: []
      }
    },
    methods: {
      printThisPage() {
        var ptime = Math.round(new Date().getTime() / 1000)
        this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')

        const style =
          '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoTitle{display: flex;margin-top:10px;line-height: 1px;padding:0 10px;}.infoTitle p{width: 200px;}.otherInfo{display: flex;margin-top:10px;padding:0 10px;}.otherInfo span{display:inline-block;}.recordTitle{display: flex;margin-top:10px;line-height: 24px;padding:0 10px;border-bottom: 2px solid #000;}.recordTitle p{width: 200px;}}'
        printJS({
          printable: 'prescription-print',
          type: 'html',
          style: style,
          scanStyles: false
        })
      },
      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,
          ids: this.ids
        }
        console.log('999999', params)
        getPrescriptionPrint(params).then(response => {
          if (response.data.state == 1) {
            var advicePrint = response.data.data.advicePrint
            console.log('adviceprint', advicePrint)
            this.advicePrint = advicePrint
            this.prescriptions = advicePrint
            var projectlist = response.data.data.projectlist
            console.log('所有项目列表', projectlist)
            this.projectList = projectlist
            this.hisPatient = response.data.data.hisPatient

          }
        })
      },
      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
      },
      getUnit(id) {
        var unit = ''
        for (let i = 0; i < this.projectList.length; i++) {
          if (id == this.projectList[i].id) {
            unit = this.projectList[i].unit
          }
        }
        return unit
      },

      getTotalOne(id) {

        var total = 0
        var addtotal = 0
        for (let i = 0; i < this.prescriptions.length; i++) {
          if (id == this.prescriptions[i].id) {
            if (this.prescriptions[i].project != null) {
              for (let a = 0; a < this.prescriptions[i].project.length; a++) {
                total = total + this.prescriptions[i].project[a].price * this.prescriptions[i].project[a].count
              }
            }

            if (this.prescriptions[i].additionalcharge != null) {
              for (let a = 0; a < this.prescriptions[i].additionalcharge.length; a++) {
                addtotal = addtotal + this.prescriptions[i].additionalcharge[a].price * this.prescriptions[i].additionalcharge[a].count
              }
            }
            addtotal = Math.floor(addtotal * 100) / 100
          }

        }

        for (let i = 0; i < this.prescriptions.length; i++) {
          if (id == this.prescriptions[i].id) {
            if (this.prescriptions[i].advices != null) {
              for (let a = 0; a < this.prescriptions[i].advices.length; a++) {
                total = total + this.prescriptions[i].advices[a].price * this.prescriptions[i].advices[a].prescribing_number
              }
            }

            if (this.prescriptions[i].additionalcharge != null) {
              for (let a = 0; a < this.prescriptions[i].additionalcharge.length; a++) {
                addtotal = addtotal + this.prescriptions[i].additionalcharge[a].price * this.prescriptions[i].additionalcharge[a].count
              }
            }
            addtotal = Math.floor(addtotal * 100) / 100
          }
        }

        return total + addtotal
      },
      getInitData() {
        getInitData().then(response => {
          if (response.data.state == 1) {
            this.diagnoses = response.data.data.diagnose
            console.log('争端', this.diagnoses)
          }
        })
      },
      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() {
      this.getInitData()
      this.getAllDoctorList()
      this.getPrescriptionPrint()
      var xtuser = this.$store.getters.xt_user
      this.orgname = xtuser.org.org_name

    },
    watch: {
      patient_id: function(val) {
        console.log('101000010101010', this.patient_id, this.record_date, this.prescription_id)
        //    this.getPrescriptionPrint()
      },
      ids: function(val) {
        this.ids = val
        console.log('this.idsids', this.ids)
        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;
    }

    .prescription-print {
        font-size: 14px;
    }

    .printTitle {
        font-size: 18px;
        text-align: center;
        font-weight: bold;
        margin-top: 10px;
    }

    .infoTitle {
        display: flex;
        border-bottom: 2px solid #000;
        margin-top: 10px;
        line-height: 24px;
        padding: 0 10px;
    }

    .infoTitle div {
        width: 300px;
    }

    .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: 600px;
    }

    .Rp {
        font-size: 22px;
        font-weight: bold;
    }

    .drugsBox {
        padding-left: 40px;
        margin-bottom: 10px;
    }

    .drugsBox p {
        line-height: 30px;
    }

    .drugsOne {
        line-height: 24px;
    }

    .drugsOne span {
        margin-right: 20px;
    }

    .actionBar {
        display: flex;
        justify-content: space-between;
        line-height: 24px;
        padding: 0 10px;
    }

    .actionBar div {
        width: 150px;
    }
</style>
