This commit is contained in:
ChenQiuYu 2025-05-08 15:32:40 +08:00
parent ae598d2287
commit 70d5eb5f72
2 changed files with 80 additions and 5 deletions

View File

@ -1,7 +1,43 @@
<template> <template>
<panel title="药品耗材"> <panel title="药品耗材">
<el-table v-if="goodsDetail.length>0" :data="goodsDetail" max-height="150" style="width: 100%"> <el-table v-if="goodsDetail.length>0" :data="goodsDetail" max-height="150" style="width: 100%">
<el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column> <el-table-column prop="name" label="名称">
<template #default="scope">
<el-popover
placement="top-start"
trigger="hover"
width="500"
@show="getHilistInfo(scope.row)"
@hide="colosInfo"
>
<template #reference>
{{ scope.row.name }}
</template>
<div class="detail">
<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>{{ scope.row.selectedPrice }}/{{ scope.row.selectedUnit }}</div>
</div>
<div style="display: flex;justify-content: space-between">
<div>规格:{{hilistInfo.json?.dosage_specifications||'-'}}</div>
<div>生产厂商:{{hilistInfo.json?.producer||'-'}}</div>
<div>限价:{{hilistInfo.json?.stock||'0'}}</div>
</div>
<div style="display: flex;justify-content: space-between">
<div>批准文号:{{hilistInfo.json?.approval_number||'-'}}</div>
<div>本位码:{{hilistInfo.json?.standard_code ||'-'}}</div>
</div>
<div style="display: flex;justify-content: space-between">
<div>限价:{{ hilistInfo.hilistPricUplmtAmt ? hilistInfo.hilistPricUplmtAmt : '无' }}</div>
<div>限价类型:{{ hilistInfo.hilistLmtpricType ? hilistInfo.hilistLmtpricType : '无' }}</div>
</div>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="selectedPrice" label="单价"> <el-table-column prop="selectedPrice" label="单价">
<template #default="scope"> <template #default="scope">
{{ scope.row.selectedPrice }} {{ scope.row.selectedPrice }}
@ -119,6 +155,7 @@ const getTotalPrice = () => {
} }
const disabled = ref<any>(false) const disabled = ref<any>(false)
watchEffect(() => { watchEffect(() => {
if (props.status == 2 || props.status == 0) { if (props.status == 2 || props.status == 0) {
disabled.value = true disabled.value = true

View File

@ -1,7 +1,32 @@
<template> <template>
<Panel title="服务项目"> <Panel title="服务项目">
<el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="150"> <el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="150">
<el-table-column prop="itemName" label="项目名称" show-overflow-tooltip></el-table-column> <el-table-column prop="itemName" label="项目名称">
<template #default="scope">
<el-popover
width="485"
@show="show(scope.row)"
@hide="hide"
>
<template #reference>
{{ scope.row.itemName }}
</template>
<div class="detail">
<div style="display: flex;justify-content: space-between">
<div style="font-size: 18px;font-weight: 500;color: #000">{{
itemInfo.name
}}[{{ chrgitm_lv[itemInfo.chrgitmLv as keyof typeof chrgitm_lv || '-'] || '-' }}]
</div>
<div>{{ scope.row.unitPrice }}/{{ scope.row.unit }}</div>
</div>
<div style="display: flex;justify-content: space-between">
<div>限制条件:{{ itemInfo.lmtUsedFlag == 0 ? '否' : itemInfo.lmtUsedFlag == 1 ? '是' : '-' }}</div>
<div> 医保码:{{ scope.row.itemSocialCode || '-' }}</div>
</div>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column label="单价"> <el-table-column label="单价">
<template #default="scope"> <template #default="scope">
{{ scope.row.selectedPrice }} {{ scope.row.selectedPrice }}
@ -29,6 +54,7 @@
<div class="bottom"> <div class="bottom">
<div class="search"> <div class="search">
<SearchInput <SearchInput
@focus="focus"
:placeholder="'请输入药服务项目或拼音码'" :placeholder="'请输入药服务项目或拼音码'"
:request-api="serviceSearchApi" :request-api="serviceSearchApi"
:show-config="serviceShowConfig" :show-config="serviceShowConfig"
@ -42,6 +68,8 @@
import {defineProps, watchEffect, ref} from "vue"; import {defineProps, watchEffect, ref} from "vue";
import SearchInput from "@/components/SearchInput.vue"; import SearchInput from "@/components/SearchInput.vue";
import Panel from "@/components/common/Panel.vue"; import Panel from "@/components/common/Panel.vue";
import {post} from "@/utils/request.ts";
import chrgitm_lv from "@/assets/config/directory/chrgitmLv.json"
const props = defineProps({ const props = defineProps({
status: { status: {
@ -69,7 +97,7 @@ const serviceShowConfig = [
prop: "unitPrice", prop: "unitPrice",
}, },
] ]
const emit = defineEmits(['totalPriceChange']) const emit = defineEmits(['totalPriceChange','focus'])
const serviceSelect = (row: any) => { const serviceSelect = (row: any) => {
row.selectedNum = 1 row.selectedNum = 1
row.selectedUnit = row.unit row.selectedUnit = row.unit
@ -91,8 +119,18 @@ const getTotalPrice = () => {
return totalPrice; return totalPrice;
} }
const focus = (e: any) => {
emit('focus', e)
}
const itemInfo = ref<any>({});
const show = (item: any) => {
post('social/directory/getItemByCode', {code: item.itemSocialCode}).then((res: any) => {
itemInfo.value = res
})
}
const hide = () => {
itemInfo.value = {}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-table__cell) { :deep(.el-table__cell) {