|
|
|
@ -1,10 +1,11 @@ |
|
|
|
<template> |
|
|
|
<div> |
|
|
|
<!--组件主体--> |
|
|
|
<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;"> |
|
|
|
<PatientRegisterEditQuery/> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '查找')" style="position: absolute;top:28px;left:180px;"> |
|
|
|
<PatientRegisterEditQuery /> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium"> |
|
|
|
@ -12,9 +13,10 @@ |
|
|
|
<el-col :span="5"> |
|
|
|
<el-form-item label="单位名称" prop="customerOrgId"> |
|
|
|
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" |
|
|
|
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" filterable popper-class="example" |
|
|
|
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" filterable |
|
|
|
popper-class="example" |
|
|
|
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" |
|
|
|
:disabled="(form.completeFlag == '3' || isDoctor != '1') ? true:false" size="small"> |
|
|
|
:disabled="(form.completeFlag == '3' || isDoctor != '1') ? true : false" size="small"> |
|
|
|
</el-cascader> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -48,7 +50,8 @@ |
|
|
|
<el-row> |
|
|
|
<el-col :span="5"> |
|
|
|
<el-form-item label="姓名" prop="patientName"> |
|
|
|
<el-input id="patientName" v-model="form.patientName" @change="Query(form.patientName)" size="small" autocomplete="off"></el-input> |
|
|
|
<el-input id="patientName" v-model="form.patientName" @change="Query(form.patientName)" size="small" |
|
|
|
autocomplete="off"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="5"> |
|
|
|
@ -62,9 +65,9 @@ |
|
|
|
<input type="date" v-model="form.birthDate" size="small" |
|
|
|
:style="'border-radius: 4px;border: 1px solid #DCDFE6;height: 32px;line-height: 32px;padding-left: 2px;width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'"/> |
|
|
|
--> |
|
|
|
<el-date-picker v-model="form.birthDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="出生日期" |
|
|
|
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" @change="changeBirthDate" |
|
|
|
prefix-icon="" size="small"/> |
|
|
|
<el-date-picker v-model="form.birthDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
|
|
|
placeholder="出生日期" :style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" |
|
|
|
@change="changeBirthDate" prefix-icon="" size="small" /> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
@ -133,7 +136,8 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<el-form-item label="性激素期" prop="sexHormoneTermId"> |
|
|
|
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable size="small" :disabled="isComplete"> |
|
|
|
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable size="small" |
|
|
|
:disabled="isComplete"> |
|
|
|
<el-option v-for="item in dict.sexHormoneTerm" :key="item.id" :label="item.displayName" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
@ -202,7 +206,8 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="5"> |
|
|
|
<el-form-item label="单位体检次数" prop="isVip" label-width="110px"> |
|
|
|
<el-select :class="form.customerOrgId == dict.personOrgId ? '':'enterToTab'" v-model="form.customerOrgRegisterId" placeholder="次数" size="small" |
|
|
|
<el-select :class="form.customerOrgId == dict.personOrgId ? '' : 'enterToTab'" |
|
|
|
v-model="form.customerOrgRegisterId" placeholder="次数" size="small" |
|
|
|
:disabled="form.customerOrgId == dict.personOrgId" |
|
|
|
:style="'width:' + Math.floor((window.pageWidth - 654) / 4.8) + 'px;'" @change="changeMedicalTimes" |
|
|
|
value-key="id"> |
|
|
|
@ -284,7 +289,8 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<el-form-item label="状态" prop="completeFlag" label-width="50px"> |
|
|
|
<el-select v-model="form.completeFlag" placeholder="请选择" :disabled="(form.completeFlag == '2' || form.completeFlag == '3') ? true:false" size="small"> |
|
|
|
<el-select v-model="form.completeFlag" placeholder="请选择" |
|
|
|
:disabled="(form.completeFlag == '2' || form.completeFlag == '3') ? true : false" size="small"> |
|
|
|
<div v-if="form.completeFlag == '2' || form.completeFlag == '3'"> |
|
|
|
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" |
|
|
|
:value="item.id"> |
|
|
|
@ -337,61 +343,65 @@ |
|
|
|
</div> |
|
|
|
<!--人员登记组合项目明细 register_asbitem--> |
|
|
|
<div> |
|
|
|
<PatientRegisterItem :prForm="form" :prAsbOpraOpts="prAsbOpraOpts" :triggerHeadSave="triggerHeadSave" :refreshFormId="refreshFormId"/> |
|
|
|
<PatientRegisterItem :prForm="form" :prAsbOpraOpts="prAsbOpraOpts" :triggerHeadSave="triggerHeadSave" |
|
|
|
:refreshFormId="refreshFormId" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div style="margin-left: 10px;"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'拍照')"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '拍照')"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="photoGrah" icon="el-icon-camera">拍照</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'读身份证')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '读身份证')" class="btn"> |
|
|
|
<el-button @click="peopleIcCard" class="commonbutton">读身份证</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'复制新增')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '复制新增')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="rdCopy">复制新增</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'保存')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '保存')" class="btn"> |
|
|
|
<el-button type="success" class="commonbutton" @click="btnSubmit('form', true)">保存</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'检验单申请')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '检验单申请')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="lisRequest">检验单申请</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'条码打印')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '条码打印')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="lisPrint('0002', false)">条码打印</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'条码补打')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '条码补打')" class="btn"> |
|
|
|
<el-button type="danger" class="commonbutton" @click="reLisRequest">条码补打</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'指引单打印')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '指引单打印')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="guidePrint('0001', false)">指引单打印</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'指引单预览')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '指引单预览')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="guidePrint('0001', true)">指引单预览</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'手动合并项目')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '手动合并项目')" class="btn"> |
|
|
|
<el-button type="danger" class="commonbutton" @click="reMergeAsbitem">手动合并项目</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'全个人支付')" style="margin-top: 30px;"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '全个人支付')" style="margin-top: 30px;"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="prAsbOpraOpts.payTypeFlag = '0'">全个人支付</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'全单位支付')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '全单位支付')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="prAsbOpraOpts.payTypeFlag = '1'">全单位支付</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'全赠送')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '全赠送')" class="btn"> |
|
|
|
<el-button type="primary" class="commonbutton" @click="prAsbOpraOpts.payTypeFlag = '2'">全赠送</el-button> |
|
|
|
</div> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs,'收费')" class="btn"> |
|
|
|
<div v-show="checkPagePriv(pagePriv.privs, '收费')" class="btn"> |
|
|
|
<el-button type="success" class="commonbutton" @click="toCharge(form.patientRegisterNo)">收费</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!--组件弹窗--> |
|
|
|
<div> |
|
|
|
<!-- 人员档案列表 --> |
|
|
|
<el-dialog title="人员档案列表" :visible.sync="dialogVisible" width="800px" :show-close="false" :close-on-click-modal="false" |
|
|
|
:append-to-body="true"> |
|
|
|
<el-dialog title="人员档案列表" :visible.sync="dialogVisible" width="800px" :show-close="false" |
|
|
|
:close-on-click-modal="false" :append-to-body="true"> |
|
|
|
<el-table :data="patientList" border width="800" height="480" row-key="id" size="small" |
|
|
|
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowick" @row-dblclick="patientDblclick" ref="patientList"> |
|
|
|
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowick" @row-dblclick="patientDblclick" |
|
|
|
ref="patientList"> |
|
|
|
<el-table-column type="index" width="30" /> |
|
|
|
<el-table-column prop="patientNo" label="档案号" /> |
|
|
|
<el-table-column prop="lastTime" label="末次体检" width="100"> |
|
|
|
@ -436,8 +446,8 @@ |
|
|
|
<el-table-column prop="mobileTelephone" label="手机号" /> |
|
|
|
</el-table> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="dialogVisible = false" style="width:90px;">取消</el-button> |
|
|
|
<el-button type="primary" @click="choosePatient" style="width:90px;">确定</el-button> |
|
|
|
<el-button class="commonbutton" @click="dialogVisible = false" style="width:90px;">取消</el-button> |
|
|
|
<el-button class="commonbutton" type="primary" @click="choosePatient" style="width:90px;">确定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
@ -460,20 +470,25 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 收费 --> |
|
|
|
<el-dialog title="" :visible.sync="dialogWin.charge" :close-on-click-modal="false" |
|
|
|
:append-to-body="true" fullscreen @close="closeDialogCharge"> |
|
|
|
<el-dialog title="" :visible.sync="dialogWin.charge" :close-on-click-modal="false" :append-to-body="true" fullscreen |
|
|
|
@close="closeDialogCharge"> |
|
|
|
<div style="margin-top: -30px;"> |
|
|
|
<Charge :patientRegisterNo="chargePatientRegisterNo"/> |
|
|
|
<Charge :patientRegisterNo="chargePatientRegisterNo" /> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
import moment from "moment"; |
|
|
|
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 { |
|
|
|
getPagePriv, checkPagePriv, objCopy, setNull, dddw, checkIDCode, parseID, |
|
|
|
birthdayToAge, ageToBirthday, deepCopy, arrayFilter, arrayReduce, parsIcCardtoLocal, |
|
|
|
photoParse, savePeoplePhoto, arrayExistObj |
|
|
|
} from "../../utlis/proFunc"; |
|
|
|
import Camera from "./Camera.vue"; |
|
|
|
import PatientRegisterItem from "./PatientRegisterItem.vue"; |
|
|
|
import LisRequest from "./LisRequest.vue"; |
|
|
|
@ -492,12 +507,12 @@ export default { |
|
|
|
PatientRegisterEditQuery |
|
|
|
}, |
|
|
|
// isDoctor: '0:标准人员登记/1:医生诊台登记(可修改单位)' |
|
|
|
props: ['isDoctor','patientRegisterId','editTimes','refreshRegister'], |
|
|
|
props: ['isDoctor', 'patientRegisterId', 'editTimes', 'refreshRegister', 'refFuncSetData'], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
pagePriv:{ |
|
|
|
routeUrlorPageName:'PatientRegisterEdit', //当前页面归属路由或归属页面权限名称 |
|
|
|
privs:[] // 页面权限 |
|
|
|
pagePriv: { |
|
|
|
routeUrlorPageName: 'PatientRegisterEdit', //当前页面归属路由或归属页面权限名称 |
|
|
|
privs: [] // 页面权限 |
|
|
|
}, |
|
|
|
|
|
|
|
apiurl: mm.apiurl, |
|
|
|
@ -507,9 +522,9 @@ export default { |
|
|
|
peoplePhoto: '', |
|
|
|
|
|
|
|
form: { |
|
|
|
registerManType:'customer', //登记人员类型,客服:customer 医生:doctor 支持在医生诊台处理登记人员 |
|
|
|
registerManType: 'customer', //登记人员类型,客服:customer 医生:doctor 支持在医生诊台处理登记人员 |
|
|
|
id: "", //id |
|
|
|
photo:'', //照片 |
|
|
|
photo: '', //照片 |
|
|
|
patientId: "00000000-0000-0000-0000-000000000000", //档案号ID 选择了档案就传档案号,未选就传00000-0000... |
|
|
|
patientNo: "", //档案号 |
|
|
|
customerOrgId: ["00000000-0000-0000-0000-000000000000"], //单位编号 默认个人 |
|
|
|
@ -556,9 +571,9 @@ export default { |
|
|
|
isLockBox: false, //是否锁住 |
|
|
|
customerOrgRegisterId: null, |
|
|
|
isMaxMedicalTimes: 'N', |
|
|
|
medicalStartDate:null |
|
|
|
medicalStartDate: null |
|
|
|
}, //单位 记录 目前新增与更新是一致 |
|
|
|
formInit:{}, //表单初始化 |
|
|
|
formInit: {}, //表单初始化 |
|
|
|
customerOrgRegisterList: [], //单位体检次数列表 |
|
|
|
defaultNull: [ |
|
|
|
"customerOrgId", |
|
|
|
@ -576,7 +591,7 @@ export default { |
|
|
|
], //一般uuid字段为空时,需设置为null值 |
|
|
|
|
|
|
|
rules: { |
|
|
|
customerOrgId:[ |
|
|
|
customerOrgId: [ |
|
|
|
{ required: true, message: "请填写单位", trigger: "blur" }, |
|
|
|
], |
|
|
|
patientName: [ |
|
|
|
@ -592,23 +607,23 @@ export default { |
|
|
|
patientChoosed: {}, //查重选中的人员 |
|
|
|
|
|
|
|
|
|
|
|
registerVisible:false, |
|
|
|
patientRegisters:[], |
|
|
|
registerChoosed:{}, |
|
|
|
registerVisible: false, |
|
|
|
patientRegisters: [], |
|
|
|
registerChoosed: {}, |
|
|
|
|
|
|
|
dialogCamera: false, //拍照组件 |
|
|
|
|
|
|
|
chargePatientRegisterNo:'', //对哪个条码客户收费 |
|
|
|
chargePatientRegisterNo: '', //对哪个条码客户收费 |
|
|
|
|
|
|
|
//人员登记,组合项目明细操作相关参数 |
|
|
|
prAsbOpraOpts:{ |
|
|
|
formId:'', //form.id为空时,明细保存取此formId |
|
|
|
copyNew:0, //触发复制新增 |
|
|
|
payTypeFlag:'', //触发调整支付方式 |
|
|
|
prAsbSave:0, //触发组合项目明细保存 |
|
|
|
prAsbQuery:0,//触发组合项目明细查询,比如收费后,刷新收费状态 |
|
|
|
prAsbGroup:0, //触发分组更换 |
|
|
|
prAsbPackage:0, //触发套餐更换 |
|
|
|
prAsbOpraOpts: { |
|
|
|
formId: '', //form.id为空时,明细保存取此formId |
|
|
|
copyNew: 0, //触发复制新增 |
|
|
|
payTypeFlag: '', //触发调整支付方式 |
|
|
|
prAsbSave: 0, //触发组合项目明细保存 |
|
|
|
prAsbQuery: 0,//触发组合项目明细查询,比如收费后,刷新收费状态 |
|
|
|
prAsbGroup: 0, //触发分组更换 |
|
|
|
prAsbPackage: 0, //触发套餐更换 |
|
|
|
}, |
|
|
|
}; |
|
|
|
}, |
|
|
|
@ -616,7 +631,7 @@ export default { |
|
|
|
created() { |
|
|
|
//获取用户当前页面的权限 |
|
|
|
let userPriv = window.sessionStorage.getItem('userPriv') |
|
|
|
if(userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
|
|
|
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
|
|
|
|
|
|
|
this.formInit = deepCopy(this.form) |
|
|
|
// 初始化字典数据 |
|
|
|
@ -630,36 +645,36 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
computed: { |
|
|
|
...mapState(["window","dialogWin","dataTransOpts","dict", "patientRegister", "customerOrg", "projPriv"]), |
|
|
|
...mapState(["window", "dialogWin", "dataTransOpts", "dict", "patientRegister", "customerOrg", "projPriv"]), |
|
|
|
|
|
|
|
//是否总检(已总检则不允许修改套餐与分组) |
|
|
|
isComplete(){ |
|
|
|
return this.form.completeFlag == '3' ? true:false; |
|
|
|
isComplete() { |
|
|
|
return this.form.completeFlag == '3' ? true : false; |
|
|
|
}, |
|
|
|
|
|
|
|
// 套餐 disabled 如完成体检亦不允许编辑 |
|
|
|
displayPackage(){ |
|
|
|
displayPackage() { |
|
|
|
let isPersonOrgId = true |
|
|
|
if(!this.isComplete){ |
|
|
|
if(!this.form.customerOrgId) return false |
|
|
|
if(typeof this.form.customerOrgId == 'string'){ |
|
|
|
if(this.form.customerOrgId == this.dict.personOrgId) isPersonOrgId = false |
|
|
|
}else{ |
|
|
|
if(this.form.customerOrgId[this.form.customerOrgId.length - 1] == this.dict.personOrgId) isPersonOrgId = false |
|
|
|
if (!this.isComplete) { |
|
|
|
if (!this.form.customerOrgId) return false |
|
|
|
if (typeof this.form.customerOrgId == 'string') { |
|
|
|
if (this.form.customerOrgId == this.dict.personOrgId) isPersonOrgId = false |
|
|
|
} else { |
|
|
|
if (this.form.customerOrgId[this.form.customerOrgId.length - 1] == this.dict.personOrgId) isPersonOrgId = false |
|
|
|
} |
|
|
|
} |
|
|
|
return isPersonOrgId |
|
|
|
}, |
|
|
|
|
|
|
|
// 分组 disabled 如完成体检亦不允许编辑 |
|
|
|
displayGroup(){ |
|
|
|
displayGroup() { |
|
|
|
let isPersonOrgId = true |
|
|
|
if(!this.isComplete){ |
|
|
|
if(!this.form.customerOrgId) return isPersonOrgId |
|
|
|
if(typeof this.form.customerOrgId == 'string'){ |
|
|
|
if(this.form.customerOrgId != this.dict.personOrgId) isPersonOrgId = false |
|
|
|
}else{ |
|
|
|
if(this.form.customerOrgId[this.form.customerOrgId.length - 1] != this.dict.personOrgId) isPersonOrgId = false |
|
|
|
if (!this.isComplete) { |
|
|
|
if (!this.form.customerOrgId) return isPersonOrgId |
|
|
|
if (typeof this.form.customerOrgId == 'string') { |
|
|
|
if (this.form.customerOrgId != this.dict.personOrgId) isPersonOrgId = false |
|
|
|
} else { |
|
|
|
if (this.form.customerOrgId[this.form.customerOrgId.length - 1] != this.dict.personOrgId) isPersonOrgId = false |
|
|
|
} |
|
|
|
} |
|
|
|
return isPersonOrgId |
|
|
|
@ -667,7 +682,7 @@ export default { |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
...mapActions(['getPatientRegisterAbs']), |
|
|
|
dddw,moment,checkPagePriv, |
|
|
|
dddw, moment, checkPagePriv, |
|
|
|
|
|
|
|
//数据初始化 |
|
|
|
dictInit() { |
|
|
|
@ -744,7 +759,7 @@ export default { |
|
|
|
}); |
|
|
|
|
|
|
|
//套餐 |
|
|
|
postapi("/api/app/medicalpackage/GetBasicList",{}).then((res) => { |
|
|
|
postapi("/api/app/medicalpackage/GetBasicList", {}).then((res) => { |
|
|
|
if (res.code == 1) { |
|
|
|
this.dict.medicalPackage = res.data; |
|
|
|
} |
|
|
|
@ -776,17 +791,17 @@ export default { |
|
|
|
|
|
|
|
|
|
|
|
// 获取登记信息 初始form表单数据 |
|
|
|
async initFormData(patientRegisterId){ |
|
|
|
async initFormData(patientRegisterId) { |
|
|
|
|
|
|
|
this.peisid = window.sessionStorage.getItem('peisid'); |
|
|
|
|
|
|
|
if (!patientRegisterId) { //添加 |
|
|
|
objCopy(this.formInit, this.form); |
|
|
|
this.form.organizationUnitId = this.peisid; //体检中收 |
|
|
|
this.form.customerOrgId = this.patientRegister.query.customerOrgId||this.dict.personOrgId //体检单位 |
|
|
|
this.form.customerOrgId = this.patientRegister.query.customerOrgId || this.dict.personOrgId //体检单位 |
|
|
|
this.form.customerOrgParentId = await this.getParentCustomerOrgId(this.form.customerOrgId) //体检父单位 |
|
|
|
|
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
// let res = await getapi(`/api/app/patient-register/${patientRegisterId}`) |
|
|
|
let res = await postapi(`/api/app/patientregister/getinfoorpatient?PatientRegisterId=${patientRegisterId}`) |
|
|
|
this.form = res.data |
|
|
|
@ -802,26 +817,26 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
//选择单位 |
|
|
|
async changeCustomerOrgId(v){ |
|
|
|
async changeCustomerOrgId(v) { |
|
|
|
let customerOrgId = "" |
|
|
|
if(Array.isArray(v) && v.length > 0){ |
|
|
|
if (Array.isArray(v) && v.length > 0) { |
|
|
|
customerOrgId = v[v.length - 1] |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
customerOrgId = v |
|
|
|
} |
|
|
|
let customerOrgParentId = await this.getParentCustomerOrgId(customerOrgId) |
|
|
|
|
|
|
|
if(customerOrgParentId){ |
|
|
|
if (customerOrgParentId) { |
|
|
|
if (customerOrgParentId != this.dict.personOrgId) this.getCustomerOrgRegisterList(customerOrgParentId) |
|
|
|
|
|
|
|
// 父单位被更改时,需要触发 修改 分组/套餐 |
|
|
|
if(this.form.customerOrgParentId != customerOrgParentId){ |
|
|
|
if (this.form.customerOrgParentId != customerOrgParentId) { |
|
|
|
if (customerOrgParentId == this.dict.personOrgId) { |
|
|
|
this.form.customerOrgRegisterId = null |
|
|
|
this.form.customerOrgGroupId = null |
|
|
|
this.form.medicalPackageId = null |
|
|
|
this.patientRegister.customerOrgGroup = [] |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.form.customerOrgRegisterId = null |
|
|
|
this.form.customerOrgGroupId = null |
|
|
|
this.form.medicalPackageId = null |
|
|
|
@ -829,9 +844,9 @@ export default { |
|
|
|
// this.getCustomerOrgRegisterList(customerOrgParentId) |
|
|
|
} |
|
|
|
|
|
|
|
if(this.form.customerOrgParentId == this.dict.personOrgId){ |
|
|
|
if (this.form.customerOrgParentId == this.dict.personOrgId) { |
|
|
|
this.changeMedicalPackageId() |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.changeCustomerOrgGroupId() |
|
|
|
} |
|
|
|
this.form.customerOrgParentId = customerOrgParentId |
|
|
|
@ -840,43 +855,43 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
// 获取顶级单位ID |
|
|
|
async getParentCustomerOrgId(customerOrgId){ |
|
|
|
async getParentCustomerOrgId(customerOrgId) { |
|
|
|
let customerOrgParentId = null |
|
|
|
if(!customerOrgId) return customerOrgParentId |
|
|
|
if(typeof customerOrgId == 'string'){ |
|
|
|
if (!customerOrgId) return customerOrgParentId |
|
|
|
if (typeof customerOrgId == 'string') { |
|
|
|
try { |
|
|
|
let res = await getapi(`/api/app/customer-org/parent/${this.form.customerOrgId}`) |
|
|
|
if(res.code != -1) customerOrgParentId = res.data |
|
|
|
if (res.code != -1) customerOrgParentId = res.data |
|
|
|
} catch (error) { |
|
|
|
console.log('获取顶级单位ID出错:',error) |
|
|
|
console.log('获取顶级单位ID出错:', error) |
|
|
|
} |
|
|
|
}else if(customerOrgId.length > 0){ |
|
|
|
} else if (customerOrgId.length > 0) { |
|
|
|
customerOrgParentId = customerOrgId[0] |
|
|
|
} |
|
|
|
return customerOrgParentId |
|
|
|
}, |
|
|
|
|
|
|
|
//获取单位体检次数 |
|
|
|
getCustomerOrgRegisterList(customerOrgParentId){ |
|
|
|
getCustomerOrgRegisterList(customerOrgParentId) { |
|
|
|
//获取单位体检次数信息 |
|
|
|
getapi(`/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${customerOrgParentId}`) |
|
|
|
.then(res =>{ |
|
|
|
if(res.code != - 1){ |
|
|
|
console.log('获取单位体检次数',this.form.customerOrgRegisterId,res.data) |
|
|
|
if(this.form.customerOrgRegisterId){ |
|
|
|
let lfind = arrayExistObj(res.data,"id",this.form.customerOrgRegisterId) |
|
|
|
if(lfind == -1) this.form.customerOrgRegisterId = '' |
|
|
|
} |
|
|
|
if(!this.form.customerOrgRegisterId){ |
|
|
|
.then(res => { |
|
|
|
if (res.code != - 1) { |
|
|
|
console.log('获取单位体检次数', this.form.customerOrgRegisterId, res.data) |
|
|
|
if (this.form.customerOrgRegisterId) { |
|
|
|
let lfind = arrayExistObj(res.data, "id", this.form.customerOrgRegisterId) |
|
|
|
if (lfind == -1) this.form.customerOrgRegisterId = '' |
|
|
|
} |
|
|
|
if (!this.form.customerOrgRegisterId) { |
|
|
|
this.customerOrgRegisterList = arrayFilter(res.data, 'isComplete', 'N') //不显示已完成的体检次数 |
|
|
|
if(this.customerOrgRegisterList.length > 0){ |
|
|
|
if (this.customerOrgRegisterList.length > 0) { |
|
|
|
this.form.customerOrgRegisterId = this.customerOrgRegisterList[this.customerOrgRegisterList.length - 1].id |
|
|
|
} |
|
|
|
} |
|
|
|
if(this.form.customerOrgRegisterId) return getapi(`/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${this.form.customerOrgRegisterId}`) //获取单位分组 |
|
|
|
if (this.form.customerOrgRegisterId) return getapi(`/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${this.form.customerOrgRegisterId}`) //获取单位分组 |
|
|
|
} |
|
|
|
}).then(res =>{ |
|
|
|
if(res && res.code != -1){ |
|
|
|
}).then(res => { |
|
|
|
if (res && res.code != -1) { |
|
|
|
this.patientRegister.customerOrgGroup = res.data.items; |
|
|
|
} |
|
|
|
}) |
|
|
|
@ -884,12 +899,12 @@ export default { |
|
|
|
|
|
|
|
//读取身份证信息 |
|
|
|
peopleIcCard() { |
|
|
|
if(!this.$peisAPI) { |
|
|
|
if (!this.$peisAPI) { |
|
|
|
this.$message.info("此功能,需要在壳客户端才可运行!") |
|
|
|
return |
|
|
|
} |
|
|
|
this.$peisAPI.peopleIcCard().then(res => { |
|
|
|
console.log('peopleIcCard',res) |
|
|
|
console.log('peopleIcCard', res) |
|
|
|
let lres = JSON.parse(res) |
|
|
|
if (lres.code >= 0) { |
|
|
|
let idNos = parsIcCardtoLocal(lres.data, this.dict.sex, this.dict.nation) |
|
|
|
@ -1002,11 +1017,11 @@ export default { |
|
|
|
asbitemName: groupPackageAsb[i].displayName, |
|
|
|
patientRegisterId: this.form.id, |
|
|
|
standardPrice: groupPackageAsb[i].price, |
|
|
|
chargePrice: typeFlag == 'group' ? groupPackageAsb[i].customerOrgGroupDetailPrice:groupPackageAsb[i].price, |
|
|
|
chargePrice: typeFlag == 'group' ? groupPackageAsb[i].customerOrgGroupDetailPrice : groupPackageAsb[i].price, |
|
|
|
payTypeFlag, |
|
|
|
discount: typeFlag == 'group' ? groupPackageAsb[i].discount:100, |
|
|
|
discount: typeFlag == 'group' ? groupPackageAsb[i].discount : 100, |
|
|
|
isCharge: "N", |
|
|
|
amount: typeFlag == 'group' ? groupPackageAsb[i].customerOrgGroupDetailAmount:1, |
|
|
|
amount: typeFlag == 'group' ? groupPackageAsb[i].customerOrgGroupDetailAmount : 1, |
|
|
|
groupPackageId: groupPackageId |
|
|
|
} |
|
|
|
this.patientRegister.patientRegisterAbs.push(pojo) |
|
|
|
@ -1070,11 +1085,11 @@ export default { |
|
|
|
|
|
|
|
//console.log(`/api/app/patient/in-filter?Filter=${param}`) |
|
|
|
let body = { |
|
|
|
filter:param, |
|
|
|
maxResultCount:500 |
|
|
|
filter: param, |
|
|
|
maxResultCount: 500 |
|
|
|
} |
|
|
|
|
|
|
|
postapi('/api/app/patient/getlistinfilter',body).then((res) => { |
|
|
|
postapi('/api/app/patient/getlistinfilter', body).then((res) => { |
|
|
|
if (res.code != -1) { |
|
|
|
console.log("查重 ", res); //有数据才显示 |
|
|
|
if (res.data.items && res.data.items.length > 0) { |
|
|
|
@ -1091,7 +1106,7 @@ export default { |
|
|
|
this.patientChoosed = row; |
|
|
|
}, |
|
|
|
|
|
|
|
patientDblclick(row){ |
|
|
|
patientDblclick(row) { |
|
|
|
this.patientChoosed = row; |
|
|
|
this.choosePatient() |
|
|
|
}, |
|
|
|
@ -1131,15 +1146,15 @@ export default { |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
registerRowClick(row){ |
|
|
|
registerRowClick(row) { |
|
|
|
this.registerChoosed = row; |
|
|
|
}, |
|
|
|
registerRowDblclick(row){ |
|
|
|
registerRowDblclick(row) { |
|
|
|
this.registerChoosed = row; |
|
|
|
this.chooseRegister() |
|
|
|
}, |
|
|
|
|
|
|
|
chooseRegister(){ |
|
|
|
chooseRegister() { |
|
|
|
if (!this.registerChoosed) { |
|
|
|
alert("请选中人员登记信息"); |
|
|
|
return; |
|
|
|
@ -1198,7 +1213,7 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
// 组装基本信息保存的参数体 |
|
|
|
madePrBody(){ |
|
|
|
madePrBody() { |
|
|
|
//赋值 |
|
|
|
let body = deepCopy(this.form); |
|
|
|
// console.log('this.form',this.form) |
|
|
|
@ -1210,11 +1225,11 @@ export default { |
|
|
|
// this.form.birthDate != "Invalid date" |
|
|
|
body.birthDate = null |
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
body.birthDate = null |
|
|
|
} |
|
|
|
if(body.birthDate == "Invalid date") body.birthDate = null |
|
|
|
if(isNaN(body.age)) body.age = null |
|
|
|
if (body.birthDate == "Invalid date") body.birthDate = null |
|
|
|
if (isNaN(body.age)) body.age = null |
|
|
|
// console.log('body',body) |
|
|
|
// Invalid date |
|
|
|
|
|
|
|
@ -1236,12 +1251,12 @@ export default { |
|
|
|
delete body.photo; |
|
|
|
|
|
|
|
// if(this.form.registerManType == 'customer') delete body.medicalStartDate; |
|
|
|
if(this.form.id) delete body.medicalStartDate; |
|
|
|
if (this.form.id) delete body.medicalStartDate; |
|
|
|
|
|
|
|
setNull(body, this.defaultNull); |
|
|
|
|
|
|
|
if(typeof this.form.customerOrgId == 'object'){ |
|
|
|
if(this.form.customerOrgId.length > 0) body.customerOrgId = this.form.customerOrgId[this.form.customerOrgId.length - 1] |
|
|
|
if (typeof this.form.customerOrgId == 'object') { |
|
|
|
if (this.form.customerOrgId.length > 0) body.customerOrgId = this.form.customerOrgId[this.form.customerOrgId.length - 1] |
|
|
|
} |
|
|
|
|
|
|
|
//日期转换 日期控件增加格式 |
|
|
|
@ -1256,31 +1271,31 @@ export default { |
|
|
|
|
|
|
|
//提交 |
|
|
|
btnSubmit(formName, msgTip) { |
|
|
|
this.$refs[formName].validate((valid,fields) => { |
|
|
|
console.log('fields',fields) |
|
|
|
if(!valid){ |
|
|
|
this.$refs[formName].validate((valid, fields) => { |
|
|
|
console.log('fields', fields) |
|
|
|
if (!valid) { |
|
|
|
this.$message.warning(fields[Object.keys(fields)[0]][0].message); |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
if(this.form.customerOrgId != this.dict.personOrgId){ |
|
|
|
if(!this.form.customerOrgRegisterId){ |
|
|
|
if (this.form.customerOrgId != this.dict.personOrgId) { |
|
|
|
if (!this.form.customerOrgRegisterId) { |
|
|
|
this.$message.warning("请填写单位体检次数!"); |
|
|
|
return false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(this.form.idNo && checkIDCode(this.form.idNo) == false){ |
|
|
|
if (this.form.idNo && checkIDCode(this.form.idNo) == false) { |
|
|
|
this.$message.warning("身份证号填写不合法!"); |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (this.form.id){ |
|
|
|
if (this.form.id) { |
|
|
|
// 更新时,先保存明细,再更新主表 |
|
|
|
this.prAsbOpraOpts.prAsbSave++ //触发组合项目保存 |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
let body = this.madePrBody() |
|
|
|
//id为空则新增 |
|
|
|
console.log(`/api/patientregister/createreturninfo`, body); |
|
|
|
@ -1293,16 +1308,16 @@ export default { |
|
|
|
//触发已选组合项目保存 |
|
|
|
this.prAsbOpraOpts.formId = res.data.id |
|
|
|
this.dataTransOpts.tableS.patient_register.id = res.data.id |
|
|
|
let temp = Object.assign({},res.data,{id:''}) |
|
|
|
objCopy(temp,this.form) |
|
|
|
let temp = Object.assign({}, res.data, { id: '' }) |
|
|
|
objCopy(temp, this.form) |
|
|
|
|
|
|
|
// 稍作延时,否则 this.prAsbOpraOpts.formId 尚未更新 |
|
|
|
setTimeout(() =>{ |
|
|
|
setTimeout(() => { |
|
|
|
this.prAsbOpraOpts.prAsbSave++ |
|
|
|
},20) |
|
|
|
}, 20) |
|
|
|
|
|
|
|
// 用于刷新登记的列表 |
|
|
|
this.refreshRegister(Object.assign({},res.data)) |
|
|
|
this.refreshRegister(Object.assign({}, res.data)) |
|
|
|
|
|
|
|
//一般读身份证照片时,会出现这种情况 |
|
|
|
if (this.patientRegister.photo && this.patientRegister.photo.indexOf("data:image") > -1) savePeoplePhoto(res.data.id, this.patientRegister.photo); |
|
|
|
@ -1375,7 +1390,7 @@ export default { |
|
|
|
alert("请先保存人员信息"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if(!this.$peisAPI) { |
|
|
|
if (!this.$peisAPI) { |
|
|
|
this.$message.info("此功能,需要在壳客户端才可运行!") |
|
|
|
return |
|
|
|
} |
|
|
|
@ -1424,7 +1439,7 @@ export default { |
|
|
|
this.$message.info("人员信息尚未保存,不可执行此操作!"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if(!this.$peisAPI) { |
|
|
|
if (!this.$peisAPI) { |
|
|
|
this.$message.info("此功能,需要在壳客户端才可运行!") |
|
|
|
return |
|
|
|
} |
|
|
|
@ -1541,7 +1556,7 @@ export default { |
|
|
|
this.$message.info("人员信息尚未保存,不可执行此操作!"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if(!this.$peisAPI) { |
|
|
|
if (!this.$peisAPI) { |
|
|
|
this.$message.info("此功能,需要在壳客户端才可运行!") |
|
|
|
return |
|
|
|
} |
|
|
|
@ -1620,16 +1635,16 @@ export default { |
|
|
|
this.patientRegister.mergeAsbitemVisble = true; |
|
|
|
}, |
|
|
|
|
|
|
|
async toCharge(patientRegisterNo){ |
|
|
|
async toCharge(patientRegisterNo) { |
|
|
|
|
|
|
|
if(!patientRegisterNo){ |
|
|
|
if (!patientRegisterNo) { |
|
|
|
this.$message.warning("请先保存人员信息!") |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
let res = await proApi.getPrAsb(this.form.id) |
|
|
|
if(res.code == -1){ |
|
|
|
if (res.code == -1) { |
|
|
|
this.$message.warning(`操作失败,原因:${res.message}`) |
|
|
|
return |
|
|
|
} |
|
|
|
@ -1648,13 +1663,13 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
//关闭收费窗口时,刷新收费状态信息 |
|
|
|
closeDialogCharge(){ |
|
|
|
closeDialogCharge() { |
|
|
|
// this.prAsbOpraOpts.prAsbQuery++ |
|
|
|
this.dataTransOpts.refresh.register_asbitem.M++ |
|
|
|
}, |
|
|
|
|
|
|
|
//触发人员信息保存(更新) |
|
|
|
triggerHeadSave(){ |
|
|
|
triggerHeadSave() { |
|
|
|
//id不为空则编辑 api/patientregister/updatepatientregister |
|
|
|
let body = this.madePrBody() |
|
|
|
// console.log(`/api/patientregister/updatepatientregister?PatientRegisterId=${this.form.id}`, body); |
|
|
|
@ -1665,15 +1680,15 @@ export default { |
|
|
|
if (this.patientRegister.photo && this.patientRegister.photo.indexOf("data:image") > -1) savePeoplePhoto(this.form.id, this.patientRegister.photo); |
|
|
|
objCopy(this.form, this.patientRegister.patientRegisterRd); |
|
|
|
|
|
|
|
this.refreshRegister(Object.assign({},this.form)) |
|
|
|
this.refreshRegister(Object.assign({}, this.form)) |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 新增保存基本信息产生新的ID,等明细保存后,再更新表单form.id |
|
|
|
refreshFormId(){ |
|
|
|
console.log('refreshFormId',this.prAsbOpraOpts.formId) |
|
|
|
refreshFormId() { |
|
|
|
console.log('refreshFormId', this.prAsbOpraOpts.formId) |
|
|
|
this.form.id = this.prAsbOpraOpts.formId |
|
|
|
this.prAsbOpraOpts.formId = '' //清空 |
|
|
|
|
|
|
|
@ -1694,7 +1709,7 @@ export default { |
|
|
|
let inputs = document.querySelectorAll("form input"); //用数组可以读取多个标签的元素 //.inline-input |
|
|
|
//console.log('inputs',inputs); |
|
|
|
// 为每个输入框添加键盘事件监听器 |
|
|
|
inputs.forEach((input,i) => { |
|
|
|
inputs.forEach((input, i) => { |
|
|
|
|
|
|
|
input.addEventListener('keydown', (event) => { |
|
|
|
|
|
|
|
@ -1706,8 +1721,8 @@ export default { |
|
|
|
event.preventDefault(); |
|
|
|
|
|
|
|
// 跳至下一个输入框 |
|
|
|
for(let j=i+1; j<inputs.length;j++){ |
|
|
|
if(inputs[j].getAttribute('disabled') != "disabled" ){ |
|
|
|
for (let j = i + 1; j < inputs.length; j++) { |
|
|
|
if (inputs[j].getAttribute('disabled') != "disabled") { |
|
|
|
inputs[j].focus(); |
|
|
|
break; |
|
|
|
} |
|
|
|
@ -1724,8 +1739,8 @@ export default { |
|
|
|
//监听事件 |
|
|
|
watch: { |
|
|
|
//人员ID未切换换时 也可以强制刷新数据 |
|
|
|
"dataTransOpts.refresh.patient_register.S":{ |
|
|
|
immediate:true, |
|
|
|
"dataTransOpts.refresh.patient_register.S": { |
|
|
|
immediate: true, |
|
|
|
handler(newVal, oldVal) { |
|
|
|
console.log(`watch 人员登记 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`); |
|
|
|
this.initFormData(this.dataTransOpts.tableS.patient_register.id) |
|
|
|
@ -1741,7 +1756,7 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
//修改单位触发 |
|
|
|
"form.customerOrgId":{ |
|
|
|
"form.customerOrgId": { |
|
|
|
// immediate:true, |
|
|
|
// // deep:true, |
|
|
|
handler(newVal, oldVal) { |
|
|
|
@ -1756,8 +1771,6 @@ export default { |
|
|
|
}; |
|
|
|
</script> |
|
|
|
<style scoped> |
|
|
|
|
|
|
|
|
|
|
|
.btn { |
|
|
|
margin-top: 5px; |
|
|
|
} |
|
|
|
@ -1769,7 +1782,7 @@ export default { |
|
|
|
.query { |
|
|
|
margin-left: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.querySpan { |
|
|
|
margin-right: 2px; |
|
|
|
} |
|
|
|
</style> |
|
|
|
}</style> |