pengjun 4 months ago
parent
commit
e9de614544
  1. BIN
      public/pic/auditDoctorSign.jpg
  2. BIN
      public/pic/sumDoctorSign.jpg
  3. 2
      src/components/doctorCheck/ButtonList.vue
  4. 42
      src/components/doctorCheck/PatientRegisterList.vue
  5. 176
      src/components/report/BtnReport.vue
  6. 8
      src/components/report/PatientRegisterListNobtn.vue
  7. 1
      src/components/sumDoctorCheck/CheckDetails.vue

BIN
public/pic/auditDoctorSign.jpg

After

Width: 248  |  Height: 191  |  Size: 29 KiB

BIN
public/pic/sumDoctorSign.jpg

After

Width: 583  |  Height: 363  |  Size: 23 KiB

2
src/components/doctorCheck/ButtonList.vue

@ -142,7 +142,7 @@
</span>
</el-dialog>
<el-dialog title="历次结果" :visible.sync="dialogVisibleCheckHistory" :close-on-click-modal="false" width="800px">
<el-dialog title="历次结果" :visible.sync="dialogVisibleCheckHistory" :close-on-click-modal="false" width="900px">
<div>
<el-tabs v-model="tabChoosed">
<el-tab-pane label="明细结果" name="2">

42
src/components/doctorCheck/PatientRegisterList.vue

@ -95,11 +95,7 @@
@row-click="rowClick" @row-dblclick="rowDblclick" ref="info" id="info" style="border-radius:10px;">
<el-table-column type="index" label="序号" width="40" align="center" />
<el-table-column prop="patientName" label="姓名" width="80" sortable align="center" />
<el-table-column prop="sexId" label="性别" sortable align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="sexName" label="性别" sortable align="center" />
<el-table-column prop="age" label="年龄" width="40" align="center" />
<el-table-column prop="customerOrgParentName" label="单位" width="120" sortable show-overflow-tooltip>
<template slot-scope="scope">
@ -124,13 +120,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="nationId" label="民族" sortable align="center">
<template slot-scope="scope">
<div>
{{ dddw(dict.nation, "id", scope.row.nationId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="nationName" label="民族" sortable align="center"/>
<el-table-column prop="idNo" label="身份证" sortable width="180" align="center" />
<el-table-column prop="birthDate" label="出生日期" align="center" width="100">
<template slot-scope="scope">
@ -145,27 +135,9 @@
<el-table-column prop="address" label="地址" width="400" />
<el-table-column prop="medicalCardNo" label="体检卡号" />
<el-table-column prop="jobCardNo" label="工卡号" />
<el-table-column prop="maritalStatusId" label="婚姻状况" align="center">
<template slot-scope="scope">
<div>
{{ dddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="medicalTypeId" label="体检类别" sortable>
<template slot-scope="scope">
<div v-if="scope.row.medicalTypeId !== dict.personOrgId">
{{ dddw(dict.medicalType, "id", scope.row.medicalTypeId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="personnelTypeId" label="人员类别" sortable>
<template slot-scope="scope">
<div v-if="scope.row.personnelTypeId !== dict.personOrgId">
{{ dddw(dict.personnelType, "id", scope.row.personnelTypeId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="maritalStatusName" label="婚姻状况" align="center" />
<el-table-column prop="medicalTypeName" label="体检类别" sortable />
<el-table-column prop="personnelTypeName" label="人员类别" sortable />
<el-table-column prop="jobPost" label="职务" width="200" sortable/>
<el-table-column prop="jobTitle" label="职称" sortable/>
<el-table-column prop="salesman" label="介绍人" sortable/>
@ -180,7 +152,7 @@
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="isUpload" label="是否上传" sortable>
<el-table-column prop="isUpload" label="是否上传" align="center" sortable>
<template slot-scope="scope">
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
</template>
@ -190,7 +162,7 @@
<div>{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="isLock" label="锁住" sortable>
<el-table-column prop="isLock" label="锁住" align="center" sortable >
<template slot-scope="scope">
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
</template>

176
src/components/report/BtnReport.vue

@ -26,7 +26,9 @@
<el-button type="primary" class="commonbutton" @click="btnUpReport">上传Web</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnExport">导出人员</el-button>
<download-excel :fields="jsonFields" :fetch="btnExport" type="xls" :name="xlsName">
<el-button type="" class="commonbutton" style="width:100%">人员信息导出</el-button>
</download-excel>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="exportZip">导出Zip</el-button>
@ -48,7 +50,8 @@
<div class="query" style="display: flex;margin: 0 0 30px 10px;">
<span class="spanClass">领取人</span>
<el-input placeholder="领取人" v-model="receiveReport.reportReceiveName" size="small" clearable style="width: 120px" />
<el-input placeholder="领取人" v-model="receiveReport.reportReceiveName" size="small" clearable
style="width: 120px" />
</div>
<div style="display: flex;justify-content: space-between;">
<div></div>
@ -57,7 +60,8 @@
<el-button type="primary" class="commonbutton" @click="btnGetReportOk">确定</el-button>
</div>
<div style="margin-left: 10px;">
<el-button type="primary" class="commonbutton" @click="dialogGetReport = false">取消</el-button>
<el-button type="primary" class="commonbutton"
@click="dialogGetReport = false">取消</el-button>
</div>
</div>
</div>
@ -70,7 +74,7 @@
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj, deepCopy, parseID } from "../../utlis/proFunc";
import { arrayExistObj, deepCopy, parseID,dddw } from "../../utlis/proFunc";
import ElProgressOCX from "../report/ElProgressOCX.vue";
//import PatientRegisterList from "../doctorCheck/PatientRegisterList.vue";
export default {
@ -80,13 +84,59 @@ export default {
},
data() {
return {
dialogGetReport:false,
receiveReport:{
dialogGetReport: false,
receiveReport: {
patientRegisterIds: [
],
isReceiveReport: "Y",
reportReceiveName: "" ////
}
},
jsonFields: {},
xlsName: '',
dragCol: [
{ label: "序号", prop: "sn", minWidth: 40, align: "center" },
{ label: "体检进度", prop: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "打印", prop: "isReportPrint", minWidth: 60, align: "center" },
{ label: "领取", prop: "isReceiveReport", minWidth: 60, align: "center" },
{ label: "预约备单", prop: "isUploadAppoint", minWidth: 90, align: "center" },
{ label: "上传", prop: "isUpload", minWidth: 60, align: "center" },
{ label: "条码号", prop: "patientRegisterNo", minWidth: 150, align: "center" },
{ label: "姓名", prop: "patientName", minWidth: 60, align: "center" },
{ label: "性别", prop: "sexName", minWidth: 60, align: "center" },
{ label: "年龄", prop: "age", minWidth: 60, align: "center" },
{ label: "分组/套餐", prop: "packGroup", minWidth: 150, align: "center" },
{ label: "体检次数", prop: "medicalTimes", minWidth: 90, align: "center" },
{ label: "单位名称", prop: "customerOrgName", minWidth: 180, align: "left", showTooltip: true },
{ label: "部门名称", prop: "departmentName", minWidth: 180, align: "left", showTooltip: true },
{ label: "手机", prop: "mobileTelephone", minWidth: 130, align: "center" },
{ label: "电话", prop: "telephone", minWidth: 130, align: "center" },
{ label: "档案号", prop: "patientNo", minWidth: 80, align: "center" },
{ label: "身份证号", prop: "idNo", minWidth: 160, align: "center" },
{ label: "出生日期", prop: "birthDate", minWidth: 90, align: "center" },
{ label: "婚姻", prop: "maritalStatusName", minWidth: 70, align: "center" },
{ label: "民族", prop: "nationName", minWidth: 70, align: "center" },
{ label: "地址", prop: "address", minWidth: 400, align: "left", showTooltip: true },
{ label: "体检卡号", prop: "medicalCardNo", minWidth: 90, align: "center" },
{ label: "工卡号", prop: "jobCardNo", minWidth: 90, align: "center" },
{ label: "体检类别", prop: "medicalTypeName", minWidth: 100, align: "center" },
{ label: "人员类别", prop: "personnelTypeName", minWidth: 100, align: "center" },
{ label: "职务", prop: "jobPost", minWidth: 70, align: "center" },
{ label: "职称", prop: "jobTitle", minWidth: 70, align: "center" },
{ label: "介绍人", prop: "salesman", minWidth: 80, align: "center" },
{ label: "VIP", prop: "isVip", minWidth: 80, align: "center" },
{ label: "总检医生", prop: "summaryDoctorName", minWidth: 90, align: "center" },
{ label: "总检日期", prop: "summaryDate", minWidth: 140, align: "center" },
{ label: "审核医生", prop: "auditDoctorName", minWidth: 90, align: "center" },
{ label: "审核日期", prop: "auditDate", minWidth: 140, align: "center" },
{ label: "登记人", prop: "registerName", minWidth: 80, align: "center" },
{ label: "登记时间", prop: "registerDate", minWidth: 140, align: "center" },
{ label: "打印人", prop: "reportPrintName", minWidth: 70, align: "center" },
{ label: "领取人", prop: "reportReceiveName", minWidth: 70, align: "center" },
{ label: "领取时间", prop: "reportReceiveDate", minWidth: 140, align: "center" },
{ label: "锁住", prop: "isLock", minWidth: 60, align: "center" },
],
};
},
@ -103,6 +153,7 @@ export default {
},
methods: {
dddw,
btnQuery() {
this.patientRegister.query.times++
},
@ -220,6 +271,7 @@ export default {
}
this.elProgress.display = false;
},
//
btnImportResult(checkType) {
if (!this.dataTransOpts.tableS.patient_register.id) {
@ -256,41 +308,43 @@ export default {
},
btnGetReportOk(){
postapi('/api/app/PatientRegister/BatchUpdatePatientRegisterReportReceive',this.receiveReport)
//
btnGetReportOk() {
postapi('/api/app/PatientRegister/BatchUpdatePatientRegisterReportReceive', this.receiveReport)
.then(res => {
if(res.code > -1){
this.$message.success({showClose:true,message:'操作成功!'})
if (res.code > -1) {
this.$message.success({ showClose: true, message: '操作成功!' })
let reportReceiveDate = moment(new Date()).format('yyyy-MM-DD HH:mm:ss')
let lfind = -1
this.receiveReport.patientRegisterIds.forEach(patientRegisterId => {
lfind = arrayExistObj(this.patientRegister.prList,'patientRegisterId',patientRegisterId)
if(lfind > -1){
lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', patientRegisterId)
if (lfind > -1) {
this.patientRegister.prList[lfind].isReceiveReport = this.receiveReport.isReceiveReport
this.patientRegister.prList[lfind].reportReceiveName = this.receiveReport.reportReceiveName
this.patientRegister.prList[lfind].reportReceiveDate = reportReceiveDate
}
});
this.dialogGetReport = false
}
})
},
//
//()
btnGetReport(isReceiveReport) {
//console.log('this.dataTransOpts.tableS.patient_register.id',this.dataTransOpts.tableS.patient_register.id,this.dataTransOpts.tableM.patient_register)
let rd = []
if (this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0) {
rd = rd.concat(this.dataTransOpts.tableM.patient_register)
}
if(rd.length == 0){
if(this.dataTransOpts.tableS.patient_register.id) rd.push({patientRegisterId:this.dataTransOpts.tableS.patient_register.id})
if (rd.length == 0) {
if (this.dataTransOpts.tableS.patient_register.id) rd.push({ patientRegisterId: this.dataTransOpts.tableS.patient_register.id })
}
if (rd.length == 0) {
this.$message.warning({ showClose: true, message: "请先勾选或选择记录(有勾选人员时,仅操作勾选的记录)!" })
return
}
let lfind = arrayExistObj(this.patientRegister.prList,'patientRegisterId',rd[0].patientRegisterId)
if(lfind > -1){
let lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', rd[0].patientRegisterId)
if (lfind > -1) {
this.receiveReport.reportReceiveName = this.patientRegister.prList[lfind].patientName
}
@ -394,30 +448,17 @@ export default {
//
//
async btnReport(isPreview) {
if (!this.dataTransOpts.tableS.patient_register.id || !(this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0)) {
this.$message.warning({ showClose: true, message: "请先勾选或选择记录(优先打印勾选人员的报告)!" })
return
}
if (!this.$peisAPI) {
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" })
return
}
///3a0c990e-5756-2dc0-19d5-69a617fe4048 isPatientOccupationalDisease patientRegisterId completeFlag isAudit
let rds = []
if (this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0) {
rds = this.dataTransOpts.tableM.patient_register
} else {
rds.push({
patientRegisterId: this.dataTransOpts.tableS.patient_register.id,
isPatientOccupationalDisease: this.dataTransOpts.tableS.patient_register.isPatientOccupationalDisease,
completeFlag: this.dataTransOpts.tableS.patient_register.completeFlag,
isAudit: this.dataTransOpts.tableS.patient_register.isAudit,
})
}
let rds = this.getChoosedRds()
if (rds.length == 0) return
let ReportCode = '0005';
if (rds[0].isPatientOccupationalDisease == 'Y') ReportCode = '0006'
@ -442,6 +483,8 @@ export default {
{ Name: 'resultSign', Value: 'pic/resultSign.png' }, //
{ Name: 'picExtThree', Value: 'pic/peisQrCode.jpg' }, //
{ Name: 'picExtFour', Value: 'pic/peisQrCodeMini.jpg' }, //
{ Name: 'picExtFive', Value: 'pic/sumDoctorSign.jpg' }, //
{ Name: 'picExtSix', Value: 'pic/auditDoctorSign.jpg' }, //
],
};
@ -470,6 +513,7 @@ export default {
});
} else {
let lfind = -1
for (let i = 0; i < rds.length; i++) {
let rd = rds[i];
@ -493,6 +537,12 @@ export default {
this.$message.warning({ showClose: true, message: JSON.parse(lres).message });
} else {
postapi('/api/app/patientregister/updatepatientregisterreportprinttimesmany', [rd.patientRegisterId])
.then(res => {
if (res.code > -1) {
lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', rd.patientRegisterId)
if (lfind > -1) this.patientRegister.prList[lfind].isReportPrint = 'Y'
}
})
}
} catch (error) {
this.$message.warning({ showClose: true, message: error });
@ -599,6 +649,61 @@ export default {
})
},
//
getChoosedRds() {
let rd = []
if (this.dataTransOpts.tableM.patient_register && this.dataTransOpts.tableM.patient_register.length > 0) {
rd = rd.concat(this.dataTransOpts.tableM.patient_register)
}
if (rd.length == 0) {
if (this.dataTransOpts.tableS.patient_register.id) {
let lfind = arrayExistObj(this.patientRegister.prList, 'patientRegisterId', this.dataTransOpts.tableS.patient_register.id)
if (lfind > -1) rd.push(this.patientRegister.prList.slice(lfind, Number(lfind) + 1))
}
}
if (rd.length == 0) {
this.$message.warning({ showClose: true, message: "请先勾选或选择记录(有勾选人员时,仅操作勾选的记录)!" })
}
return rd
},
//
btnExport(elId) {
this.dragCol.forEach((e) => {
this.jsonFields[e.label] = e.prop;
});
let tableDatas = deepCopy(this.patientRegister.prList)
tableDatas.forEach((e, index) => {
e.sn = index + 1
if (e.completeFlag) e.completeFlag = e.isAudit == "Y" ? "已审核" : dddw(this.dict.completeFlag, "id", e.completeFlag, "displayName")
e.isReportPrint = e.isReportPrint == 'Y' ? '√' : ''
if (e.isLock) e.isLock = e.isLock == 'Y' ? '√' : ''
//if (e.sexId) e.sexId = dddw(this.dict.sex, "id", e.sexId, "displayName")
// if (e.patientRegisterNo) e.patientRegisterNo = " " + e.patientRegisterNo
if (e.patientNo) e.patientNo = "'" + e.patientNo
if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId === this.dict.personOrgId) {
e.groupPack = e.medicalPackageName // dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName")
} else if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId !== this.dict.personOrgId) {
e.groupPack = e.customerOrgGroupName // dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName")
}
//if (e.nationId) e.nationId = dddw(this.dict.nation, "id", e.nationId, "displayName")
// if (e.idNo) e.idNo = " " + e.idNo
// if (e.mobileTelephone) e.mobileTelephone = " " + e.mobileTelephone
// if (e.telephone) e.telephone = " " + e.telephone
if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD")
//if (e.maritalStatusId) e.maritalStatusId = dddw(this.dict.maritalStatus, "id", e.maritalStatusId, "displayName")
//if (e.medicalTypeId) e.medicalTypeId = dddw(this.dict.medicalType, "id", e.medicalTypeId, "displayName")
//if (e.personnelTypeId) e.personnelTypeId = dddw(this.dict.personnelType, "id", e.personnelTypeId, "displayName")
if (e.isVip) e.isVip = e.isVip == "Y" ? "是" : "否"
if (e.isUpload) e.isUpload = e.isUpload == "Y" ? "是" : "否"
})
this.xlsName = '人员列表' + moment(new Date()).format('yyyyMMDDHHmmss') + '.xls'
return tableDatas;
},
},
//()
@ -633,5 +738,4 @@ export default {
font-size: 14px;
padding: 5px 2px 0 0;
}
</style>

8
src/components/report/PatientRegisterListNobtn.vue

@ -9,10 +9,13 @@
<el-table-column v-for="(item, index) in dragCol" v-if="index != 0" :key="`${item.label + index}`"
:type="dragCol[index].type" :min-width="dragCol[index].minWidth" :align="dragCol[index].align"
:label="dragCol[index].type ? '' : item.label" :prop="dragCol[index].prop"
:sortable="dragCol[index].type ? false : true" :show-overflow-tooltip="dragCol[index].showTooltip">
:sortable="dragCol[index].type || dragCol[index].prop == 'sn' ? false : true" :show-overflow-tooltip="dragCol[index].showTooltip">
<template slot-scope="scope">
<div v-if="dragCol[index].prop == 'completeFlag'"
<div v-if="dragCol[index].prop == 'sn'">
{{ scope.$index + 1 }}
</div>
<div v-else-if="dragCol[index].prop == 'completeFlag'"
:style="`color: ${setPrStatusColor(scope.row.isAudit, scope.row.completeFlag)}`">
{{ dddw(dict.completeFlag, "id", scope.row[dragCol[index].prop], "displayName") }}
</div>
@ -106,6 +109,7 @@ export default {
selectionCol: 0,
dragCol: [
{ label: "勾选", type: "selection", minWidth: 40, align: "center" },
{ label: "序号", prop: "sn", minWidth: 40, align: "center" },
{ label: "体检进度", prop: "completeFlag", minWidth: 90, align: "center" },
{ label: "体检日期", prop: "medicalStartDate", minWidth: 100, align: "center" },
{ label: "打印", prop: "isReportPrint", minWidth: 60, align: "center" },

1
src/components/sumDoctorCheck/CheckDetails.vue

@ -87,7 +87,6 @@
<td align="center" class="tdCellClass">{{ item3.unit }}</td>
<td align="center" class="tdCellClass">{{ item3.resultStatusName }}</td>
</tr>
<tr height="24">
<td colspan="8" class="tdCellClass" v-html="`小结:${mergeSummarys(details.summarys, 'summary')}`"></td>
</tr>

Loading…
Cancel
Save