<template>
  <div class="main-contain outpatientChargesManagement" v-loading="newLoading"
       element-loading-text="拼命加载中"
       element-loading-spinner="el-icon-loading"
       element-loading-background="rgba(0, 0, 0, 0.8)">
    <div class="position">
      <bread-crumb :crumbs='crumbs'></bread-crumb>

    </div>

    <div class="app-container" style="display:flex;flex: 1;padding: 10px 20px 0px 20px;">
      <div class="mainLeft">

        <el-date-picker
          v-model="record_date"
          prefix-icon="el-icon-date"
          @change="changeTimeTwo"
          :editable="false"
          style="width: 100%;"
          type="date"
          placeholder="选择开始时间"
          align="right"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd">
        </el-date-picker>

        <div class="mainCell" style="margin-top:10px;">
          <el-radio-group v-model="radio" @change="changeRadio">
            <el-radio :label=1>未收费<span
              style="color: red;margin-bottom:10px;display: inline-block;">{{ cal_one }}</span>人
            </el-radio>
            <el-radio :label=2>已收费<span
              style="color: red;margin-bottom:10px;display: inline-block;">{{ cal_two }}</span>人
            </el-radio>
          </el-radio-group>
        </div>

        <div class="mainCell" v-if="this.org_id == 10191">
          <el-radio-group v-model="sch_type" @change="changeScheduleType">
            <el-radio :label="1">上午</el-radio>
            <el-radio :label="2">下午</el-radio>
            <el-radio :label="3">晚上</el-radio>
            <el-radio :label="0">全部</el-radio>
          </el-radio-group>
        </div>
        <div class="mainCell" style="margin-bottom:10px;">
          <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input"
                    class="filter-item"/>
          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary"
                     @click="searchAction">
            搜索
          </el-button>
        </div>
        <div>
          <el-table :data="patientTableData" :height="tableHeight" border style="width: 100%;"
                    :row-style="{ color: '#303133' }"
                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
                    highlight-current-row ref="tab"
                    @current-change="handleCurrentChange">
            <el-table-column align="center" prop="name" label="姓名" wdith='89'>
              <template slot-scope="scope">{{ scope.$index + 1 }}.{{ scope.row.name }}</template>
            </el-table-column>
            <el-table-column align="center" prop="name" label="就诊号" width="110">
              <template slot-scope="scope">{{ scope.row.number ? scope.row.number : '' }}
              </template>
            </el-table-column>
          </el-table>

          <!--          <el-table v-else :data="monthChargePatientTableData" :height="tableHeight" border style="width: 100%;"-->
          <!--                    :row-style="{ color: '#303133' }"-->

          <!--                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"-->
          <!--                    highlight-current-row ref="tab"-->
          <!--                    @current-change="handleCurrentChange">-->
          <!--            <el-table-column align="center" prop="name" label="姓名" wdith='89'>-->
          <!--              <template slot-scope="scope">{{ scope.row.name }}</template>-->
          <!--            </el-table-column>-->
          <!--            <el-table-column align="center" prop="name" label="就诊号" width="110">-->
          <!--              <template slot-scope="scope">{{ scope.row.number ? scope.row.number : '' }}-->
          <!--              </template>-->
          <!--            </el-table-column>-->
          <!--          </el-table>-->

        </div>
      </div>

      <div class="mainRight">

        <div class="mainCell fixedCell" style="margin-bottom:10px;">


          <div v-if="org_id == 10206  || org_id == 0">
            <el-button  size="small"
                        @click="openZb(1)"
                        v-if=" this.order.id == 0"
                        type="primary">记账
            </el-button>
            <el-button   size="small"
                         @click="openZb(2)"
                         type="primary">撤销记账
            </el-button>
          </div>

          <div  v-if="org_id != 10206 && org_id != 10340 && org_id != 0">
            <!--            <el-button size="small"-->
            <!--                       @click="openZb(1)"-->
            <!--                       type="primary">登记-->
            <!--            </el-button>-->

            <!--            <el-button  size="small"-->
            <!--                       @click="openZb(2)"-->
            <!--                       type="primary">记账-->
            <!--            </el-button>-->



            <el-button v-loading="loadingone" size="small"
                       @click="open(40)"
                       v-if="org_id == 10191 || org_id == 10318 || org_id == 10567"
                       type="primary">登陆
            </el-button>

            <el-button v-loading="loadingone" size="small"
                       @click="open(6)"
                       type="primary">挂号
            </el-button>

            <el-button v-loading="loadingone" size="small"
                       @click="open(20)"
                       type="primary">查询备案信息
            </el-button>



            <el-button  size="small"  v-if="(org_id == 10138 && this.order.is_upload_diagnose == 0 && this.order.order_status == 2) || (org_id == 10278 && this.order.is_upload_diagnose == 0 && this.order.order_status == 2)"
                        @click="openZF(1)"
                        type="primary">自费门诊就医上传(4205)
            </el-button>

            <el-button  size="small" v-if="(org_id == 10138  && this.order.is_upload_success == 0 && this.order.order_status == 2) || (org_id == 10278  && this.order.is_upload_success == 0 && this.order.order_status == 2) "
                        @click="openZF(2)"
                        type="primary">自费上传确认(4203)
            </el-button>

            <!--            <el-button  size="small" v-if="org_id == 10138  || org_id == 10278"-->
            <!--                        @click="openZF(3)"-->
            <!--                        type="primary">自费就医明细费用查询(4207)-->
            <!--            </el-button>-->

            <!--            <el-button  size="small" v-if="org_id == 10138  || org_id == 10278"-->
            <!--                        @click="openZF(4)"-->
            <!--                        type="primary">自费就医就诊信息查询(4208)-->
            <!--            </el-button>-->
            <!--            <el-button  size="small" v-if="org_id == 10138  || org_id == 10278"-->
            <!--                        @click="openZF(4)"-->
            <!--                        type="primary">自费就医诊断查询(4209)-->
            <!--            </el-button>-->



            <el-button size="small" @click="open(5)" type="primary"
                       v-if="this.radio == 2">
              退费
            </el-button>


            <el-button v-if="this.radio == 2   && this.order.order_status == 2" size="small"
                       @click="open(9)" type="primary"
            >结算单
            </el-button>


            <el-button v-if="this.radio == 2   && this.order.order_status == 2 && this.org_id == 10485" size="small"
                       @click="open(100)" type="primary"
            >结算单版本2
            </el-button>

            <el-button v-if="this.radio == 2   && this.order.order_status == 2" size="small"
                       @click="open(30)" type="primary"
            >打印发票
            </el-button>

            <el-button
              size="small" @click="open(10)" type="primary"
            >退号
            </el-button>

          </div>


        </div>


        <div class="mainCenter" v-loading="loading">
          <el-tabs class="settlementTabs" v-model="activeName" @tab-click="handleClick">
            <el-tab-pane label="日结" name="first">
              <div style="display:flex;height:100%;">
                <div class="centerLeft">
                    <div class="tabsBox" v-for="items,index in big_prescriptions" :key="index">
                        <el-tabs class="preTabs" v-model="editableTabsValue" type="border-card"
                                 @tab-click="tabclickEvent">
                          <el-tab-pane
                            v-for="(item, index) in items.prescriptions"
                            :key="index"
                            :label="item.name"
                            :name="item.name"
                          >

                            <el-button
                              v-if="radio == 1"
                              size="small"
                              @click="openDialog(item)"
                              type="primary"
                            >修改医疗类型
                            </el-button>
                            <div style="margin-bottom:10px;float: right">
                              <div>

                                <el-button
                                  v-if="(hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0  && org_id != 10340)"
                                  size="small"
                                  @click="open(50,items.med_type,items.prescriptions[0].order,items.prescriptions)"
                                  type="primary"
                                >读电子凭证
                                </el-button>

                                <el-button
                                  v-if="(hisPatientInfo.id_card_type != 3 && hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0 &&  items.prescriptions[0].order.id == 0 && org_id != 10340)"
                                  size="small"
                                  @click="open(8,items.med_type,items.prescriptions[0].order,items.prescriptions)"
                                  type="primary"
                                >预结算
                                </el-button>
                                <el-button
                                  v-if="items.curPrescriptions.order.order_status == 1 && hisPatientInfo.balance_accounts_type != 2 && org_id != 10340"
                                  size="small"
                                  @click="open(11,items.med_type,items.prescriptions[0].order,items.prescriptions)"
                                  type="primary"
                                >撤销明细
                                </el-button>
                                <el-button v-loading="loadingtwo"
                                           v-if="((hisPatientInfo.id > 0 && items.curPrescriptions.order.id == 0) || items.curPrescriptions.order.order_status == 1 ||  items.curPrescriptions.order.order_status == 3) && org_id != 10340"
                                           size="small"
                                           @click="open(4,items.med_type,items.curPrescriptions.order,items.prescriptions)"
                                           type="primary">收费
                                </el-button>
                              </div>
                            </div>
                          </el-tab-pane>
                            <prescription-table ref="prescription_tables"
                                              :prescription="items.curPrescriptions"
                                              :manufacturers="manufacturers"></prescription-table>

                        </el-tabs>

                      <div class="costBox">
                        <span>当前处方总费用：<span style="color:red;">{{ items.total }}元</span></span>


                        <span>医疗费总额：<span style="color:red;">{{
                            items.curPrescriptions.order.medfee_sumamt ? items.curPrescriptions.order.medfee_sumamt.toFixed(2) : getTotalFour(items.prescriptions) ? getTotalFour(items.prescriptions) : ''
                          }}元</span></span>
                        <span>基金支付总额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.fund_pay_sumamt ? items.curPrescriptions.order.fund_pay_sumamt.toFixed(2) : ''
                          }}元</span></span>

                        <span>基本医疗保险统筹基金支出：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.hifp_pay ? items.curPrescriptions.order.hifp_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span>医疗救助基金支出：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.maf_pay ? items.curPrescriptions.order.maf_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span>个人账户支付金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.acct_pay ? items.curPrescriptions.order.acct_pay.toFixed(2) : ''
                          }}元</span></span>
                        <span v-if="hisPatientInfo.balance_accounts_type != 2">个人支付金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.psn_cash_pay ? items.curPrescriptions.order.psn_cash_pay.toFixed(2) : ''
                          }}元</span></span>
                        <span v-if="hisPatientInfo.balance_accounts_type == 2">个人支付金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.medfee_sumamt.toFixed(2)
                          }}元</span></span>

                        <span>个人账户金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.balc ? items.curPrescriptions.order.balc.toFixed(2) : ''
                          }}元</span></span>


                        <span>完全自费：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.fulamt_ownpay_amt ? items.curPrescriptions.order.fulamt_ownpay_amt.toFixed(2) : ''
                          }}元</span></span>

                        <span>超限价：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.overlmt_self_pay ? items.curPrescriptions.order.overlmt_self_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span>个人共济：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.acct_mulaid_pay ? items.curPrescriptions.order.acct_mulaid_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span v-if="items.curPrescriptions.order_status  == 1">待结算</span>
                        <span v-if="items.curPrescriptions.order_status  == 2">已结算</span>
                        <span v-if="items.curPrescriptions.order_status  == 3">已退费</span>

                      </div>

                    </div>
                </div>
                <div class="centerRight">
                  <p class="centerRightTitle" style="padding-top: 10px;">就诊信息</p>

                  <div>
                    <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">

                      <el-form-item label="大病类别：" prop="sick_type" >
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.sick_type" placeholder="">
                          <el-option
                            v-for="(item,index) in sick"
                            :key="index"
                            :label="item.class_name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>

                      <el-form-item label="诊断：" prop="diagnosis" >
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.diagnosis" multiple placeholder="">
                          <el-option
                            v-for="(item,index) in diagnoses"
                            :key="index"
                            :label="item.class_name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>


                      <el-form-item label="诊断时间：" prop="diagnosis_time">
                        <el-date-picker
                          v-model="form.diagnosis_time"
                          prefix-icon="el-icon-date"
                          :editable="false"
                          style="width: 100%;"
                          type="datetime"
                          placeholder="选择开始时间"
                          align="right"
                          format="yyyy-MM-dd HH:mm:ss"
                          value-format="yyyy-MM-dd HH:mm:ss">
                        </el-date-picker>
                      </el-form-item>

                      <el-form-item label="个账使用标识：" prop="acct_used_flag">
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.acct_used_flag"  placeholder="">
                          <el-option
                            v-for="(item,index) in acct_used_flags"
                            :key="index"
                            :label="item.name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>
                    </el-form>
                  </div>
                  <p class="centerRightTitle">人员信息</p>
                  <div style="display:flex;justify-content: space-between;line-height:30px;">
                    <span style="font-size:14px;">人员编码:{{ patientInfo.dialysis_no }}</span>
                    <span style="font-size:14px;">日期:{{ record_date }}</span>
                  </div>
                  <ul class="basicUl">
                    <li style="width:50%;">姓名：{{ patientInfo.name }}</li>
                    <li style="width:50%;">性别：{{ patientInfo.gender == 1 ? '男' : '女' }}</li>
                    <li style="width:50%;">年龄：{{ patientInfo.age }}</li>
                    <li style="width:50%;">电话：{{ patientInfo.phone }}</li>
                  </ul>
                  <p class="centerRightTitle" style="padding-top: 10px;">诊断信息</p>
                  <div style="display:flex;justify-content: space-between;line-height:30px;">
                    <span style="font-size:14px;">门诊编号:{{ hisPatientInfo.number }}</span>
                  </div>
                  <ul class="basicUl">
                    <li style="width:50%;">医生：{{ info.doctor }}</li>
                    <li style="width:50%;">科室：{{ info.departments }}</li>
                    <!--<li style="width:100%;">总费用：{{ getTotal() }}</li>-->
                    <li style="width:100%;">判断结果：{{ info.diagnosis }}</li>
                    <li style="width:100%;">是否有传染病：</li>
                    <li style="width:100%;">血压：</li>
                  </ul>
                </div>
              </div>
            </el-tab-pane>
            <el-tab-pane label="月结" name="second">
              <div style="display:flex;height:100%;">
                <div class="centerLeft">
                  <div class="RP">
                    Rp
                    <el-date-picker
                      v-model="other_start_time"
                      prefix-icon="el-icon-date"
                      @change="changeTime"
                      :editable="false"
                      style="width: 150px;"
                      type="date"
                      placeholder="选择开始时间"
                      align="right"
                      format="yyyy-MM-dd"
                      value-format="yyyy-MM-dd">
                    </el-date-picker>
                    <span class>-</span>
                    <el-date-picker
                      v-model="other_end_time"
                      prefix-icon="el-icon-date"
                      @change="changeEndTime"
                      :editable="false"
                      style="width: 150px;"
                      type="date"
                      placeholder="选择结束时间"
                      align="right"
                      format="yyyy-MM-dd"
                      value-format="yyyy-MM-dd">
                    </el-date-picker>
                  </div>
                  <div>
                    <div class="tabsBox" v-for="(items, index) in big_month_prescriptions">
                      <div style="height: calc(100% - 60px);">
                        <el-tabs class="preTabs" v-model="editableTabsValue" type="border-card"
                                 @tab-click="tabclickEventTwo">

                          <el-tab-pane
                            v-for="(item, index) in items.month_prescriptions"
                            :key="index"
                            :label="item.name"
                            :name="item.name">
                          </el-tab-pane>

                          <el-button
                            v-if="radio == 1"
                            size="small"
                            @click="openMonthDialog(items)"
                            type="primary"
                          >修改医疗类型
                          </el-button>

                          <div style="margin-bottom:10px;float: right">

                            <div>

                              <el-button
                                v-if="(hisPatientInfo.id_card_type == 4 && hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0  && org_id != 10340)"
                                size="small"
                                @click="open(50,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
                                type="primary"
                              >读电子凭证
                              </el-button>

                              <el-button
                                v-if="(hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0 &&  items.curMonthPrescriptions.order.id == 0)"
                                size="small"
                                @click="open(8,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
                                type="primary"
                              >预结算
                              </el-button>
                              <el-button
                                v-if="items.curMonthPrescriptions.order.order_status == 1"
                                size="small"
                                @click="open(11,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
                                type="primary"
                              >撤销明细
                              </el-button>

                              <el-button
                                v-if="(hisPatientInfo.id > 0 && items.curMonthPrescriptions.order.id == 0) || items.curMonthPrescriptions.order.order_status == 1 ||  items.curMonthPrescriptions.order.order_status == 3"
                                size="small"
                                @click="open(4,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
                                type="primary">收费
                              </el-button>
                            </div>
                          </div>
                          <charge-month-prescription-table
                            :prescription="items.curMonthPrescriptions"></charge-month-prescription-table>
                        </el-tabs>


                      </div>
                      <div class="costBox">
                                          <span>当前处方总费用：<span
                                            style="color:red;">{{ items.month_total }}元</span></span>

                        <span>医疗费总额：<span style="color:red;">{{
                            items.curMonthPrescriptions.order.medfee_sumamt ? items.curMonthPrescriptions.order.medfee_sumamt.toFixed(2) : getTotalFour(items.month_prescriptions) ? getTotalFour(items.month_prescriptions) : ''
                          }}元</span></span>
                        <span>基金支付总额：<span
                          style="color:red;">{{
                            items.curMonthPrescriptions.order.fund_pay_sumamt ? items.curMonthPrescriptions.order.fund_pay_sumamt.toFixed(2) : ''
                          }}元</span></span>

                        <span>基本医疗保险统筹基金支出：<span
                          style="color:red;">{{
                            items.curMonthPrescriptions.order.hifp_pay ? items.curMonthPrescriptions.order.hifp_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span>医疗救助基金支出：<span
                          style="color:red;">{{
                            items.curMonthPrescriptions.order.maf_pay ? items.curMonthPrescriptions.order.maf_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span>个人账户支付金额：<span
                          style="color:red;">{{
                            items.curMonthPrescriptions.order.acct_pay ? items.curMonthPrescriptions.order.acct_pay.toFixed(2) : ''
                          }}元</span></span>
                        <!--<span>个人支付金额：<span style="color:red;">{{ items.curMonthPrescriptions.order.psn_cash_pay?items.curMonthPrescriptions.order.psn_cash_pay:''}}元</span></span>-->

                        <span v-if="hisPatientInfo.balance_accounts_type != 2">个人支付金额：<span
                          style="color:red;">{{
                            items.curMonthPrescriptions.order.psn_cash_pay ? items.curMonthPrescriptions.order.psn_cash_pay.toFixed(2) : ''
                          }}元</span></span>
                        <span v-if="hisPatientInfo.balance_accounts_type == 2">个人支付金额：<span
                          style="color:red;">{{ items.curMonthPrescriptions.order.medfee_sumamt.toFixed(2) }}元</span></span>


                        <span>个人账户金额：<span
                          style="color:red;">{{
                            items.curMonthPrescriptions.order.account_price ? items.curMonthPrescriptions.order.account_price.toFixed(2) : ''
                          }}元</span></span>

                      </div>

                    </div>


                  </div>
                </div>
                <div class="centerRight">
                  <p class="centerRightTitle" style="padding-top: 10px;">
                    就诊信息</p>
                  <div>
                    <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">


                      <el-form-item label="大病类别：" prop="sick_type" >
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.sick_type" placeholder="">
                          <el-option
                            v-for="(item,index) in sick"
                            :key="index"
                            :label="item.class_name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>

                      <el-form-item label="诊断：" prop="diagnosis" >
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.diagnosis" multiple placeholder="">
                          <el-option
                            v-for="(item,index) in diagnoses"
                            :key="index"
                            :label="item.class_name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>

                      <el-form-item label="诊断时间：" prop="diagnosis_time">
                        <el-date-picker
                          v-model="form.diagnosis_time"
                          prefix-icon="el-icon-date"
                          :editable="false"
                          style="width: 100%;"
                          type="datetime"
                          placeholder="选择开始时间"
                          align="right"
                          format="yyyy-MM-dd HH:mm:ss"
                          value-format="yyyy-MM-dd HH:mm:ss">
                        </el-date-picker>
                      </el-form-item>

                      <el-form-item label="个账使用标识：" prop="acct_used_flag">
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.acct_used_flag"  placeholder="">
                          <el-option
                            v-for="(item,index) in acct_used_flags"
                            :key="index"
                            :label="item.name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>

                    </el-form>

                  </div>
                  <p class="centerRightTitle">人员信息</p>
                  <div style="display:flex;justify-content: space-between;line-height:30px;">
                    <span style="font-size:14px;">人员编码:{{ patientInfo.dialysis_no }}</span>
                    <span style="font-size:14px;">日期:{{ record_date }}</span>
                  </div>

                  <ul class="basicUl">
                    <li style="width:50%;">姓名：{{ patientInfo.name }}</li>
                    <li style="width:50%;">性别：{{ patientInfo.gender == 1 ? '男' : '女' }}</li>
                    <li style="width:50%;">年龄：{{ patientInfo.age }}</li>
                    <li style="width:50%;">电话：{{ patientInfo.phone }}</li>
                    <li style="width:100%;">过敏史及其他病史：{{ info.sick_history }}</li>

                  </ul>
                  <p class="centerRightTitle" style="padding-top: 10px;">诊断信息</p>
                  <div style="display:flex;justify-content: space-between;line-height:30px;">
                    <span style="font-size:14px;">门诊编号:{{ hisPatientInfo.number }}</span>
                  </div>
                  <ul class="basicUl">
                    <li style="width:50%;">医生：{{ info.doctor }}</li>
                    <li style="width:50%;">科室：{{ getDepartment(info.departments) }}</li>
                    <!--<li style="width:100%;" v-if="activeName == 'first'">总费用：{{ getTotal() }}</li>-->
                    <!--<li style="width:100%;" v-if="activeName == 'second'">总费用：{{ getTotalTwo() }}-->
                    <!--</li>-->

                    <li style="width:100%;">判断结果：{{ GetDiagnosisName(info.diagnosis) }}</li>
                    <!--<li style="width:100%;">是否有传染病：</li>-->
                    <!--<li style="width:100%;">血压：</li>-->
                  </ul>
                </div>
              </div>
            </el-tab-pane>
            <el-tab-pane label="其他月结" name="third">
              <div style="display:flex;height:100%;">
                <div class="centerLeft">
                  <div class="RP">
                    Rp
                    <el-date-picker
                      v-model="other_start_time_two"
                      prefix-icon="el-icon-date"
                      @change="changeTimeThree"
                      :editable="false"
                      style="width: 150px;"
                      type="date"
                      placeholder="选择开始时间"
                      align="right"
                      format="yyyy-MM-dd"
                      value-format="yyyy-MM-dd">
                    </el-date-picker>
                    <span class>-</span>
                    <el-date-picker
                      v-model="other_end_time_two"
                      prefix-icon="el-icon-date"
                      @change="changeEndTimeThree"
                      :editable="false"
                      style="width: 150px;"
                      type="date"
                      placeholder="选择结束时间"
                      align="right"
                      format="yyyy-MM-dd"
                      value-format="yyyy-MM-dd">
                    </el-date-picker>
                  </div>
                  <div>
                    <div class="tabsBox" v-for="(items,index) in big_prescriptions_two" :key="index">
                      <div style="height: calc(100% - 60px);">

                        <el-tabs class="preTabs" v-model="editableTabsValue" type="border-card"
                                 @tab-click="tabclickEventThree">
                          <!--<el-radio-group v-model="med_radio">-->
                          <el-tab-pane
                            v-for="(item, index) in items.prescriptions"
                            :key="index"
                            :label="item.name"
                            :name="item.name"
                          >

                            <el-button
                              v-if="radio == 1"
                              size="small"
                              @click="openMonthDialogTwo(item)"
                              type="primary"
                            >修改医疗类型
                            </el-button>
                            <!--                            <div style="margin-bottom:10px;float: right">-->
                            <!--                              <div>-->
                            <!--                                <el-button-->
                            <!--                                    v-if="(hisPatientInfo.id > 0 &&  items.prescriptions[0].order.id == 0)"-->
                            <!--                                    size="small"-->
                            <!--                                    @click="open(8,items.med_type,items.prescriptions[0].order,items.prescriptions)"-->
                            <!--                                    type="primary"-->
                            <!--                                >预结算-->
                            <!--                                </el-button>-->
                            <!--                                <el-button-->
                            <!--                                    v-if="items.curPrescriptions.order.order_status == 1 && hisPatientInfo.balance_accounts_type != 2"-->
                            <!--                                    size="small"-->
                            <!--                                    @click="open(11,items.med_type,items.prescriptions[0].order,items.prescriptions)"-->
                            <!--                                    type="primary"-->
                            <!--                                >撤销明细-->
                            <!--                                </el-button>-->


                            <!--                                <el-button v-loading="loadingtwo"-->
                            <!--                                           v-if="(hisPatientInfo.id > 0 && items.curPrescriptions.order.id == 0) || items.curPrescriptions.order.order_status == 1 ||  items.curPrescriptions.order.order_status == 3"-->
                            <!--                                           size="small"-->
                            <!--                                           @click="open(4,items.med_type,items.curPrescriptions.order,items.prescriptions)"-->
                            <!--                                           type="primary">收费-->
                            <!--                                </el-button>-->
                            <!--                              </div>-->
                            <!--                            </div>-->
                          </el-tab-pane>


                          <prescription-table ref="prescription_tables"
                                              :prescription="items.curPrescriptions"
                                              :manufacturers="manufacturers"></prescription-table>
                          <!--</el-radio-group>-->
                        </el-tabs>
                      </div>
                      <div class="costBox">
                        <span>当前处方总费用：<span style="color:red;">{{ items.total }}元</span></span>


                        <span>医疗费总额：<span style="color:red;">{{
                            items.curPrescriptions.order.medfee_sumamt ? items.curPrescriptions.order.medfee_sumamt.toFixed(2) : getTotalFour(items.prescriptions) ? getTotalFour(items.prescriptions) : ''
                          }}元</span></span>
                        <span>基金支付总额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.fund_pay_sumamt ? items.curPrescriptions.order.fund_pay_sumamt.toFixed(2) : ''
                          }}元</span></span>

                        <span>基本医疗保险统筹基金支出：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.hifp_pay ? items.curPrescriptions.order.hifp_pay.toFixed(2) : ''
                          }}元</span></span>

                        <span>医疗救助基金支出：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.maf_pay ? items.curPrescriptions.order.maf_pay.toFixed(2) : ''
                          }}元</span></span>

                        <!--                        <span>基金支付金额：<span-->
                        <!--                            style="color:red;">{{-->
                        <!--                            items.curPrescriptions.order.hifp_pay ? items.curPrescriptions.order.hifp_pay.toFixed(2) : ''-->
                        <!--                          }}元</span></span>-->
                        <span>个人账户支付金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.acct_pay ? items.curPrescriptions.order.acct_pay.toFixed(2) : ''
                          }}元</span></span>
                        <span v-if="hisPatientInfo.balance_accounts_type != 2">个人支付金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.psn_cash_pay ? items.curPrescriptions.order.psn_cash_pay.toFixed(2) : ''
                          }}元</span></span>
                        <span v-if="hisPatientInfo.balance_accounts_type == 2">个人支付金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.medfee_sumamt.toFixed(2)
                          }}元</span></span>

                        <span>个人账户金额：<span
                          style="color:red;">{{
                            items.curPrescriptions.order.balc ? items.curPrescriptions.order.balc.toFixed(2) : ''
                          }}元</span></span>

                        <span v-if="items.curPrescriptions.order_status  == 1">待结算</span>
                        <span v-if="items.curPrescriptions.order_status  == 2">已结算</span>
                        <span v-if="items.curPrescriptions.order_status  == 3">已退费</span>
                      </div>
                    </div>
                  </div>

                </div>
                <div class="centerRight">
                  <p class="centerRightTitle" style="padding-top: 10px;">就诊信息</p>

                  <div>
                    <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">

                      <el-form-item label="大病类别：" prop="sick_type" >
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.sick_type" placeholder="">
                          <el-option
                            v-for="(item,index) in sick"
                            :key="index"
                            :label="item.class_name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>

                      <el-form-item label="诊断：" prop="diagnosis" >
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.diagnosis" multiple placeholder="">
                          <el-option
                            v-for="(item,index) in diagnoses"
                            :key="index"
                            :label="item.class_name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>


                      <el-form-item label="诊断时间：" prop="diagnosis_time">
                        <el-date-picker
                          v-model="form.diagnosis_time"
                          prefix-icon="el-icon-date"
                          :editable="false"
                          style="width: 100%;"
                          type="datetime"
                          placeholder="选择开始时间"
                          align="right"
                          format="yyyy-MM-dd HH:mm:ss"
                          value-format="yyyy-MM-dd HH:mm:ss">
                        </el-date-picker>
                      </el-form-item>
                      <el-form-item label="个账使用标识：" prop="acct_used_flag">
                        <el-select style="margin-right:5px;width:100px;"
                                   v-model="form.acct_used_flag"  placeholder="">
                          <el-option
                            v-for="(item,index) in acct_used_flags"
                            :key="index"
                            :label="item.name"
                            :value="item.id">
                          </el-option>
                        </el-select>
                      </el-form-item>

                    </el-form>
                  </div>
                  <p class="centerRightTitle">人员信息</p>
                  <div style="display:flex;justify-content: space-between;line-height:30px;">
                    <span style="font-size:14px;">人员编码:{{ patientInfo.dialysis_no }}</span>
                    <span style="font-size:14px;">日期:{{ record_date }}</span>
                  </div>
                  <ul class="basicUl">
                    <li style="width:50%;">姓名：{{ patientInfo.name }}</li>
                    <li style="width:50%;">性别：{{ patientInfo.gender == 1 ? '男' : '女' }}</li>
                    <li style="width:50%;">年龄：{{ patientInfo.age }}</li>
                    <li style="width:50%;">电话：{{ patientInfo.phone }}</li>
                  </ul>
                  <p class="centerRightTitle" style="padding-top: 10px;">诊断信息</p>
                  <div style="display:flex;justify-content: space-between;line-height:30px;">
                    <span style="font-size:14px;">门诊编号:{{ hisPatientInfo.number }}</span>
                  </div>
                  <ul class="basicUl">
                    <li style="width:50%;">医生：{{ info.doctor }}</li>
                    <li style="width:50%;">科室：{{ info.departments }}</li>
                    <!--<li style="width:100%;">总费用：{{ getTotal() }}</li>-->
                    <li style="width:100%;">判断结果：{{ info.diagnosis }}</li>
                    <li style="width:100%;">是否有传染病：</li>
                    <li style="width:100%;">血压：</li>
                  </ul>
                </div>
              </div>

            </el-tab-pane>
          </el-tabs>
        </div>
      </div>
    </div>
    <el-dialog
      title="发票号码"
      :visible.sync="fapiaoCodeDialogVisible"
      width="30%"
    >
      <el-input placeholder="请输入发票号码" v-model="fapiao_code"></el-input>

      <span slot="footer" class="dialog-footer">
                <el-button @click="fapiaoCodeDialogVisible = false">取 消</el-button>
                <el-button type="primary" @click="comfirmFaPiaoCode">确 定</el-button>
             </span>
    </el-dialog>

    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="30%"
    >
      <span>是否修改医疗类型</span>
      <el-select v-if="this.$store.getters.xt_user.org_id == 10188 || this.$store.getters.xt_user.org_id == 10217"
                 style="width:50%;" v-model="temp_med_type"
                 placeholder="医疗类型" @change="changevalue">
        <el-option
          v-for="(item,index) in registerThree"
          :key="index"
          :label="item.label"
          :value="item.value">
        </el-option>
      </el-select>

      <el-select v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217"
                 style="width:50%;" v-model="temp_med_type"
                 placeholder="医疗类型" @change="changevalue">
        <el-option
          v-for="(item,index) in register"
          :key="index"
          :label="item.label"
          :value="item.value">
        </el-option>
      </el-select>

      <span slot="footer" class="dialog-footer">
                <el-button @click="dialogVisible = false">取 消</el-button>
                <el-button type="primary" @click="comfirmChangeMedType">确 定</el-button>
             </span>
    </el-dialog>

    <additionalCharges ref='additionalCharges' @click="addCharges"
                       :addtions_charge="addtions_charge"></additionalCharges>

    <register-dialog ref='register' :doctors="doctors" :departments="department" :sick="sick" :diagnoses="diagnoses"
                     v-on:confirm="confirm" v-on:cancel="cancel"></register-dialog>

    <register-dialog9504 ref='register9504' :doctors="doctors" :departments="department" :sick="sick"
                         :diagnoses="diagnoses"
                         v-on:confirm="registerConfirm" v-on:cancel="registerCancel"></register-dialog9504>

    <charge-dialog ref='charge' v-on:confirm="chargeConfirm" v-on:cancel="chargeCancel"></charge-dialog>
    <el-dialog
      class="centerDialog"
      width="900px"
      title="打印"
      :visible.sync="treatVisible">
      <treatPrint :paramsObj='paramsObj'></treatPrint>
    </el-dialog>
    <el-dialog
      class="centerDialog"
      width="1200px"
      title="打印"
      :visible.sync="statementVisible">
      <statementPrint ref="print" :paramsObj='orderObj'></statementPrint>
    </el-dialog>


    <el-dialog
      class="centerDialog"
      width="1200px"
      title="打印"
      :visible.sync="newStatementVisibleTwo">
<!--      <statementPrintT ref="print" :paramsObj='orderObj'></statementPrintT>-->
      <new-statement-print-three ref="print" :paramsObj='orderObj'></new-statement-print-three>
    </el-dialog>

    <el-dialog
      class="centerDialog"
      width="1200px"
      title="打印"
      :visible.sync="newStatementVisible">
      <new-statement-print-two :params-obj="newOrderObj"></new-statement-print-two>
      <!--<newStatementPrint ref="print" :paramsObj='newOrderObj'></newStatementPrint>-->
    </el-dialog>


    <el-dialog title="输入密码" :visible.sync="pwdFormVisible">
      <el-form :model="form">
        <el-form-item label="密码" :label-width="20">
          <el-input v-model="pwd" show-password="false"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="pwdFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="comfirmPWDialog">确 定</el-button>
      </div>
    </el-dialog>

    <el-dialog
      class="centerDialog"
      width="1200px"
      title="打印"
      :visible.sync="invoiceVisible">
      <invoice-print ref="print" :invoiceParams='invoiceParams'></invoice-print>
    </el-dialog>

  </div>
</template>


<script>
import axios from 'axios'
import invoicePrint from './invoicePrint'
import BreadCrumb from '@/xt_pages/components/bread-crumb'
import noCharge from './components/noCharge'
import charged from './components/charged'
import medicalInsuranceRefund from './components/medicalInsuranceRefund'
import prescriptionTable from './components/prescriptionTable'
import additionalCharges from './components/additionalCharges'
import { fetchAllAdminUsers } from '@/api/doctor'

import {
  changeMedType,
  getChargeHisPatientInfo,
  getChargeHisPatientList,
  getDayOrMonthHisPrescription,
  getInitData,
  getMonthCharge,
  preSettle,
  Refund,
  refundNumber,
  register,
  upload,
  getMonthHisPatient,
} from '@/api/his/his'
import RegisterDialog from './components/registerDialog'
import treatPrint from './treatPrint'
import statementPrint from './statementPrint'
import ChargeDialog from './components/chargeDialog'
import MonthPrescriptionTable from './components/monthPrescriptionTable'
import ChargeMonthPrescriptionTable from './components/chargeMonthPrescriptionTable'
import NewStatementPrintTwo from './newStatementPrintTwo'
import RegisterDialog9504 from './components/registerDialog9504'
import cryptoJs from 'crypto-js'
import NewStatementPrintThree from './newStatementPrintThree.vue'

const moment = require('moment')
export default {
  components: {
    NewStatementPrintThree,
    RegisterDialog9504,
    NewStatementPrintTwo,
    ChargeMonthPrescriptionTable,
    MonthPrescriptionTable,
    ChargeDialog,
    RegisterDialog,
    BreadCrumb,
    noCharge,
    charged,
    medicalInsuranceRefund,
    prescriptionTable,
    additionalCharges,
    treatPrint,
    statementPrint,
    invoicePrint

  },
  data() {
    return {
      ws:null,
      fapiaoCodeDialogVisible:false,
      fapiao_code:"",
      monthChargePatientTableData: [],
      invoiceVisible: false,
      invoiceParams: null,
      temp_med_type: '',
      dialogVisible: false,
      pwdFormVisible: false,
      pwd: '000000',
      form: {
        p_type: '',
        sick_type: '',
        diagnosis: [],
        medical_care: '',
        diagnosis_time: '',
        acct_used_flag:0,
      },
      current_med_type: '',
      rules: {
        sick_type: [{ required: true, message: '大病类别不能为空', trigger: 'change' }],
        diagnosis: [{ required: true, message: '诊断不能为空', trigger: 'change' }]
      },
      // medical_care: [
      //   { value: 11, label: '普通门诊' },
      //   { value: 12, label: '家庭通道' },
      //   { value: 13, label: '门诊大病' },
      //   { value: 14, label: '重疾特药' },
      //   { value: 15, label: '门诊慢病' },
      //   { value: 16, label: '门诊特检' },
      //   { value: 17, label: '健康体检' },
      //   { value: 18, label: '预防接种' },
      //   { value: 19, label: '门诊输血' },
      //   { value: 91, label: '新冠肺炎门诊' },
      //   { value: 1111, label: '精一' },
      //   { value: 1112, label: '精二' }
      // ],
      //
      // medical_care_two: [
      //   { value: '11', label: '普通门诊' },
      //   { value: '12', label: '家庭通道' },
      //   { value: '13', label: '门诊大病' },
      //   { value: '14', label: '重疾特药' },
      //   { value: '15', label: '门诊慢病' },
      //   { value: '16', label: '门诊特检' },
      //   { value: '17', label: '健康体检' },
      //   { value: '18', label: '预防接种' },
      //   { value: '19', label: '门诊输血' },
      //   { value: '91', label: '新冠肺炎门诊' },

      // ],
      register: [
        { value: 11, label: '普通门诊' },
        { value: 12, label: '门诊挂号' },
        { value: 1102, label: '新冠门诊' },
        { value: 14, label: '门诊特殊病' },
        { value: '9922', label: '家庭通道' },
        { value: '1111', label: '精一' },
        { value: '1112', label: '精二' },
        { value: '1112', label: '精二' }
      ],

      registerThree: [
        { value: 11, label: '普通门诊' },
        { value: 1102, label: '新冠门诊' },
        { value: 14, label: '门诊特殊病' },
        { value: '9922', label: '家庭通道' },
        { value: '9933', label: '门诊特殊病(9933)' },
        { value: '990602', label: '门诊特殊病(990602)' },
        { value: '1402', label: '门诊特殊病(1402)' },
        { value: '1401', label: '门诊慢性病(1401)' },
        { value: '2302', label: '异地就医(2302)' },
        { value: '1111', label: '精一' },
        { value: '1112', label: '精二' },
        { value: '0', label: '自费' }

      ],
      register_two: [
        { value: '11', label: '普通门诊' },
        { value: '1102', label: '新冠门诊' },
        { value: '14', label: '门诊特殊病' },
        { value: '9922', label: '家庭通道' },
        { value: '9933', label: '门诊特殊病(9933)' },
        { value: '990602', label: '门诊特殊病(990602)' },
        { value: '1402', label: '门诊特殊病(1402)' },
        { value: '1401', label: '门诊慢性病(1401)' },
        { value: '2302', label: '异地就医(2302)' },
        { value: '0', label: '自费' }

      ],
      loading: false,
      dise_loading: false,
      org_id: this.$store.getters.xt_user.org_id,
      sick_history: '',
      p_type: '',
      sick_type: '',
      diagnosis: '',
      month_check: '',
      month_p_type: '',
      month_sick_type: '',
      month_diagnosis: '',
      key: '',
      other_start_time: moment(new Date()).subtract(30, 'days').format('YYYY-MM-DD'),
      other_end_time: moment(new Date()).add('year', 0).format('YYYY-MM-DD'),

      other_start_time_two: moment(new Date()).subtract(30, 'days').format('YYYY-MM-DD'),
      other_end_time_two: moment(new Date()).add('year', 0).format('YYYY-MM-DD'),
      adminUserOptions: [],
      curMonthPrescriptions: null,
      newCurMonthPrescriptions: null,
      big_month_prescriptions: [],
      month_total: 0,
      crumbs: [
        { path: false, name: '门诊收费' },
        { path: false, name: '门诊收费管理' }
      ],
      current_index: 0,
      cal_one: '',
      cal_two: '',
      cal_three: '',
      tableHeight: '',
      fullHeight: document.documentElement.clientHeight,
      activeName: 'first',
      info: {},
      curPrescriptions: {},
      prescriptions: [],
      big_prescriptions: [],
      big_prescriptions_two: [],
      check: 11,
      month_prescriptions: [],
      med_radio: '',
      record_date: '',
      tableData: [],
      editableTabsValue: '处方1',
      loadingone: false,
      editableTabs: [{
        title: '处方1',
        name: '1'
      }],
      tabIndex: 1,
      hisPatientInfo: {},
      loadingtwo: false,
      patientTableData: [{}],
      patientInfo: { id: 0 },
      doctor: {},
      total: 0,
      state: '未收费',
      radio: 1,
      sch_type:0,
      radioStatus: 1,
      search_input: '',
      start_time: moment().locale('zh-cn').format('YYYY-MM-DD'),
      patient_id: 0,
      prescription_id: 0,
      all_table_data: [],
      hisPatientDatas: [],
      order: {},
      currentOrder: {},
      addtions_charge: [],
      treatVisible: false,
      orderObj: {},
      paramsObj: {},
      newOrderObj: {},
      statementVisible: false,
      newStatementVisible: false,
      newStatementVisibleTwo: false,


      sick: [],
      diagnoses: [],
      acct_used_flags: [
        { id: 0, name: '不使用' },
        { id: 1, name: '使用本人个账' },
        { id: 2, name: '使用共济个账' },
      ],

      manufacturers: [],

      department: [],
      all_patient: [],

      temp_prescriptions: null,
      temp_month_prescriptions: null,

      temp_ids: '',

      other_prescriptions: [],
      newLoading: false

    }
  },
  created() {
    this.fetchAllAdminUsers()
    const tableHeight = document.body.clientHeight - 290
    this.tableHeight = tableHeight
    var nowDate = new Date()
    var nowYear = nowDate.getFullYear()
    var nowMonth = nowDate.getMonth() + 1
    var nowDay = nowDate.getDate()

    var nowHours = nowDate.getHours()
    var nowMinutes = nowDate.getMinutes()
    var nowSeconds = nowDate.getSeconds()

    this.record_date =
      nowYear +
      '-' +
      (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
      '-' +
      (nowDay < 10 ? '0' + nowDay : nowDay)

    this.form.diagnosis_time = nowYear +
      '-' +
      (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
      '-' +
      (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + (nowHours < 10 ? '0' + nowHours : nowHours) +
      ':' +
      (nowMinutes < 10 ? '0' + nowMinutes : nowMinutes) + ':' + (nowSeconds < 10 ? '0' + nowSeconds : nowSeconds)

    this.getInitData()
    //获取患者信息
    this.getPatientList()
  },
  methods: {
    comfirmFaPiaoCode(){
      var  that = this
      let params = {
        'order_id': this.order.id,
        'admin_user_id': this.$store.getters.xt_user.user.id,
        'fapiao_code':this.fapiao_code,
      }
      axios.get('http://127.0.0.1:9532/api/4205', {
        params: params
      }).then(function(response) {
        if (response.data.state == 0) {
          that.$message.error(response.data.msg)
          that.fapiaoCodeDialogVisible = false
          return false
        } else {
          that.fapiaoCodeDialogVisible = false
          if (response.data.data.failed_code == -10) {
            that.$confirm(response.data.data.msg, '医保错误信息', {
              confirmButtonText: '确 定',
              type: 'warning'
            }).then(() => {

            }).catch(() => {

            })

          } else {
            that.$message({ message: '上传成功', type: 'success', duration: 5000 })
            that.order.is_upload_diagnose = 1
          }

        }
      })
        .catch(function(error) {

        })


    },
    fetchAllAdminUsers() {
      fetchAllAdminUsers().then(response => {
        if (response.data.state == 1) {
          this.adminUserOptions = response.data.data.users

        }
      })
    },
    changeTimeTwo() {
      this.getPatientList()
      var nowDate = new Date()
      var nowHours = nowDate.getHours()
      var nowMinutes = nowDate.getMinutes()
      var nowSeconds = nowDate.getSeconds()
      this.form.diagnosis_time = this.record_date + ' ' + (nowHours < 10 ? '0' + nowHours : nowHours) + ':' + (nowMinutes < 10 ? '0' + nowMinutes : nowMinutes) + ':' + (nowSeconds < 10 ? '0' + nowSeconds : nowSeconds)
    },
    comfirmPWDialog() {
      var that = this
      axios.get('http://127.0.0.1:9532/api/pwd/check', {
        params: {
          'card_pwd': this.pwd,
          'his_patient_id': this.hisPatientInfo.id,
          'admin_user_id': this.$store.getters.xt_user.user.id
        }
      })
        .then(function(response) {
          if (response.data.state == 0) {
            that.$message.error(response.data.msg)
            return false
          } else {
            if (response.data.data.failed_code == -10) {
              this.pwd = ''
              that.$confirm(response.data.data.msg, '医保错误信息', {
                confirmButtonText: '确 定',
                type: 'warning'
              }).then(() => {

              }).catch(() => {

              })

            } else {
              that.pwdFormVisible = false
              if (that.activeName == 'first') {
                that.$refs.charge.show(that.getTotalFour(that.other_prescriptions), that.currentOrder,that.patientInfo.id)
              } else {
                that.$refs.charge.show(that.getTotalFour(that.other_prescriptions), that.currentOrder,that.patientInfo.id)
              }
            }

          }
        })
        .catch(function(error) {

        })
    },
    openDialog(item) {
      this.dialogVisible = true
      this.temp_prescriptions = item
    },
    openMonthDialog(item) {
      this.dialogVisible = true
      console.log(item)
      this.temp_month_prescriptions = item
      console.log(this.temp_month_prescriptions)
    },
    openMonthDialogTwo(item) {
      this.dialogVisible = true
      this.temp_prescriptions = item
    },
    comfirmChangeMedType() {
      let params = {
        med_type: this.temp_med_type.toString()
      }
      if (this.activeName == 'first') {
        params['ids'] = this.temp_prescriptions.id.toString()
        params['settle_type'] = 1
      } else if (this.activeName == 'second') {
        params['ids'] = this.temp_month_prescriptions.curMonthPrescriptions.prescriptions_ids
        params['settle_type'] = 2
        params['start_time'] = this.other_start_time
        params['end_time'] = this.other_end_time
        params['old_med_type'] = this.temp_month_prescriptions.med_type
      } else if (this.activeName == 'third') {
        params['ids'] = this.temp_prescriptions.id.toString()
        params['settle_type'] = 1
      }
      changeMedType(params).then(response => {
        if (response.data.state == 1) {
          if (this.activeName == 'first') {
            this.changeRadioAndPatient(1)

          } else if (this.activeName == 'second') {
            const params = {
              'record_date': this.record_date,
              'patient_id': this.patientInfo.id,
              'his_patient_id': this.hisPatientInfo.id,
              'start_time': this.other_start_time,
              'end_time': this.other_end_time,
              'type': this.radio,
              'p_type': 2,
              'order_id': this.order.id

            }
            getDayOrMonthHisPrescription(params).then(response => {
              if (response.data.state == 1) {
                this.loading = false

                this.month_prescriptions = []
                this.setMonthPrescription(response.data.data.day_prescription)
                this.curMonthPrescriptions = this.month_prescriptions[0]

              } else {
                this.$message.error(response.data.msg)
              }
            })

          } else if (this.activeName == 'third') {
            const params = {
              'record_date': this.record_date,
              'patient_id': this.patientInfo.id,
              'his_patient_id': this.hisPatientInfo.id,
              'start_time': this.other_start_time_two,
              'end_time': this.other_end_time_two,
              'type': this.radio,
              'p_type': 2,
              'order_id': this.order.id

            }
            getDayOrMonthHisPrescription(params).then(response => {
              if (response.data.state == 1) {
                this.loading = false
                this.big_prescriptions_two = []
                this.setMonthPrescriptionTwo(response.data.data.day_prescription)
                this.newCurMonthPrescriptions = this.big_prescriptions_two[0]
              } else {
                this.$message.error(response.data.msg)
              }
            })

          }

          this.dialogVisible = false

        } else {
          this.$message.error(response.data.msg)
        }
      })

    },
    changevalue(val) {
      this.$forceUpdate()

    }, GetDiagnosisName(ids) {

    },
    query() {
      if (this.$store.getters.xt_user.org_id == 9919 || this.$store.getters.xt_user.org_id == 4 || this.$store.getters.xt_user.org_id == 9538 || this.$store.getters.xt_user.org_id == 10106 || this.$store.getters.xt_user.org_id == 9990) {
        var that = this
        axios.get('http://127.0.0.1:9532/api/org/info', {
          params: {}
        })
          .then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              return false
            } else {

            }
          })
          .catch(function(error) {

          })
      }
    },
    getDepartment(department_id) {
      for (let i = 0; i < this.department.length; i++) {
        if (this.department[i].id == department_id) {
          return this.department[i].name
        }
      }
    },
    querySearch2(queryString, cb) {
      var restaurants = this.other_sick
      restaurants.map(item => {
        item.value = item.name
      })
      var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
      // 调用 callback 返回建议列表的数据
      cb(results)
    },
    changeTime(val) {
      const params = {
        'record_date': this.record_date,
        'patient_id': this.patientInfo.id,
        'his_patient_id': this.hisPatientInfo.id,
        'start_time': val,
        'end_time': this.other_end_time,
        'type': this.radio,
        'p_type': 2,
        'order_id': this.order.id

      }
      getMonthCharge(params).then(response => {
        if (response.data.state == 1) {
          this.loading = false

          this.month_prescriptions = []
          this.setMonthPrescription(response.data.data.month_prescriptions)
          this.curMonthPrescriptions = this.month_prescriptions[0]
          this.form.diagnosis = []
          for(let i = 0; i <  response.data.data.dia_arr.length;i++) {
            if (response.data.data.dia_arr[i] > 0 || response.data.data.dia_arr[i].length > 0) {
              this.form.diagnosis.push(parseInt(response.data.data.dia_arr[i]))
            }
          }
        } else {
          this.$message.error(response.data.msg)
        }
      })

    },
    changeEndTime(val) {
      const params = {
        'record_date': this.record_date,
        'patient_id': this.patientInfo.id,
        'his_patient_id': this.hisPatientInfo.id,
        'start_time': this.other_start_time,
        'end_time': val,
        'type': this.radio,
        'p_type': 2,
        'order_id': this.order.id

      }
      getMonthCharge(params).then(response => {
        if (response.data.state == 1) {
          this.loading = false
          this.month_prescriptions = []
          this.setMonthPrescription(response.data.data.month_prescriptions)
          this.curMonthPrescriptions = this.month_prescriptions[0]
          this.form.diagnosis = []
          for(let i = 0; i <  response.data.data.dia_arr.length;i++) {
            if (response.data.data.dia_arr[i] > 0 || response.data.data.dia_arr[i].length > 0) {
              this.form.diagnosis.push(parseInt(response.data.data.dia_arr[i]))
            }
          }
        } else {
          this.$message.error(response.data.msg)
        }
      })

    },
    changeTimeThree(val) {
      let params = {
        patient_id: this.patientInfo.id,
        start_time: val,
        end_time: this.other_end_time_two,
        p_type: 2,
        type: this.radio

      }
      getDayOrMonthHisPrescription(params).then(response => {
        if (response.data.state == 1) {
          this.big_prescriptions_two = []
          this.setMonthPrescriptionTwo(response.data.data.day_prescription)
          this.newCurMonthPrescriptions = this.big_prescriptions_two[0]

        } else {
          this.$message.error(response.data.msg)
        }
      })

    },
    changeEndTimeThree(val) {
      let params = {
        patient_id: this.patientInfo.id,
        start_time: this.other_start_time_two,
        end_time: val,
        p_type: 2

      }
      getDayOrMonthHisPrescription(params).then(response => {
        if (response.data.state == 1) {
          this.big_prescriptions_two = []
          this.setMonthPrescriptionTwo(response.data.data.day_prescription)
          this.newCurMonthPrescriptions = this.big_prescriptions_two[0]

        } else {
          this.$message.error(response.data.msg)
        }
      })

    },
    chargeConfirm(form) {
      this.newLoading = true
      form['pay_ways'] = form.pay_wayss.join(",")
      form['id'] = this.patientInfo.id
      form['his_patient_id'] = this.hisPatientInfo.id
      form['record_time'] = this.record_date
      form['admin_user_id'] = this.$store.getters.xt_user.user.id
      form['order_id'] = this.currentOrder.id
      form['org_id'] = this.$store.getters.xt_user.org_id
      form['begin_time'] = this.form.diagnosis_time
      form['p_type'] = this.current_med_type
      form['diagnosis'] = this.form.diagnosis.join(',')
      form['sick_type'] = this.form.sick_type
      form['ids'] = this.temp_ids
      if (this.activeName == 'first') {
        form['settle_accounts_type'] = 1

      } else if (this.activeName == 'second') {
        form['start_time'] = this.other_start_time
        form['end_time'] = this.other_end_time
        form['settle_accounts_type'] = 2

      } else {
        form['start_time'] = this.other_start_time_two
        form['end_time'] = this.other_end_time_two
        form['settle_accounts_type'] = 2
      }

      if (this.hisPatientInfo.balance_accounts_type == 2) {
        upload(form).then(response => {
          if (response.data.state == 0) {
            this.$message.error(response.data.msg)
            this.loadingtwo = false
            this.newLoading = false
            this.$refs.charge.hide()
            return false
          } else {
            if(response.data.data.msg == 2){
              var drug_name = response.data.data.drug.drug_name
              var dose = response.data.data.drug.dose
              var dose_unit = response.data.data.drug.dose_unit
              var min_number = response.data.data.drug.min_number
              var min_unit = response.data.data.drug.min_unit
              var max_unit = response.data.data.drug.max_unit
              var str = drug_name + " " + dose + dose_unit +"*" + min_number + min_unit + "/"+max_unit
              this.$message.error(str + "库存不足,结算失败!")
              this.loadingtwo = false
              this.newLoading = false
              return
            }
            if(response.data.data.msg == 3){
              var good_name = response.data.data.good.good_name
              var specification_name =  response.data.data.good.specification_name
              var str = good_name + " " + specification_name
              this.$message.error(str+"库存不足,结算失败!")
              this.loadingtwo = false
              this.newLoading = false
              return
            }
            this.$refs.charge.hide()
            this.radio = 2
            this.changeRadioAndPatient(2)
            this.loadingtwo = false
            this.state = '已收费'
            this.$message({ message: '收费成功', type: 'success' })
            this.$refs.charge.hide()
            this.loadingtwo = false
            this.newLoading = false
          }
        }) .catch(function(error) {
          this.newLoading = false
        })

      } else {
        var that = this
        axios.get('http://127.0.0.1:9532/api/upload/get', {
          params: form,
          headers: {
            'Permission': 5
          }
        })
          .then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)

              that.loadingtwo = false
              that.$refs.charge.hide()

              return false
            } else {
              if (response.data.data.failed_code == -10) {

                that.$confirm(response.data.data.msg, '医保错误信息', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {
                  that.$refs.charge.hide()
                  that.changeRadioAndPatient(1)
                  that.newLoading = false
                }).catch(() => {
                  that.$refs.charge.hide()
                  that.changeRadioAndPatient(1)
                  that.newLoading = false
                })

              } else {
                that.radio = 2
                that.changeRadioAndPatient(2)
                that.$refs.charge.hide()
                that.loadingtwo = false
                that.state = '已收费'
                that.$message({ message: '收费成功', type: 'success', duration: 5000 })
                that.loadingtwo = false
                that.cal_one = this.cal_one - 1
                that.cal_two = this.cal_two + 1
                that.patientTableData.splice(this.current_index, 1)
                that.newLoading = false
              }
            }
          })
          .catch(function(error) {
            that.newLoading = false
          })
      }
    },
    chargeCancel() {
      this.$refs.charge.hide()
    },
    registerCancel() {
      this.$refs.register9504.hide()

    },
    registerConfirm(forms) {
      forms['record_time'] = this.record_date
      forms['admin_user_id'] = this.$store.getters.xt_user.user.id
      forms['org_id'] = this.$store.getters.xt_user.org_id

      this.loadingone = true

      var that = this
      if (forms.settlement_value == 2) {
        register(forms).then(response => {
          if (response.data.state == 0) {
            this.$message.error(response.data.msg)
            this.loadingone = false
            // this.$refs.register.hide()
            return false
          } else {
            // this.getPatientList()
            this.changeRadio(1)
            this.$message({ message: '挂号成功', type: 'success', duration: 5000 })
            this.$refs.register9504.hide()
            this.loadingone = false
          }
        })
      } else {
        if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028 || this.$store.getters.xt_user.org_id == 10138 || this.$store.getters.xt_user.org_id == 10088 || this.$store.getters.xt_user.org_id == 10278) {
          axios.get('http://127.0.0.1:9532/api/register/get', {
            params: forms,
            headers: {
              'Permission': 5
            }
          })
            .then(function(response) {
              if (response.data.state == 0) {
                that.$message.error(response.data.msg)
                that.loadingone = false
                that.$refs.register9504.hide()
                return false
              } else {
                that.loadingone = false
                if (response.data.data.failed_code == -10) {
                  that.$confirm(response.data.data.msg, '医保错误信息', {
                    confirmButtonText: '确 定',
                    type: 'warning'
                  }).then(() => {

                  }).catch(() => {
                  })
                } else {

                  that.changeRadio(1)
                  that.$refs.register9504.hide()
                  that.$message({ message: '挂号成功', type: 'success' })
                }
              }
            })
            .catch(function(error) {

            })
        }
      }
    },
    confirm(forms) {
      forms['record_time'] = this.record_date
      forms['admin_user_id'] = this.$store.getters.xt_user.user.id
      forms['org_id'] = this.$store.getters.xt_user.org_id
      this.loadingone = true
      var that = this
      if (forms.settlement_value == 2) {
        register(forms).then(response => {
          if (response.data.state == 0) {
            this.$message.error(response.data.msg)
            this.loadingone = false
            // this.$refs.register.hide()
            return false
          } else {
            // this.getPatientList()
            this.changeRadioAndPatient(1)
            this.$message({ message: '挂号成功', type: 'success', duration: 5000 })
            this.$refs.register.hide()
            this.loadingone = false
          }
        })
      } else {
        var that = this
        axios.get('http://127.0.0.1:9532/api/register/get', {
          params: forms,
          headers: {
            'Permission': 5
          }
        })
          .then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              that.loadingone = false
              that.$refs.register.hide()
              return false
            } else {
              if (response.data.data.failed_code == -10) {
                // that.$message.error(response.data.data.msg);
                that.$confirm(response.data.data.msg, '医保错误信息', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })

              } else {
                that.radio = 1
                that.changeRadioAndPatient(1)
                that.$message({ message: '挂号成功', type: 'success', duration: 5000 })
                that.$refs.register.hide()
                that.loadingone = false
              }
            }
          })
          .catch(function(error) {
          })
      }
    },
    cancel() {
      this.$refs.register.hide()
    },
    addCharges() {
      this.$refs.additionalCharges.show()
    },
    changeDate(val) {
      if (this.patientInfo.id == 0) {
        this.$message.error('请先选择患者')
        return
      }

      let params = {
        'record_date': val,
        'patient_id': this.patientInfo.id,
        'type': this.radio,
        'p_type': 2,
        'his_patient_id': this.hisPatientInfo.id
      }
      getChargeHisPatientInfo(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.prescriptions = []
          this.month_prescriptions = []
          this.curPrescriptions = {}
          this.month_prescriptions = {}

          this.patientInfo = response.data.data.xt_info
          this.hisPatientInfo = response.data.data.his_info
          this.info = response.data.data.info
          this.order = response.data.data.order

          this.addtions_charge = response.data.data.addtions_charge

          // this.setMonthPrescription(response.data.data.month_prescriptions)

          for (let i = 0; i < response.data.data.prescription.length; i++) {
            var prescription = response.data.data.prescription[i]

            let tempAdvice = []
            let tempProject = []

            for (let b = 0; b < prescription.advices.length; b++) {
              let spec = prescription.advices[b].drug.dose + prescription.advices[b].drug.dose_unit + '*' + prescription.advices[b].drug.min_number + prescription.advices[b].drug.min_unit + '/' + prescription.advices[b].drug.max_unit

              let obj = {
                advice_id: prescription.advices[b].id,
                drug_name: prescription.advices[b].advice_name,
                single_dose: prescription.advices[b].single_dose,
                delivery_way: prescription.advices[b].delivery_way,
                execution_frequency: prescription.advices[b].execution_frequency,
                retail_price: prescription.advices[b].price,
                remark: prescription.advices[b].remark,
                day: prescription.advices[b].day,
                prescribing_number: prescription.advices[b].prescribing_number.toString(),
                single_dose_unit: prescription.advices[b].single_dose_unit,
                prescribing_number_unit: prescription.advices[b].prescribing_number_unit,
                medical_insurance_number: prescription.advices[b].med_list_codg,

                code: prescription.advices[b].drug.medical_insurance_number,
                spec: spec,
                det_item_fee_sumamt: prescription.advices[b].order_info.det_item_fee_sumamt,
                name_id: prescription.advices[b].drug.manufacturer,
                fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt,
                overlmt_amt: prescription.advices[b].order_info.overlmt_amt,
                preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt,
                inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt,
                execution_state: prescription.advices[b].execution_state

              }
              tempAdvice.push(obj)
            }

            for (let b = 0; b < prescription.project.length; b++) {

              let obj = {
                id: prescription.project[b].id,
                project_id: prescription.project[b].project.id,
                // project_name: prescription.project[b].project.project_name,
                // statistical_classification: prescription.project[b].project.statistical_classification,
                single_dose: prescription.project[b].single_dose,
                delivery_way: prescription.project[b].delivery_way,
                execution_frequency: prescription.project[b].execution_frequency,
                number_days: prescription.project[b].day,
                total: prescription.project[b].count.toString(),
                price: prescription.project[b].price,
                remark: prescription.project[b].remark,
                // medical_code: prescription.project[b].project.medical_code,
                unit: prescription.project[b].unit,
                type: prescription.project[b].type,

                det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt,
                fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt,
                overlmt_amt: prescription.project[b].order_info.overlmt_amt,
                preselfpay_amt: prescription.project[b].order_info.preselfpay_amt,
                inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt,

                execution_state: prescription.project[b].execution_state

              }

              if (prescription.project[b].type == 2) {
                obj['statistical_classification'] = prescription.project[b].project.statistical_classification
                obj['medical_code'] = prescription.project[b].project.medical_code
                obj['project_name'] = prescription.project[b].project.project_name
                obj['spec'] = ''
                obj['name_id'] = 0

              } else if (prescription.project[b].type == 3) {
                obj['statistical_classification'] = ''
                obj['medical_code'] = prescription.project[b].good_info.medical_insurance_number
                obj['project_name'] = prescription.project[b].good_info.good_name
                obj['spec'] = prescription.project[b].good_info.specification_name
                obj['name_id'] = prescription.project[b].good_info.manufacturer

              }
              tempProject.push(obj)
            }
            let index = i + 1
            let obj = {
              id: prescription.id,
              name: '处方' + index,
              advices: tempAdvice,
              project: tempProject,
              type: prescription.type,
              order_status: prescription.order_status
            }
            this.prescriptions.push(obj)
          }
          this.curPrescriptions = this.prescriptions[0]
          this.total = 0
          this.total = this.getTotalOne()
          this.month_total = 0
          this.month_total = this.getMonthTotalOne()
        }
      })
    },
    getInitData() {
      getInitData().then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.doctors = response.data.data.doctors
          this.department = response.data.data.department
          this.sick = response.data.data.sick
          this.diagnoses = response.data.data.diagnose
          this.manufacturers = response.data.data.manufacturers
          console.log('生产厂家')

          console.log(this.manufacturers)

        }
      })

    },
    getDayPatientList() {

      let params = {
        'record_date': this.record_date,
        'sch_type':this.sch_type,

      }
      getChargeHisPatientList(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          let one_count = 0
          let two_count = 0
          let three_count = 0
          for (let i = 0; i < response.data.data.list.length; i++) {
            if (response.data.data.list[i].his_patient.length == 0) { //没挂号
              if (response.data.data.list[i].prescription.length > 0) {
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  number: '',
                  order_status: 0,
                  order_number: '',
                  his_patient_id: 0,
                  prescription: response.data.data.list[i].prescription
                }

                this.all_table_data.push(obj)
              }

            } else { //挂号
              if (response.data.data.list[i].his_patient.length == 1) {
                if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                  for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                      order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                      prescription: response.data.data.list[i].prescription

                    }
                    this.all_table_data.push(obj)

                  }
                } else {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[0].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[0].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription

                  }
                  this.all_table_data.push(obj)

                }
              }

              if (response.data.data.list[i].his_patient.length > 1) {
                for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                  if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[b].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[b].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription
                    }
                    this.all_table_data.push(obj)
                  } else {

                    for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                        order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                        prescription: response.data.data.list[i].prescription

                      }
                      this.all_table_data.push(obj)
                    }

                  }

                }
              }
            }
          }
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].his_patient_id > 0) {
              this.hisPatientDatas.push(this.all_table_data[i])
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            let isHasUnCharge = false
            for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
              if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true
              } else {
                if (this.all_table_data[i].his_patient_id > 0) {
                  if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                    isHasUnCharge = true
                  }
                }

              }
            }
            if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
              isHasUnCharge = true

            }

            if (isHasUnCharge) {
              unChargePatient.push(this.all_table_data[i])
            }

          }

          unChargePatient = this.unique_four(unChargePatient)

          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].order_status == 2) {
              ChargePatient.push(this.all_table_data[i])
            }

          }

          two_count = two_count + ChargePatient.length

          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }

          console.log(this.all_table_data)

          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                let isHasUnCharge = false
                for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                  console.log('!111111111')
                  console.log(this.all_table_data[i].order_status)
                  if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    console.log('!22222222222')

                    isHasUnCharge = true
                  } else {
                    if (this.all_table_data[i].his_patient_id > 0) {
                      console.log('!4444444444444')

                      if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                        isHasUnCharge = true
                        console.log('!33333333333')

                      }
                    }

                  }

                }
                if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  console.log('11111111')

                  isHasUnCharge = true
                }
                if (isHasUnCharge) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                if (this.all_table_data[i].order_status == 2) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 4:
              this.patientTableData = []
              this.patientTableData = this.all_table_data
              this.all_patient = this.patientTableData
              break
          }

          this.cal_one = one_count
          this.cal_two = two_count
          this.cal_three = one_count + two_count
          this.current_index = 0
          if(this.patientTableData.length > 0) {
            this.$refs.tab.setCurrentRow(this.patientTableData[0])
          }
          // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)
        }
      })

    },
    getMonthPatientList() {
      let params = {
        'record_date': this.record_date,
        'sch_type':this.sch_type,

      }
      getChargeHisPatientList(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          let one_count = 0
          let two_count = 0
          let three_count = 0
          for (let i = 0; i < response.data.data.list.length; i++) {
            if (response.data.data.list[i].his_patient.length == 0) { //没挂号
              if (response.data.data.list[i].prescription.length > 0) {
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  number: '',
                  order_status: 0,
                  order_number: '',
                  his_patient_id: 0,
                  prescription: response.data.data.list[i].prescription
                }

                this.all_table_data.push(obj)
              }

            } else { //挂号
              if (response.data.data.list[i].his_patient.length == 1) {
                if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                  for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                      order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                      prescription: response.data.data.list[i].prescription

                    }
                    this.all_table_data.push(obj)

                  }
                } else {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[0].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[0].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription

                  }
                  this.all_table_data.push(obj)

                }
              }

              if (response.data.data.list[i].his_patient.length > 1) {
                for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                  if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[b].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[b].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription
                    }
                    this.all_table_data.push(obj)
                  } else {

                    for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                        order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                        prescription: response.data.data.list[i].prescription

                      }
                      this.all_table_data.push(obj)
                    }

                  }

                }
              }
            }
          }
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].his_patient_id > 0) {
              this.hisPatientDatas.push(this.all_table_data[i])
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            let isHasUnCharge = false
            for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
              if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true
              } else {
                if (this.all_table_data[i].his_patient_id > 0) {
                  if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                    isHasUnCharge = true
                  }
                }

              }
            }
            if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
              isHasUnCharge = true

            }

            if (isHasUnCharge) {
              unChargePatient.push(this.all_table_data[i])
            }

          }

          unChargePatient = this.unique_four(unChargePatient)

          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].order_status == 2) {
              ChargePatient.push(this.all_table_data[i])
            }

          }

          two_count = two_count + ChargePatient.length

          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }

          console.log(this.all_table_data)

          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                let isHasUnCharge = false
                for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                  console.log('!111111111')
                  console.log(this.all_table_data[i].order_status)
                  if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    console.log('!22222222222')

                    isHasUnCharge = true
                  } else {
                    if (this.all_table_data[i].his_patient_id > 0) {
                      console.log('!4444444444444')

                      if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                        isHasUnCharge = true
                        console.log('!33333333333')

                      }
                    }

                  }

                }
                if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  console.log('11111111')

                  isHasUnCharge = true
                }
                if (isHasUnCharge) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                if (this.all_table_data[i].order_status == 2) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 4:
              this.patientTableData = []
              this.patientTableData = this.all_table_data
              this.all_patient = this.patientTableData
              break
          }

          this.cal_one = one_count
          this.cal_two = two_count
          this.cal_three = one_count + two_count
          this.current_index = 0
          if(this.patientTableData.length > 0){
            this.$refs.tab.setCurrentRow(this.patientTableData[0])
          }
          // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)
        }
      })

    },
    handleClick() {
      this.loading = true
      if (this.activeName == 'first') {
        this.getPatientList()
      } else if (this.activeName == 'second') {
        this.getMonthHISPatientList()

        const params = {
          'record_date': this.record_date,
          'patient_id': this.patientInfo.id,
          'his_patient_id': this.hisPatientInfo.id,
          'start_time': this.other_start_time,
          'end_time': this.other_end_time,
          'type': this.radio,
          'p_type': 2,
          'order_id': this.order.id

        }
        getMonthCharge(params).then(response => {
          if (response.data.state == 1) {
            this.loading = false

            this.month_prescriptions = []
            this.setMonthPrescription(response.data.data.month_prescriptions)
            this.curMonthPrescriptions = this.month_prescriptions[0]

            this.form.diagnosis = []
            for(let i = 0; i <  response.data.data.dia_arr.length;i++) {
              if (response.data.data.dia_arr[i] > 0 || response.data.data.dia_arr[i].length > 0) {
                this.form.diagnosis.push(parseInt(response.data.data.dia_arr[i]))
              }
            }

          } else {
            this.$message.error(response.data.msg)
          }
        })
      } else {
        const params = {
          'record_date': this.record_date,
          'patient_id': this.patientInfo.id,
          'his_patient_id': this.hisPatientInfo.id,
          'start_time': this.other_start_time_two,
          'end_time': this.other_end_time_two,
          'type': this.radio,
          'p_type': 2,
          'order_id': this.order.id

        }
        getDayOrMonthHisPrescription(params).then(response => {
          if (response.data.state == 1) {
            this.loading = false
            this.big_prescriptions_two = []
            this.setMonthPrescriptionTwo(response.data.data.day_prescription)
            this.newCurMonthPrescriptions = this.big_prescriptions_two[0]
          } else {
            this.$message.error(response.data.msg)
          }
        })
      }
    },
    setMonthPrescriptionTwo(month_prescriptions) {
      const big_prescriptions = []
      for (let i = 0; i < this.unique_three(month_prescriptions).length; i++) {
        const obj = {
          med_type: this.unique_three(month_prescriptions)[i].med_type,
          prescriptions: []
        }
        big_prescriptions.push(obj)
      }

      for (let c = 0; c < big_prescriptions.length; c++) {
        const inner_prescription = []
        for (let i = 0; i < month_prescriptions.length; i++) {
          var prescription = month_prescriptions[i]

          if (big_prescriptions[c].med_type == prescription.med_type) {
            const tempAdvice = []
            const tempProject = []
            const tempAddition = []

            for (let b = 0; b < prescription.advices.length; b++) {
              let spec = prescription.advices[b].drug.dose + prescription.advices[b].drug.dose_unit + '*' + prescription.advices[b].drug.min_number + prescription.advices[b].drug.min_unit + '/' + prescription.advices[b].drug.max_unit

              const obj = {
                advice_id: prescription.advices[b].id,
                drug_name: prescription.advices[b].advice_name,
                single_dose: prescription.advices[b].single_dose,
                delivery_way: prescription.advices[b].delivery_way,
                execution_frequency: prescription.advices[b].execution_frequency,
                retail_price: prescription.advices[b].price.toString(),
                remark: prescription.advices[b].remark,
                day: prescription.advices[b].day,
                prescribing_number: prescription.advices[b].prescribing_number.toString(),
                single_dose_unit: prescription.advices[b].single_dose_unit,
                prescribing_number_unit: prescription.advices[b].prescribing_number_unit,
                code: prescription.advices[b].drug.medical_insurance_number,
                spec: spec,
                det_item_fee_sumamt: prescription.advices[b].order_info.det_item_fee_sumamt,
                name_id: prescription.advices[b].drug.manufacturer,
                fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt,
                overlmt_amt: prescription.advices[b].order_info.overlmt_amt,
                preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt,
                inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt,
                execution_state: prescription.advices[b].execution_state

              }
              tempAdvice.push(obj)
            }

            for (let b = 0; b < prescription.project.length; b++) {

              const obj = {
                id: prescription.project[b].id,
                project_id: prescription.project[b].project.id,
                // project_name: prescription.project[b].project.project_name,
                // statistical_classification: prescription.project[b].project.statistical_classification,
                single_dose: prescription.project[b].single_dose,
                delivery_way: prescription.project[b].delivery_way,
                execution_frequency: prescription.project[b].execution_frequency,
                number_days: prescription.project[b].day,
                total: prescription.project[b].count.toString(),
                price: prescription.project[b].price,
                remark: prescription.project[b].remark,
                // medical_code: prescription.project[b].project.medical_code,
                unit: prescription.project[b].unit,
                type: prescription.project[b].type,
                execution_state: prescription.project[b].execution_state,

                det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt,
                fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt,
                overlmt_amt: prescription.project[b].order_info.overlmt_amt,
                preselfpay_amt: prescription.project[b].order_info.preselfpay_amt,
                inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt

              }

              if (prescription.project[b].type == 2) {
                obj['statistical_classification'] = prescription.project[b].project.statistical_classification
                obj['medical_code'] = prescription.project[b].project.medical_code
                obj['project_name'] = prescription.project[b].project.project_name
                obj['spec'] = ''
                obj['name_id'] = 0

              } else if (prescription.project[b].type == 3) {
                obj['statistical_classification'] = ''
                obj['medical_code'] = prescription.project[b].good_info.medical_insurance_number
                obj['project_name'] = prescription.project[b].good_info.good_name
                obj['spec'] = prescription.project[b].good_info.specification_name
                obj['name_id'] = prescription.project[b].good_info.manufacturer

              }

              tempProject.push(obj)
            }

            const index = i + 1
            prescription.order.order_status = prescription.order.order_status.toString()
            prescription.order.order_status = parseInt(prescription.order.order_status)

            const obj = {
              id: prescription.id,
              name: this.getPName(prescription.med_type, index),
              advices: tempAdvice,
              project: tempProject,
              addition: tempAddition,
              order_status: prescription.order_status,
              type: prescription.type,
              med_type: prescription.med_type,
              order: prescription.order
            }
            // inner_prescription.push(obj)
            big_prescriptions[c].prescriptions.push(obj)

            this.prescriptions.push(obj)
          }
        }
      }

      this.big_prescriptions_two = JSON.parse(JSON.stringify(big_prescriptions))

      // for (let i = 0; i < this.big_prescriptions_two.length; i++) {
      //   if (this.big_prescriptions_two[i].med_type == '11') {
      //     this.big_prescriptions_two[i]['is_true'] = 1
      //   }
      // }

      // for (let i = 0; i < this.big_prescriptions_two.length; i++) {
      //   if (this.big_prescriptions_two[i].is_true == 1) {
      //     for (let b = 0; b < this.big_prescriptions_two[i].prescriptions.length; b++) {
      //       const obj = {
      //         med_type: '11',
      //         prescriptions: []
      //       }
      //       const arr = []
      //       arr.push(this.big_prescriptions_two[i].prescriptions[b])
      //       obj.prescriptions = arr
      //       this.big_prescriptions_two.push(obj)
      //     }
      //   }
      // }

      // for (let i = 0; i < this.big_prescriptions_two.length; i++) {
      //   if (this.big_prescriptions_two[i].is_true == 1) {
      //     this.big_prescriptions_two.splice(i, 1)
      //   }
      // }
      // console.log(this.big_prescriptions)

      for (let i = 0; i < this.big_prescriptions_two.length; i++) {
        if (this.big_prescriptions_two[i].prescriptions.length > 0) {
          this.big_prescriptions_two[i]['curPrescriptions'] = JSON.parse(JSON.stringify(this.big_prescriptions_two[i].prescriptions[0]))
        } else {
          this.big_prescriptions_two[i]['curPrescriptions'] = {}
        }
        this.big_prescriptions_two[i]['total'] = this.getTotalThree(this.big_prescriptions_two[i])
      }
      if (this.big_prescriptions_two.length > 0) {
        this.editableTabsValue = this.getPName(this.big_prescriptions_two[0].med_type, 1)
      }

    },
    searchAction() {
      if (this.search_input.length == 0) {
        this.patientTableData = this.all_patient

      } else {

        let arr = []
        for (let i = 0; i < this.all_patient.length; i++) {
          if (this.all_patient[i].name.indexOf(this.search_input) != -1 || this.all_patient[i].number.indexOf(this.search_input) != -1) {
            arr = arr.concat(this.all_patient[i])
          }
        }
        this.patientTableData = arr

      }

    },
    tabclickEventTwo(val) {
      for (let b = 0; b < this.big_month_prescriptions.length; b++) {
        for (let i = 0; i < this.big_month_prescriptions[b].month_prescriptions.length; i++) {
          if (this.big_month_prescriptions[b].month_prescriptions[i].name == val.name) {
            this.big_month_prescriptions[b].curMonthPrescriptions = {}
            var temp = this.deepClone(this.big_month_prescriptions[b].month_prescriptions[i])
            this.big_month_prescriptions[b].curMonthPrescriptions = temp
            this.big_month_prescriptions[b].month_total = this.getMonthTotalTwo(temp)
          }
        }
      }
      // this.prescription_id = this.month_prescriptions.id
      // this.month_total = 0

    },
    tabclickEventThree(val) {
      for (let i = 0; i < this.big_prescriptions_two.length; i++) {
        for (let b = 0; b < this.big_prescriptions_two[i].prescriptions.length; b++) {
          if (this.big_prescriptions_two[i].prescriptions[b].name == val.name) {

            var temp = this.deepClone(this.big_prescriptions_two[i].prescriptions[b])
            this.big_prescriptions_two[i].curPrescriptions = temp
            this.big_prescriptions_two[i].total = 0
            this.big_prescriptions_two[i].total = this.getTotalThree(this.big_prescriptions_two[i])
          }
        }
      }

    },
    tabclickEvent(val) {

      for (let i = 0; i < this.big_prescriptions.length; i++) {
        for (let b = 0; b < this.big_prescriptions[i].prescriptions.length; b++) {
          if (this.big_prescriptions[i].prescriptions[b].name == val.name) {

            var temp = this.deepClone(this.big_prescriptions[i].prescriptions[b])
            this.big_prescriptions[i].curPrescriptions = temp
            // this.prescription_id = this.curPrescriptions.id
            this.big_prescriptions[i].total = 0
            this.big_prescriptions[i].total = this.getTotalThree(this.big_prescriptions[i])
          }
        }
      }

    },
    deepClone(source) {
      if (!source && typeof source !== 'object') {
        throw new Error('error arguments', 'shallowClone')
      }
      const targetObj = source.constructor === Array ? [] : {}
      Object.keys(source).forEach((keys) => {
        if (source[keys] && typeof source[keys] === 'object') {
          targetObj[keys] = this.deepClone(source[keys])
        } else {
          targetObj[keys] = source[keys]
        }
      })
      return targetObj
    },
    getTotalOne(big_prescriptions) {
      var total = 0
      if (this.curPrescriptions.type == 1) {
        if (this.curPrescriptions.advices != null) {
          for (let a = 0; a < this.curPrescriptions.advices.length; a++) {
            total = parseFloat(total) + parseFloat(this.curPrescriptions.advices[a].retail_price * this.curPrescriptions.advices[a].prescribing_number)

          }
        }
      } else {
        if (this.curPrescriptions.project != null) {
          for (let b = 0; b < this.curPrescriptions.project.length; b++) {
            total = parseFloat(total) + parseFloat(this.curPrescriptions.project[b].price * this.curPrescriptions.project[b].total)

          }
        }
      }

      if (this.curPrescriptions.addition != null) {
        for (let b = 0; b < this.curPrescriptions.addition.length; b++) {
          total = parseFloat(total) + parseFloat(this.curPrescriptions.addition[b].price * this.curPrescriptions.addition[b].count)
        }
      }
      return total.toFixed(2)

    },
    getTotalThree(big_prescriptions) {
      var total = 0
      if (big_prescriptions.curPrescriptions.type == 1) {
        if (big_prescriptions.curPrescriptions.advices != null) {
          for (let a = 0; a < big_prescriptions.curPrescriptions.advices.length; a++) {
            total = parseFloat(total) + parseFloat(big_prescriptions.curPrescriptions.advices[a].retail_price * big_prescriptions.curPrescriptions.advices[a].prescribing_number)

          }
        }
      } else {
        if (big_prescriptions.curPrescriptions.project != null) {
          for (let b = 0; b < big_prescriptions.curPrescriptions.project.length; b++) {
            total = parseFloat(total) + parseFloat(big_prescriptions.curPrescriptions.project[b].price * big_prescriptions.curPrescriptions.project[b].total)

          }
        }
      }

      if (big_prescriptions.curPrescriptions.addition != null) {
        for (let b = 0; b < big_prescriptions.curPrescriptions.addition.length; b++) {
          total = parseFloat(total) + parseFloat(big_prescriptions.curPrescriptions.addition[b].price * big_prescriptions.curPrescriptions.addition[b].count)
        }
      }
      return total.toFixed(2)

    },

    getMonthTotalOne() {
      var total = 0
      if (this.curMonthPrescriptions.type == 1) {
        if (this.curMonthPrescriptions.advices != null) {
          for (let a = 0; a < this.curMonthPrescriptions.advices.length; a++) {
            total = parseFloat(total) + parseFloat(this.curMonthPrescriptions.advices[a].retail_price * this.curMonthPrescriptions.advices[a].prescribing_number)

          }
        }
      } else {
        if (this.curMonthPrescriptions.project != null) {
          for (let b = 0; b < this.curMonthPrescriptions.project.length; b++) {
            total = parseFloat(total) + parseFloat(this.curMonthPrescriptions.project[b].price * this.curMonthPrescriptions.project[b].total)

          }
        }
      }

      if (this.curMonthPrescriptions.addition != null) {
        for (let b = 0; b < this.curMonthPrescriptions.addition.length; b++) {
          total = parseFloat(total) + parseFloat(this.curMonthPrescriptions.addition[b].price * this.curMonthPrescriptions.addition[b].count)
        }
      }
      return total.toFixed(2)

    },
    getMonthTotalTwo(month_prescriptions) {
      var total = 0
      if (month_prescriptions.type == 1) {
        if (month_prescriptions.advices != null) {
          for (let a = 0; a < month_prescriptions.advices.length; a++) {
            total = parseFloat(total) + parseFloat(month_prescriptions.advices[a].retail_price * month_prescriptions.advices[a].prescribing_number)

          }
        }
      } else {
        if (month_prescriptions.project != null) {
          for (let b = 0; b < month_prescriptions.project.length; b++) {
            total = parseFloat(total) + parseFloat(month_prescriptions.project[b].price * month_prescriptions.project[b].total)

          }
        }
      }

      if (month_prescriptions.addition != null) {
        for (let b = 0; b < month_prescriptions.addition.length; b++) {
          total = parseFloat(total) + parseFloat(month_prescriptions.addition[b].price * month_prescriptions.addition[b].count)
        }
      }
      return total.toFixed(2)

    },

    getTotal() {
      var total = 0
      for (let c = 0; c < this.big_prescriptions.length; c++) {
        for (let i = 0; i < this.big_prescriptions[c].prescriptions.length; i++) {
          if (this.big_prescriptions[c].prescriptions[i].advices != null) {
            for (let a = 0; a < this.big_prescriptions[c].prescriptions[i].advices.length; a++) {
              total = parseFloat(total) + parseFloat(this.big_prescriptions[c].prescriptions[i].advices[a].retail_price * this.big_prescriptions[c].prescriptions[i].advices[a].prescribing_number)
            }
          }
          if (this.big_prescriptions[c].prescriptions[i].project != null) {
            for (let b = 0; b < this.big_prescriptions[c].prescriptions[i].project.length; b++) {

              total = parseFloat(total) + parseFloat(this.big_prescriptions[c].prescriptions[i].project[b].price * this.big_prescriptions[c].prescriptions[i].project[b].total)
            }
          }
          if (this.big_prescriptions[c].prescriptions[i].addition != null) {
            for (let b = 0; b < this.big_prescriptions[c].prescriptions[i].addition.length; b++) {
              total = parseFloat(total) + parseFloat(this.big_prescriptions[c].prescriptions[i].addition[b].price * this.big_prescriptions[c].prescriptions[i].addition[b].count)
            }
          }
        }
      }
      return total.toFixed(2)

    },
    getTotalTwo() {
      var total = 0
      for (let i = 0; i < this.month_prescriptions.length; i++) {
        if (this.month_prescriptions[i].advices != null) {
          for (let a = 0; a < this.month_prescriptions[i].advices.length; a++) {
            total = parseFloat(total) + parseFloat(this.month_prescriptions[i].advices[a].retail_price * this.month_prescriptions[i].advices[a].prescribing_number)
          }
        }
        if (this.month_prescriptions[i].project != null) {
          for (let a = 0; a < this.month_prescriptions[i].project.length; a++) {

            total = parseFloat(total) + parseFloat(this.month_prescriptions[i].project[a].price * this.month_prescriptions[i].project[a].total)
          }
        }

        if (this.month_prescriptions[i].addition != null) {
          for (let b = 0; b < this.month_prescriptions[i].addition.length; b++) {
            total = parseFloat(total) + parseFloat(this.month_prescriptions[i].addition[a].price * this.month_prescriptions[i].addition[b].count)
          }
        }
      }
      return total.toFixed(2)

    },
    getTotalFour(month_prescriptions) {
      var total = 0
      for (let i = 0; i < month_prescriptions.length; i++) {
        if (month_prescriptions[i].advices != null) {
          for (let a = 0; a < month_prescriptions[i].advices.length; a++) {
            total = parseFloat(total) + parseFloat(month_prescriptions[i].advices[a].retail_price * month_prescriptions[i].advices[a].prescribing_number)
          }
        }
        if (month_prescriptions[i].project != null) {
          for (let a = 0; a < month_prescriptions[i].project.length; a++) {
            total = parseFloat(total) + parseFloat(month_prescriptions[i].project[a].price * month_prescriptions[i].project[a].total)
          }
        }

        // if (month_prescriptions[i].addition != null) {
        //   for (let b = 0; b < month_prescriptions[i].addition.length; b++) {
        //     total = parseFloat(total) + parseFloat(month_prescriptions[i].addition[a].price * month_prescriptions[i].addition[b].count)
        //   }
        // }
      }
      return total.toFixed(2)
    },
    moreState(tab, event) {
      if (tab == 'more') {
        return false
      }
    }, openZb(index) {
      switch (index) {
        case 1:
          if (this.patientInfo.id == 0) {
            this.$message.error("请选择需要记账的患者")
            return
          }

          var that = this
          let obj = {
            patient_id: this.patientInfo.id,
            diagnosis_time: this.form.diagnosis_time,
            record_date: this.record_date,
            admin_user_id: this.$store.getters.xt_user.user.id,
            org_id: this.$store.getters.xt_user.org_id

          }
          if (this.activeName == 'first') {
            obj['settle_accounts_type'] = 1
          } else if (this.activeName == 'second') {
            obj['start_time'] = this.other_start_time
            obj['end_time'] = this.other_end_time
            obj['settle_accounts_type'] = 2
          } else {
            obj['start_time'] = this.other_start_time_two
            obj['end_time'] = this.other_end_time_two
            obj['settle_accounts_type'] = 2
          }
          axios.get("http://127.0.0.1:9532" + '/nmg/coordinate/settleAccount', {
            params: obj
          })
            .then(function(response) {
              if (response.data.state == 0) {
                that.$message.error(response.data.msg)
                that.loadingtwo = false
                return false
              } else {
                if (response.data.data.failed_code == -10) {
                  that.$confirm(response.data.data.msg, '医保错误信息', {
                    confirmButtonText: '确 定',
                    type: 'warning'
                  }).then(() => {

                  }).catch(() => {
                  })

                } else {
                  that.radio = 1
                  that.changeRadioAndPatient(1)
                  that.$message({ message: '登记成功', type: 'success', duration: 5000 })
                }

              }
            })
            .catch(function(error) {

            })
          break
        case 2:
          var that = this
          let obj3 = {
            order_id:this.order.id,
            admin_user_id: this.$store.getters.xt_user.user.id,
            record_date: this.record_date,
          }
          axios.get("http://127.0.0.1:9532" + '/nmg/coordinate/settleAccount/cancel', {
            params: obj3
          })
            .then(function(response) {
              if (response.data.state == 0) {
                that.$message.error(response.data.msg)
                that.loadingtwo = false
                return false
              } else {
                if (response.data.data.failed_code == -10) {
                  that.$confirm(response.data.data.msg, '医保错误信息', {
                    confirmButtonText: '确 定',
                    type: 'warning'
                  }).then(() => {

                  }).catch(() => {
                  })

                } else {
                  that.radio = 1
                  that.changeRadioAndPatient(1)
                  that.$message({ message: '撤销记账成功', type: 'success', duration: 5000 })
                }

              }
            })
            .catch(function(error) {

            })

          break
      }
    },openZF(index){


      var  that = this
      let params = {
        'order_id': this.order.id,
        'admin_user_id': this.$store.getters.xt_user.user.id,

      }
      switch (index){
        case 1:
          this.fapiaoCodeDialogVisible = true
          break
        case 2:

          axios.get('http://127.0.0.1:9532/api/4203', {
            params: params
          }).then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              that.loadingtwo = false
              return false
            } else {
              if (response.data.data.failed_code == -10) {
                that.$confirm(response.data.data.msg, '医保错误信息', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })

              } else {
                that.$message({ message: '确认成功', type: 'success', duration: 5000 })
                // that.changeRadioAndPatient(2)
                that.order.is_upload_success = 1
              }

            }
          })
            .catch(function(error) {

            })
          break
        case 3:

          axios.get('http://127.0.0.1:9532/api/4207', {
            params: params
          }).then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              that.loadingtwo = false
              return false
            } else {
              if (response.data.data.failed_code == -10) {
                that.$confirm(response.data.data.msg, '医保错误信息', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })

              } else {
                that.$confirm("具体内容请查看本地日志文件", '查询成功', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })
              }

            }
          })
            .catch(function(error) {

            })
          break
        case 4:

          axios.get('http://127.0.0.1:9532/api/4208', {
            params: params
          }).then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              that.loadingtwo = false
              return false
            } else {
              if (response.data.data.failed_code == -10) {
                that.$confirm(response.data.data.msg, '医保错误信息', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })

              } else {

                that.$confirm("具体内容请查看本地日志文件", '查询成功', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })

              }

            }
          })
            .catch(function(error) {

            })
          break
        case 5:
          axios.get('http://127.0.0.1:9532/api/4209', {
            params: params
          }).then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              that.loadingtwo = false
              return false
            } else {
              if (response.data.data.failed_code == -10) {
                that.$confirm(response.data.data.msg, '医保错误信息', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })

              } else {
                that.$confirm("具体内容请查看本地日志文件", '查询成功', {
                  confirmButtonText: '确 定',
                  type: 'warning'
                }).then(() => {

                }).catch(() => {
                })
              }

            }
          })
            .catch(function(error) {

            })
          break
      }
    },
    open(index, med_type, order, prescriptions) {

      this.other_prescriptions = prescriptions

      if (index == 1) {
      } else if (index == 2) {
        this.$router.push('/outpatientDoctorStation/printtwo?record=' + this.record_date)
      } else if (index == 3) {
        let obj = {
          record_date: this.record_date,
          patient_id: this.patient_id,
          prescription_id: this.prescription_id,
          order_id: this.order.id

        }
        this.paramsObj = obj
        this.treatVisible = true
        // this.$router.push('/outpatientCharges/treatPrint?record_date=' + this.record_date + '&patient_id=' + this.patient_id + '&prescription_id=' + this.prescription_id)
      } else if (index == 4) {//收费
        var ids = []
        for (let i = 0; i < prescriptions.length; i++) {
          ids.push(prescriptions[i].id)
        }
        var ids_str = ids.join(',')
        this.temp_ids = ids_str
        this.currentOrder = order
        this.current_med_type = med_type
        if (this.patientInfo.id == 0) {
          this.$message({ message: '该选择要收费的患者', type: 'error' })
          return
        }

        if (this.hisPatientInfo.id == 0) {
          this.$message({ message: '该患者尚未挂号,请先挂号', type: 'error' })
          return
        }

        if (this.hisPatientInfo.id_card_type == 1) {
          if (this.hisPatientInfo.balance_accounts_type != 2 && this.$store.getters.xt_user.org_id != 10510 && this.$store.getters.xt_user.org_id != 10088 && this.$store.getters.xt_user.org_id != 10106 && this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217 && this.$store.getters.xt_user.org_id != 10191 && this.$store.getters.xt_user.org_id !=  10318 && this.$store.getters.xt_user.org_id !=  10210) {
            this.pwdFormVisible = true
            this.pwd = ''
          } else {
            if (this.activeName == 'first') {
              this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder,this.patientInfo.id)
            } else {
              this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder,this.patientInfo.id)
            }

          }
        } else {
          if (this.activeName == 'first') {
            //押金shows
            this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder,this.patientInfo.id)
          } else {
            this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder,this.patientInfo.id)
          }
        }

      } else if (index == 5) {
        var that = this
        if (that.hisPatientInfo.balance_accounts_type == 2) {
          let params = {
            'order_id': that.order.id,
            'number': that.order.number,
            'patient_id': that.patientInfo.id,
            'record_time': that.record_date

          }
          Refund(params).then(response => {
            if (response.data.state == 0) {
              this.$message.error(response.data.msg)
              this.loadingtwo = false
              return false
            } else {
              this.radio = 1
              this.changeRadioAndPatient(1)
              this.$message({ message: '退费成功', type: 'success' })
              this.loadingtwo = false
            }
          })

        } else {

          var that = this
          this.$confirm('是否退费', '退费', {
            confirmButtonText: '确 定',
            cancelButtonText: '取 消',
            type: 'warning'
          }).then(() => {
            let params = {
              'order_id': this.order.id,
              'number': this.order.number,
              'patient_id': this.patientInfo.id,
              'record_time': this.record_date,
              'admin_user_id': this.$store.getters.xt_user.user.id,
              'org_id': this.$store.getters.xt_user.org_id

            }
            axios.get('http://127.0.0.1:9532/api/refund/post', {
              params: params
            }).then(function(response) {
              if (response.data.state == 0) {
                that.$message.error(response.data.msg)
                that.loadingtwo = false
                return false
              } else {
                if (response.data.data.failed_code == -10) {
                  that.$confirm(response.data.data.msg, '医保错误信息', {
                    confirmButtonText: '确 定',
                    type: 'warning'
                  }).then(() => {

                  }).catch(() => {
                  })

                } else {
                  that.radio = 1
                  that.changeRadioAndPatient(1)
                  that.$message({ message: '退费成功', type: 'success', duration: 5000 })
                  that.loadingtwo = false
                }

              }
            })
              .catch(function(error) {

              })

          }).catch(() => {

          })
        }
      } else if (index == 6) {
        if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10138 || this.$store.getters.xt_user.org_id == 10028 || this.$store.getters.xt_user.org_id == 10088 || this.$store.getters.xt_user.org_id == 10278) {
          this.$refs.register9504.show()
        } else {
          this.$refs.register.show(this.doctors, this.department)
        }

      } else if (index == 8) {
        var that = this
        if (this.form.diagnosis.length == 0) {
          that.$message.error('诊断不能为空,请选择诊断内容')
          return
        }

        if (this.form.sick_type.length || this.form.sick_type == 0) {

          that.$message.error('疾病类型不能为空,请选择疾病类型')
          return
        }

        var ids = []
        for (let i = 0; i < prescriptions.length; i++) {
          ids.push(prescriptions[i].id)
        }
        var ids_str = ids.join(',')
        this.temp_ids = ids_str
        this.newLoading = true
        var that = this
        let form = {}
        form['id'] = this.patientInfo.id
        form['his_patient_id'] = this.hisPatientInfo.id
        form['record_time'] = this.record_date
        form['ids'] = this.temp_ids
        form['begin_time'] = this.form.diagnosis_time
        form['p_type'] = med_type
        form['diagnosis'] = this.form.diagnosis.join(',')
        form['sick_type'] = this.form.sick_type
        form['admin_user_id'] = this.$store.getters.xt_user.user.id
        form['org_id'] = this.$store.getters.xt_user.org_id
        if (this.activeName == 'first') {
          form['settle_accounts_type'] = 1
        } else if (this.activeName == 'second') {
          form['start_time'] = this.other_start_time
          form['end_time'] = this.other_end_time
          form['settle_accounts_type'] = 2
        } else {
          form['start_time'] = this.other_start_time_two
          form['end_time'] = this.other_end_time_two
          form['settle_accounts_type'] = 2
        }

        if (this.hisPatientInfo.balance_accounts_type == 2) {
          this.$confirm('是否进行预结算', '预结算', {
            confirmButtonText: '确 定',
            cancelButtonText: '取 消',
            type: 'warning'
          }).then(() => {
            preSettle(form).then(response => {
              if (response.data.state == 0) {
                this.$message.error(response.data.msg)
                this.loadingtwo = false
                this.newLoading = false
                return false
              } else {
                this.changeRadioAndPatient(1)
                this.$message({ message: '预结算成功', type: 'success' })
                this.newLoading = false
              }
            })
          }).catch(() => {
            this.newLoading = false
          })

        } else {
          this.$confirm('是否进行预结算', '预结算', {
            confirmButtonText: '确 定',
            cancelButtonText: '取 消',
            type: 'warning'
          }).then(() => {
            axios.get('http://127.0.0.1:9532/api/presettle/get', {
              params: form,
              headers: {
                'Permission': 5
              }
            })
              .then(function(response) {
                if (response.data.state == 0) {
                  that.$message.error(response.data.msg)
                  return false
                } else {
                  if (response.data.data.failed_code == -10) {
                    that.$confirm(response.data.data.msg, '医保错误信息', {
                      confirmButtonText: '确 定',
                      type: 'warning'
                    }).then(() => {
                      that.changeRadioAndPatient(1)
                      that.newLoading = false
                    }).catch(() => {
                      that.changeRadioAndPatient(1)
                      that.newLoading = false
                    })
                  } else {
                    that.changeRadioAndPatient(1)
                    that.$message({ message: '预结算成功', type: 'success', duration: 5000 })
                    that.newLoading = false
                  }
                }
              })
              .catch(function(error) {
                that.newLoading = false
              })
          }).catch(() => {
            that.newLoading = false
          })
        }

      } else if (index == 9) {
        this.statementVisible = true
        let obj = {
          order_id: this.order.id,
          settle_type: this.order.settle_type,
          start_time: this.order.settle_start_time,
          end_time: this.order.settle_end_time,
          balance_accounts_type: this.hisPatientInfo.balance_accounts_type
        }
        this.orderObj = obj
        // this.$refs.print.getInfo(this.order.id)
      }else if (index == 100) {
        this.newStatementVisibleTwo = true
        let obj = {
          order_id: this.order.id,
          settle_type: this.order.settle_type,
          start_time: this.order.settle_start_time,
          end_time: this.order.settle_end_time,
          balance_accounts_type: this.hisPatientInfo.balance_accounts_type
        }
        this.orderObj = obj
        // this.$refs.print.getInfo(this.order.id)
      } else if (index == 10) {

        if (this.hisPatientInfo.balance_accounts_type == 2) {
          this.$confirm('是否退号', '退号', {
            confirmButtonText: '确 定',
            cancelButtonText: '取 消',
            type: 'warning'
          }).then(() => {
            const params = {
              'id': this.hisPatientInfo.id
            }
            refundNumber(params).then(response => {
              if (response.data.state == 0) {
                this.$message.error(response.data.msg)
                return false
              } else {
                this.radio = 1
                this.changeRadioAndPatient(1)
                this.$message({ message: '退号成功', type: 'success' })
              }
            })
          }).catch(() => {
          })
        } else {
          if (this.$store.getters.xt_user.org_id == 10215 && this.order.id > 0) {
            this.$message.error('该就诊号尚未撤销明细或者退费无法进行退号操作')
            return
          }
          var that = this
          this.$confirm('是否退号', '退号', {
            confirmButtonText: '确 定',
            cancelButtonText: '取 消',
            type: 'warning'
          }).then(() => {
            let params = {
              'id': this.hisPatientInfo.id,
              'patient_id': this.patientInfo.id,
              'record_time': this.record_date,
              'org_id': this.$store.getters.xt_user.org_id,
              'admin_user_id': this.$store.getters.xt_user.user.id
            }
            axios.get('http://127.0.0.1:9532/api/refundnumber/post', {
              params: params
            })
              .then(function(response) {
                if (response.data.state == 0) {
                  that.$message.error(response.data.msg)
                  return false
                } else {
                  if (response.data.data.failed_code == -10) {
                    // that.$message.error(response.data.data.msg)
                    that.$confirm(response.data.data.msg, '医保错误信息', {
                      confirmButtonText: '确 定',
                      type: 'warning'
                    }).then(() => {

                    }).catch(() => {
                    })
                  } else {
                    that.radio = 1
                    that.changeRadioAndPatient(1)
                    that.$message({ message: '退号成功', type: 'success', duration: 5000 })
                  }

                }
              })
              .catch(function(error) {
              })
          }).catch(() => {
          })
        }
      } else if (index == 11) {
        var that = this
        let params = {
          'order_id': order.id,
          'number': order.number,
          'patient_id': this.patientInfo.id,
          'record_time': this.record_date,
          'org_id': this.$store.getters.xt_user.org_id,
          'his_patient_id': this.hisPatientInfo.id,
          'admin_user_id':this.$store.getters.xt_user.user.id,
        }
        axios.get('http://127.0.0.1:9532/api/refunddetail/post', {
          params: params
        })
          .then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              return false
            } else {
              that.changeRadioAndPatient(1)
              // that.$message({ message: '退号成功', type: 'success' })
              that.$message({ message: '退明细成功', type: 'success', duration: 5000 })
            }
          })
          .catch(function(error) {
          })
      } else if (index == 20) {
        var that = this
        let params = {
          'patient_id': this.patientInfo.id,
          'admin_user_id': this.$store.getters.xt_user.user.id
        }
        axios.get('http://127.0.0.1:9532/api/psn/info', {
          params: params
        })
          .then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              return false
            } else {
              that.$confirm(response.data.data.result, '备案信息', {
                confirmButtonText: '确 定',
                type: 'warning'
              }).then(() => {
              }).catch(() => {
              })
            }
          })
          .catch(function(error) {
          })

      } else if (index == 30) {

        let paramsObj = {
          order_id: this.order.id,
          patient_id: this.order.patient_id,
          number: this.order.mdtrt_id,
          name: this.patientInfo.name,
          age: this.order.age,
          gend: this.order.gend,
          setl_time: this.order.setl_time,
          chargeName: this.getName(this.order.creator)
        }
        this.invoiceParams = paramsObj
        this.invoiceVisible = true

      } else if(index == 40){
        var that = this
        let params = {
        }
        axios.get('http://127.0.0.1:9532/9001', {
          params: params
        })
          .then(function(response) {
            if (response.data.state == 0) {
              that.$message.error(response.data.msg)
              return false
            } else {
              that.$message({ message: '登陆成功', type: 'success', duration: 5000 })
            }
          })
          .catch(function(error) {
          })
      } else if(index == 50){
        var that = this
        let params = {
          "admin_user_id":this.$store.getters.xt_user.user.id,
          'his_patient_id': this.hisPatientInfo.id,
        }
        if ((this.$store.getters.xt_user.org_id == 10387)){
          try {
            //检测当前浏览器是否支持websocket模式
            window.WebSocket = window.WebSocket || window.MozWebSocket;
            if (!window.WebSocket){
              alert("WebSocket not supported by this browser");
              return;
            }
            this.ws = new WebSocket("ws://127.0.0.1:8899");//连接服务器
            var that = this
            this.ws.onopen = function(event){
              if (that.$store.getters.xt_user.org_id == 10387){
                that.ws.send("{\"url\":\"http://10.93.33.243:20001/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"罗佳菊\",\"orgId\":\"H43082200408\"},\"orgId\":\"H43082200408\",\"transType\":\"ec.query\"}}");
              }
                // else if(that.$store.getters.xt_user.org_id == 10318){
                //   that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
              // }
              else if(that.$store.getters.xt_user.org_id == 4){
                that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
              }
            };

            this.ws.onmessage = function(event){
              // alert("接收到服务器发送的数据：\r\n"+event.data);
              var newParams =  JSON.parse(event.data)
              newParams['ecToken'] = newParams.data.ecToken
              newParams['idNo'] = newParams.data.idNo
              newParams['userName'] = newParams.data.userName
              newParams['insuOrg'] = newParams.data.insuOrg
              newParams['id_card_type'] =  that.form.id_card_type
              newParams['admin_user_id'] = that.$store.getters.xt_user.user.id
              newParams['certificates'] = that.form.certificates
              axios.get('http://127.0.0.1:9532/api/readele', {
                params: newParams
              })
                .then(function(response) {
                  if (response.data.state == 0) {
                    that.$message.error(response.data.msg)
                    return false
                  } else {
                    if (response.data.data.failed_code == -10) {
                      // that.$message.error(response.data.data.msg)
                      that.$confirm(response.data.data.msg, '医保错误信息', {
                        confirmButtonText: '确 定',
                        type: 'warning'
                      }).then(() => {

                      }).catch(() => {
                      })
                    }else{
                      that.$message({ message: response.data.data.msg, type: 'success', duration: 5000 })
                    }
                  }
                })
                .catch(function(error) {

                })


            };
            this.ws.onclose = function(event){
              alert("已经与服务器断开连接\r\n当前连接状态："+this.readyState);
            };
            this.ws.onerror = function(event){
              if (this.flag!=1)
                alert("WebSocket接收异常！");
            };
          } catch (ex) {
            alert(ex.message);
          }

        }else{

          axios.get('http://127.0.0.1:9532/api/readele', {
            params: params
          })
            .then(function(response) {
              if (response.data.state == 0) {
                that.$message.error(response.data.msg)
                return false
              } else {
                if (response.data.data.failed_code == -10) {
                  // that.$message.error(response.data.data.msg)
                  that.$confirm(response.data.data.msg, '医保错误信息', {
                    confirmButtonText: '确 定',
                    type: 'warning'
                  }).then(() => {

                  }).catch(() => {
                  })
                }else{
                  that.$message({ message: response.data.data.msg, type: 'success', duration: 5000 })
                }
              }
            })
            .catch(function(error) {
            })
        }
      }
    },
    getName(admin_user_id) {
      for (let i = 0; i < this.adminUserOptions.length; i++) {
        if (this.adminUserOptions[i].id == admin_user_id) {
          return this.adminUserOptions[i].name
        }
      }

    },
    choosePatient() {
      this.radioStatus = id
      this.getPatientList()
    },
    changeRadioAndPatient(id) {
      this.radio = id
      let params = {
        'record_date': this.record_date,
        'sch_type':this.sch_type,

      }

      getChargeHisPatientList(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          let one_count = 0
          let two_count = 0
          let three_count = 0
          for (let i = 0; i < response.data.data.list.length; i++) {
            if (response.data.data.list[i].his_patient.length == 0) { //没挂号
              if (response.data.data.list[i].prescription.length > 0) {
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  number: '',
                  order_status: 0,
                  order_number: '',
                  his_patient_id: 0,
                  prescription: response.data.data.list[i].prescription
                }

                this.all_table_data.push(obj)
              }

            } else { //挂号
              if (response.data.data.list[i].his_patient.length == 1) {
                if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                  for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                      order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                      prescription: response.data.data.list[i].prescription

                    }
                    this.all_table_data.push(obj)

                  }
                } else {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[0].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[0].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription

                  }
                  this.all_table_data.push(obj)

                }
              }

              if (response.data.data.list[i].his_patient.length > 1) {
                for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                  if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[b].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[b].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription
                    }
                    this.all_table_data.push(obj)
                  } else {

                    for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                        order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                        prescription: response.data.data.list[i].prescription

                      }
                      this.all_table_data.push(obj)
                    }

                  }

                }
              }
            }
          }
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].his_patient_id > 0) {
              this.hisPatientDatas.push(this.all_table_data[i])
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            let isHasUnCharge = false
            for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
              if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true
              } else {
                if (this.all_table_data[i].his_patient_id > 0) {
                  if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                    isHasUnCharge = true
                  }
                }

              }
            }
            if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
              isHasUnCharge = true

            }

            if (isHasUnCharge) {
              unChargePatient.push(this.all_table_data[i])
            }

          }

          unChargePatient = this.unique_four(unChargePatient)

          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].order_status == 2) {
              ChargePatient.push(this.all_table_data[i])
            }

          }

          two_count = two_count + ChargePatient.length

          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }

          console.log(this.all_table_data)

          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                let isHasUnCharge = false
                for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                  console.log('!111111111')
                  console.log(this.all_table_data[i].order_status)
                  if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    console.log('!22222222222')

                    isHasUnCharge = true
                  } else {
                    if (this.all_table_data[i].his_patient_id > 0) {
                      console.log('!4444444444444')

                      if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                        isHasUnCharge = true
                        console.log('!33333333333')

                      }
                    }

                  }

                }
                if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  console.log('11111111')

                  isHasUnCharge = true
                }
                if (isHasUnCharge) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                if (this.all_table_data[i].order_status == 2) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 4:
              this.patientTableData = []
              this.patientTableData = this.all_table_data
              this.all_patient = this.patientTableData
              break
          }

          this.cal_one = one_count
          this.cal_two = two_count
          this.cal_three = one_count + two_count
          this.current_index = 0

          let ids = []
          let temp_order_id = 0
          var index = 0

          if (this.radio == 2) {
            for (let i = 0; i < this.patientTableData.length; i++) {
              if (this.hisPatientInfo.id == this.patientTableData[i].his_patient_id) {
                ids.push(this.patientTableData[i].order_id)
              }
            }
            temp_order_id = ids[ids.length - 1]
            for (let i = 0; i < this.patientTableData.length; i++) {
              if (temp_order_id == this.patientTableData[i].order_id) {
                index = i
                // this.getPatientInformation(this.patientTableData[i].id, this.patientTableData[i].order_number, this.patientTableData[i].his_patient_id, this.patientTableData[i].order_id)
              }
            }
            this.$refs.tab.setCurrentRow(this.patientTableData[index])

          } else {
            var index = 0
            for (let i = 0; i < this.patientTableData.length; i++) {
              if (this.hisPatientInfo.id == 0) {
                if (this.patientInfo.id == this.patientTableData[i].id) {
                  index = i
                }
              } else {
                if (this.hisPatientInfo.id == this.patientTableData[i].his_patient_id) {
                  index = i
                }
              }
            }
            this.$refs.tab.setCurrentRow(this.patientTableData[index])
          }
        }
      })
    },changeSchtype(){
      this.getPatientList()
    },changeScheduleType(val){
      this.sch_type  = val
      let params = {
        'record_date': this.record_date,
        'type': 2,
        'sch_type':this.sch_type,
      }
      getChargeHisPatientList(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          let one_count = 0
          let two_count = 0
          let three_count = 0
          for (let i = 0; i < response.data.data.list.length; i++) {
            if (response.data.data.list[i].his_patient.length == 0) { //没挂号
              if (response.data.data.list[i].prescription.length > 0) {
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  number: '',
                  order_status: 0,
                  order_number: '',
                  his_patient_id: 0,
                  prescription: response.data.data.list[i].prescription,
                  schedle: response.data.data.list[i].schedule

                }

                this.all_table_data.push(obj)
              }

            } else { //挂号
              if (response.data.data.list[i].his_patient.length == 1) {
                if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                  for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                      order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                      prescription: response.data.data.list[i].prescription,
                      schedle: response.data.data.list[i].schedule


                    }
                    this.all_table_data.push(obj)

                  }
                } else {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[0].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[0].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription,
                    schedle: response.data.data.list[i].schedule


                  }
                  this.all_table_data.push(obj)

                }
              }

              if (response.data.data.list[i].his_patient.length > 1) {
                for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                  if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[b].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[b].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription,
                      schedle: response.data.data.list[i].schedule
                    }
                    this.all_table_data.push(obj)
                  } else {

                    for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                        order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                        prescription: response.data.data.list[i].prescription,
                        schedle: response.data.data.list[i].schedule


                      }
                      this.all_table_data.push(obj)
                    }

                  }

                }
              }
            }
          }
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].his_patient_id > 0) {
              this.hisPatientDatas.push(this.all_table_data[i])
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            let isHasUnCharge = false
            for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
              if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true
              } else {
                if (this.all_table_data[i].his_patient_id > 0) {
                  if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                    isHasUnCharge = true
                  }
                }

              }
            }
            if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
              isHasUnCharge = true

            }

            if (isHasUnCharge) {
              unChargePatient.push(this.all_table_data[i])
            }

          }
          unChargePatient = this.unique_four(unChargePatient)
          // for(let i = 0; i < unChargePatient.length; i++){
          //
          // }
          var cal_list = []

          for(let i = 0;i < unChargePatient.length; i++){


          }


          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].order_status == 2) {
              ChargePatient.push(this.all_table_data[i])
            }

          }

          two_count = two_count + ChargePatient.length

          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }


          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                let isHasUnCharge = false
                for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                  if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    isHasUnCharge = true
                  } else {
                    if (this.all_table_data[i].his_patient_id > 0) {
                      if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                        isHasUnCharge = true
                      }
                    }

                  }

                }
                if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  isHasUnCharge = true
                }
                if (isHasUnCharge) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                if (this.all_table_data[i].order_status == 2) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 4:
              this.patientTableData = []
              this.patientTableData = this.all_table_data
              this.all_patient = this.patientTableData
              break
          }

          // this.cal_one = one_count
          this.cal_two = two_count
          this.cal_three = one_count + two_count
          this.current_index = 0
          this.$refs.tab.setCurrentRow(this.patientTableData[0])
          // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)
        }
      })



      let params2 = {
        'record_date': this.record_date,
        'type': 1,
        'sch_type':this.sch_type,
      }
      getChargeHisPatientList(params2).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          let one_count = 0
          let two_count = 0

          for (let i = 0; i < response.data.data.list.length; i++) {
            if (response.data.data.list[i].his_patient.length == 0) { //没挂号
              if (response.data.data.list[i].prescription.length > 0) {
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  number: '',
                  order_status: 0,
                  order_number: '',
                  his_patient_id: 0,
                  prescription: response.data.data.list[i].prescription,
                  schedle: response.data.data.list[i].schedule

                }

                this.all_table_data.push(obj)
              }

            } else { //挂号
              if (response.data.data.list[i].his_patient.length == 1) {
                if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                  for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                      order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                      prescription: response.data.data.list[i].prescription,
                      schedle: response.data.data.list[i].schedule


                    }
                    this.all_table_data.push(obj)

                  }
                } else {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[0].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[0].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription,
                    schedle: response.data.data.list[i].schedule


                  }
                  this.all_table_data.push(obj)

                }
              }

              if (response.data.data.list[i].his_patient.length > 1) {
                for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                  if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[b].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[b].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription,
                      schedle: response.data.data.list[i].schedule
                    }
                    this.all_table_data.push(obj)
                  } else {

                    for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                        order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                        prescription: response.data.data.list[i].prescription,
                        schedle: response.data.data.list[i].schedule


                      }
                      this.all_table_data.push(obj)
                    }

                  }

                }
              }
            }
          }
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].his_patient_id > 0) {
              this.hisPatientDatas.push(this.all_table_data[i])
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            let isHasUnCharge = false
            for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
              if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true
              } else {
                if (this.all_table_data[i].his_patient_id > 0) {
                  if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                    isHasUnCharge = true
                  }
                }

              }
            }
            if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
              isHasUnCharge = true

            }

            if (isHasUnCharge) {
              unChargePatient.push(this.all_table_data[i])
            }

          }
          unChargePatient = this.unique_four(unChargePatient)
          // for(let i = 0; i < unChargePatient.length; i++){
          //
          // }
          var cal_list = []

          for(let i = 0;i < unChargePatient.length; i++){


          }


          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].order_status == 2) {
              ChargePatient.push(this.all_table_data[i])
            }

          }



          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }


          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                let isHasUnCharge = false
                for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                  if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    isHasUnCharge = true
                  } else {
                    if (this.all_table_data[i].his_patient_id > 0) {
                      if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                        isHasUnCharge = true
                      }
                    }

                  }

                }
                if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  isHasUnCharge = true
                }
                if (isHasUnCharge) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                if (this.all_table_data[i].order_status == 2) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 4:
              this.patientTableData = []
              this.patientTableData = this.all_table_data
              this.all_patient = this.patientTableData
              break
          }

          this.cal_one = one_count
          // this.cal_two = two_count
          // this.cal_three = one_count + two_count
          this.current_index = 0
          this.$refs.tab.setCurrentRow(this.patientTableData[0])
          // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)
        }
      })


    },
    changeRadio(id) {
      if(this.activeName == 'first') {
        let temp_id = id
        this.radio = id
        let params = {
          'record_date': this.record_date,
          'sch_type':this.sch_type,
        }
        getChargeHisPatientList(params).then(response => {
          if (response.data.state == 0) {
            this.$message.error(response.data.msg)
            return false
          } else {
            this.patientTableData = []
            this.all_table_data = []
            this.hisPatientDatas = []

            let one_count = 0
            let two_count = 0
            let three_count = 0
            for (let i = 0; i < response.data.data.list.length; i++) {
              if (response.data.data.list[i].his_patient.length == 0) { //没挂号
                if (response.data.data.list[i].prescription.length > 0) {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: '',
                    order_status: 0,
                    order_number: '',
                    his_patient_id: 0,
                    prescription: response.data.data.list[i].prescription
                  }

                  this.all_table_data.push(obj)
                }

              } else { //挂号
                if (response.data.data.list[i].his_patient.length == 1) {
                  if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                    for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[0].number,
                        order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[0].id,
                        order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                        order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                        prescription: response.data.data.list[i].prescription

                      }
                      this.all_table_data.push(obj)

                    }
                  } else {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription

                    }
                    this.all_table_data.push(obj)

                  }
                }

                if (response.data.data.list[i].his_patient.length > 1) {
                  for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                    if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: 0,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: '',
                        order_id: 0,
                        prescription: response.data.data.list[i].prescription
                      }
                      this.all_table_data.push(obj)
                    } else {

                      for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                        let obj = {
                          id: response.data.data.list[i].id,
                          name: response.data.data.list[i].name,
                          number: response.data.data.list[i].his_patient[b].number,
                          order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                          his_patient_id: response.data.data.list[i].his_patient[b].id,
                          order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                          order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                          prescription: response.data.data.list[i].prescription

                        }
                        this.all_table_data.push(obj)
                      }

                    }

                  }
                }
              }
            }
            for (let i = 0; i < this.all_table_data.length; i++) {
              if (this.all_table_data[i].his_patient_id > 0) {
                this.hisPatientDatas.push(this.all_table_data[i])
              }
            }

            let unChargePatient = []
            for (let i = 0; i < this.all_table_data.length; i++) {
              let isHasUnCharge = false
              for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  isHasUnCharge = true
                } else {
                  if (this.all_table_data[i].his_patient_id > 0) {
                    if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                      isHasUnCharge = true
                    }
                  }

                }
              }
              if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true

              }

              if (isHasUnCharge) {
                unChargePatient.push(this.all_table_data[i])
              }

            }

            unChargePatient = this.unique_four(unChargePatient)

            one_count = one_count + unChargePatient.length

            let ChargePatient = []
            for (let i = 0; i < this.all_table_data.length; i++) {
              if (this.all_table_data[i].order_status == 2) {
                ChargePatient.push(this.all_table_data[i])
              }

            }

            two_count = two_count + ChargePatient.length

            if (this.radio == 1) {
              this.all_table_data = this.unique_four(this.all_table_data)
            }

            console.log(this.all_table_data)

            switch (this.radio) {
              case 1:
                this.patientTableData = []
                for (let i = 0; i < this.all_table_data.length; i++) {
                  let isHasUnCharge = false
                  for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                    console.log('!111111111')
                    console.log(this.all_table_data[i].order_status)
                    if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                      console.log('!22222222222')

                      isHasUnCharge = true
                    } else {
                      if (this.all_table_data[i].his_patient_id > 0) {
                        console.log('!4444444444444')

                        if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                          isHasUnCharge = true
                          console.log('!33333333333')

                        }
                      }

                    }

                  }
                  if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    console.log('11111111')

                    isHasUnCharge = true
                  }
                  if (isHasUnCharge) {
                    this.patientTableData.push(this.all_table_data[i])
                  }
                }
                this.all_patient = this.patientTableData
                break
              case 2:
                this.patientTableData = []
                for (let i = 0; i < this.all_table_data.length; i++) {
                  if (this.all_table_data[i].order_status == 2) {
                    this.patientTableData.push(this.all_table_data[i])
                  }
                }
                this.all_patient = this.patientTableData
                break
              case 4:
                this.patientTableData = []
                this.patientTableData = this.all_table_data
                this.all_patient = this.patientTableData
                break
            }

            this.cal_one = one_count
            this.cal_two = two_count
            this.cal_three = one_count + two_count
            this.current_index = 0

            if(this.patientTableData.length > 0) {
              this.$refs.tab.setCurrentRow(this.patientTableData[0])
            }
            // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)

          }

        })
      }else{
        this.radio = id
        this.getMonthHISPatientList()

      }
    },
    formatDecimal(num, decimal) {
      num = num.toString()
      let index = num.indexOf('.')
      if (index !== -1) {
        num = num.substring(0, decimal + index + 1)
      } else {
        num = num.substring(0)
      }
      return parseFloat(num).toFixed(decimal)
    }, getMonthChargePatientList() {
      let params = {
        'record_date': this.record_date,
        'start_time': this.other_start_time,
        'end_time': this.other_end_time
      }
      getChargeHisPatientList(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.hisPatientDatas = []

        }
      })

    },
    //患者列表
    getPatientList() {
      let params = {
        'record_date': this.record_date,
        'type': this.radio,
        'sch_type':this.sch_type,
      }
      getChargeHisPatientList(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          let one_count = 0
          let two_count = 0
          let three_count = 0
          for (let i = 0; i < response.data.data.list.length; i++) {
            if (response.data.data.list[i].his_patient.length == 0) { //没挂号
              if (response.data.data.list[i].prescription.length > 0) {
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  number: '',
                  order_status: 0,
                  order_number: '',
                  his_patient_id: 0,
                  prescription: response.data.data.list[i].prescription,
                  schedle: response.data.data.list[i].schedule

                }

                this.all_table_data.push(obj)
              }

            } else { //挂号
              if (response.data.data.list[i].his_patient.length == 1) {
                if (response.data.data.list[i].his_patient[0].orders.length > 0) {
                  for (let b = 0; b < response.data.data.list[i].his_patient[0].orders.length; b++) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[0].number,
                      order_status: response.data.data.list[i].his_patient[0].orders[b].order_status,
                      his_patient_id: response.data.data.list[i].his_patient[0].id,
                      order_number: response.data.data.list[i].his_patient[0].orders[b].order_number,
                      order_id: response.data.data.list[i].his_patient[0].orders[b].id,
                      prescription: response.data.data.list[i].prescription,
                      schedle: response.data.data.list[i].schedule


                    }
                    this.all_table_data.push(obj)

                  }
                } else {
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[0].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[0].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription,
                    schedle: response.data.data.list[i].schedule


                  }
                  this.all_table_data.push(obj)

                }
              }

              if (response.data.data.list[i].his_patient.length > 1) {
                for (let b = 0; b < response.data.data.list[i].his_patient.length; b++) {
                  if (response.data.data.list[i].his_patient[b].orders.length == 0) {
                    let obj = {
                      id: response.data.data.list[i].id,
                      name: response.data.data.list[i].name,
                      number: response.data.data.list[i].his_patient[b].number,
                      order_status: 0,
                      his_patient_id: response.data.data.list[i].his_patient[b].id,
                      order_number: '',
                      order_id: 0,
                      prescription: response.data.data.list[i].prescription,
                      schedle: response.data.data.list[i].schedule
                    }
                    this.all_table_data.push(obj)
                  } else {

                    for (let c = 0; c < response.data.data.list[i].his_patient[b].orders.length; c++) {
                      let obj = {
                        id: response.data.data.list[i].id,
                        name: response.data.data.list[i].name,
                        number: response.data.data.list[i].his_patient[b].number,
                        order_status: response.data.data.list[i].his_patient[b].orders[c].order_status,
                        his_patient_id: response.data.data.list[i].his_patient[b].id,
                        order_number: response.data.data.list[i].his_patient[b].orders[c].number,
                        order_id: response.data.data.list[i].his_patient[b].orders[c].id,
                        prescription: response.data.data.list[i].prescription,
                        schedle: response.data.data.list[i].schedule


                      }
                      this.all_table_data.push(obj)
                    }

                  }

                }
              }
            }
          }
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].his_patient_id > 0) {
              this.hisPatientDatas.push(this.all_table_data[i])
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            let isHasUnCharge = false
            for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
              if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                isHasUnCharge = true
              } else {
                if (this.all_table_data[i].his_patient_id > 0) {
                  if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                    isHasUnCharge = true
                  }
                }

              }
            }
            if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
              isHasUnCharge = true

            }

            if (isHasUnCharge) {
              unChargePatient.push(this.all_table_data[i])
            }

          }
          unChargePatient = this.unique_four(unChargePatient)
          // for(let i = 0; i < unChargePatient.length; i++){
          //
          // }
          var cal_list = []

          for(let i = 0;i < unChargePatient.length; i++){


          }


          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            if (this.all_table_data[i].order_status == 2) {
              ChargePatient.push(this.all_table_data[i])
            }

          }

          two_count = two_count + ChargePatient.length

          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }


          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                let isHasUnCharge = false
                for (let b = 0; b < this.all_table_data[i].prescription.length; b++) {
                  if (this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                    isHasUnCharge = true
                  } else {
                    if (this.all_table_data[i].his_patient_id > 0) {
                      if (this.all_table_data[i].his_patient_id == this.all_table_data[i].prescription[0].his_patient_id) {
                        isHasUnCharge = true
                      }
                    }

                  }

                }
                if (this.all_table_data[i].his_patient_id > 0 && this.all_table_data[i].order_status != 2 && this.all_table_data[i].order_status != 3) {
                  isHasUnCharge = true
                }
                if (isHasUnCharge) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                if (this.all_table_data[i].order_status == 2) {
                  this.patientTableData.push(this.all_table_data[i])
                }
              }
              this.all_patient = this.patientTableData
              break
            case 4:
              this.patientTableData = []
              this.patientTableData = this.all_table_data
              this.all_patient = this.patientTableData
              break
          }

          this.cal_one = one_count
          this.cal_two = two_count
          this.cal_three = one_count + two_count
          this.current_index = 0
          this.$refs.tab.setCurrentRow(this.patientTableData[0])
          // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)
        }
      })
    },
    getMonthHISPatientList() {
      let params = {
        'record_date': this.record_date,
        'type': this.radio
      }
      getMonthHisPatient(params).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.patientTableData = []
          this.all_table_data = []
          this.hisPatientDatas = []

          if (response.data.data.list == null){
            response.data.data.list = []
          }

          if (response.data.data.chargePatients == null){
            response.data.data.chargePatients = []
          }
          let one_count = 0
          let two_count = 0

          for (let i = 0; i < response.data.data.list.length; i++) {
            if (this.org_id == 10206){
                let obj = {
                  id: response.data.data.list[i].id,
                  name: response.data.data.list[i].name,
                  order_status: 0,
                  order_number: '',
                  order_id: 0,
                  prescription: response.data.data.list[i].prescription
                }
                if(response.data.data.list[i].his_patient&& response.data.data.list[i].his_patient.length > 0){
                  obj["his_patient_id"] = response.data.data.list[i].his_patient[0].id
                  obj["number"] = response.data.data.list[i].his_patient[0].number
                }

                this.all_table_data.push(obj)
            }else{
              if (response.data.data.list[i].his_patient.length > 0) {
                for(let b = 0;b < response.data.data.list[i].his_patient.length; b++){
                  let obj = {
                    id: response.data.data.list[i].id,
                    name: response.data.data.list[i].name,
                    number: response.data.data.list[i].his_patient[b].number,
                    order_status: 0,
                    his_patient_id: response.data.data.list[i].his_patient[b].id,
                    order_number: '',
                    order_id: 0,
                    prescription: response.data.data.list[i].prescription
                  }
                  this.all_table_data.push(obj)
                }
              }
            }
          }

          let unChargePatient = []
          for (let i = 0; i < this.all_table_data.length; i++) {
            unChargePatient.push(this.all_table_data[i])
          }
          unChargePatient = this.unique_four(unChargePatient)
          one_count = one_count + unChargePatient.length

          let ChargePatient = []
          for (let i = 0; i < response.data.data.chargePatients.length; i++) {
            let obj = {
              id: response.data.data.chargePatients[i].patient_id,
              name: response.data.data.chargePatients[i].patient.name,
              number: response.data.data.chargePatients[i].mdtrt_id,
              order_status: 2,
              his_patient_id: 0,
              order_number: response.data.data.chargePatients[i].number,
              order_id: response.data.data.chargePatients[i].id,
            }
            ChargePatient.push(obj)
          }
          two_count = two_count + ChargePatient.length

          if (this.radio == 1) {
            this.all_table_data = this.unique_four(this.all_table_data)
          }else{
            this.all_table_data = ChargePatient
          }


          switch (this.radio) {
            case 1:
              this.patientTableData = []
              for (let i = 0; i < this.all_table_data.length; i++) {
                this.patientTableData.push(this.all_table_data[i])
              }
              this.all_patient = this.patientTableData
              break
            case 2:
              this.patientTableData = []
              for (let i = 0; i < ChargePatient.length; i++) {
                this.patientTableData.push(ChargePatient[i])
              }
              break
          }
          console.log("111122222")
          console.log(this.patientTableData)

          this.cal_one = one_count
          this.cal_two = two_count
          this.current_index = 0
          if(this.patientTableData.length > 0){
            this.$refs.tab.setCurrentRow(this.patientTableData[0])
          }
          // this.getPatientInformation(this.patientTableData[0].id, this.patientTableData[0].order_number, this.patientTableData[0].his_patient_id, this.patientTableData[0].order_id)
        }
      })
    },

    setMonthPrescription(month_prescriptions) {
      let big_prescriptions = []
      for (let i = 0; i < this.unique_three(month_prescriptions).length; i++) {
        let obj = {
          med_type: this.unique_three(month_prescriptions)[i].med_type,
          prescriptions: []
        }
        big_prescriptions.push(obj)
      }

      this.month_prescriptions = []

      let drug_prescriptions_ids = ''
      let project_prescriptions_ids = ''

      for (let c = 0; c < big_prescriptions.length; c++) {

        let drug_month_prescriptions = {
          advices: []
        }
        let drug_ids = []
        let project_month_prescriptions = {
          project: []

        }
        let project_ids = []

        for (let i = 0; i < month_prescriptions.length; i++) {
          if (big_prescriptions[c].med_type == month_prescriptions[i].med_type) {

            if (month_prescriptions[i].type == 1) { //药品
              for (let a = 0; a < month_prescriptions[i].advices.length; a++) {
                let obj = {
                  id: month_prescriptions[i].advices[a].drug_id,
                  price: month_prescriptions[i].advices[a].price

                }
                drug_ids.push(obj)
                drug_month_prescriptions.advices.push(month_prescriptions[i].advices[a])
              }

              if (drug_prescriptions_ids.length == 0) {
                drug_prescriptions_ids = month_prescriptions[i].id.toString()
              } else {
                drug_prescriptions_ids = drug_prescriptions_ids + ',' + month_prescriptions[i].id.toString()
              }

            } else if (month_prescriptions[i].type == 2) { //项目
              for (let a = 0; a < month_prescriptions[i].project.length; a++) {
                let obj = {
                  id: month_prescriptions[i].project[a].project_id,
                  price: month_prescriptions[i].project[a].price

                }
                project_ids.push(obj)
                project_month_prescriptions.project.push(month_prescriptions[i].project[a])
              }

              if (project_prescriptions_ids.length == 0) {
                project_prescriptions_ids = month_prescriptions[i].id.toString()
              } else {
                project_prescriptions_ids = project_prescriptions_ids + ',' + month_prescriptions[i].id.toString()
              }
            }

            big_prescriptions[c]['drug_ids'] = []
            big_prescriptions[c]['project_ids'] = []
            // big_prescriptions[c]['additions_ids'] = []
            big_prescriptions[c]['drug_month_prescriptions'] = []
            big_prescriptions[c]['project_month_prescriptions'] = []
            // big_prescriptions[c]['addition_month_prescriptions'] = []

            big_prescriptions[c]['drug_ids'] = drug_ids
            big_prescriptions[c]['project_ids'] = project_ids
            // big_prescriptions[c]['additions_ids'] = additions_ids

            big_prescriptions[c]['drug_month_prescriptions'] = drug_month_prescriptions
            big_prescriptions[c]['project_month_prescriptions'] = project_month_prescriptions
            // big_prescriptions[c]['addition_month_prescriptions'] = addition_month_prescriptions
            big_prescriptions[c]['order'] = month_prescriptions[i].order
          }
        }
      }

      //
      //
      for (let y = 0; y < big_prescriptions.length; y++) {
        let drug_ids = this.unique_two(big_prescriptions[y].drug_ids)
        let project_ids = this.unique_two(big_prescriptions[y].project_ids)
        // let additions_ids = this.unique_two(big_prescriptions[y].additions_ids)

        let drugs = []
        let projects = []

        // let additions = []

        for (let i = 0; i < drug_ids.length; i++) {
          let obj = {}
          let count = 0
          for (let a = 0; a < big_prescriptions[y].drug_month_prescriptions.advices.length; a++) {
            if (drug_ids[i].price == big_prescriptions[y].drug_month_prescriptions.advices[a].price && drug_ids[i].id == big_prescriptions[y].drug_month_prescriptions.advices[a].drug_id) {
              obj['drug_name'] = big_prescriptions[y].drug_month_prescriptions.advices[a].advice_name
              obj['single_dose'] = big_prescriptions[y].drug_month_prescriptions.advices[a].single_dose
              obj['delivery_way'] = big_prescriptions[y].drug_month_prescriptions.advices[a].delivery_way
              obj['execution_frequency'] = big_prescriptions[y].drug_month_prescriptions.advices[a].execution_frequency
              obj['day'] = big_prescriptions[y].drug_month_prescriptions.advices[a].day
              // obj['prescribing_number'] =  obj['prescribing_number']  + drug_month_prescriptions.advices[a].prescribing_number
              obj['prescribing_number_unit'] = big_prescriptions[y].drug_month_prescriptions.advices[a].prescribing_number_unit
              obj['medical_insurance_number'] = big_prescriptions[y].drug_month_prescriptions.advices[a].drug.medical_insurance_number
              obj['id'] = big_prescriptions[y].drug_month_prescriptions.advices[a].drug_id
              // obj['retail_price'] = obj['retail_price'] +  drug_month_prescriptions.advices[a].drug.retail_price
              obj['retail_price'] = parseFloat(big_prescriptions[y].drug_month_prescriptions.advices[a].price)
              count = count + big_prescriptions[y].drug_month_prescriptions.advices[a].prescribing_number
            }
          }
          obj['prescribing_number'] = count
          drugs.push(obj)
        }

        for (let i = 0; i < project_ids.length; i++) {
          let obj = {}
          let count = 0
          for (let a = 0; a < big_prescriptions[y].project_month_prescriptions.project.length; a++) {
            if (project_ids[i].price == big_prescriptions[y].project_month_prescriptions.project[a].price && project_ids[i].id == big_prescriptions[y].project_month_prescriptions.project[a].project_id) {

              if (big_prescriptions[y].project_month_prescriptions.project[a].type == 2) {
                obj['statistical_classification'] = big_prescriptions[y].project_month_prescriptions.project[a].project.statistical_classification
                obj['medical_code'] = big_prescriptions[y].project_month_prescriptions.project[a].project.medical_code
                obj['project_name'] = big_prescriptions[y].project_month_prescriptions.project[a].project.project_name

              } else if (big_prescriptions[y].project_month_prescriptions.project[a].type == 3) {
                obj['statistical_classification'] = ''
                obj['medical_code'] = big_prescriptions[y].project_month_prescriptions.project[a].good_info.medical_insurance_number
                obj['project_name'] = big_prescriptions[y].project_month_prescriptions.project[a].good_info.good_name

              }

              // obj['project_name'] = project_month_prescriptions.project[a].project.project_name
              // obj['statistical_classification'] = project_month_prescriptions.project[a].project.statistical_classification
              obj['single_dose'] = big_prescriptions[y].project_month_prescriptions.project[a].single_dose
              obj['delivery_way'] = big_prescriptions[y].project_month_prescriptions.project[a].delivery_way
              obj['execution_frequency'] = big_prescriptions[y].project_month_prescriptions.project[a].execution_frequency
              obj['number_days'] = big_prescriptions[y].project_month_prescriptions.project[a].day
              // obj['medical_code'] = project_month_prescriptions.project[a].project.medical_code
              obj['unit'] = big_prescriptions[y].project_month_prescriptions.project[a].unit
              obj['project_id'] = big_prescriptions[y].project_month_prescriptions.project[a].project_id
              count = count + parseFloat(big_prescriptions[y].project_month_prescriptions.project[a].count)
              // price = price + project_month_prescriptions.project[a].price
              obj['price'] = parseFloat(big_prescriptions[y].project_month_prescriptions.project[a].price)
              obj['type'] = big_prescriptions[y].project_month_prescriptions.project[a].type

            }
          }
          obj['total'] = count
          projects.push(obj)
        }

        // for (let i = 0; i < additions_ids.length; i++) {
        //   let obj = {}
        //   let count = 0
        //   if (big_prescriptions[y].addition_month_prescriptions.addition) {
        //     for (let a = 0; a < big_prescriptions[y].addition_month_prescriptions.addition.length; a++) {
        //       if (additions_ids[i].price == big_prescriptions[y].addition_month_prescriptions.addition[a].price && additions_ids[i].id == big_prescriptions[y].addition_month_prescriptions.addition[a].item_id) {
        //         obj['item_name'] = big_prescriptions[y].addition_month_prescriptions.addition[a].item_name
        //         obj['id'] = big_prescriptions[y].addition_month_prescriptions.addition[a].id
        //         obj['item_id'] = big_prescriptions[y].addition_month_prescriptions.addition[a].item_id
        //         count = count + big_prescriptions[y].addition_month_prescriptions.addition[a].count
        //         obj['price'] = parseFloat(big_prescriptions[y].addition_month_prescriptions.addition[a].price)
        //       }
        //     }
        //     obj['count'] = count
        //     additions.push(obj)
        //   }
        // }
        console.log('ids==')
        console.log(drug_prescriptions_ids)
        console.log(project_prescriptions_ids)

        let p1 = {
          name: this.getPName(big_prescriptions[y].med_type, 1),
          advices: drugs,
          project: [],
          prescriptions_ids: drug_prescriptions_ids,
          type: 1,
          order: big_prescriptions[y].order
        }
        let p2 = {
          name: this.getPName(big_prescriptions[y].med_type, 2),
          type: 2,
          project: projects,
          prescriptions_ids: project_prescriptions_ids,
          advices: [],
          order: big_prescriptions[y].order

        }
        big_prescriptions[y]['month_prescriptions'] = []
        big_prescriptions[y]['month_prescriptions'].push(p1)
        big_prescriptions[y]['month_prescriptions'].push(p2)
      }
      this.big_month_prescriptions = big_prescriptions
      console.log(this.big_month_prescriptions)

      for (let i = 0; i < this.big_month_prescriptions.length; i++) {
        if (this.big_month_prescriptions[i].month_prescriptions.length > 0) {
          this.big_month_prescriptions[i]['curMonthPrescriptions'] = JSON.parse(JSON.stringify(this.big_month_prescriptions[i].month_prescriptions[0]))
        } else {
          this.big_month_prescriptions[i]['curMonthPrescriptions'] = {}
        }
        this.big_month_prescriptions[i]['month_total'] = this.getMonthTotalTwo(this.big_month_prescriptions[i].month_prescriptions[0])
      }
      if (this.big_month_prescriptions.length > 0) {
        this.editableTabsValue = this.big_month_prescriptions[0].curMonthPrescriptions.name
      }
    },
    getPName(med_type, index) {
      var med_type = parseInt(med_type)

      if(this.org_id == 10206){
        switch (med_type) {
          case 1:
            return '普通' + '处方' + index

            break
          case 2:
            return '急诊' + '处方' + index

            break
          case 5:
            return '第一类精神药品' + '处方' + index

            break
          case 6:
            return '第二类精神药品' + '处方' + index

            break

          case 7:
            return '放射药品' + '处方' + index
            break

          case 8:
            return '毒性药品' + '处方' + index

            break
          case 9:
            return '检查' + '处方' + index

            break
          case 10:
            return '检验' + '处方' + index
            break
          case 12:
            return '治疗' + '处方' + index
            break
          case 99:
            return '其他' + '处方' + index
            break
        }
      }else{
        switch (med_type) {
          case 11:
            return '普通门诊' + '处方' + index

            break
          case 1102:
            return '新冠门诊' + '处方' + index

            break
          case 12:
            return '门诊挂号' + '处方' + index

            break
          case 13:
            return '急诊' + '处方' + index

            break

          case 14:
            return '门诊特殊病' + '处方' + index
            break

          case 15:
            return '门诊统筹' + '处方' + index

            break
          case 16:
            return '门诊慢性病' + '处方' + index

            break
          case 21:
            return '普通住院' + '处方' + index
            break
          case 1111:
            return '精一' + '处方' + index
            break
          case 1112:
            return '精二' + '处方' + index
            break
          case 9933:
            return '门诊特殊病(9933)' + '处方' + index
            break
          case 990602:
            return '门诊特殊病(990602)' + '处方' + index
            break
          case 1402:
            return '门诊特殊病(1402)' + '处方' + index
            break
          case 1401:
            return '门诊慢性病(1401)' + '处方' + index
            break
          case 2302:
            return '异地就医(2302)' + '处方' + index
            break
          case 9922:
            return '家庭通道' + '处方' + index
            break
          case 0:
            return '自费' + '处方' + index
            break
        }
      }

    }, unique_four(array) {
      // res用来存储结果
      var res = []
      for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
        for (var j = 0, resLen = res.length; j < resLen; j++) {
          if (array[i].id === res[j].id && array[i].number === res[j].number) {
            break
          }
        }
        // 如果array[i]是唯一的，那么执行完循环，j等于resLen
        if (j === resLen) {
          res.push(array[i])
        }
      }
      return res
    },
    unique_two(array) {
      // res用来存储结果
      var res = []
      for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
        for (var j = 0, resLen = res.length; j < resLen; j++) {
          if (array[i].id === res[j].id && array[i].price === res[j].price) {
            break
          }
        }
        // 如果array[i]是唯一的，那么执行完循环，j等于resLen
        if (j === resLen) {
          res.push(array[i])
        }
      }
      return res
    },

    unique(arr) {
      const res = new Map()
      return arr.filter((arr) => !res.has(arr.id_card_no) && res.set(arr.id_card_no, 1))
    }, unique_three(array) {
      // res用来存储结果
      var res = []
      for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
        for (var j = 0, resLen = res.length; j < resLen; j++) {
          if (array[i].med_type === res[j].med_type) {
            break
          }
        }
        // 如果array[i]是唯一的，那么执行完循环，j等于resLen
        if (j === resLen) {
          res.push(array[i])
        }
      }
      return res
    },

    handleCurrentChange(val) {
      this.curPrescriptions = null
      this.curMonthPrescriptions = null
      this.prescriptions = []
      this.month_prescriptions = []
      this.big_prescriptions = []
      this.big_month_prescriptions = []
      if(val != null) {
        this.getPatientInformation(val.id, val.order_number, val.his_patient_id, val.order_id)
        this.patient_id = val.id
        for (let i = 0; i < this.patientTableData.length; i++) {
          if (this.patientTableData[i].his_patient_id == val.his_patient_id) {
            this.current_index = i
          }
        }
      }else{
        this.loading = false

      }
    },
    // 获取患者的基本信息
    getPatientInformation(id, batch_number, his_patient_id, order_id) {
      const params = {
        'record_date': this.record_date,
        'patient_id': id,
        'his_patient_id': his_patient_id,
        'number': batch_number,
        'start_time': this.other_start_time,
        'end_time': this.other_end_time,
        'type': this.radio,
        'p_type': 2,
        'order_id': order_id

      }
      this.loading = true
      if (this.activeName == 'first') {

        getChargeHisPatientInfo(params).then(response => {
          if (response.data.state == 0) {
            this.loading = false

            this.$message.error(response.data.msg)
            return false
          } else {
            this.prescriptions = []
            this.month_prescriptions = []
            this.big_month_prescriptions = []
            this.big_prescriptions = []
            this.curPrescriptions = {}
            this.curMonthPrescriptions = {}
            this.loading = false
            this.patientInfo = response.data.data.xt_info
            this.hisPatientInfo = response.data.data.his_info
            this.info = response.data.data.info
            this.order = response.data.data.order
            this.p_type = ''
            this.sick_type = ''
            this.diagnosis = []
            this.sick_history = ''
            this.form.diagnosis = []
            if (this.info.id > 0) {
              this.form.p_type = response.data.data.info.register_type
              this.form.sick_type = response.data.data.info.sick_type
              if (response.data.data.info.diagnosis.length == 0) {
                this.form.diagnosis = []
              } else {
                for (let i = 0; i < response.data.data.info.diagnosis.split(',').length; i++) {
                  if(parseInt(response.data.data.info.diagnosis.split(',')[i]) !== NaN){
                    this.form.diagnosis.push(parseInt(response.data.data.info.diagnosis.split(',')[i]))
                  }
                }
              }






              this.sick_history = this.info.sick_history
              if (this.info.register_type == 0) {
                this.form.p_type = ''
              }

              if (this.info.sick_type == 0) {
                this.form.sick_type = ''
              }
            } else {
              this.form.p_type = 14
              this.form.sick_type = this.sick[0].id
              if (response.data.data.last_info.id == 0) {
                this.form.diagnosis = []
              } else {
                for (let i = 0; i < response.data.data.last_info.diagnosis.split(',').length; i++) {
                  this.form.diagnosis.push(parseInt(response.data.data.last_info.diagnosis.split(',')[i]))
                }
              }

              this.sick_history = ''
            }
            this.addtions_charge = response.data.data.addtions_charge

            if (response.data.data.prescription.length > 0 && response.data.data.prescription[0].advices.length > 0) {
              this.prescription_id = response.data.data.prescription[0].advices[0].prescription_id
            } else {
              this.prescription_id = 0
            }

            const big_prescriptions = []

            for (let i = 0; i < this.unique_three(response.data.data.prescription).length; i++) {
              const obj = {
                med_type: this.unique_three(response.data.data.prescription)[i].med_type,
                prescriptions: []
              }
              big_prescriptions.push(obj)
            }

            for (let c = 0; c < big_prescriptions.length; c++) {
              const inner_prescription = []
              for (let i = 0; i < response.data.data.prescription.length; i++) {
                var prescription = response.data.data.prescription[i]

                if (big_prescriptions[c].med_type == prescription.med_type) {
                  const tempAdvice = []
                  const tempProject = []
                  const tempAddition = []

                  for (let b = 0; b < prescription.advices.length; b++) {
                    let spec = prescription.advices[b].drug.dose + prescription.advices[b].drug.dose_unit + '*' + prescription.advices[b].drug.min_number + prescription.advices[b].drug.min_unit + '/' + prescription.advices[b].drug.max_unit

                    const obj = {
                      advice_id: prescription.advices[b].id,
                      drug_name: prescription.advices[b].advice_name,
                      single_dose: prescription.advices[b].single_dose,
                      delivery_way: prescription.advices[b].delivery_way,
                      execution_frequency: prescription.advices[b].execution_frequency,
                      retail_price: prescription.advices[b].price.toString(),
                      remark: prescription.advices[b].remark,
                      day: prescription.advices[b].day,
                      prescribing_number: prescription.advices[b].prescribing_number.toString(),
                      single_dose_unit: prescription.advices[b].single_dose_unit,
                      prescribing_number_unit: prescription.advices[b].prescribing_number_unit,
                      code: prescription.advices[b].drug.medical_insurance_number,
                      spec: spec,
                      det_item_fee_sumamt: prescription.advices[b].order_info.det_item_fee_sumamt,
                      name_id: prescription.advices[b].drug.manufacturer,
                      fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt,
                      overlmt_amt: prescription.advices[b].order_info.overlmt_amt,
                      preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt,
                      inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt,
                      execution_state: prescription.advices[b].execution_state

                    }
                    tempAdvice.push(obj)
                  }

                  for (let b = 0; b < prescription.project.length; b++) {

                    const obj = {
                      id: prescription.project[b].id,
                      project_id: prescription.project[b].project.id,
                      // project_name: prescription.project[b].project.project_name,
                      // statistical_classification: prescription.project[b].project.statistical_classification,
                      single_dose: prescription.project[b].single_dose,
                      delivery_way: prescription.project[b].delivery_way,
                      execution_frequency: prescription.project[b].execution_frequency,
                      number_days: prescription.project[b].day,
                      total: prescription.project[b].count.toString(),
                      price: prescription.project[b].price,
                      remark: prescription.project[b].remark,
                      // medical_code: prescription.project[b].project.medical_code,
                      type: prescription.project[b].type,
                      execution_state: prescription.project[b].execution_state,

                      det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt,
                      fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt,
                      overlmt_amt: prescription.project[b].order_info.overlmt_amt,
                      preselfpay_amt: prescription.project[b].order_info.preselfpay_amt,
                      inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt

                    }

                    if (prescription.project[b].type == 2) {
                      obj['statistical_classification'] = prescription.project[b].project.statistical_classification
                      obj['medical_code'] = prescription.project[b].project.medical_code
                      obj['project_name'] = prescription.project[b].project.project_name
                      obj['spec'] = ''
                      obj['name_id'] = 0
                      obj['unit']=  prescription.project[b].project.unit
                    } else if (prescription.project[b].type == 3) {
                      obj['statistical_classification'] = ''
                      obj['medical_code'] = prescription.project[b].good_info.medical_insurance_number
                      obj['project_name'] = prescription.project[b].good_info.good_name
                      obj['spec'] = prescription.project[b].good_info.specification_name
                      obj['name_id'] = prescription.project[b].good_info.manufacturer
                      obj['unit']=  prescription.project[b].good_info.packing_unit
                    }

                    tempProject.push(obj)
                  }

                  // for (let b = 0; b < prescription.addition.length; b++) {
                  //   const obj = {
                  //     id: prescription.addition[b].id,
                  //     item_name: prescription.addition[b].item_name,
                  //     price: prescription.addition[b].price,
                  //     count: prescription.addition[b].count,
                  //     item_id: prescription.addition[b].item_id
                  //   }
                  //   tempAddition.push(obj)
                  // }
                  const index = i + 1
                  console.log('~~~~~~~~')
                  console.log(prescription.order)
                  prescription.order.order_status = prescription.order.order_status.toString()
                  prescription.order.order_status = parseInt(prescription.order.order_status)

                  const obj = {
                    id: prescription.id,
                    name: this.getPName(prescription.med_type, index),
                    advices: tempAdvice,
                    project: tempProject,
                    addition: tempAddition,
                    order_status: prescription.order_status,
                    type: prescription.type,
                    med_type: prescription.med_type,
                    order: prescription.order
                  }
                  // inner_prescription.push(obj)
                  big_prescriptions[c].prescriptions.push(obj)

                  this.prescriptions.push(obj)
                }
              }
            }

            this.big_prescriptions = JSON.parse(JSON.stringify(big_prescriptions))

            for (let i = 0; i < this.big_prescriptions.length; i++) {
              if (this.big_prescriptions[i].med_type == '11') {
                this.big_prescriptions[i]['is_true'] = 1
              }
            }

            for (let i = 0; i < this.big_prescriptions.length; i++) {
              if (this.big_prescriptions[i].is_true == 1) {
                for (let b = 0; b < this.big_prescriptions[i].prescriptions.length; b++) {
                  const obj = {
                    med_type: '11',
                    prescriptions: []
                  }
                  const arr = []
                  arr.push(this.big_prescriptions[i].prescriptions[b])
                  obj.prescriptions = arr
                  this.big_prescriptions.push(obj)
                }
              }
            }

            console.log(this.big_prescriptions)
            //
            for (let i = 0; i < this.big_prescriptions.length; i++) {
              if (this.big_prescriptions[i].is_true == 1) {
                this.big_prescriptions.splice(i, 1)
              }
            }
            // console.log(this.big_prescriptions)

            for (let i = 0; i < this.big_prescriptions.length; i++) {
              if (this.big_prescriptions[i].prescriptions.length > 0) {
                this.big_prescriptions[i]['curPrescriptions'] = JSON.parse(JSON.stringify(this.big_prescriptions[i].prescriptions[0]))
              } else {
                this.big_prescriptions[i]['curPrescriptions'] = {}
              }
              this.big_prescriptions[i]['total'] = this.getTotalThree(this.big_prescriptions[i])
            }

            if (this.big_prescriptions.length > 0) {
              this.editableTabsValue = this.getPName(this.big_prescriptions[0].med_type, 1)
            }

          }
        })

      } else {

        getMonthCharge(params).then(response => {
          if (response.data.state == 0) {
            this.loading = false

            this.$message.error(response.data.msg)
            return false
          } else {
            this.prescriptions = []
            this.month_prescriptions = []
            this.big_month_prescriptions = []
            this.big_prescriptions = []
            this.curPrescriptions = {}
            this.curMonthPrescriptions = {}
            this.loading = false
            this.patientInfo = response.data.data.xt_info
            this.hisPatientInfo = response.data.data.his_info
            this.info = response.data.data.info
            this.order = response.data.data.order
            this.addtions_charge = response.data.data.addtions_charge

             // response.data.data.dia_arr
            this.form.diagnosis = []
            for(let i = 0; i <  response.data.data.dia_arr.length;i++) {
              if (response.data.data.dia_arr[i] > 0 || response.data.data.dia_arr[i].length > 0) {
                this.form.diagnosis.push(parseInt(response.data.data.dia_arr[i]))
              }
            }
            this.setMonthPrescription(response.data.data.month_prescriptions)
          }
        })

      }
    }
    // sz_open(index, med_type, order, prescriptions) {
    //   switch (index) {
    //     case 1:
    //       this.$refs.register9504.show()
    //       break
    //     case 2:
    //       var that = this
    //       if (this.activeName == 'first') {
    //         this.settle_accounts_type = 1
    //       } else {
    //         this.settle_accounts_type = 2
    //         this.start_time = this.other_start_time
    //         this.end_time = this.other_end_time
    //         this.settle_accounts_type = 2
    //       }
    //       const params = {
    //         'patient_id': this.patientInfo.id,
    //         'record_time': this.record_date,
    //         'settle_accounts_type': this.settle_accounts_type,
    //         'admin_user_id': this.$store.getters.xt_user.user.id,
    //         'his_patient_id': this.hisPatientInfo.id
    //       }
    //
    //       params['p_type'] = med_type
    //       params['diagnosis'] = this.form.diagnosis.join(',')
    //
    //       axios.get('http://127.0.0.1:9532/sz/api/upload/get', {
    //         params: params,
    //         headers: {
    //           'Permission': 5
    //         }
    //       })
    //         .then(function(response) {
    //           if (response.data.state == 0) {
    //             that.$message.error(response.data.msg)
    //             return false
    //           } else {
    //
    //             if (response.data.data.failed_code == -10) {
    //               that.$message.error(response.data.data.msg)
    //
    //             } else {
    //               that.changeRadioAndPatient(1)
    //               that.$message({ message: '预结算成功', type: 'success' })
    //             }
    //
    //           }
    //         })
    //         .catch(function(error) {
    //         })
    //       break
    //     case 3:
    //       this.currentOrder = order
    //       this.current_med_type = med_type
    //
    //       var ids = []
    //       for (let i = 0; i < prescriptions.length; i++) {
    //         ids.push(prescriptions[i].id)
    //       }
    //       var ids_str = ids.join(',')
    //       this.temp_ids = ids_str
    //
    //       if (this.activeName == 'first') {
    //         this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder)
    //       } else {
    //         this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder)
    //       }
    //
    //       break
    //     case 4:
    //       break
    //     case 5:
    //       var that = this
    //       this.$confirm('是否退费', '退费', {
    //         confirmButtonText: '确 定',
    //         cancelButtonText: '取 消',
    //         type: 'warning'
    //       }).then(() => {
    //         if (that.hisPatientInfo.balance_accounts_type == 2) {
    //           const params = {
    //             'order_id': that.order.id,
    //             'number': that.order.number,
    //             'patient_id': that.patientInfo.id,
    //             'record_time': that.record_date
    //
    //           }
    //           Refund(params).then(response => {
    //             if (response.data.state == 0) {
    //               that.$message.error(response.data.msg)
    //               that.loadingtwo = false
    //               return false
    //             } else {
    //               that.radio = 1
    //               that.changeRadioAndPatient(1)
    //               that.$message({ message: '退费成功', type: 'success' })
    //               that.loadingtwo = false
    //             }
    //           })
    //         } else {
    //           axios.get('http://127.0.0.1:9532/sz/api/refund/get', {
    //             params: {
    //               order_id: this.order.id,
    //               record_time: this.record_date,
    //               his_patient_id: this.hisPatientInfo.id,
    //               admin_user_id: this.$store.getters.xt_user.user.id,
    //               patient_id: this.patientInfo.id
    //             }
    //           })
    //             .then(function(response) {
    //               if (response.data.state == 0) {
    //                 that.$message.error(response.data.msg)
    //                 return false
    //               } else {
    //                 if (response.data.data.failed_code == -10) {
    //                   that.$message.error(response.data.data.msg)
    //                 } else {
    //                   that.changeRadioAndPatient(1)
    //                   that.$message({ message: '退费成功', type: 'success' })
    //                 }
    //               }
    //             })
    //             .catch(function(error) {
    //             })
    //         }
    //       }).catch(() => {
    //       })
    //       break
    //     case 6:
    //       var that = this
    //       axios.get('http://127.0.0.1:9532/sz/api/settle/query', {
    //         params: {
    //           order_id: this.order.id,
    //           record_time: this.record_date,
    //           admin_user_id: this.$store.getters.xt_user.user.id,
    //           patient_id: this.patientInfo.id
    //         }
    //       })
    //         .then(function(response) {
    //           if (response.data.state == 0) {
    //             // that.$message.error(response.data.msg)
    //             return false
    //           } else {
    //             if (response.data.data.failed_code == -10) {
    //               that.$confirm(response.data.data.msg, '医保错误信息', {
    //                 confirmButtonText: '确 定',
    //                 type: 'warning'
    //               }).then(() => {
    //
    //               }).catch(() => {
    //               })
    //             } else {
    //               that.$message({ message: '查询成功', type: 'success' })
    //             }
    //           }
    //         })
    //         .catch(function(error) {
    //         })
    //       break
    //     case 7:
    //       if (this.hisPatientInfo.balance_accounts_type != 2) {
    //         var that = this
    //         axios.get('http://127.0.0.1:9532/sz/api/detail/cancel', {
    //           params: {
    //             order_id: order.id,
    //             record_time: this.record_date,
    //             admin_user_id: this.$store.getters.xt_user.user.id,
    //             patient_id: this.patientInfo.id,
    //             his_patient_id: this.hisPatientInfo.id
    //
    //           }
    //         })
    //           .then(function(response) {
    //             if (response.data.state == 0) {
    //               that.$message.error(response.data.msg)
    //               return false
    //             } else {
    //               if (response.data.data.failed_code == -10) {
    //                 that.$confirm(response.data.data.msg, '医保错误信息', {
    //                   confirmButtonText: '确 定',
    //                   type: 'warning'
    //                 }).then(() => {
    //
    //                 }).catch(() => {
    //                 })
    //               } else {
    //                 that.$message({ message: '明细撤销成功', type: 'success' })
    //                 that.changeRadioAndPatient(1)
    //               }
    //             }
    //           })
    //           .catch(function(error) {
    //           })
    //       } else {
    //         const params = {
    //           order_id: this.order.id,
    //           record_time: this.record_date,
    //           admin_user_id: this.$store.getters.xt_user.user.id,
    //           patient_id: this.patientInfo.id
    //         }
    //
    //         refunddetail(params).then(response => {
    //           if (response.data.state == 0) {
    //             this.$message.error(response.data.msg)
    //             this.loadingtwo = false
    //             return false
    //           } else {
    //             this.changeRadioAndPatient(1)
    //             this.$message({ message: '撤销明细成功', type: 'success' })
    //           }
    //         })
    //       }
    //
    //       break
    //     case 8:
    //       var ids = []
    //       for (let i = 0; i < prescriptions.length; i++) {
    //         ids.push(prescriptions[i].id)
    //       }
    //       var ids_str = ids.join(',')
    //
    //       if (this.hisPatientInfo.balance_accounts_type == 2) {
    //         this.$confirm('是否进行预结算', '预结算', {
    //           confirmButtonText: '确 定',
    //           cancelButtonText: '取 消',
    //           type: 'warning'
    //         }).then(() => {
    //           const form = {}
    //           form['id'] = this.patientInfo.id
    //           form['his_patient_id'] = this.hisPatientInfo.id
    //           form['record_time'] = this.record_date
    //           form['admin_user_id'] = this.$store.getters.xt_user.user.id
    //           form['org_id'] = this.$store.getters.xt_user.org_id
    //           form['ids'] = ids_str
    //           form['p_type'] = med_type
    //           form['diagnosis'] = this.form.diagnosis.join(',')
    //           form['sick_type'] = this.form.sick_type
    //
    //           if (this.activeName == 'first') {
    //             form['settle_accounts_type'] = 1
    //           } else {
    //             form['start_time'] = this.other_start_time
    //             form['end_time'] = this.other_end_time
    //             form['settle_accounts_type'] = 2
    //           }
    //           preSettle(form).then(response => {
    //             if (response.data.state == 0) {
    //               this.$message.error(response.data.msg)
    //               this.loadingtwo = false
    //               return false
    //             } else {
    //               this.changeRadioAndPatient(1)
    //               this.$message({ message: '预结算成功', type: 'success' })
    //             }
    //           })
    //         }).catch(() => {
    //
    //         })
    //       } else {
    //         var ids = []
    //         for (let i = 0; i < prescriptions.length; i++) {
    //           ids.push(prescriptions[i].id)
    //         }
    //         var ids_str = ids.join(',')
    //         var that = this
    //         const form = {}
    //         form['id'] = this.patientInfo.id
    //         form['his_patient_id'] = this.hisPatientInfo.id
    //         form['record_time'] = this.record_date
    //         form['admin_user_id'] = this.$store.getters.xt_user.user.id
    //         form['org_id'] = this.$store.getters.xt_user.org_id
    //         form['ids'] = ids_str
    //         form['p_type'] = med_type
    //         form['diagnosis'] = this.form.diagnosis.join(',')
    //         form['sick_type'] = this.form.sick_type
    //
    //         if (this.activeName == 'first') {
    //           form['settle_accounts_type'] = 1
    //         } else {
    //           form['start_time'] = this.other_start_time
    //           form['end_time'] = this.other_end_time
    //           form['settle_accounts_type'] = 2
    //         }
    //         this.$confirm('是否进行预结算', '预结算', {
    //           confirmButtonText: '确 定',
    //           cancelButtonText: '取 消',
    //           type: 'warning'
    //         }).then(() => {
    //           axios.get('http://127.0.0.1:9532/sz/api/presettle/get', {
    //             params: form,
    //             headers: {
    //               'Permission': 5
    //             }
    //           })
    //             .then(function(response) {
    //               if (response.data.state == 0) {
    //                 that.$message.error(response.data.msg)
    //                 return false
    //               } else {
    //                 if (response.data.data.failed_code == -10) {
    //                   that.$confirm(response.data.data.msg, '医保错误信息', {
    //                     confirmButtonText: '确 定',
    //                     type: 'warning'
    //                   }).then(() => {
    //
    //                   }).catch(() => {
    //                   })
    //                 } else {
    //                   that.changeRadioAndPatient(1)
    //                   that.$message({ message: '预结算成功', type: 'success', duration: 5000 })
    //                 }
    //               }
    //             })
    //             .catch(function(error) {
    //
    //             })
    //         }).catch(() => {
    //
    //         })
    //
    //       }
    //
    //       break
    //
    //     case 10:
    //       this.newStatementVisible = true
    //       const obj = {
    //         record_time: this.record_date,
    //         patient_id: this.patient_id,
    //         prescription_id: this.prescription_id,
    //         order_id: this.order.id,
    //         admin_user_id: this.$store.getters.xt_user.user.id,
    //         balance_accounts_type: this.hisPatientInfo.balance_accounts_type,
    //         his_patient_id: this.hisPatientInfo.id
    //
    //       }
    //       this.newOrderObj = obj
    //       // this.$refs.print.getInfo(this.order.id)
    //       break
    //     case 11:
    //       if (this.hisPatientInfo.balance_accounts_type == 2) {
    //         this.$confirm('是否退号', '退号', {
    //           confirmButtonText: '确 定',
    //           cancelButtonText: '取 消',
    //           type: 'warning'
    //         }).then(() => {
    //           const params = {
    //             'id': this.hisPatientInfo.id
    //           }
    //           refundNumber(params).then(response => {
    //             if (response.data.state == 0) {
    //               this.$message.error(response.data.msg)
    //               return false
    //             } else {
    //               this.radio = 1
    //               this.changeRadioAndPatient(1)
    //               this.$message({ message: '退号成功', type: 'success' })
    //             }
    //           })
    //         }).catch(() => {
    //         })
    //       } else {
    //         var that = this
    //         this.$confirm('是否退号', '退号', {
    //           confirmButtonText: '确 定',
    //           cancelButtonText: '取 消',
    //           type: 'warning'
    //         }).then(() => {
    //           axios.get('http://127.0.0.1:9532/sz/api/refundnumber/get', {
    //             params: {
    //               order_id: this.order.id,
    //               record_time: this.record_date,
    //               admin_user_id: this.$store.getters.xt_user.user.id,
    //               patient_id: this.patientInfo.id,
    //               his_patient_id: this.hisPatientInfo.id
    //             }
    //           })
    //             .then(function(response) {
    //               if (response.data.state == 0) {
    //                 that.$message.error(response.data.msg)
    //                 return false
    //               } else {
    //                 if (response.data.data.failed_code == -10) {
    //                   that.$confirm(response.data.data.msg, '医保错误信息', {
    //                     confirmButtonText: '确 定',
    //                     type: 'warning'
    //                   }).then(() => {
    //
    //                   }).catch(() => {
    //                   })
    //                 } else {
    //                   that.changeRadioAndPatient(1)
    //                   that.$message({ message: '退号成功', type: 'success' })
    //                 }
    //               }
    //             })
    //             .catch(function(error) {
    //             })
    //         }).catch(() => {
    //         })
    //       }
    //       break
    //   }
    // }
  }
  ,
  mounted() {
    const that = this
    window.onresize = () => {
      return (() => {
        window.fullHeight = document.documentElement.clientHeight
        that.fullHeight = window.fullHeight
      })()
    }
  }
  ,
  watch: {
    fullHeight(val) {
      if (!this.timer) {
        this.fullHeight = val
        const tableHeight = val - 243
        this.tableHeight = tableHeight
        this.timer = true
        const that = this
        setTimeout(function() {
          that.timer = false
        }, 400)
      }
    }
  }
}
</script>

<style lang="scss" scoped>
.app-container {
  height: 100%;
}

.outpatientChargesManagement {
  height: 100%;
  display: flex;
  flex-direction: column;

.mainLeft {
  width: 200px;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding-top: 20px;

.el-radio {
  margin-right: 5px;
}

}
.mainCell {
  display: flex;
  align-items: center;
}

.fixedCell {
  position: fixed;
  z-index: 99;
  right: 42px;
  background: #fff;
  display: flex;
  justify-content: space-between;
}

.mainRight {
  margin-left: 10px;
  flex: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow-y: auto;

.cellSpan {
  min-width: 80px;
  display: inline-block;
  margin-right: 10px;
}

}
.tabsBox {
  position: relative;
  // overflow-y: auto;
  height: 560px;


.el-tabs__item {
  padding: 0 10px;
}

}
.addTab {
  position: absolute;
  right: 6px;
  top: 3px;
  z-index: 20;
}

.mainCenter {
  display: flex;
  flex: 1;
  height: 100%;
}

.costBox {
  width: 100%;
  height: 60px;
  background: #fff;
  position: absolute;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.centerLeft {
  flex: 1;
  // display: flex;
  flex-direction: column;
  position: relative;
  overflow-y: auto;
}

.preTabs {
  height: 100%;
  // display: flex;
  flex-direction: column;

.el-tab-pane {
  height: auto !important;
}

}

.settlementTabs {
  flex: 1;
  width: 100%;

.el-tab-pane {
  height: 100%;
}

.el-tabs__content {
  height: 100%;
}

}
.centerRight {
  width: 300px;
  margin-left: 10px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.RP {
  color: #409EFF;
  font-size: 20px;
  margin-bottom: 5px;
}

.centerRightTitle {
  color: #409EFF;
}

.basicUl {
  border-top: 1px solid #e5e5e5;
  border-left: 1px solid #e5e5e5;
  display: flex;
  flex-wrap: wrap;

li {
  border-bottom: 1px solid #e5e5e5;
  border-right: 1px solid #e5e5e5;
  width: 100%;
  min-height: 38px;
  /* line-height: 38px;
        text-indent: 5px; */
  font-size: 14px;
  display: flex;
  align-items: center;
  padding: 5px;
  box-sizing: border-box;
}

}
}
</style>

<style lang="scss">
#tab-more {

.el-icon-close {
  display: none;
}

}
.settlementTabs {

.el-tabs__content {
  height: 90%;
}

}
.preTabs {

.el-tabs__content {
  flex: 1;
  overflow-y: auto;
  padding: 5px 0 5px 5px;
}

}
.centerDialog {

.el-dialog__body {
  max-height: calc(100vh - 100px) !important;
  padding: 0 20px;
}

}
::-webkit-scrollbar {
  height: 20px;
}

.diagonal-header {
  background-image: linear-gradient(-45deg, #fff 50%, #eef1f6 50%), linear-gradient(45deg, #fff 50%, #eef1f6 50%);
  background-size: 100% 1px;
  background-position: 0% 0%, 100% 0%;
  background-repeat: no-repeat;
}
</style>

