Browse Source

djSeo

master
pengjun 2 years ago
parent
commit
3a96c3357d
  1. 214
      src/components/doctorCheck/PatientRegisterBase.vue
  2. 281
      src/components/patientRegister/PatientRegisterEdit.vue
  3. 238
      src/components/patientRegister/PatientRegisterEditQuery.vue
  4. 286
      src/components/patientRegister/PatientRegisterForChoose.vue
  5. 10
      src/components/patientRegister/PatientRegisterList.vue
  6. 6
      src/store/index.js

214
src/components/doctorCheck/PatientRegisterBase.vue

@ -66,148 +66,9 @@
</div>
</div>
<!-- 体检人员记录列表 -->
<el-dialog title="体检人员列表" :visible.sync="registerVisible" width="800px" :show-close="false" :close-on-click-modal="false"
<el-dialog title="体检人员列表" :visible.sync="dialogWin.PatientRegisterForChoose" 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>
<PatientRegisterForChoose :params="PatientRegisterForChooseParams"/>
</el-dialog>
</div>
@ -216,10 +77,13 @@
import moment from "moment";
import { mapState, mapMutations} from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw,objCopy, opjCopy } from '../../utlis/proFunc'
import { dddw,deepCopy,objCopy, opjCopy } from '../../utlis/proFunc'
import PatientRegisterForChoose from "../../components/patientRegister/PatientRegisterForChoose.vue";
export default {
components: {},
components: {
PatientRegisterForChoose,
},
data() {
return {
dialogVisible: false,
@ -240,9 +104,8 @@ export default {
mobileTelephone: '', //
},
prBaseInit:{},
registerVisible:false, //
patientRegisters:[], //
patientRegisterChoosed:null, //
PatientRegisterForChooseParams:{}, //
};
},
@ -256,7 +119,7 @@ export default {
},
computed: {
...mapState(["dict","dataTransOpts","patientRegister", "doctorCheck", "sumDoctorCheck"]),
...mapState(["dict","dialogWin", "dataTransOpts","patientRegister", "doctorCheck", "sumDoctorCheck"]),
},
methods: {
...mapMutations(['doctorCheckPrBaseInit','sumPREditInit']),
@ -269,7 +132,9 @@ export default {
objCopy(rd,this.prBase)
this.dataTransOpts.tableS.patient_register.id = rd.id
this.doctorCheck.prBase = Object.assign({},this.doctorCheck.prBase,rd)
setTimeout(() => {
this.dataTransOpts.refresh.register_check.M++
}, 20);
// objCopy(rd,this.doctorCheck.prBase)
// this.sumPREditInit()
@ -287,7 +152,9 @@ export default {
this.doctorCheckPrBaseInit()
this.dataTransOpts.tableS.patient_register.id = ''
setTimeout(() => {
this.dataTransOpts.refresh.register_check.M++
}, 20);
this.sumPREditInit()
@ -346,55 +213,29 @@ export default {
patientName:v,
isFilterPreRegistration:'Y' // Y= N= N (CompleteFlag0null)
}
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
this.PatientRegisterForChooseParams = body //
this.dialogWin.PatientRegisterForChoose = true //
setTimeout(() => {
this.dataTransOpts.refresh.patient_register.M++
}, 10);
},
//
rowDblclick(row){
this.registerRowClick(row)
this.chooseRegister()
//ID
async getPatientRegister(patientRegisterId){
if(!patientRegisterId){
this.prBase = deepCopy(this.prBaseInit)
return
}
let res = await postapi(`/api/app/patientregister/getinfoorpatient?PatientRegisterId=${patientRegisterId}`)
this.prBase = res.data
},
chooseRegister(){
this.findPR(this.patientRegisterChoosed)
this.registerVisible = false
},
lmoment(date, forMat) {
return moment(new Date(date)).format(forMat);
},
//
btnQuery() {
this.doctorCheck.prBase.times++;
console.log("this.doctorCheck.prBase", this.doctorCheck.prBase);
},
//
readIdCard() {
alert("读身份证");
},
//
enterToQuery() {
@ -452,6 +293,7 @@ export default {
immediate:true,
handler(newVal, oldVal) {
console.log(`watch 组合项目列表 newVal: ${newVal} oldVal: ${oldVal} patient_register.id: ${this.dataTransOpts.tableS.patient_register.id}`);
this.getPatientRegister(this.dataTransOpts.tableS.patient_register.id)
this.dataTransOpts.refresh.register_check.M++
}
},

281
src/components/patientRegister/PatientRegisterEdit.vue

@ -3,27 +3,8 @@
<div style="display: flex">
<div :style="'width:' + (window.pageWidth - 110 - 20) + 'px;'">
<!--查询条件-->
<div v-show="checkPagePriv(pagePriv.privs,'查找')" style="position: absolute;top:28px;left:180px;display: flex; flex-wrap: wrap; height:32px;border: 1px solid #888;border-radius:5px;background-color: #F5F7FA;">
<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 v-show="checkPagePriv(pagePriv.privs,'查找')" style="position: absolute;top:28px;left:180px;">
<PatientRegisterEditQuery/>
</div>
<div>
@ -461,152 +442,6 @@
</span>
</el-dialog>
<!-- 体检人员记录列表 -->
<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="registerRowDblclick" 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>
<!-- 拍照openCamera 网页模式已废弃
<el-dialog title="拍照" :visible.sync="patientRegister.cameraVisble" width="400" height="600"
:close-on-click-modal="false" :append-to-body="true">
@ -645,7 +480,7 @@ import PatientRegisterItem from "./PatientRegisterItem.vue";
import LisRequest from "./LisRequest.vue";
import MergeAsbitem from "./MergeAsbitem.vue";
import Charge from "../../views/charge/charge.vue";
import PatientRegisterEditQuery from "../../components/patientRegister/PatientRegisterEditQuery.vue";
export default {
components: {
Camera,
@ -653,6 +488,7 @@ export default {
MergeAsbitem,
PatientRegisterItem,
Charge,
PatientRegisterEditQuery
},
props: ['patientRegisterId','editTimes','refreshRegister'],
data() {
@ -667,12 +503,7 @@ export default {
peisid: null,
peoplePhoto: '',
query: {
patientRegisterNo: '',
patientNo: '',
patientName: '',
tel: ''
},
form: {
registerManType:'customer', //customer doctor
id: "", //id
@ -758,6 +589,7 @@ export default {
patientList: [], //
patientChoosed: {}, //
registerVisible:false,
patientRegisters:[],
registerChoosed:{},
@ -797,7 +629,7 @@ export default {
},
computed: {
...mapState(["window","dataTransOpts","dict", "patientRegister", "customerOrg", "projPriv"]),
...mapState(["window","dialogWin","dataTransOpts","dict", "patientRegister", "customerOrg", "projPriv"]),
//()
isComplete(){
@ -944,11 +776,6 @@ export default {
// form
async initFormData(patientRegisterId){
//
this.query.patientRegisterNo = ''
this.query.patientNo = ''
this.query.patientName = ''
this.query.tel = ''
this.peisid = window.sessionStorage.getItem('peisid');
@ -966,7 +793,7 @@ export default {
// /
await this.changeCustomerOrgId(this.form.customerOrgId)
this.dataTransOpts.refresh.register_asbitem.M++ //
},
//
@ -1021,96 +848,6 @@ export default {
})
},
//
quickQuery(type) {
let url1 = '/api/app/patientregister/getpatientregisterorpatient'
let body={}
let url2 = '/api/app/patientregister/getlistinfilter'
switch (type) {
case 'patientNo':
if(!this.query.patientNo) return;
body = {
sType:2,
patientNo:this.query.patientNo
}
this.getpatientregisterorpatient(url1,body)
break;
case 'patientRegisterNo':
if(!this.query.patientRegisterNo) return;
body = {
sType:1,
patientRegisterNo:this.query.patientRegisterNo
}
this.getpatientregisterorpatient(url1,body)
break;
case 'tel':
if(!this.query.tel) return;
body = {
phone:this.query.tel
}
this.getlistinfilter(url2,body);
break;
case 'patientName':
if(!this.query.patientName) return;
body = {
patientName:this.query.patientName
}
this.getlistinfilter(url2,body);
break;
default:
return;
}
},
//
getpatientregisterorpatient(url,body){
postapi(url,body)
.then((res) => {
console.log('getpatientregisterorpatient', res)
if (res.code == 1) {
objCopy(res.data, this.form)
this.dataTransOpts.tableS.patient_register.id = res.data.id
setTimeout(() => {
this.dataTransOpts.refresh.register_asbitem.M++
}, 20);
// this.patientRegister.patientRegisterId = res.data.id
// this.patientRegister.photo = res.data.photo
// this.getPatientRegisterAbs(res.data.id)
}else if(res.code == 0){
this.$message.info("未找到相关信息")
}
});
},
//
getlistinfilter(url,body){
// url = '/api/app/patientregister/getlistinfilter'
postapi(url, body)
.then((res) => {
if (res.code != -1) {
if(res.data.items.length == 0){
this.$message.info("未找到相关信息")
}else if(res.data.items.length == 1){
objCopy(res.data.items[0], this.form)
this.dataTransOpts.tableS.patient_register.id = res.data.items[0].id
setTimeout(() => {
this.dataTransOpts.refresh.register_asbitem.M++
}, 20);
// 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)
}else{
//
this.patientRegisters = res.data.items
this.registerVisible = true
}
}
});
},
//
peopleIcCard() {
if(!this.$peisAPI) {
@ -1932,6 +1669,7 @@ export default {
}
});
});
});
},
@ -1939,6 +1677,7 @@ export default {
//
watch: {
//ID
"dataTransOpts.refresh.patient_register.S":{
immediate:true,

238
src/components/patientRegister/PatientRegisterEditQuery.vue

@ -0,0 +1,238 @@
<template>
<div>
<div style="display: flex; flex-wrap: wrap; height:32px;border: 1px solid #888;border-radius:5px;background-color: #F5F7FA;">
<div class="query">
<span class="querySpan">查找&nbsp;&nbsp;条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small"
clearable style="width: 140px"/>
</div>
<div class="query">
<span class="querySpan">档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small"
clearable style="width: 100px" />
</div>
<div class="query">
<span class="querySpan">姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small"
clearable style="width: 80px"/>
</div>
<div class="query">
<span class="querySpan">手机号</span>
<el-input placeholder="预约手机号" v-model="query.tel" size="small"
clearable style="width: 120px"/>
</div>
</div>
<!-- 体检人员记录列表 -->
<el-dialog title="体检人员列表" :visible.sync="dialogWin.PatientRegisterForChoose" width="800px" :show-close="false" :close-on-click-modal="false"
:append-to-body="true">
<PatientRegisterForChoose :params="PatientRegisterForChooseParams"/>
</el-dialog>
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import mm from "../../utlis/mm";
import { getPagePriv,checkPagePriv, objCopy, setNull, dddw,checkIDCode, parseID, birthdayToAge,ageToBirthday, deepCopy, arrayFilter, arrayReduce,parsIcCardtoLocal, photoParse, savePeoplePhoto, arrayExistObj } from "../../utlis/proFunc";
import PatientRegisterForChoose from "./PatientRegisterForChoose.vue";
export default {
components: {
PatientRegisterForChoose
},
data() {
return {
query: {
patientRegisterNo: '',
patientNo: '',
patientName: '',
tel: ''
},
PatientRegisterForChooseParams:{},
};
},
created() {
},
//
mounted() {
this.enterToQuery()
},
computed: {
...mapState(["dialogWin","dataTransOpts"]),
},
methods: {
//
enterToQuery() {
// console.log('enterToTab');
this.$nextTick(() => {
let inputs = document.querySelectorAll(["input"]); // //.inline-input
//
inputs.forEach((input,i) => {
// console.log('input',input);
input.addEventListener('keydown', (event) => {
if (event.keyCode === 13){
//
event.preventDefault();
//
console.log(input.getAttribute('placeholder'),input.value)
let placeholder = input.getAttribute('placeholder')
switch (placeholder) {
case '条码号':
if(input.value) this.quickQuery('patientRegisterNo')
break;
case '档案号':
if(input.value) this.quickQuery('patientNo')
break;
case '姓名':
if(input.value) this.quickQuery('patientName')
break;
case '预约手机号':
if(input.value) this.quickQuery('tel')
break;
}
}
});
});
});
},
//
quickQuery(type) {
let url1 = '/api/app/patientregister/getpatientregisterorpatient'
let body={}
let url2 = '/api/app/patientregister/getlistinfilter'
switch (type) {
case 'patientNo':
if(!this.query.patientNo) return;
body = {
sType:2,
patientNo:this.query.patientNo
}
this.getpatientregisterorpatient(url1,body)
break;
case 'patientRegisterNo':
if(!this.query.patientRegisterNo) return;
body = {
sType:1,
patientRegisterNo:this.query.patientRegisterNo
}
this.getpatientregisterorpatient(url1,body)
break;
case 'tel':
if(!this.query.tel) return;
body = {
phone:this.query.tel
}
this.getlistinfilter(url2,body);
break;
case 'patientName':
if(!this.query.patientName) return;
body = {
patientName:this.query.patientName
}
this.getlistinfilter(url2,body);
break;
default:
return;
}
},
//
getpatientregisterorpatient(url,body){
postapi(url,body)
.then((res) => {
console.log('getpatientregisterorpatient', res)
if (res.code == 1) {
objCopy(res.data, this.form)
this.dataTransOpts.tableS.patient_register.id = res.data.id
setTimeout(() => {
this.dataTransOpts.refresh.patient_register.S++
}, 20);
// this.patientRegister.patientRegisterId = res.data.id
// this.patientRegister.photo = res.data.photo
// this.getPatientRegisterAbs(res.data.id)
}else if(res.code == 0){
this.$message.info("未找到相关信息")
}
});
},
//
getlistinfilter(url,body){
// url = '/api/app/patientregister/getlistinfilter'
// postapi(url, body)
// .then((res) => {
// if (res.code != -1) {
// if(res.data.items.length == 0){
// this.$message.info("")
// }else if(res.data.items.length == 1){
// objCopy(res.data.items[0], this.form)
// this.dataTransOpts.tableS.patient_register.id = res.data.items[0].id
// setTimeout(() => {
// this.dataTransOpts.refresh.register_asbitem.M++
// }, 20);
// // 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)
// }else{
// //
// this.patientRegisters = res.data.items
// this.registerVisible = true
// }
// }
// });
this.PatientRegisterForChooseParams = body
this.dialogWin.PatientRegisterForChoose = true
setTimeout(() => {
this.dataTransOpts.refresh.patient_register.M++
}, 10);
},
},
//
watch: {
//
"dataTransOpts.plus.clearPatientRegisterQuery":{
immediate:true,
handler(newVal, oldVal) {
console.log(`watch 清空查询条件 newVal:${newVal} oldVal:${oldVal}`);
this.query.patientRegisterNo = ''
this.query.patientNo = ''
this.query.patientName = ''
this.query.tel = ''
}
},
},
};
</script>
<style scoped>
.btn {
margin-top: 5px;
}
.commonbutton {
width: 100px;
}
.query {
margin-left: 10px;
}
.querySpan {
margin-right: 2px;
}
</style>

286
src/components/patientRegister/PatientRegisterForChoose.vue

@ -0,0 +1,286 @@
<template>
<div>
<div>
<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>
<div style="display: flex;margin-top: 5px;justify-content:space-between;">
<div></div>
<div style="display: flex;">
<el-button @click="dialogWin.PatientRegisterForChoose = false" style="width:90px;">取消</el-button>
<el-button type="primary" @click="btnOk" style="width:90px;">确定</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import Sortable from "sortablejs";
import FileSaver from 'file-saver';
import html2canvas from 'html2canvas';
import {
dddw,
objCopy,
arrayReduce,
arrayExistObj,
deepCopy,
} from "../../utlis/proFunc";
import ElProgressOCX from "../report/ElProgressOCX.vue";
export default {
components: {
ElProgressOCX,
},
props:["params"], // params
data() {
return {
patientRegisterId:'', // ID
patientRegisters:[], //
};
},
created() {
},
//
mounted() {
},
computed: {
...mapState([
"window",
"dataTransOpts",
"dialogWin",
"dict",
"elProgress",
"patientRegister",
"customerOrg",
]),
},
methods: {
moment,dddw,deepCopy,
getPatientregisterList(){
this.patientRegisterId = "" //ID
// params = {
// patientName:v,
// isFilterPreRegistration:'Y' // Y= N= N (CompleteFlag0null)
// }
postapi('/api/app/patientregister/getlistinfilter', this.params).then(res => {
if (res.code != -1) {
if(res.data.items.length == 0){
this.dataTransOpts.tableS.patient_register.id = ''
setTimeout(() => {
this.dataTransOpts.refresh.patient_register.S++
}, 20);
this.dialogWin.PatientRegisterForChoose = false
this.$message.warning('未找到相关信息')
}else if(res.data.items.length == 1){
this.rowDblclick(res.data.items[0])
}else{
this.patientRegisters = res.data.items
}
}
})
},
//
registerRowClick(row){
this.patientRegisterId = row.id
},
//
rowDblclick(row){
this.registerRowClick(row)
this.btnOk()
},
btnOk(){
if(!this.patientRegisterId){
this.$message.warning("请选择体检人员!")
return
}
this.dataTransOpts.tableS.patient_register.id = this.patientRegisterId
setTimeout(() => {
this.dataTransOpts.refresh.patient_register.S++
}, 20);
this.dialogWin.PatientRegisterForChoose = false
},
},
//
watch: {
//
"dataTransOpts.refresh.patient_register.M":{
immediate: true, //
// deep: true, //
handler(newVal,oldVal){
console.log(`watch: 刷新体检人员列表 newVal: ${newVal} oldVal:${oldVal}`)
this.getPatientregisterList()
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
.box {
display: flex;
}
.listBtn {
margin-top: 5px;
text-align: center;
}
.btnClass {
width: 100px;
}
</style>

10
src/components/patientRegister/PatientRegisterList.vue

@ -624,7 +624,7 @@ export default {
this.dataTransOpts.tableS.patient_register.id = this.patientRegister.prList[lfind].id
// this.getCustomerOrgGroup(this.patientRegister.prList[lfind].customerOrgParentId);
setTimeout(() => {
this.dataTransOpts.refresh.register_asbitem.M++
this.dataTransOpts.refresh.register_asbitem.M++ //
}, 20);
//
@ -666,8 +666,8 @@ export default {
this.dialogVisible = true;
setTimeout(() => {
//
this.dataTransOpts.refresh.patient_register.S++ //
this.dataTransOpts.refresh.register_asbitem.M++ //
this.dataTransOpts.refresh.patient_register.S++ //
this.dataTransOpts.plus.clearPatientRegisterQuery++ //
}, 20);
},
@ -723,8 +723,8 @@ export default {
//console.log(this.patientRegister.patientRegisterRd,this.patientRegister.prList)
this.dialogVisible = true;
//
this.dataTransOpts.refresh.patient_register.S++ //
this.dataTransOpts.refresh.register_asbitem.M++ //
this.dataTransOpts.refresh.patient_register.S++ //()
this.dataTransOpts.plus.clearPatientRegisterQuery++ //
},

6
src/store/index.js

@ -331,11 +331,17 @@ export default new Vuex.Store({
register_check: [],
register_check_item: [],
role_menu_info: [], // 角色对应的菜单
},
plus:{
clearPatientRegisterQuery:0,
}
},
// 弹窗控制
dialogWin: {
PatientList: false, // 体检人员档案列表
PatientRegisterForChoose: false, // 体检人员登记列表
PatientRegisterEditItemBatch: false, //批量调整项目
PatientRegisterEditGroupBatch: false, //批量调整分组
MenuPageSet: false, // 设置角色菜单权限

Loading…
Cancel
Save