Compare commits

..

No commits in common. "cc18ac3f52280b5bbb855e3d3f383e4e09329c45" and "62b0a3e246ba8f1657b7bad6a59cd3e5b6d8efec" have entirely different histories.

3 changed files with 20 additions and 110 deletions

View File

@ -1,45 +1,7 @@
<template>
<panel title="药品耗材">
<el-table v-if="goodsDetail.length>0" :data="goodsDetail" max-height="150" style="width: 100%">
<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="name" label="名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="selectedPrice" label="单价">
<template #default="scope">
{{ scope.row.selectedPrice }}
@ -87,7 +49,6 @@
:placeholder="'请输入药名或者拼音码'"
@selectedCallBack="goodsSelect"
v-if="status"
@focus="focus"
></SearchInput>
</div>
<span>合计{{ getTotalPrice() }}</span>
@ -96,10 +57,8 @@
</template>
<script setup lang="ts">
import SearchInput from "@/components/SearchInput.vue";
import {ref, watchEffect} from "vue";
import Panel from "@/components/common/Panel.vue";
import {ref} from "vue";
import {post} from "@/utils/request.ts";
import {ElMessage} from "element-plus";
const props = defineProps({
status: {
@ -131,10 +90,6 @@ const goodsSelect = (row: any) => {
row.selectedNum = 1
row.selectedUnit = row.packagingUnit
row.selectedPrice = row.unitPrice
if (goodsDetail.value.find((i: any) => i.id == row.id)) {
ElMessage.warning("数据已存在,只能加数量")
return
}
goodsDetail.value.push(row)
emit('totalPriceChange')
}
@ -148,7 +103,7 @@ const selectUnit = (item: any, unit: any) => {
emit('totalPriceChange')
}
const emit = defineEmits(["totalPriceChange", 'focus'])
const emit = defineEmits(["totalPriceChange"])
const handleNumChange = () => {
emit('totalPriceChange')
}
@ -162,20 +117,7 @@ const getTotalPrice = () => {
return totalPrice;
}
const focus = (e: any) => {
emit('focus', e)
}
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 = {}
}
</script>
<style scoped lang="scss">
:deep(.el-table__cell) {

View File

@ -1,32 +1,7 @@
<template>
<Panel title="服务项目">
<el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="150">
<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 prop="itemName" label="项目名称" show-overflow-tooltip></el-table-column>
<el-table-column label="单价">
<template #default="scope">
{{ scope.row.selectedPrice }}
@ -54,7 +29,6 @@
<div class="bottom">
<div class="search">
<SearchInput
@focus="focus"
:placeholder="'请输入药服务项目或拼音码'"
:request-api="serviceSearchApi"
:show-config="serviceShowConfig"
@ -68,9 +42,6 @@
import {defineProps, watchEffect, ref} from "vue";
import SearchInput from "@/components/SearchInput.vue";
import Panel from "@/components/common/Panel.vue";
import {post} from "@/utils/request.ts";
import chrgitm_lv from "@/assets/config/directory/chrgitmLv.json"
import {ElMessage} from "element-plus";
const props = defineProps({
status: {
@ -98,15 +69,11 @@ const serviceShowConfig = [
prop: "unitPrice",
},
]
const emit = defineEmits(['totalPriceChange','focus'])
const emit = defineEmits(['totalPriceChange'])
const serviceSelect = (row: any) => {
row.selectedNum = 1
row.selectedUnit = row.unit
row.selectedPrice = row.unitPrice
if (itemDetail.value.find((i: any) => i.id == row.id)) {
ElMessage.warning("数据已存在,只能加数量")
return
}
itemDetail.value.push(row)
emit('totalPriceChange')
}
@ -124,18 +91,8 @@ const getTotalPrice = () => {
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>
<style scoped lang="scss">
:deep(.el-table__cell) {

View File

@ -17,7 +17,7 @@
</div>
</el-scrollbar>
<div class="bottom">
<Settlement v-model="formData.totalPrice" @cancelReception="cancelReception" @save="save" :status="curRegister?.status ==2"
<Settlement v-model="totalAmount" @cancelReception="cancelReception" @save="save" :status="curRegister?.status ==2"
@edit="edit"></Settlement>
</div>
@ -167,6 +167,16 @@ const getOrderTotalPrice = () => {
formData.value.preTotalPrice = totalPrice
formData.value.totalPrice = totalPrice
}
// 使 watch goodsList itemList
watch([() => goodsList.value, itemDetail], ([newGoodsList, newItemList]) => {
const pharmaceuticalTotalAmount = newItemList.reduce((pre: any, cur: any) => {
return pre + cur.unitPrice * cur.selectedNum
}, 0);
const serviceTotalAmount = newGoodsList.reduce((pre: any, cur: any) => {
return pre + cur.selectedNum * cur.selectedPrice
}, 0);
totalAmount.value = pharmaceuticalTotalAmount + serviceTotalAmount;
}, {deep: true});
const caseRef= ref<any>("")
const copyForm=(item:any) => {
formData.value = item.diagnosisMedicalRecord
@ -183,6 +193,7 @@ const copyGoodsList=(item:any) => {
goodsList.value = item.goodsDetail
}
const seeDockerInfo = ref<any>()
const getSeeDockerInfo = (newValue:any) => {
if (!registerId.value)return;