Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web

This commit is contained in:
LiJianZhao 2025-05-19 13:50:12 +08:00
commit eb2454f5c4
15 changed files with 202 additions and 184 deletions

View File

@ -1,8 +1,8 @@
<template> <template>
<Panel title="患者信息"> <Panel title="患者信息">
<div v-if="!seeDockerInfo?.patientInfo" style="display: flex;align-items: center;justify-content: center;height: 120px">请选择患者......</div> <div v-if="!seeDockerInfo?.patientInfo"
style="display: flex;align-items: center;justify-content: center;height: 120px">请选择患者......
</div>
<div v-else style="padding: 0 24px"> <div v-else style="padding: 0 24px">
<div class="avatar"> <div class="avatar">
<img class="avatar-image" <img class="avatar-image"
@ -11,7 +11,7 @@
<div class="avatar-info-wrapper"> <div class="avatar-info-wrapper">
<div class="avatar-info"> <div class="avatar-info">
<span class="avatar-info-name">{{ seeDockerInfo?.patientInfo?.name }}</span> <span class="avatar-info-name">{{ seeDockerInfo?.patientInfo?.name }}</span>
<span class="avatar-info-age">{{ seeDockerInfo?.patientInfo?.age||0}}</span> <span class="avatar-info-age">{{ seeDockerInfo?.patientInfo?.age || 0 }}</span>
</div> </div>
<div class="avatar-info-phone-num"> <div class="avatar-info-phone-num">
<span class="avatar-info-phone">{{ seeDockerInfo.patientInfo?.phone }}</span> <span class="avatar-info-phone">{{ seeDockerInfo.patientInfo?.phone }}</span>
@ -26,11 +26,14 @@
class="detail-doctor">{{ seeDockerInfo.dockerName }}-{{ seeDockerInfo?.sectionName }}</span> class="detail-doctor">{{ seeDockerInfo.dockerName }}-{{ seeDockerInfo?.sectionName }}</span>
</div> </div>
<div class="detail-middle"> <div class="detail-middle">
<div>费用类别:&nbsp;<span class="detail-doctor">{{seeDockerInfo.registerType==2?'医保':'自费'}}</span></div> <div>费用类别:&nbsp;<span class="detail-doctor">{{ seeDockerInfo.registerType == 2 ? '医保' : '自费' }}</span>
<div>医保卡剩余金额:&nbsp;<span class="detail-balance">{{ seeDockerInfo.patientInfo.socialBalance?seeDockerInfo.patientInfo.socialBalance+"元":"-" }}</span></div> </div>
<div>医保卡剩余金额:&nbsp;<span class="detail-balance">{{
seeDockerInfo.patientInfo.socialBalance ? seeDockerInfo.patientInfo.socialBalance + "元" : "-"
}}</span></div>
</div> </div>
<div>上次就诊时间:&nbsp;<span class="detail-doctor">{{ <div>上次就诊时间:&nbsp;<span class="detail-doctor">{{
formatDate(seeDockerInfo?.lastSeeDoctorTime)||'-' formatDate(seeDockerInfo?.lastSeeDoctorTime) || '-'
}}</span></div> }}</span></div>
</div> </div>
</div> </div>
@ -42,20 +45,21 @@ import {formatDate} from "@/utils/dateUtils.ts"
import Panel from "@/components/common/Panel.vue"; import Panel from "@/components/common/Panel.vue";
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
const seeDockerInfo = ref<any>(); const seeDockerInfo = ref<any>();
const getSeeDockerInfo = (newValue:any) => { const getSeeDockerInfo = (newValue: any) => {
if (!newValue)return; if (!newValue) return;
post('medical/record/getSeeDockerInfo', {regisId: newValue}).then((res: any) => { post('medical/record/getSeeDockerInfo', {regisId: newValue}).then((res: any) => {
seeDockerInfo.value = res seeDockerInfo.value = res
}) })
} }
const init =(regisId:any)=>{ const init = (regisId: any) => {
getSeeDockerInfo(regisId) getSeeDockerInfo(regisId)
} }
const clear = () => { const clear = () => {
seeDockerInfo.value = {} seeDockerInfo.value = {}
} }
defineExpose({ init,clear}) defineExpose({init, clear})
</script> </script>
@ -71,7 +75,8 @@ defineExpose({ init,clear})
} }
.avatar-info-wrapper { .avatar-info-wrapper {
width: 100%; flex: 1;
min-width: 0;
height: 60px; height: 60px;
padding: 6px 0; padding: 6px 0;
display: flex; display: flex;
@ -84,14 +89,19 @@ defineExpose({ init,clear})
.avatar-info { .avatar-info {
display: flex; display: flex;
align-items: center; span {
display: block;
}
.avatar-info-name { .avatar-info-name {
flex: 1;
min-width: 0;
font-weight: 500; font-weight: 500;
font-size: 18px; font-size: 18px;
color: #333333; color: #333333;
font-style: normal; font-style: normal;
margin-right: 10px; white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏溢出的文本 */
text-overflow: ellipsis; /* 显示省略号 */
} }
.avatar-info-age { .avatar-info-age {
@ -103,23 +113,20 @@ defineExpose({ init,clear})
.avatar-info-phone-num { .avatar-info-phone-num {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between;
.avatar-info-num {
margin-left: 28px;
.avatar-info-phone { .avatar-info-phone {
flex: 1;
min-width: 0;
height: 20px; height: 20px;
line-height: 20px; line-height: 20px;
} }
.avatar-info-num {
margin-left: 28px;
.caret-num { .caret-num {
color: #4D6DE4; color: #4D6DE4;
font-style: normal; font-style: normal;
} }
} }
} }
} }
} }

View File

@ -32,16 +32,10 @@ const imageUrl = ref<any>()
<div class="info-content"> <div class="info-content">
<img class="image" :src="imageUrl? imageUrl:userMessage.logo" alt="app"> <img class="image" :src="imageUrl? imageUrl:userMessage.logo" alt="app">
<div class="app_info-content-text"> <div class="app_info-content-text">
<el-tooltip
effect="dark"
:content="userMessage.name"
placement="bottom-start"
>
<div class="app_info-title">{{ userMessage.name }}</div> <div class="app_info-title">{{ userMessage.name }}</div>
</el-tooltip>
<div>软件版本{{ userMessage.version }}</div> <div>软件版本{{ userMessage.version }}</div>
<div style="margin: 10px 0">授权到期{{ formatDate(decryptedText.expiryDate) }}</div> <div style="margin: 10px 0">授权到期{{ formatDate(decryptedText.expiryDate) }}</div>
<div>版本类型 {{ decryptedText.rule == 1 ? "禁用医保" : decryptedText.rule == 2 ? "全部开放" : "暂无" }}</div> <div>版本类型{{ decryptedText.rule == 1 ? "禁用医保" : decryptedText.rule == 2 ? "全部开放" : "暂无" }}</div>
</div> </div>
</div> </div>
</Panel> </Panel>

View File

@ -2,7 +2,7 @@
<Mask :width="1100" :height="600" :is-show="show" title="过期商品详情" @close="close" :show-footer="true"> <Mask :width="1100" :height="600" :is-show="show" title="过期商品详情" @close="close" :show-footer="true">
<template #default> <template #default>
<div style="height: 100%;padding: 24px"> <div style="height: 100%;padding: 24px">
<el-table :data="tableData" style="width: 100%" class="table"> <el-table border :data="tableData" style="width: 100%;height: 100%" class="table" :header-cell-style="{ backgroundColor: '#F1F5FB' }">
<el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column> <el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="剩余天数" show-overflow-tooltip> <el-table-column label="剩余天数" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
@ -33,10 +33,10 @@
<el-pagination <el-pagination
background background
layout="prev, pager, next" layout="prev, pager, next"
:page-count="pageNum" :current-page="pageNum"
:page-size="pageSize" :page-size="pageSize"
:total="total" :total="total"
@current-change="changePage" @change="changePage"
/> />
</div> </div>
</template> </template>
@ -66,6 +66,7 @@ const pageSize = ref(20);
const total = ref(0); const total = ref(0);
const changePage = (pageNum: any) => { const changePage = (pageNum: any) => {
pageNum.value = pageNum pageNum.value = pageNum
console.log(pageNum.value)
init() init()
} }
</script> </script>

View File

@ -2,7 +2,7 @@
<Mask :width="1100" :height="600" :is-show="show" title="库存预警详情" @close="close" :show-footer="true"> <Mask :width="1100" :height="600" :is-show="show" title="库存预警详情" @close="close" :show-footer="true">
<template #default> <template #default>
<div style="height: 100%;padding: 24px"> <div style="height: 100%;padding: 24px">
<el-table border :data="tableData" style="width: 100%;height: 100%" class="table"> <el-table border :data="tableData" style="width: 100%;height: 100%" class="table" :header-cell-style="{ backgroundColor: '#F1F5FB' }">
<el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column> <el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="剩余库存"> <el-table-column label="剩余库存">
<template #default="scope"> <template #default="scope">
@ -37,10 +37,10 @@
<el-pagination <el-pagination
background background
layout="prev, pager, next" layout="prev, pager, next"
:page-count="pageNum" :current-page="pageNum"
:page-size="pageSize" :page-size="pageSize"
:total="total" :total="total"
@current-change="changePage" @change="changePage"
/> />
</div> </div>
</template> </template>
@ -67,7 +67,7 @@ const close = () => {
tableData.value = [] tableData.value = []
}; };
const pageNum = ref(1); const pageNum = ref(1);
const pageSize = ref(20); const pageSize = ref(1);
const total = ref(0); const total = ref(0);
const changePage = (pageNum: any) => { const changePage = (pageNum: any) => {
pageNum.value = pageNum pageNum.value = pageNum

View File

@ -16,7 +16,7 @@ const openInventoryWarnDetail = () => {
} }
const getInventoryWarning = () => { const getInventoryWarning = () => {
post("statistics/numberEarlyWarning",{pageNum: 1, pageSize: 20}).then((res: any) => { post("statistics/numberEarlyWarning", {pageNum: 1, pageSize: 20}).then((res: any) => {
inventoryWarnList.value = res.list.slice(0, 4) inventoryWarnList.value = res.list.slice(0, 4)
}) })
} }
@ -33,16 +33,11 @@ const isZeroInventory = (item: any) => {
</template> </template>
<div style="padding: 0 24px 24px"> <div style="padding: 0 24px 24px">
<div class="box"> <div class="box">
<div class="item" style="margin-right: 8px" v-for="item in inventoryWarnList" :class="isZeroInventory(item) ? 'item__danger' : 'item__warn'"> <div class="item" style="margin-right: 8px" v-for="item in inventoryWarnList"
<div class="image" /> :class="isZeroInventory(item) ? 'item__danger' : 'item__warn'">
<div class="image"/>
<div class="item-content"> <div class="item-content">
<el-tooltip
effect="dark"
:content="item.name"
placement="bottom-start"
>
<div class="item-name">{{ item.name }}</div> <div class="item-name">{{ item.name }}</div>
</el-tooltip>
<div class="item-name-font">剩余库存值</div> <div class="item-name-font">剩余库存值</div>
</div> </div>
<div class="item-right"> <div class="item-right">
@ -72,26 +67,30 @@ const isZeroInventory = (item: any) => {
margin-right: 24px; margin-right: 24px;
.box { .box {
.item__danger{ .item__danger {
.image{ .image {
background-image: url("/static/images/home/1-danger.png") ; background-image: url("/static/images/home/1-danger.png");
} }
.item-right{
.item-right {
color: #FF282E; color: #FF282E;
} }
} }
.item__warn{
.image{ .item__warn {
background-image: url("/static/images/home/1-warn.png") ; .image {
background-image: url("/static/images/home/1-warn.png");
} }
.item-right{
.item-right {
color: #F69C51; color: #F69C51;
} }
} }
.item { .item {
float: left; float: left;
width: 48%; width: 48%;

View File

@ -115,6 +115,13 @@ const reduceIntegral = () => {
align-items: center; align-items: center;
margin-bottom: 16px; margin-bottom: 16px;
.right {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 16px;
.name { .name {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
@ -122,14 +129,11 @@ const reduceIntegral = () => {
line-height: 33px; line-height: 33px;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.right {
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 16px;
.text { .text {
margin-top: 4px; margin-top: 4px;
display: flex; display: flex;

View File

@ -23,7 +23,8 @@
</div> </div>
</div> </div>
</div> </div>
<el-table class="body_list" :data="tableData" style="width: 100%;height: 100%" <div class="body_list">
<el-table :data="tableData" style="height: 100%"
:header-cell-style="{ backgroundColor: '#F1F5FB'}"> :header-cell-style="{ backgroundColor: '#F1F5FB'}">
<el-table-column prop="createTime" label="创建时间" show-overflow-tooltip> <el-table-column prop="createTime" label="创建时间" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
@ -36,6 +37,7 @@
<el-table-column prop="remark" label="备注" show-overflow-tooltip/> <el-table-column prop="remark" label="备注" show-overflow-tooltip/>
</el-table> </el-table>
</div> </div>
</div>
</template> </template>
<template #footer> <template #footer>
<div class="bottom"> <div class="bottom">
@ -104,7 +106,6 @@ defineExpose({init})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.content-flowing { .content-flowing {
width: 100%;
padding-top: 24px; padding-top: 24px;
height: 100%; height: 100%;
display: flex; display: flex;
@ -118,6 +119,13 @@ defineExpose({init})
margin-bottom: 16px; margin-bottom: 16px;
padding: 0 24px; padding: 0 24px;
.right {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 16px;
.name { .name {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
@ -125,14 +133,10 @@ defineExpose({init})
line-height: 33px; line-height: 33px;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.right {
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 16px;
.text { .text {
margin-top: 4px; margin-top: 4px;
display: flex; display: flex;
@ -159,8 +163,9 @@ defineExpose({init})
} }
.body_list { .body_list {
width: 100%;
flex: 1; flex: 1;
width: 100%;
min-height: 0;
background: #F9FAFC; background: #F9FAFC;
padding: 24px 24px 0; padding: 24px 24px 0;
} }

View File

@ -105,6 +105,13 @@ const grant = async () => {
align-items: center; align-items: center;
margin-bottom: 16px; margin-bottom: 16px;
.right {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 16px;
.name { .name {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
@ -112,14 +119,11 @@ const grant = async () => {
line-height: 33px; line-height: 33px;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.right {
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 16px;
.text { .text {
margin-top: 4px; margin-top: 4px;
display: flex; display: flex;

View File

@ -17,6 +17,7 @@
v-model="ruleForm.exp" v-model="ruleForm.exp"
placeholder="等级" placeholder="等级"
size="default" size="default"
:disabled="ruleForm.id"
style="width: 100%" style="width: 100%"
> >
<el-option <el-option

View File

@ -43,6 +43,7 @@ const copyItem = (item: any) => {
emit('copyItem', item) emit('copyItem', item)
} }
const copyGoods = (item: any) => { const copyGoods = (item: any) => {
console.log(item,'item')
emit('copyGoods', item) emit('copyGoods', item)
} }
defineExpose({init,clearList}) defineExpose({init,clearList})

View File

@ -111,7 +111,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="费用类型"> <el-descriptions-item label="费用类型">
<el-form-item prop="type"> <el-form-item prop="type">
<el-select v-model="edit_data.type"> <el-select v-model="edit_data.type" :disabled="edit_data.status==0">
<el-option label="普通" :value="1"></el-option> <el-option label="普通" :value="1"></el-option>
<el-option label="医保" :value="2"></el-option> <el-option label="医保" :value="2"></el-option>
</el-select> </el-select>

View File

@ -11,7 +11,7 @@
<img style="width: 25px;height: 25px;margin-right: 10px" <img style="width: 25px;height: 25px;margin-right: 10px"
:src="scope.row.gender === 1 ? '/static/images/member/man.png' :scope.row.gender === 2 ? '/static/images/member/women.png':'无'" :src="scope.row.gender === 1 ? '/static/images/member/man.png' :scope.row.gender === 2 ? '/static/images/member/women.png':'无'"
alt="" srcset=""> alt="" srcset="">
<span> {{ scope.row.name }}</span> <span>{{ scope.row.name }}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -46,7 +46,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="售价"> <el-descriptions-item label="售价">
<el-form-item prop="unitPrice"> <el-form-item prop="unitPrice">
<el-input v-model.number="form.unitPrice"> <el-input v-model="form.unitPrice">
<template #prefix></template> <template #prefix></template>
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -190,7 +190,16 @@ const formRules = {
], ],
unitPrice: [ unitPrice: [
{required: true, message: '请输入售价', trigger: 'blur'}, {required: true, message: '请输入售价', trigger: 'blur'},
{type: 'number', message: '单位必须为数字值'} {
validator: (rule: any, value: number, callback: any) => {
if (!/^\d+(\.\d{1,2})?$/.test(value.toString())) {
callback(new Error('售价最多保留两位小数'));
} else {
callback();
}
},
trigger: 'blur'
}
] ]
} }

View File

@ -19,13 +19,16 @@
<div class="total">{{ totalCount || 0 }}</div> <div class="total">{{ totalCount || 0 }}</div>
<ul class="content"> <ul class="content">
<el-scrollbar style="height: 100%"> <el-scrollbar style="height: 100%">
<li v-for="(item,i) in list" :key="item.id" :class="index==i?'active':''" @click="btn(item,i)"> <li class="list-item" v-for="(item,i) in list" :key="item.id" :class="index==i?'active':''"
@click="btn(item,i)">
<span class="item-avatar">
<img class="image" <img class="image"
:src="'/static/images/member/' + (item.sex === 1 ? 'man' : 'women') + '.png'" :src="'/static/images/member/' + (item.sex === 1 ? 'man' : 'women') + '.png'"
alt=""/> alt=""/>
<div class="name">{{ item.name || '-' }}</div> </span>
<span class="level">{{ item.levelName || "-" }}</span> <span class="item-name">{{ item.name || '-' }}</span>
<span class="time">{{ formatListTime(item.lastVisitTime) }}</span> <span class="item-level">{{ item.levelName || "-" }}</span>
<span class="item-time">{{ formatListTime(item.lastVisitTime) }}</span>
</li> </li>
</el-scrollbar> </el-scrollbar>
</ul> </ul>
@ -42,7 +45,7 @@
alt=""> alt="">
<div class="detail-top-left-text"> <div class="detail-top-left-text">
<div class="detail-top-left-text-name"> <div class="detail-top-left-text-name">
<span style="margin-right: 16px">{{ listItem.name || '-' }}</span> <span class="name" style="margin-right: 16px">{{ listItem.name || '-' }}</span>
<el-tag type="success">{{ listItem.levelName || '-' }}</el-tag> <el-tag type="success">{{ listItem.levelName || '-' }}</el-tag>
</div> </div>
<div class="detail-top-left-text-phone"> <div class="detail-top-left-text-phone">
@ -100,7 +103,7 @@
@cell-click="openDetail"> @cell-click="openDetail">
<el-table-column label="单号" prop="code" show-overflow-tooltip> <el-table-column label="单号" prop="code" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="createDatetime"> <el-table-column label="创建时间" prop="createDatetime" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ formatDate(scope.row.createDatetime) }} {{ formatDate(scope.row.createDatetime) }}
</template> </template>
@ -110,17 +113,17 @@
<!-- {{ scope.row.preTotalPrice }}--> <!-- {{ scope.row.preTotalPrice }}-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column label="实收" prop="totalPrice" width="80"> <el-table-column label="实收" prop="totalPrice" width="100" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.totalPrice }} {{ scope.row.totalPrice }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="支付方式" width="100"> <el-table-column label="支付方式" width="100" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.payType ? getPayTypeStr(scope.row.payType) : "" }} {{ scope.row.payType ? getPayTypeStr(scope.row.payType) : "" }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" width="100"> <el-table-column label="状态" width="100" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.status==0 || scope.row.status==2 " type="info"> <el-tag v-if="scope.row.status==0 || scope.row.status==2 " type="info">
{{ getStatusStr(scope.row.status) }} {{ getStatusStr(scope.row.status) }}
@ -129,7 +132,7 @@
<el-tag v-if="scope.row.status==3" type="danger">{{ getStatusStr(scope.row.status) }}</el-tag> <el-tag v-if="scope.row.status==3" type="danger">{{ getStatusStr(scope.row.status) }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="支付时间" prop="payTime"> <el-table-column label="支付时间" prop="payTime" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ formatDate(scope.row.payTime) }} {{ formatDate(scope.row.payTime) }}
</template> </template>
@ -338,6 +341,7 @@ type StatusKey = 0 | 1 | 2 | 3;
type PayTypeKey = 1 | 2 | 3 | 4 | 5; type PayTypeKey = 1 | 2 | 3 | 4 | 5;
// //
const formatDate = (isoStr: any) => { const formatDate = (isoStr: any) => {
if(!isoStr)return ''
const date = new Date(isoStr); const date = new Date(isoStr);
return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`; return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
} }
@ -380,10 +384,10 @@ const antysList = ref<any>(Object.entries(antys).map(([id, name]) => ({id, name}
const certTypeList = ref<any>(Object.entries(psnCertTypes).map(([id, name]) => ({id, name}))) const certTypeList = ref<any>(Object.entries(psnCertTypes).map(([id, name]) => ({id, name})))
const flowingId = ref(); const flowingId = ref();
const flowingWaterRef = ref(); const flowingWaterRef = ref();
const openFlowingWater=()=>{ const openFlowingWater = () => {
isFlowingWater.value=true isFlowingWater.value = true
flowingId.value=listItem.value.id flowingId.value = listItem.value.id
nextTick(()=>{ nextTick(() => {
flowingWaterRef.value?.init(flowingId.value) flowingWaterRef.value?.init(flowingId.value)
}) })
} }
@ -449,56 +453,48 @@ const openFlowingWater=()=>{
border-radius: 8px; border-radius: 8px;
border: 1px solid #EAEAEC; border: 1px solid #EAEAEC;
li { .list-item {
display: flex; display: flex;
align-items: center;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
padding: 0 24px; padding: 0 24px;
color: #000000; color: #000000;
cursor: pointer; cursor: pointer;
span {
&:first-child { text-align: center;
border-top-left-radius: 8px; height: 100%;
border-top-right-radius: 8px; display: block;
} }
.item-avatar {
&:last-child { width: 20px;
border-bottom-left-radius: 8px; height: 100%;
border-bottom-right-radius: 8px; margin-right: 10px;
.image {
margin-top: 15px;
width: 20px;
height: 20px;
}
}
.item-name{
flex: 1;
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: left;
}
.item-level{
width: 50px;
}
.item-time{
width: 50px;
font-size: 12px;
color: #7a8794;
} }
&:hover { &:hover {
background: rgba(#4D6DE4, 0.5); background: rgba(#4D6DE4, 0.5);
} }
.image {
width: 20px;
height: 20px;
margin-right: 5px
}
.name {
flex: 2;
}
.level {
flex: 2;
margin-right: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.time {
flex: 2;
font-size: 12px;
color: #7a8794;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
} }
.active { .active {
@ -535,10 +531,11 @@ const openFlowingWater=()=>{
.detail-top { .detail-top {
height: 60px; height: 60px;
display: flex; display: flex;
justify-content: space-between;
align-items: center; align-items: center;
.detail-top-left { .detail-top-left {
flex: 1;
min-width: 0;
display: flex; display: flex;
.image { .image {
@ -548,15 +545,25 @@ const openFlowingWater=()=>{
} }
.detail-top-left-text { .detail-top-left-text {
flex: 1;
min-width: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
margin-right: 24px;
.detail-top-left-text-name { .detail-top-left-text-name {
flex: 1;
min-width: 0;
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
color: #333333; color: #333333;
font-style: normal; font-style: normal;
display: flex;
.name{
white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏溢出的文本 */
text-overflow: ellipsis; /* 显示省略号 */
}
} }
.detail-top-left-text-phone { .detail-top-left-text-phone {
@ -566,34 +573,16 @@ const openFlowingWater=()=>{
color: rgba(34, 42, 57, 0.8); color: rgba(34, 42, 57, 0.8);
.age { .age {
margin: 0 10px; margin-right: 10px;
} }
} }
} }
} }
.detail-top-right { .detail-top-right {
width: 552px;
display: flex; display: flex;
height: 42px; height: 42px;
.btn {
flex: 1;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #4D6DE4;
padding: 10px 12px;
font-weight: 500;
font-size: 16px;
color: #4D6DE4;
font-style: normal;
margin-left: 24px;
cursor: pointer;
&:hover {
color: #FFFFFF;
background: #4D6DE4;
}
}
} }
} }

View File

@ -146,6 +146,7 @@ const changeTab = (e: any) => {
patientRegistration.value = {} patientRegistration.value = {}
itemId.value = null itemId.value = null
isShowFrom.value = false isShowFrom.value = false
curRegister.value.status = e
nextTick(() => { nextTick(() => {
medicalHistoryRef.value?.clearList(); medicalHistoryRef.value?.clearList();
}) })
@ -161,11 +162,14 @@ const getOrderTotalPrice = () => {
formData.value.itemDetail?.forEach((item: any) => { formData.value.itemDetail?.forEach((item: any) => {
totalPrice += item.selectedPrice * item.selectedNum totalPrice += item.selectedPrice * item.selectedNum
}) })
console.log(totalPrice, 'totalPrice')
formData.value.goodsDetail?.forEach((item: any) => { formData.value.goodsDetail?.forEach((item: any) => {
totalPrice += item.selectedPrice * item.selectedNum totalPrice += item.selectedPrice * item.selectedNum
}) })
console.log(totalPrice, 'totalPrice')
formData.value.preTotalPrice = Math.round((totalPrice * 100) / 100) formData.value.preTotalPrice = Math.round((totalPrice * 100) / 100)
formData.value.totalPrice = Math.round((totalPrice * 100) / 100) formData.value.totalPrice = totalPrice
console.log(formData.value.totalPrice, 'formData.value.totalPrice')
} }
const caseRef = ref<any>("") const caseRef = ref<any>("")
const copyForm = (item: any) => { const copyForm = (item: any) => {