6 changed files with 996 additions and 240 deletions
-
26src/components/patientRegister/PatientRegisterEdit.vue
-
2src/main.js
-
6src/router/index.js
-
416src/views/charge/WebChargeBack.vue
-
478src/views/charge/charge.vue
-
308src/views/lis/LisTakeSample.vue
@ -0,0 +1,416 @@ |
|||||
|
<template> |
||||
|
<div style="font-size: 14px;display: flex; width: 100%;"> |
||||
|
<div style="display: flex;"> |
||||
|
<div :style="`display: block; width: ${window.pageWidth - 130}px;`"> |
||||
|
<!-- 查询条件 与列表 --> |
||||
|
<div |
||||
|
:style="'display: flex;flex-wrap: wrap;height: 40px;background-color: #fff;border-radius: 8px;margin-bottom: 5px;align-items: center;padding: 10px;width:' + (window.pageWidth - 110 - 40) + 'px;'"> |
||||
|
<div class="query"> |
||||
|
<el-select v-model="query.dateType" placeholder="请选择" style="width: 80px" size="small"> |
||||
|
<el-option label="登记日期" :value="'1'" /> |
||||
|
<el-option label="体检日期" :value="'2'" /> |
||||
|
<el-option label="缴费日期" :value="'3'" /> |
||||
|
</el-select> |
||||
|
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" style="width:90px;" |
||||
|
value-format="yyyy-MM-dd" /> |
||||
|
<span style="margin: 0 3px;">至</span> |
||||
|
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;" |
||||
|
value-format="yyyy-MM-dd" /> |
||||
|
</div> |
||||
|
<div class="query"> |
||||
|
<span class="spanClass">条码号</span> |
||||
|
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" clearable style="width: 120px" /> |
||||
|
</div> |
||||
|
<div class="query"> |
||||
|
<span class="spanClass">姓名</span> |
||||
|
<el-input placeholder="姓名" v-model="query.patientName" size="small" clearable style="width: 60px" /> |
||||
|
</div> |
||||
|
<div class="query"> |
||||
|
<span class="spanClass">身份证</span> |
||||
|
<el-input placeholder="身份证" v-model="query.idNo" size="small" clearable style="width: 150px" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 人员列表 --> |
||||
|
<div style="padding: 10px 0 0 0;border-radius: 8px;background-color: #fff;"> |
||||
|
<el-table :data="patientList" border highlight-current-row ref="patientList" |
||||
|
:height="Math.floor(tableListHeight / 2)" @row-click="rowClick" size="small"> |
||||
|
<!-- |
||||
|
<el-table-column prop="customerOrgParentName" label="单位" width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : |
||||
|
scope.row.customerOrgName }} |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
--> |
||||
|
<el-table-column type="index" label="序号" width="40" align="center"/> |
||||
|
<el-table-column prop="chargeSumMoney" label="金额" width="80" align="center"/> |
||||
|
<el-table-column prop="patientName" label="姓名" /> |
||||
|
<el-table-column prop="sexId" label="性别" width="40"/> |
||||
|
<el-table-column prop="age" label="年龄" width="40"/> |
||||
|
<el-table-column prop="patientRegisterNo" label="条码号" width="150" /> |
||||
|
<el-table-column prop="patientNo" label="档案号" /> |
||||
|
<el-table-column prop="medicalTimes" label="体检次数" /> |
||||
|
<el-table-column prop="isVip" label="是否VIP"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="salesman" label="介绍人" /> |
||||
|
<!-- |
||||
|
<el-table-column prop="invoiceNo" label="发票号" /> |
||||
|
<el-table-column prop="invoiceOrgName" label="发票抬头" /> |
||||
|
<el-table-column prop="chargeId" label="介绍人" /> |
||||
|
<el-table-column prop="chargeBackId" label="介绍人" /> |
||||
|
--> |
||||
|
<el-table-column prop="email" label="邮箱" width="180" /> |
||||
|
<el-table-column prop="idNo" label="身份证" width="150" /> |
||||
|
<el-table-column prop="mobileTelephone" label="手机" width="100" /> |
||||
|
<el-table-column prop="telephone" label="电话" width="100" /> |
||||
|
<el-table-column prop="address" label="地址" width="300" /> |
||||
|
|
||||
|
|
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 项目收费列表 --> |
||||
|
<div style="padding: 10px 0 5px 0;border-radius: 8px;background-color: #fff;"> |
||||
|
<el-table :data="details" border highlight-current-row :height="Math.floor(tableListHeight / 2) - 10" |
||||
|
size="small"> |
||||
|
<el-table-column label="序号" width="40" type="index" align="center" /> |
||||
|
<el-table-column label="组合项目" width="240" prop="asbitemName" /> |
||||
|
<el-table-column label="标准价格" prop="standardPrice" width="80" align="center" /> |
||||
|
<el-table-column label="折扣" prop="discount" width="80" align="center" /> |
||||
|
<el-table-column label="数量" prop="amount" width="50" align="center" /> |
||||
|
<el-table-column label="实收价格" prop="chargePrice" width="80" align="center" /> |
||||
|
<el-table-column prop="total" label="金额" width="70" v-if="false" /> |
||||
|
<el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" /> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div style="margin-left:10px;" class="btnDivClass"> |
||||
|
<div class="btnListClass"> |
||||
|
<el-button type="primary" class="commonbutton" @click="Query">查询</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 40px;" class="btnListClass"> |
||||
|
<el-button type="danger" class="commonbutton" @click="btnChargeBack">退费</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from 'moment'; |
||||
|
import { mapState, mapActions } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc"; |
||||
|
|
||||
|
import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue"; |
||||
|
import PatientRegisterRefuseList from "../../components/patientRegister/PatientRegisterRefuseList.vue"; |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
PatientRegisterQuery, |
||||
|
PatientRegisterRefuseList, |
||||
|
}, |
||||
|
props: ["patientRegisterNo"], |
||||
|
data() { |
||||
|
return { |
||||
|
activeName: "peis", |
||||
|
query: { |
||||
|
dateType: '1', // 1登记 2体检 3缴费 |
||||
|
startDate: null, |
||||
|
endDate: null, |
||||
|
patientRegisterNo: '', |
||||
|
patientNo: '', |
||||
|
invoiceNo: '', // 发票号,订单号 |
||||
|
patientName: '', |
||||
|
idNo: "", // 身份证号 |
||||
|
},//查询条件 |
||||
|
patientList: [],//人员列表 |
||||
|
curPatient:{}, // 当前 |
||||
|
details: [], // 收费明细 |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
this.formInit = Object.assign({}, this.form) |
||||
|
this.dictInit(); |
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]), |
||||
|
|
||||
|
tableListHeight() { |
||||
|
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight |
||||
|
return tempH - 175 - 30 |
||||
|
}, |
||||
|
|
||||
|
bodyWidth() { |
||||
|
let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth |
||||
|
return tempW - 110 - 25 |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
...mapActions(["getCustomerOrgGroup"]), |
||||
|
|
||||
|
dddw, moment, |
||||
|
|
||||
|
//查询人员列表数据 |
||||
|
Query() { |
||||
|
let loading = this.$loading({ |
||||
|
lock: true, |
||||
|
text: 'Loading', |
||||
|
spinner: 'el-icon-loading', |
||||
|
background: 'rgba(0, 0, 0, 0.7)' |
||||
|
}); |
||||
|
|
||||
|
this.query.startDate = moment(this.query.startDate).format("yyyy-MM-DD"); |
||||
|
this.query.endDate = moment(this.query.endDate).format("yyyy-MM-DD"); |
||||
|
|
||||
|
postapi('/api/app/AppointPatientRegister/GerAppointPatientRegisterWithAsbitemList', this.query) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.patientList = res.data |
||||
|
if (this.patientList.length > 0){ |
||||
|
this.rowClick(this.patientList[0]) |
||||
|
this.$refs['patientList'].setCurrentRow(this.patientList[0]) |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
loading.close(); |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//人员列表点击 |
||||
|
rowClick(row) { |
||||
|
this.curPatient = row |
||||
|
this.details = row.appointRegisterAsbitemDetail |
||||
|
}, |
||||
|
|
||||
|
//退费 |
||||
|
btnChargeBack() { |
||||
|
|
||||
|
let appointPatientRegisterId = this.curPatient.appointPatientRegisterId |
||||
|
let refundMoney = Number(this.curPatient.chargeSumMoney)||0 |
||||
|
if(!appointPatientRegisterId){ |
||||
|
this.$message.warning({showClose:true,message:'请先选择退费记录!'}) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
if(refundMoney <= 0){ |
||||
|
this.$message.warning({showClose:true,message:'退费金额需大于 0 '}) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
this.$confirm("是否确定执行退费操作?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: "否", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
return postapi('/api/app/AppointPatientRegister/CreateWeChatOrderRefund',{appointPatientRegisterId,refundMoney}) |
||||
|
}).then(res => { |
||||
|
if(res.code > -1){ |
||||
|
this.Query() |
||||
|
} |
||||
|
}).catch((err) => { |
||||
|
// if (err == "cancel") { |
||||
|
// this.$message.info("已取消删除"); |
||||
|
// } |
||||
|
}); |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
|
||||
|
//数据初始化 |
||||
|
dictInit() { |
||||
|
|
||||
|
this.query.startDate = new Date() |
||||
|
this.query.endDate = this.query.startDate |
||||
|
|
||||
|
/* |
||||
|
//性别(仅档案用) |
||||
|
getapi("/api/app/sex").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.sex = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//性别(查询) |
||||
|
getapi("/api/app/for-sex").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.forSex = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//体检单位 |
||||
|
getapi("/api/app/customerorg/getbycodeall").then((res) => { |
||||
|
this.patientRegister.customerOrgTreeAll = res.data; |
||||
|
tcdate(this.patientRegister.customerOrgTreeAll) |
||||
|
}); |
||||
|
|
||||
|
//体检中心 |
||||
|
getapi("/api/app/organization-units/organization-unit-by-is-peis").then( |
||||
|
(res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.organization = res.data; |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
|
||||
|
//体检单位 |
||||
|
getapi("/api/app/customer-org/in-filter").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.customerOrg = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//体检类别 |
||||
|
getapi("/api/app/medical-type/in-filter").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.medicalType = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//人员类别 |
||||
|
getapi("/api/app/personnel-type/in-filter").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.personnelType = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//婚姻状况 |
||||
|
getapi("/api/app/MaritalStatus/GetMaritalStatusList").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.maritalStatus = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//性激素期 |
||||
|
getapi("/api/app/sex-hormone-term/in-filter").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.sexHormoneTerm = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//民族 |
||||
|
getapi("/api/app/nation/in-filter").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.nation = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//籍惯 ,出生地 |
||||
|
getapi("/api/app/birth-place/in-filter").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.birthPlace = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//套餐 |
||||
|
postapi("/api/app/medicalpackage/GetBasicList", {}).then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.medicalPackage = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//分组,所有分组,不限单位,不限次数 |
||||
|
postapi("/api/app/CustomerOrgGroup/GetBasicList").then((res) => { |
||||
|
if (res.code > -1) { |
||||
|
this.dict.customerOrgGroupAll = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//支付方式 /api/app/pay-mode(全部) |
||||
|
getapi("/api/app/paymode/getlistinisactive").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.payMode = res.data; |
||||
|
//未收费时 |
||||
|
this.chargePaysInit = []; |
||||
|
this.dict.payMode.forEach(e => { |
||||
|
this.chargePaysInit.push({ chargeId: null, payModeId: e.id, chargeMoney: 0, cardBillId: null }) |
||||
|
}); |
||||
|
this.chargePays = deepCopy(this.chargePaysInit); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//体检类别 树结构 |
||||
|
getapi("/api/app/item-type/by-code-all").then((res) => { |
||||
|
if (res.code == 1) { |
||||
|
this.dict.itemTypeTree = res.data; |
||||
|
tcdate(this.dict.itemTypeTree); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
// postapi("/api/app/asbitem/getasbitemlist", {}).then((res) => { |
||||
|
// if (res.code == 1) { |
||||
|
// this.dict.asbItemAll = res.data; |
||||
|
// } |
||||
|
// }); |
||||
|
*/ |
||||
|
console.log("dict", this.dict); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//监听事件() |
||||
|
watch: { |
||||
|
// "dataTransOpts.refresh.charge.S": { |
||||
|
// immediate: true, // 立即执行 |
||||
|
// // // deep: true, // 深度监听复杂类型内变化 |
||||
|
// handler(newVal, oldVal) { |
||||
|
// console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegisterNo) |
||||
|
// this.query.patientRegisterNo = this.patientRegisterNo |
||||
|
// this.Query("patientRegisterNo") |
||||
|
// } |
||||
|
// }, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_button.css'; |
||||
|
@import '../../assets/css/global_card.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global.css'; |
||||
|
|
||||
|
|
||||
|
.query { |
||||
|
margin-left: 5px; |
||||
|
font-size: 14px; |
||||
|
color: #232748; |
||||
|
font-weight: 400; |
||||
|
font-family: "NotoSansSC-Regular"; |
||||
|
} |
||||
|
|
||||
|
.btnDivClass { |
||||
|
display: block; |
||||
|
width: 100px; |
||||
|
margin-left: 10px; |
||||
|
} |
||||
|
|
||||
|
.btnListClass { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 100px; |
||||
|
} |
||||
|
|
||||
|
:deep .el-form-item--mini.el-form-item, |
||||
|
.el-form-item--small.el-form-item { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,308 @@ |
|||||
|
<template> |
||||
|
<div style="font-size: 14px;display: flex; width: 100%;"> |
||||
|
<div style="display: flex;"> |
||||
|
<div :style="`display: block; width: ${window.pageWidth - 10}px;`"> |
||||
|
<!-- 查询条件 与列表 --> |
||||
|
<div |
||||
|
:style="'display: flex;flex-wrap: wrap;height: 40px;background-color: #fff;border-radius: 8px;margin-bottom: 5px;align-items: center;padding: 10px;width:' + (window.pageWidth - 40) + 'px;'"> |
||||
|
|
||||
|
<div class="query"> |
||||
|
<span class="spanClass">条码号</span> |
||||
|
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" clearable style="width: 120px" /> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
<div :style="`height: ${window.pageHeight - 130}px;`"></div> |
||||
|
<!-- 人员列表 --> |
||||
|
<div v-if="false" style="padding: 10px 0 0 0;border-radius: 8px;background-color: #fff;"> |
||||
|
<el-table :data="patientList" border highlight-current-row ref="patientList" |
||||
|
:height="Math.floor(tableListHeight / 2)" @row-click="rowClick" size="small"> |
||||
|
<el-table-column type="index" label="序号" width="40" align="center" /> |
||||
|
<el-table-column prop="chargeSumMoney" label="金额" width="80" align="center" /> |
||||
|
<el-table-column prop="patientName" label="姓名" /> |
||||
|
<el-table-column prop="sexId" label="性别" width="40" /> |
||||
|
<el-table-column prop="age" label="年龄" width="40" /> |
||||
|
<el-table-column prop="patientRegisterNo" label="条码号" width="150" /> |
||||
|
<el-table-column prop="patientNo" label="档案号" /> |
||||
|
<el-table-column prop="medicalTimes" label="体检次数" /> |
||||
|
<el-table-column prop="isVip" label="是否VIP"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="salesman" label="介绍人" /> |
||||
|
<!-- |
||||
|
<el-table-column prop="invoiceNo" label="发票号" /> |
||||
|
<el-table-column prop="invoiceOrgName" label="发票抬头" /> |
||||
|
<el-table-column prop="chargeId" label="介绍人" /> |
||||
|
<el-table-column prop="chargeBackId" label="介绍人" /> |
||||
|
--> |
||||
|
<el-table-column prop="email" label="邮箱" width="180" /> |
||||
|
<el-table-column prop="idNo" label="身份证" width="150" /> |
||||
|
<el-table-column prop="mobileTelephone" label="手机" width="100" /> |
||||
|
<el-table-column prop="telephone" label="电话" width="100" /> |
||||
|
<el-table-column prop="address" label="地址" width="300" /> |
||||
|
|
||||
|
|
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 项目收费列表 --> |
||||
|
<div v-if="false" style="padding: 10px 0 5px 0;border-radius: 8px;background-color: #fff;"> |
||||
|
<el-table :data="details" border highlight-current-row :height="Math.floor(tableListHeight / 2) - 10" |
||||
|
size="small"> |
||||
|
<el-table-column label="序号" width="40" type="index" align="center" /> |
||||
|
<el-table-column label="组合项目" width="240" prop="asbitemName" /> |
||||
|
<el-table-column label="标准价格" prop="standardPrice" width="80" align="center" /> |
||||
|
<el-table-column label="折扣" prop="discount" width="80" align="center" /> |
||||
|
<el-table-column label="数量" prop="amount" width="50" align="center" /> |
||||
|
<el-table-column label="实收价格" prop="chargePrice" width="80" align="center" /> |
||||
|
<el-table-column prop="total" label="金额" width="70" v-if="false" /> |
||||
|
<el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" /> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
<!-- |
||||
|
<div style="margin-left:10px;" class="btnDivClass"> |
||||
|
<div class="btnListClass"> |
||||
|
<el-button type="primary" class="commonbutton" @click="Query">查询</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
--> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from 'moment'; |
||||
|
import { mapState, mapActions } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc"; |
||||
|
|
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
activeName: "peis", |
||||
|
query: { |
||||
|
dateType: '1', // 1登记 2体检 3缴费 |
||||
|
startDate: null, |
||||
|
endDate: null, |
||||
|
patientRegisterNo: '', |
||||
|
patientNo: '', |
||||
|
invoiceNo: '', // 发票号,订单号 |
||||
|
patientName: '', |
||||
|
idNo: "", // 身份证号 |
||||
|
},//查询条件 |
||||
|
patientList: [],//人员列表 |
||||
|
curPatient: {}, // 当前 |
||||
|
details: [], // 收费明细 |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
this.formInit = Object.assign({}, this.form) |
||||
|
this.dictInit(); |
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
this.enterToQuery() |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]), |
||||
|
|
||||
|
tableListHeight() { |
||||
|
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight |
||||
|
return tempH - 175 - 30 |
||||
|
}, |
||||
|
|
||||
|
bodyWidth() { |
||||
|
let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth |
||||
|
return tempW - 110 - 25 |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
...mapActions(["getCustomerOrgGroup"]), |
||||
|
|
||||
|
dddw, moment, |
||||
|
|
||||
|
//查询人员列表数据 |
||||
|
Query() { |
||||
|
let loading = this.$loading({ |
||||
|
lock: true, |
||||
|
text: 'Loading', |
||||
|
spinner: 'el-icon-loading', |
||||
|
background: 'rgba(0, 0, 0, 0.7)' |
||||
|
}); |
||||
|
|
||||
|
this.query.startDate = moment(this.query.startDate).format("yyyy-MM-DD"); |
||||
|
this.query.endDate = moment(this.query.endDate).format("yyyy-MM-DD"); |
||||
|
|
||||
|
postapi('/api/app/AppointPatientRegister/GerAppointPatientRegisterWithAsbitemList', this.query) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.patientList = res.data |
||||
|
if (this.patientList.length > 0) { |
||||
|
this.rowClick(this.patientList[0]) |
||||
|
this.$refs['patientList'].setCurrentRow(this.patientList[0]) |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
loading.close(); |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//人员列表点击 |
||||
|
rowClick(row) { |
||||
|
this.curPatient = row |
||||
|
this.details = row.appointRegisterAsbitemDetail |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
//数据初始化 |
||||
|
dictInit() { |
||||
|
|
||||
|
this.query.startDate = new Date() |
||||
|
this.query.endDate = this.query.startDate |
||||
|
|
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//回车替代查询 |
||||
|
enterToQuery() { |
||||
|
// console.log('enterToTab'); |
||||
|
this.$nextTick(() => { |
||||
|
let inputs = document.querySelectorAll(["input"]); //用数组可以读取多个标签的元素 //.inline-input |
||||
|
|
||||
|
// 为每个输入框添加键盘事件监听器 |
||||
|
inputs.forEach((input, i) => { |
||||
|
// console.log('input',input); |
||||
|
input.addEventListener('keydown', (event) => { |
||||
|
if (event.keyCode === 13) { |
||||
|
// 阻止回车键的默认行为(换行) |
||||
|
event.preventDefault(); |
||||
|
|
||||
|
// 如果按下的是回车查询 |
||||
|
// console.log(input.getAttribute('placeholder'),input.value) |
||||
|
let placeholder = input.getAttribute('placeholder') |
||||
|
switch (placeholder) { |
||||
|
case '条码号': |
||||
|
// 扫码 |
||||
|
this.takeSample([input.value]) |
||||
|
.then(() => { }) |
||||
|
.catch(err => { |
||||
|
console.log('takeSample.err', err) |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
input.select() |
||||
|
}) |
||||
|
break; |
||||
|
case '检查条码': |
||||
|
if (input.value) this.onQueryByPacsNo(input.value) |
||||
|
input.select() |
||||
|
break; |
||||
|
case '检验条码': |
||||
|
if (input.value) this.onQueryByLisNo(input.value) |
||||
|
input.select() |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
input.addEventListener('click', (event) => { |
||||
|
let placeholder = input.getAttribute('placeholder') |
||||
|
switch (placeholder) { |
||||
|
case '条码号': |
||||
|
input.select() |
||||
|
break; |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
// 标记采样时间 |
||||
|
takeSample(lisRequestNos) { |
||||
|
return new Promise((resolve, reject) => { |
||||
|
let body = { |
||||
|
lisRequestNos,SampleTypeIds:[] |
||||
|
} |
||||
|
postapi('/api/app/LisRequest/SetLisRequestSamplerStatus', body) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
resolve(res.data) |
||||
|
} else { |
||||
|
reject(res.message) |
||||
|
} |
||||
|
}) |
||||
|
.catch(err => { |
||||
|
reject(err) |
||||
|
}) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//监听事件() |
||||
|
watch: { |
||||
|
// "dataTransOpts.refresh.charge.S": { |
||||
|
// immediate: true, // 立即执行 |
||||
|
// // // deep: true, // 深度监听复杂类型内变化 |
||||
|
// handler(newVal, oldVal) { |
||||
|
// console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegisterNo) |
||||
|
// this.query.patientRegisterNo = this.patientRegisterNo |
||||
|
// this.Query("patientRegisterNo") |
||||
|
// } |
||||
|
// }, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_button.css'; |
||||
|
@import '../../assets/css/global_card.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global.css'; |
||||
|
|
||||
|
|
||||
|
.query { |
||||
|
margin-left: 5px; |
||||
|
font-size: 14px; |
||||
|
color: #232748; |
||||
|
font-weight: 400; |
||||
|
font-family: "NotoSansSC-Regular"; |
||||
|
} |
||||
|
|
||||
|
.btnDivClass { |
||||
|
display: block; |
||||
|
width: 100px; |
||||
|
margin-left: 10px; |
||||
|
} |
||||
|
|
||||
|
.btnListClass { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 100px; |
||||
|
} |
||||
|
|
||||
|
:deep .el-form-item--mini.el-form-item, |
||||
|
.el-form-item--small.el-form-item { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue