|
@@ -1,10 +1,6 @@
|
|
<!-- 添加常见科室症状 -->
|
|
<!-- 添加常见科室症状 -->
|
|
<template>
|
|
<template>
|
|
<div class="AddDiagBaseWrapper" @click="close">
|
|
<div class="AddDiagBaseWrapper" @click="close">
|
|
- <!-- <div class="groupTitle"><i
|
|
|
|
- class="el-icon-back"
|
|
|
|
- @click="back"
|
|
|
|
- ></i> 量表管理维护--{{titleText}}</div> -->
|
|
|
|
<crumbs
|
|
<crumbs
|
|
:title="'诊断依据数据维护-'+titleText"
|
|
:title="'诊断依据数据维护-'+titleText"
|
|
class="topBack"
|
|
class="topBack"
|
|
@@ -32,58 +28,82 @@
|
|
</el-form>
|
|
</el-form>
|
|
<div class="symptomList">
|
|
<div class="symptomList">
|
|
<p>疾病特征:</p>
|
|
<p>疾病特征:</p>
|
|
- <table class="indexTab">
|
|
|
|
|
|
+ <table class="diagTable">
|
|
<tr class="tableTitle">
|
|
<tr class="tableTitle">
|
|
<td class="FeatureSort">排序</td>
|
|
<td class="FeatureSort">排序</td>
|
|
- <td class="FeatureType">类型</td>
|
|
|
|
- <td class="FeatureNumber">序号</td>
|
|
|
|
- <td class="FeatureStand">标准词</td>
|
|
|
|
- <td class="FeatureELATE">关联词</td>
|
|
|
|
|
|
+ <td class="FeatureType require">类型</td>
|
|
|
|
+ <td class="FeatureNumber require">序号</td>
|
|
|
|
+ <td class="FeatureStand require">标准词</td>
|
|
|
|
+ <td class="FeatureRelate">关联词</td>
|
|
<td class="FeatureResult">结果</td>
|
|
<td class="FeatureResult">结果</td>
|
|
|
|
+ <td class="FeatureOpera"></td>
|
|
</tr>
|
|
</tr>
|
|
- <tr v-for="(item, index) in selectedIndexList" :key="item.indexUnique">
|
|
|
|
- <td class="FeatureType">{{index +1}}</td>
|
|
|
|
- <td class="FeatureNumber">序号</td>
|
|
|
|
- <td class="FeatureStand">标准词</td>
|
|
|
|
- <td class="FeatureELATE">关联词</td>
|
|
|
|
- <td class="FeatureResult">结果</td>
|
|
|
|
|
|
+ <tr v-for="(item, index) in disFeatureList" :key="item.indexUnique">
|
|
|
|
+ <td class="FeatureSort">{{index+1}}</td>
|
|
|
|
+ <td class="FeatureType">
|
|
|
|
+ <el-select size="mini" v-model="item.type" placeholder="标签类型" clearable>
|
|
|
|
+ <el-option v-for="item in typeList" :label="item.name" :value="item.val" :key="item.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </td>
|
|
|
|
+ <td class="FeatureNumber"><input class="groupInput" type="text" v-model="item.code" @input="handleInp(index,$event)"></td>
|
|
|
|
+ <td class="FeatureStand"><input class="groupInput" type="text" v-model="item.standard" @input="handleInp(index,$event)"></td>
|
|
|
|
+ <td class="FeatureRelate"><input class="groupInput" type="text" v-model="item.relation" @input="handleInp(index,$event)"></td>
|
|
|
|
+ <td class="FeatureResult"><input class="groupInput" type="text" v-model="item.result" @input="handleInp(index,$event)"></td>
|
|
|
|
+ <td class="FeatureOpera">
|
|
|
|
+ <el-button type="text" size="small" class="delete" @click="addItem(index, 1)">增加</el-button>
|
|
|
|
+ <el-button v-if="index !=0" type="text" size="small" class="delete" @click="delItem(index, 1)">删除</el-button>
|
|
|
|
+ </td>
|
|
</tr>
|
|
</tr>
|
|
</table>
|
|
</table>
|
|
<p>诊断公式:</p>
|
|
<p>诊断公式:</p>
|
|
- <table class="indexTab">
|
|
|
|
|
|
+ <table class="diagTable">
|
|
<tr class="tableTitle">
|
|
<tr class="tableTitle">
|
|
- <td class="FeatureSort">排序</td>
|
|
|
|
- <td class="FeatureType">类型</td>
|
|
|
|
- <td class="FeatureNumber">序号</td>
|
|
|
|
- <td class="FeatureStand">标准词</td>
|
|
|
|
- <td class="FeatureELATE">关联词</td>
|
|
|
|
- <td class="FeatureResult">结果</td>
|
|
|
|
|
|
+ <td class="FormulaSort">排序</td>
|
|
|
|
+ <td class="FormulaType">类型</td>
|
|
|
|
+ <td class="FormulaNumber">公式</td>
|
|
|
|
+ <td class="FormulaOpera"></td>
|
|
</tr>
|
|
</tr>
|
|
- <tr v-for="(item, index) in selectedIndexList" :key="item.indexUnique">
|
|
|
|
- <td class="FeatureType">{{index +1}}</td>
|
|
|
|
- <td class="FeatureNumber">序号</td>
|
|
|
|
- <td class="FeatureStand">标准词</td>
|
|
|
|
- <td class="FeatureELATE">关联词</td>
|
|
|
|
- <td class="FeatureResult">结果</td>
|
|
|
|
|
|
+ <tr v-for="(item, index) in disFormulaList" :key="item.indexUnique">
|
|
|
|
+ <td class="FormulaSort">{{index +1}}</td>
|
|
|
|
+ <td class="FormulaType">
|
|
|
|
+ <el-select size="mini" v-model="item.type" placeholder="标签类型" clearable>
|
|
|
|
+ <el-option v-for="item in typeList" :label="item.name" :value="item.val" :key="item.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </td>
|
|
|
|
+ <td class="FormulaNumber"><input class="groupInput" type="text" v-model="item.formula" @input="handleInp(index,$event)"></td>
|
|
|
|
+ <td class="FeatureOpera">
|
|
|
|
+ <el-button type="text" size="small" class="delete" @click="addItem(index, 2)">增加</el-button>
|
|
|
|
+ <el-button v-if="index !=0" type="text" size="small" class="delete" @click="delItem(index, 2)">删除</el-button>
|
|
|
|
+ </td>
|
|
<!-- <td class="selectedContent ">{{item.indexUnique}}</td>
|
|
<!-- <td class="selectedContent ">{{item.indexUnique}}</td>
|
|
<td class="selectedContentGroup"><input class="groupInput" type="text" v-model="item.indexDesc" @input="handleInp(index,$event)"></td>
|
|
<td class="selectedContentGroup"><input class="groupInput" type="text" v-model="item.indexDesc" @input="handleInp(index,$event)"></td>
|
|
<td class="selectedContentOpera"><el-button type="text" size="small" class="delete" @click="delSelectedIndex(item, index)">删除</el-button></td> -->
|
|
<td class="selectedContentOpera"><el-button type="text" size="small" class="delete" @click="delSelectedIndex(item, index)">删除</el-button></td> -->
|
|
</tr>
|
|
</tr>
|
|
</table>
|
|
</table>
|
|
- </div>
|
|
|
|
- <div class="btn">
|
|
|
|
|
|
+ <div class="btn clearfix">
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ @click="submitForm()"
|
|
|
|
+ >校验并保存数据</el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ @click="exportDiagnosticAll"
|
|
|
|
+ >导出诊断依据</el-button>
|
|
<el-button
|
|
<el-button
|
|
type="primary"
|
|
type="primary"
|
|
- :disabled = 'saveDisable'
|
|
|
|
- @click="submitForm('ruleForm')"
|
|
|
|
- >确 定</el-button>
|
|
|
|
|
|
+ @click="updateNeo"
|
|
|
|
+ >更新图谱</el-button>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import api from '@api/diagBase.js';
|
|
import api from '@api/diagBase.js';
|
|
|
|
+ import utils from '@api/utils.js';
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
name: 'AddChronicAndIndexRelation',
|
|
name: 'AddChronicAndIndexRelation',
|
|
data() {
|
|
data() {
|
|
@@ -95,8 +115,38 @@
|
|
},
|
|
},
|
|
titleText: '添加关联',
|
|
titleText: '添加关联',
|
|
diagList: [],
|
|
diagList: [],
|
|
- selectedIndexMap: [], //已经选择过的指标
|
|
|
|
- selectedIndexList: [], //选择的指标列表
|
|
|
|
|
|
+ typeList: [
|
|
|
|
+ {
|
|
|
|
+ id:'1',
|
|
|
|
+ name: '症状',
|
|
|
|
+ val: '1'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ id:'2',
|
|
|
|
+ name: '化验',
|
|
|
|
+ val: '2'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ disFeatureList: [
|
|
|
|
+ {
|
|
|
|
+ type:'',
|
|
|
|
+ code:'',
|
|
|
|
+ standard:'',
|
|
|
|
+ relation:'',
|
|
|
|
+ result:'',
|
|
|
|
+ formula:''
|
|
|
|
+ }
|
|
|
|
+ ], //疾病特征列表
|
|
|
|
+ disFormulaList:[
|
|
|
|
+ {
|
|
|
|
+ type:'',
|
|
|
|
+ code:'',
|
|
|
|
+ standard:'',
|
|
|
|
+ relation:'',
|
|
|
|
+ result:'',
|
|
|
|
+ formula:''
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
searchDiagVal: '',
|
|
searchDiagVal: '',
|
|
isEdit: false,
|
|
isEdit: false,
|
|
saveDisable: false
|
|
saveDisable: false
|
|
@@ -110,10 +160,6 @@
|
|
this.titleText = '修改关联';
|
|
this.titleText = '修改关联';
|
|
this.form.diseaseId = data.diseaseId
|
|
this.form.diseaseId = data.diseaseId
|
|
this.form.diseaseName = data.diseaseName
|
|
this.form.diseaseName = data.diseaseName
|
|
- this.selectedIndexList = data.data
|
|
|
|
- for (let i = 0; i < this.selectedIndexList.length; i++) {
|
|
|
|
- this.selectedIndexMap.push(this.selectedIndexList[i].indexUnique)
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
|
|
@@ -162,36 +208,61 @@
|
|
this.$refs['diagList'].style.display='none'
|
|
this.$refs['diagList'].style.display='none'
|
|
|
|
|
|
},
|
|
},
|
|
- delSelectedIndex(selectedItem, index) {
|
|
|
|
- this.selectedIndexMap = this.selectedIndexMap.filter((item) => {return item != selectedItem.indexUnique})
|
|
|
|
- this.selectedIndexList.splice(index, 1)
|
|
|
|
|
|
+ addItem(index, type) {
|
|
|
|
+ if(type == 1) {
|
|
|
|
+ const item = {
|
|
|
|
+ type:index+1,
|
|
|
|
+ code:'',
|
|
|
|
+ standard:'',
|
|
|
|
+ relation:'',
|
|
|
|
+ result:'',
|
|
|
|
+ }
|
|
|
|
+ this.disFeatureList.splice(index+1, 0, item)
|
|
|
|
+ }else if(type == 2) {
|
|
|
|
+ const item = {
|
|
|
|
+ type:index+1,
|
|
|
|
+ code:'',
|
|
|
|
+ standard:'',
|
|
|
|
+ relation:'',
|
|
|
|
+ result:'',
|
|
|
|
+ }
|
|
|
|
+ this.disFormulaList.splice(index+1, 0, item)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ delItem(index, type) {
|
|
|
|
+ if(type == 1) {
|
|
|
|
+ this.disFeatureList.splice(index, 1)
|
|
|
|
+ }else if(type == 2) {
|
|
|
|
+ this.disFormulaList.splice(index, 1)
|
|
|
|
+ }
|
|
},
|
|
},
|
|
- submitForm(formName) {
|
|
|
|
|
|
+ updateNeo() {
|
|
|
|
+ // const param = {
|
|
|
|
+
|
|
|
|
+ // }
|
|
|
|
+ // api.diagBaseUpdateNeo(param).then((res) =>{
|
|
|
|
+
|
|
|
|
+ // })
|
|
|
|
+ },
|
|
|
|
+ exportDiagnosticAll(){
|
|
|
|
+ // const param = {
|
|
|
|
+ // disId: ''
|
|
|
|
+ // }
|
|
|
|
+ // api.exportDiagnosticAll(param).then((res) => {
|
|
|
|
+ // utils.downloadExportedData(res.data.data,'诊断依据' )
|
|
|
|
+ // })
|
|
|
|
+ },
|
|
|
|
+ submitForm() {
|
|
if(!this.form.diseaseId) {
|
|
if(!this.form.diseaseId) {
|
|
this.warning('请选择诊断')
|
|
this.warning('请选择诊断')
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if(this.selectedIndexList.length === 0) {
|
|
|
|
- this.warning('请选择指标')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- for (let i = 0; i < this.selectedIndexList.length; i++) {
|
|
|
|
- if(!this.selectedIndexList[i].indexDesc) {
|
|
|
|
- this.warning('请填写内容分组')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
this.showDelDialog()
|
|
this.showDelDialog()
|
|
},
|
|
},
|
|
showDelDialog() {
|
|
showDelDialog() {
|
|
- this.selectedIndexList.map((item) => {
|
|
|
|
- item.diseaseId = this.form.diseaseId
|
|
|
|
- return item
|
|
|
|
- })
|
|
|
|
- const param ={
|
|
|
|
- "diseaseId": this.form.diseaseId,
|
|
|
|
- "indexConfigData": this.selectedIndexList
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+
|
|
this.showConfirmDialog('是否建立该关联?', () => {
|
|
this.showConfirmDialog('是否建立该关联?', () => {
|
|
const url = this.isEdit ?api.updateIndexConfigList(param) : api.saveIndexConfigLists(param)
|
|
const url = this.isEdit ?api.updateIndexConfigList(param) : api.saveIndexConfigLists(param)
|
|
this.saveDisable = true //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
|
|
this.saveDisable = true //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
|
|
@@ -232,9 +303,9 @@
|
|
},
|
|
},
|
|
handleInp(index,e){ //分组不能输入负数
|
|
handleInp(index,e){ //分组不能输入负数
|
|
const value = e.target.value;
|
|
const value = e.target.value;
|
|
- const item = this.selectedIndexList[index].indexDesc;
|
|
|
|
|
|
+ // const item = this.selectedIndexList[index].indexDesc;
|
|
e.target.value = value.replace(/[^\d]/g,'');
|
|
e.target.value = value.replace(/[^\d]/g,'');
|
|
- this.selectedIndexList[index].indexDesc = item.replace(/[^\d]/g,'');
|
|
|
|
|
|
+ // this.selectedIndexList[index].indexDesc = item.replace(/[^\d]/g,'');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -306,13 +377,14 @@
|
|
position: relative;
|
|
position: relative;
|
|
}
|
|
}
|
|
.symptomList {
|
|
.symptomList {
|
|
|
|
+ position: relative;
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
padding: 20px;
|
|
padding: 20px;
|
|
margin: 0px 20px 0px 20px;
|
|
margin: 0px 20px 0px 20px;
|
|
min-height: 400px;
|
|
min-height: 400px;
|
|
}
|
|
}
|
|
|
|
|
|
- .indexTab {
|
|
|
|
|
|
+ .diagTable {
|
|
width: 100%;
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
border-collapse: collapse;
|
|
tr {
|
|
tr {
|
|
@@ -321,6 +393,10 @@
|
|
border: 1px solid #a9a9a9;
|
|
border: 1px solid #a9a9a9;
|
|
text-align: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
+ .FormulaOpera, .FeatureOpera{
|
|
|
|
+ background: #fff;
|
|
|
|
+ border: none
|
|
|
|
+ }
|
|
}
|
|
}
|
|
.selectedContent {
|
|
.selectedContent {
|
|
width: 25%;
|
|
width: 25%;
|
|
@@ -339,19 +415,28 @@
|
|
width: 60%;
|
|
width: 60%;
|
|
}
|
|
}
|
|
.btn {
|
|
.btn {
|
|
- position: relative;
|
|
|
|
|
|
+ position: absolute;
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
margin: 0px 20px;
|
|
margin: 0px 20px;
|
|
height: 40px;
|
|
height: 40px;
|
|
padding: 20px;
|
|
padding: 20px;
|
|
|
|
+ float: right;
|
|
|
|
+ bottom: 0px;
|
|
|
|
+ right: 0px;
|
|
.el-button {
|
|
.el-button {
|
|
- position: absolute;
|
|
|
|
- right: 20px;
|
|
|
|
|
|
+ margin-right: 20px;
|
|
|
|
+ // position: absolute;
|
|
|
|
+ // right: 20px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.tableTitle{
|
|
.tableTitle{
|
|
background: rgba(239,243,249,1);
|
|
background: rgba(239,243,249,1);
|
|
}
|
|
}
|
|
|
|
+ .require::after{
|
|
|
|
+ content:"*";
|
|
|
|
+ color: red;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
</style>
|
|
</style>
|