Compare commits

...

2 Commits

Author SHA1 Message Date
ChenQiuYu 215c69a5cb dev 2025-05-06 16:32:19 +08:00
ChenQiuYu fc3fe2e825 dev 2025-05-06 16:14:28 +08:00
7 changed files with 83 additions and 41 deletions

View File

@ -1,5 +1,5 @@
<template>
<el-input v-model="input" :style="{'width': props.width+'px'}" clearable :disabled="disabled" ref="inputRef" @click="showPopo" @focus="focus"></el-input>
<el-input v-model="input" style="width:100%;height: 100%" clearable :disabled="disabled" ref="inputRef" @click="showPopo" @focus="focus"></el-input>
<el-popover placement="bottom-start" trigger="click" :width="props.width" :virtual-ref="inputRef" ref="popoverRef">
<div class="code-popo" v-if="props.list.length > 0">
<div class="code-item" v-for="item in props.list">

View File

@ -1,5 +1,5 @@
<template>
<Panel :title="'病'">
<Panel :title="'病'">
<template #tools>
<div class="content">
<div class="model-selector">
@ -139,4 +139,7 @@ defineExpose({initDiagnosisSearch})
.container {
margin: 24px;
}
:deep(.el-form-item){
margin-bottom: 2px;
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<Panel :title="'病'">
<Panel :title="'病'">
<template #tools>
<div class="content">
<div class="model-selector">

View File

@ -9,18 +9,28 @@
<el-popover
placement="top-start"
trigger="hover"
width="200px"
width="400"
@show="getHilistInfo(item)"
@hide="colosInfo"
>
<template #reference>
{{ item.name }}
</template>
<div>
{{item.hilistCode}}
<div class="detail">
<div style="display: flex;justify-content: space-between">
<div style="font-size: 18px;font-weight: 500;color: #000">{{ hilistInfo.name }}</div>
<div>{{ item.selectedPrice }}/{{ item.selectedUnit }}</div>
</div>
<div>
<div>规格:{{hilistInfo.json?.dosage_specifications||'-'}}</div>
</div>
</div>
</el-popover>
</div>
<div class="price">{{item.selectedPrice || '0' }}</div>
</div>
<div class="price">{{ item.selectedPrice || '0' }}</div>
<div class="unit">
<div class="unit-content">
<el-input-number v-model="item.selectedNum" min="1" size="small"></el-input-number>
@ -37,11 +47,11 @@
</el-dropdown>
</div>
</div>
<div class="sub-price">{{ item.unitPrice*item.selectedNum }}</div>
<div class="sub-price">{{ item.unitPrice * item.selectedNum }}</div>
<div class="delete">
<div @click="deleteItem(item.id)" class="delete-btn">
<el-icon>
<Close />
<Close/>
</el-icon>
</div>
</div>
@ -61,7 +71,7 @@
</SearchInput>
</div>
<span style="margin-right: 24px">
{{ sumPrice}}
{{ sumPrice }}
</span>
</div>
</div>
@ -72,6 +82,7 @@ import Panel from "@/components/common/Panel.vue";
import SearchInput from "@/components/SearchInput.vue";
import {CircleClose, Close} from "@element-plus/icons-vue";
import {watch, ref, computed} from "vue";
import {post} from "@/utils/request.ts";
const props = defineProps({
status: {
@ -79,8 +90,8 @@ const props = defineProps({
default: 0
}
})
const disabled=computed(()=>{
if(props.status === 1){
const disabled = computed(() => {
if (props.status === 1) {
return true
}
})
@ -123,10 +134,21 @@ const selectUnit = (item: any, unit: any) => {
}
const sumPrice = ref(0)
const emit = defineEmits(['focus'])
const focus=(e:any)=>{
emit('focus',e)
const focus = (e: any) => {
emit('focus', e)
}
watch(()=>list.value, (newList) => {
const hilistInfo = ref<any>({})
const getHilistInfo = (item: any) => {
if (item.hilistCode) {
post("social/directory/getByCode", {code: item.hilistCode}).then((res: any) => {
hilistInfo.value = res
})
}
}
const colosInfo = () => {
hilistInfo.value = {}
}
watch(() => list.value, (newList) => {
sumPrice.value = newList.reduce((total, item) => {
return total + (item.selectedNum || 0) * (item.selectedPrice || 0);
}, 0);
@ -135,6 +157,7 @@ watch(()=>list.value, (newList) => {
<style scoped lang="scss">
@use "@/assets/scss/base";
.content {
display: flex;
flex-direction: column;
@ -142,6 +165,7 @@ watch(()=>list.value, (newList) => {
.list {
flex: 1;
min-height: 0;
.item {
height: 30px;
border-top: 1px solid #EAEAEC;
@ -183,13 +207,15 @@ watch(()=>list.value, (newList) => {
width: 180px;
margin-left: 10px;
line-height: 30px;
.unit-content{
.unit-content {
display: flex;
align-items: center;
}
}
.sub-price{
.sub-price {
height: 100%;
line-height: 30px;
}
@ -199,9 +225,11 @@ watch(()=>list.value, (newList) => {
width: 100px;
text-align: center;
line-height: 30px;
.delete-btn{
.delete-btn {
cursor: pointer;
&:hover{
&:hover {
color: base.$primary-color;
}
}

View File

@ -1,7 +1,7 @@
<template>
<el-popover placement="bottom-start" trigger="click" :width="props.width">
<template #reference>
<el-input v-model="input" :style="{'width': props.width+'px'}" clearable :disabled="disabled"></el-input>
<el-input v-model="input" style="width:100%;height: 100%" clearable :disabled="disabled"></el-input>
</template>
<el-tabs v-model="tabName" class="demo-tabs">
<el-tab-pane v-for="item in props.list" :label="item.name" :name="item.name">

View File

@ -2,7 +2,7 @@
<Mask :is-show="isShow" width="800" :height="500" title="挂号" @close="close" :show-footer="true">
<template #default>
<el-scrollbar>
<div style="padding:0 24px 24px">
<div style="padding:0 24px">
<el-form
v-loading="loading"
:model="edit_data"
@ -17,6 +17,11 @@
:column="4"
style="margin-top: 20px"
>
<el-descriptions-item label="姓名">
<el-form-item prop="name" style="margin-bottom: 2px">
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="性别">
<el-form-item prop="gender">
<el-radio-group v-model="edit_data.gender">
@ -25,12 +30,6 @@
</el-radio-group>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="姓名">
<el-form-item prop="name">
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="年龄">
<el-form-item prop="age">
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"></el-input>
@ -39,7 +38,7 @@
<el-descriptions-item label="科室">
<el-form-item>
<el-select
v-model="edit_data.sectionId"
v-model="edit_data.organizationSectionId"
placeholder="选择科室"
>
<el-option
@ -99,14 +98,6 @@
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="待遇状态">
<el-form-item prop="treatmentStatus">
<el-select v-model="edit_data.treatmentStatus" placeholder="待遇状态">
<el-option label="新患者" :value="0"></el-option>
<el-option label="老患者" :value="1"></el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label="备注">
<el-form-item>
@ -126,6 +117,9 @@
{{ getKey(insutypes, scope.row.insutype) }}
</template>
</el-table-column>
<el-table-column label="待遇状态" >
</el-table-column>
<el-table-column label="参保日期" prop="psn_insu_date"></el-table-column>
<el-table-column label="剩余余额" prop="balc">
<template #default="scope">
{{ scope.row.balc || 0 }}
@ -157,7 +151,7 @@
<div class="bottom-right">
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="close">取消</el-button>
<el-button v-if="id" type="danger" @click="deleteDetail">删除</el-button>
<el-button v-if="id&&edit_data.status==1" type="danger" @click="deleteDetail">退号</el-button>
</div>
</div>
</template>
@ -256,7 +250,8 @@ const save = () => {
} else {
console.log(socialCard.value)
post('registration/add', {
data: data, mdtrtCertNo: socialCard.value.mdtrtCertNo,
data: data,
mdtrtCertNo: socialCard.value.mdtrtCertNo,
mdtrtCertType: socialCard.value.mdtrtCertType
}).then(() => {
ElMessage.success('新建成功')
@ -294,7 +289,7 @@ const init = () => {
const isShowCard = ref<any>(true)
const tableData = ref<any>([])
const socialCardUpdate = (e: any) => {
console.log(e, "e")
loading.value = true
if (e) {
isShowCard.value = false
edit_data.value = e.data.baseinfo
@ -317,6 +312,7 @@ const deleteCard = () => {
if (action == "confirm") {
isShowCard.value = true
edit_data.value = {}
tableData.value=[]
nextTick(() => {
cardDefaultRef.value?.close()
})
@ -424,4 +420,8 @@ defineExpose({init})
border: none;
}
}
:deep(.el-form-item) {
margin-bottom: 2px !important;
}
</style>

View File

@ -27,7 +27,11 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="section_name" label="科室"></el-table-column>
<el-table-column prop="organizationSectionId" label="科室">
<template #default="scope">
{{ sectionList.find((item:any)=>item.id===scope.row.organizationSectionId)?.name || '-' }}
</template>
</el-table-column>
<el-table-column prop="organizationDoctorId" label="医生">
<template #default="scope">
{{ roleList.find((item: any) => item.id === scope.row.organizationDoctorId)?.name || '-' }}
@ -60,12 +64,14 @@ const props = defineProps({
})
onMounted(() => {
initDoctor()
initSection()
})
const visitType = ref<any>({
0: '初诊',
1: '复诊'
})
const roleList = ref<any>([])
const sectionList = ref<any>([])
const initDoctor = () => {
let query = {
keyword: null,
@ -79,6 +85,11 @@ const emit = defineEmits(['rowClick'])
const rowClick = (row: any) => {
emit('rowClick', row)
}
const initSection = () => {
post('organization/section/allList').then((res: any) => {
sectionList.value = res
})
}
</script>
<style scoped lang="scss">
.patient-list {