<template>
  <div class="main-contain">

    <div
      class="loadingBox"
      v-loading="loading"
      element-loading-text="拼命加载中"
      element-loading-spinner="el-icon-loading"
      element-loading-background="rgba(0, 0, 0, 0.8)"
      v-if="dialysisShow"
    >
    <!--  -->
      <div style="padding-top: 56px;width:100%;" >

        <nav-igation
          ref="nav"
          title="弹窗导航"
          @advice="adviceFunc"
          :patient="patient"
          :schedual="schedual"
          :prescription="prescription"
          :solution="solution"
          :receiver_treatment_access="receiver_treatment_access"
          :predialysis_evaluation="predialysis_evaluation"
          :doctor_advices="doctor_advices"
          :double_check="double_check"
          :assessment_after_dislysis="assessment_after_dislysis"
          :treatment_summary="treatment_summary"
          :monitor_records="monitor_records"
          :dialysis_order="dialysis_order"
          :admin_users="admin_users"
          :devices="devices"
          :device_numbers="device_numbers"
          :admin_user_map="admin_user_map"
          :device_map="device_map"
          :device_number_map="device_number_map"
          :niprocart_info="niprocart_info"
          :jms_info="jms_info"
          :fistula_needle_set_info="fistula_needle_set_info"
          :fistula_needle_set_16_info="fistula_needle_set_16_info"
          :hemoperfusion_info="hemoperfusion_info"
          :dialyser_sterilised_info="dialyser_sterilised_info"
          :filtryzer_info="filtryzer_info"
          :dialyzers_info="dialyzers_info"
          :injector_info="injector_info"
          :bloodlines_info="bloodlines_info"
          :tubingHemodialysis_info="tubingHemodialysis_info"
          :safe_package_info="safe_package_info"
          :aliquid_info="aliquid_info"
          :config="config"
          :longAdvices="longAdvices"
          :waitUploadAdvices="waitUploadAdvices"
          :is_open="is_open"
          :last_predialysis_evaluation="lastPredialysisEvaluation"
          :last_monitor_record="lastMonitorRecord"
          :last_assessment_after_dislysis="lastAssessmentAfterDislysis"
          :last_dialysis_prescribe="lastDialysisPrescribe"
          :last_dryWeight_dislysis="lastDryWeightDislysis"
          :special_premission="headNurses"
          @assessmentAfterDislysis="assessmentAfterDislysisFunc"
          :system_prescribe="system_prescribe"
          :his_is_open="his_is_open"
          :is_advice_open="is_advice_open"
          :lastAssessment="lastAssessment"
          :stockType="stockType"
          :mode_id="mode_id"
          :record_date="date"
        >
        </nav-igation>

        <!-- <basic-infor
          :patient="patient"
          :device_number="schedual.id == 0 ? '' : schedual.device_number.number"
          :steps="steps"
          title="基本信息"
        ></basic-infor> -->

        <BasicInforTwo
          :patient="patient"
          :dialysis_date="dialysis_date"
          :device_number="schedual.id == 0 ? '' : schedual.device_number.number"
          :steps="steps"
          title="基本信息"
        >
        </BasicInforTwo>

        <dialysis-prescription
          :prescription="prescription"
          :solution="solution"
          :device_map="device_map"
          :preparestock="preparestock"
          title="透析处方"
        ></dialysis-prescription>



      <!-- <past-data class="往期数据"></past-data> -->
        <div style="height: 20px;background-color: #f6f8f9"></div>
        <accepts-assessment
          :record="receiver_treatment_access"
          title="接诊评估"
        ></accepts-assessment>

        <assessment-before
          :record="predialysis_evaluation"
          ref="assessment_before"
          title="透前评估"
        ></assessment-before>

        <stat-order
          ref="stat_order"
          :advices="doctor_advices"
          :doctor_map="admin_user_map"
          title="临时医嘱"
        ></stat-order>

        <double-check
          ref="double_check"
          :record="double_check"
          :admin_map="admin_user_map"
          title="双人核对 "
        ></double-check>

        <dialysis-computer
          ref="dialysis_computer"
          :record="dialysis_order"
          :admin_map="admin_user_map"
          :device_number_map="device_number_map"
          title="透析上机 "
        ></dialysis-computer>

        <dialysis-monitoring
          ref="monitoring"
          :monitores="monitor_records"
          title="透析监测"
        ></dialysis-monitoring>


        <dialysis-off
          ref="dialysis_off"
          :record="dialysis_order"
          :admin_map="admin_user_map"
          title="透析下机 "
        ></dialysis-off>

        <assessment-after
          ref="assessment_after"
          :record="assessment_after_dislysis"
          title="透后评估"
        ></assessment-after>

        <treatment-of
          ref="treatment_of"
          :record="treatment_summary"
          title="治疗小结"
        ></treatment-of>
      </div>

    </div>
    <div style="padding-top: 56px;width:100%;text-align:center;font-size:22px;color:red;" v-else>该患者未排班，请先去排班</div>
  </div>
</template>

<script>
const moment = require('moment')
import axios from 'axios'
import NavIgation from '@/xt_pages/dialysis/details/NavIgation'
import BasicInforTwo from '@/xt_pages/dialysis/details/BasicInforTwo'
import DialysisPrescription from '@/xt_pages/dialysis/details/DialysisPrescription'
import PastData from '@/xt_pages/dialysis/details/pastData'
import AcceptsAssessment from '@/xt_pages/dialysis/details/acceptsAssessment'
import AssessmentBefore from '@/xt_pages/dialysis/details/assessmentBefore'
import StatOrder from '@/xt_pages/dialysis/details/statOrder'
import DialysisComputer from '@/xt_pages/dialysis/details/dialysisComputer'
import DoubleCheck from '@/xt_pages/dialysis/details/doubleCheck'
import DialysisMonitoring from '@/xt_pages/dialysis/details/dialysisMonitoring'
import DialysisOff from '@/xt_pages/dialysis/details/dialysisOff'
import AssessmentAfter from '@/xt_pages/dialysis/details/assessmentAfter'
import TreatmentOf from '@/xt_pages/dialysis/details/treatmentOf'
import OperationStaff from '@/xt_pages/dialysis/details/operationStaff'
import {
  getDialysisScheduleDetail,
  getLongAdvice,
  getDialysisRecordInitData,
  getDialysisSchedules
} from '@/api/dialysis_record'
import { parseTime } from '@/utils'
import BreadCrumb from '@/xt_pages/components/bread-crumb'

export default {
  name: 'index',
  components: {
    NavIgation,
    BasicInforTwo,
    DialysisPrescription,
    PastData,
    AcceptsAssessment,
    AssessmentBefore,
    StatOrder,
    DialysisComputer,
    DoubleCheck,
    DialysisMonitoring,
    DialysisOff,
    AssessmentAfter,
    TreatmentOf,
    OperationStaff,
    BreadCrumb
  },
  props:{
    record_date:String,
    patientid:Number,
    dialysisShow:Boolean,
    dialysis_date:String
  },
  data() {
    return {
      crumbs: [
        { path: false, name: '透析管理' },
        { path: false, name: '透析记录' },
        { path: false, name: '透析单' }
      ],
      dialogFormVisible: false,
      orders: false,
      loading: false,
      patient_id: 0,
      date: 0,
      dialysis_date:0,

      longAdvices: [],
      waitUploadAdvices: [],
      is_open: 0,
      targetAdvices: [],

      patient: { id: 0 }, // 患者信息
      schedual: { id: 0 }, // 患者排班信息
      prescription: { id: 0 }, // 透析处方
      solution: { id: 0 }, // 透析方案
      system_prescribe: { id: 0 },
      receiver_treatment_access: { id: 0 }, // 接诊评估
      predialysis_evaluation: { id: 0 }, // 透前评估
      doctor_advices: [], // 临时医嘱
      double_check: { id: 0 }, // 双人核对
      assessment_after_dislysis: { id: 0 }, // 透后评估
      treatment_summary: { id: 0 }, // 治疗小结
      monitor_records: [], // 透析监测
      dialysis_order: { id: 0 }, // 透析记录
      admin_users: [], // 系统用户列表
      devices: [], // 设备
      device_numbers: [], // 床位号

      admin_user_map: {}, // {user_id: admin_user object}
      device_map: {}, // {device_id: device}
      device_number_map: {}, // {device_number_id: device_number}

      niprocart_info: [],
      jms_info: [],
      fistula_needle_set_info: [],
      fistula_needle_set_16_info: [],
      hemoperfusion_info: [],
      dialyser_sterilised_info: [],
      filtryzer_info: [],
      dialyzers_info: [],
      injector_info: [],
      bloodlines_info: [],
      tubingHemodialysis_info: [],
      safe_package_info: [],
      aliquid_info: [],
      config: {},

      his_is_open:0,
      is_advice_open:0,
      lastPredialysisEvaluation: { id: 0 },
      lastMonitorRecord: { id: 0 },
      lastAssessmentAfterDislysis: { id: 0 },
      lastDryWeightDislysis: { id: 0 },
      lastAssessment:{id:0},
      headNurses: [],
      lastDialysisPrescribe: { id: 0 },
      //
      activeName: 'first',
      selected_date: new Date(),
      // search_input 和 search_keyword，使输入关键字时不会经常刷新 filtedSchedules
      search_keyword: '', // 确定用于搜索的关键字
      search_input: '', // 输入中的关键字
      patient_state: [
        { value: 0, label: '全部患者' },
        { value: 1, label: '已签到' },
        { value: 2, label: '未签到' },
        { value: 3, label: '已上机' },
        { value: 4, label: '已下机' }
      ],
      patientStateVal: 0,
      treat_state: [
        { value: 0, label: '全部治疗' },
        { value: 1, label: '待开处方' },
        { value: 2, label: '待开小结' },
        { value: 3, label: '待医嘱核对' },
      ],
      treatStateVal: 0,
      schedule_options: [
        { value: 0, label: '全部班' },
        { value: 1, label: '上午' },
        { value: 2, label: '下午' },
        { value: 3, label: '晚上' }
      ],
      scheduleStateVal: 0,
      zone_options: [
        { id: 0, text: '全部分区' }
      ],
      zoneVal: 0,
      tableData: [],
      tableData1: [],
      arr: [],
      newName: '',
      newTime: '',
      scheudle_mode:"",


      showView:false,
      curPatient:{},

      queueConfig:{},
      stockType:[],
      preparestock:[],
      dialysisShow:false,
      mode_id:1
    }
  },
  created() {
    var patient_id = this.patientid
    var date = this.record_date
    this.patient_id = patient_id
    this.date = date
    // var ymd = parseTime(new Date(), '{y}-{m}-{d}')
    getDialysisSchedules(this.date).then(rs => {
      var resp = rs.data
      if (resp.state == 1) {
        var schedules = resp.data.schedules
        let arr = []
        schedules.map(item => {
          if(item.patient_id == this.patient_id){
            arr.push(item.patient_id)
            console.log('item',item)
            this.mode_id = item.mode_id
          }
        })
        if(arr.length > 0){
          this.dialysisShow = true
        }else{
          this.dialysisShow = false
        }
        console.log('this.dialysisShowthis.dialysisShowthis.dialysisShow',this.dialysisShow)
      } else {
        this.$message.error(resp.msg)
      }
    })

  },
  mounted() {
    if(this.dialysisShow == true){

      this.getScheduleDetail()
      this.getLongAdvice()
    }

  },
  watch:{
        patientid:{
            handler(newVal){
             
              // var ymd = parseTime(new Date(), '{y}-{m}-{d}')
              getDialysisSchedules(this.record_date).then(rs => {
                var resp = rs.data
                if (resp.state == 1) {
                  var schedules = resp.data.schedules
                  let arr = []
                  schedules.map(item => {
                    if(item.patient_id == this.patient_id){
                      arr.push(item.patient_id)
                      this.mode_id = item.mode_id
                    }
                  })
                  if(arr.length > 0){
                    this.dialysisShow = true
                  }else{
                    this.dialysisShow = false
                  }
                  console.log('this.dialysisShowthis.dialysisShowthis.dialysisShow',this.dialysisShow)
                } else {
                  this.$message.error(resp.msg)
                }
              })
              console.log('执行执行执行执行执行执行',this.dialysisShow)
              if(this.dialysisShow == true){
                console.log('执行')
                this.patient_id = newVal
                this.getScheduleDetail()
                this.getLongAdvice()
              }
            },
            deep:true
        },
  },
  computed: {
    websocket() {
      return this.$store.state.user.websocket;
    },
    steps: function() {
      var steps = [
        { title: '透析处方', finish: false },
        { title: '接诊评估', finish: false },
        { title: '透前评估', finish: false },
        { title: '临时医嘱', finish: false },
        { title: '双人核对', finish: false },
        { title: '透析上机', finish: false },
        { title: '透析监测', finish: false },
        { title: '透析下机', finish: false },
        { title: '透后评估', finish: false },
        { title: '治疗小结', finish: false }
      ]

      steps[0].finish = this.prescription.id && this.prescription.creater > 0
      steps[1].finish = this.receiver_treatment_access.id > 0
      steps[2].finish =
        this.predialysis_evaluation.id > 0 &&
        this.predialysis_evaluation.creater > 0
      steps[3].finish = this.doctor_advices.length > 0
      steps[5].finish = this.dialysis_order.id > 0
      steps[7].finish =
        this.dialysis_order.id > 0 && this.dialysis_order.stage == 2

      steps[4].finish =
        this.double_check.id > 0 &&
        this.double_check.creater > 0 &&
        this.double_check.modifier > 0
      steps[6].finish = this.monitor_records.length > 0
      steps[8].finish =
        this.assessment_after_dislysis.id > 0 &&
        this.assessment_after_dislysis.creater > 0
      steps[9].finish = this.treatment_summary.id > 0

      return steps
    },
    filtedSchedules: function() {
      var search_keyword = this.search_keyword
      if (search_keyword.length > 0) {
        var schedules = []
        for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
          const scheduleInfo = this.zone_schedules[o_i]
          var originSchedules = scheduleInfo.schedules
          if (originSchedules.length == 0) {
            continue
          }
          var filtedSchedules = []
          for (let s_i = 0; s_i < originSchedules.length; s_i++) {
            const schedule = originSchedules[s_i]
            if (schedule.patient.name.indexOf(search_keyword) != -1) {
              filtedSchedules.push(schedule)
              // break
            }
          }
          if (filtedSchedules.length > 0) {
            schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
          }
        }
        return schedules
      }

      // var zone_selected = this.zoneVal
      // var timetype_selected = this.scheduleStateVal
      // if ((zone_selected == 0 && timetype_selected == 0) || this.zone_options.length <= 1) {
      //   var schedules = []
      //   for (let index = 0; index < this.zone_schedules.length; index++) {
      //     const scheduleInfo = this.zone_schedules[index]
      //     if (scheduleInfo.schedules.length != 0) {
      //       schedules.push(scheduleInfo)
      //     }
      //   }
      //   return schedules
      // }

      // var schedules = []
      // for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
      //   const scheduleInfo = this.zone_schedules[o_i]
      //   if (zone_selected == scheduleInfo.zone_id && timetype_selected == 0) {
      //     if (scheduleInfo.schedules.length == 0) {
      //       return []
      //     } else {
      //       return [scheduleInfo]
      //     }
      //   }
      //   var originSchedules = scheduleInfo.schedules
      //   if (originSchedules.length == 0) {
      //     continue
      //   }
      //   var filtedSchedules = []
      //   for (let s_i = 0; s_i < originSchedules.length; s_i++) {
      //     const schedule = originSchedules[s_i]
      //     if (zone_selected != 0) {
      //       if (zone_selected == schedule.device_number.zone.id) {
      //         if (timetype_selected == 0 || schedule.schedule_type == timetype_selected) {
      //           filtedSchedules.push(schedule)
      //         }
      //       }
      //     } else {
      //       if (timetype_selected == 0 || schedule.schedule_type == timetype_selected) {
      //         filtedSchedules.push(schedule)
      //       }
      //     }
      //   }
      //   if (filtedSchedules.length > 0) {
      //     schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
      //   }
      // }

      // return schedules
    }
  },
  methods: {
    adviceFunc() {
      this.getScheduleDetail()
    },
    getLongAdvice() {
      const params = {
        patient_id: this.patient_id
      }
      getLongAdvice(params).then(rs => {
        var resp = rs.data
        if (resp.state == 1) {
          var status = parseInt(resp.data.status)

          switch (status) {
            case 2:
              var totalAdvice = resp.data.advices
              var longAdvicesTwo = resp.data.advices_two
              var waitUploadAdvices = []
              for (let i = 0; i < totalAdvice.length; i++) {
                totalAdvice[i]['isCheck'] = 1
              }

              for (let i = 0; i < totalAdvice.length; i++) {
                for (let a = 0; a < longAdvicesTwo.length; a++) {
                  if (
                    totalAdvice[i].template_id ==
                      longAdvicesTwo[a].template_id &&
                    totalAdvice[i].frequency_type ==
                      longAdvicesTwo[a].frequency_type
                  ) {
                    totalAdvice[i]['isCheck'] = 0
                  }
                }
              }

              for (let i = 0; i < totalAdvice.length; i++) {
                if (totalAdvice[i].isCheck == 1) {
                  waitUploadAdvices.push(totalAdvice[i])
                }
              }

              this.is_open = resp.data.is_open_remind
              if(this.his_is_open == 1){
                this.is_open = 0
              }
              if(this.is_advice_open == 1){
               this.is_open =1
              }
              this.longAdvices = totalAdvice
              this.waitUploadAdvices = waitUploadAdvices
              break
          }
        } else {
          this.$message.error(resp.msg)
        }
      })
    },
    assessmentAfterDislysisFunc: function(val) {
      for (var index in val) {
        this.$set(this.assessment_after_dislysis, index, val[index])
      }
    },
    didDelMonitor(record_id) {
      var mrl = this.monitor_records.length
      for (let index = 0; index < mrl; index++) {
        if (this.monitor_records[index].id == record_id) {
          this.monitor_records.splice(index, 1)
          break
        }
      }
    },
    getScheduleDetail: function() {

      this.loading = true
    //   var dateStr = parseTime(this.date, '{y}-{m}-{d}')
      // if(this.$route.query.showView == true){
      //   this.loading = false
      //   return
      // }
        console.log('this.patient_id',this.patient_id)
        console.log('this.date',this.date)
      this.doctor_advices = []
      getDialysisScheduleDetail(this.patient_id, this.date).then(rs => {

        var resp = rs.data
        if (resp.state == 1) {
          var patient = resp.data.patient // 患者信息
          var schedual = resp.data.schedual // 患者排班信息

          var prescription = resp.data.prescription // 透析处方
          if (prescription != null) {
            if (prescription.body_fluid == -2) {
              prescription.body_fluid = 0
            }
          }

          var solution = resp.data.solution // 透析方案

          var receiver_treatment_access = resp.data.receiver_treatment_access // 接诊评估

          var predialysis_evaluation = resp.data.predialysis_evaluation // 透前评估
           console.log("透器评估",predialysis_evaluation)
          if (predialysis_evaluation != null) {
            if (predialysis_evaluation.blood_access_part_id == -2) {
              predialysis_evaluation.blood_access_part_id = 0
            }
          }
          var doctor_advices = resp.data.doctor_advices // 临时医嘱

          var double_check = resp.data.double_check // 双人核对
          var assessment_after_dislysis = resp.data.assessment_after_dislysis // 透后评估

          var treatment_summary = resp.data.treatment_summary // 治疗小结
          var monitor_records = resp.data.monitor_records // 透析监测
          var dialysis_order = resp.data.dialysis_order // 透析记录

          var niprocart_info = resp.data.niprocart_info
          var jms_info = resp.data.jms_info
          var fistula_needle_set_info = resp.data.fistula_needle_set_info
          var fistula_needle_set_16_info = resp.data.fistula_needle_set_16_info
          var hemoperfusion_info = resp.data.hemoperfusion_info
          var dialyser_sterilised_info = resp.data.dialyser_sterilised_info
          var filtryzer_info = resp.data.filtryzer_info
          var dialyzers_info = resp.data.dialyzers_info
          var injector_info = resp.data.injector_info
          var bloodlines_info = resp.data.bloodlines_info
          var tubingHemodialysis_info = resp.data.tubingHemodialysis_info
          var safe_package_info = resp.data.safe_package_info
          var aliquid_info = resp.data.aliquid_info

          var lastPredialysisEvaluation = resp.data.lastPredialysisEvaluation

          if (lastPredialysisEvaluation != null) {
            if (lastPredialysisEvaluation.blood_access_part_id == -2) {
              lastPredialysisEvaluation.blood_access_part_id = 0
            }
          }
          var lastMonitorRecord = resp.data.lastMonitorRecord
          var lastAssessmentAfterDislysis = resp.data.lastAssessmentAfterDislysis
          var lastDialysisPrescribe = resp.data.lastDialysisPrescribe
          var lastDryWeightDislysis = resp.data.lastDryWeightDislysis

          var system_prescribe = resp.data.system_prescribe

          var lastAssessment =  resp.data.lastAssessment
          // console.log("最后一次血管通路",lastAssessment)
          this.$refs.nav.setLastRecord(
            lastPredialysisEvaluation,
            lastMonitorRecord,
            lastAssessmentAfterDislysis,
            lastDialysisPrescribe,
            lastDryWeightDislysis,
            schedual,
            system_prescribe,
            lastAssessment,
          )

          var headNurses = resp.data.headNurse

          var config = resp.data.config
          this.lastPredialysisEvaluation = lastPredialysisEvaluation
          this.lastMonitorRecord = lastMonitorRecord
          this.lastAssessmentAfterDislysis = lastAssessmentAfterDislysis
          this.lastDialysisPrescribe = lastDialysisPrescribe
          this.lastDryWeightDislysis = lastDryWeightDislysis
          this.lastAssessment = lastAssessment
          this.headNurses = headNurses
          this.system_prescribe = system_prescribe



          this.niprocart_info = []
          this.jms_info = []
          this.fistula_needle_set_info = []
          this.fistula_needle_set_16_info = []
          this.hemoperfusion_info = []
          this.dialyser_sterilised_info = []

          this.filtryzer_info = []
          this.dialyzers_info = []
          this.injector_info = []

          this.bloodlines_info = []
          this.tubingHemodialysis_info = []
          this.safe_package_info = []
          this.aliquid_info = []





          this.niprocart_info = niprocart_info
          this.jms_info = jms_info
          this.fistula_needle_set_info = fistula_needle_set_info
          this.fistula_needle_set_16_info = fistula_needle_set_16_info
          this.hemoperfusion_info = hemoperfusion_info
          this.dialyser_sterilised_info = dialyser_sterilised_info
          this.filtryzer_info = filtryzer_info
          this.dialyzers_info = dialyzers_info
          this.injector_info = injector_info
          this.bloodlines_info = bloodlines_info
          this.tubingHemodialysis_info = tubingHemodialysis_info
          this.safe_package_info = safe_package_info
          this.aliquid_info = aliquid_info
          this.config = config

          this.patient = patient
          this.schedual = schedual == null ? { id: 0 } : schedual
          this.prescription = prescription == null ? { id: 0 } : prescription
          this.solution = solution == null ? { id: 0 } : solution
          this.receiver_treatment_access =
            receiver_treatment_access == null
              ? { id: 0 }
              : receiver_treatment_access
          this.predialysis_evaluation =
            predialysis_evaluation == null ? { id: 0 } : predialysis_evaluation
          this.doctor_advices = doctor_advices == null ? [] : doctor_advices
          this.double_check = double_check == null ? { id: 0 } : double_check
          this.assessment_after_dislysis =
            assessment_after_dislysis == null
              ? { id: 0 }
              : assessment_after_dislysis
          this.treatment_summary =
            treatment_summary == null ? { id: 0 } : treatment_summary
          this.monitor_records = monitor_records == null ? [] : monitor_records
          this.dialysis_order =
            dialysis_order == null ? { id: 0 } : dialysis_order



          this.admin_users = resp.data.doctors
          this.devices = resp.data.devices
          this.device_numbers = resp.data.device_numbers

          var his_doctor_advices = resp.data.his_advices

          this.his_is_open = resp.data.is_open_config.is_open
          console.log(this.his_is_open)

          this.is_advice_open = resp.data.is_advice_open.is_advice_open


          var stockType =  resp.data.stockType
          this.stockType = stockType
          console.log("stockTYPW",stockType)

          var prepare = resp.data.prepare
          this.preparestock = prepare
          console.log("prepare222222",prepare)

          for (let i = 0; i <  this.doctor_advices.length; i++){
            this.doctor_advices[i]['origin'] = 1
          }

          if (his_doctor_advices != null) {
            for (let i = 0; i < his_doctor_advices.length; i++) {
              his_doctor_advices[i]['origin'] = 2
              his_doctor_advices[i]['way'] = 1
              this.doctor_advices.push(his_doctor_advices[i])
            }
          }

          const obj = {}
          this.doctor_advices = this.doctor_advices.reduce((cur, next) => {
            obj[next.id] ? '' : obj[next.id] = true && cur.push(next)
            return cur
          }, []) // 设置cur默认类型为数组，并且初始值为空的数组

          console.log(this.doctor_advices)


          var device_map = {}
          for (let index = 0; index < this.devices.length; index++) {
            const device = this.devices[index]
            device_map[device.id] = device
          }
          this.device_map = device_map

          var admin_map = {}
          for (let index = 0; index < this.admin_users.length; index++) {
            const admin = this.admin_users[index]
            admin_map[admin.id] = admin
          }
          this.admin_user_map = admin_map

          var device_number_map = {}
          for (let index = 0; index < this.device_numbers.length; index++) {
            const device_number = this.device_numbers[index]
            device_number_map[device_number.id] = device_number
          }
          this.device_number_map = device_number_map
        } else {
         // this.$message.error(resp.msg)
          console.log("报错提示")
          this.$message.error("该患者今日未排班,无法使用此模块,请先排班!")
        }

        if (this.lastDialysisPrescribe != null) {
          delete this.lastDialysisPrescribe.target_ultrafiltration
        }
        if (this.solution != null) {
          delete this.solution.target_ultrafiltration
        }
        if(this.predialysis_evaluation.id > 0){
          this.newTime = parseTime(this.predialysis_evaluation.created_time, '{h}:{i}')
          // this.dialysis_date = parseTime(this.predialysis_evaluation.created_time, '{y}-{m}-{d}')
        }

        this.loading = false
      })
    },
    printOrder() {
      var xtdate = parseTime(this.date, '{y}-{m}-{d}')
      this.$router.push(
        '/dialysis/print?xtdate=' + xtdate + '&xtno=' + this.patient.dialysis_no+"&patient_id="+this.patient.id
      )
    },
    processedDialysisSchedules: function(schedules, zone_options) {
      var zoneMap = {}
      var scheduleMap = {}
      for (let z_i = 0; z_i < zone_options.length; z_i++) {
        const zone = zone_options[z_i]
        if (zone.id == 0) {
          continue
        }
        scheduleMap[zone.id] = []
      }
      for (let index = 0; index < schedules.length; index++) {
        const schedule = schedules[index]
        scheduleMap[schedule.device_number.zone.id].push(schedule)
      }
      var zone_schedules = []
      for (let index = 0; index < zone_options.length; index++) {
        const zone = zone_options[index]
        if (zone.id == 0) {
          continue
        }
        var schedules = scheduleMap[zone.id]
        zone_schedules.push({ zone_id: zone.id, zone_name: zone.text, schedules: schedules })
      }
      return zone_schedules
    },
    getTime(date){
      date = new Date(date * 1000)
      var Y = date.getFullYear() + '-';
      var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1);
      var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate());
      var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours());
      var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes());
      var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds());

      let strDate = h  + ':' + m;
      return strDate;
    },
    getDates(time){
      return moment(time * 1000).format('HH:mm:ss')
    }
  }
}
</script>

<style style="stylesheet/scss" lang="scss" scoped>
.details-bg {
  background: #fff;
  margin: 0 15px;
}
.printForm {
  .title {
    font-size: 30px;
    font-weight: 500;
    text-align: center;
    line-height: 60px;
  }
  .info {
    ul {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      -o-box-sizing: border-box;
      -ms-box-sizing: border-box;
      box-sizing: border-box;
      -webkit-justify-content: space-around;
      -moz-justify-content: space-around;
      -ms-justify-content: space-around;
      -o-justify-content: space-around;
      justify-content: space-around;
      li {
        display: flex;
        box-sizing: border-box;
        justify-content: space-around;
        .name {
        }
        .InputBox {
          padding: 0;
          border: none;
          border-bottom: 1px #e5e5e5 solid;
          width: 60px;
          outline: none;
        }
      }
    }
  }
  .printTable {
    tr {
      padding: 2px;
      th {
        padding: 6px 4px;
      }
      td {
        padding: 6px 4px;
      }
    }
  }
}
.loadingBox{
  display: flex;
  .patientBox{
    background: #fff;
  }
  .tip1{
    background: #4fc7cb;
    border-radius: 5px;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    width: 60px;
    color: #fff;
  }
  .tip2{
    background: #ee8556;
    border-radius: 5px;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    width: 60px;
    color: #fff;
  }
  .tip3{
    background: #409eff;
    border-radius: 5px;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    width: 60px;
    color: #fff;
  }
  .tip4{
    background: #a8b3ba;
    border-radius: 5px;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    width: 60px;
    color: #fff;
  }
  .tip5{
    background: #7bce91;
    border-radius: 5px;
    text-align: center;
    font-size: 12px;
    display: inline-block;
    width: 60px;
    color: #fff;
  }
}
</style>

<style lang="scss">
.loadingBox{
  .el-loading-spinner{
    top:10%;
  }
  .el-button--small, .el-button--small.is-round{
    padding:9px 10px;
  }
  .el-date-editor{
    .el-input__inner{
      padding-right:0px;
    }
  }
  .el-table td, .el-table th{
    text-align: center;
  }
  .el-table .cell{
    padding: 0;
  }
}
</style>
