fix: 健康统计,统计功能页面初始化,未开发。

This commit is contained in:
tianyongbao
2024-11-02 20:26:50 +08:00
parent 1bfd8d8104
commit 4806b8a2cf
13 changed files with 1879 additions and 19 deletions

View File

@@ -138,6 +138,11 @@
<el-date-picker clearable v-model="formDetail.costTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择产生时间">
</el-date-picker>
</el-form-item>
<el-form-item label="治疗类型" v-show="showMedicine" prop="treatType">
<el-select v-model="form.treatType" placeholder="请选择用药类型" @change="handleTreatTypeChange">
<el-option v-for="dict in mar_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item v-show="showMedicine" label="药品名称" prop="medicineId">
<el-select v-model="formDetail.medicineId" placeholder="请选择药品名称" @change="handleMedicineChange" clearable>
<el-option v-for="medicine in medicineList" :key="medicine.id" :label="medicine.shortNameBrandPackaging" :value="medicine.id" />
@@ -157,16 +162,16 @@
<el-input v-model="formDetail.costName" placeholder="请输入费用名称" />
</el-form-item>
<el-form-item label="单价" prop="price">
<el-input v-model="formDetail.price" type="number" placeholder="请输入单价">
<el-input v-model="formDetail.price" type="number" @change="handlePriceChange" placeholder="请输入单价">
<template #suffix></template>
</el-input>
</el-form-item>
<el-form-item label="数量" prop="count">
<el-input v-model="formDetail.count" type="number" @change="handleCountchange" placeholder="请输入数量"> </el-input>
<el-input v-model="formDetail.count" type="number" @change="handleCountChange" placeholder="请输入数量"> </el-input>
</el-form-item>
<el-form-item label="单位" disabled prop="unit">
<el-select v-model="formDetail.unit" clearable placeholder="请选择单位">
<el-option v-for="dict in medical_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
<el-option v-for="dict in package_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="总价" prop="totalCost">
@@ -200,23 +205,23 @@
<div class="content-con">
<el-table v-loading="loading" @selection-change="handleSelectionChange" :data="doctorRecordCostList">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="产生时间" align="center" prop="costTime" width="180"> </el-table-column>
<el-table-column label="产生时间" align="center" prop="costTime" width="170"> </el-table-column>
<el-table-column label="费用类型" width="100" align="center" prop="type">
<template #default="scope">
<dict-tag :options="cost_type" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column label="费用名称" align="center" prop="costName" />
<el-table-column label="单价" align="center" width="80" prop="price" />
<el-table-column label="单价(元)" align="center" width="100" prop="price" />
<el-table-column label="数量" align="center" width="80" prop="count" />
<el-table-column label="单位" align="center" width="80" prop="unit">
<template #default="scope">
<dict-tag :options="medical_unit" :value="scope.row.unit" />
<dict-tag :options="package_unit" :value="scope.row.unit" />
</template>
</el-table-column>
<el-table-column label="总价" align="center" width="100" prop="totalCost" />
<el-table-column label="总价(元)" align="center" width="100" prop="totalCost" />
<el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
<template v-slot="scope">
<div class="ctrl-btn d-flex">
<el-tooltip v-for="item in operateDetailList" :key="item.id" class="item" effect="dark" :content="item.title" placement="top">
@@ -244,12 +249,13 @@ import dayjs from 'dayjs'
// eslint-disable-next-line no-unused-vars
import { require } from '@/utils/require'
const { proxy } = getCurrentInstance()
const { doctor_type, cost_type, check_type, medical_unit, nursing_type } = proxy.useDict(
const { doctor_type, cost_type, check_type, package_unit, nursing_type, mar_type } = proxy.useDict(
'doctor_type',
'cost_type',
'check_type',
'medical_unit',
'nursing_type'
'package_unit',
'nursing_type',
'mar_type'
)
const medicineList = ref([])
const doctorRecordList = ref([])
@@ -281,6 +287,7 @@ const operateList = ref([
{ id: 'delete', icon: 'Delete', title: '删除', hasPermi: ['health:doctorRecord:remove'] }
])
const operateDetailList = ref([
{ id: 'copy', icon: 'Link', title: '复制', hasPermi: ['health:doctorRecord:edit'] },
{ id: 'edit', icon: 'Edit', title: '修改', hasPermi: ['health:doctorRecord:edit'] },
{ id: 'delete', icon: 'Delete', title: '删除', hasPermi: ['health:doctorRecord:remove'] }
])
@@ -301,6 +308,11 @@ const data = reactive({
pageNum: 1,
pageSize: 1000
},
queryMedicineParams: {
pageNum: 1,
treatmentType: null,
pageSize: 1000
},
queryHealthRecordParams: {
pageNum: 1,
personId: null,
@@ -332,7 +344,14 @@ const data = reactive({
})
/** 查询药品管理列表 */
function getMedicineList() {
listMedicineBasic(queryPersonParams.value).then((response) => {
listMedicineBasic(queryMedicineParams.value).then((response) => {
medicineList.value = response.rows
})
}
const handleTreatTypeChange = (type) => {
queryMedicineParams.value.treatmentType = type
listMedicineBasic(queryMedicineParams.value).then((response) => {
medicineList.value = response.rows
})
}
@@ -355,7 +374,7 @@ const handleOperate = (operate, row) => {
}
}
const { queryParams, form, formDetail, rules, queryPersonParams, queryHealthRecordParams, rulesDetail } = toRefs(data)
const { queryParams, form, formDetail, rules, queryPersonParams, queryMedicineParams, queryHealthRecordParams, rulesDetail } = toRefs(data)
const handlePersonChange = (personId) => {
queryHealthRecordParams.personId = personId
@@ -367,9 +386,14 @@ const handlePersonChange = (personId) => {
})
}
const handleCountchange = (count) => {
const handleCountChange = (count) => {
if (formDetail.value.price != null) {
formDetail.value.totalCost = count * formDetail.value.price
formDetail.value.totalCost = parseFloat(count * formDetail.value.price).toFixed(2)
}
}
const handlePriceChange = (price) => {
if (formDetail.value.count != null) {
formDetail.value.totalCost = parseFloat(price * formDetail.value.count).toFixed(2)
}
}
const handleNursingTypechange = (type) => {
@@ -388,7 +412,7 @@ const handleCheckTypechange = (type) => {
const handleMedicineChange = (medicineId) => {
getMedicineBasic(medicineId).then((response) => {
formDetail.value.unit = response.data.unit
formDetail.value.unit = response.data.packageUnit
formDetail.value.costName = response.data.shortNameBrandPackaging
})
}
@@ -400,40 +424,49 @@ const handleTypeChange = (type) => {
showNursingType.value = false
showMedicine.value = false
formDetail.value.costName = '挂号费'
formDetail.value.unit = '7'
formDetail.value.count = 1
formDetail.value.unit = '6'
} else if (type == '2') {
//检测检查
showCheckType.value = true
showNursingType.value = false
showMedicine.value = false
formDetail.value.count = 1
formDetail.value.unit = '5'
} else if (type == '3') {
//药品
getMedicineList()
showCheckType.value = false
showNursingType.value = false
showMedicine.value = true
formDetail.value.count = 1
} else if (type == '4') {
//护理治疗
showCheckType.value = false
showNursingType.value = true
showMedicine.value = false
formDetail.value.unit = '6'
formDetail.value.count = 1
} else if (type == '5') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
formDetail.value.costName = '交通费'
formDetail.value.unit = '7'
formDetail.value.unit = '6'
formDetail.value.count = 1
} else if (type == '6') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
formDetail.value.costName = '餐饮'
formDetail.value.unit = '7'
formDetail.value.unit = '6'
formDetail.value.count = 1
} else if (type == '7') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
formDetail.value.costName = ''
formDetail.value.count = 1
formDetail.value.unit = null
}
}
@@ -448,6 +481,9 @@ function handleAddDetail() {
const handleDetailOperate = (operate, row) => {
switch (operate) {
case 'copy':
handleCopy(row)
break
case 'edit':
handleUpdateDetail(row)
break
@@ -458,10 +494,59 @@ const handleDetailOperate = (operate, row) => {
break
}
}
/** 复制按钮操作 */
function handleCopy(row) {
resetDetail()
getDoctorRecordCost(row.id).then((response) => {
formDetail.value = response.data
const type = response.data.type
//挂号费
if (type == '1') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
} else if (type == '2') {
//检测检查
showCheckType.value = true
showNursingType.value = false
showMedicine.value = false
} else if (type == '3') {
//药品
getMedicineList()
showCheckType.value = false
showNursingType.value = false
showMedicine.value = true
} else if (type == '4') {
//护理治疗
showCheckType.value = false
showNursingType.value = true
showMedicine.value = false
} else if (type == '5') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
} else if (type == '6') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
} else if (type == '7') {
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
}
formDetail.value.id = null
openDetail.value = true
titleDetail.value = '复制费用明细'
})
}
// 取消按钮
function cancelDetail() {
openDetail.value = false
resetDetail()
//检测检查
showCheckType.value = false
showNursingType.value = false
showMedicine.value = false
}
/** 总利息按钮操作 */
function handleUpdateCost() {