<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"
                        :picker-options="pickerOptions"
                        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" 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.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>
                        <el-button v-loading="loadingone" size="small"
                                   @click="open(6)"
                                   type="primary">挂号
                        </el-button>


                        <el-button size="small" @click="open(5)" type="primary"
                                   v-if="this.radio == 2  && this.hisPatientInfo.id > 0 && this.order.id > 0 &&  this.order.order_status == 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
                                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>
                                        <div class="tabsBox" v-for="items,index in big_prescriptions" :key="index">
                                            <div style="height: calc(100% - 60px);">


                                                <el-tabs class="preTabs" v-model="editableTabsValue" type="border-card"
                                                         @tab-click="tabclickEvent">
                                                    <!--<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="openDialog(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>
                                                            <!--<div>{{ items.curPrescriptions.order.order_status}}</div>-->
                                                            <!--<div>{{ items.prescriptions[0].order.order_status}}</div>-->


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

                                                <span>个人账户金额：<span style="color:red;">{{ items.curPrescriptions.order.account_price?items.curPrescriptions.order.account_price:''}}元</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" :validate-event="is_Name">
                                                <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" :validate-event="is_Name">
                                                <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>

                                    </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"
                                                :picker-options="pickerOptions"
                                                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-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button> -->
                                                <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>
                                                    <div style="margin-bottom:10px;float: right">

                                                        <div>

                                                            <el-button
                                                                    v-if="(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)" type="primary"-->
                                                            <!--&gt;撤销明细-->
                                                            <!--</el-button>-->

                                                            <el-button v-loading="loadingtwo"
                                                                       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:getTotalFour(items.month_prescriptions)?getTotalFour(items.month_prescriptions):'' }}元</span></span>
                                                <span>基金支付金额：<span style="color:red;">{{ items.curMonthPrescriptions.order.hifp_pay?items.curMonthPrescriptions.order.hifp_pay:''}}元</span></span>
                                                <span>个人账户支付金额：<span style="color:red;">{{ items.curMonthPrescriptions.order.acct_pay?items.curMonthPrescriptions.order.acct_pay:''}}元</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:''}}元</span></span>
                                                <span v-if="hisPatientInfo.balance_accounts_type == 2">个人支付金额：<span
                                                        style="color:red;">{{ items.curMonthPrescriptions.order.medfee_sumamt}}元</span></span>


                                                <span>个人账户金额：<span style="color:red;">{{ items.curMonthPrescriptions.order.account_price?items.curMonthPrescriptions.order.account_price:''}}元</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" :validate-event="is_Name">
                                                <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" :validate-event="is_Name">
                                                <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>

                                    </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-tabs>


                </div>
            </div>
        </div>
        <el-dialog
                title="提示"
                :visible.sync="dialogVisible"
                width="30%"
        >
            <span>是否修改医疗类型</span>
            <el-select 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="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>

    </div>

</template>


<script>
  import axios from 'axios'

  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 { getPatientInformation, getPatientList } from '@/api/project/project'
  import {
    changeMedType,
    getChargeHisPatientInfo,
    getChargeHisPatientList,
    getDayOrMonthHisPrescription,
    getInitData,
    getSchedulePatientList,
    preSettle,
    Refund,
    refunddetail,
    refundNumber,
    register,
    upload,
    getMonthCharge
  } 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'

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

    },
    data() {
      return {
        temp_med_type: '',
        dialogVisible: false,
        pwdFormVisible: false,
        pwd: '000000',
        form: {
          p_type: '',
          sick_type: '',
          diagnosis: [],
          medical_care: ''
        },
        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: '新冠肺炎门诊' },
        //   { value: '1111', label: '精一' },
        //   { value: '1112', label: '精二' }
        // ],

        register: [
          { value: 11, label: '普通门诊' },
          // { value: 12, label: '门诊挂号' },
          // { value: 13, label: '急诊' },
          { value: 14, label: '门诊特殊病' },
          // { value: 15, label: '门诊统筹' },
          // { value: 16, label: '门诊慢性病' },
          // { value: 21, label: '普通住院' }

        ],
        register_two: [
          { value: '11', label: '普通门诊' },
          // { value: '12', label: '门诊挂号' },
          // { value: '13', label: '急诊' },
          { value: '14', label: '门诊特殊病' },
          // { value: '15', label: '门诊统筹' },
          // { value: '16', label: '门诊慢性病' },
          // { value: '21', 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'),
        curMonthPrescriptions: 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: [],
        check: 11,
        month_prescriptions: [],
        med_radio: '',
        record_date: '',
        tableData: [],
        editableTabsValue: '处方1',
        loadingone: false,
        editableTabs: [{
          title: '处方1',
          name: '1'
        }],
        tabIndex: 1,
        hisPatientInfo: {},
        loadingtwo: false,
        patientTableData: [{
          name: '杨美英',
          mdtrt_id: '1709946'
        }],
        patientInfo: { id: 0 },
        doctor: {},
        total: 0,
        state: '未收费',
        radio: 1,
        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,

        sick: [],
        diagnoses: [],

        department: [],
        all_patient: [],

        temp_prescriptions: null,

        temp_ids: '',

        other_prescriptions: [],
        newLoading:false

      }
    },
    created() {
      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()
      this.record_date =
        nowYear +
        '-' +
        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
        '-' +
        (nowDay < 10 ? '0' + nowDay : nowDay)

      this.getInitData()
      //获取患者信息
      this.getPatientList()
    },
    methods: {
      changeTimeTwo() {
        this.getPatientList()
      },
      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)
                } else {
                  that.$refs.charge.show(that.getTotalFour(that.other_prescriptions), that.currentOrder)
                }
              }

            }
          })
          .catch(function(error) {

          })
      },
      openDialog(item) {
        this.dialogVisible = true
        this.temp_prescriptions = item
      },
      comfirmChangeMedType() {
        let params = {
          id: this.temp_prescriptions.id,
          med_type: this.temp_med_type.toString()
        }
        changeMedType(params).then(response => {
          if (response.data.state == 1) {
            this.changeRadioAndPatient(1)
            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) {
        let params = {
          patient_id: this.patientInfo.id,
          start_time: val,
          end_time: this.other_end_time,
          p_type: 2,
          type: this.radio

        }
        getDayOrMonthHisPrescription(params).then(response => {
          if (response.data.state == 1) {
            this.month_prescriptions = []
            this.setMonthPrescription(response.data.data.day_prescription)
            this.curMonthPrescriptions = this.month_prescriptions[0]

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

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

        }
        getDayOrMonthHisPrescription(params).then(response => {
          if (response.data.state == 1) {
            this.month_prescriptions = []
            this.setMonthPrescription(response.data.data.day_prescription)
            this.curMonthPrescriptions = this.month_prescriptions[0]

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

      }, chargeConfirm(form) {
        this.newLoading = true
        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['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 {
          form['start_time'] = this.other_start_time
          form['end_time'] = this.other_end_time
          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 {
              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
            }
          })

        } 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.newLoading = false
                  }).catch(() => {
                    that.newLoading = false
                  })

                } else {
                  that.changeRadioAndPatient(2)
                  that.radio = 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) {
            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.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 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

                }
                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

                }

                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

                } 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
                }

                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

          }
        })

      },
      getDayPatientList() {

        let params = {
          'record_date': this.record_date
        }
        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
            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
        }
        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
            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() {
        if (this.activeName == 'first') {
          this.getPatientList()
        } else if (this.activeName == 'second') {
          // this.getMonthPatientList()
          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 == 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++) {
                    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.diagnoses.length == 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
              this.setMonthPrescription(response.data.data.month_prescriptions)

            }
          })


        }
      },
      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

      },
      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
        }
      },
      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 != 10088) {
              this.pwdFormVisible = true
              this.pwd = ''
            } else {
              if (this.activeName == 'first') {
                this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder)
              } else {
                this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder)
              }

            }
          } else {
            if (this.activeName == 'first') {
              this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder)
            } else {
              this.$refs.charge.show(this.getTotalFour(prescriptions), this.currentOrder)
            }
          }

        } 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.$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['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 {
            form['start_time'] = this.other_start_time
            form['end_time'] = this.other_end_time
            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 == 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 {
            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
          }
          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) {
            })
        }
      },
      choosePatient() {
        this.radioStatus = id
        this.getPatientList()
      }, changeRadioAndPatient(id) {
        let params = {
          'record_date': this.record_date
        }

        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])
            }
          }
        })
      }, changeRadio(id) {
        let temp_id = id
        this.radio = id
        let params = {
          'record_date': this.record_date
        }
        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

            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)

          }

        })

      }, 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)
      },
      //患者列表
      getPatientList() {
        let params = {
          'record_date': this.record_date,
          'type': this.radio
        }
        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
            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 = []

        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 = []

          let additions_ids = []
          let addition_month_prescriptions = {
            addition: []

          }
          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])
                }

              } 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])
                }
              }
              //附加收费
              for (let a = 0; a < month_prescriptions[i].addition.length; a++) {
                let obj = {
                  id: month_prescriptions[i].addition[a].item_id,
                  price: month_prescriptions[i].addition[a].price

                }
                additions_ids.push(obj)
                addition_month_prescriptions.addition.push(month_prescriptions[i].addition[a])

              }
              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 + 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)
            }
          }

          let p1 = {
            name: this.getPName(big_prescriptions[y].med_type, 1),
            advices: drugs,
            project: [],
            type: 1,
            addition: additions,
            order: big_prescriptions[y].order
          }
          let p2 = {
            name: this.getPName(big_prescriptions[y].med_type, 2),
            type: 2,
            project: projects,
            advices: [],
            addition: [],
            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

        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])
        }
      },
      getPName(med_type, index) {
        var med_type = parseInt(med_type)

        switch (med_type) {
          case 11:
            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
        }
      }, 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 = []

        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
          }
        }
      },
      // 获取患者的基本信息
      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++) {
                    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.diagnoses.length == 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
              // this.setMonthPrescription(response.data.data.month_prescriptions)

              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++) {
                      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,
                        medical_insurance_number: prescription.advices[b].med_list_codg

                      }
                      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
                      }

                      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

                      } 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
                      }

                      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.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++) {
                    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.diagnoses.length == 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
              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: 450px;


    .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;

    .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;
    }

    }
</style>

