|
@@ -172,7 +172,7 @@
|
|
|
height="18"
|
|
|
width="18"
|
|
|
class="icon"
|
|
|
- @click="addRule(scope.row,scope.$index,index)"
|
|
|
+ @click="addRule(scope.row,scope.$index,index,i)"
|
|
|
/>
|
|
|
<img
|
|
|
src="../../images/icon-delete.png"
|
|
@@ -249,7 +249,7 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<div
|
|
|
- v-if="v.title == '医学标准术语'"
|
|
|
+ v-if="v.title == '医学标准术语' && items.basType == 1"
|
|
|
class="box-2"
|
|
|
:class="items.basType===3 || items.basType===4? 'tmall' : 'taobao'"
|
|
|
>
|
|
@@ -268,10 +268,45 @@
|
|
|
multiple
|
|
|
filterable
|
|
|
remote
|
|
|
+ collapse-tags
|
|
|
reserve-keyword
|
|
|
placeholder="请输入关键词"
|
|
|
:remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
|
|
|
- @change="(val)=>conceptChange(val,scope.$index,index,i)"
|
|
|
+ @change="(val)=>conceptChange(val,scope.$index,index,i,items.basType)"
|
|
|
+ @visible-change="(val)=>changeValue1(val,scope.$index,index,i)"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in items.conceptList"
|
|
|
+ :key="item.conceptId"
|
|
|
+ :label="item.conceptName"
|
|
|
+ :value="item.conceptId"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-if="v.title == '医学标准术语' && items.basType != 1"
|
|
|
+ class="box-2"
|
|
|
+ :class="items.basType===3 || items.basType===4? 'tmall' : 'taobao'"
|
|
|
+ >
|
|
|
+ <el-form-item
|
|
|
+ v-if="items.basType==1 || items.basType==2 || items.basType==''"
|
|
|
+ :prop="'klDiagnoseTypeVO.' +
|
|
|
+ scope.$index +
|
|
|
+ '.groupVO.' +
|
|
|
+ index +
|
|
|
+ '.klDiagnoseDetail.'+i+'.conceptId'"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请选择医学标准术语', trigger: 'change' }
|
|
|
+ ]"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ clearable
|
|
|
+ remote
|
|
|
+ filterable
|
|
|
+ :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
|
|
|
+ v-model.trim="items.conceptId"
|
|
|
+ @change="(val)=>conceptChange(val,scope.$index,index,i,items.basType)"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in items.conceptList"
|
|
@@ -432,7 +467,7 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.eqValue'"
|
|
|
- v-if="items.basType===4 || items.basType===3"
|
|
|
+ v-if="items.basType===4 || items.basType===3 || items.basType===5 || items.basType===6"
|
|
|
maxlength="200"
|
|
|
label="正则表达式:"
|
|
|
class="discDesc"
|
|
@@ -498,7 +533,7 @@ export default {
|
|
|
{ title: '基础依据名称', width: 160, istar: true },
|
|
|
{ title: '基础依据类型', width: 130, istar: true },
|
|
|
{ title: '基础依据术语类型', width: 160, istar: true },
|
|
|
- { title: '医学标准术语', width: 180, istar: true },
|
|
|
+ { title: '医学标准术语', width: 200, istar: true },
|
|
|
{ title: '依据具体内容', width: 850 }
|
|
|
],
|
|
|
dicts: {},
|
|
@@ -531,6 +566,8 @@ export default {
|
|
|
onlyTxtType: false,
|
|
|
basTypeName: '',
|
|
|
basConceptId: [],
|
|
|
+ conceptId:'',
|
|
|
+ basConceptList: [],
|
|
|
basDescription: '',
|
|
|
basLename: '',
|
|
|
basLibName: '',
|
|
@@ -572,7 +609,9 @@ export default {
|
|
|
list: [], //提交数据数组,
|
|
|
i: 1,
|
|
|
onshow: true,
|
|
|
- arr :[]
|
|
|
+ arr: [],
|
|
|
+ basConceptId: [],
|
|
|
+ conceptId: ''
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -603,30 +642,35 @@ export default {
|
|
|
item => item.ruleType === this.form.klDiagnoseTypeVO[0].conditionType
|
|
|
);
|
|
|
this.baseTermTypeList = this.baseTypes[index2].subMenuList;
|
|
|
- const klDiagnoseTypeVO = this.form.klDiagnoseTypeVO,
|
|
|
- arr = [];
|
|
|
+ const klDiagnoseTypeVO = this.form.klDiagnoseTypeVO;
|
|
|
let groupVOi, klDiagnoseDetailj;
|
|
|
for (let i = 0; i < klDiagnoseTypeVO.length; i++) {
|
|
|
groupVOi = klDiagnoseTypeVO[i].groupVO;
|
|
|
for (let j = 0; j < groupVOi.length; j++) {
|
|
|
klDiagnoseDetailj = groupVOi[j].klDiagnoseDetail;
|
|
|
for (let k = 0; k < groupVOi[j].klDiagnoseDetail.length; k++) {
|
|
|
- this.arr = []
|
|
|
+ this.arr = [];
|
|
|
var index2 = this.baseTermTypeList.findIndex(
|
|
|
item => item.type === klDiagnoseDetailj[k].basType
|
|
|
);
|
|
|
klDiagnoseDetailj[k].basLibTypeList = this.baseTermTypeList[
|
|
|
index2
|
|
|
].subMenuList;
|
|
|
-
|
|
|
klDiagnoseDetailj[k].conceptList = this.formatData2(
|
|
|
klDiagnoseDetailj[k].libNameList
|
|
|
);
|
|
|
- klDiagnoseDetailj[k].libNameList.forEach(item => {
|
|
|
- this.arr.push(item.basConceptId);
|
|
|
- });
|
|
|
- this.$set(klDiagnoseDetailj[k],'basConceptId',this.arr )
|
|
|
- // klDiagnoseDetailj[k].basConceptId = arr;
|
|
|
+ if (klDiagnoseDetailj[k].basType == 1) {
|
|
|
+ klDiagnoseDetailj[k].libNameList.forEach(item => {
|
|
|
+ this.arr.push(item.basConceptId);
|
|
|
+ });
|
|
|
+ this.$set(klDiagnoseDetailj[k], 'basConceptId', this.arr);
|
|
|
+ } else if (klDiagnoseDetailj[k].basType == 2) {
|
|
|
+ klDiagnoseDetailj[k].libNameList.forEach(item => {
|
|
|
+ this.arr.push(item.basConceptId);
|
|
|
+ });
|
|
|
+ this.$set(klDiagnoseDetailj[k], 'conceptId', this.arr[0]);
|
|
|
+ }
|
|
|
+
|
|
|
if (
|
|
|
klDiagnoseDetailj[k].maxOperator ||
|
|
|
klDiagnoseDetailj[k].minOperator
|
|
@@ -833,6 +877,8 @@ export default {
|
|
|
onlyTxtType: false,
|
|
|
basTypeName: '',
|
|
|
basConceptId: [],
|
|
|
+ conceptId:'',
|
|
|
+ basConceptList: [],
|
|
|
basDescription: '',
|
|
|
basLename: '',
|
|
|
basLibName: '',
|
|
@@ -909,6 +955,8 @@ export default {
|
|
|
onlyTxtType: false,
|
|
|
basTypeName: '',
|
|
|
basConceptId: [],
|
|
|
+ conceptId:'',
|
|
|
+ basConceptList: [],
|
|
|
basDescription: '',
|
|
|
basLename: '',
|
|
|
basLibName: '',
|
|
@@ -938,6 +986,8 @@ export default {
|
|
|
basNameType: false,
|
|
|
basTypeName: '',
|
|
|
basConceptId: [],
|
|
|
+ conceptId:'',
|
|
|
+ basConceptList: [],
|
|
|
basDescription: '',
|
|
|
basLename: '',
|
|
|
basLibName: '',
|
|
@@ -1078,16 +1128,54 @@ export default {
|
|
|
this.clearConcept(val, inx, index, i);
|
|
|
this.clearNumText2(val, inx, index, i);
|
|
|
},
|
|
|
- //医学标准术语
|
|
|
- conceptChange(val, inx, index, i) {
|
|
|
- // this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
- // i
|
|
|
- // ].basConceptId = val;
|
|
|
- this.$set(
|
|
|
- this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i],
|
|
|
- 'basConceptId',
|
|
|
- val
|
|
|
+ changeValue1(val, inx, index, i) {
|
|
|
+ const formData = JSON.parse(
|
|
|
+ JSON.stringify(
|
|
|
+ this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i]
|
|
|
+ )
|
|
|
);
|
|
|
+ this.basConceptId = [];
|
|
|
+ if (val) {
|
|
|
+ // console.log(formData.basConceptId)
|
|
|
+ // formData.basConceptId.forEach(item => {
|
|
|
+ // formData.conceptList.forEach(it => {
|
|
|
+ // if (item == it.conceptId) {
|
|
|
+ // this.basConceptId.push(it);
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+ // this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ // i
|
|
|
+ // ].conceptList = this.basConceptId
|
|
|
+ } else {
|
|
|
+ formData.basConceptId.forEach(item => {
|
|
|
+ formData.basConceptList.forEach(it => {
|
|
|
+ if (item == it.conceptId) {
|
|
|
+ // console.log(it)
|
|
|
+ this.basConceptId.push(it);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ // console.log(formData.basConceptList)
|
|
|
+ // formData.basConceptList.concat(this.basConceptId)
|
|
|
+ // console.log(formData.basConceptList)
|
|
|
+ this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ i
|
|
|
+ ].conceptList = this.basConceptId;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //医学标准术语
|
|
|
+ conceptChange(val, inx, index, i, basType) {
|
|
|
+ if (basType == 1) {
|
|
|
+ this.$set(
|
|
|
+ this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i],
|
|
|
+ 'basConceptId',
|
|
|
+ val
|
|
|
+ );
|
|
|
+ } else if (basType == 2) {
|
|
|
+ this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i].conceptId = val;
|
|
|
+ }
|
|
|
+
|
|
|
// if (val) {
|
|
|
// this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
// i
|
|
@@ -1118,13 +1206,33 @@ export default {
|
|
|
.searchConcept(param)
|
|
|
.then(res => {
|
|
|
if (res.data.code == '0') {
|
|
|
- const data = res.data.data;
|
|
|
+ let data = res.data.data;
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
// dom元素更新后执行,因此这里能正确打印更改之后的值
|
|
|
- formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
- i
|
|
|
- ].conceptList = data; // 改变了的值
|
|
|
+ if (
|
|
|
+ formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ i
|
|
|
+ ].basType == 1
|
|
|
+ ) {
|
|
|
+ let conceptList =
|
|
|
+ formData.klDiagnoseTypeVO[inx].groupVO[index]
|
|
|
+ .klDiagnoseDetail[i].conceptList;
|
|
|
+ let data2 = data.filter(it => {
|
|
|
+ let arr = conceptList.map(v => v.conceptId);
|
|
|
+ return !arr.includes(it.conceptId);
|
|
|
+ });
|
|
|
+ formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ i
|
|
|
+ ].conceptList = data2; // 改变了的值
|
|
|
+ formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ i
|
|
|
+ ].basConceptList = data;
|
|
|
+ }else{
|
|
|
+ formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ i
|
|
|
+ ].conceptList = data;
|
|
|
+ }
|
|
|
});
|
|
|
this.form = formData;
|
|
|
}
|
|
@@ -1386,7 +1494,9 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
confirm() {
|
|
|
+
|
|
|
const formData = JSON.parse(JSON.stringify(this.form));
|
|
|
+
|
|
|
const _this = this;
|
|
|
for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
|
|
|
for (let j = 0; j < formData.klDiagnoseTypeVO[i].groupVO.length; j++) {
|
|
@@ -1400,6 +1510,15 @@ export default {
|
|
|
.basLibTypeList;
|
|
|
delete formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
|
|
|
.conceptList;
|
|
|
+ formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
|
|
|
+ k
|
|
|
+ ].basConceptId =
|
|
|
+ formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
|
|
|
+ .basType == 2
|
|
|
+ ? JSON.stringify(formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
|
|
|
+ .conceptId).split('')
|
|
|
+ : formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
|
|
|
+ .basConceptId;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1449,6 +1568,34 @@ export default {
|
|
|
.el-input {
|
|
|
height: 100% !important;
|
|
|
}
|
|
|
+ .el-select__tags {
|
|
|
+ max-width: 100% !important;
|
|
|
+ }
|
|
|
+ .el-tag {
|
|
|
+ .el-select__tags-text {
|
|
|
+ width: 75px !important;
|
|
|
+ display: block;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ .el-tag__close {
|
|
|
+ top: -22px;
|
|
|
+ right: -38px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-tag:last-child {
|
|
|
+ min-width: 40px !important;
|
|
|
+ max-width: 75px !important;
|
|
|
+ .el-select__tags-text {
|
|
|
+ display: inline;
|
|
|
+ }
|
|
|
+ .el-tag__close {
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.contents {
|
|
|
height: 100%;
|