This commit is contained in:
LiJianZhao 2025-05-07 15:19:44 +08:00
parent 75d5734566
commit ad67e3a2aa
7 changed files with 102 additions and 94 deletions

View File

@ -1,6 +1,8 @@
<template> <template>
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef">
<template #reference>
<el-input v-model="input" style="width:100%;height: 100%" 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"> </template>
<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">
<div class="code-item-header" v-if="item.header"> <div class="code-item-header" v-if="item.header">

View File

@ -1,24 +1,23 @@
<template> <template>
<el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef"
:trigger-keys="[]">
<template #reference>
<el-input <el-input
ref="inputRef" ref="inputRef"
style="width: 100%;height: 100%"
v-model="keyword" v-model="keyword"
:prefix-icon="Plus" :prefix-icon="Plus"
:placeholder="props.placeholder" :placeholder="props.placeholder"
:style="{'width': props.width+'px'}" :style="{ width: props.width + 'px' }"
clearable clearable
@input="changeInput" @input="changeInput"
class="no-border-input" class="no-border-input"
:disabled="disabled" :disabled="disabled"
@focus="focus" @focus="focus"
@blur="handlerBlur"
@click="changeInput" @click="changeInput"
> />
</template>
>
</el-input>
<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%"
@ -35,16 +34,18 @@
</el-table> </el-table>
</div> </div>
</el-popover> </el-popover>
</template> </template>
<script setup lang="ts">import {ref, unref} from "vue"; <script setup lang="ts">
import {ref, unref} from "vue";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
import {Plus} from "@element-plus/icons-vue"; 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();
const isVisible = ref(false);
interface showConfig { interface showConfig {
prop: string; prop: string;
label: string; label: string;
@ -105,8 +106,13 @@ const beforeShow = () => {
}; };
const focus=()=>{ const focus=()=>{
isVisible.value=true
console.log( "focus输入框")
emit('focus',true) emit('focus',true)
} }
const handlerBlur = () => {
isVisible.value = false
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -26,8 +26,7 @@
@selectedCallBack="diagnosisSelect" @selectedCallBack="diagnosisSelect"
:show-header="false" :show-header="false"
@focus="focus" @focus="focus"
> />
</DiagnosisSearchInput>
</el-form-item> </el-form-item>
<el-form-item label="现病史" v-if="!props.isShowFrom"> <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"/>

View File

@ -1,9 +1,11 @@
<template> <template>
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" @before-enter="beforeShow" @hide ="afterShow">
<template #reference>
<el-input v-model="keyword" :style="{width:props.width+'px',height: 100+'%'}" @input="changeInput" :disabled="disabled" @click="changeInput" <el-input v-model="keyword" :style="{width:props.width+'px',height: 100+'%'}" @input="changeInput" :disabled="disabled" @click="changeInput"
placeholder="诊断选择" ref="inputRef" @focus="focus"></el-input> placeholder="诊断选择" ref="inputRef" @focus="focus"></el-input>
</template>
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" @before-enter="beforeShow" :virtual-ref="inputRef" @hide ="afterShow">
<div class="container"> <div class="container">
<el-table :data="searchList" style="width: 100%" @row-click="clickRow" :show-header="props.showHeader" size="small" <el-table :data="searchList" style="width: 100%" @row-click="clickRow" :show-header="props.showHeader" size="small"
max-height="250px"> max-height="250px">

View File

@ -18,9 +18,9 @@
alt="头像"/> alt="头像"/>
<img v-if="item.gender==2" class="avatar" src="/static/images/outpatient/women.png" <img v-if="item.gender==2" class="avatar" src="/static/images/outpatient/women.png"
alt="头像"/> alt="头像"/>
{{ item.name }}
</span> </span>
<span class="item_name">{{ item.name }}</span>
<span>{{ item.gender }}</span>
<span class="item_time"> <span class="item_time">
{{ formatListTime(item.createDatetime) || '-' }} {{ formatListTime(item.createDatetime) || '-' }}
</span> </span>

View File

@ -1,72 +1,72 @@
<template> <template>
<Panel :title="'药品耗材'"> <Panel :title="'药品耗材'">
<div class="content"> <div class="content">
<div class="list"> <!-- <div class="list">-->
<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"-->
trigger="hover" <!-- trigger="hover"-->
width="500" <!-- width="500"-->
@show="getHilistInfo(item)" <!-- @show="getHilistInfo(item)"-->
@hide="colosInfo" <!-- @hide="colosInfo"-->
> <!-- >-->
<template #reference> <!-- <template #reference>-->
{{ item.name }} <!-- {{ item.name }}-->
</template> <!-- </template>-->
<div class="detail"> <!-- <div class="detail">-->
<div style="display: flex;justify-content: space-between"> <!-- <div style="display: flex;justify-content: space-between">-->
<div style="font-size: 18px;font-weight: 500;color: #000">{{ hilistInfo.name }}[{{ hilistInfo.json?.category||'-' }}]</div> <!-- <div style="font-size: 18px;font-weight: 500;color: #000">{{ hilistInfo.name }}[{{ hilistInfo.json?.category||'-' }}]</div>-->
<div>{{ item.selectedPrice }}/{{ item.selectedUnit }}</div> <!-- <div>{{ item.selectedPrice }}/{{ item.selectedUnit }}</div>-->
</div> <!-- </div>-->
<div style="display: flex;justify-content: space-between"> <!-- <div style="display: flex;justify-content: space-between">-->
<div>规格:{{hilistInfo.json?.dosage_specifications||'-'}}</div> <!-- <div>规格:{{hilistInfo.json?.dosage_specifications||'-'}}</div>-->
<div>生产厂商:{{hilistInfo.json?.producer||'-'}}</div> <!-- <div>生产厂商:{{hilistInfo.json?.producer||'-'}}</div>-->
<div>限价:{{hilistInfo.json?.stock||'0'}}</div> <!-- <div>限价:{{hilistInfo.json?.stock||'0'}}</div>-->
</div> <!-- </div>-->
<div style="display: flex;justify-content: space-between"> <!-- <div style="display: flex;justify-content: space-between">-->
<div>批准文号:{{hilistInfo.json?.approval_number||'-'}}</div> <!-- <div>批准文号:{{hilistInfo.json?.approval_number||'-'}}</div>-->
<div>本位码:{{hilistInfo.json?.standard_code ||'-'}}</div> <!-- <div>本位码:{{hilistInfo.json?.standard_code ||'-'}}</div>-->
</div> <!-- </div>-->
<div style="display: flex;justify-content: space-between"> <!-- <div style="display: flex;justify-content: space-between">-->
<div>限价:{{ hilistInfo.hilistPricUplmtAmt ? hilistInfo.hilistPricUplmtAmt : '无' }}</div> <!-- <div>限价:{{ hilistInfo.hilistPricUplmtAmt ? hilistInfo.hilistPricUplmtAmt : '无' }}</div>-->
<div>限价类型:{{ hilistInfo.hilistLmtpricType ? hilistInfo.hilistLmtpricType : '无' }}</div> <!-- <div>限价类型:{{ hilistInfo.hilistLmtpricType ? hilistInfo.hilistLmtpricType : '无' }}</div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</el-popover> <!-- </el-popover>-->
</div> <!-- </div>-->
<div class="price">{{ item.selectedPrice || '0' }}</div> <!-- <div class="price">{{ item.selectedPrice || '0' }}</div>-->
<div class="unit"> <!-- <div class="unit">-->
<div class="unit-content"> <!-- <div class="unit-content">-->
<el-input-number v-model="item.selectedNum" min="1" size="small"></el-input-number> <!-- <el-input-number v-model="item.selectedNum" min="1" size="small"></el-input-number>-->
<el-dropdown> <!-- <el-dropdown>-->
<span style="line-height: 30px;margin-left: 10px">{{ item.selectedUnit }}</span> <!-- <span style="line-height: 30px;margin-left: 10px">{{ item.selectedUnit }}</span>-->
<template #dropdown> <!-- <template #dropdown>-->
<el-dropdown-menu v-if="item.trdnFlag == 1"> <!-- <el-dropdown-menu v-if="item.trdnFlag == 1">-->
<el-dropdown-item @click="selectUnit(item,item.packagingUnit)">{{ item.packagingUnit }} <!-- <el-dropdown-item @click="selectUnit(item,item.packagingUnit)">{{ item.packagingUnit }}-->
</el-dropdown-item> <!-- </el-dropdown-item>-->
<el-dropdown-item @click="selectUnit(item,item.minPackagingUnit)">{{ item.minPackagingUnit }} <!-- <el-dropdown-item @click="selectUnit(item,item.minPackagingUnit)">{{ item.minPackagingUnit }}-->
</el-dropdown-item> <!-- </el-dropdown-item>-->
</el-dropdown-menu> <!-- </el-dropdown-menu>-->
</template> <!-- </template>-->
</el-dropdown> <!-- </el-dropdown>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="sub-price">{{ item.unitPrice * item.selectedNum }}</div> <!-- <div class="sub-price">{{ item.unitPrice * item.selectedNum }}</div>-->
<div class="delete"> <!-- <div class="delete">-->
<div @click="deleteItem(item.id)" class="delete-btn"> <!-- <div @click="deleteItem(item.id)" class="delete-btn">-->
<el-icon> <!-- <el-icon>-->
<Close/> <!-- <Close/>-->
</el-icon> <!-- </el-icon>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</li> <!-- </li>-->
</ul> <!-- </ul>-->
</div> <!-- </div>-->
<div class="search"> <div class="search">
<div class="search-input"> <div class="search-input">
<SearchInput <SearchInput

View File

@ -51,7 +51,6 @@
@selectedCallBack="serviceSelect" @selectedCallBack="serviceSelect"
:placeholder="'请输入项目名称'" :placeholder="'请输入项目名称'"
:disabled="disabled" :disabled="disabled"
style="height: 100%"
@focus="focus" @focus="focus"
> >
</SearchInput> </SearchInput>