pengjun 3 months ago
parent
commit
964b86ad98
  1. 2
      public/sysConfig.json
  2. 2
      src/components/doctorCheck/ButtonList.vue
  3. 130
      src/components/occDisease/ImageTextReport.vue
  4. 2
      src/components/report/BtnReport.vue
  5. 87
      src/components/report/TurnoverReport.vue
  6. 2
      src/views/doctorCheck/sumDoctorCheck.vue

2
public/sysConfig.json

@ -1,5 +1,5 @@
{ {
"apiurl": "http://192.168.0.188:9527",
"apiurl": "http://192.168.0.188:9530",
"softName": "神豚体检管理系统", "softName": "神豚体检管理系统",
"pacsApi": "http://192.168.0.188:9530", "pacsApi": "http://192.168.0.188:9530",
"dcmViewers": "https://app.mzaktj.com:4436", "dcmViewers": "https://app.mzaktj.com:4436",

2
src/components/doctorCheck/ButtonList.vue

@ -148,7 +148,7 @@
<el-tab-pane label="明细结果" name="2"> <el-tab-pane label="明细结果" name="2">
<CheckDetails :patientRegisterId="doctorCheck.prBase.id" :refParams="{ place: 'doctor' }" /> <CheckDetails :patientRegisterId="doctorCheck.prBase.id" :refParams="{ place: 'doctor' }" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="本次图文报告" name="4">
<el-tab-pane label="图文报告" name="4">
<ImageTextReport :refParams="{ place: 'doctor' }" /> <ImageTextReport :refParams="{ place: 'doctor' }" />
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane label="项目对比" name="4"> <!-- <el-tab-pane label="项目对比" name="4">

130
src/components/occDisease/ImageTextReport.vue

@ -1,7 +1,18 @@
<template> <template>
<div :style="`overflow-y: auto;width:100%;height:${tableHeight}px;`"> <div :style="`overflow-y: auto;width:100%;height:${tableHeight}px;`">
<el-table :data="tableData" border :height="tableHeight" row-key="id" size="small" highlight-current-row ref="imageTextReport">
<el-table-column prop="registerCheckAsbitemName" label="检查项目" width="100" />
<el-tabs>
<el-tab-pane label="本次检查">
<el-table :data="tableData" border :height="tableHeight - 32" row-key="id" size="small" highlight-current-row
ref="imageTextReport">
<el-table-column prop="registerCheckAsbitemName" label="检查项目" width="100" >
<template slot-scope="scope">
<div>
{{ scope.row.registerCheckAsbitemName }}
<br></br><br>{{ scope.row.checkDate }}
<br>{{ scope.row.checkDoctorName }}
</div>
</template>
</el-table-column>
<el-table-column prop="details" label="图片" min-width="660"> <el-table-column prop="details" label="图片" min-width="660">
<template slot-scope="scope"> <template slot-scope="scope">
<div :style="`overflow-x: auto;width:${tableWidth}px;`"> <div :style="`overflow-x: auto;width:${tableWidth}px;`">
@ -16,7 +27,7 @@
</el-image> </el-image>
<div style="display: flex;"> <div style="display: flex;">
<div style="margin-left: 18px;">打印</div> <div style="margin-left: 18px;">打印</div>
<el-checkbox :value="item['isPrint'] == 'Y'"/>
<el-checkbox :value="item['isPrint'] == 'Y'" />
</div> </div>
</div> </div>
</div> </div>
@ -25,6 +36,80 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane>
<el-tab-pane label="上次检查">
<el-table :data="previousData" border :height="tableHeight - 32" row-key="id" size="small" highlight-current-row
ref="imageTextReport">
<el-table-column prop="registerCheckAsbitemName" label="检查项目" width="100" >
<template slot-scope="scope">
<div>
{{ scope.row.registerCheckAsbitemName }}
<br></br>{{ scope.row?.checkDate.substring(0,10) }}
<br>{{ scope.row.checkDoctorName }}
</div>
</template>
</el-table-column>
<el-table-column prop="details" label="图片" min-width="660">
<template slot-scope="scope">
<div :style="`overflow-x: auto;width:${tableWidth}px;`">
<div style="display: flex;">
<div class="demo-image__preview" v-for="(item, index) in scope.row.details" :key="item.id"
style="display: inline-block; padding: 0 0 0 2px">
<div style="margin-top: 5px;align-items: center;">
<el-image style="width: 80px; height: 80px; border-radius: 5px" :src="item['checkPictureUrl'].indexOf('http') > -1
? item['checkPictureUrl']
: sysConfig.apiurl + item['checkPictureUrl']
" :preview-src-list="previewSrcList(scope.row.checkPictureUrls, item['checkPictureUrl'])">
</el-image>
<div style="display: flex;">
<div style="margin-left: 18px;">打印</div>
<el-checkbox :value="item['isPrint'] == 'Y'" />
</div>
</div>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="上上次检查">
<el-table :data="previousTwoData" border :height="tableHeight - 32" row-key="id" size="small" highlight-current-row
ref="imageTextReport">
<el-table-column prop="registerCheckAsbitemName" label="检查项目" width="100" >
<template slot-scope="scope">
<div>
{{ scope.row.registerCheckAsbitemName }}
<br></br><br>{{ scope.row.checkDate }}
<br>{{ scope.row.checkDoctorName }}
</div>
</template>
</el-table-column>
<el-table-column prop="details" label="图片" min-width="660">
<template slot-scope="scope">
<div :style="`overflow-x: auto;width:${tableWidth}px;`">
<div style="display: flex;">
<div class="demo-image__preview" v-for="(item, index) in scope.row.details" :key="item.id"
style="display: inline-block; padding: 0 0 0 2px">
<div style="margin-top: 5px;align-items: center;">
<el-image style="width: 80px; height: 80px; border-radius: 5px" :src="item['checkPictureUrl'].indexOf('http') > -1
? item['checkPictureUrl']
: sysConfig.apiurl + item['checkPictureUrl']
" :preview-src-list="previewSrcList(scope.row.checkPictureUrls, item['checkPictureUrl'])">
</el-image>
<div style="display: flex;">
<div style="margin-left: 18px;">打印</div>
<el-checkbox :value="item['isPrint'] == 'Y'" />
</div>
</div>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div> </div>
</template> </template>
<script> <script>
@ -37,7 +122,9 @@ export default {
data() { data() {
return { return {
sysConfig: {}, sysConfig: {},
tableData: [],
tableData: [], //
previousData: [], //
previousTwoData: [], //
}; };
}, },
@ -53,7 +140,7 @@ export default {
computed: { computed: {
...mapState(['window', 'dict', 'dataTransOpts', 'doctorCheck', 'sumDoctorCheck']), ...mapState(['window', 'dict', 'dataTransOpts', 'doctorCheck', 'sumDoctorCheck']),
tableHeight(){
tableHeight() {
let tableHeight = 465 let tableHeight = 465
switch (this.refParams.place) { switch (this.refParams.place) {
case 'summary': // case 'summary': //
@ -65,8 +152,8 @@ export default {
return tableHeight return tableHeight
}, },
tableWidth(){
let tableWidth = 680
tableWidth() {
let tableWidth = 770
switch (this.refParams.place) { switch (this.refParams.place) {
case 'summary': // case 'summary': //
tableWidth = (this.window.pageWidth < 600 ? 600 : this.window.pageWidth) - 240 tableWidth = (this.window.pageWidth < 600 ? 600 : this.window.pageWidth) - 240
@ -85,19 +172,39 @@ export default {
CheckDetails(patientRegisterId) { CheckDetails(patientRegisterId) {
if (!patientRegisterId) { if (!patientRegisterId) {
this.tableData = [] this.tableData = []
return
this.previousData = [] //
this.previousTwoData = [] //
} }
postapi('/api/app/OccupationalDisease/GetRegisterCheckPictureByPatientRegisterId', { patientRegisterId })
// /api/app/OccupationalDisease/GetRegisterCheckPictureByPatientRegisterId
postapi('/api/app/OccupationalDisease/GetHistroyRegisterCheckPictureByPatientRegisterId', { patientRegisterId })
.then((res) => { .then((res) => {
console.log("获取图文报告 CheckDetails", res.data); console.log("获取图文报告 CheckDetails", res.data);
if (res.code != -1) { if (res.code != -1) {
this.tableData = res.data;
this.tableData = res.data.current;
this.tableData.forEach(e => { this.tableData.forEach(e => {
if(!e.checkPictureUrls) e.checkPictureUrls = []
if (!e.checkPictureUrls) e.checkPictureUrls = []
e.details.forEach(e1 => { e.details.forEach(e1 => {
e.checkPictureUrls.push(e1.checkPictureUrl) e.checkPictureUrls.push(e1.checkPictureUrl)
}); });
}); });
this.previousData = res.data.previous;
this.previousData.forEach(e => {
if (!e.checkPictureUrls) e.checkPictureUrls = []
e.details.forEach(e1 => {
e.checkPictureUrls.push(e1.checkPictureUrl)
});
});
this.previousTwoData = res.data.previousTwo;
this.previousTwoData.forEach(e => {
if (!e.checkPictureUrls) e.checkPictureUrls = []
e.details.forEach(e1 => {
e.checkPictureUrls.push(e1.checkPictureUrl)
});
});
} }
}) })
.catch((err) => { .catch((err) => {
@ -151,4 +258,3 @@ export default {
padding: 0; padding: 0;
} }
</style> </style>

2
src/components/report/BtnReport.vue

@ -78,7 +78,7 @@
<CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id" <CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id"
:refParams="{ place: 'doctor' }" /> :refParams="{ place: 'doctor' }" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="本次图文报告" name="4">
<el-tab-pane label="图文报告" name="4">
<ImageTextReport :refParams="{ place: 'doctor' }" /> <ImageTextReport :refParams="{ place: 'doctor' }" />
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane label="项目对比" name="4"> <!-- <el-tab-pane label="项目对比" name="4">

87
src/components/report/TurnoverReport.vue

@ -39,7 +39,34 @@
</div> </div>
<div class="query"> <div class="query">
<span class="spanClass">显示子单位</span> <span class="spanClass">显示子单位</span>
<el-checkbox v-model="query.isChild" true-label="Y" false-label="N" @change="btnQuery"/>
<el-checkbox v-model="query.isChild" true-label="Y" false-label="N" @change="btnQuery" />
</div>
</div>
<div style="display: flex;flex-wrap: wrap;margin-top: 2px; height: 32px;align-items: center;">
<div class="query">
<span class="spanClass">体检类别</span>
<el-select v-model="query.medicalTypeIds" placeholder="请选择体检类别" :filter-method="filterMethod"
default-first-option clearable filterable style="margin-left: 10px" size="small" multiple collapse-tags>
<el-option v-for="item in medicalType" :key="item.id" :label="item.displayName" :value="item.id">
{{ item.displayName }}
</el-option>
</el-select>
</div>
<div class="query">
<span class="spanClass">人员类别</span>
<el-select v-model="query.personnelTypeIds" placeholder="请选择人员类别" :filter-method="filterMethod"
default-first-option clearable filterable style="margin-left: 10px" size="small" multiple collapse-tags>
<el-option v-for="item in personnelType" :key="item.id" :label="item.displayName" :value="item.id">
{{ item.displayName }}
</el-option>
</el-select>
</div>
<div class="query">
<span class="spanClass">业务员</span>
<el-select v-model="query.salesmans" placeholder="请输入业务员姓名"
default-first-option clearable filterable style="margin-left: 10px" size="small" multiple collapse-tags>
<el-option v-for="item in dictSalesman" :key="item.id" :label="item.surname" :value="item.surname" />
</el-select>
</div> </div>
</div> </div>
</div> </div>
@ -49,12 +76,14 @@
</div> </div>
</div> </div>
<div id="tableData"> <div id="tableData">
<el-table :data="tableData" border :height="window.pageHeight - 160" highlight-current-row
size="small" row-key="id" :summary-method="getSummaries" show-summary ref="refTable">
<el-table :data="tableData" border :height="window.pageHeight - 192" highlight-current-row size="small"
row-key="id" :summary-method="getSummaries" show-summary ref="refTable">
<el-table-column type="index" label="序号" width="50" align="center" /> <el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="customerOrgName" label="单位名称" min-width="180"> <el-table-column prop="customerOrgName" label="单位名称" min-width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ query.isChild == 'Y' ? scope.row.customerOrgName + (scope.row.departmentName && scope.row.customerOrgName != scope.row.departmentName ? '--'+scope.row.departmentName:''):scope.row.customerOrgName}}</div>
<div>{{ query.isChild == 'Y' ? scope.row.customerOrgName + (scope.row.departmentName &&
scope.row.customerOrgName != scope.row.departmentName ?
'--' + scope.row.departmentName : '') : scope.row.customerOrgName }}</div>
</template> </template>
</el-table-column> </el-table-column>
@ -91,15 +120,21 @@ export default {
customerOrg: [], customerOrg: [],
customerOrgAll: [], customerOrgAll: [],
medicalType: [],
personnelType: [],
dictSalesman: [],
query: { query: {
dateType: '1', dateType: '1',
startDate: '', startDate: '',
endDate: '', endDate: '',
customerOrgIds: [], customerOrgIds: [],
// medicalTypeIds: [],
medicalTypeIds: [],
personnelTypeIds: [],
salesmans: [],
// isMedicalTypeId: 'Y', // isMedicalTypeId: 'Y',
isPreRegistration:'N',
isChild:'Y',
isPreRegistration: 'N',
isChild: 'Y',
}, },
tableData: [], tableData: [],
@ -167,12 +202,30 @@ export default {
} }
}); });
// //
// getapi("/api/app/medical-type/in-filter").then((res) => {
// if (res.code > -1) {
// this.dict.medicalType = res.data;
// }
// });
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code > -1) {
this.dict.medicalType = res.data;
this.medicalType = res.data
}
});
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.personnelType = res.data;
this.personnelType = res.data;
}
});
// {
postapi('/api/identity/users/GetUserListBySaleRole')
.then(res => {
if (res.code > -1) {
this.dictSalesman = res.data
}
})
}, },
// //
@ -204,11 +257,11 @@ export default {
// //
btnQuery() { btnQuery() {
//let body = deepCopy(this.query)
postapi("/api/app/CustomerReport/GetCustomerOrgPhysicalExaminationStatistics", this.query).then(res => { postapi("/api/app/CustomerReport/GetCustomerOrgPhysicalExaminationStatistics", this.query).then(res => {
if (res.code > -1) { if (res.code > -1) {
this.tableData = res.data this.tableData = res.data
if(Array.isArray(this.tableData) && this.tableData.length > 0){
if (Array.isArray(this.tableData) && this.tableData.length > 0) {
this.tableData.forEach(e => { this.tableData.forEach(e => {
e.startMedical = Number(e.partCheckCount) + Number(e.checkCount) e.startMedical = Number(e.partCheckCount) + Number(e.checkCount)
}); });
@ -219,7 +272,7 @@ export default {
// //
getSummaries(param) { getSummaries(param) {
console.log('getSummaries param',param)
console.log('getSummaries param', param)
// if(!param){ // if(!param){
// param = { // param = {
// columns:[{}, {}, {}, {}, {}, {}, {property: 'asbitemMoney'},{property: 'customerOrgGroupDetailMoney'}], // columns:[{}, {}, {}, {}, {}, {}, {property: 'asbitemMoney'},{property: 'customerOrgGroupDetailMoney'}],
@ -228,7 +281,7 @@ export default {
// } // }
const { columns, data } = param; const { columns, data } = param;
const sumCol = [2,3,4, 7,8] //
const sumCol = [2, 3, 4, 7, 8] //
const sums = []; const sums = [];
columns.forEach((column, index) => { columns.forEach((column, index) => {
//console.log('column, index,data',column, index,data) //console.log('column, index,data',column, index,data)

2
src/views/doctorCheck/sumDoctorCheck.vue

@ -46,7 +46,7 @@
<SumItemsType :patientId="dataTransOpts.tableS.patient_register.patientId" /> <SumItemsType :patientId="dataTransOpts.tableS.patient_register.patientId" />
</el-tab-pane> </el-tab-pane>
--> -->
<el-tab-pane label="本次图文报告" name="4">
<el-tab-pane label="图文报告" name="4">
<ImageTextReport :refParams="{ place: 'summary' }"/> <ImageTextReport :refParams="{ place: 'summary' }"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="历次结果" name="5"> <el-tab-pane label="历次结果" name="5">

Loading…
Cancel
Save