Browse Source

doctor

master
pengjun 2 years ago
parent
commit
23db9b4a0a
  1. 38
      src/components/doctorCheck/ButtonList.vue
  2. 332
      src/components/doctorCheck/PatientRegisterBase.vue
  3. 49
      src/components/patientRegister/PatientRegisterEdit.vue

38
src/components/doctorCheck/ButtonList.vue

@ -10,10 +10,10 @@
<el-button type="primary" class="btnClass" @click="btnAddPr">增加人员</el-button>
</div>
<div>
<el-button type="primary" class="btnClass" >编辑人员</el-button>
<el-button type="primary" class="btnClass" @click="btnEditPr">编辑人员</el-button>
</div>
<div>
<el-button type="primary" class="btnClass" >删除人员</el-button>
<el-button type="primary" class="btnClass" @click="btnDelPr">删除人员</el-button>
</div>
<div>
<el-button type="primary" class="btnClass" >上一人</el-button>
@ -101,7 +101,7 @@
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
import { mapState, mapActions, mapMutations} from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj,objCopy } from "../../utlis/proFunc";
@ -201,6 +201,7 @@ export default {
methods: {
...mapActions(["getCustomerOrgGroup"]),
...mapMutations(['doctorCheckPrBaseInit']),
prList() {
// console.log('this.doctorCheck.doctorCheckDialogVisible', this.doctorCheck.doctorCheckDialogVisible)
@ -233,6 +234,37 @@ export default {
}
},
//
btnDelPr(){
if(!this.doctorCheck.prBase.id){
this.$message.warning("未选中要删除的人员记录")
return
}
postapi(`/api/app/patient-register/delete-many`, {patientRegisterIds:[this.doctorCheck.prBase.id]
}).then(res =>{
if(res.code != -1){
this.doctorCheckPrBaseInit();
}
});
},
//
btnEditPr() {
if(!this.doctorCheck.prBase.id){
this.$message.warning("未选中要编辑的人员记录")
return
}
this.patientRegister.patientRegisterRd = Object.assign({},this.doctorCheck.prBase)
this.formData = Object.assign({},this.doctorCheck.prBase)
//console.log(this.patientRegister.patientRegisterRd,this.patientRegister.prList)
this.dialogVisible = true;
this.editTimes++; //
},
//
refreshRegister(patientRegister){

332
src/components/doctorCheck/PatientRegisterBase.vue

@ -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>

49
src/components/patientRegister/PatientRegisterEdit.vue

@ -2,6 +2,30 @@
<div>
<div style="display: flex">
<div :style="'width:' + (window.pageWidth - 110 - 20) + 'px;'">
<!--查询条件-->
<div style="position: absolute;top:30px;left:180px;display: flex; flex-wrap: wrap; height:60px;">
<div class="query">
<span class="querySpan">查找&nbsp;&nbsp;条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small"
clearable style="width: 140px" @change="quickQuery('patientRegisterNo')"/>
</div>
<div class="query">
<span class="querySpan">档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small"
clearable style="width: 100px" @change="quickQuery('patientNo')" />
</div>
<div class="query">
<span class="querySpan">姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small"
clearable style="width: 80px" @change="quickQuery('patientName')" />
</div>
<div class="query">
<span class="querySpan">手机号</span>
<el-input placeholder="预约手机号" v-model="query.tel" size="small"
clearable style="width: 120px" @change="quickQuery('tel')" />
</div>
</div>
<div>
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium">
<el-row>
@ -383,30 +407,6 @@
</div>
</div>
<!--查询条件-->
<div style="position: absolute;top:30px;left:180px;display: flex; flex-wrap: wrap; height:60px;">
<div class="query">
<span class="querySpan">查找&nbsp;&nbsp;条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small"
clearable style="width: 140px" @change="quickQuery('patientRegisterNo')"/>
</div>
<div class="query">
<span class="querySpan">档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small"
clearable style="width: 100px" @change="quickQuery('patientNo')" />
</div>
<div class="query">
<span class="querySpan">姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small"
clearable style="width: 80px" @change="quickQuery('patientName')" />
</div>
<div class="query">
<span class="querySpan">手机号</span>
<el-input placeholder="预约手机号" v-model="query.tel" size="small"
clearable style="width: 120px" @change="quickQuery('tel')" />
</div>
</div>
<!-- 人员档案列表 -->
<el-dialog title="人员档案列表" :visible.sync="dialogVisible" width="800px" :show-close="false" :close-on-click-modal="false"
:append-to-body="true">
@ -1058,6 +1058,7 @@ export default {
this.$message.info("未找到相关信息")
}else if(res.data.items.length == 1){
objCopy(res.data.items[0], this.form)
objCopy(res.data.items[0], this.patientRegister.patientRegisterRd)
this.patientRegister.patientRegisterId = res.data.items[0].id
this.patientRegister.photo = res.data.items[0].photo
this.getPatientRegisterAbs(res.data.items[0].id)

Loading…
Cancel
Save