|
|
|
@ -1,93 +1,257 @@ |
|
|
|
<template> |
|
|
|
<div> |
|
|
|
<div style="display: flex"> |
|
|
|
<div> |
|
|
|
<div style="display: flex; flex-wrap: wrap;height:70px; width: 100%;"> |
|
|
|
<div> |
|
|
|
<span class="query">条码号</span> |
|
|
|
<el-input placeholder="条码号" v-model="doctorCheck.prBase.patientRegisterNo" size="small" style="width: 140px;" |
|
|
|
<el-input placeholder="条码号" v-model="prBase.patientRegisterNo" size="small" style="width: 140px;" |
|
|
|
clearable @change="onQueryByPatientRegisterNo" /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">档案号</span> |
|
|
|
<el-input placeholder="档案号" v-model="doctorCheck.prBase.patientNo" size="small" style="width: 100px;" clearable |
|
|
|
<el-input placeholder="档案号" v-model="prBase.patientNo" size="small" style="width: 100px;" clearable |
|
|
|
@change="onQueryByPatientNo" /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">姓名</span> |
|
|
|
<el-input placeholder="姓名" v-model="doctorCheck.prBase.patientName" size="small" style="width: 100px;" disabled /> |
|
|
|
<el-input placeholder="姓名" v-model="prBase.patientName" size="small" style="width: 100px;" |
|
|
|
@change="getlistinfilterByName" /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">性别</span> |
|
|
|
<el-select v-model="doctorCheck.prBase.sexId" style="width: 80px;" size="small" disabled> |
|
|
|
<el-select v-model="prBase.sexId" style="width: 80px;" size="small" disabled> |
|
|
|
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">体检次数</span> |
|
|
|
<el-input v-model="doctorCheck.prBase.medicalTimes" size="small" style="width: 40px;" disabled /> |
|
|
|
<el-input v-model="prBase.medicalTimes" size="small" style="width: 40px;" disabled /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">婚姻</span> |
|
|
|
<el-select v-model="doctorCheck.prBase.maritalStatusId" style="width: 80px;" size="small" disabled> |
|
|
|
<el-select v-model="prBase.maritalStatusId" style="width: 80px;" size="small" disabled> |
|
|
|
<el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">体检日期</span> |
|
|
|
<el-input :value="doctorCheck.prBase.creationTime ? lmoment(doctorCheck.prBase.creationTime, 'yyyy-MM-DD') : ''" |
|
|
|
<el-input :value="prBase.creationTime ? lmoment(doctorCheck.prBase.creationTime, 'yyyy-MM-DD') : ''" |
|
|
|
style="width: 100px;" size="small" disabled></el-input> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">单位</span> |
|
|
|
<el-input :value="doctorCheck.prBase.customerOrgParentName" style="width: 120px;" size="small" disabled /> |
|
|
|
<el-input :value="prBase.customerOrgParentName" style="width: 120px;" size="small" disabled /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">部门</span> |
|
|
|
<el-input :value="doctorCheck.prBase.customerOrgName" style="width: 120px;" size="small" disabled /> |
|
|
|
<el-input :value="prBase.customerOrgName" style="width: 120px;" size="small" disabled /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">体检类别</span> |
|
|
|
<el-select v-model="doctorCheck.prBase.medicalTypeId" disabled style="width: 100px;" size="small"> |
|
|
|
<el-select v-model="prBase.medicalTypeId" disabled style="width: 100px;" size="small"> |
|
|
|
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">人员类别</span> |
|
|
|
<el-select v-model="doctorCheck.prBase.personnelTypeId" disabled style="width: 100px;" size="small"> |
|
|
|
<el-select v-model="prBase.personnelTypeId" disabled style="width: 100px;" size="small"> |
|
|
|
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">民族</span> |
|
|
|
<el-select v-model="doctorCheck.prBase.nationId" disabled style="width: 100px;" size="small"> |
|
|
|
<el-select v-model="prBase.nationId" disabled style="width: 100px;" size="small"> |
|
|
|
<el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<span class="query">手机</span> |
|
|
|
<el-input :value="doctorCheck.prBase.mobileTelephone" style="width: 120px;" size="small" disabled /> |
|
|
|
<el-input :value="prBase.mobileTelephone" style="width: 120px;" size="small" disabled /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 体检人员记录列表 --> |
|
|
|
<el-dialog title="体检人员列表" :visible.sync="registerVisible" width="800px" :show-close="false" :close-on-click-modal="false" |
|
|
|
:append-to-body="true"> |
|
|
|
<el-table :data="patientRegisters" border width="800" height="480" highlight-current-row |
|
|
|
@row-click="registerRowClick" @row-dblclick="rowDblclick" size="small"> |
|
|
|
<el-table-column prop="completeFlag" label="体检进度"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="guidePrintTimes" label="打印" width="50"> |
|
|
|
<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="锁住"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<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="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="性别"> |
|
|
|
<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="patientRegisterNo" label="条码号" width="150" /> |
|
|
|
<el-table-column prop="patientNo" label="档案号" /> |
|
|
|
<el-table-column prop="medicalTimes" label="体检次数"></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"> |
|
|
|
{{ 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> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="nationId" label="民族"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div> |
|
|
|
{{ dddw(dict.nation, "nationId", scope.row.nationId, "displayName") }} |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="idNo" label="身份证" width="150" /> |
|
|
|
<el-table-column prop="birthDate" label="出生日期" width="100"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.birthDate"> |
|
|
|
{{ moment(scope.row.birthDate).format("yyyy-MM-DD") }} |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="email" label="邮箱" width="180" /> |
|
|
|
<el-table-column prop="mobileTelephone" label="手机" width="100" /> |
|
|
|
<el-table-column prop="telephone" label="电话" width="100" /> |
|
|
|
<el-table-column prop="address" label="地址" width="300" /> |
|
|
|
<el-table-column prop="medicalCardNo" label="体检卡号" /> |
|
|
|
<el-table-column prop="jobCardNo" label="工卡号" /> |
|
|
|
<el-table-column prop="maritalStatusId" label="婚姻状况"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div> |
|
|
|
{{ dddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }} |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="medicalTypeId" label="体检类别"> |
|
|
|
<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="人员类别"> |
|
|
|
<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="jobPost" label="职务" /> |
|
|
|
<el-table-column prop="jobTitle" label="职称" /> |
|
|
|
<el-table-column prop="salesman" label="介绍人" /> |
|
|
|
<el-table-column prop="isVip" label="是否VIP"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="creatorName" label="登记人" /> |
|
|
|
<el-table-column prop="creationTime" label="登记日期" width="100"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.creationTime">{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="isUpload" label="是否上传"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<!-- |
|
|
|
"sexHormoneTermId": "00000000-0000-0000-0000-000000000000", |
|
|
|
"interposeMeasure": null, |
|
|
|
"medicalConclusionId": "00000000-0000-0000-0000-000000000000", |
|
|
|
"reportPrintTimes": 0, |
|
|
|
"isMedicalStart": "N", |
|
|
|
"medicalStartDate": "6/28/2023", |
|
|
|
"isRecoverGuide": "N", |
|
|
|
"summaryDate": "", |
|
|
|
"summaryDoctor": null, |
|
|
|
"isAudit": "N", |
|
|
|
"auditDoctor": null, |
|
|
|
"auditDate": "", |
|
|
|
"isNameHide": "N", |
|
|
|
"isPhoneFollow": "N", |
|
|
|
"thirdInfo": null, |
|
|
|
"guidePrintTimes": null, |
|
|
|
"remark": null, |
|
|
|
"organizationUnitId": "00000000-0000-0000-0000-000000000000", |
|
|
|
"customerOrgRegisterId": "00000000-0000-0000-0000-000000000000", |
|
|
|
"lastModifierName": "", |
|
|
|
"lastModificationTime": null, |
|
|
|
"lastModifierId": null, |
|
|
|
"creatorId": null, |
|
|
|
"id": "3a0c196d-a6d0-37fe-5c32-4806bdc4530f" |
|
|
|
--> |
|
|
|
</el-table> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="registerVisible = false" style="width:90px;">取消</el-button> |
|
|
|
<el-button type="primary" @click="chooseRegister" style="width:90px;">确定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
import moment from "moment"; |
|
|
|
import { mapState, mapMutations} from "vuex"; |
|
|
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|
|
|
import { objCopy, opjCopy } from '../../utlis/proFunc' |
|
|
|
import { dddw,objCopy, opjCopy } from '../../utlis/proFunc' |
|
|
|
|
|
|
|
export default { |
|
|
|
components: {}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
dialogVisible: false, |
|
|
|
|
|
|
|
|
|
|
|
prBase:{ |
|
|
|
id: '', //体检登记ID |
|
|
|
patientRegisterNo: '', //条码号 |
|
|
|
patientNo: '', //档案号 |
|
|
|
patientName: '', //姓名 |
|
|
|
sexId: '', //性别 |
|
|
|
medicalTimes: '', //体检次数 |
|
|
|
maritalStatusId: '', //婚姻 |
|
|
|
creationTime: '', //体检日期 |
|
|
|
customerOrgParentName: '', //单位 |
|
|
|
customerOrgName: '', //部门 |
|
|
|
medicalTypeId: '', //体检类别 |
|
|
|
personnelTypeId: '', //人员类别 |
|
|
|
nationId: '', //民族 |
|
|
|
mobileTelephone: '', //手机 |
|
|
|
}, |
|
|
|
prBaseInit:{}, |
|
|
|
registerVisible:false, //是否显示体检人员列表 |
|
|
|
patientRegisters:[], //体检人员列表信息 |
|
|
|
patientRegisterChoosed:null, //查询到多人时,选中的记录 |
|
|
|
}; |
|
|
|
}, |
|
|
|
|
|
|
|
created() { }, |
|
|
|
created() { |
|
|
|
this.prBaseInit = Object.assign({},this.prBase) |
|
|
|
}, |
|
|
|
|
|
|
|
//挂载完成 |
|
|
|
mounted() { }, |
|
|
|
@ -97,10 +261,43 @@ export default { |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
...mapMutations(['doctorCheckPrBaseInit','sumPREditInit']), |
|
|
|
|
|
|
|
dddw,moment, |
|
|
|
|
|
|
|
//查询找到相关信息处理 |
|
|
|
findPR(rd){ |
|
|
|
// debugger |
|
|
|
// console.log('rd,this.doctorCheck.prBase',rd.id,this.doctorCheck.prBase.id) |
|
|
|
// objCopy(rd,this.prBase) |
|
|
|
|
|
|
|
this.doctorCheck.prBase = Object.assign({},this.doctorCheck.prBase,rd) |
|
|
|
// objCopy(rd,this.doctorCheck.prBase) |
|
|
|
|
|
|
|
// this.sumPREditInit() |
|
|
|
this.sumDoctorCheck.sumPREdit = Object.assign({},this.sumDoctorCheck.sumPREdit,rd) |
|
|
|
// objCopy(rd,this.sumDoctorCheck.sumPREdit) |
|
|
|
|
|
|
|
this.patientRegister.photo = rd.photo |
|
|
|
}, |
|
|
|
|
|
|
|
//查询未找到相关信息处理 |
|
|
|
unfindPR(queryType){ |
|
|
|
|
|
|
|
this.$message.warning("没有找到相应的数据") |
|
|
|
let val = this.prBase[queryType] |
|
|
|
|
|
|
|
this.doctorCheckPrBaseInit() |
|
|
|
this.sumPREditInit() |
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
|
this.prBase[queryType] = val |
|
|
|
}, 100); |
|
|
|
|
|
|
|
this.patientRegister.photo = '' |
|
|
|
}, |
|
|
|
|
|
|
|
//按条码号查个人数据 |
|
|
|
onQueryByPatientRegisterNo() { |
|
|
|
let patientRegisterNo = this.doctorCheck.prBase.patientRegisterNo |
|
|
|
let patientRegisterNo = this.prBase.patientRegisterNo |
|
|
|
let body = { |
|
|
|
sType:1, |
|
|
|
patientRegisterNo |
|
|
|
@ -108,23 +305,19 @@ export default { |
|
|
|
console.log(`/api/app/patientregister/getpatientregisterorpatient`,body) |
|
|
|
postapi('/api/app/patientregister/getpatientregisterorpatient',body) |
|
|
|
.then((res) => { |
|
|
|
if (res.code != -1) { |
|
|
|
|
|
|
|
this.doctorCheckPrBaseInit() |
|
|
|
this.doctorCheck.prBase.patientRegisterNo = patientRegisterNo |
|
|
|
objCopy(res.data,this.doctorCheck.prBase) |
|
|
|
|
|
|
|
this.sumPREditInit() |
|
|
|
objCopy(res.data,this.sumDoctorCheck.sumPREdit) |
|
|
|
|
|
|
|
this.patientRegister.photo = res.data.photo |
|
|
|
if (res.code != -1) { |
|
|
|
if(res.data){ |
|
|
|
this.findPR(res.data) |
|
|
|
}else{ |
|
|
|
this.unfindPR('patientRegisterNo') |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
//按条码号查个人数据 |
|
|
|
onQueryByPatientNo() { |
|
|
|
let patientNo = this.doctorCheck.prBase.patientNo |
|
|
|
let patientNo = this.prBase.patientNo |
|
|
|
let body = { |
|
|
|
sType:2, |
|
|
|
patientNo |
|
|
|
@ -132,20 +325,56 @@ export default { |
|
|
|
console.log(`/api/app/patientregister/getpatientregisterorpatient`,body) |
|
|
|
postapi('/api/app/patientregister/getpatientregisterorpatient',body) |
|
|
|
.then((res) => { |
|
|
|
if (res.code != -1) { |
|
|
|
console.log('按条码号查个人数据',res.data) |
|
|
|
this.doctorCheckPrBaseInit() |
|
|
|
this.doctorCheck.prBase.patientNo = patientNo |
|
|
|
objCopy(res.data,this.doctorCheck.prBase) |
|
|
|
|
|
|
|
this.sumPREditInit() |
|
|
|
objCopy(res.data,this.sumDoctorCheck.sumPREdit) |
|
|
|
|
|
|
|
this.patientRegister.photo = res.data.photo |
|
|
|
if (res.code != -1) { |
|
|
|
if(res.data){ |
|
|
|
this.findPR(res.data) |
|
|
|
}else{ |
|
|
|
this.unfindPR('patientRegisterNo') |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
//按手机号或姓名查找客户信息 |
|
|
|
getlistinfilterByName(v){ |
|
|
|
let body={ |
|
|
|
patientName:v |
|
|
|
} |
|
|
|
this.patientRegisterChoosed = null |
|
|
|
|
|
|
|
postapi('/api/app/patientregister/getlistinfilter', body) |
|
|
|
.then((res) => { |
|
|
|
if (res.code != -1) { |
|
|
|
if(res.data.items.length == 0){ |
|
|
|
this.unfindPR('patientName') |
|
|
|
}else if(res.data.items.length == 1){ |
|
|
|
this.findPR(res.data.items[0]) |
|
|
|
}else{ |
|
|
|
//显示列表,供选择 |
|
|
|
this.patientRegisters = res.data.items |
|
|
|
this.registerVisible = true |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
// 选中记录 |
|
|
|
registerRowClick(row){ |
|
|
|
this.patientRegisterChoosed = row |
|
|
|
}, |
|
|
|
|
|
|
|
// 双击选中记录 |
|
|
|
rowDblclick(row){ |
|
|
|
this.registerRowClick(row) |
|
|
|
this.chooseRegister() |
|
|
|
}, |
|
|
|
|
|
|
|
chooseRegister(){ |
|
|
|
this.findPR(this.patientRegisterChoosed) |
|
|
|
this.registerVisible = false |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
lmoment(date, forMat) { |
|
|
|
return moment(new Date(date)).format(forMat); |
|
|
|
}, |
|
|
|
@ -161,6 +390,23 @@ export default { |
|
|
|
alert("读身份证"); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
watch:{ |
|
|
|
"doctorCheck.prBase.id":{ |
|
|
|
immediate:true, |
|
|
|
handler(newVal, oldVal) { |
|
|
|
// debugger |
|
|
|
// console.log("watch 2doctorCheck.prBase.id newVal:", newVal, " oldVal:", oldVal); |
|
|
|
// if (newVal != oldVal) { |
|
|
|
|
|
|
|
objCopy(this.doctorCheck.prBase,this.prBase) |
|
|
|
// this.prBase = Object.assign({},this.doctorCheck.prBase) |
|
|
|
// } |
|
|
|
// console.log(222); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|
<style scoped> |
|
|
|
|