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

# Conflicts:
#	src/components/outpatient/DiagnosisSearchInput.vue
This commit is contained in:
LiJianZhao 2025-05-06 14:55:56 +08:00
commit 759fc69fd7
12 changed files with 160 additions and 101 deletions

View File

@ -1,5 +1,5 @@
<template> <template>
<el-input v-model="input" :style="{'width': props.width+'px'}" clearable :disabled="disabled" ref="inputRef" @click="showPopo"></el-input> <el-input v-model="input" :style="{'width': props.width+'px'}" 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"> <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-popo" v-if="props.list.length > 0">
<div class="code-item" v-for="item in props.list"> <div class="code-item" v-for="item in props.list">
@ -50,6 +50,10 @@ const inputStr = (str: string,item:ListItem) => {
} }
const inputRef = ref(); const inputRef = ref();
const emit=defineEmits(["focus"])
const focus = () => {
emit("focus", false)
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.code-popo { .code-popo {

View File

@ -1,4 +1,3 @@
<template> <template>
<el-input <el-input
ref="inputRef" ref="inputRef"
@ -11,11 +10,13 @@
@input="changeInput" @input="changeInput"
class="no-border-input" class="no-border-input"
:disabled="disabled" :disabled="disabled"
@focus="focus"
> >
</el-input> </el-input>
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" :virtual-ref="inputRef" :trigger-keys="[]"> <el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" :virtual-ref="inputRef"
:trigger-keys="[]">
<div class="container"> <div class="container">
<el-table <el-table
:data="searchList" style="width: 100%" :data="searchList" style="width: 100%"
@ -41,6 +42,7 @@ import { Plus } from "@element-plus/icons-vue";
const keyword = ref(""); const keyword = ref("");
const popoverRef = ref(); const popoverRef = ref();
const inputRef = ref(); const inputRef = ref();
interface showConfig { interface showConfig {
prop: string; prop: string;
label: string; label: string;
@ -86,7 +88,7 @@ const changeInput = (inputStr: string) => {
}; };
const emit = defineEmits(['selectedCallBack']); const emit = defineEmits(['selectedCallBack','focus']);
const clickRow = (row: any) => { const clickRow = (row: any) => {
emit('selectedCallBack', row); emit('selectedCallBack', row);
@ -100,7 +102,9 @@ const beforeShow = () => {
} }
}; };
const focus=()=>{
emit('focus',true)
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -114,6 +118,7 @@ const beforeShow = () => {
border: none !important; border: none !important;
box-shadow: none !important; box-shadow: none !important;
} }
&:hover { &:hover {
border: 1px solid #409eff !important; border: 1px solid #409eff !important;
} }

View File

@ -15,7 +15,7 @@
<div class="container"> <div class="container">
<el-form :model="formDate" label-width="auto" ref="formRef"> <el-form :model="formDate" label-width="auto" ref="formRef">
<el-form-item label="主诉"> <el-form-item label="主诉">
<PopoverInput :disabled="disabled" v-model="formDate.mainAppeal" :list="mainAppealList"/> <PopoverInput :disabled="disabled" v-model="formDate.mainAppeal" :list="mainAppealList" @focus="focus"/>
</el-form-item> </el-form-item>
<el-form-item label="诊断"> <el-form-item label="诊断">
<DiagnosisSearchInput <DiagnosisSearchInput
@ -24,34 +24,36 @@
:request-api="diagnosisSearchApi" :request-api="diagnosisSearchApi"
:show-config="diagnosisShowConfig" :show-config="diagnosisShowConfig"
@selectedCallBack="diagnosisSelect" @selectedCallBack="diagnosisSelect"
:show-header="false"> :show-header="false"
@focus="focus"
>
</DiagnosisSearchInput> </DiagnosisSearchInput>
</el-form-item> </el-form-item>
<el-form-item label="现病史"> <el-form-item label="现病史" v-if="!props.isShowFrom">
<PopoverInput :disabled="disabled" v-model="formDate.nowMedicalHistory" :list="nowMedicalHistoryList"/> <PopoverInput :disabled="disabled" v-model="formDate.nowMedicalHistory" :list="nowMedicalHistoryList"/>
</el-form-item> </el-form-item>
<el-form-item label="既往史"> <el-form-item label="既往史" v-if="!props.isShowFrom">
<PopoverInput :disabled="disabled" v-model="formDate.beforeMedicalHistory" :list="beforeMedicalHistoryList"/> <PopoverInput :disabled="disabled" v-model="formDate.beforeMedicalHistory" :list="beforeMedicalHistoryList"/>
</el-form-item> </el-form-item>
<el-form-item label="过敏史"> <el-form-item label="过敏史" v-if="!props.isShowFrom">
<PopoverInput :disabled="disabled" v-model="formDate.allergyHistory" :list="allergyHistoryList"/> <PopoverInput :disabled="disabled" v-model="formDate.allergyHistory" :list="allergyHistoryList"/>
</el-form-item> </el-form-item>
<el-form-item label="体格检查"> <el-form-item label="体格检查" v-if="!props.isShowFrom">
<PhysiqueExamInuput :disabled="disabled" v-model="formDate.exam" :list="physiqueExamList"/> <PhysiqueExamInuput :disabled="disabled" v-model="formDate.exam" :list="physiqueExamList"/>
</el-form-item> </el-form-item>
<el-form-item label="望闻问切" v-if="modelType==1"> <el-form-item label="望闻问切" v-if="modelType==1&&!props.isShowFrom">
<PopoverInput :disabled="disabled" v-model="formDate.chinaAdjunctCheck" :list="chinaAdjunctCheckList"/> <PopoverInput :disabled="disabled" v-model="formDate.chinaAdjunctCheck" :list="chinaAdjunctCheckList"/>
</el-form-item> </el-form-item>
<el-form-item label="治法" v-if="modelType==1"> <el-form-item label="治法" v-if="modelType==1&&!props.isShowFrom">
<el-input v-model="formDate.chinaDeal" :disabled="disabled"></el-input> <el-input v-model="formDate.chinaDeal" :disabled="disabled"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="口腔检查" v-if="modelType==2"> <el-form-item label="口腔检查" v-if="modelType==2&&!props.isShowFrom">
<el-input :disabled="disabled" v-model="formDate.mouthCheck"></el-input> <el-input :disabled="disabled" v-model="formDate.mouthCheck"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="辅助检查" v-if="modelType==2 || modelType ==0"> <el-form-item label="辅助检查" v-if="(modelType==2 || modelType ==0)&&!props.isShowFrom">
<el-input :disabled="disabled" v-model="formDate.adjunctCheck"></el-input> <el-input :disabled="disabled" v-model="formDate.adjunctCheck"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="处置" v-if="modelType==0 || modelType ==2"> <el-form-item label="处置" v-if="(modelType==0 || modelType ==2)&&!props.isShowFrom">
<el-input :disabled="disabled" v-model="formDate.deal"></el-input> <el-input :disabled="disabled" v-model="formDate.deal"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -60,7 +62,7 @@
</Panel> </Panel>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {computed, nextTick, ref} from "vue"; import {computed, nextTick, ref,defineEmits} from "vue";
import { import {
mainAppealList, mainAppealList,
nowMedicalHistoryList, nowMedicalHistoryList,
@ -77,6 +79,10 @@ const props = defineProps({
status: { status: {
type: Number, type: Number,
default: 0 default: 0
},
isShowFrom:{
type: Boolean,
default: false
} }
}) })
const disabled = computed(() => { const disabled = computed(() => {
@ -114,6 +120,10 @@ const initDiagnosisSearch = (list:any,nList:any)=>{
diagnosisSearchRef.value?.init(list,nList); diagnosisSearchRef.value?.init(list,nList);
}) })
} }
const emit = defineEmits(['focus'])
const focus = (e:any)=>{
emit('focus',e)
}
defineExpose({initDiagnosisSearch}) defineExpose({initDiagnosisSearch})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -1,6 +1,6 @@
<template> <template>
<el-input v-model="keyword" style="width:100%;height: 100%" @input="changeInput" :disabled="disabled" @click="changeInput" <el-input v-model="keyword" style="width:100%;height: 100%" @input="changeInput" :disabled="disabled" @click="changeInput"
placeholder="诊断选择" ref="inputRef"></el-input> placeholder="诊断选择" ref="inputRef" @focus="focus"></el-input>
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" @before-enter="beforeShow" :virtual-ref="inputRef" @hide ="afterShow"> <el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" @before-enter="beforeShow" :virtual-ref="inputRef" @hide ="afterShow">
@ -58,13 +58,8 @@ const changeInput = (inputStr: string) => {
if (!props.requestApi || props.requestApi === "") { if (!props.requestApi || props.requestApi === "") {
return return
} }
debugger let tempList = inputStr.split(",");
let tempList = keyword.value.split(","); let searchKeyword = tempList[tempList.length - 1];
let searchKeyword ="";
if (tempList.length != 0){
searchKeyword = tempList[tempList.length - 1];
}
nameList.value = [] nameList.value = []
selectList.value = selectList.value ? selectList.value.slice(0, tempList.length) : [] selectList.value = selectList.value ? selectList.value.slice(0, tempList.length) : []
let updateKeyword = false let updateKeyword = false
@ -83,7 +78,7 @@ const changeInput = (inputStr: string) => {
searchList.value = res; searchList.value = res;
}) })
} }
const emit = defineEmits(['selectedCallBack']) const emit = defineEmits(['selectedCallBack','focus'])
const clickRow = (row: any) => { const clickRow = (row: any) => {
selectList.value.push(row) selectList.value.push(row)
nameList.value.push(row.name) nameList.value.push(row.name)
@ -117,6 +112,10 @@ const init = (list: any, nList: any) => {
nameList.value = nList; nameList.value = nList;
keyword.value = nameList.value.join(",") + "," keyword.value = nameList.value.join(",") + ","
} }
const focus = ()=>{
emit("focus",false)
}
defineExpose({init}) defineExpose({init})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -241,7 +241,7 @@ watch(() => props.status, () => {
} }
&:hover { &:hover {
background: rgba(#4D6DE4, 0.1); background: rgba(#4D6DE4, 0.5);
} }
.item_name { .item_name {

View File

@ -5,9 +5,6 @@
<ul> <ul>
<li class="item" v-for="(item, index) in list" :key="index"> <li class="item" v-for="(item, index) in list" :key="index">
<div class="index">{{ index + 1 }}</div> <div class="index">{{ index + 1 }}</div>
<div class="name"> <div class="name">
<el-popover <el-popover
placement="top-start" placement="top-start"
@ -59,6 +56,7 @@
@selectedCallBack="itemSelect" @selectedCallBack="itemSelect"
:placeholder="'请输入药材名称'" :placeholder="'请输入药材名称'"
:disabled="disabled" :disabled="disabled"
@focus="focus"
> >
</SearchInput> </SearchInput>
</div> </div>
@ -124,6 +122,10 @@ const selectUnit = (item: any, unit: any) => {
} }
} }
const sumPrice = ref(0) const sumPrice = ref(0)
const emit = defineEmits(['focus'])
const focus=(e:any)=>{
emit('focus',e)
}
watch(()=>list.value, (newList) => { watch(()=>list.value, (newList) => {
sumPrice.value = newList.reduce((total, item) => { sumPrice.value = newList.reduce((total, item) => {
return total + (item.selectedNum || 0) * (item.selectedPrice || 0); return total + (item.selectedNum || 0) * (item.selectedPrice || 0);

View File

@ -5,7 +5,22 @@
<ul> <ul>
<li class="item" v-for="(item, index) in list" :key="index"> <li class="item" v-for="(item, index) in list" :key="index">
<div class="index">{{ index + 1 }}</div> <div class="index">{{ index + 1 }}</div>
<div class="name">{{ item.itemName }}</div> <div class="name">
<el-popover width="485">
<template #reference>
{{ item.itemName }}
</template>
<div class="detail">
<div style="display: flex;justify-content: space-between">
<div>{{ item.itemName }}</div>
<div>{{ item.unitPrice }}/{{ item.unit }}</div>
</div>
<div>
<div> {{item.itemSocialCode}}</div>
</div>
</div>
</el-popover>
</div>
<div class="price">{{ item.unitPrice }}</div> <div class="price">{{ item.unitPrice }}</div>
<div class="unit"> <div class="unit">
<div style="display: flex; align-items: center;"> <div style="display: flex; align-items: center;">
@ -33,6 +48,7 @@
:placeholder="'请输入项目名称'" :placeholder="'请输入项目名称'"
:disabled="disabled" :disabled="disabled"
style="height: 100%" style="height: 100%"
@focus="focus"
> >
</SearchInput> </SearchInput>
</div> </div>
@ -43,7 +59,7 @@
</Panel> </Panel>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {defineModel, computed} from "vue"; import {defineModel, computed,defineEmits} from "vue";
import Panel from "@/components/common/Panel.vue"; import Panel from "@/components/common/Panel.vue";
import {Close} from '@element-plus/icons-vue' import {Close} from '@element-plus/icons-vue'
import SearchInput from "@/components/SearchInput.vue"; import SearchInput from "@/components/SearchInput.vue";
@ -83,7 +99,10 @@ const list = defineModel<any[]>({default: () => []});
const deleteItem = (id: any) => { const deleteItem = (id: any) => {
list.value = list.value.filter((item) => item.id !== id); list.value = list.value.filter((item) => item.id !== id);
}; };
const emit = defineEmits(['focus'])
const focus=(e:any)=>{
emit('focus',e)
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -116,6 +135,7 @@ const deleteItem = (id: any) => {
margin-left: 10px; margin-left: 10px;
height: 100%; height: 100%;
line-height: 30px; line-height: 30px;
} }
.code { .code {

View File

@ -15,6 +15,7 @@ const wsStore = useWsStore();
const isReading = ref(false) const isReading = ref(false)
const socialCard: any = defineModel(); const socialCard: any = defineModel();
const ReadSocialCard = async (readType: string) => { const ReadSocialCard = async (readType: string) => {
emit("changeLoading",true)
socialCard.value.lastUse = "CardDefault" socialCard.value.lastUse = "CardDefault"
isReading.value = true; isReading.value = true;
let config_db: any = await post('common/config/getall'); let config_db: any = await post('common/config/getall');
@ -40,6 +41,7 @@ const ReadSocialCard = async (readType: string) => {
}; };
const reciceMessage = (response: Response) => { const reciceMessage = (response: Response) => {
emit('changeLoading',false)
if (socialCard.value.lastUse != "CardDefault") { if (socialCard.value.lastUse != "CardDefault") {
return; return;
} }
@ -66,24 +68,37 @@ const reciceMessage = (response: Response) => {
cardSn: response.Data.card_sn ? response.Data.card_sn : "", cardSn: response.Data.card_sn ? response.Data.card_sn : "",
} }
getInfoFor1101(params) getInfoFor1101(params)
} }
const loading = ref(false)
const emit = defineEmits(['socialCardUpdate', 'close']) const emit = defineEmits(['socialCardUpdate', 'close','changeLoading'])
const getInfoFor1101 = (params: any) => { const getInfoFor1101 = (params: any) => {
loading.value = true emit('changeLoading',true)
post("social/person/getCustomSocialInfo", {data: params}).then((res: any) => { ElMessage({
message: "正在读取中,请稍后......",
duration: 500,
type: 'info',
});
post("social/person/getCustomSocialInfo", {data: params},{catch_error: true}).then((res: any) => {
emit('changeLoading',false)
socialCard.value.data = res; socialCard.value.data = res;
socialCard.value.mdtrtCertType = params.mdtrtCertType; socialCard.value.mdtrtCertType = params.mdtrtCertType;
socialCard.value.mdtrtCertNo = params.mdtrtCertNo; socialCard.value.mdtrtCertNo = params.mdtrtCertNo;
ElMessage({ ElMessage({
message: "读取成功", message: "读取成功",
type: 'success', type: 'success',
duration: 1000,
}); });
emit('socialCardUpdate', socialCard.value) emit('socialCardUpdate', socialCard.value)
loading.value = false
}).finally(() => { }).catch(()=>{
isReading.value = false; isReading.value = false;
loading.value = false emit('changeLoading',false)
ElMessage({
message: "读取失败",
duration: 1000,
type: 'error',
});
}) })
} }
@ -92,28 +107,18 @@ onMounted(async () => {
}); });
onUnmounted(() => { onUnmounted(() => {
wsStore.removeAllMessageCallback() wsStore.removeAllMessageCallback()
emit('changeLoading',false)
}) })
const close = () => { const close = () => {
ElMessageBox.confirm("退出识别", "提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
callback: (action: any) => {
if (action == "confirm") {
socialCard.value.data = null socialCard.value.data = null
emit('close')
}
if (action == "cancel") {
emit('socialCardUpdate', socialCard.value)
}
},
});
} }
defineExpose({close})
</script> </script>
<template> <template>
<div class="card-default"> <div class="card-default">
<div v-loading="loading" class="empty"> <div
class="empty">
<div class="btn-wrapper"> <div class="btn-wrapper">
<div class="btn" @click="ReadSocialCard('03')" @keydown.enter.prevent tabindex="-1">医保卡</div> <div class="btn" @click="ReadSocialCard('03')" @keydown.enter.prevent tabindex="-1">医保卡</div>
<div class="btn" @click="ReadSocialCard('01')" @keydown.enter.prevent tabindex="-1">电子凭证</div> <div class="btn" @click="ReadSocialCard('01')" @keydown.enter.prevent tabindex="-1">电子凭证</div>
@ -130,6 +135,7 @@ const close = () => {
height: 100%; height: 100%;
background: #FFFFFF; background: #FFFFFF;
border-radius: 8px; border-radius: 8px;
.btn { .btn {
width: 100%; width: 100%;
height: 46px; height: 46px;
@ -141,14 +147,18 @@ const close = () => {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: pointer;
&:hover { &:hover {
background: #4D6DE4; background: #4D6DE4;
color: #FFFFFF; color: #FFFFFF;
} }
:last-child { :last-child {
border-bottom: none; border-bottom: none;
border-radius: 0 0 8px 8px; border-radius: 0 0 8px 8px;
} }
:first-child { :first-child {
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
} }

View File

@ -4,6 +4,7 @@
<el-scrollbar> <el-scrollbar>
<div style="padding:0 24px 24px"> <div style="padding:0 24px 24px">
<el-form <el-form
v-loading="loading"
:model="edit_data" :model="edit_data"
label-width="auto" label-width="auto"
:rules="rules" :rules="rules"
@ -16,19 +17,6 @@
:column="4" :column="4"
style="margin-top: 20px" style="margin-top: 20px"
> >
<!-- <el-descriptions-item label="结算方式">-->
<!-- <el-form-item prop="gender">-->
<!-- <el-radio-group v-model="edit_data.type">-->
<!-- <el-radio value="1">医保</el-radio>-->
<!-- <el-radio value="2">自费</el-radio>-->
<!-- </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-descriptions-item label="性别">
<el-form-item prop="gender"> <el-form-item prop="gender">
<el-radio-group v-model="edit_data.gender"> <el-radio-group v-model="edit_data.gender">
@ -37,6 +25,12 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-descriptions-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-descriptions-item label="年龄">
<el-form-item prop="age"> <el-form-item prop="age">
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"></el-input> <el-input v-model.number="edit_data.age" placeholder="请输入年龄"></el-input>
@ -152,8 +146,8 @@
</span> </span>
</div> </div>
<template #dropdown> <template #dropdown>
<CardDefault v-model="socialCard" @socialCardUpdate="socialCardUpdate" <CardDefault ref="cardDefaultRef" v-model="socialCard" @socialCardUpdate="socialCardUpdate"
@close="deleteCard"/> @close="deleteCard" @changeLoading="changeLoading"/>
</template> </template>
</el-dropdown> </el-dropdown>
<div class="closeBtn" v-else @click="deleteCard" style="outline: none;"> <div class="closeBtn" v-else @click="deleteCard" style="outline: none;">
@ -171,7 +165,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {onMounted, ref} from 'vue' import {nextTick, onMounted, ref} from 'vue'
import {post} from '@/utils/request.ts' import {post} from '@/utils/request.ts'
import CardDefault from '@/components/registration/CardDefault.vue' import CardDefault from '@/components/registration/CardDefault.vue'
import {ElMessage, ElMessageBox} from "element-plus"; import {ElMessage, ElMessageBox} from "element-plus";
@ -312,8 +306,9 @@ const socialCardUpdate = (e: any) => {
tableData.value = e.data.insuinfo tableData.value = e.data.insuinfo
edit_data.value.organizationDoctorId = props.doctorId edit_data.value.organizationDoctorId = props.doctorId
} }
loading.value = false
} }
const cardDefaultRef = ref<any>("")
const deleteCard = () => { const deleteCard = () => {
ElMessageBox.confirm("退出识别", "提示", { ElMessageBox.confirm("退出识别", "提示", {
confirmButtonText: '确定', confirmButtonText: '确定',
@ -322,6 +317,9 @@ const deleteCard = () => {
if (action == "confirm") { if (action == "confirm") {
isShowCard.value = true isShowCard.value = true
edit_data.value = {} edit_data.value = {}
nextTick(() => {
cardDefaultRef.value?.close()
})
} }
}, },
}); });
@ -340,6 +338,10 @@ const list = () => {
sectionList.value = res sectionList.value = res
}) })
} }
const loading = ref(false)
const changeLoading = (e: any) => {
loading.value = e
}
defineExpose({init}) defineExpose({init})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -5,13 +5,14 @@
@row-click="rowClick" @row-click="rowClick"
style="height: 100%" style="height: 100%"
> >
<el-table-column prop="name" label="姓名" width="180"></el-table-column> <el-table-column prop="name" label="姓名" width="180">
<el-table-column prop="gender" label="性别" width="180">
<template #default="scope"> <template #default="scope">
<img style="width: 25px;height: 25px" <div style="display: flex;align-items: center;">
<img style="width: 25px;height: 25px;margin-right: 10px"
:src="scope.row.gender === 1 ? '/public/static/images/member/man.png' :scope.row.gender === 2 ? '/public/static/images/member/women.png':'无'" :src="scope.row.gender === 1 ? '/public/static/images/member/man.png' :scope.row.gender === 2 ? '/public/static/images/member/women.png':'无'"
alt="" srcset=""> alt="" srcset="">
<span> {{ scope.row.name }}</span>
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="phone" label="手机号" width="180"></el-table-column> <el-table-column prop="phone" label="手机号" width="180"></el-table-column>

View File

@ -7,22 +7,23 @@
<el-scrollbar> <el-scrollbar>
<div class="case"> <div class="case">
<CaseDetail v-if="patientRegistration.status==3" v-model="formData" ></CaseDetail> <CaseDetail v-if="patientRegistration.status==3" v-model="formData" ></CaseDetail>
<Case ref="caseRef" v-else v-model="formData" :status="status"></Case> <Case ref="caseRef" v-else v-model="formData" :status="status" :isShowFrom="isShowFrom" @focus="focus"></Case>
</div> </div>
<div class="service-items"> <div class="service-items">
<ServiceItemsDetail v-if="patientRegistration.status==3" v-model="itemList"></ServiceItemsDetail> <ServiceItemsDetail v-if="patientRegistration.status==3" v-model="itemList"></ServiceItemsDetail>
<ServiceItems v-else v-model="itemList" :status="status"></ServiceItems> <ServiceItems v-else v-model="itemList" :status="status" @focus="focus"></ServiceItems>
</div> </div>
<div class="pharmaceutical-consumables"> <div class="pharmaceutical-consumables">
<PharmaceuticalConsumablesDetail v-if="patientRegistration.status==3" <PharmaceuticalConsumablesDetail v-if="patientRegistration.status==3"
v-model="goodsList" ></PharmaceuticalConsumablesDetail> v-model="goodsList" ></PharmaceuticalConsumablesDetail>
<PharmaceuticalConsumables v-else v-model="goodsList" :status="status"></PharmaceuticalConsumables> <PharmaceuticalConsumables v-else v-model="goodsList" :status="status" @focus="focus"></PharmaceuticalConsumables>
</div>
<div class="bottom">
<Settlement v-if="status!=1" v-model="totalAmount" @deleteItem="deleteItem" @save="save" :status="status"
@edit="edit"></Settlement>
</div> </div>
</el-scrollbar> </el-scrollbar>
<div class="bottom">
<Settlement v-model="totalAmount" @deleteItem="deleteItem" @save="save" :status="status"
@edit="edit"></Settlement>
</div>
</div> </div>
<div class="right"> <div class="right">
<div class="top"> <div class="top">
@ -182,6 +183,10 @@ const getSeeDockerInfo = (newValue:any) => {
seeDockerInfo.value = res seeDockerInfo.value = res
}) })
} }
const isShowFrom= ref<any>(false)
const focus=(e:any)=>{
isShowFrom.value=e
}
watch(() => registerId.value, (newValue) => { watch(() => registerId.value, (newValue) => {
if (!newValue) { if (!newValue) {
seeDockerInfo.value = {} seeDockerInfo.value = {}

View File

@ -153,6 +153,7 @@ const openDialog = () => {
ItemEditRef.value?.init() ItemEditRef.value?.init()
}) })
} }
const loading= ref(true)
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container-wrapper { .container-wrapper {