Browse Source

reportQuery

master
pengjun 2 years ago
parent
commit
d5e695669e
  1. 6
      src/assets/css/global.css
  2. 124
      src/components/report/BtnReport.vue
  3. 1
      src/components/report/CusOrgOCX.vue
  4. 50
      src/components/report/PatientRegisterListNobtn.vue
  5. 20
      src/components/report/PatientRegisterQueryNobtn.vue
  6. 62
      src/components/report/RegisterCheckStatus.vue
  7. 138
      src/views/report/chargeAsbitem.vue
  8. 176
      src/views/report/checkStatus.vue
  9. 25
      src/views/report/report.vue
  10. 114
      src/views/report/unCheckAsbitem.vue

6
src/assets/css/global.css

@ -2,8 +2,12 @@
background: rgb(240, 125, 125);
}
.el-table .unCheck-row {
background: #409EFF;
}
.el-table .refuse-row {
background: rgb(192, 192, 192);
background: #909399;
}
.el-table .purple-row {

124
src/components/report/BtnReport.vue

@ -1,13 +1,13 @@
<template>
<div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="prList">查询</el-button>
<el-button type="primary" class="btnClass" @click="btnQuery">查询</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="toDoctorCheck">预览报告</el-button>
<el-button type="primary" class="btnClass" @click="btnReport(true)">预览报告</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="save">打印报告</el-button>
<el-button type="primary" class="btnClass" @click="btnReport(false)">打印报告</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="edit">领用报告</el-button>
@ -15,7 +15,7 @@
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj, parseID } from "../../utlis/proFunc";
@ -27,8 +27,8 @@ export default {
},
data() {
return {
};
},
@ -40,12 +40,73 @@ export default {
},
computed: {
...mapState(["dict", "patientRegister", "doctorCheck", "sumDoctorCheck"]),
...mapState(["dict", "patientRegister", "doctorCheck", "sumDoctorCheck", "report"]),
},
methods: {
prList() {
this.sumDoctorCheck.sumDoctorCheckDialogVisible = true
btnQuery() {
let body = {}, customerOrgs = [];
// {
// "customerOrgs": [
// {
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgGroupId": [
// "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// ],
// "dateType": "string",
// "startDate": "string",
// "endDate": "string"
// }
// ],
// "patientRegisterNo": "string",
// "patientNo": "string",
// "patientName": "string",
// "phone": "string",
// "completeFlag": "string",
// "isAudit": "string",
// "isReportPrint": "string",
// "medicalTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "personnelTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
if (this.report.dataCusOrgOCX.length > 0) {
this.report.dataCusOrgOCX.forEach(e => {
let rd = {
startDate: moment(e.startDate).format('yyyy-MM-DD'),
endDate: moment(e.endDate).format('yyyy-MM-DD'),
dateType: e.dateType == 'summaryDate' ? '3':(e.dateType == 'medicalStartDate' ? '2':'1')
}
if (e.customerOrgId) {
rd.customerOrgId = e.customerOrgId
if(e.customerOrgId == this.dict.personOrgId){
rd.customerOrgRegisterId = null
rd.customerOrgGroupId = []
}else{
rd.customerOrgRegisterId = e.customerOrgRegister.id
rd.customerOrgGroupId = e.customerOrgGroupIds
}
}
customerOrgs.push(rd)
})
}
body.customerOrgs = customerOrgs
if(this.patientRegister.query.patientRegisterNo) body.patientRegisterNo = this.patientRegister.query.patientRegisterNo
if(this.patientRegister.query.patientNo) body.patientNo = this.patientRegister.query.patientNo
if(this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName
if(this.patientRegister.query.idCardNo) body.idCardNo = this.patientRegister.query.idCardNo
if(this.patientRegister.query.phone) body.phone = this.patientRegister.query.phone
if(this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag
if(this.patientRegister.query.isAudit) body.isAudit = this.patientRegister.query.isAudit
if(this.patientRegister.query.reportPrintTimes >= 0) body.isReportPrint = this.patientRegister.query.reportPrintTimes
if(this.patientRegister.query.isUpload) body.isUpload = this.patientRegister.query.isUpload
//console.log('/api/app/peisreport/getpatientregisterreport',body)
postapi('/api/app/peisreport/getpatientregisterreport',body).then(res =>{
if(res.code != -1){
this.patientRegister.prList = res.data
}
})
},
//to
toDoctorCheck() {
@ -209,10 +270,14 @@ export default {
},
//
report() {
let ret = this.optGrant('report')
if (ret) {
alert(ret)
async btnReport(isPreview) {
// let ret = this.optGrant('report')
// if (ret) {
// alert(ret)
// return
// }
if(!this.patientRegister.patientRegisterId){
this.$message.warning("请先选择记录!")
return
}
@ -222,7 +287,7 @@ export default {
let user = localStorage.getItem('user');
let toOutShell = {
ReportCode, token,
preViewCanPrint: this.sumDoctorCheck.sumPREdit.isAudit,
preViewCanPrint: this.patientRegister.patientRegisterRd.isAudit,
Parameters: [
{ Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' },
@ -232,19 +297,24 @@ export default {
],
};
postapi(`/api/app/printreport/getpeisreport?PatientRegisterId=${this.sumDoctorCheck.sumPREdit.id}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = res.data;
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.printPre(JSON.stringify(toOutShell));
}
})
.catch(err => {
this.$message.warning(err);
});
try {
toOutShell.ReportTable = await postapi(`/api/app/printreport/getpeisreport?PatientRegisterId=${this.patientRegister.patientRegisterId}`).data
if(isPreview){
this.$peisAPI.printPre(JSON.stringify(toOutShell));
}else{
this.$peisAPI.print(JSON.stringify(toOutShell)).then(res =>{
if (res.toLowerCase() == 'success') {
//
return postapi('/api/app/patientregister/updatepatientregisterguideprinttimesmany', [this.patientRegister.patientRegisterId])
}
});
}
} catch (error) {
this.$message.warning(error);
}
},
//

1
src/components/report/CusOrgOCX.vue

@ -5,7 +5,6 @@
</div>
<div style="display: block;width:620px;margin-top: -30px; margin-left: 5px;">
<el-table :data="dataCusOrgOCX" border height="450" highlight-current-row @row-dblclick="rowDblclick" size="small">
<el-table-column prop="customerOrgName" label="体检单位" width="150"/>
<el-table-column prop="customerOrgName" label="体检单位" width="150"/>
<el-table-column prop="customerOrgId" label="次数" width="50" align="center">
<template slot-scope="scope">

50
src/components/report/PatientRegisterListNobtn.vue

@ -9,44 +9,61 @@
<div>{{ ldddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="guidePrintTimes" label="打印" width="50">
<el-table-column prop="guidePrintTimes" label="打印" width="50" align="center">
<template slot-scope="scope">
<i class="el-icon-printer" v-if="scope.row.guidePrintTimes > 0" style="font-size: 24px;color: green;"></i>
</template>
</el-table-column>
<el-table-column prop="isLock" label="锁住">
<el-table-column prop="isLock" label="锁住" align="center">
<template slot-scope="scope">
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="customerOrgName" label="单位" width="180" />
<!--
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="departmentName" label="部门" width="180" />
<!--
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别">
<el-table-column prop="sexName" label="性别" align="center" />
<!--
<el-table-column prop="sexId" label="性别" >
<template slot-scope="scope">
<div>{{ ldddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
<div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
-->
<el-table-column prop="age" label="年龄" align="center" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数"></el-table-column>
<el-table-column prop="medicalTimes" label="体检次数" align="center" />
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<!--
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ ldddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ ldddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
-->
<div v-if="scope.row.medicalPackageName">
{{ scope.row.medicalPackageName }}
</div>
<div v-if="scope.row.customerOrgGroupName">
{{ scope.row.customerOrgGroupName }}
</div>
</template>
</el-table-column>
<el-table-column prop="nationId" label="民族">
@ -94,7 +111,7 @@
<el-table-column prop="jobPost" label="职务" />
<el-table-column prop="jobTitle" label="职称" />
<el-table-column prop="salesman" label="介绍人" />
<el-table-column prop="isVip" label="是否VIP">
<el-table-column prop="isVip" label="是否VIP" align="center">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
@ -105,7 +122,7 @@
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="isUpload" label="是否上传">
<el-table-column prop="isUpload" label="是否上传" align="center">
<template slot-scope="scope">
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
</template>
@ -294,17 +311,12 @@ export default {
},
//
rowick(row) {
this.patientRegister.photo = ""; //
this.patientRegister.patientRegisterId = row.id;
this.patientRegister.patientRegisterRd = row;
this.patientRegister.query.customerOrgParentId = row.customerOrgParentId;
this.patientRegister.customerOrgGroupChange = 0; //0
this.patientRegister.medicalPackageChange = 0; //0
this.getCustomerOrgGroup(row.customerOrgParentId);
this.dict.asbItem = [...this.dict.asbItemAll]
this.getPatientRegisterAbs(row.id);
rowick(row) {
this.patientRegister.patientRegisterId = row.patientRegisterId;
this.patientRegister.patientRegisterRd = row
console.log('this.patientRegister.patientRegisterId',this.patientRegister.patientRegisterId)
},
//

20
src/components/report/PatientRegisterQueryNobtn.vue

@ -4,24 +4,29 @@
<div style="display: flex; flex-wrap: wrap; height:35px;">
<div class="query">
<span>体检单位</span>
<el-input placeholder="请选择单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" disabled>
<el-input placeholder="请选择单位" v-model="patientRegister.query.cusOrgOCX" style="width:240px;" size="small" disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" style="font-size: 20px;"></el-button>
</el-input>
</div>
<div class="query">
<span>性别</span>
<el-select v-model="patientRegister.query.sex" placeholder="请选择" style="width: 70px" size="small">
<el-select v-model="patientRegister.query.sex" placeholder="请选择" style="width: 60px" size="small">
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</div>
<div class="query">
<span>身份证号</span>
<el-input placeholder="身份证号" v-model="patientRegister.query.idCardNo" size="small" clearable
style="width: 165px" />
style="width: 150px" />
</div>
<div class="query">
<span>电话</span>
<el-input placeholder="手机号及电话" v-model="patientRegister.query.phone" size="small" clearable
style="width: 110px" />
</div>
<div class="query">
<span>检查状态</span>
<el-select v-model="patientRegister.query.completeFlag" placeholder="请选择" clearable style="width: 90px"
<el-select v-model="patientRegister.query.completeFlag" placeholder="请选择" clearable style="width: 80px"
size="small">
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
@ -44,7 +49,7 @@
<el-input placeholder="姓名" v-model="patientRegister.query.patientName" size="small" clearable
style="width: 100px" />
</div>
<div class="query" style="margin-left: 50px;">
<div class="query" style="margin-left: 80px;">
<span>审核</span>
<el-select v-model="patientRegister.query.isAudit" placeholder="请选择" clearable style="width: 75px"
size="small">
@ -149,7 +154,10 @@ export default {
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 5px;
padding-right: 25px;
padding-right: 15px;
}
::v-deep .el-input__icon{
width: 15px; /* 输入框下拉箭头或清除图标 默认 25 */
}
::v-deep .el-input-group__append{
padding: 0 5px; /* 控件默认 0 20px;*/

62
src/components/report/RegisterCheckStatus.vue

@ -2,17 +2,20 @@
<div>
<el-table :data="doctorCheck.RegisterCheckList" border
:height="(window.pageHeight < 600) ? 220 : (window.pageHeight - 380)" size="small" highlight-current-row
ref="doctorCheck.RegisterCheckList">
<el-table-column prop="asbitemName" label="组合项目" width="120" />
<el-table-column prop="checkCompleteFlag" label="状态">
ref="doctorCheck.RegisterCheckList" :row-class-name="tableRowClassName">
<el-table-column prop="asbitemName" label="组合项目" width="120" />
<el-table-column prop="completeFlag" label="状态" align="center">
<template slot-scope="scope">
<div>
{{ dddw(dict.checkCompleteFlag, 'id', scope.row.completeFlag, 'displayName') }}
<!--
<el-radio v-model="scope.row.checkCompleteFlag" label="0">未检</el-radio>
<el-radio v-model="scope.row.checkCompleteFlag" label="1">已检</el-radio>
<el-radio v-model="scope.row.checkCompleteFlag" label="2">弃检</el-radio>
-->
</div>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="checkDate" label="检查日期" width="90">
<template slot-scope="scope">
<div>{{ moment(scope.row.checkDate).format("yyyy-MM-DD") }}</div>
@ -24,8 +27,12 @@
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw } from "../../utlis/proFunc"
export default {
components: {},
props: ["patientRegisterId"],
data() {
return {};
},
@ -33,18 +40,58 @@ export default {
created() { },
//
mounted() { },
mounted() {
if (this.patientRegisterId) {
this.registerCheckList(this.patientRegisterId);
}
},
computed: {
...mapState(["window", "dict", "doctorCheck"]),
},
methods: {
moment,
moment, dddw,
tableRowClassName({ row, rowIndex }) {
//console.log(row)
switch (row.completeFlag) {
case '0':
return 'unCheck-row'; //
case '2':
return 'refuse-row'; //
default:
return '';
}
},
//
registerCheckList(patientRegisterId) {
console.log(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
getapi(`/api/app/register-check/register-check-or-asbitem/${patientRegisterId}`)
.then((res) => {
console.log("registerCheckList", res.data);
if (res.code != -1) {
this.doctorCheck.RegisterCheckList = res.data;
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
},
watch: {
//ID
"patientRegisterId"(newVal, oldVal) {
console.log("watch patientRegisterId newVal:", newVal, " oldVal:", oldVal);
if (newVal != oldVal && newVal != '') {
this.registerCheckList(newVal);
}
},
}
};
</script>
<style scoped>
::v-deep .el-input__inner {
text-align: center;
padding-left: 1px;
@ -72,5 +119,4 @@ input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none !important;
margin: 0 !important;
}
</style>

138
src/views/report/chargeAsbitem.vue

@ -2,21 +2,24 @@
<div>
<el-card>
<div class="publiccss">人员费用组合项目</div>
<div :style="'display: block; width:' + (window.pageWidth - 80) + 'px;margin-top:20px'">
<div :style="'display: block; width:' + (window.pageWidth - 85) + 'px;margin-top:20px'">
<div style="display: flex; flex-wrap: wrap; height:35px;">
<div class="query">
<span>体检单位</span>
<el-input placeholder="请选择单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true"></el-button>
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small"
disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true"
style="font-size: 20px;"></el-button>
</el-input>
</div>
</div>
<div class="query">
<span>组合项目</span>
<el-select v-model="patientRegister.query.checkAsbs" multiple collapse-tags filterable clearable placeholder="请选择"
size="small" >
<el-option v-for="item in dict.asbItemAll" :key="item.value" :label="item.displayName" :value="item.id"/>
</el-select>
</div>
<el-input placeholder="请选择组合项目" v-model="patientRegister.query.asbitemOCX" style="width:240px;" size="small"
disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogAsbitemOCX = true"
style="font-size: 20px;"></el-button>
</el-input>
</div>
<div class="query">
<span>收费状态</span>
<el-select v-model="patientRegister.query.isCharge" placeholder="请选择" clearable style="width: 80px"
@ -32,47 +35,64 @@
<el-table :data="dataList" border width="100%" :height="window.pageHeight < 600 ? 370 : window.pageHeight - 230"
row-key="id" size="small" highlight-current-row ref="dataList" >
<el-table-column prop="asbitemName" label="组合项目名称" width="120"/>
<el-table-column prop="checkCompleteFlag" label="检查状态" width="70" >
<el-table-column prop="completeFlag" label="检查状态" width="70" align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.checkCompleteFlag, 'id', scope.row.checkCompleteFlag, 'displayName') }}</div>
<div>{{ dddw(dict.checkCompleteFlag, 'id', scope.row.completeFlag, 'displayName') }}</div>
</template>
</el-table-column>
<el-table-column prop="isCharge" label="收费状态" width="70" >
<el-table-column prop="isCharge" label="收费状态" width="70" align="center">
<template slot-scope="scope">
<div>{{ scope.row.checkCompleteFlag == 'Y' ? '已收费':'未收费' }}</div>
</template>
</el-table-column>
<el-table-column prop="standardPrice" label="标准价格" width="70"/>
<el-table-column prop="chargePrice" label="应收价格" width="70"/>
<el-table-column prop="standardPrice" label="标准价格" width="70" align="center"/>
<el-table-column prop="chargePrice" label="应收价格" width="70" align="center"/>
<el-table-column prop="patientRegisterNo" label="人员条码号" width="130"/>
<el-table-column prop="patientNo" label="档案号" width="130"/>
<el-table-column prop="medicalTimes" label="体检次数" width="70"/>
<el-table-column prop="medicalTimes" label="体检次数" width="70" align="center"/>
<el-table-column prop="customerOrgName" label="单位" width="180" />
<!--
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="departmentName" label="部门" width="180" />
<!--
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
-->
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
<!--
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
</template>
-->
<div v-if="scope.row.medicalPackageName">
{{ scope.row.medicalPackageName }}
</div>
<div v-if="scope.row.customerOrgGroupName">
{{ scope.row.customerOrgGroupName }}
</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" width="80"/>
<el-table-column prop="sexId" label="性别">
<el-table-column prop="sexName" label="性别" />
<!--
<el-table-column prop="sexId" label="性别" >
<template slot-scope="scope">
<div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="age" label="年龄" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
@ -84,6 +104,11 @@
:close-on-click-modal="false" width="840px" height="600px">
<CusOrgOCX/>
</el-dialog>
<!--通用选组合项目的控件-->
<el-dialog title="组合项目选择" :visible.sync="report.dialogAsbitemOCX" :close-on-click-modal="false" width="700px"
height="600px">
<AsbitemOCX />
</el-dialog>
</div>
</template>
<script>
@ -92,9 +117,12 @@ import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc";
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"
import AsbitemOCX from "../../components/report/AsbitemOCX.vue"
export default {
components: {
CusOrgOCX,
AsbitemOCX,
},
data() {
return {
@ -224,12 +252,64 @@ export default {
},
//
btnQuery(){
console.log('query');
let body = {};
btnQuery() {
let body = {}, customerOrgs = [], asbitemIds = [];
// {
// "customerOrgs": [
// {
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgGroupId": [
// "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// ],
// "dateType": "string",
// "startDate": "string",
// "endDate": "string"
// }
// ],
// "asbitemIds": [
// "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// ],
// "isCharge": "string"
// }
if (this.report.dataCusOrgOCX.length > 0) {
this.report.dataCusOrgOCX.forEach(e => {
let rd = {
startDate: moment(e.startDate).format('yyyy-MM-DD'),
endDate: moment(e.endDate).format('yyyy-MM-DD'),
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1')
}
postapi('/api',body).then(res =>{
if(res.code != -1 ){
if (e.customerOrgId) {
rd.customerOrgId = e.customerOrgId
if (e.customerOrgId == this.dict.personOrgId) {
rd.customerOrgRegisterId = null
rd.customerOrgGroupId = []
} else {
rd.customerOrgRegisterId = e.customerOrgRegister.id
rd.customerOrgGroupId = e.customerOrgGroupIds
}
}
customerOrgs.push(rd)
})
}
if (this.report.dataAsbitemOCX.length > 0) {
this.report.dataAsbitemOCX.forEach(e => {
asbitemIds.push(e.id)
})
}
body.customerOrgs = customerOrgs
body.asbitemIds = asbitemIds
if (this.patientRegister.query.isCharge) body.isCharge = this.patientRegister.query.isCharge
//console.log('/api/app/peisreport/getregisterasbitemchargestatus',body)
postapi('/api/app/peisreport/getregisterasbitemchargestatus', body).then(res => {
if (res.code != -1) {
this.dataList = res.data;
}
})
@ -253,8 +333,14 @@ export default {
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 5px;
padding-right: 25px;
padding-right: 15px;
}
::v-deep .el-input-group__append {
padding: 0 5px;
/* 控件默认 0 20px;*/
}
.query {
margin-left: 10px;
}

176
src/views/report/checkStatus.vue

@ -1,21 +1,25 @@
<template>
<div>
<el-card>
<el-card>
<div class="publiccss">组合项目检查状态</div>
<div :style="'display: block; width:' + (window.pageWidth - 82) + 'px;margin-top:20px'">
<div style="display: flex; flex-wrap: wrap; height:35px;">
<div class="query">
<span>体检单位</span>
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small" disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true" style="font-size: 20px;"></el-button>
<el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:342px;" size="small"
disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true"
style="font-size: 20px;"></el-button>
</el-input>
</div>
</div>
<div class="query">
<span>组合项目</span>
<el-input placeholder="请选择组合项目" v-model="patientRegister.query.asbitemOCX" style="width:240px;" size="small" disabled >
<el-button slot="append" icon="el-icon-search" @click="report.dialogAsbitemOCX = true" style="font-size: 20px;"></el-button>
<el-input placeholder="请选择组合项目" v-model="patientRegister.query.asbitemOCX" style="width:240px;" size="small"
disabled>
<el-button slot="append" icon="el-icon-search" @click="report.dialogAsbitemOCX = true"
style="font-size: 20px;"></el-button>
</el-input>
</div>
</div>
<div class="query">
<span>检查状态</span>
<el-select v-model="patientRegister.query.checkCompleteFlag" placeholder="请选择" clearable style="width: 80px"
@ -29,74 +33,91 @@
</div>
</div>
<div>
<el-table :data="dataList" border :height="window.pageHeight < 600 ? 360 : window.pageHeight - 240"
row-key="id" size="small" highlight-current-row ref="dataList" >
<el-table-column prop="asbitemName" label="组合项目名称" width="120"/>
<el-table-column prop="checkCompleteFlag" label="检查状态" width="70" >
<el-table :data="dataList" border :height="window.pageHeight < 600 ? 360 : window.pageHeight - 240" row-key="id"
size="small" highlight-current-row ref="dataList">
<el-table-column prop="asbitemName" label="组合项目名称" width="120" />
<el-table-column prop="completeFlag" label="检查状态" width="70" align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.checkCompleteFlag, 'id', scope.row.checkCompleteFlag, 'displayName') }}</div>
<div>{{ dddw(dict.checkCompleteFlag, 'id', scope.row.completeFlag, 'displayName') }}</div>
</template>
</el-table-column>
<el-table-column prop="isCharge" label="收费状态" width="70" >
<el-table-column prop="isCharge" label="收费状态" width="70" align="center">
<template slot-scope="scope">
<div>{{ scope.row.checkCompleteFlag == 'Y' ? '已收费':'未收费' }}</div>
<div>{{ scope.row.checkCompleteFlag == 'Y' ? '已收费' : '未收费' }}</div>
</template>
</el-table-column>
<el-table-column prop="standardPrice" label="标准价格" width="70"/>
<el-table-column prop="chargePrice" label="应收价格" width="70"/>
<el-table-column prop="patientRegisterNo" label="人员条码号" width="130"/>
<el-table-column prop="patientNo" label="档案号" width="130"/>
<el-table-column prop="medicalTimes" label="体检次数" width="70"/>
<el-table-column prop="standardPrice" label="标准价格" width="70" align="center"/>
<el-table-column prop="chargePrice" label="应收价格" width="70" align="center"/>
<el-table-column prop="patientRegisterNo" label="人员条码号" width="130" />
<el-table-column prop="patientNo" label="档案号" width="130" />
<el-table-column prop="medicalTimes" label="体检次数" width="70" align="center"/>
<el-table-column prop="customerOrgName" label="单位" width="180" />
<!--
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="departmentName" label="部门" width="180" />
<!--
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
-->
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
<!--
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
</template>
-->
<div v-if="scope.row.medicalPackageName">
{{ scope.row.medicalPackageName }}
</div>
<div v-if="scope.row.customerOrgGroupName">
{{ scope.row.customerOrgGroupName }}
</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" width="80"/>
<el-table-column prop="sexId" label="性别">
<el-table-column prop="patientName" label="姓名" width="80" />
<el-table-column prop="sexName" label="性别" />
<!--
<el-table-column prop="sexId" label="性别" >
<template slot-scope="scope">
<div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="age" label="年龄" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
</el-table>
</div>
</div>
</div>
</el-card>
</el-card>
<!--通用选单位体检次数分组的控件-->
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX"
:close-on-click-modal="false" width="840px" height="600px">
<CusOrgOCX/>
<el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" :close-on-click-modal="false" width="840px"
height="600px">
<CusOrgOCX />
</el-dialog>
<!--通用选组合项目的控件-->
<el-dialog title="组合项目选择" :visible.sync="report.dialogAsbitemOCX"
:close-on-click-modal="false" width="700px" height="600px">
<AsbitemOCX/>
</el-dialog>
<el-dialog title="组合项目选择" :visible.sync="report.dialogAsbitemOCX" :close-on-click-modal="false" width="700px"
height="600px">
<AsbitemOCX />
</el-dialog>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce, arrayExistObj,tcdate } from "@/utlis/proFunc";
import { dddw, objCopy, arrayReduce, arrayExistObj, tcdate } from "@/utlis/proFunc";
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"
import AsbitemOCX from "../../components/report/AsbitemOCX.vue"
export default {
@ -105,7 +126,7 @@ export default {
AsbitemOCX,
},
data() {
return {
return {
dataList: [], //
};
},
@ -118,13 +139,13 @@ export default {
mounted() {
this.btnQuery();
},
computed: {
...mapState(["window", "dict","patientRegister","report"]),
...mapState(["window", "dict", "patientRegister", "report"]),
},
methods: {
moment,dddw,
moment, dddw,
//
dictInit() {
//
@ -232,12 +253,65 @@ export default {
},
//
btnQuery(){
console.log('query');
let body = {};
btnQuery() {
let body = {}, customerOrgs = [], asbitemIds = [];
// {
// "customerOrgs": [
// {
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgGroupId": [
// "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// ],
// "dateType": "string",
// "startDate": "string",
// "endDate": "string"
// }
// ],
// "asbitemIds": [
// "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// ],
// "completeFlag": "string"
// }
if (this.report.dataCusOrgOCX.length > 0) {
this.report.dataCusOrgOCX.forEach(e => {
let rd = {
startDate: moment(e.startDate).format('yyyy-MM-DD'),
endDate: moment(e.endDate).format('yyyy-MM-DD'),
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1')
}
postapi('/api',body).then(res =>{
if(res.code != -1 ){
if (e.customerOrgId) {
rd.customerOrgId = e.customerOrgId
if (e.customerOrgId == this.dict.personOrgId) {
rd.customerOrgRegisterId = null
rd.customerOrgGroupId = []
} else {
rd.customerOrgRegisterId = e.customerOrgRegister.id
rd.customerOrgGroupId = e.customerOrgGroupIds
}
}
customerOrgs.push(rd)
})
}
if (this.report.dataAsbitemOCX.length > 0) {
this.report.dataAsbitemOCX.forEach(e => {
asbitemIds.push(e.id)
})
}
body.customerOrgs = customerOrgs
body.asbitemIds = asbitemIds
if (this.patientRegister.query.checkCompleteFlag) body.completeFlag = this.patientRegister.query.checkCompleteFlag
//console.log('/api/app/peisreport/getpatientregisterreport',body)
postapi('/api/app/peisreport/getregisterasbitemregistercheckstatus', body).then(res => {
if (res.code != -1) {
this.dataList = res.data;
}
})
@ -261,11 +335,14 @@ export default {
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 5px;
padding-right: 25px;
padding-right: 15px;
}
::v-deep .el-input-group__append{
padding: 0 5px; /* 控件默认 0 20px;*/
::v-deep .el-input-group__append {
padding: 0 5px;
/* 控件默认 0 20px;*/
}
.query {
margin-left: 10px;
}
@ -281,5 +358,4 @@ export default {
.btnClass {
width: 110px;
}
</style>
}</style>

25
src/views/report/report.vue

@ -10,10 +10,10 @@
<PatientRegisterListNobtn />
</div>
<div :style="'margin-left: 2px;width:' + Math.floor((window.pageWidth - 120 - 80 - 8) / 4) + 'px;'">
<RegisterCheckStatus />
<RegisterCheckStatus :patientRegisterId="patientRegister.patientRegisterId"/>
</div>
</div>
<SumAsbItemStatus />
<SumAsbItemStatus :patientRegisterId="patientRegister.patientRegisterId" />
</div>
<div style="margin-left: 10px; width: 110px">
<BtnReport />
@ -182,6 +182,27 @@ export default {
};
</script>
<style scoped>
/* 表格 表头 列间距控制 */
::v-deep .el-table th.el-table__cell>.cell{
text-align: center; /* 表格 表头 对齐方式,默认 left */
padding-right: 2px; /* 表格 表头 列间距控制,默认 10px */
padding-left: 2px; /* 表格 表头 列间距控制,默认 10px */
}
/* 表格 表体 首列左间距控制 */
::v-deep .el-table--border .el-table__cell:first-child .cell {
padding-left: 2px; /* 表格 表体 首列左间距控制,默认 10px */
}
/* 表格 行列间距控制 ,默认 10 px*/
::v-deep .el-table__cell {
padding: 2px 2px 2px 2px; /* 上,右,下,左 */
}
::v-deep .cell {
padding-left: 2px;
padding-right: 2px;
}
.query {
margin-left: 10px;
}

114
src/views/report/unCheckAsbitem.vue

@ -2,7 +2,7 @@
<div>
<el-card>
<div class="publiccss">人员未检组合项目</div>
<div :style="'display: block; width:' + (window.pageWidth - 80) + 'px;margin-top:20px'">
<div :style="'display: block; width:' + (window.pageWidth - 85) + 'px;margin-top:20px'">
<div style="display: flex; flex-wrap: wrap; height:35px;">
<div class="query">
<span>体检单位</span>
@ -27,37 +27,64 @@
</div>
<el-table :data="dataList" border width="100%" :height="window.pageHeight < 600 ? 370 : window.pageHeight - 230"
row-key="id" size="small" highlight-current-row ref="dataList" >
<el-table-column prop="asbitemName" label="未检项目" width="300"/>
<el-table-column label="未检项目" width="300">
<template slot-scope="scope">
<div style="display: flex; flex-wrap: wrap;">
<el-tag type="danger" style="margin-left: 5px;" v-for="item in scope.row.unCheckAsbitems" :key="item"
size="mini">{{ item }}</el-tag>
<el-tag type="info" style="margin-left: 5px;" v-for="item in scope.row.giveUpAsbitems" :key="item"
size="mini">{{ item }}</el-tag>
</div>
</template>
</el-table-column>
<el-table-column prop="patientRegisterNo" label="人员条码号" width="130"/>
<el-table-column prop="patientNo" label="档案号" width="130"/>
<el-table-column prop="medicalTimes" label="体检次数" width="70"/>
<el-table-column prop="medicalTimes" label="体检次数" width="70" align="center"/>
<el-table-column prop="customerOrgName" label="单位" width="180" />
<!--
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
-->
<el-table-column prop="departmentName" label="部门" width="180" />
<!--
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
-->
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
<!--
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
</template>
-->
<div v-if="scope.row.medicalPackageName">
{{ scope.row.medicalPackageName }}
</div>
<div v-if="scope.row.customerOrgGroupName">
{{ scope.row.customerOrgGroupName }}
</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" width="80"/>
<el-table-column prop="sexId" label="性别">
<el-table-column prop="sexName" label="性别" align="center"/>
<!--
<el-table-column prop="sexId" label="性别" >
<template slot-scope="scope">
<div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
-->
<el-table-column prop="age" label="年龄" align="center"/>
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
</el-table>
@ -209,12 +236,60 @@ export default {
},
//
btnQuery(){
console.log('query');
let body = {};
btnQuery() {
let body = {}, customerOrgs = [];
// {
// "customerOrgs": [
// {
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgGroupId": [
// "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// ],
// "dateType": "string",
// "startDate": "string",
// "endDate": "string"
// }
// ],
// "completeFlag": "string"
// }
postapi('/api',body).then(res =>{
if(res.code != -1 ){
if (this.report.dataCusOrgOCX.length > 0) {
this.report.dataCusOrgOCX.forEach(e => {
let rd = {
startDate: moment(e.startDate).format('yyyy-MM-DD'),
endDate: moment(e.endDate).format('yyyy-MM-DD'),
dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1')
}
if (e.customerOrgId) {
rd.customerOrgId = e.customerOrgId
if (e.customerOrgId == this.dict.personOrgId) {
rd.customerOrgRegisterId = null
rd.customerOrgGroupId = []
} else {
rd.customerOrgRegisterId = e.customerOrgRegister.id
rd.customerOrgGroupId = e.customerOrgGroupIds
}
}
customerOrgs.push(rd)
})
}
body.customerOrgs = customerOrgs
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag
if (this.patientRegister.query.containRefuse){
body.isGiveUpCheck = 'Y'
}else{
body.isGiveUpCheck = 'N'
}
//console.log('/api/app/peisreport/getpatientregisterreport',body)
postapi('/api/app/peisreport/getpatientregisteruncheckedreport', body).then(res => {
if (res.code != -1) {
this.dataList = res.data;
}
})
@ -238,8 +313,17 @@ export default {
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 5px;
padding-right: 25px;
padding-right: 15px;
}
::v-deep .el-input__icon{
width: 15px; /* 输入框下拉箭头或清除图标 默认 25 */
}
::v-deep .el-input-group__append {
padding: 0 5px;
/* 控件默认 0 20px;*/
}
.query {
margin-left: 10px;
}

Loading…
Cancel
Save