<template>
  <div id="user-edit-group-advice">
    <el-dialog
      title="新增医嘱"
      :visible.sync="groupAddFormVisible"
      width="700px"
    >
      <el-form
        ref="groupForm"
        :rules="groupRules"
        :model="groupForm"
        label-width="90px"
      >
        <el-row>
          <el-col :span="12">
            <el-form-item label="医嘱类型 :" required prop="advice_type">
              <el-input value="临时" disabled></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="12">
            <el-form-item
              label="开始时间 :"
              required
              prop="start_time"
              style="width:100%;"
            >
              <el-date-picker
                type="datetime"
                format="yyyy-MM-dd HH:mm"
                value-format="yyyy-MM-dd HH:mm"
                placeholder="选择时间"
                v-model="groupForm.start_time"
                style="width:100%;"
              ></el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>

        <el-form-item label="备注 :">
          <el-input type="textarea" v-model="groupForm.remark"></el-input>
        </el-form-item>

        <el-row>
          <el-col :span="12">
            <el-form-item label="开嘱医生 :">
              <span>{{ adminusername }} </span>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="开嘱时间 :">
              <span>{{ groupForm.advice_date }} </span>
            </el-form-item>
          </el-col>
        </el-row>

        <el-row>
          <el-col :span="2">
            &nbsp;&nbsp;
          </el-col>
          <el-col :span="5">
            <el-button
              :disabled="
                $store.getters.xt_user.subscibe.state == 3 ? true : false
              "
              round
              @click="openAdviceTemplate()"
              >选择医嘱模板
            </el-button>
          </el-col>
          <el-col :span="5">
            <el-button
              :disabled="
                $store.getters.xt_user.subscibe.state == 3 ? true : false
              "
              round
              @click="openGroupAdvice(0)"
              >新增医嘱内容
            </el-button>
          </el-col>
          <el-col :span="5">
            <el-button
              :disabled="
                $store.getters.xt_user.subscibe.state == 3 ? true : false
              "
              round
              @click="openGroupAdvice(1)"
              >修改医嘱内容
            </el-button>
          </el-col>
          <el-col :span="5">
            <el-button
              :disabled="
                $store.getters.xt_user.subscibe.state == 3 ? true : false
              "
              round
              @click="openDeleteGroupAdvice()"
              >删除医嘱内容
            </el-button>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-table
              id="user-edit-advice-name-table"
              :data="groupForm.adviceNames"
              border
              fit
              highlight-current-row
              :row-class-name="groupClassName"
              @current-change="selectGroupAdvice"
              style="width: 100%;margin-top: 10px;margin-bottom: 10px;"
              :row-key="getRowKey"
              ref="advicenametable"
              :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"
            >
              <el-table-column
                label="医嘱名称"
                property="advice_name"
                style="word-break: keep-all;white-space:nowrap;"
                align="center"
              ></el-table-column>

              <el-table-column label="药品规格" align="center">
                <template slot-scope="scope">
                  <span v-if="scope.row.advice_desc"
                    >{{ scope.row.advice_desc
                    }}{{ scope.row.drug_spec_unit }}</span
                  >
                </template>
              </el-table-column>
              <!-- <el-table-column label="药品规格*数量" min-width="80" property="drug_spec" align="center">
                <template slot-scope="scope">
                  <span
                    v-if="scope.row.drug_spec!=0"
                  >{{scope.row.drug_spec}}{{scope.row.drug_spec_unit}}</span>
                  <span
                    vf-i="scope.row.prescribing_number!=0"
                  >*{{scope.row.prescribing_number}}{{scope.row.prescribing_number_unit}}</span>
                </template>
              </el-table-column> -->
              <el-table-column
                label="开药数量"
                min-width="80"
                property="prescribing_number"
                align="center"
              >
                <template slot-scope="scope">
                  <span v-if="scope.row.prescribing_number != 0"
                    >{{ scope.row.prescribing_number
                    }}{{ scope.row.prescribing_number_unit }}</span
                  >
                </template>
              </el-table-column>
              <el-table-column
                label="单次用量"
                min-width="80"
                property="single_dose"
                align="center"
              >
                <template slot-scope="scope">
<!--                  //从1到20-->
                  <span v-if="scope.row.single_dose != 0" @click="lili(scope.row)">
                   {{ scope.row.single_dose}}
                   <span v-if="scope.row.single_dose_unit >0"> {{getUnit(scope.row.single_dose_unit )}}</span>
                   <span v-else>{{ scope.row.single_dose_unit }}</span>
                    <!-- <span v-if="scope.row.single_dose_unit == 1" >{{ scope.row.single_dose}}g</span>
                    <span v-else-if="scope.row.single_dose_unit == 2" >{{ scope.row.single_dose}}mg</span>
                    <span v-else-if="scope.row.single_dose_unit == 3" >{{ scope.row.single_dose}}u</span>
                    <span v-else-if="scope.row.single_dose_unit == 4" >{{ scope.row.single_dose}}ml</span>
                    <span v-else-if="scope.row.single_dose_unit == 5" >{{ scope.row.single_dose}}万U</span>
                    <span v-else-if="scope.row.single_dose_unit == 6" >{{ scope.row.single_dose}}枚</span>
                    <span v-else-if="scope.row.single_dose_unit == 7" >{{ scope.row.single_dose}}粒</span>
                    <span v-else-if="scope.row.single_dose_unit == 8" >{{ scope.row.single_dose}}片</span>
                    <span v-else-if="scope.row.single_dose_unit == 9" >{{ scope.row.single_dose}}支</span>
                    <span v-else-if="scope.row.single_dose_unit == 10" >{{ scope.row.single_dose}}ug</span>
                    <span v-else-if="scope.row.single_dose_unit == 11" >{{ scope.row.single_dose}}iu</span>
                    <span v-else-if="scope.row.single_dose_unit == 12" >{{ scope.row.single_dose}}包</span>
                    <span v-else-if="scope.row.single_dose_unit == 13" >{{ scope.row.single_dose}}袋</span>
                    <span v-else-if="scope.row.single_dose_unit == 14" >{{ scope.row.single_dose}}万</span>
                    <span v-else-if="scope.row.single_dose_unit == 15" >{{ scope.row.single_dose}}万iu</span>
                    <span v-else-if="scope.row.single_dose_unit == 16" >{{ scope.row.single_dose}}丸</span>
                    <span v-else-if="scope.row.single_dose_unit == 17" >{{ scope.row.single_dose}}盒</span>
                    <span v-else-if="scope.row.single_dose_unit == 18" >{{ scope.row.single_dose}}瓶</span>
                    <span v-else-if="scope.row.single_dose_unit == 19" >{{ scope.row.single_dose}}瓶(袋)</span>
                    <span v-else-if="scope.row.single_dose_unit == 20" >{{ scope.row.single_dose}}次</span>
                    <span v-else >{{ scope.row.single_dose}}{{ scope.row.single_dose_unit }}</span> -->
                  </span>


                </template>
              </el-table-column>
              <el-table-column
                label="给药途径"
                min-width="80"
                property="delivery_way"
                align="center"
              >
                <template slot-scope="scope">
                  <span v-if="scope.row.parent_row == 0">{{
                    scope.row.delivery_way
                  }}</span>
                </template>
              </el-table-column>
              <el-table-column
                label="执行频率"
                min-width="80"
                property="execution_frequency"
                align="center"
              >
                <template slot-scope="scope">
                  <span v-if="scope.row.parent_row == 0">{{scope.row.execution_frequency}}</span>
                </template>
              </el-table-column>

              <el-table-column label="医嘱嘱托" min-width="80" property="remark" align="center">-->
              <template slot-scope="scope">
              <span v-if="scope.row.parent_row==0">{{scope.row.remark}}</span>
              </template>
             </el-table-column>
            </el-table>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button
          :disabled="
            $store.getters.xt_user.subscibe.state == 3 ||
            groupForm.adviceNames.length == 0
              ? true
              : false
          "
          type="primary"
          @click="submitgroupAdvice('groupForm')"
          >保 存
        </el-button><!--bug2-->
      </div>
    </el-dialog>

    <el-dialog
      title="选择医嘱模板"
      :close-on-click-modal="false"
      :visible.sync="templateFormVisible"
      width="72%"
    >
      <el-row :gutter="20">
        <el-col :span="8">
          <el-table
            :data="adviceTemplates"
            ref="templatetable"
            border
            :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"
            highlight-current-row
            @current-change="templateTableChange"
            style="width: 100%"
          >
            <el-table-column prop="name" align="center" label="模板名称">
            </el-table-column>
          </el-table>
        </el-col>
        <el-col :span="16">
          <el-table
            id="dialysis-add-select-template-table"
            :data="selectedTemp.list"
            border
            :span-method="spanselecttable"
            @select="selectAdvice"
            @select-all="selectAllTemplateAdvice"
            @selection-change="changeAdvice"
            row-key="row_key"
            ref="selecttemplatetable"
            style="width: 100%"
            :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"
          >
            <el-table-column type="selection" align="center" width="55">
            </el-table-column>
            <el-table-column
              label="医嘱内容"
              property="advice_name"
              style="word-break: keep-all;white-space:nowrap;"
              align="center"
            ></el-table-column>
            <el-table-column label="药品规格" align="center">
              <template slot-scope="scope">
                <span v-if="scope.row.advice_desc">{{ scope.row.advice_desc}}{{ scope.row.drug_spec_unit }}</span>
              </template>
            </el-table-column>
            <el-table-column
              label="开药数量"
              min-width="80"
              property="prescribing_number"
              align="center"
            >
              <template slot-scope="scope">
                <span v-if="scope.row.prescribing_number != 0">{{ scope.row.prescribing_number}}{{ scope.row.prescribing_number_unit }}</span>
              </template>
            </el-table-column>
            <el-table-column
              label="单次用量"
              min-width="80"
              property="single_dose"
              align="center"
            >
              <template slot-scope="scope">
                <span v-if="scope.row.single_dose != 0">{{ scope.row.single_dose}}{{ scope.row.single_dose_unit }}</span>
              </template>
            </el-table-column>
            <el-table-column
              label="给药途径"
              min-width="80"
              property="delivery_way"
              align="center"
            >
              <template slot-scope="scope">
                <span v-if="scope.row.parent_row == 0">{{scope.row.delivery_way}}</span>
              </template>
            </el-table-column>

            <el-table-column
              label="执行频率"
              min-width="80"
              property="execution_frequency"
              align="center"
            >
              <template slot-scope="scope">
                <span v-if="scope.row.parent_row == 0">{{
                  scope.row.execution_frequency
                }}</span>
              </template>
            </el-table-column>
          </el-table>
        </el-col>
      </el-row>

      <div slot="footer" class="dialog-footer">
        <el-button @click="cancleDialog()">取消</el-button>
        <el-button
          :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
          type="primary"
          @click="newAddTempForm()"
          >保 存
        </el-button><!--bug1-->
      </div>
    </el-dialog>

    <el-dialog
      title="选择医嘱模板"
      :visible.sync="oldTemplateFormVisible"
      width="700px"
    >
      <el-form ref="templateForm" :rules="templateRules" :model="templateForm">
        <el-row>
          <el-col :span="24">
            <el-form-item prop="id">
              <el-select
                v-model="templateForm.id"
                filterable
                clearable
                placeholder="请选择(输入可搜索)"
                style="width:100%"
              >
                <el-option
                  v-for="item in adviceTemplates"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="templateFormVisible = false">取消</el-button>
        <el-button
          :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
          type="primary"
          @click="addTempForm('templateForm')"
          >保 存
        </el-button>
      </div>
    </el-dialog>

    <el-dialog
      :title="nameFormTitle"
      :visible.sync="nameFormVisible"
      width="854px"
    >
      <el-form
        ref="nameForm"
        :rules="nameRules"
        :model="nameForm"
        label-width="90px"
      >
        <el-row>
          <el-col :span="24">
            <el-form-item label="医嘱内容 :" required prop="advice_name"><!--第一处-->
             <el-autocomplete
                style="width:100%;"
                class="inline-input"
                v-model="nameForm.advice_name"
                :fetch-suggestions="querySearch"
                placeholder="请输入内容"
                @select="handleSelect"
                @input="changeDrugName"
              ></el-autocomplete>
            </el-form-item>
            <!-- <div style="margin-left:120px;margin-top:-20px;font-size:12px;color:red">
               库存不足50
            </div> -->

          </el-col>

        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="药品规格 :" prop="advice_desc">
              <el-col :span="8">
                <el-autocomplete
                  style="width:100px;"
                  class="inline-input"
                  v-model="nameForm.advice_desc"
                  :fetch-suggestions="querySearch1"
                  placeholder="请输入内容"
                  @select="handleSelect1"
                  @input="changeDrugDesc"
                ></el-autocomplete>
              </el-col>
              <el-col class="line" :span="2">&nbsp;</el-col>
              <el-col :span="14">
                <el-select
                  v-model="nameForm.drug_spec_unit"
                  filterable
                  clearable
                  allow-create
                  placeholder="选择"
                >
                  <el-option
                    v-for="item in unitsOption"
                    :key="item.id"
                    :label="item.name"
                    :value="item.name"
                  ></el-option>
                </el-select>
              </el-col>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="开药数量 :" prop="prescribing_number">
              <el-col :span="8">
                <el-input v-model="nameForm.prescribing_number"></el-input>
              </el-col>
              <el-col class="line" :span="2">&nbsp;</el-col>
              <el-col :span="14">
                <el-select
                  v-model="nameForm.prescribing_number_unit"
                  filterable
                  clearable
                  allow-create
                  placeholder="选择"
                >
                  <el-option
                    v-for="item in unitsOption"
                    :key="item.id"
                    :label="item.name"
                    :value="item.name"
                  ></el-option>
                </el-select>
              </el-col>
            </el-form-item>
          </el-col>

          <el-col :span="12">
            <el-form-item label="单次用量 :" prop="single_dose">
              <el-col :span="8">
                <el-input v-model="nameForm.single_dose"></el-input>
              </el-col>
              <el-col class="line" :span="2">&nbsp;</el-col>
              <el-col :span="14">
                <el-select
                  v-model="nameForm.single_dose_unit"
                  filterable
                  clearable
                  allow-create
                  placeholder="选择"
                >
                  <el-option
                    v-for="item in unitsOption"
                    :key="item.id"
                    :label="item.name"
                    :value="item.id"
                  ></el-option>
                </el-select>
              </el-col>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="给药途径 :" prop="delivery_way">
              <el-select
                v-model="nameForm.delivery_way"
                filterable
                clearable
                allow-create
                :disabled="isChild"
                placeholder="请选择(输入可搜索)"
                style="width:100%"
              >
                <el-option
                  v-for="item in deliveryWayOptions"
                  :key="item.id"
                  :label="item.name"
                  :value="item.name"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>

          <el-col :span="12">
            <el-form-item label="执行频率 :" prop="execution_frequency">
              <el-select
                v-model="nameForm.execution_frequency"
                filterable
                clearable
                allow-create
                :disabled="isChild"
                placeholder="请选择(输入可搜索)"
                style="width:100%"
              >
                <el-option
                  v-for="item in executionFrequencyOptions"
                  :key="item.id"
                  :label="item.name"
                  :value="item.name"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
       <el-row>
       <el-col :span="12">
      <el-form-item label="医嘱嘱托 :" prop="delivery_way">
     <el-input v-model="nameForm.remark"></el-input>
      </el-form-item>
      </el-col>
    </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="nameFormVisible = false">取消</el-button>
        <el-button
          :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
          type="primary"
          @click="submitNameForm('nameForm')"
          >保 存
        </el-button>
      </div>
    </el-dialog>


    <el-dialog
      title="提示"
      :visible.sync="infoDialogVisible"
      width="30%">
      <span>
        <el-form>
          <el-row>
            <span>申请日期:</span>
            <span>
                <el-date-picker
                  type="datetime"
                  format="yyyy-MM-dd HH:mm"
                  value-format="yyyy-MM-dd HH:mm"
                  placeholder="选择时间"
                  v-model="selected_date"
              ></el-date-picker>
            </span>
          </el-row>
          <el-row>
            <span>备注:</span>
            <span>
                <el-input v-model="remark" style="width:200px"></el-input>
            </span>
          </el-row>
        </el-form>

      </span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="infoDialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="saveInformation">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import {
  CreateDoctorAdvice,
  CreateGroupAdvice,
  DeleteDoctorAdvice,
  DeleteGroupAdvice,
  EditDoctorAdvice,
  getAdviceConfig,
  getDoctorAdviceList,
  StopDoctorAdvice
} from "@/api/advice";
import { saveInformation } from "@/api/dialysis";
import { getDataConfig } from '@/utils/data'
import {getSelfMedicalList,getDrugDescByDrugName } from "@/api/drug/drug"
import { duration } from 'moment';
export default {
  name: "AddGroupAdvice",
  data() {
    return {
      editRowKey: 0,
      oldTemplateFormVisible: false,
      templateFormVisible: false,
      groupAddFormVisible: false,
      nameFormVisible: false,
      groupSelectRow: null,
      nameFormTitle: "",
      isChild: false,
      isEdit: false,
      adminusername: "",
      groupRules: {
        advice_type: [{ required: true, message: "请选择医嘱类型" }],
        advice_date: [{ required: true, message: "请选择医嘱时间" }],
        start_time: [{ required: true, message: "请选择开始时间" }],
        advice_name: [{ required: true, message: "请填写医嘱名称" }],
        advice_doctor: [{ required: true, message: "请选择开嘱医生" }]
      },
      nameRules: {
        advice_name: [{ required: true, message: "请填写医嘱内容" }]
      },
      templateRules: {
        id: [{ required: true, message: "请选择医嘱模板" }]
      },
      templateForm: { id: "" },
      nameForm: {
        advice_name: "",
        advice_desc: "",
        single_dose: "",
        single_dose_unit: "",
        drug_spec: "",
        drug_spec_unit: "",
        prescribing_number: "",
        prescribing_number_unit: "",
        delivery_way: "",
        execution_frequency: "",
        remark: "",
        isEdit: 0,
        index: 0,
        id: 0,
        children: [],
        drug_id:0,
        way:0,
        drug_name_id:0,
      },
      submitGroupForm: {
        advice_type: "",
        advice_date: "",
        start_time: "",
        adviceNames: [],
        advice_doctor: "",
        remark: "",
        parent_id: 0
      },
      groupForm: {
        advice_type: "",
        advice_date: "",
        start_time: "",
        adviceNames: [],
        advice_doctor: "",
        remark: "",
        parent_id: 0,
        drug_id:"",
        way:"",
        drug_name_id:0,
      },
      selectedTemp: { id: 0, name: "", org_id: 0, list: [], rows: [] },
      selectedTemplate: [],
      allSelectedTemplate: [],
      medicals:[],
      drugSpec:[],
      all_drug:[],
      current_drug_name:"",
      current_drug_spec: "",
      drug_id: 0,
      drug_name_id:"",
      src_type:"",
      private_drug_config:{},
      units:[],
      infoDialogVisible:false,
      selected_date:"",
      remark:""
    };
  },
  props: {
    patientID: 0,
    adviceType: 0,
    rowKey: 0,
    adviceTemplates: {
      type: Array,
      default: function() {
        return [];
      }
    },
    recordDate: "",
    adviceTypeOptions: {
      type: Array,
      default: function() {
        return [];
      }
    },
    deliveryWayOptions: {
      type: Array,
      default: () => []
    },
    unitsOption: {
      type: Array,
      default: function() {
        return [];
      }
    },
    executionFrequencyOptions: {
      type: Array,
      default: function() {
        return [];
      }
    },
    adviceTemplateMaps: {
      type: Object,
      default: function() {
        return {};
      }
    },
    adviceTableData: {
      type: Array,
      default: function() {
        return [];
      }
    },
    predialysis: {
      type: Object,
      default: () => {
        return { id: 0 }
      }
    },
    schedulePatient:{
      type: Object,
      default: () => {
        return { id: 0 }
      }
    }
  },
  methods: {
    lili(val){
      console.log("=3=val=3=",val)
    },
    submitgroupAdvice(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
         var submitForm = {
            advice_type: this.groupForm.advice_type,
            advice_date: this.groupForm.advice_date,
            start_time: this.groupForm.start_time,
            adviceNames: [],
            advice_doctor: this.groupForm.advice_doctor,
            remark: this.groupForm.remark,
            parent_id: this.groupForm.parent_id,
            id:this.groupForm.id,

          };
          var adviceNames = [];
          for (const index in this.groupForm.adviceNames) {
            adviceNames.unshift(this.groupForm.adviceNames[index]);
          }
          for(let i=0;i<adviceNames.length;i++){
            adviceNames[i].template_id = "888888888"
          }
          submitForm.adviceNames = adviceNames;
          let mode = "1";

          if(this.private_drug_config != null&& this.private_drug_config.drug_start == 1){

             for(let index=0;index<submitForm.adviceNames.length;index++){
                for(let i=0;i<this.medicals.length;i++){
                   if(submitForm.adviceNames[index].children.length >0){
                      for(let y=0;y<submitForm.adviceNames[index].children.length;y++){
                          if(submitForm.adviceNames[index].children[y].drug_id == this.medicals[i].drug_name_id){
                             submitForm.adviceNames[index].children[y].drug_name_id = this.medicals[i].drug_name_id
                             submitForm.adviceNames[index].children[y].way = 2
                          }
                      }
                   }
                   if(submitForm.adviceNames[index].children.length == 0){
                     if(submitForm.adviceNames[index].drug_id == this.medicals[i].drug_name_id){
                        submitForm.adviceNames[index].way = 2
                        submitForm.adviceNames[index].drug_name_id = this.medicals[i].drug_name_id
                    }
                   }

                }
             }
          }

          CreateGroupAdvice(this.patientID, 0, submitForm, mode).then(
            response => {
              if (response.data.state == 0) {
                this.$message.error(response.data.msg);
                if(response.data.code == 600000008){
                 this.infoDialogVisible = true
                }
                return false;
              } else {
                this.$notify({
                  title: "成功",
                  message: "新增成功",
                  type: "success",
                  duration: 2000
                });

                var childMap = {};
                for (const index in response.data.data.advices) {
                  if (response.data.data.advices[index].parent_id == 0) {
                    continue;
                  }
                  if (
                    response.data.data.advices[index].parent_id in childMap ===
                    false
                  ) {
                    childMap[response.data.data.advices[index].parent_id] = [];
                  }
                  childMap[response.data.data.advices[index].parent_id].unshift(
                    response.data.data.advices[index]
                  );
                }
                var parentArr = [];
                for (const index in response.data.data.advices) {
                  if (response.data.data.advices[index].parent_id > 0) {
                    continue;
                  }
                  parentArr.push(response.data.data.advices[index]);
                }

                for (const index in parentArr) {
                  if (parentArr[index].id in childMap) {
                    for (const j in childMap[parentArr[index].id]) {
                      this.adviceTableData.unshift(
                        childMap[parentArr[index].id][j]
                      );
                    }
                  }
                  this.adviceTableData.unshift(parentArr[index]);
                }

                // var alen = response.data.data.advices.length
                // for (let index = alen-1; index >=0; index--) {
                //   this.adviceTableData.unshift(response.data.data.advices[index]);
                // }

                this.resetForm(formName);
                this.groupAddFormVisible = false;
                this.$parent.getDialysisScheduleDetail()
                return false;
              }
            }
          );
        }
      });
    },

    openDeleteGroupAdvice() {
      if (this.groupSelectRow === null) {
        this.$message.error("未选择要删除的医嘱内容");

        return;
      }
      var content = "";
      if (this.groupSelectRow.children.length > 0) {
        content = "确认删除此医嘱内容,包括它的子药？";
      } else {
        content = "确认删除此医嘱内容？";
      }
      var isChild = !!this.groupSelectRow.parent_row;
      var title = isChild ? "删除子药内容" : "删除医嘱内容";
      var msg = isChild ? "确认删除此子药内容？" : content;
      this.$confirm(msg, title, {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          if (isChild) {
            for (const index in this.groupForm.adviceNames) {
              if (
                this.groupForm.adviceNames[index].row_key ==
                this.groupSelectRow.parent_row
              ) {
                for (const j in this.groupForm.adviceNames[index].children) {
                  if (
                    this.groupForm.adviceNames[index].children[j].row_key ==
                    this.groupSelectRow.row_key
                  ) {
                    this.groupForm.adviceNames[index].children.splice(j, 1);
                    this.$set(
                      this.groupForm.adviceNames,
                      index,
                      this.groupForm.adviceNames[index]
                    );
                    break;
                  }
                }
              }
            }
          } else {
            for (const index in this.groupForm.adviceNames) {
              if (
                this.groupForm.adviceNames[index].row_key ==
                this.groupSelectRow.row_key
              ) {
                this.groupForm.adviceNames.splice(index, 1);
                break;
              }
            }
          }
        })
        .catch(() => {});
    },
    submitNameForm(formName) {
        console.log("forname",this.nameForm)
       if(this.src_type == ""){
          this.nameForm.way = 1
          this.nameForm.drug_id = this.drug_id
          this.nameForm.drug_name_id = 0
       }

       if(this.src_type == 2){ //自备药
          var arr = this.nameForm.advice_name.split("(自备药)")
          this.nameForm.advice_name = arr[0]
       }


      var _this = this;
      this.$refs[formName].validate(valid => {
        if (valid) {
          if (_this.nameForm.isEdit) {
            var ale = _this.groupForm.adviceNames.length;
            if (_this.isChild) {
              for (let index = 0; index < ale; index++) {
                if (_this.groupSelectRow.parent_row ==_this.groupForm.adviceNames[index].row_key) {
                  var cle = _this.groupForm.adviceNames[index].children.length;

                  var children = _this.groupForm.adviceNames[index].children;
                  for (let j = 0; j < ale; j++) {
                    if (_this.groupSelectRow.row_key == children[j].row_key) {
                      _this.groupForm.adviceNames[index].children[j].advice_name = _this.nameForm.advice_name;
                      _this.groupForm.adviceNames[index].children[j].advice_desc = _this.nameForm.advice_desc;
                      _this.groupForm.adviceNames[index].children[j].single_dose = "" + _this.nameForm.single_dose;
                      _this.groupForm.adviceNames[index].children[j].single_dose_unit = _this.nameForm.single_dose_unit;
                      _this.groupForm.adviceNames[index].children[j].drug_spec = "" + _this.nameForm.drug_spec;
                      _this.groupForm.adviceNames[index].children[j].drug_spec_unit = _this.nameForm.drug_spec_unit;
                      _this.groupForm.adviceNames[index].children[j].prescribing_number ="" + _this.nameForm.prescribing_number;
                      _this.groupForm.adviceNames[index].children[j].prescribing_number_unit = _this.nameForm.prescribing_number_unit;
                      _this.groupForm.adviceNames[index].children[j].delivery_way = _this.nameForm.delivery_way;
                      _this.groupForm.adviceNames[index].children[j].execution_frequency =_this.nameForm.execution_frequency;
                      _this.groupForm.adviceNames[index].children[j].remark =_this.nameForm.remark;
                      // _this.groupForm.adviceNames[index].children[j].drug_id = _this.nameForm.drug_id;
                      // _this.groupForm.adviceNames[index].children[j].way = _this.nameForm.way;
                      // _this.groupForm.adviceNames[index].children[j].drug_name_id = _this.nameForm.drug_name_id;
                      _this.$set(_this.groupForm.adviceNames[index].children,j,_this.groupForm.adviceNames[index].children[j]

                      );
                      break;
                    }
                  }
                }
              }
            } else {
              for (let index = 0; index < ale; index++) {
                if ( _this.groupSelectRow.row_key ==_this.groupForm.adviceNames[index].row_key) {
                  _this.groupForm.adviceNames[index].advice_name =_this.nameForm.advice_name;
                  _this.groupForm.adviceNames[index].advice_desc =_this.nameForm.advice_desc;
                  _this.groupForm.adviceNames[index].single_dose ="" + _this.nameForm.single_dose;
                  _this.groupForm.adviceNames[index].single_dose_unit =_this.nameForm.single_dose_unit;
                  _this.groupForm.adviceNames[index].drug_spec = "" + _this.nameForm.drug_spec;
                  _this.groupForm.adviceNames[index].drug_spec_unit =_this.nameForm.drug_spec_unit;
                  _this.groupForm.adviceNames[index].prescribing_number ="" + _this.nameForm.prescribing_number;
                  _this.groupForm.adviceNames[index].prescribing_number_unit =_this.nameForm.prescribing_number_unit;
                  _this.groupForm.adviceNames[index].delivery_way =_this.nameForm.delivery_way;
                  _this.groupForm.adviceNames[index].execution_frequency =_this.nameForm.execution_frequency;
                  _this.groupForm.adviceNames[index].remark =_this.nameForm.remark;
                  // _this.groupForm.adviceNames[index].children[j].drug_id = _this.nameForm.drug_id;
                  // _this.groupForm.adviceNames[index].children[j].way = _this.nameForm.way;
                  // _this.groupForm.adviceNames[index].children[j].drug_name_id = _this.nameForm.drug_name_id;
                  _this.$set(
                    _this.groupForm.adviceNames,
                    index,
                    _this.groupForm.adviceNames[index]
                  );
                  break;
                }
              }
            }
          } else {
            if (_this.isChild) {
              _this.editRowKey++;
              _this.nameForm.row_key = _this.editRowKey;

              var ale = _this.groupForm.adviceNames.length;
              for (let index = 0; index < ale; index++) {
                if (_this.nameForm.parent_row ==_this.groupForm.adviceNames[index].row_key) {
                  _this.groupForm.adviceNames[index].children.push(_this.nameForm);
                  _this.$set(_this.groupForm.adviceNames,index,_this.groupForm.adviceNames[index]);
                  break;
                }
              }
            } else {
              _this.editRowKey++;
              _this.nameForm.row_key = _this.editRowKey;
              _this.groupForm.adviceNames.push(_this.nameForm);
            }
          }
          _this.nameFormVisible = false;
        }
      });
    },

    openGroupChild() {
      if (this.groupSelectRow === null) {
        this.$message.error("未选择医嘱内容,无法添加子药");

        return;
      } else if (this.groupSelectRow.parent_row > 0) {
        this.$notify.error({
          title: "错误",
          message: "子药不能添加子药"
        });
        return;
      }
      this.nameForm = {
        advice_name:"",
        advice_desc: "",
        single_dose: "",
        single_dose_unit: "",
        drug_spec: "",
        drug_spec_unit: "",
        prescribing_number: "",
        prescribing_number_unit: "",
        delivery_way: this.groupSelectRow.delivery_way,
        execution_frequency: this.groupSelectRow.execution_frequency,
        remark: "",
        isEdit: 0,
        index: 0,
        children: [],
        parent_row: this.groupSelectRow.row_key,
        id: 0
      };
      this.isChild = true;
      this.nameFormVisible = true;
      this.nameFormTitle = "添加子药内容";
    },
    openGroupAdvice(isEdit) {
      console.log("hhhahhdhahdhahddhhdhdhh",this.groupSelectRow)
      this.isChild = false;
      if (isEdit) {
        if (this.groupSelectRow === null) {
          this.$message.error("未选择要修改的医嘱内容");

          return;
        }
        if (this.groupSelectRow.parent_row) {
          this.isChild = true;
        }

        this.nameForm = {
          advice_name: this.groupSelectRow.advice_name,
          advice_desc: this.groupSelectRow.advice_desc,
          single_dose:
            this.groupSelectRow.single_dose != 0
              ? this.groupSelectRow.single_dose
              : "",
          single_dose_unit: this.groupSelectRow.single_dose_unit,
          drug_spec:
            this.groupSelectRow.drug_spec != 0
              ? this.groupSelectRow.drug_spec
              : "",
          drug_spec_unit: this.groupSelectRow.drug_spec_unit,
          prescribing_number:
            this.groupSelectRow.prescribing_number != 0
              ? this.groupSelectRow.prescribing_number
              : "",
          prescribing_number_unit: this.groupSelectRow.prescribing_number_unit,
          delivery_way: this.isChild ? "" : this.groupSelectRow.delivery_way,
          execution_frequency: this.isChild
            ? ""
            : this.groupSelectRow.execution_frequency,
          isEdit: 1,
          index: this.groupSelectRow.index,
          id: this.groupSelectRow.id,
          children: [],
          parent_row: this.groupSelectRow.parent_row,
          remark: this.groupSelectRow.remark,
          drug_name_id:this.groupSelectRow.drug_name_id,
          drug_id:this.groupSelectRow.drug_id,
          way:this.groupSelectRow.way
          // row_key:this.groupSelectRow.row_key,
        };
        this.nameFormTitle = "修改医嘱内容";
      } else {
        this.nameForm = {
          advice_name: "",
          advice_desc: "",
          single_dose: "",
          single_dose_unit: "",
          drug_spec: "",
          drug_spec_unit: "",
          prescribing_number: "",
          prescribing_number_unit: "",
          delivery_way: "",
          execution_frequency: "",
          isEdit: 0,
          index: 0,
          id: 0,
          remark: "",
          children: [],
          parent_row: 0
        };
        this.nameFormTitle = "新增医嘱内容";
      }
      this.nameFormVisible = true;
    },

    changeAdvice(selection) {
      this.selectedTemplate = selection;
    },
    selectAdvice(selection, row) {

      var adviceArray = this.adviceTemplateMaps[this.selectedTemp.id].DoctorAdviceTemplate;
      for (let y = 0; y < adviceArray.length; y++) {
        adviceArray[y].selection = false;
      }
      if (selection.length > 0) {
        for (let y = 0; y < adviceArray.length; y++) {
          for (let i = 0; i < selection.length; i++) {
            if (adviceArray[y].id == selection[i].advice_id) {
              adviceArray[y].selection = true;
            }
          }
        }
      }


      if (row.children.length > 0) {
        for (const index in row.children) {
          this.$refs.selecttemplatetable.toggleRowSelection(
            row.children[index]
          );
        }
      }

      // 下面两步的作用是为了上选中的数据的输出顺序不变
      for (const index in this.selectedTemp.list) {
        this.$refs.selecttemplatetable.toggleRowSelection(
          this.selectedTemp.list[index]
        );
        if (this.selectedTemp.list[index].children.length > 0) {
          for (const j in this.selectedTemp.list[index].children) {
            this.$refs.selecttemplatetable.toggleRowSelection(
              this.selectedTemp.list[index].children[j]
            );
          }
        }
      }

      for (const index in this.selectedTemp.list) {
        this.$refs.selecttemplatetable.toggleRowSelection(
          this.selectedTemp.list[index]
        );
        if (this.selectedTemp.list[index].children.length > 0) {
          for (const j in this.selectedTemp.list[index].children) {
            this.$refs.selecttemplatetable.toggleRowSelection(
              this.selectedTemp.list[index].children[j]
            );
          }
        }
      }
    },
    spanselecttable({ row, column, rowIndex, columnIndex }) {
      if (columnIndex == 0) {
        const _row = this.selectedTemp.rows[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col
        };
      }
    },
    calcselectedTemp() {
      var rowKeys = 0;
      for (const index in this.selectedTemp.list) {
        var pkey = rowKeys;
        this.selectedTemp.rows[rowKeys] = 1;
        if (this.selectedTemp.list[index].children.length > 0) {
          for (const childindex in this.selectedTemp.list[index].children) {
            rowKeys++;
            this.selectedTemp.rows[pkey] += 1;
            this.selectedTemp.rows[rowKeys] = 0;
          }
        }
        rowKeys++;
        this.$nextTick(function() {
          if (this.selectedTemp.list[index].selection) {
            this.$refs.selecttemplatetable.toggleRowSelection(
              this.selectedTemp.list[index]
            );
          }
        });
      }
    },
    templateTableChange(currentRow, oldCurrentRow) {

      this.selectedTemp = { id: 0, name: "", org_id: 0, list: [], rows: [] };
      if (currentRow == null) {
        return false;
      }
      this.selectedTemp.id = currentRow.id;
      this.selectedTemp.name = currentRow.name;
      this.selectedTemp.org_id = currentRow.org_id;
      if (this.selectedTemp.id in this.adviceTemplateMaps) {
        var mapid = this.selectedTemp.id;
        var thisRowKey = 0;
        for (const index in this.adviceTemplateMaps[mapid].DoctorAdviceTemplate) {
          thisRowKey++;
          var item = {
            advice_name: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_name,
            advice_desc: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_desc,
            single_dose:"" +this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose,
            single_dose_unit: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose_unit,
            drug_spec:"" +this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec,
            drug_spec_unit: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec_unit,
            prescribing_number:"" +this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number,
            prescribing_number_unit: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number_unit,
            delivery_way: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].delivery_way,
            execution_frequency: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].execution_frequency,
            selection: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].selection,
            advice_id: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].id,
            drug_id:this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_id,
            way:this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].way,
            drug_name_id:this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_name_id,
            isEdit: 0,
            id: 0,
            children: [],
            parent_row: 0,
            row_key: thisRowKey
          };
          if (
            "children" in
              this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index] &&
            this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].children
              .length > 0
          ) {
            var parentRow = thisRowKey;
            var children = this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[
              index
            ].children;
            for (const key in children) {
              thisRowKey++;
              var child = {
                advice_id: children[key].id,
                advice_name: children[key].advice_name,
                advice_desc: children[key].advice_desc,
                single_dose: "" + children[key].single_dose,
                single_dose_unit: children[key].single_dose_unit,
                drug_spec: "" + children[key].drug_spec,
                drug_spec_unit: children[key].drug_spec_unit,
                prescribing_number: "" + children[key].prescribing_number,
                prescribing_number_unit: children[key].prescribing_number_unit,
                delivery_way: children[key].delivery_way,
                execution_frequency: children[key].execution_frequency,
                drug_id:children[key].drug_id,
                way:children[key].way,
                drug_name_id:children[key].drug_name_id,
                isEdit: 0,
                id: 0,
                children: [],
                parent_row: parentRow,
                row_key: thisRowKey,

              };
              item.children.push(child);
            }
            this.$set(item, "children", item.children);
          }

          this.selectedTemp.list.unshift(item);
        }
      }
    },
    newAddTempForm() {
      this.allSelectedTemplate = [];
      var thisRowKey = 0;
      for (const indexs in this.adviceTemplateMaps) {
        const adviceTemplate = this.adviceTemplateMaps[indexs];
        for (const index in adviceTemplate.DoctorAdviceTemplate) {
          if (adviceTemplate.DoctorAdviceTemplate[index].selection) {
            thisRowKey++;
            var item = {
              advice_name:adviceTemplate.DoctorAdviceTemplate[index].advice_name,
              advice_desc:adviceTemplate.DoctorAdviceTemplate[index].advice_desc,
              single_dose:"" + adviceTemplate.DoctorAdviceTemplate[index].single_dose,
              single_dose_unit:adviceTemplate.DoctorAdviceTemplate[index].single_dose_unit,
              drug_spec:"" + adviceTemplate.DoctorAdviceTemplate[index].drug_spec,
              drug_spec_unit:adviceTemplate.DoctorAdviceTemplate[index].drug_spec_unit,
              prescribing_number:"" +adviceTemplate.DoctorAdviceTemplate[index].prescribing_number,
              prescribing_number_unit:adviceTemplate.DoctorAdviceTemplate[index].prescribing_number_unit,
              delivery_way:adviceTemplate.DoctorAdviceTemplate[index].delivery_way,
              execution_frequency:adviceTemplate.DoctorAdviceTemplate[index].execution_frequency,
              advice_id: adviceTemplate.DoctorAdviceTemplate[index].id,
              selection: adviceTemplate.DoctorAdviceTemplate[index].selection,
              drug_id: adviceTemplate.DoctorAdviceTemplate[index].drug_id,
              way:adviceTemplate.DoctorAdviceTemplate[index].way,
              drug_name_id:adviceTemplate.DoctorAdviceTemplate[index].drug_name_id,
              isEdit: 0,
              id: 0,
              children: [],
              parent_row: 0,
              row_key: thisRowKey
            };
            console.log("items========",item)
            if (
              "children" in adviceTemplate.DoctorAdviceTemplate[index] &&
              adviceTemplate.DoctorAdviceTemplate[index].children.length > 0
            ) {
              var parentRow = thisRowKey;
              var children =
                adviceTemplate.DoctorAdviceTemplate[index].children;
              for (const key in children) {
                thisRowKey++;
                var child = {
                  advice_id: children[key].id,
                  advice_name: children[key].advice_name,
                  advice_desc: children[key].advice_desc,
                  single_dose: "" + children[key].single_dose,
                  single_dose_unit: children[key].single_dose_unit,
                  drug_spec: "" + children[key].drug_spec,
                  drug_spec_unit: children[key].drug_spec_unit,
                  prescribing_number: "" + children[key].prescribing_number,
                  prescribing_number_unit:children[key].prescribing_number_unit,
                  delivery_way: children[key].delivery_way,
                  execution_frequency: children[key].execution_frequency,
                  drug_id:children[key].drug_id,
                  way:children[key].way,
                  drug_name_id:children[key].drug_name_id,
                  isEdit: 0,
                  id: 0,
                  children: [],
                  parent_row: parentRow,
                  row_key: thisRowKey
                };
                console.log("child",child)
                item.children.push(child);
                this.allSelectedTemplate.unshift(child);
              }
              this.$set(item, "children", item.children);
            }
            this.allSelectedTemplate.unshift(item);
            adviceTemplate.DoctorAdviceTemplate[index].selection = false;
          }
        }
      }

      var childMap = {};
      for (const index in this.allSelectedTemplate) {
        if (this.allSelectedTemplate[index].parent_row > 0) {
          if (!(this.allSelectedTemplate[index].parent_row in childMap)) {
            childMap[this.allSelectedTemplate[index].parent_row] = [];
          }
          childMap[this.allSelectedTemplate[index].parent_row].push(
            this.allSelectedTemplate[index]
          );
        }
      }

      for (const index in this.allSelectedTemplate) {
        if (this.allSelectedTemplate[index].parent_row > 0) {
          continue;
        }
        this.editRowKey++;
        var item = {
          advice_name: this.allSelectedTemplate[index].advice_name,
          advice_desc: this.allSelectedTemplate[index].advice_desc,
          single_dose: "" + this.allSelectedTemplate[index].single_dose,
          single_dose_unit: this.allSelectedTemplate[index].single_dose_unit,
          drug_spec: "" + this.allSelectedTemplate[index].drug_spec,
          drug_spec_unit: this.allSelectedTemplate[index].drug_spec_unit,
          prescribing_number:"" + this.allSelectedTemplate[index].prescribing_number,
          prescribing_number_unit: this.allSelectedTemplate[index].prescribing_number_unit,
          delivery_way: this.allSelectedTemplate[index].delivery_way,
          execution_frequency: this.allSelectedTemplate[index].execution_frequency,
          drug_id:this.allSelectedTemplate[index].drug_id,
          way:this.allSelectedTemplate[index].way,
          drug_name_id:this.allSelectedTemplate[index].drug_name_id,
          isEdit: 0,
          id: 0,
          children: [],
          parent_row: 0,
          row_key: this.editRowKey
        };

        if (this.allSelectedTemplate[index].children.length > 0) {
          if (this.allSelectedTemplate[index].row_key in childMap) {
            var parentRow = this.editRowKey;
            var children = childMap[this.allSelectedTemplate[index].row_key];
            for (const key in children) {
              this.editRowKey++;
              var child = {
                advice_name: children[key].advice_name,
                advice_desc: children[key].advice_desc,
                single_dose: "" + children[key].single_dose,
                single_dose_unit: children[key].single_dose_unit,
                drug_spec: "" + children[key].drug_spec,
                drug_spec_unit: children[key].drug_spec_unit,
                prescribing_number: "" + children[key].prescribing_number,
                prescribing_number_unit: children[key].prescribing_number_unit,
                delivery_way: children[key].delivery_way,
                execution_frequency: children[key].execution_frequency,
                drug_id:children[key].drug_id,
                way:children[key].way,
                drug_name_id:children[key].drug_name_id,
                isEdit: 0,
                id: 0,
                children: [],
                parent_row: parentRow,
                row_key: this.editRowKey
              };
              item.children.push(child);
            }
            this.$set(item, "children", item.children);
          }
        }
        console.log(this.groupForm.adviceNames)
        this.groupForm.adviceNames.push(item);
      }
      this.templateFormVisible = false;
    },
    addTempForm(formName) {
      var _this = this;
      this.$refs[formName].validate(valid => {
        if (valid) {
          if (_this.templateForm.id in _this.adviceTemplateMaps) {
            var mapid = _this.templateForm.id;
            for (const index in _this.adviceTemplateMaps[mapid]
              .DoctorAdviceTemplate) {
              this.editRowKey++;
              var item = {advice_name:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_name,
                advice_desc:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_desc,
                single_dose:"" +_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose,
                single_dose_unit:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose_unit,
                drug_spec:"" +_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec,
                drug_spec_unit:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec_unit,
                prescribing_number:"" +_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number,
                prescribing_number_unit:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number_unit,
                delivery_way:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].delivery_way,
                execution_frequency:_this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].execution_frequency,
                isEdit: 0,
                id: 0,
                children: [],
                parent_row: 0,
                row_key: this.editRowKey
              };
              if (
                "children" in
                  _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index] &&
                _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index]
                  .children
              ) {
                var parentRow = this.editRowKey;
                var children =
                  _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index]
                    .children;
                for (const key in children) {
                  this.editRowKey++;
                  var child = {
                    advice_name: children[key].advice_name,
                    advice_desc: children[key].advice_desc,
                    single_dose: "" + children[key].single_dose,
                    single_dose_unit: children[key].single_dose_unit,
                    drug_spec: "" + children[key].drug_spec,
                    drug_spec_unit: children[key].drug_spec_unit,
                    prescribing_number: "" + children[key].prescribing_number,
                    prescribing_number_unit:
                      children[key].prescribing_number_unit,
                    delivery_way: children[key].delivery_way,
                    execution_frequency: children[key].execution_frequency,
                    isEdit: 0,
                    id: 0,
                    children: [],
                    parent_row: parentRow,
                    row_key: this.editRowKey
                  };
                  item.children.push(child);
                }
                _this.$set(item, "children", item.children);
              }

              _this.groupForm.adviceNames.unshift(item);
            }
          }
          _this.templateFormVisible = false;
        }
      });
    },
    openAdviceTemplate() {
      this.templateForm = { id: "" };
      this.selectedTemp = { id: 0, name: "", org_id: 0, list: [], rows: [] };
      this.selectedTemplate = [];
      if (typeof this.$refs.templatetable !== "undefined") {
        this.$refs.templatetable.setCurrentRow(null);
      }
      this.templateFormVisible = true;
    },
    selectGroupAdvice(row) {
      this.groupSelectRow = row;
    },
    groupClassName({ row, rowIndex }) {
      row.index = rowIndex;
    },
    getRowKey(row) {
      return row.row_key;
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    open() {
      this.groupAddFormVisible = true;
      this.groupSelectRow = null;
      if (typeof this.$refs.advicenametable !== "undefined") {
        this.$refs.advicenametable.setCurrentRow(null);
      }
      this.editRowKey = 0;
      this.groupForm = {
        advice_type: 2,
        advice_date: this.recordDate,
        start_time: "",
        adviceNames: [],
        advice_doctor: "",
        remark: "",
        parent_id: 0
      };
      var xtuser = this.$store.getters.xt_user;
      // this.orgname = xtuser.org.org_name;
      this.adminusername = xtuser.user.user_name;
      if(this.$store.getters.xt_user.org.id == 10101){
        if (this.predialysis.id > 0 && this.predialysis.created_time > 0) {
          var date = new Date(this.predialysis.created_time * 1000)
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }

          this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + hours + ':' + minites
        } else {
          var date = new Date()
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + hours + ':' + minites
        }
      }

      if(this.$store.getters.xt_user.org.id == 9671 || this.$store.getters.xt_user.org.id == 9675 || this.$store.getters.xt_user.org.id == 10340 || this.$store.getters.xt_user.org.id == 10517  || this.$store.getters.xt_user.org.id == 10579){
         var date = new Date()
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          if (this.schedulePatient.schedule_type == 1) {
            this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '07:00'
          } else if (this.schedulePatient.schedule_type == 2) {
            this.groupForm.start_time= year + '-' + month + '-' + day + ' ' + '11:00'
          } else if (this.schedulePatient.schedule_type == 3) {
           this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '18:00'
          }
      }

      if(this.$store.getters.xt_user.org.id == 10580){
        var date = new Date()
        var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          if (this.schedulePatient.schedule_type == 1) {
            this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '07:00'
          } else if (this.schedulePatient.schedule_type == 2) {
            this.groupForm.start_time= year + '-' + month + '-' + day + ' ' + '10:30'
          } else if (this.schedulePatient.schedule_type == 3) {
           this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '15:30'
          }
      }

      if( this.$store.getters.xt_user.org.id == 9829 ){
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          if (this.schedulePatient.schedule_type == 1) {
            this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '06:30'
          } else if (this.schedulePatient.schedule_type == 2) {
            this.groupForm.start_time= year + '-' + month + '-' + day + ' ' + '11:00'
          } else if (this.schedulePatient.schedule_type == 3) {
           this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '15:30'
          }
      }


      if( this.$store.getters.xt_user.org.id == 10469 ){
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          if (this.schedulePatient.schedule_type == 1) {
            this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '7:00'
          } else if (this.schedulePatient.schedule_type == 2) {
            this.groupForm.start_time= year + '-' + month + '-' + day + ' ' + '11:00'
          } else if (this.schedulePatient.schedule_type == 3) {
           this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '15:00'
          }
      }


      if( this.$store.getters.xt_user.org.id == 10471 ){
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          if (this.schedulePatient.schedule_type == 1) {
            this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '7:00'
          } else if (this.schedulePatient.schedule_type == 2) {
            this.groupForm.start_time= year + '-' + month + '-' + day + ' ' + '11:00'
          } else if (this.schedulePatient.schedule_type == 3) {
           this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + '15:00'
          }
      }

      if(this.$store.getters.xt_user.org.id == 10579  || this.$store.getters.xt_user.org.id == 10585 || this.$store.getters.xt_user.org.id == 10587){
        var date = new Date()
          var year = date.getFullYear()
          var month = date.getMonth() + 1
          var day = date.getDate()

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

          if (month < 10) {
            month = '0' + month
          }
          if (day < 10) {
            day = '0' + day
          }
          if (hours < 10) {
            hours = '0' + hours
          }
          if (minites < 10) {
            minites = '0' + minites
          }
          this.groupForm.start_time = year + '-' + month + '-' + day + ' ' + hours + ':' + minites
      }

    },
    selectAllTemplateAdvice(selection) {
      console.log("params",selection)
      var adviceArray = this.adviceTemplateMaps[this.selectedTemp.id].DoctorAdviceTemplate;
      for (let y = 0; y < adviceArray.length; y++) {
        adviceArray[y].selection = false;
      }
      if (selection.length > 0) {
        for (let y = 0; y < adviceArray.length; y++) {
          for (let i = 0; i < selection.length; i++) {
            if (adviceArray[y].id == selection[i].advice_id) {
              adviceArray[y].selection = true;
            }
          }
        }
      }
    },
    cancleDialog() {
      this.templateFormVisible = false;
      for (const indexs in this.adviceTemplateMaps) {
        const adviceTemplate = this.adviceTemplateMaps[indexs];
        for (const index in adviceTemplate.DoctorAdviceTemplate) {
          adviceTemplate.DoctorAdviceTemplate[index].selection = false;
        }
      }
    },
    rand(min, max) {
        return Math.floor(Math.random() * (max - min)) + min;
     },
    //
    getSelfMedicalList(){
        const params = {
          patient_id:this.$route.query.patient_id
        }
      getSelfMedicalList(params).then(response=>{
         if (response.data.state == 1) {
            this.arr_drug = []
            var medicalList = response.data.data.private_drug_list
            console.log("medicallist",medicalList)
            var base_drug_list = response.data.data.base_drug_list
            console.log("base_drug_list23233232322323",base_drug_list)
            var base_drug_cofig = response.data.data.base_drug_config
            var private_drug_cofig = response.data.data.private_drug_config


            if(private_drug_cofig != null&&private_drug_cofig.drug_start == 1) {

              for (let i = 0; i < medicalList.length; i++) {
                if(medicalList[i].drug_specs != null) {
                  for (let a = 0; a < medicalList[i].drug_specs.length; a++) {
                    medicalList[i].drug_specs[a]['type'] = 2
                  }
                }
                let obj = {
                  drug_name: "",
                  drug_desc: "",
                  delivery_way: "",
                  execution_frequency: "",
                  single_dose: "",
                  single_dose_unit: "",
                  prescribing_number: "",
                  prescribing_number_unit: "",
                  type_id: "",
                  type: "",
                  custom_id: "",
                  drug_specs: [],
                }

                medicalList[i].drug_name = medicalList[i].drug_name + "(自备药)"
                obj.drug_name = medicalList[i].drug_name
                obj.delivery_way = medicalList[i].delivery_way
                obj.execution_frequency = medicalList[i].execution_frequency
                obj.single_dose = medicalList[i].single_dose
                obj.prescribing_number = medicalList[i].prescribing_number
                obj.type_id = medicalList[i].id
                obj.type = 2
                obj.custom_id = this.rand(10000000, 99999999)
                obj.drug_specs = medicalList[i].drug_specs
                obj.id = medicalList[i].id
                this.all_drug.push(obj)
              }
            }


            for (let i = 0; i < base_drug_list.length; i++) {
              if(base_drug_list[i].drug_specs != null) {
                for (let a = 0; a < base_drug_list[i].drug_specs.length; a++) {
                  base_drug_list[i].drug_specs[a]['type'] = 1
                }
              }
                let obj = {
                  drug_name: "",
                  drug_desc: "",
                  delivery_way: "",
                  execution_frequency: "",
                  single_dose: "",
                  single_dose_unit: "",
                  prescribing_number: "",
                  prescribing_number_unit: "",
                  type_id: "",
                  type: "",
                  custom_id: "",
                  drug_specs: [],
                }

                obj.drug_name = base_drug_list[i].drug_name
                obj.delivery_way = base_drug_list[i].delivery_way
                obj.execution_frequency = base_drug_list[i].execution_frequency
                obj.single_dose = base_drug_list[i].single_dose
                obj.prescribing_number = base_drug_list[i].prescribing_number
                obj.type_id = base_drug_list[i].id
                obj.type = 1
                obj.custom_id = this.rand(10000000, 99999999)
                obj.drug_specs = base_drug_list[i].drug_specs
                obj.id = base_drug_list[i].id
                this.all_drug.push(obj)

              }

              this.private_drug_config = response.data.data.private_drug_config
              this.medicals = medicalList
            }

        })

    },
    changeDrugName(name){
      this.current_drug_name = name
      this.nameForm.advice_desc = ''
      this.drugSpec = []
      for (let i = 0; i < this.all_drug.length; i++) {
        if (this.all_drug[i].drug_name == name) {
            this.drugSpec = this.all_drug[i].drug_specs
          }
       }

    },
    changeDrugDesc(name) {

        this.current_drug_spec = name
        for (let i = 0; i < this.drugSpec.length; i++) {
          if (this.drugSpec[i].drug_spec == name) {
            this.nameForm.advice_desc = this.drugSpec[i].drug_spec
            this.nameForm.prescribing_number = this.drugSpec[i].prescribing_number.toString()
            this.nameForm.single_dose = this.drugSpec[i].single_dose.toString()

            this.nameForm.delivery_way = this.drugSpec[i].delivery_way.toString()
            this.nameForm.execution_frequency = this.drugSpec[i].execution_frequency.toString()
            this.drug_id = this.drugSpec[i].id
            this.src_type = this.drugSpec[i].type
            this.nameForm.drug_id = this.drugSpec[i].id
            this.nameForm.way = this.drugSpec[i].type
            this.nameForm.single_dose_unit = this.drugSpec[i].min_unit
            this.nameForm.drug_spec_unit = this.drugSpec[i].min_unit
            this.nameForm.prescribing_number_unit = this.drugSpec[i].min_unit
            if(this.drugSpec[i].drug_name_id){
               this.nameForm.drug_name_id = this.drugSpec[i].drug_name_id
            }else{
              this.nameForm.drug_name_id = 0
            }

          }
        }
      },

     querySearch(queryString, cb) {
        console.log("aaaaa")
        var restaurants = this.all_drug;
        restaurants.map(item => {
          item.value = item.drug_name
        })
        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
        // 调用 callback 返回建议列表的数据

        cb(results);
     },

     createFilter(queryString) {
        return (restaurant) => {
          return (restaurant.drug_name.toLowerCase().indexOf(queryString.toLowerCase()) != -1);
        };
     },

     querySearch1(queryString, cb) {

        var restaurants = this.drugSpec;
         console.log(restaurants)
        restaurants.map(item => {
          item.value = item.drug_spec
        })
        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
        // 调用 callback 返回建议列表的数据

        cb(results);
      },

      handleSelect(val){
        console.log("22222",val)
        this.drug_id = val.id
        this.nameForm.way = 1
        var tmp = val.drug_specs[0]
        console.log("tmp",tmp)
        console.log("unitsOption",this.unitsOption)
        this.nameForm.advice_desc = tmp.dose+tmp.dose_unit+"*"+tmp.min_number+tmp.min_unit+"/"//药品规格
        this.nameForm.drug_spec_unit = tmp.max_unit
        this.nameForm.prescribing_number = tmp.prescribing_number//开药数量
        this.nameForm.prescribing_number_unit = tmp.prescribing_number_unit
        this.nameForm.single_dose = tmp.single_dose//单次用量
        this.nameForm.single_dose_unit = tmp.drug_dose_unit
        this.nameForm.delivery_way = tmp.delivery_way//给药途径
        this.nameForm.execution_frequency = tmp.execution_frequency//执行频率
        this.nameForm.drug_id = tmp.id
      },
      handleSelect1(){

      },
      getDataConfig(module, filed_name) {
        return getDataConfig(module, filed_name)
      },
      getUnit(id){
         var name = ""
         for(let i=0;i<this.units.length;i++){
           if(id == this.units[i].id){
              name = this.units[i].name
           }
         }
         return name
      },

    saveInformation(){
        var params = {
          selected_date:this.selected_date,
          patient_id:this.$route.query.patient_id,
          record_date:this.$route.query.date,
          module:4,
          remark:this.remark,
        }
        saveInformation(params).then(response=>{
           if(response.data.state == 1){
             var information = response.data.data.information
             this.$message.success("提交成功!")
             this.infoDialogVisible = false
           }
        })
      }
  },
  watch: {
    "selectedTemp.list": function() {
      this.calcselectedTemp();
    }
  },
  created(){
    this.units =  this.getDataConfig('hemodialysis','units')
    console.log("单位32322323232我的",this.units)
   //获取自备药
    this.getSelfMedicalList()

  }
};
</script>

<style>
#user-edit-advice-name-table .el-table__row {
  display: table-row !important;
}

#user-edit-advice-name-table .el-table__expand-icon {
  -webkit-transform: rotate(90deg) !important;
  transform: rotate(90deg) !important;
}

#dialysis-add-select-template-table .el-table__row {
  display: table-row !important;
}

#dialysis-add-select-template-table .el-table__expand-icon {
  -webkit-transform: rotate(90deg) !important;
  transform: rotate(90deg) !important;
}
</style>
