You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

213 lines
5.9 KiB

<template>
<div style="padding: 0 5px;">
<div>
<el-select v-model="diagnosis" placeholder="快速选择诊断疾病" size="small" filterable clearable remote automatic-dropdown
:remote-method="remoteMethod" @change="quickChoosedDiag" default-first-option ref="diagnosises" value-key="id"
style="width:250px;text-align: left;padding-right: 15px;">
<el-option v-for="item in diagnosisesCur" :key="item.id" :value="item" :label="item.displayName" />
</el-select>
</div>
<div>
<el-table :data="sumDoctorCheck.diagnosisList" :height="window.pageHeight - 110" width="100%" size="small">
<!-- temporaryselection personnelUnit.nogroupselected-->
<!--
"patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"diagnosisId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sumSuggestionHeaderId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"displayOrder": 0,
"diagnosisName": "string"
-->
<el-table-column type="index" label="序号" align="center" width="60" />
<el-table-column label="诊断疾病" width="160" prop="diagnosisName" />
<el-table-column fixed="right" label="操作" width="60">
<template slot-scope="scope">
<i class="el-icon-delete" @click="deleteRow(scope.$index)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapMutations } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce, deepCopy } from "@/utlis/proFunc";
export default {
components: {
},
props: ['patientRegisterId'],
data() {
return {
diagnosis: "",
diagnosisesCur: [], //疾病列表数据
diagnosisesAll: [], //疾病列表数据
};
},
created() {
this.dictInit();
this.getDiagnosisList(this.patientRegisterId);
},
//挂载完成
mounted() { },
computed: {
...mapState(["window", "dict", "patientRegister", "customerOrg", "doctorCheck", "sumDoctorCheck", "report"]),
},
methods: {
dictInit() {
postapi('/api/app/diagnosis/getlistinsuggestion', {}).then(res => {
if (res.code != -1) {
this.diagnosisesCur = res.data
this.diagnosisesAll = res.data
//过滤已选的诊断
this.filterDiagnosises()
}
})
},
//快速选择组合项目时,调整可按拼间简码及简称查找
remoteMethod(keyWords) {
//console.log('remoteMethod',this.dict.asbItemQuick)
if (keyWords) {
this.diagnosisesCur = [];
this.diagnosisesAll.forEach(item => {
if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
|| item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1) {
this.diagnosisesCur.push(item);
}
});
} else {
this.diagnosisesCur = deepCopy(this.diagnosisesAll)
}
//过滤已选的诊断
this.filterDiagnosises()
},
//过滤已选诊断的
filterDiagnosises(){
let sumDiagnosises = deepCopy(this.sumDoctorCheck.diagnosisList)
sumDiagnosises.forEach(e =>{
e.id = e.diagnosisId
return e
})
this.diagnosisesCur = arrayReduce(this.diagnosisesCur,sumDiagnosises,'id')
},
quickChoosedDiag(v) {
if (!v) return
console.log(v)
this.sumDoctorCheck.diagnosisList.push({
patientRegisterId: this.patientRegisterId,
diagnosisId: v.id,
diagnosisName: v.displayName,
})
let id = String(new Date().getTime())
let details = []
v.suggestions.forEach(e => {
details.push({
sumSuggestionHeaderId: id,
suggestionContent: e.suggestionContent
})
})
let pojo = {
id: id,
patientRegisterId: this.patientRegisterId,
suggestionTitle: v.suggestionName || v.displayName,
diagnosisId: v.id,
details
}
this.sumDoctorCheck.suggestionList.push(pojo);
},
//查询
getDiagnosisList(PatientRegisterId) {
// /api/app/sumdiagnosis/getsumdiagnosislistinpatientregisterid?PatientRegisterId=3fa85f64-5717-4562-b3fc-2c963f66afa6
getapi(`/api/app/sumdiagnosis/getsumdiagnosislistinpatientregisterid?PatientRegisterId=${PatientRegisterId}`)
.then((res) => {
if(res.code != - 1) this.sumDoctorCheck.diagnosisList = res.data
});
},
deleteRow(index) {
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
//删除建议
let count = this.sumDoctorCheck.suggestionList.length - 1
for (let i = count; i > 0; i--) {
//console.log(this.sumDoctorCheck.suggestionList[i].diagnosisId, this.sumDoctorCheck.diagnosisList[index].diagnosisId)
if (this.sumDoctorCheck.suggestionList[i].diagnosisId == this.sumDoctorCheck.diagnosisList[index].diagnosisId) {
this.sumDoctorCheck.suggestionList.splice(i, 1)
}
}
this.sumDoctorCheck.diagnosisList.splice(index, 1)
}).catch((err) => {
//
});
},
},
//监听事件
watch: {
"patientRegisterId"(newVal, oldVal){
if(newVal && newVal != oldVal){
this.getDiagnosisList(newVal)
}
},
},
};
</script>
<style scoped>
/* 输入框相关设置*/
::v-deep .el-input__inner {
padding-left: 2px;
padding-right: 15px;
}
::v-deep .el-input__icon {
width: 15px;
/* 输入框下拉箭头或清除图标 默认 25 */
}
::v-deep .el-input-group__append {
padding: 0 5px;
/* 控件默认 0 20px;*/
}
.box {
display: flex;
}
.query {
margin-left: 5px;
margin-bottom: 2px;
}
.listBtn {
margin-top: 10px;
}
</style>