<template>
  <div>
    <crumbs
      :title="minTitle"
      :param="$route.params"
      linkTo="BasicTermsMaintenance"
    ></crumbs>
    <div class="contents">
      <div class="content">
        <h3>添加术语：</h3>

        <p class="titl">医学标准术语：</p>
        <table class="deptbox" v-if="id == ''">
          <tr>
            <td class="ind">序号</td>
            <td>
              医学标准术语
              <span class="necess">*</span>
            </td>
            <td>拼音</td>
            <td>
              术语类型
              <span class="necess">*</span>
            </td>
            <td class="desc">说明</td>
          </tr>
          <tr>
            <td class="ind">1</td>
            <td
              :title="
                data.libName && data.libName.length > 9 ? data.libName : ''
              "
            >
              <!-- 修改时标准词不能修改，修改了会当做新增处理 4-17 -->
              <p v-if="id">{{ data.libName }}</p>
              <!-- 4-18 需求变更 -->
              <input
                v-else
                type="text"
                v-model.trim="data.libName"
                placeholder="请输入术语"
                maxlength="70"
                @blur="handleBlur(1)"
              />
              <SimilarListDrag
                :searchType="searchType"
                :similarList="similarList"
                isShow="true"
                @closeTable="closeTable"
              ></SimilarListDrag>
            </td>
            <td>
              <input
                type="text"
                v-model.trim="data.spell"
                placeholder="请输入拼音"
                maxlength="50"
                @input="handlePinyin($event, 1)"
              />
            </td>
            <td>
              <!-- <el-select v-if="!id" v-model="data.type" filterable placeholder="请选择" size="small" @change="selectType">
                <el-option
                  v-for="item in typeList"
                  :key="item.id"
                  :label="item.name"
                  :value="item.name">
                </el-option>
              </el-select>-->
              <template v-if="!id">
                <el-select
                  v-model="data.type"
                  filterable
                  clearable
                  popper-class="horizontal-drop"
                  placeholder="请选择"
                  @clear="clearDataCi"
                  size="small"
                  @change="selectType"
                >
                  <el-option-group v-for="group in options" :key="group.label">
                    <el-option
                      v-for="item in group.options"
                      :key="item.id"
                      :label="item.name"
                      :value="item.name"
                    ></el-option>
                  </el-option-group>
                </el-select>
              </template>
              <span v-else>{{ data.type }}</span>
            </td>
            <td class="desc">
              <input
                v-model.trim="data.remark"
                placeholder="请输入术语说明"
                maxlength="120"
              />
            </td>
          </tr>
        </table>
        <div class="deptboxChange" v-else>
          <table class="deptbox deptboxTable">
            <tr>
              <td class="ind">序号</td>
              <td class="desc">医学标准术语</td>
              <td>拼音</td>
              <td>术语类型</td>
              <td class="desc">说明</td>
              <td class="descs">术语性质</td>
              <td v-if="id">操作</td>
            </tr>
            <tr v-for="(item, index) in allwords" :key="index">
              <td class="ind">{{ index + 1 }}</td>
              <td
                :title="
                  item.libName && item.libName.length > 9 ? item.libName : ''
                "
              >
                <!-- 使用原生input，输入限制 -->
                <!-- <el-input v-model="item.name" placeholder="请输入术语" maxlength="30" size="small" @input.native="handleInput(2,index)"></el-input> -->
                <input
                  type="text"
                  v-model.trim="item.libName"
                  :title="item.name"
                  placeholder="请输入术语"
                  maxlength="70"
                  @blur="handleBlur(2, index, 99)"
                />
                <SimilarListDrag
                  :searchType="searchType"
                  :similarList="similarList"
                  :isShow="index === searchIndex"
                  @closeTable="closeTable"
                ></SimilarListDrag>
              </td>
              <!-- <td v-if="!item.isEdit">
                {{item.spell}}
              </td>
              <td v-else>-->
              <td>
                <input
                  type="text"
                  v-model.trim="item.spell"
                  placeholder="请输入拼音"
                  maxlength="50"
                  @input="handlePinyin($event, 2, index)"
                  class="spell"
                />
              </td>
              <td>
                <template v-if="index == 0 && copy">
                  <el-select
                    v-model="data.type"
                    filterable
                    popper-class="horizontal-drop"
                    placeholder="请选择"
                    size="small"
                    @clear="clearDataCi"
                    @change="selectType"
                  >
                    <el-option-group
                      v-for="group in options"
                      :key="group.label"
                    >
                      <el-option
                        v-for="item in group.options"
                        :key="item.id"
                        :label="item.name"
                        :value="item.name"
                      ></el-option>
                    </el-option-group>
                  </el-select>
                </template>
                <span v-else>{{ data.type }}</span>
              </td>
              <td class="desc">
                <input
                  v-model.trim="item.remark"
                  placeholder="请输入术语说明"
                  maxlength="120"
                />
              </td>
              <td class="desc">
                {{ item.isConcept == 1 ? "医学标准术语" : "同义词" }}
              </td>
              <td v-if="id">
                <span class="displayColor" v-if="item.isConcept == 1"
                  >删除</span
                >
                <span @click="deleLine(index, 55, item)" class="delete" v-else
                  >删除</span
                >
              </td>
            </tr>
            <tr @click="addSpan(55)">
              <td colspan="7" class="addSpan">+</td>
            </tr>
          </table>
          <div class="actionDo"></div>
        </div>
        <p class="titl" v-if="id == ''">同义词：</p>
        <table class="deptbox" v-if="id == ''">
          <tr>
            <td class="ind">序号</td>
            <td>医学标准术语</td>
            <td>拼音</td>
            <td>术语类型</td>
            <td class="desc">说明</td>
            <td v-if="id">操作</td>
          </tr>
          <tr v-for="(item, index) in synonymous" :key="index">
            <td class="ind">{{ index + 1 }}</td>
            <td
              :title="
                item.libName && item.libName.length > 9 ? item.libName : ''
              "
            >
              <!-- 使用原生input，输入限制 -->
              <!-- <el-input v-model="item.name" placeholder="请输入术语" maxlength="30" size="small" @input.native="handleInput(2,index)"></el-input> -->
              <input
                type="text"
                v-model.trim="item.libName"
                placeholder="请输入术语"
                maxlength="70"
                @blur="handleBlur(2, index)"
              />
              <SimilarListDrag
                :searchType="searchType"
                :similarList="similarList"
                :isShow="index === searchIndex"
                @closeTable="closeTable"
              ></SimilarListDrag>
            </td>
            <td>
              <input
                type="text"
                v-model.trim="item.spell"
                placeholder="请输入拼音"
                maxlength="50"
                @input="handlePinyin($event, 3, index)"
              />
            </td>
            <td>{{ data.type }}</td>
            <td class="desc">
              <input
                v-model.trim="item.remark"
                placeholder="请输入术语说明"
                maxlength="120"
              />
            </td>
            <td v-if="id">
              <span @click="deleLine(index, 1, item)" class="delete">删除</span>
            </td>
          </tr>
          <tr @click="addSpan">
            <td :colspan="colspan" class="addSpan">+</td>
          </tr>
        </table>
        <div class="moreInfo" v-if="showMore == 1">
          <p>更多信息：</p>
          <el-form label-width="150px">
            <el-form-item label="性别：">
              <el-select v-model="sexType">
                <el-option
                  v-for="(it, i) in sex"
                  :key="i"
                  :label="it.name"
                  :value="it.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="年龄：" class="ages is-required">
              <el-input
                v-model.number="minAge"
                type="number"
                @input="inputAge"
              ></el-input>
              <span class="ageLine">~</span>
              <el-input
                v-model.number="maxAge"
                type="number"
                @input="inputAge"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '实验室检查子项目'"
              label="参考范围"
              class="ages"
            >
              <el-radio-group v-model="radio" @change="changeRadio">
                <el-radio :label="1">数值内容</el-radio>
                <el-radio :label="2">文本内容</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查子项目' &&
                (radio == 1 || klLisVO.minValue || klLisVO.maxValue)
              "
              class="ages"
            >
              <el-input
                v-model.trim="klLisVO.minValue"
                type="number"
                @input="inputAge"
              ></el-input>
              <span class="ageLine">~</span>
              <el-input
                v-model.trim="klLisVO.maxValue"
                type="number"
                @input="inputAge"
              ></el-input>
              <el-input
                class="inp"
                v-model.trim="klLisVO.unit"
                placeholder="输入单位"
                maxlength="6"
                type="text"
                @input="inputAge"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查子项目' &&
                (radio == 2 || klLisVO.qualitative != '')
              "
              class="ages tips"
            >
              <div-editable
                class="divBox"
                v-if="hackReset"
                v-model="klLisVO.qualitative"
                :Maincontent="'Maincontent'"
                title="请输入"
              ></div-editable>
              <span class="titles"
                >注:输入结果内容以顿号隔开,例如:阴性、阳性</span
              >
            </el-form-item>
            <div
              v-if="
                data.type == '实验室检查子项目' &&
                (radio == 1 || klLisVO.minValue || klLisVO.maxValue)
              "
              style="
                width: 300px;
                display: inlne;
                position: relative;
                right: -530px;
                top: -40px;
              "
            >
              <span style="margin-right: 15px">范围</span>
              <el-select v-model="klLisVO.type">
                <el-option
                  v-for="(it, i) in range"
                  :key="i"
                  :label="it.name"
                  :value="it.value"
                ></el-option>
              </el-select>
            </div>

            <el-form-item label="科室：" v-if="dioType" class="marT">
              <el-select v-model="dept">
                <!-- <el-option v-for="(it,i) in deptList" :label="it.name" :value="it.name"></el-option> -->
                <el-option-group
                  v-for="group in deptListArr"
                  :key="group.label"
                >
                  <el-option
                    v-for="item in group.deptList"
                    :key="item.id"
                    :label="item.name"
                    :value="item.name"
                  ></el-option>
                </el-option-group>
              </el-select>
            </el-form-item>
            <el-form-item label="归属类型：" v-if="dioType" class="marT">
              <el-select v-model="dioType">
                <el-option
                  v-for="(it, i) in dioTypeList"
                  :key="i"
                  :label="it.name"
                  :value="it.val"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              label="药品类型："
              v-if="data.type == '药品通用名'"
              class="marT is-required"
            >
              <el-select v-model="klDrugVO.drug">
                <el-option
                  v-for="(it, i) in drugTypeList"
                  :key="i"
                  :label="it.name"
                  :value="it.val"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              label="药品级别:"
              v-if="data.type == '药品通用名'"
              class="marT is-required"
            >
              <el-select v-model="klDrugVO.drugGrade">
                <el-option
                  v-for="item in drugGradeList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              label="药品分类:"
              v-if="data.type == '药品通用名'"
              class="marT is-required"
            >
              <div-editable
                class="divBox"
                v-if="hackReset"
                v-model="klDrugVO.drugC"
                :Maincontent="'drugC'"
                title="请输入"
              ></div-editable>
            </el-form-item>

            <el-form-item
              label="危急标识："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <el-radio-group v-model="klPacsVO.emergencySign">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item
              label="方法："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klPacsVO.checkMethod"
                :Maincontent="'checkMethod'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              label="检查技术："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klPacsVO.checkSkillful"
                :Maincontent="'checkSkillful'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              label="项目定义："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <el-input
                class="txt"
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klPacsVO.definition"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              label="检查目的："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klPacsVO.checkObjective"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              label="禁忌症和局限性："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klPacsVO.condLimit"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              label="适应症："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klPacsVO.interventional"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              label="检查前准备："
              v-if="
                data.type == '辅助检查项目' || data.type == '辅助检查子项目'
              "
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klPacsVO.checkPrepare"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>

            <el-form-item
              v-if="data.type == '症状'"
              label="阳性症状："
              prop="description"
              class="marT"
            >
              <el-radio v-model="klSymptomVO.isPositive" :label="1"
                >是</el-radio
              >
              <el-radio v-model="klSymptomVO.isPositive" :label="0"
                >否</el-radio
              >
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="英文名称："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klSymptomVO.enName"
                :Maincontent="'enNamekl'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="就诊科室："
              prop="description"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klSymptomVO.deptList"
                :id="id"
                :type="115"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="发病部位："
              prop="description"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klSymptomVO.partList"
                :id="id"
                :type="122"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="常见伴随症状："
              prop="description"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klSymptomVO.conSymptomList"
                :id="id"
                :type="103"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="性质："
              prop="description"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klSymptomVO.natureList"
                :id="id"
                :type="126"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="缓解因素："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klSymptomVO.mitigatingFac"
                :Maincontent="'mitigatingFac'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="加重因素："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klSymptomVO.aggravateFac"
                :Maincontent="'aggravateFac'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="通俗解释："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klSymptomVO.commonExplain"
                :Maincontent="'commonExplain'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="定义："
              prop="description"
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klSymptomVO.definition"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="症状起因："
              prop="description"
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klSymptomVO.cause"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="常见疾病："
              prop="description"
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klSymptomVO.commonDis"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="预防措施："
              prop="description"
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klSymptomVO.preMeasures"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '症状'"
              label="饮食禁忌："
              prop="description"
              class="marT"
            >
              <el-input
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
                v-model.trim="klSymptomVO.foodProhibition"
                placeholder="请输入"
                maxlength="500"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="ICD10医保版："
              prop="description"
              class="marT description"
            >
              <el-input
                v-model.trim="klDiseaseVO.icd10Code"
                maxlength="30"
                placeholder="请输入编码"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="ICD10国临版："
              prop="description"
              class="marT description"
            >
              <el-row>
                <el-col :span="5"
                  ><el-input
                    @blur="handleBlurGuo"
                    v-model.trim="klDiseaseVO.guoname"
                    maxlength="70"
                    placeholder="请输入名称"
                  ></el-input
                ></el-col>
                <el-col :span="5"
                  ><el-input
                    v-model.trim="klDiseaseVO.guospell"
                    maxlength="70"
                    placeholder="请输入拼音"
                  ></el-input
                ></el-col>
                <el-col :span="5"
                  ><el-input
                    v-model.trim="klDiseaseVO.guocode"
                    maxlength="30"
                    placeholder="请输入编码"
                  ></el-input
                ></el-col>
              </el-row>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="发病率："
              prop="description"
              class="marT description"
            >
              <el-input
                v-model.trim="klDiseaseVO.incidence"
                type="number"
                oninput="if(value.length>6)value=value.slice(0,6)"
                placeholder="请输入"
              ></el-input>
            </el-form-item>

            <el-form-item
              label="遗传性："
              v-if="data.type == '疾病'"
              class="marT"
            >
              <el-radio-group v-model="klDiseaseVO.isHeredity">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item
              label="常见病："
              v-if="data.type == '疾病'"
              class="marT"
            >
              <el-radio-group v-model="klDiseaseVO.isCommonDis">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item
              label="传染性："
              v-if="data.type == '疾病'"
              class="marT"
            >
              <el-radio-group v-model="klDiseaseVO.isInfect">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
            </el-form-item>

            <el-form-item
              v-if="data.type == '疾病' && klDiseaseVO.isInfect === 1"
              label="传染病分类："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.infectClassification"
                :Maincontent="'infectClassification'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病' && klDiseaseVO.isInfect === 1"
              label="传染病上报时限："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.infectDeadline"
                :Maincontent="'infectDeadline'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              label="疾病就诊科室："
              v-if="data.type == '疾病'"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klDiseaseVO.deptList"
                :id="id"
                :type="115"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              label="疾病发病部位："
              v-if="data.type == '疾病'"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klDiseaseVO.partList"
                :id="id"
                :type="122"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              label="疾病系统分类："
              v-if="data.type == '疾病'"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klDiseaseVO.systemTypeList"
                :id="id"
                :type="307"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="肿瘤/细胞类型："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.tumorCellType"
                :Maincontent="'tumorCellType'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="形态学分类代码："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.morphology"
                :Maincontent="'morphology'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="英文名称："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.enName"
                :Maincontent="'enNamej'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="英文简称："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.enNameSimple"
                :Maincontent="'enNameSimple'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="疾病简称："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.nameSimple"
                :Maincontent="'nameSimple'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="好发人群："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.vulCrowd"
                :Maincontent="'vulCrowd'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="好发地区："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.vulArea"
                :Maincontent="'vulArea'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="病程："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.course"
                :Maincontent="'course'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="危害性："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.pernicious"
                :Maincontent="'pernicious'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="治愈性："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.healing"
                :Maincontent="'healing'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="诱因："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klDiseaseVO.inducement"
                :Maincontent="'inducement'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="疾病分型："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klDiseaseVO.disType"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="并发症："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klDiseaseVO.complication"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="临床分类："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klDiseaseVO.clinicType"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="病因："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klDiseaseVO.pathogeny"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="危险因素："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klDiseaseVO.hazard"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '疾病'"
              label="饮食禁忌："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klDiseaseVO.foodProhibition"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查套餐' || data.type == '实验室检查子项目'
              "
              label="英文缩写："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klLisVO.enName"
                :Maincontent="'enName'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查套餐' || data.type == '实验室检查子项目'
              "
              label="所属类别："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klLisVO.category"
                :Maincontent="'category'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查套餐' || data.type == '实验室检查子项目'
              "
              label="检查标本："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klLisVO.checkSpecimen"
                :Maincontent="'checkSpecimen'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查套餐' || data.type == '实验室检查子项目'
              "
              label="临床意义："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klLisVO.clinicalSig"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查套餐' || data.type == '实验室检查子项目'
              "
              label="影响因素："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klLisVO.influenceFac"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="
                data.type == '实验室检查套餐' || data.type == '实验室检查子项目'
              "
              label="检查方法："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klLisVO.checkMethod"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '体格检查结果'"
              label="科室："
              prop="description"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klVitalResultVO.deptList"
                :id="id"
                :type="115"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '体格检查结果'"
              label="部位："
              prop="description"
              class="marT"
            >
              <searchTerm
                v-if="hackReset"
                :refbool.sync="klVitalResultVO.partList"
                :id="id"
                :type="122"
              ></searchTerm>
            </el-form-item>
            <el-form-item
              v-if="data.type == '体格检查结果'"
              label="不适宜人群："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klVitalResultVO.suitablePopNo"
                :Maincontent="'Maincontent1'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '体格检查结果'"
              label="操作方法："
              prop="description"
              class="marT"
            >
              <el-input
                v-model.trim="klVitalResultVO.checkMethod"
                maxlength="500"
                placeholder="请输入"
                :autosize="{ minRows: 1, maxRows: 3 }"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '手术和操作'"
              label="级别分类："
              prop="description"
              class="marT"
            >
              <el-select
                v-model="klOperationVO.operationLevel"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in operationLevelList"
                  :key="item.id"
                  :label="item.label"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              v-if="data.type == '手术和操作'"
              label="手术操作代码："
              prop="description"
              class="marT"
            >
              <div-editable
                v-if="hackReset"
                v-model="klOperationVO.operationCode"
                :Maincontent="'Maincontent'"
                title="请输入"
              ></div-editable>
            </el-form-item>
            <el-form-item
              v-if="data.type == '中医疾病'"
              label="代码："
              class="marT"
            >
              <el-input
                style="width: 300px"
                v-model.trim="klTcmDiseaseVO.code"
                maxlength="30"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
            <el-form-item
              v-if="data.type == '中医证候'"
              label="代码："
              class="marT"
            >
              <el-input
                style="width: 300px"
                v-model.trim="klTcmSyndromeVO.code"
                maxlength="30"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
            <!-- <el-form-item
              v-if="data.type=='症状'"
              label="填写单患者界面展示通俗内容："
              prop="description"
              class="marT description"
            >
              <span class="necess">*</span>
              <el-input v-model.trim="description" maxlength="7" placeholder="请输入填写单患者界面展示通俗内容"></el-input>
            </el-form-item>-->
            <!-- <el-form-item v-if="data.type=='症状'" label="医学教育说明：" prop="explains" class="marT">
              <el-input
                type="textarea"
                v-model.trim="explains"
                maxlength="100"
                style="width: 500px;"
                :rows="4"
              ></el-input>
            </el-form-item>-->
          </el-form>
        </div>
        <div class="btn">
          <el-button
            type="primary"
            :disabled="saveDisable"
            @click="handleConfirm"
            >确 定</el-button
          >
        </div>
      </div>
    </div>
  </div>
</template>
<script type="text/javascript">
import DivEditable from "./DivEditable";
import searchTerm from "./searchTerm";
import api from "@api/knowledgeTree.js";
import pinyin from "../../js/Convert_Pinyin.js";
import utils from "@api/utils.js";
import SimilarListDrag from "./SimilarListDrag";
export default {
  name: "AddMedicalName",
  data() {
    return {
      radio: 1,
      minTitle: "基础术语维护-添加",
      hackReset: true,
      drugGradeList: [
        //药品级别相关数据
        { label: "非限制使用级", value: 0 },
        { label: "限制使用级", value: 1 },
        { label: "特殊使用级", value: 2 },
      ],
      data: {
        libName: "",
        type: "",
        libType: "",
        remark: "",
        isConcept: 1,
        spell: "",
        libId: "",
        isHasCommon: "",
      },
      klDrugVO: {
        drug: "",
        drugC: "",
        drugGrade: "", //药品级别
      },
      klOperationVO: {
        conceptId: null,
        remark: null,
        operationLevel: 0, //手术级别
        operationCode: "", //手术操作码
      },
      klVitalResultVO: {
        conceptId: null,
        remark: null,
        deptList: [], //科室
        partList: [], //部位
        suitablePopNo: "", //不适宜人群
        checkMethod: "", //操作方法
      },
      klPacsVO: {
        checkMethod: "", //检查方法
        definition: "", //项目定义
        checkObjective: "", //检查目的
        checkSkillful: "", //检查技术
        condLimit: "", //禁忌症和局限性
        interventional: "", //适应症
        emergencySign: 0, //危急标识（0：不危急，1：危急）
        checkPrepare: "", //检查前准备
        remark: "", //备注
      },
      klLisVO: {
        minValue: null, //最小值
        maxValue: null, //最大值
        unit: "",
        checkSpecimen: "", //检查标本
        checkMethod: "", //检查方法
        influenceFac: "", //影响因素
        clinicalSig: "", //临床意义
        qualitative: "", //定性（阴、阳性）
        category: "", //所属类别
        enName: "", //英文名称
        remark: "", //备注
        type: 1,
      },
      klSymptomVO: {
        isPositive: 1,
        enName: "", //英文名称
        definition: "", //定义
        chWestern: "", //中西医症状（0：通用，1：西，2：中）
        mitigatingFac: "", //缓解因素
        aggravateFac: "", //加重因素
        cause: "", //症状起因
        commonDis: "", //常见疾病
        preMeasures: "", //预防措施
        foodProhibition: "", //饮食禁忌
        commonExplain: "", //通俗解释
        remark: "", //备注
        deptList: [], //科室列表
        partList: [], //发病部位
        conSymptomList: [], //常见伴随症状
        natureList: [], //性质
      },
      klDiseaseVO: {
        icd10Code: "", //ICD10编号
        guoname: "", //国临版名称
        guocode: "", //国临版编码
        guospell: "", //国临版拼音
        course: "", //病程
        inducement: "", //诱因
        foodProhibition: "", //饮食禁忌
        hazard: "", //危险因素
        healing: "", //治愈性
        pernicious: "", //危害性
        clinicType: "", //临床分类
        vulArea: "", //好发地区
        vulCrowd: "", //好发人群
        incidence: "", //发病率
        isInfect: 0, //是否传染（0：否，1：是）
        complication: "", //并发症
        pathogeny: "", //病因
        disType: "", //疾病分型
        chWestern: "", //中西医疾病（0：通用，1：西，2：中）
        isCommonDis: 1, //是否常见病（0：否，1：是）
        isHeredity: 0, //是否遗传（0：否，1：是）
        nameSimple: "", //简称
        enNameSimple: "", //英文简称
        enName: "", //英文名称
        remark: "", //备注
        tumorCellType: "", //肿瘤细胞类型
        morphology: "", //形态学分类代码
        deptList: [], //科室列表
        partList: [], //部位列表
        systemTypeList: [], //疾病系统分类列表
        infectClassification: "", //传染病分类
        infectDeadline: "", //传染病上报时限
      },
      klTcmDiseaseVO: {
        code: "",
      },
      klTcmSyndromeVO: {
        code: "",
      },
      operationLevelList: [
        {
          id: "0",
          label: "0",
        },
        {
          id: "1",
          label: "1",
        },
        {
          id: "2",
          label: "2",
        },
        {
          id: "3",
          label: "3",
        },
        {
          id: "4",
          label: "4",
        },
      ],
      typeList: [],
      id: "",
      synonymous: [], //同义词
      singleword: [],
      allwords: [], //标准词和同义词
      colspan: 5,
      colspans: 6,
      currentPage: 1,
      pageSize: 10,
      tmpSynonymous: [],
      sexType: 3,
      maxAge: 200,
      minAge: 0,
      maxValue: null,
      minValue: null,
      showMore: "",
      sex: [
        {
          name: "通用",
          value: 3,
        },
        {
          name: "男",
          value: 1,
        },
        {
          name: "女",
          value: 2,
        },
      ],
      range: [
        {
          name: "内",
          value: 1,
        },
        {
          name: "外",
          value: 2,
        },
      ],
      unfit: false, //点确认时是否弹提示,
      guounfix: false, //国临版名称是否符合要求
      saveDisable: false, //保存按钮禁止点击
      options: [],
      copy: null,
      drugTypeList: [
        { val: 0, name: "西药" },
        { val: 1, name: "中成药" },
      ], //药品类型
      drug: "",
      dioTypeList: [], //更多信息-类型
      dioType: "", //默认展示一类
      deptList: [], //更多信息-科室
      deptListArr: [], //科室信息分组
      dept: "", //默认展示全科
      similarList: [], //相似词列表
      searchIndex: -1, //展示哪个的同义词
      searchType: "",
      description: "",
      explains: "",
      composing: false,
      critical: "", //危急标识
      conceptList: [],
    };
  },
  created() {
    this.getTypeList();
    const id = this.$route.params.id;
    const libType = this.$route.params.libType;
    const copy = this.$route.params.copy || "";
    this.copy = copy;
    if (id) {
      this.minTitle = copy ? "基础术语维护-复制" : "基础术语维护-修改";
      this.id = id;
      this.colspan = 5;
      this.getDetail(id, libType);
    }
  },
  methods: {
    changeRadio() {
      this.klLisVO.maxValue = null;
      this.klLisVO.minValue = null;
      this.klLisVO.qualitative = "";
      this.klLisVO.unit = "";
    },
    //获取科室
    searchConcept(val) {
      const param = {
        excludedConceptIds: [],
        libType: "115",
        name: val,
      };
      api
        .searchConcept(param)
        .then((res) => {
          if (res.data.code == "0") {
            const data = res.data.data;
            this.conceptList = data;
          }
        })
        .catch((error) => {
          console.log(error);
        });
    },
    clearDataCi() {
      this.data.libType = "";
    },
    dragAdd(ev) {
      utils.dragBox("dragModalWrap", "dragModalTitle", "add");
    },
    dragDel() {
      utils.dragBox("dragModalWrap", "dragModalTitle", "del");
    },
    closeTable() {
      this.searchType = "";
      this.similarList = [];
    },
    // 诊断类型下--更多信息-类型
    getDioType(flag) {
      api.getknowledgeList().then((res) => {
        const data = res.data;
        if (data.code == 0) {
          this.dioTypeList = data.data[2];
          // 修改时无需赋值
          if (!flag) {
            this.dioType = this.dioTypeList[0].val;
          }
        }
      });
    },
    // 诊断类型下--更多信息-科室
    getDdeptList(conptId) {
      api.getDeptList({ type: 1 }).then((res) => {
        const data = res.data;
        if (data.code == 0) {
          this.deptList = data.data;
          if (!conptId) {
            this.dept = "全科"; //默认展示全科
          } else {
            // 科室id转成name显示
            this.deptList.map((v, i) => {
              if (v.conceptId == conptId) {
                this.dept = v.name;
              }
            });
          }
          const total = this.deptList.length;
          const average = parseInt(total / 3);
          const mod = total % 3; //余数
          const firstGroup = this.deptList.slice(0, average);
          let secGroup = [];
          let thirdGroup = [];
          let tempArr = [];
          if (mod == 2) {
            secGroup = this.deptList.slice(average, average * 2 + 1);
            thirdGroup = this.deptList.slice(average * 2 + 1, total);
          } else {
            secGroup = this.deptList.slice(average, average * 2);
            thirdGroup = this.deptList.slice(average * 2, total);
          }
          tempArr.push(
            { label: 1, deptList: firstGroup },
            { label: 2, deptList: secGroup },
            { label: 3, deptList: thirdGroup }
          );
          this.deptListArr = tempArr;
        }
      });
    },
    reViewData(data) {
      let tmpObj = [
        {
          isConcept: data.isConcept,
          libName: data.libName,
          remark: data.remark,
          spell: data.spell,
          type: data.typeName,
          conceptId: this.copy ? "" : data.conceptId,
          libId: this.copy ? "" : data.libId,
          isHasCommon: data.isHasCommon,
          synonymName: data.synonymName,
          status: data.status,
          libType: data.libType,
        },
      ];
      for (let i = 0; i < data.klConceptSub.length; i++) {
        let tmp = data.klConceptSub[i];
        tmp.libName = tmp.synonymName;
        tmp.type = tmp.typeName;
        tmp.libType = tmp.libType;
      }

      data.libName = tmpObj;
      data.otherNames = data.klConceptSub;
      return data;
    },
    getDetail(ids, libType) {
      if (ids) {
        api
          .getBaseConceptAll({ conceptId: ids, libType: libType })
          .then((res) => {
            const result = res.data;
            let redata = this.reViewData(result.data);
            if (result.code == 0) {
              this.data = redata.libName[0];
              this.klOperationVO = redata.klOperationDTO
                ? redata.klOperationDTO
                : this.klOperationVO;

              this.klVitalResultVO = redata.klVitalResultDTO
                ? redata.klVitalResultDTO
                : this.klVitalResultVO;

              this.klPacsVO = redata.klPacsDTO
                ? redata.klPacsDTO
                : this.klPacsVO;
              this.klLisVO = redata.klLisDTO ? redata.klLisDTO : this.klLisVO;
              this.klSymptomVO = redata.klSymptomDTO
                ? redata.klSymptomDTO
                : this.klSymptomVO;
              this.klDiseaseVO = redata.klDiseaseDTO
                ? redata.klDiseaseDTO
                : this.klDiseaseVO;
              this.radio = this.klLisVO.qualitative == "" ? 1 : 2;
              this.klTcmDiseaseVO = redata.klTcmDiseaseDTO
                ? redata.klTcmDiseaseDTO
                : this.klTcmDiseaseVO;
              this.klTcmSyndromeVO = redata.klTcmSyndromeDTO
                ? redata.klTcmSyndromeDTO
                : this.klTcmSyndromeVO;
              this.klDrugVO = redata.klDrugDTO
                ? redata.klDrugDTO
                : this.klDrugVO;

              this.singleword = redata.libName;
              this.synonymous = redata.otherNames;
              this.allwords = redata.libName.concat(redata.otherNames);
              this.showMore = redata.isHasCommon; //是否支持通用扩展
              this.maxAge = redata.maxAge;
              this.minAge = redata.minAge;
              this.maxValue = redata.maxVal;
              this.minValue = redata.minVal;
              this.description = redata.description;
              this.explains = redata.explains;
              this.drug = redata.drug;
              this.drugC = redata.drugC;
              // console.log("redata.drugC:", redata.drugC);
              // console.log("sexType:", result.data.sexType);
              this.sexType = result.data.sexType;
              if (type == "诊断") {
                this.dioType = redata.classify || "Ⅰ"; //类型，默认展示Ⅰ类
                const deptConptId = redata.deptId;
                this.getDioType(true);
                this.getDdeptList(deptConptId);
              }

              // this.sexType = result.data.sexType;
              // let sexType = redata.sexType;
              // this.sex.map((v, i) => {
              //   if (v.value == sexType) {
              //     this.sexType = v.name;
              //   }
              // });
            } else {
              this.$message({
                message: result.msg,
                type: "warning",
              });
            }
          });
      }
    },
    getTypeList() {
      api
        .baseTypeGetPage({ name: "", size: 1000 })
        .then((res) => {
          const data = res.data;
          if (data.code == 0) {
            let types = data.data.records;
            this.typeList = types;
            // 类型改成平铺
            this.options.push({ label: 1, options: types });
            // this.typeList = data.data;
            /*if (types.length > 0) {
              const total = types.length;
              const average = parseInt(total / 3);
              const mod = total % 3; //余数
              const firstGroup = types.slice(0, average);
              let secGroup = [];
              let thirdGroup = [];
              if (mod == 2) {
                secGroup = types.slice(average, average * 2 + 1);
                thirdGroup = types.slice(average * 2 + 1, total);
              } else {
                secGroup = types.slice(average, average * 2);
                thirdGroup = types.slice(average * 2, total);
              }
              this.options.push(
                { label: 1, options: firstGroup },
                { label: 2, options: secGroup },
                { label: 3, options: thirdGroup }
              );
            }*/
          } else {
            this.$message({
              message: data.msg,
              type: "warning",
            });
          }
        })
        .catch((error) => {
          console.log(error);
        });
    },
    handleBlurGuo() {
      const pattern = /[^0-9]/g;
      if (this.klDiseaseVO.guoname && !pattern.test(this.klDiseaseVO.guoname)) {
        this.$message({
          message: "无法输入纯数字，请输入正确数据！",
          type: "warning",
        });
        this.guounfix = true;
      } else {
        let data = this.klDiseaseVO;
        data.guospell = pinyin.getCamelChars(data.guoname);
        this.guounfix = false;
      }
    },
    handleBlur(type, index, flg) {
      // 不能为纯数字、纯字符、纯数字加字符 4-18
      // const pattern = /[^~@#$%^&*_\-+=,，.。:："“？?”；;、!！0-9]/g;
      // 需求更改：不能为纯数字，其余均可输入 5-20
      const pattern = /[^0-9]/g;
      if (type == 1) {
        //标准词输入
        if (this.data.libName && !pattern.test(this.data.libName)) {
          this.$message({
            // message:'无法输入纯数字或者纯字符，请输入正确数据！',
            message: "无法输入纯数字，请输入正确数据！",
            type: "warning",
          });
          // this.data.libName = '';
          this.unfit = true;
        } else {
          let data = this.data;
          data.spell = pinyin.getCamelChars(data.libName);
          this.unfit = false;
          this.searchType = "standard";
          this.getSimilarList(this.data.libName);
        }
      } else if (type == 2) {
        // 修改时术语名称、拼音和类型均不能修改
        if (flg == 99) {
          // if(this.synonymous[index-1].name && !pattern.test(this.synonymous[index-1].name)){
          if (
            this.allwords[index].libName &&
            !pattern.test(this.allwords[index].libName)
          ) {
            this.$message({
              message: "无法输入纯数字，请输入正确数据！",
              type: "warning",
            });
            // this.synonymous[index-1].name = '';
            this.unfit = true;
          } else {
            // let current = this.synonymous[index-1];
            let current = this.allwords[index];
            current.spell = pinyin.getCamelChars(current.libName);
            this.unfit = false;
            this.searchType = "standard";
            this.searchIndex = index;
            this.getSimilarList(this.allwords[index].libName);
          }
        } else {
          if (
            this.synonymous[index].libName &&
            !pattern.test(this.synonymous[index].libName)
          ) {
            this.$message({
              message: "无法输入纯数字，请输入正确数据！",
              type: "warning",
            });
            // this.synonymous[index].name = '';
            this.unfit = true;
          } else {
            let current = this.synonymous[index];
            current.spell = pinyin.getCamelChars(current.libName);
            this.unfit = false;
            this.searchType = "similar";
            this.searchIndex = index;
            this.getSimilarList(current.libName);
          }
        }
      }
    },
    handlePinyin(e, flag, index) {
      //只能输入英文
      e.target.value = e.target.value.replace(/[^a-zA-Z]/g, "");
      // 解决输入数字不触发更新
      if (flag == 1) {
        //标准词
        this.data.spell = e.target.value;
      } else if (flag == 2) {
        //同义词-修改
        this.allwords[index].spell = e.target.value;
      } else if (flag == 3) {
        //同义词-新增
        this.synonymous[index].spell = e.target.value;
      }
      // e.target.value = e.target.value.replace(/[^a-zA-Z]/g,'');
    },
    getSimilarList(name) {
      //不知道还有没有用
      return;
      if (!name) {
        this.closeTable();
        return;
      }
      const param = {
        inputStr: name,
      };
      api.getSimilarList(param).then((res) => {
        this.similarList = res.data.data;
      });
    },
    addSpan(type) {
      let singleSpan = {
        libName: "",
        remark: "",
        isConcept: 0,
        isEdit: true,
        spell: null,
      };
      if (type == 55) {
        this.allwords.push(singleSpan);
        this.synonymous.push(singleSpan);
      } else {
        this.synonymous.push(singleSpan);
      }
    },
    warning(msg, type) {
      this.$message({
        showClose: true,
        message: msg,
        type: type || "warning",
      });
    },
    showConfirmDialog(msg, resolve) {
      this.$alert(msg, "提示", {
        confirmButtonText: "确定",
        type: "warning",
      })
        .then(() => {
          resolve();
        })
        .catch(() => {});
    },
    deleLine(index, type, item) {
      // 只在界面删除数据，待点确认 后参才真正删除
      if (type == 55) {
        const { libId } = item;
        if (libId) {
          api.clearConceptInfo({ libId }).then((res) => {
            const result = res.data;
            if (result.code == 0) {
              this.synonymous.splice(index - 1, 1);
              this.allwords.splice(index, 1);
            }
          });
        } else {
          this.synonymous.splice(index - 1, 1);
          this.allwords.splice(index, 1);
        }
      } else {
        this.synonymous.splice(index, 1);
      }
    },
    // 保存基础术语
    handleConfirm(flg) {
      // console.log(this.synonymous);
      if (!this.data.libName) {
        this.warning("请输入医学标准术语名称");
        return;
      }
      if (!this.data.libType && !this.unfit && !this.data.type) {
        this.warning("请选择术语类型");
        return;
      }
      if (this.guounfix) {
        this.warning("ICD10国临版名称不能为纯数字");
        return;
      }
      // 年龄为必填项--2019-6-5需求
      if (this.showMore == 1) {
        if ((!this.minAge && this.minAge !== 0) || !this.maxAge) {
          this.warning("年龄不能为空，区间为0-200");
          return;
        }
        if (
          this.minAge < 0 ||
          this.minAge > 200 ||
          this.maxAge < 0 ||
          this.maxAge > 200
        ) {
          this.warning("年龄必须是0-200");
          return;
        }
        if (this.minAge >= this.maxAge) {
          this.warning("年龄最小值应该小于最大值");
          return;
        }
        if (this.data.type == "实验室检查子项目") {
          if (
            this.minValue < 0 ||
            this.minValue > 99999 ||
            this.maxValue < 0 ||
            this.maxValue > 99999
          ) {
            this.warning("取值范围必须是0-99999切单位不能为空");
            return;
          }
          if (
            this.minValue &&
            this.maxValue &&
            this.minValue >= this.maxValue
          ) {
            this.warning("最小值应该小于最大值");
            return;
          }
        }
      }
      if (
        this.data.type == "药品通用名" &&
        (this.klDrugVO.drug === "" || this.klDrugVO.drug === null)
      ) {
        this.warning("请选择药品类型");
        return;
      }
      // 过滤同义词空数据
      let realData = [];
      if (this.id) {
        //修改用暂存的列表
        realData = this.synonymous.filter((item) => {
          return item.libName;
        });
        let tmpArr = [];
        for (let k = 0; k < realData.length; k++) {
          if (realData[k].isConcept == 1) {
            let tmpdata = JSON.parse(JSON.stringify(this.data));
            tmpArr.push(realData[k]);
            realData.splice(k, 1);
            tmpdata.isConcept = 0;
            realData.push(tmpdata);
            this.data = tmpArr[0];
          }
        }
      } else {
        realData = this.synonymous.filter((item) => {
          return item.libName;
        });
      }
      let detailList = [];
      for (let i = 0; i < realData.length; i++) {
        let obj = {};
        realData[i].synonymName = realData[i].libName;
        realData[i].conceptId = undefined;
        realData[i].status = undefined;
        realData[i].libType = this.data.libType;
        if (this.copy) {
          realData[i].libId = undefined;
        }
        // obj.isConcept=realData[i].isConcept
        // obj.remark=realData[i].remark
        // obj.spell=realData[i].spell

        detailList.push(realData[i]);
        // detailList.push(obj);
      }
      // 校验是否有名称全为数字
      const pattern = /[^0-9]/g;
      const tmpData = this.data.libName;
      if (tmpData && !tmpData.match(pattern)) {
        this.$message({
          message: "无法输入纯数字，请输入正确数据！",
          type: "warning",
        });
        return false;
      }
      for (let d = 0; d < detailList.length; d++) {
        let dname = detailList[d].name;
        // if(detailList[d].name && !pattern.test(detailList[d].name)){
        if (dname && !dname.match(pattern)) {
          if (!this.unfit) {
            //避免和失焦事件同事弹出
            this.$message({
              message: "无法输入纯数字，请输入正确数据！",
              type: "warning",
            });
          }
          this.unfit = false;
          return false;
          break;
        }
      }
      // if (this.data.type == '症状' && !this.description) {
      //   this.warning('请输入填写单患者界面展示通俗内容');
      //   return;
      // }
      let params;
      let sexCode = this.sexType;

      params =
        this.data.libType == 106
          ? {
              ...this.data,
              klOperationVO: this.klOperationVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 105
          ? {
              ...this.data,
              klVitalResultVO: this.klVitalResultVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 110 || this.data.libType == 109
          ? {
              ...this.data,
              klPacsVO: this.klPacsVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 107
          ? {
              ...this.data,
              klLisVO: this.klLisVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 108
          ? {
              ...this.data,
              klLisVO: this.klLisVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 103
          ? {
              ...this.data,
              klSymptomVO: this.klSymptomVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 100
          ? {
              ...this.data,
              klDiseaseVO: this.klDiseaseVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 127
          ? {
              ...this.data,
              klTcmDiseaseVO: this.klTcmDiseaseVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 128
          ? {
              ...this.data,
              klTcmSyndromeVO: this.klTcmSyndromeVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : this.data.libType == 101
          ? {
              ...this.data,
              klDrugVO: this.klDrugVO,
              klConceptSub: detailList || [],
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
              status: this.data.status || 1,
            }
          : {
              ...this.data,
              klConceptSub: detailList || [],
              status: this.data.status || 1,
              sexType: sexCode,
              maxAge: this.maxAge,
              minAge: this.minAge,
            };
      // console.log(params);
      // return false
      this.saveDisable = true; //提交保存按钮不可点击，返回结果时才可点击，防止频繁发送请求
      api.saveBaseConceptInfo(params).then((res) => {
        const result = res.data;
        if (result.code == 0) {
          this.warning(res.data.msg || "操作成功", "success");
          //返回带搜索条件的首页
          this.$router.push({
            name: "BasicTermsMaintenance",
            params: Object.assign({}, this.$route.params, { currentPage: 1 }),
          });
        } else {
          this.warning(res.data.msg);
        }
        this.saveDisable = false;
      });
    },
    inputAge() {
      // console.log("输入年龄")
    },
    destroyed() {
      this.hackReset = false; //销毁组件
      this.$nextTick(() => {
        this.hackReset = true; //重建组件
      });
    },
    selectType(e) {
      this.typeList.map((v, i) => {
        if (v.name == e) {
          // console.log(v.code);
          this.showMore = v.isHasCommon;
          this.data.libType = v.code;
          this.data.isHasCommon = v.isHasCommon;
          this.conceptList = [];
          this.destroyed();
        }
      });
      if (e == "诊断") {
        this.getDioType();
        this.getDdeptList();
      } else {
        this.dioType = "";
        this.dept = "";
      }
    },
  },
  components: {
    SimilarListDrag,
    DivEditable,
    searchTerm,
  },
};
</script>
<style lang="less" scoped>
@import "../../less/admin.less";
table,
tr,
td {
  list-style: none;
}
/deep/ .radioWrap .el-radio {
  display: block;
  height: 41px;
  line-height: 41px;
  text-align: right;
  margin-left: 0;
}
/deep/ .moreInfo .el-form-item .el-form-item__label {
  width: 85px;
  text-align: left;
}
.txt {
  /deep/.el-textarea__inner {
    min-height: 40px;
    max-height: 73px;
  }
}
.tips {
  /deep/.el-form-item__content {
    display: flex;
    align-items: center;
    .divBox {
      flex: 1;
    }
    .titles {
      flex: 0.25;
      font-size: 14px;
      line-height: 20px;
      color: red;
      margin-left: 10px;
    }
  }
}
// 饿了么分组下拉
el-select-dropdown {
  .el-scrollbar {
    /deep/.el-scrollbar__view {
      display: flex !important;
      max-width: 100% !important;
      /deep/.el-select-group__wrap {
        min-width: 160px !important;
        display: inline-block !important;
        vertical-align: top !important;
      }
    }
  }
}

.range {
  margin-top: 20px;
}
.el-select-group__wrap::after {
  background: #fff !important;
}
.displayColor {
  color: #ccc;
  cursor: not-allowed;
}
.delete {
  cursor: pointer;
}
.content {
  background: #fff;
  padding: 20px 20px 30px;
  color: #545455;
}
.titl {
  margin: 25px 0 10px;
}
input:focus {
  border-color: #48c5d7 !important;
}
.deptbox {
  // width: 100%;
  background: #fff;
  padding: 20px 10px 30px;
  font-size: 14px;
  text-align: left;
  border-collapse: collapse;
  > tr {
    height: 30px;
    text-align: center;
    td {
      width: 135px;
      border: 1px solid #666;
      padding: 5px;
      position: relative;
    }
    input {
      border: none;
      border: 1px solid #ccc;
      width: 100%;
      height: 30px;
      padding: 0 7px;
      box-sizing: border-box;
      border-radius: 4px;
    }
    .ind {
      width: 55px;
    }
    .desc {
      width: 280px;
    }
    .descs {
      width: 50px;
    }
  }
  .addSpan {
    text-align: center;
    cursor: pointer;
  }
}
.deptboxTable {
  width: 100%;
}
.deptboxChange {
  padding-right: 210px;
  position: relative;
}
.actionDo {
  width: 200px;
  position: absolute;
  top: 1px;
  right: 0;
  .btnWrap {
    height: 30px;
  }
}
.btn {
  text-align: right;
  margin-top: 20px;
  margin-bottom: 20px;
}
.necess {
  display: inline-block;
  vertical-align: middle;
  color: red;
  margin-left: 2px;
}
.moreInfo {
  border-top: 1px solid #c0c4cc;
  margin-top: 45px;
  p {
    margin: 15px 0;
  }
}
.spell {
  text-align: center;
}
/deep/.ages {
  margin-top: 20px;
  position: relative;
  .el-input {
    display: inline-block;
    width: auto;
    .el-input__inner {
      width: 80px;
      padding: 0 5px;
      text-align: center;
    }
    .el-input__inner::-webkit-outer-spin-button,
    .el-input__inner::-webkit-inner-spin-button {
      -webkit-appearance: none;
    }
    .el-input__inner[type="number"] {
      -moz-appearance: textfield;
    }
  }
  .ageLine {
    display: inline-block;
    margin: 0 35px;
  }
  .inp {
    margin-left: 20px;
  }
}
/deep/ .marT {
  margin-top: 20px;
}
/deep/.description {
  position: relative;
  .necess {
    position: absolute;
    left: -158px;
    z-index: 2;
  }
  .el-input__inner {
    width: 200px;
    height: 40px;
    line-height: 40px;
    //  text-align: center;
  }
}
</style>