pengjun 4 months ago
parent
commit
5769b34c7e
  1. 195
      src/components/patientRegister/PatientRegisterEdit.vue
  2. 37
      src/components/patientRegister/PatientRegisterItem.vue
  3. 6
      src/components/patientRegister/PatientRegisterList.vue
  4. 1
      src/components/patientRegister/PatientRegisterRecoverList.vue

195
src/components/patientRegister/PatientRegisterEdit.vue

@ -12,12 +12,6 @@
<div v-show="checkPagePriv(pagePriv.privs, '职业病')">
<el-button @click="btnOcc" class="commonbutton" style="width:60px;">职业病</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '读身份证')">
<el-button @click="peopleIcCard" class="commonbutton" style="width:70px;">读身份证</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '拍照')">
<el-button type="primary" class="commonbutton" @click="photoGrah" style="width:60px;">拍照</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '个人预约')">
<el-button type="primary" class="commonbutton" @click="btnWebBooking" style="width:70px;">个人预约</el-button>
</div>
@ -62,10 +56,11 @@
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="性别" prop="sexId" label-width="50px">
<el-select v-model="form.sexId" placeholder="请选择" size="small" filterable
<el-form-item label="婚姻" prop="maritalStatusId" label-width="50px">
<el-select v-model="form.maritalStatusId" placeholder="请选择" size="small" filterable
:style="'width:' + Math.floor((window.pageWidth - 630) / 8) + 'px;'">
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id">
<el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -85,32 +80,31 @@
<el-input v-model="form.idNo" placeholder="身份证号" @change="changeIdNo('N')" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="出生日期" prop="birthDate">
<!--
<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-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age" size="small" @change="changeAge"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="婚姻" prop="maritalStatusId" label-width="50px">
<el-select v-model="form.maritalStatusId" placeholder="请选择" size="small" filterable
<el-form-item label="性别" prop="sexId" label-width="50px">
<el-select v-model="form.sexId" placeholder="请选择" size="small" filterable
:style="'width:' + Math.floor((window.pageWidth - 630) / 8) + 'px;'">
<el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName"
:value="item.id">
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="出生日期" prop="birthDate">
<!--
<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 - 580) / 4.8) + 'px;'"
@change="changeBirthDate" prefix-icon="" size="small" />
</el-form-item>
</el-col>
<el-col :span="3" />
</el-row>
<el-row>
@ -146,16 +140,20 @@
<el-col :span="3" />
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="人员类别" prop="personnelTypeId">
<el-select v-model="form.personnelTypeId" placeholder="请选择" filterable clearable
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" size="small">
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="体检卡号" prop="medicalCardNo">
<el-input v-model="form.medicalCardNo" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="性激素期" prop="sexHormoneTermId">
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable size="small"
@ -189,19 +187,15 @@
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="人员类别" prop="personnelTypeId">
<el-select v-model="form.personnelTypeId" placeholder="请选择" filterable clearable
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" size="small">
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
<el-form-item label="体检卡号" prop="medicalCardNo">
<el-input v-model="form.medicalCardNo" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="工卡号" prop="jobCardNo">
<el-input v-model="form.jobCardNo" size="small"></el-input>
</el-form-item>
</el-col>
</el-col>
<el-col :span="3">
<el-form-item label="职务" prop="jobPost">
<el-input v-model="form.jobPost" size="small"></el-input>
@ -471,43 +465,71 @@
</div>
</div>
<div style="margin-left: 10px;">
<div v-show="checkPagePriv(pagePriv.privs, '新增')">
<el-button type="primary" class="commonbutton" @click="btnAdd">新增</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '复制新增')" class="btn">
<el-button type="primary" class="commonbutton" @click="rdCopy">复制新增</el-button>
<div v-show="checkPagePriv(pagePriv.privs, '读身份证')" class="btn">
<el-button type="primary" class="commonbutton" @click="peopleIcCard">读身份证</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '拍照')" class="btn">
<el-button type="primary" class="commonbutton" @click="photoGrah">拍照</el-button>
</div>
<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">
<el-button type="primary" class="commonbutton" @click="lisRequest">检验单申请</el-button>
<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">
<el-button type="primary" class="commonbutton" @click="guideLabelPrint(false)"
:disabled="printing" style="font-size: 13px;">指引单+条码</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '指引单打印')" class="btn">
<el-button type="primary" class="commonbutton" @click="guidePrint('0001', false)"
:disabled="printing">指引单打印</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '条码打印')" class="btn">
<el-button type="primary" class="commonbutton" @click="labelPrint(false)"
:disabled="printing">条码打印</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '条码补打')" class="btn">
<el-button type="danger" class="commonbutton" @click="btnLabel">条码补打</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '指引单打印')" class="btn">
<el-button type="primary" class="commonbutton" @click="guidePrint('0001', false)"
:disabled="printing">指引单打印</el-button>
<div class="btn">
<el-dropdown @command="btnMoreOpr">
<el-button type="primary" class="commonbutton">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="指引单预览" divided
v-show="checkPagePriv(pagePriv.privs, '指引单打印')">指引单预览</el-dropdown-item>
<el-dropdown-item command="条码补打"
v-show="checkPagePriv(pagePriv.privs, '条码补打')">条码补打</el-dropdown-item>
<el-dropdown-item command="检验单申请" divided
v-show="checkPagePriv(pagePriv.privs, '检验单申请')">检验单申请</el-dropdown-item>
<el-dropdown-item command="条码合并"
v-show="checkPagePriv(pagePriv.privs, '条码合并')">条码合并</el-dropdown-item>
<el-dropdown-item command="手动合并项目"
v-show="checkPagePriv(pagePriv.privs, '手动合并项目')">手动合并项目</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<!--
<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">
<el-button type="primary" class="commonbutton" @click="lisRequest">检验单申请</el-button>
</div>
-->
<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">
<el-button type="danger" class="commonbutton" @click="reMergeAsbitem">手动合并项目</el-button>
</div>
-->
<div v-show="checkPagePriv(pagePriv.privs, '全个人支付')" style="margin-top: 30px;">
<el-button type="primary" class="commonbutton" @click="btnPayTypeFlag('0')">全个人支付</el-button>
@ -544,8 +566,8 @@
<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">
<el-table-column type="index" width="30" align="center"/>
<el-table-column prop="patientNo" label="档案号" min-width="80" align="center"/>
<el-table-column type="index" width="30" align="center" />
<el-table-column prop="patientNo" label="档案号" min-width="80" align="center" />
<el-table-column prop="lastTime" label="末次体检" min-width="80" align="center">
<template slot-scope="scope">
<div v-if="scope.row.lastTime">
@ -553,8 +575,8 @@
</div>
</template>
</el-table-column>
<el-table-column prop="medicalTimes" label="体检次数" min-width="70" align="center"/>
<el-table-column prop="displayName" label="姓名" min-width="70" align="center"/>
<el-table-column prop="medicalTimes" label="体检次数" min-width="70" align="center" />
<el-table-column prop="displayName" label="姓名" min-width="70" align="center" />
<el-table-column prop="sexId" label="性别" min-width="50" align="center">
<template slot-scope="scope">
<div>
@ -583,9 +605,9 @@
</div>
</template>
</el-table-column>
<el-table-column prop="idNo" label="身份证号" min-width="150" align="center"/>
<el-table-column prop="mobileTelephone" label="手机号" min-width="110" align="center"/>
<el-table-column prop="telephone" label="电话" min-width="120" align="center"/>
<el-table-column prop="idNo" label="身份证号" min-width="150" align="center" />
<el-table-column prop="mobileTelephone" label="手机号" min-width="110" align="center" />
<el-table-column prop="telephone" label="电话" min-width="120" align="center" />
</el-table>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="dialogVisible = false" style="width:90px;">取消</el-button>
@ -614,9 +636,7 @@
:append-to-body="true">
<div style="height: 320px;">
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" style="width:400px;"
filterable popper-class="example"
:props="{ ...customerOrg.treeprops, leaf: 'isLeaf' }"
size="small">
filterable popper-class="example" :props="{ ...customerOrg.treeprops, leaf: 'isLeaf' }" size="small">
</el-cascader>
</div>
<span slot="footer" class="dialog-footer">
@ -1388,6 +1408,9 @@ export default {
// form
initFormData(patientRegisterId) {
return new Promise((resolve, reject) => {
this.peoplePhoto = '' //
this.form.photo = ''
this.peisid = window.sessionStorage.getItem('peisid');
let customerOrgId, customerOrgName, customerOrgParentId
if (this.patientRegister.query.customerOrgId) {
@ -1401,7 +1424,6 @@ export default {
}
this.preCustomerOrgId = this.patientRegister.query.customerOrgId
if (!patientRegisterId) { //
this.peoplePhoto = '' //
this.form = Object.assign({}, this.form, this.formInit)
this.form.registerCheckAsbitems = []
this.form.medicalCenterId = this.peisid; //
@ -1433,7 +1455,7 @@ export default {
})
},
// ID
// ID
getMedicalTypeByOrg(customerOrgId) {
return new Promise((resolve, reject) => {
postapi('/api/app/Customerorg/GetMedicalTypeIdByCustomerOrgId', { customerOrgId })
@ -1441,6 +1463,7 @@ export default {
if (res.code > -1) {
this.form.medicalTypeId = res.data.medicalTypeId
this.form.personnelTypeId = res.data.personnelTypeId
this.form.salesman = res.data.salesPerson
}
})
})
@ -1605,7 +1628,7 @@ export default {
} else {
//
if (customerOrgParentId != this.form.customerOrgParentId) {
this.form.customerOrgRegisterId = ''
this.form.customerOrgRegisterId = ''
if (customerOrgRegisterList.length > 0) {
this.form.customerOrgRegisterId = customerOrgRegisterList[customerOrgRegisterList.length - 1].id
}
@ -1790,7 +1813,7 @@ export default {
// isNameContinue
changeIdNo(isNameContinue) {
if (!this.form.idNo) return
this.Query(this.form.idNo,isNameContinue)
this.Query(this.form.idNo, isNameContinue)
let ret = parseID(this.form.idNo)
// console.log('changeIdNo',ret)
if (ret.age != -1) {
@ -1819,12 +1842,12 @@ export default {
//
// isNameContinue
Query(param,isNameContinue) {
Query(param, isNameContinue) {
this.patientChoosed = { id: '' } //
//
if (this.form.id || !param) return;
//// console.log(`/api/app/patient/in-filter?Filter=${param}`)
let body = {
filter: param,
@ -1839,9 +1862,9 @@ export default {
if (res.data && res.data.length > 0) {
this.patientList = res.data;
this.dialogVisible = true;
}else{
} else {
//
if(isNameContinue == 'Y' && this.LocalConfig.patientRegister.findPatientByName){
if (isNameContinue == 'Y' && this.LocalConfig.patientRegister.findPatientByName) {
this.Query(this.form.patientName)
}
}
@ -2445,10 +2468,19 @@ export default {
})
},
//
getPeoplePhoto(photo) {
this.peoplePhoto = photoParse(photo)
},
// +
guideLabelPrint(isPreview){
this.guidePrint('0001',isPreview)
.then(() => {
return this.labelPrint(isPreview)
})
},
// (isPreview)
guidePrint(ReportCode, isPreview) {
return new Promise((resolve, reject) => {
@ -2879,7 +2911,30 @@ export default {
});
},
//
//
btnMoreOpr(oprType) {
switch (oprType) {
case "指引单预览":
this.guidePrint('0001', true)
break;
case "条码补打":
this.btnLabel()
break;
case "检验单申请":
this.lisRequest()
break;
case "条码合并":
this.reLisRequest()
break;
case "手动合并项目":
this.reMergeAsbitem()
break;
default:
break;
}
},
//
reLisRequest() {
if (!this.form.id) {
this.$message.info({ showClose: true, message: "人员信息尚未保存,不可执行此操作!" });

37
src/components/patientRegister/PatientRegisterItem.vue

@ -138,7 +138,7 @@
</el-table-column>
<el-table-column prop="total" label="应收金额" min-width="70" align="center" />
<el-table-column prop="standTotal" label="标准金额" min-width="70" v-if="false" />
<el-table-column label="支付方式" prop="payTypeFlag" width="80">
<el-table-column label="支付方式" prop="payTypeFlag" width="80" align="center" >
<template slot-scope="scope">
<el-select v-model="scope.row.payTypeFlag" size="small">
<el-option v-for="item in dict.payType" :key="item.id" :label="item.displayName" :value="item.id" />
@ -1103,9 +1103,11 @@ export default {
//
getSummaries(param) {
const { columns, data } = param;
const sumCol = [1, 5] //
const sumCol = [1, 5,6] //
const sums = [];
console.log('columns, data',columns, data)
let count = this.dataTransOpts.tableM.register_check_asbitem.length
let pack = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { return e.isBelongGroupPackage == 'Y' }).length
@ -1128,36 +1130,31 @@ export default {
sums[index] = 0
data.forEach(e => {
if (!isNaN(e[column.property])) {
if (index == 1) {
// if (index == 1) {
// sums[index] += e[column.property] * e['amount']
// } else {
// sums[index] += e[column.property]
// }
if (index == 1) {
sums[index] += e[column.property] * e['amount']
} else {
}else if(index == 6){
if(e['payTypeFlag'] == '0') sums[index] += e['total']
}else{
sums[index] += e[column.property]
}
}
})
sums[index] = Math.round(sums[index] * 100) / 100 //+ ' ';
// const values = data.map(item => Number(item[column.property]));
// if (!values.every(value => isNaN(value))) {
// sums[index] = values.reduce((prev, curr) => {
// const value = Number(curr);
// if (!isNaN(value)) {
// //return prev + curr; //
// return prev + curr; //
// } else {
// return prev;
// }
// }, 0);
// sums[index] = sums[index].toFixed(2) + ' ';
// } else {
// sums[index] = 'N/A';
// }
});
this.totalStand = sums[1];
//console.log('this.totalFoucs/this.discountFoucs',this.totalFoucs,this.discountFoucs)
if (!this.totalFoucs) this.total = sums[5];
if (!this.discountFoucs) this.discount = Math.round(this.total * 10000 / this.totalStand) / 100;
return sums;
},

6
src/components/patientRegister/PatientRegisterList.vue

@ -2733,15 +2733,15 @@ export default {
if (e.guidePrintTimes.toString()) e.guidePrintTimes = e.guidePrintTimes > 0 ? '打印' : ''
if (e.isLock) e.isLock = e.isLock == 'Y' ? '锁住' : ''
if (e.sexId) e.sexId = dddw(this.dict.sex, "id", e.sexId, "displayName")
if (e.patientRegisterNo) e.patientRegisterNo = '&' + e.patientRegisterNo
if (e.patientNo) e.patientNo = '&' + e.patientNo
if (e.patientRegisterNo) e.patientRegisterNo = '\u200C' + e.patientRegisterNo
if (e.patientNo) e.patientNo = '\u200C' + e.patientNo
if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId === this.dict.personOrgId) {
e.groupPack = e.medicalPackageName // dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName")
} else if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId !== this.dict.personOrgId) {
e.groupPack = e.customerOrgGroupName // dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName")
}
//if (e.nationId) e.nationId = dddw(this.dict.nation, "id", e.nationId, "displayName")
if (e.idNo) e.idNo = e.idNo + '&'
if (e.idNo) e.idNo = '\u200C' + e.idNo
if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD")
//if (e.maritalStatusId) e.maritalStatusId = dddw(this.dict.maritalStatus, "id", e.maritalStatusId, "displayName")
if (e.medicalTypeId) e.medicalTypeId = dddw(this.dict.medicalType, "id", e.medicalTypeId, "displayName")

1
src/components/patientRegister/PatientRegisterRecoverList.vue

@ -4,6 +4,7 @@
<el-table :data="tableData" width="100%" border :height="window.pageHeight < 600 ? 330 : window.pageHeight - 240" row-key="id"
size="small" highlight-current-row ref="dataList" @selection-change="handleSelectionChange" @row-click="rowClick">
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="isRecoverGuide" label="回收" align="center" width="50" sortable>
<template slot-scope="scope">
<el-checkbox :value="scope.row.isRecoverGuide == 'Y'" />

Loading…
Cancel
Save