Browse Source

rydj0

master
pengjun 2 years ago
parent
commit
60773403dc
  1. 17
      src/api/request.js
  2. 3
      src/components/itemSet/ReferenceRange.vue
  3. 170
      src/components/patientRegister/Camera.vue
  4. 503
      src/components/patientRegister/PatientRegisterEdit.vue
  5. 30
      src/components/patientRegister/PatientRegisterList.vue
  6. 14
      src/components/patientRegister/patientRegisterQuery.vue
  7. 23
      src/store/index.js
  8. 6
      src/utlis/proFunc.js
  9. 54
      src/views/customerOrg/patientRegister.vue

17
src/api/request.js

@ -31,20 +31,11 @@ instance.interceptors.request.use(
//响应拦截
instance.interceptors.response.use(
(res) => {
//console.log(res);
if (res.data.code == 1) {
// const { data } = res;
console.log(9527);
console.log(res);
return res.data
} else if (res.Code == -1) {
// console.log(res.data.message);
// this.$message({
// message: res.data.message,
// type: 'warning'
// });
Message.error(res.Message);
console.log(res);
if(res.data.Code == -1) {
Message.error(res.data.Message);
}
return res.data
},
(err) => {
// console.log(err);

3
src/components/itemSet/ReferenceRange.vue

@ -53,7 +53,8 @@
<el-select v-model="form.forSexId" placeholder="请选择">
<el-option v-for="item in forSexId" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select> </el-form-item>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄下限" prop="ageLowerLimit">

170
src/components/patientRegister/Camera.vue

@ -0,0 +1,170 @@
<template>
<div>
<el-button @click="handleOpen">照相机拍照</el-button>
<div class="public-mask mask-grey-bg" v-show="cameraOpen">
<div class="mask-main camera-main">
<div class="mask-title">
<img src="../assets/images/icon_camera.png" class="title-icon" />
<span>照相机拍照</span>
<img src="../assets/images/icon_close.png" class="title-close" @click="closeCameraMask" />
</div>
<div class="camera-box">
<div class="camera-left">
<!-- 这里就是摄像头显示的画面 -->
<video id="videoCamera" width="100%" height="100%"></video>
</div>
<div class="camera-right">
<div class="camera-img-box">
<div class="small-img">
<!-- 这里是点击拍照显示的图片画面 -->
<img v-if="imgSrc" :src="imgSrc" style="width: 200px;height: 150px;" />
<canvas id="canvasCamera" class="canvas" :width='videoWidth' :height='videoHeight'
style="display: none;"></canvas>
</div>
<div>
<!-- 点击拍照和保存按钮 -->
<el-button type="primary" class="save-camera-btn" icon="el-icon-camera" @click="drawImage"
style="margin-top: 10px;">拍照</el-button>
<el-button type="primary" class="save-camera-btn" icon="el-icon-check"
@click="uploadPicture">保存</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "Index",
data() {
return {
/** 照相机弹窗模块-start */
cameraOpen: false,
imgSrc: undefined,
os: false,//
thisVideo: null,
thisContext: null,
thisCancas: null,
videoWidth: 800,
videoHeight: 600,
/** 照相机弹窗模块-end */
}
},
methods: {
/** 调用摄像头拍照-start*/
//
handleOpen() {
this.cameraOpen = true;
this.getCompetence();
},
//
getCompetence() {
//modelrenderdom,modeldom
this.$nextTick(() => {
const _this = this;
this.os = false;//
this.thisCancas = document.getElementById('canvasCamera');//canvasId
this.thisContext = this.thisCancas.getContext('2d');
this.thisVideo = document.getElementById('videoCamera');
// mediaDevices
if (navigator.mediaDevices === undefined) {
navigator.menavigatordiaDevices = {}
}
// mediaDevices
// 使getUserMedia
// getUserMedia
if (navigator.mediaDevices.getUserMedia === undefined) {
navigator.mediaDevices.getUserMedia = function (constraints) {
// getUserMedia()
let getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.getUserMedia;
//
//
if (!getUserMedia) {
return Promise.reject(new Error('getUserMedia is not implemented in this browser'))
}
// 使Promisenavigator.getUserMedia
return new Promise(function (resolve, reject) {
getUserMedia.call(navigator, constraints, resolve, reject)
})
}
}
const constraints = {
audio: false,
video: {width: _this.videoWidth, height: _this.videoHeight, transform: 'scaleX(-1)'}
};
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
// srcObject
if ('srcObject' in _this.thisVideo) {
_this.thisVideo.srcObject = stream
} else {
// 使
_this.thisVideo.src = window.URL.createObjectURL(stream)
}
_this.thisVideo.onloadedmetadata = function (e) {
_this.thisVideo.play()
}
}).catch(err => {
this.$notify({
title: '警告',
message: '没有开启摄像头权限或浏览器版本不兼容.',
type: 'warning'
});
});
});
},
//
drawImage() {
// canvas
this.thisContext.drawImage(this.thisVideo, 0, 0, this.videoWidth, this.videoHeight);
// base64url
this.imgSrc = this.thisCancas.toDataURL('image/png');
},
//
uploadPicture() {
//
},
//
clearCanvas(id) {
let c = document.getElementById(id);
let cxt = c.getContext("2d");
cxt.clearRect(0, 0, c.width, c.height);
},
//
resetCanvas() {
this.imgSrc = "";
this.clearCanvas('canvasCamera');
},
//
stopNavigator() {
if (this.thisVideo && this.thisVideo !== null) {
this.thisVideo.srcObject.getTracks()[0].stop();
this.os = true;//
}
},
//
closeCameraMask() {
this.cameraOpen = false; //
this.resetCanvas(); //
this.stopNavigator(); //
//this.getDetailList(); // List
},
/** 调用摄像头拍照-end*/
},
}
</script>
<style scoped>
.box {
display: flex;
}
.listBtn {
margin-top: 10px;
}</style>

503
src/components/patientRegister/PatientRegisterEdit.vue

@ -1,338 +1,427 @@
<template>
<div style="display:flex">
<div>
<el-form ref="form" :model="customerOrg.customerOrgRd" label-width="110px" :rules="rules" size="medium">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium">
<el-row>
<el-col :span="8">
<el-form-item label="单位名称" prop="displayName">
<el-input v-model="customerOrg.customerOrgRd.displayName"></el-input>
<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="8">
<el-form-item label="简称" prop="shortName">
<el-input v-model="customerOrg.customerOrgRd.shortName"></el-input>
<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="8">
<el-form-item label="发票抬头" prop="invoiceName">
<el-input v-model="customerOrg.customerOrgRd.invoiceName"></el-input>
<el-col :span="6">
<el-form-item label="档案号" prop="patientId">
<el-input v-model="form.patientId" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上级单位" prop="parentId">
<el-cascader v-model="customerOrg.customerOrgRd.parentId" :options="customerOrg.customerOrgTree" :props="{ checkStrictly: true ,expandTrigger: 'hover',...customerOrg.treeprops}"
:show-all-levels="false" clearable filterable>
</el-cascader>
<el-col :span="6" />
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="姓名" prop="patientName">
<el-input v-model="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="8">
<el-form-item label="联系电话" prop="telephone">
<el-input v-model="customerOrg.customerOrgRd.telephone"></el-input>
<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="请选择">
<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="8">
<el-form-item label="传真" prop="fax">
<el-input v-model="customerOrg.customerOrgRd.fax"></el-input>
<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="8">
<el-form-item label="邮政编码" prop="postalCode">
<el-input v-model="customerOrg.customerOrgRd.postalCode"></el-input>
<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="8">
<el-form-item label="地址" prop="address">
<el-input v-model="customerOrg.customerOrgRd.address"></el-input>
<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="8">
<el-form-item label="开户银行" prop="bank">
<el-input v-model="customerOrg.customerOrgRd.bank"></el-input>
<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="8">
<el-form-item label="银行账号" prop="accounts">
<el-input v-model="customerOrg.customerOrgRd.accounts"></el-input>
<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="8">
<el-form-item label="单位性质" prop="orgTypeId">
<el-select v-model="customerOrg.customerOrgRd.orgTypeId" placeholder="请选择" filterable>
<el-option v-for="item in data.customerOrgType" :key="item.id" :label="item.displayName" :value="item.id">
<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="8">
<el-form-item label="单位简码" prop="simpleCode">
<el-input v-model="customerOrg.customerOrgRd.simpleCode" placeholder="由系统自动生成" disabled></el-input>
<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="8">
<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="customerOrg.customerOrgRd.organizationUnitId" placeholder="请选择" filterable>
<el-option v-for="item in data.organizationdata" :key="item.id" :label="item.displayName" :value="item.id">
<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="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="customerOrg.customerOrgRd.remark"></el-input>
<el-col :span="6">
<el-form-item label="分组" prop="customerOrgGroupId">
<el-select v-model="form.customerOrgGroupId" placeholder="请选择" filterable clearable
:disabled="form.customerOrgId == '00000000-0000-0000-0000-000000000000' ? false : true">
<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="8">
<el-form-item label="加锁" prop="isLock">
<el-radio v-model="customerOrg.customerOrgRd.isLock" label="Y"></el-radio>
<el-radio v-model="customerOrg.customerOrgRd.isLock" label="N"></el-radio>
<el-col :span="6">
<el-form-item label="套餐" prop="medicalPackageId">
<el-select v-model="form.medicalPackageId" placeholder="请选择" filterable clearable
:disabled="form.customerOrgId == '00000000-0000-0000-0000-000000000000' ? true : false">
<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="8">
<el-form-item label="状态" prop="isActive">
<el-radio v-model="customerOrg.customerOrgRd.isActive" label="Y">启用</el-radio>
<el-radio v-model="customerOrg.customerOrgRd.isActive" label="N">停用</el-radio>
<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="8">
<el-form-item label="显示顺序" prop="displayOrder">
<el-input v-model="customerOrg.customerOrgRd.displayOrder"></el-input>
<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-divider/>
<el-row>
<el-col :span="5">
<el-col :span="6">
<el-form-item label="创建者">
<el-input v-model="customerOrg.customerOrgRd.creatorName" disabled></el-input>
<el-input v-model="form.creatorName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="创建时间" style="margin-left: -5%">
<el-input :value="customerOrg.customerOrgRd.creationTime | dateFormat" disabled style="width: 90%"></el-input>
<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="5">
<el-form-item label="修改者" style="margin-left: -25%">
<el-input v-model="customerOrg.customerOrgRd.creatorName" disabled></el-input>
<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="7">
<el-form-item label="修改时间" style="margin-left: -5%">
<el-input :value="customerOrg.customerOrgRd.lastModificationTime | dateFormat" disabled style="width: 90%"></el-input>
<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="https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg">
<div slot="placeholder" class="image-slot">
加载中<span class="dot">...</span>
</div>
</el-image>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px;" width="150px">
<div style="margin-left: 10px;" width="120px">
<div class="btn">
<el-button @click="" >读身份证</el-button>
<el-button @click="readIdCard">读身份证</el-button>
</div>
<div class="btn">
<el-button type="success" @click="Onsubmit('form')" >保存</el-button>
<el-button type="success" @click="Onsubmit('form')">保存</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="" >拍照</el-button>
<el-button type="primary" @click="">拍照</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="" >申请单</el-button>
<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>
<el-button type="primary" @click="">打指引单</el-button>
</div>
<div class="btn">
<el-button type="primary" @click="" >复制新增</el-button>
<el-button type="primary" @click="">复制新增</el-button>
</div>
</div>
</div>
</template>
<script>
import { mapState,mapMutations } from 'vuex'
import moment from 'moment';
import { mapState } from 'vuex'
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate } from '../../utlis/proFunc'
import { tcdate, objCopy } from '../../utlis/proFunc'
export default {
components: {
},
data() {
return {
data: {
data: {
organizationdata: [], //
customerOrgType:[], //
customerOrgType: [], //
},
pojo:{
displayName: "string",
shortName: "string",
invoiceName: "string",
parentId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
telephone: "string",
fax: "string",
postalCode: "string",
address: "string",
bank: "string",
accounts: "string",
orgTypeId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
remark: "string",
isLock: "N",
isActive: "Y",
organizationUnitId: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}, //
form: {
id: '', //id
patientId: '00000000-0000-0000-0000-000000000000', //ID 00000-0000...
customerOrgId: null, //
customerOrgGroupId: null, //
medicalPackageId: null,//
patientName: '', //
birthDate: '', // 2012-01-29
sexId: 'U', // U
age: null, //
jobCardNo: '', //
medicalCardNo: '', //
maritalStatusId: 'U', //
medicalTypeId: null, //
personnelTypeId: null, //
jobPost: '', //
jobTitle: '', //
photo: '', //
salesman: '', //
sexHormoneTermId: null, //
isNameHide: 'N', //
isPhoneFollow: 'N', //访
isVip: 'N', //vip
remark: '', //
isLock: 'N', //
completeFlag: '1', // 0:123
isMedicalStart: 'N', //
patientRegisterNo: '', //
medicalTimes: 1, //
organizationUnitId: null //
}, //
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
shortName: [
{ required: true, message: "请输入简写", trigger: "blur" },
],
orgTypeId:[
{ required: true, message: "请输入单位性质"},
],
organizationUnitId: [
{ required: true, message: "请输入体检中心", trigger: "blur" },
],
displayOrder: [
{ required: true, message: "请输入显示顺序", trigger: "blur" },
patientName: [
{ required: true, message: "请输入姓名", trigger: "blur" },
],
},
isshow: false,
};
},
created() {
},
//
mounted() {
//
this.getoraniztion();
//
this.getOrgType()
//
//console.log('mounted this.patientRegister.patientRegisterRd',this.patientRegister.patientRegisterRd)
objCopy(this.patientRegister.patientRegisterRd, this.form)
//console.log('mounted this.form',this.form)
},
computed:{
...mapState(['customerOrg']),
computed: {
...mapState(['dict', 'patientRegister', 'customerOrg']),
},
methods: {
...mapMutations(['setData']),
//
getoraniztion() {
getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
(res) => {
this.data.organizationdata = res.data;
}
);
readIdCard() {
console.log('this.form1', this.form)
},
//
getOrgType() {
getapi("/api/app/customer-org-type/in-filter").then((res) => {
this.data.customerOrgType = res.data.items;
});
},
//
getCustomerOrgTree(){
getapi("/api/app/customer-org/by-code-all").then(
(res) => {
//customerOrgTree = res.data;
console.log('res.data',res.data)
this.setData({ key: 'customerOrg.customerOrgTree', value: res.data})
tcdate(this.customerOrg.customerOrgTree)
}
);
},
//
Onsubmit(formName) {
console.log('vuex data',this.customerOrg.customerOrgRd)
let vpojo = this.customerOrg.customerOrgRd
this.$refs[formName].validate((valid) => {
if (valid) {
//
this.pojo = {
displayName: vpojo.displayName,
shortName: vpojo.shortName,
invoiceName: vpojo.invoiceName,
parentId: vpojo.parentId,
telephone: vpojo.telephone,
fax: vpojo.fax,
postalCode: vpojo.postalCode,
address: vpojo.address,
bank: vpojo.bank,
accounts: vpojo.accounts,
orgTypeId: vpojo.orgTypeId,
remark: vpojo.remark,
isLock: vpojo.isLock,
isActive: vpojo.isActive,
organizationUnitId: vpojo.organizationUnitId
}
console.log('pojo',this.pojo)
if(this.customerOrg.customerOrgRd.id.length < 1){
//id
postapi(`/api/app/customer-org`, this.pojo).then(
(res) => {
this.$message.success("创健 操作成功");
this.setData({ key: 'customerOrg.customerOrgRd', value: res})
this.customerOrg.customerOrgId = res.id
this.getCustomerOrgTree()
if (valid) {
//
let body = {...this.form}
}
);
delete body.id
delete body.patientRegisterNo
delete body.medicalTimes
delete body.completeFlag
delete body.isMedicalStart
}else{
//id
putapi(`/api/app/customer-org/${this.customerOrg.customerOrgRd.id}`, this.pojo).then(
(res) => {
this.$message.success("更新 操作成功");
this.getCustomerOrgTree()
delete body.customerOrgGroupId
delete body.medicalPackageId
//
console.log('body.birthDate',body.birthDate)
if(body.birthDate){
body.birthDate = moment(new Date(body.birthDate)).format('yyyy-MM-DD')
}
console.log('body.birthDate',body.birthDate)
//moment(pub.dateAddSeconds(new Date('2022-12-09T02:39:33.983Z'),60*60)).format('yyyyMMDDHHmmssSSS')
console.log('this.form.id',this.form.id)
console.log('body',body)
if (this.form.id.length < 1) {
//id
postapi(`/api/app/patient-register`, body).then(
(res) => {
if(res.code == 1){
this.$message.success("创健 操作成功");
this.patientRegister.patientRegisterId = res.id
this.patientRegister.patientRegisterRd = res
}
);
}
}
);
} else {
alert('未通过数据校验');
return false;
//id
putapi(`/api/app/patient-register/${this.form.id}`, body).then(
(res) => {
this.$message.success("更新 操作成功");
objCopy(this.patientRegister.patientRegisterRd,this.form)
}
);
}
});
} else {
alert('未通过数据校验');
return false;
}
});
},
//
add() {
this.customerOrg.customerOrgId = ''
this.customerOrg.customerOrgRd = {id:'',isLock: 'N',
isActive: 'Y'}
this.customerOrg.customerOrgRd = {
id: '', isLock: 'N',
isActive: 'Y'
}
},
//
del(){
del() {
deletapi(`/api/app/customer-org/${this.customerOrg.customerOrgRd.id}`).then(
(res) => {
this.$message.success("删除 操作成功");
this.setData({ key: 'customerOrg.customerOrgRd', value:{id:''}})
this.getCustomerOrgTree()
this.$message.success("删除 操作成功");
this.setData({ key: 'customerOrg.customerOrgRd', value: { id: '' } })
this.getCustomerOrgTree()
}
);
}
},
//
watch: {
'patientRegister.patientRegisterRd.customerOrgId'(newVal, oldVal) {
if (newVal != oldVal) {
//console.log('patientRegister.patientRegisterRd.customerOrgId',this.patientRegister.patientRegisterRd.customerOrgId)
objCopy(this.patientRegister.patientRegisterRd, this.form)
}
},
'patientRegister.patientRegisterRd.id'(newVal, oldVal) {
if (newVal != oldVal) {
//console.log('patientRegister.patientRegisterRd.customerOrgId',this.patientRegister.patientRegisterRd.customerOrgId)
objCopy(this.patientRegister.patientRegisterRd, this.form)
}
},
},
};
</script>
<style scoped>
.btn {
margin-top: 10px;
}
</style>
.photo {
position: absolute;
top: 60px;
right: 150px;
width: 150px;
height: 180px;
}</style>

30
src/components/patientRegister/PatientRegisterList.vue

@ -57,10 +57,18 @@
<el-dialog
:title="patientRegister.patientRegisterId ? '编辑':'新增'"
:visible.sync="dialogVisible"
width="80%"
width="1000px"
>
<PatientRegisterEdit :patientRegisterRd="patientRegisterRd"/>
<PatientRegisterEdit :id="this.patientRegister.patientRegisterId" :customerOrgId="this.patientRegister.query.customerOrgId"/>
</el-dialog>
<el-dialog :visible.sync="dialogCamera"
width="1000px">
</el-dialog>
</div>
</template>
<script>
@ -75,7 +83,7 @@ export default {
return {
dataList:[],//
dialogVisible:false,
patientRegisterRd:{},//
dialogCamera:false,
};
},
@ -86,19 +94,29 @@ export default {
},
computed:{
...mapState(['patientRegister']),
...mapState(['dict','patientRegister','customerOrg']),
},
methods: {
//
rowick(row) {
this.patientRegister.patientRegisterId = row.id
this.patientRegisterRd = row
this.patientRegister.patientRegisterRd = row
},
//
add() {
let customerOrgId = this.patientRegister.query.customerOrgId
if(!customerOrgId){
alert("请选择单位或个人")
return
}
//console.log('customerOrgId',customerOrgId)
this.patientRegister.patientRegisterId = ''
this.patientRegisterRd = {customerOrgId:this.patientRegister.query.customerOrgId}
this.patientRegister.patientRegisterRd = {
id:'', //ID
customerOrgId:this.patientRegister.query.customerOrgId, //ID
}
//console.log('add',this.patientRegister.patientRegisterRd)
this.dialogVisible = true
},

14
src/components/patientRegister/patientRegisterQuery.vue

@ -28,13 +28,21 @@
</div>
<div class="query">
<span>性别</span>
<el-input placeholder="性别" v-model="patientRegister.query.sex" size="small" clearable style="width:80px;"/>
<el-select v-model="patientRegister.query.sex" placeholder="请选择" style="width:80px;">
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</div>
<div class="query">
<span>身份证号</span>
<el-input placeholder="身份证号" v-model="patientRegister.query.idCardNo" size="small" clearable style="width:200px;"/>
</div>
<div class="query">
<span>单位信息</span>
<el-cascader v-model="patientRegister.query.customerOrgId" :options="patientRegister.customerOrgTreeAll" :props="{ checkStrictly: true ,expandTrigger: 'hover',...customerOrg.treeprops}"
:show-all-levels="false" disabled>
</el-cascader>
</div>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 5px;">
@ -96,7 +104,7 @@ export default {
},
computed: {
...mapState(["patientRegister"]),
...mapState(['dict','patientRegister','customerOrg']),
},
methods: {

23
src/store/index.js

@ -24,16 +24,31 @@ export default new Vuex.Store({
personnelgrouping:[], //人员分组
},
patientRegister:{//人员登记
//体检人员登记 add by pengjun
patientRegister:{
customerOrgTreeAll: [], //体检单位列表(含个人)
patientRegisterId:'', //当前单位ID(可根据此值是否为空,判断是新增还是编辑)
patientRegisterId:'', //当前单位ID(可根据此值是否为空,判断是新增还是编辑)
patientRegisterRd:{}, //体检人员记录
query:{
times:0, //触发查询次数
customerOrgId:'', //体检单位ID
},//查询条件
}
customerOrgGroup:[], //分组(针对单位)
},
//公共字典数据 add by pengjun
dict:{
organization:[], //体检中心
sex:[], //性别
medicalType:[], //体检类别
maritalStatus:[],//婚姻状况
sexHormoneTerm:[],//性激素期
completeFlag:[ //体检完成标志
{id:'0',displayName:'预登记'},{id:'1',displayName:'正式登记'},{id:'2',displayName:'部份已检'},{id:'3',displayName:'已总检'},
],
medicalPackage:[], //套餐
},
},
getters: {},

6
src/utlis/proFunc.js

@ -12,8 +12,10 @@ exports.tcdate = (date) => {
//json 对像赋值 只从 from 对象 赋值 to 中有的 key 项 add by pengjun
exports.objCopy = (from,to) => {
for(let key in to){
to[key] = from[key]
for(let key in to){
if(from[key] !== undefined){
to[key] = from[key]
}
}
}

54
src/views/customerOrg/patientRegister.vue

@ -29,6 +29,9 @@
</template>
<script>
import { mapState } from 'vuex'
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import CustomerOrgTreeAll from '../../components/patientRegister/customerOrgTreeAll.vue'
import PatientRegisterQuery from '../../components/patientRegister/patientRegisterQuery.vue'
import PatientRegisterList from '../../components/patientRegister/PatientRegisterList.vue'
@ -53,14 +56,59 @@ export default {
//
mounted() {
this.dictInit()
},
computed:{
...mapState(['dict','patientRegister','customerOrg'])
},
methods: {
//
dictInit(){
//
getapi("/api/app/sex").then((res) => {
this.dict.sex = res.data;
});
//
getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
(res) => {
this.dict.organization = res.data;
}
);
//
getapi("/api/app/medical-type/in-filter").then(
(res) => {
this.dict.medicalType = res.data.items;
}
);
//
getapi("/api/app/marital-statuses").then(
(res) => {
this.dict.maritalStatus = res.data.items;
}
);
//
getapi("/api/app/sex-hormone-term/in-filter").then(
(res) => {
this.dict.sexHormoneTerm = res.data.items;
}
);
//
getapi("/api/app/medical-package/in-filter").then(
(res) => {
this.dict.medicalPackage = res.data.items;
}
);
console.log('dict',this.dict)
}
},
};
</script>

Loading…
Cancel
Save