pengjun 1 year ago
parent
commit
9f9812b2b6
  1. 120
      src/components/occDisease/ImageTextReport.vue
  2. 8
      src/components/occDisease/OccDisease.vue
  3. 28
      src/components/occDisease/OccDiseasePoison.vue
  4. 4
      src/components/occDisease/OccDiseasePrevious.vue
  5. 14
      src/views/doctorCheck/doctorCheck.vue

120
src/components/occDisease/ImageTextReport.vue

@ -0,0 +1,120 @@
<template>
<div style="overflow-y: auto;width:100%;height:465px;">
<el-table :data="tableData" border height="465" row-key="id" size="small" highlight-current-row ref="imageTextReport">
<el-table-column prop="registerCheckAsbitemName" label="检查项目" min-width="80" />
<el-table-column prop="checkPictureUrls" label="检查项目" min-width="680">
<template slot-scope="scope">
<div style="overflow-x: auto;width:680px;">
<div style="display: flex;">
<div class="demo-image__preview" v-for="(item, index) in scope.row.checkPictureUrls" :key="item.id"
style="display: inline-block; padding: 0 0 0 2px">
<div style="margin-top: 5px">
<el-image style="width: 80px; height: 80px; border-radius: 5px" :src="item.indexOf('http') > -1
? item
: sysConfig.apiurl + item
" :preview-src-list="previewSrcList(scope.row.checkPictureUrls, item)">
</el-image>
</div>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { mapState } from 'vuex';
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj, getColorStr } from '@/utlis/proFunc';
export default {
components: {},
props: ["patientRegisterId", "tabChoosed"],
data() {
return {
sysConfig: {},
tableData: [],
};
},
created() {
this.sysConfig = JSON.parse(window.sessionStorage.getItem('sysConfig'))
},
//
mounted() {
this.CheckDetails(this.dataTransOpts.tableS.patient_register.id);
},
computed: {
...mapState(['window', 'dict', 'dataTransOpts', 'doctorCheck', 'sumDoctorCheck']),
},
methods: {
getColorStr,
//
CheckDetails(patientRegisterId) {
if (!patientRegisterId) {
this.tableData = []
return
}
postapi('/api/app/OccupationalDisease/GetRegisterCheckPictureByPatientRegisterId', { patientRegisterId })
.then((res) => {
console.log("获取图文报告 CheckDetails", res.data);
if (res.code != -1) {
this.tableData = res.data;
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
//
previewSrcList(oriList, curImag) {
let srcList = []
let image = curImag.indexOf('http') > -1 ? curImag : this.sysConfig.apiurl + curImag;
srcList.push(image)
let lfind = arrayExistObj(oriList, 'id', curImag.id)
if (lfind > -1) {
for (let i = lfind + 1; i < oriList.length; i++) {
let e = oriList[i];
image = e.indexOf('http') > -1 ? e : this.sysConfig.apiurl + e;
srcList.push(image)
}
for (let index = 0; index < lfind; index++) {
let e = oriList[index];
image = e.indexOf('http') > -1 ? e : this.sysConfig.apiurl + e;
srcList.push(image)
}
}
return srcList
},
},
//
watch: {
// sumDoctor.M
"dataTransOpts.plus.OccDisease": {
// immediate:true,
handler(newVal, oldVal) {
console.log(`watch 总检--检查明细结果 newVal: ${newVal}, oldVal: ${oldVal} patientRegisterId: ${this.dataTransOpts.tableS.patient_register.id}`);
if (newVal != oldVal) this.CheckDetails(this.dataTransOpts.tableS.patient_register.id);
}
},
},
};
</script>
<style scoped>
.tdCellClass {
padding: 0 5px;
}
::v-deep .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
padding: 0;
}
</style>

8
src/components/occDisease/OccDisease.vue

@ -21,7 +21,7 @@
<CheckDetails />
</el-tab-pane>
<el-tab-pane label="图文报告" name="6">
<ImageTextReport/>
</el-tab-pane>
<el-tab-pane label="职业健康检查结论" name="7">
<OccDiseaseConclusion />
@ -48,6 +48,7 @@ import OccDiseasePoison from "./OccDiseasePoison.vue";
import OccDiseaseHistory from "./OccDiseaseHistory.vue";
import OccDiseaseSymptom from "./OccDiseaseSymptom.vue";
import CheckDetails from "./CheckDetails.vue";
import ImageTextReport from "./ImageTextReport.vue";
import OccDiseaseConclusion from "./OccDiseaseConclusion.vue";
export default {
@ -58,6 +59,7 @@ export default {
OccDiseaseHistory,
OccDiseaseSymptom,
CheckDetails,
ImageTextReport,
OccDiseaseConclusion
},
props: ["patientRegisterId"],
@ -119,6 +121,8 @@ export default {
.then(res => {
if (res.code > -1) {
this.dataTransOpts.tableS.patient_occupational_disease = deepCopy(res.data['patientOccupationalDisease']) || { patientRegisterId }
this.dataTransOpts.tableM.patient_past_medical_history = deepCopy(res.data['patientPastMedicalHistoryDtos'])
this.dataTransOpts.tableM.patient_occupational_medical_history = deepCopy(res.data['patientOccupationalMedicalHistoryDtos'])
this.dataTransOpts.tableM.patient_poison = deepCopy(res.data['patientPoisonDtos'])
this.dataTransOpts.tableM.patient_occupational_history = deepCopy(res.data['patientOccupationalHistoryDtos'])
this.dataTransOpts.tableM.patient_symptom = deepCopy(res.data['patientSymptomDtos'])
@ -156,6 +160,8 @@ export default {
let body = {
patientRegisterId: this.dataTransOpts.tableS.patient_register.id,
patientOccupationalDisease: this.dataTransOpts.tableS.patient_occupational_disease,
patientPastMedicalHistorys: this.dataTransOpts.tableM.patient_past_medical_history,
patientOccupationalMedicalHistorys:this.dataTransOpts.tableM.patient_occupational_medical_history,
patientPoisons: this.dataTransOpts.tableM.patient_poison,
patientOccupationalHistorys: this.dataTransOpts.tableM.patient_occupational_history,
patientSymptoms: this.dataTransOpts.tableM.patient_symptom

28
src/components/occDisease/OccDiseasePoison.vue

@ -2,7 +2,7 @@
<div>
<el-table :data="dataTransOpts.tableM.patient_poison" border height="465" row-key="id" size="small"
highlight-current-row ref="patientPoison">
<el-table-column prop="poisonId" label="接害因素" min-width="200">
<el-table-column prop="poisonId" label="接害因素" min-width="150">
<template slot-scope="scope">
<el-select v-model="scope.row.poisonId" size="small" style="width:220px" clearable filterable
:filter-method="filterMethod">
@ -12,13 +12,11 @@
</el-select>
</template>
</el-table-column>
<el-table-column prop="occupationalAbnormalId" label="接害因素检查结论" min-width="200" align="center">
<el-table-column prop="occupationalAbnormalId" label="接害因素检查结论" min-width="130" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.occupationalAbnormalId" size="small" style="width:220px" clearable filterable
:filter-method="filterMethod">
<el-option-group v-for="group in postion" :key="group.poisonTypeName" :label="group.poisonTypeName">
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item.id" />
</el-option-group>
<el-select v-model="scope.row.occupationalAbnormalId" size="small" clearable filterable
:filter-method="filterMethod">
<el-option v-for="item in occupationalAbnormal" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</template>
</el-table-column>
@ -70,7 +68,7 @@ export default {
]
}
], //
occupationalAbnormal:[], //
};
},
@ -83,6 +81,7 @@ export default {
//
mounted() {
this.dictInit()
this.$nextTick(() => {
this.postion = deepCopy(this.dict.postion)
})
@ -95,6 +94,19 @@ export default {
methods: {
moment, checkPagePriv,
//
dictInit() {
//
postapi("/api/app/OccupationalAbnormal/GetList").then((res) => {
if (res.code > -1) {
this.occupationalAbnormal = res.data;
}
});
},
filterMethod(v) {
if (v) {
let lv = v.toUpperCase()

4
src/components/occDisease/OccDiseasePrevious.vue

@ -3,7 +3,7 @@
<div style="margin-left: 10px;font-weight: 700;">既往病史</div>
<el-table :data="dataTransOpts.tableM.patient_past_medical_history" border height="200" row-key="id" size="small"
highlight-current-row ref="Previous">
<el-table-column prop="occupationalDisease" label="疾病名称" min-width="150">
<el-table-column prop="occupationalDisease" label="既往疾病名称" min-width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.occupationalDisease" size="small" />
</template>
@ -51,7 +51,7 @@
<div style="margin: 10px 0 0 10px;font-weight: 700;">职业病史</div>
<el-table :data="dataTransOpts.tableM.patient_occupational_medical_history" border height="200" row-key="id"
size="small" highlight-current-row ref="occ">
<el-table-column prop="occupationalDisease" label="疾病名称" min-width="150">
<el-table-column prop="occupationalDisease" label="职业疾病名称" min-width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.occupationalDisease" size="small" />
</template>

14
src/views/doctorCheck/doctorCheck.vue

@ -95,7 +95,7 @@ export default {
isCheckPicture: false, //
}
},
doctor_check_check_charge:'Y', //
doctor_check_check_charge: 'Y', //
};
},
@ -325,8 +325,14 @@ export default {
//' '
if (!patientRegister.id) return ret
switch (btnFlagName) {
case 'btnCheckHistory':
case 'btnReport':
case 'toSumDoctorCheck':
case 'btnOcc':
return false
}
if (btnFlagName == 'btnCheckHistory' || btnFlagName == 'btnReport') return false
// ''
if (patientRegister.isLock && patientRegister.isLock == 'Y') return ret
@ -367,9 +373,7 @@ export default {
break;
case 'unAudit':
if (RegisterCheckEdit.completeFlag && RegisterCheckEdit.completeFlag != '0' && RegisterCheckEdit.isAudit && RegisterCheckEdit.isAudit != 'N') ret = false
break;
case 'btnCheckHistory':
case 'btnReport':
break;
default:
ret = false
break;

Loading…
Cancel
Save