This commit is contained in:
ChenQiuYu 2025-05-28 15:45:31 +08:00
parent 6992ed6331
commit 6e5dcf2ec3
9 changed files with 183 additions and 165 deletions

View File

@ -137,34 +137,26 @@ $lighter-color: rgba(#4D6DE4, 0.5);
display: inline-block; display: inline-block;
width: 120px; width: 120px;
height: 42px; height: 42px;
line-height: 42px; line-height: 40px;
background: $btn-color; background: $btn-color;
border-radius: 6px; border-radius: 6px;
color: #FFF; color: #FFF;
font-size: 16px; font-size: 16px;
text-align: center; text-align: center;
margin-left: 9px; margin-left: 24px;
border:1px solid transparent;
&:hover{ &:hover{
background: $lighter-color; background: $lighter-color;
} }
} }
.default-close-btn{ .default-close-btn{
cursor: pointer;
display: inline-block;
width: 119px;
height: 42px;
line-height: 42px;
background: #fff; background: #fff;
border-radius: 6px;
color: #333333; color: #333333;
font-size: 16px;
text-align: center;
margin-left: 9px;
border:1px solid #D8D8D8; border:1px solid #D8D8D8;
&:hover{ &:hover{
border: 1px solid transparent;
background: $lighter-color; background: $lighter-color;
color: #fff; color: #fff;
border:none;
} }
} }

View File

@ -54,7 +54,7 @@
<template #reference> <template #reference>
<el-input v-model="usage" placeholder="使用方法" style="width: 100px"></el-input> <el-input v-model="usage" placeholder="使用方法" style="width: 100px"></el-input>
</template> </template>
<Usage :usageObj="usageObj"></Usage> <Usage :usageObj="usageObj" @clickItem="clickItem"></Usage>
</el-popover> </el-popover>
</template> </template>
</el-table-column> </el-table-column>
@ -259,6 +259,9 @@ const colosInfo = () => {
getTotalPrice() getTotalPrice()
emit('totalPriceChange') emit('totalPriceChange')
} }
const clickItem = (value: any) => {
usage.value = value
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-table__cell) { :deep(.el-table__cell) {

View File

@ -7,16 +7,59 @@ const props = defineProps({
default: () => [] default: () => []
} }
}); });
const emit = defineEmits(['clickItem'])
const clickItem=(item:any)=>{
console.log(item)
emit("clickItem",item[0])
}
</script> </script>
<template> <template>
<div v-for="(item, index) in Object.entries(props.usageObj)" :key="index"> <div class="box">
<div class="item"> <ul class="item-list">
<div class="item-title">{{ item }}</div> <div class="item" v-for="(item, index) in Object.entries(props.usageObj)" :key="index" @click="clickItem(item)">{{ item[1] }}</div>
</div> </ul>
</div> </div>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.box{
margin: 0;
padding: 0;
position:absolute;
background: #fff;
top: 0;
left: 0;
width: 482px;
height: auto;
border: 1px solid #ddd;
z-index: 999;
}
.item-list {
display: flex;
flex-wrap: wrap;
}
.item{
display: flex;
width: 160px;
height: 36px;
background: #fff;
color: #000;
border: 1px solid #ededed;
align-items: center;
justify-content: center;
&:hover{
color: #fff;
background: #4d6de4;
}
&.last-item {
margin-right: 0; /* 最后一个元素不加右边距 */
}
}
.active{
background: #4d6de4 !important;
color: #fff !important;
}
</style> </style>

View File

@ -451,7 +451,7 @@ import {post} from "@/utils/request.ts";
import Cate from "@/components/inventory/goods/Cate.vue"; import Cate from "@/components/inventory/goods/Cate.vue";
import {ElMessage, ElMessageBox} from "element-plus"; import {ElMessage, ElMessageBox} from "element-plus";
import Divider from "@/components/Divider.vue"; import Divider from "@/components/Divider.vue";
import UnitSelector from "@/components/UnitSelector.vue"; import UnitSelector from "@/components/inventory/goods/UnitSelector.vue";
import SocialInfo from "@/components/inventory/goods/SocialInfo.vue"; import SocialInfo from "@/components/inventory/goods/SocialInfo.vue";
import {API} from "@/assets/config/API.ts"; import {API} from "@/assets/config/API.ts";

View File

@ -20,7 +20,7 @@ const editItem= () => {
<div class="footer"> <div class="footer">
<div>总金额<span class="text icon"></span><span class="text">{{ totalAmount || '0' }}</span></div> <div>总金额<span class="text icon"></span><span class="text">{{ totalAmount || '0' }}</span></div>
<div class="btn-group"> <div class="btn-group">
<span class="default-close-btn" v-if="status" @click="deleteItem">取消接诊</span> <span class="default-btn default-close-btn" v-if="status" @click="deleteItem">取消接诊</span>
<span class="default-btn" v-if="status" @click="save">完成接诊</span> <span class="default-btn" v-if="status" @click="save">完成接诊</span>
<!-- <el-button v-if="status == 3" type="primary" @click="editItem">修改</el-button>--> <!-- <el-button v-if="status == 3" type="primary" @click="editItem">修改</el-button>-->
</div> </div>
@ -45,11 +45,5 @@ const editItem= () => {
.text { .text {
color: #FF282E color: #FF282E
} }
.btn-group{
display: flex;
span{
margin-left: 24px;
}
}
} }
</style> </style>

View File

@ -2,124 +2,104 @@
<Mask :is-show="isShow" width="800" :height="height" title="挂号" @close="close" <Mask :is-show="isShow" width="800" :height="height" title="挂号" @close="close"
:show-footer="true"> :show-footer="true">
<template #default> <template #default>
<div style="padding:0 24px 24px;height: 100%;display: flex;flex-direction: column"> <div style="padding:24px;height: 100%">
<el-scrollbar> <el-scrollbar>
<el-form <el-form
v-loading="loading" v-loading="loading"
:model="edit_data" :model="edit_data"
label-width="auto" label-width="auto"
:rules="rules" :rules="rules"
ref="form" ref="form"
style="flex: 1;width: 100%" style="width:100%;"
> label-position="top"
<el-descriptions
border
direction="vertical"
:column="4"
style="margin-top: 20px"
> >
<el-descriptions-item label="姓名" width="200"> <div style="display:flex;width:100%;">
<el-form-item prop="name" style="margin-bottom: 2px"> <div class="left">
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable <el-form-item prop="name" label="姓名">
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input> <el-input v-model="edit_data.name" placeholder="请输入姓名" clearable
</el-form-item> :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
</el-descriptions-item> </el-form-item>
<el-descriptions-item label="性别" width="200"> <el-form-item prop="name" label="手机号">
<el-form-item prop="gender"> <el-input v-model="edit_data.name" placeholder="请输入姓名" clearable
<el-radio-group v-model="edit_data.gender" :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"> </el-form-item>
<el-radio :value="1"></el-radio> <el-form-item prop="certType" label="证件类型">
<el-radio :value="2"></el-radio> <el-select v-model="edit_data.certType" placeholder="证件类型"
</el-radio-group> :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
</el-form-item> <el-option
</el-descriptions-item> v-for="item in certTypeList"
<el-descriptions-item label="年龄" width="200"> :key="item.id"
<el-form-item prop="age"> :label="item.name"
<el-input v-model.number="edit_data.age" placeholder="请输入年龄" :value="item.id"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input> ></el-option>
</el-form-item> </el-select>
</el-descriptions-item> </el-form-item>
<el-descriptions-item label="手机号" width="200"> <el-form-item prop="type" label="费用类型">
<el-form-item prop="phone"> <el-select v-model="edit_data.type" :disabled="edit_data.status==0||isShowCard">
<el-input v-model="edit_data.phone" placeholder="手机号" <el-option label="自费" :value="1"></el-option>
:disabled="edit_data.status==3||edit_data.status==0"></el-input> <el-option label="医保" :value="2"></el-option>
</el-form-item> </el-select>
</el-descriptions-item> </el-form-item>
<el-descriptions-item label="医生"> </div>
<el-form-item prop="organizationDoctorId"> <div class="middle">
<el-select <el-form-item prop="gender" label="性别">
v-model="edit_data.organizationDoctorId" <el-radio-group v-model="edit_data.gender"
placeholder="请选择医生" :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
@change="getSectionList" <el-radio :value="1"></el-radio>
:disabled="edit_data.status==3||edit_data.status==0" <el-radio :value="2"></el-radio>
> </el-radio-group>
<el-option </el-form-item>
v-for="item in doctorList" <el-form-item prop="organizationDoctorId" label="医生">
:key="item.id" <el-select
:label="item.name" v-model="edit_data.organizationDoctorId"
:value="item.id" placeholder="请选择医生"
@change="getSectionList"
:disabled="edit_data.status==3||edit_data.status==0"
> >
</el-option> <el-option
</el-select> v-for="item in doctorList"
</el-form-item> :key="item.id"
</el-descriptions-item> :label="item.name"
<el-descriptions-item label="科室"> :value="item.id"
<el-form-item> >
<el-select </el-option>
v-model="edit_data.organizationSectionId" </el-select>
placeholder="选择科室" </el-form-item>
:disabled="edit_data.status==3||edit_data.status==0" <el-form-item prop="certNo" label="证件码">
> <el-input v-model="edit_data.certNo" placeholder="请输入证件码"
<el-option :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
v-for="item in sectionList" </el-form-item>
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="证件类型">
<el-form-item prop="certType">
<el-select v-model="edit_data.certType" placeholder="证件类型"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
<el-option
v-for="item in certTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="证件码">
<el-form-item prop="certNo">
<el-input v-model="edit_data.certNo" placeholder="请输入证件码"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="初/复诊">
<el-form-item prop="visitType">
<el-select v-model="edit_data.visitType" placeholder="就诊类型" :disabled="edit_data.status==0">
<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 prop="type">
<el-select v-model="edit_data.type" :disabled="edit_data.status==0||isShowCard">
<el-option label="自费" :value="1"></el-option>
<el-option label="医保" :value="2"></el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:span="2"
label="时间">
</div>
<div style=" display: flex;"> <div class="right">
<el-form-item prop="age" label="年龄">
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
<el-form-item label="科室">
<el-select
v-model="edit_data.organizationSectionId"
placeholder="选择科室"
:disabled="edit_data.status==3||edit_data.status==0"
>
<el-option
v-for="item in sectionList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item prop="visitType" label="初/复诊">
<el-select v-model="edit_data.visitType" placeholder="就诊类型" :disabled="edit_data.status==0">
<el-option label="初诊" :value="0"></el-option>
<el-option label="复诊" :value="1"></el-option>
</el-select>
</el-form-item>
</div>
</div>
<el-form-item label="时间">
<div style=" display: flex;width: 100%">
<div style="flex: 1;min-width: 0" v-if="!isBtnShow&&dateName!='预约'">现在</div> <div style="flex: 1;min-width: 0" v-if="!isBtnShow&&dateName!='预约'">现在</div>
<div v-else style="flex:1;min-width:0;display: flex;align-items: center"> <div v-else style="flex:1;min-width:0;display: flex;align-items: center">
<el-date-picker <el-date-picker
@ -148,16 +128,12 @@
isBtnShow ? '挂号' : '预约' isBtnShow ? '挂号' : '预约'
}}</span> }}</span>
</div> </div>
</el-descriptions-item> </el-form-item>
<el-descriptions-item <el-form-item label="备注">
:span="4" <el-input v-model="edit_data.memo" placeholder="备注" :disabled="edit_data.status==0"></el-input>
label="备注"> </el-form-item>
<el-form-item> </el-form>
<el-input v-model="edit_data.memo" placeholder="备注" :disabled="edit_data.status==0"></el-input> </el-scrollbar>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
<h5 v-if="!isShowCard" style="margin:24px 0;font-size: 16px">险种列表</h5> <h5 v-if="!isShowCard" style="margin:24px 0;font-size: 16px">险种列表</h5>
<el-table <el-table
:data="tableData" :data="tableData"
@ -181,7 +157,6 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-scrollbar>
</div> </div>
</template> </template>
<template #footer> <template #footer>
@ -205,9 +180,9 @@
退出医保 退出医保
</div> </div>
<div class="bottom-right"> <div class="bottom-right">
<span class="close-btn" @click="close">取消</span> <span class="default-btn default-close-btn" @click="close">取消</span>
<span class="danger-btn" v-if="edit_data.status==1" @click="registrationCancel">退号</span> <span class="default-btn" v-if="edit_data.status==1" @click="registrationCancel">退号</span>
<span class="small-btn" @click="save">保存</span> <span class="default-btn" @click="save">保存</span>
</div> </div>
</div> </div>
</template> </template>
@ -227,7 +202,7 @@ import Quick from "@/components/charge/RecordsLog/Quick.vue";
import {getCurrentTime, getToday} from "@/utils/dateUtils.ts"; import {getCurrentTime, getToday} from "@/utils/dateUtils.ts";
import {API} from "@/assets/config/API.ts"; import {API} from "@/assets/config/API.ts";
const height = ref(570) const height = ref(670)
const certTypeList = ref<any>([]) const certTypeList = ref<any>([])
const edit_data = ref<any>({ const edit_data = ref<any>({
timeList: [] timeList: []
@ -280,7 +255,7 @@ const close = () => {
isShowCard.value = true isShowCard.value = true
nextTick(() => { nextTick(() => {
cardDefaultRef.value?.close() cardDefaultRef.value?.close()
height.value = 570 height.value = 670
}) })
emit('close') emit('close')
} }
@ -410,7 +385,7 @@ const socialCardUpdate = (e: any) => {
height.value = 820 height.value = 820
multipleTable.value?.setCurrentRow(tableData.value[0]) multipleTable.value?.setCurrentRow(tableData.value[0])
} else { } else {
height.value = 570 height.value = 670
} }
}) })
loading.value = false loading.value = false
@ -427,7 +402,7 @@ const deleteCard = () => {
tableData.value = [] tableData.value = []
nextTick(() => { nextTick(() => {
cardDefaultRef.value?.close() cardDefaultRef.value?.close()
height.value = 570 height.value = 670
}) })
} }
}, },
@ -549,12 +524,23 @@ defineExpose({init})
} }
} }
:deep(.el-form-item) {
margin-bottom: 2px !important;
}
.disabled { .disabled {
cursor: not-allowed; cursor: not-allowed;
background: rgba(#4D6DE4,.5); background: rgba(#4D6DE4, .5);
}
.left{
flex: 1;
min-width: 0;
}
.middle{
flex: 1;
min-width: 0;
margin: 0 24px;
}
.right{
flex: 1;
min-width: 0;
} }
</style> </style>

View File

@ -74,7 +74,7 @@ import {post} from "@/utils/request.ts";
import {ElMessage} from "element-plus"; import {ElMessage} from "element-plus";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import ItemSearch from "@/components/settings/item/ItemSearch.vue"; import ItemSearch from "@/components/settings/item/ItemSearch.vue";
import UnitSelector from "@/components/UnitSelector.vue"; import UnitSelector from "@/components/inventory/goods/UnitSelector.vue";
import {itemUnitList} from "@/utils/unitList.ts" import {itemUnitList} from "@/utils/unitList.ts"
import {API} from "@/assets/config/API.ts"; import {API} from "@/assets/config/API.ts";

View File

@ -101,7 +101,7 @@ import ItemSearch from "@/components/settings/item/ItemSearch.vue";
const createSearchRef = ref<any>('') const createSearchRef = ref<any>('')
import {itemUnitList} from "@/utils/unitList.ts" import {itemUnitList} from "@/utils/unitList.ts"
import UnitSelector from "@/components/UnitSelector.vue"; import UnitSelector from "@/components/inventory/goods/UnitSelector.vue";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
import {API} from "@/assets/config/API.ts"; import {API} from "@/assets/config/API.ts";