Browse Source

rydj

master
pengjun 2 years ago
parent
commit
f67e5dbb51
  1. 6
      package-lock.json
  2. 1
      package.json
  3. 77
      src/components/patientRegister/Camera.vue
  4. 577
      src/components/patientRegister/PatientRegisterEdit.vue
  5. 138
      src/components/patientRegister/PatientRegisterItem.vue
  6. 59
      src/components/patientRegister/PatientRegisterList.vue
  7. 28
      src/utlis/proFunc.js

6
package-lock.json

@ -10,6 +10,7 @@
"dependencies": {
"axios": "^1.3.3",
"core-js": "^3.8.3",
"crypto-js": "^4.1.1",
"element-ui": "^2.15.13",
"moment": "^2.29.4",
"sortable": "^2.0.0",
@ -4252,6 +4253,11 @@
"semver": "bin/semver"
}
},
"node_modules/crypto-js": {
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz",
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
},
"node_modules/css-declaration-sorter": {
"version": "6.3.1",
"resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",

1
package.json

@ -10,6 +10,7 @@
"dependencies": {
"axios": "^1.3.3",
"core-js": "^3.8.3",
"crypto-js": "^4.1.1",
"element-ui": "^2.15.13",
"moment": "^2.29.4",
"sortable": "^2.0.0",

77
src/components/patientRegister/Camera.vue

@ -1,22 +1,23 @@
<template>
<div>
<el-button type="primary" icon="el-icon-camera" @click="handleOpen">打开摄像头</el-button>
<el-button type="danger" icon="el-icon-camera" @click="closeCameraMask">关闭摄像头</el-button>
<el-button type="success" icon="el-icon-camera" @click="drawImage">拍照</el-button>
<el-button type="primary" icon="el-icon-check" @click="uploadPicture">保存</el-button>
<div style="margin-top: 10px; display: flex;" v-show="cameraOpen">
<div class="camera-left">
<!-- 这里就是摄像头显示的画面 -->
<video id="videoCamera" :width='videoWidth' :height='videoHeight'></video>
</div>
<div style="width: 100%;">
<div style="width: 100%;">
<el-button type="primary" icon="el-icon-camera" @click="handleOpen">打开摄像头</el-button>
<el-button type="danger" icon="el-icon-camera" @click="closeCameraMask">关闭摄像头</el-button>
<el-button type="success" icon="el-icon-camera" @click="drawImage">拍照</el-button>
<el-button type="primary" icon="el-icon-check" @click="uploadPicture">保存</el-button>
</div>
<div style="margin-top: 10px; width: 100%;display: flex;" v-show="cameraOpen">
<div class="camera-left">
<!-- 这里就是摄像头显示的画面 -->
<video id="videoCamera" :width='videoWidth' :height='videoHeight'></video>
</div>
<div style="margin-left: 10px;" >
<!-- 这里是点击拍照显示的图片画面 -->
<img v-if="imgSrc" :src="imgSrc" :style="'width:'+ videoWidth + ';height: '+ videoHeight" />
<canvas id="canvasCamera" class="canvas" :width='videoWidth' :height='videoHeight'
style="display: none;"></canvas>
</div>
<div style="margin-left: 10px;" >
<!-- 这里是点击拍照显示的图片画面 -->
<img v-if="imgSrc" :src="imgSrc" :style="'width:'+ videoWidth + ';height: '+ videoHeight" />
<canvas id="canvasCamera" class="canvas" :width='videoWidth' :height='videoHeight'
style="display: none;"></canvas>
</div>
</div>
</div>
@ -24,6 +25,7 @@
<script>
import { mapState } from 'vuex';
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import CryptoJS from "crypto-js"
export default {
name: "Index",
props:['id','patientId'],
@ -127,24 +129,47 @@ export default {
//
uploadPicture() {
//
let body = {
patientId:this.patientId,
photo:this.imgSrc
if(!this.imgSrc){
alert("请选拍照")
return
}
let uploadPhoto= {
patientRegisterId:this.id,
photo:this.imgSrc.split(',')[1]
}
console.log('imgSrc',this.imgSrc,)
this.patientRegister.photo = this.imgSrc
//id
putapi(`/api/app/patient-register?PatientRegisterId=${this.id}`, body)
//console.log('body',body)
this.patientRegister.photo = this.imgSrc
//id
postapi(`/api/app/patient-register/up-load-img`, uploadPhoto)
.then(
(res) => {
if(res.code == 1){
let body = {
patientRegisterId:this.id,
photo:res.data
}
console.log(body)
return postapi(`/api/app/patient-register/update-photo`, body)
}
}
)
.then(
(res) => {
if(res.code == 1){
this.$message.success("更新 操作成功");
this.closeCameraMask()
}
}
);
)
;
},
//
clearCanvas(id) {
let c = document.getElementById(id);

577
src/components/patientRegister/PatientRegisterEdit.vue

@ -1,288 +1,293 @@
<template>
<div style="display:flex">
<div>
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium">
<el-row>
<el-col :span="6">
<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>
</el-form-item>
</el-col>
<el-col :span="6">
<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-form-item label="档案号" prop="patientNo">
<el-input v-model="form.patientNo" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6" />
</el-row>
<el-row>
<el-col :span="6">
<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-form-item label="性别" prop="sexId">
<el-select v-model="form.sexId" placeholder="请选择">
<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-form-item>
</el-col>
<el-col :span="6" />
</el-row>
<el-row>
<el-col :span="6">
<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" placeholder="出生日期" style="width:135px;" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="婚姻状况" prop="maritalStatusId">
<el-select v-model="form.maritalStatusId" placeholder="请选择">
<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-row>
<el-row>
<el-col :span="6">
<el-form-item label="体检类别" prop="medicalTypeId">
<el-select v-model="form.medicalTypeId" placeholder="请选择" filterable>
<el-option v-for="item in dict.medicalType" :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="personnelTypeId">
<el-select v-model="form.personnelTypeId" placeholder="请选择" filterable>
<el-option v-for="item in dict.personnelType" :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="jobCardNo">
<el-input v-model="form.jobCardNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="体检卡号" prop="medicalCardNo">
<el-input v-model="form.medicalCardNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="职务" prop="jobPost">
<el-input v-model="form.jobPost"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<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" @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-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<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-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">
<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-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-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-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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="体检中心" prop="organizationUnitId">
<el-select v-model="form.organizationUnitId" placeholder="请选择" filterable>
<el-option v-for="item in dict.organization" :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="customerOrgGroupId">
<el-select v-model="form.customerOrgGroupId" placeholder="请选择" filterable clearable
:disabled="form.customerOrgId === dict.personOrgId ? true : false">
<el-option v-for="item in patientRegister.customerOrgGroup" :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="medicalPackageId">
<el-select v-model="form.medicalPackageId" placeholder="请选择" filterable clearable
:disabled="form.customerOrgId === dict.personOrgId ? false : true">
<el-option v-for="item in dict.medicalPackage" :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="completeFlag">
<el-select v-model="form.completeFlag" placeholder="请选择" disabled>
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="创建者">
<el-input v-model="form.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建时间">
<el-input :value="form.creationTime | dateFormat" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="修改者">
<el-input v-model="form.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="修改时间">
<el-input :value="form.lastModificationTime | dateFormat" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-image class="photo" :src="form.photo" style="width:150;height:200" >
<div slot="placeholder" class="image-slot">
加载中<span class="dot">...</span>
</div>
</el-image>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px;" width="120px">
<div class="btn">
<el-button @click="readIdCard">读身份证</el-button>
</div>
<div class="btn">
<el-button type="success" @click="Onsubmit('form')">保存</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="openCamera" icon="el-icon-camera">拍照</el-button>
<div>
<div style="width:60%;">
<div style="display:flex">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium">
<el-row>
<el-col :span="6">
<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>
</el-form-item>
</el-col>
<el-col :span="6">
<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-form-item label="档案号" prop="patientNo">
<el-input v-model="form.patientNo" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6" />
</el-row>
<el-row>
<el-col :span="6">
<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-form-item label="性别" prop="sexId">
<el-select v-model="form.sexId" placeholder="请选择">
<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-form-item>
</el-col>
<el-col :span="6" />
</el-row>
<el-row>
<el-col :span="6">
<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" placeholder="出生日期" style="width:135px;" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="婚姻状况" prop="maritalStatusId">
<el-select v-model="form.maritalStatusId" placeholder="请选择">
<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-row>
<el-row>
<el-col :span="6">
<el-form-item label="体检类别" prop="medicalTypeId">
<el-select v-model="form.medicalTypeId" placeholder="请选择" filterable>
<el-option v-for="item in dict.medicalType" :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="personnelTypeId">
<el-select v-model="form.personnelTypeId" placeholder="请选择" filterable>
<el-option v-for="item in dict.personnelType" :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="jobCardNo">
<el-input v-model="form.jobCardNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="体检卡号" prop="medicalCardNo">
<el-input v-model="form.medicalCardNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="职务" prop="jobPost">
<el-input v-model="form.jobPost"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<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" @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-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<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-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">
<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-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-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-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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="体检中心" prop="organizationUnitId">
<el-select v-model="form.organizationUnitId" placeholder="请选择" filterable>
<el-option v-for="item in dict.organization" :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="customerOrgGroupId">
<el-select v-model="form.customerOrgGroupId" placeholder="请选择" filterable clearable
:disabled="form.customerOrgId === dict.personOrgId ? true : false">
<el-option v-for="item in patientRegister.customerOrgGroup" :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="medicalPackageId">
<el-select v-model="form.medicalPackageId" placeholder="请选择" filterable clearable
:disabled="form.customerOrgId === dict.personOrgId ? false : true">
<el-option v-for="item in dict.medicalPackage" :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="completeFlag">
<el-select v-model="form.completeFlag" placeholder="请选择" disabled>
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="创建者">
<el-input v-model="form.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建时间">
<el-input :value="form.creationTime | dateFormat" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="修改者">
<el-input v-model="form.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="修改时间">
<el-input :value="form.lastModificationTime | dateFormat" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-image class="photo" :src="form.photo" style="width:150;height:200" >
<div slot="placeholder" class="image-slot">
加载中<span class="dot">...</span>
</div>
</el-image>
</div>
<div class="btn">
<el-button type="primary" @click="">申请单</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">打条码</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">打指引单</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">复制新增</el-button>
<!-- 按钮区域 -->
<div style="margin-left: 10px;display:flex;">
<div class="btn">
<el-button @click="readIdCard">读身份证</el-button>
</div>
<div class="btn">
<el-button type="success" @click="Onsubmit('form')">保存</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="openCamera" icon="el-icon-camera">拍照</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">申请单</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">打条码</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">打指引单</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="">复制新增</el-button>
</div>
</div>
</div>
<div style="width:40%">
<PatientRegisterItem/>
</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"
@ -323,7 +328,7 @@
</el-dialog>
<!-- 拍照 -->
<el-dialog title="拍照" :visible.sync="patientRegister.cameraVisble" width="400" height="800" :show-close="false" :append-to-body="true">
<Camera :id="form.id" :patientId="form.patientId"/>
<Camera :id="form.id"/>
</el-dialog>
</div>
</template>
@ -333,10 +338,12 @@ import moment from 'moment';
import { mapState } from 'vuex'
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { objCopy,setNull,dddw } from '../../utlis/proFunc'
import Camera from '../../components/patientRegister/Camera.vue'
import Camera from './Camera.vue'
import PatientRegisterItem from './PatientRegisterItem.vue'
export default {
components: {
Camera,
PatientRegisterItem,
},
data() {
return {
@ -617,13 +624,13 @@ export default {
</script>
<style scoped>
.btn {
margin-top: 10px;
margin-left: 10px;
}
.photo {
position: absolute;
top: 60px;
right: 150px;
right: 41%;
width: 150px;
height: 180px;
}</style>

138
src/components/patientRegister/PatientRegisterItem.vue

@ -0,0 +1,138 @@
<template>
<div>
</div>
</template>
<script>
import { getapi, postapi, putapi, deletapi } from "@/api/api";
export default {
data() {
return {
data:{
contactPerson:[]
},
form: {
displayName: "",
englishShortName: "",
itemTypeId: "",
price: "",
priceItemId: "",
unitId: "",
defaultResult: "",
referenceRangeTypeFlag: "",
isProduceSummary: "",
isNameIntoSummary: "",
isDiagnosisFunction: "",
diagnosisFunction: "",
isCalculationItem: "",
calculationFunction: "",
isContinueProcess: "",
resultTemplateTypeFlag: "",
inputCheck: "",
isActive: "",
},
dialogContactPerson: false, //
dialogContactMethod: false, //
formContactPerson: {
}, //form
formContactMethod: {
}, //form
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
englishShortName: [
{ required: true, message: "请输入英文缩写", trigger: "blur" },
],
itemTypeId: [
{ required: true, message: "请输入项目类别", trigger: "blur" },
],
price: [{ required: true, message: "请输入价格", trigger: "blur" }],
priceItemId: [
{ required: true, message: "请输入价表项目编码", trigger: "blur" },
],
unitId: [{ required: true, message: "请输入单位", trigger: "blur" }],
defaultResult: [
{ required: true, message: "请输入默认结果", trigger: "blur" },
],
referenceRangeTypeFlag: [
{ required: true, message: "请输入参考范围类别", trigger: "blur" },
],
isProduceSummary: [
{ required: true, message: "请选择是生成小结", trigger: "blur" },
],
isNameIntoSummary: [
{ required: true, message: "请输择称进入小结", trigger: "blur" },
],
isDiagnosisFunction: [
{ required: true, message: "请选择启用诊断函数", trigger: "blur" },
],
diagnosisFunction: [
{ required: true, message: "请输入诊断函数", trigger: "blur" },
],
isCalculationItem: [
{ required: true, message: "请选择计算项目", trigger: "blur" },
],
calculationFunction: [
{ required: true, message: "请输入计算函数", trigger: "blur" },
],
isContinueProcess: [
{ required: true, message: "请选择继续处理", trigger: "blur" },
],
resultTemplateTypeFlag: [
{
required: true,
message: "请输入结果模板类别标志",
trigger: "blur",
},
],
inputCheck: [
{ required: true, message: "请选择结果校验公式", trigger: "blur" },
],
isActive: [{ required: true, message: "请选择启用", trigger: "blur" }],
},
isshow: false,
};
},
created() {
},
//
mounted() {
},
methods: {
//
addContactPerson() {
this.$message.success("新增 addContactPerson");
},
editContactPerson() {
this.$message.success("编辑 editContactPerson");
},
delContactPerson() {
this.$message.success("删除 delContactPerson");
},
rowickContactPerson(){
this.$message.success("rowickContactPerson");
},
},
};
</script>
<style scoped>
</style>

59
src/components/patientRegister/PatientRegisterList.vue

@ -141,7 +141,7 @@
<el-button type="danger" @click="del">删除</el-button>
</div>
<div class="listBtn">
<el-button type="primary" @click="" icon="el-icon-camera">拍照</el-button>
<el-button type="primary" @click="openCamera" icon="el-icon-camera">拍照</el-button>
</div>
<div class="listBtn">
<el-button type="primary" @click="">健康档案</el-button>
@ -159,9 +159,13 @@
</div>
<!-- 体检人员登记 -->
<el-dialog :title="patientRegister.patientRegisterId ? '编辑' : '新增'" :visible.sync="dialogVisible" width="1000px">
<el-dialog :title="patientRegister.patientRegisterId ? '编辑' : '新增'" :visible.sync="dialogVisible" width="100%">
<PatientRegisterEdit />
</el-dialog>
<!-- 拍照 -->
<el-dialog title="拍照" :visible.sync="patientRegister.cameraVisble" width="400" height="800" :show-close="false" :append-to-body="true">
<Camera :id="patientRegister.patientRegisterId"/>
</el-dialog>
</div>
</template>
@ -169,12 +173,15 @@
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import PatientRegisterEdit from '../../components/patientRegister/PatientRegisterEdit.vue'
import { dddw, objCopy } from "@/utlis/proFunc";
import PatientRegisterEdit from '../../components/patientRegister/PatientRegisterEdit.vue'
import Camera from '../../components/patientRegister/Camera.vue'
export default {
components: {
PatientRegisterEdit
PatientRegisterEdit,
Camera,
},
data() {
return {
@ -231,7 +238,49 @@ export default {
this.dialogVisible = true
},
del() {
//
openCamera(){
if (!this.patientRegister.patientRegisterId) {
alert("请选择要操作的记录")
return
}
this.patientRegister.cameraVisble = true
},
//
// /api/app/patient-register/many?PatientRegisterIds=3a0c2cac-f44c-f407-9504-c1fc5e80a159&PatientRegisterIds=3a0c2cb3-d10c-ed70-db6a-b835e75ce641
del(){
if(this.multipleSelection.length < 1){
alert("请先勾选要操作的记录")
return
}
let patientRegisterIds=[]
for(let i = 0;i<this.multipleSelection.length ;i++){
patientRegisterIds.push(this.multipleSelection[i]['id'])
}
this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//console.log('{patientRegisterIds}',{patientRegisterIds})
return postapi(`/api/app/patient-register/delete-many`,{patientRegisterIds})
}).then(res => {
this.$message.success('删除成功')
this.patientRegister.query.times++
this.patientRegister.patientRegisterId = ''
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
//
delBak() {
if (!this.patientRegister.patientRegisterId) {
alert("请选择要操作的记录")
return

28
src/utlis/proFunc.js

@ -47,3 +47,31 @@ exports.setNull = (obj,arrayCols) => {
}
}
}
//将字符串转换成二进制形式,中间用空格隔开
exports.strToBinary=function(str) {
let result = [];
let list = str.split("");
for (var i = 0; i < list.length; i++) {
if (i != 0) {
result.push(" ");
}
let item = list[i];
let binaryStr = item.charCodeAt().toString(2);
result.push(binaryStr);
}
return result.join("");
}
//将二进制字符串转换成Unicode字符串
exports.binaryToStr=function(str) {
var result = [];
var list = str.split(" ");
for (var i = 0; i < list.length; i++) {
var item = list[i];
var asciiCode = parseInt(item, 2);
var charValue = String.fromCharCode(asciiCode);
result.push(charValue);
}
return result.join("");
};
Loading…
Cancel
Save