fix: 功能优化,体温统计代码提交。

This commit is contained in:
tianyongbao
2024-10-16 13:00:40 +08:00
parent 20dc140bae
commit b430b2288c
6 changed files with 162 additions and 40 deletions

View File

@@ -168,9 +168,7 @@ const data = reactive({
doctor: [{ required: true, message: '大夫不能为空', trigger: 'blur' }],
partner: [{ required: true, message: '陪同人不能为空', trigger: 'blur' }],
totalCost: [{ required: true, message: '总费用不能为空', trigger: 'blur' }],
// healthRecordId: [
// { required: true, message: '健康档案不能为空', trigger: 'blur' }
// ],
healthRecordId: [{ required: true, message: '健康档案不能为空', trigger: 'blur' }],
visitingTime: [{ required: true, message: '就诊时间不能为空', trigger: 'blur' }],
prescribe: [{ required: true, message: '诊断及开药不能为空', trigger: 'blur' }]
}
@@ -198,6 +196,9 @@ const handlePersonChange = (personId) => {
queryHealthRecordParams.personId = personId
listHealthRecord(queryHealthRecordParams).then((response) => {
healthRecordList.value = response.rows
if (response.rows.length > 0) {
form.value.healthRecordId = healthRecordList.value[0].id
}
})
}
@@ -291,6 +292,16 @@ const handleView = (row) => {
/** 新增按钮操作 */
function handleAdd() {
reset()
if (personList.value.length > 0) {
form.value.personId = personList.value[0].id
queryHealthRecordParams.personId = personList.value[0].id
listHealthRecord(queryHealthRecordParams).then((response) => {
healthRecordList.value = response.rows
if (response.rows.length > 0) {
form.value.healthRecordId = healthRecordList.value[0].id
}
})
}
open.value = true
title.value = '添加就医记录'
}

View File

@@ -8,8 +8,10 @@
<el-option v-for="person in personList" :key="person.id" :label="person.name" :value="person.id" />
</el-select>
</el-form-item>
<el-form-item label="药名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入用药名称" clearable @keyup.enter="handleQuery" />
<el-form-item label="药名称" prop="medicineId">
<el-select v-model="queryParams.medicineId" placeholder="请选择药品名称" clearable>
<el-option v-for="medicine in medicineList" :key="medicine.id" :label="medicine.shortNameBrandPackaging" :value="medicine.id" />
</el-select>
</el-form-item>
<el-form-item label="用药类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择用药类型" clearable>
@@ -89,7 +91,7 @@
<el-dialog :title="title" v-model="open" width="880px" append-to-body>
<el-form ref="marRecordRef" :model="form" :inline="true" :rules="rules" label-width="120px">
<el-form-item label="人员姓名" prop="personId">
<el-select v-model="form.personId" placeholder="请选择人员姓名" @change="handlePersonChange" clearable>
<el-select v-model="form.personId" placeholder="请选择人员姓名" @change="handlePersonChange">
<el-option v-for="person in personList" :key="person.id" :label="person.name" :value="person.id" />
</el-select>
</el-form-item>
@@ -98,14 +100,19 @@
<el-option v-for="health in healthRecordList" :key="health.id" :label="health.name" :value="health.id" />
</el-select>
</el-form-item>
<el-form-item label="用药名称" prop="name">
<el-input v-model="form.name" placeholder="请输入用药名称" />
</el-form-item>
<el-form-item label="用药类型" prop="type">
<el-select v-model="form.type" placeholder="请选择用药类型">
<el-select v-model="form.type" placeholder="请选择用药类型" @change="handleTypeChange">
<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 label="药品名称" prop="medicineId">
<el-select v-model="form.medicineId" placeholder="请选择药品名称" @change="handleMedicineChange" clearable>
<el-option v-for="medicine in medicineList" :key="medicine.id" :label="medicine.shortNameBrandPackaging" :value="medicine.id" />
</el-select>
</el-form-item>
<el-form-item label="用药名称" v-show="false" prop="name">
<el-input v-model="form.name" placeholder="请输入用药名称" />
</el-form-item>
<el-form-item label="药品来源" prop="resource">
<el-select v-model="form.resource" placeholder="请选择药品来源">
<el-option v-for="dict in mar_resource" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
@@ -119,15 +126,17 @@
<el-form-item label="用药时间" prop="dosingTime">
<el-date-picker clearable v-model="form.dosingTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择用药时间"> </el-date-picker>
</el-form-item>
<el-form-item label="用药剂量" prop="dosage"> <el-input v-model="form.dosage" placeholder="请输入用药剂量" /></el-form-item>
<el-form-item label="用药单位" prop="unit">
<el-form-item label="用药剂量" prop="dosage">
<el-input @change="handleDosageChange" v-model="form.dosage" placeholder="请输入用药剂量"
/></el-form-item>
<el-form-item label="用药单位" disabled prop="unit">
<el-select v-model="form.unit" placeholder="请选择用药单位">
<el-option v-for="dict in medical_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="含量" prop="content"> <el-input v-model="form.content" placeholder="请输入含量" /></el-form-item>
<el-form-item label="含量单位" prop="contentUnit">
<el-select v-model="form.contentUnit" placeholder="请选择含量单位">
<el-form-item v-show="false" label="含量" prop="content"> <el-input disabled v-model="form.content" placeholder="请输入含量" /></el-form-item>
<el-form-item v-show="false" label="含量单位" prop="contentUnit">
<el-select disabled v-model="form.contentUnit" placeholder="请选择含量单位">
<el-option v-for="dict in content_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
@@ -149,6 +158,7 @@
import { listMarRecord, getMarRecord, delMarRecord, addMarRecord, updateMarRecord } from '@/api/health/marRecord'
import { listPerson, getPerson } from '@/api/health/person'
import { listHealthRecord } from '@/api/health/healthRecord'
import { listMedicineBasic, getMedicineBasic } from '@/api/health/medicineBasic'
import dayjs from 'dayjs'
// eslint-disable-next-line no-unused-vars
import { require } from '@/utils/require'
@@ -166,6 +176,7 @@ const total = ref(0)
const title = ref('')
const personList = ref([])
const healthRecordList = ref([])
const medicineList = ref([])
const operateList = ref([
{ id: 'view', icon: 'View', title: '查看', hasPermi: ['health:marRecord:query'] },
{ id: 'edit', icon: 'Edit', title: '修改', hasPermi: ['health:marRecord:edit'] },
@@ -196,9 +207,15 @@ const data = reactive({
state: '1',
pageSize: 1000
},
queryMedicineParams: {
pageNum: 1,
treatmentType: null,
pageSize: 1000
},
rules: {
name: [{ required: true, message: '药名称不能为空', trigger: 'blur' }],
type: [{ required: true, message: '用药类型1退烧2消炎3止咳4止泻5抗病毒不能为空', trigger: 'change' }],
medicineId: [{ required: true, message: '药名称不能为空', trigger: 'blur' }],
type: [{ required: true, message: '用药类型不能为空', trigger: 'change' }],
healthRecordId: [{ required: true, message: '健康档案不能为空', trigger: 'change' }],
dosingTime: [{ required: true, message: '用药时间不能为空', trigger: 'blur' }],
dosage: [{ required: true, message: '用药剂量不能为空', trigger: 'blur' }],
resource: [{ required: true, message: '药品来源不能为空', trigger: 'blur' }],
@@ -226,12 +243,32 @@ const handleOperate = (operate, row) => {
}
}
const { queryParams, form, rules, queryPersonParams, queryHealthRecordParams } = toRefs(data)
const { queryParams, form, rules, queryPersonParams, queryHealthRecordParams, queryMedicineParams } = toRefs(data)
const handleDosageChange = (val) => {}
const handlePersonChange = (personId) => {
queryHealthRecordParams.personId = personId
listHealthRecord(queryHealthRecordParams).then((response) => {
healthRecordList.value = response.rows
if (response.rows.length > 0) {
form.value.healthRecordId = healthRecordList.value[0].id
}
})
}
const handleTypeChange = (type) => {
queryMedicineParams.value.treatmentType = type
listMedicineBasic(queryMedicineParams.value).then((response) => {
medicineList.value = response.rows
})
}
const handleMedicineChange = (medicineId) => {
getMedicineBasic(medicineId).then((response) => {
form.value.name = response.data.name
form.value.unit = response.data.unit
form.value.contentUnit = response.data.contentUnit
})
}
@@ -242,6 +279,13 @@ function getPersonList() {
})
}
/** 查询药品管理列表 */
function getMedicineList() {
listMedicineBasic(queryMedicineParams.value).then((response) => {
medicineList.value = response.rows
})
}
/** 查询用药记录列表 */
function getList() {
loading.value = true
@@ -284,7 +328,11 @@ function reset() {
dosage: null,
personId: null,
resource: '1',
place: '1'
place: '1',
medicineId: null,
unit: null,
content: '1',
contentUnit: null
}
proxy.resetForm('marRecordRef')
}
@@ -324,6 +372,16 @@ const handleView = (row) => {
/** 新增按钮操作 */
function handleAdd() {
reset()
if (personList.value.length > 0) {
form.value.personId = personList.value[0].id
queryHealthRecordParams.personId = personList.value[0].id
listHealthRecord(queryHealthRecordParams).then((response) => {
healthRecordList.value = response.rows
if (response.rows.length > 0) {
form.value.healthRecordId = healthRecordList.value[0].id
}
})
}
open.value = true
title.value = '添加用药记录'
}
@@ -400,4 +458,5 @@ function handleExport() {
getList()
getPersonList()
getMedicineList()
</script>

View File

@@ -94,8 +94,11 @@
<!-- 添加或修改药品基础信息对话框 -->
<el-dialog :title="title" v-model="open" width="1280px" append-to-body>
<el-form ref="medicineBasicRef" :model="form" :inline="true" :rules="rules" label-width="120px">
<el-form-item label="药品称" prop="name">
<el-input v-model="form.name" placeholder="请输入药品称" />
<el-form-item label="药品称" prop="name">
<el-input v-model="form.name" placeholder="请输入药品称" />
</el-form-item>
<el-form-item label="药品简称" prop="shortName">
<el-input v-model="form.shortName" placeholder="请输入药品简称" />
</el-form-item>
<el-form-item label="药品编码" prop="code">
<el-input v-model="form.code" placeholder="请输入药品编码" />
@@ -126,6 +129,11 @@
<el-form-item label="药品包装" prop="packaging">
<el-input v-model="form.packaging" placeholder="请输入药品包装" />
</el-form-item>
<el-form-item label="包装单位" prop="packageUnit">
<el-select v-model="form.packageUnit" placeholder="请选择包装单位">
<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="manufacturers">
<el-input v-model="form.manufacturers" placeholder="请输入生产厂家" />
</el-form-item>
@@ -136,28 +144,28 @@
</el-select>
</el-form-item>
<el-form-item label="单个规格" prop="specifications">
<el-input v-model="form.specifications" placeholder="请输入单个规格" />
<el-form-item label="规格" prop="specifications">
<el-input v-model="form.specifications" placeholder="请输入规格" />
</el-form-item>
<el-form-item label="单个单位" prop="unit">
<el-select v-model="form.unit" placeholder="请选择单个单位">
<el-form-item label="规格单位" prop="unit">
<el-select v-model="form.unit" placeholder="请选择规格单位">
<el-option v-for="dict in medical_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="含量" prop="content">
<el-input v-model="form.content" placeholder="请输入含量" />
<el-form-item label="单个含量" prop="content">
<el-input v-model="form.content" placeholder="请输入单个含量" />
</el-form-item>
<el-form-item label="含量单位" prop="contentUnit">
<el-select v-model="form.contentUnit" placeholder="请选择含量单位">
<el-option v-for="dict in content_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="生产地址" style="width: 788px" prop="address">
<el-input v-model="form.address" placeholder="请输入生产地址" />
</el-form-item>
<el-form-item label="功能主治" style="width: 1200px" prop="indications">
<el-input v-model="form.indications" placeholder="请输入功能主治" />
</el-form-item>
<el-form-item label="生产地址" style="width: 1200px" prop="address">
<el-input v-model="form.address" placeholder="请输入生产地址" />
</el-form-item>
<el-form-item label="贮藏" style="width: 1200px" prop="storage">
<el-input v-model="form.storage" placeholder="请输入贮藏" />
</el-form-item>
@@ -192,14 +200,15 @@ import { listMedicineBasic, getMedicineBasic, delMedicineBasic, addMedicineBasic
// eslint-disable-next-line no-unused-vars
import { require } from '@/utils/require'
const { proxy } = getCurrentInstance()
const { medicine_category, mar_type, medicine_classification, dosage_form, is_import, medical_unit, content_unit } = proxy.useDict(
const { medicine_category, mar_type, medicine_classification, dosage_form, is_import, medical_unit, content_unit, package_unit } = proxy.useDict(
'medicine_category',
'mar_type',
'medicine_classification',
'dosage_form',
'is_import',
'medical_unit',
'content_unit'
'content_unit',
'package_unit'
)
const medicineBasicList = ref([])
@@ -233,16 +242,18 @@ const data = reactive({
ingredients: null,
usage: null,
dosageForm: null,
code: null
code: null,
shortName: null
},
rules: {
name: [{ required: true, message: '药品称不能为空', trigger: 'blur' }],
name: [{ required: true, message: '药品称不能为空', trigger: 'blur' }],
shortName: [{ required: true, message: '药品简称不能为空', trigger: 'blur' }],
classification: [{ required: true, message: '药品分类不能为空', trigger: 'change' }],
category: [{ required: true, message: '类别不能为空', trigger: 'change' }],
brand: [{ required: true, message: '品牌不能为空', trigger: 'blur' }],
packaging: [{ required: true, message: '药品包装不能为空', trigger: 'blur' }],
manufacturers: [{ required: true, message: '生产厂家不能为空', trigger: 'blur' }],
treatmentType: [{ required: true, message: '治疗类型不能为空', trigger: 'change' }],
//treatmentType: [{ required: true, message: '治疗类型不能为空', trigger: 'change' }],
dosageForm: [{ required: true, message: '药品剂型不能为空', trigger: 'change' }],
code: [{ required: true, message: '药品编码不能为空', trigger: 'blur' }]
}

View File

@@ -55,8 +55,9 @@
<span>{{ parseTime(scope.row.expiringDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="剩余数量" align="center" width="100" prop="leftCount" />
<el-table-column label="规格总数" align="center" width="100" prop="totalCount" />
<el-table-column label="使用数量" align="center" width="100" prop="usedCount" />
<el-table-column label="剩余数量" align="center" width="100" prop="leftCount" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<div class="ctrl-btn d-flex">
@@ -89,6 +90,19 @@
<el-form-item label="入库数量" prop="quantity">
<el-input v-model="form.quantity" type="number" placeholder="请输入入库数量"> </el-input>
</el-form-item>
<el-form-item label="包装单位" prop="packageUnit">
<el-select v-model="form.packageUnit" placeholder="请选择包装单位">
<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="totalCount">
<el-input v-model="form.totalCount" type="number" placeholder="请输入规格总数"> </el-input>
</el-form-item>
<el-form-item label="规格单位" prop="unit">
<el-select v-model="form.unit" placeholder="请选择规格单位">
<el-option v-for="dict in medical_unit" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="使用状态" prop="state">
<el-select v-model="form.state" placeholder="请选择使用状态">
<el-option v-for="dict in used_state" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
@@ -100,6 +114,12 @@
<el-form-item label="过期日期" prop="expiringDate">
<el-date-picker clearable v-model="form.expiringDate" type="date" value-format="YYYY-MM-DD" placeholder="请选择过期日期"> </el-date-picker>
</el-form-item>
<el-form-item label="已使用数量" prop="usedCount">
<el-input v-model="form.usedCount" type="number" placeholder="请输入已使用数量"> </el-input>
</el-form-item>
<el-form-item label="剩余数量" prop="leftCount">
<el-input v-model="form.leftCount" type="number" placeholder="请输入剩余数量"> </el-input>
</el-form-item>
<el-form-item label="年龄体重" prop="ageWeight">
<el-input v-model="form.ageWeight" placeholder="请输入年龄体重" />
</el-form-item>
@@ -139,7 +159,7 @@ import { listMedicineStockIn, getMedicineStockIn, delMedicineStockIn, addMedicin
import { listMedicineBasic, getMedicineBasic } from '@/api/health/medicineBasic'
import { require } from '@/utils/require'
const { proxy } = getCurrentInstance()
const { used_state } = proxy.useDict('used_state')
const { used_state, package_unit, medical_unit } = proxy.useDict('used_state', 'package_unit', 'medical_unit')
const medicineStockInList = ref([])
const open = ref(false)
@@ -182,7 +202,7 @@ const data = reactive({
quantity: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
productionDate: [{ required: true, message: '生产日期不能为空', trigger: 'blur' }],
expiringDate: [{ required: true, message: '过期日期不能为空', trigger: 'blur' }],
purchaseDate: [{ required: true, message: '购买日期不能为空', trigger: 'blur' }],
//purchaseDate: [{ required: true, message: '购买日期不能为空', trigger: 'blur' }],
code: [{ required: true, message: '入库编号不能为空', trigger: 'blur' }],
state: [{ required: true, message: '使用状态不能为空', trigger: 'change' }]
}
@@ -252,7 +272,10 @@ function reset() {
purchaseAddress: null,
totalPrice: null,
usage: null,
ageWeight: null
ageWeight: null,
totalCount: null,
unit: null,
packageUnit: null
}
proxy.resetForm('medicineStockInRef')
}

View File

@@ -47,6 +47,7 @@
<el-table-column label="年龄" align="center" prop="age" />
<el-table-column label="身高CM" align="center" prop="height" />
<el-table-column label="体重KG" align="center" prop="weight" />
<el-table-column label="排序" align="center" prop="ranking" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<div class="ctrl-btn d-flex">
@@ -77,6 +78,9 @@
<el-form-item label="生日" prop="birthday">
<el-date-picker clearable v-model="form.birthday" type="date" value-format="YYYY-MM-DD" placeholder="请选择生日"> </el-date-picker>
</el-form-item>
<el-form-item label="排序" prop="ranking">
<el-input-number v-model="form.ranking" placeholder="排序" />
</el-form-item>
<el-form-item label="身高" prop="height">
<el-input v-model="form.height" type="number" placeholder="请输入身高">
<template #suffix>CM</template>
@@ -189,7 +193,8 @@ function reset() {
birthday: null,
nickName: null,
height: null,
weight: null
weight: null,
ranking: 0
}
proxy.resetForm('personRef')
}

View File

@@ -174,6 +174,9 @@ const handlePersonChange = (personId) => {
queryHealthRecordParams.personId = personId
listHealthRecord(queryHealthRecordParams).then((response) => {
healthRecordList.value = response.rows
if (response.rows.length > 0) {
form.value.healthRecordId = healthRecordList.value[0].id
}
})
}
@@ -274,6 +277,16 @@ const handleView = (row) => {
/** 新增按钮操作 */
function handleAdd() {
reset()
if (personList.value.length > 0) {
form.value.personId = personList.value[0].id
queryHealthRecordParams.personId = personList.value[0].id
listHealthRecord(queryHealthRecordParams).then((response) => {
healthRecordList.value = response.rows
if (response.rows.length > 0) {
form.value.healthRecordId = healthRecordList.value[0].id
}
})
}
open.value = true
title.value = '添加体温记录'
}