<template>
  <div>
    <div v-if="isShowDialog" class="Dialog">
      <div class="DialogTit">
        <span @click="close()" class="iconfont">&#xe6e9;</span>
        <h1 class="name newName">透析处方</h1>
        <button class="newButton" @click="showmsgtip">{{patient.name}}</button>
        <!-- <span @click="commitInfo" class="success" v-if="isPermission()">保存</span> -->
        <!-- <span @click="commitInfo" class="success" v-if="!isPermission()"></span> -->
        <span @click="commitInfo" class="success" v-if="hasPermission">保存</span>
        <span @click="commitInfo" class="success" v-if="!hasPermission"></span>
      </div>
      <div class="warnTxt" v-if="showTxt != ''">
        {{ showTxt }}
      </div>

      <div class="DialogContent newDialogContent" id="dialogTop">
        <div>
          <div @click="showSubMenu('mode')" class="item" ref="mode" v-if="isShow('透析模式')">
            <label class="name" for="txms">透析模式</label>
            <div class="content">
              <span class="text" id="txms">{{GetModeByModeId(dialysisPrescription.mode_id)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>
          <div class="item" @click="openPicker" v-if="isShow('透析时长')">
            <label class="name" for="txsc">透析时长</label>
            <div class="content">
              <span class="text" style="width: 100px">{{timeValue}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="item" v-if="isShow('血流量')">
            <label class="name" for="xll">血流量(ml/min)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="xll"
                v-model="dialysisPrescription.blood_flow_volume"
              />
            </div>
          </div>

          <div class="item" v-if="isShow('目标超滤量')">
            <label class="name" v-if="this.$store.getters.user.template_info.template_id != 17" for="mbcll">目标超滤量(L)</label>
            <label class="name" v-if="this.$store.getters.user.template_info.template_id == 17" for="mbcll">目标超滤量(ml)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="mbcll"
                v-model="dialysisPrescription.target_ultrafiltration"
              />
            </div>
          </div>
          <div
            @click="showSubMenu('dialysate_formulation')"
            class="item"
            ref="dialysate_formulation"
            v-if="isShow('透析液配方')"
          >
            <label class="name" for="txypf">透析液配方</label>
            <div class="content">
              <span
                class="text"
                id="txypf"
              >{{GetDialysateFormulationById(dialysisPrescription.dialysate_formulation)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div @click="showSubMenu('anticoagulant')" class="item" ref="anticoagulant" v-if="isShow('抗凝剂')" >
            <label class="name" for="knj">抗凝剂</label>
            <div class="content">
              <span class="text" id="knj" >{{GetAnticoagulantById(dialysisPrescription.anticoagulant)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="item" v-if="dialysisPrescription.anticoagulant != 5&&isShow('首剂')">
            <label
              class="name"
              for="zl"
              v-if="dialysisPrescription.anticoagulant == 0 ||dialysisPrescription.anticoagulant == -2"
            >首剂(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 2 && this.$store.getters.user.template_info.template_id != 13">首剂(iu)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 2 && this.$store.getters.user.template_info.template_id == 13">首剂(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 3">首剂(iu)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 4">首剂(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 1">首剂(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 6">首剂(iu)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 7">首剂(iu)</label>
            <div class="content">
              <input
                v-if="dialysisPrescription.anticoagulant != 1"
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="sj"
                v-model="dialysisPrescription.anticoagulant_shouji"
                :disabled="anticoagulant.shouji==1?false:true"
              />

              <input
                v-if="dialysisPrescription.anticoagulant == 1"
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="sj"
                v-model="dialysisPrescription.no_anticoagulant_shouji"
                disabled="true"
              />
            </div>
          </div>
          <div class="item" v-if="anticoagulant.weichi != -1&&isShow('维持')">
            <label
              class="name"
              for="zl"
              v-if="dialysisPrescription.anticoagulant == 0 ||dialysisPrescription.anticoagulant == -2"
            >维持(mg/h)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 2 && this.$store.getters.user.template_info.template_id != 13">维持(iu/h)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 2 && this.$store.getters.user.template_info.template_id == 13">维持(mg/h)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 3">维持(iu/h)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 4">维持(mg/h)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 5">维持(ml/h)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 1">维持(mg/h)</label>
             <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 6">维持(iu/h)</label>
              <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 7">维持(iu/h)</label>
            <div class="content">
              <input
                v-if="dialysisPrescription.anticoagulant != 1"
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="wz"
                class="inputBox"
                v-model="dialysisPrescription.anticoagulant_weichi"
                :disabled="anticoagulant.weichi==1?false:true"
              />

              <input
                v-if="dialysisPrescription.anticoagulant == 1"
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="sj"
                v-model="dialysisPrescription.no_anticoagulant_weichi"
                disabled="true"
              />
            </div>
          </div>
          <div class="item" v-if="dialysisPrescription.anticoagulant != 5&& isShow('总量')">
            <label
              class="name"
              for="zl"
              v-if="dialysisPrescription.anticoagulant == 0 ||dialysisPrescription.anticoagulant == -2"
            >总量(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 2 && this.$store.getters.user.template_info.template_id != 13">总量(iu)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 2 && this.$store.getters.user.template_info.template_id == 13">总量(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 3">总量(iu)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 4">总量(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 1">总量(mg)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 6">总量(iu)</label>
            <label class="name" for="zl" v-if="dialysisPrescription.anticoagulant == 7">总量(iu)</label>

            <div class="content">
              <input
                v-if="dialysisPrescription.anticoagulant != 1"
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="zl"
                class="inputBox"
                v-model="dialysisPrescription.anticoagulant_zongliang"
                :disabled="anticoagulant.zongliang==1?false:true"
              />

              <input
                v-if="dialysisPrescription.anticoagulant == 1"
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="sj"
                v-model="dialysisPrescription.no_anticoagulant_zongliang"
                disabled="true"
              />
            </div>
          </div>

          <div class="item" v-if="dialysisPrescription.anticoagulant == 5&& isShow('钙名称')">
            <label class="name" for="g">钙名称</label>
            <div class="content">
              <input
                type="text"
                id="g"
                class="inputBox"
                v-model="dialysisPrescription.anticoagulant_gaimingcheng"
              />
            </div>
          </div>

          <div class="item" v-if="dialysisPrescription.anticoagulant == 5&& isShow('钙剂量')">
            <label class="name" for="gjl">钙剂量(ml)</label>
            <div class="content">
              <input
                type="text"
                id="gjl"
                class="inputBox"
                v-model="dialysisPrescription.anticoagulant_gaijiliang"
              />
            </div>
          </div>
          <!-- <div class="item">
          <label class="name" for="gtz">干体重(kg)</label>
          <div class="content">
            <input type="tel" @focus="inputFocus" id="gtz" v-model="dialysisPrescription.dry_weight"/>
          </div>
          </div>-->

          <div class="line"></div>
          <div class="item" v-if="isShow('置换量')" v-show="zhiShow">
            <label class="name" for="zhy">置换量(L)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="zhy"
                v-model="dialysisPrescription.replacement_total"
              />
            </div>
          </div>

          <!-- <div class="line"></div> -->
          <div class="item" v-if="isShow('钾')">
            <label class="name" for="j">钾(mmol/L)</label>
            <div class="content">
              <input type="number" @click="newClick($event)" @focus="inputFocus" id="j"
                     v-model="dialysisPrescription.kalium"/>
            </div>
          </div>
          <div class="item" v-if="isShow('钠')">
            <label class="name" for="n">钠(mmol/L):</label>
            <div class="content">
              <input type="number" @click="newClick($event)" @focus="inputFocus" id="n"
                     v-model="dialysisPrescription.sodium"/>
            </div>
          </div>
          <div class="item" v-if="isShow('钙')">
            <label class="name" for="gg">钙(mmol/L)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="gg"
                v-model="dialysisPrescription.calcium"
              />
            </div>
          </div>
          <div class="item" v-if="isShow('碳酸氢盐')">
            <label class="name" for="tsqy">碳酸氢盐(mmol/L)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="tsqy"
                v-model="dialysisPrescription.bicarbonate"
              />
            </div>
          </div>
          <div class="item" v-if="isShow('葡萄糖')">
            <label class="name" for="ptt">葡萄糖(mmol/L)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="ptt"
                v-model="dialysisPrescription.glucose"
              />
            </div>
          </div>

          <div class="line"></div>

          <div class="item" v-if="isShow('透析液流量')">
            <label class="name" for="txyll">透析液流量(ml/min)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="txyll"
                v-model="dialysisPrescription.dialysate_flow"
              />
            </div>
          </div>
          <div class="item" v-if="isShow('透析液温度')">
            <label class="name" for="txywd">透析液温度(℃)</label>
            <div class="content">
              <!--<span class="text">HD</span>-->
              <!--<span class="iconfont">&#xe6f9;</span>-->
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="txywd"
                v-model="dialysisPrescription.dialysate_temperature"
              />
            </div>
          </div>
          <div class="item" v-if="isShow('电导率')">
            <label class="name" for="dtl">电导率(mS/cm)</label>
            <div class="content">
              <input
                type="number"
                @click="newClick($event)"
                @focus="inputFocus"
                id="dtl"
                v-model="dialysisPrescription.conductivity"
              />
            </div>
          </div>
<!--          <div class="item" v-if="isShow('透析器/灌流器')">-->
<!--            <label class="name" for="dtl">透析器/灌流器</label>-->
<!--            <div class="content">-->
<!--              <input-->
<!--                @focus="inputFocus"-->
<!--                id="dt"-->
<!--                v-model="dialysisPrescription.dialyzer_perfusion_apparatus"-->
<!--              />-->
<!--            </div>-->
<!--          </div>-->

          <div @click="showSubMenu('dialyzer_perfusion_apparatus')" class="item" ref="mode" v-if="isShow('透析器/灌流器')">
            <label class="name" for="txms">透析器/灌流器</label>
            <div class="content">
              <span class="text" id="txms">{{getDialyzerPerfusionApparatus(dialysisPrescription.dialyzer_perfusion_apparatus)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="line"></div>

          <div
            @click="showSubMenu('body_fluid')"
            class="item"
            ref="body_fluid"
            v-if="isShow('体液过多症状')"
          >
            <label class="name" for="knj">体液过多症状</label>
            <div class="content">
              <span class="text" id="knja">{{getBodyFluid(dialysisPrescription.body_fluid)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="item" v-if="isShow('体液过多其他症状')">
            <label class="name" for="knj">体液过多其他症状</label>
            <div class="content">
              <input @focus="inputFocus" id="dt" v-model="dialysisPrescription.body_fluid_other"/>
            </div>
          </div>

          <div
            @click="showSubMenu('special_medicine')"
            class="item"
            ref="special_medicine"
            v-if="isShow('透析前使用特殊药物')"
          >
            <label class="name" for="knj">透析前使用特殊药物</label>
            <div class="content">
              <span
                class="text"
                id="knjaa"
              >{{getSpecialMedicine(dialysisPrescription.special_medicine)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="item" v-if="isShow('透析前使用其他特殊药物')">
            <label class="name" for="knj">透析前使用其他特殊药物</label>
            <div class="content">
              <input
                @focus="inputFocus"
                id="dt"
                v-model="dialysisPrescription.special_medicine_other"
              />
            </div>
          </div>

          <div
            @click="showSubMenu('displace_liqui_part')"
            class="item"
            ref="displace_liqui_part"
            v-if="isShow('置换液')"
            v-show="huShow"
          >
            <label class="name" for="knj" v-if="this.$store.getters.user.template_info.template_id != 6">置换液</label>
            <label class="name" for="knj" v-if="this.$store.getters.user.template_info.template_id == 6">置换方式</label>

            <div class="content">
              <span
                class="text"
                id="knjaa"
              >{{getDisplaceLiquiPart(dialysisPrescription.displace_liqui_part)}}</span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="item" v-if="isShow('置换液总量')" v-show="totalShow">
            <label class="name" for="knj">置换液总量(L)</label>
            <div class="content">
              <input
                @focus="inputFocus"
                id="dt"
                v-model="dialysisPrescription.displace_liqui_value"
              />
            </div>
          </div>
          <div class="item" v-if="isShow('目标KT/V')">
            <label class="name" for="knj">目标KT/V</label>
            <div class="content">
              <input @focus="inputFocus" id="dt" v-model="dialysisPrescription.target_ktv"/>
            </div>
          </div>

<!--          <div-->
<!--            @click="showSubMenu('blood_access')"-->
<!--            class="item"-->
<!--            ref="blood_access"-->
<!--            v-if="isShow('血管通路')"-->
<!--          >-->
<!--            <label class="name" for="knj">血管通路</label>-->
<!--            <div class="content">-->
<!--              <span class="text" id="knjaa">{{getBloodAccess(dialysisPrescription.blood_access)}}</span>-->
<!--              <span class="iconfont">&#xe6f9;</span>-->
<!--            </div>-->
<!--          </div>-->

        <div
          @click="showSubMenu('vascular_access_desc')"
          class="item"
          ref="vascular_access_desc"
          v-if="isShow('血管通路')"
        >
          <h2 class="name">血管通路</h2>
          <div class="content">
            <span class="text">{{getBloodAccessTwo(dialysisPrescription.blood_access)}}</span>
            <span class="iconfont">&#xe6f9;</span>
          </div>
        </div>

<!--          <div class="item" v-if="isShow('实际超滤量')">-->
<!--            <label class="name" for="knj">实际超滤量(L)</label>-->
<!--            <div class="content">-->
<!--              <input @focus="inputFocus" id="dt" v-model="dialysisPrescription.ultrafiltration" />-->
<!--            </div>-->
<!--          </div>-->

          <div
            @click="dialysisGoodsClick()"
            class="item"
            ref="consumable_material"
            v-if="config.is_open == 1"
          >
            <label class="name" for="knj">透析耗材</label>
            <div class="content">
              <span class="text" id="knjaa"></span>
              <span class="iconfont">&#xe6f9;</span>
            </div>
          </div>

          <div class="item" style="display: none">
            <label class="name" for="dtl">医生签名</label>
            <div class="content">
              <div v-if="isShowDesc">医生尚未签名</div>
              <img
                v-if="isShowDoctorSign"
                style="width: 100px;height: 30px"
                :src="signUrl"
                alt
                srcset
              />
            </div>
          </div>

          <div class="line"></div>
          <div>
            <div class="item">
              <label class="name" for="bz">备注</label>
              <div class="content">
                <span class="text"></span>
              </div>
            </div>
            <textarea
              class="textarea"
              id="bz"
              placeholder="请输入内容"
              v-model="dialysisPrescription.remark"
              @focus="lastInputFocus"
              @blur="lastInputBlur"
            ></textarea>
          </div>
        </div>
        <!--<div class="footer">-->
        <!--处方医生：刘小军 医生-->
        <!--</div>-->
        <div class="PrescSubmit">
          <button style="display: none" class="tj" @click="sign()">医生签名</button>
          <button class="tjcq" @click="commitSolutionInfo" v-if="isPermission()">保存并设为长期处方</button>
          <button class="tj" style="display:none;" @click="commitInfo" v-if="isPermission()">保存</button>
        </div>
      </div>
    </div>
    <!--<two-menu title="二级菜单" v-show="isShowModeSubMenu"></two-menu>-->
    <check-box-sub-menu
      :visibility="visibility"
      v-on:menu-cancle="menuCancle"
      v-on:menu-comfirm="menuComfirm"
      v-on:menu-empty="menuEmpty"
      :propsForm="propForm"
    ></check-box-sub-menu>
    <!--<multiple-sub-menu :goodTypes="types" :visibility="is_show" v-on:menu-cancle="menuCancle" v-on:menu-comfirm="menuComfirm" :propsForm="propForm"></multiple-sub-menu>-->
    <multiple-sub-menu
      :goodTypes="types"
      :info="info"
      :visibility="is_show"
      v-on:menu-cancel-two="menuCancleTwo"
      v-on:menu-comfirm-two="menuComfirmTwo"
      :propsForm="propForm"
      :dialysisPrescription="dialysisPrescription"
    ></multiple-sub-menu>

    <mt-datetime-picker
      ref="picker"
      type="time"
      hourFormat="{value}小时"
      minuteFormat="{value}分钟"
      @confirm="handleTimeConfirm"
      v-model="time"
    ></mt-datetime-picker>

    <long-advice-sub-menu
      :visibility="advice_visibility"
      v-on:menu-cancle-three="menuCancleThree"
      v-on:menu-comfirm-three="menuComfirmThree"
      :propsForm="advicePropForm"
    ></long-advice-sub-menu>

    <msg-tip
      :visibility="msgtip_visibility"
      :predialysis="predialysis"
      :last_predialysis="last_predialysis"
      :record="record"
      :dry_weight="dry_weight"
      :last_record="last_record"
      :patient_prop="patient"
      :prescription_prop="prescription_prop"
      v-on:menu-msg-tip="menuMsgTip"
    ></msg-tip>
  </div>
</template>

<script>
import CheckBoxSubMenu from './subMenu/checkBoxSubMenu'
import MultipleSubMenu from './subMenu/multipleSubMenu'
import {
  commitDialysisPrescription,
  CreateGroupAdvice,
  GetSolution,
  postSign,
  postSolution
} from '@/api/dialysis'
import { calculateAnticoagulantZL } from '@/utils/tools'

import { Toast } from 'vant'
import { getDataConfig } from '@/utils/data'

import { parseTime } from '@/utils'
import LongAdviceSubMenu from './subMenu/LongAdviceSubMenu'
import MsgTip from './subMenu/MsgTip'

import request from '@/utils/request'

export default {
  name: 'PrescriptionDialog',
  props: {
    admin_users_prop: {
      type: Array,
      default: function () {
        return new Array()
      }
    },
    system_prescription: {
      type: Object
    },
    predialysis: {
      type: Object
    },
    last_predialysis: {
      type: Object
    },
    record: {
      type: Object
    },
    last_record: {
      type: Object
    },
    patient_prop: {
      type: Object
    },
    solution_prop: {
      type: Object
    },
    config: {
      type: Object
    },
    schedual: {
      type: Object
    },
    dry_weight: {
      type: Object
    },
    operators: {
      type: Array,
      default: function () {
        return new Array()
      }
    },
    types: {
      type: Array,
      default: function () {
        return new Array()
      }
    },
    info: {
      type: Array,
      default: function () {
        return new Array()
      }
    },
    last_prescription: {
      type: Object
    },
    prescription_prop: {
      type: Object
    },
    is_open: {
      type: Number
    },
    targetAdvices: {
      type: Array,
      default: function () {
        return new Array()
      }
    },
    waitUploadAdvices: {
      type: Array,
      default: function () {
        return new Array()
      }
    },
    machines_prop: {
      type: Array,
      default: function () {
        return new Array()
      }
    }
  },
  data () {
    return {
      showTxt: '',
      hasPermission: true,
      is_pre: 0,
      template_id: 0,
      loading: false,
      signUrl: '',
      isShowDesc: true,
      advice_visibility: false,
      msgtip_visibility: false,
      time: '03:00',
      timeValue: '',
      tempTimeValue: '',
      isShowSign: false,
      anticoagulantsConfit: {},
      anticoagulantsConfitTwo: {},
      dialysateFormulationOptions: [],
      bodyFluidOptions: [],
      specialMedicineOptions: [],
      displaceLiquiPartOptions: [],
      bloodAccessOptions: [],
      advicePropForm: {
        list: [],
        result: [],
        operators: []
      },
      is_show: false,

      perfusion_apparatus: {},
      replacementWays: [],
      dialyserList: [],
      modeOption: [],
      isShowDoctorBtn: true,
      isShowDoctorSign: false,
      visibility: false,
      isShowDialog: true,
      isShowModeSubMenu: false,
      dialysisPrescription: {
        mode_id: '',
        dialysis_duration: '',
        dialysis_duration_hour: '',
        dialysis_duration_minute: '',
        mode_name: '',
        dialyzer: '',
        perfusion_apparatus: '',
        blood_flow_volume: '',
        dewater_amount: '',
        displace_liqui: '',
        replacement_total: '',
        replacement_way: '',
        anticoagulant: '',
        anticoagulant_shouji: '',
        anticoagulant_weichi: '',
        anticoagulant_zongliang: '',
        anticoagulant_gaimingcheng: '',
        anticoagulant_gaijiliang: '',
        dialyzer_perfusion_apparatus: '',

        no_anticoagulant_shouji: '0',
        no_anticoagulant_weichi: '0',
        no_anticoagulant_zongliang: '0',

        kalium: '',
        sodium: '',
        calcium: '',
        bicarbonate: '',
        glucose: '',
        prescription_doctor: '',
        // dry_weight: "",
        dialysate_flow: '',
        dialysate_temperature: '',
        target_ultrafiltration: '',
        dialysate_formulation: '',
        conductivity: '',
        doctor: '',
        remark: '',
        body_fluid: '',
        special_medicine: '',
        special_medicine_other: '',
        displace_liqui_part: '',
        displace_liqui_value: '',
        blood_access: '',
        ultrafiltration: '',
        body_fluid_other: '',
        niprocart: '',
        jms: '',
        fistula_needle_set: '',
        fistula_needle_set_16: '',
        hemoperfusion: '',
        dialyser_sterilised: '',
        filtryzer: '',
        target_ktv: '',
        dialyzers: '',
        injector: '',
        bloodlines: '',
        tubing_hemodialysis: '',
        package: '',
        a_liquid: '',
        creater: '',
        modifier: ''
      },
      anticoagulant: {
        id: 0,
        name: '',
        type: 1,
        shouji: 1,
        weichi: 1,
        zongliang: 1,
        gaimingcheng: -1,
        gaijiliang: -1,
        shouji_unit: 'mg',
        weichi_unit: 'mg/h',
        zongliang_unit: 'mg',
        gaimingcheng_unit: '',
        gaijiliang_unit: ''
      },
      zhiShow: true,
      totalShow: true,
      huShow: true,
      doctorAdvices: [],
      propForm: {
        title: '',
        list: [],
        optionList: [],
        isMultiple: 2,
        result: [], // 选中的值
        type: 1, // 用来区分不同子菜单，方便对返回值进行赋值
        selectId: 0
      },
      data: [],
      dialyzerPerfusionApparatus: []
    }
  },
  computed: {
    // 计算属性的 getter
  },
  methods: {
    newClick (event) {
      event.currentTarget.select()
    },
    showmsgtip () {
      this.msgtip_visibility = true
      this.isShowDialog = false
    },
    isPermission () {
      if (
        this.$store.getters.user.user.user_type == 3 &&
        (this.$store.getters.user.template_info.template_id == 2 ||
          this.$store.getters.user.template_info.template_id == 6)
      ) {
        return false
      } else {
        return true
      }
    },
    isShow (name) {
      var filedList = this.$store.getters.user.fileds

      for (let i = 0; i < filedList.length; i++) {
        if (
          filedList[i].module == 1 &&
          filedList[i].filed_name_cn == name &&
          filedList[i].is_show == 1
        ) {
          return true
        }
      }
      return false
    },
    openPicker: function () {
      this.$refs.picker.open()
    },
    handleTimeConfirm: function (val) {
      val = val.replace('小时')
      val = val.replace('分钟')
      let timeArray = val.split(':')
      if (parseInt(timeArray[0].substring(0, 1)) == 0) {
        this.dialysisPrescription.dialysis_duration_hour = timeArray[0].charAt(
          timeArray[0].length - 1
        )
      } else {
        this.dialysisPrescription.dialysis_duration_hour = timeArray[0]
      }

      if (parseInt(timeArray[1].substring(0, 1)) == 0) {
        this.dialysisPrescription.dialysis_duration_minute = timeArray[1].charAt(
          timeArray[1].length - 1
        )
      } else {
        this.dialysisPrescription.dialysis_duration_minute = timeArray[1]
      }
      this.timeValue =
        this.dialysisPrescription.dialysis_duration_hour +
        '小时' +
        this.dialysisPrescription.dialysis_duration_minute +
        '分钟'

      this.dialysisPrescription.dialysis_duration =
        parseFloat(this.dialysisPrescription.dialysis_duration_hour) +
        parseFloat(
          (this.dialysisPrescription.dialysis_duration_minute / 60).toFixed(2)
        )
    },
    inputFocus: function (event) {
      var input = event.target
      setTimeout(function () {
        input.scrollIntoView()
      }, 0)

      if (input.setSelectionRange) {
        setTimeout(function () {
          input.setSelectionRange(0, input.value.length)
        }, 0)
      } else if (input.createTextRange) {
        var rng = input.createTextRange()
        rng.move('character', input.value.length)
        rng.select()
      }
    },
    lastInputFocus: function (event) {
      var input = event.target
      event.currentTarget.select()

      setTimeout(function () {
        input.style.marginBottom = '2rem'
        input.parentNode.scrollIntoView()
      }, 0)
    },
    lastInputBlur: function (event) {
      var input = event.target
      setTimeout(function () {
        input.style.marginBottom = ''
      }, 0)
    },
    showSubMenu: function (val) {
      switch (val) {
        case 'mode':
          this.propForm.type = 1
          this.isShowDialog = false
          this.propForm.title = '透析模式'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.modeOption
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.mode_id
          this.propForm.click_ref = 'mode'

          break
        case 'dialyzer':
          this.propForm.type = 2
          this.isShowDialog = false
          this.propForm.title = '透析器'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.machines_prop
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.dialyzer
          this.propForm.click_ref = 'dialyzer'

          break

        case 'perfusion_apparatus':
          this.propForm.type = 3
          this.isShowDialog = false
          this.propForm.title = '灌流器'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.perfusion_apparatus
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.perfusion_apparatus
          this.propForm.click_ref = 'perfusion_apparatus'

          break
        case 'replacement_way':
          this.propForm.type = 4
          this.isShowDialog = false
          this.propForm.title = '置换方式'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.replacementWays
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.replacement_way
          this.propForm.click_ref = 'replacement_way'

          break

        case 'anticoagulant':
          this.propForm.type = 5
          this.isShowDialog = false
          this.propForm.title = '抗疑剂'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.anticoagulantsConfit
          this.propForm.isMultiple = 1
          console.log('this-----', this.dialysisPrescription.anticoagulant)
          this.propForm.selectId = this.dialysisPrescription.anticoagulant

          this.propForm.click_ref = 'anticoagulant'
          break
        case 'dialysate_formulation':
          this.propForm.type = 6
          this.isShowDialog = false
          this.propForm.title = '透析液配方'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.dialysateFormulationOptions
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.dialysate_formulation
          this.propForm.click_ref = 'dialysate_formulation'
          break
        case 'body_fluid':
          this.propForm.type = 7
          this.isShowDialog = false
          this.propForm.title = '体液过多症状'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.bodyFluidOptions
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.body_fluid
          this.propForm.click_ref = 'body_fluid'
          break
        case 'special_medicine':
          this.propForm.type = 8
          this.isShowDialog = false
          this.propForm.title = '透析前使用特殊药物'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.specialMedicineOptions
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.special_medicine
          this.propForm.click_ref = 'special_medicine'
          break
        case 'displace_liqui_part':
          this.propForm.type = 9
          this.isShowDialog = false
          this.propForm.title = '置换液'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.displaceLiquiPartOptions
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.displace_liqui_part
          this.propForm.click_ref = 'displace_liqui_part'
          break
        case 'blood_access':
          this.propForm.type = 10
          this.isShowDialog = false
          this.propForm.title = '血管通路'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.bloodAccessOptions
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.blood_access
          this.propForm.click_ref = 'blood_access'
          break
        case 'vascular_access_desc':
          this.propForm.type = 10
          this.isShowDialog = false
          this.propForm.title = '血管通路'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.data
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.blood_access
          this.propForm.click_ref = 'vascular_access_desc'
          break

        case 'dialyzer_perfusion_apparatus':
          this.propForm.type = 11
          this.isShowDialog = false
          this.propForm.title = '透析器/灌流器'
          this.visibility = true
          this.propForm.list = []
          this.propForm.optionList = this.dialyzerPerfusionApparatus
          this.propForm.isMultiple = 1
          this.propForm.selectId = this.dialysisPrescription.dialyzer_perfusion_apparatus
          this.propForm.click_ref = 'dialyzer_perfusion_apparatus'

          break
      }
    },
    QueryPartById: function (val) {
      let vascular_access_part_name = ''
      let vascular_access = getDataConfig(
        'hemodialysis',
        'vascular_access_desc'
      )
      for (let i = 0; i < vascular_access.length; i++) {
        if (vascular_access[i].id == val) {
          vascular_access_part_name = vascular_access[i].name
        }
      }
      return vascular_access_part_name
    },
    menuCancle: function () {
      this.visibility = false
      this.isShowDialog = true
      this.$nextTick(() => {
        if (
          this.$refs[this.propForm.click_ref] != undefined &&
          this.$refs[this.propForm.click_ref] != null
        ) {
          this.$refs[this.propForm.click_ref].scrollIntoView()
        }
      })
    },
    menuCancleThree: function () {
      this.advice_visibility = false
      this.isShowDialog = true
    },
    menuMsgTip: function () {
      this.msgtip_visibility = false
      this.isShowDialog = true
    },

    menuComfirmThree: function (targetAdvices) {
      if (targetAdvices.length > 0) {
        if (this.is_pre == 1) {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr
          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date

          if (this.prescription_prop.id == '') {
            ParamsQuery['mode'] = '1'
          } else {
            if (this.prescription_prop.creater == 0) {
              ParamsQuery['mode'] = '1'
            } else {
              ParamsQuery['mode'] = '2'
              if (
                this.prescription_prop.creater !=
                this.$store.getters.user.admin.id
              ) {
                ParamsQuery['mode'] = '3'
              }
            }
          }

          commitDialysisPrescription(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                var date = new Date()
                var year = date.getFullYear()
                var month = date.getMonth() + 1
                var day = date.getDate()

                var hours = date.getHours()
                var minites = date.getMinutes()

                if (month < 10) {
                  month = '0' + month
                }
                if (day < 10) {
                  day = '0' + day
                }
                if (hours < 10) {
                  hours = '0' + hours
                }
                if (minites < 10) {
                  minites = '0' + minites
                }
                var nowDate =
                  year + '-' + month + '-' + day + ' ' + hours + ':' + minites
                Toast.success('提交成功')
                let params = {
                  advices: targetAdvices,
                  advice_date: parseTime(this.$route.query.date, '{y}-{m}-{d}'),
                  advice_doctor: targetAdvices[0].advice_doctor,
                  advice_type: targetAdvices[0].advice_type,
                  parent_id: this.$route.query.patient_id,
                  start_time: nowDate,
                  remark: ''
                }

                CreateGroupAdvice(this.$route.query.patient_id, 0, params).then(
                  rs => {
                    var resp = rs.data
                    if (resp.state == 1) {
                      this.$emit(
                        'prescription',
                        response.data.data.prescription,
                        resp.data.advices
                      )
                    } else {
                    }
                  }
                )

                this.finish()
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
        } else if (this.is_pre == 2) {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr

          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date
          ParamsQuery['mode'] = '1'

          postSolution(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                Toast.success('提交成功')
                var date = new Date()
                var year = date.getFullYear()
                var month = date.getMonth() + 1
                var day = date.getDate()

                var hours = date.getHours()
                var minites = date.getMinutes()

                if (month < 10) {
                  month = '0' + month
                }
                if (day < 10) {
                  day = '0' + day
                }
                if (hours < 10) {
                  hours = '0' + hours
                }
                if (minites < 10) {
                  minites = '0' + minites
                }
                var nowDate =
                  year + '-' + month + '-' + day + ' ' + hours + ':' + minites

                let params = {
                  advices: targetAdvices,
                  advice_date: parseTime(this.$route.query.date, '{y}-{m}-{d}'),
                  advice_doctor: targetAdvices[0].advice_doctor,
                  advice_type: targetAdvices[0].advice_type,
                  parent_id: this.$route.query.patient_id,
                  start_time: nowDate,
                  remark: ''
                }
                CreateGroupAdvice(this.$route.query.patient_id, 0, params).then(
                  rs => {
                    var resp = rs.data
                    if (resp.state == 1) {
                      this.$emit(
                        'prescription',
                        response.data.data.prescription,
                        resp.data.advices
                      )
                      this.$emit(
                        'longSolution',
                        response.data.data.solution,
                        resp.data.advices
                      )
                    } else {
                    }
                  }
                )
                this.finish()
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
        }
      } else {
        if (this.is_pre == 1) {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr

          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date
          if (this.prescription_prop.id == '') {
            ParamsQuery['mode'] = '1'
          } else {
            if (this.prescription_prop.creater == 0) {
              ParamsQuery['mode'] = '1'
            } else {
              ParamsQuery['mode'] = '2'
              if (
                this.prescription_prop.creater !=
                this.$store.getters.user.admin.id
              ) {
                ParamsQuery['mode'] = '3'
              }
            }
          }
          commitDialysisPrescription(ParamsQuery).then(response => {
            if (response.data.state == 0) {
              Toast.fail(response.data.msg)
              return false
            } else {
              Toast.success('提交成功')

              this.$emit(
                'prescription',
                response.data.data.prescription,
                this.doctorAdvices
              )
              this.finish()
            }
          })
        } else if (this.is_pre == 2) {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr
          console.log('推送3---', ParamsQuery)
          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date
          ParamsQuery['mode'] = '1'
          postSolution(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                Toast.success('提交成功')
                this.$emit(
                  'longSolution',
                  response.data.data.solution,
                  this.doctorAdvices
                )
                this.$emit(
                  'prescription',
                  response.data.data.prescription,
                  this.doctorAdvices
                )
                this.finish()
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
        }
      }
    },
    menuComfirm: function (val) {
      this.visibility = false
      this.isShowDialog = true
      this.$nextTick(() => {
        if (
          this.$refs[this.propForm.click_ref] != undefined &&
          this.$refs[this.propForm.click_ref] != null
        ) {
          this.$refs[this.propForm.click_ref].scrollIntoView()
        }
      })
      switch (val.type) {
        case 1:
          Toast.loading({
            forbidClick: true,
            duration: 0,
            message: '切换模式中,请稍候'
          })
          // 从服务器获取对应模式的长期处方
          let ParamsQuery = {}
          ParamsQuery['patient_id'] = this.$route.query.patient_id
          ParamsQuery['mode_id'] = val.selectId
          GetSolution(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                Toast.success('切换成功')
                if (response.data.data.solution != null) {
                  for (const key in response.data.data.solution) {
                    // 长期处方不为空
                    if (key != 'target_ultrafiltration') {
                      this.dialysisPrescription[key] =
                        response.data.data.solution[key]
                    }
                  }
                } else {
                  if (response.data.data.prescription != null) {
                    // 临时处方不为空
                    for (const key in response.data.data.prescription) {
                      if (key != 'target_ultrafiltration') {
                        this.dialysisPrescription[key] =
                          response.data.data.prescription[key]
                      }
                    }
                  } else if (response.data.data.system_prescription != null) {
                    for (const key in response.data.data.system_prescription) {
                      if (key != 'target_ultrafiltration') {
                        this.dialysisPrescription[key] =
                          response.data.data.system_prescription[key]
                      }
                    }
                  } else {
                    for (const key in this.dialysisPrescription) {
                      // 临时处方为空
                      if (key != 'target_ultrafiltration') {
                        this.dialysisPrescription[key] = ''
                      }
                    }
                    this.dialysisPrescription.mode_id = val.selectId
                  }
                }
              }

              if (
                this.dialysisPrescription.dialysis_duration_hour === '' ||
                this.dialysisPrescription.dialysis_duration_minute === ''
              ) {
                this.timeValue = ''
                this.time = '03:00'
              } else {
                this.timeValue =
                  this.dialysisPrescription.dialysis_duration_hour +
                  '小时' +
                  this.dialysisPrescription.dialysis_duration_minute +
                  '分钟'
                this.time =
                  (this.dialysisPrescription.dialysis_duration_hour > 10
                    ? this.dialysisPrescription.dialysis_duration_hour
                    : '0' + this.dialysisPrescription.dialysis_duration_hour) +
                  ':' +
                  (this.dialysisPrescription.dialysis_duration_minute > 10
                    ? this.dialysisPrescription.dialysis_duration_minute
                    : '0' + this.dialysisPrescription.dialysis_duration_minute)
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
          break
        case 2:
          this.dialysisPrescription.dialyzer = val.selectId
          break

        case 3:
          this.dialysisPrescription.perfusion_apparatus = val.selectId
          break
        case 4:
          this.dialysisPrescription.replacement_way = val.selectId
          break
        case 5:
          this.dialysisPrescription.anticoagulant = val.selectId

          if (
            typeof this.anticoagulantsConfit[val.selectId] === 'undefined' ||
            this.anticoagulantsConfit[val.selectId] == null
          ) {
            return
          }
          this.anticoagulant = this.anticoagulantsConfit[val.selectId]
          break
        case 6:
          this.dialysisPrescription.dialysate_formulation = val.selectId
          break
        case 7:
          this.dialysisPrescription.body_fluid = val.selectId
          break
        case 8:
          this.dialysisPrescription.special_medicine = val.selectId
          break
        case 9:
          this.dialysisPrescription.displace_liqui_part = val.selectId
          break
        case 10:
          this.dialysisPrescription.blood_access = val.selectId
          break
        case 11:
          this.dialysisPrescription.dialyzer_perfusion_apparatus = val.selectId
          break
      }
    },
    GetModeByModeId: function (val) {
      let treatment_mode_name = ''
      let treatment_mode = this.modeOption

      for (let keys in treatment_mode) {
        if (treatment_mode[keys].id == val) {
          treatment_mode_name = treatment_mode[keys].name
        }
      }
      for (let keys in treatment_mode) {
        if (treatment_mode[keys].id == val) {
          treatment_mode_name = treatment_mode[keys].name
          var treatment_mode_id = treatment_mode[keys].id
          if (
            treatment_mode_id === 1 ||
            treatment_mode_id === 3 ||
            treatment_mode_id === 4 ||
            treatment_mode_id === 6 ||
            treatment_mode_id === 7 ||
            treatment_mode_id === 8 ||
            treatment_mode_id === 9 ||
            treatment_mode_id === 10 ||
            treatment_mode_id === 11 ||
            treatment_mode_id === 13 ||
            treatment_mode_id === 14 ||
            treatment_mode_id === 15 ||
            treatment_mode_id === 16 ||
            treatment_mode_id === 19
          ) {
            this.zhiShow = false
            this.totalShow = false
            this.huShow = false
          } else {
            this.zhiShow = true
            this.totalShow = true
            this.huShow = true
          }
        }
      }

      return treatment_mode_name
    },

    GetDialysateFormulationById: function (val) {
      let name = ''
      let dfl = this.dialysateFormulationOptions.length
      for (let index = 0; index < dfl; index++) {
        if (this.dialysateFormulationOptions[index].id == val) {
          name = this.dialysateFormulationOptions[index].name
          break
        }
      }
      return name
    },
    GetDialyzerById: function (val) {
      let dialyzer_name = ''
      let machines = this.machines_prop

      for (let i = 0; i < machines.length; i++) {
        if (machines[i].id == val) {
          dialyzer_name = machines[i].name
        }
      }

      return dialyzer_name
    },
    GetPerfusionApparatusById: function (val) {
      let perfusion_apparatus_name = ''
      let perfusion_apparatus = this.perfusion_apparatus
      for (let i = 0; i < perfusion_apparatus.length; i++) {
        if (perfusion_apparatus[i].id == val) {
          perfusion_apparatus_name = perfusion_apparatus[i].name
        }
      }

      return perfusion_apparatus_name
    },
    GetReplacementWayById: function (val) {
      let replacement_ways_name = ''
      let replacement_ways = this.replacementWays
      for (let i = 0; i < replacement_ways.length; i++) {
        if (replacement_ways[i].id == val) {
          replacement_ways_name = replacement_ways[i].name
        }
      }
      return replacement_ways_name
    },
    GetAnticoagulantById: function (val) {
      console.log('aaaaaa', val)
      let anticoagulan_name = ''
      let anticoagulant = this.anticoagulantsConfitTwo
      for (let keys in anticoagulant) {
        if (anticoagulant[keys].id == val) {
          anticoagulan_name = anticoagulant[keys].name
        }
      }
      return anticoagulan_name
    },
    commitInfo: function () {
      if (this.dialysisPrescription.anticoagulant == 1) {
        this.dialysisPrescription.anticoagulant_weichi = '0'
        this.dialysisPrescription.anticoagulant_shouji = '0'
        this.dialysisPrescription.anticoagulant_zongliang = '0'
      }
      if (this.$store.getters.user.template_info.template_id == 6) {
        if (this.dialysisPrescription.mode_id == 2) {
          if (
            this.dialysisPrescription.displace_liqui_part == 0 ||
            this.dialysisPrescription.displace_liqui_part == -2 ||
            this.dialysisPrescription.displace_liqui_value == 0 ||
            this.dialysisPrescription.displace_liqui_value == ''
          ) {
            Toast.fail('HDF模式下置换方式和置换液总量不能为空！')
            return
          }
        }
      }
      this.is_pre = 1
      if (this.prescription_prop.id == '') {
        if (this.is_open == 0) {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr

          console.log('ParamsQueryOne', ParamsQuery)
          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date
          ParamsQuery['mode'] = '1'

          commitDialysisPrescription(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                Toast.success('提交成功')

                this.$emit(
                  'prescription',
                  response.data.data.prescription,
                  this.doctorAdvices
                )
                this.finish()
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
        } else if (this.is_open == 1) {
          if (this.targetAdvices.length > 0) {
            // 弹框推送提醒
            this.advicePropForm.list = this.targetAdvices
            this.advicePropForm.operators = this.admin_users_prop
            this.advice_visibility = true
            this.isShowDialog = false
            for (let i = 0; i < this.advicePropForm.list.length; i++) {
              if (
                this.advicePropForm.list[i].parent_id == 0 &&
                this.advicePropForm.list[i].isCheck == 1
              ) {
                this.advicePropForm.result.push(this.advicePropForm.list[i].id)
              }
            }
          } else {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryTwo', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'
            commitDialysisPrescription(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  this.$emit(
                    'prescription',
                    response.data.data.prescription,
                    this.doctorAdvices
                  )
                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          }
        } else if (this.is_open == 2) {
          if (this.waitUploadAdvices.length > 0) {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryThree', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'

            commitDialysisPrescription(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  var date = new Date()
                  var year = date.getFullYear()
                  var month = date.getMonth() + 1
                  var day = date.getDate()

                  var hours = date.getHours()
                  var minites = date.getMinutes()

                  if (month < 10) {
                    month = '0' + month
                  }
                  if (day < 10) {
                    day = '0' + day
                  }
                  if (hours < 10) {
                    hours = '0' + hours
                  }
                  if (minites < 10) {
                    minites = '0' + minites
                  }
                  var nowDate =
                    year +
                    '-' +
                    month +
                    '-' +
                    day +
                    ' ' +
                    hours +
                    ':' +
                    minites

                  let params = {
                    advices: this.waitUploadAdvices,
                    advice_date: parseTime(
                      this.$route.query.date,
                      '{y}-{m}-{d}'
                    ),
                    advice_doctor: this.waitUploadAdvices[0].advice_doctor,
                    advice_type: this.waitUploadAdvices[0].advice_type,
                    parent_id: this.$route.query.patient_id,
                    start_time: nowDate,
                    remark: ''
                  }
                  CreateGroupAdvice(
                    this.$route.query.patient_id,
                    0,
                    params
                  ).then(rs => {
                    var resp = rs.data
                    if (resp.state == 1) {
                      this.$emit(
                        'prescription',
                        response.data.data.prescription,
                        resp.data.advices
                      )
                    } else {
                    }
                  })

                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          } else {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryFour', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            commitDialysisPrescription(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  this.advice_visibility = false

                  Toast.success('提交成功')
                  this.$emit(
                    'prescription',
                    response.data.data.prescription,
                    this.doctorAdvices
                  )
                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          }
        }
      } else {
        if (this.prescription_prop.creater == 0) {
          if (this.is_open == 0) {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryFive', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'

            commitDialysisPrescription(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  this.$emit(
                    'prescription',
                    response.data.data.prescription,
                    this.doctorAdvices
                  )
                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          } else if (this.is_open == 1) {
            if (this.targetAdvices.length > 0) {
              // 弹框推送提醒
              this.advicePropForm.list = this.targetAdvices
              this.advicePropForm.operators = this.admin_users_prop
              this.advice_visibility = true
              this.isShowDialog = false

              for (let i = 0; i < this.advicePropForm.list.length; i++) {
                if (
                  this.advicePropForm.list[i].parent_id == 0 &&
                  this.advicePropForm.list[i].isCheck == 1
                ) {
                  this.advicePropForm.result.push(
                    this.advicePropForm.list[i].id
                  )
                }
              }
            } else {
              Toast.loading({ forbidClick: true, duration: 0 })
              var arr = this.dialysisPrescription
              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
                if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
                }
              }
              let ParamsQuery = arr
              console.log('ParamsQuerySIx', ParamsQuery)
              ParamsQuery['patient'] = this.$route.query.patient_id
              ParamsQuery['record_date'] = this.record_date
              ParamsQuery['mode'] = '1'

              commitDialysisPrescription(ParamsQuery)
                .then(response => {
                  if (response.data.state == 0) {
                    Toast.fail(response.data.msg)
                    return false
                  } else {
                    Toast.success('提交成功')

                    this.$emit(
                      'prescription',
                      response.data.data.prescription,
                      this.doctorAdvices
                    )
                    this.finish()
                  }
                })
                .catch(error => {
                  Toast.fail('请求失败')
                })
            }
          } else if (this.is_open == 2) {
            if (this.waitUploadAdvices.length > 0) {
              Toast.loading({ forbidClick: true, duration: 0 })
              var arr = this.dialysisPrescription
              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
                if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
                }
              }
              let ParamsQuery = arr
              console.log('ParamsQuerySeven', ParamsQuery)
              ParamsQuery['patient'] = this.$route.query.patient_id
              ParamsQuery['record_date'] = this.record_date
              ParamsQuery['mode'] = '1'

              commitDialysisPrescription(ParamsQuery)
                .then(response => {
                  if (response.data.state == 0) {
                    Toast.fail(response.data.msg)
                    return false
                  } else {
                    var date = new Date()
                    var year = date.getFullYear()
                    var month = date.getMonth() + 1
                    var day = date.getDate()

                    var hours = date.getHours()
                    var minites = date.getMinutes()

                    if (month < 10) {
                      month = '0' + month
                    }
                    if (day < 10) {
                      day = '0' + day
                    }
                    if (hours < 10) {
                      hours = '0' + hours
                    }
                    if (minites < 10) {
                      minites = '0' + minites
                    }
                    var nowDate =
                      year +
                      '-' +
                      month +
                      '-' +
                      day +
                      ' ' +
                      hours +
                      ':' +
                      minites

                    let params = {
                      advices: this.waitUploadAdvices,
                      advice_date: parseTime(
                        this.$route.query.date,
                        '{y}-{m}-{d}'
                      ),
                      advice_doctor: this.waitUploadAdvices[0].advice_doctor,
                      advice_type: this.waitUploadAdvices[0].advice_type,
                      parent_id: this.$route.query.patient_id,
                      start_time: nowDate,
                      remark: ''
                    }

                    CreateGroupAdvice(
                      this.$route.query.patient_id,
                      0,
                      params
                    ).then(rs => {
                      var resp = rs.data
                      if (resp.state == 1) {
                        this.doctorAdvices = resp.data.advices
                        this.$emit(
                          'prescription',
                          response.data.data.prescription,
                          resp.data.advices
                        )
                      } else {
                      }
                    })

                    Toast.success('提交成功')
                    this.finish()
                  }
                })
                .catch(error => {
                  Toast.fail('请求失败')
                })
            } else {
              Toast.loading({ forbidClick: true, duration: 0 })
              var arr = this.dialysisPrescription
              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
                if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
                }
              }
              let ParamsQuery = arr
              console.log('ParamsQueryeight', ParamsQuery)
              ParamsQuery['patient'] = this.$route.query.patient_id
              ParamsQuery['record_date'] = this.record_date
              ParamsQuery['mode'] = '1'
              commitDialysisPrescription(ParamsQuery)
                .then(response => {
                  if (response.data.state == 0) {
                    Toast.fail(response.data.msg)
                    return false
                  } else {
                    Toast.success('提交成功')
                    this.$emit(
                      'prescription',
                      response.data.data.prescription,
                      this.doctorAdvices
                    )
                    this.finish()
                  }
                })
                .catch(error => {
                  Toast.fail('请求失败')
                })
            }
          }
        } else {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr
          console.log('paramsquerynight', ParamsQuery)

          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date

          ParamsQuery['mode'] = '2'
          if (
            this.prescription_prop.creater != this.$store.getters.user.admin.id
          ) {
            ParamsQuery['mode'] = '3'
          }
          commitDialysisPrescription(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                Toast.success('提交成功')
                this.$emit(
                  'prescription',
                  response.data.data.prescription,
                  this.doctorAdvices
                )
                this.finish()
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
        }
      }
    },
    commitSolutionInfo: function () {
      if (this.$store.getters.user.template_info.template_id == 6) {
        if (this.dialysisPrescription.mode_id == 2) {
          if (
            this.dialysisPrescription.displace_liqui_part == 0 ||
            this.dialysisPrescription.displace_liqui_part == -2 ||
            this.dialysisPrescription.displace_liqui_value == 0 ||
            this.dialysisPrescription.displace_liqui_value == ''
          ) {
            Toast.fail('HDF模式下置换方式和置换液总量不能为空！')
            return
          }
        }
      }
      this.is_pre = 2

      if (this.prescription_prop.id == '') {
        if (this.is_open == 0) {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr
          console.log('ParamsQueryOne', ParamsQuery)
          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date
          ParamsQuery['mode'] = '1'

          postSolution(ParamsQuery).then(response => {
            if (response.data.state == 0) {
              Toast.fail(response.data.msg)
              return false
            } else {
              Toast.success('提交成功')

              this.$emit('advice')
              this.$emit('longSolution', response.data.data.solution)
              this.$emit('prescription', response.data.data.prescription)
              this.finish()
            }
          })
        } else if (this.is_open == 1) {
          if (this.targetAdvices.length > 0) {
            // 弹框推送提醒
            this.advicePropForm.list = this.targetAdvices
            this.advicePropForm.operators = this.admin_users_prop
            this.advice_visibility = true
            this.isShowDialog = false

            for (let i = 0; i < this.advicePropForm.list.length; i++) {
              if (
                this.advicePropForm.list[i].parent_id == 0 &&
                this.advicePropForm.list[i].isCheck == 1
              ) {
                this.advicePropForm.result.push(this.advicePropForm.list[i].id)
              }
            }
          } else {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryOne', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'

            postSolution(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  this.$emit('advice')
                  this.$emit('longSolution', response.data.data.solution)
                  this.$emit('prescription', response.data.data.prescription)
                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          }
        } else if (this.is_open == 2) {
          if (this.waitUploadAdvices.length > 0) {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryOne', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'

            postSolution(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  var date = new Date()
                  var year = date.getFullYear()
                  var month = date.getMonth() + 1
                  var day = date.getDate()

                  var hours = date.getHours()
                  var minites = date.getMinutes()

                  if (month < 10) {
                    month = '0' + month
                  }
                  if (day < 10) {
                    day = '0' + day
                  }
                  if (hours < 10) {
                    hours = '0' + hours
                  }
                  if (minites < 10) {
                    minites = '0' + minites
                  }
                  var nowDate =
                    year +
                    '-' +
                    month +
                    '-' +
                    day +
                    ' ' +
                    hours +
                    ':' +
                    minites

                  let params = {
                    advices: this.waitUploadAdvices,
                    advice_date: parseTime(
                      this.$route.query.date,
                      '{y}-{m}-{d}'
                    ),
                    advice_doctor: this.waitUploadAdvices[0].advice_doctor,
                    advice_type: this.waitUploadAdvices[0].advice_type,
                    parent_id: this.$route.query.patient_id,
                    start_time: nowDate,
                    remark: ''
                  }
                  CreateGroupAdvice(
                    this.$route.query.patient_id,
                    0,
                    params
                  ).then(rs => {
                    var resp = rs.data
                    if (resp.state == 1) {
                      this.doctorAdvices = resp.data.advices
                      this.$emit(
                        'longSolution',
                        response.data.data.solution,
                        resp.data.advices
                      )
                      this.$emit(
                        'prescription',
                        response.data.data.prescription,
                        resp.data.advices
                      )
                    } else {
                    }
                  })

                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          } else {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryOne', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'

            postSolution(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  this.$emit('longSolution', response.data.data.solution)
                  this.$emit('prescription', response.data.data.prescription)
                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          }
        }
      } else {
        if (this.prescription_prop.creater == 0) {
          if (this.is_open == 0) {
            Toast.loading({ forbidClick: true, duration: 0 })
            var arr = this.dialysisPrescription
            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
              if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
              }
            }
            let ParamsQuery = arr
            console.log('ParamsQueryOne', ParamsQuery)
            ParamsQuery['patient'] = this.$route.query.patient_id
            ParamsQuery['record_date'] = this.record_date
            ParamsQuery['mode'] = '1'

            postSolution(ParamsQuery)
              .then(response => {
                if (response.data.state == 0) {
                  Toast.fail(response.data.msg)
                  return false
                } else {
                  Toast.success('提交成功')

                  this.$emit('longSolution', response.data.data.solution)
                  this.$emit('prescription', response.data.data.prescription)
                  this.finish()
                }
              })
              .catch(error => {
                Toast.fail('请求失败')
              })
          } else if (this.is_open == 1) {
            if (this.targetAdvices.length > 0) {
              // 弹框推送提醒
              this.advicePropForm.list = this.targetAdvices
              this.advicePropForm.operators = this.admin_users_prop
              this.advice_visibility = true
              this.isShowDialog = false

              for (let i = 0; i < this.advicePropForm.list.length; i++) {
                if (
                  this.advicePropForm.list[i].parent_id == 0 &&
                  this.advicePropForm.list[i].isCheck == 1
                ) {
                  this.advicePropForm.result.push(
                    this.advicePropForm.list[i].id
                  )
                }
              }
            } else {
              Toast.loading({ forbidClick: true, duration: 0 })
              var arr = this.dialysisPrescription
              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
                if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
                }
              }
              let ParamsQuery = arr
              console.log('ParamsQueryOne', ParamsQuery)
              ParamsQuery['patient'] = this.$route.query.patient_id
              ParamsQuery['record_date'] = this.record_date
              ParamsQuery['mode'] = '1'

              postSolution(ParamsQuery)
                .then(response => {
                  if (response.data.state == 0) {
                    Toast.fail(response.data.msg)
                    return false
                  } else {
                    Toast.success('提交成功')

                    this.$emit('longSolution', response.data.data.solution)
                    this.$emit('prescription', response.data.data.prescription)
                    this.finish()
                  }
                })
                .catch(error => {
                  Toast.fail('请求失败')
                })
            }
          } else if (this.is_open == 2) {
            if (this.waitUploadAdvices.length > 0) {
              Toast.loading({ forbidClick: true, duration: 0 })
              var arr = this.dialysisPrescription
              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
                if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
                }
              }
              let ParamsQuery = arr
              console.log('ParamsQueryOne', ParamsQuery)
              ParamsQuery['patient'] = this.$route.query.patient_id
              ParamsQuery['record_date'] = this.record_date
              ParamsQuery['mode'] = '2'

              postSolution(ParamsQuery)
                .then(response => {
                  if (response.data.state == 0) {
                    Toast.fail(response.data.msg)
                    return false
                  } else {
                    this.advice_visibility = false

                    var date = new Date()
                    var year = date.getFullYear()
                    var month = date.getMonth() + 1
                    var day = date.getDate()

                    var hours = date.getHours()
                    var minites = date.getMinutes()

                    if (month < 10) {
                      month = '0' + month
                    }
                    if (day < 10) {
                      day = '0' + day
                    }
                    if (hours < 10) {
                      hours = '0' + hours
                    }
                    if (minites < 10) {
                      minites = '0' + minites
                    }
                    var nowDate =
                      year +
                      '-' +
                      month +
                      '-' +
                      day +
                      ' ' +
                      hours +
                      ':' +
                      minites

                    let params = {
                      advices: this.waitUploadAdvices,
                      advice_date: parseTime(
                        this.$route.query.date,
                        '{y}-{m}-{d}'
                      ),
                      advice_doctor: this.waitUploadAdvices[0].advice_doctor,
                      advice_type: this.waitUploadAdvices[0].advice_type,
                      parent_id: this.$route.query.patient_id,
                      start_time: nowDate,
                      remark: ''
                    }
                    CreateGroupAdvice(
                      this.$route.query.patient_id,
                      0,
                      params
                    ).then(rs => {
                      var resp = rs.data
                      if (resp.state == 1) {
                        this.doctorAdvices = resp.data.advices
                        this.$emit(
                          'longSolution',
                          response.data.data.solution,
                          resp.data.advices
                        )
                        this.$emit(
                          'prescription',
                          response.data.data.prescription,
                          resp.data.advices
                        )
                      } else {
                      }
                    })
                    Toast.success('提交成功')
                    this.finish()
                  }
                })
                .catch(error => {
                  Toast.fail('请求失败')
                })
            } else {
              Toast.loading({ forbidClick: true, duration: 0 })
              var arr = this.dialysisPrescription
              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
                if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
                }
              }
              let ParamsQuery = arr
              console.log('ParamsQueryOne', ParamsQuery)
              ParamsQuery['patient'] = this.$route.query.patient_id
              ParamsQuery['record_date'] = this.record_date
              ParamsQuery['mode'] = '1'

              postSolution(ParamsQuery)
                .then(response => {
                  if (response.data.state == 0) {
                    Toast.fail(response.data.msg)
                    return false
                  } else {
                    Toast.success('提交成功')
                    this.$emit('advice')
                    this.$emit('longSolution', response.data.data.solution)
                    this.$emit('prescription', response.data.data.prescription)
                    this.finish()
                  }
                })
                .catch(error => {
                  Toast.fail('请求失败')
                })
            }
          }
        } else {
          Toast.loading({ forbidClick: true, duration: 0 })
          var arr = this.dialysisPrescription
          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
            if (arr.dialyzer_perfusion_apparatus == this.dialyzerPerfusionApparatus[i].id) {
              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[i].name
            }
          }
          let ParamsQuery = arr
          console.log('ParamsQueryOne', ParamsQuery)
          ParamsQuery['patient'] = this.$route.query.patient_id
          ParamsQuery['record_date'] = this.record_date
          ParamsQuery['mode'] = '1'

          postSolution(ParamsQuery)
            .then(response => {
              if (response.data.state == 0) {
                Toast.fail(response.data.msg)
                return false
              } else {
                Toast.success('提交成功')
                this.$emit('longSolution', response.data.data.solution)

                this.$emit('prescription', response.data.data.prescription)
                this.finish()
              }
            })
            .catch(error => {
              Toast.fail('请求失败')
            })
        }
      }
    },
    finish: function () {
      this.$emit('finish')
    },
    close: function () {
      this.$emit('close')
    },
    open: function () {
      this.isShowDialog = true
      this.visibility = false
      this.$refs.picker.close()
      var dialogTop = document.querySelector('#dialogTop')
      if (dialogTop != null) {
        this.$nextTick(() => {
          dialogTop.scrollTop = 0
        })
      }
    },
    sign: function () {
      let params = {
        patient_id: this.$route.query.patient_id,
        date: this.record_date
      }
      postSign(params)
        .then(response => {
          if (response.data.state == 0) {
            Toast.fail(response.data.msg)
            return false
          } else {
            this.isShowDesc = false
            this.isShowDoctorSign = true
            this.dialysisPrescription.prescription_doctor =
              response.data.data.doctor_id
            for (let i = 0; i < this.operators.length; i++) {
              if (this.operators[i].creator == response.data.data.doctor_id) {
                // console.log(this.operators[i].url);
                this.signUrl = this.operators[i].url
              }
            }
            Toast.success('签名成功')
          }
        })
        .catch(error => {
          Toast.fail('请求失败')
        })
    },
    getBodyFluid: function (val) {
      let body_fluid_name = ''
      let body_fluid = this.bodyFluidOptions
      for (let i = 0; i < body_fluid.length; i++) {
        if (body_fluid[i].id == val) {
          body_fluid_name = body_fluid[i].name
        }
      }
      return body_fluid_name
    },
    getSpecialMedicine: function (val) {
      let special_medicine_name = ''
      let special_medicine = this.specialMedicineOptions
      for (let i = 0; i < special_medicine.length; i++) {
        if (special_medicine[i].id == val) {
          special_medicine_name = special_medicine[i].name
        }
      }
      return special_medicine_name
    },
    getDisplaceLiquiPart: function (val) {
      let displace_liqui_part_name = ''
      let displace_liqui_part = this.displaceLiquiPartOptions
      for (let i = 0; i < displace_liqui_part.length; i++) {
        if (displace_liqui_part[i].id == val) {
          displace_liqui_part_name = displace_liqui_part[i].name
        }
      }
      return displace_liqui_part_name
    },
    getBloodAccess: function (val) {
      let blood_access_name = ''
      let blood_access = this.bloodAccessOptions
      for (let i = 0; i < blood_access.length; i++) {
        if (blood_access[i].id == val) {
          blood_access_name = blood_access[i].name
        }
      }
      return blood_access_name
    },
    getBloodAccessTwo: function (val) {
      let blood_access_name = ''
      for (let i = 0; i < this.data.length; i++) {
        if (val == this.data[i].id) {
          blood_access_name = this.data[i].name
        }
      }
      return blood_access_name
    },
    getDialyzerPerfusionApparatus: function (val) {
      console.log('val', val)
      let dialyzer_perfusion_apparatus = ''
      let arr = this.dialyzerPerfusionApparatus
      for (let i = 0; i < arr.length; i++) {
        if (arr[i].id == val) {
          dialyzer_perfusion_apparatus = arr[i].name
        }
      }
      return dialyzer_perfusion_apparatus
    },
    menuEmpty: function (val) {
      this.visibility = false
      this.isShowDialog = true
      switch (val.type) {
        case 1:
          this.dialysisPrescription.mode_id = ''

          break
        case 2:
          this.dialysisPrescription.dialyzer = ''
          break

        case 3:
          this.dialysisPrescription.perfusion_apparatus = ''
          break
        case 4:
          this.dialysisPrescription.replacement_way = ''
          break
        case 5:
          this.anticoagulant = ''
          break
        case 6:
          this.dialysisPrescription.dialysate_formulation = ''
          break
        case 7:
          this.dialysisPrescription.body_fluid = ''
          break
        case 8:
          this.dialysisPrescription.special_medicine = ''
          break
        case 9:
          this.dialysisPrescription.displace_liqui_part = ''
          break
        case 10:
          this.dialysisPrescription.blood_access = ''
          break
      }
    },
    getFloat: function (x) {
      if (x != '.') {
        var f = Math.round(x * 100) / 100
        var s = f.toString()
        var rs = s.indexOf('.')
        if (rs <= 0) {
          rs = s.length
          s += '.'
        }
        while (s.length <= rs + 1) {
          s += '0'
        }
        return s
      } else {
        return '0.0'
      }
    },
    dialysisGoodsClick: function () {
      this.isShowDialog = false
      this.is_show = true
    },
    menuCancleTwo: function () {
      this.isShowDialog = true
      this.is_show = false
    },
    menuComfirmTwo: function (dialysisPrescription) {
      this.isShowDialog = true
      this.is_show = false
      this.dialysisPrescription.niprocart = dialysisPrescription.niprocart
      this.dialysisPrescription.jms = dialysisPrescription.jms
      this.dialysisPrescription.fistula_needle_set =
        dialysisPrescription.fistula_needle_set
      this.dialysisPrescription.fistula_needle_set_16 =
        dialysisPrescription.fistula_needle_set_16
      this.dialysisPrescription.hemoperfusion =
        dialysisPrescription.hemoperfusion
      this.dialysisPrescription.dialyser_sterilised =
        dialysisPrescription.dialyser_sterilised
      this.dialysisPrescription.filtryzer = dialysisPrescription.filtryzer

      this.dialysisPrescription.dialyzers = dialysisPrescription.dialyzers
      this.dialysisPrescription.injector = dialysisPrescription.injector
      this.dialysisPrescription.bloodlines = dialysisPrescription.bloodlines
      this.dialysisPrescription.tubing_hemodialysis =
        dialysisPrescription.tubing_hemodialysis
      this.dialysisPrescription.package = dialysisPrescription.package
      this.dialysisPrescription.a_liquid = dialysisPrescription.a_liquid
    },
    getPermission () {
      request
        .get('/m/api/permission/get', {
          params: {
            create_url: '/m/api/dialysis/dialysisPrescription?mode=1',
            modify_url: '/m/api/dialysis/dialysisPrescription?mode=2',
            modify_other_url: '/m/api/dialysis/dialysisPrescription?mode=3',
            module: 1
          }
        })
        .then(res => {
          if (res.data.state == 0) {
            this.hasPermission = false
          } else if (res.data.state == 1) {
            if (
              this.prescription_prop.id != '' &&
              this.prescription_prop.creater != 0
            ) {
              // 有数据
              if (
                this.prescription_prop.creater ==
                this.$store.getters.user.admin.id
              ) {
                // 创建人是自己
                if (res.data.data.is_has_modify == false) {
                  this.hasPermission = false
                  this.showTxt = '你没有修改透析处方权限'
                }
              } else {
                // 创建人不是自己
                if (res.data.data.is_has_modify_other == false) {
                  this.hasPermission = false
                  this.showTxt = '你没有修改他人透析处方权限'
                }
              }
            } else if (
              this.prescription_prop.id == '' ||
              this.prescription_prop.creater == 0
            ) {
              if (res.data.data.is_has_create == false) {
                this.hasPermission = false
                this.showTxt = '你没有新增透析处方权限'
              }
            }
          }
        })
    }
  },
  created () {
    this.getPermission()
    this.template_id = this.$store.getters.user.template_info.template_id

    this.modeOption = this.$store.getters.treatment_mode
    delete this.modeOption['0']

    var perfusion_apparatus = getDataConfig(
      'hemodialysis',
      'perfusion_apparatus'
    )

    this.data = getDataConfig('hemodialysis', 'vascular_access_desc')

    this.perfusion_apparatus = perfusion_apparatus

    this.anticoagulantsConfitTwo = this.$store.getters.anticoagulants_confit

    var anticoagulantsConfitOne = this.$store.getters.anticoagulants_confit

    // for (let i = 0; i < anticoagulantsConfitOne.length; i++) {
    //   console.log('anticoagulantsConfitOne', anticoagulantsConfitOne[i].name)
    // }
    // var anticoagulantsConfit = getDataConfig('hemodialysis', 'anticoagulant')
    // let arr = []
    // anticoagulantsConfit.map((item, index) => {
    //   let objChild = { ...item }
    //   arr.push(objChild)
    // })
    // var arrthree = {}
    // arrthree = { ...arr }
    // console.log('arrthree', arrthree)

    let arrFour = []
    Object.keys(anticoagulantsConfitOne).map((item, index) => {
      if (index != 2) {
        arrFour.push(anticoagulantsConfitOne[item])
      }
    })
    this.anticoagulantsConfit = arrFour

    this.bodyFluidOptions = this.$store.getters.body_fluid
    var special_medicine = [
      {id: 1, name: '无'},
      {id: 2, name: '降压药'},
      {id: 3, name: '抗凝'},
      {id: 4, name: '其他'},
      {id: 5, name: '降糖药'}
    ]
    this.specialMedicineOptions = special_medicine
    // this.specialMedicineOptions = this.$store.getters.special_medicine
    this.displaceLiquiPartOptions = this.$store.getters.displace_liqui
    this.bloodAccessOptions = this.$store.getters.blood_access

    this.dialysateFormulationOptions = getDataConfig(
      'hemodialysis',
      'dialysate_formulation'
    )
    this.replacementWays = getDataConfig('hemodialysis', 'replacement_ways')

    this.patient = this.patient_prop

    if (
      this.prescription_prop != null &&
      typeof this.prescription_prop.id !== 'undefined' &&
      this.prescription_prop.id > 0
    ) {
      for (const key in this.prescription_prop) {
        this.dialysisPrescription[key] = this.prescription_prop[key]
      }
    } else if (
      this.solution_prop != null &&
      typeof this.solution_prop.id !== 'undefined' &&
      this.solution_prop.id
    ) {
      for (const key in this.solution_prop) {
        if (key != 'target_ultrafiltration') {
          this.dialysisPrescription[key] = this.solution_prop[key]
        }
      }
    } else if (
      this.last_prescription != null &&
      typeof this.last_prescription.id !== 'undefined' &&
      this.last_prescription.id
    ) {
      for (const key in this.last_prescription) {
        if (key != 'target_ultrafiltration') {
          this.dialysisPrescription[key] = this.last_prescription[key]
        }
      }
    } else if (
      this.system_prescription != null &&
      typeof this.system_prescription.id !== 'undefined' &&
      this.system_prescription.id
    ) {
      for (const key in this.system_prescription) {
        if (key != 'target_ultrafiltration') {
          this.dialysisPrescription[key] = this.system_prescription[key]
        }
      }
    } else {
      this.dialysisPrescription.mode_id = this.schedual.mode_id
    }

    if (
      this.dialysisPrescription.dialysis_duration_hour.length == 0 ||
      this.dialysisPrescription.dialysis_duration_minute.length == 0
    ) {
      this.timeValue = ''
      this.time = '03:00'
      this.dialysisPrescription.dialysis_duration = 3
    } else {
      this.timeValue =
        this.dialysisPrescription.dialysis_duration_hour +
        '小时' +
        this.dialysisPrescription.dialysis_duration_minute +
        '分钟'
      this.time =
        (this.dialysisPrescription.dialysis_duration_hour > 10
          ? this.dialysisPrescription.dialysis_duration_hour
          : '0' + this.dialysisPrescription.dialysis_duration_hour) +
        ':' +
        (this.dialysisPrescription.dialysis_duration_minute > 10
          ? this.dialysisPrescription.dialysis_duration_minute
          : '0' + this.dialysisPrescription.dialysis_duration_minute)

      this.dialysisPrescription.dialysis_duration =
        parseFloat(this.dialysisPrescription.dialysis_duration_hour) +
        parseFloat(
          (this.dialysisPrescription.dialysis_duration_minute / 60).toFixed(2)
        )
    }

    this.dialyserList = this.machines_prop
    // this.doctor = this.$store.getters.user.user.user_type;

    var date = this.$route.query && this.$route.query.date
    date *= 1000
    var newDate = new Date(date)

    var y = newDate.getFullYear()
    var m = newDate.getMonth() + 1
    var d = newDate.getDate()
    if (isNaN(y) || isNaN(m) || isNaN(d)) {
      newDate = new Date()
      y = newDate.getFullYear()
      m = newDate.getMonth() + 1
      d = newDate.getDate()
    }
    this.record_date =
      y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
    // this.patient.id = this.patient_prop.id

    this.dialysisPrescription.kalium = this.getFloat(
      this.dialysisPrescription.kalium
    )
    this.dialysisPrescription.sodium = this.getFloat(
      this.dialysisPrescription.sodium
    )
    this.dialysisPrescription.calcium = this.getFloat(
      this.dialysisPrescription.calcium
    )
    this.dialysisPrescription.ultrafiltration = this.getFloat(
      this.dialysisPrescription.ultrafiltration
    )
    this.dialysisPrescription.target_ultrafiltration = this.getFloat(
      this.dialysisPrescription.target_ultrafiltration
    )

    if (this.dialysisPrescription.anticoagulant_shouji == '') {
      this.dialysisPrescription.anticoagulant_shouji = '0'
    }

    if (this.dialysisPrescription.anticoagulant_weichi == '') {
      this.dialysisPrescription.anticoagulant_weichi = '0'
    }

    if (this.dialysisPrescription.anticoagulant_zongliang == '') {
      this.dialysisPrescription.anticoagulant_weichi = '0'
    }

    this.dialyzerPerfusionApparatus = getDataConfig(
      'hemodialysis',
      'dialyzer_perfusion_apparatus'
    )

    for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
      if (
        this.dialysisPrescription.dialyzer_perfusion_apparatus ==
        this.dialyzerPerfusionApparatus[i].name
      ) {
        this.dialysisPrescription.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
          i
        ].id
      }
    }

    console.log('数据来源', this.dialysisPrescription)
  },

  components: {
    LongAdviceSubMenu,
    MultipleSubMenu,
    MsgTip,
    // MultipleSubMenu,
    CheckBoxSubMenu
  },
  watch: {
    'dialysisPrescription.dialysis_duration': function () {
      console.log(this.dialysisPrescription.dialysis_duration)
      this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
        1,
        this.dialysisPrescription.anticoagulant_shouji,
        this.dialysisPrescription.dialysis_duration,
        this.dialysisPrescription.anticoagulant_weichi
      )
      if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
        this.dialysisPrescription.anticoagulant_zongliang = ''
      }
    },
    'dialysisPrescription.anticoagulant_shouji': function () {
      this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
        1,
        this.dialysisPrescription.anticoagulant_shouji,
        this.dialysisPrescription.dialysis_duration,
        this.dialysisPrescription.anticoagulant_weichi
      )
      if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
        this.dialysisPrescription.anticoagulant_zongliang = ''
      }
    },
    'dialysisPrescription.anticoagulant_weichi': function () {
      this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
        1,
        this.dialysisPrescription.anticoagulant_shouji,
        this.dialysisPrescription.dialysis_duration,
        this.dialysisPrescription.anticoagulant_weichi
      )
      if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
        this.dialysisPrescription.anticoagulant_zongliang = ''
      }
    },
    isShowDialog (val) {
      if (val) {
        this.advice_visibility = false
      }
    }
  }
}
</script>

<style style="stylesheet/scss" lang="scss" scoped>
.DialogContent {
  .textarea {
    width: 100%;
    height: 2.4rem;
    line-height: 0.6rem;
    color: $pgh-color;
    font-size: 0.45rem;
    padding-left: 0.36rem;
    border: none;
    border-bottom: 1px #e5e5e5 solid;
  }

  .newButton {
    background: #258ffc;
    padding: 0 0.2rem;
    height: 0.85rem;
    line-height: 0.85rem;
    border-radius: 5px;
    color: #fff;
    margin-right: -3.5rem;
  }
  .newName {
    margin-right: -3rem;
  }
  .newDialogContent {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    > :first-child {
      flex: 1;
      overflow: auto;
    }
  }
}
.warnTxt {
  font-size: 0.5rem;
  height: 1rem;
  line-height: 1rem;
  text-align: center;
  background: #faa331;
  color: #fff;
}
</style>

<style lang="scss">
.DialogTit {
  .newButton {
    background: #258ffc;
    padding: 0 0.2rem;
    height: 0.85rem;
    line-height: 0.85rem;
    border-radius: 5px;
    color: #fff;
    margin-right: -2.5rem;
  }
  .PrescSubmit {
    position: fixed;
    bottom: 0;
  }
}
</style>
