瀏覽代碼

基础术语

wyq 4 年之前
父節點
當前提交
0053afd524
共有 3 個文件被更改,包括 394 次插入187 次删除
  1. 353 155
      src/components/basicKnow/AddTerm.vue
  2. 22 16
      src/components/basicKnow/DivEditable.vue
  3. 19 16
      src/components/basicKnow/searchTerm.vue

+ 353 - 155
src/components/basicKnow/AddTerm.vue

@@ -231,33 +231,34 @@
               <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-input v-model.trim="minValue" type="number" @input="inputAge"></el-input>
+            <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" class="ages">
+              <el-input v-model.trim="klLisVO.minValue" type="number" @input="inputAge"></el-input>
               <span class="ageLine">~</span>
-              <el-input v-model.trim="maxValue" type="number" @input="inputAge"></el-input>
+              <el-input v-model.trim="klLisVO.maxValue" type="number" @input="inputAge"></el-input>
               <el-input
                 class="inp"
-                v-model.trim="unit"
+                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" class="ages">
+              <div-editable v-model="klLisVO.qualitative" :Maincontent="'Maincontent'"></div-editable>
+            </el-form-item>
             <el-form-item v-if="data.type=='实验室检查子项目'" label="范围:" class="range">
-              <el-select v-model="rangeSelect">
-                <el-option v-for="(it,i) in range" :key="i" :label="it.name" :value="it.name"></el-option>
+              <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>
             </el-form-item>
-            <el-form-item
-              v-if="data.type=='疾病'"
-              label="ICD10编码:"
-              prop="description"
-              class="marT description"
-            >
-              <span class="necess">*</span>
-              <el-input v-model.trim="icdCode" maxlength="30" placeholder="请输入编码"></el-input>
-            </el-form-item>
+
             <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> -->
@@ -286,9 +287,9 @@
               v-if="data.type=='辅助检查项目' || data.type=='辅助检查子项目'"
               class="marT is-required"
             >
-              <el-radio-group v-model="critical">
-                <el-radio :label="3">是</el-radio>
-                <el-radio :label="6">否</el-radio>
+              <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
@@ -296,23 +297,14 @@
               v-if="data.type=='辅助检查项目' || data.type=='辅助检查子项目'"
               class="marT"
             >
-              <span class="address-placeholder">请输入</span>
-              <div
-                class="test_box"
-                ref="Maincontent"
-                @input="handleInput"
-                @compositionstart="handleStart"
-                @compositionend="handleEnd"
-                placeholder="请输入"
-                contenteditable="true"
-              ></div>
+              <div-editable v-model="klPacsVO.checkMethod" :Maincontent="'checkMethod'"></div-editable>
             </el-form-item>
             <el-form-item
               label="检查技术:"
               v-if="data.type=='辅助检查项目' || data.type=='辅助检查子项目'"
               class="marT"
             >
-              <el-input v-model.trim="unit" placeholder="请输入" maxlength="200" type="text"></el-input>
+              <div-editable v-model="klPacsVO.checkSkillful" :Maincontent="'checkSkillful'"></div-editable>
             </el-form-item>
             <el-form-item
               label="项目定义:"
@@ -322,7 +314,7 @@
               <el-input
                 type="textarea"
                 row="3"
-                v-model.trim="unit"
+                v-model.trim="klPacsVO.definition"
                 placeholder="请输入"
                 maxlength="500"
               ></el-input>
@@ -335,7 +327,7 @@
               <el-input
                 type="textarea"
                 row="3"
-                v-model.trim="unit"
+                v-model.trim="klPacsVO.checkObjective"
                 placeholder="请输入"
                 maxlength="500"
               ></el-input>
@@ -348,7 +340,7 @@
               <el-input
                 type="textarea"
                 row="3"
-                v-model.trim="unit"
+                v-model.trim="klPacsVO.condLimit"
                 placeholder="请输入"
                 maxlength="500"
               ></el-input>
@@ -361,7 +353,7 @@
               <el-input
                 type="textarea"
                 row="3"
-                v-model.trim="unit"
+                v-model.trim="klPacsVO.interventional"
                 placeholder="请输入"
                 maxlength="500"
               ></el-input>
@@ -374,198 +366,276 @@
               <el-input
                 type="textarea"
                 row="3"
-                v-model.trim="unit"
+                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-model="klSymptomVO.enName" :Maincontent="'enNames'"></div-editable>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="就诊科室:" prop="description" class="marT">
+              <searchTerm :refbool.sync="klSymptomVO.deptList" :type="115"></searchTerm>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="发病部位:" prop="description" class="marT">
+              <searchTerm :refbool.sync="klSymptomVO.partList" :type="122"></searchTerm>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="常见伴随症状:" prop="description" class="marT">
+              <searchTerm :refbool.sync="klSymptomVO.conSymptomList" :type="103"></searchTerm>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="性质:" prop="description" class="marT">
+              <searchTerm :refbool.sync="klSymptomVO.natureList" :type="126"></searchTerm>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="缓解因素:" prop="description" class="marT">
+              <div-editable v-model="klSymptomVO.mitigatingFac" :Maincontent="'mitigatingFac'"></div-editable>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="加重因素:" prop="description" class="marT">
+              <div-editable v-model="klSymptomVO.aggravateFac" :Maincontent="'aggravateFac'"></div-editable>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="通俗解释:" prop="description" class="marT">
+              <div-editable v-model="klSymptomVO.commonExplain" :Maincontent="'commonExplain'"></div-editable>
+            </el-form-item>
+            <el-form-item v-if="data.type=='症状'" label="定义:" prop="description" class="marT">
+              <el-input
+                type="textarea"
+                row="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"
+                row="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"
+                row="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"
+                row="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"
+                row="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="发病率:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.incidence" :Maincontent="'Maincontent'"></div-editable>
             </el-form-item>
 
             <el-form-item label="遗传性:" v-if="data.type=='疾病'" class="marT">
-              <el-radio-group v-model="critical">
-                <el-radio :label="3">是</el-radio>
-                <el-radio :label="6">否</el-radio>
+              <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="critical">
-                <el-radio :label="3">是</el-radio>
-                <el-radio :label="6">否</el-radio>
+              <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="critical">
-                <el-radio :label="3">是</el-radio>
-                <el-radio :label="6">否</el-radio>
+              <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 label="疾病就诊科室:" v-if="data.type=='疾病'" class="marT">
-              <el-select
-                clearable
-                remote
-                filterable
-                :remote-method="searchConcept"
-                v-model.trim="value"
-              >
-                <el-option
-                  v-for="item in conceptList"
-                  :key="item.conceptId"
-                  :label="item.conceptName"
-                  :value="item.conceptId"
-                ></el-option>
-              </el-select>
+              <searchTerm :refbool.sync="klDiseaseVO.deptList" :type="115"></searchTerm>
             </el-form-item>
             <el-form-item label="疾病发病部位:" v-if="data.type=='疾病'" class="marT">
-              <el-select
-                v-model="value"
-                multiple
-                filterable
-                allow-create
-                default-first-option
-                placeholder="请选择文章标签"
-              >
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                ></el-option>
-              </el-select>
+              <searchTerm :refbool.sync="klDiseaseVO.partList" :type="122"></searchTerm>
             </el-form-item>
             <el-form-item label="疾病系统分类:" v-if="data.type=='疾病'" class="marT">
-              <el-select v-model="value" filterable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                ></el-option>
-              </el-select>
+              <searchTerm :refbool.sync="klDiseaseVO.systemTypeList" :type="307"></searchTerm>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="英文名称:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.enName" :Maincontent="'enNamej'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="英文简称:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.enNameSimple" :Maincontent="'enNameSimple'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="疾病简称:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.nameSimple" :Maincontent="'nameSimple'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="好发人群:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.vulCrowd" :Maincontent="'vulCrowd'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="好发地区:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.vulArea" :Maincontent="'vulArea'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="病程:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.course" :Maincontent="'course'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="危害性:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.pernicious" :Maincontent="'pernicious'"></div-editable>
             </el-form-item>
-            <el-form-item v-if="data.type=='疾病'" label="治愈:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+            <el-form-item v-if="data.type=='疾病'" label="治愈:" prop="description" class="marT">
+              <div-editable v-model="klDiseaseVO.healing" :Maincontent="'healing'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="诱因:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+              <div-editable v-model="klDiseaseVO.inducement" :Maincontent="'inducement'"></div-editable>
             </el-form-item>
             <el-form-item v-if="data.type=='疾病'" label="疾病分型:" prop="description" class="marT">
               <el-input
-                v-model.trim="icdCode"
+                v-model.trim="klDiseaseVO.disType"
                 maxlength="500"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="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="icdCode"
+                v-model.trim="klDiseaseVO.complication"
                 maxlength="500"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="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="icdCode"
+                v-model.trim="klDiseaseVO.clinicType"
                 maxlength="500"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="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="icdCode"
+                v-model.trim="klDiseaseVO.pathogeny"
                 maxlength="500"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="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="icdCode"
+                v-model.trim="klDiseaseVO.hazard"
                 maxlength="500"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="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="icdCode"
+                v-model.trim="klDiseaseVO.foodProhibition"
                 maxlength="500"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="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="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+            <el-form-item
+              v-if="data.type=='实验室检查套餐' || data.type=='实验室检查子项目'"
+              label="英文缩写:"
+              prop="description"
+              class="marT"
+            >
+              <div-editable v-model="klLisVO.enName" :Maincontent="'enName'"></div-editable>
             </el-form-item>
-            <el-form-item v-if="data.type=='实验室检查套餐'" label="所属类别:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+            <el-form-item
+              v-if="data.type=='实验室检查套餐' || data.type=='实验室检查子项目'"
+              label="所属类别:"
+              prop="description"
+              class="marT"
+            >
+              <div-editable v-model="klLisVO.category" :Maincontent="'category'"></div-editable>
             </el-form-item>
-            <el-form-item v-if="data.type=='实验室检查套餐'" label="检查标本:" prop="description" class="marT">
-              <el-input v-model.trim="icdCode" maxlength="200" placeholder="请输入编码"></el-input>
+            <el-form-item
+              v-if="data.type=='实验室检查套餐' || data.type=='实验室检查子项目'"
+              label="检查标本:"
+              prop="description"
+              class="marT"
+            >
+              <div-editable v-model="klLisVO.checkSpecimen" :Maincontent="'checkSpecimen'"></div-editable>
             </el-form-item>
-            <el-form-item v-if="data.type=='实验室检查套餐'" label="临床意义:" prop="description" class="marT">
+            <el-form-item
+              v-if="data.type=='实验室检查套餐' || data.type=='实验室检查子项目'"
+              label="临床意义:"
+              prop="description"
+              class="marT"
+            >
               <el-input
-                v-model.trim="icdCode"
+                v-model.trim="klLisVO.clinicalSig"
                 maxlength="200"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="3"
                 type="textarea"
               ></el-input>
             </el-form-item>
-            <el-form-item v-if="data.type=='实验室检查套餐'" label="影响因素:" prop="description" class="marT">
+            <el-form-item
+              v-if="data.type=='实验室检查套餐' || data.type=='实验室检查子项目'"
+              label="影响因素:"
+              prop="description"
+              class="marT"
+            >
               <el-input
-                v-model.trim="icdCode"
+                v-model.trim="klLisVO.influenceFac"
                 maxlength="200"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="3"
                 type="textarea"
               ></el-input>
             </el-form-item>
-            <el-form-item v-if="data.type=='实验室检查套餐'" label="检查方法:" prop="description" class="marT">
+            <el-form-item
+              v-if="data.type=='实验室检查套餐' || data.type=='实验室检查子项目'"
+              label="检查方法:"
+              prop="description"
+              class="marT"
+            >
               <el-input
-                v-model.trim="icdCode"
+                v-model.trim="klLisVO.checkMethod"
                 maxlength="200"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="3"
                 type="textarea"
               ></el-input>
             </el-form-item>
             <el-form-item v-if="data.type=='体格检查结果'" label="科室:" prop="description" class="marT">
-              <searchTerm v-bind:list.sync="klVitalResultVO.deptList" :type="115"></searchTerm>
+              <searchTerm :refbool.sync="klVitalResultVO.deptList" :type="115"></searchTerm>
             </el-form-item>
             <el-form-item v-if="data.type=='体格检查结果'" label="部位:" prop="description" class="marT">
-              <searchTerm :list.sync="klVitalResultVO.partList" :autoValue="true" :type="122"></searchTerm>
+              <searchTerm :refbool.sync="klVitalResultVO.partList" :type="122"></searchTerm>
             </el-form-item>
             <el-form-item v-if="data.type=='体格检查结果'" label="不适宜人群:" prop="description" class="marT">
               <div-editable v-model="klVitalResultVO.suitablePopNo" :Maincontent="'Maincontent1'"></div-editable>
@@ -574,7 +644,7 @@
               <el-input
                 v-model.trim="klVitalResultVO.checkMethod"
                 maxlength="200"
-                placeholder="请输入编码"
+                placeholder="请输入"
                 row="3"
                 type="textarea"
               ></el-input>
@@ -630,6 +700,7 @@ export default {
   name: 'AddMedicalName',
   data() {
     return {
+      radio: 1,
       minTitle: '基础术语维护-添加',
       data: {
         libName: '',
@@ -650,11 +721,83 @@ export default {
       klVitalResultVO: {
         conceptId: null,
         remark: null,
-        deptList: [],//科室
-        partList:[],//部位
+        deptList: [], //科室
+        partList: [], //部位
         suitablePopNo: '', //不适宜人群
         checkMethod: '' //操作方法
       },
+      klPacsVO: {
+        checkMethod: '', //检查方法
+        definition: '', //项目定义
+        checkObjective: '', //检查目的
+        checkSkillful: '', //检查技术
+        condLimit: '', //禁忌症和局限性
+        interventional: '', //适应症
+        emergencySign: 0, //危急标识(0:不危急,1:危急)
+        checkPrepare: '', //检查前准备
+        remark: '' //备注
+      },
+      klLisVO: {
+        minValue: '', //最小值
+        maxValue: '', //最大值
+        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编号
+        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: [] //疾病系统分类列表
+      },
       operationLevelList: [
         {
           id: '0',
@@ -688,13 +831,10 @@ export default {
       pageSize: 10,
       tmpSynonymous: [],
       sexType: '通用',
-      rangeSelect: '内',
       maxAge: 200,
       minAge: 0,
       maxValue: null,
       minValue: null,
-      unit: null,
-      icdCode: '',
       showMore: '',
       sex: [
         {
@@ -758,6 +898,12 @@ export default {
     }
   },
   methods: {
+    changeRadio() {
+      this.klLisVO.maxValue = '';
+      this.klLisVO.minValue = '';
+      this.klLisVO.qualitative = '';
+      this.klLisVO.unit = '';
+    },
     //获取科室
     searchConcept(val) {
       const param = {
@@ -878,8 +1024,22 @@ export default {
             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.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.singleword = redata.libName;
               this.synonymous = redata.otherNames;
               this.allwords = redata.libName.concat(redata.otherNames);
@@ -888,9 +1048,6 @@ export default {
               this.minAge = redata.minAge;
               this.maxValue = redata.maxVal;
               this.minValue = redata.minVal;
-              this.unit = redata.unit;
-              this.rangeSelect = redata.scopeType == '1' ? '外' : '内';
-              this.icdCode = redata.icdCode;
               this.description = redata.description;
               this.explains = redata.explains;
               this.drug = redata.drug;
@@ -1118,10 +1275,6 @@ export default {
         this.warning('请选择术语类型');
         return;
       }
-      if (this.data.type == '疾病' && !this.icdCode) {
-        this.warning('请输入ICD10编码');
-        return;
-      }
       // 年龄为必填项--2019-6-5需求
       if (this.showMore == 1) {
         if ((!this.minAge && this.minAge !== 0) || !this.maxAge) {
@@ -1266,36 +1419,81 @@ export default {
               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,
               klConceptSub: detailList || [],
               status: this.data.status || 1,
               sexType: sexCode,
-              scopeType: this.rangeSelect == '外' ? '1' : '0',
               maxAge: this.maxAge,
-              minAge: this.minAge,
-              maxVal: this.maxValue || null,
-              minVal: this.minValue || null,
-              unit: this.unit || null,
-              icdCode: this.icdCode || undefined
+              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;
-      // });
+      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("输入年龄")

+ 22 - 16
src/components/basicKnow/DivEditable.vue

@@ -1,25 +1,29 @@
 <template>
-  <div
-    class="test_box"
-    contenteditable="true"
-    v-html="innerText"
-    :ref='Maincontent'
-    @input="handleInput"
-    @compositionstart="handleStart"
-    @compositionend="handleEnd"
-    @focus="isChange = false"
-  ></div>
+  <div>
+    <div class="address-placeholder" v-show="onshow">请输入</div>
+    <div
+      class="test_box"
+      contenteditable="true"
+      v-html="innerText"
+      :ref="Maincontent"
+      @input="handleInput"
+      @compositionstart="handleStart"
+      @compositionend="handleEnd"
+      @focus="isChange = false"
+    ></div>
+  </div>
 </template>
 
 <script>
 export default {
   name: 'DivEditable',
-  props: ['value','Maincontent'],
+  props: ['value', 'Maincontent'],
   data() {
     return {
       innerText: this.value,
       isChange: true,
-      composing: false
+      composing: false,
+      onshow:true
     };
   },
   watch: {
@@ -32,6 +36,7 @@ export default {
   methods: {
     handleInput(event) {
       let text = event.target.innerText;
+      console.log(text)
       this.valueHandle(event, text);
       this.$emit('input', this.$el.innerHTML);
     },
@@ -55,8 +60,9 @@ export default {
         return;
       }
       let len = this.validateTextLength(text);
+      this.onshow = len>0?false:true
       if (len > 200) {
-        this.$refs[this.Maincontent].innerHTML = text.substr(0, 200)
+        this.$refs[this.Maincontent].innerHTML = text.substr(0, 200);
         this.$refs[this.Maincontent].focus();
       }
       setTimeout(() => {
@@ -99,12 +105,12 @@ export default {
 
 <style lang="less" scoped>
 .address-placeholder {
-  line-height: 27px;
-  height: 27px;
+  line-height: 42px;
+  height: 42px;
   color: #a2a2a2;
   position: absolute;
   left: 16px;
-  top: 0;
+  top: 6px;
   opacity: 0.7;
   font-size: 12px;
 }

+ 19 - 16
src/components/basicKnow/searchTerm.vue

@@ -1,13 +1,6 @@
 <template>
   <div>
-    <!-- <div
-      class="test_box"
-      contenteditable="true"
-      v-html="innerText"
-      @input="handleInput"
-      @focus="isChange = false"
-    ></div>-->
-
+  <div class="address-placeholder" v-show="!onshow && items.length == 0"> 请输入</div>
     <div class="source" @click="getfouce">
       <div class="select">
         <transition-group name="flip-list">
@@ -53,7 +46,7 @@
 import api from '@api/knowledgeTree.js';
 export default {
   name: 'searchTerm',
-  props: ['type'],
+  props: ['type','refbool'],
   data() {
     return {
       conceptList: [],
@@ -61,10 +54,12 @@ export default {
       newNum: 0,
       value: '',
       items: [],
-      listL: [],
       onshow: false
     };
   },
+  created(){
+    this.items = this.formatData(this.refbool)
+  },
   watch: {
     items(newVal, oldVal) {
       // TO DO
@@ -72,8 +67,8 @@ export default {
       newVal.forEach(item => {
         arr.push(item.conceptId);
       });
-      this.$emit('updata:list',arr)
-    }
+      this.$emit('update:refbool',arr)
+    },
   },
   methods: {
     handleInput(event) {
@@ -141,19 +136,27 @@ export default {
     // 记录移动过程中信息
     dragenter: function(value) {
       this.newNum = value;
-    }
+    },
+    formatData(data) {
+      //转换字段名
+      let str = JSON.stringify(data)
+        .replace(/id/g, 'conceptId')
+        .replace(/libName/g, 'conceptName');
+      //console.log(JSON.parse(str))
+      return JSON.parse(str);
+    },
   }
 };
 </script>
 
 <style lang="less" scoped>
 .address-placeholder {
-  line-height: 27px;
-  height: 27px;
+  line-height: 42px;
+  height: 42px;
   color: #a2a2a2;
   position: absolute;
   left: 16px;
-  top: 0;
+  top: 6px;
   opacity: 0.7;
   font-size: 12px;
 }