pengjun 2 years ago
parent
commit
2214a35e57
  1. 267
      src/components/patientRegister/PatientRegisterEdit.vue
  2. 54
      src/components/patientRegister/PatientRegisterItem.vue
  3. 4
      src/components/patientRegister/PatientRegisterList.vue

267
src/components/patientRegister/PatientRegisterEdit.vue

@ -1,204 +1,224 @@
<template>
<div>
<div style="display: flex">
</div>
<table>
<td style="width: 60%">
<div style="display: flex">
<div :style="'width:'+(window.pageWidth - 120 - 30 )+'px;'">
<div>
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium">
<el-row>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="单位名称" prop="customerOrgId">
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" :props="{
checkStrictly: true,
expandTrigger: 'hover',
...customerOrg.treeprops,
}" :show-all-levels="false" disabled>
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'"
:props="{checkStrictly: true,expandTrigger: 'hover',...customerOrg.treeprops,}" :show-all-levels="false" disabled>
</el-cascader>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="条码号" prop="patientRegisterNo">
<el-input v-model="form.patientRegisterNo" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="档案号" prop="patientNo">
<el-input v-model="form.patientNo" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6" />
<el-col :span="5">
<el-form-item label="体检次数" prop="medicalTimes">
<el-input v-model="form.medicalTimes" disabled ></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="姓名" prop="patientName">
<el-input v-model="form.patientName" @blur="query(form.patientName)"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="性别" prop="sexId">
<el-select v-model="form.sexId" placeholder="请选择">
<el-select v-model="form.sexId" placeholder="请选择"
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'" >
<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="6">
<el-form-item label="体检次数" prop="medicalTimes">
<el-input v-model="form.medicalTimes" disabled></el-input>
<el-col :span="5">
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker v-model="form.birthDate" type="date" value-format="yyyy-MM-dd" placeholder="出生日期"
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'"
@change="changeBirthDate" prefix-icon=""/>
</el-form-item>
</el-col>
<el-col :span="6" />
</el-row>
<el-row>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker v-model="form.birthDate" type="date" value-format="yyyy-MM-dd" placeholder="出生日期"
style="width: 135px" @change="changeBirthDate" />
<el-col :span="4" />
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="身份证号" prop="idNo">
<el-input v-model="form.idNo" @change="changeIdNo" @blur="query(form.idNo)"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="手机号" prop="mobileTelephone">
<el-input v-model="form.mobileTelephone"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="电话" prop="telephone">
<el-input v-model="form.telephone"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="婚姻状况" prop="maritalStatusId">
<el-select v-model="form.maritalStatusId" placeholder="请选择">
<el-select v-model="form.maritalStatusId" placeholder="请选择"
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'" >
<el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" />
<el-col :span="4" />
</el-row>
<el-row>
<el-col :span="6">
<el-col :span="10">
<el-form-item label="地址" prop="address">
<el-input v-model="form.address"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="邮政编码" prop="postalCode">
<el-input v-model="form.postalCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="4"/>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="民族" prop="nationId">
<el-select v-model="form.nationId" placeholder="请选择" filterable
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'" >
<el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="籍惯" prop="nationId">
<el-select v-model="form.nationId" placeholder="请选择" filterable
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'" >
<el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="体检类别" prop="medicalTypeId">
<el-select v-model="form.medicalTypeId" placeholder="请选择" filterable>
<el-select v-model="form.medicalTypeId" placeholder="请选择" filterable
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'" >
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="人员类别" prop="personnelTypeId">
<el-select v-model="form.personnelTypeId" placeholder="请选择" filterable>
<el-select v-model="form.personnelTypeId" placeholder="请选择" filterable
:style="'width:'+ Math.floor((window.pageWidth - 530)/ 4.8)+'px;'" >
<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="6">
<el-col :span="4">
<el-form-item label="性激素期" prop="sexHormoneTermId">
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable
:style="'width:'+ Math.floor((window.pageWidth - 630)/6)+'px;'" >
<el-option v-for="item in dict.sexHormoneTerm" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="工卡号" prop="jobCardNo">
<el-input v-model="form.jobCardNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="体检卡号" prop="medicalCardNo">
<el-input v-model="form.medicalCardNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="职务" prop="jobPost">
<el-input v-model="form.jobPost"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="职称" prop="jobTitle">
<el-input v-model="form.jobTitle"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="身份证号" prop="idNo">
<el-input v-model="form.idNo" @change="changeIdNo" @blur="query(form.idNo)"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="地址" prop="address">
<el-input v-model="form.address"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="邮政编码" prop="postalCode">
<el-input v-model="form.postalCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="电话" prop="telephone">
<el-input v-model="form.telephone"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="手机号" prop="mobileTelephone">
<el-input v-model="form.mobileTelephone"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="民族" prop="nationId">
<el-select v-model="form.nationId" placeholder="请选择" filterable>
<el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="4">
<el-form-item label="介绍人" prop="salesman">
<el-input v-model="form.salesman"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="性激素期" prop="sexHormoneTermId">
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable>
<el-option v-for="item in dict.sexHormoneTerm" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="是否VIP" prop="isVip">
<el-radio v-model="form.isVip" label="Y"></el-radio>
<el-radio v-model="form.isVip" label="N"></el-radio>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" style="margin-bottom: -15px; line-height: 40px">
<el-col :span="5" style="margin-bottom: -15px; line-height: 40px">
<el-form-item label="电话随访" prop="isPhoneFollow">
<el-radio v-model="form.isPhoneFollow" label="Y"></el-radio>
<el-radio v-model="form.isPhoneFollow" label="N"></el-radio>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="隐藏姓名" prop="isNameHide">
<el-radio v-model="form.isNameHide" label="Y"></el-radio>
<el-radio v-model="form.isNameHide" label="N"></el-radio>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="5">
<el-form-item label="是否锁住" prop="isLock">
<el-radio v-model="form.isLock" label="Y"></el-radio>
<el-radio v-model="form.isLock" label="N"></el-radio>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="4">
<el-form-item label="体检开始" prop="isMedicalStart">
<el-radio v-model="form.isMedicalStart" label="Y" disabled></el-radio>
<el-radio v-model="form.isMedicalStart" label="N" disabled></el-radio>
<el-select v-model="form.isMedicalStart" placeholder="请选择" disabled
:style="'width:'+ Math.floor((window.pageWidth - 630)/6)+'px;'" >
<el-option label="是" value="Y" />
<el-option label="否" value="N" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="体检中心" prop="organizationUnitId">
<el-select v-model="form.organizationUnitId" placeholder="请选择" filterable>
<el-select v-model="form.organizationUnitId" placeholder="请选择" filterable
:style="'width:'+ Math.floor((window.pageWidth - 470)/4)+'px;'" >
<el-option v-for="item in dict.organization" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
@ -208,8 +228,8 @@
<el-col :span="6">
<el-form-item label="分组" prop="customerOrgGroupId">
<el-select v-model="form.customerOrgGroupId" placeholder="请选择" filterable clearable
@change="changeCustomerOrgGroupId" :disabled="form.customerOrgId === dict.personOrgId ? true : false
">
@change="changeCustomerOrgGroupId" :disabled="form.customerOrgId === dict.personOrgId ? true : false"
:style="'width:'+ Math.floor((window.pageWidth - 470)/4)+'px;'">
<el-option v-for="item in patientRegister.customerOrgGroup" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
@ -218,8 +238,8 @@
<el-col :span="6">
<el-form-item label="套餐" prop="medicalPackageId">
<el-select v-model="form.medicalPackageId" placeholder="请选择" filterable clearable
@change="changeMedicalPackageId" :disabled="form.customerOrgId === dict.personOrgId ? false : true
">
@change="changeMedicalPackageId" :disabled="form.customerOrgId === dict.personOrgId ? false : true"
:style="'width:'+ Math.floor((window.pageWidth - 470)/4)+'px;'">
<el-option v-for="item in dict.medicalPackage" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
@ -227,7 +247,8 @@
</el-col>
<el-col :span="6">
<el-form-item label="完成标志" prop="completeFlag">
<el-select v-model="form.completeFlag" placeholder="请选择" disabled>
<el-select v-model="form.completeFlag" placeholder="请选择" disabled
:style="'width:'+ Math.floor((window.pageWidth - 470)/4)+'px;'">
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
@ -236,7 +257,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" :rows="2" placeholder="请输入备注"></el-input>
<el-input v-model="form.remark" type="textarea" :rows="1" placeholder="请输入备注"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -269,24 +290,26 @@
</el-col>
</el-row>
</el-form>
<el-image class="photo" :src="form.photo? (apiurl + '/' + form.photo):''"
style="width: 150; height: 200">
<el-image :style="'position: absolute;top:65px;right:'+(110 + Math.floor((window.pageWidth - 360)/25))+'px; width: 150px; height: 160px;'"
:src="form.photo? (apiurl + '/' + form.photo):''">
<div slot="placeholder" class="image-slot">
加载中<span class="dot">...</span>
</div>
</el-image>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px; display: flex; margin-top: 10px">
<div>
<PatientRegisterItem :patientRegisterForm="form" />
</div>
</div>
<div style="margin-left: 10px;width:110px;">
<div class="btn">
<el-button @click="readIdCard" class="btnClass">读身份证</el-button>
<el-button type="primary" class="btnClass" @click="openCamera" icon="el-icon-camera">拍照</el-button>
</div>
<div class="btn">
<el-button type="success" class="btnClass" @click="Onsubmit('form')">保存</el-button>
<el-button @click="readIdCard" class="btnClass">读身份证</el-button>
</div>
<div class="btn">
<el-button type="primary" class="btnClass" @click="openCamera" icon="el-icon-camera">拍照</el-button>
<el-button type="success" class="btnClass" @click="Onsubmit('form')">保存</el-button>
</div>
<div class="btn">
<el-button type="primary" class="btnClass">申请单</el-button>
@ -301,11 +324,8 @@
<el-button type="primary" class="btnClass">复制新增</el-button>
</div>
</div>
</td>
<td style="width: 40%">
<PatientRegisterItem :patientRegisterForm="form" />
</td>
</table>
</div>
<!-- 人员档案列表 -->
<el-dialog title="人员档案列表" :visible.sync="dialogVisible" width="800" :append-to-body="true">
<el-table :data="patientList" border width="800" height="480" row-key="id" size="small"
@ -464,7 +484,7 @@ export default {
},
computed: {
...mapState(["dict", "patientRegister", "customerOrg"]),
...mapState(["window","dict", "patientRegister", "customerOrg"]),
},
methods: {
readIdCard() {
@ -673,7 +693,7 @@ export default {
}
.btn {
margin-left: 10px;
margin-top: 10px;
}
.btnClass {
@ -682,8 +702,8 @@ export default {
.photo {
position: absolute;
top: 100px;
right: 42%;
top: 65px;
right: 150px;
/* width: 150px;
height: 150px; */
width: 150px;
@ -693,4 +713,9 @@ export default {
::v-deep .el-table--small .el-table__cell {
padding: 0px 0;
}
::v-deep .el-input__inner {
text-align: left;
padding-left: 5px;
padding-right: 15px;
}
</style>

54
src/components/patientRegister/PatientRegisterItem.vue

@ -1,18 +1,21 @@
<template>
<div style="margin-left: 10px">
<div style="display: flex; margin-left: 10px; margin-top: 20px;">
<div style="width:230px;">
<div>
<span>项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds"
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" style="margin-left: 3px;width:160px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :show-all-levels="false"
clearable filterable @change="getAsbItemByItemType">
clearable filterable @change="getAsbItemByItemType" size="small">
</el-cascader>
</div>
<div class="mainareaBox">
<el-table :header-cell-style="{ background: '#eef1f6' }" :data="dict.asbItem" height="200"
<el-table :header-cell-style="{ background: '#eef1f6' }" :data="dict.asbItem" :height="(window.pageHeight>735 ? (window.pageHeight - 537):198)"
@selection-change="handleSelectionChange" size="small">
<el-table-column type="selection" />
<el-table-column prop="displayName" label="未选组合项目" width="120"/>
<!--
<el-table-column prop="price" label="标准价格" width="70">
<template slot-scope="scope">
<div style="text-align: center;">{{ scope.row.price }}</div>
@ -23,35 +26,41 @@
<div style="text-align: center;">{{ ldddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}</div>
</template>
</el-table-column>
-->
</el-table>
</div>
</div>
<div class="mainbutton">
<div style="width:100px;margin-top: 70px;">
<div class="btnList">
<el-button type="primary" @click="addAbs(asbItemChoosed)">添加 <i class="el-icon-bottom"></i>
<el-button type="primary" @click="addAbs(asbItemChoosed)">添加 <i class="el-icon-right"></i>
</el-button>
</div>
<div class="btnList">
<el-button type="primary" @click="delAbs">移除 <i class="el-icon-top"></i>
<el-button type="primary" @click="delAbs">移除 <i class="el-icon-back"></i>
</el-button>
</div>
<div class="btnList">
<el-button type="success" @click="onSubmit('保存')">保存 <i class="el-icon-check"></i>
</el-button>
</div>
<div class="btnList">
</div>
<div :style="'width:'+(window.pageWidth - 120 - 30 - 230 - 100)+'px;'">
<div style="display: flex;">
<div class="disTotal">
<el-tooltip class="item" effect="dark" content="根据输入的折扣,自动计算折后总价" placement="top">
<span>折扣 </span>
</el-tooltip>
<el-input style="width:55px;" v-model="discount" size="small" @input="changeAllDiscount" type="number"/>
</div>
<div class="btnList">
<div class="disTotal">
<el-tooltip class="item" effect="dark" content="总金额即该人员此次体检实收金额,并根据此金额自动计算折扣" placement="top">
<span>总金额 </span>
</el-tooltip>
<el-input style="width:70px;" v-model="total" size="small" @input="changeTotal" type="number"/>
</div>
<div class="btnList">
<div class="disTotal">
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small"
filterable clearable @change="quickChoosedAsb" style="width:150px;text-align: left;padding-right: 15px;">
<el-option v-for="item in dict.asbItemQuick" :key="item.id" :value="item.id"
@ -59,9 +68,10 @@
</el-select>
</div>
</div>
<div class="mainareaBox">
<el-table :data="patientRegister.patientRegisterAbs" height="200" :summary-method="getSummaries" show-summary
<el-table :data="patientRegister.patientRegisterAbs"
:height="(window.pageHeight>735 ? (window.pageHeight - 537):198)" width="100%"
:summary-method="getSummaries" show-summary
@selection-change="selecteditems" size="small">
<!-- temporaryselection personnelUnit.nogroupselected-->
<el-table-column type="selection"/>
@ -95,6 +105,8 @@
</el-table>
</div>
</div>
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
@ -133,7 +145,7 @@ export default {
};
},
computed: {
...mapState(["dict", "customerOrg", "patientRegister", "personnelUnit"]),
...mapState(["window","dict", "customerOrg", "patientRegister", "personnelUnit"]),
},
mounted() { },
@ -757,18 +769,17 @@ export default {
<style lang="scss" scoped>
.mainareaBox {
border: 1px solid #000;
height: 200px;
margin-top: 10px;
height: v-bind("(window.pageHeight>735 ? (window.pageHeight - 535):200) + 'px'");
margin-top: 5px;
}
.mainbutton {
display: flex;
margin-left: 5px;
padding: 5px 10px;
margin-top: 10px;
}
.btnList{
margin-top: 5px;
margin-left: 5px;
margin-right: 5px;
}
.disTotal{
margin-left: 10px;
}
::v-deep .el-input__inner {
@ -776,6 +787,7 @@ export default {
padding-left: 1px;
padding-right: 1px;
}
::v-deep .el-table th.el-table__cell{
text-align: center;
padding-left: 1px;

4
src/components/patientRegister/PatientRegisterList.vue

@ -171,8 +171,8 @@
</div>
<!-- 体检人员登记 -->
<el-dialog :title="patientRegister.patientRegisterId ? '编辑' : '新增'" :visible.sync="dialogVisible"
:close-on-click-modal="false" width="100%">
<el-dialog :title="patientRegister.patientRegisterId ? '体检人员--编辑' : '体检人员--新增'" :visible.sync="dialogVisible"
:close-on-click-modal="false" fullscreen>
<PatientRegisterEdit :formInitData="formInitData" :editTimes="editTimes"/>
</el-dialog>

Loading…
Cancel
Save