Commit d959365d authored by 王飞龙's avatar 王飞龙

Merge remote-tracking branch 'origin/master'

parents ba2921c8 cb5f578e
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run lint
......@@ -171,6 +171,16 @@ export const constantRoutes = [
meta: {
title: '病历详情', icon: 'component'
}
},
// 病历编辑
{
path: 'medical-edit/:id',
component: () => import('@/views/medical-record-management/medical-edit'),
name: 'MedicalEdit',
props: true,
meta: {
title: '病历编辑', icon: 'component'
}
}
]
},
......@@ -423,6 +433,7 @@ export const dynamicRoutes = [
}
]
},
// 数据字典
{
path: '/system/dict-data',
component: Layout,
......
......@@ -47,17 +47,16 @@ color: #333333;"
<el-form-item label="状态" prop="articleStatus">
<div style="display: flex; ">
<div style="padding-right: 15px;">
<el-switch
v-model="form.articleStatus"
active-color="#13ce66"
active-value="0"
disabled
inactive-color="#ff4949"
inactive-value="1"
<el-select v-model="form.articleStatus" disabled>
<el-option
v-for="({value, label}) in statusList"
:label="label"
:value="value"
/>
</el-select>
</div>
<div v-if="form.articleStatus==='0'" style="padding-top: 1px;">已上架</div>
<div v-else-if="form.articleStatus==='1'" style="padding-top: 1px;">已下架</div>
<!-- <div v-if="form.articleStatus==='0'" style="padding-top: 1px;">已上架</div>-->
<!-- <div v-else-if="form.articleStatus==='1'" style="padding-top: 1px;">已下架</div>-->
</div>
</el-form-item>
<!-- 2-- 文章信息--文章内容 -->
......@@ -109,13 +108,18 @@ export default {
return {
// 图片访问
baseURL: process.env.VUE_APP_TEST_API,
// 状态下拉框
statusList: [{
label: '已上架',
value: '0'
}, {
label: '已下架',
value: '1'
}],
// 弹出层标题
title: '',
// 是否显示弹出层
open: false,
// 状态位
value: true,
// 表单参数
form: {},
// 表单校验
......
......@@ -39,16 +39,14 @@ color: #333333;"
<el-form-item label="状态" prop="articleStatus">
<div style="display: flex;">
<div style="padding-right: 15px;">
<el-switch
v-model="form.articleStatus"
active-color="#13ce66"
active-value="0"
inactive-color="#ff4949"
inactive-value="1"
<el-select v-model="form.articleStatus">
<el-option
v-for="({value, label}) in statusList"
:label="label"
:value="value"
/>
</el-select>
</div>
<div v-if="form.articleStatus==='0'" style="padding-top: 1px;">已上架</div>
<div v-else-if="form.articleStatus==='1'" style="padding-top: 1px;">已下架</div>
</div>
</el-form-item>
<el-form-item label="文章内容" prop="articleContent">
......@@ -89,6 +87,14 @@ export default {
},
data() {
return {
// 状态下拉框
statusList: [{
label: '已上架',
value: '0'
}, {
label: '已下架',
value: '1'
}],
user: {},
isShow: true,
......@@ -96,8 +102,6 @@ export default {
title: '',
// 是否显示弹出层
open: false,
// 状态位
value: true,
// 表单参数
form: {},
// 表单校验
......
......@@ -34,16 +34,16 @@ color: #333333;"
<el-form-item label="状态" prop="articleStatus">
<div style="display: flex;">
<div style="padding-right: 15px;">
<el-switch
v-model="form.articleStatus"
active-color="#13ce66"
active-value="0"
inactive-color="#ff4949"
inactive-value="1"
<el-select v-model="form.articleStatus">
<el-option
v-for="({value, label}) in statusList"
:label="label"
:value="value"
/>
</el-select>
</div>
<div v-if="form.articleStatus==='0'" style="padding-top: 1px;">已上架</div>
<div v-else-if="form.articleStatus==='1'" style="padding-top: 1px;">已下架</div>
<!-- <div v-if="form.articleStatus==='0'" style="padding-top: 1px;">已上架</div>-->
<!-- <div v-else-if="form.articleStatus==='1'" style="padding-top: 1px;">已下架</div>-->
</div>
</el-form-item>
<el-form-item label="文章内容" prop="articleContent">
......@@ -84,6 +84,14 @@ export default {
},
data() {
return {
// 状态下拉框
statusList: [{
label: '已上架',
value: '0'
}, {
label: '已下架',
value: '1'
}],
// 弹出层标题
title: '',
// 是否显示弹出层
......
......@@ -111,7 +111,6 @@
border
row-key="id"
@selection-change="handleSelectionChange"
@select-all="selectAll($event, false)"
>
<el-table-column align="center" reserve-selection type="selection" width="55" />
<el-table-column align="center" label="序号" min-width="80" show-overflow-tooltip type="index" />
......
<template>
<div class="medical-detail">
<el-card class="box-card">
<div style="background-color: #FFFFFF;">
<!-- 病历管理--宠物详情页-->
<div class="pet-detail">
<!-- 头部标题-->
<div slot="header" class="clearfix">
<span style="color: #666666; font-weight: 600; font-size: 17px;">查看</span>
</div>
<div style="padding-top:32px;text-align: center;">
<span
style="font-size: 24px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;
font-weight: bold;
color: #333333;"
>详情</span>
</div>
<!-- 整体卡片内页面的样式--边距-->
<div style="padding: 20px 20px 20px 20px;">
<!-- 宠物信息-->
<!--1--宠物头像-->
<div style="display: flex">
<div class="tip3" />
<div style="padding-top: 3px;padding-left: 18px; color: #666666; font-weight: 600; font-size: 17px;">宠物
<!-- 1-- 宠物基本信息的页面--标签头 -->
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>宠物头像
</div>
</div>
<div style=" margin-top: 20px;margin-left: 5%;">
<el-row :gutter="20">
<el-col :span="2">
<!-- 内部信息 -->
<div class="base-msg">
<div>
<el-image :src="baseURL+formPet.petPicture" />
<!--宠物图片-->
<div class="petPicture" style="padding-bottom: 40px;">
<ImagePreview :height="150" :src="baseURL+petInfo.petPicture" :width="150" />
</div>
</el-col>
<el-col :span="20" style="height: 120px;">
<div class="base-msg1">
<div>
<span>宠物昵称: {{ formPet.petNickname }}</span>
</div>
<!--宠物年龄-->
<div>
<span>宠物年龄: {{ formPet.petAge }}</span>
</div>
<!--宠物性别-->
<!--2--基本信息-->
<div style="display: flex">
宠物性别:<dict-tag :options="dict.type.pet_sex" :value="formPet.petSex" />
</div>
<!--宠物ID-->
<div>
<span>宠物ID: {{ formPet.id }}</span>
<!-- 1-- 宠物基本信息的页面--标签头 -->
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>宠物信息
</div>
<!--宠物品种-->
<div>
<span>宠物品种: {{ formPet.petBreed }}</span>
</div>
<!--宠物毛色-->
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<!-- 1-- 宠物基本信息的页面--内部信息 -->
<div class="base-msg">
<div>
<span>宠物毛色: {{ formPet.petColor }}</span>
</div>
<!--基础信息右边的信息-->
<div class="base-inner">
<!--宠物昵称-->
<el-row>
<el-col :span="8">
<el-form-item label="宠物昵称">
<span class="content-style">{{ petInfo.petNickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<!--宠物ID-->
<el-form-item label="宠物ID">
<span class="content-style">{{ petInfo.petsId }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<!--宠物品种-->
<el-form-item label="宠物品种">
<span class="content-style">{{
options[petInfo.petBreed.substring(0, 1)].children.find(({ value }) => value === petInfo.petBreed.substring(1)) && options[petInfo.petBreed.substring(0, 1)].children.find(({ value }) => value === petInfo.petBreed.substring(1)).label
}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!--宠物性别-->
<el-form-item label="宠物性别">
<!-- <dict-tag :options="dict.type.pet_sex" :value="petInfo.petSex"/>-->
<i v-if="petInfo.petSex === '0'" class="el-icon-male" />
<i v-else-if="petInfo.petSex === '1'" class="el-icon-female" />
</el-form-item>
</el-col>
<el-col :span="8">
<!--宠物年龄-->
<el-form-item label="宠物年龄">
<span class="content-style">{{ petInfo.petAge }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<!--宠物体重-->
<div>
<span>宠物体重: {{ formPet.petWeight }}kg</span>
</div>
<el-form-item label="宠物体重">
<span class="content-style">{{ petInfo.petWeight }}kg</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!--宠物毛色-->
<el-form-item label="宠物毛色">
<span class="content-style">{{ petInfo.petColor }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<!--绝育情况-->
<div style="display: flex">
绝育情况:<dict-tag :options="dict.type.sterilization_status" :value="formPet.sterilizationStatus" />
</div>
<el-form-item label="绝育情况">
<dict-tag
:options="dict.type.sterilization_status"
:value="petInfo.sterilizationStatus"
class="content-style"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<!--疫苗情况-->
<div style="display: flex">
疫苗情况:<dict-tag :options="dict.type.vaccine_situation" :value="formPet.vaccineSituation" />
</div>
<!--生存状态-->
<div style="display: flex">
生存状态:<dict-tag :options="dict.type.exist_state" :value="formPet.existState" />
</div>
<!--创建时间-->
<div>
<span>创建时间:{{ formPet.createTime }}</span>
</div>
</div>
<el-form-item label="疫苗情况">
<dict-tag
:options="dict.type.vaccine_situation"
:value="petInfo.vaccineSituation"
class="content-style"
/>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row>
<el-col :span="8">
<!--宠物保险-->
<div style="display: flex">
<div class="tip3" />
<div style="padding-top: 3px;padding-left: 18px; color: #666666; font-weight: 600; font-size: 17px;">宠物保险
</div>
</div>
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="保险公司名称" prop="protectName" />
<el-table-column align="center" label="种类" prop="type" />
<el-table-column align="center" label="时间" prop="date" />
</el-table>
</div>
<!--宠物主基本信息-->
<div style="display: flex; padding-top: 20px">
<!-- 1-- 宠物主基本信息的页面--标签头 -->
<div class="tip3" />
<div style="padding-top: 3px;padding-left: 18px; color: #666666; font-weight: 600; font-size: 17px;">
宠物主信息
</div>
</div>
<div class="base-msg2">
<!--昵称-->
<div>
<span>昵称: {{ petOwners.nickname }}</span>
</div>
<!--userID-->
<div>
<span>用户ID: {{ petOwners.userId }}</span>
</div>
<!--手机号-->
<div>
<span>手机号: {{ petOwners.phonenumber }}</span>
</div>
<div>
<span>创建时间:{{ petOwners.createTime }}</span>
</div>
</div>
<!--兽医基本信息-->
<div v-if="userType!='2'">
<div style="display: flex; padding-top: 20px">
<!-- 1-- 宠物主基本信息的页面--标签头 -->
<div class="tip3" />
<div style="padding-top: 3px;padding-left: 18px; color: #666666; font-weight: 600; font-size: 17px;">
兽医信息
</div>
</div>
<div style=" margin-top: 20px;margin-left: 5%;">
<el-row :gutter="20">
<el-col :span="2">
<div>
<el-image :src="baseURL+doctorForm.doctorUrl" />
</div>
<el-form-item label="宠物保险">
<div class="content-style">已购保险</div>
</el-form-item>
</el-col>
<el-col :span="20" style="height: 120px;">
<div class="base-msg1">
<div>
<span>医生姓名:{{ doctorForm.doctorName }}</span>
</div>
<div>
<span>医生ID:{{ doctorForm.userId }}</span>
</div>
<div>
<span>联系方式:{{ doctorForm.phone }}</span>
</div>
<div>
<span>所属医院:{{ doctorForm.hospitalName }}</span>
</el-row>
</div>
<div>
<span>所属科室:{{ doctorForm.departmentName }}</span>
</div>
</div>
</el-form>
<!--3--主人信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>宠主信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<div class="ownerMsg-inner">
<el-row>
<el-col :span="8">
<el-form-item label="宠主姓名">
<span class="content-style">{{ petOwners.nickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号">
<span class="content-style">{{ petOwners.phonenumber }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用户ID">
<span class="content-style">{{ petOwners.ownersId }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="创建日期">
<span class="content-style">{{
parseTime(petOwners.createTime, '{y}/{m}/{d}')
}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会员等级">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span>
<span
v-else
>{{ selectDictLabel(membershipLevelList, hosipitalPownersForm[0].membershipLevel) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会员卡余额">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
class="content-style"
>{{ hosipitalPownersForm[0].cardBalance }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="状态">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
><dict-tag :options="statusList" :value="petOwners.hosipitalPownersForm.status" /></span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="绑定宠物数量"><span class="content-style">{{ petsList.length }}</span>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<!--4--兽医信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>兽医信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<div class="ownerMsg-inner">
<el-row>
<el-col :span="8">
<el-form-item label="医生姓名">
<span class="content-style">{{ petOwners.nickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医生ID">
<span class="content-style">{{ petOwners.phonenumber }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号">
<span class="content-style">{{ petOwners.ownersId }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="所属医院">
<span class="content-style">{{
parseTime(petOwners.createTime, '{y}/{m}/{d}')
}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属科室">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span>
<span
v-else
>{{ selectDictLabel(membershipLevelList, hosipitalPownersForm[0].membershipLevel) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医生职称">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
class="content-style"
>{{ hosipitalPownersForm[0].cardBalance }}</span></el-form-item>
</el-col>
</el-row>
</div>
<!-- 就诊信息-->
<div style="display: flex; padding-top: 20px">
<!-- 1-- 宠物主基本信息的页面--标签头 -->
<div class="tip3" />
<div style="padding-top: 3px;padding-left: 18px; color: #666666; font-weight: 600; font-size: 17px;">
就诊信息
</div>
</el-form>
<!--5--进度信息-->
<schedule-info />
<!--6--就诊信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>就诊信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<div class="ownerMsg-inner">
<el-row>
<el-col :span="8">
<el-form-item label="病历号">
<span class="content-style">{{ petOwners.nickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="就诊日期">
<span class="content-style">{{
parseTime(petOwners.createTime, '{y}/{m}/{d}')
}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="就诊诊位">
<span class="content-style">{{ petOwners.ownersId }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="主诉">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
class="content-style"
>{{ hosipitalPownersForm[0].cardBalance }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="医嘱"><span class="content-style">{{ petsList.length }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="诊断结果"><span class="content-style">{{ petsList.length }}</span>
</el-form-item>
</el-col>
</el-row>
</div>
<div class="base-msg1" style="margin-top: 20px;margin-left: 5%;line-height: 40px">
<div>
<span>病历号:{{ medicalForm.visitNumber }}</span>
</el-form>
<!--7--用药信息-->
<div style="display: flex">
<div class="tip-green" />
<div style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;">用药信息
</div>
<div>
<span>就诊时间:{{ medicalForm.visitTime }}</span>
</div>
<div>
<span>就诊诊位:{{ medicalForm.visitOffice }}</span>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="药品名称" prop="protectName" />
<el-table-column align="center" label="规格" prop="type" />
<el-table-column align="center" label="数量" prop="date" />
<el-table-column align="center" label="用法" prop="date" />
<el-table-column align="center" label="开药日期" prop="date" />
</el-table>
</div>
<!--8--检查信息-->
<div style="display: flex">
诊断结果: <el-input v-model.trim="medicalForm.diagnosticResults" maxlength="200" style="width: 200px" :disabled="disable" />
<div class="tip-green" />
<div style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;">检查信息
</div>
<div>
<span>诊断信息:{{ medicalForm.visitInformation }}</span>
</div>
<div style="display: flex;">
医嘱: <el-input v-model.trim="medicalForm.orders" maxlength="200" style="width: 200px" :disabled="disable" />
</div>
</div>
<el-divider><span>用药信息</span></el-divider>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="medicationList" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="药品名称" prop="a" />
<el-table-column align="center" label="数量" prop="b" />
<el-table-column align="center" label="sig" prop="c" />
<el-table-column align="center" label="开药时间" prop="d" />
<el-table-column align="center" label="缴费状态" prop="e" />
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="检查类型" prop="protectName" />
<el-table-column align="center" label="检查项目" prop="type" />
<el-table-column align="center" label="检查状态" prop="date" />
<el-table-column align="center" label="检查日期" prop="date" />
<el-table-column align="center" label="检查报告" prop="date" />
</el-table>
</div>
<el-divider><span>辅助检查</span></el-divider>
<div class="pet-insurance">
<el-table :data="inspectList" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="检查类型" prop="a" />
<el-table-column align="center" label="检查项目" prop="b" />
<el-table-column align="center" label="缴费状态" prop="c" />
<el-table-column align="center" label="检查状态" prop="d" />
<el-table-column align="center" label="检查日期" prop="e" />
</el-table>
<!--9--治疗信息-->
<div style="display: flex">
<div class="tip-green" />
<div style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;">治疗信息
</div>
<el-divider><span>治疗信息</span></el-divider>
<div class="pet-insurance">
<el-table :data="treatmentList" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="治疗类型" prop="a" />
<el-table-column align="center" label="治疗时间" prop="b" />
<el-table-column align="center" label="负责人" prop="c" />
<el-table-column align="center" label="就诊诊室" prop="d" />
<el-table-column align="center" label="缴费状态" prop="e" />
</el-table>
</div>
<el-divider><span>住院信息</span></el-divider>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="hospitalList" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="入院日期" prop="a" />
<el-table-column align="center" label="住院时长" prop="b" />
<el-table-column align="center" label="病情等级" prop="c" />
<el-table-column align="center" label="能否沐浴" prop="d" />
<el-table-column align="center" label="责任护士" prop="e" />
<el-table-column align="center" label="病房号" prop="f" />
<el-table-column align="center" label="缴费状态" prop="g" />
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="治疗项目" prop="protectName" />
<el-table-column align="center" label="治疗类型" prop="type" />
<el-table-column align="center" label="负责人" prop="date" />
<el-table-column align="center" label="治疗诊室" prop="date" />
<el-table-column align="center" label="治疗状态" prop="date" />
<el-table-column align="center" label="治疗日期" prop="date" />
</el-table>
</div>
<el-divider><span>费用信息</span></el-divider>
<div class="pet-insurance">
<el-table :data="expenseList" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="收费项" prop="a" />
<el-table-column align="center" label="明细" prop="b" />
<el-table-column align="center" label="数目" prop="c" />
<el-table-column align="center" label="金额" prop="d" />
<el-table-column align="center" label="缴费状态" prop="e" />
<el-table-column align="center" label="付款时间" prop="f" />
<el-table-column align="center" label="付款账号" prop="g" />
</el-table>
<!--10--住院信息-->
<div style="display: flex">
<div class="tip-green" />
<div style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;">住院信息
</div>
<!-- 预约设备 -->
<div style="display: flex; padding-top: 20px">
<div class="tip3" />
<div style="padding-top: 3px;padding-left: 18px; color: #666666; font-weight: 600; font-size: 17px;">
设备预约
</div>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="入院日期" prop="protectName" />
<el-table-column align="center" label="住院天数" prop="type" />
<el-table-column align="center" label="病情等级" prop="date" />
<el-table-column align="center" label="能否沐浴" prop="date" />
<el-table-column align="center" label="是否出院" prop="date" />
<el-table-column align="center" label="病房号" prop="date" />
</el-table>
</div>
<div style=" margin-top: 20px;margin-left: 5%;">
<span>暂无数据</span>
<!-- <div style="float: right">-->
<!-- <el-button v-hasPermi="['business:reservation:list']" type="primary" size="mini" @click="reservation">立即预约</el-button>-->
<!-- </div>-->
<!--底部返回按钮-->
<el-button class="resetBtn" icon="el-icon-back" @click="goBack"> </el-button>
</div>
</div>
<!--底部返回按钮-->
<el-button v-if="userId==doctorForm.userId || userId==doctorForm.responsiblePerson" type="success" @click="submit">提交</el-button>
<el-button type="success" plain @click="goBack">返 回</el-button>
</el-card>
</div>
</template>
<script>
import { getCase, treatmentForm, updateCase } from '@/api/business/case'
import { getInfo } from '@/api/login'
// 导入获取宠物信息的接口
import { getPets, listAllPets } from '@/api/business/pets'
import { getOwners } from '@/api/business/petowners'
import { checkRole } from '@/utils/permission'
import { parseTime, selectDictLabel } from '@/utils/ruoyi'
// 引入进度信息模组件
import scheduleInfo from '@/views/service-management/registration-queue/components/schedule-info'
export default {
name: 'MedicalDetail',
dicts: ['pet_sex', 'vaccine_situation', 'exist_state', 'sterilization_status'],
props: {
id: {
type: Number,
required: true
}
name: 'PetDetail',
// 数据字典
dicts: ['pet_sex', 'vaccine_situation', 'exist_state', 'sterilization_status', 'cat_breed', 'dog_breed', 'other_breed'],
components: {
// 引入进度信息模组件
scheduleInfo
},
data() {
return {
disable: true,
// 假数据
expenseList: [],
hospitalList: [],
inspectList: [],
treatmentList: [],
medicationList: [],
// 登录人员角色
userType: '',
// 登陆人ID
userId: '',
// 各医院会员卡信息
hosipitalPownersForm: [{}],
// 状态下拉框
statusList: [{
label: '全部',
value: ''
}, {
label: '已启用',
value: '0'
}, {
label: '已禁用',
value: '1'
}],
// 会员等级下拉框
membershipLevelList: [
{
label: '一级会员',
value: '1'
},
{
label: '二级会员',
value: '2'
},
{
label: '三级会员',
value: '3'
},
{
label: '四级会员',
value: '4'
},
{
label: '五级会员',
value: '5'
}
],
// 品种数据字典
options: [{
value: '0',
label: '猫',
children: []
}, {
value: '1',
label: '狗',
children: []
}, {
value: '2',
label: '其它',
children: []
}],
// 图片访问
baseURL: process.env.VUE_APP_BASE_API,
medicalForm: {},
formPet: {},
petOwners: {},
doctorForm: {},
baseURL: process.env.VUE_APP_TEST_API,
// 宠物信息
petInfo: {
petBreed: '11'
},
// 宠物主信息
petOwners: {
hosipitalPownersForm: {}
},
// 总条数
total: 0,
// 宠物表格数据
petsList: [],
// 保险信息假数据
petProtect: [{
protectName: '人兽保险',
type: '意外保险',
date: '3年'
date: '2025/04/18'
}, {
protectName: '平安保险',
type: '人身保险',
date: '3年'
date: '2026/03/25'
}]
}
},
created() {
this.getMedicalList()
this.getLoginInfo()
this.treatForm()
/** 获取宠物信息 */
this.getInfo(this.$route.params.id)
/** 获取宠物主信息 */
this.getPetOwners(this.$route.params.petOwnersId)
/** 获取宠物数量信息 */
this.getPetsInfo(this.$route.params.petOwnersId)
},
methods: {
// 立即预约
reservation() {
this.$router.push({
name: 'MedicalDetail',
params: {
id: this.id,
pet: this.medicalForm.petJson
}
parseTime,
selectDictLabel,
checkRole,
// 获取宠物数量信息
getPetsInfo(id) {
listAllPets({ petOwnersId: id }).then(response => {
console.log('这是一些个关于宠物数量的信息:', response)
this.petsList = response.data
})
},
// 获取珍视信息的假数据
treatForm() {
treatmentForm().then(res => {
for (let i = 0; i < res.data.length; i++) {
this.inspectList = JSON.parse(res.data[i].inspect)
this.treatmentList = JSON.parse(res.data[i].treatment)
this.hospitalList = JSON.parse(res.data[i].hospital)
this.expenseList = JSON.parse(res.data[i].expenseDetails)
this.medicationList = JSON.parse(res.data[i].medication)
// 获取宠物主人信息
getPetOwners(id) {
getOwners(id).then(response => {
console.log('这是一些个关于宠物主的信息:', response)
this.petOwners = {
nickname: response.data[0].nickname,
userId: response.data[0].userId,
ownersId: response.data[0].ownersId,
phonenumber: response.data[0].phonenumber,
createTime: response.data[0].createTime,
hosipitalPownersForm: response.data[0].hosipitalPownersForm
}
console.log('假数据', res)
console.log('这是一些个关于宠物主赋值的信息:', this.petOwners)
this.hosipitalPownersForm = []
for (const petOwner of response.data) {
this.hosipitalPownersForm.push({ hospitalName: petOwner.hospitalName, ...petOwner.hosipitalPownersForm })
}
console.log('会员卡的信息在这:', this.hosipitalPownersForm)
})
},
// 当前病历主治兽医和兽医所在科室负责人拥有权限
submit() {
updateCase(this.medicalForm).then(res => {
this.$modal.msgSuccess('修改成功')
this.goBack()
})
/**
* 字典获取完成的回调
*/
onDictReady() {
this.setPetBreed()
},
goBack() {
this.$router.push({
path: '/medical-record-management'
})
/**
* 设置宠物品种信息
*/
setPetBreed() {
this.options[0].children = this.dict.type.cat_breed
this.options[1].children = this.dict.type.dog_breed
this.options[2].children = this.dict.type.other_breed
},
// id 查询病历详情接口
getMedicalList() {
getCase(this.id).then(res => {
this.medicalForm = res.data
const petJson = res.data.petJson
this.formPet = JSON.parse(petJson)
const doctorJson = res.data.doctorJson
this.doctorForm = JSON.parse(doctorJson)
console.log('doctorForm', this.doctorForm)
const ownerJson = res.data.ownerJson
this.petOwners = JSON.parse(ownerJson)
console.log('病历详情', res)
if (this.userId === this.doctorForm.userId || this.userId === this.doctorForm.responsiblePerson) {
this.disable = false
}
})
/** 返回跳转列表页 */
goBack() {
this.$router.back()
},
// 获取当前登陆人信息
getLoginInfo() {
getInfo().then(res => {
this.userId = res.user.userId
this.userType = res.user.userType
console.log('登陆人', res.user)
/** 获取宠物信息(传参传宠物表id)*/
getInfo(id) {
getPets(id).then(response => {
this.petInfo = response.data
})
}
}
}
</script>
<style lang="scss" scoped>
//1--基本信息--模块内信息整体样式
.base-msg1 {
color: #666666;
display: grid !important;
grid-template-columns: repeat(3, auto);
line-height: 30px;
}
.base-msg2 {
color: #666666;
display: grid !important;
grid-template-columns: repeat(4, auto);
margin-top: 20px;
margin-left: 5%;
margin-right: 5%;
}
.medical-detail{
//2--宠物保险--模块内信息整体样式
.pet-insurance {
margin-top: 35px;
margin-left: 5%;
margin-right: 5%;
//整个页面整体布局
.pet-detail {
//最外层嵌套卡片的样式
.box-card {
margin: 20px 20px 20px 20px;
}
// 宠物图片
.petPicture {
display: inline-block;
width: 150px;
height: 150px;
padding-left: 28px;
}
.box-card {
margin: 20px 20px 20px 20px;
}
.tip3 {
height: 30px;
border-left: 5px solid #69bdff;
//头像尺寸
::v-deep .el-card__body {
padding: 0 !important;
//height:150px;
}
//1--基本信息--模块内信息整体样式
.base-msg {
display: grid !important;
grid-template-columns: repeat(3, auto);
//display: grid !important;
//grid-template-columns: repeat(2, auto);
color: #666666;
margin-top: 20px;
margin-left: 5%;
margin-bottom: 20px;
//margin-left: 5%;
//margin-right: 5%;
//基础信息右边的信息样式
.base-inner {
display: grid !important;
grid-template-columns: repeat(3, auto);
//display: grid !important;
//grid-template-columns: repeat(3, auto);
//与头像左边距
padding-left: 10%;
//padding-left: 10%;
}
}
//2--宠物保险--模块内信息整体样式
.pet-insurance {
margin: 35px 1% 20px;
}
//3--主人信息--模块内信息整体样式
.ownerMsg-inner {
color: #666666;
//display: grid !important;
//grid-template-columns: repeat(2, auto);
margin-top: 20px;
margin-bottom: 20px;
//margin-right: 5%;
}
//模块tip样式--绿色
.tip-green {
width: 3px;
height: 24px;
background: #5FB54B;
border-radius: 10px 10px 10px 10px;
}
//模块tip样式--橙色
.tip-orange {
height: 30px;
border-left: 5px solid #fc8135;
}
//模块tip样式--蓝色
.tip-blue {
height: 30px;
border-left: 5px solid #69bdff;
}
//模块tip样式--黄色
.tip-yellow {
height: 30px;
border-left: 5px solid #f3ff00;
}
//所有表格内容选中后的样式-all
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {
background-color: #F6FCF5 !important;
}
}
//宠物性别样式
::v-deep .el-icon-male {
margin-top: 3px;
margin-left: 3px;
}
//详情页label文字样式设置(穿透)
::v-deep .el-form-item__label {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #707070;
}
//详情页表单内容文字样式
.content-style {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #333333;
}
</style>
<template>
<div style="background-color: #FFFFFF;">
<!-- 病历管理--宠物编辑页-->
<div class="pet-detail">
<!-- 头部标题-->
<div style="padding-top:32px;text-align: center;">
<span
style="font-size: 24px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;
font-weight: bold;
color: #333333;"
>编辑</span>
</div>
<!-- 整体卡片内页面的样式--边距-->
<div style="padding: 20px 20px 20px 20px;">
<!--1--宠物头像-->
<div style="display: flex">
<!-- 1-- 宠物基本信息的页面--标签头 -->
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>宠物头像
</div>
</div>
<!-- 内部信息 -->
<div class="base-msg">
<div>
<!--宠物图片-->
<div class="petPicture" style="padding-bottom: 40px;">
<ImagePreview :height="150" :src="baseURL+petInfo.petPicture" :width="150" />
</div>
</div>
</div>
<!--2--基本信息-->
<div style="display: flex">
<!-- 1-- 宠物基本信息的页面--标签头 -->
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>宠物信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<!-- 1-- 宠物基本信息的页面--内部信息 -->
<div class="base-msg">
<div>
<!--基础信息右边的信息-->
<div class="base-inner">
<!--宠物昵称-->
<el-row>
<el-col :span="8">
<el-form-item label="宠物昵称">
<span class="content-style">{{ petInfo.petNickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<!--宠物ID-->
<el-form-item label="宠物ID">
<span class="content-style">{{ petInfo.petsId }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<!--宠物品种-->
<el-form-item label="宠物品种">
<el-cascader
v-model.trim="queryParams.petBreed"
:options="options"
:props="props"
clearable
placeholder="请选择宠物品种"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!--宠物性别-->
<el-form-item label="宠物性别">
<el-select v-model.trim="queryParams.petSex" clearable multiple placeholder="请选择宠物性别">
<el-option
v-for="dict in dict.type.pet_sex"
:key="dict.value"
:value="dict.value"
:label="dict.label"
>
<i v-if="dict.value === '0'" class="el-icon-male" />
<i v-else-if="dict.value === '1'" class="el-icon-female" />
<span v-else>{{ dict.label }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<!--出生日期-->
<el-form-item label="出生日期">
<el-date-picker
v-model.trim="queryParams.createTime"
clearable
placeholder="请选择出生日期"
type="date"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<!--宠物体重-->
<el-form-item label="宠物体重">
<el-input
v-model.trim="queryParams.nickname"
clearable
placeholder="请输入宠物体重"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!--宠物毛色-->
<el-form-item label="宠物毛色">
<el-input
v-model.trim="queryParams.nickname"
clearable
placeholder="请输入宠物毛色"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<!--绝育情况-->
<el-form-item label="绝育情况">
<el-select
v-model.trim="queryParams.insure"
clearable
placeholder="请选择绝育情况"
>
<el-option
v-for="dict in insureList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<!--疫苗情况-->
<el-form-item label="疫苗情况">
<el-select
v-model.trim="queryParams.insure"
clearable
placeholder="请选择疫苗情况"
>
<el-option
v-for="dict in insureList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!--保险情况-->
<el-form-item label="宠物保险">
<el-select
v-model.trim="queryParams.insure"
clearable
placeholder="请选择宠物保险"
>
<el-option
v-for="dict in insureList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</div>
</el-form>
<!--3--宠主信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>宠主信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<div class="ownerMsg-inner">
<el-row>
<el-col :span="8">
<el-form-item label="宠主姓名">
<span class="content-style">{{ petOwners.nickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号">
<span class="content-style">{{ petOwners.phonenumber }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用户ID">
<span class="content-style">{{ petOwners.ownersId }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="创建日期">
<span class="content-style">{{
parseTime(petOwners.createTime, '{y}/{m}/{d}')
}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会员等级">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span>
<span
v-else
>{{ selectDictLabel(membershipLevelList, hosipitalPownersForm[0].membershipLevel) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会员卡余额">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
class="content-style"
>{{ hosipitalPownersForm[0].cardBalance }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="状态">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
><dict-tag :options="statusList" :value="petOwners.hosipitalPownersForm.status" /></span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="绑定宠物数量"><span class="content-style">{{ petsList.length }}</span>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<!--4--兽医信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>兽医信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<div class="ownerMsg-inner">
<el-row>
<el-col :span="8">
<el-form-item label="医生姓名">
<span class="content-style">{{ petOwners.nickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医生ID">
<span class="content-style">{{ petOwners.phonenumber }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号">
<span class="content-style">{{ petOwners.ownersId }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="所属医院">
<span class="content-style">{{
parseTime(petOwners.createTime, '{y}/{m}/{d}')
}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属科室">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span>
<span
v-else
>{{ selectDictLabel(membershipLevelList, hosipitalPownersForm[0].membershipLevel) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医生职称">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
class="content-style"
>{{ hosipitalPownersForm[0].cardBalance }}</span></el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<!--5--进度信息-->
<schedule-info />
<!--6--就诊信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>就诊信息
</div>
</div>
<!-- 内部信息 -->
<el-form ref="form" :model="petOwners" label-width="110px">
<div class="ownerMsg-inner">
<el-row>
<el-col :span="8">
<el-form-item label="宠主姓名">
<span class="content-style">{{ petOwners.nickname }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号">
<span class="content-style">{{ petOwners.phonenumber }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用户ID">
<span class="content-style">{{ petOwners.ownersId }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="创建日期">
<span class="content-style">{{
parseTime(petOwners.createTime, '{y}/{m}/{d}')
}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会员等级">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span>
<span
v-else
>{{ selectDictLabel(membershipLevelList, hosipitalPownersForm[0].membershipLevel) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会员卡余额">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
class="content-style"
>{{ hosipitalPownersForm[0].cardBalance }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="状态">
<span v-if="checkRole(['pt-admin'])" class="content-style">-</span><span
v-else
><dict-tag :options="statusList" :value="petOwners.hosipitalPownersForm.status" /></span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="绑定宠物数量"><span class="content-style">{{ petsList.length }}</span>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<!--7--用药信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>用药信息
</div>
</div>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="药品名称" prop="protectName" />
<el-table-column align="center" label="规格" prop="type" />
<el-table-column align="center" label="数量" prop="date" />
<el-table-column align="center" label="用法" prop="date" />
<el-table-column align="center" label="开药日期" prop="date" />
</el-table>
</div>
<!--8--检查信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>检查信息
</div>
</div>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="检查类型" prop="protectName" />
<el-table-column align="center" label="检查项目" prop="type" />
<el-table-column align="center" label="检查状态" prop="date" />
<el-table-column align="center" label="检查日期" prop="date" />
<el-table-column align="center" label="检查报告" prop="date" />
</el-table>
</div>
<!--9--治疗信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>治疗信息
</div>
</div>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="治疗项目" prop="protectName" />
<el-table-column align="center" label="治疗类型" prop="type" />
<el-table-column align="center" label="负责人" prop="date" />
<el-table-column align="center" label="治疗诊室" prop="date" />
<el-table-column align="center" label="治疗状态" prop="date" />
<el-table-column align="center" label="治疗日期" prop="date" />
</el-table>
</div>
<!--10--住院信息-->
<div style="display: flex">
<div class="tip-green" />
<div
style="padding-left: 13px;font-size: 16px;font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;font-weight: bold;color: #333333;"
>住院信息
</div>
</div>
<!-- 内部信息 -->
<div class="pet-insurance">
<el-table :data="petProtect" :header-cell-style="{ background:'#E8E9E8'}" border>
<el-table-column align="center" label="入院日期" prop="protectName" />
<el-table-column align="center" label="住院天数" prop="type" />
<el-table-column align="center" label="病情等级" prop="date" />
<el-table-column align="center" label="能否沐浴" prop="date" />
<el-table-column align="center" label="是否出院" prop="date" />
<el-table-column align="center" label="病房号" prop="date" />
</el-table>
</div>
<!--底部返回按钮-->
<el-button class="resetBtn" icon="el-icon-back" @click="goBack"> </el-button>
</div>
</div>
</div>
</template>
<script>
// 导入获取宠物信息的接口
import { getPets, listAllPets } from '@/api/business/pets'
import { getOwners } from '@/api/business/petowners'
import { checkRole } from '@/utils/permission'
import { parseTime, selectDictLabel } from '@/utils/ruoyi'
// 引入进度信息模组件
import scheduleInfo from '@/views/service-management/registration-queue/components/schedule-info'
export default {
name: 'MedicalEdit',
// 数据字典
dicts: ['pet_sex', 'vaccine_situation', 'exist_state', 'sterilization_status', 'cat_breed', 'dog_breed', 'other_breed'],
components: {
// 引入进度信息模组件
scheduleInfo
},
data() {
return {
// 排序下拉框
insureList: [
{
label: '全部',
value: '1'
},
{
label: '已购保险',
value: '2'
},
{
label: '未购保险',
value: '3'
}
],
queryParams: {
petBreed: []
},
// 各医院会员卡信息
hosipitalPownersForm: [{}],
// 状态下拉框
statusList: [{
label: '全部',
value: ''
}, {
label: '已启用',
value: '0'
}, {
label: '已禁用',
value: '1'
}],
// 会员等级下拉框
membershipLevelList: [
{
label: '一级会员',
value: '1'
},
{
label: '二级会员',
value: '2'
},
{
label: '三级会员',
value: '3'
},
{
label: '四级会员',
value: '4'
},
{
label: '五级会员',
value: '5'
}
],
// 品种数据字典
options: [{
value: '0',
label: '猫',
children: []
}, {
value: '1',
label: '狗',
children: []
}, {
value: '2',
label: '其它',
children: []
}],
// 图片访问
baseURL: process.env.VUE_APP_TEST_API,
// 宠物信息
petInfo: {
petBreed: '11'
},
// 宠物主信息
petOwners: {
hosipitalPownersForm: {}
},
// 总条数
total: 0,
// 宠物表格数据
petsList: [],
// 保险信息假数据
petProtect: [{
protectName: '人兽保险',
type: '意外保险',
date: '2025/04/18'
}, {
protectName: '平安保险',
type: '人身保险',
date: '2026/03/25'
}]
}
},
created() {
/** 获取宠物信息 */
this.getInfo(this.$route.params.id)
/** 获取宠物主信息 */
this.getPetOwners(this.$route.params.petOwnersId)
/** 获取宠物数量信息 */
this.getPetsInfo(this.$route.params.petOwnersId)
},
methods: {
parseTime,
selectDictLabel,
checkRole,
// 获取宠物数量信息
getPetsInfo(id) {
listAllPets({ petOwnersId: id }).then(response => {
console.log('这是一些个关于宠物数量的信息:', response)
this.petsList = response.data
})
},
// 获取宠物主人信息
getPetOwners(id) {
getOwners(id).then(response => {
console.log('这是一些个关于宠物主的信息:', response)
this.petOwners = {
nickname: response.data[0].nickname,
userId: response.data[0].userId,
ownersId: response.data[0].ownersId,
phonenumber: response.data[0].phonenumber,
createTime: response.data[0].createTime,
hosipitalPownersForm: response.data[0].hosipitalPownersForm
}
console.log('这是一些个关于宠物主赋值的信息:', this.petOwners)
this.hosipitalPownersForm = []
for (const petOwner of response.data) {
this.hosipitalPownersForm.push({ hospitalName: petOwner.hospitalName, ...petOwner.hosipitalPownersForm })
}
console.log('会员卡的信息在这:', this.hosipitalPownersForm)
})
},
/**
* 字典获取完成的回调
*/
onDictReady() {
this.setPetBreed()
},
/**
* 设置宠物品种信息
*/
setPetBreed() {
this.options[0].children = this.dict.type.cat_breed
this.options[1].children = this.dict.type.dog_breed
this.options[2].children = this.dict.type.other_breed
},
/** 返回跳转列表页 */
goBack() {
this.$router.back()
},
/** 获取宠物信息(传参传宠物表id)*/
getInfo(id) {
getPets(id).then(response => {
this.petInfo = response.data
})
}
}
}
</script>
<style lang="scss" scoped>
//整个页面整体布局
.pet-detail {
//最外层嵌套卡片的样式
.box-card {
margin: 20px 20px 20px 20px;
}
// 宠物图片
.petPicture {
display: inline-block;
width: 150px;
height: 150px;
padding-left: 28px;
}
//头像尺寸
::v-deep .el-card__body {
padding: 0 !important;
//height:150px;
}
//1--基本信息--模块内信息整体样式
.base-msg {
//display: grid !important;
//grid-template-columns: repeat(2, auto);
color: #666666;
margin-top: 20px;
margin-bottom: 20px;
//margin-left: 5%;
//margin-right: 5%;
//基础信息右边的信息样式
.base-inner {
//display: grid !important;
//grid-template-columns: repeat(3, auto);
//与头像左边距
//padding-left: 10%;
}
}
//2--宠物保险--模块内信息整体样式
.pet-insurance {
margin: 35px 1% 20px;
}
//3--主人信息--模块内信息整体样式
.ownerMsg-inner {
color: #666666;
//display: grid !important;
//grid-template-columns: repeat(2, auto);
margin-top: 20px;
margin-bottom: 20px;
//margin-right: 5%;
}
//模块tip样式--绿色
.tip-green {
width: 3px;
height: 24px;
background: #5FB54B;
border-radius: 10px 10px 10px 10px;
}
//模块tip样式--橙色
.tip-orange {
height: 30px;
border-left: 5px solid #fc8135;
}
//模块tip样式--蓝色
.tip-blue {
height: 30px;
border-left: 5px solid #69bdff;
}
//模块tip样式--黄色
.tip-yellow {
height: 30px;
border-left: 5px solid #f3ff00;
}
//所有表格内容选中后的样式-all
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {
background-color: #F6FCF5 !important;
}
}
//宠物性别样式
::v-deep .el-icon-male {
margin-top: 3px;
margin-left: 3px;
}
//详情页label文字样式设置(穿透)
::v-deep .el-form-item__label {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #707070;
}
//详情页表单内容文字样式
.content-style {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #333333;
}
</style>
......@@ -438,7 +438,7 @@ export default {
this.reset()
console.log('start to edit...')
this.$router.push({
name: 'medical-edit', params: { id: row.id }
name: 'MedicalEdit', params: { id: row.id }
})
}
}
......
......@@ -151,7 +151,6 @@
<script>
import { listManage, getManage, delManage, addManage, updateManage } from '@/api/business/manage'
export default {
name: 'MedicalRecordManagement',
dicts: ['exam_type'],
......
<template>
<el-dialog class="prescribing-modle" title="开具处方" :visible.sync="isShow" append-to-body>
<el-form ref="prescribingForm" :model="prescribingForm" label-width="80px" size="small">
<el-form ref="prescribingForm" :model="prescribingForm" :rules="rules" label-width="80px" size="small">
<!-- 标题区域-->
<div class="prescribing-head">
<div class="prescribing-title">
......@@ -14,12 +14,12 @@
<!-- 宠物基本信息-->
<el-row class="pet-base">
<el-col :span="8">
<el-form-item prop="nickName" label="宠物名称:">
<el-form-item prop="nickName" label="宠物名称">
<el-input v-model="prescribingForm.nickName" placeholder="请输入宠物昵称" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="petSex" label="宠物性别:">
<el-form-item prop="petSex" label="宠物性别">
<el-select
v-model="prescribingForm.petSex"
:disabled="true"
......@@ -37,12 +37,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="宠物年龄:">
<el-form-item prop="age" label="宠物年龄">
<el-input v-model="prescribingForm.age" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="petBreed" label="宠物品种:">
<el-form-item prop="petBreed" label="宠物品种">
<el-select
v-model="prescribingForm.petBreed"
:disabled="true"
......@@ -59,27 +59,27 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="体重:">
<el-form-item prop="age" label="体重">
<el-input v-model="prescribingForm.weight" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="诊断时间:">
<el-form-item prop="age" label="诊断时间">
<el-input v-model="prescribingForm.time" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="宠主姓名:">
<el-form-item prop="age" label="宠主姓名">
<el-input v-model="prescribingForm.name" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="联系电话:">
<el-form-item prop="age" label="联系电话">
<el-input v-model="prescribingForm.phone" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="petInsure" label="宠物保险:">
<el-form-item prop="petInsure" label="宠物保险">
<el-select
v-model="prescribingForm.petInsure"
:disabled="true"
......@@ -100,12 +100,12 @@
<!-- 处方模块-->
<el-row class="prescribing-content">
<el-col :span="8">
<el-form-item prop="nickName" label="主治兽医:">
<el-form-item prop="nickName" label="主治兽医">
<el-input v-model="prescribingForm.nickName" placeholder="请输入宠物昵称" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="petSex" label="科室:">
<el-form-item prop="petSex" label="科室">
<el-select
v-model="prescribingForm.petSex"
:disabled="true"
......@@ -123,7 +123,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="age" label="诊位:">
<el-form-item prop="age" label="诊位">
<el-input v-model="prescribingForm.age" :disabled="true" maxlength="20" />
</el-form-item>
</el-col>
......@@ -143,11 +143,13 @@
</el-form-item>
</el-col>
<!-- 开药模块-->
<el-row class="drug-content">
<el-col :span="8">
<el-form-item label="药物处理">
<div class="drug-content">
<el-form-item prop="medication" label="药物处理">
<div v-for="(item, index) in prescribingForm.medication" :key="index" class="single-medication">
<div class="single-file">
<el-form-item label="宠物名称:">
<el-select
v-model="prescribingForm.petSex"
v-model="item.drug"
clearable
style="width: 100%"
placeholder="请选择药品"
......@@ -160,27 +162,35 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</div>
<div class="single-file">
<el-form-item label="数量">
<el-input-number v-model="prescribingForm.petSex" controls-position="right" :min="1" :max="10" />
<el-input-number v-model="item.num" controls-position="right" :min="1" :max="10" />
</el-form-item>
</el-col>
<el-col :span="8">
</div>
<div>
<el-form-item label="sig">
<el-input v-model="prescribingForm.petSex" placeholder="请输入具体用法" />
<el-input v-model="item.sig" placeholder="请输入具体用法" />
</el-form-item>
</el-col>
</el-row>
</div>
<div class="content-option">
<i class="el-icon-plus" @click="addRow('medication')" />
<i class="el-icon-minus" @click="minusRow(index,'medication')" />
</div>
</div>
</el-form-item>
</div>
<!-- 检查模块-->
<el-row class="inspect-content">
<el-col :span="8">
<el-form-item label="辅助检查">
<div class="inspect-content">
<el-form-item prop="inspect" label="辅助检查">
<div v-for="(item, index) in prescribingForm.inspect" :key="index" class="single-medication">
<div class="single-file">
<el-form-item label="宠物名称:">
<el-select
v-model="prescribingForm.petSex"
v-model="item.service"
clearable
style="width: 100%"
placeholder="请选择检查"
placeholder="请选择药品"
>
<el-option
v-for="(item, index) in dict.type.pet_sex"
......@@ -190,14 +200,14 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</div>
<div class="single-file">
<el-form-item label="项目">
<el-select
v-model="prescribingForm.petSex"
v-model="item.project"
clearable
style="width: 100%"
placeholder="请选择项目"
placeholder="请选择药品"
>
<el-option
v-for="(item, index) in dict.type.pet_sex"
......@@ -207,17 +217,25 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
<div class="content-option">
<i class="el-icon-plus" @click="addRow('inspect')" />
<i class="el-icon-minus" @click="minusRow(index,'inspect')" />
</div>
</div>
</el-form-item>
</div>
<!-- 治疗模块-->
<el-row class="treatment-content">
<el-col :span="8">
<el-form-item label="辅助治疗">
<div class="treatment-content">
<el-form-item prop="treatment" label="辅助治疗">
<div v-for="(item, index) in prescribingForm.treatment" :key="index" class="single-medication">
<div class="single-file">
<el-form-item label="宠物名称:">
<el-select
v-model="prescribingForm.petSex"
v-model="item.cure"
clearable
style="width: 100%"
placeholder="请选择治疗"
placeholder="请选择药品"
>
<el-option
v-for="(item, index) in dict.type.pet_sex"
......@@ -227,8 +245,14 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
<div class="content-option">
<i class="el-icon-plus" @click="addRow('treatment')" />
<i class="el-icon-minus" @click="minusRow(index,'treatment')" />
</div>
</div>
</el-form-item>
</div>
<!-- 住院模块-->
<el-row class="hospital-content">
<el-col :span="8">
......@@ -281,6 +305,7 @@
</template>
<script>
export default {
name: 'PrescribingModle',
// 数据字典
......@@ -296,17 +321,79 @@ export default {
}
},
data() {
var validatePass = (rule, value, callback) => {
console.log('kkkkkkkkkkkkkk', value)
callback(new Error('请输入密码'))
}
return {
prescribingForm: {},
prescribingNo: '1234' // 处方号
prescribingForm: {
medication: [
{ drug: '', num: '', sig: '' }
],
inspect: [
{
service: '',
progject: ''
}
],
treatment: [
{
cure: ''
}
]
},
prescribingNo: '1234', // 处方号
// 表单校验
rules: {
medication: [
{ validator: validatePass, trigger: 'change' }
]
}
}
},
methods: {
submit() {
console.log(123)
this.$refs['prescribingForm'].validate(valid => {
console.log('kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk', valid)
})
},
cancle() {
console.log(123)
},
/** 删除行方法*/
minusRow(index, type) {
// 数据量大于1可以删除
if (this.prescribingForm[type].length > 1) {
this.prescribingForm[type].splice(index, 1)
} else {
this.$message.error(`您不能删除第${index + 1}条数据`)
}
},
/** 添加行方法*/
addRow(type) {
let tempParams = {}
// 根据type值确定初始化数据
switch (type) {
case 'medication': // 药品
tempParams = {
drug: '',
sig: '',
num: ''
}
break
case 'inspect':
tempParams = {
service: '',
progject: ''
}
break
case 'treatment':
tempParams = {
cure: ''
}
break
}
this.prescribingForm[type].push(tempParams) // 添加数据
}
}
......@@ -348,10 +435,70 @@ export default {
.el-textarea{
width: 100% !important;
}
.drug-content, .hospital-content{
.drug-content, .inspect-content, .hospital-content, .treatment-content{
float: left;
width: 100%;
.el-input-number--small{
width: 220px;
}
.single-medication{
position: relative;
display: flex;
.content-option{
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 18px;
}
.single-file:first-child{
width: 193.33px;
right: 0;
}
.single-file{
width: 293.33px;
position: relative;
right: -20px;
.el-form-item{
margin-right: 0!important;
}
}
}
}
.inspect-content, .treatment-content{
.single-medication{
.content-option{
position: relative;
left: 35px;
}
}
}
}
}
</style>
<style lang='scss'>
.prescribing-modle{
.el-dialog__body{
padding-left: 40px;
padding-right: 40px;
max-height: 75.5vh;
overflow-y: auto;
}
.drug-content, .inspect-content, .hospital-content, .treatment-content{
.single-medication{
.single-file:first-child{
.el-form-item__label{
width: 0 !important;
display: none;
}
.el-form-item__content{
margin-left: 0 !important;
}
}
.single-file{
.el-form-item{
margin-right: 0!important;
}
}
}
}
}
......
......@@ -114,7 +114,6 @@
</div>
</div>
</div>
</div>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment