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.
131 lines
4.4 KiB
131 lines
4.4 KiB
<template>
|
|
<div style="display: flex;height:90px;">
|
|
<div class="asbitemListClass">
|
|
<div style="margin-top:2px;font-size:9px;color: #F56C6C;">未检组合项目:</div>
|
|
<div style="overflow-y:auto; height:68px;width:100%; margin-top:2px;border: 1px solid;">
|
|
<el-tag type="danger" style="margin-left: 5px;" v-for="item in data.unCheckedAsbitem" :key="item" size="mini">{{
|
|
item }}</el-tag>
|
|
</div>
|
|
</div>
|
|
<div class="asbitemListClass">
|
|
<div style="margin-top:2px;font-size:9px;color: #909399;">弃检组合项目:</div>
|
|
<div style="overflow-y:auto; height:68px;width:100%; margin-top:2px;border: 1px solid;">
|
|
<el-tag type="info" style="margin-left: 5px;" v-for="item in data.giveUpAsbitem" :key="item" size="mini">{{ item
|
|
}}</el-tag>
|
|
</div>
|
|
</div>
|
|
<div class="asbitemListClass">
|
|
<div style="margin-top:2px;font-size:9px;color: #409EFF;">组合项目已检但无值的明细项目:</div>
|
|
<div style="overflow-y:auto; height:68px;width:100%; margin-top:2px;border: 1px solid;">
|
|
<el-tag style="margin-left: 5px;" v-for="item in data.checkedNullValueItem" :key="item" size="mini">{{ item
|
|
}}</el-tag>
|
|
</div>
|
|
</div>
|
|
<div class="asbitemListClass">
|
|
<div style="margin-top:2px;font-size:9px;color: #E6A23C;">组合项目已检但弃检的明细项目:</div>
|
|
<div style="overflow-y:auto; height:68px;width:100%; margin-top:2px;border: 1px solid;">
|
|
<el-tag type="warning" style="margin-left: 5px;" v-for="item in data.checkedGiveUpItem" :key="item" size="mini">{{
|
|
item }}</el-tag>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import moment from "moment";
|
|
import { mapState } from "vuex";
|
|
import { getapi, postapi, putapi, deletapi } from "@/api/api";
|
|
|
|
export default {
|
|
components: {},
|
|
props: ['patientRegisterId'],
|
|
data() {
|
|
return {
|
|
data: {
|
|
unCheckedAsbitem: [],//['未检项目1','未检项目2','未检项目3','未检项目4','未检项目5','未检项目6','未检项目7','未检项目8'],
|
|
giveUpAsbitem: [],//['弃检1','弃检2'],
|
|
checkedNullValueItem: [],//['无果1','无果2'],
|
|
checkedGiveUpItem: [],//['弃检明细1','弃检明细2'],
|
|
}
|
|
};
|
|
},
|
|
|
|
created() { },
|
|
|
|
//挂载完成
|
|
mounted() {
|
|
|
|
this.getSumAsbItemStatus(this.dataTransOpts.tableS.patient_register.id);
|
|
|
|
},
|
|
|
|
computed: {
|
|
...mapState(["window", "dict","dataTransOpts", "doctorCheck", "sumDoctorCheck"]),
|
|
sumHeight() {
|
|
let tempHeight = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
|
|
return tempHeight - 320
|
|
},
|
|
},
|
|
methods: {
|
|
getSumAsbItemStatus(PatientRegisterId) {
|
|
|
|
if (!PatientRegisterId) {
|
|
this.data.unCheckedAsbitem = [];
|
|
this.data.giveUpAsbitem = [];
|
|
this.data.checkedNullValueItem = [];
|
|
this.data.checkedGiveUpItem = [];
|
|
return
|
|
}
|
|
|
|
getapi(`/api/app/patientregister/getpatientregisteritemstatus?PatientRegisterId=${PatientRegisterId}`).then(res => {
|
|
if (res.code != -1) {
|
|
this.data.unCheckedAsbitem = res.data.unCheckedAsbitem;
|
|
this.data.giveUpAsbitem = res.data.giveUpAsbitem;
|
|
this.data.checkedNullValueItem = res.data.checkedNullValueItem;
|
|
this.data.checkedGiveUpItem = res.data.checkedGiveUpItem;
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
//监听事件
|
|
watch: {
|
|
//人员ID切换
|
|
// "patientRegisterId":{
|
|
// immediate:true,
|
|
// handler(newVal, oldVal) {
|
|
// console.log("watch patientRegisterId newVal:", newVal, " oldVal:", oldVal);
|
|
// this.getSumAsbItemStatus(newVal);
|
|
// }
|
|
// },
|
|
// 虚拟表 触发强制刷新 (sumDoctor.M 合并包含:综述、建议、对比、历史等,不包含总检诊断)
|
|
"dataTransOpts.refresh.sumDoctor.M": {
|
|
// immediate:true,
|
|
handler(newVal, oldVal) {
|
|
console.log(`watch 总检--检查状态汇总 newVal: ${newVal}, oldVal: ${oldVal} patientRegisterId: ${this.dataTransOpts.tableS.patient_register.id}`);
|
|
this.getSumAsbItemStatus(this.dataTransOpts.tableS.patient_register.id);
|
|
}
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
.asbitemListClass {
|
|
display: block;
|
|
width: v-bind("Math.floor((window.pageWidth - 110 - 15 - 15) / 4) + 'px'");
|
|
margin-left: 3px;
|
|
}
|
|
|
|
.labelClass {
|
|
margin-top: 2px;
|
|
font-size: 8x;
|
|
}
|
|
|
|
.contentClass {
|
|
display: flex;
|
|
height: 52px;
|
|
margin-top: 2px;
|
|
font-size: 8x;
|
|
}
|
|
</style>
|