Browse Source

booking

master
pengjun 1 year ago
parent
commit
6cbd5cb709
  1. 86
      src/components/patientRegister/PatientRegisterEdit.vue
  2. 69
      src/components/webBooking/WebBooking.vue
  3. 3
      src/store/index.js

86
src/components/patientRegister/PatientRegisterEdit.vue

@ -19,7 +19,7 @@
<el-button type="primary" class="commonbutton" @click="photoGrah" icon="el-icon-camera">拍照</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '网上预约')">
<el-button type="primary" class="commonbutton" @click="btnWebBooking" >网上预约</el-button>
<el-button type="primary" class="commonbutton" @click="btnWebBooking">网上预约</el-button>
</div>
</div>
</div>
@ -578,8 +578,8 @@
<OccDisease />
</el-dialog>
<el-dialog title="网上预约" :visible.sync="dialogWin.WebBooking" width="800px" :close-on-click-modal="false"
:append-to-body="true" :show-close="false">
<el-dialog title="网上预约" :visible.sync="dialogWin.WebBooking" width="800px" :close-on-click-modal="false"
:append-to-body="true" :show-close="false" @close="close_dialogWin_WebBooking">
<WebBooking />
</el-dialog>
@ -1723,7 +1723,7 @@ export default {
}
}
}
);
);
});
},
@ -2407,11 +2407,87 @@ export default {
},
//
btnWebBooking(){
btnWebBooking() {
this.dataTransOpts.tableS.appoint_patient_register = {}
this.dataTransOpts.tableM.appoint_register_asbitem = []
this.dataTransOpts.plus.WebBooking++
this.dialogWin.WebBooking = true
},
//
async close_dialogWin_WebBooking() {
console.log('this.dataTransOpts.tableS.appoint_patient_register',this.dataTransOpts.tableS.appoint_patient_register)
console.log('this.dataTransOpts.tableM.appoint_register_asbitem',this.dataTransOpts.tableM.appoint_register_asbitem)
//
let appoint_patient_register = this.dataTransOpts.tableS.appoint_patient_register
if (!appoint_patient_register.appointPatientRegisterId) return
//
this.dataTransOpts.tableS.patient_register.id = ''
await this.initFormData(this.dataTransOpts.tableS.patient_register.id)
// "appointPatientRegisterId": "string",
// "personId": "string",
// "personName": "string",
// "idNo": "string",
// "sexId": "string",
// "sexName": "string",
// "maritalStatusId": "string",
// "maritalStatusName": "string",
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgName": "string",
// "childCustomerOrgName": "string",
// "customerOrgGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgGroupName": "string",
// "medicalPackageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "medicalPackageName": "string",
// "completeFlag": "string",
// "appointDate": "2024-06-09T11:46:34.962Z",
// "remark": "string",
// "medicalCenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "pregnantFlag": "string",
// "pregnantFlagName": "string",
// "height": 0,
// "weight": 0
Object.assign(this.form, appoint_patient_register,
{ patientName: appoint_patient_register.personName,
mobileTelephone: '',
completeFlag:'1'
}
)
//
// "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "asbitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "standardPrice": 0,
// "chargePrice": 0,
// "payTypeFlag": "string",
// "isCharge": "string",
// "amount": 0
//
// "appointRegisterAsbitemId": "00000000-0000-0000-0000-000000000000",
// "asbitemId": "3a126b34-f6f0-56a1-e899-a092874acde7",
// "asbitemName": "(",
// "itemTypeId": "3a126ac6-2fbf-ca50-82a4-73dcc5a5028b",
// "itemTypeName": "",
// "appointPatientRegisterId": "3a12ebf4-565a-dbc4-4f2d-d72cd3050cab",
// "standardPrice": 45.00,
// "chargePrice": 30.50,
// "payTypeFlag": "\u0000",
// "isCharge": "N",
// "amount": 1,
// "isInMedicalPackage": "N",
// "itemTypeDisplayOrder": 28,
// "displayOrder": 1
this.dataTransOpts.tableM.register_check_asbitem = deepCopy(this.dataTransOpts.tableM.appoint_register_asbitem)
this.changeIdNo() //
},
btnLabel() {
if (!this.form.id) {
this.$message.warning({ showClose: true, message: '人员信息尚未保存!' })

69
src/components/webBooking/WebBooking.vue

@ -42,24 +42,20 @@
<div>
<el-table :data="tableData" border style="width: 100%" row-key="id" height="300" highlight-current-row
size="small" @row-click="rowClick">
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column label="操作" width="130" prop="operate">
<el-table-column label="姓名" width="80" prop="personName" align="center"/>
<el-table-column label="身份证号" width="150" prop="idNo" align="center"/>
<el-table-column label="预约时间" width="150" prop="appointDate" align="center"/>
<el-table-column label="性别" width="40" prop="sexName" align="center"/>
<el-table-column label="婚姻" width="40" prop="maritalStatusName" align="center"/>
<el-table-column label="单位" width="150" prop="customerOrgName" align="center"/>
<el-table-column label="分组/套餐" width="120" prop="customerOrgGroupName" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.operate" placeholder="请操作方式" size="small" :disabled="scope.row.disabled"
@change="changeOperate(scope.row)">
<el-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column label="条码分组" width="120" prop="sampleGroupName" />
<el-table-column label="检验申请号" width="180" prop="lisRequestNo">
<template slot-scope="scope">
<el-select v-model="scope.row.lisRequestNo" size="small" :disabled="scope.row.disabled">
<el-option v-for="(item, index) in lisRequestNos" :key="index" :label="item.lisRequestNo"
:value="item.lisRequestId" />
</el-select>
<div>{{ scope.row.customerOrgGroupName ? scope.row.customerOrgGroupName:scope.row.medicalPackageName }}</div>
</template>
</el-table-column>
<el-table-column label="怀孕" width="40" prop="pregnantFlagName" align="center"/>
<el-table-column label="身高" width="40" prop="height" align="center"/>
<el-table-column label="体重" width="40" prop="weight" align="center"/>
</el-table>
</div>
<div style="margin-top: 10px; display: flex;justify-content: space-between;">
@ -99,9 +95,9 @@ export default {
completeFlag: "0"
},
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
// disabledDate(time) {
// return time.getTime() > Date.now();
// },
shortcuts: [{
text: '今天',
onClick(picker) {
@ -187,7 +183,6 @@ export default {
if (lres.code >= -1) {
let idNos = parsIcCardtoLocal(lres.data, this.dict.sex, this.dict.nation)
this.query.idNo = idNos.IDCode
// this.form.patientName = idNos.Name
// this.form.birthDate = idNos.birthDate
// this.form.sexId = idNos.sexId
@ -198,7 +193,7 @@ export default {
// this.peoplePhoto = 'data:image/bmp;base64,' + idNos.Photo
// this.patientRegister.photo = 'data:image/bmp;base64,' + idNos.Photo
this.btnQuery()
} else {
this.$message.error({ showClose: true, message: `${lres.message}` })
}
@ -207,14 +202,25 @@ export default {
//
btnQuery() {
if(!(this.query.appointStartDate && this.query.appointStopDate)){
this.$message.error({ showClose: true, message: "必须选择日期段!" })
return
}
if(!(this.query.idNo || this.query.mobilePhone)){
this.$message.error({ showClose: true, message: "手机号或身份证号必须填写一项!" })
return
}
this.currRowData = {}
this.tableData = []
this.tableDataDetails = []
this.query.appointStartDate = "2024-01-01 00:00:00"
this.query.appointStopDate = "2024-07-01 00:00:00"
let body = deepCopy(this.query)
postapi('/api/app/AppointPatientRegister/GetListByFilter', this.query)
body.appointStartDate = this.query.appointStartDate + " 00:00:00"
body.appointStopDate = this.query.appointStopDate + " 23:59:59"
postapi('/api/app/AppointPatientRegister/GetListByFilter', body)
.then(res => {
if (res.code > -1) {
this.tableData = res.data
@ -232,20 +238,33 @@ export default {
rowClick(row) {
this.currRowData = row
this.tableDataDetails = []
postapi('/api/app/AppointPatientRegister/GetAppointRegisterAsbitemListById', {
thirdInterFaceId: this.query.thirdInterfaceId,
appointPatientRegisterId: row.appointPatientRegisterId
}).then(res => {
if(res.code > -1){
this.tableDataDetails = res.data
}
})
},
//
btnOk() {
if (!this.currRowData.id) {
if (!this.currRowData.appointPatientRegisterId) {
this.$message.warning({ showClose: true, message: "请选择预约的记录" })
return
}
this.dataTransOpts.tableS.appoint_patient_register = deepCopy(this.currRowData)
this.dataTransOpts.tableM.appoint_register_asbitem = deepCopy(this.tableDataDetails)
this.dialogWin.WebBooking = false
},
//
btnClose() {
this.dataTransOpts.tableS.appoint_patient_register = {}
this.dataTransOpts.tableM.appoint_register_asbitem = []
this.dialogWin.WebBooking = false
},

3
src/store/index.js

@ -377,7 +377,7 @@ export default new Vuex.Store({
isPatientSymptomsUpdate: "N", // 症状
isOccSummary: 'N', // 修改总检结论
},
appoint_patient_register:{}, // 预约登记数据
},
//表当前数据(多条记录 M--more)
@ -406,6 +406,7 @@ export default new Vuex.Store({
patient_symptom: [], // 病人症状
patient_past_medical_history: [], // 既往病史
patient_occupational_medical_history: [], // 职业病史
appoint_register_asbitem:[], // 预约所选组合项目
},
plus: {
PatientRegisterEditQuery: 0, // 更新查询条件

Loading…
Cancel
Save