pengjun 2 years ago
parent
commit
15ebebecf7
  1. 6
      src/assets/css/global_input.css
  2. 54
      src/components/doctorCheck/PatientRegisterBase.vue
  3. 86
      src/components/patientRegister/PatientRegisterEdit.vue
  4. 11
      src/components/patientRegister/PatientRegisterForChoose.vue
  5. 174
      src/components/patientRegister/PatientRegisterItem.vue
  6. 2
      src/components/patientRegister/PatientRegisterList.vue
  7. 2
      src/components/patientRegister/patientRegisterAsbItem.vue
  8. 2
      src/store/index.js
  9. 3
      src/utlis/proFunc.js

6
src/assets/css/global_input.css

@ -7,6 +7,12 @@
/* 原始 默认 25 */ /* 原始 默认 25 */
} }
.el-input.is-disabled .el-input__inner {
color: #606060;
}
.el-textarea.is-disabled .el-textarea__inner {
color: #606060;
}
/* 带前标 输入框 左间距 */ /* 带前标 输入框 左间距 */

54
src/components/doctorCheck/PatientRegisterBase.vue

@ -15,9 +15,12 @@
</div> </div>
<div> <div>
<span class="query">性别</span> <span class="query">性别</span>
<!--
<el-select v-model="prBase.sexId" style="width: 80px;" size="small" disabled> <el-select v-model="prBase.sexId" style="width: 80px;" size="small" disabled>
<el-option v-for="item in dict.sex" :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-select> </el-select>
-->
<el-input v-model="prBase.sexName" size="small" style="width: 80px;" disabled />
</div> </div>
<div> <div>
<span class="query">体检次数</span> <span class="query">体检次数</span>
@ -25,9 +28,12 @@
</div> </div>
<div> <div>
<span class="query">婚姻</span> <span class="query">婚姻</span>
<!--
<el-select v-model="prBase.maritalStatusId" style="width: 80px;" size="small" disabled> <el-select v-model="prBase.maritalStatusId" style="width: 80px;" size="small" disabled>
<el-option v-for="item in dict.maritalStatus" :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-select> </el-select>
-->
<el-input v-model="prBase.maritalStatusName" size="small" style="width: 80px;" disabled />
</div> </div>
<div> <div>
<span class="query">体检日期</span> <span class="query">体检日期</span>
@ -44,21 +50,30 @@
</div> </div>
<div> <div>
<span class="query">体检类别</span> <span class="query">体检类别</span>
<!--
<el-select v-model="prBase.medicalTypeId" disabled style="width: 100px;" size="small"> <el-select v-model="prBase.medicalTypeId" disabled style="width: 100px;" size="small">
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" /> <el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select> </el-select>
-->
<el-input :value="prBase.medicalTypeName" style="width: 100px;" size="small" disabled />
</div> </div>
<div> <div>
<span class="query">人员类别</span> <span class="query">人员类别</span>
<!--
<el-select v-model="prBase.personnelTypeId" disabled style="width: 100px;" size="small"> <el-select v-model="prBase.personnelTypeId" disabled style="width: 100px;" size="small">
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName" :value="item.id" /> <el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select> </el-select>
-->
<el-input :value="prBase.personnelTypeName" style="width: 100px;" size="small" disabled />
</div> </div>
<div> <div>
<span class="query">民族</span> <span class="query">民族</span>
<!--
<el-select v-model="prBase.nationId" disabled style="width: 100px;" size="small"> <el-select v-model="prBase.nationId" disabled style="width: 100px;" size="small">
<el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" /> <el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select> </el-select>
-->
<el-input :value="prBase.nationName" style="width: 100px;" size="small" disabled />
</div> </div>
<div> <div>
<span class="query">手机</span> <span class="query">手机</span>
@ -94,14 +109,19 @@ export default {
patientNo: '', // patientNo: '', //
patientName: '', // patientName: '', //
sexId: '', // sexId: '', //
sexName: '', //
medicalTimes: '', // medicalTimes: '', //
maritalStatusId: '', // maritalStatusId: '', //
maritalStatusName: '', //
medicalStartDate: '', // medicalStartDate: '', //
customerOrgParentName: '', // customerOrgParentName: '', //
customerOrgName: '', // customerOrgName: '', //
medicalTypeId: '', // medicalTypeId: '', //
medicalTypeName: '', //
personnelTypeId: '', // personnelTypeId: '', //
personnelTypeName: '', //
nationId: '', // nationId: '', //
nationName: '', //
mobileTelephone: '', // mobileTelephone: '', //
}, },
prBaseInit: {}, prBaseInit: {},
@ -153,13 +173,13 @@ export default {
onQueryByPatientRegisterNo() { onQueryByPatientRegisterNo() {
let patientRegisterNo = this.prBase.patientRegisterNo let patientRegisterNo = this.prBase.patientRegisterNo
let body = { let body = {
sType: 1,
// sType: 1,
patientRegisterNo, patientRegisterNo,
isFilterPreRegistration: 'Y' // Y= N= N (CompleteFlag0null)
// isFilterPreRegistration: 'Y' // Y= N= N (CompleteFlag0null)
} }
// console.log(`/api/app/patientregister/getpatientregisterorpatient`, body) // console.log(`/api/app/patientregister/getpatientregisterorpatient`, body)
this.dataTransOpts.tableS.patient_register = { id: '', patientRegisterNo } this.dataTransOpts.tableS.patient_register = { id: '', patientRegisterNo }
postapi('/api/app/patientregister/getpatientregisterorpatient', body)
postapi('/api/app/patientregister/GetAlreadyRegisterPatientRegisterByNo', body)
.then((res) => { .then((res) => {
if (res.code != -1) { if (res.code != -1) {
if (res.data) this.dataTransOpts.tableS.patient_register = deepCopy(res.data) if (res.data) this.dataTransOpts.tableS.patient_register = deepCopy(res.data)
@ -174,13 +194,13 @@ export default {
onQueryByPatientNo() { onQueryByPatientNo() {
let patientNo = this.prBase.patientNo let patientNo = this.prBase.patientNo
let body = { let body = {
sType: 2,
// sType: 2,
patientNo, patientNo,
isFilterPreRegistration: 'Y' // Y= N= N (CompleteFlag0null)
// isFilterPreRegistration: 'Y' // Y= N= N (CompleteFlag0null)
} }
// console.log(`/api/app/patientregister/getpatientregisterorpatient`, body)
// console.log(`/api/app/patientregister/getpatientregisterorpatient`, body)
this.dataTransOpts.tableS.patient_register = { id: '', patientNo } this.dataTransOpts.tableS.patient_register = { id: '', patientNo }
postapi('/api/app/patientregister/getpatientregisterorpatient', body)
postapi('/api/app/patientregister/GetAlreadyRegisterPatientRegisterByNo', body)
.then((res) => { .then((res) => {
if (res.code != -1) { if (res.code != -1) {
if (res.data) this.dataTransOpts.tableS.patient_register = deepCopy(res.data) if (res.data) this.dataTransOpts.tableS.patient_register = deepCopy(res.data)
@ -205,6 +225,7 @@ export default {
if (res.code != -1) { if (res.code != -1) {
if (res.data.items.length == 1) { if (res.data.items.length == 1) {
this.dataTransOpts.tableS.patient_register.id = res.data.items[0].id this.dataTransOpts.tableS.patient_register.id = res.data.items[0].id
this.dataTransOpts.tableS.patient_register.patientRegisterNo = res.data.items[0].patientRegisterNo
setTimeout(() => { setTimeout(() => {
this.dataTransOpts.refresh.patient_register.S++ this.dataTransOpts.refresh.patient_register.S++
}, 10); }, 10);
@ -228,21 +249,24 @@ export default {
// }, 20); // }, 20);
}, },
//ID
getPatientRegister(patientRegisterId) {
if (!patientRegisterId) {
this.afterFind({ id: '' })
//patientRegisterNo
getPatientRegister(patientRegisterNo) {
if (!patientRegisterNo) {
this.afterFind({ id: '', patientRegisterNo: '' })
return return
} }
postapi(`/api/app/patientregister/getinfoorpatient?PatientRegisterId=${patientRegisterId}`)
let body = { patientRegisterNo }
postapi('/api/app/patientregister/GetAlreadyRegisterPatientRegisterByNo', body)
.then((res) => { .then((res) => {
if (res.code != -1) { if (res.code != -1) {
this.dataTransOpts.tableS.patient_register = deepCopy(res.data)
if (res.data) this.dataTransOpts.tableS.patient_register = deepCopy(res.data)
} }
}) })
.finally(() => { .finally(() => {
this.afterFind(this.dataTransOpts.tableS.patient_register) this.afterFind(this.dataTransOpts.tableS.patient_register)
}); });
}, },
@ -307,8 +331,8 @@ export default {
"dataTransOpts.refresh.patient_register.S": { "dataTransOpts.refresh.patient_register.S": {
// immediate:true, // immediate:true,
handler(newVal, oldVal) { handler(newVal, oldVal) {
console.log(`watch 组合项目列表 newVal: ${newVal} oldVal: ${oldVal} patient_register.id: ${this.dataTransOpts.tableS.patient_register.id}`);
this.getPatientRegister(this.dataTransOpts.tableS.patient_register.id)
console.log(`watch 组合项目列表 newVal: ${newVal} oldVal: ${oldVal} patient_register.id: ${this.dataTransOpts.tableS.patient_register.patientRegisterNo}`);
this.getPatientRegister(this.dataTransOpts.tableS.patient_register.patientRegisterNo)
// this.dataTransOpts.refresh.register_check.M++ // this.dataTransOpts.refresh.register_check.M++
} }
}, },

86
src/components/patientRegister/PatientRegisterEdit.vue

@ -4,9 +4,19 @@
<div style="display: flex"> <div style="display: flex">
<div :style="'width:' + (window.pageWidth - 110 - 20) + 'px;'"> <div :style="'width:' + (window.pageWidth - 110 - 20) + 'px;'">
<!--查询条件--> <!--查询条件-->
<div v-show="checkPagePriv(pagePriv.privs, '查找')" style="position: absolute;top:28px;left:180px;">
<div style="position: absolute;top:28px;left:140px;display: flex;">
<div v-show="checkPagePriv(pagePriv.privs, '查找')">
<PatientRegisterEditQuery /> <PatientRegisterEditQuery />
</div> </div>
<div style="display: flex;margin-left: 5px;">
<div v-show="checkPagePriv(pagePriv.privs, '读身份证')">
<el-button @click="peopleIcCard" class="commonbutton">读身份证</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '拍照')">
<el-button type="primary" class="commonbutton" @click="photoGrah" icon="el-icon-camera">拍照</el-button>
</div>
</div>
</div>
<div> <div>
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium"> <el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium">
<el-row> <el-row>
@ -14,7 +24,7 @@
<el-form-item label="单位名称" prop="customerOrgId"> <el-form-item label="单位名称" prop="customerOrgId">
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" <el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" filterable :style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" filterable
popper-class="example"
popper-class="example" :show-all-levels="false"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
:disabled="(form.completeFlag == '3' || isDoctor != '1') ? true : false" size="small"> :disabled="(form.completeFlag == '3' || isDoctor != '1') ? true : false" size="small">
</el-cascader> </el-cascader>
@ -332,7 +342,7 @@
</el-row> </el-row>
</el-form> </el-form>
<el-image <el-image
:style="'position: absolute;top:50px;right:' + (100 + Math.floor((window.pageWidth - 750) / 24)) + 'px; width: 150px; height: 160px;'"
:style="'position: absolute;top:70px;right:' + (100 + Math.floor((window.pageWidth - 680) / 24)) + 'px; width: 130px; height: 140px;'"
:src="peoplePhoto"> :src="peoplePhoto">
<div slot="placeholder" class="image-slot"> <div slot="placeholder" class="image-slot">
加载中<span class="dot">...</span> 加载中<span class="dot">...</span>
@ -346,11 +356,9 @@
</div> </div>
</div> </div>
<div style="margin-left: 10px;"> <div style="margin-left: 10px;">
<div v-show="checkPagePriv(pagePriv.privs, '拍照')">
<el-button type="primary" class="commonbutton" @click="photoGrah" icon="el-icon-camera">拍照</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '读身份证')" class="btn">
<el-button @click="peopleIcCard" class="commonbutton">读身份证</el-button>
<div v-show="checkPagePriv(pagePriv.privs, '新增')">
<el-button type="primary" class="commonbutton" @click="btnAdd">新增</el-button>
</div> </div>
<div v-show="checkPagePriv(pagePriv.privs, '复制新增')" class="btn"> <div v-show="checkPagePriv(pagePriv.privs, '复制新增')" class="btn">
<el-button type="primary" class="commonbutton" @click="rdCopy">复制新增</el-button> <el-button type="primary" class="commonbutton" @click="rdCopy">复制新增</el-button>
@ -523,7 +531,7 @@ export default {
peisid: null, peisid: null,
peoplePhoto: '', peoplePhoto: '',
preCustomerOrgId:'', //
form: { form: {
registerManType: 'customer', //customer doctor registerManType: 'customer', //customer doctor
id: "", //id id: "", //id
@ -552,7 +560,7 @@ export default {
isVip: "N", //vip isVip: "N", //vip
remark: "", // remark: "", //
isLock: "N", // isLock: "N", //
completeFlag: "1", // 0:123
completeFlag: "1", // 0:123
isMedicalStart: "N", // isMedicalStart: "N", //
patientRegisterNo: "", // patientRegisterNo: "", //
medicalTimes: 1, // medicalTimes: 1, //
@ -798,13 +806,12 @@ export default {
// form // form
async initFormData(patientRegisterId) { async initFormData(patientRegisterId) {
this.peisid = window.sessionStorage.getItem('peisid'); this.peisid = window.sessionStorage.getItem('peisid');
this.preCustomerOrgId = this.preCustomerOrgId || this.patientRegister.query.customerOrgId
if (!patientRegisterId) { // if (!patientRegisterId) { //
objCopy(this.formInit, this.form); objCopy(this.formInit, this.form);
this.form.medicalCenterId = this.peisid; // this.form.medicalCenterId = this.peisid; //
this.form.customerOrgId = this.patientRegister.query.customerOrgId || this.dict.personOrgId //
this.form.customerOrgId = this.preCustomerOrgId || this.dict.personOrgId //
this.form.customerOrgParentId = await this.getParentCustomerOrgId(this.form.customerOrgId) // this.form.customerOrgParentId = await this.getParentCustomerOrgId(this.form.customerOrgId) //
} else { } else {
@ -815,31 +822,42 @@ export default {
} }
this.initBox(); this.initBox();
this.getPeoplePhoto(this.form.photo) this.getPeoplePhoto(this.form.photo)
this.dataTransOpts.refresh.register_check_asbitem.D++ //
// / // /
await this.changeCustomerOrgId(this.form.customerOrgId)
this.dataTransOpts.refresh.register_check_asbitem.M++ //
this.changeCustomerOrgId(this.form.customerOrgId)
}, },
// //
async changeCustomerOrgId(v) { async changeCustomerOrgId(v) {
// console.log('changeCustomerOrgId',v)
let customerOrgId = "" let customerOrgId = ""
if (Array.isArray(v) && v.length > 0) { if (Array.isArray(v) && v.length > 0) {
customerOrgId = v[v.length - 1] customerOrgId = v[v.length - 1]
} else { } else {
customerOrgId = v customerOrgId = v
} }
this.preCustomerOrgId = customerOrgId
let customerOrgParentId = await this.getParentCustomerOrgId(customerOrgId) let customerOrgParentId = await this.getParentCustomerOrgId(customerOrgId)
if (customerOrgParentId) { if (customerOrgParentId) {
if (customerOrgParentId != this.dict.personOrgId) this.getCustomerOrgRegisterList(customerOrgParentId)
if (customerOrgParentId == this.dict.personOrgId){
this.form.customerOrgRegisterId = "00000000-0000-0000-0000-000000000001"
}else{
//
this.getCustomerOrgRegisterList(customerOrgParentId)
}
// / // /
if (this.form.customerOrgParentId != customerOrgParentId) { if (this.form.customerOrgParentId != customerOrgParentId) {
this.form.customerOrgGroupId = null this.form.customerOrgGroupId = null
this.form.medicalPackageId = null this.form.medicalPackageId = null
//
this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
e.isBelongGroupPackage = 'N'
});
if (customerOrgParentId == this.dict.personOrgId) { if (customerOrgParentId == this.dict.personOrgId) {
this.patientRegister.customerOrgGroup = [] this.patientRegister.customerOrgGroup = []
@ -863,7 +881,7 @@ export default {
if (!customerOrgId) return customerOrgParentId if (!customerOrgId) return customerOrgParentId
if (typeof customerOrgId == 'string') { if (typeof customerOrgId == 'string') {
try { try {
let res = await getapi(`/api/app/customer-org/parent/${this.form.customerOrgId}`)
let res = await getapi(`/api/app/customer-org/parent/${customerOrgId}`)
if (res.code != -1) customerOrgParentId = res.data if (res.code != -1) customerOrgParentId = res.data
} catch (error) { } catch (error) {
console.log('获取顶级单位ID出错:', error) console.log('获取顶级单位ID出错:', error)
@ -1058,6 +1076,7 @@ export default {
// //
changeIdNo() { changeIdNo() {
if(!this.form.idNo) return
this.Query(this.form.idNo) this.Query(this.form.idNo)
let ret = parseID(this.form.idNo) let ret = parseID(this.form.idNo)
if (ret.age != -1) { if (ret.age != -1) {
@ -1296,7 +1315,7 @@ export default {
return false return false
} }
let body = this.madePrBody() let body = this.madePrBody()
body.registerCheckAsbitems = this.dataTransOpts.tableM.register_check_asbitem
body.registerCheckAsbitems = deepCopy(this.dataTransOpts.tableM.register_check_asbitem)
if (this.form.id) { if (this.form.id) {
// //
@ -1309,10 +1328,13 @@ export default {
postapi(`/api/PatientRegister/CreatePatientRegister`, body) postapi(`/api/PatientRegister/CreatePatientRegister`, body)
.then(res => { .then(res => {
if (res.code == 1) { if (res.code == 1) {
this.form.id = res.data.id
objCopy(res.data,this.form)
this.dataTransOpts.tableS.patient_register = deepCopy(res.data) this.dataTransOpts.tableS.patient_register = deepCopy(res.data)
delete this.dataTransOpts.tableS.patient_register.registerCheckAsbitems delete this.dataTransOpts.tableS.patient_register.registerCheckAsbitems
// id
this.dataTransOpts.tableM.register_check_asbitem = deepCopy(res.data.registerCheckAsbitems) this.dataTransOpts.tableM.register_check_asbitem = deepCopy(res.data.registerCheckAsbitems)
// // // //
// this.prAsbOpraOpts.formId = res.data.id // this.prAsbOpraOpts.formId = res.data.id
@ -1332,13 +1354,19 @@ export default {
}); });
}, },
//
btnAdd(){
this.dataTransOpts.tableS.patient_register.id = ''
this.dataTransOpts.refresh.patient_register.S++
},
// //
rdCopy() { rdCopy() {
if (!this.form.id) { if (!this.form.id) {
this.$message.info("该信息尚未保存,不可执行此操作!"); this.$message.info("该信息尚未保存,不可执行此操作!");
return; return;
} }
this.dataTransOpts.tableS.patient_register.id = ''
this.patientRegister.photo = '/pic/Photo.jpg' this.patientRegister.photo = '/pic/Photo.jpg'
this.patientRegister.patientRegisterId = ''; this.patientRegister.patientRegisterId = '';
this.form.id = ''; this.form.id = '';
@ -1348,6 +1376,7 @@ export default {
this.form.medicalTimes = 1; this.form.medicalTimes = 1;
this.form.patientName = ''; this.form.patientName = '';
this.form.photo = ''; this.form.photo = '';
this.form.completeFlag = '1'; //
// this.patientRegister.patientRegisterAbs.forEach(e => { // this.patientRegister.patientRegisterAbs.forEach(e => {
// e.id = ''; // e.id = '';
@ -1356,14 +1385,19 @@ export default {
// e.checkCompleteFlag = '0' // e.checkCompleteFlag = '0'
// e.isLock = 'N' // e.isLock = 'N'
// }); // });
//
setTimeout(() => {
this.prAsbOpraOpts.copyNew++
}, 20);
//
// setTimeout(() => {
// this.prAsbOpraOpts.copyNew++
// }, 10);
this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
delete e.id
e.patientRegisterId = ''
e.isCharge = 'N'
e.isLock = 'N'
});
// console.log('this.patientRegister.patientRegisterAbs',this.patientRegister.patientRegisterAbs) // console.log('this.patientRegister.patientRegisterAbs',this.patientRegister.patientRegisterAbs)
this.$message.info("操作成功,请记得点保存"); this.$message.info("操作成功,请记得点保存");
this
}, },

11
src/components/patientRegister/PatientRegisterForChoose.vue

@ -172,8 +172,8 @@ export default {
props:["params"], // params props:["params"], // params
data() { data() {
return { return {
patientRegisterId:'', // ID
patientRegisters:[], // patientRegisters:[], //
tableDataCurrentRow: {}, //
}; };
}, },
@ -206,7 +206,7 @@ export default {
// //
registerRowClick(row){ registerRowClick(row){
this.patientRegisterId = row.id
this.tableDataCurrentRow = deepCopy(row)
}, },
// //
@ -216,13 +216,14 @@ export default {
}, },
btnOk(){ btnOk(){
if(!this.patientRegisterId){
if(!this.tableDataCurrentRow.id){
this.$message.warning("请选择体检人员!") this.$message.warning("请选择体检人员!")
return return
} }
this.dataTransOpts.tableS.patient_register.id = this.patientRegisterId
setTimeout(() => {
this.dataTransOpts.tableS.patient_register = deepCopy(this.tableDataCurrentRow)
this.dataTransOpts.refresh.patient_register.S++ this.dataTransOpts.refresh.patient_register.S++
setTimeout(() => {
this.tableDataCurrentRow = {}
}, 10); }, 10);
this.dialogWin.PatientRegisterForChoose = false this.dialogWin.PatientRegisterForChoose = false
}, },

174
src/components/patientRegister/PatientRegisterItem.vue

@ -3,16 +3,17 @@
<div style="width:220px;"> <div style="width:220px;">
<div> <div>
<span>项目类别</span> <span>项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example" style="margin-left: 3px;width:160px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
clearable filterable @change="changeItemType" size="small" :disabled="isComplete">
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example"
style="margin-left: 3px;width:160px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable
@change="changeItemType" size="small" :disabled="isComplete">
</el-cascader> </el-cascader>
</div> </div>
<div class="mainareaBox"> <div class="mainareaBox">
<el-table :data="asbItem" style="border-radius: 5px;" <el-table :data="asbItem" style="border-radius: 5px;"
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" @row-dblclick="dbClickChoosedAsb" highlight-current-row
@selection-change="handleSelectionChange" size="small" :row-class-name="handleRowClassName"
@row-click="chooseAsbItem">
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" @row-dblclick="dbClickChoosedAsb"
highlight-current-row @selection-change="handleSelectionChange" size="small"
:row-class-name="handleRowClassName" @row-click="chooseAsbItem">
<!-- <!--
<el-table-column type="selection" align="center" width="40" /> <el-table-column type="selection" align="center" width="40" />
--> -->
@ -35,19 +36,23 @@
<div style="width:100px;margin-top: 70px;"> <div style="width:100px;margin-top: 70px;">
<div v-show="checkPagePriv(pagePriv.privs, '添加')" class="btnList"> <div v-show="checkPagePriv(pagePriv.privs, '添加')" class="btnList">
<el-button class="commonbutton" @click="addAbs(asbItemChoosed,'choosed')" style="width:90px;" :disabled="isComplete">添加 <i class="el-icon-arrow-right"></i>
<el-button class="commonbutton" @click="addAbs(asbItemChoosed, 'choosed')" style="width:90px;"
:disabled="isComplete">添加 <i class="el-icon-arrow-right"></i>
</el-button> </el-button>
</div> </div>
<div v-show="checkPagePriv(pagePriv.privs, '全添加')" class="btnList"> <div v-show="checkPagePriv(pagePriv.privs, '全添加')" class="btnList">
<el-button type="success" class="difference" @click="addAbs(asbItemChoosed,'all')" style="width:90px;" :disabled="isComplete">全添加 <i class="el-icon-d-arrow-right"></i>
<el-button type="success" class="difference" @click="addAbs(asbItemChoosed, 'all')" style="width:90px;"
:disabled="isComplete">全添加 <i class="el-icon-d-arrow-right"></i>
</el-button> </el-button>
</div> </div>
<div v-show="checkPagePriv(pagePriv.privs, '移除')" class="btnList"> <div v-show="checkPagePriv(pagePriv.privs, '移除')" class="btnList">
<el-button type="warning" class="commonbutton" @click="delAbs(patientRegisterAbsChoosed,'choosed')" style="width:90px;" :disabled="isComplete"><i class="el-icon-arrow-left"> 移除</i>
<el-button type="warning" class="commonbutton" @click="delAbs(patientRegisterAbsChoosed, 'choosed')"
style="width:90px;" :disabled="isComplete"><i class="el-icon-arrow-left"> 移除</i>
</el-button> </el-button>
</div> </div>
<div v-show="checkPagePriv(pagePriv.privs, '全移除')" class="btnList"> <div v-show="checkPagePriv(pagePriv.privs, '全移除')" class="btnList">
<el-button type="danger" class="difference" @click="delAbs(patientRegisterAbsChoosed,'all')" style="width:90px;" :disabled="isComplete"><i class="el-icon-d-arrow-left"> 全移除</i>
<el-button type="danger" class="difference" @click="delAbs(patientRegisterAbsChoosed, 'all')" style="width:90px;"
:disabled="isComplete"><i class="el-icon-d-arrow-left"> 全移除</i>
</el-button> </el-button>
</div> </div>
<!-- 不显示保存当已选组合有修改时失去焦点自动保存 <!-- 不显示保存当已选组合有修改时失去焦点自动保存
@ -75,29 +80,29 @@
@focus="totalFoucs = true" @blur="totalFoucs = false" /> @focus="totalFoucs = true" @blur="totalFoucs = false" />
</div> </div>
<div class="disTotal"> <div class="disTotal">
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small"
filterable :filter-method="filterMethod" :disabled="isComplete"
clearable @clear="quickAsb = deepCopy(asbItemQuick)"
@change="quickChoosedAsb" default-first-option ref="quickAsbOCX"
style="width:240px;text-align: left;padding-right: 15px;">
<el-select v-model="asbItemId" placeholder="快速选择组合项目" size="small" filterable :filter-method="filterMethod"
:disabled="isComplete" clearable @clear="quickAsb = deepCopy(asbItemQuick)" @change="quickChoosedAsb"
default-first-option ref="quickAsbOCX" style="width:240px;text-align: left;padding-right: 15px;">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" /> <el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="mainareaBox"> <div class="mainareaBox">
<el-table :data="dataTransOpts.tableM.register_check_asbitem" highlight-current-row border ref="patientRegister_patientRegisterAbs" style="border-radius: 5px;"
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" width="100%" :summary-method="getSummaries"
show-summary :row-class-name="handleRowClassName" @row-dblclick="removeAbs" @selection-change="selecteditems" size="small"
@row-click="removeAsbItem">
<el-table :data="dataTransOpts.tableM.register_check_asbitem" highlight-current-row border
ref="patientRegister_patientRegisterAbs" style="border-radius: 5px;"
:height="(window.pageHeight > 700 ? (window.pageHeight - 440) : 260)" width="100%"
:summary-method="getSummaries" show-summary :row-class-name="handleRowClassName" @row-dblclick="removeAbs"
@selection-change="selecteditems" size="small" @row-click="removeAsbItem">
<!-- temporaryselection personnelUnit.nogroupselected--> <!-- temporaryselection personnelUnit.nogroupselected-->
<!-- 取消勾选换成选中 <!-- 取消勾选换成选中
<el-table-column type="selection" align="center"/> <el-table-column type="selection" align="center"/>
--> -->
<el-table-column label="已选组合项目" min-width="120" prop="asbitemName" >
<el-table-column label="已选组合项目" min-width="150" prop="asbitemName">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="top"> <el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="top">
<i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 14px;color: purple;"></i>
<i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on"
style="font-size: 14px;color: purple;"></i>
</el-tooltip> </el-tooltip>
{{ scope.row.asbitemName }} {{ scope.row.asbitemName }}
</div> </div>
@ -116,13 +121,13 @@
</el-table-column> </el-table-column>
<el-table-column label="实收价格" prop="chargePrice" min-width="70"> <el-table-column label="实收价格" prop="chargePrice" min-width="70">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input type="number" v-model="scope.row.chargePrice" size="small"
@input="changePrice(scope.$index)" /> <!--立即触发保存 @blur="onSubmit('')" -->
<el-input type="number" v-model="scope.row.chargePrice" size="small" @input="changePrice(scope.$index)" />
<!--立即触发保存 @blur="onSubmit('')" -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="total" label="金额" min-width="70" align="center" /> <el-table-column prop="total" label="金额" min-width="70" align="center" />
<el-table-column prop="standardPrice" label="标准金额" min-width="70" v-if="false" /> <el-table-column prop="standardPrice" label="标准金额" min-width="70" v-if="false" />
<el-table-column label="支付方式" prop="payTypeFlag" min-width="100">
<el-table-column label="支付方式" prop="payTypeFlag" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.payTypeFlag" size="small"> <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" /> <el-option v-for="item in dict.payType" :key="item.id" :label="item.displayName" :value="item.id" />
@ -152,6 +157,9 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div style="position: absolute;bottom:28px;right:125px;font-size: 10px;">
{{ asbDesc }}
</div>
</div> </div>
</div> </div>
</template> </template>
@ -185,8 +193,8 @@ export default {
//patientRegisterAbsDel: [], // //patientRegisterAbsDel: [], //
prAsb:[], //
prAsbDels:[], //
// prAsb:[], //
// prAsbDels:[], //
groupAsbs: [], // groupAsbs: [], //
packageAsbs: [], // packageAsbs: [], //
@ -200,6 +208,8 @@ export default {
asbItemQuick: [], asbItemQuick: [],
totalFoucs: false, // totalFoucs: false, //
discountFoucs: false, // discountFoucs: false, //
asbDesc:'', //
}; };
}, },
computed: { computed: {
@ -259,12 +269,15 @@ export default {
// debugger // debugger
// //
console.log('getPrAsb(id)', `getPrAsb(${id})`) console.log('getPrAsb(id)', `getPrAsb(${id})`)
this.prAsbDels = []
// this.prAsbDels = []
this.groupAsbs = [] this.groupAsbs = []
this.packageAsbs = [] this.packageAsbs = []
if (!id) {
this.dataTransOpts.tableM.register_check_asbitem = []
} else {
let result = await proApi.getPrAsb(id) let result = await proApi.getPrAsb(id)
this.dataTransOpts.tableM.register_check_asbitem = result.data this.dataTransOpts.tableM.register_check_asbitem = result.data
}
this.refreshAsbitem() this.refreshAsbitem()
}, },
@ -601,22 +614,22 @@ export default {
// //
async batchDelAsb() { async batchDelAsb() {
let ret = false let ret = false
if(this.prAsbDels.length == 0) return true
// if(this.prAsbDels.length == 0) return true
let registerAsbitemIds=[]
// let registerAsbitemIds=[]
this.prAsbDels.forEach(e => {
registerAsbitemIds.push(e.id)
})
// this.prAsbDels.forEach(e => {
// registerAsbitemIds.push(e.id)
// })
console.log(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds})
// console.log(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds})
try {
let res = await postapi(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds})
if(res.code != -1) ret = true
} catch (error) {
console.log('批量删除组合项目失败',error)
}
// try {
// let res = await postapi(`/api/app/registerasbitem/deletemany`, {registerAsbitemIds})
// if(res.code != -1) ret = true
// } catch (error) {
// console.log('',error)
// }
return ret return ret
}, },
@ -752,6 +765,7 @@ export default {
// //
tempRd = Object.assign({}, this.groupAsbs.splice(lfind, 1)[0]) tempRd = Object.assign({}, this.groupAsbs.splice(lfind, 1)[0])
this.dataTransOpts.tableM.register_check_asbitem[i].groupPackageId = newId this.dataTransOpts.tableM.register_check_asbitem[i].groupPackageId = newId
this.dataTransOpts.tableM.register_check_asbitem[i].isBelongGroupPackage = 'Y'
if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') { if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') {
this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag
this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.customerOrgGroupDetailAmount this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.customerOrgGroupDetailAmount
@ -773,23 +787,24 @@ export default {
// debugger // debugger
//() //()
this.groupAsbs.forEach(e => { this.groupAsbs.forEach(e => {
lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.asbitemId)
if(lfind > -1){
tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0],
{
groupPackageId:newId,
standardPrice:e.price,
chargePrice:e.customerOrgGroupDetailPrice,
payTypeFlag,
isCharge: "N",
discount:e.discount,
amount:e.customerOrgGroupDetailAmount,
total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100)/100
}
)
}else{
// lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.asbitemId)
// if(lfind > -1){
// tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0],
// {
// groupPackageId:newId,
// standardPrice:e.price,
// chargePrice:e.customerOrgGroupDetailPrice,
// payTypeFlag,
// isCharge: "N",
// discount:e.discount,
// amount:e.customerOrgGroupDetailAmount,
// total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100)/100
// }
// )
// }else{
tempRd = { tempRd = {
groupPackageId: newId, groupPackageId: newId,
isBelongGroupPackage:'Y',
asbitemId: e.asbitemId, asbitemId: e.asbitemId,
asbitemName: e.displayName, asbitemName: e.displayName,
patientRegisterId: this.prForm.id, patientRegisterId: this.prForm.id,
@ -801,7 +816,7 @@ export default {
amount: e.customerOrgGroupDetailAmount, amount: e.customerOrgGroupDetailAmount,
total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100) / 100 total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100) / 100
} }
}
// }
this.dataTransOpts.tableM.register_check_asbitem.push(tempRd) this.dataTransOpts.tableM.register_check_asbitem.push(tempRd)
}) })
@ -828,6 +843,7 @@ export default {
// //
tempRd = Object.assign({}, this.packageAsbs.splice(lfind, 1)[0]) tempRd = Object.assign({}, this.packageAsbs.splice(lfind, 1)[0])
this.dataTransOpts.tableM.register_check_asbitem[i].groupPackageId = newId this.dataTransOpts.tableM.register_check_asbitem[i].groupPackageId = newId
this.dataTransOpts.tableM.register_check_asbitem[i].isBelongGroupPackage = 'Y'
if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') { if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') {
this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag
this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.medicalPackageDetailAmount this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.medicalPackageDetailAmount
@ -848,23 +864,24 @@ export default {
//() //()
this.packageAsbs.forEach(e => { this.packageAsbs.forEach(e => {
lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.id)
if(lfind > -1){
tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0],
{
groupPackageId:newId,
standardPrice:e.price,
chargePrice:e.medicalPackageDetailPrice,
payTypeFlag,
isCharge: "N",
discount:e.discount,
amount:e.medicalPackageDetailAmount,
total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100)/100
}
)
}else{
// lfind = arrayExistObj(this.prAsbDels,'asbitemId',e.id)
// if(lfind > -1){
// tempRd = Object.assign(this.prAsbDels.splice(lfind,1)[0],
// {
// groupPackageId:newId,
// standardPrice:e.price,
// chargePrice:e.medicalPackageDetailPrice,
// payTypeFlag,
// isCharge: "N",
// discount:e.discount,
// amount:e.medicalPackageDetailAmount,
// total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100)/100
// }
// )
// }else{
tempRd = { tempRd = {
groupPackageId: newId, groupPackageId: newId,
isBelongGroupPackage: 'Y',
asbitemId: e.id, asbitemId: e.id,
asbitemName: e.displayName, asbitemName: e.displayName,
patientRegisterId: this.prForm.id, patientRegisterId: this.prForm.id,
@ -876,7 +893,7 @@ export default {
amount: e.medicalPackageDetailAmount, amount: e.medicalPackageDetailAmount,
total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100) / 100 total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100) / 100
} }
}
// }
this.dataTransOpts.tableM.register_check_asbitem.push(tempRd) this.dataTransOpts.tableM.register_check_asbitem.push(tempRd)
}) })
@ -887,6 +904,7 @@ export default {
setGroupPackageNull() { setGroupPackageNull() {
this.dataTransOpts.tableM.register_check_asbitem.forEach(e => { this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
e.groupPackageId = null e.groupPackageId = null
e.isBelongGroupPackage = 'N'
}) })
}, },
@ -1015,11 +1033,17 @@ export default {
const { columns, data } = param; const { columns, data } = param;
const sumCol = [1, 5] // const sumCol = [1, 5] //
const sums = []; const sums = [];
let count = this.dataTransOpts.tableM.register_check_asbitem.length
let pack = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { return e.isBelongGroupPackage == 'Y'}).length
this.asbDesc = `共选 ${count} 个项目,其中套餐/分组 ${pack} 个,加做 ${count - pack}`
columns.forEach((column, index) => { columns.forEach((column, index) => {
//console.log('column, index,data',column, index,data) //console.log('column, index,data',column, index,data)
// //
if (index === 0) { if (index === 0) {
sums[index] = '合计';
sums[index] = `合计`;
return; return;
} }
@ -1182,7 +1206,5 @@ export default {
.disTotal { .disTotal {
margin-left: 10px; margin-left: 10px;
}
</style>
}</style>

2
src/components/patientRegister/PatientRegisterList.vue

@ -170,7 +170,7 @@
:visible.sync="dialogWin.PatientRegisterEdit" :close-on-click-modal="false" fullscreen :visible.sync="dialogWin.PatientRegisterEdit" :close-on-click-modal="false" fullscreen
@close="close_dialogWin_PatientRegisterEdit"> @close="close_dialogWin_PatientRegisterEdit">
<!-- :formInitData="patientRegister.patientRegisterRd" --> <!-- :formInitData="patientRegister.patientRegisterRd" -->
<PatientRegisterEdit :isDoctor="'0'" :patientRegisterId="patientRegister.patientRegisterRd.id"
<PatientRegisterEdit :isDoctor="'1'" :patientRegisterId="patientRegister.patientRegisterRd.id"
:editTimes="editTimes" :refreshRegister="refreshRegister" :refFuncSetData="refFuncSetData"/> :editTimes="editTimes" :refreshRegister="refreshRegister" :refFuncSetData="refFuncSetData"/>
</el-dialog> </el-dialog>

2
src/components/patientRegister/patientRegisterAsbItem.vue

@ -7,7 +7,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left"> <el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left">
<i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 16px;color: purple;" />
<i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on" style="font-size: 16px;color: purple;" />
</el-tooltip> </el-tooltip>
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</div> </div>

2
src/store/index.js

@ -329,7 +329,7 @@ export default new Vuex.Store({
customer_org_group_detail: { id: '' }, // 单位分组包含的组合项目明细 customer_org_group_detail: { id: '' }, // 单位分组包含的组合项目明细
charge: { id: '' }, // 收费 charge: { id: '' }, // 收费
menu_info: { id: '' }, // 菜单与页面 menu_info: { id: '' }, // 菜单与页面
patient_register: { id: '' }, // 体检人员记录
patient_register: { id: '', patientRegisterNo: ''}, // 体检人员记录
register_check_asbitem: { id: '' }, // 体检人员登记的项目(合并前) register_check_asbitem: { id: '' }, // 体检人员登记的项目(合并前)
register_check: { id: '' }, // 体检人员登记的项目(合并后) register_check: { id: '' }, // 体检人员登记的项目(合并后)
register_check_item: { id: '' }, // 体检人员登记的明细项目 register_check_item: { id: '' }, // 体检人员登记的明细项目

3
src/utlis/proFunc.js

@ -180,9 +180,10 @@ exports.checkIDCode = checkIDCode;
function parseID(id) { function parseID(id) {
let ret = { let ret = {
birthday: null, birthday: null,
age: null,
age: -1,
sex: 'U', sex: 'U',
} }
if(!id) return ret
if (!checkIDCode(id)) return ret if (!checkIDCode(id)) return ret
let yearInMs = 1000 * 60 * 60 * 24 * 365.2425; let yearInMs = 1000 * 60 * 60 * 24 * 365.2425;

Loading…
Cancel
Save